LCA-ActivityBrowser / activity-browser

GUI for brightway2
GNU Lesser General Public License v3.0
134 stars 50 forks source link

Cannot import scenario file in the calculation setup #1258

Open elisapas opened 3 months ago

elisapas commented 3 months ago

Updating AB

What happened?

When I try to import a scenario file, it keeps loading and never finalizes the import. I have used this excel file before and it was working. I haven't modified any of the values. It also seems to have the correct number of values in the "from key" field.

Relevant errors

No response

Operating system

Windows 10

Conda environment

Traceback (most recent call last):
  File "C:\Users\...\Miniconda3\envs\ab\lib\site-packages\activity_browser\bwutils\superstructure\utils.py", line 70, in wrapper
    result = func(*args)
  File "C:\Users\...\Miniconda3\envs\ab\lib\site-packages\activity_browser\layouts\tabs\LCA_setup.py", line 611, in load_action
    self.sync_superstructure(df)
  File "C:\Users\...\Miniconda3\envs\ab\lib\site-packages\activity_browser\bwutils\superstructure\utils.py", line 70, in wrapper
    result = func(*args)
  File "C:\Users\...\Miniconda3\envs\ab\lib\site-packages\activity_browser\layouts\tabs\LCA_setup.py", line 673, in sync_superstructure
    SuperstructureManager.verify_scenario_process_keys(df)
  File "C:\Users\...\Miniconda3\envs\ab\lib\site-packages\activity_browser\bwutils\superstructure\utils.py", line 70, in wrapper
    result = func(*args)
  File "C:\Users\...\Miniconda3\envs\ab\lib\site-packages\activity_browser\bwutils\superstructure\manager.py", line 405, in verify_scenario_process_keys
    _ = get_activities_from_keys(df, db)
  File "C:\Users\...\Miniconda3\envs\ab\lib\site-packages\activity_browser\bwutils\superstructure\activities.py", line 163, in get_activities_from_keys
    f_db, f_keys = zip(*data_f.loc[:, 'from key'])# extract just the key, avoiding the database
ValueError: too many values to unpack (expected 2)
mrvisscher commented 3 months ago

Hi @elisapas ,

Sorry to hear you're having issues, would you be able to share the scenario file you're having issues with? You can also send it to me at: m.r.visscher@cml.leidenuniv.nl

Kind regards,

Marin

elisapas commented 3 months ago

Thank you for your help Marin,

I have sent you the scenario files now. Let me know if you need more details.

Kind regards, Elisa.

mrvisscher commented 3 months ago

Dear Elisa,

Your scenario file seems to be in good shape at first glance. You’re telling me you’re having the same problem with other scenario files as well right? Were you able to do scenario calculations before and could you send me the output of your conda list command?

Kind regards,

Marin

elisapas commented 3 months ago

Hi, Yes, I have been working with this scenario file before, as well as with other scenario files that have also stopped working (I get the same error as mentioned above). Below the output of conda list, when the ab environment is active:

Name Version Build Channel

activity-browser 2.9.7 pyhd8ed1ab_0 conda-forge appdirs 1.4.4 pyh9f0ad1d_0 conda-forge arrow 1.2.3 pyhd8ed1ab_0 conda-forge asteval 0.9.29 pyhd8ed1ab_0 conda-forge astunparse 1.6.3 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.12.2 pyha770c72_0 conda-forge blinker 1.6.2 pyhd8ed1ab_0 conda-forge brightway2 2.4.4 pyhd8ed1ab_0 conda-forge brotli 1.0.9 hcfcfb64_8 conda-forge brotli-bin 1.0.9 hcfcfb64_8 conda-forge brotli-python 1.0.9 py39h99910a6_8 conda-forge brotlicffi 1.0.9.2 py39h99910a6_3 conda-forge bw2analyzer 0.10 pyhd8ed1ab_0 conda-forge bw2calc 1.8.2 py39hcbf5309_0 conda-forge bw2data 3.6.6 pyhd8ed1ab_0 conda-forge bw2io 0.8.10 pyhd8ed1ab_0 conda-forge bw2parameters 1.1.0 pyhd8ed1ab_0 conda-forge bw_migrations 0.2 pyhd8ed1ab_0 conda-forge bzip2 1.0.8 h8ffe710_4 conda-forge ca-certificates 2024.2.2 h56e8100_0 conda-forge certifi 2024.2.2 pyhd8ed1ab_0 conda-forge cffi 1.15.1 py39h68f70e3_3 conda-forge charset-normalizer 3.1.0 pyhd8ed1ab_0 conda-forge click 8.1.3 win_pyhd8ed1ab_2 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge contourpy 1.0.7 py39h1f6ef14_0 conda-forge cycler 0.11.0 pyhd8ed1ab_0 conda-forge dill 0.3.6 pyhd8ed1ab_1 conda-forge docopt 0.6.2 py_1 conda-forge eidl 2.0.1 pyhd8ed1ab_0 conda-forge eight 1.0.1 pyhd8ed1ab_4 conda-forge et_xmlfile 1.1.0 pyhd8ed1ab_0 conda-forge fasteners 0.17.3 pyhd8ed1ab_0 conda-forge flask 2.3.2 pyhd8ed1ab_0 conda-forge fonttools 4.39.4 py39ha55989b_0 conda-forge freetype 2.12.1 h546665d_1 conda-forge future 0.18.3 pyhd8ed1ab_0 conda-forge gettext 0.21.1 h5728263_0 conda-forge glib 2.76.3 h12be248_0 conda-forge glib-tools 2.76.3 h12be248_0 conda-forge gst-plugins-base 1.22.3 h001b923_1 conda-forge gstreamer 1.22.3 h6b5321d_1 conda-forge icu 72.1 h63175ca_0 conda-forge idna 3.4 pyhd8ed1ab_0 conda-forge importlib-metadata 6.6.0 pyha770c72_0 conda-forge importlib-resources 5.12.0 pyhd8ed1ab_0 conda-forge importlib_metadata 6.6.0 hd8ed1ab_0 conda-forge importlib_resources 5.12.0 pyhd8ed1ab_0 conda-forge inflate64 0.3.1 py39ha55989b_3 conda-forge intel-openmp 2023.1.0 h57928b3_46319 conda-forge itsdangerous 2.1.2 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge kiwisolver 1.4.4 py39h1f6ef14_1 conda-forge krb5 1.20.1 heb0366b_0 conda-forge lcms2 2.15 h3e3b177_1 conda-forge lerc 4.0.0 h63175ca_0 conda-forge libblas 3.9.0 16_win64_mkl conda-forge libbrotlicommon 1.0.9 hcfcfb64_8 conda-forge libbrotlidec 1.0.9 hcfcfb64_8 conda-forge libbrotlienc 1.0.9 hcfcfb64_8 conda-forge libcblas 3.9.0 16_win64_mkl conda-forge libclang 15.0.7 default_h77d9078_1 conda-forge libclang13 15.0.7 default_h77d9078_1 conda-forge libdeflate 1.18 hcfcfb64_0 conda-forge libffi 3.4.2 h8ffe710_5 conda-forge libglib 2.76.3 he8f3873_0 conda-forge libhwloc 2.9.1 hbb18f9a_1 conda-forge libiconv 1.17 h8ffe710_0 conda-forge libjpeg-turbo 2.1.5.1 hcfcfb64_0 conda-forge liblapack 3.9.0 16_win64_mkl conda-forge libogg 1.3.4 h8ffe710_1 conda-forge libpng 1.6.39 h19919ed_0 conda-forge libsqlite 3.42.0 hcfcfb64_0 conda-forge libtiff 4.5.0 h6c8260b_6 conda-forge libvorbis 1.3.7 h0e60522_0 conda-forge libwebp 1.3.0 hcfcfb64_0 conda-forge libwebp-base 1.3.0 hcfcfb64_0 conda-forge libxcb 1.15 hcd874cb_0 conda-forge libxml2 2.10.4 hc3477c8_0 conda-forge libxslt 1.1.37 h0192164_0 conda-forge libzlib 1.2.13 hcfcfb64_4 conda-forge lxml 4.9.2 py39h0942119_0 conda-forge m2w64-gcc-libgfortran 5.3.0 6 conda-forge m2w64-gcc-libs 5.3.0 7 conda-forge m2w64-gcc-libs-core 5.3.0 7 conda-forge m2w64-gmp 6.1.0 2 conda-forge m2w64-libwinpthread-git 5.0.0.4634.697f757 2 conda-forge markupsafe 2.1.3 py39ha55989b_0 conda-forge matplotlib-base 3.7.1 py39haf65ace_0 conda-forge mkl 2022.1.0 h6a75c08_874 conda-forge mrio_common_metadata 0.2.1 pyhd8ed1ab_0 conda-forge msys2-conda-epoch 20160418 1 conda-forge multiprocess 0.70.14 py39ha55989b_3 conda-forge multivolumefile 0.2.3 pyhd8ed1ab_0 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge networkx 3.1 pyhd8ed1ab_0 conda-forge numpy 1.23.5 py39hbccbffa_0 conda-forge openjpeg 2.5.0 ha2aaf27_2 conda-forge openpyxl 3.1.2 py39ha55989b_0 conda-forge openssl 3.2.1 hcfcfb64_1 conda-forge packaging 23.1 pyhd8ed1ab_0 conda-forge pandas 2.0.2 py39h1679cfb_0 conda-forge pathos 0.3.0 pyhd8ed1ab_0 conda-forge patsy 0.5.3 pyhd8ed1ab_0 conda-forge pcre2 10.40 h17e33f8_0 conda-forge peewee 3.16.2 py39habf9222_0 conda-forge pillow 9.5.0 py39ha9166d5_1 conda-forge pint 0.21 pyhd8ed1ab_0 conda-forge pip 23.1.2 pyhd8ed1ab_0 conda-forge platformdirs 3.5.1 pyhd8ed1ab_0 conda-forge pooch 1.7.0 pyha770c72_3 conda-forge pox 0.3.2 pyhd8ed1ab_0 conda-forge ppft 1.7.6.6 pyhd8ed1ab_0 conda-forge psutil 5.9.5 py39ha55989b_0 conda-forge pthread-stubs 0.4 hcd874cb_1001 conda-forge pthreads-win32 2.9.1 hfa6e2cd_3 conda-forge py7zr 0.20.5 pyhd8ed1ab_0 conda-forge pybcj 1.0.1 py39ha55989b_2 conda-forge pybcpy 0.0.17 pyhd8ed1ab_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pycryptodomex 3.18.0 py39ha55989b_0 conda-forge pypardiso 0.4.2 pyhd8ed1ab_1 conda-forge pyparsing 3.0.9 pyhd8ed1ab_0 conda-forge pyperclip 1.8.2 pyhd8ed1ab_2 conda-forge pyppmd 1.0.0 py39h99910a6_1 conda-forge pyprind 2.11.2 py39hcbf5309_1004 conda-forge pyside2 5.15.8 py39h56cbfbc_2 conda-forge pysocks 1.7.1 pyh0701188_6 conda-forge python 3.9.16 h4de0772_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-tzdata 2023.3 pyhd8ed1ab_0 conda-forge python_abi 3.9 3_cp39 conda-forge pytz 2023.3 pyhd8ed1ab_0 conda-forge pyxlsb 1.0.10 pyhd8ed1ab_0 conda-forge pyzstd 0.15.7 py39h95af829_0 conda-forge qt-main 5.15.8 h2c8576c_13 conda-forge qt-webengine 5.15.8 h5b1ea0b_0 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge salib 1.4.7 pyhd8ed1ab_0 conda-forge scipy 1.10.1 py39hde5eda1_3 conda-forge seaborn 0.12.2 hd8ed1ab_0 conda-forge seaborn-base 0.12.2 pyhd8ed1ab_0 conda-forge setuptools 67.7.2 pyhd8ed1ab_0 conda-forge setuptools-scm 7.1.0 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge soupsieve 2.3.2.post1 pyhd8ed1ab_0 conda-forge stats_arrays 0.6.5 pyhd8ed1ab_0 conda-forge statsmodels 0.14.0 py39hbaa61f9_1 conda-forge tabulate 0.9.0 pyhd8ed1ab_1 conda-forge tbb 2021.9.0 h91493d7_0 conda-forge texttable 1.6.7 pyhd8ed1ab_0 conda-forge tk 8.6.12 h8ffe710_0 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge tqdm 4.66.2 pyhd8ed1ab_0 conda-forge typing-extensions 4.6.3 hd8ed1ab_0 conda-forge typing_extensions 4.6.3 pyha770c72_0 conda-forge tzdata 2023c h71feb2d_0 conda-forge ucrt 10.0.22621.0 h57928b3_0 conda-forge unicodecsv 0.14.1 py_1 conda-forge unicodedata2 15.0.0 py39ha55989b_0 conda-forge unidecode 1.3.6 pyhd8ed1ab_0 conda-forge urllib3 2.0.2 pyhd8ed1ab_0 conda-forge vc 14.3 hb25d44b_16 conda-forge vc14_runtime 14.34.31931 h5081d32_16 conda-forge voluptuous 0.13.1 pyhd8ed1ab_0 conda-forge vs2015_runtime 14.34.31931 hed1258a_16 conda-forge werkzeug 2.3.4 pyhd8ed1ab_0 conda-forge wheel 0.40.0 pyhd8ed1ab_0 conda-forge whoosh 2.7.4 py39hcbf5309_7 conda-forge win_inet_pton 1.1.0 pyhd8ed1ab_6 conda-forge wrapt 1.15.0 py39ha55989b_0 conda-forge xlrd 2.0.1 pyhd8ed1ab_3 conda-forge xlsxwriter 3.1.2 pyhd8ed1ab_0 conda-forge xorg-libxau 1.0.11 hcd874cb_0 conda-forge xorg-libxdmcp 1.1.3 hcd874cb_0 conda-forge xz 5.2.6 h8d14728_0 conda-forge zipfile-deflate64 0.2.0 py39ha55989b_3 conda-forge zipp 3.15.0 pyhd8ed1ab_0 conda-forge zstd 1.5.2 h12be248_6 conda-forge

Thank you again, Elisa.

mrvisscher commented 3 months ago

It may be worth a try to reinstall ab into a new environment with the latest python version like this: conda create -n NEW_ENVIRONMENT_NAME python=3.11 conda activate NEW_ENVIRONMENT_NAME conda install -c conda-forge --solver libmamba activity-browser

Let me know whether that solves the issue for you!

Kind regards,

Marin

elisapas commented 3 months ago

It works now,

Thank you!

Elisa.

FreeMori commented 3 months ago

Dear @mrvisscher, Hi, I experience a similar issue. For me it doesn't work to import an excel database again (which I had just exported successfully). The ab seems to be stuck on loading screen "Writing Datasets to SQLite database". Reinstalling ab in a new environment with latest python, as by your suggested comments, has not solved the issue for me. Thanks a ton for the support!! __ Edit: BW2Package export & import works normally, however I require the excel to make changes in excel...

Applying` strategy: alter_database_name Applying strategy: csv_restore_tuples Applying strategy: csv_restore_booleans Applying strategy: csv_numerize Applying strategy: csv_drop_unknown Applying strategy: csv_add_missing_exchanges_section Applying strategy: csv_rewrite_product_key Applying strategy: normalize_units Applying strategy: normalize_biosphere_categories Traceback (most recent call last): File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\ui\threading.py", line 16, in run raise e File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\ui\threading.py", line 11, in run self.run_safely() File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\ui\wizards\db_import_wizard.py", line 739, in run_safely self.run_local_import() File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\ui\wizards\db_import_wizard.py", line 857, in run_local_import result = ABExcelImporter.simple_automated_import( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\bwutils\importers.py", line 84, in simple_automated_import obj.apply_strategies() File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2io\importers\base.py", line 69, in apply_strategies self.apply_strategy(func, verbose) File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2io\importers\base.py", line 48, in apply_strategy self.data = strategy(self.data) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2io\strategies\biosphere.py", line 37, in normalize_biosphere_categories db = migrate_exchanges(db, migration="biosphere-2-3-categories") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2io\strategies\migrations.py", line 33, in migrate_exchanges assert migration in migrations, u"Can't find migration {}".format(migration) ^^^^^^^^^^^^^^^^^^^^^^^ AssertionError: Can't find migration ``biosphere-2-3-categories

mrvisscher commented 3 months ago

Hi @FreeMori,

There seems to be an issue with the project you are trying to import your database into. Do you have the same issue if you import the database into a fresh project with the default data just installed?

Kind regards,

Marin

FreeMori commented 3 months ago

Dear @mrvisscher, I created a new project with a new biosphere database. While the import went a bit further, the error message "some exchanges could not be linked in databases 'biosphere 3' " occurred.

EDIT: Also reinstalled the Cutoff391 Database

Now it seems to work fine

FreeMori commented 2 months ago

Dear @mrvisscher,

unfortunately, the issue seems to have returned with a different error. Updated AB; new project; newly installed databases; The import of excel files is again not working.

Thank you very much

Extracted 1 worksheets in 0.02 seconds Applying strategy: alter_database_name Applying strategy: csv_restore_tuples Applying strategy: csv_restore_booleans Applying strategy: csv_numerize Applying strategy: csv_drop_unknown Applying strategy: csv_add_missing_exchanges_section Applying strategy: csv_rewrite_product_key Applying strategy: normalize_units Applying strategy: normalize_biosphere_categories Applying strategy: normalize_biosphere_names Applying strategy: strip_biosphere_exc_locations Applying strategy: set_code_by_activity_hash Applying strategy: link_iterable_by_fields Applying strategy: assign_only_product_as_production Applying strategy: link_technosphere_by_activity_hash Applying strategy: drop_falsey_uncertainty_fields_but_keep_zeros Applying strategy: convert_uncertainty_types_to_integers Applying strategy: hash_parameter_group Applying strategy: convert_activity_parameters_to_list Applied 19 strategies in 6.46 seconds Could not link exchanges, here are 10 examples.: Extracted 1 worksheets in 0.01 seconds Applying strategy: alter_database_name Applying strategy: csv_restore_tuples Applying strategy: csv_restore_booleans Applying strategy: csv_numerize Applying strategy: csv_drop_unknown Applying strategy: csv_add_missing_exchanges_section Applying strategy: csv_rewrite_product_key Applying strategy: normalize_units Applying strategy: normalize_biosphere_categories Applying strategy: normalize_biosphere_names Applying strategy: strip_biosphere_exc_locations Applying strategy: set_code_by_activity_hash Applying strategy: link_iterable_by_fields Applying strategy: assign_only_product_as_production Applying strategy: link_technosphere_by_activity_hash Applying strategy: drop_falsey_uncertainty_fields_but_keep_zeros Applying strategy: convert_uncertainty_types_to_integers Applying strategy: hash_parameter_group Applying strategy: convert_activity_parameters_to_list Applied 19 strategies in 6.66 seconds Applying strategy: relink_exchanges_with_db Writing activities to SQLite3 database: 0% [#] 100% | ETA: 00:00:01 Total time elapsed: 00:00:00 Title: Writing activities to SQLite3 database: Started: 04/15/2024 14:01:57 Finished: 04/15/2024 14:01:57 Total time elapsed: 00:00:00 CPU %: 0.00 Memory %: 15.21 Traceback (most recent call last): File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\ui\threading.py", line 16, in run raise e File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\ui\threading.py", line 11, in run self.run_safely() File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\ui\wizards\db_import_wizard.py", line 739, in run_safely self.run_local_import() File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\ui\wizards\db_import_wizard.py", line 857, in run_local_import result = ABExcelImporter.simple_automated_import( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\bwutils\importers.py", line 108, in simple_automated_import db = obj.write_database(delete_existing=True, activate_parameters=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\bwutils\importers.py", line 39, in write_database return super(ExcelImporter, self).write_database(kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2io\importers\base_lci.py", line 269, in write_database db.write(existing) File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2data\project.py", line 358, in writable_project return wrapped(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2data\backends\peewee\database.py", line 266, in write self.make_searchable(reset=True) File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2data\project.py", line 358, in writable_project return wrapped(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2data\backends\peewee\database.py", line 311, in make_searchable IndexManager(self.filename).add_datasets(self) File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2data\search\indices.py", line 47, in add_datasets writer.add_document(**self._format_dataset(ds)) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2data\search\indices.py", line 35, in _format_dataset categories=u", ".join(ds.get(u"categories", [])).lower(), ^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 774, in get File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\bw2data\backends\peewee\proxies.py", line 125, in getitem if key in rp.get('classifications', []): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: argument of type 'float' is not iterable

EDIT: After restarting the AB, the Database seems to have been created and the tech. flows are present, however, no linkage of Databases has been done. The window "depends" is empty. Also relinking in AB produces error.

Traceback (most recent call last): File "C:\Users\Moritz\anaconda3\envs\abx\Lib\site-packages\activity_browser\controllers\database.py", line 177, in relink_database if failed > 0: ^^^^^^ UnboundLocalError: cannot access local variable 'failed' where it is not associated with a value

EDIT: In the excel file I deleted the "NAN" under "Classifications" and "Properties" Columns for all market activities, so that the cell are empty now. This seems to be a workaround. Could this result in problems down the road?

Kindly, Mori