Cross-nested logit

Estimation of a cross-nested logit model using sampling of alternatives.

Michel Bierlaire Sat Jul 26 2025, 14:57:17

import pandas as pd
from alternatives import (
    ID_COLUMN,
    all_alternatives,
    alternatives,
    asian_and_downtown,
    only_asian,
    only_downtown,
    partitions,
)
from compare import compare
from IPython.core.display_functions import display
from specification_sampling import V, combined_variables

import biogeme.biogeme_logging as blog
from biogeme.biogeme import BIOGEME
from biogeme.expressions import Beta
from biogeme.nests import NestsForCrossNestedLogit, OneNestForCrossNestedLogit
from biogeme.results_processing import (
    EstimationResults,
    get_pandas_estimated_parameters,
)
from biogeme.sampling_of_alternatives import (
    ChoiceSetsGeneration,
    GenerateModel,
    SamplingContext,
    generate_segment_size,
)
from biogeme.tools import timeit
logger = blog.get_screen_logger(level=blog.INFO)
PARTITION = 'downtown'
MEV_PARTITION = 'uniform_asian_or_downtown'
SAMPLE_SIZE = 10  # out of 100 alternatives
SAMPLE_SIZE_MEV = 63  # out of 63 alternatives
CHOICE_COLUMN = 'cnl_3'
MODEL_NAME = f'cnl_{SAMPLE_SIZE}_{SAMPLE_SIZE_MEV}'
FILE_NAME = f'{MODEL_NAME}.dat'
the_partition = partitions.get(PARTITION)
if the_partition is None:
    raise ValueError(f'Unknown partition: {PARTITION}')
segment_sizes = list(
    generate_segment_size(SAMPLE_SIZE, the_partition.number_of_segments())
)

We use all alternatives in the nest.

mev_partition = partitions.get(MEV_PARTITION)
if mev_partition is None:
    raise ValueError(f'Unknown partition: {MEV_PARTITION}')
mev_segment_sizes = [
    SAMPLE_SIZE_MEV,
]

Nests

Downtown

mu_downtown = Beta('mu_downtown', 1, 1, None, 0)
downtown_alpha_dict = {i: 0.5 for i in asian_and_downtown} | {
    i: 1 for i in only_downtown
}
downtown_nest = OneNestForCrossNestedLogit(
    nest_param=mu_downtown, dict_of_alpha=downtown_alpha_dict, name='downtown'
)

Asian

mu_asian = Beta('mu_asian', 1, 1, None, 0)
asian_alpha_dict = {i: 0.5 for i in asian_and_downtown} | {i: 1.0 for i in only_asian}
asian_nest = OneNestForCrossNestedLogit(
    nest_param=mu_asian, dict_of_alpha=asian_alpha_dict, name='asian'
)

cnl_nests = NestsForCrossNestedLogit(
    choice_set=all_alternatives,
    tuple_of_nests=(downtown_nest, asian_nest),
)
The following elements do not appear in any nest and are assumed each to be alone in a separate nest: {2, 4, 5, 6, 8, 10, 12, 16, 19, 21, 23, 25, 26, 28, 29, 35, 39, 41, 42, 43, 44, 52, 53, 58, 59, 62, 64, 65, 66, 67, 69, 71, 73, 82, 85, 95, 96}. If it is not the intention, check the assignment of alternatives to nests.
observations = pd.read_csv('obs_choice.dat')
context = SamplingContext(
    the_partition=the_partition,
    sample_sizes=segment_sizes,
    individuals=observations,
    choice_column=CHOICE_COLUMN,
    alternatives=alternatives,
    id_column=ID_COLUMN,
    biogeme_file_name=FILE_NAME,
    utility_function=V,
    combined_variables=combined_variables,
    mev_partition=mev_partition,
    mev_sample_sizes=mev_segment_sizes,
    cnl_nests=cnl_nests,
)
logger.info(context.reporting())
Size of the choice set: 100
Main partition: 2 segment(s) of size 46, 54
Main sample: 10: 5/46, 5/54
Nbr of MEV alternatives: 63
MEV partition: 1 segment(s) of size 63
MEV sample: 63: 63/63
the_data_generation = ChoiceSetsGeneration(context=context)
the_model_generation = GenerateModel(context=context)
biogeme_database = the_data_generation.sample_and_merge(recycle=False)
Generating 10 + 63 alternatives for 10000 observations

  0%|          | 0/10000 [00:00<?, ?it/s]
  0%|          | 12/10000 [00:00<01:29, 111.72it/s]
  0%|          | 24/10000 [00:00<01:26, 115.79it/s]
  0%|          | 36/10000 [00:00<01:24, 117.36it/s]
  0%|          | 48/10000 [00:00<01:24, 118.26it/s]
  1%|          | 61/10000 [00:00<01:23, 119.18it/s]
  1%|          | 74/10000 [00:00<01:22, 120.03it/s]
  1%|          | 87/10000 [00:00<01:22, 120.56it/s]
  1%|          | 100/10000 [00:00<01:21, 120.95it/s]
  1%|          | 113/10000 [00:00<01:21, 121.18it/s]
  1%|▏         | 126/10000 [00:01<01:21, 121.06it/s]
  1%|▏         | 139/10000 [00:01<01:21, 120.80it/s]
  2%|▏         | 152/10000 [00:01<01:22, 118.97it/s]
  2%|▏         | 164/10000 [00:01<01:22, 119.07it/s]
  2%|▏         | 177/10000 [00:01<01:22, 119.36it/s]
  2%|▏         | 190/10000 [00:01<01:21, 119.69it/s]
  2%|▏         | 203/10000 [00:01<01:21, 119.98it/s]
  2%|▏         | 216/10000 [00:01<01:21, 120.40it/s]
  2%|▏         | 229/10000 [00:01<01:20, 120.66it/s]
  2%|▏         | 242/10000 [00:02<01:20, 120.60it/s]
  3%|▎         | 255/10000 [00:02<01:20, 120.36it/s]
  3%|▎         | 268/10000 [00:02<01:20, 120.41it/s]
  3%|▎         | 281/10000 [00:02<01:20, 120.33it/s]
  3%|▎         | 294/10000 [00:02<01:20, 120.19it/s]
  3%|▎         | 307/10000 [00:02<01:20, 119.90it/s]
  3%|▎         | 319/10000 [00:02<01:21, 118.60it/s]
  3%|▎         | 331/10000 [00:02<01:22, 117.59it/s]
  3%|▎         | 343/10000 [00:02<01:21, 118.27it/s]
  4%|▎         | 355/10000 [00:02<01:21, 118.66it/s]
  4%|▎         | 367/10000 [00:03<01:21, 118.59it/s]
  4%|▍         | 379/10000 [00:03<01:20, 118.79it/s]
  4%|▍         | 391/10000 [00:03<01:20, 118.91it/s]
  4%|▍         | 403/10000 [00:03<01:20, 119.16it/s]
  4%|▍         | 415/10000 [00:03<01:20, 119.37it/s]
  4%|▍         | 427/10000 [00:03<01:20, 119.55it/s]
  4%|▍         | 440/10000 [00:03<01:19, 119.77it/s]
  5%|▍         | 452/10000 [00:03<01:19, 119.83it/s]
  5%|▍         | 465/10000 [00:03<01:19, 120.06it/s]
  5%|▍         | 478/10000 [00:04<01:22, 115.70it/s]
  5%|▍         | 490/10000 [00:04<01:24, 111.98it/s]
  5%|▌         | 502/10000 [00:04<01:26, 109.32it/s]
  5%|▌         | 513/10000 [00:04<01:27, 107.89it/s]
  5%|▌         | 524/10000 [00:04<01:28, 106.88it/s]
  5%|▌         | 535/10000 [00:04<01:29, 106.21it/s]
  5%|▌         | 546/10000 [00:04<01:29, 105.63it/s]
  6%|▌         | 557/10000 [00:04<01:29, 105.16it/s]
  6%|▌         | 568/10000 [00:04<01:29, 105.07it/s]
  6%|▌         | 579/10000 [00:04<01:29, 104.92it/s]
  6%|▌         | 590/10000 [00:05<01:30, 104.27it/s]
  6%|▌         | 601/10000 [00:05<01:30, 104.16it/s]
  6%|▌         | 612/10000 [00:05<01:41, 92.83it/s]
  6%|▌         | 623/10000 [00:05<01:37, 95.92it/s]
  6%|▋         | 634/10000 [00:05<01:35, 98.21it/s]
  6%|▋         | 645/10000 [00:05<01:33, 99.89it/s]
  7%|▋         | 656/10000 [00:05<01:32, 101.17it/s]
  7%|▋         | 667/10000 [00:05<01:31, 102.04it/s]
  7%|▋         | 678/10000 [00:05<01:30, 102.70it/s]
  7%|▋         | 689/10000 [00:06<01:30, 102.96it/s]
  7%|▋         | 700/10000 [00:06<01:30, 103.19it/s]
  7%|▋         | 711/10000 [00:06<01:29, 103.24it/s]
  7%|▋         | 722/10000 [00:06<01:29, 103.44it/s]
  7%|▋         | 733/10000 [00:06<01:29, 103.68it/s]
  7%|▋         | 744/10000 [00:06<01:29, 103.27it/s]
  8%|▊         | 755/10000 [00:06<01:29, 103.54it/s]
  8%|▊         | 766/10000 [00:06<01:28, 103.91it/s]
  8%|▊         | 777/10000 [00:06<01:32, 100.20it/s]
  8%|▊         | 788/10000 [00:07<01:35, 96.26it/s]
  8%|▊         | 798/10000 [00:07<01:37, 94.24it/s]
  8%|▊         | 808/10000 [00:07<01:39, 92.55it/s]
  8%|▊         | 818/10000 [00:07<01:40, 91.31it/s]
  8%|▊         | 828/10000 [00:07<01:41, 90.39it/s]
  8%|▊         | 838/10000 [00:07<01:44, 87.82it/s]
  8%|▊         | 847/10000 [00:07<01:44, 87.98it/s]
  9%|▊         | 856/10000 [00:07<01:43, 88.29it/s]
  9%|▊         | 865/10000 [00:07<01:43, 88.61it/s]
  9%|▊         | 874/10000 [00:08<01:43, 88.35it/s]
  9%|▉         | 883/10000 [00:08<01:43, 88.13it/s]
  9%|▉         | 892/10000 [00:08<01:43, 88.20it/s]
  9%|▉         | 901/10000 [00:08<01:45, 86.16it/s]
  9%|▉         | 910/10000 [00:08<01:45, 86.51it/s]
  9%|▉         | 919/10000 [00:08<01:44, 86.94it/s]
  9%|▉         | 928/10000 [00:08<01:43, 87.29it/s]
  9%|▉         | 937/10000 [00:08<01:43, 87.54it/s]
  9%|▉         | 946/10000 [00:08<01:43, 87.88it/s]
 10%|▉         | 956/10000 [00:08<01:41, 89.32it/s]
 10%|▉         | 967/10000 [00:09<01:36, 93.35it/s]
 10%|▉         | 978/10000 [00:09<01:33, 96.65it/s]
 10%|▉         | 989/10000 [00:09<01:30, 99.07it/s]
 10%|█         | 1000/10000 [00:09<01:30, 99.68it/s]
 10%|█         | 1010/10000 [00:09<01:30, 99.14it/s]
 10%|█         | 1021/10000 [00:09<01:29, 100.50it/s]
 10%|█         | 1032/10000 [00:09<01:28, 101.57it/s]
 10%|█         | 1043/10000 [00:09<01:27, 102.39it/s]
 11%|█         | 1054/10000 [00:09<01:26, 103.02it/s]
 11%|█         | 1065/10000 [00:10<01:26, 103.28it/s]
 11%|█         | 1076/10000 [00:10<01:26, 103.39it/s]
 11%|█         | 1087/10000 [00:10<01:26, 103.57it/s]
 11%|█         | 1098/10000 [00:10<01:25, 103.69it/s]
 11%|█         | 1109/10000 [00:10<01:25, 103.86it/s]
 11%|█         | 1120/10000 [00:10<01:25, 103.91it/s]
 11%|█▏        | 1131/10000 [00:10<01:25, 104.08it/s]
 11%|█▏        | 1142/10000 [00:10<01:25, 104.17it/s]
 12%|█▏        | 1153/10000 [00:10<01:24, 104.31it/s]
 12%|█▏        | 1164/10000 [00:10<01:24, 104.17it/s]
 12%|█▏        | 1175/10000 [00:11<01:24, 103.85it/s]
 12%|█▏        | 1186/10000 [00:11<01:24, 103.75it/s]
 12%|█▏        | 1197/10000 [00:11<01:27, 100.46it/s]
 12%|█▏        | 1208/10000 [00:11<01:31, 96.12it/s]
 12%|█▏        | 1218/10000 [00:11<01:33, 93.94it/s]
 12%|█▏        | 1228/10000 [00:11<01:36, 90.91it/s]
 12%|█▏        | 1238/10000 [00:11<01:39, 87.88it/s]
 12%|█▏        | 1247/10000 [00:11<01:46, 82.16it/s]
 13%|█▎        | 1256/10000 [00:12<01:51, 78.74it/s]
 13%|█▎        | 1264/10000 [00:12<01:53, 76.76it/s]
 13%|█▎        | 1272/10000 [00:12<01:55, 75.49it/s]
 13%|█▎        | 1280/10000 [00:12<01:56, 74.60it/s]
 13%|█▎        | 1288/10000 [00:12<01:57, 73.96it/s]
 13%|█▎        | 1296/10000 [00:12<01:58, 73.55it/s]
 13%|█▎        | 1304/10000 [00:12<01:58, 73.25it/s]
 13%|█▎        | 1312/10000 [00:12<01:58, 73.07it/s]
 13%|█▎        | 1320/10000 [00:12<01:58, 73.07it/s]
 13%|█▎        | 1328/10000 [00:13<01:59, 72.76it/s]
 13%|█▎        | 1336/10000 [00:13<02:01, 71.09it/s]
 13%|█▎        | 1344/10000 [00:13<02:00, 71.65it/s]
 14%|█▎        | 1352/10000 [00:13<02:00, 71.81it/s]
 14%|█▎        | 1360/10000 [00:13<02:00, 71.96it/s]
 14%|█▎        | 1368/10000 [00:13<01:59, 72.10it/s]
 14%|█▍        | 1376/10000 [00:13<01:59, 72.25it/s]
 14%|█▍        | 1384/10000 [00:13<01:59, 72.31it/s]
 14%|█▍        | 1392/10000 [00:13<01:58, 72.58it/s]
 14%|█▍        | 1400/10000 [00:14<01:58, 72.80it/s]
 14%|█▍        | 1409/10000 [00:14<01:51, 77.20it/s]
 14%|█▍        | 1418/10000 [00:14<01:46, 80.49it/s]
 14%|█▍        | 1427/10000 [00:14<01:43, 82.75it/s]
 14%|█▍        | 1436/10000 [00:14<01:41, 84.47it/s]
 14%|█▍        | 1445/10000 [00:14<01:39, 85.71it/s]
 15%|█▍        | 1454/10000 [00:14<01:38, 86.63it/s]
 15%|█▍        | 1463/10000 [00:14<01:37, 87.29it/s]
 15%|█▍        | 1472/10000 [00:14<01:37, 87.86it/s]
 15%|█▍        | 1481/10000 [00:14<01:36, 88.17it/s]
 15%|█▍        | 1490/10000 [00:15<01:36, 88.04it/s]
 15%|█▍        | 1499/10000 [00:15<01:36, 88.13it/s]
 15%|█▌        | 1508/10000 [00:15<01:36, 88.15it/s]
 15%|█▌        | 1517/10000 [00:15<01:35, 88.37it/s]
 15%|█▌        | 1526/10000 [00:15<01:35, 88.54it/s]
 15%|█▌        | 1535/10000 [00:15<01:35, 88.55it/s]
 15%|█▌        | 1544/10000 [00:15<01:35, 88.60it/s]
 16%|█▌        | 1553/10000 [00:15<01:35, 88.66it/s]
 16%|█▌        | 1562/10000 [00:15<01:34, 88.89it/s]
 16%|█▌        | 1571/10000 [00:15<01:34, 88.86it/s]
 16%|█▌        | 1580/10000 [00:16<01:34, 88.66it/s]
 16%|█▌        | 1590/10000 [00:16<01:33, 90.32it/s]
 16%|█▌        | 1601/10000 [00:16<01:28, 94.61it/s]
 16%|█▌        | 1612/10000 [00:16<01:26, 97.50it/s]
 16%|█▌        | 1623/10000 [00:16<01:24, 99.47it/s]
 16%|█▋        | 1634/10000 [00:16<01:23, 100.77it/s]
 16%|█▋        | 1645/10000 [00:16<01:22, 101.69it/s]
 17%|█▋        | 1656/10000 [00:16<01:21, 102.66it/s]
 17%|█▋        | 1667/10000 [00:16<01:20, 103.28it/s]
 17%|█▋        | 1678/10000 [00:17<01:20, 103.32it/s]
 17%|█▋        | 1689/10000 [00:17<01:20, 103.37it/s]
 17%|█▋        | 1700/10000 [00:17<01:20, 103.49it/s]
 17%|█▋        | 1711/10000 [00:17<01:20, 103.61it/s]
 17%|█▋        | 1722/10000 [00:17<01:19, 103.82it/s]
 17%|█▋        | 1733/10000 [00:17<01:19, 103.96it/s]
 17%|█▋        | 1744/10000 [00:17<01:19, 104.06it/s]
 18%|█▊        | 1755/10000 [00:17<01:19, 104.14it/s]
 18%|█▊        | 1766/10000 [00:17<01:18, 104.33it/s]
 18%|█▊        | 1777/10000 [00:17<01:18, 104.34it/s]
 18%|█▊        | 1788/10000 [00:18<01:18, 103.99it/s]
 18%|█▊        | 1799/10000 [00:18<01:18, 104.03it/s]
 18%|█▊        | 1810/10000 [00:18<01:18, 103.99it/s]
 18%|█▊        | 1821/10000 [00:18<01:18, 104.15it/s]
 18%|█▊        | 1832/10000 [00:18<01:20, 101.59it/s]
 18%|█▊        | 1843/10000 [00:18<01:19, 102.56it/s]
 19%|█▊        | 1854/10000 [00:18<01:19, 102.98it/s]
 19%|█▊        | 1865/10000 [00:18<01:18, 103.42it/s]
 19%|█▉        | 1876/10000 [00:18<01:18, 103.88it/s]
 19%|█▉        | 1887/10000 [00:19<01:18, 103.81it/s]
 19%|█▉        | 1898/10000 [00:19<01:18, 103.81it/s]
 19%|█▉        | 1909/10000 [00:19<01:17, 103.92it/s]
 19%|█▉        | 1920/10000 [00:19<01:16, 104.97it/s]
 19%|█▉        | 1933/10000 [00:19<01:13, 109.75it/s]
 19%|█▉        | 1946/10000 [00:19<01:11, 113.06it/s]
 20%|█▉        | 1959/10000 [00:19<01:09, 115.25it/s]
 20%|█▉        | 1971/10000 [00:19<01:09, 115.50it/s]
 20%|█▉        | 1983/10000 [00:19<01:09, 114.76it/s]
 20%|█▉        | 1995/10000 [00:20<01:11, 112.66it/s]
 20%|██        | 2007/10000 [00:20<01:11, 112.29it/s]
 20%|██        | 2019/10000 [00:20<01:10, 112.85it/s]
 20%|██        | 2031/10000 [00:20<01:10, 112.55it/s]
 20%|██        | 2043/10000 [00:20<01:09, 113.97it/s]
 21%|██        | 2055/10000 [00:20<01:09, 114.77it/s]
 21%|██        | 2067/10000 [00:20<01:09, 114.86it/s]
 21%|██        | 2079/10000 [00:20<01:08, 115.53it/s]
 21%|██        | 2091/10000 [00:20<01:08, 115.25it/s]
 21%|██        | 2103/10000 [00:20<01:09, 113.48it/s]
 21%|██        | 2115/10000 [00:21<01:09, 112.99it/s]
 21%|██▏       | 2127/10000 [00:21<01:10, 111.69it/s]
 21%|██▏       | 2139/10000 [00:21<01:21, 96.88it/s]
 22%|██▏       | 2151/10000 [00:21<01:16, 102.13it/s]
 22%|██▏       | 2163/10000 [00:21<01:14, 105.04it/s]
 22%|██▏       | 2175/10000 [00:21<01:12, 107.24it/s]
 22%|██▏       | 2186/10000 [00:21<01:12, 107.99it/s]
 22%|██▏       | 2197/10000 [00:21<01:13, 106.85it/s]
 22%|██▏       | 2208/10000 [00:21<01:13, 106.35it/s]
 22%|██▏       | 2219/10000 [00:22<01:12, 107.21it/s]
 22%|██▏       | 2230/10000 [00:22<01:12, 107.48it/s]
 22%|██▏       | 2241/10000 [00:22<01:11, 107.97it/s]
 23%|██▎       | 2253/10000 [00:22<01:10, 109.72it/s]
 23%|██▎       | 2265/10000 [00:22<01:09, 110.80it/s]
 23%|██▎       | 2277/10000 [00:22<01:09, 110.77it/s]
 23%|██▎       | 2289/10000 [00:22<01:09, 110.77it/s]
 23%|██▎       | 2301/10000 [00:22<01:09, 110.79it/s]
 23%|██▎       | 2313/10000 [00:22<01:09, 110.50it/s]
 23%|██▎       | 2325/10000 [00:23<01:10, 108.25it/s]
 23%|██▎       | 2336/10000 [00:23<01:13, 104.13it/s]
 23%|██▎       | 2347/10000 [00:23<01:13, 103.99it/s]
 24%|██▎       | 2358/10000 [00:23<01:13, 103.96it/s]
 24%|██▎       | 2369/10000 [00:23<01:13, 104.13it/s]
 24%|██▍       | 2380/10000 [00:23<01:13, 104.10it/s]
 24%|██▍       | 2391/10000 [00:23<01:13, 104.08it/s]
 24%|██▍       | 2402/10000 [00:23<01:12, 104.35it/s]
 24%|██▍       | 2413/10000 [00:23<01:12, 104.57it/s]
 24%|██▍       | 2424/10000 [00:23<01:12, 104.69it/s]
 24%|██▍       | 2435/10000 [00:24<01:12, 104.44it/s]
 24%|██▍       | 2446/10000 [00:24<01:12, 104.14it/s]
 25%|██▍       | 2457/10000 [00:24<01:12, 104.22it/s]
 25%|██▍       | 2468/10000 [00:24<01:12, 104.33it/s]
 25%|██▍       | 2479/10000 [00:24<01:12, 104.44it/s]
 25%|██▍       | 2490/10000 [00:24<01:11, 104.42it/s]
 25%|██▌       | 2501/10000 [00:24<01:11, 104.55it/s]
 25%|██▌       | 2512/10000 [00:24<01:11, 104.43it/s]
 25%|██▌       | 2523/10000 [00:24<01:11, 104.55it/s]
 25%|██▌       | 2534/10000 [00:25<01:11, 104.52it/s]
 25%|██▌       | 2545/10000 [00:25<01:11, 104.25it/s]
 26%|██▌       | 2556/10000 [00:25<01:11, 104.20it/s]
 26%|██▌       | 2567/10000 [00:25<01:11, 104.28it/s]
 26%|██▌       | 2578/10000 [00:25<01:11, 104.32it/s]
 26%|██▌       | 2589/10000 [00:25<01:11, 104.35it/s]
 26%|██▌       | 2600/10000 [00:25<01:10, 104.45it/s]
 26%|██▌       | 2611/10000 [00:25<01:10, 104.42it/s]
 26%|██▌       | 2622/10000 [00:25<01:10, 104.63it/s]
 26%|██▋       | 2633/10000 [00:25<01:10, 104.74it/s]
 26%|██▋       | 2644/10000 [00:26<01:10, 104.38it/s]
 27%|██▋       | 2655/10000 [00:26<01:10, 104.16it/s]
 27%|██▋       | 2666/10000 [00:26<01:10, 104.20it/s]
 27%|██▋       | 2677/10000 [00:26<01:10, 104.42it/s]
 27%|██▋       | 2688/10000 [00:26<01:09, 104.50it/s]
 27%|██▋       | 2699/10000 [00:26<01:09, 104.50it/s]
 27%|██▋       | 2710/10000 [00:26<01:09, 104.45it/s]
 27%|██▋       | 2721/10000 [00:26<01:09, 104.73it/s]
 27%|██▋       | 2732/10000 [00:26<01:09, 104.78it/s]
 27%|██▋       | 2743/10000 [00:27<01:09, 104.32it/s]
 28%|██▊       | 2754/10000 [00:27<01:09, 103.99it/s]
 28%|██▊       | 2765/10000 [00:27<01:09, 104.00it/s]
 28%|██▊       | 2776/10000 [00:27<01:09, 104.26it/s]
 28%|██▊       | 2787/10000 [00:27<01:09, 104.34it/s]
 28%|██▊       | 2801/10000 [00:27<01:03, 114.19it/s]
 28%|██▊       | 2818/10000 [00:27<00:55, 130.07it/s]
 28%|██▊       | 2832/10000 [00:27<00:54, 130.33it/s]
 28%|██▊       | 2849/10000 [00:27<00:50, 141.14it/s]
 29%|██▊       | 2866/10000 [00:27<00:47, 149.03it/s]
 29%|██▉       | 2883/10000 [00:28<00:46, 154.37it/s]
 29%|██▉       | 2900/10000 [00:28<00:44, 158.23it/s]
 29%|██▉       | 2917/10000 [00:28<00:44, 160.98it/s]
 29%|██▉       | 2934/10000 [00:28<00:43, 162.94it/s]
 30%|██▉       | 2951/10000 [00:28<00:42, 164.41it/s]
 30%|██▉       | 2968/10000 [00:28<00:42, 165.42it/s]
 30%|██▉       | 2985/10000 [00:28<00:42, 166.18it/s]
 30%|███       | 3002/10000 [00:28<00:41, 166.64it/s]
 30%|███       | 3019/10000 [00:28<00:41, 167.08it/s]
 30%|███       | 3036/10000 [00:28<00:41, 167.39it/s]
 31%|███       | 3053/10000 [00:29<00:41, 167.57it/s]
 31%|███       | 3070/10000 [00:36<15:49,  7.30it/s]
 31%|███       | 3085/10000 [00:36<11:40,  9.88it/s]
 31%|███       | 3102/10000 [00:36<08:16, 13.89it/s]
 31%|███       | 3119/10000 [00:36<05:56, 19.29it/s]
 31%|███▏      | 3136/10000 [00:37<04:20, 26.38it/s]
 32%|███▏      | 3153/10000 [00:37<03:13, 35.41it/s]
 32%|███▏      | 3170/10000 [00:37<02:26, 46.48it/s]
 32%|███▏      | 3187/10000 [00:37<01:54, 59.43it/s]
 32%|███▏      | 3204/10000 [00:37<01:32, 73.75it/s]
 32%|███▏      | 3221/10000 [00:37<01:16, 88.58it/s]
 32%|███▏      | 3238/10000 [00:37<01:05, 103.11it/s]
 33%|███▎      | 3255/10000 [00:37<00:57, 116.50it/s]
 33%|███▎      | 3272/10000 [00:37<00:52, 128.16it/s]
 33%|███▎      | 3289/10000 [00:37<00:48, 137.83it/s]
 33%|███▎      | 3306/10000 [00:38<00:46, 145.50it/s]
 33%|███▎      | 3323/10000 [00:38<00:44, 151.56it/s]
 33%|███▎      | 3340/10000 [00:38<00:43, 153.84it/s]
 34%|███▎      | 3357/10000 [00:38<00:42, 156.39it/s]
 34%|███▎      | 3374/10000 [00:38<00:41, 158.71it/s]
 34%|███▍      | 3391/10000 [00:38<00:41, 160.29it/s]
 34%|███▍      | 3408/10000 [00:38<00:40, 162.17it/s]
 34%|███▍      | 3425/10000 [00:38<00:40, 163.62it/s]
 34%|███▍      | 3442/10000 [00:38<00:39, 164.67it/s]
 35%|███▍      | 3459/10000 [00:38<00:39, 165.55it/s]
 35%|███▍      | 3476/10000 [00:39<00:39, 166.21it/s]
 35%|███▍      | 3493/10000 [00:39<00:39, 166.78it/s]
 35%|███▌      | 3510/10000 [00:39<00:38, 166.90it/s]
 35%|███▌      | 3527/10000 [00:39<00:38, 166.84it/s]
 35%|███▌      | 3544/10000 [00:39<00:38, 166.96it/s]
 36%|███▌      | 3561/10000 [00:39<00:38, 166.95it/s]
 36%|███▌      | 3578/10000 [00:39<00:38, 167.08it/s]
 36%|███▌      | 3595/10000 [00:39<00:38, 167.20it/s]
 36%|███▌      | 3612/10000 [00:39<00:38, 167.25it/s]
 36%|███▋      | 3629/10000 [00:39<00:38, 167.33it/s]
 36%|███▋      | 3646/10000 [00:40<00:37, 167.32it/s]
 37%|███▋      | 3663/10000 [00:40<00:37, 167.55it/s]
 37%|███▋      | 3680/10000 [00:40<00:37, 167.87it/s]
 37%|███▋      | 3697/10000 [00:40<00:37, 167.61it/s]
 37%|███▋      | 3714/10000 [00:40<00:37, 167.36it/s]
 37%|███▋      | 3731/10000 [00:40<00:37, 167.23it/s]
 37%|███▋      | 3748/10000 [00:40<00:37, 167.21it/s]
 38%|███▊      | 3765/10000 [00:40<00:37, 167.27it/s]
 38%|███▊      | 3782/10000 [00:40<00:37, 167.30it/s]
 38%|███▊      | 3799/10000 [00:40<00:37, 166.78it/s]
 38%|███▊      | 3816/10000 [00:41<00:37, 164.08it/s]
 38%|███▊      | 3833/10000 [00:41<00:38, 160.40it/s]
 38%|███▊      | 3850/10000 [00:41<00:38, 159.54it/s]
 39%|███▊      | 3866/10000 [00:41<00:38, 158.92it/s]
 39%|███▉      | 3882/10000 [00:41<00:38, 158.49it/s]
 39%|███▉      | 3898/10000 [00:41<00:38, 158.32it/s]
 39%|███▉      | 3914/10000 [00:41<00:38, 158.36it/s]
 39%|███▉      | 3930/10000 [00:41<00:38, 158.53it/s]
 39%|███▉      | 3946/10000 [00:41<00:38, 158.69it/s]
 40%|███▉      | 3962/10000 [00:42<00:38, 158.04it/s]
 40%|███▉      | 3978/10000 [00:42<00:38, 154.80it/s]
 40%|███▉      | 3994/10000 [00:42<00:39, 151.90it/s]
 40%|████      | 4010/10000 [00:42<00:40, 149.31it/s]
 40%|████      | 4025/10000 [00:42<00:40, 148.31it/s]
 40%|████      | 4040/10000 [00:42<00:41, 144.89it/s]
 41%|████      | 4055/10000 [00:42<00:41, 141.85it/s]
 41%|████      | 4070/10000 [00:42<00:42, 139.73it/s]
 41%|████      | 4084/10000 [00:42<00:42, 138.03it/s]
 41%|████      | 4098/10000 [00:43<00:44, 132.61it/s]
 41%|████      | 4112/10000 [00:43<00:45, 128.79it/s]
 41%|████▏     | 4125/10000 [00:43<00:46, 126.39it/s]
 41%|████▏     | 4138/10000 [00:43<00:47, 124.36it/s]
 42%|████▏     | 4151/10000 [00:43<00:49, 118.86it/s]
 42%|████▏     | 4163/10000 [00:43<00:51, 114.39it/s]
 42%|████▏     | 4175/10000 [00:43<00:52, 111.36it/s]
 42%|████▏     | 4187/10000 [00:43<00:53, 109.32it/s]
 42%|████▏     | 4198/10000 [00:43<00:53, 108.02it/s]
 42%|████▏     | 4209/10000 [00:44<00:55, 103.77it/s]
 42%|████▏     | 4220/10000 [00:44<00:58, 99.24it/s]
 42%|████▏     | 4230/10000 [00:44<00:59, 96.27it/s]
 42%|████▏     | 4240/10000 [00:44<01:01, 93.93it/s]
 42%|████▎     | 4250/10000 [00:44<01:02, 92.39it/s]
 43%|████▎     | 4260/10000 [00:44<01:06, 86.68it/s]
 43%|████▎     | 4269/10000 [00:44<01:09, 82.47it/s]
 43%|████▎     | 4278/10000 [00:44<01:11, 79.49it/s]
 43%|████▎     | 4286/10000 [00:44<01:13, 77.62it/s]
 43%|████▎     | 4294/10000 [00:45<01:14, 76.28it/s]
 43%|████▎     | 4302/10000 [00:45<01:16, 74.03it/s]
 43%|████▎     | 4310/10000 [00:45<01:18, 72.60it/s]
 43%|████▎     | 4318/10000 [00:45<01:18, 72.42it/s]
 43%|████▎     | 4326/10000 [00:45<01:18, 72.38it/s]
 43%|████▎     | 4334/10000 [00:45<01:20, 70.21it/s]
 43%|████▎     | 4342/10000 [00:45<01:19, 70.76it/s]
 44%|████▎     | 4350/10000 [00:45<01:19, 71.28it/s]
 44%|████▎     | 4358/10000 [00:45<01:18, 71.73it/s]
 44%|████▎     | 4366/10000 [00:46<01:18, 71.98it/s]
 44%|████▎     | 4374/10000 [00:46<01:22, 67.91it/s]
 44%|████▍     | 4381/10000 [00:46<01:25, 65.52it/s]
 44%|████▍     | 4388/10000 [00:46<01:27, 64.38it/s]
 44%|████▍     | 4395/10000 [00:46<01:27, 63.77it/s]
 44%|████▍     | 4402/10000 [00:46<01:32, 60.69it/s]
 44%|████▍     | 4409/10000 [00:46<01:35, 58.54it/s]
 44%|████▍     | 4415/10000 [00:46<01:36, 57.97it/s]
 44%|████▍     | 4421/10000 [00:47<01:38, 56.93it/s]
 44%|████▍     | 4427/10000 [00:47<01:39, 55.86it/s]
 44%|████▍     | 4433/10000 [00:47<01:41, 54.91it/s]
 44%|████▍     | 4439/10000 [00:47<01:41, 54.61it/s]
 44%|████▍     | 4445/10000 [00:47<01:41, 54.98it/s]
 45%|████▍     | 4451/10000 [00:47<01:40, 55.14it/s]
 45%|████▍     | 4457/10000 [00:47<01:40, 55.29it/s]
 45%|████▍     | 4463/10000 [00:47<01:40, 55.00it/s]
 45%|████▍     | 4469/10000 [00:47<01:41, 54.48it/s]
 45%|████▍     | 4475/10000 [00:48<01:42, 54.16it/s]
 45%|████▍     | 4481/10000 [00:48<01:42, 53.63it/s]
 45%|████▍     | 4487/10000 [00:48<01:42, 53.57it/s]
 45%|████▍     | 4493/10000 [00:48<01:44, 52.55it/s]
 45%|████▍     | 4499/10000 [00:48<01:44, 52.77it/s]
 45%|████▌     | 4505/10000 [00:48<01:44, 52.61it/s]
 45%|████▌     | 4511/10000 [00:48<01:44, 52.75it/s]
 45%|████▌     | 4517/10000 [00:48<01:44, 52.63it/s]
 45%|████▌     | 4523/10000 [00:48<01:43, 53.11it/s]
 45%|████▌     | 4529/10000 [00:49<01:44, 52.55it/s]
 45%|████▌     | 4535/10000 [00:49<01:42, 53.27it/s]
 45%|████▌     | 4541/10000 [00:49<01:41, 53.81it/s]
 45%|████▌     | 4547/10000 [00:49<01:43, 52.89it/s]
 46%|████▌     | 4553/10000 [00:49<01:41, 53.75it/s]
 46%|████▌     | 4559/10000 [00:49<01:39, 54.87it/s]
 46%|████▌     | 4565/10000 [00:49<01:41, 53.60it/s]
 46%|████▌     | 4571/10000 [00:49<01:39, 54.68it/s]
 46%|████▌     | 4577/10000 [00:49<01:44, 51.83it/s]
 46%|████▌     | 4583/10000 [00:50<01:42, 52.66it/s]
 46%|████▌     | 4589/10000 [00:50<01:44, 51.73it/s]
 46%|████▌     | 4595/10000 [00:50<01:52, 48.08it/s]
 46%|████▌     | 4601/10000 [00:50<01:47, 50.12it/s]
 46%|████▌     | 4607/10000 [00:50<01:42, 52.52it/s]
 46%|████▌     | 4614/10000 [00:50<01:36, 55.60it/s]
 46%|████▌     | 4621/10000 [00:50<01:30, 59.38it/s]
 46%|████▋     | 4628/10000 [00:50<01:26, 61.98it/s]
 46%|████▋     | 4635/10000 [00:50<01:24, 63.27it/s]
 46%|████▋     | 4642/10000 [00:51<01:22, 65.08it/s]
 46%|████▋     | 4649/10000 [00:51<01:21, 65.72it/s]
 47%|████▋     | 4656/10000 [00:51<01:20, 66.41it/s]
 47%|████▋     | 4664/10000 [00:51<01:18, 67.90it/s]
 47%|████▋     | 4672/10000 [00:51<01:17, 69.09it/s]
 47%|████▋     | 4680/10000 [00:51<01:15, 70.04it/s]
 47%|████▋     | 4688/10000 [00:51<01:15, 70.65it/s]
 47%|████▋     | 4696/10000 [00:51<01:14, 71.12it/s]
 47%|████▋     | 4704/10000 [00:51<01:14, 71.43it/s]
 47%|████▋     | 4712/10000 [00:52<01:13, 71.71it/s]
 47%|████▋     | 4720/10000 [00:52<01:13, 71.91it/s]
 47%|████▋     | 4728/10000 [00:52<01:12, 72.51it/s]
 47%|████▋     | 4737/10000 [00:52<01:08, 76.99it/s]
 47%|████▋     | 4746/10000 [00:52<01:05, 80.44it/s]
 48%|████▊     | 4755/10000 [00:52<01:03, 82.78it/s]
 48%|████▊     | 4764/10000 [00:52<01:02, 84.38it/s]
 48%|████▊     | 4773/10000 [00:52<01:01, 85.59it/s]
 48%|████▊     | 4782/10000 [00:52<01:00, 86.42it/s]
 48%|████▊     | 4792/10000 [00:53<00:58, 88.30it/s]
 48%|████▊     | 4803/10000 [00:53<00:55, 93.07it/s]
 48%|████▊     | 4814/10000 [00:53<00:53, 96.47it/s]
 48%|████▊     | 4825/10000 [00:53<00:52, 98.47it/s]
 48%|████▊     | 4835/10000 [00:53<00:53, 97.22it/s]
 48%|████▊     | 4846/10000 [00:53<00:52, 98.99it/s]
 49%|████▊     | 4857/10000 [00:53<00:51, 100.45it/s]
 49%|████▊     | 4868/10000 [00:53<00:50, 101.50it/s]
 49%|████▉     | 4879/10000 [00:53<00:50, 102.31it/s]
 49%|████▉     | 4890/10000 [00:53<00:49, 102.76it/s]
 49%|████▉     | 4902/10000 [00:54<00:47, 107.61it/s]
 49%|████▉     | 4914/10000 [00:54<00:45, 110.82it/s]
 49%|████▉     | 4926/10000 [00:54<00:45, 112.31it/s]
 49%|████▉     | 4938/10000 [00:54<00:44, 114.36it/s]
 50%|████▉     | 4950/10000 [00:54<00:43, 115.91it/s]
 50%|████▉     | 4962/10000 [00:54<00:43, 117.05it/s]
 50%|████▉     | 4975/10000 [00:54<00:42, 118.01it/s]
 50%|████▉     | 4987/10000 [00:54<00:42, 118.55it/s]
 50%|████▉     | 4999/10000 [00:54<00:42, 118.97it/s]
 50%|█████     | 5011/10000 [00:54<00:41, 119.26it/s]
 50%|█████     | 5023/10000 [00:55<00:41, 119.41it/s]
 50%|█████     | 5036/10000 [00:55<00:41, 119.73it/s]
 50%|█████     | 5049/10000 [00:55<00:41, 119.85it/s]
 51%|█████     | 5061/10000 [00:55<00:41, 119.59it/s]
 51%|█████     | 5073/10000 [00:55<00:41, 119.54it/s]
 51%|█████     | 5085/10000 [00:55<00:41, 119.62it/s]
 51%|█████     | 5098/10000 [00:55<00:40, 119.81it/s]
 51%|█████     | 5111/10000 [00:55<00:40, 119.99it/s]
 51%|█████     | 5124/10000 [00:55<00:40, 120.10it/s]
 51%|█████▏    | 5137/10000 [00:56<00:40, 120.21it/s]
 52%|█████▏    | 5150/10000 [00:56<00:40, 120.28it/s]
 52%|█████▏    | 5163/10000 [00:56<00:40, 120.46it/s]
 52%|█████▏    | 5176/10000 [00:56<00:40, 120.13it/s]
 52%|█████▏    | 5189/10000 [00:56<00:40, 120.24it/s]
 52%|█████▏    | 5202/10000 [00:56<00:40, 118.23it/s]
 52%|█████▏    | 5214/10000 [00:56<00:40, 118.45it/s]
 52%|█████▏    | 5226/10000 [00:56<00:40, 118.84it/s]
 52%|█████▏    | 5239/10000 [00:56<00:39, 119.22it/s]
 53%|█████▎    | 5252/10000 [00:56<00:39, 119.60it/s]
 53%|█████▎    | 5264/10000 [00:57<00:39, 119.69it/s]
 53%|█████▎    | 5277/10000 [00:57<00:39, 119.88it/s]
 53%|█████▎    | 5289/10000 [00:57<00:39, 119.90it/s]
 53%|█████▎    | 5301/10000 [00:57<00:39, 119.65it/s]
 53%|█████▎    | 5314/10000 [00:57<00:39, 119.78it/s]
 53%|█████▎    | 5327/10000 [00:57<00:38, 119.86it/s]
 53%|█████▎    | 5339/10000 [00:57<00:39, 116.85it/s]
 54%|█████▎    | 5352/10000 [00:57<00:39, 118.12it/s]
 54%|█████▎    | 5365/10000 [00:57<00:38, 119.00it/s]
 54%|█████▍    | 5377/10000 [00:58<00:38, 119.02it/s]
 54%|█████▍    | 5389/10000 [00:58<00:38, 118.81it/s]
 54%|█████▍    | 5401/10000 [00:58<00:38, 118.08it/s]
 54%|█████▍    | 5413/10000 [00:58<00:38, 118.15it/s]
 54%|█████▍    | 5425/10000 [00:58<00:38, 118.35it/s]
 54%|█████▍    | 5437/10000 [00:58<00:38, 117.50it/s]
 54%|█████▍    | 5449/10000 [00:58<00:38, 117.90it/s]
 55%|█████▍    | 5461/10000 [00:58<00:38, 117.83it/s]
 55%|█████▍    | 5473/10000 [00:58<00:38, 118.40it/s]
 55%|█████▍    | 5486/10000 [00:58<00:37, 119.03it/s]
 55%|█████▍    | 5499/10000 [00:59<00:37, 119.66it/s]
 55%|█████▌    | 5512/10000 [00:59<00:37, 120.04it/s]
 55%|█████▌    | 5525/10000 [00:59<00:37, 120.10it/s]
 55%|█████▌    | 5538/10000 [00:59<00:38, 116.80it/s]
 56%|█████▌    | 5550/10000 [00:59<00:39, 112.89it/s]
 56%|█████▌    | 5562/10000 [00:59<00:40, 110.23it/s]
 56%|█████▌    | 5574/10000 [00:59<00:40, 108.53it/s]
 56%|█████▌    | 5585/10000 [00:59<00:41, 107.34it/s]
 56%|█████▌    | 5596/10000 [00:59<00:41, 106.55it/s]
 56%|█████▌    | 5607/10000 [01:00<00:41, 105.87it/s]
 56%|█████▌    | 5618/10000 [01:00<00:41, 105.50it/s]
 56%|█████▋    | 5629/10000 [01:00<00:41, 105.16it/s]
 56%|█████▋    | 5640/10000 [01:00<00:41, 104.70it/s]
 57%|█████▋    | 5651/10000 [01:00<00:41, 104.56it/s]
 57%|█████▋    | 5662/10000 [01:00<00:41, 104.51it/s]
 57%|█████▋    | 5673/10000 [01:00<00:41, 104.56it/s]
 57%|█████▋    | 5684/10000 [01:00<00:41, 104.59it/s]
 57%|█████▋    | 5695/10000 [01:00<00:41, 104.56it/s]
 57%|█████▋    | 5706/10000 [01:01<00:41, 104.47it/s]
 57%|█████▋    | 5717/10000 [01:01<00:41, 104.44it/s]
 57%|█████▋    | 5728/10000 [01:01<00:40, 104.53it/s]
 57%|█████▋    | 5739/10000 [01:01<00:40, 104.32it/s]
 57%|█████▊    | 5750/10000 [01:01<00:40, 104.25it/s]
 58%|█████▊    | 5761/10000 [01:01<00:40, 104.27it/s]
 58%|█████▊    | 5772/10000 [01:01<00:40, 104.35it/s]
 58%|█████▊    | 5783/10000 [01:01<00:40, 104.43it/s]
 58%|█████▊    | 5794/10000 [01:01<00:40, 104.46it/s]
 58%|█████▊    | 5805/10000 [01:01<00:40, 104.52it/s]
 58%|█████▊    | 5816/10000 [01:02<00:40, 104.45it/s]
 58%|█████▊    | 5827/10000 [01:02<00:39, 104.58it/s]
 58%|█████▊    | 5838/10000 [01:02<00:41, 101.46it/s]
 58%|█████▊    | 5849/10000 [01:02<00:40, 101.99it/s]
 59%|█████▊    | 5860/10000 [01:02<00:40, 102.57it/s]
 59%|█████▊    | 5871/10000 [01:02<00:40, 103.03it/s]
 59%|█████▉    | 5882/10000 [01:02<00:39, 103.43it/s]
 59%|█████▉    | 5893/10000 [01:02<00:39, 103.70it/s]
 59%|█████▉    | 5904/10000 [01:02<00:40, 100.51it/s]
 59%|█████▉    | 5915/10000 [01:03<00:42, 96.83it/s]
 59%|█████▉    | 5925/10000 [01:03<00:43, 94.66it/s]
 59%|█████▉    | 5935/10000 [01:03<00:43, 93.05it/s]
 59%|█████▉    | 5945/10000 [01:03<00:44, 91.67it/s]
 60%|█████▉    | 5955/10000 [01:03<00:44, 90.81it/s]
 60%|█████▉    | 5965/10000 [01:03<00:44, 90.30it/s]
 60%|█████▉    | 5975/10000 [01:03<00:44, 89.86it/s]
 60%|█████▉    | 5984/10000 [01:03<00:44, 89.68it/s]
 60%|█████▉    | 5993/10000 [01:03<00:44, 89.53it/s]
 60%|██████    | 6002/10000 [01:04<00:44, 89.37it/s]
 60%|██████    | 6011/10000 [01:04<00:44, 89.44it/s]
 60%|██████    | 6020/10000 [01:04<00:44, 89.51it/s]
 60%|██████    | 6029/10000 [01:04<00:44, 89.15it/s]
 60%|██████    | 6038/10000 [01:04<00:44, 89.01it/s]
 60%|██████    | 6047/10000 [01:04<00:44, 88.99it/s]
 61%|██████    | 6056/10000 [01:04<00:44, 89.00it/s]
 61%|██████    | 6066/10000 [01:04<00:43, 89.91it/s]
 61%|██████    | 6077/10000 [01:04<00:41, 94.44it/s]
 61%|██████    | 6088/10000 [01:04<00:40, 97.54it/s]
 61%|██████    | 6099/10000 [01:05<00:39, 99.68it/s]
 61%|██████    | 6110/10000 [01:05<00:38, 101.14it/s]
 61%|██████    | 6121/10000 [01:05<00:37, 102.09it/s]
 61%|██████▏   | 6132/10000 [01:05<00:37, 102.61it/s]
 61%|██████▏   | 6143/10000 [01:05<00:37, 103.08it/s]
 62%|██████▏   | 6154/10000 [01:05<00:37, 103.50it/s]
 62%|██████▏   | 6165/10000 [01:05<00:36, 103.81it/s]
 62%|██████▏   | 6176/10000 [01:05<00:36, 104.11it/s]
 62%|██████▏   | 6187/10000 [01:05<00:36, 104.28it/s]
 62%|██████▏   | 6198/10000 [01:06<00:36, 104.36it/s]
 62%|██████▏   | 6209/10000 [01:06<00:36, 104.47it/s]
 62%|██████▏   | 6220/10000 [01:06<00:36, 104.70it/s]
 62%|██████▏   | 6231/10000 [01:06<00:36, 104.24it/s]
 62%|██████▏   | 6242/10000 [01:06<00:36, 104.26it/s]
 63%|██████▎   | 6253/10000 [01:06<00:35, 104.50it/s]
 63%|██████▎   | 6264/10000 [01:06<00:35, 104.36it/s]
 63%|██████▎   | 6275/10000 [01:06<00:35, 104.27it/s]
 63%|██████▎   | 6286/10000 [01:06<00:35, 104.27it/s]
 63%|██████▎   | 6297/10000 [01:06<00:35, 104.29it/s]
 63%|██████▎   | 6308/10000 [01:07<00:35, 104.28it/s]
 63%|██████▎   | 6319/10000 [01:07<00:35, 104.44it/s]
 63%|██████▎   | 6330/10000 [01:07<00:36, 101.89it/s]
 63%|██████▎   | 6341/10000 [01:07<00:35, 102.21it/s]
 64%|██████▎   | 6352/10000 [01:07<00:35, 102.83it/s]
 64%|██████▎   | 6363/10000 [01:07<00:35, 103.32it/s]
 64%|██████▎   | 6374/10000 [01:07<00:34, 103.74it/s]
 64%|██████▍   | 6385/10000 [01:07<00:34, 104.03it/s]
 64%|██████▍   | 6396/10000 [01:07<00:34, 104.26it/s]
 64%|██████▍   | 6407/10000 [01:08<00:34, 104.39it/s]
 64%|██████▍   | 6418/10000 [01:08<00:34, 104.51it/s]
 64%|██████▍   | 6429/10000 [01:08<00:34, 104.34it/s]
 64%|██████▍   | 6440/10000 [01:08<00:34, 104.08it/s]
 65%|██████▍   | 6451/10000 [01:08<00:34, 104.21it/s]
 65%|██████▍   | 6462/10000 [01:08<00:34, 103.20it/s]
 65%|██████▍   | 6473/10000 [01:08<00:34, 102.93it/s]
 65%|██████▍   | 6484/10000 [01:08<00:34, 103.07it/s]
 65%|██████▍   | 6495/10000 [01:08<00:33, 103.28it/s]
 65%|██████▌   | 6506/10000 [01:08<00:33, 102.81it/s]
 65%|██████▌   | 6517/10000 [01:09<00:33, 103.33it/s]
 65%|██████▌   | 6528/10000 [01:09<00:33, 103.64it/s]
 65%|██████▌   | 6539/10000 [01:09<00:33, 103.72it/s]
 66%|██████▌   | 6550/10000 [01:09<00:33, 103.77it/s]
 66%|██████▌   | 6561/10000 [01:09<00:33, 103.92it/s]
 66%|██████▌   | 6572/10000 [01:09<00:32, 104.11it/s]
 66%|██████▌   | 6583/10000 [01:09<00:32, 104.27it/s]
 66%|██████▌   | 6594/10000 [01:09<00:32, 104.46it/s]
 66%|██████▌   | 6605/10000 [01:09<00:32, 104.36it/s]
 66%|██████▌   | 6616/10000 [01:10<00:32, 104.35it/s]
 66%|██████▋   | 6627/10000 [01:10<00:32, 104.47it/s]
 66%|██████▋   | 6638/10000 [01:10<00:32, 104.56it/s]
 66%|██████▋   | 6649/10000 [01:10<00:32, 104.22it/s]
 67%|██████▋   | 6660/10000 [01:10<00:32, 104.18it/s]
 67%|██████▋   | 6671/10000 [01:10<00:31, 104.13it/s]
 67%|██████▋   | 6682/10000 [01:10<00:31, 104.22it/s]
 67%|██████▋   | 6693/10000 [01:10<00:31, 104.36it/s]
 67%|██████▋   | 6704/10000 [01:10<00:31, 104.36it/s]
 67%|██████▋   | 6715/10000 [01:10<00:31, 104.38it/s]
 67%|██████▋   | 6726/10000 [01:11<00:31, 104.31it/s]
 67%|██████▋   | 6737/10000 [01:11<00:31, 104.42it/s]
 67%|██████▋   | 6748/10000 [01:11<00:31, 104.28it/s]
 68%|██████▊   | 6759/10000 [01:11<00:31, 104.22it/s]
 68%|██████▊   | 6770/10000 [01:11<00:30, 104.30it/s]
 68%|██████▊   | 6781/10000 [01:11<00:30, 104.42it/s]
 68%|██████▊   | 6792/10000 [01:11<00:30, 104.48it/s]
 68%|██████▊   | 6803/10000 [01:11<00:30, 104.52it/s]
 68%|██████▊   | 6814/10000 [01:11<00:30, 104.58it/s]
 68%|██████▊   | 6825/10000 [01:12<00:30, 104.60it/s]
 68%|██████▊   | 6836/10000 [01:12<00:31, 101.98it/s]
 68%|██████▊   | 6847/10000 [01:12<00:30, 102.70it/s]
 69%|██████▊   | 6858/10000 [01:12<00:30, 103.00it/s]
 69%|██████▊   | 6869/10000 [01:12<00:30, 103.40it/s]
 69%|██████▉   | 6880/10000 [01:12<00:30, 103.65it/s]
 69%|██████▉   | 6891/10000 [01:12<00:29, 103.96it/s]
 69%|██████▉   | 6902/10000 [01:12<00:29, 104.14it/s]
 69%|██████▉   | 6913/10000 [01:12<00:29, 103.95it/s]
 69%|██████▉   | 6924/10000 [01:13<00:29, 103.94it/s]
 69%|██████▉   | 6935/10000 [01:13<00:29, 104.12it/s]
 69%|██████▉   | 6946/10000 [01:13<00:29, 104.27it/s]
 70%|██████▉   | 6957/10000 [01:13<00:29, 104.15it/s]
 70%|██████▉   | 6968/10000 [01:13<00:29, 104.12it/s]
 70%|██████▉   | 6979/10000 [01:13<00:29, 103.34it/s]
 70%|██████▉   | 6990/10000 [01:13<00:29, 102.97it/s]
 70%|███████   | 7001/10000 [01:13<00:29, 102.77it/s]
 70%|███████   | 7012/10000 [01:13<00:28, 103.30it/s]
 70%|███████   | 7023/10000 [01:13<00:28, 103.58it/s]
 70%|███████   | 7034/10000 [01:14<00:28, 103.98it/s]
 70%|███████   | 7045/10000 [01:14<00:28, 104.10it/s]
 71%|███████   | 7056/10000 [01:14<00:28, 104.03it/s]
 71%|███████   | 7067/10000 [01:14<00:28, 103.86it/s]
 71%|███████   | 7078/10000 [01:14<00:28, 103.88it/s]
 71%|███████   | 7089/10000 [01:14<00:27, 104.01it/s]
 71%|███████   | 7100/10000 [01:14<00:27, 104.17it/s]
 71%|███████   | 7111/10000 [01:14<00:27, 104.20it/s]
 71%|███████   | 7122/10000 [01:14<00:27, 104.29it/s]
 71%|███████▏  | 7133/10000 [01:15<00:27, 104.33it/s]
 71%|███████▏  | 7144/10000 [01:15<00:27, 104.19it/s]
 72%|███████▏  | 7155/10000 [01:15<00:27, 104.45it/s]
 72%|███████▏  | 7166/10000 [01:15<00:27, 104.61it/s]
 72%|███████▏  | 7177/10000 [01:15<00:27, 104.40it/s]
 72%|███████▏  | 7188/10000 [01:15<00:26, 104.46it/s]
 72%|███████▏  | 7199/10000 [01:15<00:26, 104.24it/s]
 72%|███████▏  | 7210/10000 [01:15<00:26, 104.25it/s]
 72%|███████▏  | 7221/10000 [01:15<00:26, 104.40it/s]
 72%|███████▏  | 7232/10000 [01:15<00:26, 104.38it/s]
 72%|███████▏  | 7243/10000 [01:16<00:26, 104.32it/s]
 73%|███████▎  | 7254/10000 [01:16<00:26, 104.48it/s]
 73%|███████▎  | 7265/10000 [01:16<00:26, 104.49it/s]
 73%|███████▎  | 7276/10000 [01:16<00:26, 104.39it/s]
 73%|███████▎  | 7287/10000 [01:16<00:25, 104.55it/s]
 73%|███████▎  | 7298/10000 [01:16<00:26, 103.61it/s]
 73%|███████▎  | 7309/10000 [01:16<00:26, 103.39it/s]
 73%|███████▎  | 7320/10000 [01:16<00:25, 103.28it/s]
 73%|███████▎  | 7331/10000 [01:16<00:26, 100.44it/s]
 73%|███████▎  | 7342/10000 [01:17<00:26, 101.16it/s]
 74%|███████▎  | 7353/10000 [01:17<00:25, 101.98it/s]
 74%|███████▎  | 7364/10000 [01:17<00:25, 102.19it/s]
 74%|███████▍  | 7375/10000 [01:17<00:25, 102.50it/s]
 74%|███████▍  | 7386/10000 [01:17<00:25, 102.88it/s]
 74%|███████▍  | 7397/10000 [01:17<00:25, 103.19it/s]
 74%|███████▍  | 7408/10000 [01:17<00:25, 103.45it/s]
 74%|███████▍  | 7419/10000 [01:17<00:24, 103.65it/s]
 74%|███████▍  | 7430/10000 [01:17<00:24, 103.84it/s]
 74%|███████▍  | 7441/10000 [01:17<00:24, 104.10it/s]
 75%|███████▍  | 7452/10000 [01:18<00:24, 104.14it/s]
 75%|███████▍  | 7463/10000 [01:18<00:24, 104.43it/s]
 75%|███████▍  | 7474/10000 [01:18<00:24, 104.05it/s]
 75%|███████▍  | 7485/10000 [01:18<00:24, 103.94it/s]
 75%|███████▍  | 7496/10000 [01:18<00:24, 101.28it/s]
 75%|███████▌  | 7507/10000 [01:18<00:25, 96.15it/s]
 75%|███████▌  | 7517/10000 [01:18<00:25, 96.79it/s]
 75%|███████▌  | 7527/10000 [01:18<00:25, 96.60it/s]
 75%|███████▌  | 7537/10000 [01:18<00:25, 97.41it/s]
 75%|███████▌  | 7547/10000 [01:19<00:25, 95.31it/s]
 76%|███████▌  | 7557/10000 [01:19<00:26, 93.66it/s]
 76%|███████▌  | 7567/10000 [01:19<00:26, 92.11it/s]
 76%|███████▌  | 7577/10000 [01:19<00:26, 91.00it/s]
 76%|███████▌  | 7587/10000 [01:19<00:26, 90.38it/s]
 76%|███████▌  | 7597/10000 [01:19<00:26, 90.04it/s]
 76%|███████▌  | 7607/10000 [01:19<00:26, 91.37it/s]
 76%|███████▌  | 7618/10000 [01:19<00:25, 95.27it/s]
 76%|███████▋  | 7629/10000 [01:19<00:24, 98.03it/s]
 76%|███████▋  | 7640/10000 [01:20<00:23, 99.93it/s]
 77%|███████▋  | 7651/10000 [01:20<00:23, 101.42it/s]
 77%|███████▋  | 7662/10000 [01:20<00:22, 102.45it/s]
 77%|███████▋  | 7673/10000 [01:20<00:22, 102.81it/s]
 77%|███████▋  | 7684/10000 [01:20<00:22, 103.36it/s]
 77%|███████▋  | 7695/10000 [01:20<00:22, 103.67it/s]
 77%|███████▋  | 7706/10000 [01:20<00:22, 103.90it/s]
 77%|███████▋  | 7717/10000 [01:20<00:21, 103.96it/s]
 77%|███████▋  | 7728/10000 [01:20<00:21, 104.23it/s]
 77%|███████▋  | 7739/10000 [01:21<00:21, 104.38it/s]
 78%|███████▊  | 7750/10000 [01:21<00:21, 104.40it/s]
 78%|███████▊  | 7761/10000 [01:21<00:21, 104.52it/s]
 78%|███████▊  | 7772/10000 [01:21<00:21, 104.43it/s]
 78%|███████▊  | 7783/10000 [01:21<00:21, 104.23it/s]
 78%|███████▊  | 7794/10000 [01:21<00:21, 104.29it/s]
 78%|███████▊  | 7805/10000 [01:21<00:21, 104.37it/s]
 78%|███████▊  | 7819/10000 [01:21<00:19, 114.24it/s]
 78%|███████▊  | 7835/10000 [01:21<00:17, 127.31it/s]
 79%|███████▊  | 7852/10000 [01:21<00:15, 138.91it/s]
 79%|███████▊  | 7869/10000 [01:22<00:14, 147.29it/s]
 79%|███████▉  | 7886/10000 [01:22<00:13, 153.24it/s]
 79%|███████▉  | 7903/10000 [01:22<00:13, 157.45it/s]
 79%|███████▉  | 7920/10000 [01:22<00:12, 160.00it/s]
 79%|███████▉  | 7937/10000 [01:22<00:12, 161.92it/s]
 80%|███████▉  | 7954/10000 [01:22<00:12, 163.29it/s]
 80%|███████▉  | 7971/10000 [01:22<00:12, 164.38it/s]
 80%|███████▉  | 7988/10000 [01:22<00:12, 165.10it/s]
 80%|████████  | 8005/10000 [01:22<00:12, 165.58it/s]
 80%|████████  | 8022/10000 [01:22<00:11, 166.05it/s]
 80%|████████  | 8039/10000 [01:23<00:11, 166.27it/s]
 81%|████████  | 8056/10000 [01:23<00:11, 166.62it/s]
 81%|████████  | 8073/10000 [01:23<00:11, 166.91it/s]
 81%|████████  | 8090/10000 [01:30<04:15,  7.46it/s]
 81%|████████  | 8107/10000 [01:30<03:00, 10.46it/s]
 81%|████████  | 8124/10000 [01:30<02:08, 14.56it/s]
 81%|████████▏ | 8141/10000 [01:30<01:32, 20.06it/s]
 82%|████████▏ | 8158/10000 [01:31<01:07, 27.27it/s]
 82%|████████▏ | 8175/10000 [01:31<00:50, 36.43it/s]
 82%|████████▏ | 8192/10000 [01:31<00:37, 47.64it/s]
 82%|████████▏ | 8209/10000 [01:31<00:29, 60.70it/s]
 82%|████████▏ | 8226/10000 [01:31<00:23, 75.11it/s]
 82%|████████▏ | 8243/10000 [01:31<00:19, 90.09it/s]
 83%|████████▎ | 8260/10000 [01:31<00:16, 104.61it/s]
 83%|████████▎ | 8277/10000 [01:31<00:14, 117.80it/s]
 83%|████████▎ | 8294/10000 [01:31<00:13, 129.25it/s]
 83%|████████▎ | 8311/10000 [01:31<00:12, 138.77it/s]
 83%|████████▎ | 8328/10000 [01:32<00:11, 146.24it/s]
 83%|████████▎ | 8345/10000 [01:32<00:11, 149.88it/s]
 84%|████████▎ | 8362/10000 [01:32<00:10, 154.84it/s]
 84%|████████▍ | 8379/10000 [01:32<00:10, 158.46it/s]
 84%|████████▍ | 8396/10000 [01:32<00:09, 160.90it/s]
 84%|████████▍ | 8413/10000 [01:32<00:09, 162.59it/s]
 84%|████████▍ | 8430/10000 [01:32<00:09, 164.01it/s]
 84%|████████▍ | 8447/10000 [01:32<00:09, 165.03it/s]
 85%|████████▍ | 8464/10000 [01:32<00:09, 165.77it/s]
 85%|████████▍ | 8481/10000 [01:32<00:09, 166.37it/s]
 85%|████████▍ | 8498/10000 [01:33<00:09, 166.80it/s]
 85%|████████▌ | 8515/10000 [01:33<00:08, 166.90it/s]
 85%|████████▌ | 8532/10000 [01:33<00:08, 167.31it/s]
 85%|████████▌ | 8549/10000 [01:33<00:08, 167.25it/s]
 86%|████████▌ | 8566/10000 [01:33<00:08, 167.23it/s]
 86%|████████▌ | 8583/10000 [01:33<00:08, 167.24it/s]
 86%|████████▌ | 8600/10000 [01:33<00:08, 167.13it/s]
 86%|████████▌ | 8617/10000 [01:33<00:08, 167.13it/s]
 86%|████████▋ | 8634/10000 [01:33<00:08, 167.24it/s]
 87%|████████▋ | 8651/10000 [01:33<00:08, 167.38it/s]
 87%|████████▋ | 8668/10000 [01:34<00:07, 167.39it/s]
 87%|████████▋ | 8685/10000 [01:34<00:07, 167.47it/s]
 87%|████████▋ | 8702/10000 [01:34<00:07, 167.85it/s]
 87%|████████▋ | 8719/10000 [01:34<00:07, 167.71it/s]
 87%|████████▋ | 8736/10000 [01:34<00:07, 167.42it/s]
 88%|████████▊ | 8753/10000 [01:34<00:07, 167.31it/s]
 88%|████████▊ | 8770/10000 [01:34<00:07, 167.35it/s]
 88%|████████▊ | 8787/10000 [01:34<00:07, 167.49it/s]
 88%|████████▊ | 8804/10000 [01:34<00:07, 167.64it/s]
 88%|████████▊ | 8821/10000 [01:34<00:07, 167.68it/s]
 88%|████████▊ | 8838/10000 [01:35<00:08, 143.89it/s]
 89%|████████▊ | 8854/10000 [01:35<00:07, 147.59it/s]
 89%|████████▊ | 8870/10000 [01:35<00:07, 150.43it/s]
 89%|████████▉ | 8886/10000 [01:35<00:07, 152.38it/s]
 89%|████████▉ | 8902/10000 [01:35<00:07, 153.88it/s]
 89%|████████▉ | 8918/10000 [01:35<00:07, 153.83it/s]
 89%|████████▉ | 8934/10000 [01:35<00:06, 154.20it/s]
 90%|████████▉ | 8950/10000 [01:35<00:06, 154.89it/s]
 90%|████████▉ | 8966/10000 [01:35<00:06, 155.53it/s]
 90%|████████▉ | 8982/10000 [01:36<00:06, 156.16it/s]
 90%|████████▉ | 8998/10000 [01:36<00:06, 156.29it/s]
 90%|█████████ | 9014/10000 [01:36<00:06, 152.35it/s]
 90%|█████████ | 9030/10000 [01:36<00:06, 150.22it/s]
 90%|█████████ | 9046/10000 [01:36<00:06, 148.88it/s]
 91%|█████████ | 9061/10000 [01:36<00:06, 148.15it/s]
 91%|█████████ | 9076/10000 [01:36<00:06, 145.18it/s]
 91%|█████████ | 9091/10000 [01:36<00:06, 142.32it/s]
 91%|█████████ | 9106/10000 [01:36<00:06, 140.50it/s]
 91%|█████████ | 9121/10000 [01:37<00:06, 137.40it/s]
 91%|█████████▏| 9135/10000 [01:37<00:06, 132.23it/s]
 91%|█████████▏| 9149/10000 [01:37<00:06, 128.78it/s]
 92%|█████████▏| 9162/10000 [01:37<00:06, 126.27it/s]
 92%|█████████▏| 9175/10000 [01:37<00:06, 123.19it/s]
 92%|█████████▏| 9188/10000 [01:37<00:06, 117.03it/s]
 92%|█████████▏| 9200/10000 [01:37<00:07, 113.14it/s]
 92%|█████████▏| 9212/10000 [01:37<00:07, 110.44it/s]
 92%|█████████▏| 9224/10000 [01:37<00:07, 108.53it/s]
 92%|█████████▏| 9235/10000 [01:38<00:07, 106.31it/s]
 92%|█████████▏| 9246/10000 [01:38<00:07, 100.74it/s]
 93%|█████████▎| 9257/10000 [01:38<00:07, 97.14it/s]
 93%|█████████▎| 9267/10000 [01:38<00:07, 94.51it/s]
 93%|█████████▎| 9277/10000 [01:38<00:07, 92.81it/s]
 93%|█████████▎| 9287/10000 [01:38<00:07, 90.34it/s]
 93%|█████████▎| 9297/10000 [01:38<00:08, 84.49it/s]
 93%|█████████▎| 9306/10000 [01:38<00:08, 80.94it/s]
 93%|█████████▎| 9315/10000 [01:39<00:08, 78.51it/s]
 93%|█████████▎| 9323/10000 [01:39<00:08, 76.86it/s]
 93%|█████████▎| 9331/10000 [01:39<00:09, 73.80it/s]
 93%|█████████▎| 9339/10000 [01:39<00:09, 73.16it/s]
 93%|█████████▎| 9347/10000 [01:39<00:08, 72.89it/s]
 94%|█████████▎| 9355/10000 [01:39<00:08, 72.76it/s]
 94%|█████████▎| 9363/10000 [01:39<00:08, 72.70it/s]
 94%|█████████▎| 9371/10000 [01:39<00:08, 72.76it/s]
 94%|█████████▍| 9379/10000 [01:39<00:08, 72.71it/s]
 94%|█████████▍| 9387/10000 [01:40<00:08, 72.74it/s]
 94%|█████████▍| 9395/10000 [01:40<00:08, 72.71it/s]
 94%|█████████▍| 9403/10000 [01:40<00:08, 71.23it/s]
 94%|█████████▍| 9411/10000 [01:40<00:08, 69.51it/s]
 94%|█████████▍| 9418/10000 [01:40<00:08, 68.77it/s]
 94%|█████████▍| 9426/10000 [01:40<00:08, 69.51it/s]
 94%|█████████▍| 9434/10000 [01:40<00:08, 70.37it/s]
 94%|█████████▍| 9442/10000 [01:40<00:08, 69.23it/s]
 94%|█████████▍| 9449/10000 [01:40<00:08, 66.91it/s]
 95%|█████████▍| 9456/10000 [01:41<00:08, 64.09it/s]
 95%|█████████▍| 9463/10000 [01:41<00:08, 62.33it/s]
 95%|█████████▍| 9470/10000 [01:41<00:09, 57.47it/s]
 95%|█████████▍| 9476/10000 [01:41<00:09, 55.29it/s]
 95%|█████████▍| 9482/10000 [01:41<00:09, 55.09it/s]
 95%|█████████▍| 9488/10000 [01:41<00:09, 55.28it/s]
 95%|█████████▍| 9494/10000 [01:41<00:09, 55.09it/s]
 95%|█████████▌| 9500/10000 [01:41<00:09, 55.50it/s]
 95%|█████████▌| 9506/10000 [01:42<00:08, 55.45it/s]
 95%|█████████▌| 9512/10000 [01:42<00:09, 50.98it/s]
 95%|█████████▌| 9518/10000 [01:42<00:09, 50.92it/s]
 95%|█████████▌| 9524/10000 [01:42<00:09, 51.41it/s]
 95%|█████████▌| 9530/10000 [01:42<00:09, 51.90it/s]
 95%|█████████▌| 9536/10000 [01:42<00:08, 51.78it/s]
 95%|█████████▌| 9542/10000 [01:42<00:08, 52.41it/s]
 95%|█████████▌| 9548/10000 [01:42<00:08, 53.51it/s]
 96%|█████████▌| 9554/10000 [01:42<00:08, 54.28it/s]
 96%|█████████▌| 9560/10000 [01:43<00:07, 55.05it/s]
 96%|█████████▌| 9566/10000 [01:43<00:07, 55.64it/s]
 96%|█████████▌| 9572/10000 [01:43<00:07, 55.97it/s]
 96%|█████████▌| 9578/10000 [01:43<00:07, 56.41it/s]
 96%|█████████▌| 9584/10000 [01:43<00:07, 55.96it/s]
 96%|█████████▌| 9590/10000 [01:43<00:07, 55.88it/s]
 96%|█████████▌| 9596/10000 [01:43<00:07, 56.55it/s]
 96%|█████████▌| 9602/10000 [01:43<00:06, 57.04it/s]
 96%|█████████▌| 9608/10000 [01:43<00:07, 54.80it/s]
 96%|█████████▌| 9614/10000 [01:43<00:07, 54.92it/s]
 96%|█████████▌| 9620/10000 [01:44<00:06, 55.72it/s]
 96%|█████████▋| 9627/10000 [01:44<00:06, 58.05it/s]
 96%|█████████▋| 9633/10000 [01:44<00:06, 55.84it/s]
 96%|█████████▋| 9640/10000 [01:44<00:06, 58.68it/s]
 96%|█████████▋| 9647/10000 [01:44<00:05, 61.49it/s]
 97%|█████████▋| 9654/10000 [01:44<00:05, 63.76it/s]
 97%|█████████▋| 9662/10000 [01:44<00:05, 66.59it/s]
 97%|█████████▋| 9670/10000 [01:44<00:04, 67.87it/s]
 97%|█████████▋| 9678/10000 [01:44<00:04, 69.02it/s]
 97%|█████████▋| 9686/10000 [01:45<00:04, 69.93it/s]
 97%|█████████▋| 9694/10000 [01:45<00:04, 70.68it/s]
 97%|█████████▋| 9702/10000 [01:45<00:04, 70.41it/s]
 97%|█████████▋| 9710/10000 [01:45<00:04, 70.54it/s]
 97%|█████████▋| 9718/10000 [01:45<00:03, 70.97it/s]
 97%|█████████▋| 9726/10000 [01:45<00:03, 70.57it/s]
 97%|█████████▋| 9734/10000 [01:45<00:03, 70.67it/s]
 97%|█████████▋| 9742/10000 [01:45<00:03, 71.03it/s]
 98%|█████████▊| 9750/10000 [01:45<00:03, 71.39it/s]
 98%|█████████▊| 9759/10000 [01:46<00:03, 74.41it/s]
 98%|█████████▊| 9768/10000 [01:46<00:02, 78.50it/s]
 98%|█████████▊| 9777/10000 [01:46<00:02, 80.95it/s]
 98%|█████████▊| 9786/10000 [01:46<00:02, 82.94it/s]
 98%|█████████▊| 9795/10000 [01:46<00:02, 84.48it/s]
 98%|█████████▊| 9804/10000 [01:46<00:02, 85.66it/s]
 98%|█████████▊| 9813/10000 [01:46<00:02, 86.63it/s]
 98%|█████████▊| 9823/10000 [01:46<00:01, 89.31it/s]
 98%|█████████▊| 9833/10000 [01:46<00:01, 91.21it/s]
 98%|█████████▊| 9844/10000 [01:47<00:01, 94.91it/s]
 99%|█████████▊| 9855/10000 [01:47<00:01, 97.66it/s]
 99%|█████████▊| 9866/10000 [01:47<00:01, 99.71it/s]
 99%|█████████▉| 9877/10000 [01:47<00:01, 101.12it/s]
 99%|█████████▉| 9888/10000 [01:47<00:01, 102.04it/s]
 99%|█████████▉| 9899/10000 [01:47<00:00, 102.98it/s]
 99%|█████████▉| 9910/10000 [01:47<00:00, 103.29it/s]
 99%|█████████▉| 9921/10000 [01:47<00:00, 103.58it/s]
 99%|█████████▉| 9932/10000 [01:47<00:00, 104.54it/s]
 99%|█████████▉| 9945/10000 [01:47<00:00, 109.51it/s]
100%|█████████▉| 9958/10000 [01:48<00:00, 113.00it/s]
100%|█████████▉| 9971/10000 [01:48<00:00, 115.36it/s]
100%|█████████▉| 9984/10000 [01:48<00:00, 117.06it/s]
100%|█████████▉| 9996/10000 [01:48<00:00, 117.89it/s]
100%|██████████| 10000/10000 [01:51<00:00, 90.08it/s]
Define new variables

Defining new variables...:   0%|          | 0/10 [00:00<?, ?it/s]
Defining new variables...:  10%|█         | 1/10 [00:00<00:01,  7.64it/s]
Defining new variables...:  20%|██        | 2/10 [00:00<00:01,  7.06it/s]
Defining new variables...:  30%|███       | 3/10 [00:00<00:01,  6.86it/s]
Defining new variables...:  40%|████      | 4/10 [00:00<00:00,  6.80it/s]
Defining new variables...:  50%|█████     | 5/10 [00:00<00:00,  6.80it/s]
Defining new variables...:  60%|██████    | 6/10 [00:00<00:00,  6.73it/s]
Defining new variables...:  70%|███████   | 7/10 [00:01<00:00,  6.70it/s]
Defining new variables...:  80%|████████  | 8/10 [00:01<00:00,  6.27it/s]
Defining new variables...:  90%|█████████ | 9/10 [00:01<00:00,  6.14it/s]
Defining new variables...: 100%|██████████| 10/10 [00:01<00:00,  6.11it/s]
Defining new variables...: 100%|██████████| 10/10 [00:17<00:00,  1.77s/it]
File cnl_10_63.dat has been created.
logprob = the_model_generation.get_cross_nested_logit()
the_biogeme = BIOGEME(biogeme_database, logprob)
the_biogeme.model_name = MODEL_NAME
Biogeme parameters read from biogeme.toml.

Calculate the null log likelihood for reporting.

the_biogeme.calculate_null_loglikelihood(
    {i: 1 for i in range(context.total_sample_size)}
)
-23025.850929940458

Estimate the parameters.

try:
    results = EstimationResults.from_yaml_file(
        filename=f'saved_results/{the_biogeme.model_name}.yaml'
    )
except FileNotFoundError:
    with timeit(f'Estimate of model {the_biogeme.model_name}'):
        results = the_biogeme.estimate()
print(results.short_summary())
Results for model cnl_10_63
Nbr of parameters:              13
Sample size:                    10000
Excluded data:                  0
Null log likelihood:            -23025.85
Final log likelihood:           -14057.39
Likelihood ratio test (null):           17936.92
Rho square (null):                      0.389
Rho bar square (null):                  0.389
Akaike Information Criterion:   28140.78
Bayesian Information Criterion: 28234.52
parameters_tables = get_pandas_estimated_parameters(estimation_results=results)
estimated_parameters = parameters_tables['Estimated parameters']
display(estimated_parameters)
              Name     Value  Robust std err.  Robust t-stat.  Robust p-value
0      beta_rating  0.747977         0.015016       49.812686             0.0
1       beta_price -0.419067         0.012566      -33.348382             0.0
2     beta_chinese  0.765590         0.061540       12.440480             0.0
3    beta_japanese  1.320403         0.046410       28.450886             0.0
4      beta_korean  0.816529         0.052793       15.466682             0.0
5      beta_indian  1.119530         0.051895       21.572894             0.0
6      beta_french  0.795533         0.050193       15.849578             0.0
7     beta_mexican  1.272519         0.030108       42.265037             0.0
8    beta_lebanese  0.749133         0.048414       15.473500             0.0
9   beta_ethiopian  0.534911         0.041925       12.758787             0.0
10   beta_log_dist -0.579815         0.012460      -46.534733             0.0
11     mu_downtown  1.934682         0.030134       64.203560             0.0
12        mu_asian  2.117769         0.066331       31.927280             0.0
df, msg = compare(estimated_parameters)
print(df)
              Name  True Value  Estimated Value    T-Test
0      beta_rating        0.75         0.747977  0.134758
1       beta_price       -0.40        -0.419067  1.517325
2     beta_chinese        0.75         0.765590 -0.253338
3    beta_japanese        1.25         1.320403 -1.516974
4      beta_korean        0.75         0.816529 -1.260183
5      beta_indian        1.00         1.119530 -2.303297
6      beta_french        0.75         0.795533 -0.907166
7     beta_mexican        1.25         1.272519 -0.747930
8    beta_lebanese        0.75         0.749133  0.017912
9   beta_ethiopian        0.50         0.534911 -0.832709
10   beta_log_dist       -0.60        -0.579815 -1.620033
11        mu_asian        2.00         2.117769 -1.775471
12     mu_downtown        2.00         1.934682  2.167614
print(msg)

Total running time of the script: (2 minutes 16.869 seconds)

Gallery generated by Sphinx-Gallery