Skip to content

Instantly share code, notes, and snippets.

@dhimmel
Last active October 2, 2018 15:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dhimmel/44212bed10ce618da454e4508d91fac4 to your computer and use it in GitHub Desktop.
Save dhimmel/44212bed10ce618da454e4508d91fac4 to your computer and use it in GitHub Desktop.
Analytical derivation of the prior XSwap probability of a hetnet edge
metaedge abbreviation n_edges n_connected_source_nodes n_connected_target_nodes n_source_wedges n_target_wedges n_wedges n_valid_xswaps
Anatomy–downregulates–Gene AdG 102240 36 15097 173440264 493897 173934161 5052523519
Anatomy–expresses–Gene AeG 526407 241 18094 2290279787 10749138 2301028925 136250872696
Anatomy–upregulates–Gene AuG 97848 36 15929 149352969 359661 149712630 4637353998
Compound–binds–Gene CbG 11571 1389 1689 104024 476540 580564 66357671
Compound–causes–Side Effect CcSE 138944 1071 5701 16998055 16764774 33762829 9618885267
Compound–downregulates–Gene CdG 21102 734 2880 1683615 291789 1975404 220661247
Compound–palliates–Disease CpD 390 221 50 326 2857 3183 72672
Compound–resembles–Compound CrC 12972 1281 1281 120047 120047 240094 83889812
Compound–treats–Disease CtD 755 387 77 1420 8070 9490 275145
Compound–upregulates–Gene CuG 18756 703 3247 1489248 183634 1672882 174211508
Disease–associates–Gene DaG 12623 134 5392 1581400 35550 1616950 78046803
Disease–downregulates–Gene DdG 7623 44 5745 884813 2498 887311 28163942
Disease–localizes–Anatomy DlA 3602 133 398 72644 19982 92626 6392775
Disease–presents–Symptom DpS 3357 133 415 64389 23430 87819 5545227
Disease–resembles–Disease DrD 1086 129 129 6531 6531 13062 576093
Disease–upregulates–Gene DuG 7731 44 5630 909467 3031 912498 28967817
Gene–covaries–Gene GcG 123380 12453 12453 3702610 3702610 7405220 7603845290
Gene–interacts–Gene GiG 294328 15165 15165 55412782 55412782 110825564 43203513064
Gene–participates–Biological Process GpBP 559504 14772 11381 30123408 90103196 120226604 156401856652
Gene–participates–Cellular Component GpCC 73566 10580 1391 456449 12531792 12988241 2692953154
Gene–participates–Molecular Function GpMF 97222 13063 2884 591373 15444939 16036312 4709973719
Gene–participates–Pathway GpPW 84372 8979 1822 1337526 11008146 12345672 3546929334
Gene→regulates→Gene Gr>G 265672 4634 7048 15056962 37821797 52878759 35237794197
Pharmacologic Class–includes–Compound PCiC 1029 345 724 3156 603 3759 525147
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Analytical derivation of the prior XSwap probability of a hetnet edge\n",
"\n",
"+ Lizee prior proposed [here](https://think-lab.github.io/d/194/#2) with further discussion [here](https://think-lab.github.io/d/201/#2).\n",
"+ Chung-Lu and Kloster priors proposed [here](https://github.com/greenelab/hetmech/issues/134#issuecomment-419133600).\n",
"\n",
"Created an environment for this notebook with:\n",
"\n",
"```\n",
"conda create --name=r --channel=conda-forge \\\n",
" r-base r-dplyr r-ggplot2 r-readr r-irkernel r-boot r-rcurl r-tidyr\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Load magrittr pipe\n",
"`%>%` = dplyr::`%>%`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read in XSwap prior probabilities"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"process_metaedge_degree_df <- function(df) {\n",
" df %>%\n",
" dplyr::mutate(logit_xswap_prior = boot::logit(xswap_prior)) %>%\n",
" dplyr::mutate(Lizee = source_degree * target_degree / sum(n_possible)) %>%\n",
" dplyr::mutate(`Chung-Lu` = source_degree * target_degree / sum(n_edges)) %>%\n",
" dplyr::mutate(Kloster = source_degree * target_degree /\n",
" (sum(n_edges) + (source_degree - 1) * (target_degree - 1)))\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"`curl` package not installed, falling back to using `url()`\n",
"Parsed with column specification:\n",
"cols(\n",
" compound_treats = col_integer(),\n",
" disease_treats = col_integer(),\n",
" prior_perm = col_double(),\n",
" prior_perm_stderr = col_double(),\n",
" n_treatments = col_integer(),\n",
" n_possible = col_integer()\n",
")\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th scope=col>source_degree</th><th scope=col>target_degree</th><th scope=col>xswap_prior</th><th scope=col>prior_perm_stderr</th><th scope=col>n_edges</th><th scope=col>n_possible</th><th scope=col>metaedge</th><th scope=col>logit_xswap_prior</th><th scope=col>Lizee</th><th scope=col>Chung-Lu</th><th scope=col>Kloster</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><td>1 </td><td>1 </td><td>0.00116183 </td><td>5.44733e-07 </td><td>5 </td><td>3612 </td><td>CtD </td><td>-6.756596 </td><td>3.355817e-05</td><td>0.001324503 </td><td>0.001324503 </td></tr>\n",
"\t<tr><td>1 </td><td>2 </td><td>0.00234128 </td><td>1.29275e-06 </td><td>3 </td><td>1290 </td><td>CtD </td><td>-6.054713 </td><td>6.711635e-05</td><td>0.002649007 </td><td>0.002649007 </td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllllllll}\n",
" source\\_degree & target\\_degree & xswap\\_prior & prior\\_perm\\_stderr & n\\_edges & n\\_possible & metaedge & logit\\_xswap\\_prior & Lizee & Chung-Lu & Kloster\\\\\n",
"\\hline\n",
"\t 1 & 1 & 0.00116183 & 5.44733e-07 & 5 & 3612 & CtD & -6.756596 & 3.355817e-05 & 0.001324503 & 0.001324503 \\\\\n",
"\t 1 & 2 & 0.00234128 & 1.29275e-06 & 3 & 1290 & CtD & -6.054713 & 6.711635e-05 & 0.002649007 & 0.002649007 \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"source_degree | target_degree | xswap_prior | prior_perm_stderr | n_edges | n_possible | metaedge | logit_xswap_prior | Lizee | Chung-Lu | Kloster | \n",
"|---|---|\n",
"| 1 | 1 | 0.00116183 | 5.44733e-07 | 5 | 3612 | CtD | -6.756596 | 3.355817e-05 | 0.001324503 | 0.001324503 | \n",
"| 1 | 2 | 0.00234128 | 1.29275e-06 | 3 | 1290 | CtD | -6.054713 | 6.711635e-05 | 0.002649007 | 0.002649007 | \n",
"\n",
"\n"
],
"text/plain": [
" source_degree target_degree xswap_prior prior_perm_stderr n_edges n_possible\n",
"1 1 1 0.00116183 5.44733e-07 5 3612 \n",
"2 1 2 0.00234128 1.29275e-06 3 1290 \n",
" metaedge logit_xswap_prior Lizee Chung-Lu Kloster \n",
"1 CtD -6.756596 3.355817e-05 0.001324503 0.001324503\n",
"2 CtD -6.054713 6.711635e-05 0.002649007 0.002649007"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Compound-treats-Disease\n",
"url = \n",
"CtD_df = 'https://github.com/dhimmel/learn/raw/0aae784e83cfaa00d1269f17a3bd3a6c6fdc3a0a/prior/data/degree-prior.tsv' %>%\n",
" readr::read_tsv() %>%\n",
" dplyr::mutate(metaedge='CtD') %>%\n",
" dplyr::rename(source_degree=compound_treats, target_degree=disease_treats, xswap_prior=prior_perm, n_edges=n_treatments) %>%\n",
" process_metaedge_degree_df()\n",
"CtD_df %>% head(2)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"`curl` package not installed, falling back to using `url()`\n",
"Parsed with column specification:\n",
"cols(\n",
" disease_associates = col_integer(),\n",
" gene_associates = col_integer(),\n",
" prior_perm = col_double(),\n",
" prior_perm_stderr = col_double(),\n",
" n_associations = col_integer(),\n",
" n_possible = col_integer()\n",
")\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th scope=col>source_degree</th><th scope=col>target_degree</th><th scope=col>xswap_prior</th><th scope=col>prior_perm_stderr</th><th scope=col>n_edges</th><th scope=col>n_possible</th><th scope=col>metaedge</th><th scope=col>logit_xswap_prior</th><th scope=col>Lizee</th><th scope=col>Chung-Lu</th><th scope=col>Kloster</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><td>550 </td><td>47 </td><td>0.870898 </td><td>0.000557877</td><td>1 </td><td>1 </td><td>GaD </td><td>1.908922 </td><td>0.03577716 </td><td>2.047849 </td><td>0.6824722 </td></tr>\n",
"\t<tr><td>550 </td><td>46 </td><td>0.867094 </td><td>0.000564798</td><td>0 </td><td>1 </td><td>GaD </td><td>1.875505 </td><td>0.03501594 </td><td>2.004278 </td><td>0.6777754 </td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllllllll}\n",
" source\\_degree & target\\_degree & xswap\\_prior & prior\\_perm\\_stderr & n\\_edges & n\\_possible & metaedge & logit\\_xswap\\_prior & Lizee & Chung-Lu & Kloster\\\\\n",
"\\hline\n",
"\t 550 & 47 & 0.870898 & 0.000557877 & 1 & 1 & GaD & 1.908922 & 0.03577716 & 2.047849 & 0.6824722 \\\\\n",
"\t 550 & 46 & 0.867094 & 0.000564798 & 0 & 1 & GaD & 1.875505 & 0.03501594 & 2.004278 & 0.6777754 \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"source_degree | target_degree | xswap_prior | prior_perm_stderr | n_edges | n_possible | metaedge | logit_xswap_prior | Lizee | Chung-Lu | Kloster | \n",
"|---|---|\n",
"| 550 | 47 | 0.870898 | 0.000557877 | 1 | 1 | GaD | 1.908922 | 0.03577716 | 2.047849 | 0.6824722 | \n",
"| 550 | 46 | 0.867094 | 0.000564798 | 0 | 1 | GaD | 1.875505 | 0.03501594 | 2.004278 | 0.6777754 | \n",
"\n",
"\n"
],
"text/plain": [
" source_degree target_degree xswap_prior prior_perm_stderr n_edges n_possible\n",
"1 550 47 0.870898 0.000557877 1 1 \n",
"2 550 46 0.867094 0.000564798 0 1 \n",
" metaedge logit_xswap_prior Lizee Chung-Lu Kloster \n",
"1 GaD 1.908922 0.03577716 2.047849 0.6824722\n",
"2 GaD 1.875505 0.03501594 2.004278 0.6777754"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Disease-associates-Gene\n",
"# see https://github.com/greenelab/snorkeling/pull/67\n",
"GaD_df = 'https://github.com/greenelab/snorkeling/raw/6f9202a6874c64fedeb97489cc6560447b6e9424/disease_gene/disease_associates_gene/degree-prior.csv' %>%\n",
" readr::read_csv() %>%\n",
" dplyr::mutate(metaedge='GaD') %>%\n",
" dplyr::rename(source_degree=disease_associates, target_degree=gene_associates, xswap_prior=prior_perm, n_edges=n_associations) %>%\n",
" process_metaedge_degree_df()\n",
"GaD_df %>% head(2)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th scope=col>source_degree</th><th scope=col>target_degree</th><th scope=col>xswap_prior</th><th scope=col>prior_perm_stderr</th><th scope=col>n_edges</th><th scope=col>n_possible</th><th scope=col>metaedge</th><th scope=col>logit_xswap_prior</th><th scope=col>Lizee</th><th scope=col>Chung-Lu</th><th scope=col>Kloster</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><td>1 </td><td>1 </td><td>0.00116183 </td><td>5.44733e-07 </td><td>5 </td><td>3612 </td><td>CtD </td><td>-6.756596 </td><td>3.355817e-05</td><td>0.001324503 </td><td>0.001324503 </td></tr>\n",
"\t<tr><td>1 </td><td>2 </td><td>0.00234128 </td><td>1.29275e-06 </td><td>3 </td><td>1290 </td><td>CtD </td><td>-6.054713 </td><td>6.711635e-05</td><td>0.002649007 </td><td>0.002649007 </td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllllllll}\n",
" source\\_degree & target\\_degree & xswap\\_prior & prior\\_perm\\_stderr & n\\_edges & n\\_possible & metaedge & logit\\_xswap\\_prior & Lizee & Chung-Lu & Kloster\\\\\n",
"\\hline\n",
"\t 1 & 1 & 0.00116183 & 5.44733e-07 & 5 & 3612 & CtD & -6.756596 & 3.355817e-05 & 0.001324503 & 0.001324503 \\\\\n",
"\t 1 & 2 & 0.00234128 & 1.29275e-06 & 3 & 1290 & CtD & -6.054713 & 6.711635e-05 & 0.002649007 & 0.002649007 \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"source_degree | target_degree | xswap_prior | prior_perm_stderr | n_edges | n_possible | metaedge | logit_xswap_prior | Lizee | Chung-Lu | Kloster | \n",
"|---|---|\n",
"| 1 | 1 | 0.00116183 | 5.44733e-07 | 5 | 3612 | CtD | -6.756596 | 3.355817e-05 | 0.001324503 | 0.001324503 | \n",
"| 1 | 2 | 0.00234128 | 1.29275e-06 | 3 | 1290 | CtD | -6.054713 | 6.711635e-05 | 0.002649007 | 0.002649007 | \n",
"\n",
"\n"
],
"text/plain": [
" source_degree target_degree xswap_prior prior_perm_stderr n_edges n_possible\n",
"1 1 1 0.00116183 5.44733e-07 5 3612 \n",
"2 1 2 0.00234128 1.29275e-06 3 1290 \n",
" metaedge logit_xswap_prior Lizee Chung-Lu Kloster \n",
"1 CtD -6.756596 3.355817e-05 0.001324503 0.001324503\n",
"2 CtD -6.054713 6.711635e-05 0.002649007 0.002649007"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"degree_prior_df = dplyr::bind_rows(CtD_df, GaD_df)\n",
"degree_prior_df %>% head(2)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message in qlogis(p):\n",
"“NaNs produced”"
]
},
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th scope=col>source_degree</th><th scope=col>target_degree</th><th scope=col>xswap_prior</th><th scope=col>prior_perm_stderr</th><th scope=col>n_edges</th><th scope=col>n_possible</th><th scope=col>metaedge</th><th scope=col>logit_xswap_prior</th><th scope=col>method</th><th scope=col>prior</th><th scope=col>logit_prior</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><td>1 </td><td>1 </td><td>0.00116183 </td><td>5.44733e-07 </td><td>5 </td><td>3612 </td><td>CtD </td><td>-6.756596 </td><td>Lizee </td><td>3.355817e-05</td><td>-10.302197 </td></tr>\n",
"\t<tr><td>1 </td><td>2 </td><td>0.00234128 </td><td>1.29275e-06 </td><td>3 </td><td>1290 </td><td>CtD </td><td>-6.054713 </td><td>Lizee </td><td>6.711635e-05</td><td> -9.609016 </td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllllllll}\n",
" source\\_degree & target\\_degree & xswap\\_prior & prior\\_perm\\_stderr & n\\_edges & n\\_possible & metaedge & logit\\_xswap\\_prior & method & prior & logit\\_prior\\\\\n",
"\\hline\n",
"\t 1 & 1 & 0.00116183 & 5.44733e-07 & 5 & 3612 & CtD & -6.756596 & Lizee & 3.355817e-05 & -10.302197 \\\\\n",
"\t 1 & 2 & 0.00234128 & 1.29275e-06 & 3 & 1290 & CtD & -6.054713 & Lizee & 6.711635e-05 & -9.609016 \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"source_degree | target_degree | xswap_prior | prior_perm_stderr | n_edges | n_possible | metaedge | logit_xswap_prior | method | prior | logit_prior | \n",
"|---|---|\n",
"| 1 | 1 | 0.00116183 | 5.44733e-07 | 5 | 3612 | CtD | -6.756596 | Lizee | 3.355817e-05 | -10.302197 | \n",
"| 1 | 2 | 0.00234128 | 1.29275e-06 | 3 | 1290 | CtD | -6.054713 | Lizee | 6.711635e-05 | -9.609016 | \n",
"\n",
"\n"
],
"text/plain": [
" source_degree target_degree xswap_prior prior_perm_stderr n_edges n_possible\n",
"1 1 1 0.00116183 5.44733e-07 5 3612 \n",
"2 1 2 0.00234128 1.29275e-06 3 1290 \n",
" metaedge logit_xswap_prior method prior logit_prior\n",
"1 CtD -6.756596 Lizee 3.355817e-05 -10.302197 \n",
"2 CtD -6.054713 Lizee 6.711635e-05 -9.609016 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"long_df = degree_prior_df %>%\n",
" tidyr::gather(key = 'method', value = 'prior', Lizee:Kloster) %>%\n",
" dplyr::mutate(logit_prior = boot::logit(prior))\n",
"long_df %>% head(2)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th scope=col>source_degree</th><th scope=col>target_degree</th><th scope=col>xswap_prior</th><th scope=col>prior_perm_stderr</th><th scope=col>n_edges</th><th scope=col>n_possible</th><th scope=col>metaedge</th><th scope=col>logit_xswap_prior</th><th scope=col>method</th><th scope=col>prior</th><th scope=col>logit_prior</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><td>12 </td><td>68 </td><td>0.669943 </td><td>0.000544807</td><td>1 </td><td>1 </td><td>CtD </td><td>0.7079273 </td><td>Chung-Lu </td><td>1.080795 </td><td>NaN </td></tr>\n",
"\t<tr><td>13 </td><td>68 </td><td>0.693760 </td><td>0.000534029</td><td>1 </td><td>1 </td><td>CtD </td><td>0.8177570 </td><td>Chung-Lu </td><td>1.170861 </td><td>NaN </td></tr>\n",
"\t<tr><td>14 </td><td>68 </td><td>0.714649 </td><td>0.000523197</td><td>0 </td><td>1 </td><td>CtD </td><td>0.9180715 </td><td>Chung-Lu </td><td>1.260927 </td><td>NaN </td></tr>\n",
"\t<tr><td>15 </td><td>51 </td><td>0.659217 </td><td>0.000549139</td><td>1 </td><td>1 </td><td>CtD </td><td>0.6598069 </td><td>Chung-Lu </td><td>1.013245 </td><td>NaN </td></tr>\n",
"\t<tr><td>15 </td><td>68 </td><td>0.734184 </td><td>0.000511826</td><td>1 </td><td>1 </td><td>CtD </td><td>1.0159553 </td><td>Chung-Lu </td><td>1.350993 </td><td>NaN </td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllllllll}\n",
" source\\_degree & target\\_degree & xswap\\_prior & prior\\_perm\\_stderr & n\\_edges & n\\_possible & metaedge & logit\\_xswap\\_prior & method & prior & logit\\_prior\\\\\n",
"\\hline\n",
"\t 12 & 68 & 0.669943 & 0.000544807 & 1 & 1 & CtD & 0.7079273 & Chung-Lu & 1.080795 & NaN \\\\\n",
"\t 13 & 68 & 0.693760 & 0.000534029 & 1 & 1 & CtD & 0.8177570 & Chung-Lu & 1.170861 & NaN \\\\\n",
"\t 14 & 68 & 0.714649 & 0.000523197 & 0 & 1 & CtD & 0.9180715 & Chung-Lu & 1.260927 & NaN \\\\\n",
"\t 15 & 51 & 0.659217 & 0.000549139 & 1 & 1 & CtD & 0.6598069 & Chung-Lu & 1.013245 & NaN \\\\\n",
"\t 15 & 68 & 0.734184 & 0.000511826 & 1 & 1 & CtD & 1.0159553 & Chung-Lu & 1.350993 & NaN \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"source_degree | target_degree | xswap_prior | prior_perm_stderr | n_edges | n_possible | metaedge | logit_xswap_prior | method | prior | logit_prior | \n",
"|---|---|---|---|---|\n",
"| 12 | 68 | 0.669943 | 0.000544807 | 1 | 1 | CtD | 0.7079273 | Chung-Lu | 1.080795 | NaN | \n",
"| 13 | 68 | 0.693760 | 0.000534029 | 1 | 1 | CtD | 0.8177570 | Chung-Lu | 1.170861 | NaN | \n",
"| 14 | 68 | 0.714649 | 0.000523197 | 0 | 1 | CtD | 0.9180715 | Chung-Lu | 1.260927 | NaN | \n",
"| 15 | 51 | 0.659217 | 0.000549139 | 1 | 1 | CtD | 0.6598069 | Chung-Lu | 1.013245 | NaN | \n",
"| 15 | 68 | 0.734184 | 0.000511826 | 1 | 1 | CtD | 1.0159553 | Chung-Lu | 1.350993 | NaN | \n",
"\n",
"\n"
],
"text/plain": [
" source_degree target_degree xswap_prior prior_perm_stderr n_edges n_possible\n",
"1 12 68 0.669943 0.000544807 1 1 \n",
"2 13 68 0.693760 0.000534029 1 1 \n",
"3 14 68 0.714649 0.000523197 0 1 \n",
"4 15 51 0.659217 0.000549139 1 1 \n",
"5 15 68 0.734184 0.000511826 1 1 \n",
" metaedge logit_xswap_prior method prior logit_prior\n",
"1 CtD 0.7079273 Chung-Lu 1.080795 NaN \n",
"2 CtD 0.8177570 Chung-Lu 1.170861 NaN \n",
"3 CtD 0.9180715 Chung-Lu 1.260927 NaN \n",
"4 CtD 0.6598069 Chung-Lu 1.013245 NaN \n",
"5 CtD 1.0159553 Chung-Lu 1.350993 NaN "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# NaNs produced when probabilities greater than 1 for example with Chung-Lu\n",
"long_df %>% dplyr::filter(is.na(logit_prior)) %>% head(5)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n0QiCIAZM4XF3j3kwjBQGDhRigjaoAxlcjeVTzp9C2pQgiCGCz+drb2/v7u5+5513uru7M6mM\neEDSyfoxU0ff8cTtlGCZIIijkcOMnn799dcff/wx+xoIBADgq6++Uqd7Oe2000pUuEHE5/N1\ndHS89957H330UTKR1AZ1Oo2uedoJp3//9FtvvXWwS0cQBPEtXq/3/fff//rrr1PJlClutusc\nk0858eaHfkTalCCIo5TDyNOHHnrooYceytp4++23q78ee3P9GOX0r3/960cffRQIBGRZNjl0\n7grXieefSNqUIIihg8/n27Bhw1/+8pfPP/9cFEW9QW/xlI2va7ro5gtpcTxBEEcvueTpvffe\ne8TKMaTAMFIbN27E0WK9Xj985PBJkybdeOONg100giCIb2lvb29ra9u8eXMymcSEKZ6RntOv\nOP2KK8gdiiCIo5hc8vS+++47UsUYKuAqrj/84Q9//etfcdzUbDY7nc6xY8c+9dRTg106giCI\nf8IaqzfffDMajcqybDQahw0bNm3aNJrkIQjiaOcwk/vHGxji9LXXXkulUgCg1+udTuf3vve9\n5cuXD3bRCIIgviUQCLz11luvvfZaPB7XaDR6vd5ms82YMeOxxx4b7KIRBEHwQp773+Lz+d5+\n++1nnnkmFo0JggAAZWVlDQ0Ny5cvp2SABEEMHbCxevHFF2PRmCRJAGC1WseNG0falCCIYwMa\nPf2Wl19+ecWKFbFITE7JCihas3bUqFF33XUXaVOCIIYUL7/88qOPPhqNROWUDAB6p37UqFFr\n164d7HIRBEEUhyEqT2Ox2Nq1az/99FNRFJubm2+++eaqqioAWLNmzb59+wRBuPbaa5ubm3Fn\nn8+3ZMmSFStW8OjI119//aGHHkrEEhkhowd9uaN8+Ojhv/71r8n7lSCIIcXrr7/+8MMPRyNR\nURB1oHPandhY0Ys0QRDHDEN0cn/lypVer3f58uWPP/64TqdbtmyZLMtffPFFW1vbAw88cNNN\nN61Zs4btvHr16vnz53M2zXfeeWcsEssIGQDQm/Tu4e7f/OY3pE0Jghhq3HnnnZFwRBAEGWSD\nyeCupcaKIIhjjQGMnnq93q1btx48eFCr1VZXV5966qnDhg0rRZl8Pt8nn3yycuXKMWPGAMDi\nxYuvueaalpaWvXv3jh49GgDq6+v37t0rSZJOp3v33XclSZozZw7PEadNmxYNRzNiRgMag85g\nd9nXrl1LzT1BEEONM844Ix6NZzIZDWj0Wr213EqNFUEQxx55ydNQKHTttde+9dZb6o1arXb+\n/Plr1661Wq3FLdPu3buNRmN9fT1+tdlsI0eO3L17t8ViQScASZI0Go1Go/H7/S+//PIdd9yx\nbNmySCRy1llnXXLJJQM93JVXXplJZ7QZrRa0Op3OWm595JFHqLknCGKocddddwkpQSNotKAF\nAJvTtmTJEmqsCII49shLnt52221vv/32woULzzjjDI/HoyjK/v3733nnnZdfftlmsz399NPF\nLVMkErHb7RqNhm0pLy8Ph8NTp05dv359KpXatm1bU1OTVqt98skn582b9+abb06fPn3WrFmL\nFi2aMmXKyJEj8Vetra2vv/46M5JMJhOJRCwWUx/r008/NRgMVrtVSSoJMWG0GB9++OG5c+dm\n7XZYRFEEAFTPhSHLMgBkMpmBHrqvHX4LAMBpRBTFZDKZTqcLtoCVmUqlMplMwUZkWZYkifNc\nsDCcRhRF4a9SAEgkEupHowAjGo0GTRUG3h6CIPCki1MUpSg3alFqlbNK2Y2K4T7yP25um8lk\nMuvU/H6/JEn2crsQFRJCwmg13njjjQsWLBhoDUiShPU/oF+pwUsviuKgPxRY+fF4nMdIJpOR\nZXlAl6/fYqTTac4uoChVWpQnC6OVFWwBb+9kMslv5NjoVfEshkivmk6nB9QF8PQXPOQlT9ev\nX79q1aqbb75ZvfH6668fMWLEiy++WHR5CgBZ9zS2hmPHjp09e/bSpUstFsuiRYs2bNiQSqXm\nzp27bt26W265xWg0nnjiidu3b2fytKur64033mBGGhoa0uk0BjRl1NbWTpgwIRqN+q3+VCp1\n3333zZo1K2uf/OG/ipIk8TyNSMHlL64R/hMBgEwmwyNPi1USWZb5K6Qo14WnbWIUpUqPmRu1\nKFU6UHGTWx3Ksty3sUqn0263u7q6Wq/Xx+Px66677sYbb6TGqihGitJYiaLIX6v856IoyhB5\nKIpihG5UNYPSqxbloAWQlzxNpVL9Lu684IIL1C5KxcLpdEYiEUVRmEgNh8MulwsA5s2bN2/e\nPAAIhULr1q178MEHASAej1ssFgCwWCzRaJTZOe200/70pz+xr/fee6/D4UA7DJfLde655wKA\nKIq33357wf5VeNuZzebCfg4AkiRFIhGTyYTnUhiKokQikfLy8oItAEAkEpEkKauiBko8HjeZ\n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\n+OADADj33HPZltraWp/PV7rCEcQRg7QpQRBHBaRNieOBXJP7RqNRHbt148aNI0aMUC/uTCQS\nNputdIUjiCODEgDhQQATmFaAliscBUEQRCmJQ2YZAIDxQdBNH+zCEETJyDV6Wl9f/9lnn+Hn\ncDi8YcMG9dApAGzfvr2mpqaEpSOII4LGDcb7SJsSBDHksYLxATD+irQpcYyTS55eeOGFzz//\n/CuvvNLW1vajH/0omUxeffXV7L+tra2vvvrq+eefX/pCEkTJ0c0gbUoQxFGAdippU+LYJ9fk\n/l133fX6669feeWV+PXKK68877zz8PMbb7xxww03yLJ88803l7yMBEEQBEEQxHFDLnlaWVm5\nbdu2F154oaen59RTT8VsokgikfB4PGvWrBk3blzpC0kQBEEQBEEcLxwmqanb7b7jjjv6br/i\niit++MMf8qQ5JohBRN4O2omHTZpGEAQxyMg7QdsEUHiidYI4KsnVP3/11VeH+pfJZNJoNKIo\n3n///SUoFUGUEOl/If1jyDw62OUgCILIifQxpG8FYdlgl4Mgjji55OlJJ520evVqRVH6/e9X\nX311+umn33fffSUpF0GUBpYXSnfeYBeFIAji0LC8ULoLBrsoBHHEySVPp02b9uMf/3ju3Lnd\n3d3q7YqirFq16qSTTtq9e3dWflGCGMpQ7H2CII4KKPY+cZyTS55u2LDhiSee+PDDD5ubm19/\n/XXc6PV6zzvvvMWLF8+aNWvnzp0LFiw4IuUkCF5ImxIEcVRA2pQgcslTjUazaNGiL774YtKk\nSVdcccW11177zDPPTJo0adu2bc8///yf//zn2traI1ZQguBB2Q/CMgATmB4lbUoQxNBFCYLw\nCwDMC0XalDheOYznPgCMGTMGh1Fvv/32devWnX322b/73e+GDx9+BApHEMVCMxwMd4B2NMXe\nJwhiSKNxgfEuABvF3ieOa/KKrOP1ev/4xz/KsuxwOD7//PP33nuv1MUiiKKjv4S0KUEQRwG6\nc0mbEsc7hx89fe655xYvXmwwGF577bVZs2bdcMMN11xzzRtvvPH0009XVlYegSIWC0VRJEkS\nRTFruyzLACBJEo9xNNLXeP5gAWRZ5jGiKIqiKDwW0AjwnQv01jZPZFx2XThrlbNKEf5ahWJU\nKQBIknSoYBr5MERuVFmWh9SNWnCV+nw+QRBSqdT+/furqqoAwOPxsH+x3dhG9XEPW6ocjRXP\nk8X/UGAxhs5DIYoiZ1NzqHbmnXfeAYDy8vKGhoa+F5FRlIcC78Oh0FihBa228LjQ1Kv2NQJD\nplcdaIXw9Dg85JKnPT09N95441tvvXXuuee++OKLuNL0j3/849q1a2+//faJEyc+/fTTl112\n2ZEqKi+yLKdSqWQymbUdr1M6neZs8aH32hdcPLTTt4QDQlEUTgtYEk4jkiSl0+lMJsNjAQAy\nmQxPG4fPM+e5AIAsy/y1ymkBb9RUKsVzo2JHzlOlrM/gOR1FUfgrBLsN/hs1nyr1+/1ZWyoq\nKnCjz+fz+/0ej6e7u9vlcu3bt6+iogIAUqkU27lvIXNfAlmW0+n0oX4lCALPk4XvBvwPxVBo\nrLBC1FVdmJF+9ccf//jHaDQKALW1tRaLJZVK4ZU9VDEymQxPF1CUxgqVBL8R/nYGqFftUxL+\nLkBRFP5eVRCEAXUB/K9MhZFLnjY3N0ej0UceeeSOO+5Q32Q33XTT2WeffdVVV11++eXXXHPN\nSy+9VPpyFgGdTme1Wu12e9b2eDyeTCYtFotef/ix5EOBt11ZWVnBFkRRDIVCBoPBZrMVbERR\nlFAo1PccB0QoFBJFkdNINBo1m80GQ+GpTlKpVCwWM5vNJpOpgJ/Lu0E7FjKZTDqd5qlSAEin\n0zqdjrNCMpkMf5Wm02mr1arT6Qo2kkgktFqt2Wwu2EImkwmHw0aj0Wq1FmxEluVIJMJZIcFg\nUJblgRrBQU02EhaJRA5bpT6fD2+hQCDgdrtxI7uvIpEIAJhMJqPRKAiC2+3GIqXTaWahbyFz\ntzY6nc5isfT9VSKREEWxrKyM58lKp9OSJFksloItoHrW6/WcVzAQCHBaCIfDmUzGZrPxyKBY\nLGY0Go1GI9vi8/na29vLysqwY85kMoIg2Gy2Q5U2nU5Ho1GTyVRYFyC3gbYBRElMJBKcFSII\nglar5e8CbDYbz+gp9apZDLVedUBdAM8Rech1/1VXV2/ZsuXOO+/s++Q3NTVt3rz5rrvu+t3v\nflfK4hFEIUj/C+kbIUMxeY8nfL30+5VtzPowUAKBQI7/ut3uHFPAxNDH5/Nt2bKlvb0dAHDo\nlH0o0ZWVNkN6IWRWlcI2QRzF5Hqz+eyzz3JIbIPB8Otf/3ru3LklKBVBFM63eaFOAq6lT8QQ\nxufzqYc81XKzryRFYVGwJGWwoVPE4/H4fD632202mwVBgO8qGNKpRx04aIqfQ6HQxIkTQ6FQ\nJBKZPHlyU1NTKY4obflnDCntNBic9X0EMVTJJU/zGf4966yzilcYguAlK/a+VPgqHWIQYAoy\nh7Zj+/j9flmWD7UcsIigDGWlUn/2eDzJZNJsNjscDvXsMHF04fP5YrFYMBgEgFAoBABOp9Pl\ncrlcrtKNiH8be3856L4Hg7TAjyCGKIWvCyGIoQblhTqK8Pv9uLCvX1f3UsBUJgx8aJOGRY9h\ndu/ebTAY4vE49GpTpEQjpkiWNiUIIguSp8QxgtwOwv0AZjCtoPimQ52sufjDCr4sfyZcABoO\nh8vLy3FLX+nZrxIlZUlkob4VvV4vADgcDqfTOX16CeOOKt+AcDeABowPUnxTgugfkqfEMYK2\nAQz/BtqTSJuWCuzImSI8MocLBALBYLChoQF6hazH4+nXPylLepISJXKgfuFxu93RaDQUCnV3\nd9tstrq6OrzfSodmGBh+BJo60qYEcUhInhLHDvrrBrsExxbqcU21zzt/nBGPx8PcokGlRPEr\n80BiW9QRndAbCQC0Wi1PTETiuMXn8+Edxe7qzs7O7du3Y+RB9fx+6dBfcQQOQhBHMfkGNuvu\n7n7iiSfY14MHDy5btqy7u7s0pSIIorTkXujJQjIVvB6037hOatClqe8YZ19tmgUNixI8oDYF\ngICKSCTS2Nhos9nUb00EQQwiecnTXbt2nXTSST/5yU/YlkQice+995588sltbW0lKxtBEMXH\n7/cPSHrm2O1Q/1Jvb21tVW9Xy9bcQjMripMa9sMj4LZPHDPgjYfLRXBLR0cHAOzZswcAotEo\nRk13Op30CkQQg05ek/tLly612Wzr169nW0aNGvXll19eeumlS5cuff3110tWPII4JEoXaGoH\nuxBHA2qxmJUrKB+3JEQdXCkcDvv9fszp0m9meTbwGQwGXS5XPmK03yPih34j+3g8Hp1OR5P7\nRP7gbYn3ZDAYDIVCXV1dXV1dBw8edDqdBoPB4XDU1dWVwimKGiuCGCh5ydNNmzatWLHi1FNP\nVW+cMGHCkiVL7rnnntIUjCByIf0vCA+AYTHo/2WwizIYFBwgKbdBZi3LEV79OSvjM3b5ONKZ\nJXbZGFVumP2+MpQGsQh+slY2u1wuHDRlYLbShoYGl8tVimBS0mYQ7gHD/wH9NUW3TRDHLHnJ\n03g83m/ec71ej7HiCOJI8s+8UAbQ1g12UQaDgUZlyqKioiIWi+HnrBhMfa2ptSl28JlMBlM/\nQ69bPf5XPRfvdrv7+jnlgGQoUSL6rj9hd+y2bdusVms8HtdqtSeeeCKUJtApywulKW0wAII4\n1shLnk6dOvXFF1+cP3++VvvtWtV4PL5mzZopU6aUrGwE0Q/HZ+x9zGojCILL5eI05ff78W0T\npWe/0rBvbnpUosFg0GazqT331eVRm3K73WqRynIs4VdZliORCOeJEMRhUb8mqd+mIpEIG1sZ\nN24cAJRiTp9i7xNEweQlT3/xi19cfPHFJ5xwwvnnn19dXZ1Kpfbt2/fWW2+FQqE///nPpS4i\nQTCOW22q/qzONZ8PatW4d+9e9pLZ2tqKsXXUYZtA5dqMuN1uloj8UGbhENHvaViUGETUDw7e\n0hg0qqura8eOHRaLxWq1jhs3rqqqauLEiUU/OmlTguAhL3k6d+7ct95662c/+9nq1avZxsmT\nJ69bt+6CCy4oWdkI4jvIOygvFABfck5Gv2GbMMgOAHR0dGDOcdzOPuAAalVVVWEHJYgjTN91\nJh0dHbi4xWq1qrcXF7mD8kIRBBf5huW/8MILL7zwwoMHD+7btw8ARo4cSeMixBFGewLo/wV0\n5x012rRYDkxqPZrbbG4feRwW1Wq1OLmPE53oyIw7sL7c6XSGQqG+210ul91uZ7EhqREghhrq\nRyDrwcFJgF27dh04cAC32Gy2+vr6UoQn044G/TzQnkTalCAKZGBZoyorKysrK4t17O3bt//8\n5z/P2rhw4cKLLrro1ltv7ezsZBvNZvOrr74KAGvWrNm3b58gCNdee21zczP+1+fzLVmyZMWK\nFdRZHuNowXD7YJehIHw+n3rd9kB/CwAej8dkMqXTaUmScu8JvbP2+DnroXC73SwpDobXgUOM\nHjmdTtyeZaG8vNxgMJSVlRV2OgRROvo6+aljnHm93ra2NmsvjY2NDoejqamJeQoWEw0Ybi6+\nVYI4fsglT8ePH3/dddf97Gc/Gz9+fI7dvvrqq8KOPX78+Oeee4597enpuf/++9GDMhaL3XTT\nTaeddhr+C7v2L774oq2t7ZFHHmlra1u5ciVbabB69er58+eTNiWGAgWnWcptzefz9Rs9o++e\nLCMOALjdbiZV1WFEs0yxtaesR8cIO2rHKfYhK7AUQQwR1GumWaQz/IpRTqPRKE7oNzY24gzA\nnDlzBqmwBEEchlzy1Ol04hiJ0+ksxbENBoNaUz7++OPf//73R44cCQDRaHTYsGFZirOzs3P0\n6NEAUF9fv3fvXkmSdDrdu+++K0kStTLEkSH3fH1h2rTfyPb5/1AdeVTtm+xyudQLTPstG87a\nq7Wpx+Mhxybi6MLn82k0GvXdzl7ScO3Kzp07Y7FYPB63Wq02m83hcEyePLkUYaQIgigWueTp\nxx9/nPWhdGzcuLGnp+e+++4DgEwmk06nN2/e/OKLL8bj8YaGhn/7t38bPny4VqvFmU1JkjQa\njUaj8fv9L7/88h133LFs2bJIJHLWWWddcsklpS4qccTQBLVgH+Qy4JBMdXU1DFx9qjMt9asU\n89R/+Nt4PC4IwimnnIICNGtdXSAQQH+mUCiE75PqRaXscIlEQqvVYtRSLAl10sRRTXt7u9Pp\n7Lt+lL2qtbS0xGKxzs5OTJlWU1NTX19f9NteE9SCtbgmCeK45vBrTwVBmDFjxr333nvxxReX\nqBCiKK5bt+7qq6/GeIqJRMLpdCYSiX//93/XarW///3vf/aznz355JPjxo1bv359KpXatm1b\nU1OTVqt98skn582b9+abb06fPn3WrFmLFi2aMmUKjr8CwIcffvjLX/6SHaWqqioUCmUldWSE\nw2GeU1AUBUvOYwQAUqlUOp3mLInf7+e0AAD8RgRB4LGg/9BU9htX8o5Y7DSulWGKogy0SrPO\nHd3Vs6ReIBDo2yPiKxN+rqio8Pv9Go0GDbLrojbe3t7OFoCi/SwL+BWnJlF0tre3o2XsfdlC\nUvUUB250Op1YbKaMNRoNXlwW8VF9uAGRTCZTqVQBP2QMnRu1KMsVmLtYnuR+OkRRxMyx/f6X\nP2SsoiiYk5YHQRD4K5/TQltbm9fr9Xq9DocDHwGWsBQAurq6cF1pZ2cnO1+8UurjFtBEZKHb\nZix72CUsjCfOGeQKURRFkiR+I3mmfMvNoPeqaIF61SxwJiH//Tlrr2AOL0+NRuP+/fvb2tpK\nV4gPPvhAluWZM2fi1/Ly8pdeeon996677rruuus+/PDDObT3EgIAACAASURBVHPmzJ49e+nS\npRaLZdGiRRs2bEilUnPnzl23bt0tt9xiNBpPPPHE7du3M3mq1+vt9m8H37RarUaj6euhoiiK\noigFe64wIwCAWqRgC4qi9FvCASHLMr8F/gqRZRlHuAv7ue5vRsNKq6JXNHbgKQlel8Na8Pv9\nTGuyW50pQiTLSL/evn6/n+2WtT+7Lmx7MBjU9sK240a2Q0VFRWVlJe6D+eW1Wu3XX3+NfXAk\nEkFXp3A47Ha7mTUWEwqFrLrAdKMWvRisQgZUq4fdmd0YfY/FX2CeZxPBiazBrfzPPvsMV5Rq\nNBqn08meI61W63a79+zZo9FosAvQaDQWi6WystJqtTocjiwHX87GSrvNYPi1VQMaxc51afJs\nrHIzFK4LDKVeFS/uoFdIsa4L55PLrktxG6sSkZfn/tNPP7106dJRo0Zdcsklev3AnP3z4b33\n3jvrrLMOdeXMZrPH48Fedt68efPmzQOAUCi0bt26Bx98EADi8TiOiVosFvUYxmmnnfanP/2J\nfV24cGF5eXnfpDvxeDyZTNrtdp5Tw1dzHndmURRDoZDJZLLZbAUbURRFHQ+oMEKhkCiKnEYw\n76U6vVD+SBtAeBTAAOm7I5bpZpOp8Al+XCiSo0pbW1vZh4aGBgCQZRnPvby8HP8VDAb1er1a\nqh5qUl7tVt93tBW3sH1QbsqyXF5eztLNZ3k4SZLk8XgkSZJlGSf37XY7lgR/CAD19fXt7e31\n9fX4E7TGCplVjKzJ/QLIZDLhcNhsNrOwkQWAWaM4F7UHg0F2sQomEolYrdaBZjpQk0wm4/G4\nzWYzGo35/yr3o4Gv1n1PLZFIJBKJrMRdAwXjPxxqHikfZFkOBAJGo1H9/l8A7KEYKD6fr729\nPRQKtbe3V1VVoehkdz4+WXa7HfVNNBodNWoUANTU1Dgcjr6OCrFYzGg0DujyMaQtIDwEAJD6\nScR8lqGsrPAKEUUxkUg4HI6CLUDvGzJ/F+BwOHi0FPWqWQx6r4qkUqlYLGaxWAbUBRT2aPCT\n162zYsUKnU53+eWX6/X6ysrKrLKqI0AVQDKZ3Llz5w9+8AO2Zc+ePW+99dbChQvxMiSTyQMH\nDtTU1Kh/9dRTT1122WXDhg0DgLKyslQqZTabk8kkrhEkjl5YXijNckFqyAAULqRykJUYCWey\nspInqcFm5VBxRhH2X2Y5y+tIvZvP51NnWQwGg+p90AKbX0N3pc7Ozr4zO2h/+vTpaLDfQhLE\nMcbWrVsjkQgORvT09AwfPhy3o2Z1Op07d+5UB+itqampq6uDPm9rnLC8UJpfZKRmAaBw3UAQ\nRBZ5yVNU/eeee24pStDR0SFJEr7dIm63e/PmzaIozp8/X5Kkl156yeFwnH766WyHTZs2hcNh\nthZ2woQJLS0tZ5xxxo4dOy666KJSFJI4MsiffZsXShgrA3c4Qp/PJwhC1qsz06bqRZ8MdSx6\nJiUNBgMbTM2TftMyMbKCMgLAli1bXC4XC4DPVrsGAgHcuaKiIp1Ou1wunU7H1C2oPO4HVDyC\nOBrBcVP1lurq6pNPPlmj0aA2xY21tbXQu1DnpJNOwuUuxXWHkv/xbV4ocYoMA1t7TBDEYchL\nnv7tb38rXQnQfUQ9SWS32++///4XX3xx8eLFBoPhhBNOePDBB9lYdCQSeeGFF5YvX87WQyxY\nsGDlypWvvfbazJkzMfIUcZSinQS6M0D/A9BOAuByvAHoL0Y3wkRhVtJOHH0suA9Tj6SqUylC\nb1j+Qznsh0KhSCRSV1fHguSrJz37HdAlSUoch7AnyOl0RiIRu92u1Wq/973v4eovl8uFj5LT\n6WROUQDQ1dXFckwUEW0T6GaB7nzQTQdxcFxHCOJYpvgLSQfKmWeeeeaZZ2ZtbGxsXL58eb/7\nOxyOZ599Vr2lrq7uscceK1X5iCOJCYwP8NroN/yTWqFmpeHGCE05pF4gENDr9erR0765Q7MW\nBqjjj+Ihdu/ezRQnK6Hb7e7o6IhEIg6Hw+v14vwjlCYJOEEc7eBji9P3kydPxkXhAODz+b7+\n+msA6OrqstvtXq/XbrfjljFjxuAq3uK/y+nAeE+RTRIEwRjMrFEEURQONSoZCATYqHzW6k8W\nyp5FDz1Utvq+Q7BZuUP7/gTFZdbkOysS9E7c42719fUYB6eurq7fhXE0REoQuCAHHxx8ZNjr\nXzAYVBTF5XJ1dHTgnD4G3mKue5zORgRBDAqDmTWKIDjJGijN+up2uw8V0pLN4OcTaR8HaURR\nhP78n/qmbuq7g8fjwU60bzRBt9vNhCz7OUlSgmCwxeIYT83lcrG3uz179gBAR0cHrvVCf6me\nnh7olad2u70UQfgJgig1QyVrFHF8okRBM8BILEwOsjSealGYlUvJ4/H0G1hKPeBaQCbSvukT\nUWJiYTweT2trK4sN7na7fT4f9qn9OmOByg2LIAg1Wb5QTJiyiX58bwSASCTS3d0NAFarFaOO\njxs3zul0FkubFtBYEQRRMANYe+r1erdu3Xrw4EGtVltdXX3qqadiXCeCKAxpA2T+A4wPgnbq\n4XfuKyL7xoFiDkPqGfl+PfezPmcNXuZOOsqc7nF/TCWqnq/3+XwoQ3HaAfdkoz5wiHl/giCy\nYPFN2Qwecx/Ez3v37rVarXa7ncWZisfjVqvVarXabDan0zl9+vSilETaAsJ9YLwHdDOKYo8g\niMOQlzwNhULXXnvtW2+9pd6o1Wrnz5+/du1anujcxHELi296KPx+v8lkws/qYPVZkjRrQpwt\nIc3SoLmFYF9hysZHcaGqXq9Xr2Dr1/WejZX2ewh1cACMY5qjPARBsHFT9eqyhoYGnKbAryNH\njgwEAk6nU6PRRKPRAwcOAEA8Hp88eXJdXR0m2uCHxTclCOKIkZc8ve22295+++2FCxeeccYZ\nHo9HUZT9+/e/8847L7/8ss1me/rpp0tdSuIYg2lT08PZQ6e4zozN3wmCwGJuI/jfvhP66nHQ\nLAtZb1A4+Y6fm5qa+h2XZR88Ho/b7WZZzvGHzKcKu0av1wsAmGIUD80WyUGvJK2oqCB/fILI\nE1wew9bDAAC+/m3dupWp1VAohO+NoVCotbUVx03xLzoaFuUlkGlT4zIaOiWII0de8nT9+vWr\nVq26+eab1Ruvv/76ESNGvPjiiyRPiQGRQ5ui+MMOqd9R+X7XaDLJ2N7ezpZ1Zi0PVf+KJViC\n707uQ5+xz2AwiMb1ej0TtWqvYehNAAjfHeNBAd1vsFWCIHKzZcsW6NWjuGYGh1HZWyKG2fd6\nvfF4XJZltnonHo+PGTOmtra2WEH4SZsSxGCRV1LdVCrVN08xAFxwwQWYFZcg8kTaDML9ACYw\nPfodberz+bBPQrI83LMkaauKvtPxiFposiWh+XhBsWN1dHSo7eBwTkdHB/aabLlqfX290+nE\n/hJUMQFo+p4gCgAfUlxvykZMd+7c2dXVBQDRaBQ/BIPBuro6jL2P2aEAANehAkdyDTXyFyDc\nDQBgfJC0KUEcafIaPW1ubm5vbx8zZkzW9l27dp188sklKBVxzKKdCNpJYLgJtJO+3Ygdkjpq\nDJOnFRUV+IGpPdyZucDnGJXEwFKYp17tLKX+CYtRCgBsTVtTUxMbv1EPrKJg7XuUrPWvJEwJ\nomDYE6f2iLLb7eiVDwATJ05E2RqJRHp6eiorK30+n0ajqa6uBgCHw1GsXkk7FrSTQf8D0BXH\nvYogiAGQlzxdsWLF7bff/thjj82cOVOn0wGAJEnvvPPOypUrX3nllRKXkDh2+Kc0/DG43W4P\n5NJwDQ0NNpuNuUZB7ww+A/unUChUX18PvYHup0+fftiIUeplqerd1Jq1tbWVqWS2hBR6Q+hj\n8dQ2SY8SBCdZ741MmLa0tKAwtdlsdrudLaTBFqChoUGW5YkTJ2Lc09ra2vr6+qI9j2VgonSE\nBDFI5CVP77777u7u7nPOOcdisVRVVel0uu7u7kQiUVtbe8011yjKtw6NlEGKOBTq7qffsErq\ngUwA8Pv98Xgcp+rUI6bqMRWn09nR0VFfX88UZFZ2qEwmk06n9+/frz5EX1hgxSzdyXybDAZD\nJpPJ8scaYAUQBHFIWOPAXgjxeUdteuDAAZvN5nA41Cu80VW/qqqqtrZWo9HgAhuKwE8QxwZ5\nyVNJkhoaGhobG9kWinhKDAhcuImf+walZ0OY2LWoRz39fv/w4cMDgQCGF4XegRP8q3aNh0ME\nkPL7/aDq89BVn60cxc9sOQGb3FfvwwoJpEoJogS0trbiypmsGFIbNmyw2Ww9PT1WqxVHRgEg\nGAx6vd7u7u6amppEIhGLxSKRyJQpU0iYEsSxRF7yVO2zQhCHxefzxWIxk8lUU1MDKfDFsifZ\n+45iZi0tzbKG6z7ZuCn2Uig3+3XVz3KZt1qtbLeswFWsU2TGUbOqQ5MWkFaKIIg8YWksoHdu\nhOVgw40YYz8SiWAmNnz8u7u7u7u7tVotANTV1RUnalsKwFwEMwRB8DOArFGSJGEUj6zt6vdd\n4jiHreM0Go0A0POmT/wtGJYB2L71fFIPcvSr/DC0oSAIRqMR/0Lvuk+MMoP6Uj3SiT88VBfF\nOj+2fiDLoQrXseWwQBBEKWDpf1k/gv6OLS0tANDd3W2z2caNG9fV1VVXVwe963kikQimLdVo\nNFVVVUUpibQFMg+C8degnVAUewRBcJGXPN29e/cNN9ywefPmTCbT97/qtafEcQ7KvmAwaDQa\nq9uGZ1ZChd0TjfvABqDKl53bAo5lWiyWUCg0cuRIjB2jDjWlNsLSRKkLgLCNTBkzXcuGYZi3\nE6gWntIMPkEcAdra2tTdB1tjEwwGHQ7Htm3brFZrLBbr6urCNejMYR8AMAI/ANjtdv4I/MoW\nrXAfgAaUKI8ZgiCKRl7ydOHChX//+9/nzZs3fPhwvX4AA67E8QNOmrMlnqH3o5X/VwdGMD0E\n8ZHghn8m88Tgo2xZZ1aSUiYcASAcDrOouv36y6t/Bf3lO/X5fOXl5W63+5tvvmFGWOwqzI4I\nKv8nLB5pU4I4MoRCIbU8xScUB0ej0SgAxOPx6upqdNj3er0OhwP/FYvFbDabzWZzOp2SJPGu\nOv1MJz+gBwDjMtBN47JEEESxyEtrfvLJJ6+99trcuXNLXZqSIkkSS4yuBpcrRKNRDE1SGGgk\nnU4XbAGb6XQ6LYpiwUYAQJKkvuc4UAugmu/OAXodVVRU4AfsOaLRqLvdo/svUOxK+bKySH1I\n33ubhUKhcDgMveMf+BdDlUFv57Rv3z50esAKSSQSOp0O98HfQm8wVNz4+eefoymXyxUOh5ll\nnC50Op2Kouh0OjwdHJeNRqNOp5OZZaFVMUdivycuiiJnrcqyXJTrEolE+G/UVCpVsAV2o/Y7\nl5I//DeqLMuKovDXKiqhgsEKicfjiUQi/1/lrj1RFKPR6KEaq1gsxnMPKIqiKArGA+Yhk8kU\nXPl+vz8YDIbDYXxsy8vLPR4PvprGYjGMpIHnmEgk6urqwuGwVqtFL/5EInHw4EGMMFVbW9vQ\n0MBahgLQbjPof2UBgMzSePqEDBR0QngPJJNJzi6Av5VQFKUoXUA4HOZvZ4ZIryoIwhBpvfmN\niKLIX6WJRGJAXQB/W1EYeclTm812qIGrowidTme328vLy7O2JxKJZDJps9l4BoZxnK+srKxg\nC6IohsNhk8nUbzLPPFEUBdv6gi0AQDgcFkXxsEZ8Ph/2EJlMBj+Iomi3233vBfXPW07xTNY9\nJBqn6tnO+EEURbfbffDgQegdtnQ4HDhsibrcarU2NjZGIpFhw4aZTKaysjKj0Yj2Gdi14/6Y\nz9But6Nl3Ihu/na7PZVK2e12/C8ebtSoUWycNc+BUr/fj6m986zAfgkGg5zXJRaLpdNpu93O\nBH0BJBIJrVZrNhfuAJLJZCKRiMlkslgsBRuRZTkajXJWSCgUkmWZ00g0GrVYLDxVmkwmE4mE\nxWLBRdJ5YjAYcvxXr9fbbLa+p4bHslqtuX+em3Q6LcsyT2Mly3IwGDQYDCyb6IDApgMbGVEU\nMQepKIrYSlitVlmWMcZ+LBZrbGy02Ww40YF9vCRJHo/HYrHU1dVho+1wOArrs+WtIPxKAxrQ\n3Jexzyj8fk6n07FYzGw2c3YByWQSlzEUTCAQ0Gq1/F2A3W5Ht7PCGFK9qtFoPFp61dygwzHP\ns59KpeLxeFlZ2YC6gAG1bEUkr1vnuuuue/755x966KFSl6bUaDSaQ7ViOf6Vp2X2l8cCp5Fi\nWTiUETaDj1+zXlr+OQw5WTP6hKbMjYlwTdjgNwCAx+NRnx2r6lAoFAqFOjs71Y7z+K8pU6ak\n02mTyeTxeNTB+UGldPFwFRUVrEgVFRUajSYYDGo0Gnz7x44NJS/2cBqNZty4ccWqkCNsAYpx\noxblVodi3O2lu1EHaqEo51KU01GbPSYbKxZDCgBcLheOb7HHtqur6+uvv7ZarTt37mxubh4/\nfjz66Ws0Gq/Xe+DAAQBA5YrrdqqrqzOZTMEVom0AbT2IV6YM07SDfg8cSw9FUYwcJ73qQC0M\n+o16xMhLnv7qV7/613/919NPP/2MM85gM6GMpUuXlqBgxFAky+FdPQz5rWpsckf/w7e3a68x\nYMSOhCV8Yvk/Uddu3boV5+IZbAoed47H436/32g0BgIBFhI1KxypWi6rw6My3G43vjrj6tIi\n1gZBEANF7eOIa0/r6+vZYxuLxZjPU09Pj91ux3/hmhz2Q7vd7nQ6m5qaeKb1AUDjAtNayCRE\ngMEZHyII4lDkJU9Xrly5fv16APj444/7/pfk6bENikuWsQl65WNWoiam/HD/UCiEAV/UijbL\ncR4dctWT5mgZxStbcoQWskJQoSk8qFqSYuYY5gLsdrsFQSBVShCDTmtrK2YoxSUBtbW1uDQ8\nGAyyJeOdnZ0Wi8Xv90+YMKGmpgZ9ofBfsVisuroa43jU1dUVbb1Z4TPYBEGUkLzk6eOPPz53\n7tylS5eS5/7xBhOFatcidQR7tfLLct4PBoM4esrAIU8Ujk6nU+0gVVdXx36F0rOioiIej7MQ\nqgDQ3t7O9sHy4OGYNmWHBoCGhgaW1LRElUMQxIBwOBzod19TU+N0Ovfs2VNXV7dz5062w+jR\no9HJLB6Pd3d319XVOZ1Or9fb0tKCr7s2m60okaQIghji5KU1/X7/o48+OmECRSs+vlBnIkVY\noqbvuBaJAPrvjG5m/Qp6BWVHRweuJEMcDgfLUqgeCwkGg8FgcMSIEcFg0Gq1qq2xVWtOpxPF\nKGplHC6lwKUEMTTBJac4YYJzJg0NDbjktLa2tqurC73yDxw4MHnyZKvVWlNT093djcq1p6cH\nAOLxOGrTyZMnFx5JShxQLhqCIAaNvJ7USZMmYeQg4vhBPW6KEZrwK6Z9woHSQCBQ/qW7/A2P\n6bHsnzudThz7ZEagV1Oy4BpMqmbN07ERUABwu9193QaZHmVGcFUrqVKCGOJEo1F0Tm9vbw+H\nwzghg1P28Xi8qqqqra3NarXW1dXhzH53d7fVasVpfbvdzpO/VNoCmVVgWgGa2mKeEUEQpSAv\nebp69eq77rrr0UcfPfnkk0tdIGKwYF5HOp2Oxb9gSnH69Ol995Q+gswz4DP5hvd44DvT+N+u\nPcW+BEc9UenW19ezgPwej6e1tTXL2wkJBAJer9dqtarlKVtdkCVhSZgSxNAEF6PjAnH1snV8\nvfR6vQAQj8dRgwKAzWarra3Fl9hoNIpuUrgdlwAV9rBLm0G4B0ADSjfJU4IoCaFwZM/erkxG\nrBsxvKoy241+oOQlT3/yk594vd5TTjnFZrP19dzv7OzkLAQxFFCv7JQkiYnFrEykPp8Pg2Y7\ndrkOPhE8qA9WLXEFVNoUszGxEOXoTY8LTB0ORygUwrFSlqUJpSr0zsiztKiCIESj0c7OTgzz\nxoJPYRpSFgSAhClBDFl8Ph9bnINphIPBIDYIDoejq6sLAGpra6urq3fs2FFZWYk5ovBh37Vr\nVzweP3jwYGVlZTweHzduHE7dFFAMaQsIvwAAMC4D7SnFOz2CIAAA4Juegz9ftuLd9/+GwYkB\n4LRTp/76/qWNY0YVbDMvearVahsbG8eOHVvwYYihDI6GMp8nDFGuln3s87fjpp9B29oO0IPn\n353hmmC4/duko7hDOByuqqpiXlDY30Cvb74atgCgtbW1qampqakJh1vC4XBtbW0mk2EjLllu\nTyWrD4IgisPWrVvZZ6fT6Xa70U8/Go12d3fH4/HGxsaurq5YLDZ69Gi2Jz7p6OCP0/o1NTX1\n9fWFa9OfAyhgXA667/GeEUEQWYTCkX+Zf6NGAw/eu2TihCaDXr+r7esnn1l32VU3/fWPLw2v\nqT68if7IS55u3LixMOvEUQEKRKYgoXeeHSWgz+fDdahMRzp2udqe7ii3OKvucYUrg2o7bGlp\nV1eXx+MxGAy4SJQ5++PYar9RS10ul9q/qry8/JtvvlGnDGG/Im1KEEMfn8+nblWgtw1B/30A\nsFqtbW1t6KrPhk6j0Sg6UfX09LDQHw6Ho7Alp9InINwNoAHjg6Cbfvj9CYIYKE8+s87hsP3p\nlWcsvf31xAlNl1xw3oXz/s8TT7/w0H13FWY2lzwNhUK5M/W1tLRs2LBh8eLFhR2bGCzUcfKZ\n1GNe+VVVVZgaVK1K2WR6IBDQ1ICz0qm/DsKVQa/X63A40FdJfQi73R4OhzGPNvQ6M4FK46Jn\nFY6moHhtaWmpq6sD1YJXh8NhsViyAqwSBDH0YXE/1F6V0Oslabfb0R8fAKqqqg4cOBCPx1kU\nZBxPBYCenh6r1Tpu3Lj6+vrCHn/tcNBUguHHpE0JolS8/e7Gny7+keW76WcNBv2im6779WNP\nFmw2V0hil8u1du1a9jUWiy1dupQpGwDYtGnT7bffXvCxiUFBHS4qyycpa2kXKsiOjo5gMIjr\nTXGwM+wIGpdBxWkuAMDAhACAu6lHSnC9KZuUZwK331EQ9JBQ/xyXBEybNq2pl6JWA0EQpWLL\nli3qRB4YAA5XnXZ1dXV1dUWjUavVevDgwYMHDx44cGDMmDFjxowBAKfT6XA4YrEYekRVV1eP\nGzfu5JNPLvjx14wA83+Bbkbxzo0giO/S1f3NCeMb+24f2zD6mwMHCzY7gIwZsVjs4Ycf/vrr\nrws+GDHo+Hy+jo4Or9fLAogCgMfjcffi8/n8fn8gEEAV29LSEolEUDuiQnW5XA0NDa7Kb8dK\nUX2iSHU6nV1dXU6nc+TIkfhf7KX6TfHidrvb29tx6BRHTdQDLW63u2iJYQiCOFL4fD6v1+v1\netEXisWA27lz565du3BYtLa21mazjR492mKxAABuRNdJNGK1WjEXsdPp5J02oUCnBFFKDHqD\nIGQAYHd754RTzmXbU+l01pDqgKAH93gBvZpaWlrwayQSUedYQid6tjOLeA8ALOmoOhyMOlS+\nemlpKBSaOHFiKBQaN25cVVVVdXU1W13KDsdCBGzdupXFmskSph6PJ5VKYadFEMTRgs/n27Bh\nA8bYB4COjg4MR4iNic1m6+npsdlsOH2P8aSsVms8Hq+pqcH5FnSZAoDq6uqJEydmrRoiCGKo\n0Thm1PYvd41vapAkKZFMse3vbfxobMPogs2SPD32YblG1RtRdOKUmXopKtsBV4X+84vy7eR7\n38iFam0K353Nh+8KWVxdunPnztraWlAtSMWdWSTU4lcBQRClB6PORaNRdLqPRqMOhwNnXRCU\npD09PY2NjT09PQcPHmxubkZ3KHSWwgWpmDWqrq6ukBgdCoCmmCdFEERuZp8788Xfvf6vl16g\n3vjf//P+k79d9/CynxVsluTpsQwTpiyoEyZiwWyiTJsylYkDnDiGAQANDQ3t7e3SZxB4J+RY\n4Ohr3+VyqRcJRCKRyZMns6/ouQ+9K1xDoRCbvMMyYHR9FiWAhClBHNW0t7d7vV6c9KipqcGN\noVAImxRMFgUANpstGo2iV35PT4/dbsf31V27djFTmPV0oG2CtAXE58D4H6ApL8b5EASRB/92\n9RXrXnnjhFPPV2/8x662Hy344RXfv7Bgs4MsT2+99VZ1VH+z2fzqq68CQCwWW7t27aeffiqK\nYnNz880334wpiNasWbNv3z5BEK699trm5mb8lc/nW7JkyYoVK0jf9AXlI0u2xCbTUZti0Gw2\n/InLxXQ6HXYkgUDA8Q9X5kUQtWBIZ9uEXu8lHFh1Op2zZs1CNYyyNR6PGwyGjo4Olry0vr6+\no6OD9VIMunAEcbTj8/lCoVA0GkVhilH38S8KVpvNZrfbY7FYLBbr7OzEVadjxozBQdaurq4D\nBw7gXD8Ovg4U6WMQfg6gAeVr0Ewt7skRBHFI7Dbray89+VVrOwBotf/0aFp8ywL2uTAGWZ7G\nYrGbbrrptNNOw6/sZFauXOnz+ZYvX242m1944YVly5b95je/2bFjR1tb2yOPPNLW1rZy5crV\nq1fjzqtXr54/fz5JnCxwoo2NU7Lc9Pjf1tZWplwjkQjL6oT/9Xq9LpfL9z9B/9pQudlpuAUi\n5aF6Vz30joVg4myUm3V1dah9AYAF1Xc6ncFgEEdPMZ8hFuDkk09mEpam8gnimAFbG3z5xFka\nu92+bds2tsAUeteVxuNxi8WCsU5xoh/bnzFjxmBsKVz2M6DGQdoCwj0AAMb7QUvalCCOLKFw\nRJKkKSeeUFszDLdwalM4rDzt7Oz8+OOP8TNO0X711VfMi4U/nWk0Gh02bFhWM+Tz+T755JOV\nK1diqJHFixdfc801LS0te/fuxcwi9fX1e/fulSRJp9O9++67kiTNmTOHsyTHDH6/X5IkttgU\ntSN8N9L+li1b1A4HuE99fT06TuG/UJv+f/bePT6K+lz8f/a+O7PXJJsLSwIhMeHWIArhooBU\nK8ciWFts1fZopRetchClFGzttyoefi1tkfPFoqe2R4Wqrf311Gq1l+MpttBSRC7hKpsrG5Yk\nm73P7uzszl6+fzwyTUMSkp1kdyHP+4+8srOzn3nm1rN5fQAAIABJREFUmc8888zn83meB9TQ\n9WmXtcyMFV8AwOVy4SoxzJ6NLWCX6Jumyu12d3d3x2Ixaay07zJTyhJFEFcMUtk5aQu+9JrN\nZswehRsx4Ak/Tp48uaOjA9eeQp9wKACoqqqaN29kSUpTB0B8HCAD2qcohxRB5Jrvbtv57I93\nqdVqlUq56z+fmT619jNfeOA//+P/kxMXBZd0T3/4wx/+8Ic/7LtlFBOdiqIYj8f379//8ssv\nR6PRmpqa++67b8KECc3NzVqtVpoRNhqNlZWVzc3NDMNgOddUKqVQKBQKhc/ne/XVVx999NGn\nnnoqHA4vWbJkxYoVoyXe5Y7kDvYdp+xbv9TtdmN5awxmQnfWbDaHQiFbW0nyF2AxWKP3Ba2T\nzbg2QKpPKE3VSWFSfTOeYpBTKBTiOE6tVuM4q+Td0nApQVyR4FIfNDvt7e0Y7RSNRu12O8bm\n418AwLh+u92O64I4jpOm9U0m00hD9VWHteL3FFQXiiDyxe6f//qXu3bOnzv72R/v2vGfL/7X\nzu/PnFb/nX/f9up//V85zQ7lnn7nO9+R0/Ql4XnearXyPP/QQw8plcrXXnvtscce27lzJ84K\nKRT/CL+0WCyhUGj27NlvvvmmIAiHDx+uq6tTKpU7d+5ctWrVG2+8MW/evKVLl65Zs+bqq6+W\nMm62tbW9/fbbUiOCIMRiMekdXUIURQCIxWJyxqKxzFI6nc66BfxtMpm8WMLh4PP5AMDv98fj\n8X75mIqKiniexycBDnDqdLrOzk5BEARB0Gq1Op0OnUu73Q4ANptNwal0FmPg856EXbDoLN3d\n3XAhzT4AqNVqnIOLxWJz585tbm7GHXBa32w2T5o0iWXZuXPnulyucDis1WpjsRjP88XFxcM/\nO3wVicfjqNvsSKfTWau0nzAyG8lkMjJbQD3EYrG+t8ZIEUVRoVCgbrMDO6ooinJOJ5PJpNNp\nmQpJp9OjolWZKsXrIggCWpJhMvQlSKfTAxor6ViJRGLkkv7j0Ki6rFvA3+Kd1dzcHAwGQ6GQ\nxWIBgFgsFgqFwuGwIAg9PT0+n2/69OkAYLFYIpGIIAgqlYplWTTyBoMBd8NUdBzHCYKg1+tH\nZiUsSjBm0g/HhZkpyKoviKKYTqdHdPkGEAMgkUjIfATIN1ajdWfxPC/TzsDl/1Tt2478FuDC\nBELWJJNJmfc+qjQej4/oEXDJR7BSqZw352qFQvHA6s+/9svfMAbDlic2NN5wW9ZyIkO5p088\n8YTM1ofGYrHs2rVL+rhx48Z777133759ANDvxkBreNVVV918882bNm1iGGbNmjV79uwRBOGW\nW27ZvXv3gw8+qNVqGxoajh8/LrmnZ8+effnll6VGampq0EMdUJh4PD7g9hEhx8AhyWQyC28M\nnc5+aZ6k7E5SYhebzdbc3AwAODuPSe/dbrder+/bWjwer15YDdeCntcmXIne3t6urq6+wQo1\nNTXhcFiv1xsMBrfbzTCMXq8/c+ZMNBqtra1NJBI9PT3V1dWBQECv1+v1eqvViscaTPlDIOdW\nlMjiuP1AdyHvYgCAIAiX3ulS5Kuj9mNUFCK/kVFR6Ug76tCPh1QqFY/Hx9RYyb98qVTK7XbH\n4/F4PK7X6+PxuNvtnjFjRm9v77lz56LRKM/zWq32/PnzpaWlRqMxmUy2t7cXFxfjGnc0DqFQ\nKJVK1dXVBQKB+vp6q9XKMMzIrmlNmt/pz+gyIKMjyHlhkxBFUf6dJb8/ZzKZArkpLuunaj8K\nxFjlpaNe8qC3fOKGt/+wZ8UtN2o0anTEMxmQ8wKMFFBiKb1eX1JS4vP50PvJZDKSkxoKhdDZ\nWrVq1apVqwAgGAzu3r17y5YtAIAL7QGAYRh0vJA5c+bs3r1b+vjDH/4QF933O24sFovH4yaT\nSaVSZS083oc6nS7rFlKpFMdxWq0Wz2VEeDweADCZTKg0rFwvzeZLqz97e3sxQIFl2TNnztTX\n13d2duKSib6hUXa7PRAITJo0qeVwSyqVMpvNmDYBMZvNqVRqxowZgUDAZDIlk8lAIBAIBFKp\nlF6vT6VSlZWVNptNo9FMnDgRM3JnRyKR4HmeYRitVpt1I8lkMpFIZKHSvgSDQbVanV00sQQu\nxZPTAs/ziUTCbDbLGZAQBEGpVMpUaSQS0el0BhnlQHA04uIcDiMCrQQO2mVNNBo1GAxyVIp+\nJMuyGAg4TIbeGScoLjZWOONhNBrV6uxNNw7y9XspHRHpdBpnRXAhqdFoRPuMsfmpVKqkpITj\nuEwmYzAYcOdwOFxWVmaz2fDQdrvdaDSePn1ar9ejCaqvr7/xxhsvdeT+RCKRZDJpLjXLGerj\neV6j0Yzo8vUDjZXBYJD5CBAEAU101oRCIYVCIdPUYMlZOTfFFfBUlchkMphcIusWAIDjuFQq\ndfEdPSLwfU/mvZ/FU/WSO39rw5ovPrD+THNrw8xpQjz+9h/+9OY7/3PNrJlZy4nk0z09e/bs\nW2+9df/996NdiMViHo+noqKirq5OFMWWlparrroKAEKhUGdn59SpU/v+9rnnnrv99tvLy8sB\nAGeI9Hp9LBbDXHqIyWSaNm2a9FGlUqlUqosvLd6EA341fPBdRE4LkjDDbwQn03HQFB8P6J6q\n1WrJNz179qyU9FStVtfW1ra3t4fD4YkTJ0YiEbQd3d3dmBnbZrNhoih0xXD8g+d5AHA4HJjW\nFIPuA4GAWq1Wq9X4j81mQxfZZrOp1erS0lKdTqfX6+UoBN93ZV6XTCYzIpUOBmpVZiMyW8AH\nMHbjrBtRKpUyFYLvxDIbSafT8lWqUCgymYz8RmSqFO/9kXbUod0plGqMjBWOhci8fH6/3+12\n45ix1WrlOK6mpqazszMSibS3t7MsW15e3tHRIQgCwzA4vYO+NcbsT5w4EQDwf5PJZLFYiouL\nsxAJ1ahWq+W4p0qlclRUKt/UjIqdGZU7S61Wy3FPL9+n6sVIT1U5MkgdVWYjMlWKT9WRKuSS\nN9fnvvjQiVPOg4eP4ceH1n971szpz3z321nLieTTPS0qKtq/f38ymbzzzjtTqdSuXbvMZvOC\nBQv0ev111123Y8eOtWvX6nS6n/zkJ7W1tTNmzJB+uHfv3lAodOutt+LHadOmNTU1XX/99SdO\nnFi+fHmezibXYDr9i8MIamtrpY1+v99ms2GsvdvtxtzXCA4kW63WkydP4kJSKT+UxWLpN5gv\n5ZCCC34wrmR1uVxSHn4p2BaTafcdxiYI4gqjvb09FotVVFTg229NTQ36oG63GwA8Hk9paenk\nyZNxsV1paSm+vkpbJPuwYMECADCbzVS8lCAuU853efb/768ryuz4UaVSyXldlMine2oymZ58\n8smXX3553bp1Go1m+vTpW7ZswSmnNWvWvPDCC48//ng6nZ49e/a6deuksw2Hwy+99NLmzZul\nLatXr96+ffsvf/nLxYsXY+apKx6n09nU1IRB8ehoYlx8cXHxBx980G+6U5qVwAB8nMeXYmwd\nDkf6KPj+HoYvf9Qdzp07Fw6HKyoq+i45DQQCOFPv9/sx/xS23DfrPqUyJYjxgNPpPHPmTCwW\nc7lc9fX1ANDa2irZFkwm1Tfdqcfj8fl8giD4fL5p06bhxkgkwrJsV1fXvHnzbDbbMJPNpQ5A\n8heg+3eA7JeWEAQxmrz9/79Y6agY9WbzvPa0trZ28+bNF29nGObhhx9++OGHL/7KbDb/9Kc/\n7bulqqpq27ZtYyVi4eH1eqWEoxzHVVVVoaNZUlJy5syZYDCYTqeloYhAIIBVW4xGIxa7x3EL\nHPOw2WxVXdUtr7RnlJDuhaJpVqkmIVZ/6bvgRnoCYQu4cBCLozqdTnJMCWKcIL2gwoXhUlxU\n19LSAgC9vb1S2oFoNFpaWurz+QwGQ3FxMa4UwoTZDMOUlpZWVFQMv3ipVBcq3QpKuQvbCIIY\nHe5f+9gQ377zq5eya7aAQqOI4SDVgsKhUwCQBh4OHDgQCAT6DnnW1NRgABMuLUW/Uxpwramp\nSe2DMztaLQZrzzJ3hIWI66PUUVJZQrjw4IELE/q4UfoKD01p9glinOB0OvEF1Wg0GgyGSCQS\nDocxiTLugGEoGE8p5TrF//GfyZMnezyeKVOmRCKRWbNmDdc37VsXinxTgigYjp388LO3L2eY\n/jMaPB97/ddvD/iT4UDu6WUGLifF2tYAUFVVVVRUhD4rJhnt7e3lOA6dVJfLJXmTWGYQLqz6\nCofD/veCjv+uPiWcVH8GLB/7RynCioqKUCgkZezHkRKpHclbldJFEQQxrnA4HJiiDgAqKirQ\nRPh8vmAwWFFRgd5nNBrt7e0NBAIOhwPHTaXxVGnS32g0SmWWhyZ1ABLforpQBFGgbHj4/ory\n0n4bu7o95J6OI7AmU3V1NfqOdXV16JviZL3JZOrt7cX0LtwFIpGItEoVLoyeBv8aTv4GgvrA\nrI0zzhlcuAP6r5MmTfL5fNXV1VLOVPyhlFxDOnQ+FUEQRJ6orq5WKpWxWAwzH0uVS3HBOrqk\nAICRADzP2+320tLS+vp6XGiEgVMzZswIhULDGTol35QgLkeSqZScGClyTy8/0EPFOKQDBw4A\nAI6SYj1SlmUjkUhPTw/uzLIszvVLA5+4VszMmFNa0DwE4bIg5+YcDgemlIILy1L37duHjqy0\n/HTGjBlSqn9aZkoQ4xOcrrFarT09PaIoRiKRaDQaCARCoVBZWRkm2y8tLcWxUixEV1ZW1tPT\nEw6H29raSktLp0yZgsVLMXXgpckAaED7OPmmBFGIGFk2EAxdPHp6zt1lNmWfL5zc04LG6/VK\n/6NH2Pev0+lEV1Ka6LdYLNFo1Gg0dnV1YRnraDQqRTih9/lR5FMpN+GbjnNJlxnMDocDfVYA\nQB/X7XZjI32Xn9KIKUGMWyRbVFJSUlRU1NLSYjab0aTwPO9wODCtKQAYDAYMfsIYqeLi4hMn\nTkyePLmpqYnneY/Hg9Wh6urqMBfVJVHNB/0vQCErLTpBEGNF/VVT3n3vr9On9n/b3Pu39y/e\nOHzIPS1oJPPdb4UWTugDwJkzZwAAXUkAyGQyGAhlNpuNRmNPT09ZWVnf6HuO44xGI069YXwV\nx3EOhwPTymJy0+bmZoZhpEAHzBtFjilBjFu8Xm9fVzKdTjc1NbW1tWH1r0AgYLfbFyxY0NHR\nEYvFcNLfbre7XC6DwYAxUqdPny4uLsbp/nA4PNJ6cuSbEkTB8vnPfeqbT269umH64oWN0sbj\np878+KXXvvvkpqybJfe0cPF6vVJFKL/fLxWCggtuKw5dRKNRj8eD6fHNZnNzczMWYQOAsrKy\nGTNm9A2QwqWoOFY6Y8YMHHwNh8M4PhoIBKxWq9FolNxWlGSY4QsEQVyR+P3+vrYonU5zHIfB\nT4IgYO0PACguLsbhUpZlcQvm4Y9Go1hpORqN1tbWms1mWh1EEFcMn719+aEjxz//pYfnz519\n9cema7WaD52t//vnv93yiSWfWfkvWTdL7mkhgj7ooUOHpELtF5dUQc+yvr7+zJkzmN26oqIC\nY5swbD8SiVRUVBw4cACzRGFTuCbVaDS2tbUBAE7rm0ymYDCIZaWsVuv8+fPb29ultao0bkoQ\n4xlMtIy2BQBqamrQQGFEFBZSAQBBENxut81mY1nW6XQKgmC1Wvfv39/Q0IA7lJWVmUymqqoq\nqcIcQRBXBt97atPNNy5+/b/f+tNf/iYI8epJld9/+pufWfkvFBp1RSFF4vf1TTFCH8cw0DG1\nWq2YbhAjn9ra2qLRKMMwDocDc0Lh6AV+2/lHdwXvgNugrKwMAHp6eqZMmYKHi0QiUmi/lDSK\nHiEEQQCA1+s9dOgQvsSazeZgMNja2trR0dHT04OT+LFYDKsrV1VVsSzr8XjQ8qDbarVae3t7\nGYZhWRZjKy/5upv6O6TeA+03ALIv+U4QRK65ccnCG5csHMUGyT0tLHw+X3d3NzqgcKEMKfSJ\nS5DqNqHzilPw6FZKRQIzmUw4HMYxVJPJlD4Ght+ZgtqwUMMpigDgIydVyiSF0VTYvs1mU6lU\n/cqiEgQxPsEiIJioDvrkmMMlpzirU1xc7Ha7u7q6MBEyxkjV1NSwLHvw4MHp06djU8P0TT+q\nC/VpUNK0DUGMY8g9LSBaW1t5nkdPFP3OYDBotVox/6jNZpNqmUp1R3EhqRQgZTQaMQEhXBg3\ndb/XZX+vokVscawq47URIxiln+Mjp6KiAksRAgBWFwwGg8lkMtcnTxBEgeF0Ol0uF9oZzGmK\n0frt7e1+vx/fgcvKymKxmM1mCwQCPM/jElUA8Pl8PM/rdDrMe4pLjIbmn+pCkW9KEOMbck8L\nBa/X63K5YrEYVl5xOBwYMg8AGKSPdt/tduP6USy+gmtMMUZh8uTJOKohheqHDnA1++oPJw5b\nbmP5kggA4GMGLiTnN5vNbrf7mmuugT7FSwmCILxeb1NTE6YEQd903rx5LperpaWF5/lgMCiK\nok6n6+npwckWh8PBsmwgEMDUp9hITU1NaWmp0Wg0m81DD51S7n2CIPpC7mmh0Nra2tXVpVKp\nMHC+qqoqEAjgKi64MKcGF2bwpTLWkUjEaDRGo1EsJFhdXe31enGhmLHNnPgduME99cu1bekW\nFlgA8Hg8RqMR00jh0CzlNCUI4mIOHTokBVm2tLSwLItxlpLxgQurj3p7ezEPnc/nAwBckAoA\nkydPxjkch8MxdCYp8k0JgugHuacFgdfrDYVCODVvMBiwpApO5XMch+lLpUSkcGHxKM7RYyEW\nAMB6UfjXZDJ9eOKMQWH03diTMETQNz19+jSmd8FUU1arFdeKUZIXgiAuBn1TAIhGo1j56U9/\n+hOG5Fut1nPnzmEe/srKymAwGAwG4/G4TqeLxWJosnBR+/XXX3/JOnOZHgAFaP8dVBSQSRAE\nAJB7WghgSD4mCCwqKjIYDNdee21rayvWp8bBUYyv93g8uJAL0wc6HA4p2wsAlJWVZTIZpVLJ\nsizHccL0qHIaKBUf5Rrs6urC0FrcGX1TckwJgrgYp9MprfbB9CA9PT1OpxMHSs+ePQsAVVVV\nNpsNlx41NDTgVI8gCJ2dnZWVlQaDAQBMJtNwaiCrV4JqASjsY3tSBEFcRpB7mmecTicABAKB\nZDJZVVWF5QHxKxy3AIC+s/kIxj/hmlEc2DCZTBizH4vFMplMRUVFT09PL+/B/XFujmVZXHg6\na9as4TwzCIIYhzidTkxghx4qhkCxLCsIglar1ev18Xg8Eong0Cnu43Q6Q6GQxWLBfQBg8uTJ\nFRUVVVVVw7Qz5JsSBNGXceSeptPpeDyOJrUvqVQKABKJhJxwdfztxY0PTXNzs5RDymw2C4Iw\nadKkCRMmYFnRkpKSlpaW1tbWqqoqDIQKhUJarVYURYfD0dvbe+DAAQBgWVYURb/fHwwGM5mM\nKIpdXV2iKIZCIYZhcLQVAHQ6HQCIoggA8XjcaDQOJm06nc7iXPqRSqUSiQTqNjtQVFEUM5mM\nHDFSqZTMcwGAdDots5FMJiNfpQAQj8eVyuwTQiaTSTl5kiUxksmknNPJZDKjolL5WkWzIFOl\nACCKIt44wz/u0N8mEomLTw2PJfPOSiaTQyjf5/Nh8KUoiolEwmq1Tp06VRTFAwcOxGIxnU4X\nCATQCgWDwUgkgoYlHA4nEol0Ol1aWppOpy0WSzAY1Ol05eXlQ1ygUbl8ACAIgpxejcZqRJev\nH3hdZN4U6XR6VIzVaN0UMlUKsp+qoigqFAo554JiyNTqaNkZKKSn6kiPm/UR5TCO3FO40M8u\n3jjYVyNqWfo7THw+X0dHB6YvtVgsmUympqZGrVZnMplAIBAKhcLhcGlpKcMwmUyGYRiP56Oh\n0M7OzhtuuIFl2Z6eHp7ncQeTyWQ0GpuamrRabVFRUXl5OcuyUlEo6aATJ06cO3fucESVow2p\nhbw3ksV1Gbqp/LYAo6EQhUIhX6Ug73QK57rIlyQ7AzKcG3Cwfcb0pjh8+DAuGTKbzZlMpra2\n9t133w2Hw3q93m63C4KANZNtNpvFYlGpVAAgCILdbjcYDAaDgWEYDLI0Go3Tpk2bM2fO0KKO\n5z4w6mJI7eTdWI2KQkalBfmNFI6xgsJQSM4YR+6pUqnU6/W4Iqov6XQaM6So1XK1cXHjg4HT\nZ4Ig4MxXLBarq6vz+/0TJkw4duyYTqcTBCGRSHg8nilTpmDwkzTpL4rivn37pk2bptVqcTxV\nq9UWdZYcOnpYW6v1+/16vf706dNTpkzp7e2VslNVV1cPc0I/Ho+n0+nhn8uAJJNJnU6n0Wiy\nbkEQhHg8rtVqcXgmO0RRjMfjMs8lGo0qlUqZjWCJHTktJJPJZDKp1+vRJ8gOXJ0s5f3JAlEU\nBUFQq9VyTgdHB2UqBMfMZDaC974clQJAIpHA23D4Pxn6iEqlUqfTXXxqmUwmkUjIvLPi8Xgq\nlRpQb06nE0+E4zhBEEpLS//yl79otdpAIBAOh9VqdTKZZFmW53mPx2MwGHBMiOO4ysrKtrY2\nk8nU0NCg1Wrr6+uvvfbawaxN6u+QPgGaL4/CTYGDSQaDQeZQ30gvXz/i8Xg8HtdoNHJOJ5lM\nDnZdhg/P8/KNVTwe1+v1cqYU8vJUvZhkMhmLxWQaq0wmI/8hUmhP1RE9AmSax6wZR+5p4eB0\nOqUE+3AhOYvf7+c4zu12Mwxz8uRJAMCgqLa2Nim/KQBEo9FYLFZcXIxhUgDg8XjSH0Ln7w6z\nejZWEe3p6YnH43a7vbS0dN68eZQxiiCIYYJuKABg9o9gMIgBmtFoVFqKii/V0WjU5XLZ7fZA\nIKDRaDo7O6PRqFarra2tNZvNy5YtG+wQUl0o9c0AxtydGkEQlxdU1TjXeL3e9vb2cDgsBd3b\nbLbq6mqMRQiFQi6XSwqKwiWnAIBPiCNHjrhcruLiYvzWbrfb7fZMO7S91QFqUC+HmILHMCks\nNkgQBDFMDhw4gDWiAAAT6eN2KS7TYDBwHNfd3R2Px8vLywHAYrGUl5cXFxcHg0Gc7m9qahri\nEH3rQimqxvRsCIK4vKHR05yCc/rSR7PZXF1djd5qKpXyeDw424VpXNAxdblcBoMBi0Lp9fpg\nMFhcXMyyLKY+7fprj+c9HyghsTjqmFfr2t9hMBiKiopwYBUAaOiUIIhL4nQ6pTBNzLVsMpla\nWlowSUhXV5fP50PPVRRFjuMSiQTDMG63u7i4OB6PS9U9hjgE5d4nCGL4kHuaO6RxU6wmiga9\nvb0do5e6uroEQVAqleiblpWVtbW18TxvMBjsdjvmFJTGTTH3PtcU7fi9y6A2qK4HRQVwHDdj\nxgylUomrnq+//nryTQmCGA6SIcKPLMt2dXXhuCnDMBzHFRcXo3taWVkJAD6fz2QyhcNhTMVf\nVlY2d+7cSCRSX18/4Mw++aYEQYwIck9zhNfrbW1txQl9t9vtcDhwrELyTXt7ewOBwOTJk3Fm\nH+s/sSzrdDpjsZggCEeOHJGio/CxEemMggoS82NMmYFlWZPJdMMNNxw9etRsNtOSU4IghonT\n6QyHwyaTieM4aWVRR0dHV1cXAGDMvtvtFkWR5/lEImE0GjHo0Gg0BgKB2bNnMwyDpZLnzRu4\n7lP6FACAdgvVhSIIYliQe5o70B/FFV3hcJjjOJPJFIlEenp60N3EwdGOjg6GYXp7ezFrqSAI\nNpvNYDAEAgH8WFpaGo1Go9FosMbXleo0KU0MfBQPWFJSMmfOHFp4ShDESDGbzV1dXR6Ph2XZ\n3t7ejo4OnU6HMemJREIURY1Gg0YJ98fUIhaLBQCmTJkydBU6zX2gvgkUlTk6F4IgLnfIPc0F\nOHQKF3xTs9l85swZTFOKC0x5ni8qKnK73YIgBAIBu92OlaIYhtHr9QzDlJaWYlMOh+PIkSMA\nIAiCXq9PqBLxeJxhGJZlq6oo1oAgiJHRN5GIx+Px+XwA0NXVlUgkcGMkEikuLsbAfFEUrVar\nVqt1u92xWAxz3MRiMQDw+/1D560j35QgiOFDkftjjtPpRN8UZ/atVms4HDYajSdOnMAd0A3F\nkdGuri6sCHXs2LHW1lb0SltbWzs6OnBnn88XCoVsNhuWJ505c+bkyZNLS0uNRmNNTU1eTpAg\niMsUDNbEdfBut5tlWYPB4PP54vE4rkONRCJarba7uxsrzfA8HwwGE4kEDpoyDONwOHDah1YT\nEQQxitDo6diC4VD4P8bpBwIBnERjGAb6JG0BAJvNFgqFcO4Ms+Z6PB78B3d2u90AYLFYMMB/\n0aJFAGAymaREg5dFKQiCIAqEQCDgcrkwWBMAsJxpXwfU4/EUFxfjSGoikbDb7YlEAhPe2e12\nrEJnMpnuuOOO/J4IQRBXGOSejiFer/fQoUNSflMAwKxSbrcb7Xtvb++CBQtaWloA4OzZs6FQ\nqKioyOl02u12rEfqdrttNhsW6o2e5kM9IV2lTq/XY26pSCSCgQiDhSMQBEEMhtfrlQI0pYgo\nALBarXq9XhAEn88XCAQYhhEvgKWVeJ5nWba0tHTatGkYEdWP1N8h0wXq23N2KgRBXGmQezqG\nSKH6ZrMZ80kBwMmTJ0+cOGG328vKyliW5TgOc0gBAE6xVVZWBoNBn8+HTwhc13X03aOqFm0Z\nU8aVBW0VNpZlr7nmmurqappQIwgiOw4dOoSZQyKRCNalw4hMhmFwERHP89XV1dFoVBRFhmFC\noVAwGAwEAlJFxHnz5l38bizVhVJdB4rSnJ8VQRBXBOSejhVerxcuOKa4JRwOHz58GC6MoWJe\nfcwqhRP6PT09FRUVgiDgulJ8SABA5jyoWrWRTISZpmuY08CybEVFhdVqJd+UIIjscDqdAIAL\nTKPRKK5u7+rq0uv1WP4jkUhoNBpp9ZFWq9VoNKIoGo1GhmEqKysXLFhwcbP/VBeKfFOCILKF\n3NMxAaf1AQAHTdFD5TgOS7AAQCwWO3jwIIYUeDwezC+YSCRaWlomTJiA/mtXV5fVao21CWcO\nNDMqpnROMRQBXJjKpwl9giCyw+fzYYkQzLS+ypB8AAAgAElEQVSPoBUSBEEQBEwmFQ6H1Wp1\nKBQqKSnp7e1NJpOCIBiNRo1GU1xcbDab+1khyr1PEMRoQe7p6CNVLpUm9PvS1dVVUVHR0dFR\nVlbm8/l8Pl8wGMSHRCKRUCgUmDEKAHw+X/xcPHYqUaorVc0A/QS9w+Gora2llPsEQcgBVxMB\nAFYuxf+xVCnmN8WVpuiPWiwWNFDxeNxisTgcDp1Ox7LspEmT+rb5D990M6gW5viECIK40iD3\ndJTxer1NTU2Ych8uxNpHIpFoNHrs2DGO4+x2Ozqv6IZiqCw+FQAAIw9sNtuJEydEUUz3QhSi\n1mtNDYsaWJYdrGAgQRDEMGlubj516pROp4MLfirP80eOHEETpNFoenp6ioqKOjs7DQYDACST\nSb1ej3XsNBrN3Llz7Xa7xWKpra3t22z6zwBUF4ogiFGC3NNRxu/344gplgfEVaSRSMTlckmp\nBBH0TTHltZQBW6vVdnZ2chyHjwrlNJh+zVSm3FBWVmYymcg3JQhCJh0dHSaTKZFItLW18Txv\nt9tPnTol+aaiKOr1er/fb7Vak8lkLBZD62Sz2cxmc3l5eW9v75QpU5YuXdqvWc3XQXU7KK/K\nwxkRBHHlkWf31O/3v/jii0ePHhVFsbq6+r777sNp67Vr10qJ6AFAr9e//vrrAPD888+fO3cu\nkUjcc889M2fOxG+9Xu+GDRu+//3vD12zJAdgltO+I6YA0NLS4nK5Ojs7TSZTPB63Wq0Gg8Hh\ncPh8vkgkwvM8VrJ2OBwAEI1GsRALFiYtKyurqqqqra1dunRp3s+OIIjLHa/Xi0tOg8Egz/MM\nwxw8eDASiWg0GrQ8PM8nk0mczTcYDCaTKZlMAkBFRYXJZKqoqPjc5z43d+5cv9/fv2kl+aYE\nQYwaeXZPn376aZ1O9+STTxoMhp/97GebN29+4YUXcCLpq1/96vz583E3pVIJAMeOHWtpafnB\nD37Q0tKyffv2Z599Fr999tln77zzzkLw3rA6FABgrhaWZVtaWnp7ez/88EONRsNxnFar7enp\nKSsrCwQCoVAIp/LxL874BwIBo9GI4xPoyNbW1s6aNasQzo4giMsdyUbBhWKkgUDA7/cXFRWF\nQiFccZRMJidMmNDZ2ZlIJBKJhCAIRUVFvb29dXV1y5YtwzdngiCIMSWf7imm/PzCF76AA4df\n/OIXv/SlL7lcrrq6Oo7jysvL+/lkHR0dkydPBoDq6urOzs5UKqVSqd59991UKlUIs97Nzc34\nD2bUxzyC0Wi0q6uLZVmtVqvT6Xw+H9YA5Hm+t7c3kUiEQiGNRsMwjFarbWlpUavVHMcVFRUB\nwNy5cx0Ox7XXXku+KUEQ8nE6ncFg0Gw2Y2WQ4uJit9stiqJareZ5XqPRWCwWnucx46nBYOA4\nLplMms3moqIim83GMAyao3Q6ne9TIQjiCief7qnJZNq4caP00efzKRSKoqIiURTj8fj+/ftf\nfvnlaDRaU1Nz3333TZgwQalUplIpAEilUgqFQqFQ+Hy+V1999dFHH33qqafC4fCSJUtWrFgh\nNchx3Llz56SPqVQqlUrhRFVf0NRiy1nT29vr9/sxfalUgsXlcuGYqHSCODIaCoUAQKvVBoPB\nZDKJc2ptbW1qQa1nDEUTbFqt1mKxlJeX33jjjQBwscyDkclkMpnM8PcfrJERHXSwRvAyZd2C\ndF3kSJJKpdLptMxzAQD5WoXRUCkApFIpOaVrUasyVYrtyGkknU4XVEeVr9KRdtShj4hSDWGs\nsruzkslkKpUKBoPpdDqdTp8/f97r9aJ7GolE1Gq1RqMJBAKpVCqRSGi12nQ6rdfrcTG9Tqeb\nOXMmLkhNp9Oqw1pIq5I3FcRNkUwmZZoa+XYGZN8U2A8LwVhhCzhpmR2j8lQtEGN15T1VR6qQ\nfBVLL5TQKI7jduzYsWLFipKSklAoZLVaeZ5/6KGHlErla6+99thjj+3cubO+vv7NN98UBOHw\n4cN1dXVKpXLnzp2rVq1644035s2bt3Tp0jVr1lx99dWVlZXY5gcffLBhwwbpEDU1NeFwGIv4\nDShA1sL7/X5MIogfvV5vb2+v3W7v7u6Ox+OBQECj0WBsvsfjYRgG16RKqVu8Xm8qldKJOlPQ\nyvCMdrLWbrdPnz69sbFxMGmHJrtfjXojUryXHHieR6c/v5Ikk0n5ChmV69K3Rm7WyFdpPB6P\nx+MyGymQjopRQTKR0tePykFx9edgp9a3AOnwaW1tdblcANDZ2Yn/oKXC7FGxWEylUmG603g8\njg8wrVar1WrVarXNZmtoaLjppptQJNVhre67JtBAqD6QMckaSR2VPoAv/HIYFWMVi8VwvYQc\n5Cskk8nIb2RU7Iycp6qEfJXiGhWZjRSIscrLU3VUDpoFBeGenjt3bvPmzVdfffWXvvQlALBY\nLLt27ZK+3bhx47333rtv375ly5bdfPPNmzZtYhhmzZo1e/bsEQThlltu2b1794MPPqjVahsa\nGo4fPy65pw6H49Of/rTUzocffqjT6aRyfBLJZBINcdYvizhcGo1GrVbrmTNnlEqlUqk8ceIE\nbkwmk8XFxThNptVq8XAA4PP5LBaL2Ww+f/68KqE2hFlGzdTfcNWka6vq6+tvuumm7ISJx+OY\nMiZrEokEjprIaUQURZVKJef9O5VKYQpGlUqVdSM4LoLj01kjCIJSqcQlwlkj/7qIophKpXQ6\nnZy3ZxxnkqnSRCKhUqnkaDWTyUgF3LMmHo9nMhmZHRVrI8lRKXbUkRqQoXdWKpWjbqy6urpi\nsRjWqMO3C57nw+Ew9iiGYQAgEokkEgmlUqnRaHAdanFx8bXXXjt9+vSFCxd+JM8HKtVWAygg\n8WhEZ8/zTVFQxkqtVqvV2T9SpVeCrFsAAEEQFAqFfK3KvCmwo8o3VgAgU6XyjRWMRkcdFWOV\nr6eqnOeFHPLvnjY1NW3duvXuu+9evnz5gDvo9fqSkhIs77lq1apVq1YBQDAY3L1795YtWwAg\nGo2ibWUYpu/rWl1d3Te/+U3p4/33388wjNFo7Nc+epAMw2R3G3i9XoweKC4ubm9vt9vt6JX2\n9vaKosiybDQaFQRBo9HY7XaPx4PvggaDgWEYURSDwaAyriyO2K1aa/UNVTOWTP/EJz6RddZ9\nfOpffI4jAuf+ZDbCcZxer5djFARBwBw3cuwCLhSReS6CIKhUKpmNJBIJ+SpNpVIMw8gxFjzP\nK5VKOVZSFEWc+WVZNutG0ul0OByWqRBRFOV31HA4LFOlsVgMO+qIHIuhrY1KpTIYDBefGobV\nGwyGkd5ZTqdTFEWDwWAwGM6fP69Sqc6fP49Z8Px+P1q/cDiM73LpdDoejxsMBqvVWlJSUl9f\nLxml1AFIPA2QAeHrYfVChdFouuShh0D+TREKhdLpNMuyctygSCSC48RZtxCPx0VR1Ol0mCk2\nO5LJJM/zMhUSj8eVSqX8RwDLsnLcIHyqGgwGOc6l9KzMuoVkMomuthyFjMpTFf31AnmqDvjq\nOwRyLqIc8uyenjp1auvWrevXr7/mmmukjWfPnn3rrbfuv/9+vAyxWMzj8WACUYnnnnvu9ttv\nLy8vBwCDwYAv+rFYDAvZ55LW1lar1ZpIJM6cOSOKYjQaxTRSWq0WIwwsFgtO/AWDQY1GE4vF\nBEGIRqP4RLQoLHxIYLSM5RpTUX3RwoULqSIUQRCjSyAQwIio06dPnz17FvOb4jAqAASDQYPB\nEIlE0um0UqlMp9NqtdpoNBoMhrq6unnz5v3DN/0WQAY0T2aiUxNqkDWeRBAEMQT5dE8TicT2\n7dtXrlxZVVXl9Xpxo9FoLCoq2r9/fzKZvPPOO1Op1K5du8xm84IFC6Qf7t27NxQK3Xrrrfhx\n2rRpTU1N119//YkTJwYbgh07ampqWltb+67U+fDDDwFAFEVMyIIhsQDAcRzP81qtNpFIYJyW\nVquNBYRppulFi6wTP+b47Gc/O2HChBzLTxDEFQ9mgzpz5gymMnW5XJLJValUKpUqGo3ioLgg\nCLgGSa/Xf+xjH5s5c+a8eR+VgUr9GgBAuwUUczNwUdpTgiCIUSSf7unp06e7u7tfeeWVV155\nRdp4//33L1++/Mknn3z55ZfXrVun0WimT5++ZcsWaSw6HA6/9NJLmzdvlmZzVq9evX379l/+\n8peLFy/GzFM5pqam5siRI9FotLu7G9c+sywbDAbVarXH47HZbKIoxmIxvV7P8zwGyWLVU4Zh\naqbVFLHWxk/MnT9/PuaTIgiCGF2Kior27dsXjUY7Ojp8Pp8gCACAEfrJZFKtVqfTaa1Wy/N8\nJpNRq9Umk8lsNs+dO3flypVSI9onId0CyhlAeaUIghhr8umezpo168033xzwq9ra2s2bNw/4\nldls/ulPf9p3S1VV1bZt20ZfvkshDT/s2bOnp6fn3LlzZ8+e1Wq1uKIUV8o7HA5RFMPhcDQa\n5ThOqVTyPI+LtXFJjaXYcuMnP37HHXeMSmw4QRBEX9BM+f1+LK3s8XgwbheDJFiWxeVGgiBI\n8WpKpZJl2cmTJ69cufKfki7rQDkjbydCEMS4Iv+hUZcpTqdT+h/zAgqCEAqFIpEIJuQHAKPR\niFvUajUGteDqLkzRz7JsXV3dokWL7rjjjrydBkEQVy5erxerj7a3t+MKeI7jotGolOYzGo1i\nKkSVSoVv1JjotKGhYfbs2VQQhCCIfEHuaTZ4vd729nb8/8yZMx0dHa2trZFIRBAE9E1jsZjd\nbhcEwWQyYSEoXIrKMIzBYNDpdCaT6aqrrqqrq1u9enV+z4UgiCuVQ4cOAUA4HG5paXG5XMeP\nHwcAnNDHDDXJZBIzniYSCbVazbKs1Wqtr693OBxr167Nt/gEQYxfyD3NhtbWVrfbbTKZurq6\nOjo6cFjU7/fr9Xq/348xT4IgcBzHcZxKpcJ0zel0WplSlhhLzEXmyZMnL1q0iHxTgiDGCK/X\nGw6HOY6LRCLHjh3r7u7mOA7TnarVaoVCwfM8JgbGoiGY/dThcEyfPv3pp59O/R0ULCg/lu/T\nIAhiXELu6Yjxer3BYFDyTQHg6NGjmF8TbT0GQmG0AU7r4/SZRqkxCWabr3j+ysZZ18yiOX2C\nIMaO1tZW/KejowMTSGFRKEwbkslkMLGlSqVKp9M6nc5isZSVlTU2Nq5bty71d0h8CxQM6F8H\nyD7vJEEQRJaQezpicC0Xx3EejycQCLjdbvRHE4kEru7C3IFYfIXjOKxrYtAaWMFo0xdNnOtY\ndMOiZcuW5fs8CIK4YsG3aLPZvH///q6urrNnz0ajUYyCAgCFQpFMJnHEFMurlpSUmM1mhmEW\nLVpkay1JPA4AoNlEvilBEPmB3NORceDAgWAwGA6H29raMD9LKBQKhUKZTCaVSmHRarhQai+V\nSsXjca1Wm0lmIAbF+pLKaxyLbyfflCCIsQWHTg8fPhwIBHw+XzKZxEI+WD4bC+RmMpn0hRxR\niURCr9cvXbr0JusyzL2vfQpU1+XzFAiCGM+QezoypNxPLMv6fD7J7isUCkEQDAYDWn80/Vhf\nTq1Qsxljsa5k1uKGxbfTelOCIMYcyVLp9fpQKAQAkUhEoVCgS4pkMhncQavVVlVVNTQ0fOPj\nj5FvShBEIUDu6QjAZFJYIKq3t1cQBJ/Ph2kFsZR5MplMpVJwocAurj3VJLSMhrn249fc9bU7\nadyUIIix5sCBAwAQDodZlm1tbRUEwev14iJ4TCCV/ufE+iaTqaGh4bFNjyW3AwBot4BqXl4E\nJwiC+AhyT4eL1+sNBALom3Z1dQUCgd7eXqwEiBkE0TfFhVy48FSj0Wg0mrKq0jJr2dcee0Cq\nDUgQBDFG4AszxuyfPn0aozZ5nsdv+/mmSqVSq9VOmDDhgQceqKuvy3wPMm2gvDo/khMEQUiQ\nezpc/H6/zWY7efIkAHR0dIRCIXRPeZ5XKBRKpVKhUKRSKYVCgctPVSqVTqcrKiq6cdmNCxYs\nIN+UIIgcIMVuRiIRXCiPgZuZTEahUPTzTa1Wa01NzerVq9FAKcygIN+UIIgCgNzTYYFDp8Fg\nsKenJxqNOp3O3t5ev98vCEI6nUajn06nk8kkLucCAKVSOXHixMrKygULFlAOKYIgcgAOnbpc\nrp6eHpfLderUqWAwGAqFcDV8v53VanVpaWljYyMtiCcIotAg93RYtLa2BoPBM2fOuFyuYDDY\n2dkp+aY4YtrP+jMMo9fra2pq7rrrLvJNCYLIDWipWlpajh075vP5gsFgMBjEiKh+e2IS/rKy\nsm9+85t5EZUgCGIIyD29NAcOHHC5XBzHHTlyJBQKeTwejuMEQZCyR6lUqr7WX6lQMgyzePHi\ndevW0Zw+QRA5Ay0V+qZutxtfoTGdSD8sFsusybOeemhzSUlJ7uUkCIIYGnJPL43L5erq6jpy\n5Ijb7QYAjuNisZgoipjgGgAwWh9RgtKmKqqrq/viF79IvilBEDnjD3/4A8dxJ06c8Pl8oVAo\nFovxPD+gb6rRaGx6283BW69+ZR58EkCTe2EJgiCGgtzTS4ApWjAWSqvVdnV1+f3+eDze1yXt\nCwPMzI/NuPX2WymHFEEQOcPr9WK5EKfTKYpid3d3OBwe0DcFAEbL3Jz55EMT12oeJt+UIIhC\nhNzTSxAMBru6umKxGA6dejyeSCQiJZPqhxGM06ZNW//kevJNCYLIJVgmCgC6urrC4TDP8wPa\nKAAwGoxTYcb3rtpGufcJgihYxpF7mkqlQqGQ0Wjstx2XjXIcd/FPPvjgg/Pnz3/44YdtbW2B\nQCCVSuGq04vjDABAB7rqmurPfelzjY2NgUBgpOJhm/F4HDOnZk0qlcri6H3B1DPyG8GK3lm3\ngArB1F1yJMlkMjLPBQCSyaR8hYzKdcHMu3IaUSgUsVgs6xbwuuDaazmSjEpHlX9x0+m0TJWi\nQrAm0/B/NfRtnkwmOY67+NSkY138k1OnTrW1tTU1NQWDQZzWH9A9VSvUU6D22fr/THwjIkwX\nQYbyEolE3m8KnMWSSmRlLUYikZBvrHiel1Z8ZdeI/P6M5bXlXxeMqJMjBgzyVB2RGFiOUaYY\nhfBUxY5aIE9VnudH9AiQaeqzZhy5pyqVymKx2Gy2ftuj0WgsFjOZTGp1f20Eg0GO47q7u8+e\nPatUKkOhkCiKA/qmGtDUTKnd+OTGrOP0k8lkMBjU6XQXO9DDJ5PJBIPBi89xRASDwWQyKbMR\njuP0er1Gk/3EoSAIkUiEZVmdTpd1I5iTXI5KAcDr9arVaovFIqcRzJsrpwWO4+LxuNlsVqlU\nWTeC5c30en3WLYiiGAqF9Ho9y7JZN4JOodVqzboFAAgEAul0WqZWsbSSHJXGYrFoNGo0GrVa\n7fB/NfStoVarTSbTxafG8zzP80ajsd/PvV5vJpPxer1tbW2JREIQhMGGTit0E9ZVfb32e5OY\nxdnfVul02u/3a7Vak8mUdSMwGjcF2mSr1SrnmR2JRLRa7YguXz/i8TjHcQzDGAyGrBtJJpM8\nz5vN5qxbAACfz6dUKuU/Asxms1KpzLqFIZ6qwwddKJkqpadqX/CpipmFhv8rObeGHMaRezpS\n/vCHPwAARkRhOBTP8wP6pgBgt9s/dedtlEOKIIjcc+jQoba2tg8//DAWi0UikcEmHIxG48o7\nVqy691OpWbIGkwiCIMYack+H4p133uno6Dh//rwgCLFYbEDfVKFQ2O32jd/aeO+99+ZeQoIg\nxjkHDhxwu92nTp3yeDyhUGiwyVC9Xn/zzTdve35bPB6HgQM7CYIgCoXsR++vbJxOp9vtDoVC\n586dEwQhHo/3LQbYF4vFcuutt5JvShBEvjhx4oTH4+nu7h7CUpWWlr722ms5FowgCCI7yD0d\nlLa2NizBwnHcYAurGYb55Cc/+dxzz+VYNoIgCImurq7Ozk5RFAezVA6H49lnn82xVARBEFlD\n7unABAKB999/3+/3D7HelGXZO++888UXX8yxbARBEBJ/+tOfnE5nKBSKx+MD7mA0Gr/yla9Q\ntjuCIC4jyD0dAK/X+4tf/KK9vT0QCAwWAKtSqW677TYaNyUIIo84nc6DBw96vd7BMsUoQLFy\nxcrHHnssx4IRBEHIgUKj+uN0On//+98fOXKkt7d3iGRp119/PY2bEgSRR5xO569+9aujR4/2\n9vYOts+cqXNefIksFUEQlxk0etqf9vb206dPY4qWwfapra394x//mEupCIIg+tHe3n7w4EGs\nGDLgDqXW0n1N+3IsFUEQhHzIPf0nDhw4cObMmffff3+I6g61tbUnT57MpVQEQRD9QGN14MCB\nQbOcGoydPZ05loogCGJUIPf0nwgGg0eOHGlubh4sHIp8U4IgCgGXy7V///4h6nm+84d3cikP\nQRDEKELu6T9wOp179+7dv3//EAGw5JsSBJF3nE5nU1PTvn37BovdXL169bx583IsFUEQxGhB\n7uk/aGpq+utf/9re3j7gtwzD+Hy+HItEEARxMU1NTe+9957H4xnw24ULF1JSEYIgLmvIPf0I\np9P53//930ePHh3wW6VSOcRqVIIgiJzhdDpfe+21Y8eODfitw+HYs2dPjkUiCIIYXcg9/YiO\njo6//e1vgwUZDBHFTxAEkUs6OjoOHTo04BokhmHa2tpyLxJBEMToQu7pR2zfvr27u3vArwZb\nikoQBJF7hjBWNMlDEMSVAbmnAAB79uz585//POBX5JsSBFE4HDp0aO/evQN+RcaKIIgrhgKt\nGhWJRH784x8fPHgwmUzOnDnza1/7WmlpKQA8//zz586dSyQS99xzz8yZM3Fnr9e7YcOG73//\n+yUlJdkd7pvf/OaA28ncEwRRUHzjG98YMO0dGSuCIK4kCnT0dPv27S6Xa/Pmzc8884xKpXrq\nqafS6fSxY8daWlqefvrpr371q88//7y087PPPnvnnXdm7Zu+++67Lpfr4u1k7gmCKCiam5s/\n/PDDi7eTsSII4gqjEN1Tr9f7/vvvr127tra2duLEievWrXO73U1NTR0dHZMnTwaA6urqzs5O\nrOP37rvvplKpZcuWZX24z372sxdvJHNPEESh0djYePFGMlYEQVx5FOLkfnNzs1arra6uxo9G\no7GysrK5uZlhGHRJU6mUQqFQKBQ+n+/VV1999NFHn3rqqXA4vGTJkhUrVsgXgMw9QRCXBW63\nO98iEARBjD6F6J6Gw2GTyaRQKKQtFoslFArNnj37zTffFATh8OHDdXV1SqVy586dq1ateuON\nN+bNm7d06dI1a9ZcffXVlZWV+KsPPvjgP/7jP6RGUqlUOBzuVwOwrKys39F7enqGqBM4GOl0\nGuT5tbieLB6PD1YGZviSZCF/X/AdQH4jyWSy70UcKagQnuflZPXKZDKZTEbmuQBAMpmU2cho\nXZdwOCxHq9hRBUHIugWpo4qimHUjAJBKpeSrVP7FRbMgv6NGo9HB0tINyNDaSyaTHMdd0li9\n+uqrarV6pBrAmyKRSIzoVxcjimKB3BShUEimGKIojujy9QP7QCwWk/kIkK+QTCYj/87Cm0JO\nC2hnOI6Tb6zkP1UTiUSBdNS8P1VRpTzPj+gRIN9WZEchuqcA0O8CYCe76qqrbr755k2bNjEM\ns2bNmj179giCcMstt+zevfvBBx/UarUNDQ3Hjx+X3FOO406fPi01UlNTg1d3iOO63W453iFe\nezlkMhmZ7ikAyG9hVBrBG7IQGrmSrkuBKCSdTstvZDx31AHDm/p+e0ljdfz48aKioqxPn/rA\nqHMlKYSMVT8K5LqMlkpHpJChjdXYUYjuqdVqDYfDmUxGclJDoZDNZgOAVatWrVq1CgCCweDu\n3bu3bNkCANFolGEYAGAYhuM4qZ2lS5d+8MEH0sf777/fZrP1i6B64oknnnjiCfxfzlsajvAZ\nDIasW8DxOb1ebzQas24EB5NQV1kTDAaTyWTWoWYIx3F6vV6j0WTdgiAIkUjEZDLpdLqsGxFF\nMR6Py1EpAHi9Xo1GY7FY5DTi9/uLiorktMBxXDwet9lsKpUq60Z4nlcqlXq9PusWRFEMhUIG\ng4Fl2awbSafT4XDYarVm3QIABAKBdDpdXFwsp5FwOMyyrByVxmKxaDRqNpu1Wu3wfzX0zhqN\nxmq19rsH3W63w+HA/+UYq3g8nkql0GZmRzqd9vv9Op3OZDJl3QiMxk0RCoVEUSwuLpYzpBSJ\nRLRa7YguXz/i8TjHcSzLynwE8DxvNpuzbgEAfD6fUqmU/wgwm81KZfahKdFoNBaLWa1WtTp7\nH4Oeqv0Yraeq0Wgc0SNAziNYDoUYGlVXVyeKYktLC34MhUKdnZ1Tp07tu89zzz13++23l5eX\nKxQKg8GAI9WxWGykvfCxxx7z+/1utzsajY6W/ARBEKNOSUlJIBBwu92RSCTfshAEQYwtheie\n2my26667bseOHS0tLZ2dndu2bautrZ0xY4a0w969e0Oh0K233oofp02b1tTUlEqlTpw40Xe3\nIUifBJA72E8QBDHmpE8DFMTcNUEQRO4oRPcUANasWVNTU/P444+vX79er9d/61vfkuZuwuHw\nSy+9tHbtWmnL6tWrf/Ob3zz88MOLFy/GzFNDk/pfiD8E4vaxE58gCGIUSP0d4msg8XS+5SAI\ngsgthbj2FAAYhnn44Ycffvjhi78ym80//elP+26pqqratm3bMFtO7YHE0wBaUC0dBTkJgiDG\niNQBSDwOAKD6RL5FIQiCyC0F6p6OEam/Q2IngAZ03wPl7HxLQxAEMQjpk5D4MUAGtE+B6rp8\nS0MQBJFbCnRyfyzIBEDcAaAD3Q/JNyUIonDJ+EHcCQCg3UK+KUEQ45FxNHqa8cG/J75jmKxX\nPPdP21OpVDqdVqvV8rPdysnEgZk1lUqlnBw3ACCKopzEEwCQTCYzmYzMRlKplFKplKnSVCql\nUqlkajWdTstXqUKhkJMhBUbjuoxKR8WKa3nvqJjXU75KAUB+b1epVLnvqE6nc4hvM93wTGyr\nsZZVvAzw8j+2j5axymQyMi/fFWasZEEcgQAAABOxSURBVN4Uo2Wsrpibgp6q/bisn6ptbW1F\nVtOT3/2/ev1oZpi6ZDrVceSeKqxwInQMTuVbDoIgCICioqLBko8qSuB090k4k2OJCIIgBiAQ\nCIxKRYCLmThx4mBfKfJVDyD38Dw/YM2GHTt2/PrXv37uuefq6+tzL5VEa2vrV77ylRUrVjzy\nyCN5FAMAHnjggba2tj/+8Y/5FePNN9/cvn37xo0bly1blkcxRFFctmzZrFmznnnmmTyKAQDf\n/e53//jHP+7atWuI+zkHNDU1PfLII3feeedXv/rVPIoBAPfcc084HH7jjTfyK8Zrr732wgsv\nPPXUU9dff/2IfqjX6wdLBT+YsXrppZd27dq1devWOXPmZCPrKNHT03PXXXctXbr029/+dh7F\nAIANGzYcOnTo7bfflpO8XT579uzZvHnzgw8+iFVj8sjy5cvLy8v7RQ/nnh/96Ee/+tWvfvSj\nH02bNi2PYrS1tX35y19evnz5+vXr8ygGADz44INOp/Pdd9/Nrxi//e1vt23btmHDhltuuWVE\nP8Qx17EQyWg0DjaUO45GTwcbqMAnBMuyMst1yARr8Gi12vyKAQDYC/MuBpa1MBgM+ZUEJ8tU\nKlXeFYITQ0ajsRA6qk6ny7tCcJ4r72JgSRWGYUZRksGM1VgcKwuwiIlGo8m78nEq3GQyySmC\nJR90jvV6fd4VgqsU8i5GgTxVsUwPPVUlCuSpOkzGUWgUQRAEQRAEUfiMo9HTwZg0aVJjY6Oc\nAuKjAsMwjY2NwykrMNbMmDFDZn3hUaG0tLSxsdFut+dXDKVS2djYWFtbm18xAKCmpqaxsXFE\ntZLHApPJ1NjYWFlZmV8xAKChoYHn+XxLARMmTGhsbJRZO36YOByOxsZGi8WSg2MNgU6nK5Cb\nor6+XmaY16hQXFzc2NhYXl6eXzEAYM6cObnpikNTVVXV2Ngop9L9qIBP1erq6vyKAQAzZszI\nuzbgwlO1pKQk34IMi3G09pQgCIIgCIIofGhynyAIgiAIgiggyD0lCIIgCIIgCohxtPY0Eon8\n+Mc/PnjwYDKZnDlz5te+9rXS0lIAeP7558+dO5dIJO65556ZM2fizl6vd8OGDd///vdHZZWG\n3+9/8cUXjx49KopidXX1fffdV1dXBwBr167t6OiQdtPr9a+//vqYijTYEXOpnOPHj3/rW9/q\nt/H+++9fvnx5bhTidrufeeaZlpaWvjmJBtPAmGpmQEly31sGFCMvXeViSXLfWwbTfy57CBmr\nIY5IxoqMFRkrpBCM1RiSGTds3rz54Ycfbm5u7uzs3Lx580MPPZRKpZqamtavX5/JZJqbmx96\n6CFp5+985zu///3vR+vQjzzyyKZNm1pbW8+fP79169YvfOELsVgsk8ncd999b731Vu8FfD5f\nJpMZU5EGPGImt8pJJBK9fThx4sQdd9zhcrkGE290xfjLX/5yzz33PPPMM7fddlvf7QNqYLDt\noyLSYJLkuLcMJkbuu8qAkuS+twym/1z2EDJWgx0xQ8aKjBUZqwsUgrEaO8bL5L7X633//ffX\nrl1bW1s7ceLEdevWud3upqamjo4ODJavrq7u7OzEugjvvvtuKpUarWzwHMeVlZWtWbNmypQp\nFRUVX/ziF0OhkMvlwq/Ky8tLLoARl2Mq0oBHzLFyNBpNSR9effXVT33qUxgJngOFiKL4gx/8\nYP78+X03DqaBMdXMgJLkvrcMKMZgh8u9QnLcWwbTfy57CBkrSRgyVmSsLinGYIcjY5XLHjIW\njJfJ/ebmZq1WKyWYMBqNlZWVzc3NDMPgxcCyywqFwufzvfrqq48++uhTTz0VDoeXLFmyYsUK\nOYc2mUwbN26UPvp8PoVCUVRUJIpiPB7fv3//yy+/HI1Ga2pq7rvvvgkTJiiVyjESabAj5lE5\nf/7zn3t6ep544okhxBtdhXz84x8HgNbW1r4bB9OAIAhjp5kBJcl9bxlQjLx0lQEl6UsOestg\n+s9lDyFjBWSsAICM1fDEIGPVT/956SFjwXgZPQ2HwyaTSaFQSFssFksoFKqvrz958qQgCB98\n8EFdXZ1Sqdy5c+eqVaveeOONefPmbdmy5a233urs7BwtMTiO27Fjx4oVK0pKSniet1qtPM8/\n9NBDmzZtSiaTjz32WDQaHTuRBjtivpSTTCZ37979hS98Aesh5V4hEoNpIL/dJo+9pdC6CuSj\nt/TVfy57CBkrKLweSMZqaMhY9WX8GKsxZby4pwDQ96oAQCaTAYCrrrrq5ptv3rRp029/+9s1\na9bs2bNHEIRbbrnl5MmTc+fO1Wq1DQ0Nx48fHxUBzp079/Wvf33mzJlf+tKXAMBisezatWvj\nxo1Tp06tq6vbuHGjIAj79u0bO5EGOyLkSTl/+ctf0un04sWLhxYvN9doQA0Mtj0HIuW3txRa\nV4Gc95Z++h/sxMdIIWSsCq0HkrEaAjJW/RhXxmrsGC+T+1arNRwOZzIZ6fKEQiGsjbRq1apV\nq1YBQDAY3L1795YtWwAgGo1iEWeGYTiOky9AU1PT1q1b77777uXLlw+4g16vLykp8fl8ORNJ\nOmJNTU1elPOnP/1pyZIlSuXA70i5VMhg3SNf3abQekveuwrktrdcrP9c9hAyVkMckYwVGauh\nyXtXgfFkrMaU8TJ6WldXJ4piS0sLfgyFQp2dnVOnTu27z3PPPXf77beXl5crFAqDwSAIAgDE\nYjH5tchOnTq1devW9evX972Bz549++yzz4qiiB9jsZjH46moqBg7kQY7Yl6UE4vFTp48ec01\n11xSvDEVAxlMA3nRTCH0loLqKpDb3jKg/nPZQ8hYDXFEMlZkrPpRUF0FxpmxGlPGi3tqs9mu\nu+66HTt2tLS0dHZ2btu2rba2dsaMGdIOe/fuDYVCt956K36cNm1aU1NTKpU6ceJE392yIJFI\nbN++feXKlVVVVd4LCIJQVFS0f//+H/3oR93d3W63e/v27WazecGCBWMn0mBHzIty2tvbU6nU\npEmTLine6IoRCAS8Xi++C0rXYjANjKlmBpQk971lQDHy0lUGlAS/yllvGUz/uewhZKyAjBUA\nkLEanhhkrPJorMYUhbQo4YqH5/kXXnhh//796XR69uzZDzzwAA5rA0A4HH7kkUc2b948YcIE\n3OJyubZv355IJK677rq77rpLznGbmpq+/e1v99uIqXpbWlpefvnl5uZmjUYzffr01atXl5WV\njalIgx0x98rZu3fvD37wgzfeeKPvapgcKOTLX/6yx+Ppt2XlypWDaWDsNDOgJJMmTcpxbxlM\nIbnvKoNJAjnsLUPcrbnsIWSsgIwVGathK4SMlUTujdXYMY7cU4IgCIIgCKLwGS+T+wRBEARB\nEMRlAbmnBEEQBEEQRAFB7ilBEARBEARRQJB7ShAEQRAEQRQQ5J4SBEEQBEEQBQS5pwRBEARB\nEEQBQe4pQRAEQRAEUUCQe0oQBEEQBEEUEOSeEgRBEARBEAUEuacEQVxOhMNho9GoUCh+/etf\nj2Kz119//dSpU0f6q/nz52fxqyeeeELxz5jN5kWLFv3qV78aaVMS2ck/nN/2Pce+e2Z37gRB\nEMNBnW8BCIIgRsArr7wSjUZtNttPfvKT22+/PcdHP3r06OzZs6Va0HfeeWcsFsuuqccee2zK\nlCkAkE6nOzs7X3nllVWrVj3zzDPr1q0bNXFHg8HOse/2fmohCIKQCbmnBEFcTrzwwgsNDQ2f\n+MQntm/ffu7cuYkTJ+by6Hv37u37UY4ruXLlyvnz50sfN23a9LGPfezxxx+///77DQZD3z0T\niYRWq836QDIZ7Bz7bu+nFoIgCJnQ5D5BEJcNH3zwwZEjR+6+++677747lUq99NJLfb9dsmTJ\nokWLjh8//vGPf9xoNJaWlt511129vb3SDj//+c/nz59vs9nMZvOcOXN+/vOfX3yIRYsWlZSU\nJBKJvhtvuOEGu91+4403rl27FgAUCsWcOXPgognu3//+9wsXLmQYprS09DOf+Uxzc/PwT41l\n2U9/+tPRaPT48eMAsHDhwhtuuOGdd96prKy87rrrcJ/f/e53ixcvNplMBoNh5syZ27Zt6ztg\nqVQqDx8+vGjRIpZli4qK7r333mAwOMxzH+K3g03iS9v/5V/+pa9ahlCgKIrDVwhBEOMZck8J\ngrhseOGFF1Qq1b/+679ec801DQ0N//Vf/9XXP1Or1Z2dnatXr163bt2JEye2b9/+y1/+8t/+\n7d/w29dff/2uu+6qrKz82c9+9uqrr9rt9rvuuuvtt9/ud4jVq1f7fL633npL2tLd3b137967\n7777+eefv+222wDg4MGDu3fv7vfDd955Z/ny5SzLvvDCC9/97nePHj26ZMmS7u7u4Z8dDpqi\nD6fVagOBwDe+8Y3169f/n//zfwDgjTfeWL58OQC89NJLv/nNbxYuXLh+/foNGzZIP49EIp/5\nzGduueWWn/3sZ5///Od37dp1zz33DPPch/jtJdmxY0dftQyhQI1GM3xtEAQxrskQBEFcDnAc\nZzKZPvnJT+LH7du3A8D//M//SDvceOONAPDee+9JW2666abi4mL8f+vWrTfffHMikcCPoVBI\nrVb/v/buLqSpN44D+O+4tTkXs+FsmzgKolfsxaDpVhGjv6OQSUKkkTSaK6KLIiPwLrrRgiCo\ni2joRZaYFvZiaIWEEaE2Ba2LLLrIZr6UjHwjxa3TxfPvdNrcPK6LjvD9XO08L2fP87sYP55z\nnmeHDh1il9u3b1+7di3P85OTk0uXLnW5XMJNrl69SkTd3d08z5eWlop/NnNyclgvnuc3bdq0\nZs2aUCjELjs7O1Uq1ZUrV6Incu7cOSJqb2+PKN+5c6dCoQgGg8JcGhsbhdp169ZZLJbp6Wmh\npLCwcMmSJaOjo2z8RHT37l2htri4mIj6+/ulzD1OX/EchShFlIvDEj+AAABSYPUUABaH27dv\nT0xMeDwedllSUqJSqaqrq8VtNBrNrl27hMvMzMxgMMg+nz179smTJ8ICnk6nM5lMnz59ivgW\nrVZ74MCBlpaWL1++sJKGhoasrKytW7fGGdvXr19fv37tdDoVCgUrsVqtMzMzwtpttGAwODw8\nPDw8PDQ05Pf7S0tLX7x4cfToUb1ezxoolUqXy8U+Dw4O9vX17d27V61WC3fIz8+fnZ3t6Ohg\nl2q1uqCgQKh1Op1E1N3dLWXucfouVGIBBAAQQ3oKAIuDz+dLTU212+2jo6NsydDpdN67d09I\nQIlo+fLl4i4KhYL/9fT/27dvZWVl69evT01NTU5OTk5OHhgY+PHjR/QXeTyeUCh069YtIhoa\nGnr58uW8T7oHBgaIyGg0Sp9Ofn6+2Ww2m80ZGRlWq7WmpubEiRNsSZhJT09XKv/fvfr582ci\nitgHlpGRwUYoXIqfnpvNZiJir97OO/c4fROQQAABAMSwcx8AFoHe3l6/30+/cjKxmzdvnjp1\nat47FBUVtbW1nT9/3uFw6HQ6juPYA/Ro7BF2TU1NWVnZnTt3OI4rKSmRMsjp6WkpzZjLly+z\nrUUcx2m12qysrGXLlokbiHfrcxxHRBH7jVjmzaqIKBwOR9cmJSWRhLnH6ZuAhAMIAMAgPQWA\nRcDn8xFRXV2dwWAQl7vd7urq6nnT08HBwadPn548ebK8vJyVhEKhsbGxWO2PHDlSXl7+9u3b\n+vr6vLw8tpoYh8VioV9rqIL+/v6UlJT09PQ5u+Tm5ooPlpJy/0AgIC5kXycsqY6MjITDYeHt\ngpGRESIyGo1S5h6rr8ThRVtoAAEAxPBwHwDk7vv377W1tTabrbi4+L8/HT58+M2bN69evYp/\nh/HxcSJKS0sTSqqqqqampiJWDQVut1upVF68eLG9vd3tdgvlbKkyFApFtDcYDJs3b25qapqa\nmmIlfX19K1euvHbt2sKnOwej0bhx48ZHjx6JT8i/f/9+SkqKzWZjlzMzM83NzUJta2trUlLS\ntm3bpMw9Vl+Jw4sOS6wAAgBIgdVTAJC7+vr6sbExtj08gsfjuXDhQlVVldVqjXOHVatWWSwW\nn8+3ZcsWvV7/8OHDnp4eh8PR1dX17NmznJyciPYmk2nPnj03btzQ6XTs1CSGvVpQUVGxYcOG\n/fv3i7tUVFS4XC6Hw3H8+PFwOHzp0iWTyeT1ehOf9p8qKysLCgry8vJOnz6tUqnq6upaWloq\nKyt1Oh1rkJmZeebMmUAgsHr16tbW1tra2oMHD5pMprS0tHnnHquvxLFFhyVWAAEAJPmn5wYA\nAMzPbrdrtdqJiYk5a9lJ9ZOTk7t3716xYoW4Snzgkd/vt9ls7Mz8Y8eOjY+PNzU1GQwGs9n8\n/v178ZFJTGNjIxF5vV5xYSAQyM7O1mg07D88xYcr8Tzf3Nxss9k0Go3BYCgsLHz37t2cA451\nsJRY9Fx4nn/8+DE7OV+tVmdnZ7NjXxmr1Wq327u6unbs2KHRaPR6vdfrFSIWf+7x+0o5WCoi\nLHECCAAgBcfjX5IBAKI8ePBg3759HR0d0WurIAUCCAAJQ3oKABBpdnY2NzdXqVR2dnb+67Es\nSgggAPwNvHsKAPDbx48fe3p6rl+/3tvb+/z58389nMUHAQSAv4ed+wAAv7W1tRUVFX348KGh\noYH92ycsCAIIAH8PD/cBAAAAQEawegoAAAAAMoL0FAAAAABkBOkpAAAAAMgI0lMAAAAAkBGk\npwAAAAAgI0hPAQAAAEBGkJ4CAAAAgIwgPQUAAAAAGUF6CgAAAAAygvQUAAAAAGTkJ/VQaxRn\n48aeAAAAAElFTkSuQmCC",
"text/plain": [
"plot without title"
]
},
"metadata": {},
"output_type": "display_data",
"source": "R display func"
}
],
"source": [
"width = 7.55\n",
"height = 4.2\n",
"options(repr.plot.width=width, repr.plot.height=height)\n",
"gg_scatter = long_df %>%\n",
" dplyr::filter(method != 'Lizee') %>%\n",
" dplyr::mutate(method = factor(method, levels=c('Lizee', 'Chung-Lu', 'Kloster'))) %>%\n",
" ggplot2::ggplot(ggplot2::aes(prior, xswap_prior)) +\n",
" ggplot2::geom_abline(slope=1, color='#f63dff', linetype='dashed') +\n",
" ggplot2::geom_point(alpha = 0.08, shape = 16, size=1) +\n",
"# ggplot2::geom_linerange(ggplot2::aes(\n",
"# ymin=boot::logit(xswap_prior - 2*prior_perm_stderr),\n",
"# ymax=boot::logit(xswap_prior + 2*prior_perm_stderr)\n",
"# )) +\n",
" ggplot2::theme_bw() +\n",
" ggplot2::coord_fixed() +\n",
" ggplot2::facet_grid(metaedge ~ method) +\n",
" ggplot2::xlab('Analytic Probability') +\n",
" ggplot2::ylab('Empiric XSwap Probability') +\n",
" ggplot2::scale_x_continuous(labels = scales::percent, breaks=seq(0,5,0.25), expand=c(0, 0.05)) +\n",
" ggplot2::scale_y_continuous(labels = scales::percent, limits=c(0, 1), expand=c(0, 0.05)) + \n",
" ggplot2::theme(strip.background = ggplot2::element_rect(fill = '#fef2e2'))\n",
"\n",
"\n",
"gg_scatter\n",
"ggplot2::ggsave('xswap-versus-analytic-priors.png', gg_scatter, dpi = 300, width = width, height = height)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th scope=col>source_degree</th><th scope=col>target_degree</th><th scope=col>xswap_prior</th><th scope=col>prior_perm_stderr</th><th scope=col>n_edges</th><th scope=col>n_possible</th><th scope=col>metaedge</th><th scope=col>logit_xswap_prior</th><th scope=col>Lizee</th><th scope=col>Chung-Lu</th><th scope=col>Kloster</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><td> 19 </td><td>68 </td><td>0.795997 </td><td>0.000466878</td><td>1 </td><td>1 </td><td>CtD </td><td>1.3614607 </td><td>0.04335716 </td><td>1.7112583 </td><td>0.6588475 </td></tr>\n",
"\t<tr><td> 17 </td><td>68 </td><td>0.768551 </td><td>0.000488645</td><td>0 </td><td>1 </td><td>CtD </td><td>1.2001474 </td><td>0.03879325 </td><td>1.5311258 </td><td>0.6327313 </td></tr>\n",
"\t<tr><td> 15 </td><td>68 </td><td>0.734184 </td><td>0.000511826</td><td>1 </td><td>1 </td><td>CtD </td><td>1.0159553 </td><td>0.03422934 </td><td>1.3509934 </td><td>0.6024808 </td></tr>\n",
"\t<tr><td> 19 </td><td>51 </td><td>0.733662 </td><td>0.000512146</td><td>0 </td><td>1 </td><td>CtD </td><td>1.0132823 </td><td>0.03251787 </td><td>1.2834437 </td><td>0.5854985 </td></tr>\n",
"\t<tr><td> 14 </td><td>68 </td><td>0.714649 </td><td>0.000523197</td><td>0 </td><td>1 </td><td>CtD </td><td>0.9180715 </td><td>0.03194738 </td><td>1.2609272 </td><td>0.5854859 </td></tr>\n",
"\t<tr><td> 17 </td><td>51 </td><td>0.698313 </td><td>0.000531781</td><td>0 </td><td>1 </td><td>CtD </td><td>0.8392774 </td><td>0.02909494 </td><td>1.1483444 </td><td>0.5575563 </td></tr>\n",
"\t<tr><td> 13 </td><td>68 </td><td>0.693760 </td><td>0.000534029</td><td>1 </td><td>1 </td><td>CtD </td><td>0.8177570 </td><td>0.02966543 </td><td>1.1708609 </td><td>0.5670301 </td></tr>\n",
"\t<tr><td> 12 </td><td>68 </td><td>0.669943 </td><td>0.000544807</td><td>1 </td><td>1 </td><td>CtD </td><td>0.7079273 </td><td>0.02738347 </td><td>1.0807947 </td><td>0.5469169 </td></tr>\n",
"\t<tr><td> 15 </td><td>51 </td><td>0.659217 </td><td>0.000549139</td><td>1 </td><td>1 </td><td>CtD </td><td>0.6598069 </td><td>0.02567200 </td><td>1.0132450 </td><td>0.5257732 </td></tr>\n",
"\t<tr><td> 19 </td><td>37 </td><td>0.652270 </td><td>0.000551778</td><td>1 </td><td>1 </td><td>CtD </td><td>0.6290323 </td><td>0.02359140 </td><td>0.9311258 </td><td>0.5010691 </td></tr>\n",
"\t<tr><td>550 </td><td>47 </td><td>0.870898 </td><td>0.000557877</td><td>1 </td><td>1 </td><td>GaD </td><td>1.9089221 </td><td>0.03577716 </td><td>2.0478492 </td><td>0.6824722 </td></tr>\n",
"\t<tr><td>540 </td><td>47 </td><td>0.868977 </td><td>0.000561392</td><td>1 </td><td>1 </td><td>GaD </td><td>1.8919438 </td><td>0.03512667 </td><td>2.0106155 </td><td>0.6783013 </td></tr>\n",
"\t<tr><td>535 </td><td>47 </td><td>0.868772 </td><td>0.000561765</td><td>1 </td><td>1 </td><td>GaD </td><td>1.8901445 </td><td>0.03480142 </td><td>1.9919987 </td><td>0.6761772 </td></tr>\n",
"\t<tr><td>550 </td><td>46 </td><td>0.867094 </td><td>0.000564798</td><td>0 </td><td>1 </td><td>GaD </td><td>1.8755053 </td><td>0.03501594 </td><td>2.0042779 </td><td>0.6777754 </td></tr>\n",
"\t<tr><td>540 </td><td>46 </td><td>0.863596 </td><td>0.000571028</td><td>1 </td><td>1 </td><td>GaD </td><td>1.8454840 </td><td>0.03437929 </td><td>1.9678365 </td><td>0.6735723 </td></tr>\n",
"\t<tr><td>535 </td><td>46 </td><td>0.862912 </td><td>0.000572231</td><td>1 </td><td>1 </td><td>GaD </td><td>1.8396897 </td><td>0.03406096 </td><td>1.9496158 </td><td>0.6714321 </td></tr>\n",
"\t<tr><td>496 </td><td>47 </td><td>0.856368 </td><td>0.000583504</td><td>1 </td><td>1 </td><td>GaD </td><td>1.7854457 </td><td>0.03226449 </td><td>1.8467876 </td><td>0.6586613 </td></tr>\n",
"\t<tr><td>496 </td><td>46 </td><td>0.851676 </td><td>0.000591331</td><td>1 </td><td>1 </td><td>GaD </td><td>1.7478071 </td><td>0.03157801 </td><td>1.8074943 </td><td>0.6537910 </td></tr>\n",
"\t<tr><td>478 </td><td>47 </td><td>0.851494 </td><td>0.000591632</td><td>1 </td><td>1 </td><td>GaD </td><td>1.7463671 </td><td>0.03109360 </td><td>1.7797671 </td><td>0.6499638 </td></tr>\n",
"\t<tr><td>478 </td><td>46 </td><td>0.845108 </td><td>0.000601948</td><td>1 </td><td>1 </td><td>GaD </td><td>1.6967363 </td><td>0.03043204 </td><td>1.7418997 </td><td>0.6450364 </td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllllllll}\n",
" source\\_degree & target\\_degree & xswap\\_prior & prior\\_perm\\_stderr & n\\_edges & n\\_possible & metaedge & logit\\_xswap\\_prior & Lizee & Chung-Lu & Kloster\\\\\n",
"\\hline\n",
"\t 19 & 68 & 0.795997 & 0.000466878 & 1 & 1 & CtD & 1.3614607 & 0.04335716 & 1.7112583 & 0.6588475 \\\\\n",
"\t 17 & 68 & 0.768551 & 0.000488645 & 0 & 1 & CtD & 1.2001474 & 0.03879325 & 1.5311258 & 0.6327313 \\\\\n",
"\t 15 & 68 & 0.734184 & 0.000511826 & 1 & 1 & CtD & 1.0159553 & 0.03422934 & 1.3509934 & 0.6024808 \\\\\n",
"\t 19 & 51 & 0.733662 & 0.000512146 & 0 & 1 & CtD & 1.0132823 & 0.03251787 & 1.2834437 & 0.5854985 \\\\\n",
"\t 14 & 68 & 0.714649 & 0.000523197 & 0 & 1 & CtD & 0.9180715 & 0.03194738 & 1.2609272 & 0.5854859 \\\\\n",
"\t 17 & 51 & 0.698313 & 0.000531781 & 0 & 1 & CtD & 0.8392774 & 0.02909494 & 1.1483444 & 0.5575563 \\\\\n",
"\t 13 & 68 & 0.693760 & 0.000534029 & 1 & 1 & CtD & 0.8177570 & 0.02966543 & 1.1708609 & 0.5670301 \\\\\n",
"\t 12 & 68 & 0.669943 & 0.000544807 & 1 & 1 & CtD & 0.7079273 & 0.02738347 & 1.0807947 & 0.5469169 \\\\\n",
"\t 15 & 51 & 0.659217 & 0.000549139 & 1 & 1 & CtD & 0.6598069 & 0.02567200 & 1.0132450 & 0.5257732 \\\\\n",
"\t 19 & 37 & 0.652270 & 0.000551778 & 1 & 1 & CtD & 0.6290323 & 0.02359140 & 0.9311258 & 0.5010691 \\\\\n",
"\t 550 & 47 & 0.870898 & 0.000557877 & 1 & 1 & GaD & 1.9089221 & 0.03577716 & 2.0478492 & 0.6824722 \\\\\n",
"\t 540 & 47 & 0.868977 & 0.000561392 & 1 & 1 & GaD & 1.8919438 & 0.03512667 & 2.0106155 & 0.6783013 \\\\\n",
"\t 535 & 47 & 0.868772 & 0.000561765 & 1 & 1 & GaD & 1.8901445 & 0.03480142 & 1.9919987 & 0.6761772 \\\\\n",
"\t 550 & 46 & 0.867094 & 0.000564798 & 0 & 1 & GaD & 1.8755053 & 0.03501594 & 2.0042779 & 0.6777754 \\\\\n",
"\t 540 & 46 & 0.863596 & 0.000571028 & 1 & 1 & GaD & 1.8454840 & 0.03437929 & 1.9678365 & 0.6735723 \\\\\n",
"\t 535 & 46 & 0.862912 & 0.000572231 & 1 & 1 & GaD & 1.8396897 & 0.03406096 & 1.9496158 & 0.6714321 \\\\\n",
"\t 496 & 47 & 0.856368 & 0.000583504 & 1 & 1 & GaD & 1.7854457 & 0.03226449 & 1.8467876 & 0.6586613 \\\\\n",
"\t 496 & 46 & 0.851676 & 0.000591331 & 1 & 1 & GaD & 1.7478071 & 0.03157801 & 1.8074943 & 0.6537910 \\\\\n",
"\t 478 & 47 & 0.851494 & 0.000591632 & 1 & 1 & GaD & 1.7463671 & 0.03109360 & 1.7797671 & 0.6499638 \\\\\n",
"\t 478 & 46 & 0.845108 & 0.000601948 & 1 & 1 & GaD & 1.6967363 & 0.03043204 & 1.7418997 & 0.6450364 \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"source_degree | target_degree | xswap_prior | prior_perm_stderr | n_edges | n_possible | metaedge | logit_xswap_prior | Lizee | Chung-Lu | Kloster | \n",
"|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n",
"| 19 | 68 | 0.795997 | 0.000466878 | 1 | 1 | CtD | 1.3614607 | 0.04335716 | 1.7112583 | 0.6588475 | \n",
"| 17 | 68 | 0.768551 | 0.000488645 | 0 | 1 | CtD | 1.2001474 | 0.03879325 | 1.5311258 | 0.6327313 | \n",
"| 15 | 68 | 0.734184 | 0.000511826 | 1 | 1 | CtD | 1.0159553 | 0.03422934 | 1.3509934 | 0.6024808 | \n",
"| 19 | 51 | 0.733662 | 0.000512146 | 0 | 1 | CtD | 1.0132823 | 0.03251787 | 1.2834437 | 0.5854985 | \n",
"| 14 | 68 | 0.714649 | 0.000523197 | 0 | 1 | CtD | 0.9180715 | 0.03194738 | 1.2609272 | 0.5854859 | \n",
"| 17 | 51 | 0.698313 | 0.000531781 | 0 | 1 | CtD | 0.8392774 | 0.02909494 | 1.1483444 | 0.5575563 | \n",
"| 13 | 68 | 0.693760 | 0.000534029 | 1 | 1 | CtD | 0.8177570 | 0.02966543 | 1.1708609 | 0.5670301 | \n",
"| 12 | 68 | 0.669943 | 0.000544807 | 1 | 1 | CtD | 0.7079273 | 0.02738347 | 1.0807947 | 0.5469169 | \n",
"| 15 | 51 | 0.659217 | 0.000549139 | 1 | 1 | CtD | 0.6598069 | 0.02567200 | 1.0132450 | 0.5257732 | \n",
"| 19 | 37 | 0.652270 | 0.000551778 | 1 | 1 | CtD | 0.6290323 | 0.02359140 | 0.9311258 | 0.5010691 | \n",
"| 550 | 47 | 0.870898 | 0.000557877 | 1 | 1 | GaD | 1.9089221 | 0.03577716 | 2.0478492 | 0.6824722 | \n",
"| 540 | 47 | 0.868977 | 0.000561392 | 1 | 1 | GaD | 1.8919438 | 0.03512667 | 2.0106155 | 0.6783013 | \n",
"| 535 | 47 | 0.868772 | 0.000561765 | 1 | 1 | GaD | 1.8901445 | 0.03480142 | 1.9919987 | 0.6761772 | \n",
"| 550 | 46 | 0.867094 | 0.000564798 | 0 | 1 | GaD | 1.8755053 | 0.03501594 | 2.0042779 | 0.6777754 | \n",
"| 540 | 46 | 0.863596 | 0.000571028 | 1 | 1 | GaD | 1.8454840 | 0.03437929 | 1.9678365 | 0.6735723 | \n",
"| 535 | 46 | 0.862912 | 0.000572231 | 1 | 1 | GaD | 1.8396897 | 0.03406096 | 1.9496158 | 0.6714321 | \n",
"| 496 | 47 | 0.856368 | 0.000583504 | 1 | 1 | GaD | 1.7854457 | 0.03226449 | 1.8467876 | 0.6586613 | \n",
"| 496 | 46 | 0.851676 | 0.000591331 | 1 | 1 | GaD | 1.7478071 | 0.03157801 | 1.8074943 | 0.6537910 | \n",
"| 478 | 47 | 0.851494 | 0.000591632 | 1 | 1 | GaD | 1.7463671 | 0.03109360 | 1.7797671 | 0.6499638 | \n",
"| 478 | 46 | 0.845108 | 0.000601948 | 1 | 1 | GaD | 1.6967363 | 0.03043204 | 1.7418997 | 0.6450364 | \n",
"\n",
"\n"
],
"text/plain": [
" source_degree target_degree xswap_prior prior_perm_stderr n_edges n_possible\n",
"1 19 68 0.795997 0.000466878 1 1 \n",
"2 17 68 0.768551 0.000488645 0 1 \n",
"3 15 68 0.734184 0.000511826 1 1 \n",
"4 19 51 0.733662 0.000512146 0 1 \n",
"5 14 68 0.714649 0.000523197 0 1 \n",
"6 17 51 0.698313 0.000531781 0 1 \n",
"7 13 68 0.693760 0.000534029 1 1 \n",
"8 12 68 0.669943 0.000544807 1 1 \n",
"9 15 51 0.659217 0.000549139 1 1 \n",
"10 19 37 0.652270 0.000551778 1 1 \n",
"11 550 47 0.870898 0.000557877 1 1 \n",
"12 540 47 0.868977 0.000561392 1 1 \n",
"13 535 47 0.868772 0.000561765 1 1 \n",
"14 550 46 0.867094 0.000564798 0 1 \n",
"15 540 46 0.863596 0.000571028 1 1 \n",
"16 535 46 0.862912 0.000572231 1 1 \n",
"17 496 47 0.856368 0.000583504 1 1 \n",
"18 496 46 0.851676 0.000591331 1 1 \n",
"19 478 47 0.851494 0.000591632 1 1 \n",
"20 478 46 0.845108 0.000601948 1 1 \n",
" metaedge logit_xswap_prior Lizee Chung-Lu Kloster \n",
"1 CtD 1.3614607 0.04335716 1.7112583 0.6588475\n",
"2 CtD 1.2001474 0.03879325 1.5311258 0.6327313\n",
"3 CtD 1.0159553 0.03422934 1.3509934 0.6024808\n",
"4 CtD 1.0132823 0.03251787 1.2834437 0.5854985\n",
"5 CtD 0.9180715 0.03194738 1.2609272 0.5854859\n",
"6 CtD 0.8392774 0.02909494 1.1483444 0.5575563\n",
"7 CtD 0.8177570 0.02966543 1.1708609 0.5670301\n",
"8 CtD 0.7079273 0.02738347 1.0807947 0.5469169\n",
"9 CtD 0.6598069 0.02567200 1.0132450 0.5257732\n",
"10 CtD 0.6290323 0.02359140 0.9311258 0.5010691\n",
"11 GaD 1.9089221 0.03577716 2.0478492 0.6824722\n",
"12 GaD 1.8919438 0.03512667 2.0106155 0.6783013\n",
"13 GaD 1.8901445 0.03480142 1.9919987 0.6761772\n",
"14 GaD 1.8755053 0.03501594 2.0042779 0.6777754\n",
"15 GaD 1.8454840 0.03437929 1.9678365 0.6735723\n",
"16 GaD 1.8396897 0.03406096 1.9496158 0.6714321\n",
"17 GaD 1.7854457 0.03226449 1.8467876 0.6586613\n",
"18 GaD 1.7478071 0.03157801 1.8074943 0.6537910\n",
"19 GaD 1.7463671 0.03109360 1.7797671 0.6499638\n",
"20 GaD 1.6967363 0.03043204 1.7418997 0.6450364"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Top 10 degree-pairs with the highest XSwap prior\n",
"degree_prior_df %>%\n",
" dplyr::group_by(metaedge) %>%\n",
" dplyr::arrange(desc(xswap_prior)) %>%\n",
" dplyr::do(head(., 10))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"R version 3.4.1 (2017-06-30)\n",
"Platform: x86_64-pc-linux-gnu (64-bit)\n",
"Running under: Ubuntu 18.04.1 LTS\n",
"\n",
"Matrix products: default\n",
"BLAS: /home/dhimmel/anaconda3/envs/r35/lib/R/lib/libRblas.so\n",
"LAPACK: /home/dhimmel/anaconda3/envs/r35/lib/R/lib/libRlapack.so\n",
"\n",
"locale:\n",
" [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C \n",
" [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 \n",
" [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 \n",
" [7] LC_PAPER=en_US.UTF-8 LC_NAME=C \n",
" [9] LC_ADDRESS=C LC_TELEPHONE=C \n",
"[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C \n",
"\n",
"attached base packages:\n",
"[1] stats graphics grDevices utils datasets methods base \n",
"\n",
"other attached packages:\n",
"[1] bindrcpp_0.2.2\n",
"\n",
"loaded via a namespace (and not attached):\n",
" [1] Rcpp_0.12.17 plyr_1.8.4 pillar_1.3.0 compiler_3.4.1 \n",
" [5] bindr_0.1.1 base64enc_0.1-3 tools_3.4.1 boot_1.3-19 \n",
" [9] digest_0.6.16 uuid_0.1-2 jsonlite_1.5 evaluate_0.11 \n",
"[13] tibble_1.4.2 gtable_0.2.0 pkgconfig_2.0.2 rlang_0.2.1 \n",
"[17] IRdisplay_0.4.4 IRkernel_0.8.12 repr_0.15.0 dplyr_0.7.6 \n",
"[21] stringr_1.3.1 hms_0.4.2 grid_3.4.1 tidyselect_0.2.4\n",
"[25] glue_1.3.0 R6_2.2.2 pbdZMQ_0.3-2 reshape2_1.4.3 \n",
"[29] purrr_0.2.5 readr_1.1.1 tidyr_0.8.1 ggplot2_3.0.0 \n",
"[33] magrittr_1.5 scales_1.0.0 htmltools_0.3.6 assertthat_0.2.0\n",
"[37] colorspace_1.3-2 labeling_0.3 stringi_1.2.4 lazyeval_0.2.1 \n",
"[41] munsell_0.5.0 crayon_1.3.4 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sessionInfo()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "R",
"language": "R",
"name": "ir"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "3.4.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@dhimmel
Copy link
Author

dhimmel commented Sep 21, 2018

Here is the outputted estimated-xswap-priors.png:

estimated-xswap-priors

@dhimmel
Copy link
Author

dhimmel commented Sep 22, 2018

Here's a plot that uses ggplot2::geom_linerange to draw rough confidence intervals:

estimated-xswap-priors

The CIs are very tight.

@dhimmel
Copy link
Author

dhimmel commented Sep 24, 2018

Updated figure from this notebook that includes two metaedges:

xswap-versus-analytic-priors

Includes Disease-associates-Gene data from greenelab/snorkeling#67.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment