From c2fc97c80fce0be26c36042783af7ae340c0b526 Mon Sep 17 00:00:00 2001 From: everoddandeven Date: Sun, 19 Apr 2026 17:43:58 +0200 Subject: [PATCH] Documentation improvements * Improve docstrings * Fix typos * Add documentation pages * Update README --- .gitignore | 3 +- README.md | 4 +- conftest.py | 10 +- docs/mkdocs/404.html | 4 + docs/mkdocs/docs/en/api/architecture.md | 8 + docs/mkdocs/docs/en/api/connection.md | 6 + docs/mkdocs/docs/en/api/daemon.md | 6 + docs/mkdocs/docs/en/api/daemon_rpc.md | 6 + .../docs/en/api/data_model/connection.md | 10 + docs/mkdocs/docs/en/api/data_model/daemon.md | 58 + docs/mkdocs/docs/en/api/data_model/wallet.md | 66 + .../mkdocs/docs/en/api/serializable_struct.md | 7 + docs/mkdocs/docs/en/api/utils.md | 6 + docs/mkdocs/docs/en/api/wallet.md | 6 + docs/mkdocs/docs/en/api/wallet_full.md | 6 + docs/mkdocs/docs/en/api/wallet_keys.md | 6 + docs/mkdocs/docs/en/api/wallet_rpc.md | 6 + .../docs/en/examples/connect_to_rpc_server.md | 45 + .../en/examples/create_local_full_wallet.md | 33 + .../docs/en/examples/interact_with_daemon.md | 85 + .../en/examples/interact_with_wallet_rpc.md | 63 + .../query_wallet_txs_and_transfers.md | 79 + .../docs/en/examples/sending_payments.md | 43 + .../en/examples/using_keys_only_wallet.md | 38 + docs/mkdocs/docs/en/index.md | 17 + docs/mkdocs/docs/extra.css | 2 + docs/mkdocs/docs/images/architecture.png | Bin 0 -> 133420 bytes docs/mkdocs/docs/images/donate.png | Bin 0 -> 3832 bytes docs/mkdocs/docs/images/favicon.ico | Bin 0 -> 101968 bytes docs/mkdocs/docs/images/monero.svg | 1 + docs/mkdocs/docs/overrides.css | 85 + docs/mkdocs/mkdocs.yml | 154 + docs/mkdocs/overrides/partial/copyright.html | 17 + docs/mkdocs/po/index.md.cfg | 13 + docs/mkdocs/public/404.html | 1 + .../mkdocs/public/api/architecture/index.html | 1 + docs/mkdocs/public/api/connection/index.html | 1 + docs/mkdocs/public/api/daemon/index.html | 1 + docs/mkdocs/public/api/daemon_rpc/index.html | 1 + .../api/data_model/connection/index.html | 1 + .../public/api/data_model/daemon/index.html | 1 + .../public/api/data_model/wallet/index.html | 1 + .../public/api/serializable_struct/index.html | 1 + docs/mkdocs/public/api/utils/index.html | 1 + docs/mkdocs/public/api/wallet/index.html | 1 + docs/mkdocs/public/api/wallet_full/index.html | 1 + docs/mkdocs/public/api/wallet_keys/index.html | 1 + docs/mkdocs/public/api/wallet_rpc/index.html | 1 + docs/mkdocs/public/assets/_mkdocstrings.css | 109 + .../fonts.googleapis.com/css.49ea35f2.css | 756 ++ ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 | Bin 0 -> 25464 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2 | Bin 0 -> 18780 bytes ...CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2 | Bin 0 -> 47208 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 | Bin 0 -> 40480 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 | Bin 0 -> 31820 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 | Bin 0 -> 15344 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 | Bin 0 -> 4452 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2 | Bin 0 -> 22440 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 | Bin 0 -> 45184 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 | Bin 0 -> 17624 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 | Bin 0 -> 4348 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 | Bin 0 -> 36652 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 | Bin 0 -> 29392 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 | Bin 0 -> 14340 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 | Bin 0 -> 23664 bytes ...O7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 | Bin 0 -> 43136 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 | Bin 0 -> 41348 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 | Bin 0 -> 20556 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2 | Bin 0 -> 10308 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2 | Bin 0 -> 22916 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2 | Bin 0 -> 35912 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2 | Bin 0 -> 14044 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2 | Bin 0 -> 32796 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2 | Bin 0 -> 18592 bytes .../v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2 | Bin 0 -> 35328 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2 | Bin 0 -> 14952 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2 | Bin 0 -> 38696 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm3KWWoKC.woff2 | Bin 0 -> 10832 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm3OWWoKC.woff2 | Bin 0 -> 24408 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2 | Bin 0 -> 20504 bytes docs/mkdocs/public/assets/images/favicon.png | Bin 0 -> 1870 bytes .../assets/javascripts/bundle.79ae519e.min.js | 16 + .../javascripts/bundle.79ae519e.min.js.map | 7 + .../javascripts/lunr/min/lunr.ar.min.js | 1 + .../javascripts/lunr/min/lunr.da.min.js | 18 + .../javascripts/lunr/min/lunr.de.min.js | 18 + .../javascripts/lunr/min/lunr.du.min.js | 18 + .../javascripts/lunr/min/lunr.el.min.js | 1 + .../javascripts/lunr/min/lunr.es.min.js | 18 + .../javascripts/lunr/min/lunr.fi.min.js | 18 + .../javascripts/lunr/min/lunr.fr.min.js | 18 + .../javascripts/lunr/min/lunr.he.min.js | 1 + .../javascripts/lunr/min/lunr.hi.min.js | 1 + .../javascripts/lunr/min/lunr.hu.min.js | 18 + .../javascripts/lunr/min/lunr.hy.min.js | 1 + .../javascripts/lunr/min/lunr.it.min.js | 18 + .../javascripts/lunr/min/lunr.ja.min.js | 1 + .../javascripts/lunr/min/lunr.jp.min.js | 1 + .../javascripts/lunr/min/lunr.kn.min.js | 1 + .../javascripts/lunr/min/lunr.ko.min.js | 1 + .../javascripts/lunr/min/lunr.multi.min.js | 1 + .../javascripts/lunr/min/lunr.nl.min.js | 18 + .../javascripts/lunr/min/lunr.no.min.js | 18 + .../javascripts/lunr/min/lunr.pt.min.js | 18 + .../javascripts/lunr/min/lunr.ro.min.js | 18 + .../javascripts/lunr/min/lunr.ru.min.js | 18 + .../javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + .../javascripts/lunr/min/lunr.sv.min.js | 18 + .../javascripts/lunr/min/lunr.ta.min.js | 1 + .../javascripts/lunr/min/lunr.te.min.js | 1 + .../javascripts/lunr/min/lunr.th.min.js | 1 + .../javascripts/lunr/min/lunr.tr.min.js | 18 + .../javascripts/lunr/min/lunr.vi.min.js | 1 + .../javascripts/lunr/min/lunr.zh.min.js | 1 + .../public/assets/javascripts/lunr/tinyseg.js | 206 + .../public/assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.2c215733.min.js | 42 + .../workers/search.2c215733.min.js.map | 7 + .../assets/stylesheets/main.484c7ddc.min.css | 1 + .../stylesheets/main.484c7ddc.min.css.map | 1 + .../stylesheets/palette.ab4e12ef.min.css | 1 + .../stylesheets/palette.ab4e12ef.min.css.map | 1 + .../examples/connect_to_rpc_server/index.html | 24 + .../create_local_full_wallet/index.html | 18 + .../examples/interact_with_daemon/index.html | 54 + .../interact_with_wallet_rpc/index.html | 32 + .../query_wallet_txs_and_transfers/index.html | 57 + .../examples/sending_payments/index.html | 29 + .../using_keys_only_wallet/index.html | 18 + docs/mkdocs/public/extra.css | 2 + docs/mkdocs/public/images/architecture.png | Bin 0 -> 133420 bytes docs/mkdocs/public/images/favicon.ico | Bin 0 -> 101968 bytes docs/mkdocs/public/images/monero.svg | 1 + docs/mkdocs/public/index.html | 1 + docs/mkdocs/public/objects.inv | Bin 0 -> 13776 bytes docs/mkdocs/public/overrides.css | 85 + docs/mkdocs/public/search/search_index.json | 1 + docs/mkdocs/public/sitemap.xml | 129 + docs/mkdocs/public/sitemap.xml.gz | Bin 0 -> 559 bytes docs/mkdocs/requirements.in | 35 + docs/mkdocs/weblate/en/.gitkeep | 0 src/cpp/py_monero.cpp | 4 +- src/python/__init__.pyi | 2 - src/python/monero_account.pyi | 8 +- src/python/monero_account_tag.pyi | 12 +- src/python/monero_address_book_entry.pyi | 13 +- src/python/monero_address_type.pyi | 28 +- src/python/monero_alt_chain.pyi | 6 +- src/python/monero_ban.pyi | 6 +- src/python/monero_block.pyi | 24 +- src/python/monero_block_header.pyi | 22 +- src/python/monero_block_template.pyi | 6 +- src/python/monero_check.pyi | 6 +- src/python/monero_check_reserve.pyi | 6 +- src/python/monero_check_tx.pyi | 6 +- .../monero_connection_priority_comparator.pyi | 8 +- src/python/monero_connection_span.pyi | 6 +- src/python/monero_connection_type.pyi | 22 +- src/python/monero_daemon.pyi | 449 +- src/python/monero_daemon_default.pyi | 10 - src/python/monero_daemon_info.pyi | 6 +- src/python/monero_daemon_listener.pyi | 11 +- src/python/monero_daemon_rpc.pyi | 20 +- src/python/monero_daemon_sync_info.pyi | 6 +- .../monero_daemon_update_check_result.pyi | 12 +- .../monero_daemon_update_download_result.pyi | 6 +- src/python/monero_decoded_address.pyi | 6 +- src/python/monero_destination.pyi | 13 +- src/python/monero_error.pyi | 4 +- src/python/monero_fee_estimate.pyi | 6 +- src/python/monero_hard_fork_info.pyi | 6 +- src/python/monero_incoming_transfer.pyi | 25 +- src/python/monero_integrated_address.pyi | 6 +- src/python/monero_json_request.pyi | 11 +- src/python/monero_json_request_params.pyi | 5 +- src/python/monero_json_response.pyi | 15 +- src/python/monero_key_image.pyi | 25 +- src/python/monero_key_image_import_result.pyi | 6 +- src/python/monero_key_image_spent_status.pyi | 21 +- .../monero_message_signature_result.pyi | 8 +- src/python/monero_message_signature_type.pyi | 20 +- src/python/monero_miner_tx_sum.pyi | 6 +- src/python/monero_mining_status.pyi | 8 +- src/python/monero_multisig_info.pyi | 6 +- src/python/monero_multisig_init_result.pyi | 2 + src/python/monero_multisig_sign_result.pyi | 11 +- src/python/monero_network_type.pyi | 31 +- src/python/monero_outgoing_transfer.pyi | 24 +- src/python/monero_output.pyi | 22 +- .../monero_output_distribution_entry.pyi | 7 +- src/python/monero_output_histogram_entry.pyi | 6 +- src/python/monero_output_query.pyi | 29 +- src/python/monero_output_wallet.pyi | 24 +- src/python/monero_path_request.pyi | 5 +- src/python/monero_peer.pyi | 18 +- src/python/monero_prune_result.pyi | 6 +- src/python/monero_request.pyi | 6 +- src/python/monero_rpc_connection.pyi | 99 +- src/python/monero_rpc_error.pyi | 11 +- src/python/monero_ssl_options.pyi | 16 +- src/python/monero_subaddress.pyi | 6 +- src/python/monero_submit_tx_result.pyi | 7 +- src/python/monero_sync_result.pyi | 7 +- src/python/monero_transfer.pyi | 24 +- src/python/monero_transfer_query.pyi | 27 +- src/python/monero_tx.pyi | 18 +- src/python/monero_tx_backlog_entry.pyi | 2 + src/python/monero_tx_config.pyi | 31 +- src/python/monero_tx_pool_stats.pyi | 4 +- src/python/monero_tx_priority.pyi | 20 +- src/python/monero_tx_query.pyi | 21 +- src/python/monero_tx_set.pyi | 8 +- src/python/monero_tx_wallet.pyi | 73 +- src/python/monero_utils.pyi | 148 +- src/python/monero_version.pyi | 7 +- src/python/monero_wallet.pyi | 509 +- src/python/monero_wallet_config.pyi | 13 +- src/python/monero_wallet_full.pyi | 36 +- src/python/monero_wallet_keys.pyi | 20 +- src/python/monero_wallet_listener.pyi | 31 +- src/python/monero_wallet_rpc.pyi | 35 +- src/python/serializable_struct.pyi | 9 +- tests/test_monero_common.py | 2 +- tests/test_monero_daemon_interface.py | 4 +- tests/test_monero_daemon_rpc.py | 3 +- tests/test_monero_rpc_connection.py | 2 +- tests/test_monero_utils.py | 7 +- tests/test_monero_wallet_common.py | 70 +- tests/test_monero_wallet_full.py | 2 +- tests/test_monero_wallet_interface.py | 4 +- tests/test_monero_wallet_keys.py | 2 +- tests/test_monero_wallet_model.py | 2 +- tests/test_monero_wallet_rpc.py | 4 +- tests/utils/__init__.py | 11 + tests/utils/address_book.py | 19 + tests/utils/assert_utils.py | 7 + tests/utils/base_test_class.py | 16 +- tests/utils/binary_block_context.py | 6 +- tests/utils/block_utils.py | 36 +- tests/utils/blockchain_utils.py | 62 +- tests/utils/daemon_utils.py | 164 +- tests/utils/docker_wallet_rpc_manager.py | 60 +- tests/utils/from_multiple_tx_sender.py | 23 +- tests/utils/gen_utils.py | 15 +- tests/utils/integration_test_utils.py | 16 +- tests/utils/mining_utils.py | 30 +- tests/utils/multisig_sample_code_tester.py | 17 +- tests/utils/rpc_connection_utils.py | 2 +- tests/utils/send_and_update_txs_tester.py | 18 +- tests/utils/single_tx_sender.py | 37 +- tests/utils/string_utils.py | 14 +- tests/utils/submit_then_relay_tx_tester.py | 15 +- tests/utils/sync_progress_tester.py | 9 +- tests/utils/sync_seed_tester.py | 6 +- tests/utils/sync_with_pool_submit_tester.py | 6 +- tests/utils/test_context.py | 31 +- tests/utils/test_utils.py | 247 +- tests/utils/to_multiple_tx_sender.py | 63 +- tests/utils/tx_context.py | 25 +- tests/utils/tx_spammer.py | 19 +- tests/utils/tx_utils.py | 250 +- .../view_only_and_offline_wallet_tester.py | 26 +- tests/utils/wallet_equality_utils.py | 38 +- tests/utils/wallet_notification_collector.py | 36 +- tests/utils/wallet_sweeper.py | 27 +- tests/utils/wallet_sync_printer.py | 24 +- tests/utils/wallet_sync_tester.py | 24 +- tests/utils/wallet_tx_tracker.py | 44 +- tests/utils/wallet_type.py | 14 +- tests/utils/wallet_utils.py | 75 +- 271 files changed, 11814 insertions(+), 1630 deletions(-) create mode 100644 docs/mkdocs/404.html create mode 100644 docs/mkdocs/docs/en/api/architecture.md create mode 100644 docs/mkdocs/docs/en/api/connection.md create mode 100644 docs/mkdocs/docs/en/api/daemon.md create mode 100644 docs/mkdocs/docs/en/api/daemon_rpc.md create mode 100644 docs/mkdocs/docs/en/api/data_model/connection.md create mode 100644 docs/mkdocs/docs/en/api/data_model/daemon.md create mode 100644 docs/mkdocs/docs/en/api/data_model/wallet.md create mode 100644 docs/mkdocs/docs/en/api/serializable_struct.md create mode 100644 docs/mkdocs/docs/en/api/utils.md create mode 100644 docs/mkdocs/docs/en/api/wallet.md create mode 100644 docs/mkdocs/docs/en/api/wallet_full.md create mode 100644 docs/mkdocs/docs/en/api/wallet_keys.md create mode 100644 docs/mkdocs/docs/en/api/wallet_rpc.md create mode 100644 docs/mkdocs/docs/en/examples/connect_to_rpc_server.md create mode 100644 docs/mkdocs/docs/en/examples/create_local_full_wallet.md create mode 100644 docs/mkdocs/docs/en/examples/interact_with_daemon.md create mode 100644 docs/mkdocs/docs/en/examples/interact_with_wallet_rpc.md create mode 100644 docs/mkdocs/docs/en/examples/query_wallet_txs_and_transfers.md create mode 100644 docs/mkdocs/docs/en/examples/sending_payments.md create mode 100644 docs/mkdocs/docs/en/examples/using_keys_only_wallet.md create mode 100644 docs/mkdocs/docs/en/index.md create mode 100644 docs/mkdocs/docs/extra.css create mode 100644 docs/mkdocs/docs/images/architecture.png create mode 100644 docs/mkdocs/docs/images/donate.png create mode 100644 docs/mkdocs/docs/images/favicon.ico create mode 100644 docs/mkdocs/docs/images/monero.svg create mode 100644 docs/mkdocs/docs/overrides.css create mode 100644 docs/mkdocs/mkdocs.yml create mode 100644 docs/mkdocs/overrides/partial/copyright.html create mode 100644 docs/mkdocs/po/index.md.cfg create mode 100644 docs/mkdocs/public/404.html create mode 100644 docs/mkdocs/public/api/architecture/index.html create mode 100644 docs/mkdocs/public/api/connection/index.html create mode 100644 docs/mkdocs/public/api/daemon/index.html create mode 100644 docs/mkdocs/public/api/daemon_rpc/index.html create mode 100644 docs/mkdocs/public/api/data_model/connection/index.html create mode 100644 docs/mkdocs/public/api/data_model/daemon/index.html create mode 100644 docs/mkdocs/public/api/data_model/wallet/index.html create mode 100644 docs/mkdocs/public/api/serializable_struct/index.html create mode 100644 docs/mkdocs/public/api/utils/index.html create mode 100644 docs/mkdocs/public/api/wallet/index.html create mode 100644 docs/mkdocs/public/api/wallet_full/index.html create mode 100644 docs/mkdocs/public/api/wallet_keys/index.html create mode 100644 docs/mkdocs/public/api/wallet_rpc/index.html create mode 100644 docs/mkdocs/public/assets/_mkdocstrings.css create mode 100644 docs/mkdocs/public/assets/external/fonts.googleapis.com/css.49ea35f2.css create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3KWWoKC.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3OWWoKC.woff2 create mode 100644 docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2 create mode 100644 docs/mkdocs/public/assets/images/favicon.png create mode 100644 docs/mkdocs/public/assets/javascripts/bundle.79ae519e.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/bundle.79ae519e.min.js.map create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/tinyseg.js create mode 100644 docs/mkdocs/public/assets/javascripts/lunr/wordcut.js create mode 100644 docs/mkdocs/public/assets/javascripts/workers/search.2c215733.min.js create mode 100644 docs/mkdocs/public/assets/javascripts/workers/search.2c215733.min.js.map create mode 100644 docs/mkdocs/public/assets/stylesheets/main.484c7ddc.min.css create mode 100644 docs/mkdocs/public/assets/stylesheets/main.484c7ddc.min.css.map create mode 100644 docs/mkdocs/public/assets/stylesheets/palette.ab4e12ef.min.css create mode 100644 docs/mkdocs/public/assets/stylesheets/palette.ab4e12ef.min.css.map create mode 100644 docs/mkdocs/public/examples/connect_to_rpc_server/index.html create mode 100644 docs/mkdocs/public/examples/create_local_full_wallet/index.html create mode 100644 docs/mkdocs/public/examples/interact_with_daemon/index.html create mode 100644 docs/mkdocs/public/examples/interact_with_wallet_rpc/index.html create mode 100644 docs/mkdocs/public/examples/query_wallet_txs_and_transfers/index.html create mode 100644 docs/mkdocs/public/examples/sending_payments/index.html create mode 100644 docs/mkdocs/public/examples/using_keys_only_wallet/index.html create mode 100644 docs/mkdocs/public/extra.css create mode 100644 docs/mkdocs/public/images/architecture.png create mode 100644 docs/mkdocs/public/images/favicon.ico create mode 100644 docs/mkdocs/public/images/monero.svg create mode 100644 docs/mkdocs/public/index.html create mode 100644 docs/mkdocs/public/objects.inv create mode 100644 docs/mkdocs/public/overrides.css create mode 100644 docs/mkdocs/public/search/search_index.json create mode 100644 docs/mkdocs/public/sitemap.xml create mode 100644 docs/mkdocs/public/sitemap.xml.gz create mode 100644 docs/mkdocs/requirements.in create mode 100644 docs/mkdocs/weblate/en/.gitkeep delete mode 100644 src/python/monero_daemon_default.pyi diff --git a/.gitignore b/.gitignore index a0d03be..7f380ca 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ test_wallets .idea .codacy coverage* -.coverage \ No newline at end of file +.coverage +.cache \ No newline at end of file diff --git a/README.md b/README.md index f711ce3..6b41a64 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ A Python library for creating Monero applications using RPC and Python bindings * Supports wallet and daemon RPC clients. * Supports client-side wallets using Python bindings. * Supports multisig, view-only, and offline wallets. -* Wallet types are interchangeable by conforming to a [common interface](https://woodser.github.io/monero-java/javadocs/monero/wallet/MoneroWallet.html). +* Wallet types are interchangeable by conforming to a [common interface](https://everoddandeven.github.io/monero-python/mkdocs/public/api/wallet/). * Uses a clearly defined [data model and API specification](https://github.com/everoddandeven/monero-python/blob/main/docs/monero-spec.pdf) intended to be intuitive and robust. * Query wallet transactions, transfers, and outputs by their properties. * Fetch and process binary data from the daemon (e.g. raw blocks). @@ -31,7 +31,7 @@ A Python library for creating Monero applications using RPC and Python bindings


Build Python - applications using RPC or Python bindings to monero-project/monero. Wallet implementations are interchangeable by conforming to a common interface, MoneroWallet. + applications using RPC or Python bindings to monero-project/monero. Wallet implementations are interchangeable by conforming to a common interface, MoneroWallet.

diff --git a/conftest.py b/conftest.py index 68ef821..07d43e2 100644 --- a/conftest.py +++ b/conftest.py @@ -2,15 +2,17 @@ def pytest_runtest_call(item: pytest.Item): - # get not_supported marked - marker = item.get_closest_marker("not_supported") - not_implemented = False + # get not_supported marker + marker: pytest.Mark | None = item.get_closest_marker("not_supported") + not_implemented: bool = False + if marker is None: + # get not_implemented marker marker = item.get_closest_marker("not_implemented") not_implemented = True if marker is None: - # marked not found + # marker not found return try: diff --git a/docs/mkdocs/404.html b/docs/mkdocs/404.html new file mode 100644 index 0000000..7e54fc8 --- /dev/null +++ b/docs/mkdocs/404.html @@ -0,0 +1,4 @@ +{% extends "main.html" %} +{% block content %} +

401 - Unauthorized

+{% endblock %} \ No newline at end of file diff --git a/docs/mkdocs/docs/en/api/architecture.md b/docs/mkdocs/docs/en/api/architecture.md new file mode 100644 index 0000000..c473293 --- /dev/null +++ b/docs/mkdocs/docs/en/api/architecture.md @@ -0,0 +1,8 @@ +--- +title: Architecture +--- +# Architecture + +

+
+

diff --git a/docs/mkdocs/docs/en/api/connection.md b/docs/mkdocs/docs/en/api/connection.md new file mode 100644 index 0000000..342ae31 --- /dev/null +++ b/docs/mkdocs/docs/en/api/connection.md @@ -0,0 +1,6 @@ +--- +title: RPC Connection +--- +# RPC Connection + +::: monero.MoneroRpcConnection diff --git a/docs/mkdocs/docs/en/api/daemon.md b/docs/mkdocs/docs/en/api/daemon.md new file mode 100644 index 0000000..b95e7b4 --- /dev/null +++ b/docs/mkdocs/docs/en/api/daemon.md @@ -0,0 +1,6 @@ +--- +title: Daemon Interface +--- +# Daemon Interface + +::: monero.MoneroDaemon diff --git a/docs/mkdocs/docs/en/api/daemon_rpc.md b/docs/mkdocs/docs/en/api/daemon_rpc.md new file mode 100644 index 0000000..2147746 --- /dev/null +++ b/docs/mkdocs/docs/en/api/daemon_rpc.md @@ -0,0 +1,6 @@ +--- +title: Daemon RPC +--- +# Daemon RPC + +::: monero.MoneroDaemonRpc diff --git a/docs/mkdocs/docs/en/api/data_model/connection.md b/docs/mkdocs/docs/en/api/data_model/connection.md new file mode 100644 index 0000000..4e8ea1e --- /dev/null +++ b/docs/mkdocs/docs/en/api/data_model/connection.md @@ -0,0 +1,10 @@ +--- +title: Connection Data Model +--- +# Connection Data Model + +::: monero.MoneroSslOptions + +::: monero.MoneroConnectionType + +::: monero.MoneroConnectionPriorityComparator diff --git a/docs/mkdocs/docs/en/api/data_model/daemon.md b/docs/mkdocs/docs/en/api/data_model/daemon.md new file mode 100644 index 0000000..fa94ce5 --- /dev/null +++ b/docs/mkdocs/docs/en/api/data_model/daemon.md @@ -0,0 +1,58 @@ +--- +title: Daemon Data Model +--- +# Daemon Data Model + +::: monero.MoneroNetworkType + +::: monero.MoneroVersion + +::: monero.MoneroBlockHeader + +::: monero.MoneroBlock + +::: monero.MoneroTx + +::: monero.MoneroKeyImage + +::: monero.MoneroOutput + +::: monero.MoneroAltChain + +::: monero.MoneroBan + +::: monero.MoneroPruneResult + +::: monero.MoneroMiningStatus + +::: monero.MoneroMinerTxSum + +::: monero.MoneroBlockTemplate + +::: monero.MoneroConnectionSpan + +::: monero.MoneroPeer + +::: monero.MoneroSubmitTxResult + +::: monero.MoneroTxBacklogEntry + +::: monero.MoneroOutputDistributionEntry + +::: monero.MoneroOutputHistogramEntry + +::: monero.MoneroTxPoolStats + +::: monero.MoneroDaemonUpdateCheckResult + +::: monero.MoneroDaemonUpdateDownloadResult + +::: monero.MoneroFeeEstimate + +::: monero.MoneroDaemonInfo + +::: monero.MoneroDaemonSyncInfo + +::: monero.MoneroHardForkInfo + +::: monero.MoneroDaemonListener \ No newline at end of file diff --git a/docs/mkdocs/docs/en/api/data_model/wallet.md b/docs/mkdocs/docs/en/api/data_model/wallet.md new file mode 100644 index 0000000..d231ca1 --- /dev/null +++ b/docs/mkdocs/docs/en/api/data_model/wallet.md @@ -0,0 +1,66 @@ +--- +title: Wallet Data Model +--- +# Wallet Data Model + +::: monero.MoneroWalletConfig + +::: monero.MoneroSyncResult + +::: monero.MoneroSubaddress + +::: monero.MoneroAccount + +::: monero.MoneroDestination + +::: monero.MoneroTransfer + +::: monero.MoneroIncomingTransfer + +::: monero.MoneroOutgoingTransfer + +::: monero.MoneroTransferQuery + +::: monero.MoneroOutputWallet + +::: monero.MoneroOutputQuery + +::: monero.MoneroTxWallet + +::: monero.MoneroTxQuery + +::: monero.MoneroTxSet + +::: monero.MoneroIntegratedAddress + +::: monero.MoneroTxPriority + +::: monero.MoneroTxConfig + +::: monero.MoneroKeyImageImportResult + +::: monero.MoneroMessageSignatureType + +::: monero.MoneroMessageSignatureResult + +::: monero.MoneroCheck + +::: monero.MoneroCheckTx + +::: monero.MoneroCheckReserve + +::: monero.MoneroMultisigInfo + +::: monero.MoneroMultisigInitResult + +::: monero.MoneroMultisigSignResult + +::: monero.MoneroAddressBookEntry + +::: monero.MoneroAddressType + +::: monero.MoneroDecodedAddress + +::: monero.MoneroAccountTag + +::: monero.MoneroWalletListener \ No newline at end of file diff --git a/docs/mkdocs/docs/en/api/serializable_struct.md b/docs/mkdocs/docs/en/api/serializable_struct.md new file mode 100644 index 0000000..760f9bb --- /dev/null +++ b/docs/mkdocs/docs/en/api/serializable_struct.md @@ -0,0 +1,7 @@ + +--- +title: Serializable Struct +--- +# Serializable Struct + +::: monero.SerializableStruct diff --git a/docs/mkdocs/docs/en/api/utils.md b/docs/mkdocs/docs/en/api/utils.md new file mode 100644 index 0000000..69561a4 --- /dev/null +++ b/docs/mkdocs/docs/en/api/utils.md @@ -0,0 +1,6 @@ +--- +title: Monero Utilities +--- +# Monero Utilities + +::: monero.MoneroUtils diff --git a/docs/mkdocs/docs/en/api/wallet.md b/docs/mkdocs/docs/en/api/wallet.md new file mode 100644 index 0000000..4a3771f --- /dev/null +++ b/docs/mkdocs/docs/en/api/wallet.md @@ -0,0 +1,6 @@ +--- +title: Wallet Interface +--- +# Wallet Interface + +::: monero.MoneroWallet diff --git a/docs/mkdocs/docs/en/api/wallet_full.md b/docs/mkdocs/docs/en/api/wallet_full.md new file mode 100644 index 0000000..034fdfe --- /dev/null +++ b/docs/mkdocs/docs/en/api/wallet_full.md @@ -0,0 +1,6 @@ +--- +title: Full Wallet +--- +# Full Wallet + +::: monero.MoneroWalletFull diff --git a/docs/mkdocs/docs/en/api/wallet_keys.md b/docs/mkdocs/docs/en/api/wallet_keys.md new file mode 100644 index 0000000..20daa8a --- /dev/null +++ b/docs/mkdocs/docs/en/api/wallet_keys.md @@ -0,0 +1,6 @@ +--- +title: Keys-Only Wallet +--- +# Keys-Only Wallet + +::: monero.MoneroWalletKeys diff --git a/docs/mkdocs/docs/en/api/wallet_rpc.md b/docs/mkdocs/docs/en/api/wallet_rpc.md new file mode 100644 index 0000000..ae52d15 --- /dev/null +++ b/docs/mkdocs/docs/en/api/wallet_rpc.md @@ -0,0 +1,6 @@ +--- +title: RPC Wallet +--- +# RPC Wallet + +::: monero.MoneroWalletRpc diff --git a/docs/mkdocs/docs/en/examples/connect_to_rpc_server.md b/docs/mkdocs/docs/en/examples/connect_to_rpc_server.md new file mode 100644 index 0000000..0d17f81 --- /dev/null +++ b/docs/mkdocs/docs/en/examples/connect_to_rpc_server.md @@ -0,0 +1,45 @@ +--- +title: Connect to RPC Server +--- +# Connect to RPC Server + +Developers can create and establish a connection to a rpc server conveniently with a `MoneroRpcConnection`: + +```python +from monero import MoneroRpcConnection + +# connect to a monerod or wallet rpc server +connection = MoneroRpcConnection("http:://rpc_server_uri:18089") + +# set connection credentials if needed +connection.set_credentials("rpc_user", "rpc_password") + +# check rpc connection +connection.check_connection() + +if not connection.is_connected(): + raise Exception("Could not connect to RPC server.") + +print("Connection established to RPC server.") +``` + +After successfully connecting to the rpc server, developers can also invoke methods of the JSON-RPC interface directly: + +```python +# invoke JSON-RPC method `get_version` +result = connection.send_json_request("get_version") +print(f"get_version JSON-RPC response: {result}") +``` + +`MoneroRpcConnection` also accepts an optional `proxy_uri` parameter in its constructor, manageable even after a connection has been created. A prime example of use is to route your traffic via TOR: + +!!! note + Setting a `proxy_uri` resets `MoneroRpcConnection` status. + +```python +# setup TOR proxy uri by instance attribute +connection.proxy_uri = "127.0.0.1:9050" + +# must recall `check_connection()` manually +connection.check_connection() +``` diff --git a/docs/mkdocs/docs/en/examples/create_local_full_wallet.md b/docs/mkdocs/docs/en/examples/create_local_full_wallet.md new file mode 100644 index 0000000..76ee2ab --- /dev/null +++ b/docs/mkdocs/docs/en/examples/create_local_full_wallet.md @@ -0,0 +1,33 @@ +--- +title: Create Local Full Wallet +--- +# Create Local Full Wallet + +`MoneroWalletFull` is another `MoneroWallet` implementation that fully wraps [wallet2 API](https://github.com/monero-project/monero/blob/master/src/wallet/wallet2.h). With a full wallet developers can create wallet files and manage them locally. + +Creating a `MoneroWalletFull` is very simple: + +```python +from monero import MoneroWalletConfig, MoneroWalletFull, MoneroNetworkType + +# setup wallet configuration +config = MoneroWalletConfig() + +# setup wallet path +config.path = "test_wallet_full" + +# setup wallet password +config.password = "supersecretpassword123" + +# setup wallet network type +config.network_type = MoneroNetworkType.TESTNET + +wallet = MoneroWalletFull.create_wallet(config) +``` + +Check if a Monero wallet exists at specific path: + +```python +if MoneroWalletFull.wallet_exists("test_wallet_full"): + wallet = MoneroWalletFull.open_wallet("test_wallet_full", "supersecretpassword123", MoneroNetworkType.TESTNET) +``` diff --git a/docs/mkdocs/docs/en/examples/interact_with_daemon.md b/docs/mkdocs/docs/en/examples/interact_with_daemon.md new file mode 100644 index 0000000..3089951 --- /dev/null +++ b/docs/mkdocs/docs/en/examples/interact_with_daemon.md @@ -0,0 +1,85 @@ +--- +title: Interact with RPC Daemon +--- +# Interact with RPC Daemon + +`MoneroDaemonRpc` offers a `MoneroDaemon` implementation that interacts with [monero-rpc](https://docs.getmonero.org/rpc-library/monerod-rpc/) server using calls to `RPC`, `JSON-RPC` and `Binary` interfaces. + +Creating a `MoneroDaemonRpc` instance is very simple: + +```python +from monero import MoneroDaemonRpc + +# create RPC daemon connected to `monerod-rpc` server +daemon = MoneroDaemonRpc("http://monerod_rpc_uri:18081") +``` + +It can also be done using a `MoneroRpcConnection` instance: + +```python +from monero import MoneroRpcConnection, MoneroDaemonRpc + +# create rpc connection +connection = MoneroRpcConnection("http://monerod_rpc_uri:18081") + +# create daemon using RPC connection +daemon = MoneroDaemonRpc(connection) +``` + +Fetch daemon info and status: + +```python +# get general daemon rpc info +daemon_info = daemon.get_info() +print(f"Daemon info: {daemon_info.serialize()}") + +# get daemon specific sync info +sync_info = daemon.get_sync_info() +print(f"Sync info: {sync_info.serialize()}") + +# get peer bans +bans = daemon.get_peer_bans() +for ban in bans: + print(f"Banned peer: {peer.serialize()}") +``` + +Query blocks and txs on blockchain: + +```python +# get last block header added to blockchain +last_block = daemon.get_last_block_header() +print(f"Last block header: {last_block.serialize()}") + +# get specific block by height +block = daemon.get_block_by_height(1520000) +print(f"Block fetched by height: {block.serialize()}") + +# get specific block by hash +block = daemon.get_block_by_hash("...block hash...") +print(f"Block fetched by hash: {block.serialize()}") + +# get alternative chains seen by the daemon +chains = daemon.get_alt_chains() +print(f"Found {len(chains)} alternative chains") + +# get unconfirmed txs in pool +tx_pool = daemon.get_tx_pool() +for tx in tx_pool: + print(f"Found tx in pool: {tx.serialize()}") + +# get specific tx added to chain +tx = daemon.get_tx("...tx hash...") +print(f"Fetched tx: {tx.serialize()}") +``` + +Relay mined blocks and signed txs: + +```python +# submit a mined block +daemon.submit_block("...block blob...") + +# submit a signed tx +tx: Monerotx = ... +daemon.submit_tx(tx.full_hex) + +``` \ No newline at end of file diff --git a/docs/mkdocs/docs/en/examples/interact_with_wallet_rpc.md b/docs/mkdocs/docs/en/examples/interact_with_wallet_rpc.md new file mode 100644 index 0000000..c6c4d75 --- /dev/null +++ b/docs/mkdocs/docs/en/examples/interact_with_wallet_rpc.md @@ -0,0 +1,63 @@ +--- +title: Interact with RPC Wallet +--- +# Interact with RPC Wallet + +`MoneroWalletRpc` offers a `MoneroWallet` implementation that interacts with [monero-wallet-rpc](https://docs.getmonero.org/rpc-library/wallet-rpc/) using calls to the `JSON-RPC` interface. + + +Creating a `MoneroWalletRpc` instance is very simple: + +```python +from monero import MoneroWalletRpc + +# create RPC wallet connected to `monero-wallet-rpc` server +wallet = MoneroWalletRpc("http://wallet_rpc_uri:18081") +``` + +It can also be done using a `MoneroRpcConnection` instance: + +```python +from monero import MoneroRpcConnection, MoneroWalletRpc + +# create rpc connection +connection = MoneroRpcConnection("http://wallet_rpc_uri:18081") + +# create wallet using RPC connection +wallet = MoneroWalletRpc(connection) +``` + +Let's create a new wallet file: + +```python +# build wallet configuration +config: MoneroWalletConfig = ... + +# create new wallet file in rpc server +wallet.create_wallet(config) +``` + +Or open an already existing wallet: + +```python +# open wallet with config +wallet.open_wallet(config) + +# or open by path and password +wallet.open_wallet("wallet_path", "wallet_password") +``` + +And fetch some info: + +```python +# get wallet information +primary_address: str = wallet.get_primary_address() +view_key: str = wallet.get_private_view_key() +seed: str = wallet.get_seed() +balance: int = wallet.get_balance() + +print(f"primary address: {primary_address}") +print(f"view_key: {view_key}") +print(f"seed: {seed}") +print(f"balance: {balance}") +``` diff --git a/docs/mkdocs/docs/en/examples/query_wallet_txs_and_transfers.md b/docs/mkdocs/docs/en/examples/query_wallet_txs_and_transfers.md new file mode 100644 index 0000000..0f70040 --- /dev/null +++ b/docs/mkdocs/docs/en/examples/query_wallet_txs_and_transfers.md @@ -0,0 +1,79 @@ +--- +title: Query Wallet Txs and Transfers +--- +# Query Wallet Txs and Transfers + +The `MoneroWallet` interface offers methods for fetching transactions, transfers and outputs from wallet's cache: + +* ```MoneroWallet.get_txs(query: MoneroTxQuery) -> list[MoneroTxWallet]``` +* ```MoneroWallet.get_transfers(query: MoneroTransferQuery) -> list[MoneroTransfer]``` +* ```MoneroWallet.get_outputs(query: MoneroOutputQuery) -> list[MoneroOutputWallet]``` + +This methods can be used with a `MoneroTxQuery`, `MoneroTransferQuery`, `MoneroOutputQuery`, wich will filter all records that doesn't match criteria defined in the query. + +Example of fetching wallet txs with a basic `MoneroTxQuery`: + +```python +from monero import ( + MoneroWallet, MoneroTxQuery, + MoneroTxWallet +) + +# open a wallet with txs data +wallet: MoneroWallet = ... + +# create and setup a new tx query to filter txs with +query = MoneroTxQuery() + +# fetch only outgoing txs +query.is_incoming = False +query.is_outgoing = True + +# include outputs in tx data +query.include_outputs = True + +# filter tx by height range +query.min_height = 150000 +query.max_height = 300000 + +# or get txs at specific height +query.height = 152000 + +# fetch txs that meets criteria from wallet +txs: list[MoneroTxWallet] = wallet.get_txs(query) + +# print fetched txs +for tx in txs: + print(f"Found tx: {tx.serialize()}") +``` + +Example of fetching wallet transfers with a `MoneroTransferQuery`: + +```python +from monero import ( + MoneroWallet, MoneroTransferQuery, + MoneroTransfer +) + +# open a wallet with txs data +wallet: MoneroWallet = ... + +# create and setup a new tx query to filter transfers with +query = MoneroTransferQuery() + +# fetch only incoming transfers +query.is_incoming = True +query.is_outgoing = False + +# filter by account and subaddress index +query.account_index = 1 +query.subaddress_indices = [0, 1, 2, 3] + +# fetch transfers that meets criteria from wallet +transfers: list[MoneroTransferWallet] = wallet.get_transfers(query) + +# print fetched txs +for transfer in transfers: + print(f"Found transfer: {transfer.serialize()}") +``` + diff --git a/docs/mkdocs/docs/en/examples/sending_payments.md b/docs/mkdocs/docs/en/examples/sending_payments.md new file mode 100644 index 0000000..1e61403 --- /dev/null +++ b/docs/mkdocs/docs/en/examples/sending_payments.md @@ -0,0 +1,43 @@ +--- +title: Sending Payments +--- +# Sending Payments + +In order to send payments with a `MoneroWallet`, developers must setup a `MoneroTxConfig`: + +```python +from monero import MoneroTxConfig + +# create and setup transaction configuration +tx_config = MoneroTxConfig() + +# specify source account index +tx_config.account_index = 0 + +# specify address and destination amount +tx_config.address = "...destination address..." +tx_config.amount = 1000000000 + +# relay tx to the network +tx_config.relay = True + +# create txs with configuration +txs: list[MoneroTxWallet] = wallet.create_txs(tx_config) + +for tx in txs: + print(f"Created tx: {tx.serialize()}") +``` + +Is possible to setup also multiple destinations in transaction configuration: + +```python +tx_config.destinations.append(MoneroDestination("...destination address1...", 1000000000)) + +... + +tx_config.destinations.append(MoneroDestination("...destination addressN...", 1000000000)) + +# split into multiple txs +tx_config.can_split = True + +``` diff --git a/docs/mkdocs/docs/en/examples/using_keys_only_wallet.md b/docs/mkdocs/docs/en/examples/using_keys_only_wallet.md new file mode 100644 index 0000000..1a15cf6 --- /dev/null +++ b/docs/mkdocs/docs/en/examples/using_keys_only_wallet.md @@ -0,0 +1,38 @@ +--- +title: Using Keys-Only Wallet +--- +# Using Keys-Only Wallet + +`MoneroWalletKeys` is a `MoneroWallet` implementation that supports only basic keys operations, without files or RPC calls. + +Creating a in-memory keys-only wallet with `MoneroWalletKeys` is very simple: + +```python +from monero import MoneroWalletKeys, MoneroWalletConfig, MoneroNetworkType + +# setup wallet configuration +config = MoneroWalletConfig() +config.network_type = MoneroNetworkType.TESTNET + +# create random wallet +wallet = MoneroWalletKeys.create_wallet_random(config) +``` + +Restore specific wallet from seed: + +```python +config.seed = "...wallet seed..." + +# restore wallet from seed +wallet = MoneroWalletKeys.create_wallet_from_seed(config) +``` + +Or from wallet keys: + +```python +config.primary_address = "...wallet primary address..." +config.private_view_key = "...wallet private view key..." + +# restore wallet from keys +wallet = MoneroWalletKeys.create_wallet_from_keys(config) +``` \ No newline at end of file diff --git a/docs/mkdocs/docs/en/index.md b/docs/mkdocs/docs/en/index.md new file mode 100644 index 0000000..3ecdb70 --- /dev/null +++ b/docs/mkdocs/docs/en/index.md @@ -0,0 +1,17 @@ +--- +title: Monero Python Documentation +hide: + - navigation +--- +# Monero Python Documentation + +Welcome to the Monero Python documentation. + +The aim of this project is to provide an intuitive and robust way to interact with the Monero cryptocurrency in Python using a clearly defined data model. It provides high level classes representing objects from the Monero environment, like wallets, accounts, addresses and transactions. + +Developers can create Monero applications using JSON-RPC or Python bindings to monero v0.18.4.4 'Flourine Fermi'. + +Contributions can be made via issues and pull requests on GitHub, or communicated via the #monero-python workgroup on Matrix. + +[:simple-github: GitHub](https://github.com/everoddandeven/monero-python){ .md-button } +[:simple-matrix: Matrix](https://matrix.to/#/%23monero-python:monero.social){ .md-button } diff --git a/docs/mkdocs/docs/extra.css b/docs/mkdocs/docs/extra.css new file mode 100644 index 0000000..581032c --- /dev/null +++ b/docs/mkdocs/docs/extra.css @@ -0,0 +1,2 @@ +/*button[data-md-color-accent],button[data-md-color-primary]{width:13rem;margin-bottom:.4rem;padding:2.4rem .8rem .4rem;-webkit-transition:background-color .25s,opacity .25s;transition:background-color .25s,opacity .25s;border-radius:.2rem;color:#fff;font-size:1.28rem;text-align:left;cursor:pointer}button[data-md-color-accent]:hover,button[data-md-color-primary]:hover{opacity:.75}button[data-md-color-primary=red]{background-color:#ef5350}[data-md-color-primary=red] .md-typeset a{color:#ef5350}[data-md-color-primary=red] .md-header,[data-md-color-primary=red] .md-hero{background-color:#ef5350}[data-md-color-primary=red] .md-nav__link--active,[data-md-color-primary=red] .md-nav__link:active{color:#ef5350}[data-md-color-primary=red] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=pink]{background-color:#e91e63}[data-md-color-primary=pink] .md-typeset a{color:#e91e63}[data-md-color-primary=pink] .md-header,[data-md-color-primary=pink] .md-hero{background-color:#e91e63}[data-md-color-primary=pink] .md-nav__link--active,[data-md-color-primary=pink] .md-nav__link:active{color:#e91e63}[data-md-color-primary=pink] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=purple]{background-color:#ab47bc}[data-md-color-primary=purple] .md-typeset a{color:#ab47bc}[data-md-color-primary=purple] .md-header,[data-md-color-primary=purple] .md-hero{background-color:#ab47bc}[data-md-color-primary=purple] .md-nav__link--active,[data-md-color-primary=purple] .md-nav__link:active{color:#ab47bc}[data-md-color-primary=purple] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=deep-purple]{background-color:#7e57c2}[data-md-color-primary=deep-purple] .md-typeset a{color:#7e57c2}[data-md-color-primary=deep-purple] .md-header,[data-md-color-primary=deep-purple] .md-hero{background-color:#7e57c2}[data-md-color-primary=deep-purple] .md-nav__link--active,[data-md-color-primary=deep-purple] .md-nav__link:active{color:#7e57c2}[data-md-color-primary=deep-purple] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=indigo]{background-color:#3f51b5}[data-md-color-primary=indigo] .md-typeset a{color:#3f51b5}[data-md-color-primary=indigo] .md-header,[data-md-color-primary=indigo] .md-hero{background-color:#3f51b5}[data-md-color-primary=indigo] .md-nav__link--active,[data-md-color-primary=indigo] .md-nav__link:active{color:#3f51b5}[data-md-color-primary=indigo] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=blue]{background-color:#2196f3}[data-md-color-primary=blue] .md-typeset a{color:#2196f3}[data-md-color-primary=blue] .md-header,[data-md-color-primary=blue] .md-hero{background-color:#2196f3}[data-md-color-primary=blue] .md-nav__link--active,[data-md-color-primary=blue] .md-nav__link:active{color:#2196f3}[data-md-color-primary=blue] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=light-blue]{background-color:#03a9f4}[data-md-color-primary=light-blue] .md-typeset a{color:#03a9f4}[data-md-color-primary=light-blue] .md-header,[data-md-color-primary=light-blue] .md-hero{background-color:#03a9f4}[data-md-color-primary=light-blue] .md-nav__link--active,[data-md-color-primary=light-blue] .md-nav__link:active{color:#03a9f4}[data-md-color-primary=light-blue] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=cyan]{background-color:#00bcd4}[data-md-color-primary=cyan] .md-typeset a{color:#00bcd4}[data-md-color-primary=cyan] .md-header,[data-md-color-primary=cyan] .md-hero{background-color:#00bcd4}[data-md-color-primary=cyan] .md-nav__link--active,[data-md-color-primary=cyan] .md-nav__link:active{color:#00bcd4}[data-md-color-primary=cyan] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=teal]{background-color:#009688}[data-md-color-primary=teal] .md-typeset a{color:#009688}[data-md-color-primary=teal] .md-header,[data-md-color-primary=teal] .md-hero{background-color:#009688}[data-md-color-primary=teal] .md-nav__link--active,[data-md-color-primary=teal] .md-nav__link:active{color:#009688}[data-md-color-primary=teal] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=green]{background-color:#4caf50}[data-md-color-primary=green] .md-typeset a{color:#4caf50}[data-md-color-primary=green] .md-header,[data-md-color-primary=green] .md-hero{background-color:#4caf50}[data-md-color-primary=green] .md-nav__link--active,[data-md-color-primary=green] .md-nav__link:active{color:#4caf50}[data-md-color-primary=green] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=light-green]{background-color:#7cb342}[data-md-color-primary=light-green] .md-typeset a{color:#7cb342}[data-md-color-primary=light-green] .md-header,[data-md-color-primary=light-green] .md-hero{background-color:#7cb342}[data-md-color-primary=light-green] .md-nav__link--active,[data-md-color-primary=light-green] .md-nav__link:active{color:#7cb342}[data-md-color-primary=light-green] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=lime]{background-color:#c0ca33}[data-md-color-primary=lime] .md-typeset a{color:#c0ca33}[data-md-color-primary=lime] .md-header,[data-md-color-primary=lime] .md-hero{background-color:#c0ca33}[data-md-color-primary=lime] .md-nav__link--active,[data-md-color-primary=lime] .md-nav__link:active{color:#c0ca33}[data-md-color-primary=lime] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=yellow]{background-color:#f9a825}[data-md-color-primary=yellow] .md-typeset a{color:#f9a825}[data-md-color-primary=yellow] .md-header,[data-md-color-primary=yellow] .md-hero{background-color:#f9a825}[data-md-color-primary=yellow] .md-nav__link--active,[data-md-color-primary=yellow] .md-nav__link:active{color:#f9a825}[data-md-color-primary=yellow] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=amber]{background-color:#ffa000}[data-md-color-primary=amber] .md-typeset a{color:#ffa000}[data-md-color-primary=amber] .md-header,[data-md-color-primary=amber] .md-hero{background-color:#ffa000}[data-md-color-primary=amber] .md-nav__link--active,[data-md-color-primary=amber] .md-nav__link:active{color:#ffa000}[data-md-color-primary=amber] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=orange]{background-color:#fb8c00}[data-md-color-primary=orange] .md-typeset a{color:#fb8c00}[data-md-color-primary=orange] .md-header,[data-md-color-primary=orange] .md-hero{background-color:#fb8c00}[data-md-color-primary=orange] .md-nav__link--active,[data-md-color-primary=orange] .md-nav__link:active{color:#fb8c00}[data-md-color-primary=orange] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=deep-orange]{background-color:#ff6600}[data-md-color-primary=deep-orange] .md-typeset a{color:#ff6600}[data-md-color-primary=deep-orange] .md-header,[data-md-color-primary=deep-orange] .md-hero{background-color:#ff6600}[data-md-color-primary=deep-orange] .md-nav__link--active,[data-md-color-primary=deep-orange] .md-nav__link:active{color:#ff6600}[data-md-color-primary=deep-orange] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=brown]{background-color:#795548}[data-md-color-primary=brown] .md-typeset a{color:#795548}[data-md-color-primary=brown] .md-header,[data-md-color-primary=brown] .md-hero{background-color:#795548}[data-md-color-primary=brown] .md-nav__link--active,[data-md-color-primary=brown] .md-nav__link:active{color:#795548}[data-md-color-primary=brown] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=grey]{background-color:#757575}[data-md-color-primary=grey] .md-typeset a{color:#757575}[data-md-color-primary=grey] .md-header,[data-md-color-primary=grey] .md-hero{background-color:#757575}[data-md-color-primary=grey] .md-nav__link--active,[data-md-color-primary=grey] .md-nav__link:active{color:#757575}[data-md-color-primary=grey] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=blue-grey]{background-color:#546e7a}[data-md-color-primary=blue-grey] .md-typeset a{color:#546e7a}[data-md-color-primary=blue-grey] .md-header,[data-md-color-primary=blue-grey] .md-hero{background-color:#546e7a}[data-md-color-primary=blue-grey] .md-nav__link--active,[data-md-color-primary=blue-grey] .md-nav__link:active{color:#546e7a}[data-md-color-primary=blue-grey] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=white]{-webkit-box-shadow:0 0 .1rem rgba(0,0,0,.54) inset;box-shadow:inset 0 0 .1rem rgba(0,0,0,.54)}[data-md-color-primary=white] .md-header,[data-md-color-primary=white] .md-hero,button[data-md-color-primary=white]{background-color:#fff;color:rgba(0,0,0,.87)}[data-md-color-primary=white] .md-hero--expand{border-bottom:.1rem solid rgba(0,0,0,.07)}button[data-md-color-accent=red]{background-color:#ff1744}[data-md-color-accent=red] .md-typeset a:active,[data-md-color-accent=red] .md-typeset a:hover{color:#ff1744}[data-md-color-accent=red] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=red] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ff1744}[data-md-color-accent=red] .md-nav__link:focus,[data-md-color-accent=red] .md-nav__link:hover,[data-md-color-accent=red] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=red] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=red] .md-typeset .md-clipboard:active:before,[data-md-color-accent=red] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=red] .md-typeset [id] .headerlink:focus,[data-md-color-accent=red] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=red] .md-typeset [id]:target .headerlink{color:#ff1744}[data-md-color-accent=red] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff1744}[data-md-color-accent=red] .md-search-result__link:hover,[data-md-color-accent=red] .md-search-result__link[data-md-state=active]{background-color:rgba(255,23,68,.1)}[data-md-color-accent=red] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff1744}[data-md-color-accent=red] .md-source-file:hover:before{background-color:#ff1744}button[data-md-color-accent=pink]{background-color:#f50057}[data-md-color-accent=pink] .md-typeset a:active,[data-md-color-accent=pink] .md-typeset a:hover{color:#f50057}[data-md-color-accent=pink] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=pink] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#f50057}[data-md-color-accent=pink] .md-nav__link:focus,[data-md-color-accent=pink] .md-nav__link:hover,[data-md-color-accent=pink] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=pink] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=pink] .md-typeset .md-clipboard:active:before,[data-md-color-accent=pink] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=pink] .md-typeset [id] .headerlink:focus,[data-md-color-accent=pink] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=pink] .md-typeset [id]:target .headerlink{color:#f50057}[data-md-color-accent=pink] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#f50057}[data-md-color-accent=pink] .md-search-result__link:hover,[data-md-color-accent=pink] .md-search-result__link[data-md-state=active]{background-color:rgba(245,0,87,.1)}[data-md-color-accent=pink] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#f50057}[data-md-color-accent=pink] .md-source-file:hover:before{background-color:#f50057}button[data-md-color-accent=purple]{background-color:#e040fb}[data-md-color-accent=purple] .md-typeset a:active,[data-md-color-accent=purple] .md-typeset a:hover{color:#e040fb}[data-md-color-accent=purple] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=purple] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#e040fb}[data-md-color-accent=purple] .md-nav__link:focus,[data-md-color-accent=purple] .md-nav__link:hover,[data-md-color-accent=purple] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=purple] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=purple] .md-typeset .md-clipboard:active:before,[data-md-color-accent=purple] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=purple] .md-typeset [id] .headerlink:focus,[data-md-color-accent=purple] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=purple] .md-typeset [id]:target .headerlink{color:#e040fb}[data-md-color-accent=purple] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#e040fb}[data-md-color-accent=purple] .md-search-result__link:hover,[data-md-color-accent=purple] .md-search-result__link[data-md-state=active]{background-color:rgba(224,64,251,.1)}[data-md-color-accent=purple] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#e040fb}[data-md-color-accent=purple] .md-source-file:hover:before{background-color:#e040fb}button[data-md-color-accent=deep-purple]{background-color:#7c4dff}[data-md-color-accent=deep-purple] .md-typeset a:active,[data-md-color-accent=deep-purple] .md-typeset a:hover{color:#7c4dff}[data-md-color-accent=deep-purple] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=deep-purple] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#7c4dff}[data-md-color-accent=deep-purple] .md-nav__link:focus,[data-md-color-accent=deep-purple] .md-nav__link:hover,[data-md-color-accent=deep-purple] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=deep-purple] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=deep-purple] .md-typeset .md-clipboard:active:before,[data-md-color-accent=deep-purple] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=deep-purple] .md-typeset [id] .headerlink:focus,[data-md-color-accent=deep-purple] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=deep-purple] .md-typeset [id]:target .headerlink{color:#7c4dff}[data-md-color-accent=deep-purple] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#7c4dff}[data-md-color-accent=deep-purple] .md-search-result__link:hover,[data-md-color-accent=deep-purple] .md-search-result__link[data-md-state=active]{background-color:rgba(124,77,255,.1)}[data-md-color-accent=deep-purple] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#7c4dff}[data-md-color-accent=deep-purple] .md-source-file:hover:before{background-color:#7c4dff}button[data-md-color-accent=indigo]{background-color:#536dfe}[data-md-color-accent=indigo] .md-typeset a:active,[data-md-color-accent=indigo] .md-typeset a:hover{color:#536dfe}[data-md-color-accent=indigo] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=indigo] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#536dfe}[data-md-color-accent=indigo] .md-nav__link:focus,[data-md-color-accent=indigo] .md-nav__link:hover,[data-md-color-accent=indigo] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=indigo] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=indigo] .md-typeset .md-clipboard:active:before,[data-md-color-accent=indigo] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=indigo] .md-typeset [id] .headerlink:focus,[data-md-color-accent=indigo] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=indigo] .md-typeset [id]:target .headerlink{color:#536dfe}[data-md-color-accent=indigo] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}[data-md-color-accent=indigo] .md-search-result__link:hover,[data-md-color-accent=indigo] .md-search-result__link[data-md-state=active]{background-color:rgba(83,109,254,.1)}[data-md-color-accent=indigo] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}[data-md-color-accent=indigo] .md-source-file:hover:before{background-color:#536dfe}button[data-md-color-accent=blue]{background-color:#448aff}[data-md-color-accent=blue] .md-typeset a:active,[data-md-color-accent=blue] .md-typeset a:hover{color:#448aff}[data-md-color-accent=blue] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=blue] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#448aff}[data-md-color-accent=blue] .md-nav__link:focus,[data-md-color-accent=blue] .md-nav__link:hover,[data-md-color-accent=blue] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=blue] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=blue] .md-typeset .md-clipboard:active:before,[data-md-color-accent=blue] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=blue] .md-typeset [id] .headerlink:focus,[data-md-color-accent=blue] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=blue] .md-typeset [id]:target .headerlink{color:#448aff}[data-md-color-accent=blue] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#448aff}[data-md-color-accent=blue] .md-search-result__link:hover,[data-md-color-accent=blue] .md-search-result__link[data-md-state=active]{background-color:rgba(68,138,255,.1)}[data-md-color-accent=blue] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#448aff}[data-md-color-accent=blue] .md-source-file:hover:before{background-color:#448aff}button[data-md-color-accent=light-blue]{background-color:#0091ea}[data-md-color-accent=light-blue] .md-typeset a:active,[data-md-color-accent=light-blue] .md-typeset a:hover{color:#0091ea}[data-md-color-accent=light-blue] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=light-blue] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#0091ea}[data-md-color-accent=light-blue] .md-nav__link:focus,[data-md-color-accent=light-blue] .md-nav__link:hover,[data-md-color-accent=light-blue] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=light-blue] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=light-blue] .md-typeset .md-clipboard:active:before,[data-md-color-accent=light-blue] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=light-blue] .md-typeset [id] .headerlink:focus,[data-md-color-accent=light-blue] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=light-blue] .md-typeset [id]:target .headerlink{color:#0091ea}[data-md-color-accent=light-blue] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#0091ea}[data-md-color-accent=light-blue] .md-search-result__link:hover,[data-md-color-accent=light-blue] .md-search-result__link[data-md-state=active]{background-color:rgba(0,145,234,.1)}[data-md-color-accent=light-blue] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#0091ea}[data-md-color-accent=light-blue] .md-source-file:hover:before{background-color:#0091ea}button[data-md-color-accent=cyan]{background-color:#00b8d4}[data-md-color-accent=cyan] .md-typeset a:active,[data-md-color-accent=cyan] .md-typeset a:hover{color:#00b8d4}[data-md-color-accent=cyan] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=cyan] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#00b8d4}[data-md-color-accent=cyan] .md-nav__link:focus,[data-md-color-accent=cyan] .md-nav__link:hover,[data-md-color-accent=cyan] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=cyan] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=cyan] .md-typeset .md-clipboard:active:before,[data-md-color-accent=cyan] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=cyan] .md-typeset [id] .headerlink:focus,[data-md-color-accent=cyan] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=cyan] .md-typeset [id]:target .headerlink{color:#00b8d4}[data-md-color-accent=cyan] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00b8d4}[data-md-color-accent=cyan] .md-search-result__link:hover,[data-md-color-accent=cyan] .md-search-result__link[data-md-state=active]{background-color:rgba(0,184,212,.1)}[data-md-color-accent=cyan] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00b8d4}[data-md-color-accent=cyan] .md-source-file:hover:before{background-color:#00b8d4}button[data-md-color-accent=teal]{background-color:#00bfa5}[data-md-color-accent=teal] .md-typeset a:active,[data-md-color-accent=teal] .md-typeset a:hover{color:#00bfa5}[data-md-color-accent=teal] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=teal] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#00bfa5}[data-md-color-accent=teal] .md-nav__link:focus,[data-md-color-accent=teal] .md-nav__link:hover,[data-md-color-accent=teal] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=teal] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=teal] .md-typeset .md-clipboard:active:before,[data-md-color-accent=teal] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=teal] .md-typeset [id] .headerlink:focus,[data-md-color-accent=teal] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=teal] .md-typeset [id]:target .headerlink{color:#00bfa5}[data-md-color-accent=teal] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00bfa5}[data-md-color-accent=teal] .md-search-result__link:hover,[data-md-color-accent=teal] .md-search-result__link[data-md-state=active]{background-color:rgba(0,191,165,.1)}[data-md-color-accent=teal] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00bfa5}[data-md-color-accent=teal] .md-source-file:hover:before{background-color:#00bfa5}button[data-md-color-accent=green]{background-color:#00c853}[data-md-color-accent=green] .md-typeset a:active,[data-md-color-accent=green] .md-typeset a:hover{color:#00c853}[data-md-color-accent=green] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=green] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#00c853}[data-md-color-accent=green] .md-nav__link:focus,[data-md-color-accent=green] .md-nav__link:hover,[data-md-color-accent=green] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=green] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=green] .md-typeset .md-clipboard:active:before,[data-md-color-accent=green] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=green] .md-typeset [id] .headerlink:focus,[data-md-color-accent=green] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=green] .md-typeset [id]:target .headerlink{color:#00c853}[data-md-color-accent=green] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00c853}[data-md-color-accent=green] .md-search-result__link:hover,[data-md-color-accent=green] .md-search-result__link[data-md-state=active]{background-color:rgba(0,200,83,.1)}[data-md-color-accent=green] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00c853}[data-md-color-accent=green] .md-source-file:hover:before{background-color:#00c853}button[data-md-color-accent=light-green]{background-color:#64dd17}[data-md-color-accent=light-green] .md-typeset a:active,[data-md-color-accent=light-green] .md-typeset a:hover{color:#64dd17}[data-md-color-accent=light-green] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=light-green] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#64dd17}[data-md-color-accent=light-green] .md-nav__link:focus,[data-md-color-accent=light-green] .md-nav__link:hover,[data-md-color-accent=light-green] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=light-green] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=light-green] .md-typeset .md-clipboard:active:before,[data-md-color-accent=light-green] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=light-green] .md-typeset [id] .headerlink:focus,[data-md-color-accent=light-green] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=light-green] .md-typeset [id]:target .headerlink{color:#64dd17}[data-md-color-accent=light-green] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#64dd17}[data-md-color-accent=light-green] .md-search-result__link:hover,[data-md-color-accent=light-green] .md-search-result__link[data-md-state=active]{background-color:rgba(100,221,23,.1)}[data-md-color-accent=light-green] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#64dd17}[data-md-color-accent=light-green] .md-source-file:hover:before{background-color:#64dd17}button[data-md-color-accent=lime]{background-color:#aeea00}[data-md-color-accent=lime] .md-typeset a:active,[data-md-color-accent=lime] .md-typeset a:hover{color:#aeea00}[data-md-color-accent=lime] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=lime] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#aeea00}[data-md-color-accent=lime] .md-nav__link:focus,[data-md-color-accent=lime] .md-nav__link:hover,[data-md-color-accent=lime] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=lime] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=lime] .md-typeset .md-clipboard:active:before,[data-md-color-accent=lime] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=lime] .md-typeset [id] .headerlink:focus,[data-md-color-accent=lime] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=lime] .md-typeset [id]:target .headerlink{color:#aeea00}[data-md-color-accent=lime] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#aeea00}[data-md-color-accent=lime] .md-search-result__link:hover,[data-md-color-accent=lime] .md-search-result__link[data-md-state=active]{background-color:rgba(174,234,0,.1)}[data-md-color-accent=lime] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#aeea00}[data-md-color-accent=lime] .md-source-file:hover:before{background-color:#aeea00}button[data-md-color-accent=yellow]{background-color:#ffd600}[data-md-color-accent=yellow] .md-typeset a:active,[data-md-color-accent=yellow] .md-typeset a:hover{color:#ffd600}[data-md-color-accent=yellow] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=yellow] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ffd600}[data-md-color-accent=yellow] .md-nav__link:focus,[data-md-color-accent=yellow] .md-nav__link:hover,[data-md-color-accent=yellow] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=yellow] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=yellow] .md-typeset .md-clipboard:active:before,[data-md-color-accent=yellow] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=yellow] .md-typeset [id] .headerlink:focus,[data-md-color-accent=yellow] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=yellow] .md-typeset [id]:target .headerlink{color:#ffd600}[data-md-color-accent=yellow] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ffd600}[data-md-color-accent=yellow] .md-search-result__link:hover,[data-md-color-accent=yellow] .md-search-result__link[data-md-state=active]{background-color:rgba(255,214,0,.1)}[data-md-color-accent=yellow] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ffd600}[data-md-color-accent=yellow] .md-source-file:hover:before{background-color:#ffd600}button[data-md-color-accent=amber]{background-color:#ffab00}[data-md-color-accent=amber] .md-typeset a:active,[data-md-color-accent=amber] .md-typeset a:hover{color:#ffab00}[data-md-color-accent=amber] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=amber] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ffab00}[data-md-color-accent=amber] .md-nav__link:focus,[data-md-color-accent=amber] .md-nav__link:hover,[data-md-color-accent=amber] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=amber] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=amber] .md-typeset .md-clipboard:active:before,[data-md-color-accent=amber] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=amber] .md-typeset [id] .headerlink:focus,[data-md-color-accent=amber] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=amber] .md-typeset [id]:target .headerlink{color:#ffab00}[data-md-color-accent=amber] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ffab00}[data-md-color-accent=amber] .md-search-result__link:hover,[data-md-color-accent=amber] .md-search-result__link[data-md-state=active]{background-color:rgba(255,171,0,.1)}[data-md-color-accent=amber] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ffab00}[data-md-color-accent=amber] .md-source-file:hover:before{background-color:#ffab00}button[data-md-color-accent=orange]{background-color:#ff9100}[data-md-color-accent=orange] .md-typeset a:active,[data-md-color-accent=orange] .md-typeset a:hover{color:#ff9100}[data-md-color-accent=orange] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=orange] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ff9100}[data-md-color-accent=orange] .md-nav__link:focus,[data-md-color-accent=orange] .md-nav__link:hover,[data-md-color-accent=orange] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=orange] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=orange] .md-typeset .md-clipboard:active:before,[data-md-color-accent=orange] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=orange] .md-typeset [id] .headerlink:focus,[data-md-color-accent=orange] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=orange] .md-typeset [id]:target .headerlink{color:#ff9100}[data-md-color-accent=orange] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff9100}[data-md-color-accent=orange] .md-search-result__link:hover,[data-md-color-accent=orange] .md-search-result__link[data-md-state=active]{background-color:rgba(255,145,0,.1)}[data-md-color-accent=orange] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff9100}[data-md-color-accent=orange] .md-source-file:hover:before{background-color:#ff9100}button[data-md-color-accent=deep-orange]{background-color:#ff6e40}[data-md-color-accent=deep-orange] .md-typeset a:active,[data-md-color-accent=deep-orange] .md-typeset a:hover{color:#ff6e40}[data-md-color-accent=deep-orange] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=deep-orange] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ff6e40}[data-md-color-accent=deep-orange] .md-nav__link:focus,[data-md-color-accent=deep-orange] .md-nav__link:hover,[data-md-color-accent=deep-orange] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=deep-orange] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=deep-orange] .md-typeset .md-clipboard:active:before,[data-md-color-accent=deep-orange] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=deep-orange] .md-typeset [id] .headerlink:focus,[data-md-color-accent=deep-orange] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=deep-orange] .md-typeset [id]:target .headerlink{color:#ff6e40}[data-md-color-accent=deep-orange] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff6e40}[data-md-color-accent=deep-orange] .md-search-result__link:hover,[data-md-color-accent=deep-orange] .md-search-result__link[data-md-state=active]{background-color:rgba(255,110,64,.1)}[data-md-color-accent=deep-orange] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff6e40}[data-md-color-accent=deep-orange] .md-source-file:hover:before{background-color:#ff6e40}@media only screen and (max-width:59.9375em){[data-md-color-primary=red] .md-nav__source{background-color:rgba(190,66,64,.9675)}[data-md-color-primary=pink] .md-nav__source{background-color:rgba(185,24,79,.9675)}[data-md-color-primary=purple] .md-nav__source{background-color:rgba(136,57,150,.9675)}[data-md-color-primary=deep-purple] .md-nav__source{background-color:rgba(100,69,154,.9675)}[data-md-color-primary=indigo] .md-nav__source{background-color:rgba(50,64,144,.9675)}[data-md-color-primary=blue] .md-nav__source{background-color:rgba(26,119,193,.9675)}[data-md-color-primary=light-blue] .md-nav__source{background-color:rgba(2,134,194,.9675)}[data-md-color-primary=cyan] .md-nav__source{background-color:rgba(0,150,169,.9675)}[data-md-color-primary=teal] .md-nav__source{background-color:rgba(0,119,108,.9675)}[data-md-color-primary=green] .md-nav__source{background-color:rgba(60,139,64,.9675)}[data-md-color-primary=light-green] .md-nav__source{background-color:rgba(99,142,53,.9675)}[data-md-color-primary=lime] .md-nav__source{background-color:rgba(153,161,41,.9675)}[data-md-color-primary=yellow] .md-nav__source{background-color:rgba(198,134,29,.9675)}[data-md-color-primary=amber] .md-nav__source{background-color:rgba(203,127,0,.9675)}[data-md-color-primary=orange] .md-nav__source{background-color:rgba(200,111,0,.9675)}[data-md-color-primary=deep-orange] .md-nav__source{background-color:rgba(203,89,53,.9675)}[data-md-color-primary=brown] .md-nav__source{background-color:rgba(96,68,57,.9675)}[data-md-color-primary=grey] .md-nav__source{background-color:rgba(93,93,93,.9675)}[data-md-color-primary=blue-grey] .md-nav__source{background-color:rgba(67,88,97,.9675)}[data-md-color-primary=white] .md-nav__source{background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.87)}}@media only screen and (max-width:76.1875em){html [data-md-color-primary=red] .md-nav--primary .md-nav__title--site{background-color:#ef5350}html [data-md-color-primary=pink] .md-nav--primary .md-nav__title--site{background-color:#e91e63}html [data-md-color-primary=purple] .md-nav--primary .md-nav__title--site{background-color:#ab47bc}html [data-md-color-primary=deep-purple] .md-nav--primary .md-nav__title--site{background-color:#7e57c2}html [data-md-color-primary=indigo] .md-nav--primary .md-nav__title--site{background-color:#3f51b5}html [data-md-color-primary=blue] .md-nav--primary .md-nav__title--site{background-color:#2196f3}html [data-md-color-primary=light-blue] .md-nav--primary .md-nav__title--site{background-color:#03a9f4}html [data-md-color-primary=cyan] .md-nav--primary .md-nav__title--site{background-color:#00bcd4}html [data-md-color-primary=teal] .md-nav--primary .md-nav__title--site{background-color:#009688}html [data-md-color-primary=green] .md-nav--primary .md-nav__title--site{background-color:#4caf50}html [data-md-color-primary=light-green] .md-nav--primary .md-nav__title--site{background-color:#7cb342}html [data-md-color-primary=lime] .md-nav--primary .md-nav__title--site{background-color:#c0ca33}html [data-md-color-primary=yellow] .md-nav--primary .md-nav__title--site{background-color:#f9a825}html [data-md-color-primary=amber] .md-nav--primary .md-nav__title--site{background-color:#ffa000}html [data-md-color-primary=orange] .md-nav--primary .md-nav__title--site{background-color:#fb8c00}html [data-md-color-primary=deep-orange] .md-nav--primary .md-nav__title--site{background-color:#ff6600}html [data-md-color-primary=brown] .md-nav--primary .md-nav__title--site{background-color:#795548}html [data-md-color-primary=grey] .md-nav--primary .md-nav__title--site{background-color:#757575}html [data-md-color-primary=blue-grey] .md-nav--primary .md-nav__title--site{background-color:#546e7a}html [data-md-color-primary=white] .md-nav--primary .md-nav__title--site{background-color:#fff;color:rgba(0,0,0,.87)}[data-md-color-primary=white] .md-hero{border-bottom:.1rem solid rgba(0,0,0,.07)}}@media only screen and (min-width:76.25em){[data-md-color-primary=red] .md-tabs{background-color:#ef5350}[data-md-color-primary=pink] .md-tabs{background-color:#e91e63}[data-md-color-primary=purple] .md-tabs{background-color:#ab47bc}[data-md-color-primary=deep-purple] .md-tabs{background-color:#7e57c2}[data-md-color-primary=indigo] .md-tabs{background-color:#3f51b5}[data-md-color-primary=blue] .md-tabs{background-color:#2196f3}[data-md-color-primary=light-blue] .md-tabs{background-color:#03a9f4}[data-md-color-primary=cyan] .md-tabs{background-color:#00bcd4}[data-md-color-primary=teal] .md-tabs{background-color:#009688}[data-md-color-primary=green] .md-tabs{background-color:#4caf50}[data-md-color-primary=light-green] .md-tabs{background-color:#7cb342}[data-md-color-primary=lime] .md-tabs{background-color:#c0ca33}[data-md-color-primary=yellow] .md-tabs{background-color:#f9a825}[data-md-color-primary=amber] .md-tabs{background-color:#ffa000}[data-md-color-primary=orange] .md-tabs{background-color:#fb8c00}[data-md-color-primary=deep-orange] .md-tabs{background-color:#ff6600}[data-md-color-primary=brown] .md-tabs{background-color:#795548}[data-md-color-primary=grey] .md-tabs{background-color:#757575}[data-md-color-primary=blue-grey] .md-tabs{background-color:#546e7a}[data-md-color-primary=white] .md-tabs{border-bottom:.1rem solid rgba(0,0,0,.07);background-color:#fff;color:rgba(0,0,0,.87)}}@media only screen and (min-width:60em){[data-md-color-primary=white] .md-search__input{background-color:rgba(0,0,0,.07)}[data-md-color-primary=white] .md-search__input::-webkit-input-placeholder{color:rgba(0,0,0,.54)}[data-md-color-primary=white] .md-search__input:-ms-input-placeholder,[data-md-color-primary=white] .md-search__input::-ms-input-placeholder{color:rgba(0,0,0,.54)}[data-md-color-primary=white] .md-search__input::placeholder{color:rgba(0,0,0,.54)}}*/ +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhc3NldHMvc3R5bGVzaGVldHMvYXBwbGljYXRpb24tcGFsZXR0ZS43OTI0MzFjMS5jc3MiLCJzb3VyY2VSb290IjoiIn0=*/ \ No newline at end of file diff --git a/docs/mkdocs/docs/images/architecture.png b/docs/mkdocs/docs/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..488bfa1832d34189e5a175128b91681c468041a4 GIT binary patch literal 133420 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/docs/images/donate.png b/docs/mkdocs/docs/images/donate.png new file mode 100644 index 0000000000000000000000000000000000000000..95ff4d4f2c6d5982e849105f4a32dd6c245ebe18 GIT binary patch literal 3832 zcmai1dsI^S7Pg!oYFeR1KC)qrMGuX9T=J;p70lQ8$nsi}LYje(OatE;RzNPa2a{uJ zfQ;4Erbex>P%FKbl!>5ag``HMqJ}1dG+-(h|CqIE&2;?Ztn*mw?6vpzef!({N8cUn zYiev|Y+ztu>hI^h$G~901l&Lkq|!1KL-wQ#+=|hK2}ZJF#n~A_x~g(;tZyafCmcvL4B0?#r~xh~b*4 z5LtteucJnLjrJ}uHp)1OdbIX8M#_?ncHh3b6qPIn(#nLkZR*6Rg3rEkO%c?AF6Xo4ud1MF*H$o# z8d$I(G3{3YUOYZ9W!zK$x01f9aF|RVF-INgjkS!_k!FDsRC1hH{^TlRLDFiM;6 z120a5imlfRRPRMwGiERXZZ8tS)6#63hC_M>`V!e}h55WRDSgj9VBqd&hPG#gR=TC= zqo6M%izno&O4Mc)e-n5y<(!b|<+=zdEOxpL9`5SxcYBZ~d>)3lbWG*^cG}byL2iw^ z@qVNGcXcv{ZP5A+X=P1DzdN*7Bb0bPKFiWGs@>AYbKf!gkwS>MLCwy&LdkXl?{?0kkbPmIvMKY#RWGtiX}tr)^(hRTt`?kC7ka$gX!_0T-AW9t)~~~6x>W>4~Wjd=pcHrpFxkGAhJ63e-rWe^g1sCl2`((~_)e$r2DeqG;DKk|`TMvmo zaCWHGhu?3vowZSnBZ=Et79pTrcwOQ6Gpo4n0C}Q=Cs{kn{k16L! z9djnEdn2R4qXZR}EEXItWE~YmA*O<0ix|ynNT(PsJA#$#ow`}}p`*CR9%TmZL#eLx z5k-t8DFM$UrC-W(F-2j6W*Jv;j>!&$@UYp__9pRZ5^%YvK)Q(h4cEpM^gB<~%=VEp z(}f|m4XD+**qg%U5awQ9<1B628Q*#QJ(|ABH~9GQr%(#Z$A_#QsZ*pywWgN!{|RwA zV}C93^9Po=X$3eSb3<`2`d_izx&xmn^0~eO9qLlg12F>XRB=>G6gNGQi{0*J6@p7_ z3P|*)2Hp}JJ7HPO4A3rOun@7_8150SAU#TCoJYL@-Ya@D!Xad=`nOI?<6YW|dr}{6 zQ^#25k+6DGs|X<{I}UBnoN=ye)PQG!VYk%wLc9OiOAGUmxl3}&DJ*{fE|p0+OP^nN+(j=C6Y;cGa3fZf#pU%f2Zj;qWgl=GN*Rzde>Q=jxmDb42QGW z&asNlf*wt3^cWwLG+XW2m+ZE4NH)C*JWd~{Wl~)Zhn-&s#5U}1-F7*m_3DWzzqKQy zR0K6_;n=r(&{w;|oDb^PBBa0ySXERb^&uzORpvp6aDbABB0EtS`;b!qR?Pe=PeT~* zMPO_*9JV`EFSj)=otiX)T}Yos_t;3ndzsdeIutk|b179J!_WcQTt;x;!N%7GBwI}j zhHW&GAUiARVLi=~nQzbCVF+HyfY+kNo8h zxjy{|v*HFffTO8*kLu!u=X=&MxyjW%HpE~1<&-=THMMy$VrLoSIR@Z1AWcJ(z?JbB z(uG&YuYTdBaW2?Jsp*hBYbu1|W@Ul@WgNE2IgwBV-Yn!~>}cI4XPY|U%ZAv5S46!Z zUQvG7h0FcO@DD_6J_WmQPkVpAZGRdYJdPRM(G=BY#${Au%cK^{IPKsaEsLoKMvk5K z*#6Xky>^}f^?QrU+VuNoDwN-GzpDefKj{cN-StDT{wv6v2M`tEQB5rUHl+LMy9(r))pZMVz@F@9c$C2n=ggKrtUJfZ1RvL((e#n_g3nL!xOe8N z%EjU@R^oMI9W4J^ZJgj$Iiuo*5(fcwVffI!$H>LK)|ciDU6ZvoGSHUE>FK%AZp zXI6 zTc6OuEWa*%vIzVLF}J)&qtg^u3ez9%x+mdy+z)RpY3LUu1s@jFc!`h)3V_5S&yPx) zP$8vY(YR(m_+eBe#EPsyICX79OothGIJsl=3I_cZ6;KS nx`j`ZXiVXd*Pl8Yc6l6+pY%2nv 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 diff --git a/docs/mkdocs/po/index.md.cfg b/docs/mkdocs/po/index.md.cfg new file mode 100644 index 0000000..1f09a08 --- /dev/null +++ b/docs/mkdocs/po/index.md.cfg @@ -0,0 +1,13 @@ +[po4a_langs] es it pl fr ar ru de nl pt tr zh zh-TW nb +[po4a_paths] ../weblate/en/index.md.pot $lang:../weblate/$lang/index.md.po + +[options] opt:"--keep=0" +[options] opt:"--localized-charset=UTF-8" +[options] opt:"--master-charset=UTF-8" +[options] opt:"--master-language=en_US" +[options] opt:"--msgmerge-opt='--no-wrap'" +[options] opt:"--wrap-po=newlines" + +[po4a_alias:markdown] text opt:"--option markdown" + +[type: markdown] ../docs/en/index.md $lang:../docs/$lang/index.md \ No newline at end of file diff --git a/docs/mkdocs/public/404.html b/docs/mkdocs/public/404.html new file mode 100644 index 0000000..e1d93da --- /dev/null +++ b/docs/mkdocs/public/404.html @@ -0,0 +1 @@ + Monero Python

404 - Not found

\ No newline at end of file diff --git a/docs/mkdocs/public/api/architecture/index.html b/docs/mkdocs/public/api/architecture/index.html new file mode 100644 index 0000000..7407fb8 --- /dev/null +++ b/docs/mkdocs/public/api/architecture/index.html @@ -0,0 +1 @@ + Architecture - Monero Python
\ No newline at end of file diff --git a/docs/mkdocs/public/api/connection/index.html b/docs/mkdocs/public/api/connection/index.html new file mode 100644 index 0000000..44d3c9b --- /dev/null +++ b/docs/mkdocs/public/api/connection/index.html @@ -0,0 +1 @@ + RPC Connection - Monero Python

RPC Connection

MoneroRpcConnection

Bases: SerializableStruct

Models a connection to a daemon.

password: str | None property

Connection authentication password.

priority: int instance-attribute

Connection priority.

proxy_uri: str | None instance-attribute

Connection proxy address.

response_time: int | None property

Connection response time in milliseconds.

timeout: int instance-attribute

Connection timeout (milliseconds).

uri: str | None instance-attribute

Connection uri.

username: str | None property

Connection authentication username.

zmq_uri: str | None instance-attribute

ZMQ connection uri.

before(c1, c2, current_connection) staticmethod

Compare RPC connections.

Parameters:

Name Type Description Default
c1 MoneroRpcConnection

connection.

required
c2 MoneroRpcConnection

other connection.

required
current_connection MoneroRpcConnection

current connection.

required

Returns:

Type Description
bool

True if c1 comes before c2, False otherwise.

check_connection(timeout_ms=20000)

Check the connection and update online, authentication, and response time status.

Parameters:

Name Type Description Default
timeout_ms int

the maximum response time before considered offline.

20000

Returns:

Type Description
bool

True if there is a change in status, False otherwise.

get_attribute(key)

Returns RPC connection attribute.

Parameters:

Name Type Description Default
key str

attribute key.

required

Returns:

Type Description
str

attribute value.

is_authenticated()

Indicates if the connection is authenticated according to the last call to check_connection().

Note: must call check_connection() manually.

Returns:

Type Description
bool | None

True if authenticated or no authentication required, False if not authenticated, or None if check_connection() has not been called.

is_connected()

Indicates if the connection is connected according to the last call to check_connection().

Note: must call check_connection() manually.

Returns:

Type Description
bool | None

True or False to indicate if connected, or None if check_connection() has not been called.

is_i2p()

Indicates if the connection is a I2P connection.

Returns:

Type Description
bool

True if connection is a I2P connection, False otherwise.

is_onion()

Indicates if the connection is a TOR connection.

Returns:

Type Description
bool

True if connection is a TOR connection, False otherwise.

is_online()

Indicates if the connection is online according to the last call to check_connection().

Note: must call check_connection() manually.

Returns:

Type Description
bool | None

True or False to indicate if online, or None if check_connection() has not been called.

send_binary_request(method, parameters=None)

Send a binary RPC request.

Parameters:

Name Type Description Default
method str

is the path of the binary RPC method to invoke.

required
parameters Optional[object]

are the request parameters (default None).

None

Returns:

Type Description
str | None

the request's deserialized binary response.

send_json_request(method, parameters=None)

Send a request to the JSON-RPC API.

Parameters:

Name Type Description Default
method str

is the method to request.

required
parameters Optional[object]

are the request's input parameters (default None).

None

Returns:

Type Description
object | None

the RPC API response as a map.

send_path_request(method, parameters=None)

Send a RPC request to the given path and with the given paramters.

E.g. /get_transactions with params.

Parameters:

Name Type Description Default
method str

is the url path of the request to invoke.

required
parameters Optional[object]

are request parameters sent in the body.

None

Returns:

Type Description
object | None

the request's deserialized response.

set_attribute(key, value)

Set RPC connection attribute.

Parameters:

Name Type Description Default
key str

key attribute.

required
value str

value attribute.

required

set_credentials(username, password)

Set RPC connection credentials.

Parameters:

Name Type Description Default
username str

username used for RPC authentication.

required
password str

passowrd user for RPC authentication.

required
\ No newline at end of file diff --git a/docs/mkdocs/public/api/daemon/index.html b/docs/mkdocs/public/api/daemon/index.html new file mode 100644 index 0000000..6b1b1d1 --- /dev/null +++ b/docs/mkdocs/public/api/daemon/index.html @@ -0,0 +1 @@ + Daemon Interface - Monero Python

Daemon Interface

MoneroDaemon

Monero daemon interface.

__init__()

Initialize a Monero daemon.

add_listener(listener)

Register a listener to receive daemon notifications.

Parameters:

Name Type Description Default
listener MoneroDaemonListener

the listener to register.

required

check_for_update()

Check for update.

Returns:

Type Description
MoneroDaemonUpdateCheckResult

the result of the update check.

download_update(path='')

Download an update.

Parameters:

Name Type Description Default
path str

download path.

''

Returns:

Type Description
MoneroDaemonUpdateDownloadResult

the result of the update download.

get_alt_block_hashes()

Get known block hashes which are not on the main chain.

Returns:

Type Description
list[str]

known block hashes which are not on the main chain.

get_alt_chains()

Get alternative chains seen by the node.

Returns:

Type Description
list[MoneroAltChain]

alternative chains seen by the node.

get_block_by_hash(hash)

Get a block by hash.

Parameters:

Name Type Description Default
hash str

is the hash of the block to get.

required

Returns:

Type Description
MoneroBlock

the block with the given hash.

get_block_by_height(height)

Get a block by height.

Parameters:

Name Type Description Default
height int

is the height of the block to get.

required

Returns:

Type Description
MoneroBlock

the block at the given height.

get_block_hash(height)

Get a block's hash by its height.

Parameters:

Name Type Description Default
height int

is the height of the block hash to get.

required

Returns:

Type Description
str

the block's hash at the given height.

get_block_hashes(block_hashes, start_height)

Get block hashes as a binary request to the daemon.

Parameters:

Name Type Description Default
block_hashes list[str]

specify block hashes to fetch; first 10 blocks hash goes sequential, next goes in pow(2,n) offset, like 2, 4, 8, 16, 32, 64 and so on, and the last one is always genesis block.

required
start_height int

is the starting height of block hashes to return.

required

Returns:

Type Description
list[str]

the requested block hashes.

get_block_header_by_hash(hash)

Get a block header by its hash.

Parameters:

Name Type Description Default
hash str

is the hash of the block to get the header of.

required

Returns:

Type Description
MoneroBlockHeader

the block's header.

get_block_header_by_height(height)

Get a block header by its height.

Parameters:

Name Type Description Default
height int

is the height of the block to get the header of.

required

Returns:

Type Description
MoneroBlockHeader

the block's header.

get_block_headers_by_range(start_height, end_height)

Get block headers for the given range.

Parameters:

Name Type Description Default
start_height int

is the start height lower bound inclusive (optional).

required
end_height int

is the end height upper bound inclusive (optional).

required

Returns:

Type Description
list[MoneroBlockHeader]

block headers in the given range.

get_blocks_by_hash(block_hashes, start_height, prune)

Get a block by hash.

Parameters:

Name Type Description Default
block_hashes list[str]

is the hash of the block to get.

required
start_height int

filter blocks by block height.

required
prune bool

prune hash.

required

Returns:

Type Description
list[MoneroBlock]

the block with the given hash.

get_blocks_by_height(heights)

Get blocks at the given heights.

Parameters:

Name Type Description Default
heights list[int]

are the heights of the blocks to get.

required

Returns:

Type Description
list[MoneroBlock]

blocks at the given heights.

get_blocks_by_range(start_height, end_height)

Get blocks in the given height range.

Parameters:

Name Type Description Default
start_height int

is the start height lower bound inclusive (optional).

required
end_height int

is the end height upper bound inclusive (optional).

required

Returns:

Type Description
list[MoneroBlock]

blocks in the given height range.

get_blocks_by_range_chunked(start_height, end_height, max_chunk_size=None)

Get blocks in the given height range as chunked requests so that each request is not too big.

Parameters:

Name Type Description Default
start_height int

is the start height lower bound inclusive (optional).

required
end_height int

is the end height upper bound inclusive (optional).

required
max_chunk_size int

is the maximum chunk size in any one request (default 3,000,000 bytes).

None

Returns:

Type Description
list[MoneroBlock]

blocks in the given height range.

get_download_limit()

Get the download bandwidth limit.

Returns:

Type Description
int

is the download bandwidth limit.

get_fee_estimate(grace_blocks=0)

Get mining fee estimates per kB.

Parameters:

Name Type Description Default
grace_blocks int

number of blocks we want the fee estimate to be valid for.

0

Returns:

Type Description
MoneroFeeEstimate

mining fee estimates per kB.

get_hard_fork_info()

Look up information regarding hard fork voting and readiness.

Returns:

Type Description
MoneroHardForkInfo

hard fork information.

get_height()

Get the number of blocks in the longest chain known to the node.

Returns:

Type Description
int

the number of blocks.

get_info()

Get general information about the state of the node and the network.

Returns:

Type Description
MoneroDaemonInfo

general information about the node and network.

get_key_image_spent_status(key_image)

Get the spent status of the given key image.

Parameters:

Name Type Description Default
key_image str

is key image hex to get the status of.

required

Returns:

Type Description
MoneroKeyImageSpentStatus

the status of the key image.

get_key_image_spent_statuses(key_images)

Get the spent status of each given key image.

Parameters:

Name Type Description Default
key_images list[str]

are hex key images to get the statuses of.

required

Returns:

Type Description
list[MoneroKeyImageSpentStatus]

the spent status for each key image.

get_known_peers()

Get all known peers including their last known online status.

Returns:

Type Description
list[MoneroPeer]

the daemon's known peers.

get_last_block_header()

Get the last block's header.

Returns:

Type Description
MoneroBlockHeader

the last block's header.

get_listeners()

Get the listeners registered with the daemon.

Returns:

Type Description
list[MoneroDaemonListener]

the registered listeners.

get_miner_tx_sum(height, num_blocks)

Gets the total emissions and fees from the genesis block to the current height.

Parameters:

Name Type Description Default
height int

is the height to start computing the miner sum.

required
num_blocks int

are the number of blocks to include in the sum.

required

Returns:

Type Description
MoneroMinerTxSum

the sum emission and fees since the geneis block.

get_mining_status()

Get the daemon's mining status.

Returns:

Type Description
MoneroMiningStatus

the daemon's mining status.

get_output_histogram(amounts, min_count, max_count, is_unlocked, recent_cutoff)

Get a histogram of output amounts. For all amounts (possibly filtered by parameters), gives the number of outputs on the chain for that amount. RingCT outputs counts as 0 amount.

Parameters:

Name Type Description Default
amounts list[int]

are amounts of outputs to make the histogram with (atomic-units).

required
min_count Optional[int]

filter amounts with at least this number of outputs.

required
max_count Optional[int]

filter amounts with at most this number of outputs.

required
is_unlocked Optional[bool]

makes a histogram with outputs with the specified lock state.

required
recent_cutoff Optional[int]

exclude outputs from older than this timestamp.

required

Returns:

Type Description
list[MoneroOutputHistogramEntry]

output histogram entries meeting the parameters.

get_outputs(outputs)

Get outputs identified by a list of output amounts and indices as a binary request.

Parameters:

Name Type Description Default
outputs list[MoneroOutput]

identify each output by amount and index.

required

Returns:

Type Description
list[MoneroOutput]

the identified outputs.

get_peer_bans()

Get peer bans.

Returns:

Type Description
list[MoneroBan]

entries about banned peers.

get_peers()

Get peers with active incoming or outgoing connections to the node.

Returns:

Type Description
list[MoneroPeer]

the daemon's peers.

get_sync_info()

Get synchronization information.

Returns:

Type Description
MoneroDaemonSyncInfo

contains sync information.

get_tx(tx_hash, prune=False)

Get a transaction by hash.

Parameters:

Name Type Description Default
tx_hash str

is the hash of the transaction to get.

required
prune bool

specifies if the returned tx should be pruned (defaults to False).

False

Returns:

Type Description
MoneroTx | None

the transaction with the given hash or null if not found.

get_tx_hex(tx_hash, prune=False)

Get a transaction hex by hash.

Parameters:

Name Type Description Default
tx_hash str

is the hash of the transaction to get hex from.

required
prune bool

specifies if the returned tx hex should be pruned (defaults to False).

False

Returns:

Type Description
str | None

the tx hex with the given hash.

get_tx_hexes(tx_hashes, prune=False)

Get transaction hexes by hashes.

Parameters:

Name Type Description Default
tx_hashes list[str]

are hashes of transactions to get hexes from

required
prune bool

Prune transaction hashes.

False

Returns:

Type Description
list[str]

are the tx hexes.

get_tx_pool()

Get valid transactions seen by the node but not yet mined into a block, as well as spent key image information for the tx pool.

Returns:

Type Description
list[MoneroTx]

transactions in the transaction pool.

get_tx_pool_backlog()

Get all transaction pool backlog.

Returns:

Type Description
list[MoneroTxBacklogEntry]

transaction pool backlog entries.

get_tx_pool_hashes()

Get hashes of transactions in the transaction pool.

Returns:

Type Description
list[str]

hashes of transactions in the transaction pool.

get_tx_pool_stats()

Get transaction pool statistics.

Returns:

Type Description
MoneroTxPoolStats

statistics about the transaction pool.

get_txs(tx_hashes, prune=False)

Get transactions by hashes.

Parameters:

Name Type Description Default
tx_hashes list[str]

are hashes of transactions to get.

required
prune bool

Prune transactions.

False

Returns:

Type Description
list[MoneroTx]

found transactions with the given hashes.

get_upload_limit()

Get the upload bandwidth limit.

Returns:

Type Description
int

is the upload bandwidth limit.

get_version()

Gets the version of the daemon.

Returns:

Type Description
MoneroVersion

the version of the daemon.

is_trusted()

Indicates if the daemon is trusted or untrusted.

Returns:

Type Description
bool

True if the daemon is trusted, False otherwise.

prune_blockchain(check)

Prune the blockchain.

Parameters:

Name Type Description Default
check bool

specifies to check the pruning (default False).

required

Returns:

Type Description
MoneroPruneResult

the prune result.

relay_tx_by_hash(tx_hash)

Relays a transaction by hash.

Parameters:

Name Type Description Default
tx_hash str

identifies the transaction to relay.

required

relay_txs_by_hash(tx_hashes)

Relays transactions by hash.

Parameters:

Name Type Description Default
tx_hashes list[str]

identify the transactions to relay.

required

remove_listener(listener)

Unregister a listener to receive daemon notifications.

Parameters:

Name Type Description Default
listener MoneroDaemonListener

a previously registered listener to be unregistered.

required

reset_download_limit()

Reset the download bandwidth limit.

Returns:

Type Description
int

the download bandwidth limit after resetting.

reset_upload_limit()

Reset the upload bandwidth limit.

Returns:

Type Description
int

the upload bandwidth limit after resetting.

set_download_limit(limit)

Set the download bandwidth limit.

Parameters:

Name Type Description Default
limit int

is the download limit to set (-1 to reset to default).

required

Returns:

Type Description
int

is the new download limit after setting.

set_incoming_peer_limit(limit)

Limit number of incoming peers.

Parameters:

Name Type Description Default
limit int

is the maximum number of incoming peers.

required

set_outgoing_peer_limit(limit)

Limit number of outgoing peers.

Parameters:

Name Type Description Default
limit int

is the maximum number of outgoing peers.

required

set_peer_ban(ban)

Ban a peer node.

Parameters:

Name Type Description Default
ban MoneroBan

contains information about a node to ban.

required

set_peer_bans(bans)

Ban peers nodes.

Parameters:

Name Type Description Default
bans list[MoneroBan]

are bans to apply against peer nodes.

required

set_upload_limit(limit)

Set the upload bandwidth limit.

Parameters:

Name Type Description Default
limit int

is the upload limit to set (-1 to reset to default).

required

Returns:

Type Description
int

is the new upload limit after setting.

start_mining(address, num_threads, is_background, ignore_battery)

Start mining.

Parameters:

Name Type Description Default
address str

is the address given miner rewards if the daemon mines a block.

required
num_threads int

is the number of mining threads to run.

required
is_background bool

specifies if the miner should run in the background or not.

required
ignore_battery bool

specifies if the battery state (e.g. on laptop) should be ignored or not.

required

stop()

Safely disconnect and shut down the daemon.

stop_mining()

Stop mining.

submit_block(block_blob)

Submit a mined block to the network.

Parameters:

Name Type Description Default
block_blob str

is the mined block to submit.

required

submit_blocks(block_blobs)

Submit mined blocks to the network.

Parameters:

Name Type Description Default
block_blobs list[str]

are the mined blocks to submit.

required

submit_tx_hex(tx_hex, do_not_relay=False)

Submits a transaction to the daemon's pool.

Parameters:

Name Type Description Default
tx_hex str

is the raw transaction hex to submit.

required

Returns:

Type Description
MoneroSubmitTxResult

the submission results.

wait_for_next_block_header()

Get the header of the next block added to the chain.

Returns:

Type Description
MoneroBlockHeader

the header of the next block added to the chain.

\ No newline at end of file diff --git a/docs/mkdocs/public/api/daemon_rpc/index.html b/docs/mkdocs/public/api/daemon_rpc/index.html new file mode 100644 index 0000000..e4bef5a --- /dev/null +++ b/docs/mkdocs/public/api/daemon_rpc/index.html @@ -0,0 +1 @@ + Daemon RPC - Monero Python

Daemon RPC

MoneroDaemonRpc

Bases: MoneroDaemon

Implements a MoneroDaemon using monerod-rpc_.

.. _monerod-rpc: https://docs.getmonero.org/rpc-library/monerod-rpc/

get_rpc_connection()

Get the daemon's RPC connection.

Returns:

Type Description
MoneroRpcConnection

the daemon's rpc connection.

is_connected()

Indicates if the client is connected to the daemon via RPC.

Returns:

Type Description
bool

True if the client is connected to the daemon, False otherwise.

\ No newline at end of file diff --git a/docs/mkdocs/public/api/data_model/connection/index.html b/docs/mkdocs/public/api/data_model/connection/index.html new file mode 100644 index 0000000..ae3c09c --- /dev/null +++ b/docs/mkdocs/public/api/data_model/connection/index.html @@ -0,0 +1 @@ + Connection Data Model - Monero Python

Connection Data Model

MoneroSslOptions

Models SSL options for a Monero rpc connection.

ssl_allow_any_cert: bool | None instance-attribute

Allow any certificate.

ssl_allowed_fingerprints: list[str] instance-attribute

Allowed ssl fingerprints.

ssl_ca_file: str | None instance-attribute

Path to ssl CA file.

ssl_certificate_path: str | None instance-attribute

Path to private ssl certificate.

ssl_private_key_path: str | None instance-attribute

Path to private ssl key.

__init__()

Initialize a new rpc connection ssl options.

MoneroConnectionType

Bases: IntEnum

Enumerates a connection type, wich can be IPV4, IPV6, TOR, I2P or INVALID.

I2P = 4 class-attribute instance-attribute

4 Indicates that Monero connection type is I2P.

INVALID = 0 class-attribute instance-attribute

0 Indicates that Monero connection type is invalid.

IPV4 = 1 class-attribute instance-attribute

1 Indicates that Monero connection type is IPV4.

IPV6 = 2 class-attribute instance-attribute

2 Indicates that Monero connection type is IPV6.

TOR = 3 class-attribute instance-attribute

3 Indicates that Monero connection type is TOR.

MoneroConnectionPriorityComparator

Connection priority compare utils.

compare(p1, p2) staticmethod

Compare connection priorities.

Parameters:

Name Type Description Default
p1 int

first priority to check.

required
p2 int

second priority to check.

required

Returns:

Type Description
bool

True if p1 comes before p2, False otherwise.

\ No newline at end of file diff --git a/docs/mkdocs/public/api/data_model/daemon/index.html b/docs/mkdocs/public/api/data_model/daemon/index.html new file mode 100644 index 0000000..1beaeef --- /dev/null +++ b/docs/mkdocs/public/api/data_model/daemon/index.html @@ -0,0 +1 @@ + Daemon Data Model - Monero Python

Daemon Data Model

MoneroNetworkType

Bases: IntEnum

Enumerates a Monero network type_.

.. _Monero network type: https://docs.getmonero.org/infrastructure/networks/

MAINNET = 0 class-attribute instance-attribute

0 indicates Mainnet network_.

.. _Mainnet network: https://docs.getmonero.org/infrastructure/networks/#mainnet

STAGENET = 2 class-attribute instance-attribute

2 indicates Stagenet network_.

.. _Stagenet network: https://docs.getmonero.org/infrastructure/networks/#stagenet

TESTNET = 1 class-attribute instance-attribute

1 indicates Testnet network_.

.. _Testnet network: https://docs.getmonero.org/infrastructure/networks/#testnet

MoneroVersion

Bases: SerializableStruct

Models a Monero version.

is_release: bool | None instance-attribute

States if the monero software version corresponds to an official tagged release (True), or not (False).

number: int | None instance-attribute

Number of the monero software version.

__init__()

Initialize a new Monero version.

MoneroBlockHeader

Bases: SerializableStruct

Models a Monero block header which contains information about the block.

cumulative_difficulty: int | None instance-attribute

Cumulative difficulty of all blocks up to the block in the reply.

depth: int | None instance-attribute

The number of blocks succeeding this block on the blockchain. A larger number means an older block.

difficulty: int | None instance-attribute

The strength of the Monero network based on mining power.

hash: str | None instance-attribute

The hash of this block.

height: int | None instance-attribute

The number of blocks preceding this block on the blockchain.

long_term_weight: int | None instance-attribute

The long term block weight, based on the median weight of the preceding 100000 blocks.

major_version: int | None instance-attribute

The major version of the monero protocol at this block height.

miner_tx_hash: str | None instance-attribute

The hash of this block's coinbase transaction.

minor_version: int | None instance-attribute

The minor version of the monero protocol at this block height.

nonce: int | None instance-attribute

A cryptographic random one-time number used in mining a Monero block.

num_txs: int | None instance-attribute

Number of transactions included in this block.

orphan_status: bool | None instance-attribute

If True, this block is not part of the longest chain.

pow_hash: str | None instance-attribute

The hash, as a hexadecimal string, calculated from the block as proof-of-work.

prev_hash: str | None instance-attribute

The hash of the block immediately preceding this block in the chain.

reward: int | None instance-attribute

The amount of atomic-units rewarded to the miner. The reward is the sum of new coins created (the emission) and fees paid by transactions in this block. Note: 1 XMR = 1e12 atomic-units.

size: int | None instance-attribute

Backward compatibility, same as weight, use that instead.

timestamp: int | None instance-attribute

The unix time at which the block was recorded into the blockchain.

weight: int | None instance-attribute

The adjusted block size, in bytes. This is the raw size, plus a positive adjustment for any Bulletproof transactions with more than 2 outputs.

__init__()

Initialize a Monero block header.

copy()

Copy current block header.

Returns:

Type Description
MoneroBlockHeader

copied block header.

merge(other)

Merge current block header with another one.

Raises:

Type Description
Exception

on reconciliation error.

MoneroBlock

Bases: MoneroBlockHeader

Models a Monero block in the blockchain.

hex: str | None instance-attribute

Hexadecimal blob of block information.

miner_tx: MoneroTx | None instance-attribute

Miner transaction information.

tx_hashes: list[str] instance-attribute

List of hashes of non-coinbase transactions in the block.

txs: list[MoneroTx] instance-attribute

List of non-coinbase transactions in the block.

__init__()

Initialize a Monero block.

copy()

Copy current block.

Returns:

Type Description
MoneroBlock

copied block.

MoneroTx

Bases: SerializableStruct

Models a Monero transaction on the blockchain.

DEFAULT_PAYMENT_ID: str instance-attribute

Default tx payment id

block: MoneroBlock | None instance-attribute

Block including the transaction.

common_tx_sets: str | None instance-attribute

A hexadecimal string representing a set of unsigned transactions, or a set of signing keys used in a multisig transaction.

extra: list[int] instance-attribute

Usually called the payment ID but can be used to include any random 32 bytes.

fee: int | None instance-attribute

The amount of the mining fee included in the transaction, in atomic-units.

full_hex: str | None instance-attribute

Full transaction information as a hex string.

hash: str | None instance-attribute

The transaction hash.

in_tx_pool: bool | None instance-attribute

States if the transaction is in pool (True) or included in a block (False).

inputs: list[MoneroOutput] instance-attribute

List of inputs into transaction.

is_confirmed: bool | None instance-attribute

States if the transaction included in a block (True) or is in pool (False).

is_double_spend_seen: bool | None instance-attribute

States if the transaction is a double-spend (True) or not (False).

is_failed: bool | None instance-attribute

Indicates if the transaction validation has previously failed.

is_kept_by_block: bool | None instance-attribute

States if the transaction was included in a block at least once (True) or not (False).

is_miner_tx: bool | None instance-attribute

States if the transaction is a coinbase-transaction (True) or not (False).

is_relayed: bool | None instance-attribute

States if the transaction was relayed (True) or not (False).

key: str | None instance-attribute

The transaction key.

last_failed_hash: str | None instance-attribute

If the transaction validation has previously failed, this tells the previous transaction hash.

last_failed_height: int | None instance-attribute

If the transaction validation has previously failed, this tells at what height that occurred.

last_relayed_timestamp: int | None instance-attribute

Last unix time at which the transaction has been relayed.

max_used_block_hash: str | None instance-attribute

Tells the hash of the most recent block with an output used in this transaction.

max_used_block_height: int | None instance-attribute

Tells the height of the most recent block with an output used in this transaction.

metadata: str | None instance-attribute

Transaction metadata.

num_confirmations: int | None instance-attribute

Number of network confirmations.

output_indices: list[int] instance-attribute

Transaction indexes.

outputs: list[MoneroOutput] instance-attribute

Transaction outputs.

payment_id: str | None instance-attribute

Payment ID for this transaction.

prunable_hash: str | None instance-attribute

Keccak-256 hash of the prunable portion of the block.

prunable_hex: str | None instance-attribute

Prunable block encoded as a hex string.

pruned_hex: str | None instance-attribute

Pruned block encoded as hex string.

rct_sig_prunable: str | None instance-attribute

Prunable ring signature.

rct_signatures: str | None instance-attribute

Signatures used in ring signature to hide the true origin of the transaction.

received_timestamp: int | None instance-attribute

Unix time at chich the transaction has been received.

relay: bool | None instance-attribute

States if this transaction should be relayed (True) or not (False).

ring_size: int | None instance-attribute

The ring size of this transaction.

signatures: list[str] instance-attribute

List of signatures used in ring signature to hide the true origin of the transaction.

size: int | None instance-attribute

Backward compatibility, same as weight, use that instead.

unlock_time: int | None instance-attribute

If not 0, this tells when the transaction outputs are spendable.

version: int | None instance-attribute

Transaction version.

weight: int | None instance-attribute

The weight of this transaction in bytes.

__init__()

Initialize a new Monero transaction.

copy()

Copy current tx.

Returns:

Type Description
MoneroTx

tx copy.

get_height()

Get the transaction height.

Returns:

Type Description
int | None

The height of the transaction, if known.

merge(other)

Merge current tx with another one.

Parameters:

Name Type Description Default
other MoneroTx

other tx to merge with.

required

MoneroKeyImage

Bases: SerializableStruct

Models a Monero key image.

hex: str | None instance-attribute

The key image in hexadecimal format.

signature: str | None instance-attribute

The key image signature. None if not known.

__init__()

Initialize a Monero key image.

copy()

Copy current key image.

Returns:

Type Description
MoneroKeyImage

key image copy.

deserialize_key_images(key_images_json) staticmethod

Deserialize key images from a JSON string.

Parameters:

Name Type Description Default
key_images_json str

JSON string with serialized key images.

required

Returns:

Type Description
list[MoneroKeyImage]

Deserialized key images.

merge(other)

Merge current key image with another one.

Parameters:

Name Type Description Default
other MoneroKeyImage

other key image to merge with.

required

MoneroOutput

Bases: SerializableStruct

Models a Monero transaction output.

amount: int | None instance-attribute

Output amount in atomic-units.

index: int | None instance-attribute

Output index.

key_image: MoneroKeyImage | None instance-attribute

The key image of the output.

ring_output_indices: list[int] instance-attribute

Indices of ring outputs.

stealth_public_key: str | None instance-attribute

The public key of the output.

tx: MoneroTx instance-attribute

The transaction related to this output.

__init__()

Initialize a Monero output.

copy()

Copy current output.

Returns:

Type Description
MoneroOutput

output copy.

merge(other)

Merge current output wallet with another output.

Parameters:

Name Type Description Default
other MoneroOutput

other output to merge with.

required

MoneroAltChain

Models an alternative chain seen by the node.

block_hashes: list[str] instance-attribute

List of all block hashes in the alternative chain that are not in the main chain.

difficulty: int | None instance-attribute

Cumulative difficulty of all blocks in the alternative chain.

height: int | None instance-attribute

The block height of the first diverging block of this alternative chain.

length: int | None instance-attribute

The length in blocks of this alternative chain, after divergence.

main_chain_parent_block_hash: str | None instance-attribute

The hash of the greatest height block that is shared between the alternative chain and the main chain.

__init__()

Initialize a Monero alt chain info.

MoneroBan

Model a Monero banhammer.

host: str | None instance-attribute

Host ban.

ip: int | None instance-attribute

IP ban.

is_banned: bool | None instance-attribute

Indicates if ban on the host is active (True) or not (False).

seconds: int | None instance-attribute

Indicates the duration of the ban in seconds.

__init__()

Initialize a Monero banhammer.

MoneroPruneResult

Models the result of pruning the blockchain.

is_pruned: bool | None instance-attribute

Indicates if blockchain is pruned.

pruning_seed: int | None instance-attribute

Blockheight at which pruning began.

__init__()

Initialize a Monero prune result.

MoneroMiningStatus

Models a Monero daemon mining status.

address: str | None instance-attribute

Account address daemon is mining to. None if not mining.

is_active: bool | None instance-attribute

Indicates if mining is enabled.

is_background: bool | None instance-attribute

Indicates if mining is running in background.

num_threads: int | None instance-attribute

Number of running mining threads.

speed: int | None instance-attribute

Mining power in hashes per seconds.

__init__()

Initialize a Monero daemon mining status.

MoneroMinerTxSum

Model for the sum of miner emissions and fees.

emission_sum: int | None instance-attribute

The new coins emitted in atomic-units.

fee_sum: int | None instance-attribute

The sum of fees in atomic-units.

__init__()

Initialize a Monero miner transaction sum.

MoneroBlockTemplate

Monero block template to mine.

block_hashing_blob: str | None instance-attribute

Blob on which to try to find a valid nonce.

block_template_blob: str | None instance-attribute

Blob on which to try to mine a new block.

difficulty: int | None instance-attribute

Network difficulty.

expected_reward: int | None instance-attribute

Coinbase reward expected to be received if block is successfully mined.

height: int | None instance-attribute

Height on which to mine.

next_seed_hash: str | None instance-attribute

Hash of the next block to use as seed for Random-X proof-of-work.

prev_hash: str | None instance-attribute

Hash of the most recent block on which to mine the next block.

reserved_offset: int | None instance-attribute

Reserved offset.

seed_hash: str | None instance-attribute

Hash of block to use as seed for Random-X proof-of-work.

seed_height: int | None instance-attribute

Height of block to use as seed for Random-X proof-of-work.

__init__()

Initialize a Monero block template.

MoneroConnectionSpan

Monero daemon connection span.

connection_id: str | None instance-attribute

Id of connection

num_blocks: int | None instance-attribute

Number of blocks in this span

rate: int | None instance-attribute

Connection rate

remote_address: str | None instance-attribute

Peer address the node is downloading (or has downloaded) than span from.

size: int | None instance-attribute

Total number of bytes in that span's blocks (including txes).

speed: int | None instance-attribute

Connection speed.

start_height: int | None instance-attribute

Block height of the first block in that span.

__init__()

Initialize a Monero connection span.

MoneroPeer

Models a peer to the daemon.

address: str | None instance-attribute

The peer's address, actually IPv4 & port.

avg_download: int | None instance-attribute

Average bytes of data downloaded by node.

avg_upload: int | None instance-attribute

Average bytes of data uploaded by node.

connection_type: MoneroConnectionType | None instance-attribute

Type of peer connection.

current_download: int | None instance-attribute

Current bytes downloaded by node.

current_upload: int | None instance-attribute

Current bytes uploaded by node.

hash: str | None instance-attribute

Peer hash.

height: int | None instance-attribute

The peer blockchain height.

host: str | None instance-attribute

The peer host.

id: str | None instance-attribute

The node's ID on the network.

is_incoming: bool | None instance-attribute

Indicates if peer is pulling blocks from node.

is_local_host: bool | None instance-attribute

Indicates if peer is localhost.

is_local_ip: bool | None instance-attribute

Indicates if peer has a local ip address.

is_online: bool | None instance-attribute

Indicates if the peer is online.

last_seen_timestamp: int | None instance-attribute

Last activity timestamp of this peer.

live_time: int | None instance-attribute

Length of time the peer has been online.

num_receives: int | None instance-attribute

Total number of messages received from this peer.

num_sends: int | None instance-attribute

Total number of messages sent to this peer.

num_support_flags: int | None instance-attribute

Support flags number.

port: int | None instance-attribute

The port that the node is using to connect to the network.

pruning_seed: int | None instance-attribute

Block height at which pruning began.

receive_idle_time: int | None instance-attribute

Seconds since last data was received from this peer.

rpc_credits_per_hash: int | None instance-attribute

Credits for every hash calculated by client.

rpc_port: int | None instance-attribute

Peer RPC port.

send_idle_time: int | None instance-attribute

Seconds since the last data sent to this peer.

state: str | None instance-attribute

Peer state.

__init__()

Initialize a new Monero peer.

MoneroSubmitTxResult

Models the result from submitting a tx to a daemon.

credits: int | None instance-attribute

If payment for RPC is enabled, the number of credits available to the requesting client.

has_invalid_input: bool | None instance-attribute

Indicates if the transaction has an invalid input.

has_invalid_output: bool | None instance-attribute

Indicates if the transaction has an invalid output.

has_too_few_outputs: bool | None instance-attribute

Indicates if the transaction has too few outputs.

is_double_spend: bool | None instance-attribute

Indicates if the transaction is double spend.

is_fee_too_low: bool | None instance-attribute

Indicates if the transaction fee is too low.

is_good: bool | None instance-attribute

Indicates if the submission of the transaction was successfull.

is_mixin_too_low: bool | None instance-attribute

Indicates if the transaction mixin count is too low.

is_overspend: bool | None instance-attribute

Indicates if the transaction uses more money than available

is_relayed: bool | None instance-attribute

Indicates if the transaction has been relayed.

is_too_big: bool | None instance-attribute

Indicates if the transaction size is too big.

is_tx_extra_too_big: bool | None instance-attribute

Indicates if the transaction extra size is too big.

reason: str | None instance-attribute

Additional information. Currently empty or Not relayed if transaction was accepted but not relayed.

sanity_check_failed: bool | None instance-attribute

Indicates if the transaction sanity check has failed.

top_block_hash: str | None instance-attribute

Hash of the highest block in the chain.

__init__()

Initialize a new submit transaction result.

MoneroTxBacklogEntry

TODO

__init__()

Intialize a new tx backlog entry.

MoneroOutputDistributionEntry

Models a Monero output distribution entry.

amount: int | None instance-attribute

Output amount in atomic-units.

base: int | None instance-attribute

The total number of outputs of amount in the chain before, not including, the block at start_height.

distribution: list[int] instance-attribute

The output distibution.

start_height: int | None instance-attribute

Not necessarily equal to start_height parameter especially for amount = 0 where start_height will be no less than the height of the v4 hardfork.

__init__()

Initialize a Monero output distribution entry.

MoneroOutputHistogramEntry

Models a Monero output histogram entry.

amount: int | None instance-attribute

Output amount in atomic-units.

num_instances: int | None instance-attribute

Number of outputs.

recent_instances: int | None instance-attribute

Number of recent outputs.

unlocked_instances: int | None instance-attribute

Number of unlocked outputs.

__init__()

Initialize a Monero output histogram entry.

MoneroTxPoolStats

Models transaction pool statistics.

bytes_max: int | None instance-attribute

Max transaction size in pool.

bytes_med: int | None instance-attribute

Median transaction size in pool.

bytes_min: int | None instance-attribute

Min transaction size in pool.

bytes_total: int | None instance-attribute

Total size of all transactions in pool.

fee_total: int | None instance-attribute

The sum of the fees for all transactions currently in the transaction pool atomic-units.

histo98pc: int | None instance-attribute

The time 98% of txes are younger than.

num10m: int | None instance-attribute

Number of transactions in pool for more than 10 minutes.

num_double_spends: int | None instance-attribute

Number of double spend transactions.

num_failing: int | None instance-attribute

Number of failing transactions.

num_not_relayed: int | None instance-attribute

Number of non-relayed transactions.

num_txs: int | None instance-attribute

Total number of transactions.

oldest_timestamp: int | None instance-attribute

Unix time of the oldest transaction in the pool.

__init__()

Initialize a Monero transaction pool statistics.

MoneroDaemonUpdateCheckResult

Models the result of checking for a daemon update.

auto_uri: str | None instance-attribute

URL automatically generated by the daemon to download the update.

hash: str | None instance-attribute

Integrity check hash.

is_update_available: bool | None instance-attribute

Indicates if an update is available to download.

user_uri: str | None instance-attribute

Alternative user URI.

version: str | None instance-attribute

Version available for download.

__init__()

Initialize a Monero update check result.

MoneroDaemonUpdateDownloadResult

Bases: MoneroDaemonUpdateCheckResult

Models the result of downloading a daemon update.

download_path: str | None instance-attribute

Path to download the update.

__init__()

Initialize a Monero update download result.

MoneroFeeEstimate

Models a Monero fee estimate.

fee: int | None instance-attribute

Amount of fees estimated per byte in atomic-units.

fees: list[int] instance-attribute

Represents the base fees at different priorities [slow, normal, fast, fastest].

quantization_mask: int | None instance-attribute

Final fee should be rounded up to an even multiple of this value.

__init__()

Initialize a Monero fee estimate.

MoneroDaemonInfo

Models information got from a Monero daemon.

adjusted_timestamp: int | None instance-attribute

Current time approximated from chain data, as Unix time.

block_size_limit: int | None instance-attribute

Backward compatibility, same as block_weight_limit, use that instead.

block_size_median: int | None instance-attribute

Backward compatibility, same as block_weight_median, use that instead.

block_weight_limit: int | None instance-attribute

Maximum allowed adjusted block size based on latest 100000 blocks.

block_weight_median: int | None instance-attribute

Median adjusted block size of latest 100000 blocks.

bootstrap_daemon_address: str | None instance-attribute

Bootstrap-node to give immediate usability to wallets while syncing by proxying RPC to it.

credits: int | None instance-attribute

If payment for RPC is enabled, the number of credits available to the requesting client.

cumulative_difficulty: int | None instance-attribute

Cumulative difficulty.

database_size: int | None instance-attribute

The size of the blockchain database, in bytes.

difficulty: int | None instance-attribute

The network difficulty.

free_space: int | None instance-attribute

Available disk space on the node.

height: int | None instance-attribute

Current length of longest chain known to daemon.

height_without_bootstrap: int | None instance-attribute

Current length of the local chain of the daemon.

is_busy_syncing: bool | None instance-attribute

States if new blocks are being added (True) or not (False).

is_offline: bool | None instance-attribute

States if the node is offline (True) or online (False).

is_restricted: bool | None instance-attribute

Indicates that the node RPC interface is restricted (True) or not (False).

is_synchronized: bool | None instance-attribute

States if the node is synchronized (True) or not (False).

network_type: MoneroNetworkType | None instance-attribute

Network type (MAINNET, TESTNET, or STAGENET).

num_alt_blocks: int | None instance-attribute

Number of alternative blocks to main chain.

num_incoming_connections: int | None instance-attribute

Number of peers connected to and pulling from your node.

num_offline_peers: int | None instance-attribute

Number of peers that are marked as not reacheable on the network.

num_online_peers: int | None instance-attribute

Number of peers that are marked as reacheble on the network.

num_outgoing_connections: int | None instance-attribute

Number of peers that you are connected to and getting information from.

num_rpc_connections: int | None instance-attribute

Number of RPC client connected to the daemon (Including this RPC request).

num_txs: int | None instance-attribute

Total number of non-coinbase transactions in the chain.

num_txs_pool: int | None instance-attribute

Number of transactions that have been broadcast but not included in a block.

start_timestamp: int | None instance-attribute

Start time of the daemon, as UNIX time.

target: int | None instance-attribute

Current target for next proof of work.

target_height: int | None instance-attribute

The height of the next block in the chain.

top_block_hash: str | None instance-attribute

Hash of the highest block in the chain.

update_available: bool | None instance-attribute

States if a newer Monero software version is available.

version: str | None instance-attribute

The version of the Monero software the node is running.

was_bootstrap_ever_used: bool | None instance-attribute

States if a bootstrap node has ever been used since the daemon started.

__init__()

Initiliaze a Monero daemon info.

MoneroDaemonSyncInfo

Models daemon synchronization information.

credits: int | None instance-attribute

If payment for RPC is enabled, the number of credits available to the requesting client.

height: int | None instance-attribute

Daemon blockchain height.

next_needed_pruning_seed: int | None instance-attribute

The next pruning seed needed for pruned sync.

overview: str | None instance-attribute

Overview of current block queue where each character in the string represents a block set in the queue. '.' = requested but not received, 'o' = set received, 'm' = received set that matches the next blocks needed

peers: list[MoneroPeer] instance-attribute

List of peers connected to the node

spans: list[MoneroConnectionSpan] instance-attribute

Currently connected peers to download blocks from.

target_height: int | None instance-attribute

Target height the node is syncing from (will be 0 if node is fully synced).

top_block_hash: str | None instance-attribute

Hash of the highest block in the chain.

__init__()

Initialize a Monero daemon sync info.

MoneroHardForkInfo

Models a Monero look up information regarding hard fork voting and readiness.

credits: int | None instance-attribute

If payment for RPC is enabled, the number of credits available to the requesting client.

earliest_height: int | None instance-attribute

Block height at which hard fork would be enabled if voted in.

is_enabled: bool | None instance-attribute

Tells if hard fork is enforced.

num_votes: int | None instance-attribute

Number of votes towards hard fork.

state: int | None instance-attribute

Current hard fork state. 0 (There is likely a hard fork), 1 (An update is needed to fork properly), or 2 (Everything looks good).

threshold: int | None instance-attribute

Minimum percent of votes to trigger hard fork. Default is 80.

top_block_hash: str | None instance-attribute

If payment for RPC is enabled, the hash of the highest block in the chain. Otherwise, empty.

version: int | None instance-attribute

The major block version for the fork.

voting: int | None instance-attribute

Hard fork voting status.

window: int | None instance-attribute

Number of blocks over which current votes are cast. Default is 10080 blocks.

__init__()

Initialize a Monero hard fork info.

MoneroDaemonListener

Receives notifications as a daemon is updated.

last_header: MoneroBlockHeader | None instance-attribute

Last block header added to the chain.

__init__()

Initialize a Monero daemon listener.

on_block_header(header)

Called when a new block is added to the chain.

Parameters:

Name Type Description Default
header MoneroBlockHeader

is the header of the block added to the chain.

required
\ No newline at end of file diff --git a/docs/mkdocs/public/api/data_model/wallet/index.html b/docs/mkdocs/public/api/data_model/wallet/index.html new file mode 100644 index 0000000..cc69f21 --- /dev/null +++ b/docs/mkdocs/public/api/data_model/wallet/index.html @@ -0,0 +1 @@ + Wallet Data Model - Monero Python

Wallet Data Model

MoneroWalletConfig

Configures a wallet to create.

account_lookahead: int | None instance-attribute

Account index look ahead.

is_multisig: bool | None instance-attribute

Indicates if the wallet is a multisignature wallet.

language: str | None instance-attribute

The wallet language.

network_type: MoneroNetworkType | None instance-attribute

The wallet network type.

password: str | None instance-attribute

The wallet password.

path: str | None instance-attribute

The wallet path on file system.

primary_address: str | None instance-attribute

The wallet standard address.

private_spend_key: str | None instance-attribute

The wallet private spend key.

private_view_key: str | None instance-attribute

The wallet private view key.

restore_height: int | None instance-attribute

The wallet restore height.

save_current: bool | None instance-attribute

Save the wallet.

seed: str | None instance-attribute

The wallet mnemonic.

seed_offset: str | None instance-attribute

The wallet custom seed offset.

server: MoneroRpcConnection | None instance-attribute

The wallet RPC connection.

subaddress_lookahead: int | None instance-attribute

Subaddress index look ahead.

copy()

Copy this wallet config.

Returns:

Type Description
MoneroWalletConfig

Copy of the wallet config.

deserialize(config_json) staticmethod

Deserialize a Monero wallet config from a JSON string.

Parameters:

Name Type Description Default
config_json str

JSON string.

required

Returns:

Type Description
MoneroWalletConfig

The deserialized wallet config.

MoneroSyncResult

Bases: SerializableStruct

Models a result of syncing a wallet.

num_blocks_fetched: int instance-attribute

Number of blocks fetched.

received_money: bool instance-attribute

Indicates if money was received.

MoneroSubaddress

Bases: SerializableStruct

Models a Monero subaddress.

account_index: int | None instance-attribute

The subaddress account index.

address: str | None instance-attribute

Public address.

balance: int | None instance-attribute

The subaddress balance.

index: int | None instance-attribute

The subaddress index.

is_used: bool | None instance-attribute

Indicates if subaddress has been used in receiving funds.

label: str | None instance-attribute

The subaddress label.

num_blocks_to_unlock: int | None instance-attribute

Number of blocks to unlock receveid outputs.

num_unspent_outputs: int | None instance-attribute

The number of unspent outputs in this subaddress.

unlocked_balance: int | None instance-attribute

The subaddress unlocked balance.

__init__()

Initialize a Monero subaddress.

MoneroAccount

Bases: SerializableStruct

Models a Monero account.

balance: int | None instance-attribute

The account balance.

index: int | None instance-attribute

The account index.

primary_address: str | None instance-attribute

The account primary address.

subaddresses: list[MoneroSubaddress] instance-attribute

List of account subaddresses.

tag: str | None instance-attribute

The account tag.

unlocked_balance: int | None instance-attribute

The account unlocked balance.

__init__()

Initialize a Monero account.

MoneroDestination

Models an outgoing transfer destination.

address: str | None instance-attribute

Address of the receiver.

amount: int | None instance-attribute

Amount sent to this destination.

copy()

Copy current outgoing transfer destination.

Returns:

Type Description
MoneroDestination

outgoing transfer destination copy.

MoneroTransfer

Bases: SerializableStruct

Models a base transfer of funds to or from the wallet.

account_index: int | None instance-attribute

Index of the account related to this transfer.

amount: int | None instance-attribute

Transfer amount in atomic-units.

tx: MoneroTxWallet instance-attribute

Related wallet transaction.

__init__()

Initialize a Monero transfer.

copy()

Copy current transfer.

Returns:

Type Description
MoneroTransfer

transfer copy.

is_incoming()

Indicates if it is an incoming transfer (True) or not (False). Default None.

Returns:

Type Description
bool | None

True if current transfer is incoming, False if outgoing, None if unkown.

is_outgoing()

Indicates if it is an outgoing transfer (True) or not (False). Default None.

Returns:

Type Description
bool | None

True if current transfer is outgoing, False if incoming, None if unkown.

merge(other)

Merge current transfer with another one.

Parameters:

Name Type Description Default
other MoneroTransfer

other transfer to merge with.

required

MoneroIncomingTransfer

Bases: MoneroTransfer

Models an incoming transfer of funds to the wallet.

address: str | None instance-attribute

The address that received funds within this transfer.

num_suggested_confirmations: int | None instance-attribute

The number of suggested confirmations before moving funds.

subaddress_index: int | None instance-attribute

The subaddress index that received funds within this transfer.

__init__()

Initialize a Monero incoming transfer.

copy()

Copy current incoming transfer.

Returns:

Type Description
MoneroIncomingTransfer

incoming transfer copy.

MoneroOutgoingTransfer

Bases: MoneroTransfer

Models an outgoing transfer of funds from the wallet.

addresses: list[str] instance-attribute

Addresses from which the transfer originated.

destinations: list[MoneroDestination] instance-attribute

Outgoing transfer destinations.

subaddress_indices: list[int] instance-attribute

Subaddresses from which the transfer originated.

copy()

Copy current outgoing transfer.

Returns:

Type Description
MoneroOutgoingTransfer

outgoing transfer copy.

MoneroTransferQuery

Bases: MoneroTransfer

Configures a query to retrieve transfers.

All transfers are returned except those that do not meet the criteria defined in this query.

address: str | None instance-attribute

Select transfers involving particular address. Empty for all.

addresses: list[str] instance-attribute

Select transfers involving particular addresses. Empty for all.

destinations: list[MoneroDestination] instance-attribute

Select transfers involving particular destinations. Empty for all.

has_destinations: bool | None instance-attribute

Filter transfers with or without destinations. None for all.

incoming: bool | None instance-attribute

Filter incoming or outgoing transfers. None for all.

outgoing: bool | None instance-attribute

Filter incoming or outgoing transfers. None for all.

subaddress_index: int | None instance-attribute

Filter by subaddress index. None for all.

subaddress_indices: list[int] instance-attribute

Select transfers involving particular subaddresses. Empty for all.

tx_query: MoneroTxQuery | None instance-attribute

Related transaction query.

__init__()

Initialize a Monero transfer query.

copy()

Copy current transfer query.

Returns:

Type Description
MoneroTransferQuery

transfer query copy.

deserialize_from_block(transfer_query_json) staticmethod

Deserialize transfer query from json block.

Parameters:

Name Type Description Default
transfer_query_json str

json block with serialized transfer query.

required

Returns:

Type Description
MoneroTransferQuery

deserialized transfer query.

meets_criteria(transfer, query_parent=True)

Check if transfer meets all the criteria defined in this query.

Parameters:

Name Type Description Default
transfer MoneroTransfer

transfer to check if meets criteria.

required
query_parent bool

query parent tx query (default True).

True

Returns:

Type Description
bool

True if transfer meets all criteria defined in this query, False otherwise.

MoneroOutputWallet

Bases: MoneroOutput

Models a Monero output with wallet extensions.

account_index: int | None instance-attribute

The index of the account that owns this output.

is_frozen: bool | None instance-attribute

Indicates if the output is frozen (True) or not (False).

is_spent: bool | None instance-attribute

Indicates if the output is spent (True) or not (False).

subaddress_index: int | None instance-attribute

The index of the subaddress that owns this output.

__init__()

Initialize a Monero wallet output.

copy()

Copy current output wallet.

Returns:

Type Description
MoneroOutputWallet

output wallet copy.

MoneroOutputQuery

Bases: MoneroOutputWallet

Configures a query to retrieve wallet outputs (i.e. outputs that the wallet has or had the ability to spend).

All outputs are returned except those that do not meet the criteria defined in this query.

max_amount: int | None instance-attribute

Filter outputs above this amount.

min_amount: int | None instance-attribute

Filter outputs below this amount.

subaddress_indices: list[int] instance-attribute

Subadress indices to select (empty for all).

tx_query: MoneroTxQuery | None property

Related transaction query.

__init__()

Initialize a Monero output query.

copy()

Copy current output query.

Returns:

Type Description
MoneroOutputQuery

output query copy.

deserialize_from_block(output_query_json) staticmethod

Deserialize output query from block.

Parameters:

Name Type Description Default
output_query_json str

json query block.

required

Returns:

Type Description
MoneroOutputQuery

deserialized output query.

meets_criteria(output, query_parent=True)

Indicates if the output meets all the criteria defined within this query.

Parameters:

Name Type Description Default
output MoneroOutputWallet

Output to check.

required
query_parent bool

Query also parent.

True

Returns:

Type Description
bool

True if output meets all the criteria defined in this query, False otherwise.

set_tx_query(tx_query, output_query)

Set related transaction query.

This method sets query references constitutively.

Parameters:

Name Type Description Default
tx_query Optional[MoneroTxQuery]

Tx query to set.

required
output_query bool

If True sets outputs query in tx_query, otherwise inputs query.

required

MoneroTxWallet

Bases: MoneroTx

Models a Monero transaction in the context of a wallet.

change_address: str | None instance-attribute

Address to which the change amount of the transaction was sent.

change_amount: int | None instance-attribute

Change amount of the transaction.

extra_hex: str | None instance-attribute

Extra information about the transaction in hexadecimal format.

incoming_transfers: list[MoneroIncomingTransfer] instance-attribute

List of incoming transfer.

input_sum: int | None instance-attribute

Total input sum.

is_incoming: bool | None instance-attribute

Indicates if the transaction has incoming transfers.

is_locked: bool | None instance-attribute

Indicates if the transaction is locked.

is_outgoing: bool | None instance-attribute

Indicated if the transaction has outgoing transfer.

note: str | None instance-attribute

Transaction note.

num_dummy_outputs: int | None instance-attribute

Number of decoys of the transactions.

outgoing_transfer: MoneroOutgoingTransfer | None instance-attribute

The outgoing transfer related to this transaction.

output_sum: int | None instance-attribute

The total output amount sum originated from this transaction.

tx_set: MoneroTxSet | None instance-attribute

Set of transactions related to current tx.

__init__()

Initialize a new Monero tx wallet.

copy()

Copy current tx wallet.

Returns:

Type Description
MoneroTxWallet

tx wallet copy.

filter_outputs_wallet(query)

Get outputs filtered by query.

Parameters:

Name Type Description Default
query MoneroOutputQuery

query to filter outputs with.

required

Returns:

Type Description
list[MoneroOutputWallet]

outputs that meets all criteria defined in query.

filter_transfers(query)

Get transfers filtered by query.

Parameters:

Name Type Description Default
query MoneroTransferQuery

query to filter transfers with.

required

Returns:

Type Description
list[MoneroTransfer]

transfers that meets all criteria defined in query.

get_incoming_amount()

Get total amount received in current tx.

Returns:

Type Description
int

total amount received in current wallet tx.

get_inputs_wallet(query=None)

Get wallet inputs filtered by query.

Parameters:

Name Type Description Default
query MoneroOutputQuery

query to filter outputs with.

None

Returns:

Type Description
list[MoneroOutputWallet]

wallet outputs filtered by query.

get_outgoing_amount()

Get total amount spent in current tx.

Returns:

Type Description
int

total amount spent in current wallet tx.

MoneroTxQuery

Bases: MoneroTxWallet

Configures a query to retrieve transactions.

All transactions are returned except those that do not meet the criteria defined in this query.

has_payment_id: bool | None instance-attribute

Get transactions that have a payment id.

hashes: list[str] instance-attribute

Get transactions by hashes.

height: int | None instance-attribute

Get transactions by height.

include_outputs: int | None instance-attribute

Include outputs in transaction data.

input_query: MoneroOutputQuery | None instance-attribute

Query to apply on transaction inputs.

is_incoming: bool | None instance-attribute

Include incoming transactions.

is_outgoing: bool | None instance-attribute

Include outgoing transactions.

max_height: int | None instance-attribute

Get transactions below max height.

min_height: int | None instance-attribute

Get transactions above max height.

output_query: MoneroOutputQuery | None instance-attribute

Query to apply on transaction outputs.

payment_ids: list[str] instance-attribute

Get transactions with specific payment ids.

transfer_query: MoneroTransferQuery | None instance-attribute

Query to apply on transaction wallet transfer.

__init__()

Initiliaze a new Monero transaction query.

copy()

Copy current transaction query.

Returns:

Type Description
MoneroTxQuery

tx query copy.

deserialize_from_block(tx_query_json) staticmethod

Deserialize transaction query from JSON string.

Parameters:

Name Type Description Default
tx_query_json str

tx query as JSON string.

required

Returns:

Type Description
MoneroTxQuery

deserialized tx query.

meets_criteria(tx, query_children=False)

Check if transaction wallet meets all criteria defined in this query.

Parameters:

Name Type Description Default
tx MoneroTxWallet

Tx to check if meets criteria defined in this query.

required
query_children bool

Query child data.

False

Returns:

Type Description
bool

True if tx meets all criteria defined in this query, False otherwise.

MoneroTxSet

Bases: SerializableStruct

Groups transactions who share common hex data which is needed in order to sign and submit the transactions.

For example, multisig transactions created from create_txs() share a common hex string which is needed in order to sign and submit the multisig transactions.

multisig_tx_hex: str | None instance-attribute

Multisignature transaction hex.

signed_tx_hex: str | None instance-attribute

Signed transaction hex.

txs: list[MoneroTxWallet] instance-attribute

List of transactions defined in this set.

unsigned_tx_hex: str | None instance-attribute

Unsigned transaction hex.

__init__()

Initialize a Monero transaction set.

deserialize(tx_set_json) staticmethod

Deserialize a Monero transaction set from a JSON string.

Parameters:

Name Type Description Default
tx_set_json str

tx set as JSON string.

required

Returns:

Type Description
MoneroTxSet

The deseriliazed transaction set.

MoneroIntegratedAddress

Bases: SerializableStruct

Models a Monero integrated address.

integrated_address: str instance-attribute

The integrated address.

payment_id: str instance-attribute

The payment id related to this integrated address.

standard_address: str instance-attribute

The standard address related to this integrated address.

__init__()

Initialize a Monero integrated address.

MoneroTxPriority

Bases: IntEnum

Enumerates Monero transaction priorities.

DEFAULT = 0 class-attribute instance-attribute

0 Default transaction priority.

ELEVATED = 3 class-attribute instance-attribute

3 Elevated transaction priority.

NORMAL = 2 class-attribute instance-attribute

2 Normal transaction priority.

UNIMPORTANT = 1 class-attribute instance-attribute

1 Unimportant transaction priority.

MoneroTxConfig

Bases: SerializableStruct

Configures a transaction to send, sweep, or create a payment URI.

account_index: int | None instance-attribute

Account index to send funds from.

address: str | None instance-attribute

Transaction address destination.

amount: int | None instance-attribute

Transaction amount.

below_amount: int | None instance-attribute

Ignore output amount below.

can_split: bool | None instance-attribute

Indicates if transaction can be splitted in multiple transactions.

destinations: list[MoneroDestination] instance-attribute

Transaction outgoing destinations.

fee: int | None instance-attribute

Transaction fee.

key_image: str | None instance-attribute

Use a particular key image as input for transaction.

note: str | None instance-attribute

Transaction note.

payment_id: str | None instance-attribute

Transaction payment id.

priority: MoneroTxPriority | None instance-attribute

Transaction priority.

recipient_name: str | None instance-attribute

Recipient name.

relay: bool | None instance-attribute

Indicates if transaction should be relayed (True) or not (False).

ring_size: int | None instance-attribute

Transaction ring size

subaddress_indices: list[int] instance-attribute

Account subaddresses indices to send funds from.

subtract_fee_from: list[int] instance-attribute

Subtract fee from outputs.

sweep_each_subaddress: bool | None instance-attribute

Sweep each wallet subbaddress.

copy()

Copy current tx config.

Returns:

Type Description
MoneroTxConfig

tx config copy.

deserialize(config_json) staticmethod

Deserialize tx config from JSON string.

Parameters:

Name Type Description Default
config_json str

tx config in JSON format.

required

Returns:

Type Description
MoneroTxConfig

deserialized tx config.

get_normalized_destinations()

Get all destinations set in current tx config.

Returns:

Type Description
list[MoneroDestination]

normalized tx config destinations.

set_address(address)

Set the address of a single-destination configuration.

Parameters:

Name Type Description Default
address str

the address to set for the single destination.

required

MoneroKeyImageImportResult

Bases: SerializableStruct

Models results from importing key images.

height: int | None instance-attribute

Height at which the last key image was imported. Can be 0 if blockchain height is not known.

spent_amount: int | None instance-attribute

Amount (in atomic-units) spent from those key images.

unspent_amount: int | None instance-attribute

Amount (in atomic-units) still available from those key images.

__init__()

Initialize a Monero key image import result.

MoneroMessageSignatureType

Bases: IntEnum

Enumerates the type of a Monero message signature.

SIGN_WITH_SPEND_KEY = 0 class-attribute instance-attribute

0 Indicates that the message verification was signed with the wallet private spend key_.

.. _private spend key: https://docs.getmonero.org/cryptography/asymmetric/private-key/#private-spend-key

SIGN_WITH_VIEW_KEY = 1 class-attribute instance-attribute

1 Indicates that the message verification was signed with the wallet private view key_.

.. _private view key: https://docs.getmonero.org/cryptography/asymmetric/private-key/#private-spend-key

MoneroMessageSignatureResult

Bases: SerializableStruct

Models results from message verification.

is_good: bool instance-attribute

Indicates if the message verification was successful.

is_old: bool instance-attribute

Indicates if the message verification used old monero software.

signature_type: MoneroMessageSignatureType instance-attribute

Signature type used in the message verification.

version: int instance-attribute

Message signature version.

__init__()

Initialize a Monero message signature result.

MoneroCheck

Bases: SerializableStruct

Base model for results from checking a transaction or reserve proof.

is_good: bool instance-attribute

Indicates if check was successfull.

__init__()

Initialize a Monero check.

MoneroCheckTx

Bases: MoneroCheck

Models the results from checking a transaction key.

in_tx_pool: bool | None instance-attribute

States if the transaction is in pool (True) or included in a block (False)

num_confirmations: int | None instance-attribute

Transaction network confirmations.

received_amount: int | None instance-attribute

Amount received in the transaction.

__init__()

Initialize a Monero transaction check.

MoneroCheckReserve

Bases: MoneroCheck

Models the results from checking a reserve proof.

total_amount: int | None instance-attribute

The reserve total amount.

unconfirmed_spent_amount: int | None instance-attribute

The reserve unconfirmed spent amount.

__init__()

Initialize a Monero reserve check.

MoneroMultisigInfo

Models information about a multisig wallet.

is_multisig: bool instance-attribute

Indicates if the wallet is multisignature (True), or not (False).

is_ready: bool instance-attribute

Indicates if the wallet is ready to support multisignature operations (True) or not (False).

num_participants: int instance-attribute

Number of participants of the multisignature wallet.

threshold: int instance-attribute

Number of participants need in order to sign a transaction.

__init__()

Initialize a Monero multisignature info.

MoneroMultisigInitResult

Models the result of initializing a multisig wallet which results in the multisig wallet's address xor another multisig hex to share with participants to create the wallet.

address: str | None instance-attribute

The multisignature wallet address.

multisig_hex: str | None instance-attribute

The multisignature hex to share with other participants.

__init__()

Initialize a Monero multisignature initializing result.

MoneroMultisigSignResult

Models the result of signing multisig tx hex.

signed_multisig_tx_hex: str | None instance-attribute

Multisig transaction in hex format.

tx_hashes: list[str] instance-attribute

List of transaction hash.

__init__()

Initialize a Monero multisignature signature result.

MoneroAddressBookEntry

Bases: SerializableStruct

Monero address book entry model.

address: str | None instance-attribute

The book entry address.

description: str | None instance-attribute

The book entry description.

index: int | None instance-attribute

The book entry index.

payment_id: str | None instance-attribute

The book entry payment id.

MoneroAddressType

Bases: IntEnum

Models a Monero public address type_.

.. _Monero public address type: https://docs.getmonero.org/public-address/

INTEGRATED_ADDRESS = 1 class-attribute instance-attribute

1 Indicates that the Monero address format is integrated_.

.. _integrated: https://docs.getmonero.org/public-address/integrated-address/

PRIMARY_ADDRESS = 0 class-attribute instance-attribute

0 Indicates that the Monero address format is standard_, also known as primary.

.. _standard: https://docs.getmonero.org/public-address/standard-address/

SUBADDRESS = 2 class-attribute instance-attribute

2 Indicates that the Monero address format is subaddress_.

.. _subaddress: https://docs.getmonero.org/public-address/subaddress/

MoneroDecodedAddress

Maintains metadata for a decoded address.

address: str instance-attribute

The decoded address.

address_type: MoneroAddressType instance-attribute

Type of the decoded address.

network_type: MoneroNetworkType instance-attribute

Network type of the decoded address.

__init__(address, address_type, network_type)

Initialize a Monero decoded address.

Parameters:

Name Type Description Default
address str

The decoded address.

required
address_type MoneroAddressType

The type of the decoded address.

required
network_type MoneroNetworkType

Network type of the decoded address.

required

MoneroAccountTag

Bases: SerializableStruct

Models a Monero account tag.

account_indices: list[int] instance-attribute

Account indices with this tag.

label: str | None instance-attribute

The account tag label.

tag: str | None instance-attribute

The account tag.

MoneroWalletListener

Interface to receive wallet notifications.

__init__()

Initialize a wallet listener.

on_balances_changed(new_balance, new_unlocked_balance)

Invoked when the wallet's balances change.

Parameters:

Name Type Description Default
new_balance int

new balance.

required
new_unlocked_balance int

new unlocked balance.

required

on_new_block(height)

Invoked when a new block is processed.

Parameters:

Name Type Description Default
height int

the newly processed block.

required

on_output_received(output)

Invoked when the wallet receives an output.

Parameters:

Name Type Description Default
output MoneroOutputWallet

the received output.

required

on_output_spent(output)

Invoked when the wallet spends an output.

Parameters:

Name Type Description Default
output MoneroOutputWallet

the spent output.

required

on_sync_progress(height, start_height, end_height, percent_done, message)

Invoked when sync progress is made.

Parameters:

Name Type Description Default
height int

height of the synced block.

required
start_height int

starting height of the sync request.

required
end_height int

ending height of the sync request.

required
percent_done float

sync progress as a percentage.

required
message str

human-readable description of the current progress.

required
\ No newline at end of file diff --git a/docs/mkdocs/public/api/serializable_struct/index.html b/docs/mkdocs/public/api/serializable_struct/index.html new file mode 100644 index 0000000..2eccef8 --- /dev/null +++ b/docs/mkdocs/public/api/serializable_struct/index.html @@ -0,0 +1 @@ + Serializable Struct - Monero Python

Serializable Struct

SerializableStruct

Base struct which can be serialized.

__init__()

Initialize a new base struct.

serialize()

Serializes the struct to a json string.

Returns:

Type Description
str

the struct serialized to a json string.

\ No newline at end of file diff --git a/docs/mkdocs/public/api/utils/index.html b/docs/mkdocs/public/api/utils/index.html new file mode 100644 index 0000000..ce2b519 --- /dev/null +++ b/docs/mkdocs/public/api/utils/index.html @@ -0,0 +1 @@ + Monero Utilities - Monero Python

Monero Utilities

MoneroUtils

Collection of Monero utilities.

atomic_units_to_xmr(amount_atomic_units) staticmethod

Convert atomic units to XMR.

Parameters:

Name Type Description Default
amount_atomic_units int

amount in atomic units to convert to XMR.

required

Returns:

Type Description
float

amount in XMR.

configure_logging(path, console) staticmethod

Initialize logging.

Parameters:

Name Type Description Default
path str

the path to write logs to.

required
console bool

specifies whether or not to write to the console.

required

dict_to_binary(dictionary) staticmethod

Converts a dictionary into binary format.

Parameters:

Name Type Description Default
dictionary dict

The dictionary to convert in binary format.

required

Returns:

Type Description
bytes

Binary format.

get_blocks_from_outputs(outputs) staticmethod

Get distinct blocks from outputs.

Parameters:

Name Type Description Default
outputs list[MoneroOutputWallet]

Outputs to get blocks from.

required

Returns:

Type Description
list[MoneroBlock]

Distinct blocks obtained from outputs.

get_blocks_from_transfers(transfers) staticmethod

Get distinct blocks from transfers.

Parameters:

Name Type Description Default
transfers list[MoneroTransfer]

Transfers to get blocks from.

required

Returns:

Type Description
list[MoneroBlock]

Distinct blocks obtained from transfers.

get_blocks_from_txs(txs) staticmethod

Get distinct blocks from transactions.

Parameters:

Name Type Description Default
txs list[MoneroTxWallet]

Transactions to get blocks from.

required

Returns:

Type Description
list[MoneroBlock]

Distinct blocks obtained from transactions.

get_integrated_address(network_type, standard_address, payment_id='') staticmethod

Get an integrated address.

Parameters:

Name Type Description Default
network_type MoneroNetworkType

is the network type of the integrated address.

required
standard_address str

is the address to derive the integrated address from.

required
payment_id str

optionally specifies the integrated address's payment id (defaults to random payment id).

''

Returns:

Type Description
MoneroIntegratedAddress

the integrated address.

get_payment_uri(config) staticmethod

Creates a payment URI from a tx configuration.

Parameters:

Name Type Description Default
config MoneroTxConfig

specifies configuration for a payment URI.

required

Returns:

Type Description
str

the payment URI.

get_ring_size() staticmethod

Get network-enforced ring size.

Returns:

Type Description
int

network-enforced ring size.

get_version() staticmethod

Get the version of the monero-python library.

Returns:

Type Description
str

the version of this monero-python library

is_valid_address(address, network_type) staticmethod

Determine if the given address is valid.

Parameters:

Name Type Description Default
address str

is the address to validate.

required
network_type MoneroNetworkType

is the address's network type.

required

Returns:

Type Description
bool

True if the address is valid, False otherwise.

is_valid_language(language) staticmethod

Indicates if the given language is valid.

Parameters:

Name Type Description Default
language str

is the language to validate

required

Returns:

Type Description
bool

True if the language is valid, False otherwise.

is_valid_mnemonic(mnemonic) staticmethod

Indicates if a mnemonic is valid.

Parameters:

Name Type Description Default
mnemonic str

is the mnemonic to validate.

required

Returns:

Type Description
bool

True if the mnemonic is valid, False otherwise.

is_valid_payment_id(payment_id) staticmethod

Indicates if a payment id is valid.

Parameters:

Name Type Description Default
payment_id str

is the payment id to validate.

required

Returns:

Type Description
bool

True if the payment id is valid, False otherwise.

is_valid_private_spend_key(private_spend_key) staticmethod

Indicates if a private spend key is valid.

Parameters:

Name Type Description Default
private_spend_key str

is the private spend key to validate.

required

Returns:

Type Description
bool

True if the private spend key is valid, False otherwise.

is_valid_private_view_key(private_view_key) staticmethod

Indicates if a private view key is valid.

Parameters:

Name Type Description Default
private_view_key str

is the private view key to validate.

required

Returns:

Type Description
bool

True if the private view key is valid, False otherwise.

is_valid_public_spend_key(public_spend_key) staticmethod

Indicates if a public spend key is valid.

Parameters:

Name Type Description Default
public_spend_key str

is the public spend key to validate.

required

Returns:

Type Description
bool

True if the public spend key is valid, False otherwise.

is_valid_public_view_key(public_view_key) staticmethod

Indicates if a public view key is valid.

Parameters:

Name Type Description Default
public_view_key str

is the public view key to validate.

required

Returns:

Type Description
bool

True if the public view key is valid, False otherwise.

json_to_binary(json) staticmethod

Convert a JSON string into binary format.

Returns:

Type Description
bytes

Binary format.

set_log_level(loglevel) staticmethod

Set the library's log level with 0 being least verbose.

Parameters:

Name Type Description Default
loglevel int

the library's log level.

required

validate_address(address, network_type) staticmethod

Validates the given address.

Parameters:

Name Type Description Default
address str

is the address to validate.

required
network_type MoneroNetworkType

is the address's network type.

required

validate_mnemonic(mnemonic) staticmethod

Validates the given mnemonic phrase.

Parameters:

Name Type Description Default
mnemonic str

is the mnemonic to validate.

required

Raises:

Type Description
MoneroError

if the given mnemonic is invalid.

validate_payment_id(payment_id) staticmethod

Validate a payment id.

Parameters:

Name Type Description Default
payment_id str

is the payment id to validate.

required

Raises:

Type Description
MoneroError

if the given payment id is invalid.

validate_private_spend_key(private_spend_key) staticmethod

Validate a private spend key.

Parameters:

Name Type Description Default
private_spend_key str

is the private spend key to validate.

required

Raises:

Type Description
MoneroError

if the given private spend key is invalid.

validate_private_view_key(private_view_key) staticmethod

Validate a private view key.

Parameters:

Name Type Description Default
private_view_key str

is the private view key to validate.

required

Raises:

Type Description
MoneroError

if the given private view key is invalid.

validate_public_spend_key(public_spend_key) staticmethod

Validate a public spend key.

Parameters:

Name Type Description Default
public_spend_key str

is the public spend key to validate.

required

Raises:

Type Description
MoneroError

if the given public spend key is invalid.

validate_public_view_key(public_view_key) staticmethod

Validate a public view key.

Parameters:

Name Type Description Default
public_view_key str

is the public view key to validate.

required

Raises:

Type Description
MoneroError

if the given public view key is invalid.

xmr_to_atomic_units(amount_xmr) staticmethod

Convert XMR to atomic units.

Parameters:

Name Type Description Default
amount_xmr float

amount in XMR to convert to atomic units.

required

Returns:

Type Description
int

amount in atomic units.

\ No newline at end of file diff --git a/docs/mkdocs/public/api/wallet/index.html b/docs/mkdocs/public/api/wallet/index.html new file mode 100644 index 0000000..2b2bf49 --- /dev/null +++ b/docs/mkdocs/public/api/wallet/index.html @@ -0,0 +1 @@ + Wallet Interface - Monero Python

Wallet Interface

MoneroWallet

Base wallet with default implementations.

DEFAULT_LANGUAGE: str instance-attribute

Default Monero wallet seed language.

__init__()

Initialize a Monero wallet.

add_address_book_entry(address, description)

Add an address book entry.

Parameters:

Name Type Description Default
address str

is the entry address.

required
description str

is the entry description (optional).

required

Returns:

Type Description
int

the index of the added entry.

add_listener(listener)

Register a listener receive wallet notifications.

Parameters:

Name Type Description Default
listener MoneroWalletListener

is the listener to receive wallet notifications.

required

change_password(old_password, new_password)

Change the wallet password.

Parameters:

Name Type Description Default
old_password str

is the wallet's old password.

required
new_password str

is the wallet's new password.

required

check_reserve_proof(address, message, signature)

Proves a wallet has a disposable reserve using a signature.

Parameters:

Name Type Description Default
address str

is the public wallet address.

required
message str

is a message included with the signature to further authenticate the proof (optional).

required
signature str

is the reserve proof signature to check.

required

Returns:

Type Description
MoneroCheckReserve

the result of checking the signature proof.

check_spend_proof(tx_hash, message, signature)

Prove a spend using a signature. Unlike proving a transaction, it does not require the destination public address.

Parameters:

Name Type Description Default
tx_hash str

specifies the transaction to prove.

required
message str

is a message included with the signature to further authenticate the proof (optional).

required
signature str

is the transaction signature to confirm.

required

Returns:

Type Description
bool

True if the signature is good, False otherwise.

check_tx_key(tx_hash, tx_key, address)

Check a transaction in the blockchain with its secret key.

Parameters:

Name Type Description Default
tx_hash str

specifies the transaction to check.

required
tx_key str

is the transaction's secret key.

required
address str

is the destination public address of the transaction.

required

Returns:

Type Description
MoneroCheckTx

the result of the check.

check_tx_proof(tx_hash, address, message, signature)

Prove a transaction by checking its signature.

Parameters:

Name Type Description Default
tx_hash str

specifies the transaction to prove.

required
address str

is the destination public address of the transaction.

required
message str

is a message included with the signature to further authenticate the proof (optional).

required
signature str

is the transaction signature to confirm.

required

Returns:

Type Description
MoneroCheckTx

the result of the check.

close(save=False)

Optionally save then close the wallet.

Parameters:

Name Type Description Default
save bool

specifies if the wallet should be saved before being closed (default False).

False

create_account(label='')

Create a new account with a label for the first subaddress.

Parameters:

Name Type Description Default
label str

specifies the label for the account's first subaddress (optional).

''

Returns:

Type Description
MoneroAccount

the created account.

create_subaddress(account_idx, label='')

Create a subaddress within an account.

Parameters:

Name Type Description Default
account_idx int

specifies the index of the account to create the subaddress within.

required
label str

specifies the the label for the subaddress (defaults to empty string).

''

Returns:

Type Description
MoneroSubaddress

the created subaddress.

create_tx(config)

Create a transaction to transfer funds from this wallet.

Parameters:

Name Type Description Default
config MoneroTxConfig

configures the transaction to create.

required

Returns:

Type Description
MoneroTxWallet

the created transaction.

create_txs(config)

Create one or more transactions to transfer funds from this wallet.

Parameters:

Name Type Description Default
config MoneroTxConfig

configures the transactions to create.

required

Returns:

Type Description
list[MoneroTxWallet]

the created transactions.

decode_integrated_address(integrated_address)

Decode an integrated address to get its standard address and payment id.

Parameters:

Name Type Description Default
integrated_address str

is an integrated address to decode.

required

Returns:

Type Description
MoneroIntegratedAddress

the decoded integrated address including standard address and payment id.

delete_address_book_entry(index)

Delete an address book entry.

Parameters:

Name Type Description Default
index int

is the index of the entry to delete.

required

describe_multisig_tx_set(multisig_tx_hex)

Describe a tx set containing unsigned or multisig tx hex to a new tx set containing structured transactions.

Parameters:

Name Type Description Default
multisig_tx_hex str

multisig tx hex.

required

Returns:

Type Description
MoneroTxSet

the tx set containing structured transactions.

describe_tx_set(tx_set)

Describes a tx set containing unsigned or multisig tx hex to a new tx set containing structured transactions.

Parameters:

Name Type Description Default
tx_set MoneroTxSet

is a tx set containing unsigned or multisig tx hex.

required

Returns:

Type Description
MoneroTxSet

the tx set containing structured transactions.

describe_unsigned_tx_set(unsigned_tx_hex)

Describe a tx set from unsigned tx hex.

Parameters:

Name Type Description Default
unsigned_tx_hex str

unsigned tx hex.

required

Returns:

Type Description
MoneroTxSet

the tx set containing structured transactions.

edit_address_book_entry(index, set_address, address, set_description, description)

Edit an address book entry.

Parameters:

Name Type Description Default
index int

is the index of the address book entry to edit.

required
set_address bool

specifies if the address should be updated.

required
address str

is the updated address.

required
set_description bool

specifies if the description should be updated.

required
description str

is the updated description.

required

exchange_multisig_keys(multisig_hexes, password)

Exchange multisig hex with participants in a M/N multisig wallet.

This process must be repeated with participants exactly N-M times.

Parameters:

Name Type Description Default
multisig_hexes list[str]

are multisig hex from each participant.

required
password str

is the wallet's password (TODO monero-project: redundant? wallet is created with password).

required

Returns:

Type Description
MoneroMultisigInitResult

the result which has the multisig's address xor this wallet's multisig hex to share with participants if not done.

export_key_images(all=False)

Export signed key images.

Parameters:

Name Type Description Default
all bool

export all key images if True, else export key images since the last export.

False

Returns:

Type Description
list[MoneroKeyImage]

the wallet's signed key images.

export_multisig_hex()

Export this wallet's multisig info as hex for other participants.

Returns:

Type Description
str

this wallet's multisig info as hex for other participants.

export_outputs(all=False)

Export outputs in hex format.

Parameters:

Name Type Description Default
all bool

export all outputs if True, else export outputs since the last export.

False

Returns:

Type Description
str

outputs in hex format, empty string if no outputs.

freeze_output(key_image)

Freeze an output.

Parameters:

Name Type Description Default
key_image str

key image of the output to freeze.

required

get_account_tags()

Return all account tags.

Returns:

Type Description
list[MoneroAccountTag]

the wallet's account tags.

get_address(account_idx, subaddress_idx)

Get the address of a specific subaddress.

Parameters:

Name Type Description Default
account_idx int

specifies the account index of the address's subaddress.

required
subaddress_idx int

specifies the subaddress index within the account.

required

Returns:

Type Description
str

the receive address of the specified subaddress.

get_address_index(address)

Get the account and subaddress index of the given address.

Parameters:

Name Type Description Default
address str

is the address to get the account and subaddress index from.

required

Returns:

Type Description
MoneroSubaddress

the account and subaddress indices.

Raises:

Type Description
MoneroError

exception if address is not a wallet address.

get_attribute(key)

Get an attribute.

Parameters:

Name Type Description Default
key str

is the attribute to get the value of.

required

Returns:

Type Description
str

attribute's value.

get_daemon_connection()

Get the wallet's daemon connection.

Returns:

Type Description
MoneroRpcConnection | None

the wallet's daemon connection.

get_daemon_height()

Get the height that the wallet's daemon is synced to.

Returns:

Type Description
int

the height that the wallet's daemon is synced to.

get_daemon_max_peer_height()

Get the maximum height of the peers the wallet's daemon is connected to.

Returns:

Type Description
int

the maximum height of the peers the wallet's daemon is connected to.

get_default_fee_priority()

Get the current default fee priority (unimportant, normal, elevated, etc).

Returns:

Type Description
MoneroTxPriority

the current fee priority.

get_height()

Get the height of the last block processed by the wallet (its index + 1).

Returns:

Type Description
int

the height of the last block processed by the wallet.

get_height_by_date(year, month, day)

Get the blockchain's height by date as a conservative estimate for scanning.

Parameters:

Name Type Description Default
year int

year of the height to get.

required
month int

month of the height to get as a number between 1 and 12.

required
day int

day of the height to get as a number between 1 and 31.

required

Returns:

Type Description
int

the blockchain's approximate height at the given date.

get_integrated_address(standard_address='', payment_id='')

Get an integrated address from a standard address and a payment id.

Parameters:

Name Type Description Default
standard_address str

is the integrated addresse's standard address (defaults to wallet's primary address).

''
payment_id str

is the integrated addresse's payment id (defaults to randomly generating new payment id).

''

Returns:

Type Description
MoneroIntegratedAddress

the integrated address.

get_listeners()

Get the listeners registered with the wallet.

Returns:

Type Description
list[MoneroWalletListener]

List of listener registered with the wallet.

get_multisig_info()

Get multisig info about this wallet.

Returns:

Type Description
MoneroMultisigInfo

multisig info about this wallet.

get_network_type()

Get the wallet's network type (mainnet, testnet, or stagenet).

Returns:

Type Description
MoneroNetworkType

the wallet's network type.

get_new_key_images_from_last_import()

Get new key images from the last imported outputs.

Returns:

Type Description
list[MoneroKeyImage]

the key images from the last imported outputs.

get_path()

Get the path of this wallet's file on disk.

Returns:

Type Description
str

the path of this wallet's file on disk.

get_payment_uri(config)

Creates a payment URI from a tx configuration.

Parameters:

Name Type Description Default
config MoneroTxConfig

specifies configuration for a potential tx.

required

Returns:

Type Description
str

is the payment uri.

get_primary_address()

Get the wallet's primary address.

Returns:

Type Description
str

the wallet's primary address.

get_private_spend_key()

Get the wallet's private spend key.

Returns:

Type Description
str

the wallet's private spend key.

get_private_view_key()

Get the wallet's private view key.

Returns:

Type Description
str

the wallet's private view key.

get_public_spend_key()

Get the wallet's public spend key.

Returns:

Type Description
str

the wallet's public spend key.

get_public_view_key()

Get the wallet's public view key.

Returns:

Type Description
str

the wallet's public view key.

get_reserve_proof_account(account_idx, amount, message)

Generate a signature to prove an available amount in an account.

Parameters:

Name Type Description Default
account_idx int

specifies the account to prove ownership of the amount.

required
amount int

is the minimum amount to prove as available in the account.

required
message str

is a message to include with the signature to further authenticate the proof (optional).

required

Returns:

Type Description
str

the reserve proof signature.

get_reserve_proof_wallet(message)

Generate a signature to prove the entire balance of the wallet.

Parameters:

Name Type Description Default
message str

is a message included with the signature to further authenticate the proof (optional).

required

Returns:

Type Description
str

the reserve proof signature.

get_restore_height()

Get the height of the first block that the wallet scans.

Returns:

Type Description
int

the height of the first block that the wallet scans.

get_seed()

Get the wallet's mnemonic phrase or seed.

Returns:

Type Description
str

the wallet's mnemonic phrase or seed.

get_seed_language()

Get the language of the wallet's mnemonic phrase or seed.

Returns:

Type Description
str

the language of the wallet's mnemonic phrase or seed.

get_spend_proof(tx_hash, message='')

Generate a signature to prove a spend. Unlike proving a transaction, it does not require the destination public address.

Parameters:

Name Type Description Default
tx_hash str

specifies the transaction to prove.

required
message str

is a message to include with the signature to further authenticate the proof (optional).

''

Returns:

Type Description
str

the transaction signature.

get_subaddress(account_idx, subaddress_idx)

Get a subaddress.

Parameters:

Name Type Description Default
account_idx int

specifies the index of the subaddress's account.

required
subaddress_idx int

specifies index of the subaddress within the account.

required

Returns:

Type Description
MoneroSubaddress

the retrieved subaddress.

get_tx(tx_hash)

Get single wallet transaction by hash.

Parameters:

Name Type Description Default
tx_hash str

Transaction hash.

required

Returns:

Type Description
MoneroTxWallet | None

wallet transaction.

get_tx_key(tx_hash)

Get a transaction's secret key from its hash.

Parameters:

Name Type Description Default
tx_hash str

is the transaction's hash.

required

Returns:

Type Description
str

is the transaction's secret key.

get_tx_note(tx_hash)

Get a transaction note.

Parameters:

Name Type Description Default
tx_hash str

specifies the transaction to get the note of.

required

Returns:

Type Description
str

the tx note.

get_tx_notes(tx_hashes)

Get notes for multiple transactions.

Parameters:

Name Type Description Default
tx_hashes list[str]

identify the transactions to get notes for.

required

Returns:

Type Description
list[str]

notes for the transactions.

get_tx_proof(tx_hash, address, message='')

Get a transaction signature to prove it.

Parameters:

Name Type Description Default
tx_hash str

specifies the transaction to prove.

required
address str

is the destination public address of the transaction.

required
message str

is a message to include with the signature to further authenticate the proof (optional).

''

Returns:

Type Description
str

the transaction signature.

get_version()

Get the wallet's version.

Returns:

Type Description
MoneroVersion

the wallet's version.

import_key_images(key_images)

Import signed key images and verify their spent status.

Parameters:

Name Type Description Default
key_images list[MoneroKeyImage]

are key images to import and verify (requires hex and signature).

required

Returns:

Type Description
MoneroKeyImageImportResult

results of the import.

import_multisig_hex(multisig_hexes)

Import multisig info as hex from other participants.

Note: If the daemon is not trusted, this method will not automatically update the spent status after importing peer multisig hex.

Parameters:

Name Type Description Default
multisig_hexes list[str]

are multisig hex from each participant.

required

Returns:

Type Description
int

the number of outputs signed with the given multisig hex.

import_outputs(outputs_hex)

Import outputs in hex format.

Parameters:

Name Type Description Default
outputs_hex str

are outputs in hex format.

required

Returns:

Type Description
int

the number of outputs imported.

is_closed()

Indicates if the wallet is closed.

Returns:

Type Description
bool

True if the wallet is closed, False otherwise.

is_connected_to_daemon()

Indicates if the wallet is connected a daemon.

Returns:

Type Description
bool

True if the wallet is connected to daemon, False otherwise.

is_daemon_trusted()

Indicates if the daemon is trusted or untrusted.

Returns:

Type Description
bool

True if the daemon is trusted, False otherwise.

is_multisig()

Indicates if this wallet is a multisig wallet.

Returns:

Type Description
bool

True if this is a multisig wallet, False otherwise.

is_multisig_import_needed()

Indicates if importing multisig data is needed for returning a correct balance.

Returns:

Type Description
bool

True if importing multisig data is needed for returning a correct balance, False otherwise.

is_output_frozen(key_image)

Check if an output is frozen.

Parameters:

Name Type Description Default
key_image str

key image of the output to check if frozen.

required

Returns:

Type Description
bool

True if the output is frozen, False otherwise.

is_synced()

Indicates if the wallet is synced with the daemon.

Returns:

Type Description
bool

True if the wallet is synced with the daemon, False otherwise.

is_view_only()

Indicates if the wallet is view-only, meaning it does have the private spend key and can therefore only observe incoming outputs.

Returns:

Type Description
bool

True if the wallet is view-only, False otherwise.

make_multisig(multisig_hexes, threshold, password)

Make this wallet multisig by importing multisig hex from participants.

Parameters:

Name Type Description Default
multisig_hexes list[str]

are multisig hex from each participant.

required
threshold int

is the number of signatures needed to sign transfers.

required
password str

is the wallet password.

required

Returns:

Type Description
str

this wallet's multisig hex to share with participants.

move_to(path, password)

Move the wallet from its current path to the given path.

Parameters:

Name Type Description Default
path str

is the new wallet's path.

required
password str

is the new wallet's password.

required

parse_payment_uri(uri)

Parses a payment URI to a tx configuration.

Parameters:

Name Type Description Default
uri str

is the payment uri to parse.

required

Returns:

Type Description
MoneroTxConfig

the tx configuration parsed from the uri.

prepare_multisig()

Get multisig info as hex to share with participants to begin creating a multisig wallet.

Returns:

Type Description
str

this wallet's multisig hex to share with participants.

remove_listener(listener)

Unregister a listener to receive wallet notifications.

Parameters:

Name Type Description Default
listener MoneroWalletListener

is the listener to unregister.

required

rescan_blockchain()

Rescan the blockchain from scratch, losing any information which cannot be recovered from the blockchain itself.

WARNING: This method discards local wallet data like destination addresses, tx secret keys, tx notes, etc.

rescan_spent()

Rescan the blockchain for spent outputs.

Note: this can only be called with a trusted daemon.

Example use case: peer multisig hex is import when connected to an untrusted daemon, so the wallet will not rescan spent outputs. Then the wallet connects to a trusted daemon. This method should be manually invoked to rescan outputs.

save()

Save the wallet at its current path.

scan_txs(tx_hashes)

Scan transactions by their hash/id.

Parameters:

Name Type Description Default
tx_hashes list[str]

tx hashes to scan.

required

set_account_label(account_idx, label)

Set a human-readable description for an account.

Parameters:

Name Type Description Default
account_idx int

account index.

required
label str

is the label to set.

required

set_account_tag_label(tag, label)

Sets a human-readable description for a tag.

Parameters:

Name Type Description Default
tag str

is the tag to set a description for.

required
label str

is the label to set for the tag.

required

set_attribute(key, val)

Set an arbitrary attribute.

Parameters:

Name Type Description Default
key str

is the attribute key.

required
val str

is the attribute value.

required

set_restore_height(restore_height)

Set the height of the first block that the wallet scans.

Parameters:

Name Type Description Default
restore_height int

is the height of the first block that the wallet scans.

required

set_subaddress_label(account_idx, subaddress_idx, label='')

Set a subaddress label.

Parameters:

Name Type Description Default
account_idx int

index of the account to set the label for.

required
subaddress_idx int

index of the subaddress to set the label for.

required
label str

the label to set (default '').

''

set_tx_note(tx_hash, note)

Set a note for a specific transaction.

Parameters:

Name Type Description Default
tx_hash str

specifies the transaction.

required
note str

specifies the note.

required

set_tx_notes(tx_hashes, notes)

Set notes for multiple transactions.

Parameters:

Name Type Description Default
tx_hashes list[str]

specify the transactions to set notes for.

required
notes list[str]

are the notes to set for the transactions.

required

sign_message(msg, signature_type, account_idx=0, subaddress_idx=0)

Sign a message.

Parameters:

Name Type Description Default
msg str

the message to sign.

required
signature_type MoneroMessageSignatureType

sign with spend key or spend key.

required
account_idx int

the account index of the message signature (default 0).

0
subaddress_idx int

the subaddress index of the message signature (default 0).

0

Returns:

Type Description
str

the message signature.

sign_multisig_tx_hex(multisig_tx_hex)

Sign previously created multisig transactions as represented by hex.

Parameters:

Name Type Description Default
multisig_tx_hex str

is the hex shared among the multisig transactions when they were created.

required

Returns:

Type Description
MoneroMultisigSignResult

the result of signing the multisig transactions.

sign_txs(unsigned_tx_hex)

Sign unsigned transactions from a view-only wallet.

Parameters:

Name Type Description Default
unsigned_tx_hex str

is unsigned transaction hex from when the transactions were created.

required

Returns:

Type Description
MoneroTxSet

the signed transaction set.

start_mining(num_threads=None, background_mining=None, ignore_battery=None)

Start mining.

Parameters:

Name Type Description Default
num_threads Optional[int]

is the number of threads created for mining (default None).

None
background_mining Optional[bool]

specifies if mining should occur in the background (default None).

None
ignore_battery Optional[bool]

specifies if the battery should be ignored for mining (default None).

None

start_syncing(sync_period_in_ms=10000)

Start background synchronizing with a maximum period between syncs.

Parameters:

Name Type Description Default
sync_period_in_ms int

maximum period between syncs in milliseconds.

10000

stop_mining()

Stop mining.

stop_syncing()

Stop the asynchronous thread to continuously synchronize the wallet with the daemon.

submit_multisig_tx_hex(signed_multisig_tx_hex)

Submit signed multisig transactions as represented by a hex string.

Parameters:

Name Type Description Default
signed_multisig_tx_hex str

is the signed multisig hex returned from sign_multisig_txs().

required

Returns:

Type Description
list[str]

the resulting transaction hashes.

submit_txs(signed_tx_hex)

Submit signed transactions from a view-only wallet.

Parameters:

Name Type Description Default
signed_tx_hex str

is signed transaction hex from sign_txs().

required

Returns:

Type Description
list[str]

the resulting transaction hashes.

sweep_dust(relay=False)

Sweep all unmixable dust outputs back to the wallet to make them easier to spend and mix.

Parameters:

Name Type Description Default
relay bool

specifies if the resulting transaction should be relayed (default False).

False

Returns:

Type Description
list[MoneroTxWallet]

the created transactions.

sweep_output(config)

Sweep an output with a given key image.

Parameters:

Name Type Description Default
config MoneroTxConfig

configures the sweep transaction.

required

Returns:

Type Description
MoneroTxWallet

the created transaction.

sweep_unlocked(config)

Sweep unlocked funds according to the given config.

Parameters:

Name Type Description Default
config MoneroTxConfig

is the sweep configuration.

required

Returns:

Type Description
list[MoneroTxWallet]

the created transactions.

tag_accounts(tag, account_indices)

Tag accounts.

Parameters:

Name Type Description Default
tag str

is the tag to apply to the specified accounts.

required
account_indices list[int]

are the indices of the accounts to tag.

required

thaw_output(key_image)

Thaw a frozen output.

Parameters:

Name Type Description Default
key_image str

key image of the output to thaw.

required

untag_accounts(account_indices)

Untag acconts.

Parameters:

Name Type Description Default
account_indices list[int]

are the indices of the accounts to untag.

required

verify_message(msg, address, signature)

Verify a message signature.

Parameters:

Name Type Description Default
msg str

the signed message.

required
address str

signing address.

required
signature str

signature.

required

Returns:

Type Description
MoneroMessageSignatureResult

the message signature result.

wait_for_next_block()

Wait for the next block to be added to the chain.

Returns:

Type Description
int

the height of the next block when it is added to the chain.

\ No newline at end of file diff --git a/docs/mkdocs/public/api/wallet_full/index.html b/docs/mkdocs/public/api/wallet_full/index.html new file mode 100644 index 0000000..93a0b67 --- /dev/null +++ b/docs/mkdocs/public/api/wallet_full/index.html @@ -0,0 +1 @@ + Full Wallet - Monero Python

Full Wallet

MoneroWalletFull

Bases: MoneroWallet

Monero wallet implementation which uses monero-project's wallet2.

create_wallet(config) staticmethod

Create a new wallet with the given configuration.

Parameters:

Name Type Description Default
config MoneroWalletConfig

the wallet configuration.

required

Returns:

Type Description
MoneroWalletFull

reference to the wallet instance.

get_cache_file_buffer()

Get wallet cache file without using filesystem.

Returns:

Type Description
str

Cache file buffer.

get_keys_file_buffer(password, view_only)

Get wallet keys file without using filesystem.

Parameters:

Name Type Description Default
password str

The wallet password.

required
view_only bool

Get view-only keys.

required

Returns:

Type Description
str

Keys file buffer.

get_seed_languages() staticmethod

Get a list of available languages for the wallet's seed.

Returns:

Type Description
list[str]

the available languages for the wallet's seed.

open_wallet(path, password, nettype) staticmethod

Open an existing wallet from disk.

Parameters:

Name Type Description Default
path str

is the path to the wallet file to open.

required
password str

is the password of the wallet file to open.

required
nettype MoneroNetworkType

is the wallet's network type.

required

Returns:

Type Description
MoneroWalletFull

reference to the wallet instance.

wallet_exists(path) staticmethod

Indicates if a wallet exists at the given path.

Parameters:

Name Type Description Default
path str

is the path to check for a wallet.

required

Returns:

Type Description
bool

True if a wallet exists at the given path, False otherwise.

\ No newline at end of file diff --git a/docs/mkdocs/public/api/wallet_keys/index.html b/docs/mkdocs/public/api/wallet_keys/index.html new file mode 100644 index 0000000..f661c90 --- /dev/null +++ b/docs/mkdocs/public/api/wallet_keys/index.html @@ -0,0 +1 @@ + Keys-Only Wallet - Monero Python

Keys-Only Wallet

MoneroWalletKeys

Bases: MoneroWallet

Implements a Monero wallet to provide basic key management.

create_wallet_from_keys(config) staticmethod

Create a wallet from an address, view key, and spend key.

Parameters:

Name Type Description Default
config MoneroWalletConfig

is the wallet configuration (network type, address, view key, spend key, language).

required

Returns:

Type Description
MoneroWalletKeys

reference to the wallet instance.

create_wallet_from_seed(config) staticmethod

Create a wallet from an existing mnemonic phrase or seed.

Parameters:

Name Type Description Default
config MoneroWalletConfig

is the wallet configuration (network type, seed, seed offset, is_multisig).

required

Returns:

Type Description
MoneroWalletKeys

reference to the wallet instance.

create_wallet_random(config) staticmethod

Create a new wallet with a randomly generated seed.

Parameters:

Name Type Description Default
config MoneroWalletConfig

is the wallet configuration (network type and language).

required

Returns:

Type Description
MoneroWalletKeys

reference to the wallet instance.

get_seed_languages() staticmethod

Get a list of available languages for the wallet's seed.

Returns:

Type Description
list[str]

The available languages for the wallet's seed.

\ No newline at end of file diff --git a/docs/mkdocs/public/api/wallet_rpc/index.html b/docs/mkdocs/public/api/wallet_rpc/index.html new file mode 100644 index 0000000..225ef99 --- /dev/null +++ b/docs/mkdocs/public/api/wallet_rpc/index.html @@ -0,0 +1 @@ + RPC Wallet - Monero Python

RPC Wallet

MoneroWalletRpc

Bases: MoneroWallet

Implements a Monero wallet using monero-wallet-rpc_.

.. _monero-wallet-rpc: https://docs.getmonero.org/rpc-library/wallet-rpc/

create_wallet(config)

Create and open a wallet on the monero-wallet-rpc server.

Parameters:

Name Type Description Default
config MoneroWalletConfig

configures the wallet to create.

required

get_rpc_connection()

Get the wallet's RPC connection.

Returns:

Type Description
MoneroRpcConnection | None

the wallet's rpc connection.

get_seed_languages()

Get all supported wallet seed languages.

Returns:

Type Description
list[str]

wallet's supported languages.

stop()

Save and close the current wallet and stop the RPC server.

\ No newline at end of file diff --git a/docs/mkdocs/public/assets/_mkdocstrings.css b/docs/mkdocs/public/assets/_mkdocstrings.css new file mode 100644 index 0000000..4b7d98b --- /dev/null +++ b/docs/mkdocs/public/assets/_mkdocstrings.css @@ -0,0 +1,109 @@ + +/* Avoid breaking parameter names, etc. in table cells. */ +.doc-contents td code { + word-break: normal !important; +} + +/* No line break before first paragraph of descriptions. */ +.doc-md-description, +.doc-md-description>p:first-child { + display: inline; +} + +/* Max width for docstring sections tables. */ +.doc .md-typeset__table, +.doc .md-typeset__table table { + display: table !important; + width: 100%; +} + +.doc .md-typeset__table tr { + display: table-row; +} + +/* Defaults in Spacy table style. */ +.doc-param-default { + float: right; +} + +/* Symbols in Navigation and ToC. */ +:root, +[data-md-color-scheme="default"] { + --doc-symbol-attribute-fg-color: #953800; + --doc-symbol-function-fg-color: #8250df; + --doc-symbol-method-fg-color: #8250df; + --doc-symbol-class-fg-color: #0550ae; + --doc-symbol-module-fg-color: #5cad0f; + + --doc-symbol-attribute-bg-color: #9538001a; + --doc-symbol-function-bg-color: #8250df1a; + --doc-symbol-method-bg-color: #8250df1a; + --doc-symbol-class-bg-color: #0550ae1a; + --doc-symbol-module-bg-color: #5cad0f1a; +} + +[data-md-color-scheme="slate"] { + --doc-symbol-attribute-fg-color: #ffa657; + --doc-symbol-function-fg-color: #d2a8ff; + --doc-symbol-method-fg-color: #d2a8ff; + --doc-symbol-class-fg-color: #79c0ff; + --doc-symbol-module-fg-color: #baff79; + + --doc-symbol-attribute-bg-color: #ffa6571a; + --doc-symbol-function-bg-color: #d2a8ff1a; + --doc-symbol-method-bg-color: #d2a8ff1a; + --doc-symbol-class-bg-color: #79c0ff1a; + --doc-symbol-module-bg-color: #baff791a; +} + +code.doc-symbol { + border-radius: .1rem; + font-size: .85em; + padding: 0 .3em; + font-weight: bold; +} + +code.doc-symbol-attribute { + color: var(--doc-symbol-attribute-fg-color); + background-color: var(--doc-symbol-attribute-bg-color); +} + +code.doc-symbol-attribute::after { + content: "attr"; +} + +code.doc-symbol-function { + color: var(--doc-symbol-function-fg-color); + background-color: var(--doc-symbol-function-bg-color); +} + +code.doc-symbol-function::after { + content: "func"; +} + +code.doc-symbol-method { + color: var(--doc-symbol-method-fg-color); + background-color: var(--doc-symbol-method-bg-color); +} + +code.doc-symbol-method::after { + content: "meth"; +} + +code.doc-symbol-class { + color: var(--doc-symbol-class-fg-color); + background-color: var(--doc-symbol-class-bg-color); +} + +code.doc-symbol-class::after { + content: "class"; +} + +code.doc-symbol-module { + color: var(--doc-symbol-module-fg-color); + background-color: var(--doc-symbol-module-bg-color); +} + +code.doc-symbol-module::after { + content: "mod"; +} \ No newline at end of file diff --git a/docs/mkdocs/public/assets/external/fonts.googleapis.com/css.49ea35f2.css b/docs/mkdocs/public/assets/external/fonts.googleapis.com/css.49ea35f2.css new file mode 100644 index 0000000..0dd39d4 --- /dev/null +++ b/docs/mkdocs/public/assets/external/fonts.googleapis.com/css.49ea35f2.css @@ -0,0 +1,756 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3KWWoKC.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3OWWoKC.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3KWWoKC.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3OWWoKC.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..421afd079606610eba2b9ee789fb883cef7b7fe3 GIT binary patch literal 25464 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

{o`kr;hYMGf&^hQcY$$9_?A8>37ZoLrz>QNX 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 M=6ebZsw6=J0D#J^LI3~& literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..96f6a37479b061388533bef45fb2571ede986eb1 GIT binary patch literal 40480 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..71a854c151166df6c52aac328b0060334a5fdc8e GIT binary patch literal 31820 zcmV(@K-Rx^Pew8T0RR910DMdU761SM0Pe&90DIE_0RR9100000000000000000000 z0000QhX)(NY8-=lKS)+VQiM7NU_Vn-K~#ZCCoTYl2nd0G37-Zpeh~}`fu3Z6jCl)$ zHUKbzpe_M60we>7Xapbyj1mVR424b`8{$XMZQlelq4Z`|FPt54?h3X|!`a=c8WVss z;10va0fx{2Pxk-+f7;R^Llf#BfVMhyZr77U4pBhJQYCsXR1H;9&Owe)%oST!c1Vh` z3HkE5VI=XdN&AaQz0i*(t3}(fTa)T#zYY zC2y`U0{@i8Y$@9L;G_#~mIR50!;RA$y!o~sPNPJZmRa4G?*F&zhMJE%!x*xM3@1V9 z#*VJWw>gk~d$^Xrt>cS=)4J|LaJVJvL8~Kx*y!Jf5wx4rfZ4gV;inwHn zE-6(4+8BkxJlmd(B?S5DlI5khpx%g+z5v^D%X`0LcZL_~%MiBeDj70^bs zsSw3M9sAb*#@~L`i>MH4wf*gaO}oXxLI7Op{szdGl7 z;2ai)4t!%w^pUIs$@}`}$ruy4RHanPR0NEKvCLZwO-go6M7mfzmKd-jB` zF2W0Q$-NeGf*Nm!N2;Qy7O#OO6}bs=kf`{B@HqXASKselnpC4dI?H=0yVu)ZD!_h0 zc|ktLVy&)9bG4+j3dn{T8V12eU?2&iK@`L&TWLDI@R}pl-krW`--LT6ih(F}lIZvM zj@OSY!qvawPHbQbGD`RU`2<937IG#>7y*Wk2!hCpQYX>Bj1YvOA_uYk|DV?EO)`Iy zEiFsVc{E`#YK8}@w8*d2_P?cNma1x1P3BLiKh)62<)g5x5E4n3Sd3puD;9*|X+e0g z4-a5TaP=&Pu9$@l#tPw-STJk=`C5H9s=j$;M`BPRNCiZwIzo&@ zgk(+;I=w8Ri*y_Y9V84|6{1Fsmc*7}ZCB15)B-@-`%Il+<03S_ev{pRn zN&y5A00737-pb%c%Y3kOh;*oam~N3ffNLRxH1wU`(<8EC_5&3rBR8f>r|q4 zXg^O!w6t#01!H|uF~UaDTyL&VrBW_4Y|W=nyO1Hf&JNgulWc|dH);)Bg#z%QsZWbft_u_Vy#X5laaoRp%#L8H{n+c{8= z`|Ui-i@eHfe3LJoe84w~AoxQ{oFi#cPKV55mAhh(?zA;+mwm|IN{`)_CmrpM`jU1Q zo#kGg{u-{W^?yxJ+zqJ+zKC0K6en?oz(|R*Q7V=7*u2|(o?fH{7Uis*-Tz%+@Qb{a z7X*vo4($%dBY1?3M549?p4yyB4SRc~NOW{tiW2!IN0tii{AO{GEm__U@8+UL`f0ophFI~Hge0YGk100ahZ(CV0t^*&BE1 zp1&vV!Mp7)-u}$DpHvUF)7$oKVr$(hx6F;a`E2HEv+~_~V?DesuTyKss#!%VYbCEf ztNF?+Y86kGtIN@4bs1Xfm&zq`iC+R2-J)3_eef+G^>t6U)e0BxMUJVO%06vd{o61V zzljfYQF}D4^JHGal00NCUZ@pbrQ+2*su$RptG~;ktk25K%=ipUZSwq=@nl>b zN5|?I8ug=cC=6rw{?|TIlm|N;O@{3SR?ynyV~ApXED91 zO}4fsb<1l)l-6Qtx_`54M%3)yy7VsY#mU$jW6`ns#Ms~A$t*Zd5>v(%qQy8L#}6oFr>N~EJ|EHrCeZ#U60hM~?|MIO0=fy}~a$9VV)#U^EJleBCbkO#R zwkfzlW)C2%OH%gJ-!s3E1+?GhKso-^$m19;cHA<7WRxf}lU44N& zEolXGdv;Oreb%*~JpbEG@^8_3WaoxLZ`RalE@wEW5gYc{*}%ne$TxThJ9el0o&>Iv zgK3TaK$o@c812v;Dj_7N=Zme1wn)0v*9!!JLLSqLx#$_A(D&?=+RH2v(8T^1L))1tE^+`EnvNV&hs^#tz~PBjiB1r$4}SGjRJ1ky zi;k8n0DT|P$41#M7Tbz-1tJ0Uvr7|J{8z7gJwv_*9pP4aW&7zt<`H@)sb2&BNsJLE-S@AHY~x9{Ys>v%J6!XmQ%T&j6}D$EA$NGi{AxLp~7~Q}EIYWUaOn zoy!Y;60VF5Yo5QL;PXRTEfRA@aO%fZ%u<5p6V04xP{O)1n}qq|LJU-d zq;B!9qbsW5Z~ZmW=5|uNn%9t8rBI<#6fG}VN))~c&+>X6&#Iiwfvnx%xjgyr{}bKFKaw8+XsL|Q;gp!2v>rU2!PRn4`qh3Ql`4BL zW@@^qC->0Xbf<2_>evg__uXERn4b4!+tsF8M_SX0!3c=LAyH#BvROEipi1*-T89#7 zU_8~*lQ`c5jO&%>W#=|WIUG%%X)&}Yp?s=4W)Fry8cJxLf+MNQ7bqy8!xy4esAT`q z42!G`yzq9Jq9bY2KhM|$BC|5Db5X~Ev8=Iyjl@0nOx-nm0>-77aCz( zKNG0AEiTehnT_|hlsCxc7TCe3hZ&si4i~5 zb)+)JelH1@$MAdG2pe_JCCL}u8WKC~a*N~oGQoeET}Wcg!Ff}J3X8LGg-@e~NGu=S(xt0(zu?)s0rT8be8Zw6 z{>hnw7Ma`R*06@+T5=l@P%+a+EZJR7Jg#MCUvkS&qV`eBT=XjjLDo0u+RTj9J}(XZ zd`kV+A!lZp|102pk7r~Gb=XA7G3^*xhn{+Wow25$D^Rl8ej&=56xn-M+4x6<30hnL zv*QtW@(;0-61Ma8^;@HiZOLk29{H@zfP1L_fw-IX3*bk^qBX$0h(GNZ*y`xbVS&!To{uSU%r`{Ta>KLZ+GSR0DF-RL7 z#>ALm^=NCo72}gyw;jx>E75TgTvNA&Lfyq1Acq+gV9yNxu1riJ7L*~Lj|I~9j!k{| z$pXNto`LJ5>l{hmQy0a%@0X+2y?9Z)6_DlTP%nUK84lDw^%wgkk8O0RG+^)k_3il; z{ZONs?XqU)kiEDr-GpyySt$L-O-E^a@AW*~#Cp!&R^1tS*#`E=w_=|=>gDS3udM;9 z`d4=6ni+}nxQ<1r^bWgrPjPDaKh1)~;ZOVHxh;r8pQcrYmuT>4SBbw7($ z{d>DMxBWh~Q}Ubai2S5kFV8g9U$A%bJIxLm_g>ZiZ~FEIU34k zgaOiO;N2@BJ+Bb}6%=V>Xn+k2z7d=XF>k#%^I6gP)_Yn7#eYCTl$!_}5;eRf1DD>} z07gA%lt4S8%C?)YaC9kSN(0L0C_xa@fN9&b&=7Bof@)GKNNE$K178EDLY$kl(tHcN zVbMp6vqyVM&}p~${&2~nh5UooFGE16!6R{LHHMQh#x0XSse_1X3xL4O8;K_3S#JXP z`7{01xqdR13oy}Ux5433MztKAbzFJpijIp zNC)rdE{Lpgj}^8?pUfcqJ)ik&tpQ$djulLBA?QR~uawqb;Le%=RaHbDUf zqc6xZtin2M+T0>{t9r3`LJ%kBW;(_lhQG+kQ*7yvY*5%ot5^bD&EV=vqH{yZ6~lq zDo(3Sq)d^c)lfq;*Vxy4`vL;?Cia9ag4GxF4~E@C%mnK>&w#ML)P<2Yd^U|^#`uH| zv_>42z=e|!YB^ns*PJw2^KDICIb*`HwxqUbi+9r2es$AqlV+`g)G|oTzKr5Y!(6U9 zs#3^2+0e8eHFxC>H{7_>kv?y4b9+pJ_K4w;KKZaWyE8p%OiZxQ)N`IWytiC@%$Vq; zxn+ZPq@1IudR0JH}-zn`*!L13&(!Ae{lb2*KIg;^Xe__ zgO7gs+OKr4Ie9CzwsYN?U!3^G$zR%ddDE6}s#`Yy(AX)lHd`6$9$T~RnqTYM>A!E> z*_J+T=jnf+|F>_7SO48^;p%_lcdy=k;-1;YlD%jD_sx2$5duImZM(Bf0k&h*S7xIU zAy2$0Db6-A^xf8D=0VFmo7K8od-%G#KeqERLZHLo7tw+i`YAN?rMqV+u z87J)-ULWz`Ll|-ApyvRLTrpQl-Zk959U7@^`Dk@XgDX#X-pOAUE=~w?A%(|zD*iUX zGJM6mHqsyq)=C0A#*dVS(77|_WD?Hd8h#NNK@l0uV23bDqA{AHKZas14Dk~+kW8Lw zfvsoTX%E|l_PG7zh~qdV=lDFd`;tHJoBp0T=`Ky;y>of4%+1-F-QP-Yfj|8K(u8Ta zgj=*$7YmN4NC{quqSQ#u#*Oz?PmRoa5KjaAX?|Vm7bk7xo>?B*oE?IX9CE1y^s^1@ z1R(txApI#>+R82f(jSomq(3q}Y<~D(;y=%SX9F8Kl%5`zfN8U005BA{Qb5jpew-R z)~oj#9HO_=tr7x9E6N^ds4Ue^R`^X>D?%4^QCDcdkXW#C1HfXf z!hE}-LY@W42IVR0qU2jBt_~h?+$x`{wnV!k2PZph%VM?VZrW{GK4LMPxhY5#+pb)y z@eUr!tXw0#;9q8_@ML0@eFWrMODdUu*<-2|n{D}}ce!bvWwzPvXpW*gpXP9PzRo2;4eQ3`1K07f!*4feC zrfY3!ZaRB7=nqw|yV+^CoQHw5@Z&vV#Y=o$bD~ z(y^0XXq2WSg#7(#qZyATl~6~Afh`u#5pgYh`@Hj60HroUrMJyPv&yw;bpmJ&hrUdJ zX3fVlFe_EP&G_-~BK@TYO+GM2Jv)|lTV2+0QZ|pR-B8@GpdKit`nXwyqs#ZXMyRU< zCT>E%u?l3dnKi578GrfxeMOih5v1kCShNf{%oa^eg;yT2TE>n-s7qsh>(|8YvXKdz zIVpZ>$-em7R!M!_!2HxMzYs!Irz7Cn@A)t51 zYJ_8Gbz>2j;_zHAho22z|E<57}2mxcU3Nu8?dXJBUKk$eCgpSaq zjEC}9^Hu*Nm;m9o7>{6%WajjYL(KjK-qu9?DHhFeY-W71iJ;jNFF5hg3p%Jjv!jyV zVmQT1dsbA<)n~bEbTT!1c0^2Dp#ZWOf|VF7eJ49tyD|&8k6(x9Nmz%fQwK0pxiyuhEmbXhjC34e{AR!OO;;$wi)LQPWig@%ApT*Lt zI9i1W385J!IvnuY=uu8v$&-5g-nT(yhK;wP#S|T$R^7*^MR0qI)6kLB3mj%G=7aBF zDIpsrH6`EWCw?OBk)9NDF&j&{NJ-eSCptWxWMN$ZcQ0lYY|QN9PRq@)=;iSYIvv}^ zf$UsrkTp{blZ*ms37m~o6ls$p3t2WZwxu|(#NsGvTVDu02~&n@m#V^=U4q}16P|~8 z56kTk&?bOOnkQPI$=PmY9YHuqH@Ki}SoWOOFj1Fh05MjRQO`ip0o!30vTT4K;j~Ik zuz33RmzpHPK=csyLQkr>qunmRHfUqmsH5<{;Sw4p4(42=^ccZ3rwEQ|Wmqv%=8b&TGjj^>J1>9V&)(W%5WpC{UFx>|u(u3(I zx^zgiG8b&vBK+<)uIDD|(x}%^i5AQWW`9gbJLSj(na->P{5|xJh?ZlCmXp60b=Tq? zyM3FX$OA=}O;>c@8sMw}B>m!P$`~N$K#%Tw1OG};=;U@o zg6Wx16?iri)s&|v`4~_6xZ0NEV*$Lh_w#Us3JzFSwV9V@w9D?Loe(d39kx7x@r+)V zs;zX)DlaO{9@P>~@KAEa|rDnr~m`GU%Y)egywOz{>7VcF0=5Xkmc-gR+er0@3>}< zR1v8y2ij6yYMIPAg#$oviwDu?2m+WOGO+4C%6L-ULL?C*65}C>_^xacfVAitWl7lN zeO4yE1sV0F=CX5XHz0IWg4w&i^xRgeG|<<2x31K`cM`N*L{t34r?05g;&9!jr6hmAK7-RAk zXv|X~B0FM(j!X_tw?3ri@*TVs{SP9=VmtS!tlOZ8!+U(mpVzAI7FNBN#lW6ln&?>q zPm3fRj^B|<)W}Aj!$q2pWK{YRjTY|}4o6c_c#T;lTvBo0+;95$ELE&81a9TNy%T`L zbxHLXRWL)_+s5WEg41FLqeE^5h@OsePc$LUbV^^~07YLGv zsF7SP8^tA87V`m#{|YT|q%Qpnc76`Oqg(jQ>eL$E@D$=(4*N#2;cU#P;Uypm1bepq zjcdR5vf~xyJ-el#g`>oX)$qU=!@B_dr}80lHmFo?4Uh#i7bwxVbC&sP;MlcY7yvjg zgomMtyb2}&yh6r%?4eLLcUB_s_zcQ;LC(n-eXnFU*QVgxOoC;|46mOBZ0*W> ze)DEDz02ap!YuBE>~rb9Gp4U+?Bcz|(Yp7iQPbX&l-FY%oY!n0@MD-p-E`CXxpDQw z$!(s?IWy0E6+53je9~BEJ=_Ecs9pW*YbuHsJ#^!tesw?Age|sQ^L{nD_j-u>729zN zr}WIL!5xBif%QNxEXunLKTuqiFfxNE*n0ea7rcf2U9anF8auTpJt+Z;$<$F=_nb82 zP8%!_*dtvV#x#Y;oO9K5x8#G)%(Pvh7>$*gh*4JJzuQz%Q`u1|ZyZP--6&f)r? z8;LgE%jXjw;Jc?{2C;%KF%PJFr@Uda+skYQ0?QXFei`a#u*VRWQ}sN3wL-fuiPmf=-j8;-k$<5$c%wS!t z69990<8@;+Uya+U=~j*3UM)bAm@*)^%<3mZymnb31c#Aej@obXUaex@E6(g>M~+pF zINI;rfh67+tT}X1yX(Pj3_u4!P0Z1Cu5y%~y1%uxYNEPjc0YGEru4 zmV7lB;K<;#(Pah>szH34yXy@KfpFu%Q&YihtK)m&?XE2@c32ICm2Du z*+soYbAU7R*zzi2!vs6Z2O|{akbJF%rrw<~h`D2X&;*Xt9y^V=`=lzud41676PcLi z1K8#u=FL(3wh4wW%|@;=0*YR)&R`lh8--nS8rmkIIa`1xfu3!7m)%^2ovsSotFOJw zHNRHT36zdQd8*x9uE9l?d8+hzgm|!=Zpn$VJD7jpj$0(Y&YR3dr){||M3cC#Ygi;j z%g)0Ts;wO`{S(BWDW%UxE2F(?lVR}9N#3-Qc=GMnw}wxuNNk1gz}KH&;j{Sr>V}S_ z0CeCj7hDH#DpU!Ye+`dBOFYg|HnRtvbRq7wlt;v=NHhtUs6Oe^ zhz8$x_hq;r2elhoU`qyb9LZ8$ZE<2y;|Y2KLGK-N_|k3Aadh$BKhzhDx}Ys>>0Os^ z&9&5km9F$xcK?gBL(mX(zoGbTquwnjH#e-#5<_Q^#Vq9*V-u6_8Aha;453pRu>`6z z=u=BZa1TNprtm=cSKWO-*o>lbFroYTq>(;;6_f-B`XIm)dLnDy^?zpGj?AQn>;7uw z{}-p$4d$;Kc2O-MW>!y_`W`=p9kn`4xg}40Jv&Vpq~P?QPDPH+88@a(o`3Y!k|gw2 zKSBTY>`h4dnpt*qK6+Ey4K_n-B{@5=<{cAeL|wpOftg5a3QK22 z`9#~_S?v{@yhpSNvPYR1#$Iaecj5{iqOf|x)Lr}(ww?8{#M!D1*Rj@f-fMFQA?t>I z+Y`ea%&2kypdG=IVV;f-MHE6-yIuBqm$nKN{YV#+ZNp_zisBt(%Q7-W^2zq%e*?!~ zE61RI=%Bv*vCD~hot;m#m;S>FqG|*h9J9Kz$4)12975%zJk#^xvvrb6BPp_yr;VXaIUrCw>Pzh|s;gg;0Kt$j=PdW)?wZ$ULif+`NSR?_i1cYPTgH=m}H1_^EhtBmH$k9sUA+-KIXBpzkK=oo(^sb@*|Z{TDzl@%#%!#I@Tw z{%73AeVAURwq&b=YK1h@h!1Qa^Nfwgs> zBCrRR&?AJk`zeG8_V2!jVJI8e4d6aC%oE4F+p()v0ni87;GGR>< zzx+(AE#8=fyhmDBQ`e0UaQ&l?9;5wVc=F^n7Gq7?K)tq&rkWLRVCMPmdIwAgBt%M8U~C&(CJi*X%hLe5$x0OklCPK zD}6r+LP_cyvfkx1Ih2iP>a;3czghZ;o9n8bC=*_Q@l8;L(P(y-9>+Yw)8q}2Tlj^h zTF97W{9Hfgvc`;84GU4)S}C`j?va{6Ym%9p#^i35*{5Ts3+}nK4!Zp#&$Un5s0F;# zGGFp+*(hTCrec-~iemBX+eW|YVOAXEUIzt5AGHsioxqR(qa6<)wh5zMSKAGQetM}k z9Y66hVZs5ul!K0i-3Oo_KRGy_^YxFtc8vdHEhch($)>M&G7N_1efaDFw{Y`JDsk-q9j@JYW(<-E^5>c zg)^+9h=%F2iBE!@pkJic|8QKRocrIU#V1XqX_8DoFB1oh zUCVLE#Y>oRRPeCMCoN;wfQ4~K>zY^-?kRwrO%^6xMpliSys=={^9)h3w;%_Wc(6}G zx_i)*3diCIX6j4K0l$<9;VqvGAfNhDl6p-LVI!aD*~q71bMq^Uhe6W)(lw?;%~fJVejg}AV(BS#xHSS7fa;gE%0 zM{ME#@^+Q7SvPu_w~HCut-CUu$}B{g)@&Om2y}oZ?o$XqUNMC`=DGLVo#zDt_71T@ zY+;Sx!A_pD{jWJE)7jgYkm9w{Q!KPKPZQB-6m_nGk zHx**lR%F5mZpvkwmcOe*M~7h?b~*pkvv(Q=9IpaqJg_vw=I;o~Dp%6L?FXz|J zFb^^Lj(kTUzMC>RB2a=NuyH!e!*xL0<1=VZ1!KUMqpf%S{<7#s35eFJzmku>R};J! zNw~iI@YhU`lJS`_eg)_}dE_uu{KrBBJ(`%C5C6<$8P~UrmfK5LF6jkTphqJ5jN5?v zWS*Q69+=mSk;k&e&P;;HX7SpZs0BiIaKYm4h?@G(QGBAK_+R$uYvm}U%z80;Vs2p` zpbD{EvaRHwV3thOflIKjo9KtH?W6N8f{d0)4a-W6RRKbFGBUt%)6)(e0XEs7 zevGSzkjh?&Tk|ZZ1WRnlLHH?@&l36;R%w5&F#D@Y+;V}u`10Fu@5N}V7r1!O{1 z7grP1b)I<^uJcz2l9*r?G9AGPiE2zvcrn`ETLZk9f*Atk58PNDgD}=;Yr^aQ8*5mZ zfl!Xvsu#>LmcC1G3;-7HNOeaX7p#UO{b0>ifEvML0P$dT#bQq~0@q)<5QxPzbY z&NW80L8i4g3*hH~=`eMsO@GTxOs8<%ahY@<410q(c=v4zF3k&ez@HO4mII;91iJ0r!?k0`;vT}Z5>4l zzJQXtAF@Apso#t?AM|Z|^KU?35)D&deGG&bWWJwuSj_T{)iN+Tdv4!coztzt!E_vy zbU+dXi4A4_DVA9tqa$FppB^HVZ>@(VcLTf*VA77gn!a19TBsNLs6izB-mKEoP$sw3 z`7;1EDH;nV3Jta7T<{{m4s`&t&|^`>F0u!C{=&U) z#T`H=ItX4)Hh^FwBC%1&m)Dmvg{-S4idO(5B~+3b!vI-OJs95-^nV|$ z+SJ#WDBTrYy{njZ4L_c50Jtz$e)=;%=h@SZ)Qgl?OI>Y3eq0;Uw}67_39NRcz{d7B zijs4ndjKZPZoOsL3xRf{TNUgBqz*mM@#wwsh+oX?`y%Z6zN;tgH+Wp+NnWNQC*TsU zIIkiRmnxCvQ^ z@`|-88V|~9GRtMw-1#qn9u-#{AkU#LOg(re@}`MX67{`_daHXW7Zp~DkAdtJF=e&L zJT$vdqa|m87@&LAG0+V?E|46e`cW4~cfQT)hiXe`0>hA?{~%HCN4(z{#?D-@d36hs ziFcIz%Rc%>H3t2Zk2$%kS3s9@RAcmgbcwhA)b`Uzm+c7)m#tSKPi^7y*PV9ZbTCBd zqE;zrnV`&23z|Cd2N+Rcd&6ndN>}oa|It_KQ6nW>Wmok?-9kS=7m=SfBkz$4tl_u& zJ@P|_M-M} zO#KvSt(d=A;N*~mW+t@Xh{XgpBg7i>12WYq+;5o~RhZmK(xT`N78*3{R+BIghL`MI zTRS>gv;QEWP?7*p!S4r9<3-{GDj?{^raQgt?%qyKb943n)871EzhzT*P-UXt_O0uB9c? zT?+MKQ84@C9G3D>Eq|Cke35SA|?%x+jiha3`ANXugL*N|~ZS zoEIj)Vcx2V8wQs$aa2q|9FfC#e}*ty&oB|$X!MT@T~slnM0Xjg!*10U88@zTLeunC znNyHbbqA%eS}($C$S}8Q&I_AVZb2&y0~6s7Ktjj={Q$rPc@aFS4Pm6(4TNJ6N7=NYJ~{X#`BJo`F*g!T;4z+C6KMtOvj1T@8BtKKAF#DwW1@|KQn7X|>#069 z#O`E|3Jv;6L@l*zW>Mb&+L@9N5vgekN>lS1C{Xr7o}0e8XuKdnObX^;IHf_PzFD_W zf}O@Y_InX8)$HbR5aj;-VI=4NeIoO8O79G+!_nQ{L=lzhAId1-_I?2B(^Opo7lm;{ zW($CvI_9Nf;!vBdL>PCC^|6ft=Xh@T^N$!rzkBm@xW-#MB*7-scX-ATS4*GAT!lmH zJq!nr@5bb~!w-$qX{Iodnw0xJkJ~P8*CBXpgKMNE0@XKyTrYHTq}>;fljKlZicrwI z#hNU3wE=PDAD1!3XdLwuCi;^ektT}SAX+pCwmPH2}cvVIWRZ1 zbSJAR)au`b5(}p~Njz&xfbULn!8Kf!bU6>m{Q5r+Nbf4W%+2YkN1m&8E^JNqSS(3? zD4vu#&1sVe#hIr(Ad|p!fd23*l9r?e7FM}O<|vn0$= z!jX1SvzyKUzB@G&9%TUC$?g_z>obxMeyB4d#Vi{InL_3sg$!um!?09msOM7l>*T_n zV$~w+c~9ja>N6?9&P+H`tOaDA0|jkq0U_b*UgP=(5n$?GG@{`*8F9(ND}XRQ62<^T zTePc6VyZGXoD*a5Fq{d9ujj%*J*NlxLnry|&#mw4PfS^f=Q&xM=1IoG` zaN58M{9wp7vnWSZklhui_*R7J-D+^BC*Ynwo;;@qb>cehzlXXEA;VKbY?FZ7(n@`e z=37Er_uH(h>Y1IHL8^YhuktYdtqzU)ZH1f24HcTk9`` z2d;%JPjfwVMF<7>YmOm7YMC1Zp{kwwk+|0TFJaq*#rXIKd5<^cPqVakZ$uc4YEzKX z;hH;@w*b!9miPD;#1Goo{A_=&*_67&o%Y2Wm9rYC-M@?>V zVNH@2by&9K8|6IH2P9P0*_oEl^K2-x0s1cV`&KlQ*P&OYJQ6J)si+0UxSmQ|2t@qDD&g`Z$ndSpJDRiV;w|`rO)wR+ z)|4&~y8bn%+)PNnQrQTn3@T=1jOC9NvisR zyg}zUl@Xn@BQOTpI4d$FtLpM(+@}#@l|QJKB+gzpKZ53;gsC8-NZ{9|flp)8woxT? zX4fov+sZnGS^3s~q>LeGDFW%pI1!r1$>1H$e-*r<<|>sOp3{CC_s?W&dg*S1y#jt+ z3pV6{j?)V|_o%Hs=}`~L46Ek!w3<|<)gYD#MIK|6T;!#K2x>|+jCS{)cixVh^l&OQ z;}eI|qD+J+p~Dn3+_2y|cs3oYsf}~aA)4hAl+H4NV=Sh%>vT9wC@Kt7&ln28( zSuIqbCd&+=T?oSHV4}&#;d1mcj7m*>L+*>g7*V)u{gq>FlygdOXK1VKKnW_?B1T@n z>Fe$DkFp7yohiyi29w3(7+x`JCr~%t22F#OXSqcZrtqA$W|^~7v=iav=x1J|`<%?d zktdj|)SIhnXSn$9y#atC#1@d$M=1U=F6?EKL2OCn%?t0GIsDUV#L?aP5E7 ztoiUY%)Vx6N0sJ_kdZi$7u-PoPP9$P)L5MO+#|Abd7bc&TJ~O3mD2#2-sA! zW%M~!7*rP{koRB6KJ0XP3OX#qA&$~3rPd8M;Cb&0W^b5-7_X*CjDAZUv)o|Tq#M+a z->Td?oFee?s7o@&0|3EKFQ{9R!)F7f^joNG+$;$e!zM8TLNRJ8ry|tlGIkGrjI&sq z8t`?2fFU16aD^XoP3&2Uv2}zwH6FGQUgi#nKcDnCA-qu0G06ln+uR&) zjv7VKn-RWB`xoVB&h=#P08l3pz#~9+^-r{VbW_jYKzIZZ%?YjObjiLRz~HsyWm^s* ziC{#$xWk-`5h^HQW>hnYovu$sfdD^2Ht}qoP2+sLa@JKwx_bpbI?+)8k*zmgKff!UgWK}0Nf4snOlO5 z0V6!z!#(`+LVf*)*+&3oXTrx9dR2gq*p1hbvt~*FH?zHP)}F3K4>y{$A-QN?HVRy@ zWUoMgA_LNPy7%npnBbMyDyMxFCr4le_&{@(faIL%Ts*Re04WutDshG%;Cf{6u_P8t zo;tO|fvJ6OwG#jry8hU%f3BvZlv;<6?Xt?cH~yDmGkd{vatJ%88ykt*7NW=xaz4jXV_|Rq>N`@2s0GA?BskE$hg9p0tkV*)+8yc(K zd^@u&g~DNY8-&RsqRa3@hrJ*2%(m`qKuL8Dp)8e6%Tex0uMz}#s8xWh zl+|#`s>U|7nE8DLJgBY`2yt1BcH%hel951YadKU4+fO7;S^bPf?+pY@*_MQcgSmwM zn{LCVx(}o6_A-Na7PG;MK5cT}E{Gy-KreDdU*LIZ^LbKiM^*d4uuf#A=29VsA6jxV z2XgeAdgleRRrf?cPf-C@4|F*j0IY;Q?}cnF4PRw&q)L?lEF0k?y6Co2EuKmVj_4AA zu_uLgrfRp*fL%{_-up+6F#}@mfaj?i4iU9{S(5$&Aqho2;c$9xi_(Wmd4l!3SblRO zm3nUv)m%|@B20GIqYT1$KJ)XOz*B#vHs)HGaG-BJ&}_N*^JT;mufSsH{g~KJwEn>w zb`WzlYj$YmOcw?v8~=WPH4oarfU|tg3?^}GQiiFWd-J=QP?$NeaX|0R1aqA*?Y*EI^ER$IT|G&Yvl$kPHpA8L#~BYXS5BrQo2 zYxAjd^*x;QPRRZQpeLD7M5S{;}FfOJTs#XvSuuAB-5Im{F2}`{dn%A2?KBziR46j`G%6<>53$&uy_Q7m#b* z^g%8hV*PJsp%T~Fpqq(O(*NFmLC7no&JHPX+W5CE;w;tgd+9j;De++|* z4{W&^6tiK|AsF5)YuDnq#qJhk=s&pJ+AcL?c`sSl6kt<&*>?<16<&Fk4Sk#!+rTZ( zAY@m{D7f6(L?y#Bp1;t>o{!Xu_3I<3*?VZ}Q|7d;X7wX)pAdm5{id+}x`7W7<1{5=rB@`dk-)HVafzjE7r% zNEJ%9Ed>sQ&Bb9wJbrUW`zh0~N$3(c(rgT4I1reRC?z2H0-`4 z#;5XCo%;)0L`kzMp~Zuw3DSw~bhkC*3dI4XtnCr8g+1MWH-s(B( z<~h3=nmGmx>GRs0^PMLc6&eK@_0M1II@|c}f}HzBeq;PR{?SDa@AQ#t1abu`7wuS# zlOsnj5o}$&eMy9>Qp=7lKX#c=hOn}y>-gH^uL*A~JNU#2C$=ol`qqmMtWfDwPQ4*+ z#7vw%^7K>U{VTVv{Bu?NnM);7B`B+&_w`4Q=E7W_YkL>)B?PEMExJI#hcudqf`Ntl zr%wmMfqdXfKEP{yjcF9Hg0(zHl0K%{AVP{dtGeVBf`TU0l%_nDt6Ci*de$4qT#7&#&r z+!XE$=Z4F|+HmKN?#iz3y^Sxo z4%u;q12BL9f&ieu<8fhAxa9!8q!b8HVS;1kth0uv2dto>Jl z5mwS&>QH8gti7U&0u{Td>firE3GcR>RZ@Lmkj}R+0~!xgO_y-6_$wo(H~UOx1E?!R z)0Ne_B4)AK(0Be`8^zc%hdhr4=vc>5z9M4rL?8giX`$dtsMiLCI+(e-L)2PbC3M;S zhwpEIP8(pr?aHDj(2CZ@)!H=AuNGSc zZGZrA<2`*>vTAGHCT5h!GD^wy=+bS{pb=y~FvyzO5kInNOw=_M0I~Ul=})CPCAW!^ zFd*q)jNkECU9~sPi$9P}Llu|0IZl*CKeIpgNiX;eBK$bK!7aJ}N%hkPR3({aR7x(l zooBZh0|iP4{CVYRrOxO(+g_Om2|pePSX2Z~u?AC3$7DYSc>^DtsF03knbFr`Tu`v< zb72nf5mm$@=0o4nV9uxX1}xZsLse`~>_ML``i}(wRftp5mxO;JCtxTe%2`Q1>ok@` zL9O@zy|>1W5yl#{`=~nz0IH|a-(?dJ%?7We^SXsd3^9xh zI8n7nYjU4Gzq!3?pT}SWKV(l>YGq42Dqh&r>u}VPxrs}Pc z%Ur=SJj@&A&o~Rg23vd6`@3E-Zthhv`Lf`P5fH|rAq{Qz@pLVI15HpyE=Qul+r4ca zxpV$F&;bJQ@dvyn!YF4ocl1+?wduwMX&c{d7Fr4lZt(w?esIUjzQj(szuEHvmUV#*Bwl&-E4Lm{Yh!6afT+s$b>YQ?IB5kE&FnnK~|SyPq7oZZZ= z-D@M4JyhFED!M4!oKXR{c--dAkW{6x_%ZDtJKMuqOhDaA@vSq5RokxVQaS2-yO+`% zamwn;NS@Ry7Lx&oM6z@|4u?^xRAX)>d!2`tj33DIy`x6m*)$V($vu(nX27oU+e_^f zV-lmmyZ>;3s5XFd=7PE84vWcz+H;5O1<`)qs#{|8jt@{n%d#%ybBU~!6c{d3eMa@T z)ui4Wa8u-c-bt0KsSg>|!GTuwtJriKhG!+= zqVD5NgZ~7)?Xqux`{Wm?Z)-MyM2gk}o?0a>#qQ2Lq#ULfr~$LyU=UBNWw`+}unz10 z^np_&z&(CWO$7oJ<_P#@(dTr~g8EdqGVQbc`?W!CiXTuU%dO^RAaEt;D{K`)~i3TttOj03aK@~Ap z*80H%ujYS7V8#FAUVz0=5WK$=3&+!Cn`Aj(Ar7)@* z!N4i4npVpQhG~^>1UT?9vVC*x-TME+gbjeGrO=DK$I4d)pM$Sh`5_OxKY0-pSrk?b z--JK?XcUMbc$H}4{%CXJWZmCcYk?B@nS&0ALkpr-&kQ{BA<0D)+(7Gd0R!m4fhS-VXuV}VB#5zH+jE1%{48nn{67+_1rapi z(^P{3haz~(hI0lzHa@BUyL-=3zby=2IphC;1Xe&Fp^rCufKF-%k|-Q-43X)R^K+}< z;}AiQ20j+3v{r-kLuTlzg@O~#2{HXRy=EAqg9oAtlI!v z_DW^E_(J-RWe?SOl?P6=&5tyQp zac_)Mb0Cl^*vV@GL}sK~F5%}9o*7k(q3ou1=E@a7!S(lYuLmtNkzo%(5TOy@O#xDZ z)od!0gabj(V*w<@HlXcIBiRoPH^ZEfmFu}k#2<^_>5Jo`_&`FbgJlI6NYAD3>c)1eVgtG9`MUWC9T!Zr99Vk*m-i5+P}SuU#^~FYPzU zSBW#$N@0q@Fcc*iNw3))a-Td}ELz>goaR2&Y&3cFDEPz7o53YyD#eIP8x{wh8eG|H&*TNC6-5kLoJk|3*d!_gA%w5V$o6 zHxQ9lC>vl)6_r`C+36iFFb>#`XL)P_?EA+^*O~x$5UvKw?cF-kfhG{_lBCD_8H-o?$}GzaOvc2A2^%#+>1& z3DQo?1`wsW+|IK9_@n6T&*Up9Uy#HXlRIp7hsAYVuVLI4Dpm*Cqo`UQ#m+FFx% zO3N+F%96jcDp?s9`5J4_Iu~b3k6vv|I(q5B^@kr3w<%E#=Iv(+OsT1cAo!cM1XDxGTwW`KBt*eM zIh)fFv7$3%&&+V(KQlvz`npGwF>-0x7D*p#oQ~~`M_TEE59|wxz%&5lW-#3?N^<;> z$t&aQDFkk@+JTa?$RUFu0-|7hNtQ%E%73%UW-|2N^kBJi$RkZ7_VL2_OxZT+SFyIe zF8=TLH8;JJ1EnE>;94Je)-&J!ufrd|%X^vs_0+lG%y&gs64}q;Lu*i!KjJ(9ssP~K zZ~UwouZp?E6c`xdm zoF-1|VY9fql#2!!UpoX4Ksd2@wB8L^aZUhNAX?blnS1u7gXalT*Ek#dRf%VamEh5N zw|id;Ew@lqXEtW^=gT}BnwwR7VSE$2OKDnCkx3^b$V#>0fe2gfRLN5v6Sn#!{SIfH z--}XC-c@d?F0(1w-V0D!0zUzkV~o8}G{VhV4OPSOsXxtN(w_3!FSyD+tA`J3;|$+3 zGcox);|fh0ZIq)CjgL`aRm3*w2V?Rh{0%@12SfS+_c{0mUKN-~5RXJ~)X#KlC<^UF z+bSRiv~TrFrK$x83-1I$*=J%q;@P%>1F&|ey?>ij;A-VkZi-D~iCBu}dD$wd<^I#& zUYiMR6Z)dUP`1c3tCXJp<2NN3U>#!tie>`{C7e{O5st!AqHf?@k|+MQIb88JUz8f_ ztXP27qs%G{;RGcZxiWG3ozZTT)Z8SCKWQ~Z;u2bz{!xY?u!lZl;|`(LJ*Wc}K47BE z$0QD$$Uy&T#O7(m3M1i`6^80h5jh3fg zTi&Grwamc+U?*M!-_-8)y0L>-_wJ_5vSFGmzI9#ydg|spvZ^JE?a7Ly$kl9=j4^Nl z_zd5(GbOF6nv%tAOyl_fKuUGmr!1wiZb@#h$EG{eJRZF=v+AhGLky}# z{T&pI`9})Hc9J$+lN%_s_fc(02|VP*8MmQWt(J0GElQaf5Lc8BRF;bZ&!RKjJ_(B_ z6Nv8mj^6>#>4!JLMj@=IazY53<2^ipWo>_$Q2qy4&3@ZtOXyrS{C2(>o-|O6ul? zlGWVi>-)rSfA;3Sf8gY1<;cu;$ZekoYD-!qpjNpL^5o4vEXUx1OXZ20z{N!rLPWLv ztHR~RY?s<1AAiEno)l+Zt^3b{AK`EI`N0)#&4oStir*!aMh?NdN7XH^qZy^IXP_E^ z{nkM!7$rs7YEY})=_5T1d&z=uh8rkV^VOEFRT#%}lvz*E1W83J9E6qG{Hz1x+70Zr z!DiFoSb9yXd8=gsX5_c1n_nuRClEr2!>pKyU=U8u5JZ{2j)Rl~f249sUD-eOoaz1V z+M)lQQ6C|}Lq)=9SZ{>TQ+wBG8veVp=YU@qemg;NRWuf6w<21cDLk1uhD;tFeF&1(5;X zBf{+8y+fb>0Rdrysg7f{&5`r$Kt6)9Evd`qazmI>85b+(8Q;WA0ym_1Oay8bYcc=$ zJLRIr1AK@@jhBlagXVrk8BV})ouhlImKhaLot1pWU`{)YC9xEjD>LW~Tg|~c=ik)G z=WQ7bJ3qg;nA-jq1|!DAyMjGBap<mdD5KG2&mOWD1Y239W?3Swpu$J^_}`}kHga+nIW!%H&50ClUhl2 z=Cc{7K9ij*rP4?wiPB1$ps0j=&Z*)ZDyeN(LF^sTOhr=)>k4JGW{X&J;vyjx?IQ?0 zv`05w#F!+W zlWqUuIL;32w(U;yVDqRP{{Md&#vL4m!(%a*{c{|819@62XxYgkeX1i-oTf8+ez(a; zT{SgWy|H}1Ja^7OI$vd0s3ptys|*bCG{Z@nsluC*vh5VT-sOT-m$Qy)i(SxIul6P7JSuG)*fpXCSwd*IX8ZO_!Y1~k}Z zmZwy*5hltUQ=3{0Fa=eXmUO^y^U8R$VgHY=Wwy=E&gh4YM4u)k%)<%tywqG0uIzK#7M3zESj{9)+2fBtIJ z^Ltt${=Cx9KN^7xNM@Ml1-_PQfwo)k^4<^sE_ojKQqCt4%8#>qe~4Ue$hCMvDKBN~ z`;8w^JKiG2@WZszc6RO=e2y5=d0}uD{?rlb&+QH`{q&8rzy5a&<{d%73-7XDfyJx#g8%`~tg>xZ>#5z@7xY05JofGos`Q%xJuG$*{=B6}})m}Qn1-6(^NcdP^*acb;t-GEDq>HDN<6c_h zcAd%>L3#%+>ohIOoti0%LQENXuKL?@T30g55x=1fS(Q?XNhU|eBpe883x!~|luoBp zZEU5=gE_c$F)=SGIS?S|kH4bCWY&udeS|kx=a}k%Jie4cVRE08O>qv+o)+@dldc){ z1j*{{EgxjbYB@tvIG$3wBN6|s%s6F%s}`rDE9CVLnZ<;Jj0PwF^+#$)UEVconF<=1 zwFbBf!V`a)+S?VdEY=(j_3{zgsPSc(h;J@_60}8&4Qe_;8+T6%`?3<}vsEog;yAq` zD_%ZTZGUB@)0f?DcSKsHVF2*h;Rw+`^;!-)M#g)A4ychdHu`UlHpBZ2WFVZWn zUCO21m3+?fUe^C@daoZHc_fF!5|759ye2K|W)#3Y%IIhL>c1cW``b%r4pVg4YsAaKx$ z-gS|(zO}xd^PrL-T=o4&vlT1hM9tSRQuWLt?Q@3nxm_y7J;TN5kSM&+l6*v&ZRLwE z&PJ(DGD)pB)ji_vrq)e`(5tP4K*9X~==yNOSfnF}WxA+3;|9i{mCJO19p}RchH46b z{E=~&cZXn7mwk!7nb+wECnyqj#Vf z=gJbXP^nM3uxvUNjSZ(Hl|u8LZ})*w=6GHC6b$QHj>yId9xLdanKCGGX7UywiugE@ z+3%UI(AxuSBr5x_0|71l$HUdW+imeRTo zx>Gc9${(NQg3nLIcdW)DN-C@zE%I+}k|k1+fY%3yQBG1cX=Z)fq%B9aF=g#O7}L?+ zL8tPuc@oiBqKPFi$YU^A|2d`Bq7*=&G`5H(&^IO>c|;Dq&XThyU(($TN&j%6KV;u z4v|FG4;!yVz)5*4mJWnBZwdr$s&+GwLi$F2_XP+V>u&NJf!Ca}pnSObklnokd|~BY z$&ws4$t;yOhTw48vs&`-TE-J0er1nP)8T+01c1^?u~zD~@+K46`W5GNJHQ*@@Ot#I zfBQmg^`N7`^C3{MBs3LR*BFc^R%VgobeliiPsgVi+c1a#!PSt1DA~)LnkRxPsJ_iUPy%k|gV%r6onT zEVE`ZqoP++p!sXYloTajsv^v@;O4GVVk@Ioqen%J&Pa{iiz62i(7n7{l z#iqIXxDQG5j_megS@2$L7=)~fmXYG|7*21CMIvF+n58h!rsO8D3u=u`&01Wc?7@&E zd;XX+BRhm{FxZ4rb60O9jG>3!1cCdayvto}vm&%oVGQ#{zGb|qQ`lchECE7{VN-mX-M`R`5(6pyq1)i52 zZkMEk0OE2Y=R}0X-=%Vi*c2Zhi^Wpee6bMLGJ0>@oJ(JdedWtPKLTbzEGhw_0>qV= z#OcFN@~6hYXuzrxD^cVPzm}ef}orsF$i1{mBS_!8S(_X zL*ZG!n8~Otg)cRke^y+^A4_Q+q3}vEE4BsZ)r2UD>3pRPY_SsjCoE0-SOR639V51%a2$mbZWMR2I;z7W3I`gb9d@!^?1f!w>&t#t!Y~ z3ptXS(hQ{sAF1WdQ;OX3Y0ILqnP%3*7EsuHxsP3v0lf*(sEfBy_IDSsd zA1ipp>J?+l#$1T^?V-jDjUTqiZ#0&q@Xf-3-V4tR4AjX z90~{QSZfi(JUa8gnZ0W(rF?7&c^-?ci#t;fH}+HH?`yrnE z5+u%T1u{8govSCdsbv-{bVg4ML;}9ht~5a??I9)J7cJ_hWf@BHHpm1Fo@O)+y9WhG zrr1IOp8v)P+~3ybpOtSICNoXKp|Gm1>I`^rmxBk08l2$3O*#8x%Pq;B%oc@ZD6la^ zGh*>xQAZYK_FUe>;mr-@vYkT|U_8H;Mo26f!x@HsR~shEPgCdn|BbX)K~2&7{i7Hc z?~b}o5+=B-Y|b+rQ~4NyKbfSNT*>iZOl51xEyhV+wfp6hoHPZw*f`yrAH(l%ZY zOGzIpOQI+{8%o{e$H#FfR6PlS5Wn31C_5ZE%m5eg4}7#IvqZ7IS*LHXK%k7V>NJjz z*!4PX@c8joX?|jjTF!vH)y%VCqKWqu8>~x01 zN$|3P;7zb8D1=)o=+yLqd@eoCU5S95kEEM8|6oa8L;DekQ$E)Hd>>>|?zb)>pIqdO zQ39bjwEpD#{G<0$Vv{{hDsivM+*u}>fbG}dw z3oP1oc^9lkb`fsilEOTCaByQo)f+jE?A7Z$3JX0?im%0wD)W@dA_6IuihswJAq0HN zbsvz1V)9)7kLF)I{2*!`XPMm;a2rfG$yNyqScKuSwv-QZb9EOXz*ThwqBG@?&Y;T^ zJkSTN!n4*I@xSx+n<&H*SU(9`Sb88})y;?6)U-b6XIKRn`ubO`!zSwp95RX`lQ9XL zT(ka*Y2m+slL&fo*bi^8&{GAaY}oI8KsliX4P$-wtz~BBFDG7`)m^P49~>JhmaAYK z(MlEyyT7E%}ZG1=@?~{q>I#r(m+YM%nU>Zw;6(vTan63J@aO`mn3k>^osGg zX@t*VD$hMdnGo$5M%xcj-J~k1g{5Ccl_@5RgC^L6_2-)l0Y2vW)%&GPfcSB2kB2cb zaey@)<_C9{|9gLH)3?@jv%*FI}P*VKm+AiV5oOl4-}g{j3>9gR>LN}#DhtC`B3 zZ=BKnKGW{%tW?Uf6%q(l9V|8(6lHd$A5;!gJHtCjgTWx3Tu(>52h-GH2!qDfZ13J7 zyLLxQ`z%!wl{)?JkKw#e#h7u8)EI3I6yJ4Muh2wAdT@`$&eIyUfFJvEg#&f5bx3p3 zCoWoR+PYMcpJ9a`D}3bQwk-6`_kX7GKbuixI5lTiURR~r*_;qz{kGuB_xDmZLpP-^)Slj$K=R|UeSB>nSM!` ztM9I~+UelKb0-Pqw2|j+NiF-P-k&`1`ea!@G>6F`(y1s}&Cai8U1!Kcnc?2wSaA?P zds3;M-}8g13lXSOTx@qT^!n`wo@x!6Ws1D|S>Ly{$bVR}oUM~~+35lDC|S2tR(Pug zR)TQ!&}#UGGr0W`1bnmD?~fwjpB+(0eMyvV-^|Npa?XpwFK7P?SeKMSA<+%$KB%%N z?BiZF0Y5^4&imNS( z4WwGLf>5h{3kR_j2^P@7poJhwcW$4Otd)XMEtSi9RnJa-p!YFN>>rvkdh6=kpyb>( zWPm+f1`lnN2u&Uy$w zFt_La`cTO~a7}To>wQ|$_mNT+PyM!?jsl6mK@WltLhQ8-!R_+4u)y=+JhSA<&K+o< z&!~_|1iMX+aeu=|Bnl41tZq5WyL|yUl5R(oymsg+29}C57vevSyqEqT5JrLO?>vg#b5_LrsQ539IM-gG z>#4%;JoCxf&#B%jFN_!NVSZ*Dg+y*q%dCZ2!&yx;UpN%3y!U9ES$yShGa6^Uux#OW zZDB&4ap+|q_&(8*)6K@z`H;UY{sM7D2kirO~gtQU`DH7z32RuW-+G&U~qQ-AbHb8WIb85pvi zXKwYQn%ex`e^g^T9`R0&`eG=}$z~0eF0~MM!H>MHzdghWgWI{%-MZ_~{_($CEv%%| zs=|>bYpI8%EW<24_Dg5)>Xxj0PA4W>v^5 zY{`_asAksv!%?)%50rq;Rk!LQE%%z^*F1&w*eUEw@A9*JFjj8v6OE=qwZ`45w{_qD z-Smw-L%D=PKCfGQhY13A2i=RH62ILg{#V&@L4@T6fsKckbG?yJc+KY_4JA}lem&a! zZs2fuqctL)N+qL_GYrSEVm3lMtC`7p?TZqh@)q)6w4b6b)S!u3IPmq1#&rW*YQm71 z%_cZq!jDYu-Vcsu)7?I2TX%9ztz}7Cus-E@IXN z)946~uO}}=D^r6IjJK@n4-NV)4qdYdk>SMEKRVvux5ojSgI*CCap)_{Tnjc6eY+1@ zFT6A&alBs_{&s==h)8o(yAr4@7t z=ID+=69Q+MX}hbwVd#YfG(#88NEWbC<9wHDIfgWl=&J$tdaRg(ps+O+#0u+@Jo^!f zfGD{mAGX<~bDW^BFumd6q@(IUyCu5{mMJ;LiI@Dh0p`?RJwyQxGI_MXiLqwUQwpZ| zS>d$m-~&tq43`Mf%3V;=5@zA0Jk1J1X(HK8=V&Mi>Lw^ZhRIp&9F`;X-RxiN%${;u zWGTTe));S(@W~D;8JhaWw!if^{kK#|s{-lsdBgFwyx-4Rbuk8ik6ZX9|NhVk0tt8j z3wc0X{4-jvblQ%i_z|CC_>#9T^P!3oYnd!7x~@swTt?HfrEaepn*Ai5b6D=&w?KYV z^Ei)1LjDNJ$(mE*Y@uwqIY)mt#J9_GlF$A8H%5Nb!sD3c?r_9gQY9vnO{?-^P2W27 zJraLw=5u{|#O-@JZ{X9%;c*~(E5Vg!3oqOaS^X5CPc?;S!5zB*dWx-Hy%x#*MJ*e^ zP-qAq_U?i9W(U}4%MF8w6u?7CWit$^-UFPNHZV;0F3R31;H)pKIJ$xuTQ35&Fn265 zwO}Kr&V^fBQ32Vf8DBxBB~wO2>7-*++(Q+l7p8CVR&f8XSgpg5H^tpwS

4Z*mk zilA4c??&ct5X_vnm)D zf!)J^j#QF;r*Vr(2b-{CZ=o-Fk9{{-O1n{9Eif$*W##Otp*I4jOaCt5_e(gM1@lW? zOQ2kc#K5!C%@Pz0TPS2x0*SR_ZiUI;;rsqWqW_1rSO5U0|FY-- z0C@e8W%#H1{zH1}GcYK@000C?gC`15L?D>A?y+FIfV6!vS=rS8`%45(^(Pv`S34Ri zUm^Jw)+9!+U4#x>dMXi#eXcVmB##*U(W9UL62HlgnL{W-Sz9J;AuyM zF~aZ85=LD5jlIT#2k^F zlZ2T-d@&b@urnWsa?2}#7$eR|PFv!dkb!@Q8fFsnlbyrs>_Fcj0)fy)^0zSFW zo=#kTLkJ)(Yl+Atfk8ucGq5+;F>oLNZh7-~4zC2TYpMPHbqEIB&}20b2fw8?9@@p4 z0GIKD2<^Ccji4Wu4*>>jamzKRVL1vJz+v=b2JWPwh!H`(I1PPFF*Em3D!wd{`bboKH2Fs9XkfepoNN9eGa@1k` zH5w_SQ4X`q%=)L>;-_|0wjuKWq04BNH%50_A^UZdD{tslefO1ejBc54=OJ10#Vv$Z=J59+_Cyb-FeIcQ~73-oS z1)UWgV@ZY`ve~uR8REl@5<=a}WA8G%S?25~h8hjr$x&zRoDBAtR$K z5Orp4scwurdYGA8*NHk+I#hl!KE^;k4kSHlupfF}q!l+t<5d}#?JtD3pF}+SyYG{!V`o)rx zqJ2b6peL1dbDf|XoKB;IQA&_S+6IZATmvN%!ej%}hg0_aYImA;K7iLs21=1vyp>En>(yVgNlK0Q>-!z&7S5PI=_h6iz)w3`AVW zIXK5}=M~Pbx?rV(6%@B_sao`TplmxY8WqPn-P8 z;HC+gD4ncO&NQEVYVH{C5@TZUea7-gw%sS)=oJe~o(77c-FPFfl(`HS{!&b@={fBg LD*$sbR^Sx?joR+} literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a785017319b7cd9e5ecb9e82e0e74a23a8dffd81 GIT binary patch literal 15344 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 O{zU+js(11N0001iX$t26 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9626e562db47bc03174a9a8cee730bb78ebbd50c GIT binary patch literal 4452 zcmV-q5u5IJPew8T0RR9101;#W761SM03rMU01);70RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c891195b6cdbbb6638797ba269d0f68eff1cd994 GIT binary patch literal 45184 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 Qop9pg{K*CdwD2kw06w26O#lD@ literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..72840aa0215e3c1a8e8ada746fd6151876d80b61 GIT binary patch literal 17624 zcmV)0K+eB+Pew8T0RR9107TdT761SM0CPA107PN{0RR9100000000000000000000 z0000QfhZf4OdK>nNLE2of++@IKT}jeRDn(>E&zfK2!VbHp9U{}5ey2!7`h1yfldH0 z%`O2p0we>27z7{%iB<<7424b`Rc$qFn?}!r?jYzXo+$)Hk;g$6<98nwWposj{r{g5 zv=}n@)`7arNz%*+Tf`{c%j$`uR8@%%Z9rKYeEW{pP5&Cr*?|ytc1I9D!?NW94sd4ay-eVw?1wwbLcus)n z;76IzegJSb*RGLI?rU7Sg8bo9b46R-CR$ z*kr}KBG%pC*RGmXG-(os=eOCjmg;N<2G}S@fd~c>AzAW?GUHsjaADzvi*#)5Wf#ZO zX+Ke!_C)QqpTfRCMYO>N8wjP-6T!pt`}v>i;7xckM3_Nzpa96tyPw^Ni=Shnufz22SB5TKuwmFG$YAO!%6{w@%>Kpv(pqYF50U8WBK%&VkZlg536*n%Kzco{d=P6hkvKomNdw zzqGyHned#-GYYI`OMSb>gzp<^bs_2Fr0BTL%%*Fef^r%9d7GB)2WvrhN&FY(?r4sn z=zLKS$}7_}^WXpDng5^09?e=8jmAW>4myU}Du;`L5 zO`EDp*^>YN(@gsAR_$(Dk(tuJQlAolLfKT8sx7le-YT~)+gmhVrx!pI8X6SzG`3H^ z`=6~!sTJVT-~z@LB{Tq{@SK>8WijEg?kAd6&H@TZ>ix%U5=BFh;E5+v zy#fKa189|#!ClKNE=p~7QtOVA>MAR!1+w@XI z2}aDQh*m`rEe0}>E4X~q^o_>5wF{@u#DsFOmf`EooIVz{a;|&^@;=+XA45$nh%Ps>_fdnV z(9rmHw()rB7p(yxTGY|-l`ZlIH#DzHA;ZIOVzc0o5UM zfwaz`kk$30oN<*CF7PJKI8Qa0#$uZ7YdJVbxw>1Dp%3qSz|ea+->eGD<>b zgz{Wxg!obd2t1}qg>lyL6Hl=n>^~_9ETq_n33TGH9?bipDE)i}D9}MhaIQN8e118> z9JKmiy{4XC59Ob2PED7+jKX#j(_hE{ zW@s#6dky9@(Lu$f3|At-)%Cb8PXSCC)8XzC0oVm4PkBVBPBRSVI0G49x~YspJSYJQY!gIZrv0{Z(L< zGu+PY!VBDikiR%WZMYP$*ATv4pRNoH4JV;M*8wK(pxiKEp&vzWP^;yFums^*7XyBu zrhq{)&Cq*Gc*9`)E2z*2R&t!mjC92*fHV^xfL!zh%%}2&Vo{j+l9Y#!lr$7lA5bGs zD&V}#a90?Wa*aoUr3?YUAbFTUopK0G-e-rSV`@{iks;0#@%LEYo*k>lj9t5%cC>`q zg6`Ix=pwhvL)5dgn801!iC&;)Bu0ZAdFPS&iU|C3Nk(N<`RJWFkmOR>t-nZ(h9tHt zRglccV>p;*i$K4H(pgEMYo!V~yPKVSxX5JVNIYbTo1$~3EHLneTw20m>dgZ6mNaMZ z%pwX&Y_}Z#GG?aAZ1PAbT$Uhl6?IDmT$g3BjA*aGm{A&p|BK|Zo34K4o6x2gE6;fG zap}o2hx!m>Y&;PjgWIP@d>fv{kH*u)KG)-J>!)8mL%6>!3NNcnI z|I7>(M~4FN<^SlEd}i4{KYCSNJ2wSLAfO-s`oDqj=OBL%Mt9@Pf8qEJW-6Xs zKwrQM0HBHlaNPN6BNo8l(At6cAMR!!qAw%%lQ$gjXE*gxArp`Q_L+b&fWF~|i~w>g z0Jw770uaDJKp=tvuu=e|(374II}=*qq?erGgcx$z`z9zMhvFI%{|Pcv;OLYSVaGs0 zNo+`OOF#h9Rt9x`I9mdTGx?dr>3ooAO}i<(jFME^c&^IfWJ--DyaD^;);jtAr~;tD;D`31cj4JgvJ|D5qUshk{NA!z*>b*0vbB*;C67Gz8)sB@c&0ghKB|R`uln#;ZQK(_jx^#yT|2p*lkve z*<>{6by|&D)vZ*>Wm2(7DB$zB95#!|Kr^(jX0~oEFGpbyKkd(KYZaHn$V9W-3RlKt z57f_s2}kg!V)xIaerBxohAlj}t<#y<)2uY`LQ~v`ArIea|D5+v8=+dyfjqTb2!7qb zn%sLTgL-0uem9)E;sbt62OEG6DcF(;Fsa4)1kBbZy-E1kS@e8a!i4jTs$O=KgKUA| zMDT`R5@txdt@vEj#)GkbiTtyB5LiDj3HJ^A)Y_`IYfLy!>4XbTM;P3cx!RyrV0O35 z?NFP5+r{i2%iSw7K~*T9^HjC9KLl)K5mcrho7sfimYqfCS0oviVbXtsD0w11&{cFX zNz@RqLh(;hb4|-{G~*5t{D}ESm_PKKZH2Gt9 z@?1^?FC#5_X@1PbZd@Mq%o?^@{{BhtGp`)fIx4-ygv&j(S4|l%bnN3uJ@`{_OMn@E z#!aJMd(nu-=Xu`jT#|pJDRraa1#fhzOYhjTl~%csqGfz8@?uL9Jh9!u_wsDO9JsRs zQ?co7+aWUpK?934dTdx zlWgI{mC8vY4kuA(?!~Y)VaB0mrK{X$n?cd_ns~t1k=s4Mi~v>@MN*V#iniUkf*>5E z+udNZ>bB$9hdE~}FaSN-Q&3{S(448+`l56|BlOxtCa8XRxlEIka5^{$yQIxuD-P-6 z4VVaQP71v$8)Y4_JYacQo# zlctw?1JYq;KTk++%8?7?a-pXYPR!m3QFnB|@$}qc#dEQi?PPv|((*`{ahkbR_)KVF zZ)SjiJho(T!GL%yLj|~!43>PXFeTa|DD|IK@mB)W$=aF(ixZ(Lv2r4+speCQjF-XC z`?y?xB7lRdw#v{GHi*El_Tg!1$*hd88dHrI_f&W^oai#B^ke&II`%6Pt(Ffchh9_% zqBH;*u=S@jo`ymniD--a)C5k^B+w6jH1$?*5MmMK+4;wlB$q`6katQ2(* z0E1iDdR3k#1ST-!t!<|!OtuYr5=kO4Y#V2MziAQxYf>@54Z%nGkd0{}N~kY(A!Dn? zRR|qbV0MGbaW@-Nd8CJ%uTYK&LL*v4b3eojHvqnPFS#Ks=}s9hT#wuRBy^p$?UV%P zndjj!?Ln7#uZ8)r2T{+t3%o7aVDJ~MLfB9LH&zhP=(gT{9I(yEGW48h!x_0xFXPC? z%;n~hxR6gkQu4o~K(Qj6O|9uSu%yDfbj!W3wVym|-ux`cZf)pI1n()6_*}>nlaf%5 z>I9c)krr%x)}OQl%QoIWI~RVQ^G3L$vb|{k)FA+1PHU zbr)((wN!RP(CpF_@B7x1BNtsg4Cxf)F24qgLIseonxkUm9Nc~W70g&OWBpI3p7fV3 zRhD#D1CtDw`K_g)F2fmqXG?VqV_rzl7Jxr6cH3)VW}AHOGeoxx<-Y{uEyk0XS}Qk}WH?wt(h7O>?AGfkU1rM- zo4WD09u^QuDI5r`VOL%d1b`6*ft3XLt4|Za3VbbShz;T?1B&zc!~r)wq$BYrg`onf z*h4y#V0PoW#iRr1K}jizJALN50i;8v)k5kG|9SOh6a|lnnqm zACP%DF1XT3m4Sj=_Yj2cqf2>ZD4HY zeyG5W5>p!D2?kh9B_ekUP=6NqNThm8tW-Y3omWO)2&Fl*!64EBQ;m#lS-m=HdS=|Z zb;72+N#0~L7K@Z^#a`k0yDkd&L=@2$7XL;JY)Qf)`tz6iQ_@CTh))3U$*lx9J$Iu7 z5z=zi638zERVY(4JUK-|&EVV7ejd?^OFd3g)CvihjlMlA?9f;V!S z%M!qiu@3M}wMUyra<_R;fsC~#4x4UXw9bwO0xRBrt|=EQSEp@w!j0QC>EX__b+Dl| z3ysE5)`QwV#9HIn43wcGN_ziN0xlc5$IsE;ma!5%EC&xOAp+CTFOcrA2CIZK)5v1f zbprp-s%PUr!;Pq>8L6f6Zjmz=1yVNI1nem_J6+Rs@Jbr+HtG9BVdATkSPE6+Ku;Cy zy6pNI!ldLs>iA zsudNjp4QL32LGQ=Nn^n1judU(-nK7vm>Jq&AS;x#poI?u7sH`vpA17}+5c|v=3e|3%Vx=*$~-B0_u z#vD?Kdgz1>h&JHlNH0SLYL{+zde^>dCjwPiT4-O6;R(C)ui;N+4z#?$RScV**L~{; z<9!^}C&W8Je8d+FpZ0D-nfq!=Ip}t)yyEITL|BY+V3R64YMGcF@ZIPiab9TZ~ z|EzP%AuDfLzpMA|H;h#@V>Fr+O^jrN7Sj)#gTbg@=Fh+_f312MNuAN0Xknnd!N7R1 zCm%Kw+ufI%ck=mlZ_u8S8j;V%;TJOTvl!yB-~##+LqWPNc2D7}YlV-l-CLd#JB+>_ zJDG5`AOE0;?s83a;`2pEmxB-2zG|`DnmkmOY`4QiYn!wu#7T?SUpLH5aR176dD4l4 zElXU!VNJ|@f=f3fiTB6#+46*K_Ap(iK1jFEwmvbbpK5*5x$7WZtv^J!?rMHA`ys+i zbSAKuNg9)INmF}8f$n}<2!8UDK;+4ZeUZmLvBPSx$8We_3x`*2tGQXWn6B2bkDht) z_4hxqC$?Az! zq$UFvp*}fwSId=~4oF>3F$u+ejSlmc0W*CPZUPsq@ zaM=B|n0;6rl-?{OY!FUo{)M_nBSG{7^8GV>J+HSyCd;Rmp~8;hiFUdWUZ)D;x-9V7 zyXS9#_Vz9K{G0V{Bs`u#s;^te<5#!j(g=hN!bG0?hx|Kl?0qW1PFVk{cc$2f+&=vS zR=6G#Zp+V|sNa0AW%J|ZM}9IE-KMEe1DFQSOEwEM+}EF232>G}7wo)m1z;YxR!R(WiFep9>%OkniWw=fhtpFl|7Y?p6^^~Zi5^nEx;y>B^p6RPF4rNf zvT*2@!G3F+m8NO{Cmnu09BI64=$~nqNvGR&{V{zcJYM~naGzH~N!{;Gy*4`iDEo)8 z;GFQw`7=*zhDV;&gumpXFXw`ztRJQxy)x=b+fPn|B>a6awUq^WB zD?Lk5nO!hkYv`tqR^7S9DBadayx%rE&$L)qc<#Ne_ix;m%SX;oY(01`+d*X5>!x-v zDBD>zyIEcriOuVwQX|Nv<~O6+bsNTKGqxp}@^*iA52~JB(#%2h%h3pw6hFWBVW;D2 za4!7#vyN%O0%kJ8*ZuGu!ch7&A!~|+{%gqD zLV%~e`kQ9?^ciNaa0Edq06#Syu9CD#QSVmebRbm?4A@-5JuBMRXY&H22Z!gb2m_(3 zLX|u&a#|-BA@3a;_qY0EI*G_HNMv{Kb(Gf8>dpCG;yx@z(RizyKRzM3qf%-WK@}OxCYI%hUAS zi92m?$fQdiTAnCp=Y%UL0tuE76q(yivX9R@i(tP|{5lm(k=NV7mZQQ#PU{1M?^$|n zuM{3H%+0wfm2MDDW&On`p|%IT`&ao^*=(g=*R&FmZ%8;rmZuf)HldHeaG-93mDwJZ z?{Dy11xx6cXE$ciukfQj$Nna{Y=4vAA&geNQt+!@zVLlk!GFA^$0+s=T3_kKKx=uc zI&U5mpzsuxNwl*#MHN|y3FjVFSC&_*^N!YrDMCe6VQLHE?uu5J1PMbw46Z)HNNb`6 zaMV#Kz4&Tn)>P$l2$^7FJL5cF47)h?2I89H#Tywrw~~x0$Jb87Iur$D1xk@!x-(Mr z*>-EumKVptr__xi{A*G8Je#wFw-xQ0Y3Yo#AA6}4l54gS8z(W-`GqGS&3RUjA((iujm<7>=6r z*2uk9(xSgddiw(OA`Z^XAuO^MErh!XoNk=C;D>JiWP<+i(9|6iP56Q=ywvu}cy17T zziaOj*XoQ?J>#V7+kzR_u7aZ;WeoOlG+Z~HW<|~LbCrcl8FB$`!vw{NQ{bwpe`{FqR{-PUCe5=U@q#2AO$(YH7uDVsVyKf)|jLpA5~Ts{YG`V zS4!U4<$GaYwWssp{-c-V>BbD$SjU0+KF;~JR#QE(hkDhWXC>V{A0Z6}uSiCYklvh} z(m9sL@8bJ9nV!-?Zs{z`75*9anXdRxDX#d5MZ#is#|gr*-N&>WHMpmKEf^bj(33AJ zv+8*ev26;<-I`3;I4COglX3A6O%rol(vYhFg)>kr{yj@)%wKd3p} zVux^NBiYb=VP?_nE6q+m$mLxgn8#t`B!%)eYOF5_C_v0necFD$8!0-fl&2J z+PjYHAjJ$xJ5qnMuWAybLyZ$fqO$sSDYdy5w$znfUK=RCw__R3EZw^K$R#KnyOFv3=yyjl zyo#lxVxwTVL20Pnqgp-Ue&#{vr0qmkZ(rAG7ynj*P~SBZVMqj?F2b~Z6`v)t?y9J! zlvPORStjGjd#!t#?K=vm)-OGHNzMLj^F%gHBtf;5p8vk=c=M+jxw@YhxRWypXFmFD z$LyD860j%V%i`x|{7MZT`~E^nleCa6Dl%OoEa(93nnya@yPlxkdA|9u%oAxB4r??Q z{zVTY3(FeN_f!iJ?$j|xlC_CH4!^ucoHGBP7LehkOZ5#B za&ukk+Jhl2xT^l)?BiXE-ni71!o5rdGy#p^0TOLzX|QzbN!PJMU?7o<0pUSINscUB zqFH-lLli?3U@L?zKsFJSOA`2g5}_z$T*u8^txGrce0n3Ym1Q^>v8h(@V#$1(;OsACT3W4|a3Gp`IHuXw;3HT#> zcYF`XH(_@szOAFjxAFl{ZWH&zfnUY0{9r#`x2A33X*nM-1+O=sDsJLMN}WwkZswsR zEC5K8e-EL_{42V65sPtc!vNqJtfu#@__Uj@9z>bgM_7ZeC-tL- z*|V8Z&?&qs3Y23*{|rrRZZf^IMs<2#5o-$$IvQ(`uBtGRmmYU!UYV6vOVRGxuv(Xx zc4Shagt(yAY7J!*G8n_fQz57J*XwnhOgM=twAQ6|jH#TCNJ~uYNMBivfm2mUbMe5s z=@A4gW$Kj2Jtn1go}g<4aQuZ3L?Q{bBFcz&c!Wuk!6tK6JF0J}dK>I>%e&0{t_R3m zdF7hPtxQ7YMGUG=rw9U-m{6NhBmSVck5vx=Psp73u6x^9PH<|ZALum0vVf-QWsgyw z)~XB8$F&00FIq`9oMMI#ygKk@l1m*fs8NU;9~P2nLgbJ;S{5&sU=M_IexAG9A2wmXy0t2c~5OB zaGVx8PT5PsUI$=oe5azb-Z+)~=d#*~4m)Gitnz~E`;M}$F~T#?I&-s9yV-y?Sl@(L zk4E5;s>c#yJB`!T`UR-88LjW(5vFIr6EWfN5@4==gfk98SLF!dCT0WI z8+@bUx)dbImZr3B*1y(`lhfEW(;&ca)$RXDAOG#Df&V>F;n3}Z9zWShTxn|h zzw`#B)Sk!ZmHG7iE2C^e87%jg57{4Fx|ZwAx}pBb3w(3yXos}Vg=oKbC=O2y--yRg zsdU`*p;_B({pynZPw9Q zr)Hfy_=>@|41RF%Q-j|afDNG5fyU_1NJR<~kOF{y7jSW)*9T-MM(GELd$uvSWXe~} zzq>vX%H?PL;Ia{3K7g0^vG0Wb zGL69sYb1Y4mslD#xCa;8HGyn@k5VSXJ(9Ey`c z@HuuQ@}go0^%C=)^0bZ^PN&l~+v-EESD|mS7;5IY)<@B-7*ms+Nomaajs_AtJ+b}P z$J=9#%ygv^9I9FswVM393MI5hdZYQ>zQy?h#W{7DgV--gdn@u!Wwl-^^YTYnlB9t* z@Y0au)C7Htc?gxlv}sC1#n2OnkWJY=k_ZtCZ2r<)hU=*_=?6K|+upi1AzJkNA0O7| zNd59iKX$({?>(f6R7yQtCj{h<<1T#f*jKb0;lsRNdYgl0zImqP`K%pmrLB7Kn>Vj2 zfg@xc3BAw{Cj2PWp%4{~211Yid3hsC9k;!Vw*f0JPBht!>_;MLnFDHuapy1?NF^iaj23 zC7nXQ%LJ+At{hhqsS3bW%*u;+NKxHL^t)v33=>BkTraVQt7quF;CfC+n%JPDVCifzouaVmkNLlPYuJ?8pTrS{6fk<`XcJKbwB$$(Yow)N|6W2$3ztGg{C zD(VCpZ&c4sJeZi4)vCF;9;Ir^u+5dL%NGo^= zJC%BM&{=B9EE@4zUhG@^iPXTToxQc>>#z9OrSFOKQ5aF9D7b9|BoO=Iho=o10;tUr zz6Y~*{sS2#Rraurwr%IRKsyQJou2=g)Wa7echs}b|8o5V0urTEc(ka7qaQqa_odAj zKEUGYdhbjQJObZmprBsG+vXkAPTi)P{t0_QKK*G`H*j3gQ-?hC5FcT30Nw;QlsGcI z`_yO2POb*HG+^kX??Z3ty3xVW z7y0Y^7<{SXoxAphzTGz8I`lYt+?x;wfR&5^Y!Cc(waVs{ji_Mv3NfYYtK&nwd~<1F zyHJ*#sYQA&hR)G{s<0T^!%ob7uId<6$2m=x$d(zyJ=H%H@jwTYbe+WoW|su- z9GLLsbsSvMG+CL6W1-z*xj&1Jpl9pVit-rYRZSI-9!j>$D+Ayn2GNjA1fo^MHFY#} zKeUy5A>t~6jp$JRE3wzv>i1wv4wY}RqCE6{Zs@B=ol|;%pMg98#zS<&J8SO%d<)?9 z7B@eA1WX)(9l)c9pk-kuP9dF+-YP}nyB)E!rjwG+mQ|IFs@B&(XJI7J zZnW8001U(O&~R#Y&0G`q3?Gn0hG~G$!8QDHdPD*+hH=DjXR9_Z7Y!m^Z3ssBb z#hT*3gwn_phxs#Pq`=RE`*2dYQzsC@Uknrc?dAJl?);+g;nuB~a2mkv{YSX6Y$CYr zPHf9=3-1L(qw>kWy_@~-Cym$bd}?5(y?~%)-b+6-8t>Wk*r(L`OCRu2B5DF}D0>q1 z^&KxL`Nc!VhR{2EHvo;zF<4IxJRbXFo3MsH4n8;bgAYD>cjgfy-#iX> zV~M}{8RfL%QZm>b8}~5xu_4Ta?*dwh9rPOj`a_JN{KL3zJSmM(xr^pKa5fh1!g+q@ z#{RCdSq`Jz*+Vx`Z%dqsJ<6{3JD{!^<*S~Uc$gO6hj_qcZq?p@Cx z`sCKV%%**{twr>ScU(5w^Vx-lp{g%dt;)v% z2LWpk_Y>p@k3yf{YyJI$H9~sDq+H1-e#=wgs2J>JD2Ywv!BMLwWMmmZcAGD+8 zwbBuxh|%d2>~ba2z)hfM@XBd5s`$6gtX|saYxbmjg?V~#M8UIu|Fdrq!{S&mHS+;C zb;oJDe~Qe?_cjKMJTmIAetG5v>F{bi+y?x0t^_nJxCg4iI;4e+hh&^_obLSh-mi3j(b(mB zIG1qA`)XVlEQ**M2Sz7B>WxGB_3U2zpD(g~T>k1ee)jK+7wiMDDkoYE6Lse8Xnnd% zBM9FZ?N_7c-H-NV^aJgfcOAZb1w46Woqls^-HfU<)d*+x+~X@AbQP*VnU3<1Ks>Y0 z%DO>3;%CHT4uGKtTO=`~Lydv)t*P~CZwD(i}W-pJIyO7A znRuD3B9FNxuwlRA=jtP3$1|OA>jr0CLkHx6|C2XmY?;Lq%8i>y8&!6AySUAfSyt=w zxntd+xLz+Z`m!a}kx#gcNrw>qXU4(4Qsa3r;?cHBNnYyZfdJ8IrR!Qb-l<&$T&nX7 zSW`E!^u)rOz&qB9ma>|nSSDSbshprojlFbGK?6OUv`%@J2|p(N&e!8%)k(?UHDra? z*05Qp3-%x3@R-Fi2`naUT-^~JH(A0}hwi@VPO9(>!UmBgXtH)gdb@)Z)9} z5A@MRax6?u%-XbMn+C@Fe?6142Ep||K(t#IuROHNIV08aTc5&7bl}vmNbsC|Cbh_y zX^~^?$tznw^hFY~X|I^Ce*bb~1VTG~X%BHzbhrw6vY%^6#zhyw z9h}Le5=6s$e7Mov%WhL399ylPsd=K#!zERXMDySNBfOs8v?tG$>y2~ib-yUe5hx;a zWukKg>LcvyVkIPt(oz=fb0?WKVafjv)S zf%YB^v|%Ztb$1c({3o>oeNh(SyRwt&WbG!z?lB&hixT3cEGjeuK0hnu)$t&dZ_e{> z7s@gV9EkDJg5LaJgdN29u*=w(mDW0ZdemV}+ua^gmZY0b#A#z+!4(aTqzcxE7E-}j zt}A~H_f-Fy41yiZB}II?T&Ykn8|(ucK0#bD%;xa|1QwQONOiO7g&=!q)|2q-5!VwK?{P!M={jF)uQh40aUp04w?+aki_Iis zznP%ZY{4+B$kUUjcFZ-}p9GSSc-;nPur!is2g zTPjDkh+?$VG&+{a;>Fr_cgHpH1nKXa)ALNKqFOTzt>ziaaYiK4W2FHe88<#Ut@8(Ug+nC%$+kt1qzU>+L;Dg1(u)z1a7HD z+JW>WiTd&``-LTBgBE;qqvC10)#gM^Y;p@_R)29i!U0!h`h8XG(dZ6-r~+c~a|WWf zrjF&ep{S_SJ8o2N2BURWDp|`|_;awXQ#ADI8$dOp=?m|^oA7Nl%IjPPZ@>}Wq=eYi zM}J3l1oDJ849hG70{&m2M6|W$scJ-yrYM5$1XW}^OP#-G+D&#l_n&lgd@zQ`^Lis3 zKk__Fv|CYWQThH*I$_rrWEXe^n*LhLmdw$GVwEEn+fA&dT++e#p-#75ax7Fa4g?)& zSuPhI`KRa@h-lOMG@8+_P05|OQLRM@#Hb1FO4|{$XrZz`3A^x^e+gkxQ^WohA1vx@ zJW*}Nj9##(+;_0?$-1-p;kZ^zXl;zDG{$4?4YLdj}^0H4FrykecigjbX zkdn?J;g9WHT+!%Ad}@a$jWiGh=D!Xf8Zxg`%6hgde^q|-x}sV4m&#&MS-Z9`fgDFY zs)q1;i(BuEeJkEZt;+8A2f8%`!+@JdG~mF`e;Ou7OWwbNLy6Hkov+_Cl$_&YuiNw2WW-z8Un1^hwNg%q!_J zE#YLLo7$Ag7RQh8Eark{x>4(n9T$U~+m7H`sl6}0hlP6-)o~Od7LA-v0-O^z7;yBu zKUnQKyv_ZmqAi>0PLFPm&Ph13=5%~$EM(*BZE2-aO^z?lg`#1N=9$ z2eq{iFLIcMD2ir6>U!dIBix`>(W!Xx)R5@6OCYiC++b6KMX#~@*g%ZcNatD*Vw3p7a#D3`H^oB-Hnm*# z5gj`pQ!FNvv6is0pwDS*uS~{$OfD>@0WJeG6xCy0Qhk^LI1tWp$8u`7MM8HN-^Fhi zYi)?gJ{-@F&K+-FCaXlXHEPMuz6AZQ!IkYAgiX@WSUStzAbo3a(43{dKqO>hcXkF< zcw8_M)?1cqcMf%F9y`E(C{PG2IFkEzdSrXRw;)r!FMpCw2Nz!EO`aSRY^##M1O2qM z=G(%ovHMIok}Q^PkXpSt5Fj@JlJ<0w;FD4jsZ=qXV9>T`5CRg-h|})9S1=OuG3>DT zZKKO$RWSH=*Q%;hs`VxZAC9ACM^!A+9d(-0RgN<5h-u)%Y0+vmunW#8CG8>=g!Yi5 zkdaUSmb|<%l%YEI!fZBZJLUMD@xw4aMP-hv;bB__7rlQoJscf71CeA^iCCm&IeQd%$~AVo1Kd=n|I0>cgpy{@q*+KKwS2K)b8()CqjJMFs-zMkl*)10&;JWHt1wy&&6nz4qRTC7;@(zhna$@4 zs9dm1dbR;ob_{Fi&@7Z}v|1hyX~;ts;t<&~U5w22cV{|LS=&K^$3`@JuNTAQoqY#9 zUH*h4ow35M<5Rjig9@mal8l0x$=8!U9FkVwd{kHc_=ZSH- z>*{#uvV3#CZ--cxUSOw~q>e4HzlGSr#CDhzMeykt1OJGMjXi}OJ(;UeP@255DyjPm zf?Hgrpv{F5Ob0)#N{F3L&qy}99_X=PHWYIk(s6wjCEhq>`%_pRA^yfJg%9q}^vX+J ziS)7rM#Ll^twW*SZPR|s<+%tJU+{Hki9vyBI%;6pT`A=-4vo#IE| zmNd~Fp){@ki*$k>Z!icPPFro5G)U|JX}O|GxGSug-&82PuBv!y-mXGvBCfkWl}m8n zRYc%!_xP)>;uOv|I5FLz`Sd2G_Rgu(08~(dz{soBS`wSRxkD0}Ok1J+WGvvt#GmT6 z3!O|32VjW(xw^_}LhFdOV-ZrJ<4v$uD~uk1NKRhx~2+7k#!U_2L;jg@(X24)2Pwuw=j_QC3ZRD32-*B>t) zmd>+DY~prW@lRNj+00T2M{@O?fMwqxLUd#_jt?5oW>P#G!HI7VM+bnZ1m0z4XZ~Yp za#N~_!=P#HVzWX;Hhf{{_)fligaJHut!|2jB8|51w6 z1v7+D2ZsDsjneH7vDmSi%{ES46(5M9BhQs`l!U#5&a9>K`S?A~S!f;+dw56w_t#T( zx%AL$t(TC2&n`#>6}1x5BjxhIfG;26*nBoQn-H?9&GsRYsX#`}#Ljh;is4XBvof<- za#sNYO&S4J!V$6ecFM~je>)krIqDWYf$w^w%~p}JQOTG`4wPr-Yo`0Z`0_Zz%Y43s zW3-s`^l=I!1%NDNlj^;j9q4;|~RW3kAajB-QIB`_oOO z${HRyQ}Vi9SM|x~t|^{Wi;OOtz;qcQl=|*5S7vs<$h)BjC7%^ zSSf8s;n{W2@f3WV75=Tl;joAI9*`OIdL^sb&aI$YFEpKdO#)8-F=|v=JywE0)yGhX zOvy@!byYpL06jB{f+yLIn!Y^y9Gdv9rKpG-v#C4G~q3!=LEl z@+{rdHjNKih|pYX_T6J2-)#$0!AUFnMg1MWECwJp72Mz5PV~v!GL8zU5q#g0-P(gv zW@WOi)ZJN16mt=Wwo?4HbAbpk+aXbv3VuFG(Pbq(EC&pAoH6~ciI_87>+tGc@4!r6 z!h!AD*Jht$|8w!ncIbc6*uAuse|2uYF51^4+{Hct;HqMq8?1c3oci^aQqu8zo92jP zR7oSf%|3Ut(PB1++GY=s0I`S3j4%vMw>{U2We4TxNB{42CEA=Jr99UrSBBj7w8I-1 zZfKO)j#F5}NtxMf-`Ljy!HEJkoyH9%N-Q^BLT^v$u&3Sd951&`*&$g@61jdf0?`wm zS?D|IV*id1^tVrFw3|n(2-kRwCo>itaCJuRHYXt8D`PK0C-~X9T&FXfZRWT3)|gG7OZ|V9@U7+62dI;|p3CDE>m;Pzt(imew;zq3uts-CLlZp< z;s&*fGMO!8whO$7JBcFj-!HF`y1aI?UK5XFu{+_2UiF`0tDa}cpu3Sr13!VW1_D64 z97wa=~nD6VRxKS|>mf)S=+v-Msy z4uLhs()zo70>^Kj7oSvBxv^CBqrr+ z8f9!}p81TP=K{N*X9PR_nw-hAo(;$|iXF<6&#vV;&9>%YvF1Fp89mQq>~@}&tc8wj zPILCFKi}_-2_?HjAS3pCJybIGq4KLJdMG#gPx8p8xZppigPd*N{Hq1_`!~DspV=FK zatD{6MTA)R8081uHdbPDjCG#R=K*oMi(H_)%2h1dX27oGDP!Jsn~2K}`~)8e(x!5J z3oCoOImCN@=i(Dy@kjTwKYe@$TX*QmSqgdlU#)Zgg?=Ca82kLMKTlp@*fH+!-P{uZ zz$<_1p9X+m0jC65`#+t>8XxW^2nz-gfCLHvAb{@3T`xcwiQa(vf(eqF^p%T!Vvvk% zHsOoBb;Q|vvD(ufeV*Lv@y6r+J|bSL)&1VopHqDexyGSf--CgB8%yg(@01_VTzc8+ z1@yVeRrUC=RF5aBiW+>k8(e93nb>L^ts+;i@JD-86hFaZ?P<@o3%u192-b6bQlDk1 z44HaPKCJU8X>nBi{uK2xf9LD8)MHeXf6!N7MO;>$!&c9ieRnDI>naD^o!)3S_@H0w zuX+c+)TFTXX}I-RY8U?*+hbpM#+Ui>xUF3s!z~w&x4y{b>*7WVz_kZN12CY%y^aIT z0Y6{{T!0nu02M$HPy;jp4!53-UqA*Afc3W^0YD$7O_(AD6h;|00Q#HZ1c@L3qUkFz z5KaQ{P@a)H1S*~2Q0QsaVaTO1hl3~m)s%fTs(;QrMni#V&@ zUTi6#P+}oK8srg;axm6DrHxV0gryFy+WH8y zIu=5YB=PZK6k?;&glcPpPM`&`OBf<~vPzQVJw*?zoVbnAt4HqP&NxHsXbtX>ft5u6 z7KFa71KHbeCbC2!yf_HWLV~mM0|Q0;({uPHDBe+zXSASEaF4afo^dDA)hXZEz;`q? z%ij978kV&ZEY*3;l><|uHO68bLm5Y3&ZEnNqRrxHQeU0OEmfj)Cut~SUlEZ;9+n|x zVJ%YX>yh|S#Qu3ifg%jX5qJ^4i$U_-v&D4>IIaSAuCSaqOe?~$g3xX9X?C!vC=_!Z zvZ;`aI9&ywgAU^S71B;@K@za(wBdr_aY9;gB}g20p5`VJjSWHS>o{PlNmRmc?BAkuaV9; z0=zTt)PKOBHuGXrn{lzZ*VwD&7mHiIE?)H3-qX0%l^VFS>NbuUR;?D#^RvZ6zAsK~ z7O#3|y}kF7O(fIj_G3D$^ws^W&d_@qNX9XKz@+?SamnY!liu8W8eN^Kfu5DOQO2s< z6!Jvccz98A<`cTc6A#9uc~8g4`G;E;X8qOq>X=})c=ahw_hmvZee#@3F2T4v1miX? zJm?C;GtzsR(n*guERIDsgaJmw@m6Xeq5xk$x+;+N}< L2Mo<4>i_@%>`}3# literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c1d46ffe082af3c3d0427fd4ec4f8e32f9c54428 GIT binary patch literal 4348 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≪HK)Jkk15%m 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 bvI<7D559Yq23nvUqHV>OR3D*u761SMWPP$Q literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b0c0d0cb9890073fbd701ce5b1edac4ee72d4977 GIT binary patch literal 14340 zcmV+fIQz$UPew8T0RR9105}8y761SM0CCg+05^>Q0RR9100000000000000000000 z0000Qg9jU%LL7o*KS)+VQi3T4U_Vn-K~#ZGCoTYiN(g~|37-Zpeh~}`z+Ac_3xXm5 zFuq6uHUcCAgg^u!1&LM%APj|08}Vxuva`o0$a2k!R{Lk3$wMU+P+yT)*203HNsY-rW|tj(m}b724bnmv7ND~ z#77Yw#cFXL_zdUF;nin3?2p%9y9XXDPyZkIY_Lz0YgiuSFhY{qpXcZH=iV24?`_SZ z-KZELITQ!Vz``o5Lj9R+%#0sK{R+kZG3!TRCSv3G#MoH9AHLIiGf~Ag&qzu;{bstS#(itQ+gJtZ~T9A<)4`h&?b{C@FAp|lpwMeLDuKJI!eJ-UWLCZ zU_Mq=rUcbmmDSZt#@wBSN0RSfkwVhIia>Mt7Z!!V@Pv-I$1iQKcP2ci@{9tj*;3!G zG2#10T3tx`I4L@=GqdTMr=VPhAb@#=Jn(S?Rm$`KSJijL!v!Qz?GWPkA!Vm23JzWB zu+eGt*DYJ7Y#E7*`ta~X2$Et!G}UN*mqto*5z_>^9O_s7(v-gTF3I*URX?qisSR6c z!6DA?SwX2xT zqI>Aad?QloMlvOnQo&@Yr4eA3R2(+$*a*yW|56WGvu+ZR_NP*7zX)R*Lx3?1A&aci z=l+?1fB*$#iVdo(f`J5;`FId$Ko1Da5DNrkz-k~v6+q8ql3`uZ3V_pC37*FKMeGTXSSoWE6^QeIknDcDg&`l9;sJ%&Bydz`

yOX{{yGy^j*+sj* ze1E$KeXuP=f5Lc*K3g9#L^;uDJk^?R_s&W?x;wUX8hqe8eC95_-yc9B%@RZ!K_i8c zqR9G)J{pXMq7dDX4*`VmeG~{Ff%=_sjd4AvGnZ#otWC%ZIiXU_${v)m+|1 z$jF!@WB@QX*t-VwU}5ZQapubv|$21OS2&dw#!of}&85A$Om*KZH~O zbc+C3nod_wjcWQ`Jf?_6lR-Eb>K#$~n@$oQJ}Fl!Jr42z7a!~zV2I=d@tViJ3#jB@ z{HAs7)K%Bds@qGl$|b2kNtHC~E)=q)0`wpO{9Z8Vd#S;6 zF=0}Ob{L3pHKFmK8rO@#9i)FZ1*xc-6`D&(PQs%|9t=QiY2Mtaf~Anl5aCi7@@fK= z2pg$H2mDXMz5xa=LW<3l+d5# z?k53M22x0pJ;kItSV0p=_a{uP8&n9cMCy?wZq#b|?Kh;1v zM-m)TR{L3pIbuqe?&t=YFPa`5n)5Bp77KTkLgz399Hn`{k?Tu@BVd8w2XvSSncInp zcSV;O%!6TtT>v$pNd2+z6fr6L5^e{A(SAQ36955!qHlx1slFN7VWC(oYLBiICWPUI zT?nuc!)H3%4FKVG8uQDbebX?~*M&2&DFTup0T2M9FxP>QfrxP)ECZea6KWWMp4B*J zWQuwAI~8N#{DtT_Vh8;I{6Z0uvFuqZ+!*guuSwXX(eRc|#v^ZD=z%Cn{7pQmd%*I> z_!;peqK1oG9w1BebIx9q^XG6QKYiP4L+R)^`(EG6`@e3e#6ly?k8{5v#>$XIb8akX za^4+LFaflamHgbx6yp0)h)lR(+xRYO2SJhN2Jh$jK{ zeE87C0|@|PD7&Gku)G2``3l+fQo=zyHfSOuAuH*+*q65}n#Cca@|K^EpOGUNS%~g9 z7dxl&e^L98R+xrKf)dY6OF?8YEY?DpMIFq_1vC2?N)IDg1Riih?Gyh9-i5c}O?dr@ zzY6cbTkr&2CZ&>HMJOVZ%8Q8%7B==1r=l#1$f<%qR+CQ$XnrJrqf@K#WJ)2MQN9Xeo`St^;IY`T$M?R5tSb$T3x(h)W&I>2k+>! z=S5%Dv7jV-_Il|S)g~R|YTUVeH$dJML%la9I|GL9!te_K?9HuCu%>5$fP+8psH1$9 zkn)^_AM1>G)%<(6_z!cwOSpfMBx!~YK>_MY_XN=RW)Ja%S&?REuV(>6wtfdIR*m*T z09bC(5CxbuI2B-lZUO-0vaScff`A|l0)UbbKsvnt*Qv*Sp5R*Y3=s*@0J8%Mg<04C{arH@YW z2c#yMkp;k!gts2c-;B$v4_;%sQ`TUyqe4%oSKZ62!Ib59k$^TTXJt$J!4h$Ae=>KNyDdNRtH9_ajATmI9C2xP0`%OJu({pb zDd=0r|L2=mSMcco{1uh1ydABHm?Nf$Hq75|cHiUPKzOkN0+1+sHq9!r45~i3wY_?j zO0{c%k1&2ro0Pcf3}pXNCv5H2Lq20k%Kk-;`0;SAO)mP?#<<6)aChH_5ZrdzVTDf| zwBt0^OPjuLubu9cw%X@_er1I(bhYDghq$e>>Art)(OMh*>{rL)Pc6GWTw%#p*U?7X zZ~N=HEbQopmF_Jrr!kb(kTEj?T~qtp`Gs9Bxf6SM-)`$|^|gk&5*eUFvb=Qi#KQdC z?9BAkK-VYIljdRkejPIx7s3q~Emor>K*llqyl)*H5P z5T?$rj6KauU0+Fyh7fB1bM2q={%Ipr>l)~X#tX&P71nU;WeBX(M(A;NZVJ85g7n3J z^c%1&6ELRbtpskQvNMUE?^$+!na8N}jD};&(yyD9e8g=R;pw$0Uar*JV4ajVpb-w| z*PIDvH3Gdh@H>@dFoV^M^NjQ9+qX|DK<7kIhC3&sZ56GtQPnfyl{2GlsU`1oEilT} zvR!Eh5B&96S^KF>kUv z2Zbn@SIc=O6u}p66oSP34Yi0?7YUO@uQMb<@})vPM0|0>v>Px&b!lc{LQwAQ(TsFc zZraVUgzZkWO~2|T|0f_I{1H<^DWQO~v45#()%Ba~grD7z0*g=>cP$KaD{<$&dC(2h z{Sk#8{)+P&6`-jnQothDOHMjQ|6d>8^V34tbpH~e1Ul+*;=xtNUyWBn`e&)P7u zK4B8>8}@0-7JXJ@)N#rtY;Zcj@NS5!4Xyzgd1JR$LFH;_C@Qr#s-m2@$8L_)gFA&V1WfW0HjR1ZMI##D;{M|}m*gI4M%`$r z>y6HL`5k+<(kib)(J($0SqqPi@W^xrpEI*YBXDO6$70?4s~ieCsECP>_v$h>K>Kxo z>s}FaH=38?oo8aH=LblLu}R`IKafjh0yh`AtTZ7QeXB9F%+PsN?SBYP*4bd2>7_KUq5ZF#N7 zP9t~36IWe+r~yrh1v7_Ifntn;f6*Wa^(iAT5;L9q_W|nd8`pUTezLKs)`6 zugsvMeWqsXlX{0dVy8`HhQ{M(m}{C5mV<*dOS-Almv!z2%T-Yc+r3iL*-}Mq>gOPu z2s^;rg}`sZ{E!kD!`4{64~xexEl-+)0RvCn2U~o5JOLAevE9rQf^?rBBDQ@kg9koD z6HS?kUJAi?1-qd|aG^DpWdfTLT-9K($-}#%Fnxa#%wX#==)*2@USV?0A1W#g40(lhGrtxz zHmYU1#Dm4_tM|JBQD-GaY`6WfG8PKv(M8-mocXfTZRSe3=CfujjY~vJ+pL>^!EaM1(#T!U?> zkoJ|2V}-8B^nq=imm2=cKz_RRBm`3vBd?-uN1}>qJ}z^94TRqBScbxxCk%gAb8YgeP%XEt2*|3SnFHj35xADz{_H;S1B8YW(T0ad)-;PY)gzx z6x189ozw92+F*_%orM@z@d@9lS_n|o*-_w%@V9({ouLvWQulQsW4p)a5n8Ii%?6jQ zy-+U>^h&nfv!WE(h?ddRkBfshfGf@=7sb48eJJqRt+cfC6Z9&l5H_D!0WKsPEU|tS z4uqYEI_EBUTJnP4pRx*RKK;M+Bm;53&FvcjzZ_YHKjnGhglyZ%R=6YIt1s0H`GhP* z|Em}Y4Y#$qXSxj=GU9visXMRrJ_VM3`&PK#UelWh(OIV9T6l|eMwPlVj&PBdS;C92 z=BE~S*@XLNbK&!xH^LQ_*NSVOeK>!qs1SlMlBiwxptW3+#;FQrXtwjJ3)Q+>O3zlk z36$Z-qed2ti}`m6${Ogi{un4r6C_?U$I8KT2>bQRoiTLAIG?9(_HRdbd1PA)N;B^9 zTgyXL#tOf)sVaunFXYTJz`q#2?X}dsmwt5`xRN#Q5J)(MXCw=XhN-Z3K5q%}AD|Uw zxxTcgw#nuud5bT-dY$i{^j#coAuXBX@ zTp~dNuS+f!lfbu=%fu##iQUV^xxF{E0t90)-STCLHIiroTBU?X`{{E4)xB?G2Ed$z z_T9Z<$xl#D^0G8HU3NfexcDJT$r^ z2Lu-}ZkHJ{0GWWfrKN+wx6dF9YR#{{3NKrD{cQ+Mt-kRFvi$FBZ^@yl1)qeM{mB3* z3`u19;+`;qoiyu%1dEBR1ikO}B10HBY9y)Z8EV)Oj+(OD1C(pAvH;-9nM4RTEf^IQ zT6<0wj#_>7&iL5z?}w3LcmUdG@-+pxq}%nnlER1*x}{~FA8mk4-(dg&N`Truq*Oc- zRfc2W9h#|E%-By*s7p8aW!&d#iaHj&0d>HM;b$gn~_64oNNgTY?JR)%4OWr{Mr`rgsKbFBlfSiS$G}dD8rGz)`Qcr5Xf4D?!?3x0 zz^ZId@a=gme+j-mr?2|E`^A-rylA(yaLMJOBd;{q>NK`$KOr_ z#r4kJj|{_MH;^F8Tz&PP{2U+$J@7Z12=$K$)up#r6Vm$FJOZdUUcQRy<>Z|N@{nF0(w#-#z)Z~SN*S6lz-j=hT(qLL!L$Bff6d>zgVk`}X);?bL&z|+a);k$<^~l|r zwp+2f+uG5~cV9QoP4T|fiwg8@yNn#Qa!;9>`^-*V>Oej8-!RR%ZeKXksMj27bS&(; zK5dxUb;Gr|S+&M+xY4#qzmZaMd;KGC-FEn`AAS3eeec`TE%DaFZ-qLKo)FsXDnH(1 zC?)>M8^dppy!{St`XT(I`0l^tjOEXdFU2HX1HRdg2#Rv!AW=Xw*y++H7n$8mylUt4 z1a<4xmVpbcj+=)6ylK;LMdG6$B-G$A(A4ABaAqg9LPDbxJ9U%>#gtIy#J8y2Ji9}; zkE`mwO`$oYQP$5+sLm4uW%S_7fZ84b6MhILsz$j_2M@2dm>o+^o_XGb!a*H8z<;o2 zZn?>6Tx|~?<=(iuC#@a7zufEPN_7Lx!if~gPx!Q>sm(!dlKJ?JKKub)b4t%8+4SDV zhePGFgP)%}c$Zk)x6$f7Kz}6ES$gv2c(jnVus~_7aWkaOvg6aro6F~i+Xq-O%R(!y zE}$y%8do{EG#i_J%^tUN#$R2vKciw_UbQb#o0!pGe`Dg<#g3lPrH;vCEA8LyaDDRF zg^p0@Vjio!vNxlhaA1(Xm)|T4@umLa1H&@filKIgYTTMJpZULFG8*M?$2Im@-Fq^~ zS9xjr+|81{)@h>NNL!wN?dk(!ykWj6t$1L!hI>l&z{|<6JiVP0|IrteYH6p3AxW=C zUV*u<3ZiQc;kmN3x*eERceIlH*lc~~r>$Ah7gio6+(i-;qhEGW-OsJ(mh#f%Z1z=q zY^#HLr>pbghGAl%Raa9wjCyyF-i7l#@6cP$&FZ&j($B+lk$2!N`zGV2Hb zmGXCV+trSTFPTp+ID&N*GaKT^#NQQJqN2mA{LG^(#Zw_ob7hh-?U#W;`{gy^e}{As zo|@Y@wy}i#>MMr{Z=7fm4$al;_TF@C-~^{$-O*OBPOKz+ISPweeiMgBugzubOD#W` zIT|HqcANR!3PJ9%TcxQiK}pFSz&G0vL6r^n?mr!W<;EOn+427!y=wKsnAz?5EBo=vFjU>D=^k6$Bp{Pq@Xj}4y+Msaj-Nen+ALTXarx;qz45O(;j(kO1 zTk0A_{7Lu$J+qK1n?HJcKDJ%tPZbg5_>%kjX2?qmU%U4NUuc@C(rLr?LKFYEtyb99 z_7lNu?aZK*w~Hy%Y60PRdcn_$lc|)l4hfA)tS1PHD)LcfdnnNA>}un*>)X@nG0tPX z^LI4*MC+o1-xxN}Y5zTXXx$ul`R31t^t5C3u`A36UaRN4*1nVd%omBl9Np6;>lB-`ZxnE=hm61nioa93r2wI7m zT&;`_014h5OUwtB%Yaq6;Y{>_R+f)$<$0-DDLLwo04rrieb{VCE>4vh^=bP^a&e~2 zsLyJaP; z9MDYgpm|4WFx6m|S}er^APKfPo;j=wfIdU}I84k`GH*K+da5HLv(0zhUd2a@{rs?FRY4HQ>m$tE_$Uxmt3< zl_XiVO?=-jm$SE+$jJ_}N&(7jD_x|W_DG~ws-^SosHRn?S8hxcpV9=;jEZLO4sICjlqK8 zoMMrKOQsUHB~G_&NnM(_bX_kiX{DH7;y5Rm?bZz@dM3CFf`^uL>Qt>9V{J!rCRM!+ z?=|F@#;Qw`S;pgtFe02N#*(nM#Z2791S*?#ixdpv=GX3%t4vLI$GTg$`eQwv*BdIA z)aP~U4f@q}pZeF9$n1dURdqh43w;P2F1@&(WrEWYVo?}EBYnGJ(1#YBI>9yfxg{*e z%DC@a5(jNpERHd5fcp+9usudz|o#nppFRj*3-a-Xh?fX;~rb)`b zrG>loA*<)7j7>}cv`M}pkQLDwp-UTn(W5P$_W%NZ7ltYYP{Dc2)as%0Qmp}6EFUbD zDpZ{vwf8xt9wLQLtv}gPyqmiS$s(o@r_C=(9Dht%1b~nVGrzezq(x#&rJBY~U3J_H zzD^~{G^cN3zRtW`#!zTejgUk)iCl35xcY7wDXT?DH3 zM15h|%(dEWHxh=<$z+9;G=N=&yrQo6>rZ)&CimrnpfNB|>9pG;l?q4)(bpt-+KCQa z?!yRm2F*)#O1|I4d1qMbc^sk!+}%AAafEgtI=etx?j@54#Md92wc z!5N}Eb?>yiQ-Gf$)Ql%7O`Xlnc3`lqlT5+>1hW@MWJr)nFq%R{jR@H(4G=av!M93b zQYGJ`F+|ablH?{QAvGrxmcJ;U{d74HJAx$h^)((P!yWH{p#QA zVM{cMjN^WB@6(vfP!Sz0s+Ta48((`_q-6*c#Wl6IQyAVVB-bqA3=kBmYvywXws~%; z4JCrf4$mOes}Vl4eOT7OyiOAAHVBhMb>Q!NZQvp~Ou~_rWS6u`L{d9x@K21yg}i{9 z+Y_u7Z_kLb7UFaqjiL+~rAnT&*i`Ted`Y6X9EKi+Ih zVZbK|wv<)m-4H7eWC{cT`Kkh=q@a?GY}$g5JW5Gj*u+uOva4Dq8`y!m9X~^INgw(WdCn{GS}?EB zp;4>!XBNYFYyx|j-Nx=?pK>xfjSHiL(Z~5aB3Wo+F32RAC%boy?$|4r<(=}Pd|Y0T z_hhS#DiNHm$`w;J!E)FF2jOvepITR2>Jjyyx}#cDP%}unF4EOngmfWxq!*de2lbjh zqp#}g`m%nY+cY2BSe&7n8q*xBjdjNk#m<{!<`%PM9x~6G8|I1WvSeJcEwa_NA+9sd z92blmkK1QY*$sQiK4CA|d)8~i{lyjuB?d{V#4f3njFHTgydiN*)=IWZc1w;*{w}&+ z^th7qmuI%=+3Bd*9&+f@&pxEW$TRmY9H$kpnPj|)`#0;HlC8UyUD+9;*e)MYfg{GK5<|Fk)HjY?2N2EK|fNy}5KM@K<|%Y{Z)c{g_3M_o+R*WU(bzi*{Zv)S$_ z$&?0sPW*hJu~OPTx|s{sT07P#w1vi4Kh{362c3F$Y(vyh_i~OIV?#eZ+=o|{CPTMc zSl9&iK9$D-%LCKys#k)~{u6~;l9*ol92Lu!0to5|9Lxtcgt}oG>|J~TN5VyMifp@M z2RB!P9XthMG+C$9OMHt?_)_t6oW~Orio|o6;1BBQVhwhPw(CO4|@48A|Y&WLeTp zlVYWpie+6Yf$*QTqrrC~~P3h15lIYE9I#qM+(EsDd`W&=@KK|UY(I)OE(6t$@)&U!5!6f zjA@#1V|l^rbzpm4#t)-Y(L-w^p)kge$IrIx$31cGx{Trx4g_iI^Xjrc{q*Y0@2`-N zYHC^~!Fjyy?#nz}qMDpk89%2)>UawOts!o8b^Qf_JFRpW{2&4n>qwrDMtQfO-K{rm z*lCt{R6L28qR~!CDVE;V&~v7>7Zo5Zn2{Zy(y{9T3t7RXYPQZDr? zJCDZv=eW}~I`bmwHqk-`{`xX$1)O=4+}2@U!7+v7{0Fs5zUv5i0KBk_milfiU`@ zji$iiFNZV54R!R288#sR`2zoImsKj*TwKF}91}FAN?m@SJex#J;O0n$jS52BQ+ctFQi7 zs^HyV)sqEu?URJYJh<_$N+t_(lOid>&qCMC& z$?(q2=kFsVSd2ys*aKTW@H{_&n2P&>01y4oX#Jyczv)bZvEk@fE9%y6gSub&%tN7Ahpm1)Ot2^Tzo_x_HrUhqkf4RvRzV|E{^_ zKkUZwe!-E*&YduA%&&!RlFC@D5<6`#_35YUb+CDrci;W+9z4#E_>qAliyU` zGtubJKlchw>f=l_^;DaT7%-=?nQo`tmUIsBjwHiZ2(z*ZGsC^J^}_z%&9@oV;>gSs zZ$LQ1sSU~brQ%!ZemsE#QKt;+tp`hzHxA#Q-b7G`&i9^zESKb#UGe{=OH)%y<7t1K z!6Yk5dJNH!-wZkg7uu3@ca^GL3E$xxfjv_HksHH{A(1sT@>6jd!uQ$eHeN zsEi*<4wNtdK}*8EN;UqzM5X*w?Zv;?{7@}4Dhe&Kad~-uf2VJHxJSyBZ1*FDNF-L& zw2Lj6B&0Dyl44)TYBYX%A1zblbN1BS%a0^~o9vojok>yQga9zQ#7{!jDS<#LRoSKt zma{xrtb*;^aUYXr8NvMLz_W72;=~H2^29NS&xMl3Y8~39Q8qTpnAWqRnqx5n*rTeEU*rpgi9(^|g+KZN-}G_4 zf{geB2N>W~%M2uamrPs81J+i8#fr7OoUHQ8C$V&xlFRq((JsYR0Kc6H3K~6gwk3uhPN_g%s{WTvA>4^~@Y}7h=fhkN?8X zKMVB~rHIBy4mlUXj@2MKK74&*jpi>M%bdw&+A+rQQ z_dhn9gC_$f)A%n$x4Nr%H_u1ASKh~ac?EBdHmx$Xj_7SpUi0Xv&j-FAm#e`FOmb69 zM3bY;pUi|97bm{&E)+i~yx{d}zpADf@mZjky*=ETdp9`im<1w@J}Wh*{R+Rok@sah ztiWa!Czn=O*;K(jD0Xoj+blkdrNh_kOVVN)dl|t($9u_BL%q3eY`$N9=Uzv%<{&#ePg94RF zud584(&?g6ze#Df7)+@?U=RGoY=5Im`@B!cpVoQHH}7atiXV%iWjUq zvir$c=Elo7E;{e?2emqsFxKQS5kZoJKrX%4@L_SMb7(|j_9vn=$35@{LS)FLS12)X zUSP2?I`Ep5rfs`r-?}v+r?<25uO>I)fZH2Rc6W=C>}3J<4Is$H^o88y2qj&5l8Zws z6oG)hvo#(eL!lhnQ-Gr=i3z$K&C!WSDY@q&GgzpPi#sEBp_UTyQ!*T%_jO02oe%xF zEJH^5YN<|M3_eM%!m{!mwh^hy70sFtE^dG1k_}nC7k@_&wmWY{4I8%hAc(v?2y+!|B`?&@p%s$BP+ z77!w{?V>js@es4l`!G}(t8Ta6%MV@0)GyyntY93aNwhsUzE&=sF=P9;TW+~wg(yzJ zt0cAH#T~@(v6^QdVg+aa?-0u+w1;4uJh|jZgMK_l2&3O>5HX;@?T80(i?hsNEF%#D zA>sVwyWo*ut%Tz#VkW0b&~p&NvKjfp$Ol8sVr~M83DdeA=@MfDNH{^;M&u`w&3B{d zfaG0}8Z^jwV;7v@H>s}^o>u4~!^3uxa_ZsM9oIT?i+_aXA#~qC>}z1woaca3^`hW zAb%rY-Gl%RsOxybnT#Zr1ff*($&=be;ze-bLO}oDj-J^7mt}~C&ar@EBvK#heFaQek@Sw2ve1eHOH}t_cskNf&~XhC1uVO` z5s7#`f=%TXEA`%VR{b3W$VS{*I$*L$QH4<((PKUBhB$bSMnFoVzK^5$r>>MM=J+5h zI-a8P2!U~K01`Ynu+D9P%!0pQW2CH=B>eyOMDbP;$spY(iH3Bh!F-l6TMRu@;1H2! z9Eu&0k<@++_UM-BE$YThHs$;1lPKh(2qctp_V--8-J`Ig{)aTTK$dr5)$#c243jILiSaY6s%xmOZg%IN zsEeET>kTHyKd`0uF^+na>fRw%)DBphXZRuKF`d8hJ`nyEh`a;{F9RYI0g*!DGgjx< zxbuH_Ie+C}uL&?Wf1~c3aOd{C%skYJ>mkrfj>o^z;tKIxY#u2h1zUF-n}s_KXCIIo z^!+r2vay@B13Kgt`O(#Zuc93maf}?EN(j!Iw?du4@0kjV8wZSVoFUj;)(5sTyg!UZ z5P&s`(Wb+~WHN06_}%00K|=tN;syj%SpfK@40zKJQ7O?dNy*X(IT6)J#%R(giE)I| zlDy*y68TYc3<40vB+v+8VzfqrGRiaxxG1D_t(>k2Ko&-g0Vb3h3yQ!R2b=&+fb7+h z5NT>mZaz09H#Ik{A>HqVD1%C_EjKeaD>s|wuzW?!MeT%^N33mHK3a=-0e=WuA$s$* zBFw5ZJ8FemF&0|dYpw7mLabF%8MIju-K<=}rfE*NkB2=e{9> ziEXidev}U4$jKF*4uR9tMkBezWH+&1L41)_3yL9rl`1W@$&D^A>-%MI>QaxBbs9f4 zA)CU8lD&wzuC@>A#g-{kU#YzuIRxIkk0=&sFEbM1t8)4l4QD^He%et;S42aV%x%3Q zUQaezvgHYJlp`z5&lgVwA2*IFwDwdupLTO`C2qv(y%`-A^44sgX7|j(#$tAOB6O&V z0z4wKnifm-v%~^EEsmGWSaCMDwz{7M$#iCZBnk*%)W^;x?Um-g=7l$%u+FTP<#HK9 z_Ja6N*ev-?TszJfdyVoVgjc7G?4RNADqv`fFu3t>1AR38ON73~N$=cBXjVbbfQsPs z9DxZH-J=2jxGKJJ3GYb6dB#kfyQ9F>aNulMakPQGhGMH$VXe;4sGOLK2&Q6^)e=h> z%A+jj5p)?8Z5n8jdPSYAr%K{b#z9wvyHSKiIC)6Kb@~Q6e5}{*pJ6OmuQixt#H(m_ zD{wORs0_OMC2kkucs-F5L1j@qaYI46KJkHUJg3Dpx z*j4ecszWfVTiI1zfUB-L%2}EKDn)%pWRir6asee-7>Ws{I08K(|W5 zija@z;qc7NbRC&Q+|G;$dFc^y)1%3uXXR>jMtZK+OhoMwN6F%+-|;V}CMyJLqC#AH zb)q_sVH8mePZ6uesBsu029KS)+VQiCG~U_Vn-K~#ZGCoTYjHVA=!37-Zpeh~}`;3U)^3xXT~ zFzY}8HUcCAgfs*o1&LM%APj|08ycQ9c+Q}Aw*xcfre=l;woSWO&kZ;Dw5p_$fnei6 z44!tM{QqB*8!{AEfVx&ck|Bq};fjiao^VW5cYzavt7bRw>2QpgXtuY2u|rrE*3?m^ zDCijXWR{=};)HB?j$;ESd4d^tInlG7Hj@Gi-t^<*FFlo;zDI|+`UfKOQP#lZTRe-r z?bpji(_DI!o$8uee1X^mG4vN~I_0@)5g51dQFC5BBAr$BBuOJ_G)fTxk`N$3h$Ny! zFfke@ylleQzF+U2ce57|U@wj&?>ga#HzaIhya6X1j!ifQ*l1_`i*X13H$&`|41w>G+!dxY~$()Pp9m|`p^lmOLa_fui|MTDJccwEz?L3GZtjO=} zEx-USl}dUb50QW0|F7zendEb zMQ#_l{OWXyk$_kTs6>m3w%E0BY|PSemit2k zNWEX$UhhnJPURT|RQ;bAad&V;w^JOr8U&887H`aD=l`s2pM_ z$|mHZEnFG?-@j=e9=3JCJK|5ZmfQvOmr!eg1s^!zFx5nY|NqzZYyW-wTV}8zDn&=r zKvn;_36eQ^1o4ZgRHki1$D%4({NGZO&g@EVX?8m56`(6D9bFLJ`SWLYidJ6lS*K>n zHGcg?x+>}F`s91km9)~Klu{}{!FfD)ECuBS1ppR8LjdT#Kmr+T(5mU||Av|_Ur2BW z%dD2T3`T$hm!dxQaPLsfVVlrRb{VCC&wIqaJ8Nw=T32L zpX-jVadiG~=>Qb;2ZzJOKaPSAKn{rYV>GsBs@k@WXm%qxF?aEIH)k9+44Uf5p_v5L^(#UH~`dX|Z_OOT)kr}{XUv&fkfExus0BGT6i9Gjwo(!bi z)9rJClm~oPCrEkJ*xmwC5CCAht)KVoBlr1Qz2QCT= zp}`zyolvIdPFtLS|Nr~KPva8bMy&BFM!3-UV&J{3*AU1WIYX9HDdl*!XGNaOCv!e` z=SaFzo4l+|ODdAWpY(k1?+xABPxQGy(>M2?>)C4Wx-RHd-KPt%CoSLlTUArGnKs(m zTXR!4QKPi-W-K=B=okwwdZQvvMkuz&K(vG|SWy+$Pz44PR$X^izwdnG6L_nh6wzo% z=o$cGUIV~e?v(YQHh7De3nCE>!P(dwiz>@ouCXvhV|S}xBqrwB4#|R?h5A|4ITSD# zGC1iX{5n1F=LRo{j~MTdZh%tg&pQT9CH_zMzhHj}wBJ5m}>|eoTMRO-nXc4tD4uvxlsYDQPe)Z(p5!by`GSLJ*{@FCz(4Il? zrpG4B218O(!+xV;>xWa!<^Jxh^Zi@^LT9l$wmqr15;teI#5YT-GpDz<)6EM5GjH3h zBLVK+#$~bz7?BWjml@$445Yy8y?B!K=+lf{Lb)uoL1}BD+_l*13;53a&!myOFXV~k z83w>>-onL+B!w+AF_xfB>@GnQzoR!U6s_+Hh3HIm8#N&@+GpSSwovZEF3Ztk^NC?% zE4nSP9xIoCx1pg1dhLw@NI=c|YqqA?Q*ldzp_>UvCkjzdJi>dT9#iP^ah5p%F>S~~ zR>3S2`8h z5#APCT!$FdMXmW2KqigWOCmR#uO>vDpEr%!P%Fup&by5;C`9y5%6+Zh%Nkg4V+R5f z3Jx1cB@F~fvM4aeSpe!>AJ|)*mLe1Hd&@Cg*hc;R&x$Q}DFF9(D<3Mvp%<>^eWDl4 zc9WvB3(2|Rc-zb&yf*TbhUItHZnp2z*PlRbE0*+B0G(U=<%$UCN5G#unqAcq2%=Fp z-G3k-*c8AOOBG!Yiu3`@-?WDSmpwIvITt&h-Bu!i%?_&T`V!@@N-j@gb|q7ctwH|X zyo^=?@qL<=ligu${2zOhUqQBep!jT%Is3)O+0$QSdsv#uoyP*YRtPDCId?(NzrNjT zoRQ8;gvR+@UUm{%ePaK%U$^`1wf0Z_x;E7QE~f%F0GOo5zFS~=OQWZ$mrP#xBeBaG z!F8P!=o^0sY4=gi92xd8fJfP1?F9R!ZL{xSdGpt;4{!ir(qs3tkEZWy{8;~FtO9U_ z*Q@;p*!_z=(~3R@)a_KJYd*`Nc`U`QSNhuiZ9fg*M}?xjvu*Dez;JIvh-Om1n93IY zc}MNXZKm|>bG|Tr2QhtF6BS)KxlwmCxsR*_z+VFZcqdT!Fw_Ck`ATKs76+k8ImOE0z)MK^DSKG`|6RnC4>>t=aqqywd95e@;-&kt1KfC!s& zAr`NQwZ%L(*wTeJ$a?@^HrvTJ^4kby$q^_)>0tx!yU9PV=1PYyCbm z#=tNS?2rwLs7XQpytnqup4Y}270ulGnj*gM4N?X%{9L|VkCQ~}q6kIp(i5d&3CSP` zhZqj(^F|OCf@wRH^?L3B0@(y@$>)t0BUYSv30#t~uyOGBreE>}L40PX_#FAnPW-Gt z3Q<-r09d3u^XbK{s`58M{GnH2ri#jczx%t05Osg!MS=BO8|7T-US}Cs*)qOf0( z+{Fcw5_0$nq9d+Qv|Y+S*$p$Cbve^9WL&1xdHwZ-UPkETD0)X17f?zkC) zPq_4&V3buDjeMC*a)|=ah^I;JDmgF5h9!)aaZ@0Yp}{e)x4B#;18~pdd`f9kiAyQQ zr$4A7fMo(Tf-oO34tHVzkO3-M7H^Eruj4x@?;Gz1BHFlTgj~~2tJF(Y`8ow4!(-!R53IZTZ zYo-zWSV^jj8|UWYTki}D>u;5>)wns>web&DB~U8qlN~W?gIF%!Tz6h<9@lk1_*Mo@X+|+ry9F+0Or_NN(Sw~A}Wbga>oo( zNmII5nMk&BfP4xm(>uU>^%AQFXc#s%Ka~rM2UW*Xtz7;_*cvIzA(C}e;FELNNQHE= zp98s2DF!NSTEJ$9S2&=M>Cx6@M4%2e4ffx7yz zRUx({dl<|6X0PkvE|ng7=%L4Y2>Ph(jvVqSq)ZE(_RXa7);p;8IxX{~h6bAQ$`?Sb zk!p@kM&tYr+h7DsZ(r;su&HTR&jtZVT>$=2eaMv|th z0GhRu7p^-dy&G^=F}xu?=X(Z@g&eGZj$0r7^wUqj_0I|DrJsKK>8IcN-APNmdDD@8 z>vunD9O$?H@;^Oh3jk|J5&{AVG5bXfne>ot7knHrp?GTgQg2`HFZC>x=lyhWpby)- z@S#=mq-%NsFa%j}i6O$swC#;G_-0T;D|?sa-;fx9+*e z-3rzLVoQt)1sS)=T@NehtRZ)f<78ukS1+=J3^Tf^2lI9~Uk5iXG00(8D* zIzm}}-u=JLXb0|fT555Ko13p?(_%@}4zzCf0B@hnsTyK!*m+o6kV263CQCF{ccC*h zp_ad1`np`SN&eRQ7*z(CJVVT7^xKN<$!k(JYrL$%8W|NF8<|Z02Utx1AwX@ zy56$9-j9U(%+~s{UZ^i^uCEMLyq>i>6hdv5Xigpg7y#5-y<{wE+qXMv4)W*7^JVj@ z0caZ$L&M*qvtZN&9(rv-p>bCht@?Fo-^G!29?o6V|rt? zalcdq&*Rm0G_!c<(9Gdf#~qFp*-CbI_Eh$|uWOd^;W2W@qh%xWTG{@mWIK!gTKm`W ze=i?jGT!@7|39byJDG_8?*kyL8&g+jtesjqXOmj%Yk8gQ|NirPN8$rJCw3wM`JRCR zXpjCB_|Lr3Koj;Not~5A5?Rh;nZfBrx0%C6jf-<_^}xzH>vAhj#e9S(Kw!+ua_jg9ZV*E!8L_}V^);#NEsKc6OOi;V0BTleWMwHhYX*8Z97 z_XDMTW?lLPthCN2cKF75H{-DPOlh@6r|#T_J(Dy2$;a!LH#XFJ>S}8~T-M*$ySAS0 zuFejBdz;VO>S=MioXt%RyUl7bn~Vm%u2HK|tCS52xlAe+2?cx}m&0Z;83l-F@_i=U zU4DzBK7QJt+0!acQ5=KWJSxAUZ`gLnz)bxy8GCxZRr&!{ z42BSVUTy!J_fH$4TI-0B%@++w)4$d&jxr#9DT_guw*6-hc_kf=AUeWPTPDD?`U?rD zk;a`#c<}bT?@Iww&NG^hElb~Cl>$h*FT&HUBWYKvZIC|7tH6Zw=4;M~sv3c+5B$!+ zI1q#Pwazmf(Ql7GSAaTC1Yx*yBHEo}olR5UnQ+iBf>W+e-se{Jkl~}UU1=o(y-DNe zndHjPbB*LxAh!QJFJB3gzVO7St;rFHvaebMN;qMuV~eqJ?92*Ayva^)r-q&6<@ouG z&};|frVAlP603T%EE6e-G21auSu99o4DszWuvV>c0|X)8;cJ+{JMZ*phPx>@?dC{I z+7g~tUt`Pv2oNIt5SSuIGW%@gFJ|BDD@_*WpFPqHn(d4~_Yl~Yn=IU@eZztg8%K?N zOCZIz8Z+r9uP?LGsuP)X9NG?MKnz20EO^7G2vrou;Le49G#KmOz&{%YfQ^uF-})JR zTDMN`)R=Od8WT1+4KxU^3|AYW2Gs0!xgDsoVCGf3{Y>|YqHGSZdWNdD4njf4B7hB7 z3u+QFQ=TnI<(m?bU>+m z5llZh-`tBwN$?m_-%m4RHg;pR&NFM+YWv-F|1-}d z>k#D5s)DJz_P|pyGc~}GdSdk{m?6L%*J0DJm0mQW$pwCbbLj<-)R^f;gR|afq3h<6 zXDhApB}Kz{N)n|ek)Ac(LAG{QU<%wh2{E}~^G=6_8WaRfZbkFUW#<*${x~*(nN?nfmbh=ku^!xD&F8voCDn^+lp7Y?0lS(w16M$(!ENOj$K?qlX4>yEA$`yFLMC1=D0k7KF>YWR`4PQ-B3BINQvIjaCRs66}Ui z;zDZ#NYa`4tIBhqG~!br8D8}(}9*7qEk&#fxwVTC*BEKu_~GDYl>i{wh8$LLQa@hnky z$y4_<$EbQP*0P;!V<=fW66TzqH!tzov5CC|0l=Ip2f1K~?m-4N0Os^?iAM^RBMgA_ zyrUZaN&o}B_CUhb6G55dh6$;pnos;`spo~DhpAXP3)3XdJB*U6rH)J*hfCT8k4>R39$^ zP|n@}xMEFtt5DFB8N77b`=LHaJ9j$OVdk;$w4c_oMO+dyQ6J*I90ryr9R|T_tKjC- z|DEQJh?up7^u6x?KAoON>W3VhG< zl%VbP|L0T)hKpN}EdT(l1^{Sh02cwh4`4q5fL;Nhdja}(YrrKuc0)u%8K?ZV{$g0h z1j0VQb0Zua93E0g7*i`ctQUc`WWTh-4Sq~&z9l@II)c|-GQGD%eWJ=+joTht2;Q%D z`M=9Kaw$Yv)|@*&Tsg*F=E_o(#f2^x&T*c3j%vs`-^+Nzc~f$(I5q|zL}oliwq#dU zO)c{=m77mla)*vLy$#=MRhAX6nqpXE!tI@TcY-?OlRwzSC0e6u4L!(`bT2B|4(N?iDiV-nkTJY{1^RGZ#K9wU4>M$!gxR?y zd~XG5bUQ4Gq?6VDwa1L+?a)h`$dQN{s`%4DL_LRQY!;wd6_3tq=tJGVT1RN2RW;}= zJ>j#L3M(L|Y(Ud)r4<*aX)a zo<31B3YFHQsj0Cuu3J`cH7Cxl$1n*vBrgFBP-;b-f*!CyJ-?3s2P%eTVhe~Nd*k{* zp$8WMia6ks2l_F>E5DtklR!<&pdZ;|YLFmu0bD0hfy_)&@h1M>`f7NJ?Wz|i8U~r# z?PggT`|^qwRdk7L1wGjB1Q;-2a&aZUL8Xc(gD{?u)wE@*e?!DUH9D2Z_08oM4QQ0t z-#A1|dC`X;38@=v+MgtvbpKIT$z?@qnKX z+2Ck$$X^)8A_h4S&c&&7{h#U~C09P9EsMP#xng3_AhQR5GuX>eG^dom_1vNL`nKhW)kb+O5N=Nb@?Zy5wGIzt$^dy;4o!<%TbK_j-N*QX6K z^T`{J289E;Q~{k0B`*(1Ac;{SJAd*SMQ)ny9$kzQd~#_%H5Q*3$f4l>%NDg+3IQc$~WC<=PWc1L8HP zVGyf63#Y93f(4)G)1s{5i|MzIre8aHDR*^vcfq;vaoCxzswEMy(xW8J81)xq=H@YpJxIWJjt1*$aI8`g>4^hWhgx^1HJ#)vLZdDAhu zldjh7qFW|0H{+HGW3yx4ElkRwgi8r*5qXui?+<(E& z39;62BkB=8dgaZ#?|)*eGCnEw_K#ai%zkj>&|z5ahVt+Nih|ZzF;4n((On$9{K2MXL?mqZqOdnvT2ahFV^C6UdA)p?$+IH`$|j=Krrlbr zY&j-Z?^HL?MhBH=P@Y15ocBC$WDEVOuV|G2`q+-A*qZhyh0g7mC7-n5fF~+~iJovb z=*dl3uDx)dsfb@RF0po0^Gp*$G}WWbaq17%AQCJD!Xn}E43ry>+lDIMio?62*XIxx zFPceHeGEOEy50ub^slkU`qSzvVYr8=ejL6ZRosWi^~GtTll-)sgL}_OyuS02p}n-5 z{%+ijp}l7%KHoXrDPGu;B+lK=bGMQBJRgbc&f6|d66Lx279ZIlm%8Hr+30w4Ga%_j zKwf?N%eaJ&%A3u54vMYzS(nb>q?851sMW`F_RlTn*NMb+TFk;_*-PbQvHq4l zl+ad(LstMPiOC^RqJ%^}S@L>dzvywbQ%}eOnZt4D`7fILUfts$9qaWi*7m{nEBu8F zKEhe2XAkeBxyb!7T}YTYD!L!;E1~94W~I4wRzCZe&K5N_^x&(3lf!RKE^H_JEB3yA z^7zNSgQ4X>D<(a5E7E4FhgG^RjG$*1FRirnB!74bd2`J)^2Zvz-nY5Zh@JJdiHfQk zvbV&)yn5ohr$ReJ$;Gehb`4RN2SD3Hk&vyDsgVhr=O{w zT|1l6K{2a~8fzSVpl0vIzDDxFe&2cW2DHc~cG2lX|0wH4%5J29BQ`H}U<_leZC&q- zaU_==&d?{@V*KkF2j5ltuN}j@^Cjo(TcM^_x;Kjm^;M|CG|DsEa@P%iTWh^mvxeSb`Tjz`go)xHskOYQ74}GF|$YTj`2!g zMb}Hnqe+bP!|M#c6tI2a<4^P)&pac@w=F)`d!l86NOZI4G~c%RR@nqe*uq+F1gGP(eZ}(Ry2#zDr;q%+=~^ACfDySVXFFWFrR?;Pjfk_Hl%ib3PXmZ-?x5=K z$cXCR+@aPO=mLgPQ{MG^N8W!RaL(2EQoxKoZ1)}@ntmBM>(X5dm~e+}-u+WfngvkS z1$_5XRYUVJ;M3ZU`Reezk9&o$_lK8ncSJ#%K^%CX9r8wO5F z+IT*GO)ue?pZI)kOhZ835e~-uenP)3*kDbjdl-6HLUQm{(0pO*+@ogS)nNlAgn$^~ z(zV~39xv5HZMxvaAI9KvNRKn0w;bX1FXe{hA(MP*lZ~@$7q8d2O{CdYa?!cF5fLH} z=u~}W{MM~P&h9AdQq+#YhadMIpSY(Fo)Z0)2;SD8`@(PPho1jxVBkUedf#QpV+6Kv9duT;appDW3<8Uf z37TqrHsTPXK1v?5o9Eb4{=tT0+MsrU5jTAKw8t6GkMd+a^YFvw%Kd-KsaGPmfg-GdUzH24Sbrnh`pK_dqT61!?)(4 zSs0Ad%RerBIBbueTB%&q%OFN(uhgzDB zY9sfH)(|BaU)G7pF4EpDgoPb%3x2nv3*=wOC7HMHPMbbRx_Uol{%maZS6`p>9KA(Y zAe2v=QqtxhBwd9aBM`po7<LW;elmRG)DZry%~->TbN zU>D%q`IQ)>k+Zoloqof(C&$c0JL-A0T^{L7v94)_Ik?}yP(f^H!LbGQGOVzSSjIMG z@h@b{auAq=MZ#i2oPB|CAt~pmYJo5a7HaB|+s(IN#|YcL>KKE05co*K^v3Cvikf9D zrmkPpm2m+Z5J=p4EW%OW{Bj{Rr73DxgaQ8dZxvpDIwOZLl<{f&Y5X*Sd^U?IPQ{ zMw7gKKp(OMeBZE3Ue>*y_u4vcu6uv&D1l)Y&$I=7WnnylpE5?U>Z=&F{PYhNj5ABF z9Fbw95&S7LiS;lbw=LqJ@@EMP^FPlo5(W>%+&^BoEtpz!+g|G3KL*=<$bneS&_$*7 z?B?2qS~bpN$8uTy_I5YiOC(>0HYS0yhjXIKuo}RNpSN|$uA*_eqqR&4@pJoE}`Ugh_ z&J$a33?1o|vGdqfi_7=CylWrvMR$>#^kUcklX7qO6}v0!IYpzm++;e}MWcI=n;At+ zY;$I$$KpYyI9n)O zxsOV1O`BvMX4=%S-pQuM))N+D1?dr?#I=3R(UINQq+0y?^iR{qgY?lea?L(H6VqeU z?!%a0{YD&%6YHuA8&D;MWj;ns&&8iUa_J!GU}6q20wZDVg#8$J;8+v7&50Pf@iw6M zM*8cW;lCbO{C6>7ECli%tVvWRxLxw)dEu%F%Zn#qah-P;@1Coj>bw(rB*ohu+p`{+ z?b4Z`yr~&2$&9_Tv3S~ZS}vWQzhx%oX+&sZtpHuhM00JvMu2ge5YrQFBj8=H=Ek?Q zEbb4D^?GxYaN*4Gm75>PRHPq<{gbV_6V7_V`D77BjC_1!O-w5$L%<`CSKHE^i01^o z*1CXPPTw)oe6FVT*r$D+H+@SI`oK1p+df95G}V{paU|p+oGQ6D>x{g;xoTXlV(u8T zF5=s)FII*;x?}DoZgsPTK7?dgw^Xw1sgG~GClLc99|+^>aA(mG?g@p5;{;Q!xW_kc zBMW1hsFiT{!=8ta5ayl8Wn^fr-V?oERhk323%QDp*a-3!cs!vuYLpNgpcMSoJB%e% zymN9ZH_0nu6nFu_5ZNEM2rZyeO&yBYX7q`V0!C1S8PeJ z8KCPT`TSJG`O7-k+y2NU$qN9zIKl->-O)`&l+ar%kPMK!NBa5R4Nj<>;?1keS6{?KN?EpPAuGNIQv2%}^ zS?7wHTMwN%zP3t@dlgyKE)rU%CW!DA?tOTk$+?s!iV&=GR52O^RROyB(;{6?7R%)# zUCix6FrBGeHhbH2XNPQW$Iee+h;4fW9?3RaNu`lHq?y?T6k$XFt9C=+N@P_caLB%%b>BAn{9#}f#9w? z)|&4vVi>4VAUs-zf3669CL>o}F#jL3uWy+IX#$p|dvZtyr{{*a5`zy;!Vb zDXD3x6U8M><(a4|3#MotF71_ng>O`AU%+Isu++p?@&p*(|E;>tq`xaQsh}$VR)~JW ziEnr7A1)Kjtfvct2Cl%wVTv3IX!927%0?|jyuQ)Sa)a-QHR-^T=#w{Olc~NXYKyc`y5bPcD*F$)7VXq%Iq{cL@ha(zl z6*(8~-ir1PsyKhTuY(i=Q2NKrprn;nL(CzK*l4mb`lwfE_BX3~nfSIINC*x5=u)};{GOBf14tmOjB1r(x z1V{0q>#8j*(;#|11jwb!dQn7ahfXgR6F3i~SV~q-ef)SnAMe=+r3Wrf(gG@2AlFezF4t?cuAY4 z*Dg-ku#n+qgtFp24mK`wDnh~{AA*^>iW(+D!Q|H$e6BSCa1s-`3aNpiI5_0oQ-;)} zHGo25>f32TlY|s_SU=S_m#_K2h3D$NQ8GvQ4dL zW4?c$gVS;0#K}LFqh+2hF-lWs=R6{f{|PwVWl9F8PtR}ted1e^kf(3doqzs!f}*t^ z_z`C!v+XaObvo3!XLFNUemgplh7D-!>1|Hz4K1iFW5Okm+wl>G}Bj7aI<0I18VkB-`X9xq>`JJ|aKU82S)>fqqVZWZCRX z_A}S;r}_WlW$}tQLK@d_hPUH$cn&|pA7m;Yk^d;WdQ_cL|LJJ`oXO41JYYVxoxR$= zZa=U;IjOtNor_%bT$Hy2r#lx#-RvA*6)!Sb((qw3qU+gR?2qi3E~a~z_(spL#33n* z-7fj7cX#Ou8T36D|Fv8${~+PSz>1+}MXaJA@v!37fHnXn4a3w*KjoLo1IiPFp~2K3 zKUg1HJ6x*rQU$7_RWp(clIJEbNM4#;t6Htvpz2iZQ5{zOGK3Bvt#-q+;j`dX@c+VV z)N9lm)t{*ks80+>hKXT$^^hi&0;*CIKma5lAOX^t*ZNLG`IU_nx6xA3UUEHt{PznTAnMgZ7Tvdgni=YKbhfg}29ap#6UF;tE!PggOPky~his2TQ;38N zE^)G0j&eR_Kv98%9_1iTPNxltyjHpaTh%2hr;^w+pUp91F*X;9`D&gI?F!OH7V9k6 zokcYyqXELMLJ6?0`Tk814TS;!HG5Y%3j~OqQaBU|`fMw?5OZ!VNTDMs6MCgm?WZKO z=MwUCSjltPhB{>{33LidTgw4+Uf_9zZ1lg{g@fRQ8lU)~iu8Th4A0~_2f^yiUbu9T^}-rqT%vFdEe-2THq zs5Kh`CYWqw0hVy=z{?)E_AA3f`&IH^E4zaI-@a=&YF&dLsZ5 zRw)|T5NaR$(r`EZr=%uPn9UnE%DbCGs0Q#55+h73APv0fB)Wr? z0}-mnRSQ3vMOfBHuM#0s+4XfG0;|Jf%C02H4?ox*f?@b#^u+YJvbLXVrbw9K_qg$Y z1GP^N@Be1%fLB+0R%mFS?Lr=ygy<0U$PHpXs#qb43G#tGJy(7^H0C_dYP~*1r_5~w z&RGp;CqQYaF;E$~+IO0)oi$k80?>nS z9YvLxiWADe*3%9Y6I4YE2-w)CWa?TJbsVDWsC~OAgA-Y6EvF*l0yI4AW|4r1X3Lm2 zDj;HA9KT}GsBq2q`!ShL9X?sDXk**CX^LFykleL@ zw%Ie?%quViVF+`bYWp&`OBh8>Jz|7q=(L9Vqn* zuzA$~t`t^0-$dD3&{FV$PFUr zWg~^}ZrGSH$PUu)zx-J1HUNpiS!T?)g#rMH;0N=wfovuC+gkyy&rhuz8 z>AnCP)Z;_bUQAah>U4h0fP8%y$45)HMWSKIVZYYN(%VTa3gx5u?^sYjov8eY`c6}4 zYZfbp^!bDz&C8OC8>2za5?OGb9z_lk<7Anm6rm4($Vt`A5RUrOAUvlSbxjB}l(MbU zOUH{o6-U_|0zqD{=2Syq5()~v(@_X>gbddOJCP1Gf`uvJ&pen ziI`9yJ?zQr57c-eEA)i51_u9dF8dPMr9`nRj^hf$3pJ+n@1wS$RxWXpf5L}Rt~szW zcgYo;^8YqO8l_CMID~K#AD4ImvvbbQsBtY+sOGY?Z=$?@3FEpKS-kvF+WSis3+mX` zYFzn6D;5=-Z@y970e*%kn4qQy5MiB;5l)OwQ7Zq?-BBEqBDYi~7J2@0ZkLJt@r-KD z(bMHz1|b^cy1VptSC=E&tFM}?vYm?Pd0o_~MP2JJP{jETvj*0qS_-8pI8h5FI)+ju z^z*|aY9P#AA?9fZTUhEWcbAAc-)WJFz!*(On`ok?RgPc+7!>Z;Kbw5A^q#2OL!?VK|k}7SCA${IR08Ntld?wR% zXjU%+b4%GF;8trlkF2PZPlD>rIoNcH;3dpAk3Dg>EVlF6M68=6B@|N2y4lQ=yMeZ)4OmIlB&5 zNA-lN1Sm&hjSRhxWi>hsVZw10?|-=nGE1@c3zg9|T}@OOhS%^K@#5L~3Z_~J313g* zbJ;}D%+!JS%|Uf2rC|mB3Ob_L#o^hIviWY+@MP)ELU1v)A&WTZl@KO-G@u9k;Q@a z98JGCcuJ~VtpUq5#z`u^%Ot&bYj73~`Aq%uuMBuj6O-9U&>xPGdA=CYVR)@ju_6;H zcd&&}V70zMQT{?rCY0tGLVcQ>$>eII!7##Dl|}tK`})5fw|{4Xx}$J`0^-8p3kME@ zR~D5-;%{X9aw!F5cg43>Kk)HS3&8J6aDL#6lt9EFP7$9rAinvYiQr<%iBzFJ*xO|F z9~2v@TN@H!DS~J4NHu9t#_IRoozX2-MR^gps{kWC@eq5lub%?K^83w7Vlg%%CLqKj za#$0HOm5ue9GC+{2&Z@gR5-by!eFLQiDTi4yV2x4dAs1X2@i!Q)hM0h`X|(h=M03$S7aHtbPaG*i{5MNR2dt^9b&9GHoswlfB+w4d3kP zo$e1aAO}9MSO?BGl==*@j?n4^y7r1LL_1E-rsCwu%R@3xyy`jlboen6jIv2tiCWZr z7RN!kTDwfNxSq4n>0+)?!U?zsX692Nm|pynk@T1si}&p5ZcJi9L3bXVwr25_(vlG@xUC@0 zkCm%$rZ|0;9N17!A9vj8>za-BT|1m2Ux2qH+S=;6cX^m-96#-JNwyvdalI`lD_NX-A1 z0wHU})4LCwU9&xmQQqL7f>l+8hm04#QK*YrNQEO9KdF3z!qjSo;^SR{oX2EFfj}Ir zZ)p*?0af?|-%So2c0}aiRa~I54eQfW3o0Jl!N?I%BNjHJ8M$UE8#s9#nm5Y)dCb4w zYcYwdeWkJyt=yMHqS3Gsdt%2<$E(8?2JH3x!&RwXVuwjlJ4WCvMEs4y zM1c-o;%oCd^;{Bs@EzucC??v?QjSS4;j~1%H&#fQg=FM=T>hY8b5nG*yZ8c$!#>Fn zhLbmF-VBn<6H4(S@jGEKf$Y<0_Iaq+5K|;8>orqZ%PG3q##E|TK>0xIz>h00{y6?- zULC=Jfvs7wSy|^DD^ei`xujx!*{?%a+yp;5uITLa@g#v1RGQvV(6CybN&Cs+(WcIfSr#ZxST|JRHO0H1^9ojZF;WwN7R;8Wj6u*O^dnZzAN^JAU_FPXxGYx62XO ziD^S8S}U4Ers`me_l4N8BDBGtL~_Hr=%D3u-unCE(5-HF^z%STlZL$FHeY(^0MjN! zH4HbKLF3|+)?Ign7(VF~hnF|TK*{_hw@6E?bZFDs2*FpHk>-gql1Bo@}>~-QBVVW zSbz3e9`C5X8yYxY!{zSgrRh#ME)g;>ov=+=EM=YKDeojQ%Cp5F$zg*#ZrEVYo4l#q z`=RP+oO;JW&tsBWMyM~Lr~8-W+Uf?VpZ#Z^S08%l8P|>-jdwOk zSR`jejQb_KC+M~AEP?xA3H}l<4CxI)7bE3+GD*mhuWtUM_M#i;SAck;f)T zrMJGT5lxUto}FC>wXrQsH0sww!t}+d4}vYrRYY;1!5W7sg#YF{?%-P3zr~}X)|MHw zb!!2}|HlM$T8a-$rT~jP`gj8v&&}d;rNCThB#0TxZ>7pe1ruc*@~d&f^05z2gAt|A6W+^xkdv}G^m zdHMk91y@s(YHn%BOM@1>IZ02l01`Sdev?Z!hM-IB5osPa3;9%0#f-k3)_A9EFNtT}0M9Z2Y@3lF6-k!pQIoC%7FOwsx>F_TJ` zqeFbPGQz!JZ2(D;QcA5zdVBV(Ww$|H$UNygYR$1KKYLP0i^)ZWaq_EKQ_w2hiB`Gu32i^KE2Z!b`biOxlLYpE}dp5&X12robLlO(qu9^ zzP=g;T3tkE8tYOSu0JrVG~8xRhUGLL6jlo;0;rb(!g8!Z^FF<%$h9NIoN}?0styxg z{T~%X6r{duD5cf|WI6Fux)e(}6(FpU2v5q$oftnRH%`WqVX;)MO68Ir@@&1hwY6xe zmU7PPP!c4JiSECe6JsDBXS8PhZLfj))a#1i-aK*gNxbz?e<-}M6WZLa4K^$w`p&%K zV3&@!e?iRX{KVz&V{EaU?vuiW?k^Vk|}3HYmt zm9(~Nb})W4FdnEp)pOX*oZk)|PIQ2PP7F|qgJwzQR7wFnTL?qv0KcZi6N$w6X6SnL zM>0>KNhY&`e2@LTlst64k@pQJd6)n$1eJJ|GY!G=)pJhHA4?p$x`{r7XT&xDVebr2 z(Or7qH^l?`PH+rCo7=a|G8w=~g1bcH)~ClZp}{RZdsb#-yNb;E?8+@}$(CpDiDTT4 zxkVHKYVd_GXE{r}c9g#}keis+mz8~@39ow=^0E2tedFuabrBW%7j1w+v)+l`00v@C z<>>|ZRP_zxym-X(?zz`3xOfF`R1)|5Je0HzP!k&bAUJ{ptxesbVn+#j`d)pR(b zg>F}LMz2swU)mg&YZcTl=+bGYU6N(jFL@9JvfAXnN2WEH9K4w7N~O|QQO6;)(U$9U zDW-5MX~AhF$C;r1q-B!C#+(rE*AjBx8@n$-(gO|cUlEy@WEK+T%oJ;TC&s|TCu7+X(J|Lbc zzql0ft9ML07;!146eEG3x2P7PiU0m|?6x==K|VoDit)yN0S>MVzKugxiA!ipMri( zYp-vBINa3SP@hx%E^jzfh^}6dJ0(46+vMC^X1L`GtVerwkIxSHQ#_ya&syXh&eJxF zd_S5|V?P^Ci(|>k=W3IkM3i6)!AR#emO-giTKr z1{|MxdBqpv$J-OX=oE@?1(Bl}AvgEu*~qxKSOsUOw~XV;LhpQQC?Zitiw}F51|o5B zeO+2Cn}}`~yA-W`O%#TV9C3m-(Sar6M00dw*~8YL%)k(Ppc=zy?57~9UQEZ6hF5^U zffF0Ob=ckQ+JQZLp`+AgX9b$H#N@O%%XO&6BG8t!Z>9b8? zR(rnWob>TrYYs;fHMN!`{U4XrA>s65V1RQ_&?$Igf!>~>)XSq>Ow*5L(~+W-x&;2=cx zjtISmWi-8@Z5^%3WXd7(c0S^ZjfR* z-baPOpcPiDF=(LfE^R*Whhq(Ef_(jiG01e*iUV9ghqOOQ`qn>AiXUkL(S2;c4|Wv3 zE&!JhEIa@Co0zs`mFs@zaYNF_^f3gA?|qtv41I@fz&{C}L0h)k-5qrdRQA-Mu`4mH z8U*b}0A-7qhNedWAgR7Q6LNWpGJ}nl@En6H5k-|+C1=Ot^Rv}fyEk1o5_Br1 zqK%~@DC#BXLg0BpVs}J#2{K>iTz7&goJ>Xoqw;W;1+@|lB%357sm?$shKvSNLV?!A zt29mfc1pM{YFp{RVrlM{qs*Xzf)`m0G{}LwqdwEHJzGXy|6a`FXNCWyQL#FV!sV{S zR3OJXBP|LcpR{ni4nCCG})vySxj<2#m(#fsw`4qPn|N1a53V0Q~IXSVu=VbgZM}+S~iC z?2LWTR4Uud8p1%xx3R_V(t9qc2YRIO%HT2VZRx zUkSWI0VF;+*w!`-!d~Nj zfr0q7SbW3}zI3We@^Y1yo|N09ts?8`OVXp>4UZEM?L<-0mPJN#ZIVR&;pS9O6*=-v zQ6S>jp>qX8O6)g}=3K#{vO^Zk#Vh^Xdq7WeI6exN2-R%vRmyW(q$!*FL2l_neNfFz zNBC^07JGS}aDWkFrKz!+Rz}O}FpjQd#80#k;0rn3`~Ekcvb1cUO{mtM1Ca|FHH$JTTvS$M{pswEDFpu2UCTl%{?4S_q89@kOWA)i$ckFeaKxFw7%RJtyiz}o zMmwQ6qxey{@y`dv^GBa`F|DbL27i<>@}`*3pRshPqrnJr$jj@H=Ns=X`~+Iky0Y{A zG;C}vuOXp3D~g3^#;|m{Lz_dr4i8siw=ad`$uq{y_Ds(dKMKy-AgB?e z=L0n1J(BEhLNK^d-Ty~E$6?@rmEqWazVSzH(oPs*6F@6 zzv8*aYSD`7s+{r3XN>3L(N0;>xltqSW=r4^;TN;oG*ED>2q0nR?{7H9<5~S+0sCde;qzw6IeH zRr*@VJ#^ja9aNCIH`1yg{U4x3wHaHTYz&yDhh!Pv*p{5WlW9$?_UEyG6&Dk0_ffF2 z+u3wr%Ba<-$y8H9?`h4TW8$>MwblF@|19dHtFlk2ItV!f*%N z#}@GS$X4@w9$Xdy@mqB0bn1r|8las#OTP;|I#vK4I;5(@kGjxr2^c0kZvHp>SVsqi zOy_nBwweYz7X6EwvfxcOr0+Z*z5M^D&b{xZLxK`8N;W6xvbA7R!*)r1=adV`>6{IH&k}gb5#d0-6r^#1#w)@8!P3E69!11A?2ZU0BJmfp!|z8@{8sdIzTmJStd{eSUr z+*?jEjT2P1@Fan!lL>h2y1~Ql&!=S*R{AJDUsc0Umq}hRYv2)4 zr}H7527T~(|v8w3yO58ArN?s{sK&1|)3_*5lU)5_#L zhrdWLRvm6(L6k1o1yKvB_Lyc$&Y%Bs^0;CcumpVdRbjiri-k3jC+cZ)a6n8BKit*S zoXYK_fq0x>F~6&&R7EGUt1P3NQjAwY; zfH|s>tQaC3+!5{~&aFaf$OH6|0E`hnFp`R6M1?`}4}KO6b@*-e{r$K>UO5>a|5F$1 z@&~uZlo3_YhYvSIQ&Nk&W{Hq+Oq9iI(aO6C-&i{0GBR`>U=Zc$#1r^k^zSG-GFpnxo z9y-3>_qc@)60-i=+}74tz2cR!-^<9k#a?9h3hn{p{p$GR0e@KjyKY^yo(&8;Ip*cl0-raPMV2ytSmuBh44RaNy}4=K|>29k?AofA;JW z3Yrbjw*kGl%@zbNcjlhPv;ZIgc)#>BP5f;ArrN(tYgPaNaQsg(V*r4^-;t01_xNtC z<1bVIcrX9}2yh-|xWa@IED zz4!;aMNXgXP9tFQ@!00{IA`w!5IA1eyV}jM>a=$TB#drdV4lEP8mL**?mU!N?cdUk;!)ou6@4!elE8R@FM@QE>n70K_Z;E8i z%#bZ9<>EQEF{~qJy%?+8^areCz)N|hno@JjZraSlTJjGeGjdlc*R+6TPR4SJvaBk) zD!0#D{N`V?{8TmVD=p^xE-fp9$3~95`Jo1=9BPIN#&StP)y@hFt{bFKIpoB-U_)?X z&-@qX!7K3}o12)6I}?cD%_CoK?kt#rhbmx3d~W%FYGQWGAalJun=AY7b)v)}1Ol+y zY-^-g1H%fj5n#XA;y6ov*ICs1pa8PF|vOS$bqXZ z{{n4Lq#T?>vOR~|L0lx9!Vx0)=pd3x;~G`t0yt?bBAP)iF%+D{GEzA%?EwmTm{w{3 z3nht*k(raLGjz$m-c;SVSR_||zEi}?t?6gUDV94wH|uOYvU6w;a!pi=IXtvrPn*S6 z%>-;dZpsapEq&`q8}iZT8`U3ehNFgV3UQ3Vnxf2TV5O6{35%`T5QGRxg&&zLT3+wA=DTYMBn+Be8FnRJU3CYW8Q2(wN*@IW6fztVI@n~){W=&fne_0t%wu?uy7T5Nw zCQ+`RNvRi=aWj^Ohr~I~T4}niJL&6bGA{<#m1!$`P9fZNK-2fJAl>!Su^-6$NZS+A z`!22LSLl8z==va?9}&^9ueJ0s(f-)cb_?OV57T=fwO+6BTu3da4(>B+u9I+{C`9v_ zjA+^p)3M03FVbwQX`Rt56Jeg7VVdkPCQF7iM4u(;@*a&ba@qjVcvJ0Wn#yrX_qZ}^ zDvUhjItL-sD1=n%Adzrl`3#ZbgldRDNPJ$5;PG1H@^%hafL(Dc24ND3L42T7ne{Yk zG;q{$kGheg3=ndfC$VPFuC@k?AmE}z<2Q*aybzW6ECe36En(0URFv0JSt$p_MOi5y z9?6nhfXKz9!nGnL7LmO=Y<|ud9FmD7B9K+diCQG15E)63^h8Kn;#yh^JWW$$6Vo&; z4peJd0VgGD&hA;#P)SKlC|eR+9$o%8cGHr9&5})3soI06$WAECe70iB<<7424cxf-7-?ImbzLmD>gYEY;nucUlP>T)m<5CbvH^ z#julc3-4~FFA660qW}LtF{zB9N!`){0HW&j`)om$Tu$KuMN%#qxvD_{^@^G^aw5SU zNhDu1uoj-NMcFwajKg!sPJu$59d+3}Fj_s1>?BCobc(Kzw~Stq`)8fKZ8gxk;|@5< znB5TYKwY9x5| z)M`nX<6+&t|PD#d*yC)g|4EBy?1XtK(HY5)n;FLi_y?n zh>oqR-u6*s#r*n3Pn-QNBc9PHfd<;Fpd6cbKdgclMJ5=ku+Wk}eB1gzgcV!q-5Zso z-d7bLpQIQ~$N-W(3=Az1rOQV4rK&y&wFanDwNUoU|87VFQg2V@oQK_W+PGR&+mb$s zn$!Jgzn1R~2t|BnzdV^i`$;Nz$ks9?Pzw>i&t^HZgtG^xHdMa~Te=unfCiD*)pLe! zjimJjnK8b5wbGtZFv>no5{p0Ho$MQXLI4o zSr{|0Kt&V;2~kpbR9hfOTBLyrI1_a`YwE^Abk^!N-P+yO=bfwmx4Yg&^gmqd-^ole z+3@n+9=vg=3;3TxPjH#OZij9|5p75s^gdkmJ3C zModI);!{tIRU2vh95{F=abBrYhAC2t1SwF4smplXUfq|oXf7XSgB!XBpc2bgSYXUw z(Rg;E!ZrYo_iw|Tc<+O#raWN=xTLd^5|)w!dH^heXhvgLAn;gC+}^g&9WmJJCjeoa zDH`m8+oB-mbN~NMHQRr|4MRBr8;9#O-1ukXpWUKyZgc70$3-_BfYJ;|NWK+yuJ z1VExaprqpg*V;pE2(hwr8DjYWl4m~@yq~1PNKW8Jty2t5ms^*;i*B`@Qz~6_b!rXI z|IbXR-@8&Ijk8!*_RZ}Mm;zwCBbdnYIHRXOnvRn?sgJX5?lv(>_UY;vC9EwfEn!($ z3t(7bSaAt}E8wIM^p`K+tbJQM{eS^`u^_gxbClM&6_L2c=QA~JXRyQxxC}))AKw#{ zD%nLv$6S=oecJsqgV~+If{P`2hXoiw@Fanx0>EIAxCnxG20pVJ zO0M5--PX_OG9U7+yAW}0cWx~S4Iw#+{Ugt@lqMEx!~$WAS>WGksNNUJ4Q-&t9Ig;X z6`nejO!b|ZU;oL>bdP?>5=tA4@d_i1&P-LD z!YL|BhykJy(c67hJw~|Oj^l+4BHw$Asd<`9+WNzE+ifjx6C{XAkO0o-=VhB+jEWAl zjwcXZq(DVqw?2TNFl}18nbbg#rOpAwMHEQNBLUf#fb32{Bne1%0+N@26xes7NJ-*| zV`|4$LTPak!d-nJ_rtd~DatnPqLgIs1OWUl#@>ar4ORd(uTp~m*^`4@c;{HCR~ot3 zYy+tDUsG$J40AXnaAXm7o2X=lj_ki0op97oC| z{vX?jSQBkdu2bPux@w12F0*TqyVs-i_V{}I)Ct(H@GApYARd4N+<+=z4#GiW&=je)7&&K!^!IMp1il< zDA+}ELQSAjJWXb;vZjJpkcYhwdT0F4w(F{fnw|h*hd>Dfv6xswa-umBB@Gl6!vv;> z8!&ZfCk=CyYsI6p?kp&S5|*em%P!N-f(ll0rB^Lh!?w@;if$4@070-T#y%K8229pJ z_*b8FfCkD+uhW|}nE*DBl#@#SClBS9`D6Z+C-Qs-xZGyUtc!mNj4_=#X#chotJ)p+ zpTk+#`ZoL@AZwzGCa$KG%JO6RmyB0M`)4`Pnc+3(mR|FAY1FQD;)~6(@BchGQsNw{ z`+ui(C(T3kWIR<**VFSXJRj>l=A-&4{>P(k?cN50JV6ft01y)c5CF)SiGeM%9PR`D zBm3(`;6Je=RRI38vCT5@VE_Q6QVswR1a#+Z>t#@TF1B6(!E>8S1z-UH0RsmB2nZ+u zAV2`XkMmTigEC2;ICStZK*%7#&Om1X*hz&7h8Z1vWYCejqO-FPG63**3qVJ{>vYIl z=<%02lY7!Yz|gXs)Fa7&KK4yVbL-gWU*7@p`bnU0<$invA-#&a3y-sdYr{Rom5iHM_(}mfD z#M@EpVRS@89B+~$%i4EDMEF@?t4COcR&ZO1xS#oT9&GK;9r=8&dQyJgkt4EKHIVIW zr(R}f{F|`Z^ga!wuGZ#MopREy7ZIPllS?v7YKfmPblTtgL+|x2Z}ldx@#CK5sUGJc z?(Hsa<2o*K_U%MIpYn^Qq6oRP`ffjMr17X4ZP0GpWoxi1%Wqg!NL^DQ$UaM|Bg$oq zGVhvQc9?^inWE7V3@-NhLpK@Ka1&CsHHuY|CNx}+SI+fdWm4a+RO-tWv#!x&_0@T0 zq~248>eO<(j?h&#)n28cwkyYLJRzWc0O0$8dS$x&(pesF#1smx60nOX{G$Vvi$>oiI(`(Q{2 z^AiBJ7jMvV+{+%QF-j>?{P*?3wi218ZOvJ;^i%~16{tfTX~bf5r$Pv3&>b&hdGk-I zHbIY8PDP>i;IhXooF`)Z8YBFWAyUo057t%5i5YK#uvpdIYne_ zn~s|Nrqo6A=zQskfVxA*A8SJ%0&q7UCA$?iaN0t+%Rp945xZ+A|=uo+>er`Q^VF)p(s4 zhh6nvF81(FiR;7x0*1HCfg+l+KI0~J-stl4q`}MK7SBQ&QLRVMic>Zt27cP;T+P7j zFledqVOY1hY{p(rWyR#2zjy0W(&CRn_tckniR#O`7!iU{8lEou37%8nx*91zBB}Qt zrM^jI>;vQ(<}%Ujw_eI*;%mUcow24GvAT;aFGOKtF&*$Sspw!o4H@_FOi|efEQ6LP ztTX_FmhgIaNVr>392t;(xXhiFb}j>cZw(ZH6Sh>BX3hr-?8H(E=^t9P=2f)>vlCjz&?Y#+lUuU z-lRSYnrU_X!$5=krYCK;D4C7n1OPS<#oQWhuDYZ1B0AVA@;UTgXlWf#g|fKiMQX`v zO$sN-I&KnFDQl9GwjZu!uuTAN^t`4?BB-g3)YYVJr^Jq->*GV5Gt1Co|0vcp#fTo_ zgeiv`(7Ll3Jkn~bsDl^y70b(N5tEq!-ipG*cRbv!8Q*FN8LWJ7h1YYN>mJLY&D^scfT&q)KDQpk%$+~X$Bzuht0>3N zm--ys7U2Ma5@4dLB>=ARr=^%-js=!kO+vB7o)T5%EieG^h}3FS3jj=+-J2FGGa{3Z z#P*@6^CHWRuiNckmM(oiFM6DbW6y zKH`Jk?H6JwdwGo)zZHCs$FzY8B_{XFzh?J!u^YL_84d`O~wIV&%n4YWedi^|9>4Ts~U%dgcWdT56_?m_#+@!nR%S1)37c7xZa2U6;;yROVIg_Zb+tsb*qqb~gcD<1))m^lW zeIs>QcEVJec_5E-FsfI3E@4TIJs}RtE={SkAo04kZmAML>rl2kD#~};L&Ng!e35Us znpdlENw9%jh}0FyPDRX5L=EC)j6*;gLEZ9*p~=+xo_+wR4Ewuum5Bs_INa1dU6ko2 z03|)G^pax!wCY^ac^rFmYeh_4b!TXNnh0|z!cD~&#p#|)jM%Q$z>2SB;nM7mL&lmA z^}c4geBoksvB+n%mdbY>)CMcm&X>MI%gYy*Y$g6;KYw1SIg&g&p*-hg?wVgwC z1XvxeeZYT>L_jprJ!SdIS=CB8SYB8zT@lOipwZRN){Pn5;RxZy0s9v}4|* znpIAcdmmD2ua@PPk?hienONS+z&i5cbLi?pZu~n~;J*^r^WQ6o1h~Yx}$-gnEx}?s&iVsGa58TK>`qP;D-=OkO2&S4B~|0LYP8M z3uzG2=vEYJssa#&N^alSj~~NTxqPgF<(>GuE3-+@bA))d@6L3{sf#}Wz#qX6w*;q# zzn00fTZKpUPv-yC>6f2cJ&i0m$Dg_HO#u8r?);i`hCZa8%eo()@N3OQcSl!LarcTcv^X1Y7U%IRC`BFtKSo(HV%5Up( zey+H#f4Wyj9?m;7%HuF>bBVH#)-j^Dg75MOx%sR1(%jJ}!S>7GR-X>P3a+RgfYXs@ zc;C*GqV!4XkpT_!O}_`7J2Rhl1WOOqr?F43Yk`!<|F>qGj*K(Ej7$zekyw8 zwfY;|eX})>_>a24td6;{uH+ipVdN0BkJRPE09w0&JUWUxZ5VpYkg(!lxhr=(YcDYY zuK-q|4FV_%N~j34s)`UrO`%m&tp-{e)ePMCouL_v0!g8R@ZcaoObCz&Vnap;8$%;N zd}JVlgvg__DI9{N@T5a>^dLA81DTK>GZc};LbhbZO`hb(OWu^k7oDT=BRG}-g>gI) z=$uS+U8)nSL{241$)-vhxFa~q$TvV_;lqIm3JDqrDq!HzMh788C==lhVKc*_L%)$D zTa?FCj=C6{BIt@>Acv_4<|0_iU?l}>N!Z9@t1LUI*gueQ;N0334)+_#I!~a_eo*`s zPk<j1BmRQs{^2j04fT=2sMBv zfFwFVkPN^K1MJ8hNT{A{$u=O1e-J-!{d5TdH%dSy0w!hPqykK;z)2lYnt;*2%_T0lc0o61hPp2Gs!1v18fM};bow}kc}yux(FKbX-Y#&h_)C85;2s5 zk#bChn5n=@8LTB@BbV(dE09~!k-tH4Ln`jdS}P8(NZ}kwQCAF{2ni;HcLL4KoBlNuPFang`RR8yL2NozNX;6^yYh#~w-Oe0|=K)5E!W6bcgc7`g?8L0I$ zBzd1fS+!7-izp;W*HEFFQApSs)D;XTnV>?13jr~u#92L=|*Zzcy!(?y_9gKC%Tr499*2;uBJ88!4oD` zIfrhm!VXA!NXD?%!H|$3BD0;25V>eM^qz6bvG&?AriXV4Q*J@edaZ@l%+d!wdI`{uhDv*yfOut*Alf;dQoWGDmW z#Su?@DM%oplq8ah)TAyAX-Z4lGLWH+WGo9=%1YLmam-21L!9yivq?&V%YX~GBJasSTrRABYl!F|+2;V1x5Qm{#4ifO*_-DX>D z4$QNli;F?97^-A1>POQ|XqzF&jM3IMll3)aV1q^J*$4rd0|*;J9gs2je9f%E2S)g) zpX#uextK?{%)XMku|E#9!D$+3JWT9~_FE+Udva7!2LLOxN1G$&S^FtAxu0DCp&-$EL^SYR>U>W$i}J<26uJl@n9|M2&9BbrkLiNey>AgTBc`4S$SDs zku$+r1;{>&6PC)HKI_rF$MblwmURRgORkb*wXM|=_0ySMm5ejaIODW;;lwbQWSVqW zH*MOqH;*q$qsPHvnrWt)W*P@)nqEV~d-RhIxgD|nL~kFN*Rv-K>Y+l8`-a`p7ftVf zm2|y%eanLG@%Mi6ia|q0D5^wXn-_Wo7P5>$iri8nSUWWL?3T8h5Z?dXzr&Wb0|)7? z#fqfYGm+P&@)h(M06@6AH_?v~@V8R1>g!zCd`27FH&TqE4ku(j7GR-bbN)=?7T`9t zMMZN#hStW02sQaUux(2YR^HgSagy;fX;@fT*!Y+mPgpdKr9n1w~E zNUEgTY55w6#vb(QU+|DeJm$Z~y7w83^Mwh%Hi@RdG~f8nEOX4Wz+y{kTLvqvCY_AH zsWDfu?+i{(mmD}8z!==Hj8YcKcHw+n9d!?fA&6c{z9iFgPQA(g`wMQeOqhRNSeXe*MQKY8n|OI1jF zv|K5{uE*xdSs#}F6g|suA1C9r~Kv4&x%kz4du9ANM9GBcy7<>ETAp>toNr$3shpKQSDt<>Tz%zVww1jaNXT-Bt8)vqR{YlmXw zEf?`c1k-w5c3z!wg_2+hurZLO3qnOOfKcuygfc%M90$R~%Ckej4CIh)+l-Vvs0^d< zbR23FaWPS4E8B~853}SLU)-e3TTxi(5Vffy+_)@kcU+VN*?4HVnag2n^r|hRT2d}C zu2O`kNvc{RDzcI3VY26gXv z!)q_({&5q88-(;L0@8~3rE&O9_jc3t%BBNDC2fdPy%=cVHQlAzv_^r3s`WfY@FegA zW{2q>aXrd?zS^*OeMD>ylED^)*#gRdc$7NV`|%E=YuOKmY(v z%h2jd?Y9mrWD;qnN{h27dMra}jnapK7um1*w0H`^Vg;)%L{jWsuL09xXvYP>y+E*a z8H4V9d*iaI$}C%I&r#Wx_*Ace8{|U z;qHRTBK+jHXLQcc&hpO}y)L~Bxtw^to2+ zUf=Lf6#dkRF8^SFI{kO3aoQB>ir(kSb8>6~OJGTiI^Q@y7#B?0rr`vdxTS6+x9P(S zl3AOz5awc z?3ii$76HhRxn)3FppNJ~=s+qa!yC((=_OZp%d0DEyqdBwG5QG=t1`1rkUNK4%qudwz)wI_=^)$?fr}t%CJM6Af6nU(7+~#fD|Xm zz#9K-0O$0a^x<>3=FC7h@R_BzY$p2Q;2DWO4gf@&PK-sG z1R?+Iw#p8p<=9*R0Mu8J{z{z4p9^(p{i3LqFU4ujU(cV6h$f`4UwtHM&u&8@T#aV zSEcj+dk!c;h;XLXMLquU*k|84(C?AKQDcj^BEgd~5m__Mvvjs)+MOcoBmgJ?fCEUw z+GdR{?>)Y6q)k)0PRjvcwoJ^xtlv7BR)V;RC1;je{_{PJgCQ$Au9q?n_JD_sW9%lh2avgApHnGAc)|F`te5V!~H>4qJ9-pRd4@Wh+)m z!ASvlfc(-5>q;w|V*u%-;dKi!)6d9{hb;ZAN9`riMdXP#4#uR>53b%!q{qkRs_R^+HE4K8}>Z8SKbK$%)+wN(j>3q3Eo zU`4>0V6&JE`eNH!x3_rQuI8pjXG48mt;24!TFf=oRh1Pcqd~9JmTS~yDrIR&aZ#Z{ zE|Z8wLII!0<*->m8YH}4oE)#rQ`;nNuTNGrvedNfpRQ7mf=)1MIP3^b z4O?XdEZtyLTO9JV(w4(6w@n|R8%XA^|INmP>wa74>0K_&g=(Ih-*tkN%MaoBmrHOH1^?X5}{&L$S2eL0}3l~W&- zs2 z@9QDSWwtA|W+M@_lF#29O)>v{yp(!88`OStLVhKr6k0wl-s~=OvP7kfW+&=)W&88} zGqq>DspBl!IHXO_S2e;4Tib>R9+l%IX*eGibIzF}qLckm%H@NE4|K3 zBE*T@n2nEcRcZ708M1Gg#L%+Vzmqo`)J<^6b+(z~X^Nk@$xG=FTt`|uG`bgJ6}>4P zYuIYsg?*>vIqWWZ{d1oa9FeYP;v80sJ2}#7FmnnP0vzYuFH4@%MJd|d;FmX-+Iz09 zOcjlcd8215i1VFhBR`X@ZhtruR8c1nq}qHY*DhNIUWTAM&bn%NgPo153i~`NkL?W{ z(S6)qIS|+}Y*wY2SX%i;;=_@FVveagqfNRN;R8DU=q!vDTc@+p{)X=Lt?C6G0W9|z z^#cjs#^RpA1MkwbipWb+SMWpLu-vpy`i{!7xr+Uf(rwRD=x930(pV1;yHncYOtxAn z>CAZKM6zCVJf08>5_3wBClvhK30-p3vnElMrA=&H=xLJ^d$N;KtPY|cUsZ6)j2M^` zGMQPkZ4hNXIrz}=QCUWS;{uqcg|*K)ExqX(1Qnpe@QX>s6UT847v$Lvz-!GV6&w^+ zG+nmdup*#@;|evwa`Q-)`bfAK9F$z?)ccGFdS(k3i)_lPu61*5j0);eReRAiaDo~l z&p!g5GExiUXZ~gZ4_&%=C=n9%Ja(y<+wjK(I3_rfMjK3&{j?L%totU6FW|9KoUint zfOu~h)=2cN;WqPbIze3KSHrxni6Gpjm0yQ!LSLg5rE2XP9jS@+9yu`giFjqqNfe1= zD9w3DrN@U9l1&FBv)MS!2q5m zss`@vYWjHLy_Dr4wueTgG&vHEJH2jO@-?W*(cpkqSjyc@XAT(B zpjsYP@UH~9_4mi59-jzJk28CtlH&ZVT<3RBSY4aTCj!`N9$RpRstM{=z3Q7LoRIx_ zd%nq-o!-~36=RDOlB(BTGG%~NHmOS)9LaKPT?n?o3mS3-o%gmhsj1_zlFSyYTa&6Az?6GX z^7H>g&PiEp=V2#%24&+w&&g>+%ke>lm@INe3%;sPNWn2eotc~|R zcK5dG=h}6?{vNi6CwdjZDfj-BaGZ6KGMgvX%LQ7Zs^TGkaOtp*D-d7$LD@nb6<3y->{~H+6+hf7k~Bw|)DImpS%r1) z(UJ|?SDaDVKL>|bF#9ApCqX__o$9|XUJ-vK(ARK>zq3%3)o_Www|W`F(U&r}1Yi;l zzVEfrOZnHQ?rYhySb}6N?n+LSm)XgJ`5Z#Jze4-`YCT+?|tKUYG z^YQ$ajhQVIYS;?!iddSEU9K1O99uS(u@zTBADk09azmj|*#-drvvHJ#1o@*`0pfvA zSQ%J~9s?V60HVtC2m@f*2Im#do27m%oezZF2Im*v`-AubBD5kKj@s*9v7qDR?4eV zAkFA@V;mPRB-AocI1hE8yOn-SY$=$8go2PTAjJ&=fb&h>SpV7^lW~~j@_YVgr#AGl zqP(QX1Whs1I5g=1CKxnRi@Ab^_PFY~6eo#*IaK25Q^GOnL^A`5_P~!qW|~T5#N$c$ z%oI%laUw-+PP1;>+6x7gWeXIKH6`C85Z%Th0T#@=juHtC+63idb6sY0aF8p?gD`y8?RlTh`U5^OYm z(w*Y?GA)x7OWD7mG|6hbRe@fa4ptQwsT#DrtmK4r=pIE@J0zLH{vi&s=C*8?V%92o ztMP0H%9`eKzMey`Q8vQvm1c`94wGHnOlL~dry$mL#ODNg{$2H1N;MHx_r21UNxbmw zo;LIWZ|CFkF95v_@@_WcX21Qm32*Da z2YcQvZuF{t{dF)Nal;V@qjo4XQJ~;*(;|Hb-loa(6^IYOxRB|=9STP~ zYIDif2FBf%ErKcovw~9zLf!G|slADdg*zv8!txUX8JN#+8`E-5u?3<4&IFS+Avu~T z2qXtn>hrrdD}y^>GGYJirO?eDp9h!T#XZ*z_YGw24>-O+E|7z>XMNT1s6XpS5Cp>sso4SPvqVQ@<$An z7rE_+dT@E9aw(g*LGH^NAATu)gDdNCzue@#x7xJ!Z?@g`=>JvneoYY6%l*8o&I)r& z==yFpPl-XZ$+J&Iwi*DJhmLe>&g=N6R2Sr-ep3MwNrb&<$rVg|xrTT3yR#iReA;-RI8|&-xAL zRhp-q=Q*MDt7;BOQ(g7b7P(Se;cZ=mwzl`Hff|cQxmoQ%x|6|ld5xQi*$ci(g#30r(gR0?^vhjMSN;T}#-!zr78yCC4^H%KDiwaIjNW6g7kxtL@ z)HKaZ(dq5B7fr+0JZkS4UwCOii( zO+5?ff##s~Ie^70tRw+fR`!NQx&grww(rXI#{#HD9XpCrAYcP+JT^lekVX#6fWwEr zYB2x1n_mFz!U^_e#@P>=zAouZGklWKCP7)Zli2JL2j>$uFKfUkvOO0bStELXbm121 z%WNVm%Af2sE+)D9^eOvM<=B|GNk8MJuWkixkZvyOKIKJod(NLU9AwJsMoFfX>(j>T z{kyDkyYlMTr&fcR8+XiOgr4MeAF2eQ<_1wqK>{EF)GKzX7k3gVc!Z1WNJi>xI}EvX`4bK>WXeA=N8u+r0&spQ-whn zNU@#7ou_IB_|$MUwAHI$%^&r^WDgq}TMA&X4?u6>h4!j;EVqv{;s*JLoEXt+=Ex4u z1d_34;VAki3;P3hDm?r%+WUZ21&g3}o>r3Z>#dJ5i*6IaP~%JSAg}iko^-n{WDFk$ z^Z@J}gMdI$8!4q#ui&zo3D<0c)Iq_!`GfacFAr$7I+4uWW;C8c?&C}f%sPnU0M?Ma z#yqxmRLhumWZNK7tjm-eybbO)Na&royCIhkWG?;{woFfZpKPspjW)u0p2g7_gg?t2 zQuj`rIx#YMcfK$6v5#<(l?5BKBfFl`_zhCpQbRDr5UzNlfNDtEd){|neNtuiP~T1}UR)Z|L>lv0 zO7eN?X)>cPNseVta@8D%p?R3zAk()79i?ULCMg%*IqhWiY+#>hV8Z96V}g^xI8C6N zw6L4cx^ig+;pWQEek^+qDcY|1nrgpZTmK$5)F%U+;h&TPGHm$al5Ll)pZ5-uhe&~o z$ftA9fyd({AEVUjRaHdE6afbNyI|zix42mBNk;vLu7WMIY=X%KsVfq9p)-$j`=IcH zxtpG*1AxTj$1Tf$aOfr9*Xjy*aJ>0&NV6Thn0!Z~Uq#X%_>nISZX7?SR=dp9(pz&Z z%-d=*#jeu&_=t-?K9VF_PhH%b91f$dW3>^-M$3-{r)38|n>L>Y8+WeHsA3VI2 ze=Tu)_W^8hb<5M{R8Vj|5eGoHT}L*1$7=??T{r~#x&T`HXIgOBfy|5nEY1=ZVgls{ z3^vus{^gSTzRi)cXBUSb|8CqcA%Sf(>O(ymygxB zMHPuHuyZ!uoYP%(^17zeG?{O0Bp$E5Pyn$}q)J4-+?hVfc>Mltt$^;UiCj@0>-Bqz~ zLXee&&Cxg<6P+l@5+IYL0N7YD@k+@vi$ZBWTS^=y!?;(%)+U89DF6*AWRe)ZTC(}c zdPIF~1?_Y1l^i{j_V&IBMj<~>SuQ7vu&Kq^%nXg7B03|C_yrW5)?($cgy*arnkJMJ!6G$m2g>Dse#;>D&E|PMbV0cLUhj!suK1 z17KEoPoP#Ci1XR_&dtt~87;Qg8mEk3kob%3jxbn8NppyN!?s!Bw&KJ1l zYSkA$;!rG-NF@-6RAklyfv~VKTYeGxoBl1Zb^0XnY5x1C9e>?hahP5$A4s>WMC0kt zhP3$+|G4+~VM>)^FwIsh+?D=hsW3(tF_uw9rxnKI=tdNyD*2fE@K?z3Of!vHn1E#% zF$`#l_wgg@D6UfuEpb>kB+LtbZNI!$##|;@37?-3Z40M8-K}WJA1pPyK7lxIoFFv zd#Y=WFdF@7Hh=$FTBQZvK{GKXJeEUvy=ETUYGUoyF7fFO4_Tpb5$TOeC9l4ZpoTL; zzVZnyX*Yk|b0+!3!PKAo0IszYlv{8;pyaBrID!K}a`dG8HM!d?vJkTU3Jr%GB9$m|rh5CW1$o)pdUKvgx@t zb4+A3VDMBuicy^0%%MS=XlfmfA?V`Do7Mta5bZaF%r4_lSYkLmy zY|e%9x`VmPrlNhMRNwboOBCqF#Y*T|_D$$qRJbpU`eR|P>%v1#XXhhL^964aeb`lV zm}u&LWNJFSWRoyGElioh#VqhhJ{S$dcaEwi^;@vGmduP69JVFK-2OYNL|)MB^{LEE6N;*gYF{rxr;no3 z*Ls91?TJzOWn`)~c~^jJ-I&&&F}L>TzF_umf66~R)O3sS4{iiMuK!nJ??nCspsn~! z`c0^ViFlY%=KIU9$A9SKyu@`a_?dvj(Xa0|gN;w@`_sRB!u^T>p-%lD-`!$KqD3{R)mD@E|D4FIUEbQpl;h#pf0cye^T0Csck@$&2F+wuDer)q~bMrz6~>* zieMt+p~&T=vx}|K;Kg_>a&_jRq-Tq7xB1cj^o7HYRr`EoZakxsBhEK?vdUvY`^;M) zTY)HjF?K5!_!LhX2FXysRvl9HcCOgSd!b|rs%>}RqyMm3>=B)?^pLaFTN;G zr?o%0MlU$@_Lmt8Z4Wi$i{d{{9@{Jaqw3NNP0!pb_x6`TM|!p-@OJf!9NJwRT~GGq z`q3K1>&k%vvDQ5z;EsSXs8uxv2Oe}JeKQ%_l6Rx7d!A`#``JTZtB;;i{!N?v#h~AhoZY7a_~ND1Cw!sVtB)|%C67>HW2OY{yP`K%w0=B0qIcdHj2F-DuC0ubFR!Wzs@%b5 zx_NS1%T9(Z5wy>|CDV?sfD-dJC)`BhMjYx8T}*ST7T#pP)T1*sBy6@vn=zYJCC2g{g_BF5nerid;c*% z=x*!&m#&xZDCvh2t|x5s8_AlQn0Ps1JKIB8PH7w_oK0ww`e*%+gmZ1atDwlg>1zTJ zI_SOWuyy*aP(cD`|M8`1xisH3`~R@fV|Kl~4K75U+XtTC0%~76(w|4{^^N-iLn=W} zP?M{mWTV!lOe$J!#PEPhBvFvLM9g#8Reqe#c}8TKYW~9lY0e0~{((#iWDS&D7rCQk z*%@3kCR3(DF%<1Aeno0w&XhuzCc4d+8`x5;sUQ*N{bk3CR*8O!Gg= zFxhP`iIP{HPp^RtM3Xw{HY`icUtFVc&R#Xtxy~q@lxP^GbIetdrYQ1bSFRrmI zuAx(FtW>U|mQJ_F_Ojrtm>qOmEj=1ze+?oJ zj^EMGyjlzI65RJ5Il@ua9~RXNVy@N7()QSb0^HF(mLd(MDu-8*KCXic;N4QAGncRH z5uxd};*=WAfjr2;rPmtdQ z>qF?h-5*5yfH9l)0L|>*=Y?QXieKqcS^j$cMdD)2&w&VNtK}t2{|w*EZ-tjBF+-+D zOZ^Ihu_6nQT5@T|*p5rFZYW5sX3VXV+=`;^OqCirYI^J9Jte_lN@J1A(kbkOvczz` zOtwT^Nc`DMd9*S(vY}w5b?mIvQF~6>HdcBKish}g@-x!f+Osw&UMPx`KnMAjIhkyfI9>$6Y*YvNFJxPEweiFl@PEvRLm zj%`$JY5@zTD<$b*$0S|bxy9jxXjC>NEs0T0s17d)9mW_qSbYJN;HWGb%~p1tS89D_ zOPM)x1D+#LXTe!%@xnrFA}_cr?wCy0T*M+aSmnMf&Cs&Zc(C+h08dn0my*jjrDB

7eh|( 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..05903d1586e85afd1abe4a8b5f046404ff6bf9e6 GIT binary patch literal 20556 zcmV({K+?Z=Pew8T0RR9108mT-761SM0F0~v08iKe0RR9100000000000000000000 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 fAJCBm;sT1Rw>7 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 Z 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 WT|-k#JMa8f4USh(qs=w}0002hN7P{e literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..532a888acc56caa2a15d60310419a08c19861bf9 GIT binary patch literal 22916 zcmV)EK)}CuPew8T0RR9109k|p5&!@I0GnU{09hIU0RR9100000000000000000000 z0000SG(SjIK~gUUU_Vn-K~#YpCmsNVS}$r52nzEo-W>~rWB@RMnF0Ye0we>2WCS1u zh!_WsPYeeevyBJXHjSxuCkWcAX#3A*BtqCYfFNiSBN4*J0T6`^C;$H^Bqw7C>#?Dl z`HCe

TysoTYE*k(`Lm$Z75am%ojB(D9>L+ivlnoumAWbNaRgvkjhc)3`tAKgL0 z8Fk?$1!6TJNvM_K(=$kVT2_)ubO$0qMH2cWlHfFQK+Pl6K#Efsqoa@{7~eOC&^H{u zI?n^&iyB>ft|Puq*f66NroPyJ+P~=G8Q=~pn&Ld3Ut9D3{=ZdhP`fO(R0_IO35v9Z ziC6*FHE;`hCnz@RAz^ajDR>w}8JTn~?DB_To1M;J<=y~^l9CjQFpz2y6%Z38RZxat zE!!xJT$QoJRebdJRdJQm|GH;-SZqml>^L6@>JAHs`#wp@0??6x5;n@3ft*^&iJTY& zme^vlEVN`9;)E9vUcj${W?uw!K(K^a;0z-V_51NVi+UA}zhOyCqIo0g-X-rYAipcH@pS}30~#Bn>MC57Az^VmyTGE(k`g;0*@Xw1Xj}uwv^_P^ zVz15m$PfS&Z0-*fE38_#=6N?O+D=DpMb!TGU7I`q6qU9kHN*oEC!$0Q5<-wdWrm;o z|DEa8Zz2_!N-0E>ZJ2}tp;Jj;#CayWy1O0I;oY?7Of60n2t3>ptZkrnZhRdU(Mfc3 zvkd&Ue2i;XZtbGO?R~!As*-Wlv#>~|1-oz=u{h^2W#xAu=UN_;mN(|c{8&!!zN8|S zlvLC=2d45eM}fJ8Tp^Qb|1q}-3wqvnK`)gv_}8T`y%*cku!%_7Ug8^-FjV#LO*Py90Gw_qHPFSqOkISn1oCEFD^>17 zF2!!0+K&&Chzl+O^1KY5TjA1*O3P(hDX(#nlvARdBH>6lQl9b0Dt(d{K6z;=r`72K zy zAnnV4U4f2mJk3RnF{PA7-f(<;t?^jRRlcgZ;jpj}--iA=+?(_I7oSF&F2qR5bNqEc z0Kf!SuJGWknel*K{d4L%K(0?+z7~*MmTuVqNB{sh005Z)01yBG7yu9v1CMTX!icdM zyaLA`*T^0o#7HYRkOz`j>A)JV3x_%$mDkC8~K02B?z^q%j5VB7y9I zG64e&?QLK+`Hc)T1ThPn>o{feQvd;m_yD18lW1U-9Y?_Qgj&Yv^*<*nj z^Gr%KZL!0aIx2-EwA;~^GM@h@G3%M$*LX{=lWL(A$G{R^e~X^+BldHg75_fI?8JN6 z92)#na077#0suY?5Qxx#`IHdA(Kw#TEQwZxe_RYv0N`#AM?@8}@1!DH#VLr67>OYT znTS<|&Fy3(j#L(LXI-QdL#XN(MBlj$y8)*h&|3h2rU39&Ow!oX1gAoC!0cQDzYNTd zG0B%BT|t73lQGi9G?v);hIxVc91M7YB3o2AToo(FU;+HM!{&v2jxFW@WN>%wP6FlX z43Dzot+;@q>ym~B2LU9&JLtf&DD+HAM1N3_8B6L&!71=yu5cWEW{89^7;Qg!4TpUs zZXy(fA!C~)C6@$U#N#Xy83l{Sk`|Y)5XXjao6`|2a4Hb&TObF~%(A~dgM`5V97_WT zq9qmrK_MguAjm@60U6|)dOTc?kFx!5@#5fKy|iZd*?H0N1LFVSF_nGGZi*2DI!R27 z4!I;YV+5fQZ5R5J%aVR|NDLREHxuq>tTam_eg54QXl-b zI>8Rae@9Jxy6HLpWzz(9Q-nV#kONRiuobqkQw_*7I*r#Yj$;Pwz!g-2sO>lM>`H#c zRxFCMKeWYT+yAarElm~cwi2+3fi9ZVqC_VejMome?)|jxAmZJNTrbl?)*$by;k0D! zT@(<**eJ`0N4!C z(wrHDRZW1QdFv@SF_4yaW^VdQu|mJ4Wvnn9csHVWDGQ@lk@*Y9uSv+>&tzObZ}3-^ zjyR<0@^(Lwvyghdi2*4rD5MB@;_1nBab@i@aqQa84xf_SJV5KeKXw?PSDRX;0cS7b z=svwya$J7IGiFRFyR_8e!*8uKo2>H6n$jqel399u`Ik;~Z26v9hM-vgCB8a#==b9+ zFU`|T7Dr%=wSQO&7#9&WiUvzrsC$BNtmCFdSnQ)6Mf2F&sG zAqgVeIQRyQi!-m)lB~~H@GqXo6AoVzz+vzr@=D)Lyf$HdJKof3d9Kpp>Qo62*VQ_1 z{Y---vV%YyQfwD}@7{>$+8j46;8Hho*V2&`7_h3C>Tk|1j#x`R%QAz>^nO$=jJRS5vZwJ{BK9 zU*%qP`)@gXO6HQ#0ta0CZzxm0iQR$NE$(SzvvKOuU`u#^*T~pbCAtHQj(AF?)mLWWFI|B7c?OmRW46%6u+#0ytmG;(AAt@qI(2TI>7ukQ|P63U*k z$C|c_Ddp#W?Ja!4desl!mPbAC)!TNK3zN*qBISV`6mgr>khcfC(y!K~JL=&ZsPuwA54`K8>e=;n3pdO+>lQDTO%W(MI)w_s-WmV zohHTNqnva6-*!2X^8_v!i!?bzgEGMLQjn6YL3$Lf?l6u`A(XmN8jv4ftr@89iOLG{ zt{Gb(?QmfJE~nw_Q)T;Pbu{Lp1?B8|6_ zJ}d>nBX-`8SwkpI87faStgu@$N$ac#qH zejiK)I8v(ZL(P*4=>hdcNQJT3-*h8&XRfftPbMOuCNF zTnd-o(p=AU7U`cU-DZbZO0xhrf9!qvKSYD|01ww(o_{r3RYS7opt>u)%L#H{`BM=C z7vXfSx;Y_5P3KAqRgFA{R@bf#Bap|LWGCpDE zvG@$~8!G$UBc?0Rc@_O>**_TPLL}IkHG6matqySh`2ujkQ<5vmF-(Bv0hCrIWO%?&b`W zAdhYG`s~p`GicP>m+>?tE`CmX;a@E#~WZhNJsAOr~MkEsVZ`24wJs`jTF1%CiSs@?%Y8tO6e z+kES&&?Qo8b8~5YbO2as?+o$msi{u{<4Qf&ZXO+VNj90BOo`l0H_2H|=dVDPM;`r4 zQ|jxg9^_1&FWZb#qtwV*5dANRkv^mS`qLALb@0*1XNNnw)Ar=EBm-x z{4=?!z^ChxwPG-};8(&p3G@ZGlxzWn7ngo5p)gZkw>l=1xeY9_xSqx3u$`Z`uv4%S zjJ>J#wNvsgK8TABRVIhKy|;h%hP4TDV=%^hEcf*hyILruhLkP3!xD~^bAjWGDg{Ei zRyvyTb0BOo-@b$8QApU1?E^m2OQ6c|7v`7`9P}W$vH+duBpzycIm@;AX4JBnIVqp8 z`Jy`Wsa#3+%u5GrYfJZwvqf3c3LRV&p#4WSiC}t2(lmeiE)d#^!(#-3iL(EJ+k511 z*&!%y<|>t5opO2QG{+H?z1n0AYyQ6acnSRP4 zetT5zjpMMjk#C&b$^AVsV9%k+DQ2~En&;h=zkXGfS;Fhrvr)W)TFfezd1RL9nUu>6 z5ktgO?6S&ogDb~dUCf*s=)iVa*0r=3ytZ?VsFNptcIiQ?bPL%Ygq^u8i8C+!f()|-Cq5024q$rg_p?Ai^yg>#u5 zakFSdTnhirw6HwI`I1o0f>x%GE6ZL`+pgE%lFFs>oBG(3_rqK{2n0Ehy)u*;;SuO) zw^Kp3B{W#@lxH|sJyT{caKcBoHlTIun`q z=1xXqyPQlPY$E)RznikA@C^7_2@6S|^b0RiUoLA4Tq?W3rNq`d;#0oiLMTs`Pp~nr z?SdJ|eJ=BQkzOAViH3Q(Ux1YXYyNYbF8s3QAj1_JI$sk zu02JYkYsZ2MG7AG=BrzC5e0dbxIZ=Kfy9WiuzS;{nH)#Wcvg3}ARv(zI2@)?PIZzt zVY$Vp%?CjlB3h0!&PD4Sxd-3=_#0KlFvqW4Ax`ljwy%hI*)$@zQ6*o!f-?$rlf9E* zdrAH>tA+_Uktzuiqua}^u|knBG`f;@pbadKoJAz5{_ zV-a}@ed^3&$Js^XICOl|;!%JH!&^DwaDEMqQ2yZ)Np1FK_I7IIMVUo>c9(3CaN8=cPb1@^PE8F7|w`#9WyE;#+Kdw#l{6oG~AIKYJ{mE z@~Tc^qTjjau=B4utGmxp7R>l%>5R3xmt_94Bc8suZ>Brf$TmWu1%{u7k`jsKN!h9p zeRr7IB43KPv`Hq(@wi9*mI5(-Na!5PWUX;YH_9n~g|eBU%rvB~pjg#2|StQG(Rs{L|7*gKFg=9u(5#WU}^3vkfg#` z|Ls|d6#?teb@`Hk59UJIwy_*zL*9_hzSz6?KKLu@{|(F}z-re$;T%|ISZ9;4JNtt# zF1a=DgRAN5zgSoNy>LT)?6n|L(=UT_l{uMaBx;S-Tw%n*JCrR6^K7=m1t+eG=UlPZ z3O5{y`Mae1Y;>ps5`FS0@3=M`2Zz7Eit}!ZkFbmmh43GxxeIZX)Ooa+DSHJ(o3K=_>K#wQlObjcRKAeFTFQY&Jtzu^OBnQ z{3JJD^`ip>L0;Z)7&sE@1D8h38G{)LhjLI@)nJ6VK}g)(*l>HKy>F~a#xKPn4%kx|8gmv;Ssg-aUYtlfXlO0ElK9Nb9XTB^!+d+U*}sW0VG z={N<9w0)dV-nmT>bTijd26^FK$7` z%AOD1mq_Zktom+xdt|zodHCn(%D-*uDJ~Iv0)(8{c|2;F)zfx!Hj6X2e683D!p^Sd zOn-kTde7}ZuKlt*wQ&8Za)HWFV@x`5JS6x^wWz>$d;6YU%K>4npfc~53fal1IK@qh zk|f(uUQy9uWHI%WI|(PN7>}pU%54$q4I!14t)ktBkUw{V)3CwgW6wpi>-Hp_=QMN(7v2m1MpVBK%5iFq5Jm|44L<$UiUZq>#sjfLg%I`Kd5@LNdH|%?W-&yfJ3+!PkB*lY{09#rdLRdRH`}pf71#zZx?R z)2}b${aZ${l;@UNX|(h`8sO2#C6+|IqKKis@fnQeQER1~?3Uc!BaO|{S3Ql&zyf-RX zzqK|=L46uF^3TV(>?(|!eIs25!<;#^Ppvoe;#HH?I`dJUFdPXlt-ruWl|o_4<9U^+ z?AdDk2VYE*B;CxPq2GawxFo_8d4L^M&H4Y_R1~!B{MpLF#6akhh!P#JUYFL-){nnr zSgjFF7R- z{6G}Z6E7rO`ok&T>0cj+@LWyY0`$U}zj#a3#|O0hX5PCA1=96*M_xyj3i-_xH*}zc zvnFQZZR6r<>%uYX=Y^7GR0`w@u zH)*QG*}(N>{e_iZMj2pf`Sevr4vPUUO}f$EO~3RQ9vK=L9vKI2rysAtq(UBlj)A6& zFdy~>%IFyy^7(meDa)O@cB(%Ubt8{nVbuuISX$!wb66wrzMR(kOfF0lFO6Vf$;s|? zYDZ>(VMhw+4Waoca#_MTgVq2{EQ>Ry^YW%MGH0AV0|di~4$WNd1{P~0y7ycL(>rS$ znXFB6M0G1PFJBKCvi#!1E)G2QDI8|bQ;X5WxT3^j(~snaS;?&{O;#5 zed({CK1IP`b?imeh!5RWUDWQXwh_8f@`S5&0!kN>FFtT0BJG3at6+6ff#*Ed_2 zmaM>ZMe4T7V5Ab*h~CVE(ErJ+F`_Ta-D0FD>6q&(C_=kpz>ww9jbs3eN0%Rk-sr1jpbHK~&KzLIaI4T4E zS2n(V_4OW$NNx3&HQ~J2mn(;0{|Ml zt{-h$K>~*920U~`*VBs#`6jjA8D=YMyoosikI%(AeanijZg0ntZP5nJV4+oHM)gHDk&;39*#3 zMn&LRumjAaHPt{lybBs5vgLvpNYl+`5=v5hg z)6v)@>q%oVEtJJy;}8iT{wZdtTPP^nsIYtz7P~+DPzZrjrh`ghp;rpg zBr>|uA#xaf)Bh2r>$!xlzQI0@$U5bbz{I-7?=eT$N{hrrucOK8+-E*Xif`Qv@%7Xi zz%27fs^X42BcxzmrL>WianL_Vg@&%P)40AT9pC&)CObhqLP7=<9UwkPg+|VdB`>d}$Kc8OCb#Sk!s~h57zbqK9mRk>KKj-Q zEk*@5mblH~)|f*I2J?v>w%hn*IPlcl_~d=!X)SNJy8+W%)6Vv1r)7ElqFsf>=ojrC zPC8X5EtVJKEMGJGvL@avTLM8ydDZ{x;d#H^BXJI_HVx8Nm&b(F*rDu{2~CeMv9Q*E)VmW!%uPfZa7KE+W;g>9YHIR%16VGUlV zo77r}&TQt0&9*c!ePi)=J}`QEGj0A*)Bs+PiaSjQG{>j&bB2L1K{HY#&lCxtc{z}u zUE~q;b-D)l8aw%~zK}cYrq9qDv;it47l`_huyZVh1cTFi^>+SBa;ibHpbP5b4os~8 zxP5NqS)v3Dic_;sKv`w^uxQ(d(3*hU=3K#;nim82uud!5(OD2K4AketHu_9q(85}J zN;!+}?4sD9Ps9R@)iwBe^(XUgkBdH=2$In(;)9Eu_r!n3Flb>Vs=1Ltg|yun@jn&H znP>>^+6Fa4VjdW@SV9Rx-tEy>h}Pj)g`g zR~-86>gOuA7S)OM!-m2vZu*^To7A3aZ?+>LvD)ET@H@GDWF2`s&jP&=eQetLX+KZf z!TYqMeaGWKb1=j>OcYS+zfY0!Q znU9(IjF~T)`RbWhgeAfXVZ-kK-Tk9IFP-(8S*=Jx2IP!9nEmM4PoMpg*{_~`MRZ1V zNmM5`p?s>O{#tx{-*@)?eBZVE?p(W7A|*##bV4ubv$;>4``mdm=3w5V=RJMii|4&+ z-sKK~L-a*(JegC9fa5ETdq!jE{?;Ell#gI>cWNH4MzxeM8koJF2RUPFFuIBJ9& z@lj~h8PpZjedBnv4edpDqIaVE(39ws=!=*X3=zY|?86LW=CDXC1)Gg6!fLQ)Yy-9h z+l}3g9mLLHm#`1y%_d$rHEsv)IPL?55558)#E;|OF~#Oy!c6qj3~4W$(agdLqlB}B zTZCuKIp)R0+vblgY?vyCBqr%eR+5VpAZ;e?CykJfkmgC(cwjzh@xtPZMW@A>C1EKb zW5_fzhb#@uA8t!;18gvWKmvdnditHb*ez)+!d7&kYDKCSe|W`{!t8jwzIguNTHXYO=tofkHW@=nV*#lZMrhc9T?u8HJu0>JD%m@ZSIx#+Yb{KhLjWdLve!r;woPu1 z(6qG;agYg_hko_xl@?Q*K+}T9O9w<6Ls5(tLuHH)`mJ;3r>*ckxo$cwW}9&#NUEXx zzA6bMYFCU5T}uI$()H1u^b~@kj2PaC^WmVLT554g0S&3_^Ub@BFz4Zq&bllo@8bK2Z90?-cyJ)oSq+H%rgWy547yMhM`}W zw&RD*h%t~#1iAGSN;Ko$2{c* zf4ODi*ci6RkQm}}At+9SO61D=y|fx&ca^NVjgE+2!2*jKvTgtuaq~L@S;Z3n{KMrlfAt5&{kPBHQ5T|Hsn1i-&c+B0&K*d(L5rMIgpwM$sDF)o6PF{6u?P&NTn;pjg!K>=&{_^-5oaFLyYHL%UG zQ9af&RgHU@uIi4#EPoKs)T(pg0lbo7;aR9fU}yyqg3=?SWD7}fP>f4ko6bGNxpaKI zAt*o)aH`xuKwPx6k8(Q5sd>W62pcJ7z27{wgc+7$QJTo!Pgv z0#r!l3gG9vE>oQhr?W}F+hW$~qgJ*IcXf&KBM2A^M zoAJ=TE`xvl^Xq^A_n~Fek_!l!+dyxlxRMS5K5Dk@PwpBpKRhQ%zE7jJaH)H0SDnC~e9@+G8yZwRk$vF*>HXeEu z0Vo1pmsYM%q6wFM<6l!XH?R1YVsS6|;mm_>1N^@kvu?@pw$)|-fEbBq4)lL7z21NM zDV85T@_DKCwF&4$bPawx4pJH5Dtviiy*;5%kmQ~$= zt*i2w#(TIZ2Tom;rI#4jl$c_mK{%PBD~J8O8}E64Z1a{^O4kccie_h$>8GmoIC7u} zag&Xh&@Siy5cGt0&-X|pSy8YEg?T^Wv^Fp(_UP1+#pV0&TaB!Wlt!Dgsg-+Uqob}w zS(NU#me$XZ<57uoiXe9kJ%dBjvP{PfmZZ^aXuDAuWc;62ghJ6+EM8Fi?K6^Uxgj~8 z=cp!zPV&pJyQedU!_kZPA*j0jsGw<5iG*q%r0YfLs(ZWdGF!%p#CGxxeb2SOTsprKTj^z%6uaR!5g&dwgVLo zCC#+#{<%|M<-8Ns8&1=1<{(eNeC`&P1AJOy#o#fTf*W?<3Ge$UA?aUwVMw4A7 zwumAPX{x#OxX@k2^0GYw&Di2Keos(67_>|@kj=FIjq1fbG$%}=P?rm25pEc0+*k6V zumqy3`B7oj@H6a?Pz64k(-ebe)5HAYz7fMwXYUTMn0-RoY?|ohG}M$fMklm~D71@$ zVZ7LJ3ss9dN0hG{rNk?&2gf_m5deTkKYB!^4|{OwlZ`lVf5P+!@?Q*7XRPzT zFD?}zb9|14tmg5Q$HR_RZQI#5m(>|CxD8d|bsvx6Iqlm6+1cC_-z?^qh|SCL(m6(FZ!?eAYPWf zWQp(-9#9-z*|639S5&~!QnN62ng5BRdd;YL^=TQ8Sfo7&)*jh3-p_8db zmpzSOd}~%!YyAHQ`%o=dE#uPy3$l|>6xY|0aTIn7^}kS+Q|-Xgy|9}Osd2x0d~@l$ z4q6;|WMgwTFVif0+k=1M)(y~_8nGB3!3!xqgFRK^S?-G59HXfsu+rJhT+hQL|wanGo~ii z)~XNvpR14#Fl;&nM>;I#)fiShq^YJ$kYE^X``KaC_pExM8}0H}Q}|K8+uA<-@BQRY)@ zVh4k&TEEw`;uUD08Vw<7l?F=V`xrAj(xWInpBt|89iqZo15Rd`Rg~cPT-Tp33pY_pl?tFVJ%dGYW;CWm<1#R!PR4%S#vXgoBtmx zr6P{ONjRabl=6fd)40acT=)o0Qw0)PgU3A;oF!EIq90%_`@s{&D8@I!y%?HFm9e|0s{f-=m{2jfZJ1rxOtWm)YZx^GgCTfn zNe^O3gpR}A!gZWR?D9pLhxPj;0fSh*;UB2Bd7EhUGG@TZ%#L?7I(Q(ASFEM5jPk`k z56TicDF|Ar=JVCQ{qoU9?%yI3KsAmSH$jE-5)A9tvTm{;8LgTAE`b;j-+xaMEx(2OrpV>~4gvW^bN=~p#lzwxF}a$EUBUGpfS4qN z7Cb)$jqz@Np+K7j76+gg6o$Zo&b|9ALz87|TFmAxup9P7IYEQ-iFgqvRck`s(vsRH zgt*e|1rsn}fqS36`m6gdLOVNrMvzBja{&M`4U9H;{4@lFm%#N$w+?V09Mv?xRQa~H zaC@)9c-g|s0*E&2$%m`Yv+LGg1Wz;G-d%~#2jxNlWWjdtwl+25rS4IGeC_fsnA{qz z&g$j7S^h&~CY>(VjA-NhStoJmPdhzgkDAPWgi<5jS9aUJ$wCzfOecd(mp)HHMu9X} zU+jqvJ4rta+XGYam|DtYx|TZ00J(#|izYPo1fq?J8Z<}!8ccgJPZ+tt0?R#b46d8k zY2*;#WI+?y@SQ-Dc@mxFwL*F!2C8(YtcePS6GTPP94{)HdRDh;&7(>_lT0vPt_ZQh zM86^F+Jb=##o76illr66rY4aHAs!(z@iGkU&JhOzNq6@Zlbt4eaLbwoTFIJ0(}t!kFQiJxgO9V z3Yv)Jnc=jLWTsKHKo<6u=+=e8NB|WlxN(Fi82db`#P3y^dg`Jua1+YRz|2;e2t;S3 z%d_;@0OT#mkw8!ll*3h6fiLd*g^ob)t4d6g`8-uku8ymjx21+4I$=8oN7< z-~CD0v0D4BERS=#{ z4`Gy~DGY@xz+$G0Gj$4W;#(?;7y7$r>|&Xiu4QPVh%6)SeOTq?eqG)O!-KxgvurlY0t&fwg*w-| z`ZLFzPTJGpLLw#`I(m$->rMnC$z#j8Ct3YZwN>6wd4%GcYo3XEvT109$|5Jon$4DF zyG0aUF|KD%HGjZ1lFQmjC~-pDX5 z$L0uf*dXBiX?-Y1w49E&D+UF77NpH{^l?WF8`tT#1eQib0&WG{M4vI zJ?vQ0i?V!&?~TfXhoGG6&N+9K{aM}U-(SOp-QV268ytQEbfD6`?}5^ybboc`3g+~@ zZBBv@s4B#F=v<9r#MU?8jEOJvRaL}~cK$ChQhk)R4S?$Yfn~DeBX8+~Xhfqth;Z9gh@=)1=sJGt?L-DJm>bN6rKjtMS=l z6J$F^PkwI)$OMVv%dt+LYh*~*L&w{8xW{rWDvWDbQgn3%6qZT?5M#*1Q?;M|XaA+$ z+uu!G9R}-=ooMo4>&N(a^?4Y}%h%>XpV;f!6Qd6|tkvJpwwfKQDlDAu+BDNwqf|_% zpeH+C0JJ^9o#fB$H|QT*XOd*{YxjX~yuX^P=#(R2ZQ8OFZmQ{GOFOR2i~s6%(OZly&PA1F`RdDe z8cUvmlY2RG{g~^3xGNC++O*T$-AY(Tj|t}&P04Dm_RAL4`{Vm}-#b$2GRzHES5FH^ zu8arLN{5-~1tG3)+3H|2WB&wSnJ$LCaM z5$@29nzUiRi#gN;B*ay5(~)AfdsNHSh062}fIB3O3rB3|!zj@OJ`^*$c z6)Av8i{KB-w<8AF23sDRGx{h9B8|DO)67|-*9+&57)+A5GnpOcBmwTMC^D++x+bt< zcVuLz@Ya@=FE+Ydebi1Rfzp;Ay=lk&aS-?#hfHoq|1U}VwHA@qIv3}tUo}oC?EZNh zA1{ZS1sL$;%8c_oual(en0`b#?ih4>F60Y^g25}HMucnia-QQzQ7|;1ZrK^rdLORa zKUK!XIIBh=PD=k6F6I^^+;y9IXR}PUeSZgZ)uscAP%bnAfpq)y^28W2#Q2PKapF2G zgCy@JDSKWe3A-gDjufNG#?cY48M-zDd#tLkps@RIH9=Z@{5H`fjuBMy*Vyx1op6He z)s7F1yr$gIx}hu*PEIyrCP`=CJ_^06~^*f!oh^*diJb%c>rkk#xNt) z1a9K7{m;w*9O0?XqSxAXqkicu{0hIWp8wEEJh>$Zye19TXOFdmp3Wzl=?1H@JvmwH zy0ImEybk-Zn&!0Hw!GT-g#;2TS3AeV04?V`l}(Iq6cf}_isLZYY{ljtJ=@o`p5b{4-7u*BVP9w2^8?pZiQX77 z-NdrfMqOzQxCmmz;dp@0_roX%)4}8xu`5o}JA02R=^0}u^Pphc&Av2gju>Zn% z_@G@$T9fLGWzT5;BxE@WRQbV7AiytoTr!Ae>u<-UYL+LCX4@Yt8t=5)5NP>DomgrX z?U28RH@q|Xhtq7-TQ(0l4xqhGsk}9xl-uT4d?gRaX9Sn{gpkT+k+tKN%OlOQ-dS6X zk2;l6-@=bfaJY`hj3Yk%#H&$YaLx79_CF-DTmn{NjOd6+si>)q)-AVEf=pFO_HDL< z@zDcBE~tvM=mM5SL#&{MgvmhD;G|6%BDiU<%WAcTmJlM?cED{FrUY@C$1`GOZ-GsuzL3jq3D%?huo*&EUK7|PE>8p*ZZQRYTEyjwvs ze9N|W9`s)o9UUh~ite=Rwo&ZAs%%K2BrAq|Ys~lX9K-M42hF%Xsay;#Za=v5U*n6X zZig+0a`rArdY^s@2$gm`@R+BsY$-ZBjTs?Uh?24v!;N>wu_;(lOw-jxtRfG?bsP@u zjIlsQ1^SmQQ@0kC4DfwdTyeU>rw%kfhQGl;Ih8yNhG| zrqqaWCh6z3;QPdJ?}3>l_-?NgUOTS zA;WOOUt4y&DM+})NSFihD253*t@a=A%ifumD#2VbBf*$QNO3~aF9@vFV!_=))PG8A z{4qdkm;bK3ouoq@9>%7#^EZQzN!Zb&^VHVv*>YLe=TZ^GN!fKq(59ZWQPhDjp?JC= z?mbt1J6inHiPB$HHV&ocT%QX|dh(&*y;26ekJcVXp+CU1o8}iGkrRx-5ShIdc6!MS$e0^z0X{lu&B-JN9h_hg-YYiF;HKf+xWH{g^McueYp zi(4G+QD`!5ZaGXDo(nVQj8H;RU}gG6Vikk~Vmn zCeo?QrV6R>qPURMj~FnhR`*}@dT_+V&}b}s&FK1mTPM5;HyX}4U61%K>4yKVqPX0Q z_BNFxlo8*elpM?Y)kg^_{(tkr=!Pa>P}S9~n|NkzQVNir8{{EpHKhml4O(AGkJL>H zX2FAA5JPZnDwSg%e?3%Y#P=?rll$(GjU?u7gbq%cq+>v=zqHT4^%_I^pui~{fb;nI z;b@Xn==6cIcjW;`qT`>^eu~ z7*umIeLpO=Ytg-VPj4;%W+zdwJlESP&joo^CM=~dZnW8c&eCWC< zJpC_kR&8`r)1}u(js6gJkxa+hA|7saYQ~Lh5KStIiMC8RR^c87u(|G!0-fx+!Z zVb_a#*Yo9q87v#a5#d6oX1E)zXD$drv?oV()kRWyW1C61c&@tm@2{(Agecc1Py2i7jJ;=rf`d)>$%NI%s8irso$;ubf^4aWbzF5miD+ZH|eZ$^~` zvEGXeTgVE*hULh!+}&MeNcI)Qc`El35rc*9;W!E9G8YtwjN&|$$yJW>YlYTiAVC0i!Li_u4Y9mKLJg6fPtjTSOGLmXviYo-DWd6ubjR?p@8uZZ@Rk5sttDx z^nvws6+C_g)frLv&2pxE;qGr|fy%o{pw8aJ$U6L=G2LG9nQQLj!+bRV)du{0eq4(0 zEaDLF>S%wVRf6{A?7m;<$#W<#%MIH$$pQ4d1!jo8b}5i7z>N`6x_qSPM}G|kPt!DB z)Mr^7C-kH!vWy_cyvUQ8|5M<;7N1p2Y|5Yg7=9tuy=LDSfnZhP!8ZCc`urHnl(@bJ zH=?EdyKo$;ahfiTX`C>REuoymelQJ*9n!xj#uONa%%s!5#vTqa>{@k6Y6niA3>bFW zd0*h+Ac#iGt%PFj@DS`bi@97Ls+mgwVX}IRq0bu5yGw;gu4)gLCyO&v0YNWELDO%9 z5d{>MV(_varR99?hxKAZu_abZnH@>o;1Q>cBqtR!u7qU?@pQrP8&ix_d{W?Oip1Nm zhrl<>eGEe?g=ex`GqkAct80jp{sNSb?i+(A z=!pgVHm;i=9TgJ4U43V+mU67;i~L@e!!e!@@nS=tAE6wBuQ{BRTv7JNmF4J11g)3? z(bb2l<%pxwX?0hfFi^9ZPo<~48czC-6tu&{17rwMjlw*DnJ~{AN^F0 z-^#ON1u}7NhN@WdP8TOz=_%$Bg*zOXnHe`-&TSDrO=zodbjpvt5vXvvI$IUb09`= zs*grB2rjhqBzWBjf#`+8;pRmNEl5%;RY7| z_mRzmHTgt4uh&HZA4zAxc^}ZE(_z4Gpdt)t)+A{Hx%gCZAvj zH*ioESV^fF0!|`<2j@Y?0Muyz@;{k|`Jb+>lkVL|TiYa5%xe5HhLIFZQCfXBIL~5g1}O7)R$#i#$&w9aU121bfcUn%FOEej!16PSiFC3vdxkm)9=+h-RbM zf;!)TLx3DFpxfY*Ya*-{8Ei{hfnOjl>FFR#dO78(XYr3#+1}o7@g2G!uAHhUXLUJc!Du z%Wg>23LOR81W3Nio9fbN3Vm661K;O2O=&?IT#;7r2 z2S38R*jIBUkeR<&L#p`nLwr2`9@UEmrCrW;47N) zeSD!QOF9+ofti(Z$~+?AsRp!m<(Ig_jRhOE!2km~qL&3a`3KboK%_=pa{emF5^_eP zLM%P#HdHSB{*aGMSi20X#;mv%yPiGWI3y-h6L#fXDsY?~w*GmdQfmhv-?VAldk%vt zW1T;&Pq|5bmjn9;c_6^1^ax`Yc?*siw7R+~>79$WVrR&PpF%xNn2p%19Vvp(e#35H zpbXg)I*YU*mXQQ|9|Y$Or6M5fP+Aj8a{~LWqe(o?Fce%Ad&+42@lapOL`LJYt`}jh zU+x}W`HvKD`iI@)9yz^uWZAX_icaU>#6Rrq`f3c!2}pkWf|5hERgAI28Br1#L#NZc zrY&lDjgIoI3;9xNG?1YAHKpiI^GIOX5)Hhz_#G+(N5)_|BuWb+KZ1meHg)Qz z60eQhazhl}{ONOt6GXP$0_DnVo7hO`)(?6b5X03Ns=%jj0cvfWlDA^2@TY!*52)j& zXNR{hK0W!pgn}dW6_8;B^4dsA1g+mRHA;ur#nOn{jL;3);v@LN!!e`qr_PGOqR(nS z#qVt<_*yUpQFOw-e{sDI8WM?%Y5d#Ub%7}GEqh(;I~<X)y?X;b#x1z5_1v?-p;uee;Gvge zS%3&}u8`$S1|nJ}h3mMd5hMZz(0@Fg<LO$-++biChP9W%(Rd=E#-a$v>+<43UXyuBw{?~<$rnpl7U8&HZYD0t z;3yO>T+RPtm(U?PRk3m$NNv#;r2h>^sXza%1Cp*Y;R#gKhF0CWAZ0o9x=d+(Jnsq; z+0u%gBN!ufA^*Sc1RX(6dSjqeJVf$aih1Bnj5*e_N9tRdGJEHl(I@03vGw!f3NQH8 zP=O328=(caA+V%zWvzC|B?}7Z_7IyrZRS!}GnZ~?NRJSVnH^p0^FIbfh#Bg+3(+X5 z9AG{jnFKx+s=|x1q=AWY{Fn7vduO|eO>X0zxKMZ+0VZ{$P%)QYKrB`;j;(u9;7&r9 z?eXeV<0=sWH)7~0J4JqvFb+v7VxY^GGm4vy;~UZRj9-?Wc9gTcC`qkcL@}bG8i=YQ z3%@2bj#?+S3E5xI=f?zGQ>Zq|fdS#?=Zo`0G4gl9RKZbk7{*=q)5Sp9g|SC8csMjz zpJVAEjJ$Pi7Z`3V4CZ7nHOw39ChC?u>FHX!&~iEJZeyH%f9}Xxc+DV;Gjc3k8+62$ z6yC*BJ1@(gCi9F;KNy2C$MDKp1*Wc+N=m|1)v~OX&v3DBBRk>S)T|b3rBMdqbiZ8$ z>WFDB_M=RdaW8@!xEmR#$@rdUIZ?R5hRJg2^!`N3`M zj`a+MwOgbZUf)LfSa$AHf^%g(5=Aw^o>svkfPh; zp;=M#1;Rm}^vkY^b|2XIKiMxDH^rF}+!*Y-$D1%Ie?)#G?p5<-zWt*~VE?fE z*EcMrKjd;3w)Bc&;$~bDl4;TSzrfz9XSAocV3@#rg0<~ai>o} zvXU$#VK4fesnfD0Sv8y!M9y^O3&o?c60@@O zc}na#7davP9I6>6xhqzX>zQFY_j-SnWV-jO2(-6CN$?Qt6b9(k`v;3(@7A5ZwD6|C zuFYUp!X|}VwjZ`JCNw$wjd@f{KQU?KGHOlq|FV$N-155dQE}bkxIECcXvtE`WV9s)Qs*_3n3uKt< z8;t<}3uT?2(m=t%0=>Wu?K7ixldfAkIH@ZoB3*^>OoQnYX_pMEue&&DfU)Ds#7Gz} zuG4(p(I_pamUd2TFH%?~*$q~TA0s4>)Kj)v_YNqfl{H3N>s-rJO)QKJcxR;JLTkbO zcRQmFmEoqhq@;DzCNM$wS6P7gcn3HboSdn^hqF1b3RUt|y^|VrKinQvhj>~I+>khi z%yJw{eIIz9J7^3azB4UeUgU<*cO-f|m*E%;_T9QbQD;o83JPXsE1&Yic`ZgZ0Kn8p zp@}T_95EffA;QiWP0YnPjph0Z7QQVNFlamaOzFuT@K{R$ARRK0W}^(=6bf1^B~KdL zMop6+`IPoaQJO@aD-iCqC@wSWdNxErn)gVyM@L>@2e_ip*7eei8(9nD_3I-yT>Vw$ zazi4WaBj2GEJanc3%@G63}yPhN$)H$ges1l(JD#^twl=;2zDvKP3D=t!_KgP5=_u^ z(=v69Mo!iR8i`6lr-s&OW33INIDwsJOuK?Yj$~dqCu()=IDW9-qT<3mSu=a!b}t)Y z(q~;3_Qh@ZXH8=JDe8r&-@EeRXJ9Mi0}i+W_{UNY^rw15#(Rpfus(SuwUuDi;38?1 zX~RK+yI#&JTPC_eV^mUSH1*}yaD0g&E7f%rN$hBzDdv)?B&2(=pP~pH8=0vOV-H~% z{ftLdCR-{OQjktUV|0yR>!P29?fXv3xX?Co&M0Xg?13E1%3P;GnE2VJcO{koB9w37SYzP-d;IaaXM=U;;Xn&K{e(@xoUf ztQD+eag_mlECNU7bMOV?0!BKK#((BY;S?OnmH?rCO5%!rQ#04gKsFqJqC-dKA8Rc< zz8L-CgUd($uVhsU6qai9uyj@yht41(-5s1Y#xe^o9{rn8U$T%}@Cns%nHa1qL*c0O zqAJS@R|s)noAh}rI-V)jGe}RmQj!-!*<7&jZwD7 zd)aJ}4UB!6uWZrKx8mQ&b^dwF!I>bPBArQZdNWxh$`?A|eX964K`lXB6Gtett>jyeaVjmF)3TQ{WhS10R+gJW|w^TecVntE-3TB!u(JD65-6- zqk^+wvlQ%9DOW^bwJj#%5!)Frb9igjMBaic_M%)eIJku}RIF4Wr;;nzuxkP(yCk-O zZova0oC#Q}m?S&N{mC}k1MXUL1{90T;Q^E-nLU~yt8A|Miw>3N^F_FcjL*fPd!)H2 zoFOH?o2zl86niPKJNH`Bx=#e=B@IbogxJz05*FSAmwSTQ_csDdS#hwAM z*7lPQW>wqFo2iG2{V#vSK?@m8@(~PfW6wWYzj6{g5#zv7xVAyKCMV(y0H|oQPzWS# zj1>l4jH@W1ikAupWn54M7{)#2lDaNHH*ORuHE&g^Kpc`CK! zT8ft*qEk>n{pI|%3)uMj#zrmiMhj<^xk{GF{o3SnvKzP7+2>pW6m-+Dwk@+6_894&(IE{oEE}^XV_R42wiQm- zZCmZuRBiIjx6)t`mPl@L2>X3K1uR%nvSQ7KEj#ucIC5&wx?axq;Atuq?-!*1Zwg8( z8d}8+N*I+gF|(*psalObMS&p-obfFf+$`{FsU6GVbfqh??e=(mFgT(yA`}{fZJYrP zPau-W6l&jTbOw{f=CqH?;|qi}r8t_1O(jy9T%j~msm(Q2TUgd&WetUC!kYw$0gUjY z&=@Sv0cr458lAypu{m5GUm)ykGvhnaZ$`1<(+tp};spixu*(yT?RHtjle>e8)8uMLb$%q*;6 zHg*n9F35K8wck^u@-GbU{=?))RURrEyIH{si(9{|MA>rM9U`W`MOn|QOIYTvp~Sa7 z(f704>Iw`#GwQdCy8jW`4CqP?7~lG|P%AJpx>>huDRUXtA@l32G!Y{_O_@1tZSe=j z9jeW_AKGc(qnq*NUpzAYNJZiFNPzGegtKa`W1)KQ0y_hP_^QHH;w0|(;L|u~$J27op zu+Q3MXzu=colaBiu+w>1)vJKNG|on=nG7jQdNhsqVr)`LJf9Bd;(OHSqs_4_*Y`^^ zqKfvM`c{zu(&kZI65s5vE{EwM;3yTxn5K^I^q?ob=w0}n?U#6O^F?O0X*U1>F)xOF literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b02e2d6c7f8901f3eb05af80a2a83cfdc6d0aa4e GIT binary patch literal 35912 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 ArvLx| literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ae2f9eb07f5bcc4cd04837e7b81e981a6ec0e290 GIT binary patch literal 14044 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 O-^LyLpW0vt0002rdp!XF literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bfa169c30067c4d08aa76dfb11f28526d169c9ea GIT binary patch literal 32796 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a15f5c1ebe002a1e4946b17672cce6f7344d40e GIT binary patch literal 18592 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d1ee097f467ba8d58e5dff343d2f07b5488be7b0 GIT binary patch literal 35328 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c8e6ed442f6ec162b17572024a2c87f64849fb2f GIT binary patch literal 14952 zcmV-uI+w+FPew8T0RR9106J&@5&!@I09mL206GBx0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1debc1b4b65ee902b30937a170cc5c960d93f5e4 GIT binary patch literal 38696 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 c1F$_IM;9 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�D|I?wbp&ZSuI(%^g0Ilg*pexLTYLGG1YI{^XF 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2 b/docs/mkdocs/public/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..10a65a78d1ea7c3c1eebfc15d52993f6c1bcaecf GIT binary patch literal 20504 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 IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/docs/mkdocs/public/assets/javascripts/bundle.79ae519e.min.js b/docs/mkdocs/public/assets/javascripts/bundle.79ae519e.min.js new file mode 100644 index 0000000..5c326a1 --- /dev/null +++ b/docs/mkdocs/public/assets/javascripts/bundle.79ae519e.min.js @@ -0,0 +1,16 @@ +"use strict";(()=>{var Zi=Object.create;var _r=Object.defineProperty;var ea=Object.getOwnPropertyDescriptor;var ta=Object.getOwnPropertyNames,Bt=Object.getOwnPropertySymbols,ra=Object.getPrototypeOf,Ar=Object.prototype.hasOwnProperty,bo=Object.prototype.propertyIsEnumerable;var ho=(e,t,r)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))Ar.call(t,r)&&ho(e,r,t[r]);if(Bt)for(var r of Bt(t))bo.call(t,r)&&ho(e,r,t[r]);return e};var vo=(e,t)=>{var r={};for(var o in e)Ar.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Bt)for(var o of Bt(e))t.indexOf(o)<0&&bo.call(e,o)&&(r[o]=e[o]);return r};var Cr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var oa=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ta(t))!Ar.call(e,n)&&n!==r&&_r(e,n,{get:()=>t[n],enumerable:!(o=ea(t,n))||o.enumerable});return e};var $t=(e,t,r)=>(r=e!=null?Zi(ra(e)):{},oa(t||!e||!e.__esModule?_r(r,"default",{value:e,enumerable:!0}):r,e));var go=(e,t,r)=>new Promise((o,n)=>{var i=c=>{try{a(r.next(c))}catch(p){n(p)}},s=c=>{try{a(r.throw(c))}catch(p){n(p)}},a=c=>c.done?o(c.value):Promise.resolve(c.value).then(i,s);a((r=r.apply(e,t)).next())});var xo=Cr((kr,yo)=>{(function(e,t){typeof kr=="object"&&typeof yo!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(kr,(function(){"use strict";function e(r){var o=!0,n=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(k){return!!(k&&k!==document&&k.nodeName!=="HTML"&&k.nodeName!=="BODY"&&"classList"in k&&"contains"in k.classList)}function c(k){var ut=k.type,je=k.tagName;return!!(je==="INPUT"&&s[ut]&&!k.readOnly||je==="TEXTAREA"&&!k.readOnly||k.isContentEditable)}function p(k){k.classList.contains("focus-visible")||(k.classList.add("focus-visible"),k.setAttribute("data-focus-visible-added",""))}function l(k){k.hasAttribute("data-focus-visible-added")&&(k.classList.remove("focus-visible"),k.removeAttribute("data-focus-visible-added"))}function f(k){k.metaKey||k.altKey||k.ctrlKey||(a(r.activeElement)&&p(r.activeElement),o=!0)}function u(k){o=!1}function d(k){a(k.target)&&(o||c(k.target))&&p(k.target)}function v(k){a(k.target)&&(k.target.classList.contains("focus-visible")||k.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(k.target))}function S(k){document.visibilityState==="hidden"&&(n&&(o=!0),X())}function X(){document.addEventListener("mousemove",ee),document.addEventListener("mousedown",ee),document.addEventListener("mouseup",ee),document.addEventListener("pointermove",ee),document.addEventListener("pointerdown",ee),document.addEventListener("pointerup",ee),document.addEventListener("touchmove",ee),document.addEventListener("touchstart",ee),document.addEventListener("touchend",ee)}function re(){document.removeEventListener("mousemove",ee),document.removeEventListener("mousedown",ee),document.removeEventListener("mouseup",ee),document.removeEventListener("pointermove",ee),document.removeEventListener("pointerdown",ee),document.removeEventListener("pointerup",ee),document.removeEventListener("touchmove",ee),document.removeEventListener("touchstart",ee),document.removeEventListener("touchend",ee)}function ee(k){k.target.nodeName&&k.target.nodeName.toLowerCase()==="html"||(o=!1,re())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",S,!0),X(),r.addEventListener("focus",d,!0),r.addEventListener("blur",v,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)}))});var ro=Cr((jy,Rn)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var qa=/["'&<>]/;Rn.exports=Ka;function Ka(e){var t=""+e,r=qa.exec(t);if(!r)return t;var o,n="",i=0,s=0;for(i=r.index;i{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Nt=="object"&&typeof io=="object"?io.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Nt=="object"?Nt.ClipboardJS=r():t.ClipboardJS=r()})(Nt,function(){return(function(){var e={686:(function(o,n,i){"use strict";i.d(n,{default:function(){return Xi}});var s=i(279),a=i.n(s),c=i(370),p=i.n(c),l=i(817),f=i.n(l);function u(q){try{return document.execCommand(q)}catch(C){return!1}}var d=function(C){var _=f()(C);return u("cut"),_},v=d;function S(q){var C=document.documentElement.getAttribute("dir")==="rtl",_=document.createElement("textarea");_.style.fontSize="12pt",_.style.border="0",_.style.padding="0",_.style.margin="0",_.style.position="absolute",_.style[C?"right":"left"]="-9999px";var D=window.pageYOffset||document.documentElement.scrollTop;return _.style.top="".concat(D,"px"),_.setAttribute("readonly",""),_.value=q,_}var X=function(C,_){var D=S(C);_.container.appendChild(D);var N=f()(D);return u("copy"),D.remove(),N},re=function(C){var _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},D="";return typeof C=="string"?D=X(C,_):C instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(C==null?void 0:C.type)?D=X(C.value,_):(D=f()(C),u("copy")),D},ee=re;function k(q){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(_){return typeof _}:k=function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},k(q)}var ut=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},_=C.action,D=_===void 0?"copy":_,N=C.container,G=C.target,We=C.text;if(D!=="copy"&&D!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(G!==void 0)if(G&&k(G)==="object"&&G.nodeType===1){if(D==="copy"&&G.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(D==="cut"&&(G.hasAttribute("readonly")||G.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(We)return ee(We,{container:N});if(G)return D==="cut"?v(G):ee(G,{container:N})},je=ut;function R(q){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?R=function(_){return typeof _}:R=function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},R(q)}function se(q,C){if(!(q instanceof C))throw new TypeError("Cannot call a class as a function")}function ce(q,C){for(var _=0;_0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof N.action=="function"?N.action:this.defaultAction,this.target=typeof N.target=="function"?N.target:this.defaultTarget,this.text=typeof N.text=="function"?N.text:this.defaultText,this.container=R(N.container)==="object"?N.container:document.body}},{key:"listenClick",value:function(N){var G=this;this.listener=p()(N,"click",function(We){return G.onClick(We)})}},{key:"onClick",value:function(N){var G=N.delegateTarget||N.currentTarget,We=this.action(G)||"copy",Yt=je({action:We,container:this.container,target:this.target(G),text:this.text(G)});this.emit(Yt?"success":"error",{action:We,text:Yt,trigger:G,clearSelection:function(){G&&G.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(N){return Mr("action",N)}},{key:"defaultTarget",value:function(N){var G=Mr("target",N);if(G)return document.querySelector(G)}},{key:"defaultText",value:function(N){return Mr("text",N)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(N){var G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return ee(N,G)}},{key:"cut",value:function(N){return v(N)}},{key:"isSupported",value:function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],G=typeof N=="string"?[N]:N,We=!!document.queryCommandSupported;return G.forEach(function(Yt){We=We&&!!document.queryCommandSupported(Yt)}),We}}]),_})(a()),Xi=Ji}),828:(function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,c){for(;a&&a.nodeType!==n;){if(typeof a.matches=="function"&&a.matches(c))return a;a=a.parentNode}}o.exports=s}),438:(function(o,n,i){var s=i(828);function a(l,f,u,d,v){var S=p.apply(this,arguments);return l.addEventListener(u,S,v),{destroy:function(){l.removeEventListener(u,S,v)}}}function c(l,f,u,d,v){return typeof l.addEventListener=="function"?a.apply(null,arguments):typeof u=="function"?a.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(S){return a(S,f,u,d,v)}))}function p(l,f,u,d){return function(v){v.delegateTarget=s(v.target,f),v.delegateTarget&&d.call(l,v)}}o.exports=c}),879:(function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}}),370:(function(o,n,i){var s=i(879),a=i(438);function c(u,d,v){if(!u&&!d&&!v)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(v))throw new TypeError("Third argument must be a Function");if(s.node(u))return p(u,d,v);if(s.nodeList(u))return l(u,d,v);if(s.string(u))return f(u,d,v);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function p(u,d,v){return u.addEventListener(d,v),{destroy:function(){u.removeEventListener(d,v)}}}function l(u,d,v){return Array.prototype.forEach.call(u,function(S){S.addEventListener(d,v)}),{destroy:function(){Array.prototype.forEach.call(u,function(S){S.removeEventListener(d,v)})}}}function f(u,d,v){return a(document.body,u,d,v)}o.exports=c}),817:(function(o){function n(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),p=document.createRange();p.selectNodeContents(i),c.removeAllRanges(),c.addRange(p),s=c.toString()}return s}o.exports=n}),279:(function(o){function n(){}n.prototype={on:function(i,s,a){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var c=this;function p(){c.off(i,p),s.apply(a,arguments)}return p._=s,this.on(i,p,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),c=0,p=a.length;for(c;c0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function B(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||c(d,S)})},v&&(n[d]=v(n[d])))}function c(d,v){try{p(o[d](v))}catch(S){u(i[0][3],S)}}function p(d){d.value instanceof dt?Promise.resolve(d.value.v).then(l,f):u(i[0][2],d)}function l(d){c("next",d)}function f(d){c("throw",d)}function u(d,v){d(v),i.shift(),i.length&&c(i[0][0],i[0][1])}}function To(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Oe=="function"?Oe(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),n(a,c,s.done,s.value)})}}function n(i,s,a,c){Promise.resolve(c).then(function(p){i({value:p,done:a})},s)}}function I(e){return typeof e=="function"}function yt(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var Jt=yt(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Ze(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var qe=(function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=Oe(s),c=a.next();!c.done;c=a.next()){var p=c.value;p.remove(this)}}catch(S){t={error:S}}finally{try{c&&!c.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var l=this.initialTeardown;if(I(l))try{l()}catch(S){i=S instanceof Jt?S.errors:[S]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=Oe(f),d=u.next();!d.done;d=u.next()){var v=d.value;try{So(v)}catch(S){i=i!=null?i:[],S instanceof Jt?i=B(B([],K(i)),K(S.errors)):i.push(S)}}}catch(S){o={error:S}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new Jt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)So(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Ze(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Ze(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=(function(){var t=new e;return t.closed=!0,t})(),e})();var $r=qe.EMPTY;function Xt(e){return e instanceof qe||e&&"closed"in e&&I(e.remove)&&I(e.add)&&I(e.unsubscribe)}function So(e){I(e)?e():e.unsubscribe()}var De={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var xt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,s=n.isStopped,a=n.observers;return i||s?$r:(this.currentObservers=null,a.push(r),new qe(function(){o.currentObservers=null,Ze(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,s=o.isStopped;n?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,o){return new Ho(r,o)},t})(F);var Ho=(function(e){ie(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:$r},t})(T);var jr=(function(e){ie(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t})(T);var Rt={now:function(){return(Rt.delegate||Date).now()},delegate:void 0};var It=(function(e){ie(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=Rt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,s=o._infiniteTimeWindow,a=o._timestampProvider,c=o._windowTime;n||(i.push(r),!s&&i.push(a.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,s=n._buffer,a=s.slice(),c=0;c0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t})(St);var Ro=(function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t})(Ot);var Dr=new Ro(Po);var Io=(function(e){ie(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=Tt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var s=r.actions;o!=null&&o===r._scheduled&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==o&&(Tt.cancelAnimationFrame(o),r._scheduled=void 0)},t})(St);var Fo=(function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o;r?o=r.id:(o=this._scheduled,this._scheduled=void 0);var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t})(Ot);var ye=new Fo(Io);var y=new F(function(e){return e.complete()});function tr(e){return e&&I(e.schedule)}function Vr(e){return e[e.length-1]}function pt(e){return I(Vr(e))?e.pop():void 0}function Fe(e){return tr(Vr(e))?e.pop():void 0}function rr(e,t){return typeof Vr(e)=="number"?e.pop():t}var Lt=(function(e){return e&&typeof e.length=="number"&&typeof e!="function"});function or(e){return I(e==null?void 0:e.then)}function nr(e){return I(e[wt])}function ir(e){return Symbol.asyncIterator&&I(e==null?void 0:e[Symbol.asyncIterator])}function ar(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function fa(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var sr=fa();function cr(e){return I(e==null?void 0:e[sr])}function pr(e){return wo(this,arguments,function(){var r,o,n,i;return Gt(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,dt(r.read())];case 3:return o=s.sent(),n=o.value,i=o.done,i?[4,dt(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,dt(n)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function lr(e){return I(e==null?void 0:e.getReader)}function U(e){if(e instanceof F)return e;if(e!=null){if(nr(e))return ua(e);if(Lt(e))return da(e);if(or(e))return ha(e);if(ir(e))return jo(e);if(cr(e))return ba(e);if(lr(e))return va(e)}throw ar(e)}function ua(e){return new F(function(t){var r=e[wt]();if(I(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function da(e){return new F(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?g(function(n,i){return e(n,i,o)}):be,Ee(1),r?Qe(t):tn(function(){return new fr}))}}function Yr(e){return e<=0?function(){return y}:E(function(t,r){var o=[];t.subscribe(w(r,function(n){o.push(n),e=2,!0))}function le(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new T}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,c=a===void 0?!0:a;return function(p){var l,f,u,d=0,v=!1,S=!1,X=function(){f==null||f.unsubscribe(),f=void 0},re=function(){X(),l=u=void 0,v=S=!1},ee=function(){var k=l;re(),k==null||k.unsubscribe()};return E(function(k,ut){d++,!S&&!v&&X();var je=u=u!=null?u:r();ut.add(function(){d--,d===0&&!S&&!v&&(f=Br(ee,c))}),je.subscribe(ut),!l&&d>0&&(l=new bt({next:function(R){return je.next(R)},error:function(R){S=!0,X(),f=Br(re,n,R),je.error(R)},complete:function(){v=!0,X(),f=Br(re,s),je.complete()}}),U(k).subscribe(l))})(p)}}function Br(e,t){for(var r=[],o=2;oe.next(document)),e}function M(e,t=document){return Array.from(t.querySelectorAll(e))}function j(e,t=document){let r=ue(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ue(e,t=document){return t.querySelector(e)||void 0}function Ne(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var Ra=L(h(document.body,"focusin"),h(document.body,"focusout")).pipe(Ae(1),Q(void 0),m(()=>Ne()||document.body),Z(1));function Ye(e){return Ra.pipe(m(t=>e.contains(t)),Y())}function it(e,t){return H(()=>L(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?jt(r=>He(+!r*t)):be,Q(e.matches(":hover"))))}function sn(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)sn(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)sn(o,n);return o}function br(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function _t(e){let t=x("script",{src:e});return H(()=>(document.head.appendChild(t),L(h(t,"load"),h(t,"error").pipe(b(()=>Nr(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),A(()=>document.head.removeChild(t)),Ee(1))))}var cn=new T,Ia=H(()=>typeof ResizeObserver=="undefined"?_t("https://unpkg.com/resize-observer-polyfill"):$(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>cn.next(t)))),b(e=>L(tt,$(e)).pipe(A(()=>e.disconnect()))),Z(1));function de(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Le(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return Ia.pipe(O(r=>r.observe(t)),b(r=>cn.pipe(g(o=>o.target===t),A(()=>r.unobserve(t)))),m(()=>de(e)),Q(de(e)))}function At(e){return{width:e.scrollWidth,height:e.scrollHeight}}function vr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function pn(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Be(e){return{x:e.offsetLeft,y:e.offsetTop}}function ln(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function mn(e){return L(h(window,"load"),h(window,"resize")).pipe($e(0,ye),m(()=>Be(e)),Q(Be(e)))}function gr(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ge(e){return L(h(e,"scroll"),h(window,"scroll"),h(window,"resize")).pipe($e(0,ye),m(()=>gr(e)),Q(gr(e)))}var fn=new T,Fa=H(()=>$(new IntersectionObserver(e=>{for(let t of e)fn.next(t)},{threshold:0}))).pipe(b(e=>L(tt,$(e)).pipe(A(()=>e.disconnect()))),Z(1));function mt(e){return Fa.pipe(O(t=>t.observe(e)),b(t=>fn.pipe(g(({target:r})=>r===e),A(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function un(e,t=16){return Ge(e).pipe(m(({y:r})=>{let o=de(e),n=At(e);return r>=n.height-o.height-t}),Y())}var yr={drawer:j("[data-md-toggle=drawer]"),search:j("[data-md-toggle=search]")};function dn(e){return yr[e].checked}function at(e,t){yr[e].checked!==t&&yr[e].click()}function Je(e){let t=yr[e];return h(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function ja(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ua(){return L(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function hn(){let e=h(window,"keydown").pipe(g(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:dn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),g(({mode:t,type:r})=>{if(t==="global"){let o=Ne();if(typeof o!="undefined")return!ja(o,r)}return!0}),le());return Ua().pipe(b(t=>t?y:e))}function we(){return new URL(location.href)}function st(e,t=!1){if(V("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function bn(){return new T}function vn(){return location.hash.slice(1)}function gn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Zr(e){return L(h(window,"hashchange"),e).pipe(m(vn),Q(vn()),g(t=>t.length>0),Z(1))}function yn(e){return Zr(e).pipe(m(t=>ue(`[id="${t}"]`)),g(t=>typeof t!="undefined"))}function Wt(e){let t=matchMedia(e);return ur(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function xn(){let e=matchMedia("print");return L(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function eo(e,t){return e.pipe(b(r=>r?t():y))}function to(e,t){return new F(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let s=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+s*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function ze(e,t){return to(e,t).pipe(b(r=>r.text()),m(r=>JSON.parse(r)),Z(1))}function xr(e,t){let r=new DOMParser;return to(e,t).pipe(b(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),Z(1))}function En(e,t){let r=new DOMParser;return to(e,t).pipe(b(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),Z(1))}function wn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function Tn(){return L(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(wn),Q(wn()))}function Sn(){return{width:innerWidth,height:innerHeight}}function On(){return h(window,"resize",{passive:!0}).pipe(m(Sn),Q(Sn()))}function Ln(){return z([Tn(),On()]).pipe(m(([e,t])=>({offset:e,size:t})),Z(1))}function Er(e,{viewport$:t,header$:r}){let o=t.pipe(ne("size")),n=z([o,r]).pipe(m(()=>Be(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:s,size:a},{x:c,y:p}])=>({offset:{x:s.x-c,y:s.y-p+i},size:a})))}function Wa(e){return h(e,"message",t=>t.data)}function Da(e){let t=new T;return t.subscribe(r=>e.postMessage(r)),t}function Mn(e,t=new Worker(e)){let r=Wa(t),o=Da(t),n=new T;n.subscribe(o);let i=o.pipe(oe(),ae(!0));return n.pipe(oe(),Ve(r.pipe(W(i))),le())}var Va=j("#__config"),Ct=JSON.parse(Va.textContent);Ct.base=`${new URL(Ct.base,we())}`;function Te(){return Ct}function V(e){return Ct.features.includes(e)}function Me(e,t){return typeof t!="undefined"?Ct.translations[e].replace("#",t.toString()):Ct.translations[e]}function Ce(e,t=document){return j(`[data-md-component=${e}]`,t)}function me(e,t=document){return M(`[data-md-component=${e}]`,t)}function Na(e){let t=j(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>j(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function _n(e){if(!V("announce.dismiss")||!e.childElementCount)return y;if(!e.hidden){let t=j(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return H(()=>{let t=new T;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),Na(e).pipe(O(r=>t.next(r)),A(()=>t.complete()),m(r=>P({ref:e},r)))})}function za(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function An(e,t){let r=new T;return r.subscribe(({hidden:o})=>{e.hidden=o}),za(e,t).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))}function Dt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function wr(...e){return x("div",{class:"md-tooltip2",role:"dialog"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function Cn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function kn(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Dt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Dt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function Hn(e){return x("button",{class:"md-code__button",title:Me("clipboard.copy"),"data-clipboard-target":`#${e} > code`,"data-md-type":"copy"})}function $n(){return x("button",{class:"md-code__button",title:"Toggle line selection","data-md-type":"select"})}function Pn(){return x("nav",{class:"md-code__nav"})}var In=$t(ro());function oo(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(c=>!e.terms[c]).reduce((c,p)=>[...c,x("del",null,(0,In.default)(p))," "],[]).slice(0,-1),i=Te(),s=new URL(e.location,i.base);V("search.highlight")&&s.searchParams.set("h",Object.entries(e.terms).filter(([,c])=>c).reduce((c,[p])=>`${c} ${p}`.trim(),""));let{tags:a}=Te();return x("a",{href:`${s}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&x("nav",{class:"md-tags"},e.tags.map(c=>{let p=a?c in a?`md-tag-icon md-tag--${a[c]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${p}`},c)})),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Me("search.result.term.missing"),": ",...n)))}function Fn(e){let t=e[0].score,r=[...e],o=Te(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),s=r.findIndex(l=>l.scoreoo(l,1)),...c.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,c.length>0&&c.length===1?Me("search.result.more.one"):Me("search.result.more.other",c.length))),...c.map(l=>oo(l,1)))]:[]];return x("li",{class:"md-search-result__item"},p)}function jn(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?br(r):r)))}function no(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function Un(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Qa(e){var o;let t=Te(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Wn(e,t){var o;let r=Te();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Me("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Qa)))}var Ya=0;function Ba(e,t=250){let r=z([Ye(e),it(e,t)]).pipe(m(([n,i])=>n||i),Y()),o=H(()=>pn(e)).pipe(J(Ge),gt(1),Pe(r),m(()=>ln(e)));return r.pipe(Re(n=>n),b(()=>z([r,o])),m(([n,i])=>({active:n,offset:i})),le())}function Vt(e,t,r=250){let{content$:o,viewport$:n}=t,i=`__tooltip2_${Ya++}`;return H(()=>{let s=new T,a=new jr(!1);s.pipe(oe(),ae(!1)).subscribe(a);let c=a.pipe(jt(l=>He(+!l*250,Dr)),Y(),b(l=>l?o:y),O(l=>l.id=i),le());z([s.pipe(m(({active:l})=>l)),c.pipe(b(l=>it(l,250)),Q(!1))]).pipe(m(l=>l.some(f=>f))).subscribe(a);let p=a.pipe(g(l=>l),te(c,n),m(([l,f,{size:u}])=>{let d=e.getBoundingClientRect(),v=d.width/2;if(f.role==="tooltip")return{x:v,y:8+d.height};if(d.y>=u.height/2){let{height:S}=de(f);return{x:v,y:-16-S}}else return{x:v,y:16+d.height}}));return z([c,s,p]).subscribe(([l,{offset:f},u])=>{l.style.setProperty("--md-tooltip-host-x",`${f.x}px`),l.style.setProperty("--md-tooltip-host-y",`${f.y}px`),l.style.setProperty("--md-tooltip-x",`${u.x}px`),l.style.setProperty("--md-tooltip-y",`${u.y}px`),l.classList.toggle("md-tooltip2--top",u.y<0),l.classList.toggle("md-tooltip2--bottom",u.y>=0)}),a.pipe(g(l=>l),te(c,(l,f)=>f),g(l=>l.role==="tooltip")).subscribe(l=>{let f=de(j(":scope > *",l));l.style.setProperty("--md-tooltip-width",`${f.width}px`),l.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(Y(),xe(ye),te(c)).subscribe(([l,f])=>{f.classList.toggle("md-tooltip2--active",l)}),z([a.pipe(g(l=>l)),c]).subscribe(([l,f])=>{f.role==="dialog"?(e.setAttribute("aria-controls",i),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",i)}),a.pipe(g(l=>!l)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),Ba(e,r).pipe(O(l=>s.next(l)),A(()=>s.complete()),m(l=>P({ref:e},l)))})}function Xe(e,{viewport$:t},r=document.body){return Vt(e,{content$:new F(o=>{let n=e.title,i=Cn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t},0)}function Ga(e,t){let r=H(()=>z([mn(e),Ge(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:s,height:a}=de(e);return{x:o-i.x+s/2,y:n-i.y+a/2}}));return Ye(e).pipe(b(o=>r.pipe(m(n=>({active:o,offset:n})),Ee(+!o||1/0))))}function Dn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return H(()=>{let i=new T,s=i.pipe(oe(),ae(!0));return i.subscribe({next({offset:a}){e.style.setProperty("--md-tooltip-x",`${a.x}px`),e.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),mt(e).pipe(W(s)).subscribe(a=>{e.toggleAttribute("data-md-visible",a)}),L(i.pipe(g(({active:a})=>a)),i.pipe(Ae(250),g(({active:a})=>!a))).subscribe({next({active:a}){a?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe($e(16,ye)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(gt(125,ye),g(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?e.style.setProperty("--md-tooltip-0",`${-a}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(W(s),g(a=>!(a.metaKey||a.ctrlKey))).subscribe(a=>{a.stopPropagation(),a.preventDefault()}),h(n,"mousedown").pipe(W(s),te(i)).subscribe(([a,{active:c}])=>{var p;if(a.button!==0||a.metaKey||a.ctrlKey)a.preventDefault();else if(c){a.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(p=Ne())==null||p.blur()}}),r.pipe(W(s),g(a=>a===o),nt(125)).subscribe(()=>e.focus()),Ga(e,t).pipe(O(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function Ja(e){let t=Te();if(e.tagName!=="CODE")return[e];let r=[".c",".c1",".cm"];if(t.annotate&&typeof t.annotate=="object"){let o=e.closest("[class|=language]");if(o)for(let n of Array.from(o.classList)){if(!n.startsWith("language-"))continue;let[,i]=n.split("-");i in t.annotate&&r.push(...t.annotate[i])}}return M(r.join(", "),e)}function Xa(e){let t=[];for(let r of Ja(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let s;for(;s=/(\(\d+\))(!)?/.exec(i.textContent);){let[,a,c]=s;if(typeof c=="undefined"){let p=i.splitText(s.index);i=p.splitText(a.length),t.push(p)}else{i.textContent=a,t.push(i);break}}}}return t}function Vn(e,t){t.append(...Array.from(e.childNodes))}function Tr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,s=new Map;for(let a of Xa(t)){let[,c]=a.textContent.match(/\((\d+)\)/);ue(`:scope > li:nth-child(${c})`,e)&&(s.set(c,kn(c,i)),a.replaceWith(s.get(c)))}return s.size===0?y:H(()=>{let a=new T,c=a.pipe(oe(),ae(!0)),p=[];for(let[l,f]of s)p.push([j(".md-typeset",f),j(`:scope > li:nth-child(${l})`,e)]);return o.pipe(W(c)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of p)l?Vn(f,u):Vn(u,f)}),L(...[...s].map(([,l])=>Dn(l,t,{target$:r}))).pipe(A(()=>a.complete()),le())})}function Nn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Nn(t)}}function zn(e,t){return H(()=>{let r=Nn(e);return typeof r!="undefined"?Tr(r,e,t):y})}var Kn=$t(ao());var Za=0,qn=L(h(window,"keydown").pipe(m(()=>!0)),L(h(window,"keyup"),h(window,"contextmenu")).pipe(m(()=>!1))).pipe(Q(!1),Z(1));function Qn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Qn(t)}}function es(e){return Le(e).pipe(m(({width:t})=>({scrollable:At(e).width>t})),ne("scrollable"))}function Yn(e,t){let{matches:r}=matchMedia("(hover)"),o=H(()=>{let n=new T,i=n.pipe(Yr(1));n.subscribe(({scrollable:d})=>{d&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let s=[],a=e.closest("pre"),c=a.closest("[id]"),p=c?c.id:Za++;a.id=`__code_${p}`;let l=[],f=e.closest(".highlight");if(f instanceof HTMLElement){let d=Qn(f);if(typeof d!="undefined"&&(f.classList.contains("annotate")||V("content.code.annotate"))){let v=Tr(d,e,t);l.push(Le(f).pipe(W(i),m(({width:S,height:X})=>S&&X),Y(),b(S=>S?v:y)))}}let u=M(":scope > span[id]",e);if(u.length&&(e.classList.add("md-code__content"),e.closest(".select")||V("content.code.select")&&!e.closest(".no-select"))){let d=+u[0].id.split("-").pop(),v=$n();s.push(v),V("content.tooltips")&&l.push(Xe(v,{viewport$}));let S=h(v,"click").pipe(Ut(R=>!R,!1),O(()=>v.blur()),le());S.subscribe(R=>{v.classList.toggle("md-code__button--active",R)});let X=fe(u).pipe(J(R=>it(R).pipe(m(se=>[R,se]))));S.pipe(b(R=>R?X:y)).subscribe(([R,se])=>{let ce=ue(".hll.select",R);if(ce&&!se)ce.replaceWith(...Array.from(ce.childNodes));else if(!ce&&se){let he=document.createElement("span");he.className="hll select",he.append(...Array.from(R.childNodes).slice(1)),R.append(he)}});let re=fe(u).pipe(J(R=>h(R,"mousedown").pipe(O(se=>se.preventDefault()),m(()=>R)))),ee=S.pipe(b(R=>R?re:y),te(qn),m(([R,se])=>{var he;let ce=u.indexOf(R)+d;if(se===!1)return[ce,ce];{let Se=M(".hll",e).map(Ue=>u.indexOf(Ue.parentElement)+d);return(he=window.getSelection())==null||he.removeAllRanges(),[Math.min(ce,...Se),Math.max(ce,...Se)]}})),k=Zr(y).pipe(g(R=>R.startsWith(`__codelineno-${p}-`)));k.subscribe(R=>{let[,,se]=R.split("-"),ce=se.split(":").map(Se=>+Se-d+1);ce.length===1&&ce.push(ce[0]);for(let Se of M(".hll:not(.select)",e))Se.replaceWith(...Array.from(Se.childNodes));let he=u.slice(ce[0]-1,ce[1]);for(let Se of he){let Ue=document.createElement("span");Ue.className="hll",Ue.append(...Array.from(Se.childNodes).slice(1)),Se.append(Ue)}}),k.pipe(Ee(1),xe(pe)).subscribe(R=>{if(R.includes(":")){let se=document.getElementById(R.split(":")[0]);se&&setTimeout(()=>{let ce=se,he=-64;for(;ce!==document.body;)he+=ce.offsetTop,ce=ce.offsetParent;window.scrollTo({top:he})},1)}});let je=fe(M('a[href^="#__codelineno"]',f)).pipe(J(R=>h(R,"click").pipe(O(se=>se.preventDefault()),m(()=>R)))).pipe(W(i),te(qn),m(([R,se])=>{let he=+j(`[id="${R.hash.slice(1)}"]`).parentElement.id.split("-").pop();if(se===!1)return[he,he];{let Se=M(".hll",e).map(Ue=>+Ue.parentElement.id.split("-").pop());return[Math.min(he,...Se),Math.max(he,...Se)]}}));L(ee,je).subscribe(R=>{let se=`#__codelineno-${p}-`;R[0]===R[1]?se+=R[0]:se+=`${R[0]}:${R[1]}`,history.replaceState({},"",se),window.dispatchEvent(new HashChangeEvent("hashchange",{newURL:window.location.origin+window.location.pathname+se,oldURL:window.location.href}))})}if(Kn.default.isSupported()&&(e.closest(".copy")||V("content.code.copy")&&!e.closest(".no-copy"))){let d=Hn(a.id);s.push(d),V("content.tooltips")&&l.push(Xe(d,{viewport$}))}if(s.length){let d=Pn();d.append(...s),a.insertBefore(d,e)}return es(e).pipe(O(d=>n.next(d)),A(()=>n.complete()),m(d=>P({ref:e},d)),Ve(L(...l).pipe(W(i))))});return V("content.lazy")?mt(e).pipe(g(n=>n),Ee(1),b(()=>o)):o}function ts(e,{target$:t,print$:r}){let o=!0;return L(t.pipe(m(n=>n.closest("details:not([open])")),g(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(g(n=>n||!o),O(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Bn(e,t){return H(()=>{let r=new T;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),ts(e,t).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}var Gn=0;function rs(e){let t=document.createElement("h3");t.innerHTML=e.innerHTML;let r=[t],o=e.nextElementSibling;for(;o&&!(o instanceof HTMLHeadingElement);)r.push(o),o=o.nextElementSibling;return r}function os(e,t){for(let r of M("[href], [src]",e))for(let o of["href","src"]){let n=r.getAttribute(o);if(n&&!/^(?:[a-z]+:)?\/\//i.test(n)){r[o]=new URL(r.getAttribute(o),t).toString();break}}for(let r of M("[name^=__], [for]",e))for(let o of["id","for","name"]){let n=r.getAttribute(o);n&&r.setAttribute(o,`${n}$preview_${Gn}`)}return Gn++,$(e)}function Jn(e,t){let{sitemap$:r}=t;if(!(e instanceof HTMLAnchorElement))return y;if(!(V("navigation.instant.preview")||e.hasAttribute("data-preview")))return y;e.removeAttribute("title");let o=z([Ye(e),it(e)]).pipe(m(([i,s])=>i||s),Y(),g(i=>i));return rt([r,o]).pipe(b(([i])=>{let s=new URL(e.href);return s.search=s.hash="",i.has(`${s}`)?$(s):y}),b(i=>xr(i).pipe(b(s=>os(s,i)))),b(i=>{let s=e.hash?`article [id="${e.hash.slice(1)}"]`:"article h1",a=ue(s,i);return typeof a=="undefined"?y:$(rs(a))})).pipe(b(i=>{let s=new F(a=>{let c=wr(...i);return a.next(c),document.body.append(c),()=>c.remove()});return Vt(e,P({content$:s},t))}))}var Xn=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.flowchartTitleText{fill:var(--md-mermaid-label-fg-color)}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color)}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}.classDiagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs marker.marker.composition.class path,defs marker.marker.dependency.class path,defs marker.marker.extension.class path{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs marker.marker.aggregation.class path{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}.statediagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}[id^=entity] path,[id^=entity] rect{fill:var(--md-default-bg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs .marker.oneOrMore.er *,defs .marker.onlyOne.er *,defs .marker.zeroOrMore.er *,defs .marker.zeroOrOne.er *{stroke:var(--md-mermaid-edge-color)!important}text:not([class]):last-child{fill:var(--md-mermaid-label-fg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var so,is=0;function as(){return typeof mermaid=="undefined"||mermaid instanceof Element?_t("https://everoddandeven.github.io/monero-python/assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js"):$(void 0)}function Zn(e){return e.classList.remove("mermaid"),so||(so=as().pipe(O(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Xn,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),Z(1))),so.subscribe(()=>go(null,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${is++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),s=r.attachShadow({mode:"closed"});s.innerHTML=n,e.replaceWith(r),i==null||i(s)})),so.pipe(m(()=>({ref:e})))}var ei=x("table");function ti(e){return e.replaceWith(ei),ei.replaceWith(Un(e)),$({ref:e})}function ss(e){let t=e.find(r=>r.checked)||e[0];return L(...e.map(r=>h(r,"change").pipe(m(()=>j(`label[for="${r.id}"]`))))).pipe(Q(j(`label[for="${t.id}"]`)),m(r=>({active:r})))}function ri(e,{viewport$:t,target$:r}){let o=j(".tabbed-labels",e),n=M(":scope > input",e),i=no("prev");e.append(i);let s=no("next");return e.append(s),H(()=>{let a=new T,c=a.pipe(oe(),ae(!0));z([a,Le(e),mt(e)]).pipe(W(c),$e(1,ye)).subscribe({next([{active:p},l]){let f=Be(p),{width:u}=de(p);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=gr(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([Ge(o),Le(o)]).pipe(W(c)).subscribe(([p,l])=>{let f=At(o);i.hidden=p.x<16,s.hidden=p.x>f.width-l.width-16}),L(h(i,"click").pipe(m(()=>-1)),h(s,"click").pipe(m(()=>1))).pipe(W(c)).subscribe(p=>{let{width:l}=de(o);o.scrollBy({left:l*p,behavior:"smooth"})}),r.pipe(W(c),g(p=>n.includes(p))).subscribe(p=>p.click()),o.classList.add("tabbed-labels--linked");for(let p of n){let l=j(`label[for="${p.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(W(c),g(f=>!(f.metaKey||f.ctrlKey)),O(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return V("content.tabs.link")&&a.pipe(Ie(1),te(t)).subscribe(([{active:p},{offset:l}])=>{let f=p.innerText.trim();if(p.hasAttribute("data-md-switching"))p.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let v of M("[data-tabs]"))for(let S of M(":scope > input",v)){let X=j(`label[for="${S.id}"]`);if(X!==p&&X.innerText.trim()===f){X.setAttribute("data-md-switching",""),S.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),a.pipe(W(c)).subscribe(()=>{for(let p of M("audio, video",e))p.offsetWidth&&p.autoplay?p.play().catch(()=>{}):p.pause()}),ss(n).pipe(O(p=>a.next(p)),A(()=>a.complete()),m(p=>P({ref:e},p)))}).pipe(et(pe))}function oi(e,t){let{viewport$:r,target$:o,print$:n}=t;return L(...M(".annotate:not(.highlight)",e).map(i=>zn(i,{target$:o,print$:n})),...M("pre:not(.mermaid) > code",e).map(i=>Yn(i,{target$:o,print$:n})),...M("a",e).map(i=>Jn(i,t)),...M("pre.mermaid",e).map(i=>Zn(i)),...M("table:not([class])",e).map(i=>ti(i)),...M("details",e).map(i=>Bn(i,{target$:o,print$:n})),...M("[data-tabs]",e).map(i=>ri(i,{viewport$:r,target$:o})),...M("[title]:not([data-preview])",e).filter(()=>V("content.tooltips")).map(i=>Xe(i,{viewport$:r})),...M(".footnote-ref",e).filter(()=>V("content.footnote.tooltips")).map(i=>Vt(i,{content$:new F(s=>{let a=new URL(i.href).hash.slice(1),c=Array.from(document.getElementById(a).cloneNode(!0).children),p=wr(...c);return s.next(p),document.body.append(p),()=>p.remove()}),viewport$:r})))}function cs(e,{alert$:t}){return t.pipe(b(r=>L($(!0),$(!1).pipe(nt(2e3))).pipe(m(o=>({message:r,active:o})))))}function ni(e,t){let r=j(".md-typeset",e);return H(()=>{let o=new T;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),cs(e,t).pipe(O(n=>o.next(n)),A(()=>o.complete()),m(n=>P({ref:e},n)))})}var ps=0;function ls(e,t){document.body.append(e);let{width:r}=de(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=vr(t),n=typeof o!="undefined"?Ge(o):$({x:0,y:0}),i=L(Ye(t),it(t)).pipe(Y());return z([i,n]).pipe(m(([s,a])=>{let{x:c,y:p}=Be(t),l=de(t),f=t.closest("table");return f&&t.parentElement&&(c+=f.offsetLeft+t.parentElement.offsetLeft,p+=f.offsetTop+t.parentElement.offsetTop),{active:s,offset:{x:c-a.x+l.width/2-r/2,y:p-a.y+l.height+8}}}))}function ii(e){let t=e.title;if(!t.length)return y;let r=`__tooltip_${ps++}`,o=Dt(r,"inline"),n=j(".md-typeset",o);return n.innerHTML=t,H(()=>{let i=new T;return i.subscribe({next({offset:s}){o.style.setProperty("--md-tooltip-x",`${s.x}px`),o.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),L(i.pipe(g(({active:s})=>s)),i.pipe(Ae(250),g(({active:s})=>!s))).subscribe({next({active:s}){s?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe($e(16,ye)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(gt(125,ye),g(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?o.style.setProperty("--md-tooltip-0",`${-s}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),ls(o,e).pipe(O(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))}).pipe(et(pe))}function ms({viewport$:e}){if(!V("header.autohide"))return $(!1);let t=e.pipe(m(({offset:{y:n}})=>n),ot(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),Y()),o=Je("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),Y(),b(n=>n?r:$(!1)),Q(!1))}function ai(e,t){return H(()=>z([Le(e),ms(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),Y((r,o)=>r.height===o.height&&r.hidden===o.hidden),Z(1))}function si(e,{header$:t,main$:r}){return H(()=>{let o=new T,n=o.pipe(oe(),ae(!0));o.pipe(ne("active"),Pe(t)).subscribe(([{active:s},{hidden:a}])=>{e.classList.toggle("md-header--shadow",s&&!a),e.hidden=a});let i=fe(M("[title]",e)).pipe(g(()=>V("content.tooltips")),J(s=>ii(s)));return r.subscribe(o),t.pipe(W(n),m(s=>P({ref:e},s)),Ve(i.pipe(W(n))))})}function fs(e,{viewport$:t,header$:r}){return Er(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=de(e);return{active:n>0&&o>=n}}),ne("active"))}function ci(e,t){return H(()=>{let r=new T;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=ue(".md-content h1");return typeof o=="undefined"?y:fs(o,t).pipe(O(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))})}function pi(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),Y()),n=o.pipe(b(()=>Le(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),ne("bottom"))));return z([o,n,t]).pipe(m(([i,{top:s,bottom:a},{offset:{y:c},size:{height:p}}])=>(p=Math.max(0,p-Math.max(0,s-c,i)-Math.max(0,p+c-a)),{offset:s-i,height:p,active:s-i<=c})),Y((i,s)=>i.offset===s.offset&&i.height===s.height&&i.active===s.active))}function us(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return $(...e).pipe(J(o=>h(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),Z(1))}function li(e){let t=M("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=Wt("(prefers-color-scheme: light)");return H(()=>{let i=new T;return i.subscribe(s=>{if(document.body.setAttribute("data-md-color-switching",""),s.color.media==="(prefers-color-scheme)"){let a=matchMedia("(prefers-color-scheme: light)"),c=document.querySelector(a.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");s.color.scheme=c.getAttribute("data-md-color-scheme"),s.color.primary=c.getAttribute("data-md-color-primary"),s.color.accent=c.getAttribute("data-md-color-accent")}for(let[a,c]of Object.entries(s.color))document.body.setAttribute(`data-md-color-${a}`,c);for(let a=0;as.key==="Enter"),te(i,(s,a)=>a)).subscribe(({index:s})=>{s=(s+1)%t.length,t[s].click(),t[s].focus()}),i.pipe(m(()=>{let s=Ce("header"),a=window.getComputedStyle(s);return o.content=a.colorScheme,a.backgroundColor.match(/\d+/g).map(c=>(+c).toString(16).padStart(2,"0")).join("")})).subscribe(s=>r.content=`#${s}`),i.pipe(xe(pe)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),us(t).pipe(W(n.pipe(Ie(1))),vt(),O(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))})}function mi(e,{progress$:t}){return H(()=>{let r=new T;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(O(o=>r.next({value:o})),A(()=>r.complete()),m(o=>({ref:e,value:o})))})}function fi(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function ds(e,t){let r=new Map;for(let o of M("url",e)){let n=j("loc",o),i=[fi(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let s of M("[rel=alternate]",o)){let a=s.getAttribute("href");a!=null&&i.push(fi(new URL(a),t))}}return r}function kt(e){return En(new URL("sitemap.xml",e)).pipe(m(t=>ds(t,new URL(e))),ve(()=>$(new Map)),le())}function ui({document$:e}){let t=new Map;e.pipe(b(()=>M("link[rel=alternate]")),m(r=>new URL(r.href)),g(r=>!t.has(r.toString())),J(r=>kt(r).pipe(m(o=>[r,o]),ve(()=>y)))).subscribe(([r,o])=>{t.set(r.toString().replace(/\/$/,""),o)}),h(document.body,"click").pipe(g(r=>!r.metaKey&&!r.ctrlKey),b(r=>{if(r.target instanceof Element){let o=r.target.closest("a");if(o&&!o.target){let n=[...t].find(([f])=>o.href.startsWith(`${f}/`));if(typeof n=="undefined")return y;let[i,s]=n,a=we();if(a.href.startsWith(i))return y;let c=Te(),p=a.href.replace(c.base,"");p=`${i}/${p}`;let l=s.has(p.split("#")[0])?new URL(p,c.base):new URL(i);return r.preventDefault(),$(l)}}return y})).subscribe(r=>st(r,!0))}var co=$t(ao());function hs(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function di({alert$:e}){co.default.isSupported()&&new F(t=>{new co.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||hs(j(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(O(t=>{t.trigger.focus()}),m(()=>Me("clipboard.copied"))).subscribe(e)}function hi(e,t){if(!(e.target instanceof Element))return y;let r=e.target.closest("a");if(r===null)return y;if(r.target||e.metaKey||e.ctrlKey)return y;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),$(r)):y}function bi(e){let t=new Map;for(let r of M(":scope > *",e.head))t.set(r.outerHTML,r);return t}function vi(e){for(let t of M("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return $(e)}function bs(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...V("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=ue(o),i=ue(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=bi(document);for(let[o,n]of bi(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Ce("container");return Ke(M("script",r)).pipe(b(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new F(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),y}),oe(),ae(document))}function gi({sitemap$:e,location$:t,viewport$:r,progress$:o}){if(location.protocol==="file:")return y;$(document).subscribe(vi);let n=h(document.body,"click").pipe(Pe(e),b(([a,c])=>hi(a,c)),m(({href:a})=>new URL(a)),le()),i=h(window,"popstate").pipe(m(we),le());n.pipe(te(r)).subscribe(([a,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",a)}),L(n,i).subscribe(t);let s=t.pipe(ne("pathname"),b(a=>xr(a,{progress$:o}).pipe(ve(()=>(st(a,!0),y)))),b(vi),b(bs),le());return L(s.pipe(te(t,(a,c)=>c)),s.pipe(b(()=>t),ne("hash")),t.pipe(Y((a,c)=>a.pathname===c.pathname&&a.hash===c.hash),b(()=>n),O(()=>history.back()))).subscribe(a=>{var c,p;history.state!==null||!a.hash?window.scrollTo(0,(p=(c=history.state)==null?void 0:c.y)!=null?p:0):(history.scrollRestoration="auto",gn(a.hash),history.scrollRestoration="manual")}),t.subscribe(()=>{history.scrollRestoration="manual"}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),r.pipe(ne("offset"),Ae(100)).subscribe(({offset:a})=>{history.replaceState(a,"")}),V("navigation.instant.prefetch")&&L(h(document.body,"mousemove"),h(document.body,"focusin")).pipe(Pe(e),b(([a,c])=>hi(a,c)),Ae(25),Qr(({href:a})=>a),hr(a=>{let c=document.createElement("link");return c.rel="prefetch",c.href=a.toString(),document.head.appendChild(c),h(c,"load").pipe(m(()=>c),Ee(1))})).subscribe(a=>a.remove()),s}var yi=$t(ro());function xi(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,s)=>`${i}${s}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").replace(/&/g,"&").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return s=>(0,yi.default)(s).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function zt(e){return e.type===1}function Sr(e){return e.type===3}function Ei(e,t){let r=Mn(e);return L($(location.protocol!=="file:"),Je("search")).pipe(Re(o=>o),b(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:V("search.suggest")}}})),r}function wi(e){var l;let{selectedVersionSitemap:t,selectedVersionBaseURL:r,currentLocation:o,currentBaseURL:n}=e,i=(l=po(n))==null?void 0:l.pathname;if(i===void 0)return;let s=ys(o.pathname,i);if(s===void 0)return;let a=Es(t.keys());if(!t.has(a))return;let c=po(s,a);if(!c||!t.has(c.href))return;let p=po(s,r);if(p)return p.hash=o.hash,p.search=o.search,p}function po(e,t){try{return new URL(e,t)}catch(r){return}}function ys(e,t){if(e.startsWith(t))return e.slice(t.length)}function xs(e,t){let r=Math.min(e.length,t.length),o;for(o=0;oy)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:s,aliases:a})=>s===i||a.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),b(n=>h(document.body,"click").pipe(g(i=>!i.metaKey&&!i.ctrlKey),te(o),b(([i,s])=>{if(i.target instanceof Element){let a=i.target.closest("a");if(a&&!a.target&&n.has(a.href)){let c=a.href;return!i.target.closest(".md-version")&&n.get(c)===s?y:(i.preventDefault(),$(new URL(c)))}}return y}),b(i=>kt(i).pipe(m(s=>{var a;return(a=wi({selectedVersionSitemap:s,selectedVersionBaseURL:i,currentLocation:we(),currentBaseURL:t.base}))!=null?a:i})))))).subscribe(n=>st(n,!0)),z([r,o]).subscribe(([n,i])=>{j(".md-header__topic").appendChild(Wn(n,i))}),e.pipe(b(()=>o)).subscribe(n=>{var a;let i=new URL(t.base),s=__md_get("__outdated",sessionStorage,i);if(s===null){s=!0;let c=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(c)||(c=[c]);e:for(let p of c)for(let l of n.aliases.concat(n.version))if(new RegExp(p,"i").test(l)){s=!1;break e}__md_set("__outdated",s,sessionStorage,i)}if(s)for(let c of me("outdated"))c.hidden=!1})}function ws(e,{worker$:t}){let{searchParams:r}=we();r.has("q")&&(at("search",!0),e.value=r.get("q"),e.focus(),Je("search").pipe(Re(i=>!i)).subscribe(()=>{let i=we();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=Ye(e),n=L(t.pipe(Re(zt)),h(e,"keyup"),o).pipe(m(()=>e.value),Y());return z([n,o]).pipe(m(([i,s])=>({value:i,focus:s})),Z(1))}function Si(e,{worker$:t}){let r=new T,o=r.pipe(oe(),ae(!0));z([t.pipe(Re(zt)),r],(i,s)=>s).pipe(ne("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(ne("focus")).subscribe(({focus:i})=>{i&&at("search",i)}),h(e.form,"reset").pipe(W(o)).subscribe(()=>e.focus());let n=j("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),ws(e,{worker$:t}).pipe(O(i=>r.next(i)),A(()=>r.complete()),m(i=>P({ref:e},i)),Z(1))}function Oi(e,{worker$:t,query$:r}){let o=new T,n=un(e.parentElement).pipe(g(Boolean)),i=e.parentElement,s=j(":scope > :first-child",e),a=j(":scope > :last-child",e);Je("search").subscribe(l=>{a.setAttribute("role",l?"list":"presentation"),a.hidden=!l}),o.pipe(te(r),Gr(t.pipe(Re(zt)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:s.textContent=f.length?Me("search.result.none"):Me("search.result.placeholder");break;case 1:s.textContent=Me("search.result.one");break;default:let u=br(l.length);s.textContent=Me("search.result.other",u)}});let c=o.pipe(O(()=>a.innerHTML=""),b(({items:l})=>L($(...l.slice(0,10)),$(...l.slice(10)).pipe(ot(4),Xr(n),b(([f])=>f)))),m(Fn),le());return c.subscribe(l=>a.appendChild(l)),c.pipe(J(l=>{let f=ue("details",l);return typeof f=="undefined"?y:h(f,"toggle").pipe(W(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(g(Sr),m(({data:l})=>l)).pipe(O(l=>o.next(l)),A(()=>o.complete()),m(l=>P({ref:e},l)))}function Ts(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=we();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function Li(e,t){let r=new T,o=r.pipe(oe(),ae(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(W(o)).subscribe(n=>n.preventDefault()),Ts(e,t).pipe(O(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))}function Mi(e,{worker$:t,keyboard$:r}){let o=new T,n=Ce("search-query"),i=L(h(n,"keydown"),h(n,"focus")).pipe(xe(pe),m(()=>n.value),Y());return o.pipe(Pe(i),m(([{suggest:a},c])=>{let p=c.split(/([\s-]+)/);if(a!=null&&a.length&&p[p.length-1]){let l=a[a.length-1];l.startsWith(p[p.length-1])&&(p[p.length-1]=l)}else p.length=0;return p})).subscribe(a=>e.innerHTML=a.join("").replace(/\s/g," ")),r.pipe(g(({mode:a})=>a==="search")).subscribe(a=>{a.type==="ArrowRight"&&e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText)}),t.pipe(g(Sr),m(({data:a})=>a)).pipe(O(a=>o.next(a)),A(()=>o.complete()),m(()=>({ref:e})))}function _i(e,{index$:t,keyboard$:r}){let o=Te();try{let n=Ei(o.search,t),i=Ce("search-query",e),s=Ce("search-result",e);h(e,"click").pipe(g(({target:c})=>c instanceof Element&&!!c.closest("a"))).subscribe(()=>at("search",!1)),r.pipe(g(({mode:c})=>c==="search")).subscribe(c=>{let p=Ne();switch(c.type){case"Enter":if(p===i){let l=new Map;for(let f of M(":first-child [href]",s)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}c.claim()}break;case"Escape":case"Tab":at("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof p=="undefined")i.focus();else{let l=[i,...M(":not(details) > [href], summary, details[open] [href]",s)],f=Math.max(0,(Math.max(0,l.indexOf(p))+l.length+(c.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}c.claim();break;default:i!==Ne()&&i.focus()}}),r.pipe(g(({mode:c})=>c==="global")).subscribe(c=>{switch(c.type){case"f":case"s":case"/":i.focus(),i.select(),c.claim();break}});let a=Si(i,{worker$:n});return L(a,Oi(s,{worker$:n,query$:a})).pipe(Ve(...me("search-share",e).map(c=>Li(c,{query$:a})),...me("search-suggest",e).map(c=>Mi(c,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,tt}}function Ai(e,{index$:t,location$:r}){return z([t,r.pipe(Q(we()),g(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>xi(o.config)(n.searchParams.get("h"))),m(o=>{var s;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let a=i.nextNode();a;a=i.nextNode())if((s=a.parentElement)!=null&&s.offsetHeight){let c=a.textContent,p=o(c);p.length>c.length&&n.set(a,p)}for(let[a,c]of n){let{childNodes:p}=x("span",null,c);a.replaceWith(...Array.from(p))}return{ref:e,nodes:n}}))}function Ss(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:s},{offset:{y:a}}])=>(s=s+Math.min(n,Math.max(0,a-i))-n,{height:s,locked:a>=i+n})),Y((i,s)=>i.height===s.height&&i.locked===s.locked))}function lo(e,o){var n=o,{header$:t}=n,r=vo(n,["header$"]);let i=j(".md-sidebar__scrollwrap",e),{y:s}=Be(i);return H(()=>{let a=new T,c=a.pipe(oe(),ae(!0)),p=a.pipe($e(0,ye));return p.pipe(te(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*s}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),p.pipe(Re()).subscribe(()=>{for(let l of M(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=de(f);f.scrollTo({top:u-d/2})}}}),fe(M("label[tabindex]",e)).pipe(J(l=>h(l,"click").pipe(xe(pe),m(()=>l),W(c)))).subscribe(l=>{let f=j(`[id="${l.htmlFor}"]`);j(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),V("content.tooltips")&&fe(M("abbr[title]",e)).pipe(J(l=>Xe(l,{viewport$})),W(c)).subscribe(),Ss(e,r).pipe(O(l=>a.next(l)),A(()=>a.complete()),m(l=>P({ref:e},l)))})}function Ci(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return rt(ze(`${r}/releases/latest`).pipe(ve(()=>y),m(o=>({version:o.tag_name})),Qe({})),ze(r).pipe(ve(()=>y),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),Qe({}))).pipe(m(([o,n])=>P(P({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return ze(r).pipe(m(o=>({repositories:o.public_repos})),Qe({}))}}function ki(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return rt(ze(`${r}/releases/permalink/latest`).pipe(ve(()=>y),m(({tag_name:o})=>({version:o})),Qe({})),ze(r).pipe(ve(()=>y),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),Qe({}))).pipe(m(([o,n])=>P(P({},o),n)))}function Hi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return Ci(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return ki(r,o)}return y}var Os;function Ls(e){return Os||(Os=H(()=>{let t=__md_get("__source",sessionStorage);if(t)return $(t);if(me("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return y}return Hi(e.href).pipe(O(o=>__md_set("__source",o,sessionStorage)))}).pipe(ve(()=>y),g(t=>Object.keys(t).length>0),m(t=>({facts:t})),Z(1)))}function $i(e){let t=j(":scope > :last-child",e);return H(()=>{let r=new T;return r.subscribe(({facts:o})=>{t.appendChild(jn(o)),t.classList.add("md-source__repository--active")}),Ls(e).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function Ms(e,{viewport$:t,header$:r}){return Le(document.body).pipe(b(()=>Er(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),ne("hidden"))}function Pi(e,t){return H(()=>{let r=new T;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(V("navigation.tabs.sticky")?$({hidden:!1}):Ms(e,t)).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function _s(e,{viewport$:t,header$:r}){let o=new Map,n=M(".md-nav__link",e);for(let a of n){let c=decodeURIComponent(a.hash.substring(1)),p=ue(`[id="${c}"]`);typeof p!="undefined"&&o.set(a,p)}let i=r.pipe(ne("height"),m(({height:a})=>{let c=Ce("main"),p=j(":scope > :first-child",c);return a+.8*(p.offsetTop-c.offsetTop)}),le());return Le(document.body).pipe(ne("height"),b(a=>H(()=>{let c=[];return $([...o].reduce((p,[l,f])=>{for(;c.length&&o.get(c[c.length-1]).tagName>=f.tagName;)c.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return p.set([...c=[...c,l]].reverse(),u)},new Map))}).pipe(m(c=>new Map([...c].sort(([,p],[,l])=>p-l))),Pe(i),b(([c,p])=>t.pipe(Ut(([l,f],{offset:{y:u},size:d})=>{let v=u+d.height>=Math.floor(a.height);for(;f.length;){let[,S]=f[0];if(S-p=u&&!v)f=[l.pop(),...f];else break}return[l,f]},[[],[...c]]),Y((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([a,c])=>({prev:a.map(([p])=>p),next:c.map(([p])=>p)})),Q({prev:[],next:[]}),ot(2,1),m(([a,c])=>a.prev.length{let i=new T,s=i.pipe(oe(),ae(!0));if(i.subscribe(({prev:a,next:c})=>{for(let[p]of c)p.classList.remove("md-nav__link--passed"),p.classList.remove("md-nav__link--active");for(let[p,[l]]of a.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",p===a.length-1)}),V("toc.follow")){let a=L(t.pipe(Ae(1),m(()=>{})),t.pipe(Ae(250),m(()=>"smooth")));i.pipe(g(({prev:c})=>c.length>0),Pe(o.pipe(xe(pe))),te(a)).subscribe(([[{prev:c}],p])=>{let[l]=c[c.length-1];if(l.offsetHeight){let f=vr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=de(f);f.scrollTo({top:u-d/2,behavior:p})}}})}return V("navigation.tracking")&&t.pipe(W(s),ne("offset"),Ae(250),Ie(1),W(n.pipe(Ie(1))),vt({delay:250}),te(i)).subscribe(([,{prev:a}])=>{let c=we(),p=a[a.length-1];if(p&&p.length){let[l]=p,{hash:f}=new URL(l.href);c.hash!==f&&(c.hash=f,history.replaceState({},"",`${c}`))}else c.hash="",history.replaceState({},"",`${c}`)}),_s(e,{viewport$:t,header$:r}).pipe(O(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function As(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:s}})=>s),ot(2,1),m(([s,a])=>s>a&&a>0),Y()),i=r.pipe(m(({active:s})=>s));return z([i,n]).pipe(m(([s,a])=>!(s&&a)),Y(),W(o.pipe(Ie(1))),ae(!0),vt({delay:250}),m(s=>({hidden:s})))}function Ii(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new T,s=i.pipe(oe(),ae(!0));return i.subscribe({next({hidden:a}){e.hidden=a,a?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(W(s),ne("height")).subscribe(({height:a})=>{e.style.top=`${a+16}px`}),h(e,"click").subscribe(a=>{a.preventDefault(),window.scrollTo({top:0})}),As(e,{viewport$:t,main$:o,target$:n}).pipe(O(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))}function Fi({document$:e,viewport$:t}){e.pipe(b(()=>M(".md-ellipsis")),J(r=>mt(r).pipe(W(e.pipe(Ie(1))),g(o=>o),m(()=>r),Ee(1))),g(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,V("content.tooltips")?Xe(n,{viewport$:t}).pipe(W(e.pipe(Ie(1))),A(()=>n.removeAttribute("title"))):y})).subscribe(),V("content.tooltips")&&e.pipe(b(()=>M(".md-status")),J(r=>Xe(r,{viewport$:t}))).subscribe()}function ji({document$:e,tablet$:t}){e.pipe(b(()=>M(".md-toggle--indeterminate")),O(r=>{r.indeterminate=!0,r.checked=!1}),J(r=>h(r,"change").pipe(Jr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),te(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function Cs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Ui({document$:e}){e.pipe(b(()=>M("[data-md-scrollfix]")),O(t=>t.removeAttribute("data-md-scrollfix")),g(Cs),J(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Wi({viewport$:e,tablet$:t}){z([Je("search"),t]).pipe(m(([r,o])=>r&&!o),b(r=>$(r).pipe(nt(r?400:100))),te(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function ks(){return location.protocol==="file:"?_t(`${new URL("search/search_index.js",Or.base)}`).pipe(m(()=>__index),Z(1)):ze(new URL("search/search_index.json",Or.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ct=an(),Kt=bn(),Ht=yn(Kt),mo=hn(),ke=Ln(),Lr=Wt("(min-width: 60em)"),Vi=Wt("(min-width: 76.25em)"),Ni=xn(),Or=Te(),zi=document.forms.namedItem("search")?ks():tt,fo=new T;di({alert$:fo});ui({document$:ct});var uo=new T,qi=kt(Or.base);V("navigation.instant")&&gi({sitemap$:qi,location$:Kt,viewport$:ke,progress$:uo}).subscribe(ct);var Di;((Di=Or.version)==null?void 0:Di.provider)==="mike"&&Ti({document$:ct});L(Kt,Ht).pipe(nt(125)).subscribe(()=>{at("drawer",!1),at("search",!1)});mo.pipe(g(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=ue("link[rel=prev]");typeof t!="undefined"&&st(t);break;case"n":case".":let r=ue("link[rel=next]");typeof r!="undefined"&&st(r);break;case"Enter":let o=Ne();o instanceof HTMLLabelElement&&o.click()}});Fi({viewport$:ke,document$:ct});ji({document$:ct,tablet$:Lr});Ui({document$:ct});Wi({viewport$:ke,tablet$:Lr});var ft=ai(Ce("header"),{viewport$:ke}),qt=ct.pipe(m(()=>Ce("main")),b(e=>pi(e,{viewport$:ke,header$:ft})),Z(1)),Hs=L(...me("consent").map(e=>An(e,{target$:Ht})),...me("dialog").map(e=>ni(e,{alert$:fo})),...me("palette").map(e=>li(e)),...me("progress").map(e=>mi(e,{progress$:uo})),...me("search").map(e=>_i(e,{index$:zi,keyboard$:mo})),...me("source").map(e=>$i(e))),$s=H(()=>L(...me("announce").map(e=>_n(e)),...me("content").map(e=>oi(e,{sitemap$:qi,viewport$:ke,target$:Ht,print$:Ni})),...me("content").map(e=>V("search.highlight")?Ai(e,{index$:zi,location$:Kt}):y),...me("header").map(e=>si(e,{viewport$:ke,header$:ft,main$:qt})),...me("header-title").map(e=>ci(e,{viewport$:ke,header$:ft})),...me("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?eo(Vi,()=>lo(e,{viewport$:ke,header$:ft,main$:qt})):eo(Lr,()=>lo(e,{viewport$:ke,header$:ft,main$:qt}))),...me("tabs").map(e=>Pi(e,{viewport$:ke,header$:ft})),...me("toc").map(e=>Ri(e,{viewport$:ke,header$:ft,main$:qt,target$:Ht})),...me("top").map(e=>Ii(e,{viewport$:ke,header$:ft,main$:qt,target$:Ht})))),Ki=ct.pipe(b(()=>$s),Ve(Hs),Z(1));Ki.subscribe();window.document$=ct;window.location$=Kt;window.target$=Ht;window.keyboard$=mo;window.viewport$=ke;window.tablet$=Lr;window.screen$=Vi;window.print$=Ni;window.alert$=fo;window.progress$=uo;window.component$=Ki;})(); +//# sourceMappingURL=bundle.79ae519e.min.js.map + diff --git a/docs/mkdocs/public/assets/javascripts/bundle.79ae519e.min.js.map b/docs/mkdocs/public/assets/javascripts/bundle.79ae519e.min.js.map new file mode 100644 index 0000000..5cf0289 --- /dev/null +++ b/docs/mkdocs/public/assets/javascripts/bundle.79ae519e.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/escape-html/index.js", "node_modules/clipboard/dist/clipboard.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/tslib/tslib.es6.mjs", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinct.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/exhaustMap.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/link/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/alternate/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/findurl/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*\n * Copyright (c) 2016-2025 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n fetchSitemap,\n setupAlternate,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 60em)\")\nconst screen$ = watchMedia(\"(min-width: 76.25em)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up language selector */\nsetupAlternate({ document$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up sitemap for instant navigation and previews */\nconst sitemap$ = fetchSitemap(config.base)\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ sitemap$, location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { sitemap$, viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n */\nexport class Subscription implements SubscriptionLike {\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param value The `next` value.\n */\n next(value: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param err The `error` exception.\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as ((value: T) => void) | undefined,\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent.\n * @param subscriber The stopped subscriber.\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @param subscribe The function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @param subscribe the subscriber function to be passed to the Observable constructor\n * @return A new observable.\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @param operator the operator defining the operation to take on the observable\n * @return A new observable with the Operator applied.\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param observerOrNext Either an {@link Observer} with some or all callback methods,\n * or the `next` handler that is called for each value emitted from the subscribed Observable.\n * @param error A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param complete A handler for a terminal event resulting from successful completion.\n * @return A subscription reference to the registered handlers.\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next A handler for each value emitted by the observable.\n * @return A promise that either resolves on observable completion or\n * rejects with the handled error.\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @return This instance of the observable.\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n *\n * @return The Observable result of all the operators having been called\n * in the order they were passed in.\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return Observable that this Subject casts to.\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param _bufferSize The size of the buffer to replay on subscription\n * @param _windowTime The amount of time the buffered items will stay buffered\n * @param _timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param state Some contextual data that the `work` function uses when called by the\n * Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is implicit\n * and defined by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param work A function representing a task, or some unit of work to be\n * executed by the Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is\n * implicit and defined by the Scheduler itself.\n * @param state Some contextual data that the `work` function uses when called\n * by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && id === scheduler._scheduled && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n let flushId;\n if (action) {\n flushId = action.id;\n } else {\n flushId = this._scheduled;\n this._scheduled = undefined;\n }\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an

%k0C#(>&EzmZ(snHL|DV-pa<^hUQ1jv z@ZDJKHYcn-oIm_rvh$njHhjPreA*bIw2iHEaPH&t3!lOG9zjl0g&nqF6Sm<4zTh(o zX4S>#7Cw9N{ekbmpzC#wQv6+wYXjUv#_I(9dlj-#eA&8Y2isw}!2W@-{SA%T(*T{IeGBjbUm6E@_fQxbGeM4(Txeybm9Q&EdcHUOQu8d?&oe9^@bQ&G}B^pnK>J{|L=^`qz8R zxW8*3>L2&laNn2*?;+c9Q2(%r>lQ5V3IDj)s=qlQV;{DE_{KdtJ$Ubt7}P&(+P`Dr z6TWe;(H=)T%zv0~VzDu}{KF6Lb0*_I$TzM(q1Xp8B;z0VDRHmN<==d4?H6fh!Ob%-`)7lt$!Z{`A^1oA`I#uKKXkee{)e6wfgt*O*Tw}E!%(4wQ5`+;B}y;xHe6j z@Bv@sZP&Oql*;QjiO;KGfW)F7`g5;J_I7%uye@xbABEr%&kd9Hb4-Q6IXvKCAk+ZjcS?Ll@U{ZT%o!wLyL8 znsc)~?j>L>k*;k6ve1Dp)&TB5@OzYUiE79~2f93P-z(8)80|p@vedI{*aR-hYK=Md tYwM#8PKXO)TX#*pE=P=&%5OiyT>CZGO;;XduJyLl+5P*Ffh=^O`~S2Lt~dYy literal 0 HcmV?d00001 diff --git a/docs/mkdocs/docs/images/monero.svg b/docs/mkdocs/docs/images/monero.svg new file mode 100644 index 0000000..af777a4 --- /dev/null +++ b/docs/mkdocs/docs/images/monero.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/mkdocs/docs/overrides.css b/docs/mkdocs/docs/overrides.css new file mode 100644 index 0000000..efbdb23 --- /dev/null +++ b/docs/mkdocs/docs/overrides.css @@ -0,0 +1,85 @@ + +/* Make reference options non-wrapping */ +article .md-typeset__table td:nth-child(1) { + white-space: nowrap; +} + +/* Make reference tables occupying full width */ +article .md-typeset__table { + width: 100%; +} + +:root { +} + +[data-md-color-scheme="default"] { + + --md-primary-fg-color: #ffffff; /* header */ + --md-default-bg-color: #ffffff; /* background color */ + + /* imported from white theme */ + --md-primary-fg-color--light: hsla(var(--md-hue),0%,100%,0.7); + --md-primary-fg-color--dark: hsla(var(--md-hue),0%,0%,0.07); /* shade on repo into */ + + --md-primary-bg-color: hsla(var(--md-hue),0%,0%,0.87); /* header text */ + --md-primary-bg-color--light: hsla(var(--md-hue),0%,0%,0.54); + /* ------------------------- */ + + --md-typeset-a-color: #eb5e00; /* links */ + + --md-accent-fg-color: #ff6600; /* accent/buttons color */ + --md-accent-bg-color: #ffffff; /* accent/buttons text */ + + --md-footer-bg-color: var(--md-default-bg-color); /* forward/back panel */ + --md-footer-bg-color--dark: #181818; /* bottom footer */ + --md-footer-fg-color: #000000; /* footer text */ +} + + +[data-md-color-scheme="slate"] { + --md-hue: 232; + + --md-primary-fg-color: #141414; /* header */ + --md-default-bg-color: #191919; /* background color */ + + /* imported from black theme */ + --md-primary-fg-color--light: hsla(var(--md-hue),15%,9%,0.54); + --md-primary-fg-color--dark: hsla(var(--md-hue),15%,9%,1); /* shade on repo into */ + + --md-primary-bg-color: hsla(var(--md-hue),15%,100%,1); /* header text */ + --md-primary-bg-color--light: hsla(var(--md-hue),15%,100%,0.7); + /* ------------------------- */ + + --md-typeset-a-color: var(--md-primary-bg-color); /* links */ + + --md-accent-fg-color: #ff6600; /* accent/buttons color */ + --md-accent-bg-color: #ffffff; /* accent/buttons text */ + + --md-footer-bg-color: var(--md-default-bg-color); /* forward/back panel */ + --md-footer-bg-color--dark: #141414; /* bottom footer */ + --md-footer-fg-color: #ffffff; /* footer text */ + + --md-code-bg-color: #1f1f1f; /* code boxes */ +} + +[role=tooltip]>.md-tooltip2__inner { + font-size: 0.9rem; +} + +/* nav icons */ +[dir="ltr"] .md-nav--primary .md-nav__icon { + color: #ff6600; +} + +/* back to top */ +.md-top { + background-color: var(--md-primary-bg-color); + color: var(--md-primary-fg-color); +} + +/* buttons */ +.md-typeset .md-button { + background-color: #181818; + color: var(--md-accent-bg-color); + border-color:var(--md-accent-fg-color); +} diff --git a/docs/mkdocs/mkdocs.yml b/docs/mkdocs/mkdocs.yml new file mode 100644 index 0000000..00b771f --- /dev/null +++ b/docs/mkdocs/mkdocs.yml @@ -0,0 +1,154 @@ +# Project information +site_name: Monero Python +site_description: 'Monero Python API Documentation' +site_author: "everoddandeven" +site_url: 'https://everoddandeven.github.io/monero-python/' +site_dir: 'public' + +copyright: '© 2026 everoddandeven under MIT' + +nav: +- Home: 'index.md' +- Documentation: + - Architecture: 'api/architecture.md' + - API Reference: + - Serializable Struct: 'api/serializable_struct.md' + - Connection: + - Data Model: 'api/data_model/connection.md' + - RPC: 'api/connection.md' + - Daemon: + - Data Model: 'api/data_model/daemon.md' + - Interface: 'api/daemon.md' + - RPC: 'api/daemon_rpc.md' + - Wallet: + - Data Model: 'api/data_model/wallet.md' + - Interface: 'api/wallet.md' + - RPC: 'api/wallet_rpc.md' + - Full: 'api/wallet_full.md' + - Keys-Only: 'api/wallet_keys.md' + - Utils: 'api/utils.md' +- Examples: + - Connect to RPC Server: 'examples/connect_to_rpc_server.md' + - Interact with RPC Daemon: 'examples/interact_with_daemon.md' + - Interact with RPC Wallet: 'examples/interact_with_wallet_rpc.md' + - Create Local Full Wallet: 'examples/create_local_full_wallet.md' + - Using Keys-Only Wallet: 'examples/using_keys_only_wallet.md' + - Sending Payments: 'examples/sending_payments.md' + - Query Wallet Txs and Transfers: 'examples/query_wallet_txs_and_transfers.md' + + +theme: + name: material + custom_dir: overrides + features: + - announce.dismiss + - content.action.edit + - content.action.view + - content.code.annotate + - content.code.copy + - content.tooltips + - navigation.footer + - navigation.indexes + - navigation.tabs + - navigation.tabs.sticky + - navigation.top + - navigation.tracking + - search.highlight + - search.share + - search.suggest + - toc.follow + palette: + - media: "(prefers-color-scheme)" + toggle: + icon: material/weather-sunny + name: Switch to light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: custom + toggle: + icon: material/toggle-switch + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: custom + toggle: + icon: material/toggle-switch-off + name: Switch to system preference + font: + text: Roboto + code: Roboto Mono + favicon: images/favicon.ico + icon: + logo: logo + logo: 'images/monero.svg' + static_templates: + - 404.html + +extra_css: + - overrides.css + +extra: + social: + - icon: material/web + link: https://docs.getmonero.org + name: Clearnet Website + - icon: fontawesome/brands/github + link: https://github.com/everoddandeven/monero-python + name: GitHub Repository + - icon: simple/matrix + link: https://matrix.to/#/%23monero-python:monero.social + name: Matrix + +repo_name: 'everoddandeven/monero-python' +repo_url: 'https://github.com/everoddandeven/monero-python' + +markdown_extensions: + # https://squidfunk.github.io/mkdocs-material/extensions/admonition/ + - admonition + - abbr + - def_list + - attr_list + - footnotes + - meta + - toc: + permalink: true + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - pymdownx.details + - pymdownx.highlight: + use_pygments: true # build time highlighting, not client side + - pymdownx.inlinehilite + - pymdownx.superfences # nest code blocks inside codeblocks + - pymdownx.snippets # insert content from other files + - pymdownx.tabbed: + alternate_style: true + - tables + +plugins: + - search + - minify: + minify_html: true + minify_js: true + htmlmin_opts: + remove_comments: true + - privacy + - macros: + include_dir: docs/macros/includes + - mkdocstrings: + handlers: + python: + paths: [../../src/python] + options: + show_source: false + show_root_heading: true + show_root_full_path: false + docstring_style: sphinx + merge_init_into_class: false + - i18n: + docs_structure: folder + languages: + - locale: en + default: true + name: English + build: true diff --git a/docs/mkdocs/overrides/partial/copyright.html b/docs/mkdocs/overrides/partial/copyright.html new file mode 100644 index 0000000..218e7f3 --- /dev/null +++ b/docs/mkdocs/overrides/partial/copyright.html @@ -0,0 +1,17 @@ +