diff --git a/AMITT_MASTER_DATA/AMITT_DATA_MASTER.xlsx b/AMITT_MASTER_DATA/AMITT_DATA_MASTER.xlsx new file mode 100644 index 0000000..5579894 Binary files /dev/null and b/AMITT_MASTER_DATA/AMITT_DATA_MASTER.xlsx differ diff --git a/AMITT_MASTER_DATA/AMITT_FRAMEWORKS_MASTER.xlsx b/AMITT_MASTER_DATA/AMITT_FRAMEWORKS_MASTER.xlsx new file mode 100644 index 0000000..2924e33 Binary files /dev/null and b/AMITT_MASTER_DATA/AMITT_FRAMEWORKS_MASTER.xlsx differ diff --git a/AMITT_MASTER_DATA/AMITT_TTPs_MASTER.xlsx b/AMITT_MASTER_DATA/AMITT_TTPs_MASTER.xlsx deleted file mode 100644 index d64c336..0000000 Binary files a/AMITT_MASTER_DATA/AMITT_TTPs_MASTER.xlsx and /dev/null differ diff --git a/HTML_GENERATING_CODE/.ipynb_checkpoints/AMITT_create_website_sql-checkpoint.ipynb b/HTML_GENERATING_CODE/.ipynb_checkpoints/AMITT_create_website_sql-checkpoint.ipynb index 033dc74..e42cf63 100644 --- a/HTML_GENERATING_CODE/.ipynb_checkpoints/AMITT_create_website_sql-checkpoint.ipynb +++ b/HTML_GENERATING_CODE/.ipynb_checkpoints/AMITT_create_website_sql-checkpoint.ipynb @@ -9,6 +9,172 @@ "Creates the sqlite file used as a datasource in the AMITT website tests. " ] }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "postgres://msenahnnwvuamr:227b5aeb1268572ab2d77f3158aecbdd50326bfff3026ab61aebb0fdcb0953a7@ec2-54-162-119-125.compute-1.amazonaws.com:5432/demudug8oqb3h0\n" + ] + } + ], + "source": [ + "hdatabase = \"postgres://msenahnnwvuamr:227b5aeb1268572ab2d77f3158aecbdd50326bfff3026ab61aebb0fdcb0953a7@ec2-54-162-119-125.compute-1.amazonaws.com:5432/demudug8oqb3h0\"\n", + "print(hdatabase)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "ename": "IntegrityError", + "evalue": "(psycopg2.errors.ForeignKeyViolation) insert or update on table \"counter\" violates foreign key constraint \"counter_tactic_id_fkey\"\nDETAIL: Key (tactic_id)=(TA01) is not present in table \"tactic\".\n\n[SQL: INSERT INTO counter (amitt_id, tactic_id, metatechnique_id, name, summary, id) VALUES (%(amitt_id)s, %(tactic_id)s, %(metatechnique_id)s, %(name)s, %(summary)s, %(id)s)]\n[parameters: ({'amitt_id': 'C00006', 'tactic_id': 'TA01', 'metatechnique_id': 'M004', 'name': 'Charge for social media', 'summary': 'Include a paid-for privacy option, e.g. pay Facebook for an option of them not collecting your personal information. There are examples of this not work, e.g. most people don’t use proton mail etc. ', 'id': 1}, {'amitt_id': 'C00008', 'tactic_id': 'TA01', 'metatechnique_id': 'M006', 'name': 'Create shared fact-checking database', 'summary': 'Share fact-checking resources - tips, responses, countermessages, across respose groups. Snopes is best-known example of fact-checking sites. ', 'id': 2}, {'amitt_id': 'C00009', 'tactic_id': 'TA02', 'metatechnique_id': 'M001', 'name': 'Educate high profile influencers on best practices', 'summary': 'Find online influencers. Provide training in the mechanisms of disinformation, how to spot campaigns, and/or how to contribute to responses by countermessaging, boosting information sites etc. ', 'id': 3}, {'amitt_id': 'C00010', 'tactic_id': 'TA01', 'metatechnique_id': 'M004', 'name': 'Enhanced privacy regulation for social media', 'summary': 'Implement stronger privacy standards, to reduce the ability to microtarget community members. ', 'id': 4}, {'amitt_id': 'C00011', 'tactic_id': 'TA02', 'metatechnique_id': 'M001', 'name': 'Media literacy. Games to identify fake news', 'summary': 'Create and use games to show people the mechanics of disinformation, and how to counter them. ', 'id': 5}, {'amitt_id': 'C00012', 'tactic_id': 'TA01', 'metatechnique_id': 'M007', 'name': 'Platform regulation', 'summary': 'Empower existing regulators to govern social media. Also covers Destroy. Includes: Include the role of social media in the regulatory framework for ... (288 characters truncated) ... dia police disinformation - example: German model: facebook forced to police content by law. Includes: Use fraud legislation to clean up social media', 'id': 6}, {'amitt_id': 'C00013', 'tactic_id': 'TA01', 'metatechnique_id': 'M006', 'name': 'Rating framework for news', 'summary': 'This is \"strategic innoculation\", raising the standards of what people expect in terms of evidence when consuming news. Example: journalistic ethics, or journalistic licensing body. Include full transcripts, link source, add items. ', 'id': 7}, {'amitt_id': 'C00014', 'tactic_id': 'TA06', 'metatechnique_id': 'M006', 'name': 'Real-time updates to fact-checking database', 'summary': 'Update fact-checking databases and resources in real time. Especially import for time-limited events like natural disasters. Existing examples at Buzzfeed and Fema.', 'id': 8} ... displaying 10 of 140 total bound parameter sets ... {'amitt_id': 'C00222', 'tactic_id': 'TA02', 'metatechnique_id': 'M007', 'name': 'Tabletop simulations', 'summary': 'Simulate misinformation and disinformation campaigns, and responses to them, before campaigns happen. ', 'id': 139}, {'amitt_id': 'C00223', 'tactic_id': 'TA01', 'metatechnique_id': 'M001', 'name': 'Strengthen Trust in social media platforms', 'summary': 'Improve trust in the misinformation responses from social media and other platforms. Examples include creating greater transparancy on their actions and algorithms. ', 'id': 140})]\n(Background on this error at: http://sqlalche.me/e/13/gkpj)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mForeignKeyViolation\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/engine/base.py\u001b[0m in \u001b[0;36m_execute_context\u001b[0;34m(self, dialect, constructor, statement, parameters, *args)\u001b[0m\n\u001b[1;32m 1256\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mevt_handled\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1257\u001b[0;31m self.dialect.do_executemany(\n\u001b[0m\u001b[1;32m 1258\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py\u001b[0m in \u001b[0;36mdo_executemany\u001b[0;34m(self, cursor, statement, parameters, context)\u001b[0m\n\u001b[1;32m 872\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecutemany_mode\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mEXECUTEMANY_DEFAULT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 873\u001b[0;31m \u001b[0mcursor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecutemany\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\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 874\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mForeignKeyViolation\u001b[0m: insert or update on table \"counter\" violates foreign key constraint \"counter_tactic_id_fkey\"\nDETAIL: Key (tactic_id)=(TA01) is not present in table \"tactic\".\n", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mIntegrityError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;31m#newtable = add_table(amitt.df_actortypes, 'actor_type', ['amitt_id', 'sector_id', 'framework_id', 'name', 'summary'])\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0;31m# counter\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 70\u001b[0;31m \u001b[0mnewtable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0madd_table\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mamitt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdf_counters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'counter'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'amitt_id'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'tactic_id'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'metatechnique_id'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'name'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'summary'\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\u001b[1;32m 71\u001b[0m \u001b[0mnewtable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0madd_table\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mamitt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdf_detections\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'detection'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'amitt_id'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'tactic_id'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'name'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'summary'\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 72\u001b[0m \u001b[0;31m# dataset\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36madd_table\u001b[0;34m(dataframe, tablename, columns)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0mnewtable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_sql\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtablename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mif_exists\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'replace'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 43\u001b[0;31m \u001b[0mnewtable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_sql\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtablename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mif_exists\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'append'\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 44\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnewtable\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 45\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mto_sql\u001b[0;34m(self, name, con, schema, if_exists, index, index_label, chunksize, dtype, method)\u001b[0m\n\u001b[1;32m 2651\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mpandas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mio\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0msql\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2652\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2653\u001b[0;31m sql.to_sql(\n\u001b[0m\u001b[1;32m 2654\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2655\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[0;32m~/opt/anaconda3/lib/python3.8/site-packages/pandas/io/sql.py\u001b[0m in \u001b[0;36mto_sql\u001b[0;34m(frame, name, con, schema, if_exists, index, index_label, chunksize, dtype, method)\u001b[0m\n\u001b[1;32m 510\u001b[0m )\n\u001b[1;32m 511\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 512\u001b[0;31m pandas_sql.to_sql(\n\u001b[0m\u001b[1;32m 513\u001b[0m \u001b[0mframe\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 514\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[0;32m~/opt/anaconda3/lib/python3.8/site-packages/pandas/io/sql.py\u001b[0m in \u001b[0;36mto_sql\u001b[0;34m(self, frame, name, if_exists, index, index_label, schema, chunksize, dtype, method)\u001b[0m\n\u001b[1;32m 1315\u001b[0m )\n\u001b[1;32m 1316\u001b[0m \u001b[0mtable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcreate\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-> 1317\u001b[0;31m \u001b[0mtable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minsert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchunksize\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\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 1318\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misdigit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mislower\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[1;32m 1319\u001b[0m \u001b[0;31m# check for potentially case sensitivity issues (GH7815)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/pandas/io/sql.py\u001b[0m in \u001b[0;36minsert\u001b[0;34m(self, chunksize, method)\u001b[0m\n\u001b[1;32m 753\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 754\u001b[0m \u001b[0mchunk_iter\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0marr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstart_i\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mend_i\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0marr\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdata_list\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--> 755\u001b[0;31m \u001b[0mexec_insert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeys\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchunk_iter\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 756\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 757\u001b[0m def _query_iterator(\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/pandas/io/sql.py\u001b[0m in \u001b[0;36m_execute_insert\u001b[0;34m(self, conn, keys, data_iter)\u001b[0m\n\u001b[1;32m 667\u001b[0m \"\"\"\n\u001b[1;32m 668\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mrow\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdata_iter\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 669\u001b[0;31m \u001b[0mconn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minsert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\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 670\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 671\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_execute_insert_multi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeys\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata_iter\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~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/engine/base.py\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, object_, *multiparams, **params)\u001b[0m\n\u001b[1;32m 1012\u001b[0m )\n\u001b[1;32m 1013\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1014\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mmeth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\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 1015\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1016\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_execute_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\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~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/sql/elements.py\u001b[0m in \u001b[0;36m_execute_on_connection\u001b[0;34m(self, connection, multiparams, params)\u001b[0m\n\u001b[1;32m 296\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_execute_on_connection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconnection\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\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 297\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msupports_execution\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 298\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mconnection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_execute_clauseelement\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\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 299\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 300\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mObjectNotExecutableError\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[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/engine/base.py\u001b[0m in \u001b[0;36m_execute_clauseelement\u001b[0;34m(self, elem, multiparams, params)\u001b[0m\n\u001b[1;32m 1125\u001b[0m )\n\u001b[1;32m 1126\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1127\u001b[0;31m ret = self._execute_context(\n\u001b[0m\u001b[1;32m 1128\u001b[0m \u001b[0mdialect\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1129\u001b[0m \u001b[0mdialect\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecution_ctx_cls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_init_compiled\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/engine/base.py\u001b[0m in \u001b[0;36m_execute_context\u001b[0;34m(self, dialect, constructor, statement, parameters, *args)\u001b[0m\n\u001b[1;32m 1315\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1316\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mBaseException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1317\u001b[0;31m self._handle_dbapi_exception(\n\u001b[0m\u001b[1;32m 1318\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1319\u001b[0m )\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/engine/base.py\u001b[0m in \u001b[0;36m_handle_dbapi_exception\u001b[0;34m(self, e, statement, parameters, cursor, context)\u001b[0m\n\u001b[1;32m 1509\u001b[0m \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnewraise\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwith_traceback\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfrom_\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1510\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mshould_wrap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1511\u001b[0;31m util.raise_(\n\u001b[0m\u001b[1;32m 1512\u001b[0m \u001b[0msqlalchemy_exception\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwith_traceback\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfrom_\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1513\u001b[0m )\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/util/compat.py\u001b[0m in \u001b[0;36mraise_\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 176\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 178\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexception\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 179\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 180\u001b[0m \u001b[0;31m# credit to\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/engine/base.py\u001b[0m in \u001b[0;36m_execute_context\u001b[0;34m(self, dialect, constructor, statement, parameters, *args)\u001b[0m\n\u001b[1;32m 1255\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1256\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mevt_handled\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1257\u001b[0;31m self.dialect.do_executemany(\n\u001b[0m\u001b[1;32m 1258\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1259\u001b[0m )\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py\u001b[0m in \u001b[0;36mdo_executemany\u001b[0;34m(self, cursor, statement, parameters, context)\u001b[0m\n\u001b[1;32m 871\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdo_executemany\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\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[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 872\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecutemany_mode\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mEXECUTEMANY_DEFAULT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 873\u001b[0;31m \u001b[0mcursor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecutemany\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\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 874\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 875\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIntegrityError\u001b[0m: (psycopg2.errors.ForeignKeyViolation) insert or update on table \"counter\" violates foreign key constraint \"counter_tactic_id_fkey\"\nDETAIL: Key (tactic_id)=(TA01) is not present in table \"tactic\".\n\n[SQL: INSERT INTO counter (amitt_id, tactic_id, metatechnique_id, name, summary, id) VALUES (%(amitt_id)s, %(tactic_id)s, %(metatechnique_id)s, %(name)s, %(summary)s, %(id)s)]\n[parameters: ({'amitt_id': 'C00006', 'tactic_id': 'TA01', 'metatechnique_id': 'M004', 'name': 'Charge for social media', 'summary': 'Include a paid-for privacy option, e.g. pay Facebook for an option of them not collecting your personal information. There are examples of this not work, e.g. most people don’t use proton mail etc. ', 'id': 1}, {'amitt_id': 'C00008', 'tactic_id': 'TA01', 'metatechnique_id': 'M006', 'name': 'Create shared fact-checking database', 'summary': 'Share fact-checking resources - tips, responses, countermessages, across respose groups. Snopes is best-known example of fact-checking sites. ', 'id': 2}, {'amitt_id': 'C00009', 'tactic_id': 'TA02', 'metatechnique_id': 'M001', 'name': 'Educate high profile influencers on best practices', 'summary': 'Find online influencers. Provide training in the mechanisms of disinformation, how to spot campaigns, and/or how to contribute to responses by countermessaging, boosting information sites etc. ', 'id': 3}, {'amitt_id': 'C00010', 'tactic_id': 'TA01', 'metatechnique_id': 'M004', 'name': 'Enhanced privacy regulation for social media', 'summary': 'Implement stronger privacy standards, to reduce the ability to microtarget community members. ', 'id': 4}, {'amitt_id': 'C00011', 'tactic_id': 'TA02', 'metatechnique_id': 'M001', 'name': 'Media literacy. Games to identify fake news', 'summary': 'Create and use games to show people the mechanics of disinformation, and how to counter them. ', 'id': 5}, {'amitt_id': 'C00012', 'tactic_id': 'TA01', 'metatechnique_id': 'M007', 'name': 'Platform regulation', 'summary': 'Empower existing regulators to govern social media. Also covers Destroy. Includes: Include the role of social media in the regulatory framework for ... (288 characters truncated) ... dia police disinformation - example: German model: facebook forced to police content by law. Includes: Use fraud legislation to clean up social media', 'id': 6}, {'amitt_id': 'C00013', 'tactic_id': 'TA01', 'metatechnique_id': 'M006', 'name': 'Rating framework for news', 'summary': 'This is \"strategic innoculation\", raising the standards of what people expect in terms of evidence when consuming news. Example: journalistic ethics, or journalistic licensing body. Include full transcripts, link source, add items. ', 'id': 7}, {'amitt_id': 'C00014', 'tactic_id': 'TA06', 'metatechnique_id': 'M006', 'name': 'Real-time updates to fact-checking database', 'summary': 'Update fact-checking databases and resources in real time. Especially import for time-limited events like natural disasters. Existing examples at Buzzfeed and Fema.', 'id': 8} ... displaying 10 of 140 total bound parameter sets ... {'amitt_id': 'C00222', 'tactic_id': 'TA02', 'metatechnique_id': 'M007', 'name': 'Tabletop simulations', 'summary': 'Simulate misinformation and disinformation campaigns, and responses to them, before campaigns happen. ', 'id': 139}, {'amitt_id': 'C00223', 'tactic_id': 'TA01', 'metatechnique_id': 'M001', 'name': 'Strengthen Trust in social media platforms', 'summary': 'Improve trust in the misinformation responses from social media and other platforms. Examples include creating greater transparancy on their actions and algorithms. ', 'id': 140})]\n(Background on this error at: http://sqlalche.me/e/13/gkpj)" + ] + } + ], + "source": [ + "# Get AMITT variables\n", + "\n", + "import pandas as pd\n", + "import sqlite3 as sql\n", + "import os\n", + "from sqlalchemy import create_engine\n", + "from generate_amitt_ttps import Amitt\n", + "pd.set_option('display.max_rows', 1000)\n", + "\n", + "\n", + "# Generate AMITT datasets\n", + "amitt = Amitt()\n", + "\n", + "dbasetype = 'heroku' #'postgresql_local' #'sqlite'\n", + "\n", + "\n", + "# Create connection to database\n", + "if dbasetype == 'sqlite':\n", + " # Generate minimal sqlite database from the Amitt variables\n", + " conn = sql.connect('amittsite.sqlite')\n", + "elif dbasetype == 'postgresql_local':\n", + " conn = create_engine('postgresql://sara:@localhost:5432/amittsite')\n", + "else:\n", + " conn = create_engine(\"postgres://msenahnnwvuamr:227b5aeb1268572ab2d77f3158aecbdd50326bfff3026ab61aebb0fdcb0953a7@ec2-54-162-119-125.compute-1.amazonaws.com:5432/demudug8oqb3h0\")\n", + "\n", + " \n", + "# Add table to database \n", + "def add_table(dataframe, tablename, columns): \n", + " # Create sql-appropriate table from dataframe\n", + " colnames = ', '.join(['{} TEXT NOT NULL'.format(col) for col in columns])\n", + " newtable = dataframe[columns].copy().applymap(str)\n", + " newtable['id'] = range(1,len(newtable)+1)\n", + " \n", + " # send to database\n", + " if dbasetype == 'sqlite':\n", + " conn.execute(\"DROP TABLE IF EXISTS {}\".format(tablename))\n", + " conn.execute('''CREATE TABLE {} (id INTEGER PRIMARY KEY AUTOINCREMENT, {});'''.format(tablename, colnames))\n", + " newtable.to_sql(tablename, conn, index=False, if_exists='append')\n", + " conn.commit()\n", + " elif dbasetype == 'postgresql_local':\n", + " newtable.to_sql(tablename, conn, index=False, if_exists='replace')\n", + " else:\n", + " newtable.to_sql(tablename, conn, index=False, if_exists='append')\n", + " return newtable\n", + "\n", + "# Build a cross-table\n", + "def object_tactics_techniques(objectcol, objecttable, crosstable):\n", + " # objects to techniques\n", + " ctech = crosstable.copy()\n", + " ctech = ctech[(ctech['technique_id'] != '') & (~ctech['technique_id'].str.startswith('TA'))]\n", + " ctech.rename(columns={'amitt_id':objectcol}, inplace=True)\n", + " ctech['summary'] = 'N/A'\n", + "\n", + " # objects to tactics\n", + " ctact = crosstable[crosstable['technique_id'].str.startswith('TA')].copy()\n", + " ctact.rename(columns={'amitt_id':objectcol, 'technique_id': 'tactic_id'}, inplace=True)\n", + " ctact['main_tactic'] = 'N'\n", + " ctactmain = objecttable[['amitt_id', 'tactic_id']].copy()\n", + " ctactmain.rename(columns={'amitt_id':objectcol}, inplace=True)\n", + " ctactmain['main_tactic'] = 'Y'\n", + " ctact = pd.concat([ctact, ctactmain], ignore_index=True, sort=False)\n", + " ctact['summary'] = 'N/A'\n", + " return(ctech, ctact)\n", + "\n", + "\n", + "#Load all the tables - Heroku needs them in correct order... \n", + "\n", + "#newtable = add_table(amitt.df_actortypes, 'actor_type', ['amitt_id', 'sector_id', 'framework_id', 'name', 'summary'])\n", + "# counter\n", + "newtable = add_table(amitt.df_counters, 'counter', ['amitt_id', 'tactic_id', 'metatechnique_id', 'name', 'summary'])\n", + "newtable = add_table(amitt.df_detections, 'detection', ['amitt_id', 'tactic_id', 'name', 'summary'])\n", + "# dataset\n", + "newtable = add_table(amitt.df_frameworks, 'framework', ['amitt_id', 'name', 'summary'])\n", + "# incident\n", + "# metatechnique\n", + "newtable = add_table(amitt.df_metatechniques, 'metatechnique', ['amitt_id', 'name', 'summary'])\n", + "newtable = add_table(amitt.df_phases, 'phase', ['amitt_id', 'name', 'rank', 'summary'])\n", + "# playbook\n", + "# reference\n", + "# response_type\n", + "# sector\n", + "newtable = add_table(amitt.df_tactics, 'tactic', ['amitt_id', 'phase_id', 'name', 'rank', 'summary'])\n", + "newtable = add_table(amitt.df_tasks, 'task', ['amitt_id', 'tactic_id', 'framework_id', 'name', 'summary'])\n", + "newtable = add_table(amitt.df_techniques, 'technique', ['amitt_id', 'tactic_id', 'name', 'summary'])\n", + "\n", + "(ctech, ctact) = object_tactics_techniques('counter_id', amitt.df_counters, amitt.cross_counterid_techniqueid)\n", + "newtable = add_table(ctech, 'counter_technique', ['counter_id', 'technique_id', 'summary'])\n", + "newtable = add_table(ctact, 'counter_tactic', ['counter_id', 'tactic_id', 'main_tactic', 'summary'])\n", + "\n", + "(dtech, dtact) = object_tactics_techniques('detection_id', amitt.df_detections, amitt.cross_detectionid_techniqueid)\n", + "newtable = add_table(dtech, 'detection_technique', ['detection_id', 'technique_id', 'summary'])\n", + "newtable = add_table(dtact, 'detection_tactic', ['detection_id', 'tactic_id', 'main_tactic', 'summary'])\n", + "\n", + "if dbasetype == 'sqlite':\n", + " conn.execute(\"DROP TABLE IF EXISTS {}\".format('users'))\n", + " conn.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password TEXT NOT NULL);''')\n", + " conn.close()\n", + "else:\n", + " dfusers = pd.DataFrame([['test','testing']], columns=['username', 'password'])\n", + " usertable = add_table(dfusers, 'users', ['username', 'password'])\n", + "\n", + "newtable" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## test area" + ] + }, { "cell_type": "code", "execution_count": 2, @@ -5515,17 +5681,6 @@ } ], "source": [ - "# Get AMITT variables\n", - "\n", - "import pandas as pd\n", - "import sqlite3 as sql\n", - "from generate_amitt_ttps import Amitt\n", - "pd.set_option('display.max_rows', 1000)\n", - "\n", - "\n", - "# Generate AMITT datasets\n", - "amitt = Amitt()\n", - "\n", "# Check which amitt variables we can see from here\n", "print('{}'.format(vars(amitt).keys()))\n", "vars(amitt)['cross_counterid_techniqueid']" @@ -5533,6048 +5688,26 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
amitt_idnamemetatechniquesummaryactorsresources_neededhow_foundreferencesincidentstacticresponsetypenotestechniqueslongnametactic_idtactic_name
0F00001Analyse aborted / failed campaignsExamine failed campaigns. How did they fail? C...2019-11-workshopTA01 Strategic PlanningD1 DetectAllF00001 - Analyse aborted / failed campaignsTA01Strategic Planning
1F00002Analyse viral fizzle2019-11-workshopTA01 Strategic PlanningD1 DetectT0049 - Flooding\\nT0052 - Tertiary sites ampli...F00002 - Analyse viral fizzleTA01Strategic Planning
2F00003Exploit counter-intelligence vs bad actors2019-11-workshopTA01 Strategic PlanningD1 DetectTA06 - Develop Content\\nTA08 - Pump Priming\\nT...F00003 - Exploit counter-intelligence vs bad a...TA01Strategic Planning
3F00004Recruit like-minded converts \"people who used ...2019-11-workshopTA01 Strategic PlanningD1 DetectT0057 - Organise remote rallies and events\\nT0...F00004 - Recruit like-minded converts \"people ...TA01Strategic Planning
4F00005SWOT Analysis of Cognition in Various Groups2019-11-workshopTA01 Strategic PlanningD1 DetectAllF00005 - SWOT Analysis of Cognition in Various...TA01Strategic Planning
5F00006SWOT analysis of tech platforms2019-11-workshopTA01 Strategic PlanningD1 DetectTA05 - Microtargeting\\nTA07 - Channel Selectio...F00006 - SWOT analysis of tech platformsTA01Strategic Planning
6F00007Monitor account level activity in social networks2019-11-workshopTA02 Objective PlanningD1 DetectAllF00007 - Monitor account level activity in soc...TA02Objective Planning
7F00008Detect abnormal amplification2019-11-workshopTA03 Develop PeopleD1 DetectT0052 - Tertiary sites amplify news\\nT0053 - T...F00008 - Detect abnormal amplificationTA03Develop People
8F00009Detect abnormal events2019-11-workshopTA03 Develop PeopleD1 DetectT0007 - Create fake Social Media Profiles / Pa...F00009 - Detect abnormal eventsTA03Develop People
9F00010Detect abnormal groups2019-11-workshopTA03 Develop PeopleD1 DetectT0007 - Create fake Social Media Profiles / Pa...F00010 - Detect abnormal groupsTA03Develop People
10F00011Detect abnormal pages2019-11-workshopTA03 Develop PeopleD1 DetectT0007 - Create fake Social Media Profiles / Pa...F00011 - Detect abnormal pagesTA03Develop People
11F00012Detect abnormal profiles, e.g. prolific pages/...2019-11-workshopTA03 Develop PeopleD1 DetectT0007 - Create fake Social Media Profiles / Pa...F00012 - Detect abnormal profiles, e.g. prolif...TA03Develop People
12F00013Identify fake news sites2019-11-workshopTA03 Develop PeopleD1 DetectT0008F00013 - Identify fake news sitesTA03Develop People
13F00014Trace connectionsfor e.g. fake news sites2019-11-workshopTA03 Develop PeopleD1 DetectT0008F00014 - Trace connectionsTA03Develop People
14F00015Detect anomalies in membership growth patternsI include Fake Experts as they may use funding...2019-11-workshopTA03 Develop PeopleD1 DetectTA07 - Channel Selection\\n\\nT0007 - Create fak...F00015 - Detect anomalies in membership growth...TA03Develop People
15F00016Identify fence-sittersNote: In each case, depending on the platform ...2019-11-workshopTA03 Develop PeopleD1 DetectTA08 - Pump Priming\\nTA09 - Exposure\\nTA10 - G...F00016 - Identify fence-sittersTA03Develop People
16F00017Measure emotional valence2019-11-workshopTA03 Develop PeopleD1 DetectT0001 - 5Ds (dismiss, distort, distract, disma...F00017 - Measure emotional valenceTA03Develop People
17F00018Follow the moneytrack funding sources2019-11-workshopTA03 Develop PeopleD1 DetectT0009F00018 - Follow the moneyTA03Develop People
18F00019Activity resurgence detection (alarm when dorm...2019-11-workshopTA04 Develop NetworksD1 DetectT0011 - Hijack accountsF00019 - Activity resurgence detection (alarm ...TA04Develop Networks
19F00020Detect anomalous activityA015 - general public,A001 - data scientist,A0...R004 - platform algorithms2019-11-workshopTA04 Develop NetworksD1 DetectT0011 - Hijack accountsF00020 - Detect anomalous activityTA04Develop Networks
20F00021AI/ML automated early detection of campaign pl...2019-11-workshopTA04 Develop NetworksD1 DetectAutomated Detection of CampaignTA03 - Develop People\\nTA04 - Develop Networks...F00021 - AI/ML automated early detection of ca...TA04Develop Networks
21F00022Digital authority - regulating body (united st...2019-11-workshopTA04 Develop NetworksD1 DetectF00022 - Digital authority - regulating body (...TA04Develop Networks
22F00023Periodic verification (counter to hijack legit...2019-11-workshopTA04 Develop NetworksD1 DetectT0011 - Hijack accountsF00023 - Periodic verification (counter to hij...TA04Develop Networks
23F00024Teach civics to kids/ adults/ seniors2019-11-workshopTA04 Develop NetworksD1 DetectF00024 - Teach civics to kids/ adults/ seniorsTA04Develop Networks
24F00025Boots-on-the-ground early narrative detection2019-11-workshopTA05 MicrotargetingD1 DetectTA01 - Strategic Planning\\nTA02 - Objective Pl...F00025 - Boots-on-the-ground early narrative d...TA05Microtargeting
25F00026Language anomoly detection2019-11-workshopTA05 MicrotargetingD1 DetectF00026 - Language anomoly detectionTA05Microtargeting
26F00027Unlikely correlation of sentiment on same topics2019-11-workshopTA05 MicrotargetingD1 DetectF00027 - Unlikely correlation of sentiment on ...TA05Microtargeting
27F00028Associate a public key signature with governme...2019-11-workshopTA06 Develop ContentD1 DetectT0025 - Leak altered documentsF00028 - Associate a public key signature with...TA06Develop Content
28F00029Detect proto narratives, i.e. RT, Sputnik2019-11-workshopTA06 Develop ContentD1 DetectTA01 - Strategic Planning\\n\\nT0006 - Create Ma...F00029 - Detect proto narratives, i.e. RT, Spu...TA06Develop Content
29F00030Early detection and warning - reporting of sus...2019-11-workshopTA06 Develop ContentD1 DetectTA03 - Develop People\\nTA04 - Develop Networks...F00030 - Early detection and warning - reporti...TA06Develop Content
30F00031Educate on how to identify information pollutionStrategic planning included as innoculating po...2019-11-workshopTA06 Develop ContentD1 DetectTA01 - Strategic Planning\\n\\nT0019 - Generate ...F00031 - Educate on how to identify informatio...TA06Develop Content
31F00032Educate on how to identify to pollutionDUPLICATE - DELETE2019-11-workshopTA06 Develop ContentD1 DetectDUPLICATE - DELETEF00032 - Educate on how to identify to pollutionTA06Develop Content
32F00033Fake websites: add transparency on business model2019-11-workshopTA06 Develop ContentD1 DetectT0013 - Create fake websitesF00033 - Fake websites: add transparency on bu...TA06Develop Content
33F00034Flag the information spaces so people know abo...2019-11-workshopTA06 Develop ContentD1 DetectT0049 - FloodingF00034 - Flag the information spaces so people...TA06Develop Content
34F00035Identify repeated narrative DNA2019-11-workshopTA06 Develop ContentD1 DetectTA01 - Strategic Planning\\n\\nT0006 - Create Ma...F00035 - Identify repeated narrative DNATA06Develop Content
35F00036Looking for AB testing in unregulated channels2019-11-workshopTA06 Develop ContentD1 DetectT0020 - Trial contentF00036 - Looking for AB testing in unregulated...TA06Develop Content
36F00037News content provenance certification.Original Comment: Shortcomings: intentional fa...2019-11-workshopTA06 Develop ContentD1 DetectTA01 - Strategic Planning* (non-existent techn...F00037 - News content provenance certification.TA06Develop Content
37F00038Social capital as attack vectorUnsure I understood the original intention or ...2019-11-workshopTA06 Develop ContentD1 DetectT0010 - Cultivate ignorant agents\\nT0039 - Bai...F00038 - Social capital as attack vectorTA06Develop Content
38F00039standards to track image/ video deep fakes - i...2019-11-workshopTA06 Develop ContentD1 DetectT0024 - Create fake videos and imagesF00039 - standards to track image/ video deep ...TA06Develop Content
39F00040Unalterable metadata signature on origins of i...2019-11-workshopTA06 Develop ContentD1 DetectT0024 - Create fake videos and imagesF00040 - Unalterable metadata signature on ori...TA06Develop Content
40F00041Bias detectionNot technically left of boom2019-11-workshopTA07 Channel SelectionD1 DetectT00029F00041 - Bias detectionTA07Channel Selection
41F00042Categorize polls by intentUse T00029, but against the creators2019-11-workshopTA07 Channel SelectionD1 DetectT00029F00042 - Categorize polls by intentTA07Channel Selection
42F00043Monitor for creation of fake known personasPlatform companies and some information securi...A031 - social media platform administrator,A01...2019-11-workshopTA07 Channel SelectionD1 DetectT00030F00043 - Monitor for creation of fake known pe...TA07Channel Selection
43F00044Forensic analysisCan be used in all phases for all techniques.2019-11-workshopTA08 Pump PrimingD1 DetectAllF00044 - Forensic analysisTA08Pump Priming
44F00045Forensic linguistic analysisCan be used in all phases for all techniques.2019-11-workshopTA08 Pump PrimingD1 DetectAllF00045 - Forensic linguistic analysisTA08Pump Priming
45F00046Pump priming analytics2019-11-workshopTA08 Pump PrimingD1 DetectTA08 - Pump PrimingF00046 - Pump priming analyticsTA08Pump Priming
46F00047trace involved parties2019-11-workshopTA08 Pump PrimingD1 DetectF00047 - trace involved partiesTA08Pump Priming
47F00048Trace known operations and connection2019-11-workshopTA08 Pump PrimingD1 DetectF00048 - Trace known operations and connectionTA08Pump Priming
48F00049trace money2019-11-workshopTA08 Pump PrimingD1 DetectF00049 - trace moneyTA08Pump Priming
49F00050Web cache analytics2019-11-workshopTA08 Pump PrimingD1 DetectF00050 - Web cache analyticsTA08Pump Priming
50F00051Challenge expertise2019-11-workshopTA09 ExposureD1 DetectT0009 - Create fake experts\\nT0045 - Use fake ...F00051 - Challenge expertiseTA09Exposure
51F00052Discover sponsorsDiscovering the sponsors behind a campaign, na...2019-11-workshopTA09 ExposureD1 DetectAllF00052 - Discover sponsorsTA09Exposure
52F00053Government rumour control office (what can we ...2019-11-workshopTA09 ExposureD1 DetectT0049\\nT0050\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056F00053 - Government rumour control office (wha...TA09Exposure
53F00054Restrict people who can @ you on social networks2019-11-workshopTA09 ExposureD1 DetectF00054 - Restrict people who can @ you on soci...TA09Exposure
54F00055Verify credentials2019-11-workshopTA09 ExposureD1 DetectF00055 - Verify credentialsTA09Exposure
55F00056Verify organisation legitimacy2019-11-workshopTA09 ExposureD1 DetectF00056 - Verify organisation legitimacyTA09Exposure
56F00057Verify personal credentials of experts2019-11-workshopTA09 ExposureD1 DetectF00057 - Verify personal credentials of expertsTA09Exposure
57F00058Deplatform (cancel culture)*Deplatform People: This technique needs to be...2019-11-workshopTA10 Go PhysicalD1 DetectTA07 - Channel Selection\\nTA09 - Exposure\\nTA1...F00058 - Deplatform (cancel culture)TA10Go Physical
58F00059Identify susceptible demographicsAll techniques provide or are susceptible to b...2019-11-workshopTA10 Go PhysicalD1 DetectAllF00059 - Identify susceptible demographicsTA10Go Physical
59F00060Identify susceptible influencersI assume this was a transcript error. Otherwis...2019-11-workshopTA10 Go PhysicalD1 DetectT0039 - Bait legitimate influencersF00060 - Identify susceptible influencersTA10Go Physical
60F00061Microtargeting2019-11-workshopTA10 Go PhysicalD1 DetectAllF00061 - MicrotargetingTA10Go Physical
61F00062Detect when Dormant account turns active2019-11-workshopTA11 PersistenceD1 DetectTA09 - Exposure\\n\\nT0007 - Create fake Social ...F00062 - Detect when Dormant account turns activeTA11Persistence
62F00063Linguistic change analysis2019-11-workshopTA11 PersistenceD1 DetectF00063 - Linguistic change analysisTA11Persistence
63F00064Monitor reports of account takeover2019-11-workshopTA11 PersistenceD1 DetectT0011 - Hijack legitimate accountF00064 - Monitor reports of account takeoverTA11Persistence
64F00065Sentiment change analysis2019-11-workshopTA11 PersistenceD1 DetectF00065 - Sentiment change analysisTA11Persistence
65F00066Use language errors, time to respond to accoun...2019-11-workshopTA11 PersistenceD1 DetectF00066 - Use language errors, time to respond ...TA11Persistence
66F00067Data forensicsA001 - data scientist2019-11-searchI00029,I00045D1 DetectF00067 - Data forensicsNone
67F00068Resonance analysisa developing methodology for identifying stati...2019-11-searchRand2237D1 DetectF00068 - Resonance analysisNone
68F00069Track Russian media and develop analytic methods.To effectively counter Russian propaganda, it ...2019-11-searchRand2237D1 DetectF00069 - Track Russian media and develop analy...None
69F00070Full spectrum analyticsA001 - data scientist2019-11-workshopALLD1 DetectF00070 - Full spectrum analyticsALLNone
70F00071Network analysis Identify/cultivate/support in...Local influencers detected via Twitter network...A001 - data scientist2019-11-searchRand2237D1 DetectF00071 - Network analysis Identify/cultivate/s...None
71F00072network analysis to identify central users in ...It is possible that some of these are bots or ...A001 - data scientist2019-11-searchRand2237D1 DetectF00072 - network analysis to identify central ...None
72F00073collect intel/recon on black/covert content cr...Players at the level of covert attribution, re...2019-11-searchRand2237D1 DetectF00073 - collect intel/recon on black/covert c...None
73F00074identify relevant fence-sitter communitiesbrand ambassador programs could be used with i...2019-11-searchRand2237D1 DetectF00074 - identify relevant fence-sitter commun...None
74F00075leverage open-source informationsignificant amounts of quality open-source inf...2019-11-searchDalton19D1 DetectF00075 - leverage open-source informationNone
75F00076Monitor/collect audience engagement data conne...Target audience connected to \"useful idiots ra...2019-11-searchRand2237D1 DetectF00076 - Monitor/collect audience engagement d...None
76F00077Model for bot account behaviorBot account: action based, people. Unsure whic...2019-11-workshopTA03 Develop PeopleD1 DetectF00077 - Model for bot account behaviorTA03Develop People
77F00078Monitor account level activity in social networksAll techniques benefit from careful analysis a...2019-11-workshopTA03 Develop PeopleD1 DetectAllF00078 - Monitor account level activity in soc...TA03Develop People
78F00079Network anomaly detectionA001 - data scientist2019-11-workshopTA05 MicrotargetingD1 DetectT0029 - Manipulate online polls\\nT0047 - Muzzl...F00079 - Network anomaly detectionTA05Microtargeting
79F00080Hack the polls/ content yourselfTwo wrongs don't make a right? But if you hack...A015 - general public2019-11-workshopTA07 Channel SelectionD1 DetectT0029 - Manipulate online pollsF00080 - Hack the polls/ content yourselfTA07Channel Selection
80F00081Need way for end user to report operations2019-11-workshopTA09 ExposureD1 DetectT0049\\nT0050\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056F00081 - Need way for end user to report opera...TA09Exposure
81F00082Control the US \"slang\" translation boardsA028 - platform administratorR005 - slang translation2019-11-workshopTA11 PersistenceD3 DisruptF00082 - Control the US \"slang\" translation bo...TA11Persistence
82F00083Build and own meme generator, then track and w...2019-11-workshopTA11 PersistenceD5 DeceiveT0012 - Use concealment\\nT0021 - MemesF00083 - Build and own meme generator, then tr...TA11Persistence
83F00084Track individual bad actors2019-11-workshopTA03 Develop PeopleD1 DetectF00084 - Track individual bad actorsTA03Develop People
84F00085detection of a weak signal through global noiseGray zone threats are challenging given that w...2019-11-searchDalton19F00085 - detection of a weak signal through gl...None
85F00086Outpace Competitor Intelligence CapabilitiesDevelop an intelligence-based understanding of...2019-11-searchHicks19TA02 Objective planningD1 DetectF00086 - Outpace Competitor Intelligence Capab...TA02Objective planning
86F00087Improve Indications and WarningUnited States has not adequately adapted its i...2019-11-searchHicks19D1 DetectF00087 - Improve Indications and WarningNone
87F00088Revitalize an “active measures working group,”Recognize campaigns from weak signals, includi...2019-11-searchDalton19D1 DetectF00088 - Revitalize an “active measures workin...None
88F00089target/name/flag \"grey zone\" website content\"Gray zone\" is second level of content produce...2019-11-searchRand2237TA04 Develop NetworksD1 DetectF00089 - target/name/flag \"grey zone\" website ...TA04Develop Networks
89F00090Match Punitive Tools with Third-Party InducementsBring private sector and civil society into ac...2019-11-searchHicks19TA01 Strategic PlanningD1 DetectF00090 - Match Punitive Tools with Third-Party...TA01Strategic Planning
90F00091Partner to develop analytic methods & toolsThis might include working with relevant techn...A001 data scientist,A024 developer2019-11-searchRand2237TA01 Strategic PlanningD1 DetectF00091 - Partner to develop analytic methods &...TA01Strategic Planning
91F00092daylightWarn social media companies about an ongoing c...A015 - general publicR006 - disinformation datasets2019-11-searchI00002TA09 ExposureD1 DetectF00092 - daylightTA09Exposure
92F00093S4d detection and re-allocation approachesM004 - frictionS4D is a way to separate out different speaker...2019-11-workshopTA03 Develop PeopleD3 DisruptT0011 - Hijack legitimate accountF00093 - S4d detection and re-allocation appro...TA03Develop People
93F00094Registries alert when large batches of newsy U...M003 - daylightA028 - platform administratorgrugqTA07 Channel SelectionD2 DenyT0013 - Create fake websites\\nT0008 - Create f...F00094 - Registries alert when large batches o...TA07Channel Selection
\n", - "
" - ], - "text/plain": [ - " amitt_id name \\\n", - "0 F00001 Analyse aborted / failed campaigns \n", - "1 F00002 Analyse viral fizzle \n", - "2 F00003 Exploit counter-intelligence vs bad actors \n", - "3 F00004 Recruit like-minded converts \"people who used ... \n", - "4 F00005 SWOT Analysis of Cognition in Various Groups \n", - "5 F00006 SWOT analysis of tech platforms \n", - "6 F00007 Monitor account level activity in social networks \n", - "7 F00008 Detect abnormal amplification \n", - "8 F00009 Detect abnormal events \n", - "9 F00010 Detect abnormal groups \n", - "10 F00011 Detect abnormal pages \n", - "11 F00012 Detect abnormal profiles, e.g. prolific pages/... \n", - "12 F00013 Identify fake news sites \n", - "13 F00014 Trace connections \n", - "14 F00015 Detect anomalies in membership growth patterns \n", - "15 F00016 Identify fence-sitters \n", - "16 F00017 Measure emotional valence \n", - "17 F00018 Follow the money \n", - "18 F00019 Activity resurgence detection (alarm when dorm... \n", - "19 F00020 Detect anomalous activity \n", - "20 F00021 AI/ML automated early detection of campaign pl... \n", - "21 F00022 Digital authority - regulating body (united st... \n", - "22 F00023 Periodic verification (counter to hijack legit... \n", - "23 F00024 Teach civics to kids/ adults/ seniors \n", - "24 F00025 Boots-on-the-ground early narrative detection \n", - "25 F00026 Language anomoly detection \n", - "26 F00027 Unlikely correlation of sentiment on same topics \n", - "27 F00028 Associate a public key signature with governme... \n", - "28 F00029 Detect proto narratives, i.e. RT, Sputnik \n", - "29 F00030 Early detection and warning - reporting of sus... \n", - "30 F00031 Educate on how to identify information pollution \n", - "31 F00032 Educate on how to identify to pollution \n", - "32 F00033 Fake websites: add transparency on business model \n", - "33 F00034 Flag the information spaces so people know abo... \n", - "34 F00035 Identify repeated narrative DNA \n", - "35 F00036 Looking for AB testing in unregulated channels \n", - "36 F00037 News content provenance certification. \n", - "37 F00038 Social capital as attack vector \n", - "38 F00039 standards to track image/ video deep fakes - i... \n", - "39 F00040 Unalterable metadata signature on origins of i... \n", - "40 F00041 Bias detection \n", - "41 F00042 Categorize polls by intent \n", - "42 F00043 Monitor for creation of fake known personas \n", - "43 F00044 Forensic analysis \n", - "44 F00045 Forensic linguistic analysis \n", - "45 F00046 Pump priming analytics \n", - "46 F00047 trace involved parties \n", - "47 F00048 Trace known operations and connection \n", - "48 F00049 trace money \n", - "49 F00050 Web cache analytics \n", - "50 F00051 Challenge expertise \n", - "51 F00052 Discover sponsors \n", - "52 F00053 Government rumour control office (what can we ... \n", - "53 F00054 Restrict people who can @ you on social networks \n", - "54 F00055 Verify credentials \n", - "55 F00056 Verify organisation legitimacy \n", - "56 F00057 Verify personal credentials of experts \n", - "57 F00058 Deplatform (cancel culture) \n", - "58 F00059 Identify susceptible demographics \n", - "59 F00060 Identify susceptible influencers \n", - "60 F00061 Microtargeting \n", - "61 F00062 Detect when Dormant account turns active \n", - "62 F00063 Linguistic change analysis \n", - "63 F00064 Monitor reports of account takeover \n", - "64 F00065 Sentiment change analysis \n", - "65 F00066 Use language errors, time to respond to accoun... \n", - "66 F00067 Data forensics \n", - "67 F00068 Resonance analysis \n", - "68 F00069 Track Russian media and develop analytic methods. \n", - "69 F00070 Full spectrum analytics \n", - "70 F00071 Network analysis Identify/cultivate/support in... \n", - "71 F00072 network analysis to identify central users in ... \n", - "72 F00073 collect intel/recon on black/covert content cr... \n", - "73 F00074 identify relevant fence-sitter communities \n", - "74 F00075 leverage open-source information \n", - "75 F00076 Monitor/collect audience engagement data conne... \n", - "76 F00077 Model for bot account behavior \n", - "77 F00078 Monitor account level activity in social networks \n", - "78 F00079 Network anomaly detection \n", - "79 F00080 Hack the polls/ content yourself \n", - "80 F00081 Need way for end user to report operations \n", - "81 F00082 Control the US \"slang\" translation boards \n", - "82 F00083 Build and own meme generator, then track and w... \n", - "83 F00084 Track individual bad actors \n", - "84 F00085 detection of a weak signal through global noise \n", - "85 F00086 Outpace Competitor Intelligence Capabilities \n", - "86 F00087 Improve Indications and Warning \n", - "87 F00088 Revitalize an “active measures working group,” \n", - "88 F00089 target/name/flag \"grey zone\" website content \n", - "89 F00090 Match Punitive Tools with Third-Party Inducements \n", - "90 F00091 Partner to develop analytic methods & tools \n", - "91 F00092 daylight \n", - "92 F00093 S4d detection and re-allocation approaches \n", - "93 F00094 Registries alert when large batches of newsy U... \n", - "\n", - " metatechnique summary \\\n", - "0 Examine failed campaigns. How did they fail? C... \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "5 \n", - "6 \n", - "7 \n", - "8 \n", - "9 \n", - "10 \n", - "11 \n", - "12 \n", - "13 for e.g. fake news sites \n", - "14 I include Fake Experts as they may use funding... \n", - "15 Note: In each case, depending on the platform ... \n", - "16 \n", - "17 track funding sources \n", - "18 \n", - "19 \n", - "20 \n", - "21 \n", - "22 \n", - "23 \n", - "24 \n", - "25 \n", - "26 \n", - "27 \n", - "28 \n", - "29 \n", - "30 Strategic planning included as innoculating po... \n", - "31 DUPLICATE - DELETE \n", - "32 \n", - "33 \n", - "34 \n", - "35 \n", - "36 Original Comment: Shortcomings: intentional fa... \n", - "37 Unsure I understood the original intention or ... \n", - "38 \n", - "39 \n", - "40 Not technically left of boom \n", - "41 Use T00029, but against the creators \n", - "42 Platform companies and some information securi... \n", - "43 Can be used in all phases for all techniques. \n", - "44 Can be used in all phases for all techniques. \n", - "45 \n", - "46 \n", - "47 \n", - "48 \n", - "49 \n", - "50 \n", - "51 Discovering the sponsors behind a campaign, na... \n", - "52 \n", - "53 \n", - "54 \n", - "55 \n", - "56 \n", - "57 *Deplatform People: This technique needs to be... \n", - "58 All techniques provide or are susceptible to b... \n", - "59 I assume this was a transcript error. Otherwis... \n", - "60 \n", - "61 \n", - "62 \n", - "63 \n", - "64 \n", - "65 \n", - "66 \n", - "67 a developing methodology for identifying stati... \n", - "68 To effectively counter Russian propaganda, it ... \n", - "69 \n", - "70 Local influencers detected via Twitter network... \n", - "71 It is possible that some of these are bots or ... \n", - "72 Players at the level of covert attribution, re... \n", - "73 brand ambassador programs could be used with i... \n", - "74 significant amounts of quality open-source inf... \n", - "75 Target audience connected to \"useful idiots ra... \n", - "76 Bot account: action based, people. Unsure whic... \n", - "77 All techniques benefit from careful analysis a... \n", - "78 \n", - "79 Two wrongs don't make a right? But if you hack... \n", - "80 \n", - "81 \n", - "82 \n", - "83 \n", - "84 Gray zone threats are challenging given that w... \n", - "85 Develop an intelligence-based understanding of... \n", - "86 United States has not adequately adapted its i... \n", - "87 Recognize campaigns from weak signals, includi... \n", - "88 \"Gray zone\" is second level of content produce... \n", - "89 Bring private sector and civil society into ac... \n", - "90 This might include working with relevant techn... \n", - "91 Warn social media companies about an ongoing c... \n", - "92 M004 - friction S4D is a way to separate out different speaker... \n", - "93 M003 - daylight \n", - "\n", - " actors \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "5 \n", - "6 \n", - "7 \n", - "8 \n", - "9 \n", - "10 \n", - "11 \n", - "12 \n", - "13 \n", - "14 \n", - "15 \n", - "16 \n", - "17 \n", - "18 \n", - "19 A015 - general public,A001 - data scientist,A0... \n", - "20 \n", - "21 \n", - "22 \n", - "23 \n", - "24 \n", - "25 \n", - "26 \n", - "27 \n", - "28 \n", - "29 \n", - "30 \n", - "31 \n", - "32 \n", - "33 \n", - "34 \n", - "35 \n", - "36 \n", - "37 \n", - "38 \n", - "39 \n", - "40 \n", - "41 \n", - "42 A031 - social media platform administrator,A01... \n", - "43 \n", - "44 \n", - "45 \n", - "46 \n", - "47 \n", - "48 \n", - "49 \n", - "50 \n", - "51 \n", - "52 \n", - "53 \n", - "54 \n", - "55 \n", - "56 \n", - "57 \n", - "58 \n", - "59 \n", - "60 \n", - "61 \n", - "62 \n", - "63 \n", - "64 \n", - "65 \n", - "66 A001 - data scientist \n", - "67 \n", - "68 \n", - "69 A001 - data scientist \n", - "70 A001 - data scientist \n", - "71 A001 - data scientist \n", - "72 \n", - "73 \n", - "74 \n", - "75 \n", - "76 \n", - "77 \n", - "78 A001 - data scientist \n", - "79 A015 - general public \n", - "80 \n", - "81 A028 - platform administrator \n", - "82 \n", - "83 \n", - "84 \n", - "85 \n", - "86 \n", - "87 \n", - "88 \n", - "89 \n", - "90 A001 data scientist,A024 developer \n", - "91 A015 - general public \n", - "92 \n", - "93 A028 - platform administrator \n", - "\n", - " resources_needed how_found references \\\n", - "0 2019-11-workshop \n", - "1 2019-11-workshop \n", - "2 2019-11-workshop \n", - "3 2019-11-workshop \n", - "4 2019-11-workshop \n", - "5 2019-11-workshop \n", - "6 2019-11-workshop \n", - "7 2019-11-workshop \n", - "8 2019-11-workshop \n", - "9 2019-11-workshop \n", - "10 2019-11-workshop \n", - "11 2019-11-workshop \n", - "12 2019-11-workshop \n", - "13 2019-11-workshop \n", - "14 2019-11-workshop \n", - "15 2019-11-workshop \n", - "16 2019-11-workshop \n", - "17 2019-11-workshop \n", - "18 2019-11-workshop \n", - "19 R004 - platform algorithms 2019-11-workshop \n", - "20 2019-11-workshop \n", - "21 2019-11-workshop \n", - "22 2019-11-workshop \n", - "23 2019-11-workshop \n", - "24 2019-11-workshop \n", - "25 2019-11-workshop \n", - "26 2019-11-workshop \n", - "27 2019-11-workshop \n", - "28 2019-11-workshop \n", - "29 2019-11-workshop \n", - "30 2019-11-workshop \n", - "31 2019-11-workshop \n", - "32 2019-11-workshop \n", - "33 2019-11-workshop \n", - "34 2019-11-workshop \n", - "35 2019-11-workshop \n", - "36 2019-11-workshop \n", - "37 2019-11-workshop \n", - "38 2019-11-workshop \n", - "39 2019-11-workshop \n", - "40 2019-11-workshop \n", - "41 2019-11-workshop \n", - "42 2019-11-workshop \n", - "43 2019-11-workshop \n", - "44 2019-11-workshop \n", - "45 2019-11-workshop \n", - "46 2019-11-workshop \n", - "47 2019-11-workshop \n", - "48 2019-11-workshop \n", - "49 2019-11-workshop \n", - "50 2019-11-workshop \n", - "51 2019-11-workshop \n", - "52 2019-11-workshop \n", - "53 2019-11-workshop \n", - "54 2019-11-workshop \n", - "55 2019-11-workshop \n", - "56 2019-11-workshop \n", - "57 2019-11-workshop \n", - "58 2019-11-workshop \n", - "59 2019-11-workshop \n", - "60 2019-11-workshop \n", - "61 2019-11-workshop \n", - "62 2019-11-workshop \n", - "63 2019-11-workshop \n", - "64 2019-11-workshop \n", - "65 2019-11-workshop \n", - "66 2019-11-search \n", - "67 2019-11-search Rand2237 \n", - "68 2019-11-search Rand2237 \n", - "69 2019-11-workshop \n", - "70 2019-11-search Rand2237 \n", - "71 2019-11-search Rand2237 \n", - "72 2019-11-search Rand2237 \n", - "73 2019-11-search Rand2237 \n", - "74 2019-11-search Dalton19 \n", - "75 2019-11-search Rand2237 \n", - "76 2019-11-workshop \n", - "77 2019-11-workshop \n", - "78 2019-11-workshop \n", - "79 2019-11-workshop \n", - "80 2019-11-workshop \n", - "81 R005 - slang translation 2019-11-workshop \n", - "82 2019-11-workshop \n", - "83 2019-11-workshop \n", - "84 2019-11-search Dalton19 \n", - "85 2019-11-search Hicks19 \n", - "86 2019-11-search Hicks19 \n", - "87 2019-11-search Dalton19 \n", - "88 2019-11-search Rand2237 \n", - "89 2019-11-search Hicks19 \n", - "90 2019-11-search Rand2237 \n", - "91 R006 - disinformation datasets 2019-11-search \n", - "92 2019-11-workshop \n", - "93 grugq \n", - "\n", - " incidents tactic responsetype \\\n", - "0 TA01 Strategic Planning D1 Detect \n", - "1 TA01 Strategic Planning D1 Detect \n", - "2 TA01 Strategic Planning D1 Detect \n", - "3 TA01 Strategic Planning D1 Detect \n", - "4 TA01 Strategic Planning D1 Detect \n", - "5 TA01 Strategic Planning D1 Detect \n", - "6 TA02 Objective Planning D1 Detect \n", - "7 TA03 Develop People D1 Detect \n", - "8 TA03 Develop People D1 Detect \n", - "9 TA03 Develop People D1 Detect \n", - "10 TA03 Develop People D1 Detect \n", - "11 TA03 Develop People D1 Detect \n", - "12 TA03 Develop People D1 Detect \n", - "13 TA03 Develop People D1 Detect \n", - "14 TA03 Develop People D1 Detect \n", - "15 TA03 Develop People D1 Detect \n", - "16 TA03 Develop People D1 Detect \n", - "17 TA03 Develop People D1 Detect \n", - "18 TA04 Develop Networks D1 Detect \n", - "19 TA04 Develop Networks D1 Detect \n", - "20 TA04 Develop Networks D1 Detect \n", - "21 TA04 Develop Networks D1 Detect \n", - "22 TA04 Develop Networks D1 Detect \n", - "23 TA04 Develop Networks D1 Detect \n", - "24 TA05 Microtargeting D1 Detect \n", - "25 TA05 Microtargeting D1 Detect \n", - "26 TA05 Microtargeting D1 Detect \n", - "27 TA06 Develop Content D1 Detect \n", - "28 TA06 Develop Content D1 Detect \n", - "29 TA06 Develop Content D1 Detect \n", - "30 TA06 Develop Content D1 Detect \n", - "31 TA06 Develop Content D1 Detect \n", - "32 TA06 Develop Content D1 Detect \n", - "33 TA06 Develop Content D1 Detect \n", - "34 TA06 Develop Content D1 Detect \n", - "35 TA06 Develop Content D1 Detect \n", - "36 TA06 Develop Content D1 Detect \n", - "37 TA06 Develop Content D1 Detect \n", - "38 TA06 Develop Content D1 Detect \n", - "39 TA06 Develop Content D1 Detect \n", - "40 TA07 Channel Selection D1 Detect \n", - "41 TA07 Channel Selection D1 Detect \n", - "42 TA07 Channel Selection D1 Detect \n", - "43 TA08 Pump Priming D1 Detect \n", - "44 TA08 Pump Priming D1 Detect \n", - "45 TA08 Pump Priming D1 Detect \n", - "46 TA08 Pump Priming D1 Detect \n", - "47 TA08 Pump Priming D1 Detect \n", - "48 TA08 Pump Priming D1 Detect \n", - "49 TA08 Pump Priming D1 Detect \n", - "50 TA09 Exposure D1 Detect \n", - "51 TA09 Exposure D1 Detect \n", - "52 TA09 Exposure D1 Detect \n", - "53 TA09 Exposure D1 Detect \n", - "54 TA09 Exposure D1 Detect \n", - "55 TA09 Exposure D1 Detect \n", - "56 TA09 Exposure D1 Detect \n", - "57 TA10 Go Physical D1 Detect \n", - "58 TA10 Go Physical D1 Detect \n", - "59 TA10 Go Physical D1 Detect \n", - "60 TA10 Go Physical D1 Detect \n", - "61 TA11 Persistence D1 Detect \n", - "62 TA11 Persistence D1 Detect \n", - "63 TA11 Persistence D1 Detect \n", - "64 TA11 Persistence D1 Detect \n", - "65 TA11 Persistence D1 Detect \n", - "66 I00029,I00045 D1 Detect \n", - "67 D1 Detect \n", - "68 D1 Detect \n", - "69 ALL D1 Detect \n", - "70 D1 Detect \n", - "71 D1 Detect \n", - "72 D1 Detect \n", - "73 D1 Detect \n", - "74 D1 Detect \n", - "75 D1 Detect \n", - "76 TA03 Develop People D1 Detect \n", - "77 TA03 Develop People D1 Detect \n", - "78 TA05 Microtargeting D1 Detect \n", - "79 TA07 Channel Selection D1 Detect \n", - "80 TA09 Exposure D1 Detect \n", - "81 TA11 Persistence D3 Disrupt \n", - "82 TA11 Persistence D5 Deceive \n", - "83 TA03 Develop People D1 Detect \n", - "84 \n", - "85 TA02 Objective planning D1 Detect \n", - "86 D1 Detect \n", - "87 D1 Detect \n", - "88 TA04 Develop Networks D1 Detect \n", - "89 TA01 Strategic Planning D1 Detect \n", - "90 TA01 Strategic Planning D1 Detect \n", - "91 I00002 TA09 Exposure D1 Detect \n", - "92 TA03 Develop People D3 Disrupt \n", - "93 TA07 Channel Selection D2 Deny \n", - "\n", - " notes \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "5 \n", - "6 \n", - "7 \n", - "8 \n", - "9 \n", - "10 \n", - "11 \n", - "12 \n", - "13 \n", - "14 \n", - "15 \n", - "16 \n", - "17 \n", - "18 \n", - "19 \n", - "20 Automated Detection of Campaign \n", - "21 \n", - "22 \n", - "23 \n", - "24 \n", - "25 \n", - "26 \n", - "27 \n", - "28 \n", - "29 \n", - "30 \n", - "31 \n", - "32 \n", - "33 \n", - "34 \n", - "35 \n", - "36 \n", - "37 \n", - "38 \n", - "39 \n", - "40 \n", - "41 \n", - "42 \n", - "43 \n", - "44 \n", - "45 \n", - "46 \n", - "47 \n", - "48 \n", - "49 \n", - "50 \n", - "51 \n", - "52 \n", - "53 \n", - "54 \n", - "55 \n", - "56 \n", - "57 \n", - "58 \n", - "59 \n", - "60 \n", - "61 \n", - "62 \n", - "63 \n", - "64 \n", - "65 \n", - "66 \n", - "67 \n", - "68 \n", - "69 \n", - "70 \n", - "71 \n", - "72 \n", - "73 \n", - "74 \n", - "75 \n", - "76 \n", - "77 \n", - "78 \n", - "79 \n", - "80 \n", - "81 \n", - "82 \n", - "83 \n", - "84 \n", - "85 \n", - "86 \n", - "87 \n", - "88 \n", - "89 \n", - "90 \n", - "91 \n", - "92 \n", - "93 \n", - "\n", - " techniques \\\n", - "0 All \n", - "1 T0049 - Flooding\\nT0052 - Tertiary sites ampli... \n", - "2 TA06 - Develop Content\\nTA08 - Pump Priming\\nT... \n", - "3 T0057 - Organise remote rallies and events\\nT0... \n", - "4 All \n", - "5 TA05 - Microtargeting\\nTA07 - Channel Selectio... \n", - "6 All \n", - "7 T0052 - Tertiary sites amplify news\\nT0053 - T... \n", - "8 T0007 - Create fake Social Media Profiles / Pa... \n", - "9 T0007 - Create fake Social Media Profiles / Pa... \n", - "10 T0007 - Create fake Social Media Profiles / Pa... \n", - "11 T0007 - Create fake Social Media Profiles / Pa... \n", - "12 T0008 \n", - "13 T0008 \n", - "14 TA07 - Channel Selection\\n\\nT0007 - Create fak... \n", - "15 TA08 - Pump Priming\\nTA09 - Exposure\\nTA10 - G... \n", - "16 T0001 - 5Ds (dismiss, distort, distract, disma... \n", - "17 T0009 \n", - "18 T0011 - Hijack accounts \n", - "19 T0011 - Hijack accounts \n", - "20 TA03 - Develop People\\nTA04 - Develop Networks... \n", - "21 \n", - "22 T0011 - Hijack accounts \n", - "23 \n", - "24 TA01 - Strategic Planning\\nTA02 - Objective Pl... \n", - "25 \n", - "26 \n", - "27 T0025 - Leak altered documents \n", - "28 TA01 - Strategic Planning\\n\\nT0006 - Create Ma... \n", - "29 TA03 - Develop People\\nTA04 - Develop Networks... \n", - "30 TA01 - Strategic Planning\\n\\nT0019 - Generate ... \n", - "31 DUPLICATE - DELETE \n", - "32 T0013 - Create fake websites \n", - "33 T0049 - Flooding \n", - "34 TA01 - Strategic Planning\\n\\nT0006 - Create Ma... \n", - "35 T0020 - Trial content \n", - "36 TA01 - Strategic Planning* (non-existent techn... \n", - "37 T0010 - Cultivate ignorant agents\\nT0039 - Bai... \n", - "38 T0024 - Create fake videos and images \n", - "39 T0024 - Create fake videos and images \n", - "40 T00029 \n", - "41 T00029 \n", - "42 T00030 \n", - "43 All \n", - "44 All \n", - "45 TA08 - Pump Priming \n", - "46 \n", - "47 \n", - "48 \n", - "49 \n", - "50 T0009 - Create fake experts\\nT0045 - Use fake ... \n", - "51 All \n", - "52 T0049\\nT0050\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056 \n", - "53 \n", - "54 \n", - "55 \n", - "56 \n", - "57 TA07 - Channel Selection\\nTA09 - Exposure\\nTA1... \n", - "58 All \n", - "59 T0039 - Bait legitimate influencers \n", - "60 All \n", - "61 TA09 - Exposure\\n\\nT0007 - Create fake Social ... \n", - "62 \n", - "63 T0011 - Hijack legitimate account \n", - "64 \n", - "65 \n", - "66 \n", - "67 \n", - "68 \n", - "69 \n", - "70 \n", - "71 \n", - "72 \n", - "73 \n", - "74 \n", - "75 \n", - "76 \n", - "77 All \n", - "78 T0029 - Manipulate online polls\\nT0047 - Muzzl... \n", - "79 T0029 - Manipulate online polls \n", - "80 T0049\\nT0050\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056 \n", - "81 \n", - "82 T0012 - Use concealment\\nT0021 - Memes \n", - "83 \n", - "84 \n", - "85 \n", - "86 \n", - "87 \n", - "88 \n", - "89 \n", - "90 \n", - "91 \n", - "92 T0011 - Hijack legitimate account \n", - "93 T0013 - Create fake websites\\nT0008 - Create f... \n", - "\n", - " longname tactic_id \\\n", - "0 F00001 - Analyse aborted / failed campaigns TA01 \n", - "1 F00002 - Analyse viral fizzle TA01 \n", - "2 F00003 - Exploit counter-intelligence vs bad a... TA01 \n", - "3 F00004 - Recruit like-minded converts \"people ... TA01 \n", - "4 F00005 - SWOT Analysis of Cognition in Various... TA01 \n", - "5 F00006 - SWOT analysis of tech platforms TA01 \n", - "6 F00007 - Monitor account level activity in soc... TA02 \n", - "7 F00008 - Detect abnormal amplification TA03 \n", - "8 F00009 - Detect abnormal events TA03 \n", - "9 F00010 - Detect abnormal groups TA03 \n", - "10 F00011 - Detect abnormal pages TA03 \n", - "11 F00012 - Detect abnormal profiles, e.g. prolif... TA03 \n", - "12 F00013 - Identify fake news sites TA03 \n", - "13 F00014 - Trace connections TA03 \n", - "14 F00015 - Detect anomalies in membership growth... TA03 \n", - "15 F00016 - Identify fence-sitters TA03 \n", - "16 F00017 - Measure emotional valence TA03 \n", - "17 F00018 - Follow the money TA03 \n", - "18 F00019 - Activity resurgence detection (alarm ... TA04 \n", - "19 F00020 - Detect anomalous activity TA04 \n", - "20 F00021 - AI/ML automated early detection of ca... TA04 \n", - "21 F00022 - Digital authority - regulating body (... TA04 \n", - "22 F00023 - Periodic verification (counter to hij... TA04 \n", - "23 F00024 - Teach civics to kids/ adults/ seniors TA04 \n", - "24 F00025 - Boots-on-the-ground early narrative d... TA05 \n", - "25 F00026 - Language anomoly detection TA05 \n", - "26 F00027 - Unlikely correlation of sentiment on ... TA05 \n", - "27 F00028 - Associate a public key signature with... TA06 \n", - "28 F00029 - Detect proto narratives, i.e. RT, Spu... TA06 \n", - "29 F00030 - Early detection and warning - reporti... TA06 \n", - "30 F00031 - Educate on how to identify informatio... TA06 \n", - "31 F00032 - Educate on how to identify to pollution TA06 \n", - "32 F00033 - Fake websites: add transparency on bu... TA06 \n", - "33 F00034 - Flag the information spaces so people... TA06 \n", - "34 F00035 - Identify repeated narrative DNA TA06 \n", - "35 F00036 - Looking for AB testing in unregulated... TA06 \n", - "36 F00037 - News content provenance certification. TA06 \n", - "37 F00038 - Social capital as attack vector TA06 \n", - "38 F00039 - standards to track image/ video deep ... TA06 \n", - "39 F00040 - Unalterable metadata signature on ori... TA06 \n", - "40 F00041 - Bias detection TA07 \n", - "41 F00042 - Categorize polls by intent TA07 \n", - "42 F00043 - Monitor for creation of fake known pe... TA07 \n", - "43 F00044 - Forensic analysis TA08 \n", - "44 F00045 - Forensic linguistic analysis TA08 \n", - "45 F00046 - Pump priming analytics TA08 \n", - "46 F00047 - trace involved parties TA08 \n", - "47 F00048 - Trace known operations and connection TA08 \n", - "48 F00049 - trace money TA08 \n", - "49 F00050 - Web cache analytics TA08 \n", - "50 F00051 - Challenge expertise TA09 \n", - "51 F00052 - Discover sponsors TA09 \n", - "52 F00053 - Government rumour control office (wha... TA09 \n", - "53 F00054 - Restrict people who can @ you on soci... TA09 \n", - "54 F00055 - Verify credentials TA09 \n", - "55 F00056 - Verify organisation legitimacy TA09 \n", - "56 F00057 - Verify personal credentials of experts TA09 \n", - "57 F00058 - Deplatform (cancel culture) TA10 \n", - "58 F00059 - Identify susceptible demographics TA10 \n", - "59 F00060 - Identify susceptible influencers TA10 \n", - "60 F00061 - Microtargeting TA10 \n", - "61 F00062 - Detect when Dormant account turns active TA11 \n", - "62 F00063 - Linguistic change analysis TA11 \n", - "63 F00064 - Monitor reports of account takeover TA11 \n", - "64 F00065 - Sentiment change analysis TA11 \n", - "65 F00066 - Use language errors, time to respond ... TA11 \n", - "66 F00067 - Data forensics \n", - "67 F00068 - Resonance analysis \n", - "68 F00069 - Track Russian media and develop analy... \n", - "69 F00070 - Full spectrum analytics ALL \n", - "70 F00071 - Network analysis Identify/cultivate/s... \n", - "71 F00072 - network analysis to identify central ... \n", - "72 F00073 - collect intel/recon on black/covert c... \n", - "73 F00074 - identify relevant fence-sitter commun... \n", - "74 F00075 - leverage open-source information \n", - "75 F00076 - Monitor/collect audience engagement d... \n", - "76 F00077 - Model for bot account behavior TA03 \n", - "77 F00078 - Monitor account level activity in soc... TA03 \n", - "78 F00079 - Network anomaly detection TA05 \n", - "79 F00080 - Hack the polls/ content yourself TA07 \n", - "80 F00081 - Need way for end user to report opera... TA09 \n", - "81 F00082 - Control the US \"slang\" translation bo... TA11 \n", - "82 F00083 - Build and own meme generator, then tr... TA11 \n", - "83 F00084 - Track individual bad actors TA03 \n", - "84 F00085 - detection of a weak signal through gl... \n", - "85 F00086 - Outpace Competitor Intelligence Capab... TA02 \n", - "86 F00087 - Improve Indications and Warning \n", - "87 F00088 - Revitalize an “active measures workin... \n", - "88 F00089 - target/name/flag \"grey zone\" website ... TA04 \n", - "89 F00090 - Match Punitive Tools with Third-Party... TA01 \n", - "90 F00091 - Partner to develop analytic methods &... TA01 \n", - "91 F00092 - daylight TA09 \n", - "92 F00093 - S4d detection and re-allocation appro... TA03 \n", - "93 F00094 - Registries alert when large batches o... TA07 \n", - "\n", - " tactic_name \n", - "0 Strategic Planning \n", - "1 Strategic Planning \n", - "2 Strategic Planning \n", - "3 Strategic Planning \n", - "4 Strategic Planning \n", - "5 Strategic Planning \n", - "6 Objective Planning \n", - "7 Develop People \n", - "8 Develop People \n", - "9 Develop People \n", - "10 Develop People \n", - "11 Develop People \n", - "12 Develop People \n", - "13 Develop People \n", - "14 Develop People \n", - "15 Develop People \n", - "16 Develop People \n", - "17 Develop People \n", - "18 Develop Networks \n", - "19 Develop Networks \n", - "20 Develop Networks \n", - "21 Develop Networks \n", - "22 Develop Networks \n", - "23 Develop Networks \n", - "24 Microtargeting \n", - "25 Microtargeting \n", - "26 Microtargeting \n", - "27 Develop Content \n", - "28 Develop Content \n", - "29 Develop Content \n", - "30 Develop Content \n", - "31 Develop Content \n", - "32 Develop Content \n", - "33 Develop Content \n", - "34 Develop Content \n", - "35 Develop Content \n", - "36 Develop Content \n", - "37 Develop Content \n", - "38 Develop Content \n", - "39 Develop Content \n", - "40 Channel Selection \n", - "41 Channel Selection \n", - "42 Channel Selection \n", - "43 Pump Priming \n", - "44 Pump Priming \n", - "45 Pump Priming \n", - "46 Pump Priming \n", - "47 Pump Priming \n", - "48 Pump Priming \n", - "49 Pump Priming \n", - "50 Exposure \n", - "51 Exposure \n", - "52 Exposure \n", - "53 Exposure \n", - "54 Exposure \n", - "55 Exposure \n", - "56 Exposure \n", - "57 Go Physical \n", - "58 Go Physical \n", - "59 Go Physical \n", - "60 Go Physical \n", - "61 Persistence \n", - "62 Persistence \n", - "63 Persistence \n", - "64 Persistence \n", - "65 Persistence \n", - "66 None \n", - "67 None \n", - "68 None \n", - "69 None \n", - "70 None \n", - "71 None \n", - "72 None \n", - "73 None \n", - "74 None \n", - "75 None \n", - "76 Develop People \n", - "77 Develop People \n", - "78 Microtargeting \n", - "79 Channel Selection \n", - "80 Exposure \n", - "81 Persistence \n", - "82 Persistence \n", - "83 Develop People \n", - "84 None \n", - "85 Objective planning \n", - "86 None \n", - "87 None \n", - "88 Develop Networks \n", - "89 Strategic Planning \n", - "90 Strategic Planning \n", - "91 Exposure \n", - "92 Develop People \n", - "93 Channel Selection " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "vars(amitt)['df_detections']" + "import psycopg2\n", + "conn = psycopg2.connect(host=\"localhost\", port = 5432, \n", + " database=\"amittsite\", user=\"sara\", \n", + " password=\"\")\n", + "cur = conn.cursor()" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
detection_idtactic_idmain_tacticsummaryid
0F00003TA06NN/A1
1F00003TA08NN/A2
2F00003TA09NN/A3
3F00006TA05NN/A4
4F00006TA07NN/A5
5F00006TA08NN/A6
6F00006TA09NN/A7
7F00006TA10NN/A8
8F00006TA11NN/A9
9F00015TA07NN/A10
10F00016TA08NN/A11
11F00016TA09NN/A12
12F00016TA10NN/A13
13F00016TA11NN/A14
14F00021TA03NN/A15
15F00021TA04NN/A16
16F00021TA05NN/A17
17F00021TA06NN/A18
18F00021TA07NN/A19
19F00021TA08NN/A20
20F00021TA09NN/A21
21F00021TA10NN/A22
22F00021TA11NN/A23
23F00025TA01NN/A24
24F00025TA02NN/A25
25F00029TA01NN/A26
26F00030TA03NN/A27
27F00030TA04NN/A28
28F00030TA05NN/A29
29F00030TA06NN/A30
30F00030TA08NN/A31
31F00030TA09NN/A32
32F00030TA10NN/A33
33F00031TA01NN/A34
34F00035TA01NN/A35
35F00037TA01NN/A36
36F00046TA08NN/A37
37F00058TA07NN/A38
38F00058TA09NN/A39
39F00058TA10NN/A40
40F00062TA09NN/A41
41F00001TA01YN/A42
42F00002TA01YN/A43
43F00003TA01YN/A44
44F00004TA01YN/A45
45F00005TA01YN/A46
46F00006TA01YN/A47
47F00007TA02YN/A48
48F00008TA03YN/A49
49F00009TA03YN/A50
50F00010TA03YN/A51
51F00011TA03YN/A52
52F00012TA03YN/A53
53F00013TA03YN/A54
54F00014TA03YN/A55
55F00015TA03YN/A56
56F00016TA03YN/A57
57F00017TA03YN/A58
58F00018TA03YN/A59
59F00019TA04YN/A60
60F00020TA04YN/A61
61F00021TA04YN/A62
62F00022TA04YN/A63
63F00023TA04YN/A64
64F00024TA04YN/A65
65F00025TA05YN/A66
66F00026TA05YN/A67
67F00027TA05YN/A68
68F00028TA06YN/A69
69F00029TA06YN/A70
70F00030TA06YN/A71
71F00031TA06YN/A72
72F00032TA06YN/A73
73F00033TA06YN/A74
74F00034TA06YN/A75
75F00035TA06YN/A76
76F00036TA06YN/A77
77F00037TA06YN/A78
78F00038TA06YN/A79
79F00039TA06YN/A80
80F00040TA06YN/A81
81F00041TA07YN/A82
82F00042TA07YN/A83
83F00043TA07YN/A84
84F00044TA08YN/A85
85F00045TA08YN/A86
86F00046TA08YN/A87
87F00047TA08YN/A88
88F00048TA08YN/A89
89F00049TA08YN/A90
90F00050TA08YN/A91
91F00051TA09YN/A92
92F00052TA09YN/A93
93F00053TA09YN/A94
94F00054TA09YN/A95
95F00055TA09YN/A96
96F00056TA09YN/A97
97F00057TA09YN/A98
98F00058TA10YN/A99
99F00059TA10YN/A100
100F00060TA10YN/A101
101F00061TA10YN/A102
102F00062TA11YN/A103
103F00063TA11YN/A104
104F00064TA11YN/A105
105F00065TA11YN/A106
106F00066TA11YN/A107
107F00067YN/A108
108F00068YN/A109
109F00069YN/A110
110F00070ALLYN/A111
111F00071YN/A112
112F00072YN/A113
113F00073YN/A114
114F00074YN/A115
115F00075YN/A116
116F00076YN/A117
117F00077TA03YN/A118
118F00078TA03YN/A119
119F00079TA05YN/A120
120F00080TA07YN/A121
121F00081TA09YN/A122
122F00082TA11YN/A123
123F00083TA11YN/A124
124F00084TA03YN/A125
125F00085YN/A126
126F00086TA02YN/A127
127F00087YN/A128
128F00088YN/A129
129F00089TA04YN/A130
130F00090TA01YN/A131
131F00091TA01YN/A132
132F00092TA09YN/A133
133F00093TA03YN/A134
134F00094TA07YN/A135
\n", - "
" - ], - "text/plain": [ - " detection_id tactic_id main_tactic summary id\n", - "0 F00003 TA06 N N/A 1\n", - "1 F00003 TA08 N N/A 2\n", - "2 F00003 TA09 N N/A 3\n", - "3 F00006 TA05 N N/A 4\n", - "4 F00006 TA07 N N/A 5\n", - "5 F00006 TA08 N N/A 6\n", - "6 F00006 TA09 N N/A 7\n", - "7 F00006 TA10 N N/A 8\n", - "8 F00006 TA11 N N/A 9\n", - "9 F00015 TA07 N N/A 10\n", - "10 F00016 TA08 N N/A 11\n", - "11 F00016 TA09 N N/A 12\n", - "12 F00016 TA10 N N/A 13\n", - "13 F00016 TA11 N N/A 14\n", - "14 F00021 TA03 N N/A 15\n", - "15 F00021 TA04 N N/A 16\n", - "16 F00021 TA05 N N/A 17\n", - "17 F00021 TA06 N N/A 18\n", - "18 F00021 TA07 N N/A 19\n", - "19 F00021 TA08 N N/A 20\n", - "20 F00021 TA09 N N/A 21\n", - "21 F00021 TA10 N N/A 22\n", - "22 F00021 TA11 N N/A 23\n", - "23 F00025 TA01 N N/A 24\n", - "24 F00025 TA02 N N/A 25\n", - "25 F00029 TA01 N N/A 26\n", - "26 F00030 TA03 N N/A 27\n", - "27 F00030 TA04 N N/A 28\n", - "28 F00030 TA05 N N/A 29\n", - "29 F00030 TA06 N N/A 30\n", - "30 F00030 TA08 N N/A 31\n", - "31 F00030 TA09 N N/A 32\n", - "32 F00030 TA10 N N/A 33\n", - "33 F00031 TA01 N N/A 34\n", - "34 F00035 TA01 N N/A 35\n", - "35 F00037 TA01 N N/A 36\n", - "36 F00046 TA08 N N/A 37\n", - "37 F00058 TA07 N N/A 38\n", - "38 F00058 TA09 N N/A 39\n", - "39 F00058 TA10 N N/A 40\n", - "40 F00062 TA09 N N/A 41\n", - "41 F00001 TA01 Y N/A 42\n", - "42 F00002 TA01 Y N/A 43\n", - "43 F00003 TA01 Y N/A 44\n", - "44 F00004 TA01 Y N/A 45\n", - "45 F00005 TA01 Y N/A 46\n", - "46 F00006 TA01 Y N/A 47\n", - "47 F00007 TA02 Y N/A 48\n", - "48 F00008 TA03 Y N/A 49\n", - "49 F00009 TA03 Y N/A 50\n", - "50 F00010 TA03 Y N/A 51\n", - "51 F00011 TA03 Y N/A 52\n", - "52 F00012 TA03 Y N/A 53\n", - "53 F00013 TA03 Y N/A 54\n", - "54 F00014 TA03 Y N/A 55\n", - "55 F00015 TA03 Y N/A 56\n", - "56 F00016 TA03 Y N/A 57\n", - "57 F00017 TA03 Y N/A 58\n", - "58 F00018 TA03 Y N/A 59\n", - "59 F00019 TA04 Y N/A 60\n", - "60 F00020 TA04 Y N/A 61\n", - "61 F00021 TA04 Y N/A 62\n", - "62 F00022 TA04 Y N/A 63\n", - "63 F00023 TA04 Y N/A 64\n", - "64 F00024 TA04 Y N/A 65\n", - "65 F00025 TA05 Y N/A 66\n", - "66 F00026 TA05 Y N/A 67\n", - "67 F00027 TA05 Y N/A 68\n", - "68 F00028 TA06 Y N/A 69\n", - "69 F00029 TA06 Y N/A 70\n", - "70 F00030 TA06 Y N/A 71\n", - "71 F00031 TA06 Y N/A 72\n", - "72 F00032 TA06 Y N/A 73\n", - "73 F00033 TA06 Y N/A 74\n", - "74 F00034 TA06 Y N/A 75\n", - "75 F00035 TA06 Y N/A 76\n", - "76 F00036 TA06 Y N/A 77\n", - "77 F00037 TA06 Y N/A 78\n", - "78 F00038 TA06 Y N/A 79\n", - "79 F00039 TA06 Y N/A 80\n", - "80 F00040 TA06 Y N/A 81\n", - "81 F00041 TA07 Y N/A 82\n", - "82 F00042 TA07 Y N/A 83\n", - "83 F00043 TA07 Y N/A 84\n", - "84 F00044 TA08 Y N/A 85\n", - "85 F00045 TA08 Y N/A 86\n", - "86 F00046 TA08 Y N/A 87\n", - "87 F00047 TA08 Y N/A 88\n", - "88 F00048 TA08 Y N/A 89\n", - "89 F00049 TA08 Y N/A 90\n", - "90 F00050 TA08 Y N/A 91\n", - "91 F00051 TA09 Y N/A 92\n", - "92 F00052 TA09 Y N/A 93\n", - "93 F00053 TA09 Y N/A 94\n", - "94 F00054 TA09 Y N/A 95\n", - "95 F00055 TA09 Y N/A 96\n", - "96 F00056 TA09 Y N/A 97\n", - "97 F00057 TA09 Y N/A 98\n", - "98 F00058 TA10 Y N/A 99\n", - "99 F00059 TA10 Y N/A 100\n", - "100 F00060 TA10 Y N/A 101\n", - "101 F00061 TA10 Y N/A 102\n", - "102 F00062 TA11 Y N/A 103\n", - "103 F00063 TA11 Y N/A 104\n", - "104 F00064 TA11 Y N/A 105\n", - "105 F00065 TA11 Y N/A 106\n", - "106 F00066 TA11 Y N/A 107\n", - "107 F00067 Y N/A 108\n", - "108 F00068 Y N/A 109\n", - "109 F00069 Y N/A 110\n", - "110 F00070 ALL Y N/A 111\n", - "111 F00071 Y N/A 112\n", - "112 F00072 Y N/A 113\n", - "113 F00073 Y N/A 114\n", - "114 F00074 Y N/A 115\n", - "115 F00075 Y N/A 116\n", - "116 F00076 Y N/A 117\n", - "117 F00077 TA03 Y N/A 118\n", - "118 F00078 TA03 Y N/A 119\n", - "119 F00079 TA05 Y N/A 120\n", - "120 F00080 TA07 Y N/A 121\n", - "121 F00081 TA09 Y N/A 122\n", - "122 F00082 TA11 Y N/A 123\n", - "123 F00083 TA11 Y N/A 124\n", - "124 F00084 TA03 Y N/A 125\n", - "125 F00085 Y N/A 126\n", - "126 F00086 TA02 Y N/A 127\n", - "127 F00087 Y N/A 128\n", - "128 F00088 Y N/A 129\n", - "129 F00089 TA04 Y N/A 130\n", - "130 F00090 TA01 Y N/A 131\n", - "131 F00091 TA01 Y N/A 132\n", - "132 F00092 TA09 Y N/A 133\n", - "133 F00093 TA03 Y N/A 134\n", - "134 F00094 TA07 Y N/A 135" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "# Generate minimal sqlite database from the Amitt variables\n", - "conn = sql.connect('amittsite.sqlite')\n", - "\n", - "def add_table(dataframe, tablename, columns): \n", - " # Create sql table\n", - " colnames = ', '.join(['{} TEXT NOT NULL'.format(col) for col in columns])\n", - " conn.execute(\"DROP TABLE IF EXISTS {}\".format(tablename))\n", - " conn.execute('''CREATE TABLE {} (id INTEGER PRIMARY KEY AUTOINCREMENT, {});'''.format(tablename, colnames))\n", - " #populate table from dataframe\n", - " newtable = dataframe[columns].copy().applymap(str)\n", - " newtable['id'] = range(1,len(newtable)+1)\n", - " newtable.to_sql(tablename, conn, index=False, if_exists='append')\n", - " conn.commit()\n", - " return newtable\n", - "\n", - "def object_tactics_techniques(objectcol, objecttable, crosstable):\n", - " # objects to techniques\n", - " ctech = crosstable.copy()\n", - " ctech = ctech[(ctech['technique_id'] != '') & (~ctech['technique_id'].str.startswith('TA'))]\n", - " ctech.rename(columns={'amitt_id':objectcol}, inplace=True)\n", - " ctech['summary'] = 'N/A'\n", - "\n", - " # objects to tactics\n", - " ctact = crosstable[crosstable['technique_id'].str.startswith('TA')].copy()\n", - " ctact.rename(columns={'amitt_id':objectcol, 'technique_id': 'tactic_id'}, inplace=True)\n", - " ctact['main_tactic'] = 'N'\n", - " ctactmain = objecttable[['amitt_id', 'tactic_id']].copy()\n", - " ctactmain.rename(columns={'amitt_id':objectcol}, inplace=True)\n", - " ctactmain['main_tactic'] = 'Y'\n", - " ctact = pd.concat([ctact, ctactmain], ignore_index=True, sort=False)\n", - " ctact['summary'] = 'N/A'\n", - " return(ctech, ctact)\n", - "\n", - "#newtable = add_table(amitt.df_actortypes, 'actor_type', ['amitt_id', 'sector_id', 'framework_id', 'name', 'summary'])\n", - "# counter\n", - "newtable = add_table(amitt.df_counters, 'counter', ['amitt_id', 'tactic_id', 'metatechnique_id', 'name', 'summary'])\n", - "newtable = add_table(amitt.df_detections, 'detection', ['amitt_id', 'tactic_id', 'name', 'summary'])\n", - "# dataset\n", - "newtable = add_table(amitt.df_frameworks, 'framework', ['amitt_id', 'name', 'summary'])\n", - "# incident\n", - "# metatechnique\n", - "newtable = add_table(amitt.df_metatechniques, 'metatechnique', ['amitt_id', 'name', 'summary'])\n", - "newtable = add_table(amitt.df_phases, 'phase', ['amitt_id', 'name', 'rank', 'summary'])\n", - "# playbook\n", - "# reference\n", - "# response_type\n", - "# sector\n", - "newtable = add_table(amitt.df_tactics, 'tactic', ['amitt_id', 'phase_id', 'name', 'rank', 'summary'])\n", - "newtable = add_table(amitt.df_tasks, 'task', ['amitt_id', 'tactic_id', 'framework_id', 'name', 'summary'])\n", - "newtable = add_table(amitt.df_techniques, 'technique', ['amitt_id', 'tactic_id', 'name', 'summary'])\n", - "\n", - "(ctech, ctact) = object_tactics_techniques('counter_id', amitt.df_counters, amitt.cross_counterid_techniqueid)\n", - "newtable = add_table(ctech, 'counter_technique', ['counter_id', 'technique_id', 'summary'])\n", - "newtable = add_table(ctact, 'counter_tactic', ['counter_id', 'tactic_id', 'main_tactic', 'summary'])\n", - "\n", - "(dtech, dtact) = object_tactics_techniques('detection_id', amitt.df_detections, amitt.cross_detectionid_techniqueid)\n", - "newtable = add_table(dtech, 'detection_technique', ['detection_id', 'technique_id', 'summary'])\n", - "newtable = add_table(dtact, 'detection_tactic', ['detection_id', 'tactic_id', 'main_tactic', 'summary'])\n", - "\n", - "conn.execute(\"DROP TABLE IF EXISTS {}\".format('user'))\n", - "conn.execute('''CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password TEXT NOT NULL);''')\n", - "\n", - "conn.close()\n", - "newtable" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
detection_idtechnique_idsummary
0F00001AllN/A
1F00002T0049N/A
1F00002T0052N/A
1F00002T0053N/A
1F00002T0054N/A
1F00002T0059N/A
1F00002T0060N/A
2F00003T0019N/A
2F00003T0021N/A
3F00004T0057N/A
3F00004T0061N/A
3F00004T0010N/A
3F00004T0039N/A
4F00005AllN/A
5F00006T0007N/A
5F00006T0014N/A
5F00006T0010N/A
5F00006T0019N/A
5F00006T0021N/A
6F00007AllN/A
7F00008T0052N/A
7F00008T0053N/A
7F00008T0054N/A
7F00008T0060N/A
8F00009T0007N/A
9F00010T0007N/A
10F00011T0007N/A
11F00012T0007N/A
12F00013T0008N/A
13F00014T0008N/A
14F00015T0007N/A
14F00015T0009N/A
14F00015T0015N/A
14F00015T0045N/A
14F00015T0057N/A
15F00016T0010N/A
15F00016T0017N/A
15F00016T0018N/A
15F00016T0029N/A
15F00016T0039N/A
15F00016T0048N/A
16F00017T0001N/A
16F00017T0039N/A
16F00017T0053N/A
17F00018T0009N/A
18F00019T0011N/A
19F00020T0011N/A
22F00023T0011N/A
27F00028T0025N/A
28F00029T0006N/A
28F00029T0019N/A
28F00029T0050N/A
28F00029T0056N/A
30F00031T0019N/A
30F00031T0056N/A
31F00032DUPLICATEN/A
32F00033T0013N/A
33F00034T0049N/A
34F00035T0006N/A
34F00035T0019N/A
34F00035T0050N/A
34F00035T0056N/A
35F00036T0020N/A
37F00038T0010N/A
37F00038T0039N/A
37F00038T0043N/A
37F00038T0057N/A
37F00038T0061N/A
38F00039T0024N/A
39F00040T0024N/A
40F00041T00029N/A
41F00042T00029N/A
42F00043T00030N/A
43F00044AllN/A
44F00045AllN/A
50F00051T0009N/A
50F00051T0045N/A
51F00052AllN/A
52F00053T0049N/A
52F00053T0050N/A
52F00053T0052N/A
52F00053T0053N/A
52F00053T0054N/A
52F00053T0055N/A
52F00053T0056N/A
57F00058T0007N/A
57F00058T0009N/A
57F00058T0011N/A
57F00058T0014N/A
57F00058T0017N/A
57F00058T0018N/A
57F00058T0045N/A
58F00059AllN/A
59F00060T0039N/A
60F00061AllN/A
61F00062T0007N/A
61F00062T0011N/A
63F00064T0011N/A
77F00078AllN/A
78F00079T0029N/A
78F00079T0047N/A
78F00079T0049N/A
78F00079T0054N/A
78F00079T0055N/A
78F00079T0060N/A
79F00080T0029N/A
80F00081T0049N/A
80F00081T0050N/A
80F00081T0052N/A
80F00081T0053N/A
80F00081T0054N/A
80F00081T0055N/A
80F00081T0056N/A
82F00083T0012N/A
82F00083T0021N/A
92F00093T0011N/A
93F00094T0013N/A
93F00094T0008N/A
\n", - "
" - ], - "text/plain": [ - " detection_id technique_id summary\n", - "0 F00001 All N/A\n", - "1 F00002 T0049 N/A\n", - "1 F00002 T0052 N/A\n", - "1 F00002 T0053 N/A\n", - "1 F00002 T0054 N/A\n", - "1 F00002 T0059 N/A\n", - "1 F00002 T0060 N/A\n", - "2 F00003 T0019 N/A\n", - "2 F00003 T0021 N/A\n", - "3 F00004 T0057 N/A\n", - "3 F00004 T0061 N/A\n", - "3 F00004 T0010 N/A\n", - "3 F00004 T0039 N/A\n", - "4 F00005 All N/A\n", - "5 F00006 T0007 N/A\n", - "5 F00006 T0014 N/A\n", - "5 F00006 T0010 N/A\n", - "5 F00006 T0019 N/A\n", - "5 F00006 T0021 N/A\n", - "6 F00007 All N/A\n", - "7 F00008 T0052 N/A\n", - "7 F00008 T0053 N/A\n", - "7 F00008 T0054 N/A\n", - "7 F00008 T0060 N/A\n", - "8 F00009 T0007 N/A\n", - "9 F00010 T0007 N/A\n", - "10 F00011 T0007 N/A\n", - "11 F00012 T0007 N/A\n", - "12 F00013 T0008 N/A\n", - "13 F00014 T0008 N/A\n", - "14 F00015 T0007 N/A\n", - "14 F00015 T0009 N/A\n", - "14 F00015 T0015 N/A\n", - "14 F00015 T0045 N/A\n", - "14 F00015 T0057 N/A\n", - "15 F00016 T0010 N/A\n", - "15 F00016 T0017 N/A\n", - "15 F00016 T0018 N/A\n", - "15 F00016 T0029 N/A\n", - "15 F00016 T0039 N/A\n", - "15 F00016 T0048 N/A\n", - "16 F00017 T0001 N/A\n", - "16 F00017 T0039 N/A\n", - "16 F00017 T0053 N/A\n", - "17 F00018 T0009 N/A\n", - "18 F00019 T0011 N/A\n", - "19 F00020 T0011 N/A\n", - "22 F00023 T0011 N/A\n", - "27 F00028 T0025 N/A\n", - "28 F00029 T0006 N/A\n", - "28 F00029 T0019 N/A\n", - "28 F00029 T0050 N/A\n", - "28 F00029 T0056 N/A\n", - "30 F00031 T0019 N/A\n", - "30 F00031 T0056 N/A\n", - "31 F00032 DUPLICATE N/A\n", - "32 F00033 T0013 N/A\n", - "33 F00034 T0049 N/A\n", - "34 F00035 T0006 N/A\n", - "34 F00035 T0019 N/A\n", - "34 F00035 T0050 N/A\n", - "34 F00035 T0056 N/A\n", - "35 F00036 T0020 N/A\n", - "37 F00038 T0010 N/A\n", - "37 F00038 T0039 N/A\n", - "37 F00038 T0043 N/A\n", - "37 F00038 T0057 N/A\n", - "37 F00038 T0061 N/A\n", - "38 F00039 T0024 N/A\n", - "39 F00040 T0024 N/A\n", - "40 F00041 T00029 N/A\n", - "41 F00042 T00029 N/A\n", - "42 F00043 T00030 N/A\n", - "43 F00044 All N/A\n", - "44 F00045 All N/A\n", - "50 F00051 T0009 N/A\n", - "50 F00051 T0045 N/A\n", - "51 F00052 All N/A\n", - "52 F00053 T0049 N/A\n", - "52 F00053 T0050 N/A\n", - "52 F00053 T0052 N/A\n", - "52 F00053 T0053 N/A\n", - "52 F00053 T0054 N/A\n", - "52 F00053 T0055 N/A\n", - "52 F00053 T0056 N/A\n", - "57 F00058 T0007 N/A\n", - "57 F00058 T0009 N/A\n", - "57 F00058 T0011 N/A\n", - "57 F00058 T0014 N/A\n", - "57 F00058 T0017 N/A\n", - "57 F00058 T0018 N/A\n", - "57 F00058 T0045 N/A\n", - "58 F00059 All N/A\n", - "59 F00060 T0039 N/A\n", - "60 F00061 All N/A\n", - "61 F00062 T0007 N/A\n", - "61 F00062 T0011 N/A\n", - "63 F00064 T0011 N/A\n", - "77 F00078 All N/A\n", - "78 F00079 T0029 N/A\n", - "78 F00079 T0047 N/A\n", - "78 F00079 T0049 N/A\n", - "78 F00079 T0054 N/A\n", - "78 F00079 T0055 N/A\n", - "78 F00079 T0060 N/A\n", - "79 F00080 T0029 N/A\n", - "80 F00081 T0049 N/A\n", - "80 F00081 T0050 N/A\n", - "80 F00081 T0052 N/A\n", - "80 F00081 T0053 N/A\n", - "80 F00081 T0054 N/A\n", - "80 F00081 T0055 N/A\n", - "80 F00081 T0056 N/A\n", - "82 F00083 T0012 N/A\n", - "82 F00083 T0021 N/A\n", - "92 F00093 T0011 N/A\n", - "93 F00094 T0013 N/A\n", - "93 F00094 T0008 N/A" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dtech" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
detection_idtactic_idmain_tacticsummary
0F00003TA06NN/A
1F00003TA08NN/A
2F00003TA09NN/A
3F00006TA05NN/A
4F00006TA07NN/A
5F00006TA08NN/A
6F00006TA09NN/A
7F00006TA10NN/A
8F00006TA11NN/A
9F00015TA07NN/A
10F00016TA08NN/A
11F00016TA09NN/A
12F00016TA10NN/A
13F00016TA11NN/A
14F00021TA03NN/A
15F00021TA04NN/A
16F00021TA05NN/A
17F00021TA06NN/A
18F00021TA07NN/A
19F00021TA08NN/A
20F00021TA09NN/A
21F00021TA10NN/A
22F00021TA11NN/A
23F00025TA01NN/A
24F00025TA02NN/A
25F00029TA01NN/A
26F00030TA03NN/A
27F00030TA04NN/A
28F00030TA05NN/A
29F00030TA06NN/A
30F00030TA08NN/A
31F00030TA09NN/A
32F00030TA10NN/A
33F00031TA01NN/A
34F00035TA01NN/A
35F00037TA01NN/A
36F00046TA08NN/A
37F00058TA07NN/A
38F00058TA09NN/A
39F00058TA10NN/A
40F00062TA09NN/A
41F00001TA01YN/A
42F00002TA01YN/A
43F00003TA01YN/A
44F00004TA01YN/A
45F00005TA01YN/A
46F00006TA01YN/A
47F00007TA02YN/A
48F00008TA03YN/A
49F00009TA03YN/A
50F00010TA03YN/A
51F00011TA03YN/A
52F00012TA03YN/A
53F00013TA03YN/A
54F00014TA03YN/A
55F00015TA03YN/A
56F00016TA03YN/A
57F00017TA03YN/A
58F00018TA03YN/A
59F00019TA04YN/A
60F00020TA04YN/A
61F00021TA04YN/A
62F00022TA04YN/A
63F00023TA04YN/A
64F00024TA04YN/A
65F00025TA05YN/A
66F00026TA05YN/A
67F00027TA05YN/A
68F00028TA06YN/A
69F00029TA06YN/A
70F00030TA06YN/A
71F00031TA06YN/A
72F00032TA06YN/A
73F00033TA06YN/A
74F00034TA06YN/A
75F00035TA06YN/A
76F00036TA06YN/A
77F00037TA06YN/A
78F00038TA06YN/A
79F00039TA06YN/A
80F00040TA06YN/A
81F00041TA07YN/A
82F00042TA07YN/A
83F00043TA07YN/A
84F00044TA08YN/A
85F00045TA08YN/A
86F00046TA08YN/A
87F00047TA08YN/A
88F00048TA08YN/A
89F00049TA08YN/A
90F00050TA08YN/A
91F00051TA09YN/A
92F00052TA09YN/A
93F00053TA09YN/A
94F00054TA09YN/A
95F00055TA09YN/A
96F00056TA09YN/A
97F00057TA09YN/A
98F00058TA10YN/A
99F00059TA10YN/A
100F00060TA10YN/A
101F00061TA10YN/A
102F00062TA11YN/A
103F00063TA11YN/A
104F00064TA11YN/A
105F00065TA11YN/A
106F00066TA11YN/A
107F00067YN/A
108F00068YN/A
109F00069YN/A
110F00070ALLYN/A
111F00071YN/A
112F00072YN/A
113F00073YN/A
114F00074YN/A
115F00075YN/A
116F00076YN/A
117F00077TA03YN/A
118F00078TA03YN/A
119F00079TA05YN/A
120F00080TA07YN/A
121F00081TA09YN/A
122F00082TA11YN/A
123F00083TA11YN/A
124F00084TA03YN/A
125F00085YN/A
126F00086TA02YN/A
127F00087YN/A
128F00088YN/A
129F00089TA04YN/A
130F00090TA01YN/A
131F00091TA01YN/A
132F00092TA09YN/A
133F00093TA03YN/A
134F00094TA07YN/A
\n", - "
" - ], - "text/plain": [ - " detection_id tactic_id main_tactic summary\n", - "0 F00003 TA06 N N/A\n", - "1 F00003 TA08 N N/A\n", - "2 F00003 TA09 N N/A\n", - "3 F00006 TA05 N N/A\n", - "4 F00006 TA07 N N/A\n", - "5 F00006 TA08 N N/A\n", - "6 F00006 TA09 N N/A\n", - "7 F00006 TA10 N N/A\n", - "8 F00006 TA11 N N/A\n", - "9 F00015 TA07 N N/A\n", - "10 F00016 TA08 N N/A\n", - "11 F00016 TA09 N N/A\n", - "12 F00016 TA10 N N/A\n", - "13 F00016 TA11 N N/A\n", - "14 F00021 TA03 N N/A\n", - "15 F00021 TA04 N N/A\n", - "16 F00021 TA05 N N/A\n", - "17 F00021 TA06 N N/A\n", - "18 F00021 TA07 N N/A\n", - "19 F00021 TA08 N N/A\n", - "20 F00021 TA09 N N/A\n", - "21 F00021 TA10 N N/A\n", - "22 F00021 TA11 N N/A\n", - "23 F00025 TA01 N N/A\n", - "24 F00025 TA02 N N/A\n", - "25 F00029 TA01 N N/A\n", - "26 F00030 TA03 N N/A\n", - "27 F00030 TA04 N N/A\n", - "28 F00030 TA05 N N/A\n", - "29 F00030 TA06 N N/A\n", - "30 F00030 TA08 N N/A\n", - "31 F00030 TA09 N N/A\n", - "32 F00030 TA10 N N/A\n", - "33 F00031 TA01 N N/A\n", - "34 F00035 TA01 N N/A\n", - "35 F00037 TA01 N N/A\n", - "36 F00046 TA08 N N/A\n", - "37 F00058 TA07 N N/A\n", - "38 F00058 TA09 N N/A\n", - "39 F00058 TA10 N N/A\n", - "40 F00062 TA09 N N/A\n", - "41 F00001 TA01 Y N/A\n", - "42 F00002 TA01 Y N/A\n", - "43 F00003 TA01 Y N/A\n", - "44 F00004 TA01 Y N/A\n", - "45 F00005 TA01 Y N/A\n", - "46 F00006 TA01 Y N/A\n", - "47 F00007 TA02 Y N/A\n", - "48 F00008 TA03 Y N/A\n", - "49 F00009 TA03 Y N/A\n", - "50 F00010 TA03 Y N/A\n", - "51 F00011 TA03 Y N/A\n", - "52 F00012 TA03 Y N/A\n", - "53 F00013 TA03 Y N/A\n", - "54 F00014 TA03 Y N/A\n", - "55 F00015 TA03 Y N/A\n", - "56 F00016 TA03 Y N/A\n", - "57 F00017 TA03 Y N/A\n", - "58 F00018 TA03 Y N/A\n", - "59 F00019 TA04 Y N/A\n", - "60 F00020 TA04 Y N/A\n", - "61 F00021 TA04 Y N/A\n", - "62 F00022 TA04 Y N/A\n", - "63 F00023 TA04 Y N/A\n", - "64 F00024 TA04 Y N/A\n", - "65 F00025 TA05 Y N/A\n", - "66 F00026 TA05 Y N/A\n", - "67 F00027 TA05 Y N/A\n", - "68 F00028 TA06 Y N/A\n", - "69 F00029 TA06 Y N/A\n", - "70 F00030 TA06 Y N/A\n", - "71 F00031 TA06 Y N/A\n", - "72 F00032 TA06 Y N/A\n", - "73 F00033 TA06 Y N/A\n", - "74 F00034 TA06 Y N/A\n", - "75 F00035 TA06 Y N/A\n", - "76 F00036 TA06 Y N/A\n", - "77 F00037 TA06 Y N/A\n", - "78 F00038 TA06 Y N/A\n", - "79 F00039 TA06 Y N/A\n", - "80 F00040 TA06 Y N/A\n", - "81 F00041 TA07 Y N/A\n", - "82 F00042 TA07 Y N/A\n", - "83 F00043 TA07 Y N/A\n", - "84 F00044 TA08 Y N/A\n", - "85 F00045 TA08 Y N/A\n", - "86 F00046 TA08 Y N/A\n", - "87 F00047 TA08 Y N/A\n", - "88 F00048 TA08 Y N/A\n", - "89 F00049 TA08 Y N/A\n", - "90 F00050 TA08 Y N/A\n", - "91 F00051 TA09 Y N/A\n", - "92 F00052 TA09 Y N/A\n", - "93 F00053 TA09 Y N/A\n", - "94 F00054 TA09 Y N/A\n", - "95 F00055 TA09 Y N/A\n", - "96 F00056 TA09 Y N/A\n", - "97 F00057 TA09 Y N/A\n", - "98 F00058 TA10 Y N/A\n", - "99 F00059 TA10 Y N/A\n", - "100 F00060 TA10 Y N/A\n", - "101 F00061 TA10 Y N/A\n", - "102 F00062 TA11 Y N/A\n", - "103 F00063 TA11 Y N/A\n", - "104 F00064 TA11 Y N/A\n", - "105 F00065 TA11 Y N/A\n", - "106 F00066 TA11 Y N/A\n", - "107 F00067 Y N/A\n", - "108 F00068 Y N/A\n", - "109 F00069 Y N/A\n", - "110 F00070 ALL Y N/A\n", - "111 F00071 Y N/A\n", - "112 F00072 Y N/A\n", - "113 F00073 Y N/A\n", - "114 F00074 Y N/A\n", - "115 F00075 Y N/A\n", - "116 F00076 Y N/A\n", - "117 F00077 TA03 Y N/A\n", - "118 F00078 TA03 Y N/A\n", - "119 F00079 TA05 Y N/A\n", - "120 F00080 TA07 Y N/A\n", - "121 F00081 TA09 Y N/A\n", - "122 F00082 TA11 Y N/A\n", - "123 F00083 TA11 Y N/A\n", - "124 F00084 TA03 Y N/A\n", - "125 F00085 Y N/A\n", - "126 F00086 TA02 Y N/A\n", - "127 F00087 Y N/A\n", - "128 F00088 Y N/A\n", - "129 F00089 TA04 Y N/A\n", - "130 F00090 TA01 Y N/A\n", - "131 F00091 TA01 Y N/A\n", - "132 F00092 TA09 Y N/A\n", - "133 F00093 TA03 Y N/A\n", - "134 F00094 TA07 Y N/A" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dtact" + "from sqlalchemy import create_engine\n", + "engine = create_engine('postgresql://sara:@localhost:5432/amittsite')\n", + "newtable.to_sql('test2', engine)" ] }, { diff --git a/HTML_GENERATING_CODE/.ipynb_checkpoints/Generate_AMITT_github_files-checkpoint.ipynb b/HTML_GENERATING_CODE/.ipynb_checkpoints/AMITT_generate_github_files-checkpoint.ipynb similarity index 100% rename from HTML_GENERATING_CODE/.ipynb_checkpoints/Generate_AMITT_github_files-checkpoint.ipynb rename to HTML_GENERATING_CODE/.ipynb_checkpoints/AMITT_generate_github_files-checkpoint.ipynb diff --git a/HTML_GENERATING_CODE/AMITT_TTPs_MASTER_github_version.xlsx b/HTML_GENERATING_CODE/AMITT_FRAMEWORK_MASTER_github_version.xlsx similarity index 100% rename from HTML_GENERATING_CODE/AMITT_TTPs_MASTER_github_version.xlsx rename to HTML_GENERATING_CODE/AMITT_FRAMEWORK_MASTER_github_version.xlsx diff --git a/HTML_GENERATING_CODE/AMITT_create_website_sql.ipynb b/HTML_GENERATING_CODE/AMITT_create_website_sql.ipynb index 033dc74..ce769de 100644 --- a/HTML_GENERATING_CODE/AMITT_create_website_sql.ipynb +++ b/HTML_GENERATING_CODE/AMITT_create_website_sql.ipynb @@ -11,8239 +11,25 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "dict_keys(['df_phases', 'df_frameworks', 'df_techniques', 'df_tasks', 'df_incidents', 'df_counters', 'df_detections', 'df_actortypes', 'df_resources', 'df_responsetypes', 'df_metatechniques', 'it', 'df_tactics', 'df_techniques_per_tactic', 'df_counters_per_tactic', 'phases', 'tactics', 'techniques', 'counters', 'metatechniques', 'actortypes', 'resources', 'num_tactics', 'cross_counterid_techniqueid', 'cross_counterid_resourceid', 'cross_counterid_actortypeid', 'cross_detectionid_techniqueid', 'cross_detectionid_resourceid', 'cross_detectionid_actortypeid'])\n" + "postgres://msenahnnwvuamr:227b5aeb1268572ab2d77f3158aecbdd50326bfff3026ab61aebb0fdcb0953a7@ec2-54-162-119-125.compute-1.amazonaws.com:5432/demudug8oqb3h0\n" ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
amitt_idtechnique_id
0C00006T0007
0C00006T0015
0C00006T0018
0C00006T0043
0C00006T0053
0C00006T0054
0C00006
1C00008T0001
1C00008T0002
1C00008T0003
1C00008T0027
1C00008T0028
1C00008T0006
1C00008T0009
1C00008T0008
1C00008T0013
1C00008T0014
1C00008T0021
1C00008T0025
1C00008T0024
1C00008T0026
1C00008T0056
1C00008T0051
1C00008T0044
1C00008T0045
2C00009T0010
2C00009T0039
2C00009T0044
2C00009T0042
2C00009T0048
2C00009T0052
2C00009T0053
2C00009T0055
2C00009T0056
3C00010T0005
3C00010T0018
4C00011T0001
4C00011T0002
4C00011T0003
4C00011T0027
4C00011T0028
4C00011T0006
4C00011T0009
4C00011T0008
4C00011T0013
4C00011T0021
4C00011T0025
4C00011T0024
4C00011T0026
4C00011T0056
4C00011T0051
4C00011T0044
4C00011T0045
5C00012T0001
5C00012T0002
5C00012T0003
5C00012T0007
5C00012T0008
5C00012T0009
5C00012T0013
5C00012T0014
5C00012T0015
5C00012T0016
5C00012T0017
5C00012T0018
5C00012T0021
5C00012T0022
5C00012T0024
5C00012T0025
5C00012T0026
5C00012T0043
5C00012T0045
5C00012T0046
5C00012T0047
5C00012T0048
5C00012T0049
5C00012T0050
5C00012T0051
5C00012T0052
5C00012T0053
5C00012T0054
5C00012T0055
5C00012T0056
5C00012T0057
5C00012T0061
6C00013T0001
6C00013T0002
6C00013T0003
6C00013T0027
6C00013T0028
6C00013T0056
6C00013T0052
7C00014T0001
7C00014T0002
7C00014T0003
7C00014T0027
7C00014T0028
7C00014T0006
7C00014T0009
7C00014T0008
7C00014T0013
7C00014T0014
7C00014T0021
7C00014T0025
7C00014T0024
7C00014T0026
7C00014T0056
7C00014T0051
7C00014T0044
7C00014T0045
8C00016T0001
8C00016T0002
8C00016T0003
8C00016T0027
8C00016T0028
8C00016T0009
8C00016T0008
8C00016T0007
8C00016T0013
8C00016T0014
8C00016T0015
8C00016T0016
8C00016T0017
8C00016T0018
8C00016T0022
8C00016T0021
8C00016T0025
8C00016T0024
8C00016T0026
8C00016T0044
8C00016T0045
8C00016T0043
8C00016T0056
8C00016T0051
8C00016T0049
8C00016T0052
8C00016T0054
8C00016T0053
8C00016T0055
8C00016T0058
8C00016T0057
8C00016
9C00017T0001
9C00017T0002
9C00017T0003
9C00017T0027
9C00017T0028
9C00017T0022
9C00017T0023
10C00019T0001
10C00019T0002
10C00019T0003
10C00019T0027
10C00019T0028
10C00019T0022
10C00019T0023
10C00019T0053
10C00019T0044
10C00019T0052
10C00019T0056
11C00021T0001
11C00021T0002
11C00021T0003
11C00021T0006
11C00021T0027
11C00021T0028
11C00021T0022
11C00021T0023
11C00021T0053
11C00021T0044
11C00021
12C00022T0001
12C00022T0002
12C00022T0003
12C00022T0006
12C00022T0027
12C00022T0028
12C00022T0022
12C00022T0023
12C00022T0053
12C00022T0044
12C00022
13C00024T0001
13C00024T0002
13C00024T0003
13C00024T0006
13C00024T0027
13C00024T0028
13C00024T0022
13C00024T0023
13C00024T0053
13C00024T0044
13C00024
14C00026T0001
14C00026T0002
15C00027T0001
15C00027T0002
15C00027T0003
15C00027T0006
15C00027T0027
15C00027T0028
15C00027T0022
15C00027T0021
15C00027T0023
15C00027T0048
15C00027T0053
15C00027T0044
15C00027T0039
16C00028TA07
16C00028TA08
16C00028TA09
16C00028TA10
17C00029T0002
17C00029T0003
17C00029T0006
17C00029T0027
17C00029T0028
17C00029T0022
18C00030T0002
18C00030T0003
18C00030T0006
18C00030T0027
18C00030T0028
18C00030T0022
19C00031T0002
19C00031T0003
19C00031T0006
19C00031T0027
19C00031T0028
20C00032T0055
21C00034T0009
21C00034T0007
21C00034T0012
21C00034T0030
22C00036T0005
22C00036T0007
22C00036T0010
22C00036T0012
22C00036T0030
22C00036T0045
22C00036T0056
22C00036T0057
23C00040T0007
23C00040T0009
23C00040T0012
24C00042T0004
24C00042T0019
24C00042T0022
24C00042T0027
24C00042T0028
24C00042T0042
24C00042T0044
24C00042T0056
24C00042T0059
25C00044T0029
25C00044T0049
25C00044T0054
25C00044T0053
25C00044T0055
25C00044T0056
25C00044T0051
25C00044T0050
26C00046T0010
26C00046T0044
26C00046T0021
26C00046T0022
26C00046T0023
26C00046T0027
26C00046T0039
26C00046T0045
26C00046T0048
26C00046T0051
26C00046T0052
26C00046T0053
26C00046T0054
26C00046T0056
26C00046T0057
26C00046T0060
26C00046T0061
27C00047T0063
27C00047T0062
28C00048T0010
28C00048T0045
28C00048T0048
28C00048T0051
28C00048T0052
28C00048T0053
28C00048T0054
28C00048T0056
28C00048T0057
28C00048T0060
28C00048T0061
29C00051T0010
29C00051T0012
30C00052T0012
30C00052T0030
31C00053T0011
31C00053T0030
32C00056
33C00058T0017
33C00058T0061
34C00059T0014
35C00060TA07
35C00060T0047
36C00062TA01
36C00062TA02
36C00062TA03
36C00062TA04
36C00062TA05
36C00062TA06
36C00062TA07
36C00062TA08
36C00062TA09
36C00062TA10
36C00062TA11
36C00062TA12
37C00065T0018
38C00066T0015
38C00066T0055
39C00067T0017
39C00067T0061
40C00070T0008
40C00070T0014
40C00070T0015
40C00070T0017
40C00070T0046
40C00070T0052
40C00070T0055
40C00070T0057
40C00070T0056
40C00070T0058
41C00071T0019
41C00071T0056
42C00072T0019
42C00072T0010
42C00072T0044
42C00072T0021
42C00072T0022
42C00072T0023
42C00072T0027
42C00072T0039
42C00072T0055
42C00072T0049
42C00072
43C00073T0016
43C00073T0019
43C00073T0056
43C00073T0010
43C00073T0021
43C00073T0022
43C00073T0023
43C00073T0026
43C00073T0025
43C00073T0027
43C00073T0039
43C00073T0040
43C00073T0044
43C00073T0045
43C00073T0048
43C00073T0053
43C00073T0056
43C00073T0060
44C00074T0019
44C00074T0021
44C00074T0022
44C00074T0026
44C00074T0025
44C00074T0043
44C00074T0050
44C00074T0051
44C00074T0049
44C00074T0052
44C00074T0053
44C00074T0054
44C00074T0055
44C00074T0057
44C00074T0061
44C00074T0060
45C00075
46C00076T0016
46C00076T0018
46C00076T0039
46C00076T0044
46C00076T0021
47C00077
48C00078TA07
48C00078T0044
48C00078T0046
48C00078T0056
48C00078T0052
48C00078T0060
49C00080T0003
49C00080T0004
49C00080T0028
49C00080T0022
49C00080T0027
50C00081T0003
50C00081T0004
50C00081T0028
50C00081T0006
50C00081T0022
50C00081T0023
50C00081T0026
50C00081T0027
50C00081T0044
50C00081T0053
50C00081T0054
50C00081T0055
50C00081T0056
51C00082T0002
51C00082T0003
51C00082T0004
51C00082T0028
51C00082T0006
51C00082T0022
51C00082T0023
51C00082T0025
51C00082T0026
51C00082T0027
51C00082T0044
51C00082T0053
51C00082T0054
51C00082T0055
51C00082T0056
52C00084T0002
52C00084T0003
52C00084T0004
52C00084T0028
52C00084T0006
52C00084T0022
52C00084T0027
52C00084T0059
53C00085T0008
53C00085T0007
53C00085T0017
53C00085T0022
53C00085T0021
53C00085T0025
53C00085T0024
53C00085T0026
53C00085T0045
53C00085T0044
53C00085T0049
53C00085T0051
53C00085T0052
53C00085T0053
53C00085T0054
53C00085T0055
53C00085T0056
53C00085T0057
53C00085T0061
53C00085T0060
54C00086T0044
54C00086T0050
54C00086T0051
54C00086T0049
54C00086T0054
54C00086T0053
54C00086T0055
54C00086
55C00087T0039
55C00087T0044
55C00087T0048
55C00087T0050
55C00087T0051
55C00087T0049
55C00087T0052
55C00087T0054
55C00087T0053
55C00087T0055
55C00087T0056
56C00090T0020
56C00090T0062
56C00090T0063
57C00091T0062
57C00091T0063
57C00091T0054
57C00091T0053
57C00091T0049
58C00092TA07
58C00092TA08
58C00092T0010
58C00092T0023
58C00092T0039
58C00092T0045
58C00092T0044
58C00092T0054
58C00092T0053
58C00092T0056
59C00093TA07
59C00093T0010
59C00093T0017
59C00093T0039
59C00093T0047
59C00093T0048
59C00093T0053
60C00094T0026
61C00096T0022
61C00096T0027
61C00096T0026
61C00096T0024
61C00096T0023
61C00096T0025
61C00096
62C00097T0029
62C00097T0030
62C00097T0045
62C00097T0009
62C00097T0007
62C00097T0054
62C00097T0053
63C00098T0038
63C00098T0011
64C00099T0030
64C00099T0045
64C00099T0009
64C00099T0008
64C00099T0007
65C00100T0055
66C00101T0029
66C00101T0049
66C00101T0053
66C00101T0054
67C00103T0029
67C00103T0062
67C00103T0063
67C00103T0053
68C00105T0016
68C00105T0018
69C00106T0016
70C00107T0009
70C00107T0008
70C00107T0007
70C00107T0013
70C00107T0014
70C00107T0015
70C00107T0016
70C00107T0017
70C00107T0018
70C00107T0021
70C00107T0025
70C00107T0024
70C00107T0026
70C00107T0045
70C00107T0055
70C00107T0057
70C00107T0001
70C00107T0022
70C00107T0027
70C00107T0061
71C00109
72C00111T0010
73C00112T0040
73C00112T0042
74C00113T0045
75C00114T0039
75C00114T0048
75C00114
76C00115T0041
76C00115T0048
76C00115T0052
76C00115T0053
76C00115T0056
77C00116T0041
78C00117T0046
78C00117T0022
78C00117T0021
78C00117T0025
78C00117T0024
78C00117T0026
78C00117T0045
78C00117T0044
78C00117T0060
78C00117
79C00118T0044
79C00118T0021
79C00118T0024
80C00119T0022
80C00119T0021
80C00119T0025
80C00119T0024
80C00119T0026
80C00119T0045
80C00119T0044
80C00119T0060
81C00120T0047
81C00120T0052
81C00120T0053
81C00120T0054
81C00120T0055
81C00120T0056
82C00121T0043
83C00122T0008
83C00122T0007
83C00122T0014
83C00122T0015
83C00122T0016
83C00122T0017
83C00122T0018
83C00122T0022
83C00122T0021
83C00122T0025
83C00122T0024
83C00122T0026
83C00122T0045
83C00122T0044
83C00122T0049
83C00122T0051
83C00122T0052
83C00122T0053
83C00122T0054
83C00122T0055
83C00122T0056
83C00122T0057
83C00122T0061
83C00122T0060
84C00123T0029
84C00123T0049
84C00123T0054
84C00123T0060
85C00124TA08
85C00124TA09
85C00124T0053
85C00124T0063
86C00125T0056
86C00125T0052
86C00125T0054
86C00125T0053
86C00125T0055
86C00125T0045
86C00125T0022
86C00125T0027
86C00125T0002
86C00125T0003
86C00125T0004
86C00125T0010
86C00125
87C00126T0056
87C00126T0052
87C00126T0054
87C00126T0053
87C00126T0055
87C00126T0045
87C00126T0022
87C00126T0027
87C00126T0002
87C00126T0003
87C00126T0004
87C00126T0010
87C00126T0057
88C00128T0050
88C00128T0056
88C00128T0049
88C00128T0052
88C00128T0054
88C00128T0053
88C00128T0055
88C00128T0057
88C00128T0061
89C00129T0057
89C00129T0061
89C00129T0014
89C00129T0017
89C00129T0018
90C00130T0010
91C00131T0049
91C00131T0054
91C00131T0060
92C00133TA07
92C00133TA09
92C00133TA10
92C00133T0007
92C00133T0009
92C00133T0045
92C00133T0011
92C00133T0045
93C00135TA07
93C00135TA09
93C00135TA10
93C00135T0007
93C00135T0043
94C00136TA08
94C00136TA09
94C00136TA10
94C00136T0010
94C00136T0020
94C00136T0063
95C00138T0060
95C00138T0056
96C00139
97C00140TA05
97C00140TA09
97C00140TA10
98C00142TA05
98C00142TA09
98C00142TA10
98C00142TA11
98C00142T0016
98C00142
99C00143T0060
99C00143T0058
99C00143T0024
100C00144T0053
101C00147T0060
102C00148T0062
102C00148T0063
102C00148
103C00149TA12
103C00149T0020
103C00149T0046
103C00149T0057
103C00149T0063
104C00153T0008
104C00153T0007
104C00153T0011
104C00153T0013
104C00153T0014
104C00153T0017
104C00153T0018
104C00153T0056
104C00153T0049
104C00153T0052
104C00153T0054
104C00153T0053
104C00153T0058
104C00153T0057
104C00153T0061
105C00154T0039
105C00154T0048
105C00154T0045
106C00155T0014
106C00155T0017
107C00156T0022
107C00156T0027
107C00156T0002
107C00156T0003
107C00156T0004
107C00156T0010
108C00159
109C00160T0039
109C00160T0010
109C00160T0048
110C00161T0022
110C00161T0027
110C00161T0002
110C00161T0003
110C00161T0004
111C00162T0010
111C00162T0022
111C00162T0027
111C00162T0002
111C00162T0003
111C00162T0004
111C00162T0039
111C00162T0052
111C00162T0056
111C00162T0050
112C00164T0022
112C00164T0027
112C00164T0002
112C00164T0003
112C00164T0004
112C00164
113C00165T0025
114C00169T0010
114C00169T0022
114C00169T0027
114C00169T0002
114C00169T0003
114C00169T0004
114C00169T0039
115C00170
116C00172T0008
116C00172T0007
116C00172T0013
116C00172
117C00174T0001
117C00174T0045
117C00174T0010
117C00174T0022
117C00174T0027
117C00174T0044
118C00176T0009
118C00176T0008
118C00176T0007
118C00176T0013
118C00176T0014
118C00176T0015
118C00176T0016
118C00176T0017
118C00176T0018
118C00176T0021
118C00176T0025
118C00176T0024
118C00176T0026
118C00176T0045
118C00176T0043
118C00176T0056
118C00176T0051
118C00176T0049
118C00176T0052
118C00176T0054
118C00176T0053
118C00176T0055
118C00176T0058
118C00176T0057
118C00176T0001
118C00176T0003
118C00176T0010
118C00176T0022
118C00176T0027
118C00176T0061
119C00178T0016
119C00178T0017
119C00178T0018
119C00178T0020
120C00182T0011
120C00182T0054
121C00184T0045
121C00184T0055
121C00184T0039
121C00184T0041
121C00184T0044
121C00184T0045
121C00184T0010
122C00188T0001
122C00188T0003
122C00188T0022
122C00188T0027
122C00188T0045
122C00188T0008
122C00188T0010
122C00188T0039
122C00188T0046
122C00188
123C00189T0008
123C00189T0007
123C00189T0011
123C00189T0014
123C00189T0009
124C00190T0001
124C00190T0003
124C00190T0010
124C00190T0022
124C00190T0027
124C00190T0025
125C00195T0010
125C00195T0016
125C00195T0018
125C00195T0022
125C00195T0027
125C00195T0025
125C00195T0024
125C00195T0026
125C00195T0045
125C00195T0046
125C00195T0055
126C00197T0009
126C00197T0007
126C00197T0011
127C00200T0010
127C00200T0027
127C00200T0022
127C00200T0045
127C00200T0025
128C00202T0025
129C00203T0010
129C00203T0027
129C00203T0022
129C00203T0028
129C00203T0039
129C00203T0045
129C00203T0056
129C00203T0052
130C00205T0001
130C00205T0003
130C00205T0022
130C00205T0025
130C00205T0027
131C00207
132C00211T0027
132C00211T0022
132C00211T0028
132C00211T0026
132C00211T0021
132C00211T0020
132C00211T0025
132C00211T0024
132C00211T0026
132C00211T0045
132C00211T0055
132C00211T0057
133C00212T0001
133C00212T0003
133C00212T0010
133C00212T0022
134C00216T0014
134C00216T0016
134C00216T0017
134C00216T0061
134C00216T0018
134C00216T0057
135C00219T0024
135C00219T0026
135C00219T0025
136C00220
137C00221
138C00222
139C00223
\n", - "
" - ], - "text/plain": [ - " amitt_id technique_id\n", - "0 C00006 T0007\n", - "0 C00006 T0015\n", - "0 C00006 T0018\n", - "0 C00006 T0043\n", - "0 C00006 T0053\n", - "0 C00006 T0054\n", - "0 C00006 \n", - "1 C00008 T0001\n", - "1 C00008 T0002\n", - "1 C00008 T0003\n", - "1 C00008 T0027\n", - "1 C00008 T0028\n", - "1 C00008 T0006\n", - "1 C00008 T0009\n", - "1 C00008 T0008\n", - "1 C00008 T0013\n", - "1 C00008 T0014\n", - "1 C00008 T0021\n", - "1 C00008 T0025\n", - "1 C00008 T0024\n", - "1 C00008 T0026\n", - "1 C00008 T0056\n", - "1 C00008 T0051\n", - "1 C00008 T0044\n", - "1 C00008 T0045\n", - "2 C00009 T0010\n", - "2 C00009 T0039\n", - "2 C00009 T0044\n", - "2 C00009 T0042\n", - "2 C00009 T0048\n", - "2 C00009 T0052\n", - "2 C00009 T0053\n", - "2 C00009 T0055\n", - "2 C00009 T0056\n", - "3 C00010 T0005\n", - "3 C00010 T0018\n", - "4 C00011 T0001\n", - "4 C00011 T0002\n", - "4 C00011 T0003\n", - "4 C00011 T0027\n", - "4 C00011 T0028\n", - "4 C00011 T0006\n", - "4 C00011 T0009\n", - "4 C00011 T0008\n", - "4 C00011 T0013\n", - "4 C00011 T0021\n", - "4 C00011 T0025\n", - "4 C00011 T0024\n", - "4 C00011 T0026\n", - "4 C00011 T0056\n", - "4 C00011 T0051\n", - "4 C00011 T0044\n", - "4 C00011 T0045\n", - "5 C00012 T0001\n", - "5 C00012 T0002\n", - "5 C00012 T0003\n", - "5 C00012 T0007\n", - "5 C00012 T0008\n", - "5 C00012 T0009\n", - "5 C00012 T0013\n", - "5 C00012 T0014\n", - "5 C00012 T0015\n", - "5 C00012 T0016\n", - "5 C00012 T0017\n", - "5 C00012 T0018\n", - "5 C00012 T0021\n", - "5 C00012 T0022\n", - "5 C00012 T0024\n", - "5 C00012 T0025\n", - "5 C00012 T0026\n", - "5 C00012 T0043\n", - "5 C00012 T0045\n", - "5 C00012 T0046\n", - "5 C00012 T0047\n", - "5 C00012 T0048\n", - "5 C00012 T0049\n", - "5 C00012 T0050\n", - "5 C00012 T0051\n", - "5 C00012 T0052\n", - "5 C00012 T0053\n", - "5 C00012 T0054\n", - "5 C00012 T0055\n", - "5 C00012 T0056\n", - "5 C00012 T0057\n", - "5 C00012 T0061\n", - "6 C00013 T0001\n", - "6 C00013 T0002\n", - "6 C00013 T0003\n", - "6 C00013 T0027\n", - "6 C00013 T0028\n", - "6 C00013 T0056\n", - "6 C00013 T0052\n", - "7 C00014 T0001\n", - "7 C00014 T0002\n", - "7 C00014 T0003\n", - "7 C00014 T0027\n", - "7 C00014 T0028\n", - "7 C00014 T0006\n", - "7 C00014 T0009\n", - "7 C00014 T0008\n", - "7 C00014 T0013\n", - "7 C00014 T0014\n", - "7 C00014 T0021\n", - "7 C00014 T0025\n", - "7 C00014 T0024\n", - "7 C00014 T0026\n", - "7 C00014 T0056\n", - "7 C00014 T0051\n", - "7 C00014 T0044\n", - "7 C00014 T0045\n", - "8 C00016 T0001\n", - "8 C00016 T0002\n", - "8 C00016 T0003\n", - "8 C00016 T0027\n", - "8 C00016 T0028\n", - "8 C00016 T0009\n", - "8 C00016 T0008\n", - "8 C00016 T0007\n", - "8 C00016 T0013\n", - "8 C00016 T0014\n", - "8 C00016 T0015\n", - "8 C00016 T0016\n", - "8 C00016 T0017\n", - "8 C00016 T0018\n", - "8 C00016 T0022\n", - "8 C00016 T0021\n", - "8 C00016 T0025\n", - "8 C00016 T0024\n", - "8 C00016 T0026\n", - "8 C00016 T0044\n", - "8 C00016 T0045\n", - "8 C00016 T0043\n", - "8 C00016 T0056\n", - "8 C00016 T0051\n", - "8 C00016 T0049\n", - "8 C00016 T0052\n", - "8 C00016 T0054\n", - "8 C00016 T0053\n", - "8 C00016 T0055\n", - "8 C00016 T0058\n", - "8 C00016 T0057\n", - "8 C00016 \n", - "9 C00017 T0001\n", - "9 C00017 T0002\n", - "9 C00017 T0003\n", - "9 C00017 T0027\n", - "9 C00017 T0028\n", - "9 C00017 T0022\n", - "9 C00017 T0023\n", - "10 C00019 T0001\n", - "10 C00019 T0002\n", - "10 C00019 T0003\n", - "10 C00019 T0027\n", - "10 C00019 T0028\n", - "10 C00019 T0022\n", - "10 C00019 T0023\n", - "10 C00019 T0053\n", - "10 C00019 T0044\n", - "10 C00019 T0052\n", - "10 C00019 T0056\n", - "11 C00021 T0001\n", - "11 C00021 T0002\n", - "11 C00021 T0003\n", - "11 C00021 T0006\n", - "11 C00021 T0027\n", - "11 C00021 T0028\n", - "11 C00021 T0022\n", - "11 C00021 T0023\n", - "11 C00021 T0053\n", - "11 C00021 T0044\n", - "11 C00021 \n", - "12 C00022 T0001\n", - "12 C00022 T0002\n", - "12 C00022 T0003\n", - "12 C00022 T0006\n", - "12 C00022 T0027\n", - "12 C00022 T0028\n", - "12 C00022 T0022\n", - "12 C00022 T0023\n", - "12 C00022 T0053\n", - "12 C00022 T0044\n", - "12 C00022 \n", - "13 C00024 T0001\n", - "13 C00024 T0002\n", - "13 C00024 T0003\n", - "13 C00024 T0006\n", - "13 C00024 T0027\n", - "13 C00024 T0028\n", - "13 C00024 T0022\n", - "13 C00024 T0023\n", - "13 C00024 T0053\n", - "13 C00024 T0044\n", - "13 C00024 \n", - "14 C00026 T0001\n", - "14 C00026 T0002\n", - "15 C00027 T0001\n", - "15 C00027 T0002\n", - "15 C00027 T0003\n", - "15 C00027 T0006\n", - "15 C00027 T0027\n", - "15 C00027 T0028\n", - "15 C00027 T0022\n", - "15 C00027 T0021\n", - "15 C00027 T0023\n", - "15 C00027 T0048\n", - "15 C00027 T0053\n", - "15 C00027 T0044\n", - "15 C00027 T0039\n", - "16 C00028 TA07\n", - "16 C00028 TA08\n", - "16 C00028 TA09\n", - "16 C00028 TA10\n", - "17 C00029 T0002\n", - "17 C00029 T0003\n", - "17 C00029 T0006\n", - "17 C00029 T0027\n", - "17 C00029 T0028\n", - "17 C00029 T0022\n", - "18 C00030 T0002\n", - "18 C00030 T0003\n", - "18 C00030 T0006\n", - "18 C00030 T0027\n", - "18 C00030 T0028\n", - "18 C00030 T0022\n", - "19 C00031 T0002\n", - "19 C00031 T0003\n", - "19 C00031 T0006\n", - "19 C00031 T0027\n", - "19 C00031 T0028\n", - "20 C00032 T0055\n", - "21 C00034 T0009\n", - "21 C00034 T0007\n", - "21 C00034 T0012\n", - "21 C00034 T0030\n", - "22 C00036 T0005\n", - "22 C00036 T0007\n", - "22 C00036 T0010\n", - "22 C00036 T0012\n", - "22 C00036 T0030\n", - "22 C00036 T0045\n", - "22 C00036 T0056\n", - "22 C00036 T0057\n", - "23 C00040 T0007\n", - "23 C00040 T0009\n", - "23 C00040 T0012\n", - "24 C00042 T0004\n", - "24 C00042 T0019\n", - "24 C00042 T0022\n", - "24 C00042 T0027\n", - "24 C00042 T0028\n", - "24 C00042 T0042\n", - "24 C00042 T0044\n", - "24 C00042 T0056\n", - "24 C00042 T0059\n", - "25 C00044 T0029\n", - "25 C00044 T0049\n", - "25 C00044 T0054\n", - "25 C00044 T0053\n", - "25 C00044 T0055\n", - "25 C00044 T0056\n", - "25 C00044 T0051\n", - "25 C00044 T0050\n", - "26 C00046 T0010\n", - "26 C00046 T0044\n", - "26 C00046 T0021\n", - "26 C00046 T0022\n", - "26 C00046 T0023\n", - "26 C00046 T0027\n", - "26 C00046 T0039\n", - "26 C00046 T0045\n", - "26 C00046 T0048\n", - "26 C00046 T0051\n", - "26 C00046 T0052\n", - "26 C00046 T0053\n", - "26 C00046 T0054\n", - "26 C00046 T0056\n", - "26 C00046 T0057\n", - "26 C00046 T0060\n", - "26 C00046 T0061\n", - "27 C00047 T0063\n", - "27 C00047 T0062\n", - "28 C00048 T0010\n", - "28 C00048 T0045\n", - "28 C00048 T0048\n", - "28 C00048 T0051\n", - "28 C00048 T0052\n", - "28 C00048 T0053\n", - "28 C00048 T0054\n", - "28 C00048 T0056\n", - "28 C00048 T0057\n", - "28 C00048 T0060\n", - "28 C00048 T0061\n", - "29 C00051 T0010\n", - "29 C00051 T0012\n", - "30 C00052 T0012\n", - "30 C00052 T0030\n", - "31 C00053 T0011\n", - "31 C00053 T0030\n", - "32 C00056 \n", - "33 C00058 T0017\n", - "33 C00058 T0061\n", - "34 C00059 T0014\n", - "35 C00060 TA07\n", - "35 C00060 T0047\n", - "36 C00062 TA01\n", - "36 C00062 TA02\n", - "36 C00062 TA03\n", - "36 C00062 TA04\n", - "36 C00062 TA05\n", - "36 C00062 TA06\n", - "36 C00062 TA07\n", - "36 C00062 TA08\n", - "36 C00062 TA09\n", - "36 C00062 TA10\n", - "36 C00062 TA11\n", - "36 C00062 TA12\n", - "37 C00065 T0018\n", - "38 C00066 T0015\n", - "38 C00066 T0055\n", - "39 C00067 T0017\n", - "39 C00067 T0061\n", - "40 C00070 T0008\n", - "40 C00070 T0014\n", - "40 C00070 T0015\n", - "40 C00070 T0017\n", - "40 C00070 T0046\n", - "40 C00070 T0052\n", - "40 C00070 T0055\n", - "40 C00070 T0057\n", - "40 C00070 T0056\n", - "40 C00070 T0058\n", - "41 C00071 T0019\n", - "41 C00071 T0056\n", - "42 C00072 T0019\n", - "42 C00072 T0010\n", - "42 C00072 T0044\n", - "42 C00072 T0021\n", - "42 C00072 T0022\n", - "42 C00072 T0023\n", - "42 C00072 T0027\n", - "42 C00072 T0039\n", - "42 C00072 T0055\n", - "42 C00072 T0049\n", - "42 C00072 \n", - "43 C00073 T0016\n", - "43 C00073 T0019\n", - "43 C00073 T0056\n", - "43 C00073 T0010\n", - "43 C00073 T0021\n", - "43 C00073 T0022\n", - "43 C00073 T0023\n", - "43 C00073 T0026\n", - "43 C00073 T0025\n", - "43 C00073 T0027\n", - "43 C00073 T0039\n", - "43 C00073 T0040\n", - "43 C00073 T0044\n", - "43 C00073 T0045\n", - "43 C00073 T0048\n", - "43 C00073 T0053\n", - "43 C00073 T0056\n", - "43 C00073 T0060\n", - "44 C00074 T0019\n", - "44 C00074 T0021\n", - "44 C00074 T0022\n", - "44 C00074 T0026\n", - "44 C00074 T0025\n", - "44 C00074 T0043\n", - "44 C00074 T0050\n", - "44 C00074 T0051\n", - "44 C00074 T0049\n", - "44 C00074 T0052\n", - "44 C00074 T0053\n", - "44 C00074 T0054\n", - "44 C00074 T0055\n", - "44 C00074 T0057\n", - "44 C00074 T0061\n", - "44 C00074 T0060\n", - "45 C00075 \n", - "46 C00076 T0016\n", - "46 C00076 T0018\n", - "46 C00076 T0039\n", - "46 C00076 T0044\n", - "46 C00076 T0021\n", - "47 C00077 \n", - "48 C00078 TA07\n", - "48 C00078 T0044\n", - "48 C00078 T0046\n", - "48 C00078 T0056\n", - "48 C00078 T0052\n", - "48 C00078 T0060\n", - "49 C00080 T0003\n", - "49 C00080 T0004\n", - "49 C00080 T0028\n", - "49 C00080 T0022\n", - "49 C00080 T0027\n", - "50 C00081 T0003\n", - "50 C00081 T0004\n", - "50 C00081 T0028\n", - "50 C00081 T0006\n", - "50 C00081 T0022\n", - "50 C00081 T0023\n", - "50 C00081 T0026\n", - "50 C00081 T0027\n", - "50 C00081 T0044\n", - "50 C00081 T0053\n", - "50 C00081 T0054\n", - "50 C00081 T0055\n", - "50 C00081 T0056\n", - "51 C00082 T0002\n", - "51 C00082 T0003\n", - "51 C00082 T0004\n", - "51 C00082 T0028\n", - "51 C00082 T0006\n", - "51 C00082 T0022\n", - "51 C00082 T0023\n", - "51 C00082 T0025\n", - "51 C00082 T0026\n", - "51 C00082 T0027\n", - "51 C00082 T0044\n", - "51 C00082 T0053\n", - "51 C00082 T0054\n", - "51 C00082 T0055\n", - "51 C00082 T0056\n", - "52 C00084 T0002\n", - "52 C00084 T0003\n", - "52 C00084 T0004\n", - "52 C00084 T0028\n", - "52 C00084 T0006\n", - "52 C00084 T0022\n", - "52 C00084 T0027\n", - "52 C00084 T0059\n", - "53 C00085 T0008\n", - "53 C00085 T0007\n", - "53 C00085 T0017\n", - "53 C00085 T0022\n", - "53 C00085 T0021\n", - "53 C00085 T0025\n", - "53 C00085 T0024\n", - "53 C00085 T0026\n", - "53 C00085 T0045\n", - "53 C00085 T0044\n", - "53 C00085 T0049\n", - "53 C00085 T0051\n", - "53 C00085 T0052\n", - "53 C00085 T0053\n", - "53 C00085 T0054\n", - "53 C00085 T0055\n", - "53 C00085 T0056\n", - "53 C00085 T0057\n", - "53 C00085 T0061\n", - "53 C00085 T0060\n", - "54 C00086 T0044\n", - "54 C00086 T0050\n", - "54 C00086 T0051\n", - "54 C00086 T0049\n", - "54 C00086 T0054\n", - "54 C00086 T0053\n", - "54 C00086 T0055\n", - "54 C00086 \n", - "55 C00087 T0039\n", - "55 C00087 T0044\n", - "55 C00087 T0048\n", - "55 C00087 T0050\n", - "55 C00087 T0051\n", - "55 C00087 T0049\n", - "55 C00087 T0052\n", - "55 C00087 T0054\n", - "55 C00087 T0053\n", - "55 C00087 T0055\n", - "55 C00087 T0056\n", - "56 C00090 T0020\n", - "56 C00090 T0062\n", - "56 C00090 T0063\n", - "57 C00091 T0062\n", - "57 C00091 T0063\n", - "57 C00091 T0054\n", - "57 C00091 T0053\n", - "57 C00091 T0049\n", - "58 C00092 TA07\n", - "58 C00092 TA08\n", - "58 C00092 T0010\n", - "58 C00092 T0023\n", - "58 C00092 T0039\n", - "58 C00092 T0045\n", - "58 C00092 T0044\n", - "58 C00092 T0054\n", - "58 C00092 T0053\n", - "58 C00092 T0056\n", - "59 C00093 TA07\n", - "59 C00093 T0010\n", - "59 C00093 T0017\n", - "59 C00093 T0039\n", - "59 C00093 T0047\n", - "59 C00093 T0048\n", - "59 C00093 T0053\n", - "60 C00094 T0026\n", - "61 C00096 T0022\n", - "61 C00096 T0027\n", - "61 C00096 T0026\n", - "61 C00096 T0024\n", - "61 C00096 T0023\n", - "61 C00096 T0025\n", - "61 C00096 \n", - "62 C00097 T0029\n", - "62 C00097 T0030\n", - "62 C00097 T0045\n", - "62 C00097 T0009\n", - "62 C00097 T0007\n", - "62 C00097 T0054\n", - "62 C00097 T0053\n", - "63 C00098 T0038\n", - "63 C00098 T0011\n", - "64 C00099 T0030\n", - "64 C00099 T0045\n", - "64 C00099 T0009\n", - "64 C00099 T0008\n", - "64 C00099 T0007\n", - "65 C00100 T0055\n", - "66 C00101 T0029\n", - "66 C00101 T0049\n", - "66 C00101 T0053\n", - "66 C00101 T0054\n", - "67 C00103 T0029\n", - "67 C00103 T0062\n", - "67 C00103 T0063\n", - "67 C00103 T0053\n", - "68 C00105 T0016\n", - "68 C00105 T0018\n", - "69 C00106 T0016\n", - "70 C00107 T0009\n", - "70 C00107 T0008\n", - "70 C00107 T0007\n", - "70 C00107 T0013\n", - "70 C00107 T0014\n", - "70 C00107 T0015\n", - "70 C00107 T0016\n", - "70 C00107 T0017\n", - "70 C00107 T0018\n", - "70 C00107 T0021\n", - "70 C00107 T0025\n", - "70 C00107 T0024\n", - "70 C00107 T0026\n", - "70 C00107 T0045\n", - "70 C00107 T0055\n", - "70 C00107 T0057\n", - "70 C00107 T0001\n", - "70 C00107 T0022\n", - "70 C00107 T0027\n", - "70 C00107 T0061\n", - "71 C00109 \n", - "72 C00111 T0010\n", - "73 C00112 T0040\n", - "73 C00112 T0042\n", - "74 C00113 T0045\n", - "75 C00114 T0039\n", - "75 C00114 T0048\n", - "75 C00114 \n", - "76 C00115 T0041\n", - "76 C00115 T0048\n", - "76 C00115 T0052\n", - "76 C00115 T0053\n", - "76 C00115 T0056\n", - "77 C00116 T0041\n", - "78 C00117 T0046\n", - "78 C00117 T0022\n", - "78 C00117 T0021\n", - "78 C00117 T0025\n", - "78 C00117 T0024\n", - "78 C00117 T0026\n", - "78 C00117 T0045\n", - "78 C00117 T0044\n", - "78 C00117 T0060\n", - "78 C00117 \n", - "79 C00118 T0044\n", - "79 C00118 T0021\n", - "79 C00118 T0024\n", - "80 C00119 T0022\n", - "80 C00119 T0021\n", - "80 C00119 T0025\n", - "80 C00119 T0024\n", - "80 C00119 T0026\n", - "80 C00119 T0045\n", - "80 C00119 T0044\n", - "80 C00119 T0060\n", - "81 C00120 T0047\n", - "81 C00120 T0052\n", - "81 C00120 T0053\n", - "81 C00120 T0054\n", - "81 C00120 T0055\n", - "81 C00120 T0056\n", - "82 C00121 T0043\n", - "83 C00122 T0008\n", - "83 C00122 T0007\n", - "83 C00122 T0014\n", - "83 C00122 T0015\n", - "83 C00122 T0016\n", - "83 C00122 T0017\n", - "83 C00122 T0018\n", - "83 C00122 T0022\n", - "83 C00122 T0021\n", - "83 C00122 T0025\n", - "83 C00122 T0024\n", - "83 C00122 T0026\n", - "83 C00122 T0045\n", - "83 C00122 T0044\n", - "83 C00122 T0049\n", - "83 C00122 T0051\n", - "83 C00122 T0052\n", - "83 C00122 T0053\n", - "83 C00122 T0054\n", - "83 C00122 T0055\n", - "83 C00122 T0056\n", - "83 C00122 T0057\n", - "83 C00122 T0061\n", - "83 C00122 T0060\n", - "84 C00123 T0029\n", - "84 C00123 T0049\n", - "84 C00123 T0054\n", - "84 C00123 T0060\n", - "85 C00124 TA08\n", - "85 C00124 TA09\n", - "85 C00124 T0053\n", - "85 C00124 T0063\n", - "86 C00125 T0056\n", - "86 C00125 T0052\n", - "86 C00125 T0054\n", - "86 C00125 T0053\n", - "86 C00125 T0055\n", - "86 C00125 T0045\n", - "86 C00125 T0022\n", - "86 C00125 T0027\n", - "86 C00125 T0002\n", - "86 C00125 T0003\n", - "86 C00125 T0004\n", - "86 C00125 T0010\n", - "86 C00125 \n", - "87 C00126 T0056\n", - "87 C00126 T0052\n", - "87 C00126 T0054\n", - "87 C00126 T0053\n", - "87 C00126 T0055\n", - "87 C00126 T0045\n", - "87 C00126 T0022\n", - "87 C00126 T0027\n", - "87 C00126 T0002\n", - "87 C00126 T0003\n", - "87 C00126 T0004\n", - "87 C00126 T0010\n", - "87 C00126 T0057\n", - "88 C00128 T0050\n", - "88 C00128 T0056\n", - "88 C00128 T0049\n", - "88 C00128 T0052\n", - "88 C00128 T0054\n", - "88 C00128 T0053\n", - "88 C00128 T0055\n", - "88 C00128 T0057\n", - "88 C00128 T0061\n", - "89 C00129 T0057\n", - "89 C00129 T0061\n", - "89 C00129 T0014\n", - "89 C00129 T0017\n", - "89 C00129 T0018\n", - "90 C00130 T0010\n", - "91 C00131 T0049\n", - "91 C00131 T0054\n", - "91 C00131 T0060\n", - "92 C00133 TA07\n", - "92 C00133 TA09\n", - "92 C00133 TA10\n", - "92 C00133 T0007\n", - "92 C00133 T0009\n", - "92 C00133 T0045\n", - "92 C00133 T0011\n", - "92 C00133 T0045\n", - "93 C00135 TA07\n", - "93 C00135 TA09\n", - "93 C00135 TA10\n", - "93 C00135 T0007\n", - "93 C00135 T0043\n", - "94 C00136 TA08\n", - "94 C00136 TA09\n", - "94 C00136 TA10\n", - "94 C00136 T0010\n", - "94 C00136 T0020\n", - "94 C00136 T0063\n", - "95 C00138 T0060\n", - "95 C00138 T0056\n", - "96 C00139 \n", - "97 C00140 TA05\n", - "97 C00140 TA09\n", - "97 C00140 TA10\n", - "98 C00142 TA05\n", - "98 C00142 TA09\n", - "98 C00142 TA10\n", - "98 C00142 TA11\n", - "98 C00142 T0016\n", - "98 C00142 \n", - "99 C00143 T0060\n", - "99 C00143 T0058\n", - "99 C00143 T0024\n", - "100 C00144 T0053\n", - "101 C00147 T0060\n", - "102 C00148 T0062\n", - "102 C00148 T0063\n", - "102 C00148 \n", - "103 C00149 TA12\n", - "103 C00149 T0020\n", - "103 C00149 T0046\n", - "103 C00149 T0057\n", - "103 C00149 T0063\n", - "104 C00153 T0008\n", - "104 C00153 T0007\n", - "104 C00153 T0011\n", - "104 C00153 T0013\n", - "104 C00153 T0014\n", - "104 C00153 T0017\n", - "104 C00153 T0018\n", - "104 C00153 T0056\n", - "104 C00153 T0049\n", - "104 C00153 T0052\n", - "104 C00153 T0054\n", - "104 C00153 T0053\n", - "104 C00153 T0058\n", - "104 C00153 T0057\n", - "104 C00153 T0061\n", - "105 C00154 T0039\n", - "105 C00154 T0048\n", - "105 C00154 T0045\n", - "106 C00155 T0014\n", - "106 C00155 T0017\n", - "107 C00156 T0022\n", - "107 C00156 T0027\n", - "107 C00156 T0002\n", - "107 C00156 T0003\n", - "107 C00156 T0004\n", - "107 C00156 T0010\n", - "108 C00159 \n", - "109 C00160 T0039\n", - "109 C00160 T0010\n", - "109 C00160 T0048\n", - "110 C00161 T0022\n", - "110 C00161 T0027\n", - "110 C00161 T0002\n", - "110 C00161 T0003\n", - "110 C00161 T0004\n", - "111 C00162 T0010\n", - "111 C00162 T0022\n", - "111 C00162 T0027\n", - "111 C00162 T0002\n", - "111 C00162 T0003\n", - "111 C00162 T0004\n", - "111 C00162 T0039\n", - "111 C00162 T0052\n", - "111 C00162 T0056\n", - "111 C00162 T0050\n", - "112 C00164 T0022\n", - "112 C00164 T0027\n", - "112 C00164 T0002\n", - "112 C00164 T0003\n", - "112 C00164 T0004\n", - "112 C00164 \n", - "113 C00165 T0025\n", - "114 C00169 T0010\n", - "114 C00169 T0022\n", - "114 C00169 T0027\n", - "114 C00169 T0002\n", - "114 C00169 T0003\n", - "114 C00169 T0004\n", - "114 C00169 T0039\n", - "115 C00170 \n", - "116 C00172 T0008\n", - "116 C00172 T0007\n", - "116 C00172 T0013\n", - "116 C00172 \n", - "117 C00174 T0001\n", - "117 C00174 T0045\n", - "117 C00174 T0010\n", - "117 C00174 T0022\n", - "117 C00174 T0027\n", - "117 C00174 T0044\n", - "118 C00176 T0009\n", - "118 C00176 T0008\n", - "118 C00176 T0007\n", - "118 C00176 T0013\n", - "118 C00176 T0014\n", - "118 C00176 T0015\n", - "118 C00176 T0016\n", - "118 C00176 T0017\n", - "118 C00176 T0018\n", - "118 C00176 T0021\n", - "118 C00176 T0025\n", - "118 C00176 T0024\n", - "118 C00176 T0026\n", - "118 C00176 T0045\n", - "118 C00176 T0043\n", - "118 C00176 T0056\n", - "118 C00176 T0051\n", - "118 C00176 T0049\n", - "118 C00176 T0052\n", - "118 C00176 T0054\n", - "118 C00176 T0053\n", - "118 C00176 T0055\n", - "118 C00176 T0058\n", - "118 C00176 T0057\n", - "118 C00176 T0001\n", - "118 C00176 T0003\n", - "118 C00176 T0010\n", - "118 C00176 T0022\n", - "118 C00176 T0027\n", - "118 C00176 T0061\n", - "119 C00178 T0016\n", - "119 C00178 T0017\n", - "119 C00178 T0018\n", - "119 C00178 T0020\n", - "120 C00182 T0011\n", - "120 C00182 T0054\n", - "121 C00184 T0045\n", - "121 C00184 T0055\n", - "121 C00184 T0039\n", - "121 C00184 T0041\n", - "121 C00184 T0044\n", - "121 C00184 T0045\n", - "121 C00184 T0010\n", - "122 C00188 T0001\n", - "122 C00188 T0003\n", - "122 C00188 T0022\n", - "122 C00188 T0027\n", - "122 C00188 T0045\n", - "122 C00188 T0008\n", - "122 C00188 T0010\n", - "122 C00188 T0039\n", - "122 C00188 T0046\n", - "122 C00188 \n", - "123 C00189 T0008\n", - "123 C00189 T0007\n", - "123 C00189 T0011\n", - "123 C00189 T0014\n", - "123 C00189 T0009\n", - "124 C00190 T0001\n", - "124 C00190 T0003\n", - "124 C00190 T0010\n", - "124 C00190 T0022\n", - "124 C00190 T0027\n", - "124 C00190 T0025\n", - "125 C00195 T0010\n", - "125 C00195 T0016\n", - "125 C00195 T0018\n", - "125 C00195 T0022\n", - "125 C00195 T0027\n", - "125 C00195 T0025\n", - "125 C00195 T0024\n", - "125 C00195 T0026\n", - "125 C00195 T0045\n", - "125 C00195 T0046\n", - "125 C00195 T0055\n", - "126 C00197 T0009\n", - "126 C00197 T0007\n", - "126 C00197 T0011\n", - "127 C00200 T0010\n", - "127 C00200 T0027\n", - "127 C00200 T0022\n", - "127 C00200 T0045\n", - "127 C00200 T0025\n", - "128 C00202 T0025\n", - "129 C00203 T0010\n", - "129 C00203 T0027\n", - "129 C00203 T0022\n", - "129 C00203 T0028\n", - "129 C00203 T0039\n", - "129 C00203 T0045\n", - "129 C00203 T0056\n", - "129 C00203 T0052\n", - "130 C00205 T0001\n", - "130 C00205 T0003\n", - "130 C00205 T0022\n", - "130 C00205 T0025\n", - "130 C00205 T0027\n", - "131 C00207 \n", - "132 C00211 T0027\n", - "132 C00211 T0022\n", - "132 C00211 T0028\n", - "132 C00211 T0026\n", - "132 C00211 T0021\n", - "132 C00211 T0020\n", - "132 C00211 T0025\n", - "132 C00211 T0024\n", - "132 C00211 T0026\n", - "132 C00211 T0045\n", - "132 C00211 T0055\n", - "132 C00211 T0057\n", - "133 C00212 T0001\n", - "133 C00212 T0003\n", - "133 C00212 T0010\n", - "133 C00212 T0022\n", - "134 C00216 T0014\n", - "134 C00216 T0016\n", - "134 C00216 T0017\n", - "134 C00216 T0061\n", - "134 C00216 T0018\n", - "134 C00216 T0057\n", - "135 C00219 T0024\n", - "135 C00219 T0026\n", - "135 C00219 T0025\n", - "136 C00220 \n", - "137 C00221 \n", - "138 C00222 \n", - "139 C00223 " - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "# Get AMITT variables\n", - "\n", - "import pandas as pd\n", - "import sqlite3 as sql\n", - "from generate_amitt_ttps import Amitt\n", - "pd.set_option('display.max_rows', 1000)\n", - "\n", - "\n", - "# Generate AMITT datasets\n", - "amitt = Amitt()\n", - "\n", - "# Check which amitt variables we can see from here\n", - "print('{}'.format(vars(amitt).keys()))\n", - "vars(amitt)['cross_counterid_techniqueid']" + "hdatabase = \"postgres://msenahnnwvuamr:227b5aeb1268572ab2d77f3158aecbdd50326bfff3026ab61aebb0fdcb0953a7@ec2-54-162-119-125.compute-1.amazonaws.com:5432/demudug8oqb3h0\"\n", + "print(hdatabase)\n" ] }, { "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
amitt_idnamemetatechniquesummaryactorsresources_neededhow_foundreferencesincidentstacticresponsetypenotestechniqueslongnametactic_idtactic_name
0F00001Analyse aborted / failed campaignsExamine failed campaigns. How did they fail? C...2019-11-workshopTA01 Strategic PlanningD1 DetectAllF00001 - Analyse aborted / failed campaignsTA01Strategic Planning
1F00002Analyse viral fizzle2019-11-workshopTA01 Strategic PlanningD1 DetectT0049 - Flooding\\nT0052 - Tertiary sites ampli...F00002 - Analyse viral fizzleTA01Strategic Planning
2F00003Exploit counter-intelligence vs bad actors2019-11-workshopTA01 Strategic PlanningD1 DetectTA06 - Develop Content\\nTA08 - Pump Priming\\nT...F00003 - Exploit counter-intelligence vs bad a...TA01Strategic Planning
3F00004Recruit like-minded converts \"people who used ...2019-11-workshopTA01 Strategic PlanningD1 DetectT0057 - Organise remote rallies and events\\nT0...F00004 - Recruit like-minded converts \"people ...TA01Strategic Planning
4F00005SWOT Analysis of Cognition in Various Groups2019-11-workshopTA01 Strategic PlanningD1 DetectAllF00005 - SWOT Analysis of Cognition in Various...TA01Strategic Planning
5F00006SWOT analysis of tech platforms2019-11-workshopTA01 Strategic PlanningD1 DetectTA05 - Microtargeting\\nTA07 - Channel Selectio...F00006 - SWOT analysis of tech platformsTA01Strategic Planning
6F00007Monitor account level activity in social networks2019-11-workshopTA02 Objective PlanningD1 DetectAllF00007 - Monitor account level activity in soc...TA02Objective Planning
7F00008Detect abnormal amplification2019-11-workshopTA03 Develop PeopleD1 DetectT0052 - Tertiary sites amplify news\\nT0053 - T...F00008 - Detect abnormal amplificationTA03Develop People
8F00009Detect abnormal events2019-11-workshopTA03 Develop PeopleD1 DetectT0007 - Create fake Social Media Profiles / Pa...F00009 - Detect abnormal eventsTA03Develop People
9F00010Detect abnormal groups2019-11-workshopTA03 Develop PeopleD1 DetectT0007 - Create fake Social Media Profiles / Pa...F00010 - Detect abnormal groupsTA03Develop People
10F00011Detect abnormal pages2019-11-workshopTA03 Develop PeopleD1 DetectT0007 - Create fake Social Media Profiles / Pa...F00011 - Detect abnormal pagesTA03Develop People
11F00012Detect abnormal profiles, e.g. prolific pages/...2019-11-workshopTA03 Develop PeopleD1 DetectT0007 - Create fake Social Media Profiles / Pa...F00012 - Detect abnormal profiles, e.g. prolif...TA03Develop People
12F00013Identify fake news sites2019-11-workshopTA03 Develop PeopleD1 DetectT0008F00013 - Identify fake news sitesTA03Develop People
13F00014Trace connectionsfor e.g. fake news sites2019-11-workshopTA03 Develop PeopleD1 DetectT0008F00014 - Trace connectionsTA03Develop People
14F00015Detect anomalies in membership growth patternsI include Fake Experts as they may use funding...2019-11-workshopTA03 Develop PeopleD1 DetectTA07 - Channel Selection\\n\\nT0007 - Create fak...F00015 - Detect anomalies in membership growth...TA03Develop People
15F00016Identify fence-sittersNote: In each case, depending on the platform ...2019-11-workshopTA03 Develop PeopleD1 DetectTA08 - Pump Priming\\nTA09 - Exposure\\nTA10 - G...F00016 - Identify fence-sittersTA03Develop People
16F00017Measure emotional valence2019-11-workshopTA03 Develop PeopleD1 DetectT0001 - 5Ds (dismiss, distort, distract, disma...F00017 - Measure emotional valenceTA03Develop People
17F00018Follow the moneytrack funding sources2019-11-workshopTA03 Develop PeopleD1 DetectT0009F00018 - Follow the moneyTA03Develop People
18F00019Activity resurgence detection (alarm when dorm...2019-11-workshopTA04 Develop NetworksD1 DetectT0011 - Hijack accountsF00019 - Activity resurgence detection (alarm ...TA04Develop Networks
19F00020Detect anomalous activityA015 - general public,A001 - data scientist,A0...R004 - platform algorithms2019-11-workshopTA04 Develop NetworksD1 DetectT0011 - Hijack accountsF00020 - Detect anomalous activityTA04Develop Networks
20F00021AI/ML automated early detection of campaign pl...2019-11-workshopTA04 Develop NetworksD1 DetectAutomated Detection of CampaignTA03 - Develop People\\nTA04 - Develop Networks...F00021 - AI/ML automated early detection of ca...TA04Develop Networks
21F00022Digital authority - regulating body (united st...2019-11-workshopTA04 Develop NetworksD1 DetectF00022 - Digital authority - regulating body (...TA04Develop Networks
22F00023Periodic verification (counter to hijack legit...2019-11-workshopTA04 Develop NetworksD1 DetectT0011 - Hijack accountsF00023 - Periodic verification (counter to hij...TA04Develop Networks
23F00024Teach civics to kids/ adults/ seniors2019-11-workshopTA04 Develop NetworksD1 DetectF00024 - Teach civics to kids/ adults/ seniorsTA04Develop Networks
24F00025Boots-on-the-ground early narrative detection2019-11-workshopTA05 MicrotargetingD1 DetectTA01 - Strategic Planning\\nTA02 - Objective Pl...F00025 - Boots-on-the-ground early narrative d...TA05Microtargeting
25F00026Language anomoly detection2019-11-workshopTA05 MicrotargetingD1 DetectF00026 - Language anomoly detectionTA05Microtargeting
26F00027Unlikely correlation of sentiment on same topics2019-11-workshopTA05 MicrotargetingD1 DetectF00027 - Unlikely correlation of sentiment on ...TA05Microtargeting
27F00028Associate a public key signature with governme...2019-11-workshopTA06 Develop ContentD1 DetectT0025 - Leak altered documentsF00028 - Associate a public key signature with...TA06Develop Content
28F00029Detect proto narratives, i.e. RT, Sputnik2019-11-workshopTA06 Develop ContentD1 DetectTA01 - Strategic Planning\\n\\nT0006 - Create Ma...F00029 - Detect proto narratives, i.e. RT, Spu...TA06Develop Content
29F00030Early detection and warning - reporting of sus...2019-11-workshopTA06 Develop ContentD1 DetectTA03 - Develop People\\nTA04 - Develop Networks...F00030 - Early detection and warning - reporti...TA06Develop Content
30F00031Educate on how to identify information pollutionStrategic planning included as innoculating po...2019-11-workshopTA06 Develop ContentD1 DetectTA01 - Strategic Planning\\n\\nT0019 - Generate ...F00031 - Educate on how to identify informatio...TA06Develop Content
31F00032Educate on how to identify to pollutionDUPLICATE - DELETE2019-11-workshopTA06 Develop ContentD1 DetectDUPLICATE - DELETEF00032 - Educate on how to identify to pollutionTA06Develop Content
32F00033Fake websites: add transparency on business model2019-11-workshopTA06 Develop ContentD1 DetectT0013 - Create fake websitesF00033 - Fake websites: add transparency on bu...TA06Develop Content
33F00034Flag the information spaces so people know abo...2019-11-workshopTA06 Develop ContentD1 DetectT0049 - FloodingF00034 - Flag the information spaces so people...TA06Develop Content
34F00035Identify repeated narrative DNA2019-11-workshopTA06 Develop ContentD1 DetectTA01 - Strategic Planning\\n\\nT0006 - Create Ma...F00035 - Identify repeated narrative DNATA06Develop Content
35F00036Looking for AB testing in unregulated channels2019-11-workshopTA06 Develop ContentD1 DetectT0020 - Trial contentF00036 - Looking for AB testing in unregulated...TA06Develop Content
36F00037News content provenance certification.Original Comment: Shortcomings: intentional fa...2019-11-workshopTA06 Develop ContentD1 DetectTA01 - Strategic Planning* (non-existent techn...F00037 - News content provenance certification.TA06Develop Content
37F00038Social capital as attack vectorUnsure I understood the original intention or ...2019-11-workshopTA06 Develop ContentD1 DetectT0010 - Cultivate ignorant agents\\nT0039 - Bai...F00038 - Social capital as attack vectorTA06Develop Content
38F00039standards to track image/ video deep fakes - i...2019-11-workshopTA06 Develop ContentD1 DetectT0024 - Create fake videos and imagesF00039 - standards to track image/ video deep ...TA06Develop Content
39F00040Unalterable metadata signature on origins of i...2019-11-workshopTA06 Develop ContentD1 DetectT0024 - Create fake videos and imagesF00040 - Unalterable metadata signature on ori...TA06Develop Content
40F00041Bias detectionNot technically left of boom2019-11-workshopTA07 Channel SelectionD1 DetectT00029F00041 - Bias detectionTA07Channel Selection
41F00042Categorize polls by intentUse T00029, but against the creators2019-11-workshopTA07 Channel SelectionD1 DetectT00029F00042 - Categorize polls by intentTA07Channel Selection
42F00043Monitor for creation of fake known personasPlatform companies and some information securi...A031 - social media platform administrator,A01...2019-11-workshopTA07 Channel SelectionD1 DetectT00030F00043 - Monitor for creation of fake known pe...TA07Channel Selection
43F00044Forensic analysisCan be used in all phases for all techniques.2019-11-workshopTA08 Pump PrimingD1 DetectAllF00044 - Forensic analysisTA08Pump Priming
44F00045Forensic linguistic analysisCan be used in all phases for all techniques.2019-11-workshopTA08 Pump PrimingD1 DetectAllF00045 - Forensic linguistic analysisTA08Pump Priming
45F00046Pump priming analytics2019-11-workshopTA08 Pump PrimingD1 DetectTA08 - Pump PrimingF00046 - Pump priming analyticsTA08Pump Priming
46F00047trace involved parties2019-11-workshopTA08 Pump PrimingD1 DetectF00047 - trace involved partiesTA08Pump Priming
47F00048Trace known operations and connection2019-11-workshopTA08 Pump PrimingD1 DetectF00048 - Trace known operations and connectionTA08Pump Priming
48F00049trace money2019-11-workshopTA08 Pump PrimingD1 DetectF00049 - trace moneyTA08Pump Priming
49F00050Web cache analytics2019-11-workshopTA08 Pump PrimingD1 DetectF00050 - Web cache analyticsTA08Pump Priming
50F00051Challenge expertise2019-11-workshopTA09 ExposureD1 DetectT0009 - Create fake experts\\nT0045 - Use fake ...F00051 - Challenge expertiseTA09Exposure
51F00052Discover sponsorsDiscovering the sponsors behind a campaign, na...2019-11-workshopTA09 ExposureD1 DetectAllF00052 - Discover sponsorsTA09Exposure
52F00053Government rumour control office (what can we ...2019-11-workshopTA09 ExposureD1 DetectT0049\\nT0050\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056F00053 - Government rumour control office (wha...TA09Exposure
53F00054Restrict people who can @ you on social networks2019-11-workshopTA09 ExposureD1 DetectF00054 - Restrict people who can @ you on soci...TA09Exposure
54F00055Verify credentials2019-11-workshopTA09 ExposureD1 DetectF00055 - Verify credentialsTA09Exposure
55F00056Verify organisation legitimacy2019-11-workshopTA09 ExposureD1 DetectF00056 - Verify organisation legitimacyTA09Exposure
56F00057Verify personal credentials of experts2019-11-workshopTA09 ExposureD1 DetectF00057 - Verify personal credentials of expertsTA09Exposure
57F00058Deplatform (cancel culture)*Deplatform People: This technique needs to be...2019-11-workshopTA10 Go PhysicalD1 DetectTA07 - Channel Selection\\nTA09 - Exposure\\nTA1...F00058 - Deplatform (cancel culture)TA10Go Physical
58F00059Identify susceptible demographicsAll techniques provide or are susceptible to b...2019-11-workshopTA10 Go PhysicalD1 DetectAllF00059 - Identify susceptible demographicsTA10Go Physical
59F00060Identify susceptible influencersI assume this was a transcript error. Otherwis...2019-11-workshopTA10 Go PhysicalD1 DetectT0039 - Bait legitimate influencersF00060 - Identify susceptible influencersTA10Go Physical
60F00061Microtargeting2019-11-workshopTA10 Go PhysicalD1 DetectAllF00061 - MicrotargetingTA10Go Physical
61F00062Detect when Dormant account turns active2019-11-workshopTA11 PersistenceD1 DetectTA09 - Exposure\\n\\nT0007 - Create fake Social ...F00062 - Detect when Dormant account turns activeTA11Persistence
62F00063Linguistic change analysis2019-11-workshopTA11 PersistenceD1 DetectF00063 - Linguistic change analysisTA11Persistence
63F00064Monitor reports of account takeover2019-11-workshopTA11 PersistenceD1 DetectT0011 - Hijack legitimate accountF00064 - Monitor reports of account takeoverTA11Persistence
64F00065Sentiment change analysis2019-11-workshopTA11 PersistenceD1 DetectF00065 - Sentiment change analysisTA11Persistence
65F00066Use language errors, time to respond to accoun...2019-11-workshopTA11 PersistenceD1 DetectF00066 - Use language errors, time to respond ...TA11Persistence
66F00067Data forensicsA001 - data scientist2019-11-searchI00029,I00045D1 DetectF00067 - Data forensicsNone
67F00068Resonance analysisa developing methodology for identifying stati...2019-11-searchRand2237D1 DetectF00068 - Resonance analysisNone
68F00069Track Russian media and develop analytic methods.To effectively counter Russian propaganda, it ...2019-11-searchRand2237D1 DetectF00069 - Track Russian media and develop analy...None
69F00070Full spectrum analyticsA001 - data scientist2019-11-workshopALLD1 DetectF00070 - Full spectrum analyticsALLNone
70F00071Network analysis Identify/cultivate/support in...Local influencers detected via Twitter network...A001 - data scientist2019-11-searchRand2237D1 DetectF00071 - Network analysis Identify/cultivate/s...None
71F00072network analysis to identify central users in ...It is possible that some of these are bots or ...A001 - data scientist2019-11-searchRand2237D1 DetectF00072 - network analysis to identify central ...None
72F00073collect intel/recon on black/covert content cr...Players at the level of covert attribution, re...2019-11-searchRand2237D1 DetectF00073 - collect intel/recon on black/covert c...None
73F00074identify relevant fence-sitter communitiesbrand ambassador programs could be used with i...2019-11-searchRand2237D1 DetectF00074 - identify relevant fence-sitter commun...None
74F00075leverage open-source informationsignificant amounts of quality open-source inf...2019-11-searchDalton19D1 DetectF00075 - leverage open-source informationNone
75F00076Monitor/collect audience engagement data conne...Target audience connected to \"useful idiots ra...2019-11-searchRand2237D1 DetectF00076 - Monitor/collect audience engagement d...None
76F00077Model for bot account behaviorBot account: action based, people. Unsure whic...2019-11-workshopTA03 Develop PeopleD1 DetectF00077 - Model for bot account behaviorTA03Develop People
77F00078Monitor account level activity in social networksAll techniques benefit from careful analysis a...2019-11-workshopTA03 Develop PeopleD1 DetectAllF00078 - Monitor account level activity in soc...TA03Develop People
78F00079Network anomaly detectionA001 - data scientist2019-11-workshopTA05 MicrotargetingD1 DetectT0029 - Manipulate online polls\\nT0047 - Muzzl...F00079 - Network anomaly detectionTA05Microtargeting
79F00080Hack the polls/ content yourselfTwo wrongs don't make a right? But if you hack...A015 - general public2019-11-workshopTA07 Channel SelectionD1 DetectT0029 - Manipulate online pollsF00080 - Hack the polls/ content yourselfTA07Channel Selection
80F00081Need way for end user to report operations2019-11-workshopTA09 ExposureD1 DetectT0049\\nT0050\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056F00081 - Need way for end user to report opera...TA09Exposure
81F00082Control the US \"slang\" translation boardsA028 - platform administratorR005 - slang translation2019-11-workshopTA11 PersistenceD3 DisruptF00082 - Control the US \"slang\" translation bo...TA11Persistence
82F00083Build and own meme generator, then track and w...2019-11-workshopTA11 PersistenceD5 DeceiveT0012 - Use concealment\\nT0021 - MemesF00083 - Build and own meme generator, then tr...TA11Persistence
83F00084Track individual bad actors2019-11-workshopTA03 Develop PeopleD1 DetectF00084 - Track individual bad actorsTA03Develop People
84F00085detection of a weak signal through global noiseGray zone threats are challenging given that w...2019-11-searchDalton19F00085 - detection of a weak signal through gl...None
85F00086Outpace Competitor Intelligence CapabilitiesDevelop an intelligence-based understanding of...2019-11-searchHicks19TA02 Objective planningD1 DetectF00086 - Outpace Competitor Intelligence Capab...TA02Objective planning
86F00087Improve Indications and WarningUnited States has not adequately adapted its i...2019-11-searchHicks19D1 DetectF00087 - Improve Indications and WarningNone
87F00088Revitalize an “active measures working group,”Recognize campaigns from weak signals, includi...2019-11-searchDalton19D1 DetectF00088 - Revitalize an “active measures workin...None
88F00089target/name/flag \"grey zone\" website content\"Gray zone\" is second level of content produce...2019-11-searchRand2237TA04 Develop NetworksD1 DetectF00089 - target/name/flag \"grey zone\" website ...TA04Develop Networks
89F00090Match Punitive Tools with Third-Party InducementsBring private sector and civil society into ac...2019-11-searchHicks19TA01 Strategic PlanningD1 DetectF00090 - Match Punitive Tools with Third-Party...TA01Strategic Planning
90F00091Partner to develop analytic methods & toolsThis might include working with relevant techn...A001 data scientist,A024 developer2019-11-searchRand2237TA01 Strategic PlanningD1 DetectF00091 - Partner to develop analytic methods &...TA01Strategic Planning
91F00092daylightWarn social media companies about an ongoing c...A015 - general publicR006 - disinformation datasets2019-11-searchI00002TA09 ExposureD1 DetectF00092 - daylightTA09Exposure
92F00093S4d detection and re-allocation approachesM004 - frictionS4D is a way to separate out different speaker...2019-11-workshopTA03 Develop PeopleD3 DisruptT0011 - Hijack legitimate accountF00093 - S4d detection and re-allocation appro...TA03Develop People
93F00094Registries alert when large batches of newsy U...M003 - daylightA028 - platform administratorgrugqTA07 Channel SelectionD2 DenyT0013 - Create fake websites\\nT0008 - Create f...F00094 - Registries alert when large batches o...TA07Channel Selection
\n", - "
" - ], - "text/plain": [ - " amitt_id name \\\n", - "0 F00001 Analyse aborted / failed campaigns \n", - "1 F00002 Analyse viral fizzle \n", - "2 F00003 Exploit counter-intelligence vs bad actors \n", - "3 F00004 Recruit like-minded converts \"people who used ... \n", - "4 F00005 SWOT Analysis of Cognition in Various Groups \n", - "5 F00006 SWOT analysis of tech platforms \n", - "6 F00007 Monitor account level activity in social networks \n", - "7 F00008 Detect abnormal amplification \n", - "8 F00009 Detect abnormal events \n", - "9 F00010 Detect abnormal groups \n", - "10 F00011 Detect abnormal pages \n", - "11 F00012 Detect abnormal profiles, e.g. prolific pages/... \n", - "12 F00013 Identify fake news sites \n", - "13 F00014 Trace connections \n", - "14 F00015 Detect anomalies in membership growth patterns \n", - "15 F00016 Identify fence-sitters \n", - "16 F00017 Measure emotional valence \n", - "17 F00018 Follow the money \n", - "18 F00019 Activity resurgence detection (alarm when dorm... \n", - "19 F00020 Detect anomalous activity \n", - "20 F00021 AI/ML automated early detection of campaign pl... \n", - "21 F00022 Digital authority - regulating body (united st... \n", - "22 F00023 Periodic verification (counter to hijack legit... \n", - "23 F00024 Teach civics to kids/ adults/ seniors \n", - "24 F00025 Boots-on-the-ground early narrative detection \n", - "25 F00026 Language anomoly detection \n", - "26 F00027 Unlikely correlation of sentiment on same topics \n", - "27 F00028 Associate a public key signature with governme... \n", - "28 F00029 Detect proto narratives, i.e. RT, Sputnik \n", - "29 F00030 Early detection and warning - reporting of sus... \n", - "30 F00031 Educate on how to identify information pollution \n", - "31 F00032 Educate on how to identify to pollution \n", - "32 F00033 Fake websites: add transparency on business model \n", - "33 F00034 Flag the information spaces so people know abo... \n", - "34 F00035 Identify repeated narrative DNA \n", - "35 F00036 Looking for AB testing in unregulated channels \n", - "36 F00037 News content provenance certification. \n", - "37 F00038 Social capital as attack vector \n", - "38 F00039 standards to track image/ video deep fakes - i... \n", - "39 F00040 Unalterable metadata signature on origins of i... \n", - "40 F00041 Bias detection \n", - "41 F00042 Categorize polls by intent \n", - "42 F00043 Monitor for creation of fake known personas \n", - "43 F00044 Forensic analysis \n", - "44 F00045 Forensic linguistic analysis \n", - "45 F00046 Pump priming analytics \n", - "46 F00047 trace involved parties \n", - "47 F00048 Trace known operations and connection \n", - "48 F00049 trace money \n", - "49 F00050 Web cache analytics \n", - "50 F00051 Challenge expertise \n", - "51 F00052 Discover sponsors \n", - "52 F00053 Government rumour control office (what can we ... \n", - "53 F00054 Restrict people who can @ you on social networks \n", - "54 F00055 Verify credentials \n", - "55 F00056 Verify organisation legitimacy \n", - "56 F00057 Verify personal credentials of experts \n", - "57 F00058 Deplatform (cancel culture) \n", - "58 F00059 Identify susceptible demographics \n", - "59 F00060 Identify susceptible influencers \n", - "60 F00061 Microtargeting \n", - "61 F00062 Detect when Dormant account turns active \n", - "62 F00063 Linguistic change analysis \n", - "63 F00064 Monitor reports of account takeover \n", - "64 F00065 Sentiment change analysis \n", - "65 F00066 Use language errors, time to respond to accoun... \n", - "66 F00067 Data forensics \n", - "67 F00068 Resonance analysis \n", - "68 F00069 Track Russian media and develop analytic methods. \n", - "69 F00070 Full spectrum analytics \n", - "70 F00071 Network analysis Identify/cultivate/support in... \n", - "71 F00072 network analysis to identify central users in ... \n", - "72 F00073 collect intel/recon on black/covert content cr... \n", - "73 F00074 identify relevant fence-sitter communities \n", - "74 F00075 leverage open-source information \n", - "75 F00076 Monitor/collect audience engagement data conne... \n", - "76 F00077 Model for bot account behavior \n", - "77 F00078 Monitor account level activity in social networks \n", - "78 F00079 Network anomaly detection \n", - "79 F00080 Hack the polls/ content yourself \n", - "80 F00081 Need way for end user to report operations \n", - "81 F00082 Control the US \"slang\" translation boards \n", - "82 F00083 Build and own meme generator, then track and w... \n", - "83 F00084 Track individual bad actors \n", - "84 F00085 detection of a weak signal through global noise \n", - "85 F00086 Outpace Competitor Intelligence Capabilities \n", - "86 F00087 Improve Indications and Warning \n", - "87 F00088 Revitalize an “active measures working group,” \n", - "88 F00089 target/name/flag \"grey zone\" website content \n", - "89 F00090 Match Punitive Tools with Third-Party Inducements \n", - "90 F00091 Partner to develop analytic methods & tools \n", - "91 F00092 daylight \n", - "92 F00093 S4d detection and re-allocation approaches \n", - "93 F00094 Registries alert when large batches of newsy U... \n", - "\n", - " metatechnique summary \\\n", - "0 Examine failed campaigns. How did they fail? C... \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "5 \n", - "6 \n", - "7 \n", - "8 \n", - "9 \n", - "10 \n", - "11 \n", - "12 \n", - "13 for e.g. fake news sites \n", - "14 I include Fake Experts as they may use funding... \n", - "15 Note: In each case, depending on the platform ... \n", - "16 \n", - "17 track funding sources \n", - "18 \n", - "19 \n", - "20 \n", - "21 \n", - "22 \n", - "23 \n", - "24 \n", - "25 \n", - "26 \n", - "27 \n", - "28 \n", - "29 \n", - "30 Strategic planning included as innoculating po... \n", - "31 DUPLICATE - DELETE \n", - "32 \n", - "33 \n", - "34 \n", - "35 \n", - "36 Original Comment: Shortcomings: intentional fa... \n", - "37 Unsure I understood the original intention or ... \n", - "38 \n", - "39 \n", - "40 Not technically left of boom \n", - "41 Use T00029, but against the creators \n", - "42 Platform companies and some information securi... \n", - "43 Can be used in all phases for all techniques. \n", - "44 Can be used in all phases for all techniques. \n", - "45 \n", - "46 \n", - "47 \n", - "48 \n", - "49 \n", - "50 \n", - "51 Discovering the sponsors behind a campaign, na... \n", - "52 \n", - "53 \n", - "54 \n", - "55 \n", - "56 \n", - "57 *Deplatform People: This technique needs to be... \n", - "58 All techniques provide or are susceptible to b... \n", - "59 I assume this was a transcript error. Otherwis... \n", - "60 \n", - "61 \n", - "62 \n", - "63 \n", - "64 \n", - "65 \n", - "66 \n", - "67 a developing methodology for identifying stati... \n", - "68 To effectively counter Russian propaganda, it ... \n", - "69 \n", - "70 Local influencers detected via Twitter network... \n", - "71 It is possible that some of these are bots or ... \n", - "72 Players at the level of covert attribution, re... \n", - "73 brand ambassador programs could be used with i... \n", - "74 significant amounts of quality open-source inf... \n", - "75 Target audience connected to \"useful idiots ra... \n", - "76 Bot account: action based, people. Unsure whic... \n", - "77 All techniques benefit from careful analysis a... \n", - "78 \n", - "79 Two wrongs don't make a right? But if you hack... \n", - "80 \n", - "81 \n", - "82 \n", - "83 \n", - "84 Gray zone threats are challenging given that w... \n", - "85 Develop an intelligence-based understanding of... \n", - "86 United States has not adequately adapted its i... \n", - "87 Recognize campaigns from weak signals, includi... \n", - "88 \"Gray zone\" is second level of content produce... \n", - "89 Bring private sector and civil society into ac... \n", - "90 This might include working with relevant techn... \n", - "91 Warn social media companies about an ongoing c... \n", - "92 M004 - friction S4D is a way to separate out different speaker... \n", - "93 M003 - daylight \n", - "\n", - " actors \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "5 \n", - "6 \n", - "7 \n", - "8 \n", - "9 \n", - "10 \n", - "11 \n", - "12 \n", - "13 \n", - "14 \n", - "15 \n", - "16 \n", - "17 \n", - "18 \n", - "19 A015 - general public,A001 - data scientist,A0... \n", - "20 \n", - "21 \n", - "22 \n", - "23 \n", - "24 \n", - "25 \n", - "26 \n", - "27 \n", - "28 \n", - "29 \n", - "30 \n", - "31 \n", - "32 \n", - "33 \n", - "34 \n", - "35 \n", - "36 \n", - "37 \n", - "38 \n", - "39 \n", - "40 \n", - "41 \n", - "42 A031 - social media platform administrator,A01... \n", - "43 \n", - "44 \n", - "45 \n", - "46 \n", - "47 \n", - "48 \n", - "49 \n", - "50 \n", - "51 \n", - "52 \n", - "53 \n", - "54 \n", - "55 \n", - "56 \n", - "57 \n", - "58 \n", - "59 \n", - "60 \n", - "61 \n", - "62 \n", - "63 \n", - "64 \n", - "65 \n", - "66 A001 - data scientist \n", - "67 \n", - "68 \n", - "69 A001 - data scientist \n", - "70 A001 - data scientist \n", - "71 A001 - data scientist \n", - "72 \n", - "73 \n", - "74 \n", - "75 \n", - "76 \n", - "77 \n", - "78 A001 - data scientist \n", - "79 A015 - general public \n", - "80 \n", - "81 A028 - platform administrator \n", - "82 \n", - "83 \n", - "84 \n", - "85 \n", - "86 \n", - "87 \n", - "88 \n", - "89 \n", - "90 A001 data scientist,A024 developer \n", - "91 A015 - general public \n", - "92 \n", - "93 A028 - platform administrator \n", - "\n", - " resources_needed how_found references \\\n", - "0 2019-11-workshop \n", - "1 2019-11-workshop \n", - "2 2019-11-workshop \n", - "3 2019-11-workshop \n", - "4 2019-11-workshop \n", - "5 2019-11-workshop \n", - "6 2019-11-workshop \n", - "7 2019-11-workshop \n", - "8 2019-11-workshop \n", - "9 2019-11-workshop \n", - "10 2019-11-workshop \n", - "11 2019-11-workshop \n", - "12 2019-11-workshop \n", - "13 2019-11-workshop \n", - "14 2019-11-workshop \n", - "15 2019-11-workshop \n", - "16 2019-11-workshop \n", - "17 2019-11-workshop \n", - "18 2019-11-workshop \n", - "19 R004 - platform algorithms 2019-11-workshop \n", - "20 2019-11-workshop \n", - "21 2019-11-workshop \n", - "22 2019-11-workshop \n", - "23 2019-11-workshop \n", - "24 2019-11-workshop \n", - "25 2019-11-workshop \n", - "26 2019-11-workshop \n", - "27 2019-11-workshop \n", - "28 2019-11-workshop \n", - "29 2019-11-workshop \n", - "30 2019-11-workshop \n", - "31 2019-11-workshop \n", - "32 2019-11-workshop \n", - "33 2019-11-workshop \n", - "34 2019-11-workshop \n", - "35 2019-11-workshop \n", - "36 2019-11-workshop \n", - "37 2019-11-workshop \n", - "38 2019-11-workshop \n", - "39 2019-11-workshop \n", - "40 2019-11-workshop \n", - "41 2019-11-workshop \n", - "42 2019-11-workshop \n", - "43 2019-11-workshop \n", - "44 2019-11-workshop \n", - "45 2019-11-workshop \n", - "46 2019-11-workshop \n", - "47 2019-11-workshop \n", - "48 2019-11-workshop \n", - "49 2019-11-workshop \n", - "50 2019-11-workshop \n", - "51 2019-11-workshop \n", - "52 2019-11-workshop \n", - "53 2019-11-workshop \n", - "54 2019-11-workshop \n", - "55 2019-11-workshop \n", - "56 2019-11-workshop \n", - "57 2019-11-workshop \n", - "58 2019-11-workshop \n", - "59 2019-11-workshop \n", - "60 2019-11-workshop \n", - "61 2019-11-workshop \n", - "62 2019-11-workshop \n", - "63 2019-11-workshop \n", - "64 2019-11-workshop \n", - "65 2019-11-workshop \n", - "66 2019-11-search \n", - "67 2019-11-search Rand2237 \n", - "68 2019-11-search Rand2237 \n", - "69 2019-11-workshop \n", - "70 2019-11-search Rand2237 \n", - "71 2019-11-search Rand2237 \n", - "72 2019-11-search Rand2237 \n", - "73 2019-11-search Rand2237 \n", - "74 2019-11-search Dalton19 \n", - "75 2019-11-search Rand2237 \n", - "76 2019-11-workshop \n", - "77 2019-11-workshop \n", - "78 2019-11-workshop \n", - "79 2019-11-workshop \n", - "80 2019-11-workshop \n", - "81 R005 - slang translation 2019-11-workshop \n", - "82 2019-11-workshop \n", - "83 2019-11-workshop \n", - "84 2019-11-search Dalton19 \n", - "85 2019-11-search Hicks19 \n", - "86 2019-11-search Hicks19 \n", - "87 2019-11-search Dalton19 \n", - "88 2019-11-search Rand2237 \n", - "89 2019-11-search Hicks19 \n", - "90 2019-11-search Rand2237 \n", - "91 R006 - disinformation datasets 2019-11-search \n", - "92 2019-11-workshop \n", - "93 grugq \n", - "\n", - " incidents tactic responsetype \\\n", - "0 TA01 Strategic Planning D1 Detect \n", - "1 TA01 Strategic Planning D1 Detect \n", - "2 TA01 Strategic Planning D1 Detect \n", - "3 TA01 Strategic Planning D1 Detect \n", - "4 TA01 Strategic Planning D1 Detect \n", - "5 TA01 Strategic Planning D1 Detect \n", - "6 TA02 Objective Planning D1 Detect \n", - "7 TA03 Develop People D1 Detect \n", - "8 TA03 Develop People D1 Detect \n", - "9 TA03 Develop People D1 Detect \n", - "10 TA03 Develop People D1 Detect \n", - "11 TA03 Develop People D1 Detect \n", - "12 TA03 Develop People D1 Detect \n", - "13 TA03 Develop People D1 Detect \n", - "14 TA03 Develop People D1 Detect \n", - "15 TA03 Develop People D1 Detect \n", - "16 TA03 Develop People D1 Detect \n", - "17 TA03 Develop People D1 Detect \n", - "18 TA04 Develop Networks D1 Detect \n", - "19 TA04 Develop Networks D1 Detect \n", - "20 TA04 Develop Networks D1 Detect \n", - "21 TA04 Develop Networks D1 Detect \n", - "22 TA04 Develop Networks D1 Detect \n", - "23 TA04 Develop Networks D1 Detect \n", - "24 TA05 Microtargeting D1 Detect \n", - "25 TA05 Microtargeting D1 Detect \n", - "26 TA05 Microtargeting D1 Detect \n", - "27 TA06 Develop Content D1 Detect \n", - "28 TA06 Develop Content D1 Detect \n", - "29 TA06 Develop Content D1 Detect \n", - "30 TA06 Develop Content D1 Detect \n", - "31 TA06 Develop Content D1 Detect \n", - "32 TA06 Develop Content D1 Detect \n", - "33 TA06 Develop Content D1 Detect \n", - "34 TA06 Develop Content D1 Detect \n", - "35 TA06 Develop Content D1 Detect \n", - "36 TA06 Develop Content D1 Detect \n", - "37 TA06 Develop Content D1 Detect \n", - "38 TA06 Develop Content D1 Detect \n", - "39 TA06 Develop Content D1 Detect \n", - "40 TA07 Channel Selection D1 Detect \n", - "41 TA07 Channel Selection D1 Detect \n", - "42 TA07 Channel Selection D1 Detect \n", - "43 TA08 Pump Priming D1 Detect \n", - "44 TA08 Pump Priming D1 Detect \n", - "45 TA08 Pump Priming D1 Detect \n", - "46 TA08 Pump Priming D1 Detect \n", - "47 TA08 Pump Priming D1 Detect \n", - "48 TA08 Pump Priming D1 Detect \n", - "49 TA08 Pump Priming D1 Detect \n", - "50 TA09 Exposure D1 Detect \n", - "51 TA09 Exposure D1 Detect \n", - "52 TA09 Exposure D1 Detect \n", - "53 TA09 Exposure D1 Detect \n", - "54 TA09 Exposure D1 Detect \n", - "55 TA09 Exposure D1 Detect \n", - "56 TA09 Exposure D1 Detect \n", - "57 TA10 Go Physical D1 Detect \n", - "58 TA10 Go Physical D1 Detect \n", - "59 TA10 Go Physical D1 Detect \n", - "60 TA10 Go Physical D1 Detect \n", - "61 TA11 Persistence D1 Detect \n", - "62 TA11 Persistence D1 Detect \n", - "63 TA11 Persistence D1 Detect \n", - "64 TA11 Persistence D1 Detect \n", - "65 TA11 Persistence D1 Detect \n", - "66 I00029,I00045 D1 Detect \n", - "67 D1 Detect \n", - "68 D1 Detect \n", - "69 ALL D1 Detect \n", - "70 D1 Detect \n", - "71 D1 Detect \n", - "72 D1 Detect \n", - "73 D1 Detect \n", - "74 D1 Detect \n", - "75 D1 Detect \n", - "76 TA03 Develop People D1 Detect \n", - "77 TA03 Develop People D1 Detect \n", - "78 TA05 Microtargeting D1 Detect \n", - "79 TA07 Channel Selection D1 Detect \n", - "80 TA09 Exposure D1 Detect \n", - "81 TA11 Persistence D3 Disrupt \n", - "82 TA11 Persistence D5 Deceive \n", - "83 TA03 Develop People D1 Detect \n", - "84 \n", - "85 TA02 Objective planning D1 Detect \n", - "86 D1 Detect \n", - "87 D1 Detect \n", - "88 TA04 Develop Networks D1 Detect \n", - "89 TA01 Strategic Planning D1 Detect \n", - "90 TA01 Strategic Planning D1 Detect \n", - "91 I00002 TA09 Exposure D1 Detect \n", - "92 TA03 Develop People D3 Disrupt \n", - "93 TA07 Channel Selection D2 Deny \n", - "\n", - " notes \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "5 \n", - "6 \n", - "7 \n", - "8 \n", - "9 \n", - "10 \n", - "11 \n", - "12 \n", - "13 \n", - "14 \n", - "15 \n", - "16 \n", - "17 \n", - "18 \n", - "19 \n", - "20 Automated Detection of Campaign \n", - "21 \n", - "22 \n", - "23 \n", - "24 \n", - "25 \n", - "26 \n", - "27 \n", - "28 \n", - "29 \n", - "30 \n", - "31 \n", - "32 \n", - "33 \n", - "34 \n", - "35 \n", - "36 \n", - "37 \n", - "38 \n", - "39 \n", - "40 \n", - "41 \n", - "42 \n", - "43 \n", - "44 \n", - "45 \n", - "46 \n", - "47 \n", - "48 \n", - "49 \n", - "50 \n", - "51 \n", - "52 \n", - "53 \n", - "54 \n", - "55 \n", - "56 \n", - "57 \n", - "58 \n", - "59 \n", - "60 \n", - "61 \n", - "62 \n", - "63 \n", - "64 \n", - "65 \n", - "66 \n", - "67 \n", - "68 \n", - "69 \n", - "70 \n", - "71 \n", - "72 \n", - "73 \n", - "74 \n", - "75 \n", - "76 \n", - "77 \n", - "78 \n", - "79 \n", - "80 \n", - "81 \n", - "82 \n", - "83 \n", - "84 \n", - "85 \n", - "86 \n", - "87 \n", - "88 \n", - "89 \n", - "90 \n", - "91 \n", - "92 \n", - "93 \n", - "\n", - " techniques \\\n", - "0 All \n", - "1 T0049 - Flooding\\nT0052 - Tertiary sites ampli... \n", - "2 TA06 - Develop Content\\nTA08 - Pump Priming\\nT... \n", - "3 T0057 - Organise remote rallies and events\\nT0... \n", - "4 All \n", - "5 TA05 - Microtargeting\\nTA07 - Channel Selectio... \n", - "6 All \n", - "7 T0052 - Tertiary sites amplify news\\nT0053 - T... \n", - "8 T0007 - Create fake Social Media Profiles / Pa... \n", - "9 T0007 - Create fake Social Media Profiles / Pa... \n", - "10 T0007 - Create fake Social Media Profiles / Pa... \n", - "11 T0007 - Create fake Social Media Profiles / Pa... \n", - "12 T0008 \n", - "13 T0008 \n", - "14 TA07 - Channel Selection\\n\\nT0007 - Create fak... \n", - "15 TA08 - Pump Priming\\nTA09 - Exposure\\nTA10 - G... \n", - "16 T0001 - 5Ds (dismiss, distort, distract, disma... \n", - "17 T0009 \n", - "18 T0011 - Hijack accounts \n", - "19 T0011 - Hijack accounts \n", - "20 TA03 - Develop People\\nTA04 - Develop Networks... \n", - "21 \n", - "22 T0011 - Hijack accounts \n", - "23 \n", - "24 TA01 - Strategic Planning\\nTA02 - Objective Pl... \n", - "25 \n", - "26 \n", - "27 T0025 - Leak altered documents \n", - "28 TA01 - Strategic Planning\\n\\nT0006 - Create Ma... \n", - "29 TA03 - Develop People\\nTA04 - Develop Networks... \n", - "30 TA01 - Strategic Planning\\n\\nT0019 - Generate ... \n", - "31 DUPLICATE - DELETE \n", - "32 T0013 - Create fake websites \n", - "33 T0049 - Flooding \n", - "34 TA01 - Strategic Planning\\n\\nT0006 - Create Ma... \n", - "35 T0020 - Trial content \n", - "36 TA01 - Strategic Planning* (non-existent techn... \n", - "37 T0010 - Cultivate ignorant agents\\nT0039 - Bai... \n", - "38 T0024 - Create fake videos and images \n", - "39 T0024 - Create fake videos and images \n", - "40 T00029 \n", - "41 T00029 \n", - "42 T00030 \n", - "43 All \n", - "44 All \n", - "45 TA08 - Pump Priming \n", - "46 \n", - "47 \n", - "48 \n", - "49 \n", - "50 T0009 - Create fake experts\\nT0045 - Use fake ... \n", - "51 All \n", - "52 T0049\\nT0050\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056 \n", - "53 \n", - "54 \n", - "55 \n", - "56 \n", - "57 TA07 - Channel Selection\\nTA09 - Exposure\\nTA1... \n", - "58 All \n", - "59 T0039 - Bait legitimate influencers \n", - "60 All \n", - "61 TA09 - Exposure\\n\\nT0007 - Create fake Social ... \n", - "62 \n", - "63 T0011 - Hijack legitimate account \n", - "64 \n", - "65 \n", - "66 \n", - "67 \n", - "68 \n", - "69 \n", - "70 \n", - "71 \n", - "72 \n", - "73 \n", - "74 \n", - "75 \n", - "76 \n", - "77 All \n", - "78 T0029 - Manipulate online polls\\nT0047 - Muzzl... \n", - "79 T0029 - Manipulate online polls \n", - "80 T0049\\nT0050\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056 \n", - "81 \n", - "82 T0012 - Use concealment\\nT0021 - Memes \n", - "83 \n", - "84 \n", - "85 \n", - "86 \n", - "87 \n", - "88 \n", - "89 \n", - "90 \n", - "91 \n", - "92 T0011 - Hijack legitimate account \n", - "93 T0013 - Create fake websites\\nT0008 - Create f... \n", - "\n", - " longname tactic_id \\\n", - "0 F00001 - Analyse aborted / failed campaigns TA01 \n", - "1 F00002 - Analyse viral fizzle TA01 \n", - "2 F00003 - Exploit counter-intelligence vs bad a... TA01 \n", - "3 F00004 - Recruit like-minded converts \"people ... TA01 \n", - "4 F00005 - SWOT Analysis of Cognition in Various... TA01 \n", - "5 F00006 - SWOT analysis of tech platforms TA01 \n", - "6 F00007 - Monitor account level activity in soc... TA02 \n", - "7 F00008 - Detect abnormal amplification TA03 \n", - "8 F00009 - Detect abnormal events TA03 \n", - "9 F00010 - Detect abnormal groups TA03 \n", - "10 F00011 - Detect abnormal pages TA03 \n", - "11 F00012 - Detect abnormal profiles, e.g. prolif... TA03 \n", - "12 F00013 - Identify fake news sites TA03 \n", - "13 F00014 - Trace connections TA03 \n", - "14 F00015 - Detect anomalies in membership growth... TA03 \n", - "15 F00016 - Identify fence-sitters TA03 \n", - "16 F00017 - Measure emotional valence TA03 \n", - "17 F00018 - Follow the money TA03 \n", - "18 F00019 - Activity resurgence detection (alarm ... TA04 \n", - "19 F00020 - Detect anomalous activity TA04 \n", - "20 F00021 - AI/ML automated early detection of ca... TA04 \n", - "21 F00022 - Digital authority - regulating body (... TA04 \n", - "22 F00023 - Periodic verification (counter to hij... TA04 \n", - "23 F00024 - Teach civics to kids/ adults/ seniors TA04 \n", - "24 F00025 - Boots-on-the-ground early narrative d... TA05 \n", - "25 F00026 - Language anomoly detection TA05 \n", - "26 F00027 - Unlikely correlation of sentiment on ... TA05 \n", - "27 F00028 - Associate a public key signature with... TA06 \n", - "28 F00029 - Detect proto narratives, i.e. RT, Spu... TA06 \n", - "29 F00030 - Early detection and warning - reporti... TA06 \n", - "30 F00031 - Educate on how to identify informatio... TA06 \n", - "31 F00032 - Educate on how to identify to pollution TA06 \n", - "32 F00033 - Fake websites: add transparency on bu... TA06 \n", - "33 F00034 - Flag the information spaces so people... TA06 \n", - "34 F00035 - Identify repeated narrative DNA TA06 \n", - "35 F00036 - Looking for AB testing in unregulated... TA06 \n", - "36 F00037 - News content provenance certification. TA06 \n", - "37 F00038 - Social capital as attack vector TA06 \n", - "38 F00039 - standards to track image/ video deep ... TA06 \n", - "39 F00040 - Unalterable metadata signature on ori... TA06 \n", - "40 F00041 - Bias detection TA07 \n", - "41 F00042 - Categorize polls by intent TA07 \n", - "42 F00043 - Monitor for creation of fake known pe... TA07 \n", - "43 F00044 - Forensic analysis TA08 \n", - "44 F00045 - Forensic linguistic analysis TA08 \n", - "45 F00046 - Pump priming analytics TA08 \n", - "46 F00047 - trace involved parties TA08 \n", - "47 F00048 - Trace known operations and connection TA08 \n", - "48 F00049 - trace money TA08 \n", - "49 F00050 - Web cache analytics TA08 \n", - "50 F00051 - Challenge expertise TA09 \n", - "51 F00052 - Discover sponsors TA09 \n", - "52 F00053 - Government rumour control office (wha... TA09 \n", - "53 F00054 - Restrict people who can @ you on soci... TA09 \n", - "54 F00055 - Verify credentials TA09 \n", - "55 F00056 - Verify organisation legitimacy TA09 \n", - "56 F00057 - Verify personal credentials of experts TA09 \n", - "57 F00058 - Deplatform (cancel culture) TA10 \n", - "58 F00059 - Identify susceptible demographics TA10 \n", - "59 F00060 - Identify susceptible influencers TA10 \n", - "60 F00061 - Microtargeting TA10 \n", - "61 F00062 - Detect when Dormant account turns active TA11 \n", - "62 F00063 - Linguistic change analysis TA11 \n", - "63 F00064 - Monitor reports of account takeover TA11 \n", - "64 F00065 - Sentiment change analysis TA11 \n", - "65 F00066 - Use language errors, time to respond ... TA11 \n", - "66 F00067 - Data forensics \n", - "67 F00068 - Resonance analysis \n", - "68 F00069 - Track Russian media and develop analy... \n", - "69 F00070 - Full spectrum analytics ALL \n", - "70 F00071 - Network analysis Identify/cultivate/s... \n", - "71 F00072 - network analysis to identify central ... \n", - "72 F00073 - collect intel/recon on black/covert c... \n", - "73 F00074 - identify relevant fence-sitter commun... \n", - "74 F00075 - leverage open-source information \n", - "75 F00076 - Monitor/collect audience engagement d... \n", - "76 F00077 - Model for bot account behavior TA03 \n", - "77 F00078 - Monitor account level activity in soc... TA03 \n", - "78 F00079 - Network anomaly detection TA05 \n", - "79 F00080 - Hack the polls/ content yourself TA07 \n", - "80 F00081 - Need way for end user to report opera... TA09 \n", - "81 F00082 - Control the US \"slang\" translation bo... TA11 \n", - "82 F00083 - Build and own meme generator, then tr... TA11 \n", - "83 F00084 - Track individual bad actors TA03 \n", - "84 F00085 - detection of a weak signal through gl... \n", - "85 F00086 - Outpace Competitor Intelligence Capab... TA02 \n", - "86 F00087 - Improve Indications and Warning \n", - "87 F00088 - Revitalize an “active measures workin... \n", - "88 F00089 - target/name/flag \"grey zone\" website ... TA04 \n", - "89 F00090 - Match Punitive Tools with Third-Party... TA01 \n", - "90 F00091 - Partner to develop analytic methods &... TA01 \n", - "91 F00092 - daylight TA09 \n", - "92 F00093 - S4d detection and re-allocation appro... TA03 \n", - "93 F00094 - Registries alert when large batches o... TA07 \n", - "\n", - " tactic_name \n", - "0 Strategic Planning \n", - "1 Strategic Planning \n", - "2 Strategic Planning \n", - "3 Strategic Planning \n", - "4 Strategic Planning \n", - "5 Strategic Planning \n", - "6 Objective Planning \n", - "7 Develop People \n", - "8 Develop People \n", - "9 Develop People \n", - "10 Develop People \n", - "11 Develop People \n", - "12 Develop People \n", - "13 Develop People \n", - "14 Develop People \n", - "15 Develop People \n", - "16 Develop People \n", - "17 Develop People \n", - "18 Develop Networks \n", - "19 Develop Networks \n", - "20 Develop Networks \n", - "21 Develop Networks \n", - "22 Develop Networks \n", - "23 Develop Networks \n", - "24 Microtargeting \n", - "25 Microtargeting \n", - "26 Microtargeting \n", - "27 Develop Content \n", - "28 Develop Content \n", - "29 Develop Content \n", - "30 Develop Content \n", - "31 Develop Content \n", - "32 Develop Content \n", - "33 Develop Content \n", - "34 Develop Content \n", - "35 Develop Content \n", - "36 Develop Content \n", - "37 Develop Content \n", - "38 Develop Content \n", - "39 Develop Content \n", - "40 Channel Selection \n", - "41 Channel Selection \n", - "42 Channel Selection \n", - "43 Pump Priming \n", - "44 Pump Priming \n", - "45 Pump Priming \n", - "46 Pump Priming \n", - "47 Pump Priming \n", - "48 Pump Priming \n", - "49 Pump Priming \n", - "50 Exposure \n", - "51 Exposure \n", - "52 Exposure \n", - "53 Exposure \n", - "54 Exposure \n", - "55 Exposure \n", - "56 Exposure \n", - "57 Go Physical \n", - "58 Go Physical \n", - "59 Go Physical \n", - "60 Go Physical \n", - "61 Persistence \n", - "62 Persistence \n", - "63 Persistence \n", - "64 Persistence \n", - "65 Persistence \n", - "66 None \n", - "67 None \n", - "68 None \n", - "69 None \n", - "70 None \n", - "71 None \n", - "72 None \n", - "73 None \n", - "74 None \n", - "75 None \n", - "76 Develop People \n", - "77 Develop People \n", - "78 Microtargeting \n", - "79 Channel Selection \n", - "80 Exposure \n", - "81 Persistence \n", - "82 Persistence \n", - "83 Develop People \n", - "84 None \n", - "85 Objective planning \n", - "86 None \n", - "87 None \n", - "88 Develop Networks \n", - "89 Strategic Planning \n", - "90 Strategic Planning \n", - "91 Exposure \n", - "92 Develop People \n", - "93 Channel Selection " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "vars(amitt)['df_detections']" - ] - }, - { - "cell_type": "code", - "execution_count": 3, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -9498,27 +1284,58 @@ "134 F00094 TA07 Y N/A 135" ] }, - "execution_count": 3, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Generate minimal sqlite database from the Amitt variables\n", - "conn = sql.connect('amittsite.sqlite')\n", + "# Get AMITT variables\n", "\n", + "import pandas as pd\n", + "import sqlite3 as sql\n", + "import os\n", + "from sqlalchemy import create_engine\n", + "from generate_amitt_ttps import Amitt\n", + "pd.set_option('display.max_rows', 1000)\n", + "\n", + "\n", + "# Generate AMITT datasets\n", + "amitt = Amitt()\n", + "\n", + "dbasetype = 'postgresql_local' #'sqlite' #'heroku'\n", + "\n", + "\n", + "# Create connection to database\n", + "if dbasetype == 'sqlite':\n", + " # Generate minimal sqlite database from the Amitt variables\n", + " conn = sql.connect('amittsite.sqlite')\n", + "elif dbasetype == 'postgresql_local':\n", + " conn = create_engine('postgresql://sara:@localhost:5432/amittsite')\n", + "else:\n", + " conn = create_engine(\"postgres://msenahnnwvuamr:227b5aeb1268572ab2d77f3158aecbdd50326bfff3026ab61aebb0fdcb0953a7@ec2-54-162-119-125.compute-1.amazonaws.com:5432/demudug8oqb3h0\")\n", + "\n", + " \n", + "# Add table to database \n", "def add_table(dataframe, tablename, columns): \n", - " # Create sql table\n", + " # Create sql-appropriate table from dataframe\n", " colnames = ', '.join(['{} TEXT NOT NULL'.format(col) for col in columns])\n", - " conn.execute(\"DROP TABLE IF EXISTS {}\".format(tablename))\n", - " conn.execute('''CREATE TABLE {} (id INTEGER PRIMARY KEY AUTOINCREMENT, {});'''.format(tablename, colnames))\n", - " #populate table from dataframe\n", " newtable = dataframe[columns].copy().applymap(str)\n", " newtable['id'] = range(1,len(newtable)+1)\n", - " newtable.to_sql(tablename, conn, index=False, if_exists='append')\n", - " conn.commit()\n", + " \n", + " # send to database\n", + " if dbasetype == 'sqlite':\n", + " conn.execute(\"DROP TABLE IF EXISTS {}\".format(tablename))\n", + " conn.execute('''CREATE TABLE {} (id INTEGER PRIMARY KEY AUTOINCREMENT, {});'''.format(tablename, colnames))\n", + " newtable.to_sql(tablename, conn, index=False, if_exists='append')\n", + " conn.commit()\n", + " elif dbasetype == 'postgresql_local':\n", + " newtable.to_sql(tablename, conn, index=False, if_exists='replace')\n", + " else:\n", + " newtable.to_sql(tablename, conn, index=False, if_exists='append')\n", " return newtable\n", "\n", + "# Build a cross-table\n", "def object_tactics_techniques(objectcol, objecttable, crosstable):\n", " # objects to techniques\n", " ctech = crosstable.copy()\n", @@ -9537,6 +1354,9 @@ " ctact['summary'] = 'N/A'\n", " return(ctech, ctact)\n", "\n", + "\n", + "#Load all the tables - Heroku needs them in correct order... \n", + "\n", "#newtable = add_table(amitt.df_actortypes, 'actor_type', ['amitt_id', 'sector_id', 'framework_id', 'name', 'summary'])\n", "# counter\n", "newtable = add_table(amitt.df_counters, 'counter', ['amitt_id', 'tactic_id', 'metatechnique_id', 'name', 'summary'])\n", @@ -9563,895 +1383,36 @@ "newtable = add_table(dtech, 'detection_technique', ['detection_id', 'technique_id', 'summary'])\n", "newtable = add_table(dtact, 'detection_tactic', ['detection_id', 'tactic_id', 'main_tactic', 'summary'])\n", "\n", - "conn.execute(\"DROP TABLE IF EXISTS {}\".format('user'))\n", - "conn.execute('''CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password TEXT NOT NULL);''')\n", + "if dbasetype == 'sqlite':\n", + " conn.execute(\"DROP TABLE IF EXISTS {}\".format('users'))\n", + " conn.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password TEXT NOT NULL);''')\n", + " conn.close()\n", + "else:\n", + " dfusers = pd.DataFrame([['test','testing']], columns=['username', 'password'])\n", + " usertable = add_table(dfusers, 'users', ['username', 'password'])\n", "\n", - "conn.close()\n", "newtable" ] }, { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
detection_idtechnique_idsummary
0F00001AllN/A
1F00002T0049N/A
1F00002T0052N/A
1F00002T0053N/A
1F00002T0054N/A
1F00002T0059N/A
1F00002T0060N/A
2F00003T0019N/A
2F00003T0021N/A
3F00004T0057N/A
3F00004T0061N/A
3F00004T0010N/A
3F00004T0039N/A
4F00005AllN/A
5F00006T0007N/A
5F00006T0014N/A
5F00006T0010N/A
5F00006T0019N/A
5F00006T0021N/A
6F00007AllN/A
7F00008T0052N/A
7F00008T0053N/A
7F00008T0054N/A
7F00008T0060N/A
8F00009T0007N/A
9F00010T0007N/A
10F00011T0007N/A
11F00012T0007N/A
12F00013T0008N/A
13F00014T0008N/A
14F00015T0007N/A
14F00015T0009N/A
14F00015T0015N/A
14F00015T0045N/A
14F00015T0057N/A
15F00016T0010N/A
15F00016T0017N/A
15F00016T0018N/A
15F00016T0029N/A
15F00016T0039N/A
15F00016T0048N/A
16F00017T0001N/A
16F00017T0039N/A
16F00017T0053N/A
17F00018T0009N/A
18F00019T0011N/A
19F00020T0011N/A
22F00023T0011N/A
27F00028T0025N/A
28F00029T0006N/A
28F00029T0019N/A
28F00029T0050N/A
28F00029T0056N/A
30F00031T0019N/A
30F00031T0056N/A
31F00032DUPLICATEN/A
32F00033T0013N/A
33F00034T0049N/A
34F00035T0006N/A
34F00035T0019N/A
34F00035T0050N/A
34F00035T0056N/A
35F00036T0020N/A
37F00038T0010N/A
37F00038T0039N/A
37F00038T0043N/A
37F00038T0057N/A
37F00038T0061N/A
38F00039T0024N/A
39F00040T0024N/A
40F00041T00029N/A
41F00042T00029N/A
42F00043T00030N/A
43F00044AllN/A
44F00045AllN/A
50F00051T0009N/A
50F00051T0045N/A
51F00052AllN/A
52F00053T0049N/A
52F00053T0050N/A
52F00053T0052N/A
52F00053T0053N/A
52F00053T0054N/A
52F00053T0055N/A
52F00053T0056N/A
57F00058T0007N/A
57F00058T0009N/A
57F00058T0011N/A
57F00058T0014N/A
57F00058T0017N/A
57F00058T0018N/A
57F00058T0045N/A
58F00059AllN/A
59F00060T0039N/A
60F00061AllN/A
61F00062T0007N/A
61F00062T0011N/A
63F00064T0011N/A
77F00078AllN/A
78F00079T0029N/A
78F00079T0047N/A
78F00079T0049N/A
78F00079T0054N/A
78F00079T0055N/A
78F00079T0060N/A
79F00080T0029N/A
80F00081T0049N/A
80F00081T0050N/A
80F00081T0052N/A
80F00081T0053N/A
80F00081T0054N/A
80F00081T0055N/A
80F00081T0056N/A
82F00083T0012N/A
82F00083T0021N/A
92F00093T0011N/A
93F00094T0013N/A
93F00094T0008N/A
\n", - "
" - ], - "text/plain": [ - " detection_id technique_id summary\n", - "0 F00001 All N/A\n", - "1 F00002 T0049 N/A\n", - "1 F00002 T0052 N/A\n", - "1 F00002 T0053 N/A\n", - "1 F00002 T0054 N/A\n", - "1 F00002 T0059 N/A\n", - "1 F00002 T0060 N/A\n", - "2 F00003 T0019 N/A\n", - "2 F00003 T0021 N/A\n", - "3 F00004 T0057 N/A\n", - "3 F00004 T0061 N/A\n", - "3 F00004 T0010 N/A\n", - "3 F00004 T0039 N/A\n", - "4 F00005 All N/A\n", - "5 F00006 T0007 N/A\n", - "5 F00006 T0014 N/A\n", - "5 F00006 T0010 N/A\n", - "5 F00006 T0019 N/A\n", - "5 F00006 T0021 N/A\n", - "6 F00007 All N/A\n", - "7 F00008 T0052 N/A\n", - "7 F00008 T0053 N/A\n", - "7 F00008 T0054 N/A\n", - "7 F00008 T0060 N/A\n", - "8 F00009 T0007 N/A\n", - "9 F00010 T0007 N/A\n", - "10 F00011 T0007 N/A\n", - "11 F00012 T0007 N/A\n", - "12 F00013 T0008 N/A\n", - "13 F00014 T0008 N/A\n", - "14 F00015 T0007 N/A\n", - "14 F00015 T0009 N/A\n", - "14 F00015 T0015 N/A\n", - "14 F00015 T0045 N/A\n", - "14 F00015 T0057 N/A\n", - "15 F00016 T0010 N/A\n", - "15 F00016 T0017 N/A\n", - "15 F00016 T0018 N/A\n", - "15 F00016 T0029 N/A\n", - "15 F00016 T0039 N/A\n", - "15 F00016 T0048 N/A\n", - "16 F00017 T0001 N/A\n", - "16 F00017 T0039 N/A\n", - "16 F00017 T0053 N/A\n", - "17 F00018 T0009 N/A\n", - "18 F00019 T0011 N/A\n", - "19 F00020 T0011 N/A\n", - "22 F00023 T0011 N/A\n", - "27 F00028 T0025 N/A\n", - "28 F00029 T0006 N/A\n", - "28 F00029 T0019 N/A\n", - "28 F00029 T0050 N/A\n", - "28 F00029 T0056 N/A\n", - "30 F00031 T0019 N/A\n", - "30 F00031 T0056 N/A\n", - "31 F00032 DUPLICATE N/A\n", - "32 F00033 T0013 N/A\n", - "33 F00034 T0049 N/A\n", - "34 F00035 T0006 N/A\n", - "34 F00035 T0019 N/A\n", - "34 F00035 T0050 N/A\n", - "34 F00035 T0056 N/A\n", - "35 F00036 T0020 N/A\n", - "37 F00038 T0010 N/A\n", - "37 F00038 T0039 N/A\n", - "37 F00038 T0043 N/A\n", - "37 F00038 T0057 N/A\n", - "37 F00038 T0061 N/A\n", - "38 F00039 T0024 N/A\n", - "39 F00040 T0024 N/A\n", - "40 F00041 T00029 N/A\n", - "41 F00042 T00029 N/A\n", - "42 F00043 T00030 N/A\n", - "43 F00044 All N/A\n", - "44 F00045 All N/A\n", - "50 F00051 T0009 N/A\n", - "50 F00051 T0045 N/A\n", - "51 F00052 All N/A\n", - "52 F00053 T0049 N/A\n", - "52 F00053 T0050 N/A\n", - "52 F00053 T0052 N/A\n", - "52 F00053 T0053 N/A\n", - "52 F00053 T0054 N/A\n", - "52 F00053 T0055 N/A\n", - "52 F00053 T0056 N/A\n", - "57 F00058 T0007 N/A\n", - "57 F00058 T0009 N/A\n", - "57 F00058 T0011 N/A\n", - "57 F00058 T0014 N/A\n", - "57 F00058 T0017 N/A\n", - "57 F00058 T0018 N/A\n", - "57 F00058 T0045 N/A\n", - "58 F00059 All N/A\n", - "59 F00060 T0039 N/A\n", - "60 F00061 All N/A\n", - "61 F00062 T0007 N/A\n", - "61 F00062 T0011 N/A\n", - "63 F00064 T0011 N/A\n", - "77 F00078 All N/A\n", - "78 F00079 T0029 N/A\n", - "78 F00079 T0047 N/A\n", - "78 F00079 T0049 N/A\n", - "78 F00079 T0054 N/A\n", - "78 F00079 T0055 N/A\n", - "78 F00079 T0060 N/A\n", - "79 F00080 T0029 N/A\n", - "80 F00081 T0049 N/A\n", - "80 F00081 T0050 N/A\n", - "80 F00081 T0052 N/A\n", - "80 F00081 T0053 N/A\n", - "80 F00081 T0054 N/A\n", - "80 F00081 T0055 N/A\n", - "80 F00081 T0056 N/A\n", - "82 F00083 T0012 N/A\n", - "82 F00083 T0021 N/A\n", - "92 F00093 T0011 N/A\n", - "93 F00094 T0013 N/A\n", - "93 F00094 T0008 N/A" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "cell_type": "markdown", + "metadata": {}, "source": [ - "dtech" + "## test area" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 25, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dict_keys(['df_phases', 'df_frameworks', 'df_techniques', 'df_tasks', 'df_incidents', 'df_counters', 'df_detections', 'df_actortypes', 'df_resources', 'df_responsetypes', 'df_metatechniques', 'it', 'df_tactics', 'df_techniques_per_tactic', 'df_counters_per_tactic', 'phases', 'tactics', 'techniques', 'counters', 'metatechniques', 'actortypes', 'resources', 'num_tactics', 'cross_counterid_techniqueid', 'cross_counterid_resourceid', 'cross_counterid_actortypeid', 'cross_detectionid_techniqueid', 'cross_detectionid_resourceid', 'cross_detectionid_actortypeid'])\n" + ] + }, { "data": { "text/html": [ @@ -10473,1108 +1434,456 @@ " \n", " \n", " \n", - " detection_id\n", - " tactic_id\n", - " main_tactic\n", + " amitt_id\n", + " name\n", " summary\n", + " sector\n", + " viewpoint\n", + " longname\n", " \n", " \n", " \n", " \n", " 0\n", - " F00003\n", - " TA06\n", - " N\n", - " N/A\n", + " A001\n", + " data scientist\n", + " Person who can wrangle data, implement machine...\n", + " All\n", + " both\n", + " A001 - data scientist\n", " \n", " \n", " 1\n", - " F00003\n", - " TA08\n", - " N\n", - " N/A\n", + " A002\n", + " target\n", + " Person being targeted by disinformation campaign\n", + " All\n", + " blue\n", + " A002 - target\n", " \n", " \n", " 2\n", - " F00003\n", - " TA09\n", - " N\n", - " N/A\n", + " A003\n", + " trusted authority\n", + " Influencer\n", + " All\n", + " both\n", + " A003 - trusted authority\n", " \n", " \n", " 3\n", - " F00006\n", - " TA05\n", - " N\n", - " N/A\n", + " A004\n", + " activist\n", + " \n", + " Civil Society\n", + " blue\n", + " A004 - activist\n", " \n", " \n", " 4\n", - " F00006\n", - " TA07\n", - " N\n", - " N/A\n", + " A005\n", + " community group\n", + " \n", + " Civil Society\n", + " blue\n", + " A005 - community group\n", " \n", " \n", " 5\n", - " F00006\n", - " TA08\n", - " N\n", - " N/A\n", + " A006\n", + " educator\n", + " \n", + " Civil Society\n", + " blue\n", + " A006 - educator\n", " \n", " \n", " 6\n", - " F00006\n", - " TA09\n", - " N\n", - " N/A\n", + " A007\n", + " factchecker\n", + " Someone with the skills to verify whether info...\n", + " Civil Society\n", + " blue\n", + " A007 - factchecker\n", " \n", " \n", " 7\n", - " F00006\n", - " TA10\n", - " N\n", - " N/A\n", + " A008\n", + " library\n", + " \n", + " Civil Society\n", + " blue\n", + " A008 - library\n", " \n", " \n", " 8\n", - " F00006\n", - " TA11\n", - " N\n", - " N/A\n", + " A009\n", + " NGO\n", + " \n", + " Civil Society\n", + " blue\n", + " A009 - NGO\n", " \n", " \n", " 9\n", - " F00015\n", - " TA07\n", - " N\n", - " N/A\n", + " A010\n", + " religious organisation\n", + " \n", + " Civil Society\n", + " blue\n", + " A010 - religious organisation\n", " \n", " \n", " 10\n", - " F00016\n", - " TA08\n", - " N\n", - " N/A\n", + " A011\n", + " school\n", + " \n", + " Civil Society\n", + " blue\n", + " A011 - school\n", " \n", " \n", " 11\n", - " F00016\n", - " TA09\n", - " N\n", - " N/A\n", + " A012\n", + " account owner\n", + " Anyone who owns an account online\n", + " General Public\n", + " both\n", + " A012 - account owner\n", " \n", " \n", " 12\n", - " F00016\n", - " TA10\n", - " N\n", - " N/A\n", + " A013\n", + " content creator\n", + " \n", + " General Public\n", + " both\n", + " A013 - content creator\n", " \n", " \n", " 13\n", - " F00016\n", - " TA11\n", - " N\n", - " N/A\n", + " A014\n", + " elves\n", + " \n", + " General Public\n", + " blue\n", + " A014 - elves\n", " \n", " \n", " 14\n", - " F00021\n", - " TA03\n", - " N\n", - " N/A\n", + " A015\n", + " general public\n", + " \n", + " General Public\n", + " blue\n", + " A015 - general public\n", " \n", " \n", " 15\n", - " F00021\n", - " TA04\n", - " N\n", - " N/A\n", + " A016\n", + " influencer\n", + " \n", + " General Public\n", + " both\n", + " A016 - influencer\n", " \n", " \n", " 16\n", - " F00021\n", - " TA05\n", - " N\n", - " N/A\n", + " A017\n", + " coordinating body\n", + " For example the DHS\n", + " Government\n", + " blue\n", + " A017 - coordinating body\n", " \n", " \n", " 17\n", - " F00021\n", - " TA06\n", - " N\n", - " N/A\n", + " A018\n", + " government\n", + " Government agencies\n", + " Government\n", + " both\n", + " A018 - government\n", " \n", " \n", " 18\n", - " F00021\n", - " TA07\n", - " N\n", - " N/A\n", + " A019\n", + " military\n", + " \n", + " Government\n", + " blue\n", + " A019 - military\n", " \n", " \n", " 19\n", - " F00021\n", - " TA08\n", - " N\n", - " N/A\n", + " A020\n", + " policy maker\n", + " \n", + " Government\n", + " blue\n", + " A020 - policy maker\n", " \n", " \n", " 20\n", - " F00021\n", - " TA09\n", - " N\n", - " N/A\n", + " A021\n", + " media organisation\n", + " \n", + " Media\n", + " both\n", + " A021 - media organisation\n", " \n", " \n", " 21\n", - " F00021\n", - " TA10\n", - " N\n", - " N/A\n", + " A022\n", + " company\n", + " \n", + " Other Company\n", + " blue\n", + " A022 - company\n", " \n", " \n", " 22\n", - " F00021\n", - " TA11\n", - " N\n", - " N/A\n", + " A023\n", + " adtech provider\n", + " \n", + " Other Tech Company\n", + " blue\n", + " A023 - adtech provider\n", " \n", " \n", " 23\n", - " F00025\n", - " TA01\n", - " N\n", - " N/A\n", + " A024\n", + " developer\n", + " \n", + " Other Tech Company\n", + " blue\n", + " A024 - developer\n", " \n", " \n", " 24\n", - " F00025\n", - " TA02\n", - " N\n", - " N/A\n", + " A025\n", + " funding_site_admin\n", + " Funding site admin\n", + " Other Tech Company\n", + " blue\n", + " A025 - funding_site_admin\n", " \n", " \n", " 25\n", - " F00029\n", - " TA01\n", - " N\n", - " N/A\n", + " A026\n", + " games designer\n", + " \n", + " Other Tech Company\n", + " both\n", + " A026 - games designer\n", " \n", " \n", " 26\n", - " F00030\n", - " TA03\n", - " N\n", - " N/A\n", + " A027\n", + " information security\n", + " \n", + " Other Tech Company\n", + " blue\n", + " A027 - information security\n", " \n", " \n", " 27\n", - " F00030\n", - " TA04\n", - " N\n", - " N/A\n", + " A028\n", + " platform administrator\n", + " \n", + " Other Tech Company\n", + " blue\n", + " A028 - platform administrator\n", " \n", " \n", " 28\n", - " F00030\n", - " TA05\n", - " N\n", - " N/A\n", + " A029\n", + " server admininistrator\n", + " \n", + " Other Tech Company\n", + " blue\n", + " A029 - server admininistrator\n", " \n", " \n", " 29\n", - " F00030\n", - " TA06\n", - " N\n", - " N/A\n", + " A030\n", + " platforms\n", + " \n", + " Social Media Company\n", + " blue\n", + " A030 - platforms\n", " \n", " \n", " 30\n", - " F00030\n", - " TA08\n", - " N\n", - " N/A\n", + " A031\n", + " social media platform adminstrator\n", + " Person with the authority to make changes to a...\n", + " Social Media Company\n", + " blue\n", + " A031 - social media platform adminstrator\n", " \n", " \n", " 31\n", - " F00030\n", - " TA09\n", - " N\n", - " N/A\n", + " A032\n", + " social media platform outreach\n", + " \n", + " Social Media Company\n", + " blue\n", + " A032 - social media platform outreach\n", " \n", " \n", " 32\n", - " F00030\n", - " TA10\n", - " N\n", - " N/A\n", - " \n", - " \n", - " 33\n", - " F00031\n", - " TA01\n", - " N\n", - " N/A\n", - " \n", - " \n", - " 34\n", - " F00035\n", - " TA01\n", - " N\n", - " N/A\n", - " \n", - " \n", - " 35\n", - " F00037\n", - " TA01\n", - " N\n", - " N/A\n", - " \n", - " \n", - " 36\n", - " F00046\n", - " TA08\n", - " N\n", - " N/A\n", - " \n", - " \n", - " 37\n", - " F00058\n", - " TA07\n", - " N\n", - " N/A\n", - " \n", - " \n", - " 38\n", - " F00058\n", - " TA09\n", - " N\n", - " N/A\n", - " \n", - " \n", - " 39\n", - " F00058\n", - " TA10\n", - " N\n", - " N/A\n", - " \n", - " \n", - " 40\n", - " F00062\n", - " TA09\n", - " N\n", - " N/A\n", - " \n", - " \n", - " 41\n", - " F00001\n", - " TA01\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 42\n", - " F00002\n", - " TA01\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 43\n", - " F00003\n", - " TA01\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 44\n", - " F00004\n", - " TA01\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 45\n", - " F00005\n", - " TA01\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 46\n", - " F00006\n", - " TA01\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 47\n", - " F00007\n", - " TA02\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 48\n", - " F00008\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 49\n", - " F00009\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 50\n", - " F00010\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 51\n", - " F00011\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 52\n", - " F00012\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 53\n", - " F00013\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 54\n", - " F00014\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 55\n", - " F00015\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 56\n", - " F00016\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 57\n", - " F00017\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 58\n", - " F00018\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 59\n", - " F00019\n", - " TA04\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 60\n", - " F00020\n", - " TA04\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 61\n", - " F00021\n", - " TA04\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 62\n", - " F00022\n", - " TA04\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 63\n", - " F00023\n", - " TA04\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 64\n", - " F00024\n", - " TA04\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 65\n", - " F00025\n", - " TA05\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 66\n", - " F00026\n", - " TA05\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 67\n", - " F00027\n", - " TA05\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 68\n", - " F00028\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 69\n", - " F00029\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 70\n", - " F00030\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 71\n", - " F00031\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 72\n", - " F00032\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 73\n", - " F00033\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 74\n", - " F00034\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 75\n", - " F00035\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 76\n", - " F00036\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 77\n", - " F00037\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 78\n", - " F00038\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 79\n", - " F00039\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 80\n", - " F00040\n", - " TA06\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 81\n", - " F00041\n", - " TA07\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 82\n", - " F00042\n", - " TA07\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 83\n", - " F00043\n", - " TA07\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 84\n", - " F00044\n", - " TA08\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 85\n", - " F00045\n", - " TA08\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 86\n", - " F00046\n", - " TA08\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 87\n", - " F00047\n", - " TA08\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 88\n", - " F00048\n", - " TA08\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 89\n", - " F00049\n", - " TA08\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 90\n", - " F00050\n", - " TA08\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 91\n", - " F00051\n", - " TA09\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 92\n", - " F00052\n", - " TA09\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 93\n", - " F00053\n", - " TA09\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 94\n", - " F00054\n", - " TA09\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 95\n", - " F00055\n", - " TA09\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 96\n", - " F00056\n", - " TA09\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 97\n", - " F00057\n", - " TA09\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 98\n", - " F00058\n", - " TA10\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 99\n", - " F00059\n", - " TA10\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 100\n", - " F00060\n", - " TA10\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 101\n", - " F00061\n", - " TA10\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 102\n", - " F00062\n", - " TA11\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 103\n", - " F00063\n", - " TA11\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 104\n", - " F00064\n", - " TA11\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 105\n", - " F00065\n", - " TA11\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 106\n", - " F00066\n", - " TA11\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 107\n", - " F00067\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 108\n", - " F00068\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 109\n", - " F00069\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 110\n", - " F00070\n", - " ALL\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 111\n", - " F00071\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 112\n", - " F00072\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 113\n", - " F00073\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 114\n", - " F00074\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 115\n", - " F00075\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 116\n", - " F00076\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 117\n", - " F00077\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 118\n", - " F00078\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 119\n", - " F00079\n", - " TA05\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 120\n", - " F00080\n", - " TA07\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 121\n", - " F00081\n", - " TA09\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 122\n", - " F00082\n", - " TA11\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 123\n", - " F00083\n", - " TA11\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 124\n", - " F00084\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 125\n", - " F00085\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 126\n", - " F00086\n", - " TA02\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 127\n", - " F00087\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 128\n", - " F00088\n", - " \n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 129\n", - " F00089\n", - " TA04\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 130\n", - " F00090\n", - " TA01\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 131\n", - " F00091\n", - " TA01\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 132\n", - " F00092\n", - " TA09\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 133\n", - " F00093\n", - " TA03\n", - " Y\n", - " N/A\n", - " \n", - " \n", - " 134\n", - " F00094\n", - " TA07\n", - " Y\n", - " N/A\n", + " A033\n", + " social media platform owner\n", + " Person with authority to make changes to a soc...\n", + " Social Media Company\n", + " blue\n", + " A033 - social media platform owner\n", " \n", " \n", "\n", "" ], "text/plain": [ - " detection_id tactic_id main_tactic summary\n", - "0 F00003 TA06 N N/A\n", - "1 F00003 TA08 N N/A\n", - "2 F00003 TA09 N N/A\n", - "3 F00006 TA05 N N/A\n", - "4 F00006 TA07 N N/A\n", - "5 F00006 TA08 N N/A\n", - "6 F00006 TA09 N N/A\n", - "7 F00006 TA10 N N/A\n", - "8 F00006 TA11 N N/A\n", - "9 F00015 TA07 N N/A\n", - "10 F00016 TA08 N N/A\n", - "11 F00016 TA09 N N/A\n", - "12 F00016 TA10 N N/A\n", - "13 F00016 TA11 N N/A\n", - "14 F00021 TA03 N N/A\n", - "15 F00021 TA04 N N/A\n", - "16 F00021 TA05 N N/A\n", - "17 F00021 TA06 N N/A\n", - "18 F00021 TA07 N N/A\n", - "19 F00021 TA08 N N/A\n", - "20 F00021 TA09 N N/A\n", - "21 F00021 TA10 N N/A\n", - "22 F00021 TA11 N N/A\n", - "23 F00025 TA01 N N/A\n", - "24 F00025 TA02 N N/A\n", - "25 F00029 TA01 N N/A\n", - "26 F00030 TA03 N N/A\n", - "27 F00030 TA04 N N/A\n", - "28 F00030 TA05 N N/A\n", - "29 F00030 TA06 N N/A\n", - "30 F00030 TA08 N N/A\n", - "31 F00030 TA09 N N/A\n", - "32 F00030 TA10 N N/A\n", - "33 F00031 TA01 N N/A\n", - "34 F00035 TA01 N N/A\n", - "35 F00037 TA01 N N/A\n", - "36 F00046 TA08 N N/A\n", - "37 F00058 TA07 N N/A\n", - "38 F00058 TA09 N N/A\n", - "39 F00058 TA10 N N/A\n", - "40 F00062 TA09 N N/A\n", - "41 F00001 TA01 Y N/A\n", - "42 F00002 TA01 Y N/A\n", - "43 F00003 TA01 Y N/A\n", - "44 F00004 TA01 Y N/A\n", - "45 F00005 TA01 Y N/A\n", - "46 F00006 TA01 Y N/A\n", - "47 F00007 TA02 Y N/A\n", - "48 F00008 TA03 Y N/A\n", - "49 F00009 TA03 Y N/A\n", - "50 F00010 TA03 Y N/A\n", - "51 F00011 TA03 Y N/A\n", - "52 F00012 TA03 Y N/A\n", - "53 F00013 TA03 Y N/A\n", - "54 F00014 TA03 Y N/A\n", - "55 F00015 TA03 Y N/A\n", - "56 F00016 TA03 Y N/A\n", - "57 F00017 TA03 Y N/A\n", - "58 F00018 TA03 Y N/A\n", - "59 F00019 TA04 Y N/A\n", - "60 F00020 TA04 Y N/A\n", - "61 F00021 TA04 Y N/A\n", - "62 F00022 TA04 Y N/A\n", - "63 F00023 TA04 Y N/A\n", - "64 F00024 TA04 Y N/A\n", - "65 F00025 TA05 Y N/A\n", - "66 F00026 TA05 Y N/A\n", - "67 F00027 TA05 Y N/A\n", - "68 F00028 TA06 Y N/A\n", - "69 F00029 TA06 Y N/A\n", - "70 F00030 TA06 Y N/A\n", - "71 F00031 TA06 Y N/A\n", - "72 F00032 TA06 Y N/A\n", - "73 F00033 TA06 Y N/A\n", - "74 F00034 TA06 Y N/A\n", - "75 F00035 TA06 Y N/A\n", - "76 F00036 TA06 Y N/A\n", - "77 F00037 TA06 Y N/A\n", - "78 F00038 TA06 Y N/A\n", - "79 F00039 TA06 Y N/A\n", - "80 F00040 TA06 Y N/A\n", - "81 F00041 TA07 Y N/A\n", - "82 F00042 TA07 Y N/A\n", - "83 F00043 TA07 Y N/A\n", - "84 F00044 TA08 Y N/A\n", - "85 F00045 TA08 Y N/A\n", - "86 F00046 TA08 Y N/A\n", - "87 F00047 TA08 Y N/A\n", - "88 F00048 TA08 Y N/A\n", - "89 F00049 TA08 Y N/A\n", - "90 F00050 TA08 Y N/A\n", - "91 F00051 TA09 Y N/A\n", - "92 F00052 TA09 Y N/A\n", - "93 F00053 TA09 Y N/A\n", - "94 F00054 TA09 Y N/A\n", - "95 F00055 TA09 Y N/A\n", - "96 F00056 TA09 Y N/A\n", - "97 F00057 TA09 Y N/A\n", - "98 F00058 TA10 Y N/A\n", - "99 F00059 TA10 Y N/A\n", - "100 F00060 TA10 Y N/A\n", - "101 F00061 TA10 Y N/A\n", - "102 F00062 TA11 Y N/A\n", - "103 F00063 TA11 Y N/A\n", - "104 F00064 TA11 Y N/A\n", - "105 F00065 TA11 Y N/A\n", - "106 F00066 TA11 Y N/A\n", - "107 F00067 Y N/A\n", - "108 F00068 Y N/A\n", - "109 F00069 Y N/A\n", - "110 F00070 ALL Y N/A\n", - "111 F00071 Y N/A\n", - "112 F00072 Y N/A\n", - "113 F00073 Y N/A\n", - "114 F00074 Y N/A\n", - "115 F00075 Y N/A\n", - "116 F00076 Y N/A\n", - "117 F00077 TA03 Y N/A\n", - "118 F00078 TA03 Y N/A\n", - "119 F00079 TA05 Y N/A\n", - "120 F00080 TA07 Y N/A\n", - "121 F00081 TA09 Y N/A\n", - "122 F00082 TA11 Y N/A\n", - "123 F00083 TA11 Y N/A\n", - "124 F00084 TA03 Y N/A\n", - "125 F00085 Y N/A\n", - "126 F00086 TA02 Y N/A\n", - "127 F00087 Y N/A\n", - "128 F00088 Y N/A\n", - "129 F00089 TA04 Y N/A\n", - "130 F00090 TA01 Y N/A\n", - "131 F00091 TA01 Y N/A\n", - "132 F00092 TA09 Y N/A\n", - "133 F00093 TA03 Y N/A\n", - "134 F00094 TA07 Y N/A" + " amitt_id name \\\n", + "0 A001 data scientist \n", + "1 A002 target \n", + "2 A003 trusted authority \n", + "3 A004 activist \n", + "4 A005 community group \n", + "5 A006 educator \n", + "6 A007 factchecker \n", + "7 A008 library \n", + "8 A009 NGO \n", + "9 A010 religious organisation \n", + "10 A011 school \n", + "11 A012 account owner \n", + "12 A013 content creator \n", + "13 A014 elves \n", + "14 A015 general public \n", + "15 A016 influencer \n", + "16 A017 coordinating body \n", + "17 A018 government \n", + "18 A019 military \n", + "19 A020 policy maker \n", + "20 A021 media organisation \n", + "21 A022 company \n", + "22 A023 adtech provider \n", + "23 A024 developer \n", + "24 A025 funding_site_admin \n", + "25 A026 games designer \n", + "26 A027 information security \n", + "27 A028 platform administrator \n", + "28 A029 server admininistrator \n", + "29 A030 platforms \n", + "30 A031 social media platform adminstrator \n", + "31 A032 social media platform outreach \n", + "32 A033 social media platform owner \n", + "\n", + " summary sector \\\n", + "0 Person who can wrangle data, implement machine... All \n", + "1 Person being targeted by disinformation campaign All \n", + "2 Influencer All \n", + "3 Civil Society \n", + "4 Civil Society \n", + "5 Civil Society \n", + "6 Someone with the skills to verify whether info... Civil Society \n", + "7 Civil Society \n", + "8 Civil Society \n", + "9 Civil Society \n", + "10 Civil Society \n", + "11 Anyone who owns an account online General Public \n", + "12 General Public \n", + "13 General Public \n", + "14 General Public \n", + "15 General Public \n", + "16 For example the DHS Government \n", + "17 Government agencies Government \n", + "18 Government \n", + "19 Government \n", + "20 Media \n", + "21 Other Company \n", + "22 Other Tech Company \n", + "23 Other Tech Company \n", + "24 Funding site admin Other Tech Company \n", + "25 Other Tech Company \n", + "26 Other Tech Company \n", + "27 Other Tech Company \n", + "28 Other Tech Company \n", + "29 Social Media Company \n", + "30 Person with the authority to make changes to a... Social Media Company \n", + "31 Social Media Company \n", + "32 Person with authority to make changes to a soc... Social Media Company \n", + "\n", + " viewpoint longname \n", + "0 both A001 - data scientist \n", + "1 blue A002 - target \n", + "2 both A003 - trusted authority \n", + "3 blue A004 - activist \n", + "4 blue A005 - community group \n", + "5 blue A006 - educator \n", + "6 blue A007 - factchecker \n", + "7 blue A008 - library \n", + "8 blue A009 - NGO \n", + "9 blue A010 - religious organisation \n", + "10 blue A011 - school \n", + "11 both A012 - account owner \n", + "12 both A013 - content creator \n", + "13 blue A014 - elves \n", + "14 blue A015 - general public \n", + "15 both A016 - influencer \n", + "16 blue A017 - coordinating body \n", + "17 both A018 - government \n", + "18 blue A019 - military \n", + "19 blue A020 - policy maker \n", + "20 both A021 - media organisation \n", + "21 blue A022 - company \n", + "22 blue A023 - adtech provider \n", + "23 blue A024 - developer \n", + "24 blue A025 - funding_site_admin \n", + "25 both A026 - games designer \n", + "26 blue A027 - information security \n", + "27 blue A028 - platform administrator \n", + "28 blue A029 - server admininistrator \n", + "29 blue A030 - platforms \n", + "30 blue A031 - social media platform adminstrator \n", + "31 blue A032 - social media platform outreach \n", + "32 blue A033 - social media platform owner " ] }, - "execution_count": 5, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dtact" + "# Check which amitt variables we can see from here\n", + "print('{}'.format(vars(amitt).keys()))\n", + "vars(amitt)['df_actortypes']" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import psycopg2\n", + "conn = psycopg2.connect(host=\"localhost\", port = 5432, \n", + " database=\"amittsite\", user=\"sara\", \n", + " password=\"\")\n", + "cur = conn.cursor()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sqlalchemy import create_engine\n", + "engine = create_engine('postgresql://sara:@localhost:5432/amittsite')\n", + "newtable.to_sql('test2', engine)" ] }, { diff --git a/HTML_GENERATING_CODE/Generate_AMITT_github_files.ipynb b/HTML_GENERATING_CODE/AMITT_generate_github_files.ipynb similarity index 99% rename from HTML_GENERATING_CODE/Generate_AMITT_github_files.ipynb rename to HTML_GENERATING_CODE/AMITT_generate_github_files.ipynb index d22e476..5dc1e17 100644 --- a/HTML_GENERATING_CODE/Generate_AMITT_github_files.ipynb +++ b/HTML_GENERATING_CODE/AMITT_generate_github_files.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 2, "metadata": { "scrolled": true }, @@ -48,7 +48,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 3, "metadata": { "scrolled": true }, @@ -439,7 +439,7 @@ "[140 rows x 18 columns]" ] }, - "execution_count": 10, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } diff --git a/HTML_GENERATING_CODE/__pycache__/generate_amitt_ttps.cpython-38.pyc b/HTML_GENERATING_CODE/__pycache__/generate_amitt_ttps.cpython-38.pyc index ca79b1f..f10f6d7 100644 Binary files a/HTML_GENERATING_CODE/__pycache__/generate_amitt_ttps.cpython-38.pyc and b/HTML_GENERATING_CODE/__pycache__/generate_amitt_ttps.cpython-38.pyc differ diff --git a/HTML_GENERATING_CODE/amittsite.sqlite b/HTML_GENERATING_CODE/amittsite.sqlite index aaec1d4..4ee7f4f 100644 Binary files a/HTML_GENERATING_CODE/amittsite.sqlite and b/HTML_GENERATING_CODE/amittsite.sqlite differ diff --git a/HTML_GENERATING_CODE/generate_amitt_ttps.py b/HTML_GENERATING_CODE/generate_amitt_ttps.py index 1a7aacb..8b6d29f 100644 --- a/HTML_GENERATING_CODE/generate_amitt_ttps.py +++ b/HTML_GENERATING_CODE/generate_amitt_ttps.py @@ -1,7 +1,8 @@ ''' Manage AMITT metadata The AMITT github repo at https://github.com/cogsec-collaborative/AMITT serves multiple purposes: -* Holds the master copy of AMITT (in excel file AMITT_TTPs_MASTER.xlsx) +* Holds the master copy of AMITT (in excel file AMITT_FRAMEWORK_MASTER.xlsx) +* Holds the master copy of AMITT data (in excel file AMITT_DATA_MASTER.xlsx) * Holds detailed notes on each phase, tactic, technique, incident, task and counter in AMITT. These notes are markdown pages that people are free to suggest edits to, using git's fork mechanisms. @@ -21,7 +22,7 @@ It creates this: Here are the file inputs and outputs associated with that work: -Reads 1 excel file: ../AMITT_MASTER_DATA/AMITT_TTPs_MASTER.xlsx with sheets: +Reads 1 excel file: ../AMITT_MASTER_DATA/AMITT_FRAMEWORKS_MASTER.xlsx with sheets: * phases * techniques * tasks @@ -81,11 +82,16 @@ from sklearn.feature_extraction.text import CountVectorizer class Amitt: - def __init__(self, infile = '../AMITT_MASTER_DATA/AMITT_TTPs_MASTER.xlsx'): + def __init__(self, frameworkfile = '../AMITT_MASTER_DATA/AMITT_FRAMEWORKS_MASTER.xlsx', datafile='../AMITT_MASTER_DATA/AMITT_DATA_MASTER.xlsx'): # Load metadata from file metadata = {} - xlsx = pd.ExcelFile(infile) + xlsx = pd.ExcelFile(frameworkfile) + for sheetname in xlsx.sheet_names: + metadata[sheetname] = xlsx.parse(sheetname) + metadata[sheetname].fillna('', inplace=True) + + xlsx = pd.ExcelFile(datafile) for sheetname in xlsx.sheet_names: metadata[sheetname] = xlsx.parse(sheetname) metadata[sheetname].fillna('', inplace=True) diff --git a/README.md b/README.md index f0418ab..485abb6 100644 --- a/README.md +++ b/README.md @@ -40,13 +40,13 @@ We love any and all suggestions for improvements, comments and offers of help - ## Using the Raw Data file AMITT is open source. If you want to do your own thing with AMITT data, these will help: -* all the master data for it is in directory [AMITT_MASTER_DATA](AMITT_MASTER_DATA). Look for the [AMITT_TTPs_MASTER.xlsx](AMITT_MASTER_DATA/AMITT_TTPs_MASTER.xlsx) spreadsheet. This contains disinformation creators' tactics, techniques, tasks, phases, and counters. +* all the master data for it is in directory [AMITT_MASTER_DATA](AMITT_MASTER_DATA). Look for the [AMITT_FRAMEWORKS_MASTER.xlsx](AMITT_MASTER_DATA/AMITT_FRAMEWORKS_MASTER.xlsx) spreadsheet. This contains disinformation creators' tactics, techniques, tasks, phases, and counters. * The [AMITT TTP Guide](https://docs.google.com/document/d/1Kc0O7owFyGiYs8N8wSq17gRUPEDQsD5lLUL_3KGCgRE/edit#) has more detailed information on each technique. * The code to create all the HTML datasheets is in directory [HTML_GENERATING_CODE](HTML_GENERATING_CODE): you'll need generate_amitt_ttps.py and all the template files. -If you have your own version of this repository and update AMITT_TTPs_MASTER.xlsx, typing "python generate_amitt_ttps.py" will update all the files above from it. +If you have your own version of this repository and update AMITT_FRAMEWORKS_MASTER.xlsx, typing "python generate_amitt_ttps.py" will update all the files above from it. ## Who's Responsible for AMITT diff --git a/detections_index.md b/detections_index.md index 1c705f5..0753398 100644 --- a/detections_index.md +++ b/detections_index.md @@ -20,7 +20,7 @@ F00002 Analyse viral fizzle - +We have no idea what this means. Is it something to do with the way a viral story spreads? TA01 Strategic Planning D1 Detect @@ -44,7 +44,7 @@ F00005 SWOT Analysis of Cognition in Various Groups - +Strengths, Weaknesses, Opportunities, Threats analysis of groups and audience segments. TA01 Strategic Planning D1 Detect