From 75406910dcc06c39ba402d9d2610ea999e1aadca Mon Sep 17 00:00:00 2001 From: Steve Myers Date: Fri, 17 Dec 2021 21:56:37 -0800 Subject: [PATCH] Remove the ./static directory The files are not needed since migrating from Hugo to Vuepress. The docs-rs/bdk/nightly files are now stored in ./docs/.viewpress/public --- static/docs-rs/bdk/nightly/latest/.lock | 0 .../docs-rs/bdk/nightly/latest/COPYRIGHT.txt | 50 - .../bdk/nightly/latest/FiraSans-LICENSE.txt | 94 - .../bdk/nightly/latest/FiraSans-Medium.woff | Bin 186824 -> 0 bytes .../bdk/nightly/latest/FiraSans-Medium.woff2 | Bin 132780 -> 0 bytes .../bdk/nightly/latest/FiraSans-Regular.woff | Bin 183268 -> 0 bytes .../bdk/nightly/latest/FiraSans-Regular.woff2 | Bin 129188 -> 0 bytes .../bdk/nightly/latest/LICENSE-APACHE.txt | 201 - .../bdk/nightly/latest/LICENSE-MIT.txt | 23 - .../latest/NanumBarunGothic-LICENSE.txt | 99 - .../nightly/latest/NanumBarunGothic.ttf.woff | Bin 677868 -> 0 bytes .../nightly/latest/NanumBarunGothic.ttf.woff2 | Bin 399468 -> 0 bytes .../nightly/latest/SourceCodePro-It.ttf.woff | Bin 58444 -> 0 bytes .../nightly/latest/SourceCodePro-It.ttf.woff2 | Bin 44896 -> 0 bytes .../nightly/latest/SourceCodePro-LICENSE.txt | 93 - .../latest/SourceCodePro-Regular.ttf.woff | Bin 68152 -> 0 bytes .../latest/SourceCodePro-Regular.ttf.woff2 | Bin 52228 -> 0 bytes .../latest/SourceCodePro-Semibold.ttf.woff | Bin 68080 -> 0 bytes .../latest/SourceCodePro-Semibold.ttf.woff2 | Bin 52348 -> 0 bytes .../nightly/latest/SourceSerif4-Bold.ttf.woff | Bin 110552 -> 0 bytes .../latest/SourceSerif4-Bold.ttf.woff2 | Bin 81320 -> 0 bytes .../nightly/latest/SourceSerif4-It.ttf.woff | Bin 78108 -> 0 bytes .../nightly/latest/SourceSerif4-It.ttf.woff2 | Bin 59860 -> 0 bytes .../nightly/latest/SourceSerif4-LICENSE.md | 93 - .../latest/SourceSerif4-Regular.ttf.woff | Bin 103604 -> 0 bytes .../latest/SourceSerif4-Regular.ttf.woff2 | Bin 76180 -> 0 bytes static/docs-rs/bdk/nightly/latest/ayu.css | 1 - .../docs-rs/bdk/nightly/latest/bdk/all.html | 6 - .../blockchain/any/enum.AnyBlockchain.html | 41 - .../any/enum.AnyBlockchainConfig.html | 66 - .../latest/bdk/blockchain/any/index.html | 45 - .../bdk/blockchain/any/sidebar-items.js | 1 - .../enum.CompactFiltersError.html | 64 - .../bdk/blockchain/compact_filters/index.html | 38 - .../compact_filters/peer/struct.Mempool.html | 11 - .../compact_filters/peer/struct.Peer.html | 11 - .../compact_filters/sidebar-items.js | 1 - .../struct.BitcoinPeerConfig.html | 38 - .../struct.CompactFiltersBlockchain.html | 40 - ...struct.CompactFiltersBlockchainConfig.html | 41 - .../compact_filters/struct.Mempool.html | 31 - .../compact_filters/struct.Peer.html | 34 - .../latest/bdk/blockchain/electrum/index.html | 14 - .../bdk/blockchain/electrum/sidebar-items.js | 1 - .../electrum/struct.ElectrumBlockchain.html | 33 - .../struct.ElectrumBlockchainConfig.html | 44 - .../bdk/blockchain/enum.Capability.html | 38 - .../blockchain/esplora/enum.EsploraError.html | 57 - .../latest/bdk/blockchain/esplora/index.html | 19 - .../bdk/blockchain/esplora/sidebar-items.js | 1 - .../esplora/struct.EsploraBlockchain.html | 36 - .../struct.EsploraBlockchainConfig.html | 51 - .../ureq/struct.EsploraBlockchain.html | 11 - .../bdk/blockchain/fn.log_progress.html | 5 - .../bdk/blockchain/fn.noop_progress.html | 5 - .../latest/bdk/blockchain/fn.progress.html | 5 - .../nightly/latest/bdk/blockchain/index.html | 32 - .../latest/bdk/blockchain/sidebar-items.js | 1 - .../blockchain/struct.EsploraBlockchain.html | 36 - .../bdk/blockchain/struct.LogProgress.html | 26 - .../bdk/blockchain/struct.NoopProgress.html | 26 - .../bdk/blockchain/trait.Blockchain.html | 36 - .../trait.ConfigurableBlockchain.html | 10 - .../latest/bdk/blockchain/trait.Progress.html | 11 - .../bdk/blockchain/type.ProgressData.html | 5 - .../bdk/database/any/enum.AnyBatch.html | 44 - .../bdk/database/any/enum.AnyDatabase.html | 66 - .../database/any/enum.AnyDatabaseConfig.html | 36 - .../latest/bdk/database/any/index.html | 28 - .../latest/bdk/database/any/sidebar-items.js | 1 - .../any/struct.SledDbConfiguration.html | 29 - .../any/struct.SqliteDbConfiguration.html | 27 - .../nightly/latest/bdk/database/index.html | 25 - .../latest/bdk/database/memory/index.html | 9 - .../bdk/database/memory/sidebar-items.js | 1 - .../memory/struct.MemoryDatabase.html | 63 - .../latest/bdk/database/sidebar-items.js | 1 - .../sqlite/struct.SqliteDatabase.html | 11 - .../bdk/database/struct.SqliteDatabase.html | 65 - .../latest/bdk/database/struct.SyncTime.html | 32 - .../bdk/database/trait.BatchDatabase.html | 13 - .../bdk/database/trait.BatchOperations.html | 36 - .../database/trait.ConfigurableDatabase.html | 10 - .../latest/bdk/database/trait.Database.html | 39 - .../descriptor/checksum/fn.get_checksum.html | 5 - .../latest/bdk/descriptor/checksum/index.html | 9 - .../bdk/descriptor/checksum/sidebar-items.js | 1 - .../descriptor/derived/enum.Descriptor.html | 11 - .../derived/enum.DescriptorPublicKey.html | 11 - .../bdk/descriptor/derived/enum.Legacy.html | 11 - .../bdk/descriptor/derived/enum.Segwitv0.html | 11 - .../derived/struct.DerivedDescriptorKey.html | 11 - .../descriptor/derived/struct.Miniscript.html | 11 - .../derived/trait.ScriptContext.html | 11 - .../bdk/descriptor/derived/type.KeyMap.html | 11 - .../bdk/descriptor/enum.Descriptor.html | 152 - .../latest/bdk/descriptor/enum.Legacy.html | 94 - .../latest/bdk/descriptor/enum.Segwitv0.html | 91 - .../bdk/descriptor/error/enum.Error.html | 60 - .../latest/bdk/descriptor/error/index.html | 7 - .../bdk/descriptor/error/sidebar-items.js | 1 - .../nightly/latest/bdk/descriptor/index.html | 36 - .../policy/enum.BuildSatisfaction.html | 41 - .../descriptor/policy/enum.PolicyError.html | 45 - .../descriptor/policy/enum.Satisfaction.html | 63 - .../policy/enum.SatisfiableItem.html | 79 - .../latest/bdk/descriptor/policy/index.html | 31 - .../bdk/descriptor/policy/sidebar-items.js | 1 - .../descriptor/policy/struct.Condition.html | 50 - .../bdk/descriptor/policy/struct.PkOrF.html | 28 - .../bdk/descriptor/policy/struct.Policy.html | 44 - .../descriptor/policy/type.ConditionMap.html | 5 - .../policy/type.FoldedConditionMap.html | 5 - .../latest/bdk/descriptor/sidebar-items.js | 1 - .../struct.DerivedDescriptorKey.html | 70 - .../bdk/descriptor/struct.Miniscript.html | 214 - .../latest/bdk/descriptor/template/index.html | 21 - .../bdk/descriptor/template/sidebar-items.js | 1 - .../bdk/descriptor/template/struct.Bip44.html | 37 - .../template/struct.Bip44Public.html | 40 - .../bdk/descriptor/template/struct.Bip49.html | 37 - .../template/struct.Bip49Public.html | 40 - .../bdk/descriptor/template/struct.Bip84.html | 37 - .../template/struct.Bip84Public.html | 40 - .../bdk/descriptor/template/struct.P2Pkh.html | 38 - .../descriptor/template/struct.P2Wpkh.html | 38 - .../template/struct.P2Wpkh_P2Sh.html | 38 - .../template/trait.DescriptorTemplate.html | 23 - .../template/type.DescriptorTemplateOut.html | 6 - .../bdk/descriptor/trait.ExtractPolicy.html | 8 - .../trait.IntoWalletDescriptor.html | 10 - .../bdk/descriptor/trait.ScriptContext.html | 78 - .../descriptor/type.DerivedDescriptor.html | 5 - .../descriptor/type.ExtendedDescriptor.html | 6 - .../bdk/descriptor/type.HdKeyPaths.html | 6 - .../latest/bdk/descriptor/type.KeyMap.html | 9 - .../bdk/nightly/latest/bdk/enum.Error.html | 149 - .../nightly/latest/bdk/enum.KeychainKind.html | 46 - .../bdk/nightly/latest/bdk/enum.Utxo.html | 41 - .../nightly/latest/bdk/error/enum.Error.html | 11 - .../bdk/nightly/latest/bdk/fn.version.html | 5 - .../docs-rs/bdk/nightly/latest/bdk/index.html | 172 - .../latest/bdk/keys/bip39/enum.Language.html | 52 - .../latest/bdk/keys/bip39/enum.WordCount.html | 31 - .../nightly/latest/bdk/keys/bip39/index.html | 12 - .../latest/bdk/keys/bip39/sidebar-items.js | 1 - .../bdk/keys/bip39/struct.Mnemonic.html | 97 - .../bip39/type.MnemonicWithPassphrase.html | 8 - .../latest/bdk/keys/enum.DescriptorKey.html | 28 - .../bdk/keys/enum.DescriptorPublicKey.html | 74 - .../bdk/keys/enum.DescriptorSecretKey.html | 37 - .../latest/bdk/keys/enum.ExtendedKey.html | 39 - .../latest/bdk/keys/enum.KeyError.html | 44 - .../bdk/keys/enum.ScriptContextEnum.html | 36 - .../latest/bdk/keys/fn.any_network.html | 5 - .../latest/bdk/keys/fn.mainnet_network.html | 5 - .../latest/bdk/keys/fn.merge_networks.html | 5 - .../latest/bdk/keys/fn.test_networks.html | 5 - .../bdk/nightly/latest/bdk/keys/index.html | 39 - .../nightly/latest/bdk/keys/sidebar-items.js | 1 - .../bdk/keys/struct.DescriptorSinglePriv.html | 26 - .../bdk/keys/struct.DescriptorSinglePub.html | 47 - .../latest/bdk/keys/struct.GeneratedKey.html | 27 - .../struct.PrivateKeyGenerateOptions.html | 31 - .../bdk/keys/struct.SortedMultiVec.html | 86 - .../latest/bdk/keys/trait.DerivableKey.html | 104 - .../bdk/keys/trait.ExtScriptContext.html | 13 - .../keys/trait.GeneratableDefaultOptions.html | 13 - .../latest/bdk/keys/trait.GeneratableKey.html | 22 - .../bdk/keys/trait.IntoDescriptorKey.html | 108 - .../latest/bdk/keys/trait.ScriptContext.html | 78 - .../nightly/latest/bdk/keys/type.KeyMap.html | 9 - .../latest/bdk/keys/type.ValidNetworks.html | 5 - .../nightly/latest/bdk/macro.descriptor!.html | 11 - .../nightly/latest/bdk/macro.descriptor.html | 80 - .../nightly/latest/bdk/macro.fragment!.html | 11 - .../nightly/latest/bdk/macro.fragment.html | 36 - .../bdk/nightly/latest/bdk/sidebar-items.js | 1 - .../nightly/latest/bdk/struct.BlockTime.html | 38 - .../nightly/latest/bdk/struct.FeeRate.html | 47 - .../nightly/latest/bdk/struct.LocalUtxo.html | 40 - .../latest/bdk/struct.TransactionDetails.html | 55 - .../latest/bdk/struct.WeightedUtxo.html | 35 - .../bdk/nightly/latest/bdk/trait.Vbytes.html | 8 - .../latest/bdk/type.ConfirmationTime.html | 7 - .../latest/bdk/types/enum.KeychainKind.html | 11 - .../nightly/latest/bdk/types/enum.Utxo.html | 11 - .../latest/bdk/types/struct.BlockTime.html | 11 - .../latest/bdk/types/struct.FeeRate.html | 11 - .../latest/bdk/types/struct.LocalUtxo.html | 11 - .../bdk/types/struct.TransactionDetails.html | 11 - .../latest/bdk/types/struct.WeightedUtxo.html | 11 - .../latest/bdk/types/trait.Vbytes.html | 11 - .../bdk/types/type.ConfirmationTime.html | 11 - .../enum.AddressValidatorError.html | 47 - .../bdk/wallet/address_validator/index.html | 47 - .../wallet/address_validator/sidebar-items.js | 1 - .../trait.AddressValidator.html | 12 - .../bdk/wallet/coin_selection/index.html | 74 - .../wallet/coin_selection/sidebar-items.js | 1 - .../struct.BranchAndBoundCoinSelection.html | 25 - .../struct.CoinSelectionResult.html | 28 - .../struct.LargestFirstCoinSelection.html | 30 - .../trait.CoinSelectionAlgorithm.html | 23 - .../type.DefaultCoinSelectionAlgorithm.html | 6 - .../latest/bdk/wallet/enum.AddressIndex.html | 45 - .../latest/bdk/wallet/export/index.html | 34 - .../latest/bdk/wallet/export/sidebar-items.js | 1 - .../wallet/export/struct.WalletExport.html | 43 - .../bdk/wallet/fn.get_funded_wallet.html | 5 - .../fn.wallet_name_from_descriptor.html | 5 - .../bdk/nightly/latest/bdk/wallet/index.html | 25 - .../latest/bdk/wallet/sidebar-items.js | 1 - .../bdk/wallet/signer/enum.SignerError.html | 60 - .../bdk/wallet/signer/enum.SignerId.html | 52 - .../latest/bdk/wallet/signer/index.html | 61 - .../latest/bdk/wallet/signer/sidebar-items.js | 1 - .../bdk/wallet/signer/struct.SignOptions.html | 49 - .../wallet/signer/struct.SignerOrdering.html | 44 - .../signer/struct.SignersContainer.html | 36 - .../bdk/wallet/signer/trait.Signer.html | 26 - .../latest/bdk/wallet/struct.AddressInfo.html | 46 - .../latest/bdk/wallet/struct.Wallet.html | 120 - .../bdk/wallet/time/fn.get_timestamp.html | 5 - .../nightly/latest/bdk/wallet/time/index.html | 11 - .../latest/bdk/wallet/time/sidebar-items.js | 1 - .../latest/bdk/wallet/trait.IsDust.html | 8 - .../tx_builder/enum.ChangeSpendPolicy.html | 50 - .../wallet/tx_builder/enum.TxOrdering.html | 51 - .../latest/bdk/wallet/tx_builder/index.html | 29 - .../bdk/wallet/tx_builder/sidebar-items.js | 1 - .../bdk/wallet/tx_builder/struct.BumpFee.html | 27 - .../wallet/tx_builder/struct.CreateTx.html | 28 - .../wallet/tx_builder/struct.TxBuilder.html | 226 - .../tx_builder/trait.TxBuilderContext.html | 5 - .../latest/bdk/wallet/utils/trait.IsDust.html | 11 - static/docs-rs/bdk/nightly/latest/brush.svg | 1 - .../docs-rs/bdk/nightly/latest/clipboard.svg | 1 - static/docs-rs/bdk/nightly/latest/crates.js | 1 - static/docs-rs/bdk/nightly/latest/dark.css | 1 - .../docs-rs/bdk/nightly/latest/down-arrow.svg | 1 - .../bdk/nightly/latest/favicon-16x16.png | Bin 2214 -> 0 bytes .../bdk/nightly/latest/favicon-32x32.png | Bin 2919 -> 0 bytes static/docs-rs/bdk/nightly/latest/favicon.svg | 24 - .../alloc/string/trait.ToString.js | 3 - .../bdk/blockchain/trait.Blockchain.js | 3 - .../trait.ConfigurableBlockchain.js | 3 - .../bdk/blockchain/trait.Progress.js | 3 - .../bdk/database/trait.BatchDatabase.js | 3 - .../bdk/database/trait.BatchOperations.js | 3 - .../database/trait.ConfigurableDatabase.js | 3 - .../bdk/database/trait.Database.js | 3 - .../template/trait.DescriptorTemplate.js | 3 - .../bdk/descriptor/trait.ExtractPolicy.js | 3 - .../descriptor/trait.IntoWalletDescriptor.js | 3 - .../bdk/keys/trait.DerivableKey.js | 3 - .../bdk/keys/trait.ExtScriptContext.js | 3 - .../keys/trait.GeneratableDefaultOptions.js | 3 - .../bdk/keys/trait.GeneratableKey.js | 3 - .../bdk/keys/trait.IntoDescriptorKey.js | 3 - .../bdk/keys/trait.ScriptContext.js | 3 - .../latest/implementors/bdk/trait.Vbytes.js | 3 - .../trait.CoinSelectionAlgorithm.js | 3 - .../bdk/wallet/signer/trait.Signer.js | 3 - .../implementors/bdk/wallet/trait.IsDust.js | 3 - .../tx_builder/trait.TxBuilderContext.js | 3 - .../implementors/core/clone/trait.Clone.js | 3 - .../latest/implementors/core/cmp/trait.Eq.js | 3 - .../latest/implementors/core/cmp/trait.Ord.js | 3 - .../implementors/core/cmp/trait.PartialEq.js | 3 - .../implementors/core/cmp/trait.PartialOrd.js | 3 - .../implementors/core/convert/trait.AsRef.js | 3 - .../implementors/core/convert/trait.From.js | 3 - .../core/default/trait.Default.js | 3 - .../implementors/core/fmt/trait.Debug.js | 3 - .../implementors/core/fmt/trait.Display.js | 3 - .../implementors/core/hash/trait.Hash.js | 3 - .../implementors/core/marker/trait.Copy.js | 3 - .../implementors/core/marker/trait.Freeze.js | 3 - .../implementors/core/marker/trait.Send.js | 3 - .../core/marker/trait.StructuralEq.js | 3 - .../core/marker/trait.StructuralPartialEq.js | 3 - .../implementors/core/marker/trait.Sync.js | 3 - .../implementors/core/marker/trait.Unpin.js | 3 - .../implementors/core/ops/arith/trait.Sub.js | 3 - .../core/ops/deref/trait.Deref.js | 3 - .../panic/unwind_safe/trait.RefUnwindSafe.js | 3 - .../panic/unwind_safe/trait.UnwindSafe.js | 3 - .../core/str/traits/trait.FromStr.js | 3 - .../miniscript/trait.MiniscriptKey.js | 3 - .../miniscript/trait.ToPublicKey.js | 3 - .../serde/de/trait.Deserialize.js | 3 - .../implementors/serde/ser/trait.Serialize.js | 3 - .../implementors/std/error/trait.Error.js | 3 - static/docs-rs/bdk/nightly/latest/light.css | 1 - static/docs-rs/bdk/nightly/latest/main.js | 8 - .../docs-rs/bdk/nightly/latest/normalize.css | 2 - .../docs-rs/bdk/nightly/latest/noscript.css | 1 - .../docs-rs/bdk/nightly/latest/rust-logo.png | Bin 5758 -> 0 bytes static/docs-rs/bdk/nightly/latest/rustdoc.css | 1 - .../bdk/nightly/latest/search-index.js | 4 - static/docs-rs/bdk/nightly/latest/search.js | 1 - .../docs-rs/bdk/nightly/latest/settings.css | 1 - .../docs-rs/bdk/nightly/latest/settings.html | 5 - static/docs-rs/bdk/nightly/latest/settings.js | 1 - .../bdk/nightly/latest/source-files.js | 3 - .../bdk/nightly/latest/source-script.js | 1 - .../latest/src/bdk/blockchain/any.rs.html | 511 -- .../blockchain/compact_filters/mod.rs.html | 1141 --- .../blockchain/compact_filters/peer.rs.html | 1149 --- .../blockchain/compact_filters/store.rs.html | 1705 ---- .../blockchain/compact_filters/sync.rs.html | 597 -- .../src/bdk/blockchain/electrum.rs.html | 643 -- .../src/bdk/blockchain/esplora/api.rs.html | 239 - .../src/bdk/blockchain/esplora/mod.rs.html | 429 - .../src/bdk/blockchain/esplora/ureq.rs.html | 747 -- .../latest/src/bdk/blockchain/mod.rs.html | 515 -- .../src/bdk/blockchain/script_sync.rs.html | 793 -- .../latest/src/bdk/database/any.rs.html | 865 -- .../latest/src/bdk/database/keyvalue.rs.html | 1007 -- .../latest/src/bdk/database/memory.rs.html | 1245 --- .../latest/src/bdk/database/mod.rs.html | 845 -- .../latest/src/bdk/database/sqlite.rs.html | 2071 ----- .../src/bdk/descriptor/checksum.rs.html | 231 - .../latest/src/bdk/descriptor/derived.rs.html | 305 - .../latest/src/bdk/descriptor/dsl.rs.html | 2135 ----- .../latest/src/bdk/descriptor/error.rs.html | 143 - .../latest/src/bdk/descriptor/mod.rs.html | 1613 ---- .../latest/src/bdk/descriptor/policy.rs.html | 3209 ------- .../src/bdk/descriptor/template.rs.html | 1457 --- .../bdk/nightly/latest/src/bdk/error.rs.html | 461 - .../nightly/latest/src/bdk/keys/bip39.rs.html | 421 - .../nightly/latest/src/bdk/keys/mod.rs.html | 1873 ---- .../bdk/nightly/latest/src/bdk/lib.rs.html | 571 -- .../nightly/latest/src/bdk/psbt/mod.rs.html | 249 - .../latest/src/bdk/testutils/mod.rs.html | 467 - .../bdk/nightly/latest/src/bdk/types.rs.html | 523 -- .../src/bdk/wallet/address_validator.rs.html | 313 - .../src/bdk/wallet/coin_selection.rs.html | 2123 ----- .../latest/src/bdk/wallet/export.rs.html | 707 -- .../nightly/latest/src/bdk/wallet/mod.rs.html | 8079 ----------------- .../latest/src/bdk/wallet/signer.rs.html | 1537 ---- .../latest/src/bdk/wallet/time.rs.html | 151 - .../latest/src/bdk/wallet/tx_builder.rs.html | 1791 ---- .../latest/src/bdk/wallet/utils.rs.html | 469 - static/docs-rs/bdk/nightly/latest/storage.js | 1 - .../bdk/nightly/latest/toggle-minus.svg | 1 - .../bdk/nightly/latest/toggle-plus.svg | 1 - static/docs-rs/bdk/nightly/latest/wheel.svg | 1 - 349 files changed, 50823 deletions(-) delete mode 100644 static/docs-rs/bdk/nightly/latest/.lock delete mode 100644 static/docs-rs/bdk/nightly/latest/COPYRIGHT.txt delete mode 100644 static/docs-rs/bdk/nightly/latest/FiraSans-LICENSE.txt delete mode 100644 static/docs-rs/bdk/nightly/latest/FiraSans-Medium.woff delete mode 100644 static/docs-rs/bdk/nightly/latest/FiraSans-Medium.woff2 delete mode 100644 static/docs-rs/bdk/nightly/latest/FiraSans-Regular.woff delete mode 100644 static/docs-rs/bdk/nightly/latest/FiraSans-Regular.woff2 delete mode 100644 static/docs-rs/bdk/nightly/latest/LICENSE-APACHE.txt delete mode 100644 static/docs-rs/bdk/nightly/latest/LICENSE-MIT.txt delete mode 100644 static/docs-rs/bdk/nightly/latest/NanumBarunGothic-LICENSE.txt delete mode 100644 static/docs-rs/bdk/nightly/latest/NanumBarunGothic.ttf.woff delete mode 100644 static/docs-rs/bdk/nightly/latest/NanumBarunGothic.ttf.woff2 delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceCodePro-It.ttf.woff delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceCodePro-It.ttf.woff2 delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceCodePro-LICENSE.txt delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceCodePro-Regular.ttf.woff delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceCodePro-Regular.ttf.woff2 delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceCodePro-Semibold.ttf.woff delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceCodePro-Semibold.ttf.woff2 delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceSerif4-Bold.ttf.woff delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceSerif4-Bold.ttf.woff2 delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceSerif4-It.ttf.woff delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceSerif4-It.ttf.woff2 delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceSerif4-LICENSE.md delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceSerif4-Regular.ttf.woff delete mode 100644 static/docs-rs/bdk/nightly/latest/SourceSerif4-Regular.ttf.woff2 delete mode 100644 static/docs-rs/bdk/nightly/latest/ayu.css delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/all.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/enum.AnyBlockchain.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/enum.AnyBlockchainConfig.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/enum.CompactFiltersError.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/peer/struct.Mempool.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/peer/struct.Peer.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.BitcoinPeerConfig.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.CompactFiltersBlockchain.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.CompactFiltersBlockchainConfig.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.Mempool.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.Peer.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/struct.ElectrumBlockchain.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/struct.ElectrumBlockchainConfig.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/enum.Capability.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/enum.EsploraError.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/struct.EsploraBlockchain.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/struct.EsploraBlockchainConfig.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/ureq/struct.EsploraBlockchain.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.log_progress.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.noop_progress.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.progress.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.EsploraBlockchain.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.LogProgress.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.NoopProgress.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.Blockchain.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.ConfigurableBlockchain.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.Progress.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/blockchain/type.ProgressData.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyBatch.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyDatabase.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyDatabaseConfig.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/any/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/any/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/any/struct.SledDbConfiguration.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/any/struct.SqliteDbConfiguration.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/memory/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/memory/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/memory/struct.MemoryDatabase.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/sqlite/struct.SqliteDatabase.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/struct.SqliteDatabase.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/struct.SyncTime.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/trait.BatchDatabase.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/trait.BatchOperations.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/trait.ConfigurableDatabase.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/database/trait.Database.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/fn.get_checksum.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Descriptor.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.DescriptorPublicKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Legacy.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Segwitv0.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/struct.DerivedDescriptorKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/struct.Miniscript.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/trait.ScriptContext.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/type.KeyMap.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Legacy.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Segwitv0.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/enum.Error.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.BuildSatisfaction.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PolicyError.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.Satisfaction.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.SatisfiableItem.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Condition.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.PkOrF.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Policy.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.ConditionMap.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.FoldedConditionMap.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.DerivedDescriptorKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.Miniscript.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44Public.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49Public.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84Public.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Pkh.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh_P2Sh.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/trait.DescriptorTemplate.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/type.DescriptorTemplateOut.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ExtractPolicy.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.IntoWalletDescriptor.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ScriptContext.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.DerivedDescriptor.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.ExtendedDescriptor.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.HdKeyPaths.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.KeyMap.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/enum.Error.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/enum.KeychainKind.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/enum.Utxo.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/error/enum.Error.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/fn.version.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/enum.Language.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/enum.WordCount.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/struct.Mnemonic.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/type.MnemonicWithPassphrase.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorPublicKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorSecretKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/enum.ExtendedKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/enum.KeyError.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/enum.ScriptContextEnum.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/fn.any_network.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/fn.mainnet_network.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/fn.merge_networks.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/fn.test_networks.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/struct.DescriptorSinglePriv.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/struct.DescriptorSinglePub.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/struct.GeneratedKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/struct.PrivateKeyGenerateOptions.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/struct.SortedMultiVec.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/trait.DerivableKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/trait.ExtScriptContext.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableDefaultOptions.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/trait.IntoDescriptorKey.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/trait.ScriptContext.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/type.KeyMap.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/keys/type.ValidNetworks.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/macro.descriptor!.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/macro.descriptor.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/macro.fragment!.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/macro.fragment.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/struct.BlockTime.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/struct.FeeRate.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/struct.LocalUtxo.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/struct.TransactionDetails.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/struct.WeightedUtxo.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/trait.Vbytes.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/type.ConfirmationTime.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/types/enum.KeychainKind.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/types/enum.Utxo.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/types/struct.BlockTime.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/types/struct.FeeRate.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/types/struct.LocalUtxo.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/types/struct.TransactionDetails.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/types/struct.WeightedUtxo.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/types/trait.Vbytes.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/types/type.ConfirmationTime.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/enum.AddressValidatorError.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/trait.AddressValidator.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.CoinSelectionResult.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/enum.AddressIndex.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/export/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/export/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/export/struct.WalletExport.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/fn.get_funded_wallet.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/fn.wallet_name_from_descriptor.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerError.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerId.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignOptions.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerOrdering.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignersContainer.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.Signer.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/struct.AddressInfo.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Wallet.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/time/fn.get_timestamp.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/time/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/time/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/trait.IsDust.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/enum.TxOrdering.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/index.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/sidebar-items.js delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.BumpFee.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.CreateTx.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.TxBuilder.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/trait.TxBuilderContext.html delete mode 100644 static/docs-rs/bdk/nightly/latest/bdk/wallet/utils/trait.IsDust.html delete mode 100644 static/docs-rs/bdk/nightly/latest/brush.svg delete mode 100644 static/docs-rs/bdk/nightly/latest/clipboard.svg delete mode 100644 static/docs-rs/bdk/nightly/latest/crates.js delete mode 100644 static/docs-rs/bdk/nightly/latest/dark.css delete mode 100644 static/docs-rs/bdk/nightly/latest/down-arrow.svg delete mode 100644 static/docs-rs/bdk/nightly/latest/favicon-16x16.png delete mode 100644 static/docs-rs/bdk/nightly/latest/favicon-32x32.png delete mode 100644 static/docs-rs/bdk/nightly/latest/favicon.svg delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/alloc/string/trait.ToString.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.Blockchain.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.ConfigurableBlockchain.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.Progress.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.BatchDatabase.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.BatchOperations.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.ConfigurableDatabase.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.Database.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/template/trait.DescriptorTemplate.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/trait.ExtractPolicy.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/trait.IntoWalletDescriptor.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.DerivableKey.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.ExtScriptContext.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.GeneratableDefaultOptions.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.GeneratableKey.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.IntoDescriptorKey.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.ScriptContext.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/trait.Vbytes.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.Signer.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/trait.IsDust.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/tx_builder/trait.TxBuilderContext.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/clone/trait.Clone.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Eq.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Ord.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialEq.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialOrd.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.AsRef.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/default/trait.Default.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/fmt/trait.Debug.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/fmt/trait.Display.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/hash/trait.Hash.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Copy.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Freeze.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Send.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralEq.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralPartialEq.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Sync.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Unpin.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/ops/arith/trait.Sub.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/ops/deref/trait.Deref.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/core/str/traits/trait.FromStr.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/miniscript/trait.MiniscriptKey.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/miniscript/trait.ToPublicKey.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/serde/de/trait.Deserialize.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/serde/ser/trait.Serialize.js delete mode 100644 static/docs-rs/bdk/nightly/latest/implementors/std/error/trait.Error.js delete mode 100644 static/docs-rs/bdk/nightly/latest/light.css delete mode 100644 static/docs-rs/bdk/nightly/latest/main.js delete mode 100644 static/docs-rs/bdk/nightly/latest/normalize.css delete mode 100644 static/docs-rs/bdk/nightly/latest/noscript.css delete mode 100644 static/docs-rs/bdk/nightly/latest/rust-logo.png delete mode 100644 static/docs-rs/bdk/nightly/latest/rustdoc.css delete mode 100644 static/docs-rs/bdk/nightly/latest/search-index.js delete mode 100644 static/docs-rs/bdk/nightly/latest/search.js delete mode 100644 static/docs-rs/bdk/nightly/latest/settings.css delete mode 100644 static/docs-rs/bdk/nightly/latest/settings.html delete mode 100644 static/docs-rs/bdk/nightly/latest/settings.js delete mode 100644 static/docs-rs/bdk/nightly/latest/source-files.js delete mode 100644 static/docs-rs/bdk/nightly/latest/source-script.js delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/any.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/mod.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/peer.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/store.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/sync.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/electrum.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/api.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/mod.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/ureq.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/mod.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/script_sync.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/database/any.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/database/keyvalue.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/database/memory.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/database/mod.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/database/sqlite.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/checksum.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/derived.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/dsl.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/error.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/mod.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/policy.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/template.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/error.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/keys/bip39.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/keys/mod.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/lib.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/psbt/mod.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/testutils/mod.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/types.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/wallet/address_validator.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/wallet/coin_selection.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/wallet/export.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/wallet/signer.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/wallet/time.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/wallet/tx_builder.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/src/bdk/wallet/utils.rs.html delete mode 100644 static/docs-rs/bdk/nightly/latest/storage.js delete mode 100644 static/docs-rs/bdk/nightly/latest/toggle-minus.svg delete mode 100644 static/docs-rs/bdk/nightly/latest/toggle-plus.svg delete mode 100644 static/docs-rs/bdk/nightly/latest/wheel.svg diff --git a/static/docs-rs/bdk/nightly/latest/.lock b/static/docs-rs/bdk/nightly/latest/.lock deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/static/docs-rs/bdk/nightly/latest/COPYRIGHT.txt b/static/docs-rs/bdk/nightly/latest/COPYRIGHT.txt deleted file mode 100644 index c2629a83f7..0000000000 --- a/static/docs-rs/bdk/nightly/latest/COPYRIGHT.txt +++ /dev/null @@ -1,50 +0,0 @@ -These documentation pages include resources by third parties. This copyright -file applies only to those resources. The following third party resources are -included, and carry their own copyright notices and license terms: - -* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2, - FiraSans-Regular.woff, FiraSans-Medium.woff): - - Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ - with Reserved Font Name Fira Sans. - - Copyright (c) 2014, Telefonica S.A. - - Licensed under the SIL Open Font License, Version 1.1. - See FiraSans-LICENSE.txt. - -* rustdoc.css, main.js, and playpen.js: - - Copyright 2015 The Rust Developers. - Licensed under the Apache License, Version 2.0 (see LICENSE-APACHE.txt) or - the MIT license (LICENSE-MIT.txt) at your option. - -* normalize.css: - - Copyright (c) Nicolas Gallagher and Jonathan Neal. - Licensed under the MIT license (see LICENSE-MIT.txt). - -* Source Code Pro (SourceCodePro-Regular.ttf.woff2, - SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2, - SourceCodePro-Regular.ttf.woff, SourceCodePro-Semibold.ttf.woff, - SourceCodePro-It.ttf.woff): - - Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), - with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark - of Adobe Systems Incorporated in the United States and/or other countries. - - Licensed under the SIL Open Font License, Version 1.1. - See SourceCodePro-LICENSE.txt. - -* Source Serif 4 (SourceSerif4-Regular.ttf.woff2, SourceSerif4-Bold.ttf.woff2, - SourceSerif4-It.ttf.woff2, SourceSerif4-Regular.ttf.woff, - SourceSerif4-Bold.ttf.woff, SourceSerif4-It.ttf.woff): - - Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name - 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United - States and/or other countries. - - Licensed under the SIL Open Font License, Version 1.1. - See SourceSerif4-LICENSE.md. - -This copyright file is intended to be distributed with rustdoc output. diff --git a/static/docs-rs/bdk/nightly/latest/FiraSans-LICENSE.txt b/static/docs-rs/bdk/nightly/latest/FiraSans-LICENSE.txt deleted file mode 100644 index ff9afab064..0000000000 --- a/static/docs-rs/bdk/nightly/latest/FiraSans-LICENSE.txt +++ /dev/null @@ -1,94 +0,0 @@ -Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A. -with Reserved Font Name < Fira >, - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/static/docs-rs/bdk/nightly/latest/FiraSans-Medium.woff b/static/docs-rs/bdk/nightly/latest/FiraSans-Medium.woff deleted file mode 100644 index 7d742c5fb7d4597ae140f8418f52ffe03dc75343..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186824 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⩔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 U|Bv{{GaLS=zr5yR%fi3_03@G~A^-pY diff --git a/static/docs-rs/bdk/nightly/latest/FiraSans-Regular.woff b/static/docs-rs/bdk/nightly/latest/FiraSans-Regular.woff deleted file mode 100644 index d8e0363f4e1a000568d782653291e14c66ee3485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183268 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

=Eu2DOQ_0KoZ}L$@^9zImV$%EEt+|o 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

nWLwX^ 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

uw_-ccleOTvRKe~q;A@dVCKH_r8Y@YUT; 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�V}voaFqxt%Zg{VM#@wHx_$8V#Cr+my$Gh|2HpY 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

!^663JK4d z^G@|Vdb4a()4yv4(f*-a;X3(|%c5$&)~Zgs8IYcFXXa7S)02yfcZ=C8{?(n9DwFU( zsCRcxptqmrHr)*Q{DQ0fe)$|Xe$A>aPCd9N&ix15?$i4UkKdb+`{>*ZW3x}UIWs+~ z5~UngFG)6Q&N<)i+{>91#dH-Uz}Nyo)YJAxZ3>Fx0zO^d#Vq_ zKKs4c>mKu-t>@R2iC0*D>v_+l=CNQ^i1os$E$W5dE6SU~&uuiRxox|_+ zPcE?cF?y?%G^Inmb4Q%^yH9hpBTtekPh^0VON^M>bH zs#eRjrh0ESJRLi8pVsNnxC`E*13ypB`Yr&eyB%+n?6V&m*$FYt@4|Na_1YQOB_IUue6i0N)|TZf_2tS#Fn1}96$O2@CxY|6^b zRQ_vJ@oGv#;D^ui)SGNKblM0s?Xi;XvI_Y;ZKjXYEN$ZhlaiE#_`XFrKHQr(^W$$R zwiz8QGde6BUCtE={`|G(%fy>EZ-hODoR?^QKl&Zs0~6&trXGE^w0H97jnDh#T8qDF zw7ouJ$^G>7!|#V9XPvH?yosl@aJQ$fsPw_ZWZgEeXC>KErSx6T2`C88l~+zsq^mp>a&j)#LqYy zyO2|S=F#}Fx}x^%uj)2_Gk~Ym}|5t-Q^?W@1`&)qAh}|G%!OZP~Q#AXhxI_8!)- zAI%j(Iy0o6i1taP@z!_6C*Ql2=(1GyOZZmrdq0)EIObiO&c0Nw^!g1~@9MUWz_(Jn zO`?D5to?N&_44t)-^+y8OU@^K^xej`{O`2YANuQlm_}a-4SLjfD<{zWcmDLX2g2sf zj?U9Qv3=^(Klb4*~*e7acYf85%W z1!2Jn3Vfek`zG_=*LW^j*O{ufFxrc=-q4qT1?T$$0zdb>p0J?%uASUuugF_V zW$Jg#c{gS9+^+67C&E0HW4m|Uom`r*@x#Tbzix5;%s+RJ_uzvzyXBkt_kFi|YJOk7 z|Ni=l?wG)KLr((gjxR+qO=AuXp`` zS<;rfIajnSkFQhwzpmrU`!y>z&y){WAuX_=4xEf3A#_49@8#~-%)L%DpNI~CpU{|e}^{SlB+J3raEQ$1_D z``)EX@2$8i_I1iB{e4+le-e`%&dmz2%ipEHnbtIad9~kiw$nX5w?oXtp{B%iXLx0pI3j8ils%xCq@ zGv$^)JDuNbnsvi<>d!gtX(pG0(=*JB^?r5D`*pTc-Tc&kFP1rfKNeI3@4tL=zotyz zckAsNkH6E@O}+2^q&{$8O4arv)xzB|r5B&@9DTU)xbvfpwbmX@8;*ZSsG~mCNu@@b4q1Ev`1Ipa1?XF8=hsF3;$%#YeB$6+6~jypqfO zxc>C{sgF-(SMGc_>Dsn$MU!pvvTmjQs)#)vqhN7AF#NiqJkOcZE4|ZqC~v#*CTC53 zpN+k_bcioQmU@4)Okqd8{B*Mu-#3<2x5}s2+Nk;dzG+f=Vbv}bhBd;iVScd{ixrc5 zAH97M|FhzWtK6|mhc5}-&TeMi&7Cl5#I?#c&; z^%PcZeBZrLm{+*^(t+}0XAKT%7x=3Pr@kB@Ep z{{!bACW(o+7k;#eb}&Am_~~@pji-ksc~zcE2pBt_J`|{xursV|OJUlInMF>A7han5 zD2M-VCi~O&Q?D;AI`f2KiQ1~iti9HES(g6Snjcj6XEO8U&)t(JcYnV8?pd1oPoux- zY!hm~3I3G6@A2id^%VOjPy3!f|F>{?dVT!-Px~e&7>IGRxm&$jt@ZZXsZ~{3kKcPG zKE7TcT|Z5Fr4rLRy_coa?D#Tyu4dIeop35(W8nP_QD+6EnX9%NVPtcX)f1ZYrMcD)&k$oU*kq z#`XU0u)U^PR|Gh;TDE>xy{)L*p3utog!_~J)TrRuLE8UYe+WL>rWn`sgY(XhWkTgw z*e2%VHx$;vsrVlS0(1{$*_}}@cCMU z=Cri1Mkb@fn#pJH{AA$YuQ&D2i^<_D@5e|4-`JNI;e2P!(K&|cpPbCr@K=<%Yl!Y` z^Z=t!`PQ5LPcIyketz=$xvCdRs(Fj-;1N}N zHpOGdpN_a6%WC^i{Ooj}SK+j->X*vn68qc(&JQntx-Oq}`Juwcw8}cCo3sCan$|ge z+uBo-r=wGU&5)D2DfM=(lK(|Vo3lIixU#Z-^L_oC)AY^qXD? zp_;RN*|vzsIla~!za92I;<>eY#$x6PLGQz#|J$_D_+@~RPrOuEpwVG}>#s60Z)T)A z&oD9kDX+%8V%`qvER`Dt@&CTJd~iQE@o43zuNHp=+bXuNaDG%`?y>QU^R5RSWd;tC z<+d*qoxD32JUn%uSLCN+<=RinS1xV&^i=o6$&KJpEf_xYSpy8$i1M!swwalN7oO>2irudkJjj4{q1G+X6mI&N<7U1 z^XfjyEMICq<6VW%tdE<6lv=Xd<7E>p=ddj@W?D3R%_FA=thfG7mr`GTqPgmbDZ}fJ zd>yZ*73_M-u&IV!(j)KC(cp+xpO}0;-S&%r*j>Mf`_sI)QVGnxmrs^vx6D2wVS4N( z!@jxuw#2gj(3$0EeOfUxqe)^?o7%)czf83L-KUmTwyfx`^rF#GO zm+z%qLSVQ~mO#?c~d!4&8Whu+NV-8r@C=pS8J_Vt&$^^w{*4Gtdd86 zt{Mc-G$^-SVD$P&;Ndm%eyz+u#(D47hWxow-&i%acgWhhm@F^T)m&)L@3+cP{Orfu zYeij)zN_rZ&Fa-QKUuE!u6V4y(qitqcnR8DECnFsrpn;Bxywodn1mals3$;*%W zv)P!sC$L8Fu!vW`dR;Bn{LRc`-DJQFfZJ7mJWC6`^ya+AxQNiz~Ap8wn{m$&uQjgx+i0`%# zZc&xn`qGu3SNO;8(8G_#+K)P%5}xMf@o3UY4iVne$J4I2nH?xrb=N4HVzjsapbEo@Bbf?n&3as{Jaww`=GoCrhu`dau|K)Ecq3!cx4(P$W*f@H-A~8?BkL-LG2scvKZO2TeUz5gK{Zr83uS>G4xul{c2~>8b39Jk%tYz;|Vt&)T&b zr8T^lSo?QgAKe%s0{+`Y`aKlEze+ZXrB zE^InFCH~4|jre^c2eGB$ftGY$-dMIk{4y@{JUF0nFC#0BX=^_8E9FBJ% zO*wLDmc)Wjax1!Rrs+O@F8A~O5&q8%*#@d{Zgs(ulRxNfidgjjpiZBx>K=_x4T4h& z+Pc)nMz;4%i?-Gww^dL|986CTf{|gN}oP8E63G!o7&I((;hQteVu$~O}zVA zD_zB$ZJ!^XI=SRAm#%P5*@wL$-&M{nv5`zU`9R_`*Xdc;KCy6E6-`rdWuK!Tvm?so zG@pv#>TPA)WFzb5>g;{=pfQNqKDs0*-MMvjTBNR$+auA~TOWILC+W=LyKj;bm;Q2n zH)H+M;73Q6_~kH6om0xo(mlBI!5M{62P3k&tZP^!Ir}|Me*rV`-y=mn% z&yG?Xb^Grgj~-n!{Monh>tRpET)~TNYGFH$pO~`BZ~BJ^W>fu|AL|G(=B|7Ybd6({ zK>F$DpM92|X^lI-_-SdK;GttZ;gMOtCRyIKIb*s;^?l^&O?SKl&hNCFUf^cC0Uz_LOgJZa((TJiwW!)a~Tg*=ch7L={A?oV!*T649_lE1$e7yg{rZ}Z`R`-9cJcfV}^ z_}*);rnjb%zNY`l<|9Sh1XjOVQlzc$f69WGgHza-OgpQb$Q`bwAu+l2OT*R)s;ZOk zZ~WFOIw`Vr-j12>xQE!}Q0FE~E=^zHny=5wLG zy#MCcFZdhN*13wuw9Q{4mAU(b#|A%PJ@=N^sVtq$Z2!;bPw#M>HMd(`T+C1JnDF|U z_ZHjhHVH)A>)`oP6r=GX8D4Wmm40 z=xlrVedEiQhM$i9oj*D2zT>Le61(8d{vTNQq`pP1$j^DW^s+``a24nJ-CUfTk8fAv zjQ-2kD0N!ifvdjV#*ugJleMpWHkn4P%Cia-`w$$Wa>iqdw&2rUNB-Z_`0rX-92F@y z?Yk!b%)Gx>Pfx$kqrwtiy=U{bZN~TR?PJ`R|6<0R*|X=&nY;9pRqnof3hNoBtBM)K z_ zmr8q{=w16^dM~2a&{FZp%Jha0zi*mK_`PiTv1USQ(pgWZw5BNCkAcibRfM$KO0;9N z#JtNl|2LR?ctX|3v;B$um-qLss#w@EHJml-n7VReHH%@Zv8m~-*d==tV;D8Mg#Ua0 zTRkatR(O%`>Z!9YCppX2Jd^x+C|!PU&8P3PkH_6e>S|9{4h@}nvq1Z|oTP-bbVqNG zismmxttS?uMY~Ttm;P>L^rp1yck|q~y?P(_O-NiH{iam%TNO*d;zLX!iYPBk_4EK7bzE+t&o>raJi|?gv|FCBEkw^cy`gSVW?>`{tXuSD0!yY9T zIhB1^XRK$~+cJY`$+mAr7tEOyRWc3)F+MX7Z&-X}@v@IQHbw7?|Cw9G^Ys7E^Pl4P ze>w8h{Nk2p2_+lXE?bssC>7iAp8M_M;NZo|!or^Y`#YkW#nL!u?VPIrL@HvMlZ>{g z^G4B=b*WAYtHJ|1_h*P3&0>D2JSpao=aj2@FYiA%UPm6_ZjY; zG0A#mWHhsdDVME8b&6_^!zEqX0`B(YVn!m2m{H**wMw1Ud&YJ3 zszt>U!@lj!%}7ehNGO@2?sR{_M~;$J;hzPz|Jw3sR>zVsF3-J}=3hB&wYGfyvQM!y zV^$x1$u;SFsgPLOhc>H%C#AnaKXn?0WM9z?J7ti=|80iU0au61IjcBQkLK^HnZ;bx zy<^`iv3oM9s_GLr+&*;lm`qn-!l~?i{_)~>K6PgNn7mtQv3VZP%Y{B#?gm_rzGb(`?nyS!neeG?yWD5jekz@L=9giyvD_w4kIft{1{_avXDQgt zcjn4a6%J=qo^9|vZ(;`HCeGRC*!S$yXcjc#n)!9L%(Nzz^}9}UEM}OuqjnZcq^M|E zqv-FwXN$zWlz-`cny2Tpq|DR%i+#lIiHXhUqK!_R)42X5c&h>9OaF{d+ii@GFJIn& zzT(60ZCo0=A{dPKGPsJ1?w`KaetP_l4`*Iyx-5Sasg{2#c>eE|6YYI^|EOg>Iqv$Z zI8Zn3-W~>em{UVRF9f#JSubwZ)4rC3Pkn=-8f^WNpUB zJ~^W~Q7j_a!NV;=*?mUKW1a|eHSTP8jVk5H8%ZqUyI(N<-J5dt!nw(}Qa9R6>N2Q% zmF#Y}fNjc-X$Mi9_>E0_gVFR!=GoKsFzF?D_-fX!`HdE zqWz1E_o^p_Yk5B;TfR_vT{T^OUhK0gUJkYu?mNDpICzEYw2$`>4b`;Fg^?$OZnVB# zv^kmC=a9;Iz2jQXESH>^YLb;_A8D?+JM_x>4ej2h#i?6Gm&NaUJokN#yNz6YVrlEk zd!5qi_Y$@C)O=X=N}Dh99dFr-SK2+*S+%WU5%;fhba3b1-E_!ns;Z}=j<)!WDMrCb zsY+gx&V)X33{zXbNHjEc!Je-0sOgEj3LnJ^+Z*p~U+OY#_2~yI1s8jKYKgU4lE`x5 z)W&C556zRjzx>h){?02N@;%)hSw}ivPI#7jw6k-!kt(d+}jWKE2N&cG?{_HqZuc~H0DM*%g*1XrIO-w>QiXW#=UKzSGUUlxT zgPnJU%}<<dm~e^*w2~?wono=@TuUa!cXr z4{esGOur&>3T_VP49fS zEo%QbUQK@IF;S5<{6w#h%h@|?7Ir+?<3D@v{0no=v#h-!@WV9Y-Ky}%{!_cwESHTB z;(yi?!eh4as)Ahiyu;I`1#5`xi1bf5?dPlg$K>Mm%b&h?e<{B{{r$-k+E?5JcbD#Q z5{cbyqVhLTRANTLi>wQK*IZz0xv;DCg2d+Lu4T^ZQnTZ$XIjpArJ$P_by-1U|FZoZ z7nJX9$d?zqz+15KoK@%z1JlKm9A>v%_%%&DO6^c$)XtNlr-S(Jn-?BG!tb+Nw(42p zqkpNI?VcZ%77JhGV?A4X$4pN65|8)dOJS93wfrqMAG%rE$j&@7HOpqVk@$JH6*?E* z2v2?IHt(wQ%do(`{<`Pcwscn=G%D3UP~ssf7$v&Qc~wX2+9V@e_Vhb%d(2-RdVJIE z*CjV?`4h~M(;cVm@wz$RtgZR~^c>@s1GoNj?wk42S$MnOoz$qw1%LSs&-DldN~T9$ z-xYq`!dOmo&MswEht>Qux;QjgB97l@UB$6}_MbBSd0ueYXO zLY{5zdiVM97B73Y(Ct%|zMj+zHxdd~)D2nbx#sBw1-;e{$pPXiAGnx5OwU<<{a$uK z)wi63dWpy z^oU1K?_rafLBsyEzI}5`jXo%4@tWLxuHifF(IowK=0fRP**T*$Qq08~7Kdub7H+7R z|1xfA#JislqR-8%<*s=-p5<)9sn+tCH>?x&7q6S|2}8jJ?H*J*f+H zZ{3&Am42~)^%;H56X*3cPOe{LeD{utt55vxkl@cMHS=@UaawhE&pkM6)`G=5ZV0L@ zV(p9NJ)S-F$#i$qoQ%GSe@r}Y%u(61iD_X>V(l5F5AD0{O?RFM-jZFBcIsVv_^UYi!NLmjoV?RgES=YUo-w6#;=Tn;mzyT`9gLh*&-{90 z+f#QJL;X!HH={Uj-gN!(O(eEjYfI-tjx9@dl^BXr7d)JKOxA93oh0C9zr1F?*K}j_zjy4y z`*(WHy3xpEve7(kL8q*MiD7q}npXENDCy{RQQhGi_WqRgtu8+Ic%Ga0qP2xNLMy-anP@~wuJ>tPYOB3;n(dDG zeH&8yFR9)3SGl)cscNQo@y_x9cYWh`r71VOef6zpG{%(~FzP3?Gd6J_c)T5q!n*G00w9a?LOK4Q)>kRfln2SS=>hE~MLBrTeJ+ zr@Tk!q(#9Z(h;r)c2EBk$FNtE`31K@XmE#{(9VfZ@^`P0mr71voburKkwqf)+F6H^ zgKoMmJ3IAc%Fn5qhfduHk#e08&AIqh}F zjb2pU{_-Bj@q3w{!J?YXW~)s^tBMep9!v%WY~;Qc$X^Rj22iwvZ&wH%3XF-PsLC_zVwt zM4q)jWYKi?zz?>ju8jKi^N*!1HevX&)h6moa$fdywe6u^jXQ3w^7GPfU^u_=+MJJ% z;{PSt{Oh=Rb@z+o+4c8xwwGVK5b@Eo^2w*f$tIO0x0w8#h{!;(%*&y|a^40S$ zNdG$iYVsN}#nNBuQq6hdHl3N=qA{@Xv+%ntdWe_=1H=%2MWxXv%! zIYsDd(yPivf&NL!<{$4m2_(<_lA78p7W``R(aYA$UtKOKKRkVU{N!(T_&}b^`NPnz!mk$5y>Z8_j>9S zxk;|~?Q4>d7higJisLOK|MpX!t#g)z&hI>KKl$;?dEXMRF3Vqbd$CRSt1zvT4~@cu z4|87f+H=L=!TKZJ>rWj>SmZZvRz=CBHgCV; zc+mXlVD*va^3INJ=T7CRCmY;5a!_m8#%nsKTpu_XE-ColE49qL_+eh?`E?ikmu%d? zoN35cG^6;!=h=t5a!*7!YIZHKoXj!lTq@gd@&0*It!)l1J@ zSv}=s=MmnvmiuS+Yb;b>u-)w03hlptJDL0%E`I-WQYpz&m#JlfiITr+JI91=jhh)w zE-^HIO%d_y7x25WKvc&wS$vW3WF7Vy%Xl(;(uA)&nzspSx|lA0b)4a@bimhSc@HKP z(>2|aNtPvl1b9?usm7;Wv%cWX@=~?w%cf^RNkM@fx(zvxrk8mWcH_uQfGV=KW6OJEu_MbS~S$y73d-uL-YvoBXKCDgmj(<@&5xFmSLF+2b!_K-F zmxN{d%uBucMr_@x2l5XmDLhIyGy?IX2T=d>9492{VME3oIaeM5ysecj%R_v`W^lWQW0yWbx)bT+)w4-pC6Bl9=39} z_3$rqa=X9SDn&y+K6ARm{i)kOz4*rRb(ML*`l>nZ+qZx0`*UlraLxO*&$JHT<4roB zd}H^-_p*(%nD5^6{URi?XGhl+jU7|0c>QV*T`@LXa(ub}gUgB^GX0A*w{{#AIGp6s ze6-3w|CRY9#`<+4akeh?8cU*dUmREX9LE#t=DvQHNWRD23L^Gr&QOtJEiY$ zx=`^hbLVFMKXdy%pLKiweZEq~w&eQasVdvzALNSnx+_ngu*`n5iR->q3Nu$v`G2$G z&%vB>bIYTjEY?X}9KuJNr+uY8HMp=9Th0 z)xOSpNzLZJ%HDGu4<_Hc_iJZB#ks3jTp9{qz3%!PDeG4?`9R__!N(?{#TjK^bh`Pi zO&VJ`D9S?h|H+3wrGM!zz>}viQS>C{FoCxPSVrQ(fPDwr$N{wQ>%h zY0tGQId5O&&&*hBlyCTSn(HfVsnyrhayK>Dp8H+<*=0+g#Wjb7jkg1DUfO>39-F7u zqrjQzp=KrTi;ibKTKIu&cd~PKNo}lq=J6ZH!uIdZUbM~Ris?J;>}A`2&Dh!CoaE4T zI!sjHvdz@iH}_xmEby3mDX4P4>>asa?L7z9Y%n{`>haQdW@wDvYCW55p{Pm42|Yhj zozuB~K6F!2HS_ZRVlT1nN=3C!vzLDO?97h&GxmS|a^_cqF^7!PtNiP_{uVX&4(Px6 zU-pPKGEXXZ?ZE?FmtxNAoHo01Jm!pqe$h*R&*?ipW%nGqD#fIA-%Tz4O5Oeq44PZ* zQ{_~f*Xb`@$6jD~aG+Nl@@_TAm=G;#K_ zPNn;+`Rjf^x%Ez%d1+oU1{OWbE0+c=)g%f05s8`K_i zDn{#yt;1Ta*(VO=)fzr)$}!NMd7yH|o31S$Z>DjnX9xRQH!O8od?cij+o6(s#iwT% zHdr|9`*m{q%+og(ZT{fB^3}U=#mqe{&3dH~TSV73EEK<$9HiL2XjPA$^U_lrESF8= z@b+rIb;IPnXp8SM_ucR2{Aw=xu9!MEGbAu5&8mK3=ahGQYD3R`c(qpe6uYl~^N!M$ z=M-hP-#@-=`YXTH+dD6>>RxUyz0_~#HimI zsw`nUyzifjWqw4)ubJ!Y6_;q8;`vqM9#rpSTp89|B(8m8%V*>6&iM;M5?9~h|H{G| zIQdT7S#E2o=K_t- z0=W5PPUc+OXCUr4?Z~w5%r>R>m$od_o3f#Q=_{KXyo*?O+&eS(bdy@7m|02KioWAh z!ykXV`>b|$gPP@j_4@aVs}?ugGUm-Bj>U_4LM^rw%G$Q%=1Bg|CF=^U#*N%HKU3#Z$IldS^{OT)_ZSMOgU%Kt|( zX3f$2_O0t<+PnQ9imh&3EWaWvW#8p4`@>uAeQ)`xaFJJWa^s1HK9$P&< zuBtAHIxj4{=kvd)bsJ_Zi|I^Zy>GHAYr?Hn_K^`Gva(y!S9HcJ+^RS?`;V^pOr7XS zEX(;PpFZ@b%xE~g_zk<`whtTF7aHuU zzgt=qE7Z8fG1pbYe)9Sw|IXS=X}EX2cvG@yqM^I_3ZKBxsrk!_YA3g8Myb!@%>vKf ze6mgH%KEiU!>Yw59q>O{yRx-`*IIe%PqtY?kGIUSN_!K@ zF{z2cR_lGzn-;aX+y#Z5rt40~ns9cqwjP<)a>OR=?bRK+CtVFHi^}r4-MV^Z^j0$O zS|Z4FR^!OzdUu8AYM=TpWeQ*EU9+_4xwzb_+t*L;4V=Biv&@#)>D$`Vr{hvzE}LNQ z!o$4k&+o%uL;jt(%)7dm@9F$!+W*pPopn<^4(sN=%J%uf+4XLU*U7cQQ(~T_oKsK@ zzx+Z#rgQ$*iPwX6ZGAOIQh<@MV+DhY!wwN&KAST~_fC_)HjVp5aO-PHRi4(0UkNdb zZ)FuaZhE}%<}8uRM?=oOJ0ZX+6dsh4F=>X^;j^V{rRs|k-ZI|2p!!krqR7Q9=JAn# zoidDKI=%MQ`AM3VdBi;Ub#5{5vBmpZxqgQ|3CxzdyK%w(@Tdv9uNuT_=PhvT(bxWT zrqOPK@~jtJRjO_?J{aC<_qr{~*Ycm8p)@jnj(NXwF|n_iz8)*Ds5ncXHzTkU#DTHX)4(jFT@^iJtxRie-9S z_uN7`UWMuNT$%H)6}$|V_gm&7ayzd>Y1z@Z?Z*u6E_-PhcK+AiDN0%0 z3`<=9T#J4C*X`pomz-78*JK;o&ImCPI(+U{$!d=6T`z8TaV+VMd={`)So7i489XOi z!`?iawAAvegP3FT9EFW3eC{$^i##{F`=6`-a&uPm;S;C(->(1bX!Gys`j`z7J+VL2 zo====Z^hL*dt=o_}NzbN9#gMT*S;bC&qMSrrcsOHS1G}=5XHD zbsuRT$^F@R~w z+<*0fY=XPLlo#~dX@+a>-miMwJJ>67XRQ7M>!)urpKkv0|IEGS&i^&L;%;ezo~L`KOn9%GIK~UmP+-9X@n@PO>#;J2L;C%b^|C4;NIld|o6V?>FyhQSh7# zj~DbrR_qg48u53>g;hmXCL0VEig|v_dva*^(%mob3o^Iuk-nY1BeR-!yD0lYhHJ7+ z=KoUP)~NOE`Q!bldH(9#cbi>qoQqZFuebBpi)mB-zw)lvi-Keh%?E5Y}9{P2)E#C4-obz%6o3)_VY!l7-sU>9#biQYwY3zP3b9?7ZhGN4hf|7rk zB;RUIFjScEQ0T;l=!q_GpZ{b|%aDp#R%Ea8s{g~GDS`WM{knd#fBl5_D}4KBNM7CD zAGDw+jioENq9sb(+x%F?f97L*z6;*?!I4vA@j+5+rpCj2>T}iO`!CCu8GPfKwO1jE zouhzxN(S$=ZN3XurALN5T{9zZE?csy_Tp&aC0}C~yWh&zUKIU$!_!4;L(`wuhwhw_ zER&pAZ{%u!Ak|`;V6-z+^j*yjrb$7FfU2b=}0|)xBmfQ|2uROfjnwn!iHs zh~MJLLaEa${=8b!;n{aY;krO{6-$>y2=h@-uA?W<$erQ#NVy)TJX)gKrNGL z|B1tlQi6F8zFuhc>o96vuX)$f^XD-1t z@9n#f*XP{6*|@Ou_q9&U_~sk+^iT>%c-hoa84 z6&fzTaq#eRvALJ8sNJz{nERn7EssZdW!!|fP7}2K_9P$HOtG*s;=aD@RLIifDHB%4 z7B?q38?L@y%Hv>?^Lfh zi)vqan)a*{R_Xt8QP5-B#W^?jH!wXA`MyZ-Q^F$g%$$1%>zsx#89kKAZlJ zM8=@P~=@!x76`c?#nC@hNN@ZJOb5T-K$UA zdqpojusUqH<}^XHs>F)?5%m&%ho-UkXxUYupvl(%X6=RMP$Ryy&#io6=QUy*G} zSg-F2=W2sRavQ$7zf+B2;aPUypPh4~avYnnp~uB3i#kqdCtR5sxo5)pGZ9A={{K<` z_@h6^dRM@_xz=s+l}C~`rmRV-_}_Wt@A=Bv8(S7?eq6`ozR|tXpjgs*nnrSgkSWW# zUxIGVTZ^L^pULfbz1hZyh0pqfoA*)9_NyFcqYPD_ZQL|PVzcBL`L9bvt?x6>-y1q- zLG{b5S#F7oBAf58=X*2x&m3vXj%M#~j~-e08El;B+K{?YSLM}Yk1Ohd8$GV16>bcD za9jJsThTXfpPzVS)6i2J#wz=sJ-d{i)oWkq#oro@$~T{Z0%8ecnh z|A-T8F$&tFebq(FZAKa^|FhL6PuDIhc%Kq|eA%lL^V&Afnxz}@Ng+MbYjMQq56$zB zJ-)v+_Hy%^pM7tI=l_3{^>ocVng8G3nO|7dUfUe;<$~q5ja%2OlvpKq=&tZSqxmQI z#BaQFN#;<+;qSL@%iPZL*A6CYk4KdwlLHRd4kR>*s{k;`B>>^ZCj(#aACIE8`2dUKKXc&7ZO_=U??I^?!x+k6QU(FI`^}pZk^N z`Gd`G9>ji`^UX}yjuYmeKc|rIURM`n=P_Hh#`r8Bo5{_C3$7@;ha73_{!}Eb zu9axK=&bIAu-QzxagE!|-p#wQD)`aj#9fi=jxXoTJXQIRbHe>uzgph1%N%?px+`Js z(~8}v-FOqaf?JH=a9qj~om+g~LA&Lx&W~rh2j@5M&$d1*RJK{*Emy2TXrx{FVsraj z_s)I#UMJiC-{z;nAN}~#!91JI&Yi6HuDN$*ZODoJjgRvSJnR3g^}2q2rhLMN)AMKB zOq^kJhEMmcO+?EHv3F?)Rv(=DLdyQ$>O)T-M+vrWdM#HPmDwr!K1$I@SJ+*$EJ9Og z-`csq%{q_TTu|LS<+x42jOYWoJa_EYZc0kdW0>(`^U|U}x<4k}IuR*bxGn0?w0lX5 zf*B7jWw;yM_|8tFA$FRy zD6GC>Z{eFmKYp}wi~HE$Sbk#pm-dM5_f|d;V6{Kyxzy4ni*He`VP^9m@3JNab*5r| zb_)rGp9fC-ds4VZRL=fEtw`wFxj{xQ{O_fI3J58D+kE;vr?%QHwlzJ{M`8j(4lHn9 zqGt7SRr4zWx$a-8ahgWwC*>8)YWwY}p)~9JX6`1PyjdyszK>5|y8ECZ;(p%D4DG-D zGEs64=QN%ur=HvsYr;^juvbOng(_39fmzqLXZJkCd(024mzw_I{;6MO>s^aCOxw94 z`sAa$3qloP(?5h(9F}~t;Oxfo>=~KvH$t_ZYsem(S=0Vfr7WvdN?^+8FYo6(->|qk zS84m9sMM{UFF4;>xoKM6o|gYAw(cYHb|eE&r7y=B{z(v3>LPV1jrTCrfJxykpulAK_z{iUmx zoqOnU_x9|o%clga>*$}GBURxecO}C3#rs?_ccrQ7YyFyi^DlR;v6#Q=oYt}njcreg zL>{fJ%*spV+!OHWyU6MkrI{*M7X&&?6>yk(A!AR=B`=93r(3QDbq4mhGMQ>_S|+DD z({0k)=Myj7nqog!=k68ushZ~7@5uDWe?Rtm^OkNlaexA8c*S_1^{qFAEO=?cNr{6hs+h@&A*<~vZFV=e;x9rk- zzYu>lz3mYj6?10_lrQCoJax45R`$^|vrlV9eDr3P6;QARx$1Okr5VUe|A`U$3?~H_yxBXo_l-r75Dn;%|gF#%q-pJ z^gR4&y59UV0i7TDMU>zBMRqQ{dpSHQn*V)p-bUShInVc<(hczXTA+sPATn%8}n zRM4HUXSVXrK-Z!M7LUJM4oeyz(2|KZJ}kIM&im38YhID;$vU^096p}7n7lLX=Z!~6 ztA6#Ao0utaUw?gb=@YxZW$mjs{BuvbH+RK_3tj^6{z`Q)znGApz`r$A*>(1_p0|(r zrTP|YPh94;Gss%VR4r1|ebQki|8J%DUY^VreR@sk|5-=9yzOCEvhtN?-4|RWmU&c1 ztGsTlz>@j0d!lxlCs!}x-eIvaKjKO7#1C9Q)ngXM>9d&!DIHz0Z9|sWjf`k9X&EWa z*XBOk_(RV95R^;g>K8VbInU@kby3yh*uJVYw?0&rYy9iqzxUS7A1!}^n|gbmN}oBs z*MCZWgv(F1%l|km*IP%hshnc=n;^XHKzmEut>*hWMHShu)0R2Sx$t$D{I*R#o0kL` z$=du>UV7zQ+7z25GyD~Fts0DvGf!D0={;}D@nY-eFwpT83-?(h86E zb|e zO5mq!fo!KfOXWpgKecC~YqZy-S9yygVscYTg1q_->_5ByPQSft+f|ouzn86gT~_k- z$MVHjpZTut`gK>dckAm-kE-5J{k#53_1_~?zM8L5v%J6a^4)M@{23VE>Qcb>jLrR0>ykaww}1D3b%Sl|l_$0(@AqnY`$p{e+&E>a+N}+7@mY&_ zCx2P0cBZ4wAa!Nux9=M_@;(X4+js4Y_pP=Uxvy@p8LWMv6R8+7)r0Ru*u@=A&+K*| zI`96b<6hO@oWzB8*`ChDk*c50C2ZV~9KX|I@nP90RqOe#QD-V#8Jn*aDU|h{_;tFg zdUrXW)$FwCZSB+3X3uH1-u-m8zI}>Su;|Qwx95pXyua(5 zFO{43TiEH@2i$+Vdex`W>({?;2?^c$MPUBME}Q?#&zv&8J1+Q}T>3-L?4QQwq+9W_ zuhYfV)AxriDPR5f)zm;fUZvz)Gn3!+98@bjzM(r+XQ%pP*6%@QexEt2oM&n^=ZT)o zlcmWff0oEE$p5Y&p1#>VtAERhm+zXoGOFb+dvBjR@%^5f`8D6B8NXY(^kk><y3Z*z({rQS39u+?+T;IZ@nn63wa-yT5bZ{cW1&wpPi4{U<|Q z^wRe$J6h$m3Lb>8_pW)CxlTer=CjMJ4GNw4ho1MWd1hxny-nEg&BP^qOb-t+R8RM2 znCETC`;(`lWw2Z_J*9Z=dty=69*2GNl;fYhow7=5Ql4sj z`DJklzuF(sSKrO3%hFd4yZEoZ_9o?xRL*#*_QYCe|t+Z;J0{O!wlMW9W5fzT>`3UxT8k9ZUYYT&h!YwSTN2 z|46ya*+%o^9Cz)_M$=E&KM$Sphd1wwO{9(A|K`~IFY8>M2>3639X{Xd$8GIH#R`AA z_O`FPKfBgZ&$H%5_5I1x^oEj6~)uW)g#J>H_m+%R5>n1!Gj9UBV zPiLn)(IuGn0DDnEu{Hxu{{x&9Fs87OMa~kW3@F!kRw+EZ6$JM;j-1+F_ zP0>Ub%k_8E%J+Sn^=V0$&?{ZPqWnVpuVVT^`5%qGi?OpdsWI9{ki!ws6fVXUj1W$T7KK9njT#*hcVf&e55b z1tNKg`M))op4;f@Jxr2VDcygWRXgC-VtEG5Nsf){PEK9q-Y(^3cJ|u0w=sefgzEpj z^iTc&xtPUq_OegnPjyb;>SeBNe7I@T#smRFQyVL*Imh0$)NRfDa-GGyuaABD8(ULm z_q}`jb_P^je0cU`!@BT_Ig_&9hgv|c;>ydkX7c!S;2 zze@anG>;sAEhFD?S|VVswB-5+ela$^xhMASIB|6C^^a4fZyr*rZDM#6xS@W-UzP9b z%wZ`aUoSD+{B_;0&amM9UzXSn%Ptz{ygz+O<~M8HE`|Rht22~)S8Y7;f2(fH`#*JI z3hiR0d8t}Ti&kq(mOSOso41$iw%6MP<&Dj~I>L$@mrql+;``2gb9SMKlxNA+6LPnt zKLpNG?*9Dam5|-bYn_--*kZ@@@09k8>6SiX z+b`|m`D^{hB-#0Y-{+Vm3swsXDwS;P|EJ{fi9pDj{BKHW~q_8KRW;1@o9GYJ&T*b|m?af~n`kk|w zdd>1#=e=KV^G|Q9U%V|jrKCiq*M3uJY3%LW)zSGo)-GSJd*^m=q-1Yc*tvk?Uq0_u zu3u32CiV_bh364LhFw-{xXQ#e7Q`LNUQSFg^EH~RS^|){R z^KM;ByQTE}d00<=jq?fl8=~^7JL+z2sm%$0H?OnPc4xlCS00vCtDBg4m)_fT=#W)@ zX6No*3(O4-cipnzVi|QU4kRt^A+Y%nPg6$p{~Mq4MtW^plTX zJUZy$wc0$*pe**#4c^bqyWPANED}ESAW(CO=S3gM+&f=FW%sFFarl{ccFO@#+371j zT-kZ~;uPbC)?WplQoMKL&Y$_X^5tXWd%xe$wz7MCGfpV(&C6Jx=@Z`XwSBVt<*bWu zEkhREc8@Wv51qPy|H31|(Gd}^H8sn^B6kbzFaGvZyEC$+@BNC5ccmg$tGKyV$+otx zdv)kgR(Mdr@BJ%c{?9)3)oA)_O~EUC-j5y1F3vhL<j1!hlUDa9_ugZsGKcAzg|`1Y`DOnar~@nYVdI$Ad?qi!FU$znT&M_}Ld%-tQVG z;(p04o3XF6+aUVD(t7isck-kpNrL zR#uar#eALF^lHuxt^B2XHJ97(J|?YU&O3|iv+UpJzkh3<@LPW3L)^pVt2Q4yV^EMh z$>^{YzrduQ_YC)y``Pxk`Y2`BbWNMP)%&kN%h!S}j_=|gX|$}d(%#bWJ7hY;rg#Cy zh?g1tQ>RY)*yZq}!)qPu+&{@LS@Zd0K78vqXR|ird$elZ&Z}N`%Ctr6R(E+7a$j5P z`E9dwOR0$5g48h1m!Fe_46LV?Ult1ZWoXM0p7Lli^Ig}lnge-1yC=OnUX?23IQ!?C z`ySmpeUC?Nv*2oYASl-oXS=Xs{$?$cC$hEC)eml*oUQb}KE86vvPzqv-IBlc4JYm0 ze&x&OYH{)RQ{(ydzFlEHxUX>0;mMyFi|gKH_|^GcYx&cdQ~o?;^W4y%H(uYC_VSj# zB_ICk?02pA>SF14r_Mg(-ua-&!-v(`t9s^(1L~(^N}k#j1l^QgBgF5yywWLSYtzby zSJVG)uGHhuQ*P8xcq*tMx`d}`%2(ZKWrcE^IOVp_Sh!%WTKY7LohCa^d&|ZiuUfS5opF)%glpHiPPC}5+5IB%LFRLLwmhBg<`p6_ z*BOt!y0B@t#NQ_I$1Xv!XEq(0ZN(^Zj_IZNU*4ID3-m)TO#g7pn(d6?))!r+&zern z5~>!w9_Q_LaQjQwc^)-oi)(%!k^T5XwsZPq6?qB%umw-FnHIlwxsq4Dd-sM5y!T^U zkJpv&|Ks`8dYQhqxY;{}BzfkI{-<_tl6`2`Uab-oE-qPk{d=oy|1|UK;^NoMr+ZWiG-OY(^7ETNbR~BaEzOUMIf9{=fMRL)|WDgH!HTLoz~}TTJuf9YOmW(_a}`teHT_N@OFv{ z->&jX@xgcJspquvp8VPw`|8u>H(rK@caMs=9zCSpA#+pfjL1j(Jn`DrtBt7-`9F5e zw)@q7d462C{aLLE*H-z56T(;Y-tyaKzWjXW&hYU0{qLBuHz_yT@bbI}oBF1NDh>l%E&u07 z*<W972L2ss}Rm4ZO?Je3@UfZ>o>(tUGuUu;j8~8f(0{0foxL@zGgDG^$#}lH5_I%^) zml2e+%sBdb>W0uB$Cpp!r?35ZcFom(i?|~us+V_vk&{?;u|jg6f3jhFi20m@pR?xX zE)NZsyrlG~rme~}f0L1Vw%!Ku9UMH}VGq(ukA1uEJJ)OLAHAn9!oT!=o3t`=r_I+t z%Eqe}&po}3eb?J_2Lp0*GcIJl=DQ)h{)FDs<&WP_)Sqg0qpK^IS5 z>!P?kVVb_5(3MkGkHYoOUt2Qq>jF{rNu?1J-8f?%-&SlqxNebB*xR{L-8%|DzwX?+ z_fPr5yHaeqU!=i}xO6&Go*w4Bx5zf`PI*d#D+mnE4C0rlX-@MoR8h&U2kK)%0E(MR~`LS_c))(?W z^0azk?Ri#Prj(moUL9R2pEE^#^XsTv*`5udvAm37?%lfC(-tJL1T360sakBix>>&2 zT+O2Emoipg2n-Ggc)LXHK?oOr^y$4XG8y~pG6j#VI+NMZc=%ON<3isRyZu+}PP?}v zY-e)JLG3W92KAFS`cM6n(MvOpy1(}7FYl1o;j8{BhW_<;kT;)puG@3YF)3w#6*og6 z;pL@yTwF%8nQCvi{@%KSb!XMuJxsGNtYddt{#e-jSKU_A5B}{n$>w=H(c5Nhk~i7w z`1A0TqNlApvgFJp&m2xK33H6J-?g~Jq$DjN`ss_P`u}t4W7o2A>Mh#EeaWuUe)r?s z=g!(63A@p@_DcW3iMQMWa&JEpyLJEgR{OMN(9Z?I{){j)qR-u zFjH1 zM|D@PlWX4{y?pN9smZ$gKF+#TSYNPc)q0f+wh#3`ikKZg)h+F0doSqy)@9S|efR!4 z+7su^@BL~`UtxBL>%50mnft$Rr*$v5eabJ-W0j>)=S0vvMg@s-*cWQBoNoS zap$fz5tH^E?b^a6E}ZLlvnV!Vo!^&)xT4s}?#q|;`|XMec3-yq#CKiMwV!h@{=9bT z)U}@(w`;OnKlQE_`V;QEdA*;ee*Kl3uUD`6^3`hYlrPsGYpq(pDQfkr?ygtbYpPGrBQR~tG^_|VX++QtNwW7J`W{d~bz|GxKBw~Pz2vRe!D7w7d` z9#PwMeT{WrR{i{bHQBX$w$+I~saP0pV%D>zV0z@?#FKopvffY6d1!J~#HDxY*52t6 z@0jl0IyJfP=!?dKp=r&l&s>`_^T}cEpR>euJ~XM88rr64>1^RR>5}gyH+hp@*5#L3 zIe%wNDW160*M<3K%^%4#=O!;!uikE@vuv`{+@%&>JDU>rTKu08_D5o?^DOsASHIbG z2MWaTJ(#uY^{b=KpFg*Y35Orry?37P?QLc;<*|+1Z(Mx3dc$^qGZUX}x3y>Ou35bH z;lzmruU|y|RQFn6>G^X)O~gve^mAwB&Ys&m|g&WfK#g6i8DCX-!`sjT{G`!fcXH&(B#SbgC1bhbafS+ZM& z1s^*esdzE3o#FiHhU+cXHxwEyUUp}7T~V^kIDMa?b@wba(*@q&I7(8Lc^0}ZnwjdA zschS3VJUFuubqg_VoPP{dt8ScYXbMWWGeTXC(JKR)R(v}wC|Avv=^NZ|cuUz) zH7&MKA+4G>yOLwPRxtT+S3F8E4WANoZB|#YpWlVnj<>%BLlfWJdw9Lkl{?OQpXc1@ z1BW(W4U1!BPv8;y$gauI6m~Yi=jxRgiVjJ7X9M{*t(IcAGV6?<+OyO37a1Mq$%))B z2v@nc{bIg_Y$8@=J}{O-zAeK;xqzy|X}-`APvo4?uU z7$3T*SKK@G>uJAG_LOz(GcIXenDKV%uIy0O9!=e4Ja3&Of5a-KnQ~RsblzRF(#d3j zlZ>z2T{V;B>Cbo$-S#lc*tBd_mdln^8@-eLUWZS(S>z(4dgn`ONVn3wJ4V?$$``wt zySv#t;$q^LT<;dR-u?RjO_TKzPuQod<-KF`?^pSLU+)JlY4cVV7dJS@n3hF zqr>tIpQiN(Os$yyCbZ7xpWV+8|H&$+yT@@NK`O~TwwNV$@ z3)Y-o_vM*j*NNRT7T@s}Q-8oTC-mc|@beRoR@RsY0q$*BVa!`f|KW z=T&~I>eR!1=kGlEeRtb~<^2UDfczgt!w`S&aV1& znBGw*B$HRzDTb< zeLp+!MDspQm9mz*nZI3@ZS_sa_DaZhMePHxg?+Y zZujdsTdwWQ7wNnI;*NReUd`UzJ3imHbtEVy{iuz88F}3^vF^0k3Jq*G0nUA<=^x5>#oGl zoa9}6t!DkFOQC|9Cl2R5NDrRi(`}+qZp6f56S&|8V|7|?P!$h{fT@ta{>oJTR1q=v zEl>TQD$Pio9KUkz$;XkL9I2aj^ct&um>q1CaZa6Idntd6&L^ZohoL9cG=k0%uq$Tl&Tb>jiT;_7h_rs6A2Zt9W9N77N?Vr8-rX+ay zF5fk^PG;-hxL>QTYgzE{&N>nxWpZQ#`-{gLEGC&)9d%=nSrEJ7rfh1d2d{juYdRU@$Vl_EU&%4HRKiVp6By>Z`hv*ubUkE^x={S?(NUFu>4|u z6Z=GQqQCTcv2C4Ossff=Ra}y&TYBZ2<*SlSY^yWM1Rv~YI^eYY_%F$ZSpp`WcZ>eq zuzL*};EiWlnpFEm|I$-|$YmFmiYBO5uts!!H(bh7r2C_*W&IrgUo+okJ@+V^nBvTT z==a+>m$nNYIcCk6m!EW?@Z+ZWk;fQ;%0R%{7z{~Y${_T7%GHvwN~JlW~tyxJ}5W5%Pa&RHA79l8&ilwD=o z{NqwVq6Ww1$S?+_60wkLC%$X%o^K+c$oAx`SoMO_?_@ZxUTI;Qvu$02ZZ#wGGNa(& zN9?E6Erp*=UmBNT%)H%aOGJ~6*76Bi)}0ycOAL3;Rn>WDz`yZw9Jpt7;;Kd0f8 zdiE3hn@|6ra4cx6*P_2X9{IeR&7YrqRJh_qf}zmw*A2fW^@d1J6$)&4Z_2aw(_@}R zcWwBs(~eG5*5Y>ZlN4OOdw0&_FwfKzGoEQNCA+-RvHJH&+>3c?Bd4g)>@Q9K18w#> zei1RrUGX+!<>`5bVM0ubw^%T)fn<@Dbyxz@2tYQcu%w>6zNvolsWiS!(_BxxTdP z#c&sAOEDXMwN~%Tw+c?q*OZex;`}`?rlnxvQq2~F>wT6BjxTxFt=+j=XV*iQqt90J zZG3XQcD|j!m)u$MYeQ~xeS1;(k@fPiBg^yr9V<@u%?{sK@p{_BUf0Ey+n)IyKX7f* z#8ThA-51#`kMf!viPu^CPvGd$z^-oLJJK@7<}^4-+ohW^!ux##~FbAVFW|yG( z46o0eWtz?ZZc~!IQ;DeI4EcbQHGjFMOkX6MVy4}5oNZNsh-Jht?wzN6ZRV_Uc~Zhu zWMx?-x2&F_H&-R)c~r}^)$bODzLt|aWdB@fQu+iXW?L7nwH6=67bzEdFF$>kVR5R% zp!-|z;lW%Ly+I4qcA78(*)Y2E0nftCb%$r>? zr_pk5`^$TpyUL^9NS-e??>@2bu)zF1o^O0J*WA!8c^_67)ge)LUvk!E&51>4ug{88 z2s^CYx|DyzW(V&6R2BO}CilCJ>=TFxIeq?u|WXM23T z7U^2upI!OVeX;24*w1UCl1i+rdm@w~PwIL~+nmY{3Y9H%ujjos?MBelw%rDoSNDlM zoqFo)okJ z66>R1W%mRath7ydp>wyIdws!PZO=*dre2$L=c?pik?`BAa+6v3s*|3cXW-Tvy`93& zJl2fe1#jjolyz1JwPq8SifoQyp80f@nu~IMe@vzM!Eb%n_3wY5UZ!|``RS&srVlse z%X(b*H?Rq>{Ql#I?bOYQ_q;!dE8LKNDx%AJz2F=vmZ*{ev@}J_K{c4e@{mtn+Zzfz0 zIQdmsx!sFxcE#p{+-Xc}eCtiN$o#o^=Y_wx+vEq%yDeKYp5M7(yVA<`*l;I$Y6VMx?FQyP@-Yr zbn(;$&aXbKj!i#QxAp9yQ#>J3yG^|7<$Wi&3U+JVZ{KRtG<(Um)!QOxeKX2^`@iz% zK6}^2H;Nyg+;nZ$tc;)Ezb(%-dMvG7d-}(Z=+kaBdrqDSW>}~E$*Ok!Ot+`))9F3J?DN{T>P;jQf;2{50>>?Pi))NW8M9Ng*$F8m$;j= z&{4Udnum*CYW{keHE&h4e!}-pX(}s?eWSnp-(7Qm_4S24^ELXfT-i4De@6VVZzlUD zUV8lavAIe9)4Q4T7@lwWyua5r%k0gqr8YlqX7|`;Ic*6qdtvu3!!K(~am=oyD<{9L zzH++nirmuKbs;*b<}arBF1TDV*(7Txx3}r@2_xA7Kn{(;>@B20ECO>z?EX{A;e9C@{ zWze;dM{mB|4DWrm+gaAs+4?e@iu|){61N|GP~39KJYw$^j_DQ~b`(my?U+#2JKpi;{eYGm8r*4CN0T!dDb^~&y|-O795o}^3c5<$Zr(= zOegKc+dqmTbss;~?&oI@G~6%rPMYK2v&=WekLOz2@y^XFdtrU|N$8eyjUC!r4u#L7 zw0(BZazA~~*zVuGO%v0?c{WvVO#k#LKdesc75|IEJ*Pth_yrwm8UN=+CG3pP&)m3q z*7O4}s~)u2Iko=UzvK5_&)aD&yYCm*yf5j}_`G=Ktyv#ld`Vt;YgWPHj~_#FeSf_F z?Ox`zzo>1_h5yI66Y|o``PQtIa5@q3Mrq^jW>Xv8lyAYd(=?g|V}orh2P*O@7PQJw$byUkJkg1!xb_ST(;?>&EU zZ@FsDm45X?wGjKC-}f%-+B&g)hUU>jW1XNN&VcP zy?IkV$EUfQG(R4+u+&(aFToiee)z*1lf8eYs;jA;=#Sp7`DS)p+^x2M8@^ZW`Y!2t z|3ZB2{dCn@=l@Bc3}pYeZ+XvJo|s_ z^S$4*+U4c!>lQD5T70hhn?TK@@D;L))BRefA3gnb&ZVPOyFyxK%reU|yw|;&J#uRM z+}rz0Z5F>`yS#H^-qCaAm(;YRg#~+ke134G3-Cv=r<`Zs^j!GVgQ?3(xI6nK-5hO} zo@Ue4({Zm-w<+q8QMh?}#sao^XJok$~rWch|aYd`<`eZIPG(f^|x>kes3 zODvzlT^F-~f6k>7GHO1DPp!D)^gqpbz4?;BS8l!eSC-AVWN?Q;VrkRO%(XKtUmc#I zJk{WM**=S~vkEzTUofg%;D7jO`coCA;6{y5$JQfZD_TV(eAkEabAI8nU6UEWJK1{8 zq%Srii;uipv36O{k1kiIOA_gUY}*b$i0Rn<;GOu(yR-9my?nOf^TWEt=8gaOZ9n%| z%nl0mnQ5i<_Qm{}FZ<23zkgB|PSJaJa^t_JfB&9-%6&9Xu4=K$TY;vO2rc7eY01Lw znf0$c9BwGYRmUHknwl!n+FbSZhnf9S(+lD@`R2(B7#3GXn-Z+=};eXXEuY`SDS5%lut&jTh>SA%(x&5V4Wk+;6s@*r#rb`SQ0Vm*_#ldteu>H#gpq^My9#8)v48aIAuz= zg|Ct5vsxLsFXjG)3wA%(C*8f^Yt!U*wk68Q@pGvw;|+;THGWcW*Yr2m&yL&6u7V3)yv$Rs^lZbC64{Eb@+dM&fVSO=3d?|Vv~#3 z&5+U1dlS7SC@NC)$Xca?t5z7#d@4O%x$4Z9^e~e?lc|#0vsd-b{9CN`O3K^!-mFbC z!gf^|8H>i9J;dS1-*Dj2A?{bVA91f2tE=4g)n=`v-kuHrWELo%C>DxgT&l0@HRUE3 z;|Z;X%v7n+{w)%7?yY2;sz0?w;;{AhN>9(MBQ4Knn0KGvwt8LDjjN%LrYk=)UN0ND zHB04HO4?8F=lr~L=WkoGdy{bd;d7_n9o?Q9e09cL-{mIRQ?8xo%#|0oQIgiX{OU|m4dcT?{7mtXU9-|CuK7<>Nb znu*;^XGAOKeD~V1pddhby`+<}^asY>#k@W?A_nV<16KQ9%*mOvkoDA#>jxJ~^W}x^ zR9Rj4D%5m&rMY1f|n-wx*1K5a=$ZsS>%*E zr?l3c{qTFOtGb`gr0M6Lgg>|a5d2;Bw_Z_cP4T~77w_E*{G%LtYvupE^!?6#_xZfz zt%_SE1lmhCKRY8e!!}&K&zzOX*Uo-j_x84;-2;T$cO(g^^MAbI zt^Du7^astmA8ughbAK4X%x*68PN`U`OwVqVzOH-0cS*~un_+(MYr4ga8QzLs zQswyIas2nj6Zedl<3J6~d+p~a{D`nCFB)@}Ldn*6#X`*z9fjcan3Elu6EHOK1q zqs=#Krrx|c^~ZMA-|nT%kD?dujyu|O!Q9&T>9=T?o24Z#{~W50Uuj$XC|505``_KD ziLrr;&g&Vbr_b*C`b)`p*S)Z~yt0;<_wf^6|Mf2Vy0+#}i_|ymNnbZ?<`m{?@70o- zw*HaPVq?8z%|9YXSSMIc*>u+Db?_{eXB))CJWnN-xy%f{>U+ZN;RP=b?gGK*w&5mv zUaXT2n>Dt#L|Qy7<)}BjwQ}JNRh`#G9Q*!yZrfwqo@pn^uHSVld?M?9+1qSO zS51g430`)}qw-Op=e{3ncQ3hnB1%)Uurzez{cUr!g5&0`)KXu*%Eo^Go~{jN?e4Y; z<`hraDDp+u)+J%T@`n4y5?^#z#(!r&ly`0O^w(A;#e%1wC<$4$=B=Ff%pvg`@3K9O zlBzdmH?_T1xR<3Gxa$rxyS(KJ>kWo0UvPZ%u|3mnZXoKaq7u!0;ZWC#)ieHjO=aRX zxiNRkxA3A%n(a$_gkP?R7ZOQ{Pf)abqw=bE>xOR^nfcf~4rRvp>}&q8jO8K|CllwF z)sJnzn!KOBy5NCE+V;5$f6FGU4V3H%HGZ*MmTBe;*7Ls&ZHi>v*sMdDn=*|>#pYB! z_+V6FWj&|$uwZCu<-7yC=6gN7`KG{QYsf;Dc~`hLg#BP!D%Z;&c@`V@K5pw}{w)6Gd%vDUM(mxqymxaxnw~G2ar(A+cTibC z&5JYdj{jxuFYEjsQ?&4gx&C@}rT#k74wIJW!~#Ln5s?q-Wakq*J+x*Dg0-Z&+>+o?{!y$?a71-`b*pXN*cb@S)#D+ zp<0LFPsO;zfGI26Wdl~S3-4AwBJh(VrASKJRP?HVB!ldKj@7*(Izne^k3LCxG>dun zZP9?G;jHVI@VPp0p59{ku#wfv(l{v1SX(ow_YS9-hq#Q{!SerxGXEIbWeY5L*&FwH z*%oPgvYK$!+uYZy;o|#R5W%qhmx#=($(z~=-tXqV{pfUNAlF)9jfCIO;s4&x|(%|Kf`~QxWMjbbIOXJG=wC}%grpGyv z_Y=aqSvh@|+J}7U)Nk#RVGn-!+PtI4!Dq6)EAM zseiaZ_Ysage>E=rTl^$vVfW0&z=M&uPRXhs)iHXh`0(PY_O{z{w)cx#*;iaMnyt}p zxc%zNtee*jwsP-NGM{wq;KT2;G7GFN^wm#py{#~(SW@Ph`z`S8Z zKJt%I;?FVl1HFe5wPp64DzLDB!D0VXWWSsjcVShIL8IvUS0UEwYPtWVHa&ekLHB>; zi}c_}v6C$X!lz8|{h#+jcs{S~M~MwDpR&8$)V+2_zCJm}XV>CAOSkRVv2E#|Jv+Cp zSg~!VQ@+-v*WIVTMn1KeALjPNsAS8^wQKep%-rjL-7R6i(uVy)H}1~}+#g@A`8dB_ zK;)XYcjm1naYyfF&)ssnqu}e_1AHet-}P?T`ao#gRtLemUwh7TZis1^!*=$=1G7a( zpKKAEdoA$Uu`@m8tMrO5IWca%(wFkC;O6Q{4^uWg^h=ty@v!6CZcnk6AV*mT`&}tF z=be7Rys`D`Qo%#FCbn!imLKVNRz=-!$|CvBeV&#p+KVcLRbO}}r$%fkzhM4T?^=9` zZjN|u6~FC+nVqpOrp6j1?c~1uM{kkjt{bI_`tfWq)E2joCvG3l-WtiupGIFkU1Zs= z8@S$o(ZdrL*Do-9xc7JRyRuB9G(WZ0j4BVya4y@xILuN2{TKlgfz=*`ocf|f1H z5ZGwa_-umfaR=As3wLkZwtT~i-PbPWW}IL9y)^WBy2?kQmIOR~sgn}tr`Esb>5IyvE>a%@S58~-aHf+`1#5n5+LB*i_M|*Y ziij-Z&;D~zwDYak*@gX?6H1=lGPeljed$(nvZv&l#=f&wSy~S=_4K|7JJ|o&w?tde zim@iccuU*EjQWNxZ4d z&&`eg_pzVDSe^6R**CFUR%|aX+O+=C(^V$cbNj7-9|?E*zK>&1)!XU9pS3OuRG0kj zZ2O^lQQ&xITSZ@HzjsM6%eQQ%-|CIF=MyI`Tq3?B|Gv;e%{?a)w-kRgXDOR>Anwse zru-w%_xfxJm72Y0PIra$a&GG*yED&N_Rsuu;d=0TPj}JJ5?hjNG?^AKfXRjDw&_E5pH=K{elS|kK3db@!>R7Gwud|1D0)xiZI(G4zaPp8otg32 zcgD);k6n1>%!Q5=2Btll@lYV3muus}->&lWXP+{U_kME9M&-(b?^`mzPZyG1xkB(B z>p8C$hI>ThrD?B$clD?zMF5Uf!cedG~Jp zaQpVnm$_elA3bG!TTX7mx4AoC{x0u)n>2rlmGxF@-Pm@Q48!?LrYfdPezHHF=VDZL zgknc`mh}u(U$^To3T@XO$=*%Q;Rz@9fZDen6@%E9TIlD9cqd z@3glD?%+}6mN4Mm96qb-KFgm50Xx@pewnb1MhPET6eYP?LmRGc@qG%;>@S%p|*%FCahHV3n4yTmw{#k%Fw)w6nGx|`oD?hbZ+AT+&S{Nu8w)Uzx(!8VN1+)QQuKAzP)PhRG| zZ7KBSEC>n`b2q;m!1qcl;>i`?8G_TxD^F}c{CzK{l40zNzoON*=LeKTnJ&64t!DKy zWOM!FQ}=H%&T*7kvG(nEiRCrEar4jLej?1=;XVKNr5`^&3!e!2ck4Qbb(nr}r+$l> zuZL|=c`AF}>K7~41 zIWIfPIh-xYH*Ra0c-5WrO)Qi3(S!-?0sG&XBwstdQPy$EX2Fdi?FK7~1E0M~pIEka z$+5s0uZ{@ql5)9eTkyeAPhFO;|3Kp2NlT0_9iDwgYwq&!vmq&BucbdMQGVjERDA2v z!j$7&jh?z0K~5s~@R;5^UxHe0)n#hgX#bJ$NPdNn*T=v&p~vU9>z zgG1UqAHKO&ge&jSww7sqE^~EH*G_L%CZD+)%zqQuvd{8JiW*?bt2h`r}?- zWVKfwdlc-(zbY##WA)TXL9xXX)>w4$Z+UjR??{vEH;r43GGzgQWdVh6Ht_QKR-Bi$ zi+H%9OD4l$!^G=^!Qzv?Xs6OXLK# zi~eyh=9m7BxcBAuTjt)>7v*!8@7=s`;bz&)otN7d{CIp}d0SU)()uZrrb*41t9Npz zN}$ry=ePINXsx=LeVTvQsWZI1&y1$KU6xg5dQ_{V@UNe^sT?n zDY--2nTowdwaXY6x;*urdBE+%wBlnXj*+IXvnr7osp$6OK z>^a=xTH?o?wW=Q$t?;vJ6{r&XyTM$i!TV%ax7))48NT+D#ZxRNJ&B&y%ox}wQezqT zLCn@CNbCCNTjsZdob0Z(*6F~5sESo(BF=ag%| zZ++SGQF)$7!``X8W=zXl^SfT|%s2gxv{#F=|4)9E_fdXfe5iGv$nT9uFEp>OmG(W< zQN4K9F2V0dyDT=lzL?s!_0_&hE4TcfaZ|SG&n-vag+q4Te z7d5X-J1aZ2D{lXcm!&a|FCWx$+Eq!q0AwOo}E`QG#Uv_=it@2`~f4R^3u(~$gW zSN6ipq}{7x)=TZ1B&(OOqw2}s8P*Q1Y$qC@)!vQKcH31MxMk5K2CoA3d3)q$UhL*6 zt$gE`VEk+5h5ltns@2t>zWg$?S4s29>+e$LXDe=5Nl97Vy0G@g=DopxVqfT=J9qo2 zT#a_qjlOLim9om``+GcgZOq%e{#L?@Z!>ov-z9ZQ`_8+rPi%{l6fQ5`w)ni!SLT`X z?kCT1KVr~-B(aBjuwB`WUBZrRGNhjL*tvlA9oU^v~g4<6vs~VSE8qGTr+Vu1`zFf$V z9>RauzPT#K+V$Nvj_xawA&J=;?5g1_W#X3>UA?PygkPlX=*B|v0INs4N;rI%H~(06 zG53>(WXwKi;YVeUT+_eI6PdI=y5pUvV5!zk`54Cb`ojnLHFikIO?)u1^~Z+E9_1bX z3Wcw(OsQHCr0+gI)ynbS2C=TIhlH2-eMl*M{xC8l&6clU&aHj%kBhRW4kR+IZ=Zhs zaQQm+{oCZegxXd)yRBvZu!pt4qTiwFiSo^?UmY+?RQmgcTm7phGUR$p{f zRIZv~+tu7vTbTT5=f`&?p=YYstlssv?{?nxH`OylV{gw~thuvtZ*cJ57t8Nox{=`+ zw)&jRF3XOo_mYopHP`UU4-biT*HdSCaCLgI*zO$y4gZ;UUfIm4GxxBPlEXa9J1g@z zx4YU(%D6Fq;Gg_mWp{(^=N*gR_5RqiX2Yj^=1a%p9vZLO-8D1ru%nl?IH#VR!Xc%5 z2b@2e3aG4ISbC3d`6kPyZFgge9JxQR>ON>&a>;N$Ypmae{0|c*lso0lTKlN<&8Ovq@#URq}4v_LE8n%nJ@iL{CrKqu6V8S%3PmL&r+GbfrJvW94)ew%QT0S&jSP zpRix***oq1nzOI{pa1IZO5^nU6B%YE!7p@n`2R|LvH#MnBU^9ppC;D!uAar?$J5oW zmLHA_{tPjidi&IZ3-*&{&-BhqlZ*ee!JKKD|E094Hus`k7wyq~8T3%iDrzW`6&u^-w{rwo#=N`wM7!8?=-TuGnnezUgYS*WO z|L>eUCKNB?c)MxCR)Kn@4NgqjT+!SM>tYQbbIOFx^?t(YSIK%*edXSi)K5yYPnJ#& zOZ#%T*H%c;*vIFTu=4sT4Bb$8aS@FWD-n)0JNNfYu{So~(<5aaF;Qk||FTI!rhEF`7Kuem zc7{%QSy}m%v4t&$QTO5w$CU?)VwZM^-(0*TXjW9<(j|3L(g~}wGSz(^S*^Rqe+D1*u2Q>*9e*_W{2M%UUY^ zOSaWqaZI#(_H)XLcioDw<`y2{ja<9s@CNBkvBl{tYJ8jBFF6Ei2R~EV^091I$KgfS z8|GyyEZXkEzxpwcSHv3Ek4%+}eMU_)_*@Ri`5SCo=C`k9Mse}$aQ5^rX`b)0mhDWB zgoCPIJY4J(|9YK;!l}JU^ZtB05E>Nr=u_eu5wm5L(Gz-Ji?SWvYqGz2_4(g3vU|U- zzrM00c=e{W?i;?{Sva$$q=i@E)2oH+Wy`oPNUisKC-vLZYt}NhD%P_{mN+ioG@)HR z;kLoyEgz*GhD?~f@&NP6Em`xKUY5jYFFUbN%wg*U^&s__pWmdP^;|mOYg+hwW=Kx+ z^2?7tJ1)E5>3M^7gC5i2UG)l@cjrs3`yRa6*7cRc1d}Nf;-9dc%03(Z-CwHq=y%WW zzO8izs{aa#g5p$ieFIMZwlIm8y`kTAI4JCe?a$Ro*Iz8U@apQUt)f}6@n^qSZWQeJ zanSQpYel5|x06z#hteCpKCC#}Gq+nZW0&*!tB+Ut9@3ucv%w-%tlnt1){X>2RaM)t zl|7c)`7Q|}@!iS{TXePy@AXxG^ujMF?Z(RIXW9PGpSpC*(|A?A2-%mllT;P2T5H!= zc>X>2-Xiw@=Dl?V?;jnTqPoj^$=ZeM_p-J9^XKngq#SrP5$<|2x${3r@$?GI$_n?gHJ3Z-bQ!Fh^k98<_v>3{ zmWAoqMEO43w(C*j8YSUJvlr?7&|T)~ypa9B&kx?2an<^6&*F^qp324imp>NsHPKpI zPT4@b(X{35nt5X8&C)(8ylwNNLZ;6`5y3akaeaOM(?rnUTCVrP!rh0y>;?>khP#PN%kQAEI=wb{tK~VYXXvbjhl{p9OQmn>ANXsoc#X@!OHXL^fdkbJg123*zH# zUG`XN_O3tNeg5MgZ5u)Dn=@ygj-OTMzWty5>B+NZ?)>uLAaipw`;&Sb`P8gs%R@Qt z#~)0uta$OS=~GcDM*N%qtBN6`m2G=$#b@OS8s7G$TjX3HM6*CcHi=% z>C`iGiyrnSR$xZ(QmIKQ)|+L_d(iFZ!eigJE2i;VQ&6X~6|$=T@g@_I8}`_<9^ z|F|w(y-X$hkmAfwYmUoRi^Lw%?>Kr~xqYnx)5_@~9}>0a@hR4Lwtm{>rDt9Ni z$#wP)_nR#3$qH^|k2h4V<9UDZ}@}Gzj*E`6PMM&lIL4a_pLUWEEw*1>iW`CU$iFIbshMyzKKWhZ$*sgEr)jnns*Yl zU*x$i3*(yQyI%A_gW%&RzQ&mwdgX#n9yz<%Vts@B-k#o$Rge2r-iUCmT2=4Av6nsI zuAHTt2j`va7MC|0XJqT&*j4uS8uzt%|DV6)FL`Z$XU(j(oyiGRRR=D`MTbOO4~xBe zD=PJ4#gppoIXCaz-u?5Z>)-#gUR>QEAnEsf;qTp7yR{A_njdLgDIVH#IIrjPuJy+u z>?_?`FJ!c|<3bguUH;*|c(Rzdy42F}rR{tUIcu(c>~Oa&_m5bteP$`s^Q*604ptp3 zp69#OYie|nuvvizWW6 zTEd#bRTZC399?-+VS}QyT;BpUxsx9CNDn!s9JA|r-+_F$eBqS4?UESiP5^fOjU91$ustTZ;NOAo^I~@v^U46=-vHu z-uid#4HWphCVNjmW&h`8+liC)^BM&9-EH#wmo30{lq0Q(s`!U&9|r5TnTqDeYH9+ zx0fZ6w=L`U(Wr@-yk?JwL2Q8e-;-bVm%R3G`zM_J)V1kh)9H!J zoTi;w#KNtAs8{;yA#Sa!*)01F6l)fF6zbFzCf*iU9K9xSpIBZ)z)!gghxKMFip2!P zR-I5tdTF<6;tSK~WiP`sAG3y7TwSed(QmjWD7H4sqG!`=@1<4wMW1#Bf7uZ{^Guk( ztj+R;&6DR#FkjRAY3ft#uk0f?Wz)IT4-b}Be_MKPQ*Cm>gSIBU>Qr^Pqjw`M?c}zp zD;ND(psulDt3=C}>YpmlqY^zL6xLlmm%g^wvB>8ISDZ_x;0*=+oY^a1^eEqd+jH*5 zvzBMc%hQ}bzu4KIb&uEWkz;O&=gOxF{+BfJKjpY~hZjDcm=|Aev~vBKAb0%=36-X9 zxec3zUH)?fC4W&km!Q)wvFF4jGv_Z`)e|$hZ{FL~Y$o4-{`dc^o&8be`NWBHKj)tAmJ&%PAi_0>QB z^$)N3tB0!D#QxSKUcGRA{hgew{aaqHh`3O`BHb@)RpP`yu^*XUZd$i-Z zUS;0#%rCKedi>b&<5ks9n|G>iZk9AXD!O$u)89*{aEsVgOQdV9XUch$Fl<@2+T0-gVuZ=1dz{Jq(&zp}RGB?|bZO#2$B)~V zEsYJ!zJ6)hvea0!=NxV z&trEyRUcp2<}7{DQ=`^yrE2T4&(#KImNfBJmxHj8*`p$4@HzYkyUTk`S7@xm{Q7q_aI z9*X2>lVNzfU6k+i!wp6`tP_RQ1EWHOck0aevvbzgd4=MwdrF>7Tfb_0<*}QBpFHa8 zU%Z{J{@dR#yS&2AHN(;=<7e0nKVQ=~Z!HYI)-@K~*j*S`-u2{;$URNB+ z);YoW&ijo5`$R_3KZ|ZwuJ!{^I2s z(L0UTCSPDU6f=ERzNfOD(WhCw(_;EfbLP9&?Xgu?pQvDUd&VWz`|l^tnkO;w*ONl~ zyO|q*uUzi(`0=G}65Tp=m+t@Xy|>vmcG0@s-v4w`{i6JWDsem8j? zz1icTiQaizC+)@!Cp1!ef=)>uU1s1Vn%TK@&*bB`wIi%fpOIiHPx^52oZgH0*rm5# zO=DC!!N}@!KkRC7w>x9knwWOI#?#lGANKk2zkaYK<)HSB;+y-fc8E4eeSdb!czcYt zukXp=NBox#GfP~$ba898`|4d2+VWmZi+7rIU(M{4|G($AFNw06F1r&G?CU7U8-tW>+P;m$y!1AoW+-Jm|ykVHcPjF&uyvNlC0LZ;jdpX`cKMo$-nMlygk=-rqS~1yltEIT{ZNb({Fm( zZF9uw4+}nQSQNA2QfAlEly%26Ma?>o9~0%;{8>Aci#2}gz4L-*_B`CZd(;v06HXSPkR z##ia+28W!(FCuq_CHwVVoHaYTvp#&49AXiPXSj zQ8RX5apk|UEnjK&RMlVmQp$>?IwN*p@Mrk@BI3y|--fVNKURe)wwj%An6hSP=n}`a zmMI#qcGfK`e75f=cb&n#9bew*uhV^b<%93#JM?Y*uZpoyyd6dhIod(3Uy6FAhg_L^Kz%C0UnpUx=GC zXQ7H(kHFFGleM-STB#Ip=zMb5|vTE^^!=LN=9!W|4 zIaW7=sYD~^hriMFbKdz_RI0mp<2(m(?a$oBm#Ts< zGc|u|Zs7^fl6fSyHc&KlzYOE|FL4%o7~7T4_?K$%eO6w>E0W~vu%FE)k2|=Ed_nRxM@e$-QAKp?mi6qie~^;_FZ9 z#4mQ#UBA5R$HYvz?(;bwIi=q7TerQrw063lt^fAVfph;X)LZwlm-kT9L3VaFxtb4- zioU5&rwTV+<+58C{b#L{(VVomAro~vj(@x8SGUfj1+@JEzZtjwt>Q=Mg*-4Z$n61=Yz zRB?-os%0$dd2>6$m2Zouvh+H4#wKwAKmCA3?s^iNmfbt=mb!D|efHAkHa@pE^PN|l zDxR<1wdTV0Q2*XO-$atd49gGj*hOpis$U^zTsDDcrtdapfJna4`=z9m&>%fpF5=dHF1x#WTWr3TW$OPF)rfoNS)dr zH;sQqTZ+hp zS*BB$xC!xCiAMeKZgs9-s?Ak9+vM~)cl(*|Rde25NIm7MZ8-ni*>fKL6WRY6)<4)8 z_)@HR_TnW+E~c4X*5iv_w^f8)p{V%Gj_Sou%1QGSWwy5!+_5^=8}8D$wx9X-frJa@ ztJ`v)tpDtGz^pJLoF&J&+424wscouj^37(KoO=}Z#V3`$^~8*A2UfnExmWzg8{PyP z>D?-I`-KB5+H#-s_B=PVJ5XKb*7Equ zS%Ju&N{_|ga^{>l)gTn(ZsyY&eVXHT6<^l-IYZ#-7=A{`Slj%QA#&lgoVLAN820cD_@4x#&W8-N8)lZy{x-Q>L1hgod%* zO-+55VCuK)$;_-zpL0@oTBe46`tm@_x&Gs%b?>GgW&Rv<&~SRErl-}p@9SHphzkV0 zOG>%7bYqvE%7$)6l(CW40)1=Ugt$svZ?TNXGx&w8e^xqvnozY%JmEP?E0&; z=?KT_H7&bdp15+QU+Zu1iAlT>YZ+56`u)^i{&|gE_tEsT&G&bmF}}T|srC1P~*-s zZFUd01VnAB2wJGV;FVHZGS}OQmls|UH5TjJs5G&sIDBhu(x0Ca`xg8ae$30io5ND) zpKIRtCHpsBvVU2o|0!DS^Xge=o-KRT)bvWtXkFNJ$*S;uK0cC@>b34(GH8@->uhUt zl@;?ozKG3uZgFDTe!=sW8hnE1|LQ;7**xRm%vMwPucr9Bz9IG;9s;?F^XHTWB}?fz8wxx;cNneNsCWex@;N{xDM3-FG#^PqnO8 z^xFZU1(E4|e@mkNXw(-Og#=5^_*9X`G<9mDWPiF=z|J0}S!bA!?f+cfsjB{N%09jM zW&VjO{yQxvMSqxcL~QfYt9b@DqB)hmzr5z6P{i&0iBHYrpI^ds;TvIWyWPU&KJLnG zVfeQ>T#)I7hsRm(&nrb`=Z7 zcTRgz-uy1iqwzwin&|@m1&0;y@OZ!d?31MS@MLdhOF@Z>R;6d}s$|9avlUJMe98#R zR4Z&XYp>JUrzyR}@1{bVQ|b>s#p$~?3GKY{!|&{q+p~Ps@E2J@DSB-_-v8D^2asAx`=Ws1 zuZ)wumDOdN*|W6#N@2q>6Bk^Wd@0yu84<&5u9p?F4Pcvq{rX;wrxB1V(E%$o< zJ+*id%)}HHxhVbFR)@H$F6eU`yjOWNEAoj_@H$WB$*miW_s#y~!}hr+F@s+%qpz*p z=*LpO$3-@_Q<+azRv|klIBZm^wxUB_FDEdu3$-@ zEhfF7_;bdMEB8!{7=JVTvTUg| zFWwUxqfoE1?6iGt`ppNoI~v(8KUYanSfsixP3uqOBGq*&QIDLKIqF@{?P!QSk`Vsd zODSQuEvc6-pL%yONlb1|!KF?+(_0>w1bp7z zT%mL6>=LFYyd^(4HtW}YN&2Pn?(%}DLrdBX6^~Zkhz?oa9yd?Q_PxnIiLO5R#zl{N zKb(;MaKd)h^9!Pru5?LUIh=8y({^r@OWgK`Wr`nOon(Ep=uDcG(Ciy!Y5$kZYhGEa zaOaBL(iH~-SA;B)30|pU%fqpIvY6J=Nk$bhQ+st6hq#{1V{X}XBkj@61-_RjNYCuN zbHe9g)tAM$JwLI{G+1F9Y{Bax&${G&!(l`4q7DZ=VXGY-df|^ULuPJnoSwJh>#^BN zA1rb{egDIl@xjP;$;4Ohe_!NZ$9sLFR>9I+ldp>1?|e~g|I4z?d&bLEMeM&G@x90` z4B$+1V!spI8U3T0we!dk&%(8TZUsxXiFZ9_{`;7_jV)Jf_FAJaGo!NhOzpXnQG4nA{R?+% zD=$3eW~-f-(7yggik6<)y?^tUGOu5Mz)E8yhvKx;rdqNs?z3!GzlmikF6wjpeCFbe z$t9HqR}|GFIv)m!#RyuxE`A|6Ig6u)tK(Z_$BxY$pU(%Kaow$TeHO3Z^dQ%)(3`zC zpKVdeJ+|_~{3X{kE0Bvq^@hY@e8D$WNaQ%153kpPQ~DFYvtIMuRm*_=fC^ z0#l!okdP7|lNp6fYmTLx1>W~={>qbdr22@Z$ZZSHprZ!!RvJAMd6QmbZ||MVc;?ZT zlMl9PhWI>MHLqytwRJQ0zI`)8WM#KN*t&wm)S#O=D@7j8Ucqo^QlgollaR2}=LR>g zw=?8|ERMdIdGyK5h&9(&zI4f6b&>TnuQXTYft98T(|dznJ@ovTJ$bT6|1NdIcN5#s zbcn`uyzi5|JG1r0r7I_sAN|ZOJEg9-FCyJ^Yme!U<54~@w(n;AD<|{X$o%G~i=WTN zCc6l~J6h=QZhq~=j6;9Vu-|Uqtk0p_`Xbt#`+M-G#M3J~Xa3L)$3vW}EXMg_nEM!;nwnkspy;biYoGRP? z#B957g-v&XRpP|s#uwA%Vy@iYo)H-TUa9GZcFAmxq}8oui45N>9$yNwnIBMeX{CZi zhQiCjdYLo)!DUk}zY4Oc-Z1a_OtWB<@(mih1ADVL7e_r>F-@cGeDmQ}0k?R6{!E$Y zH;!GscyhI-N*uRK0_!_*rw2KrU?V?LHOF6~(?xns;ku zu5&8uyl;x_2NivftCeeQ)Yx2Ea9N+{vB+kt1D&}ZZ@H$Pa8NhBozW_w=bj_{qi?d> zvr{3e%d1v7EPZf#s(0IIk1bg$(^I@vo>gDaRb*7#bi(=~E90pshMI#soo-uHcjSAo zIeeR~eH&l&+QZT9Y}Rz%V#SrF?{?t;E;VL6HB{f!P-@m7(TvE+~U?fPyCj-p}j)u z-5oECZ!&wyndewo%b(dNyF~VmRp%)OWr<~O0&QQa4(6VE(zkqOxa8;Bxn9+^yBVCj zf;|-rrS>``x*iJ*o#3?Mg8b1<-@12kUE)3c=b!fRxyj``Ja;T#MikxtxAds)>sj^o zlCSxmK9bwww(@{!Z0wU0?=>^bL$^Ks{-iqkmUro*Emmrk9c8x`ONac-3>SV|GT~>z zMW@~I4<@=6x73$go~-#<$!5}RGVxczKjC0Lsl92NS2Pq!Z;ss2wW?|s`{!2+nHGed ze_f=YXWu@kw&rT=mzH-SuRLnFQ>WE@JaD+V zncx1;hILjO8#g(pcO*1w7nV*@Sa^H4_(UV#hyS?+jx|cpKBVK`822*BR5HjwGU&%& zkz}>DLt4cyd$WRrH7i$4@$_1>Zo;8c-b6w|i@|UX?|zxqDMKBR>53 z?@vvAt<%@%%)DCU__=E~Q~0;nF^{x%x|BE9r2Ae^U3cym_wHlsO14~++w<;MnWxN@ zWBYpdJ%~B-&HCc~p7N5bT-SqGlhQ89PfOK2niO*9wx(RdM44z225;*OPj*hF4Zh}O z7H`^`r@!C#@M}He)t2_GF2*0HOCQ!(u2PkMsCIwxX|>P z@9W&IdU(In;X^kSe{wt$l0C}xXwq|o=|B1s^*;XX<6ypfvwP8jI{#07zcycAwV`r% z)7e=PH`WCD++up>Fm3Vyj?S`{^{cv@9)~tubg*zc9Ny~e8g3dX)wgkV_rdU$J)cWT zc;E6?zFYPzX?}Tf?(46M_ifZ)lX2GJMr>X6gHQiTw*S!Xxm&x?-miOom%fNqmew=2 z9%0_O+S<&|R!)5_Wl+WbZ7rxdt-W8~O2yv6V23^zo4nYEbrWh*?l7=P3(Vd!AvG*} zh0c;2JdcifahCad9&-QDcIkwOo>iAik!kR@7eBu%s987tX3Na!?wx#_x845WLV2r_ zcSpZV%3u1x*u2l5Zi*VB(!@U=64X-JM{d}y-Ap+Q`R#h~8)Pxu4(^~e9;@O&F+w#7B|Xa*~vhjh+I zhdZZ^GsRkI{N;`IRIQu#YUQTb2btg2Yz^n>=b0HBTYa4`WnuSbu};;G=0C2rcrD-b zRy+3{uWo;L_0#nEw@vDEk}4{aa`vrVcdo5&N%(F30?TLOr4r&-X3v(L*3;KC&sF>5 z)L%cIKf3?l+(fbO)cmFA<>nawKKkw3*12;(?T!8Vb?)4+Ut{BfHy%te5=j=F(#s>V zBarXmvf@b}p6Yl+yGP6}mUymL%~I|v`X(^#b!NM%YJ2Ui62-bHua?b-O*ZG}dK1Wx!WJ+b0PjS>|t2TA>zm7F;rYoM` zE!@0*&4m~D>V@8Zu(-(QFO(eZyDX~Z%z}(SkEbbdVY;6a7f(F1vVGmhDBCqZaxNY& zIILzXyHWbcOTPIB%(}M+74m=iVwL%p!7uc;L%6!@^(xyl@higiByfxDkXy9H5;-1`~lcBLTJ6AP-_?Ny? z&m}QGxUl$f)b7fPiVHm|+E*iA?>M*1uEeRx_vG)R+DpT&x9{YBy-NF8nUwm9lD8&2 zXV!d8`1@tkl%}tjKb$y!$e<(L?vK;X&0pW_b32@{R_@rW>&7d&7`1oL`)0fGleF>a z=~s>($jINaP)cU8*Nh38%WW?%>)bW@xElW<Jjl z)>1QGY45dtM^jgtE$Rvi5IdJNmRc{6zk{JDwF~`j2nc3(Wf) ze`xdhO^v^+EssUFHgoNpo%|rm^yuX?C3T8N(-bd$*HPPN&6mHfId84r)P3bf?s{71 zcC2n>38>h)reb%Kg;LJ0@9Sj`#NDlWbam%ZdEuSK7e3DYI&bFfy}bA1u3g!ky~uI9 zlaRe;$+eJkpQrop(#_=!n>t(kj;)@(?%FEfxEtkhe*WjW{;m7`Y1if$+wNMwrpS?eq~Y(+0Jqsp-?Sy#CEx#H-P`=ww&$&DY{vw&>{T z$`x9&dG&VBww^wB{w|kOCq71VWqUnec4mp^`k&i(bIV?xwsUT(Ft6xZzo|Sw-`o#+ zwt3V3)RkM;rkuHIkftMFZrV3}%hj0Os}>&HxxnK7-HY+T5&loQ9~oD*<~{T~dhBSK zLpqOj_{=pIS3aL?$~EJtn9970lKHcv_lh6gRF!$qM^|N%h~VXE1{)mTH|w4H!;{gs z+gj(=!hPa?AKN89$G0f_xPGx-g<)Ui-Cbv+uXzNWVd&8DF4b?dTlwmc^7mb<#MZ>^ z-EbgmRsQX@UNd z$A1)c_bVUyFX;KHeG%)X${Eq83i`y#rNpf!MjWcSXYczXChNYIy>{KF?Gw}OyL!_3 zA6b|SeiP5;nIhh~;lH?X+#=T1envM;19@goKa>#CxW^}9y^Cqbi|2d24lUU%s69m~ zOv6QFN2gI!tD*Bo;YBx6t9DrjomCLC&A;zisCD{_2gg>P_JGqYvfU}}5tl9A`rcl8 zGAU2yj+XNlJ>`e3Mqd_uWZ|7RYw?Ud9m~v|E-jOpxUTY`_A=X~+^<3Izsue)`xd#) z=<=s$^Pb9vzP75`U(l@L`!;Gz#`P&%q=OT_Tw8e0`&IOEeMyT4A9DmQJKq<(KRI{T z+fV0@XwEs~_F}!u3k}CZ*A;CJB-QG)GHYM|Dr4wodu6fPWKXks;;SxR*2@oD8}%;5 zc+H$8XC{Z0KRe#FxoWGB)*0FBe22qhyE{Att#JCkz%%Ds2@ z4c_={@4L?Tws?K+<(o%;tAFe1e?M~uSFOTa^?9q_YroWZxjs84C)2cFKQ>gqlR4;j z+)w@G{@$DC|9d|3^U=t|pAwH`{}gHLxc<+z;;rwY?Ei{2GwQ!7-Tf)JVSC5K$;YE| zH6OiS-m%T_$n2SkGj(}Z>7M*UInM}EkCklH!3cDYTz{YoQuQ! zG9|lfqH;@JWgjtpHcEGYJLBfQjf<6c6dswHH+RL{`kB?Sv)73w{$2F(W4GESCw`x9 z`L6#Zyi&I(u6`PumbrFD+|FyQ7w=U%#3}Hd?DxKYLcVin`aXrUe|-w&^WQabJh>#< z#p=Oe!TCm|ajx2i?-GIQE}FXTc~|Qs!u;vNY{@{IL-$1&9q4Un@Y>YUsL-vpjY*}6 zQEX$LoBW;TP(iLJ(UgO)xzA4uG;q8j>d1FXgY&82b;~;vz6bwyWNuvD8n9vS*5tPV zwX;g=-X4(qe#&g6SIvYV1OK}fT1#&?x5~EOE&IM?<<^{xoKt0ov#|2HA=JIZ)?jG@(!HJyiWOC z`Hb^(Maol}@7pFs-MjE=hQaOY+qadjlP){AO>d3to!4=9)vk8BYoxdIc{B%qlKNQo zaf`6`Rmb+~OLwxOEHNLay^d?7kJ@TiGtfZmj*BvT@yy=gP}e*M(K73qEUql^!jg zaAtkh43j zJTqT&S7pCP&1a@KHuojzn;RncMkejEyvgCIaarq+ze?<^^NnI!`(-!8&XtMI&S{eS zpnu&h+Uu=P$NikX`vvZH{xY4(1~v{8b?P7dIQXnh^}9*syV$31_gCCn8!dRb=7x6P z9<{npKjNK#x0yft_H?cMyZaFrR+oR*&0p(!Lf66XPhHy`#XZjaGL8nv*ye0mr5nle zxXWmlRWZX{wyi7pjyRf&%dJjM%P2i^JKeSTO@Y1b5+NoQ4+V#(Zy$%VJP>89NNV__ ze{nkdiFB3-AB)V#ewEXDuOEF{*d8xqqF=oATJP+)(zgz!gy?3hkF}gF_UqPk$!>Ss z)6u7=Z!fcWZa(!@no)7{Hl^ywuv1fhIM(VbuB_%dx$ff2r6FapD*r#f-G0syz1Z!hMm6unPf^e9#7`=uGb?)PRtcKB<4UTs53TA*7YAVa~xdSF%gqYFWweZLP%rgF1Nhg%c{8E=h>LTyA(QBi${b zfATqB#p|o}{(bclHCxDkqdB_!(E1shmP}5~>RUB!*-cin#)*Fqwtr~c)@rK!E<-K) zN{K{K(AK9@*OuCIdsy;hSTXefcsQ|nRcv<7+V6^coH8wQ_>|-SDI7ZcRbr;K=c?W8 zl18?N48JU1+-+Qy5!%dIP|2~OT83}=gAG&Vf_~l>V4BOefgyjREFWXV_sKmDwlAu6 zdjxDVS8eJ1CO5}BRv>1oxd+qH$GV4{v?_u(1kaV2GT%Eu;>*-VQD*6*`@_p~N=0w1 zU3P}=afkATBL_COroZ!ykvgJuV50e(K(W}}U3U!jSe#M+cKOy3sb^Y`X6%cVk2}I4 z9I3eTQNt|>^E-;>`6ts;#q5myXR@}eo^kf-2`86j5>rJ(YK0^-npQ8+2wCQC_OR&q z(+!hEeDuOf9=84bTvsA-^m9jMt*>&D&bNN+ix2C5@yCQU&)Yw_uQsjihvtm18nJ(S z4i{MPwKuQ&xrvw4%W#cW*y-N5oWqwtPw-J=m6)yR{M2>Y?H^&+pN2=DGK%(Qdv!|c z?V3-AOt++E%>8j=rtPby*=xPl?6(x>%8R(@qVnc^VS?90HTC2Xgxgq_J-1xPm3mhQ0kPV2?I^5bZS>)8p%Nt^yr}NZCPC6IU z_1nbMs5zx~)@M%9f9Eu|m~*{}WMj_#$J8h)aKrvk!g=8cxyHYf1E*zGDPQ`c>tw$y z$5fen-GM`^i&u3@@-FQ*i~H>D9K6=Xy{QnY8*oD!~7hnq$& zH;rz{hP%y+IQFJ|U0U;wDwm7fMVWL03Yb!-Dz^P&(e&(f_;Kgu10k@jp;YDvdowkTeIO<=E33ZOxWfb&MJXrsXp00UoTaqF;yw(=IoW$ zDy2DElUusEJA5wu>bM(~K9Pg@#bL*7uQ*@Xo_l)lu}y+$?uO3l{y6?$bGv7#rF{#Q znmgl$v8Cp_+v@B4CjS1@U$Z{%xBkC^wAnj+&(u4;>6*rvDrYTwk$ zu63`b*z-+`T=QPnbyg~043>V-+qXYpGlO}6<8|S_+sSXTtBbA_Z!WODB$M|h{nPWa zPruGT(|GhNr@`EUX_K!$uPU_Xdp&u1hxpZw^(=;QoSX+Y+?89I!Y%(VK5AXgqr;12 zYR$f_n&Pm9HCSug`t#pD*%p7iapUOY$B*XOe!6F2d0?^0&+TtSU(U+T=h79E-@i?@ zO3q-5b=JH7i;7wA*58z{{(d~}yWPV1R^Quuk2y)1txS2eD<;+E(FBRyS7wC|*M@{@ zCfzv|y0w$LWNPM5!`1C9-II={)%v9#t#qB^bKXp1&BK<%y9*>jQcHVYC9o=ev?|%b zF}=yKewSNz+@qF7!ZTa_KCx{0tMOj7>*TVwkM5T=kCe{wzos_Xbx-Q_A7_ru-Q>C@ zm-p^MKb5FZ!OfdCxFo57+F2_)UDd8BNBGmLGNGD4LmoPEktX2#?8^OlQJlTvf0 zv6Sr5Tsx;-&rA#Y=aUM<(O!OKsIk`+ZYC=q!&4K6mN!z7s*qBGMb>t|Z#7NUoh& zC-jf|(KQWKK8=G{AFZyMGVi2_l?gM8(WSPK>S93i_BZ7xzFs2(~GbF&uOpP9)6B@ihrff+a=4&{+&8|B;d_0VJTZT zcymRG%O{Ue-jpc6_9IKUOO`1aDf_Ju{l~cWS-6Oud!?E7l}<^`sa*Se-L?KzMb)_P zQ@MWmPSm5%xhr$`<~c^p*b?~X_lemHB@4q}I2t~lp(18!_~`U9TUl)#uL&g|f|^1k zrmS?!;&ry*IaM?Fz&(WxR&33VGhbb|j3}GMcS@x9BvTMs*{OrWF6$SfunYG2&3jKK&TEMYF<^@--Y=7UCj~f;w=pISS%G_|RpKtMv ztII!1ZtHrcQFDBA!H3n~I9x^k9w|A*`{q{Wmao4p4n5Dy(#-slyUzG4|Cj08S-!7% zclOh~`zC*V{~tVC-s*c}O5EEUuZ(WwKAl`J(ZI#txlsy^ZoYLZ&+3wY}DsZ`!SN@S@ z?`A9WpI(>zUp-#ym;K+6e|KMZv&BcV%nit_iCH-7QeIhqV$4FRXNd+9;Varqiy}f< z&YXVg7R$1xll|tiO;R7Ej!2YWnp3@WGTUvBiPPflDknaC8XjtMCv5Q(YZ;v%L9)s} z9yQE3}~uY@bpw`~3RP^=I#2+M1tx zf6uYcv!~sEWPfA&wJm@2zNQ#|WOk07TDk7N#WOBF;}WU1X?Y5zckWIv>9-ND`abtU z`H{Yf@7o`qZk*F#uk~Y9@;4{u-Rc)Vgq`2JfNk$CtsS$HuPT1Xs@ASHuI7n($0o9_ z$yq^4Z|m!Lk0V|mn`2HYhpybXOL4kVnfKiPZY?+VW^*J>uj5v}<}G-dePV5wV7J~0 zr|^W83lAIYm?3teJobv!rzLZKZ@*xEC+6SZtM_oRS%((n3%lhid+|tr{w(<@ zx;0-bHFTAoK`+6tLythqA@pIns?`AvF_dV8qB^UeV%cjiaNBg;6ul8Ja z_3qY1C*m#krD<=x%eMZ7WTkaUf5x=;Z{z3Qo?d;=!FBd&tL5ga7nT1V>LdHM6_^;@(; zBkk6{ES=b6(to@|FD*^yUoAUF!Q*(W#dVbr$9GA3r5n$BqPgPg4zb&Zk1ufQXqmLS zWlq}bpM1W{vwBzhJ}&PleCGJ_(55)9mKn#2JpWV%{9bWnMW3GEk?(GOr!)0Wy+1aK z+f?3j;<1cJts8zG&CwCLTKQhU?7MNT#Mzac1=hD@7HT)kEZesKzUqd&b;-Pf^RGL* zgo|abI~c5|UAV=n)pgb7Ij=bDyq*X@i{P4au1f4G&+IG5sX+_or_*(NTWoCFosaV7RgT{cC|0=W>j7vtJdSF~1d7{-y5W>F}3%Gm4*8eZ2CZ z*21OscCQiPicL4={IK%l?eyaPw(oe3gcdx| z7B4$|P@30RP_8y5zfUw=?!oHT38HH)ds(|ZKTcj(l%!;0S9de@{4q_on5Nmqc2kR< zwb<3AF3_wx8lRDvl7CL~(5mH&+df@2$kmXaP#@I&=T^&!@UM?&%-~p^T$X0Ua)ZC3 zJcH9Aq=-e;ZDC(SxR?yba^FRHatngXYOF3Ut(@Zb`@8*ggGKxOcBT8hNGhz^p?kAn z-z>3*5C44Uc=LC~!|1=B9KLi^{F9rt_GxDHo{bB6EEe;eSnpD><#pC!>qfVS zzvY^o#acMs9_k+uYx_e^ z4Ad8{IC;^zOyKnjoyPvSBTnr6PIJZMU%cs@VAr1PA@BO)!o(FbFI+L|XL$bdr%GP> zjWa51l^(=pzq#13fXiu5sfV3J^sPD5yq>q*`&7Z`u3lsd>N{J(c2#6aWT zk-Vf80@@K9Be)u51V69Z@+5#QU)@>gg{INbiT{5-axZ>zN4?Ei`$(s%_S5g?c|ERT zzTdjKe)KC;yULipFkf`pVcvpRp|G?|4%-7I&u_oA!=V3#p^@>cFlNr487#+c2wCQc zOIiJqXp6t%I=gA%TX!$fcW&+M2{OklzpA8GZ(40oI3a#gnV+raYBi_nv1a?Ue)cWV zy)^H_Rp~hSf7LG@#|qkd&JuaZ-eMu|)HQ)6d*NKx^@1;4>%Q1$ocEkL*=*y3s1ts@ z({isk8+)s7p2*StUHEFVw2xbb{^=Um`QJ7l$S>ct>&nWjbFSRp{K>^^HN!ssdcCP7 ze;s_wc1*5Sjd^D?rG?Mu!ox+$M|>{4oV4Ne)Ao)XhMqr*PtII$()G&THjclYYR#+F zvMbo8XRYl&Y_vmAt<;4reCb;yqa9!R>V-_3SO2q_b?|J8WK2#+z30khja`x*(hhfd zjCY*eQvT_R!j>|Py=;zm+NUukx-7Lb=RMS6p!-8H@m#0IJU+4cDqH*(v2DERWL0#( zzpg~Sh-H4)~(=0)ReQu6(oOlSNIXgpVw)ymX>=0rUH-v-)OAOKPodoh>smD6pj}+$Hn)>p(r*cWUT;Dtm`%KFfsF1~ob4mQs~(~B-{ z0n>!{!q;EMqeGxuIzxli+njBUl-<-J@QwcHKx6leY*CS3I5qv zE*Cvk$m1^zka@(wZNbay#j&exWyTzn;*Bw!i5$jh9LC8Viwz`i2uiM4r~G+}VC3Ex z7rOT!ERwox!1&z7$JP11sPHeQP?_Dco?m(MK*@4K_mhU&`+9K~--{&JN_mbF!l9%bzdZn|bf6xu5UdA76c6O&HLt!GV@rO&+CW8e>oS~@-4Gv-)70T>-(6z`&7bU?9o@Be-`Uc+@o#hZ z9-Xjy)UA8py~c3&*FDk8m*wrv4e~s{*N^E1hWfD^(NaDStEi%eHA4zD#>x->#F`pBO6^)D3{RD9E__-2(T zA-2w^r!Rdn*WRZSUIy&?E-}yjgNb?7*S!v6`Y{>$mD|G4e}1}HYn6$bLgR|E^pGb4 z`DaRhfB5Q>vO{cQ;`>>3K5b|3A5Qtu$?eSV-)a89=3aY?(xcn0rJ+b(>QX z;~=*f`In#V>eCnACAe|d$GoE2e{(n2?OUJPxv^s3al?qHZELpf zt-BGuX!gkyuh-~ok$%3^XK9@C%b%;Vx6BBhe1BE*r&ZTP&Gr`tHmBc7nN?)&D`m|+ zt6F?#_FLX$Rn~Re_E|a4{jqo7Yv=iQZ`gYt>M|+pXpLY`I%BWtv}SUm%{~FvwhgtPL&;7CK<7rXN1HY0zH!WB-@iBwUFXbx_Yu3Gs`f@5~=MtBwCbNI1i>0Fr z_&(OS|GxU~*}cEdOOu16XWmx^wmI5+X(TMOZxwG}Eh!aH-Df5Zgt zz1#HU{uK2cx2^>4t6)C+jjw*=ivQ6Ih3%a`z2D#Y>qolc{WgifxsgxyO_b|B$Fyug z+2tI`;D9C97i~7!W_maB2(M0YOOp08gRO~ftD>yEcRHE4)Xbasy==;+r`lH!E#JZy zkQBBBN>c4y~>+y@;_WU`21Xq z{$8oY|CRao+&E|CBpQ|O``cb*M(2SutCj@Hsq~s`*v_FdU9I=RVo?^iR}*UAZ@9jZ zrTtmyd!znYsuot-oM%>f6+Cfla{j#Q`%L#*(XZRAb6LV%6XXpf{_tkqXy+*_6}jPF zm>_Q~(cPb&F#p5#oyrOGiz1>~-WbojliAfU_u)y|U$Lt=*SG~_JrtEVIx{vP>*42} zYGH>}{Mc7@W^=Cb0|_WzSo+T@ry=n`Zy-(6YrXOrJ{M=Q6ihs+Tv8Cv&U#S8_% z2CP!jD7P)z+b_D?cHRra8e?9Ge2dS?A2%I+WcQQ3QUAP2f8E~d7wz49Czr?UJ9S~x z)}P@?ejiTlyR&rH!TtY2_uRRb`o^&DYPFir-J^%Q(^i!}+Hj?qlkc*!%-ae7x}SKM zZt^X^!u5%bkEaUOO3u}hpP4HJ$j$5bs$yg z##`r#gwU6!vhk7y5n??&)BOLWMV|d(u4jGz$=wTIrbIllzcAaMw|88x zm-yuqrL}cNY~PZ!L&=r(DIOr?smNS|xB z+^$QxRdL~q^-{OEJKtN=m2o0@Zql~C*K9IVxy2No{LRWdd&8V>-N6&pQWL^$w#`%W zj}hEe?d3H&Mr?YW!rmJ>r}H_|zNA^)`n^Wz;JoZl`}FyEYYj_+<`hp+$cPtV*?VTf z_U40oSgyGwtT()2I_vsRjyJq*5ufJiY|L5w_0ZNc=Bpm93vHekX03FmW>KWaUT5Pj zwfif1UY8kv+cw!jDrmvhrnn4cM_sY!mpH38UOF;S(AsLtqu%uAAMuJVx6&K0k`6ZXqEK~)eLl<_IJne zyq(1NXjy?0(2-EGq40t>NY0fF52F8>G;h_-K&6aTSJ zxoveM>F3vpe;59@`P32dWqDwjtbJINt@(tofUI*X^JYCizr}I_x7Uqx*M3jk`uA`4 z{mJ`P%;s6C+E*5>`QO@UnfdqS%NFMEE)Nfs&-igumi3!nvupL;l@=Q=^K8@OdSfdz zJNPwMjK-IFi?ZfQ^)58n?0iu+>*(vEO-AqjGyeT3A=BsL)~(0rX2sKf|B&K>)NTLW zZwHr?Li~Nd`e2snf2yN6)&% zyTw6#OKTgS*Gr|P>$z_^$?I;}!vEs+qV*F$**~{_ey6(h{np19zAv|*did|VsWs=n z&&}r#EK`r1%~WybjNEB2p7!G+Ynyu}ZFEvvUZfjysrXmbUQyjj_b&ZI_i;dE}Px&kZX({ms0&YsIETPeD=_h{d?rzdM>uV35uJZOf;o4@5UFW=iw z`p5MA?4J+c!q@TRFx zF0psbEHha5QFCcXX8NCl9pb+?{b&|U&YIs~tr`8HYoERT>ikL1xVP#25XkPV?|=Ak z?~faNU$6Eu%k`~uKmP4Em&ualJB=>~&n&&e{KuhpFGF`nTT(SgCr7q-M_0$PD|^|0 z|K?w|{{-*ZGbwieZ=Nkk>ARpT+^Bq+&HdT?5N-<{nVDsG+Shx2-B2;b{mApM&dM_j zXXhmazu9+G%+qX#p61KFLi<^y+H{zvo$ASt+wg4G&%L`ppO~evzbkszj!pS#&DY<~ zocnGqkIfE-+;6K_)|6jAMB6>{#bpXgF|Pj0VdvDgxh{`%6nxu4c0&weGScaC$1#La^uiLXB#Jh-s= zu&?i7_I5UYzUb@IeyJsW5+Wxj^X4?gIb>2vW}SJ$%@p7#TmUJo~Y@m1|l{^Xu>!L$4mSvY3PH5BV9zc+9d zXc3c7Ib**f<=hX`p)A$Fzi^GP`sWG9HX4?c^K1}btlsbef!f-mR(@`FnNi#+&=ZAzy2(pVXG7?@V?$_ zWzn%0J3Rw6O{VYqS)De!hE;dp>72=OYJSg5f)vEBw&Vy3KL{4k{86O5>&}To|BE&% zNuK?g`E45i#_x9L*4Z3ix96Cc=e7#A?O&t0`;VWHPjcdx7ZAIU?8C9!rS%#?l07yf$7eDU(#YY+Rs``Oy1z1{!%*W6<-t~PFti9DYh>;1Xtl)G{Ij?>RC zm*pRK3tQ$BKX-b}wUib4=d#bQ&HNPdVQ$UEpy1z+-@es)GcV$r_=>J7ugr8j6LTRpRn)l}QKF z8=CJ;{krt2>Q1$5`;7Wc*SVC*z3;qtBiH@S9{HDDuV<&dv)grXPwjL6R%L@7v$ZVk zAMBs_kGcHksqFl{U!(p++HR}-Eb;Gy_Np~MJNI1DT72(Plt6r5Va2JfcV~P$`__ET zyEid&cN)swpXTvLS*Ek)aBgm*bLm#b+7+ic_|wL+IjMp-~KRf`75V~D>Rp%y}rfp+AV>s!YSM0j4$kZbj#H7 z9e=rx&z*^N%Rfu)e}3TM>ObG_1O+A9+iHH>fCu{;0Ul({$^t zFw=$~zRoG?g<0DJAH{JCsqWz@>wc1T*zZ<^;90e8A3Q$&&x$y=J0d(MX}XL4jP4k# z1AiizbA4T6 zf6D3a%jf^ToA9jiNH+J)fOQoz6}e0mx}N4*DZ)=SCwObT5#!2cj}S`m)_k+#RPkwz z9=e((?x4r1ZpjIfElF=a{V>_q{q<2|D|)9zW`h&R>V_*p9A!_~tH zi`<*1l&H=)&htNR3TL-Q(!0PzY5m?&QtXjoF)SzfUqw~3)bx4k#w@j0vbueUTQy!G zYQDpf$gPg%=J}jE7v0|5m~9pN{%6VLdM~ddFMnAJ?w*l&=CR&C{m5FkWnMn5fqT~; zd!e0WypH2T4F7wXlQt**eq?Xf_bIq@@3f#}d2-XaH8mTPA1t?xymE(C#Vz?;45AXJ3Y=qn7_&xk*^dWV79|ERlLls9zo z%n4nTw%F%UDyNlvrbln8TI`GuOvV%Wb~v5+apI_9b3nqSVxx=UI?Eaau8WpWPfnk0 zziqE-!J^ycmzBd*SUIbj_8$oPaPEkp{?w+evAy=@wV%A6uU>6C|Hj)ldy9@u-`sWn zscq=HNf|TGU%3$`w>9_W0i}z(m5h((?^qyt=Fh~-aSLOWJdP^QoWJDS)TMjWt*=Q0 zvA+8jSe}?W&0@0L3AQQ)evg7_m)2aX2|prrOu|oCdcVfAs@7(Ub;^PSdr zn@U6-XF9m?nwQg12bn(McpPH2(+!hA;Y@{}d} z-FMB`o!Vo@n-MpO-(1ypv%$jHniHCx-m{MW5tw##|B1DB-%Qvy9TVD7kn*->vHwQ% zj%PFFl)8VmFZ7C5t}Hp__C?j{d25VMUnFzT(-a8<)wi$nOa0nq%RZ-UIBT3XZ;#QB zdEX2FTNfteygA_F_I#FMWcZrM+}oR$-ibc?{-9jW{dHl*Hzus{22=U!@KG-KT0 z*|7EWJx4C@pc|!H8~Q2}=8BZXR7Wws7Mk~2JK-+V8fV7W3pbqJnk~9v%7=GP@@F#L zFgfrm)!^kk-hdl|UCNp{0SA~pPtIbz!PU^)@Mqnw0-tKr6HLZI+piaJZe068>x*RB z@V;}0xi4R@cscy5;Ryp3y-hn1jT;kT>8=Z-G?5Oe8D-h9j68O-@>&3%8> ztkc|F8mv({!VV7TAFG+b}Q{!yTu)Fb2 zqmW9Jhgsm0lN` z=>28WmxMjOFnc9$`-59&j(%-Bv|#DQ_w472BC2B!u2o~nvtiyal_8pS!^_GgXL}Aj zog!1$${;4die68S=rLb=yX`lknLD~h_<)vc|pvijVp!=G-Fa9bqbv^7d5b?x!a z_RXuFmk5MhI&T{$xyEwo-p6{6?&RFQeM>;=wbmNbYtwK1>V0tM%$(md%3da|DyS2B zo4mMTw&{lc>_qwN2j#jqlrlu~Z{QUv`=g`IFs(YujQ##~JZm`;M2LPWC-`wQ=qIKKU2t zy8qQ#?R~P4tNv@(6<@^zmk!^W^W}K@57#}KS7fyLO>Rwk`u3al?v1ezW}nUYxqjL1 z{byzEPhFT&`Ri=|p*s1{o9}%^#D5p`yOorRB}g-Dn|f$QnQCpG^n;awFT7f`6_W3W z-Ex?0RPbhn;OX`o21$=5E%a>KpYC|pf8$ZJ2mwAn>(~bsxt&J>cmn$^6|S`kzFySP zyJ6u6v#pHGexJDY!rp0@7KIy!FPVE##IDdhJM_$!c8Oro4gQzbTXygD{=t4N+5KGI zhq_;$GhXO!+0k%tNx=2IK(wbkC z!@c{lb?w3I-FMCFj)gsSyuJP7;~D3gX1);TeYk7pyYDOwr}iDOH?iHTyn6A(Gm)J$ zSiXfVv&_4nSC<**ucu`8ZmCad+P9_m_RZ%{nft%j!FqN>Sy|AoU4E=(H*Ge=iX1b^ z(R@?%&~iW1w&;dZjf85Ap3ECTH{w3jnF#65x@0jg|A+4)`we!>8g;bNJ%d^r_BP#) zHG1vgb&9FJDA}ki*r@E(ig1-cNyng2Dyb{EF^iK zDokrNW-Xk^@_kEj^=$EKq4n>-?fWhm9ol_5*!4$yVo*!G_VE^*`$HOy^ z-eI0uTC?KLvi@lny}b`7Z98^0(8YT1o^+$n)_jFpbuS;qomr_>8UCyFjB||hv+IAi zYizUYk?83(m?3c2@eE7S740`m&MjB*v)IO^b4PbaC8u6eQ`ZaeKY^PL-VMvTa73eM zYK~i38O~is(z(yEEnL9w+NPVrXV%Xj`dUWq2hm zdy<`fBEOLP$I0jB=FU5^?%D&>yXP*?cYVV+QPnX&#lb$L2ZnatCL3N#tp*pH@&9~O(Nh&ppql3}0F+of~e z@4cxhaPKZY8gWX&%+;#IGrc(fyH8S#s{oWSw(~vCgcvO-tm6 z>SjrS9jpQs95a^j-Yhk1aj@O=r7-qm%QJ8PjAJYM#edgq6z1Dq=4oxTQP8mX{o>sh zv*tVydR%+Nx9h<4V1DKY#XOITd#3)8q0jyB~~K(>$!dzum9%`FZ6A@#>JSy~ls}`%GUFruf*) zWRnz+)!c;(cNhvh_x9M5mD{bcz89-)438U(Tv-86WpH% zzUk-WN{&$USud8*Jjr>#Y=SzA>Xr3B_Dls@LI(sn#)am^FO^y-h8u^Rr&PJJDB&u(sAYxFQ8tUMX*4*{h)3MS7t^dfAsY&e>abaA()u<%}D5EbHw` zI+!Rm;b~o0@LSGm#n!EAvf7KKFK!g9$z3E|Gq2`^PSyU1t&D4vXKk)q))3vocWBd0 z|NpNZU1i(5^=!byD*-wEA}XI}M=5QMN^sq_uf6}vS6Ry{lg-yeio?RJl9#zDwMl#d?#ZzK4FL0%`TWoMRtRpC=H}T}!kh!arg;LmcB3#54 z?~+Ii&cAfMcvUi|#x3uyk7v#fOX>SKf7P5Wm3!vb_B=Yg_wW3>3GwyMen>G-+U8$W z^J&+WO-JX{DSQ@P*B&nxmB0S;tKX*{l~r$Av|Z)S#H=ete{I5B{+R`y+huY;G19ih z>!_jLmaR71bWh(&YV7r0yG2t|^V#jyBAcqOrtOM|;8OKv`LwBZ%l;|Ncb_Dg@4Vrg zwB=M~q2R)$_vG$8Uv{tmh;x|b6b!4t+`6ygC)T}{{`+_4ZHv3cr#Aa-_ujhV{_hQG z=N8qyPd8b!V*d0iHNSUUJ`#TQ(Xy`-`jdl>uH(`U4SiL5>7koR?-$NDZ3fM5fBbS=i{A%3%Cch+8q?ILo=4#i#|NXLS zeP?n15dC(r_lti04AYZ)7HC*RaDTmHc9!$YPF^jpNfxQ|uLblxI$D=`v|+}s>ngMU z^iOya_UE(R7iqh1pH==(3;lXV|3ynM_g|)t^J3g4nR8FuDqJ`+Y3;)2CokIe-)3F% zUU@C^vplH@mizRkMt$$Tc*Xm$=7Nd2Q{05^FnBIJTvZ^mVcLD&rSa-jAv$o&9^RG4(sJ>53-TFUT z<)V=CCPqaNY7~8Du3%!ap{s{&;k%29E3}f*+r_@+GJXs1ILAC|=1;ZLjrX-rHu7`6 z>dCsBWj4(>X=a_V?w#~=l`>bK&b>L+*QjSY|J{tAH%*uL{qL0jKO@@b!+G6VcGmHV z!D)Ae9|tV||EVIYR%@$W@r2iBUi}fgtg6-T1{tYI)}Mjkm0P1jXM!GthT+sBiDSbfo(4n)1Wd z^J=F>J7p?~Z!eoMUrSE?u5_HFatLFt?3A|t?}BINtd-I5**cZEb>+6A1qN5c_(Z;? zx9)s*v1VETSN0PHt-^>Uw_6x^uFBn5;L9KSdPdBoj3T?GTi;ENeEmRQ@QUe0)ueQT z_5}w81s_JtP}N_R`Sq7f%-{QS?zTRhxB6gok)KI?ormbwFXB7)$8X_wPRsJI|3B{x zzh(aZDB(8wE^E!)BMR?UZ2Eb~##a1>AGfVI)0=?2&}(c}CTh>xf^z=p%)atfD_M>g9xqudHfyu*(dxdli;TbS*>Sx+Y|`0tHcDpEGmfjA@sV-lx~pQoInDRk z<@xs)Zh5x1KXb`hv2_Ad9(8VRMf5Ngfx^%dOA4BP9>D-FvqrR=i|tt?_1Ezw^Id?mKlL{h7I~ zS&rLn>$y=$-F#L)y<6>~&rZ6h%6l%%Ij72x_m}Lh>ua7n1sE@=)K~m1(975PMDEhY zyfd=9*61DV*|L#q?x{36In}>fC%4Uer=uO?^K#R1f!G%7D@9A2t}9PaF0Y6X6g8jO z*8cnTv3+}vnN>ay%((MOCj88aA2-j0W?b%{XLVFYZuyScBJ28EF1Bj_dM)KWC$Q4B zK27%4&$E@Qt$hloAAHa?+bXO!Apel8mv2?Ab7^2;Y4fGC5C7UIJlHd9c5~79o>{Y- zXBn)zdiltg!1eRg+E1TexzqB*`^ukdj;zyavE2VGoMkhwfI-4i?j)~?t|~22r{p%i z+SK7XU#j5C%0@R~{|(O;Dd#*4d$#P`21_}+Z5a!gZL>-zZJf#5W4q~yvrCdi_L}HP zlb!Y+zq@97VfT{rTeP*ePT~J?rO5lQ#qv8#)Xf#64*hbM`(BZeTk!mN@5PMWn(NO# z-edDF>;6;jxvz5f{Vu)}JNfxJ-?Xsx8o63O|2*FlE^GUw^RDrc`19Wj{_*xn`B&~y z%Gg>OqB7V0Qm#MGhwbzB_c^z{ypIH)o`FxgZJeN-Ks9>zUt3iyRA@x8!{7rAyNkA+`e^(k)eSiET7u@3c%%g^(k zW1n^Qujd|xx=yKs)fW|7Ci+Hh+@zA{=b#cZpRa%4!2_OKW(hrRH4R~vTJo#Adv5;8 zl6ILBI!eI-|xqTLi6!u#hT{z0} zWpkgdVtP%xeo5~3*KO^&p>oT2XT5)3Xkqh&KFn zO9-wz`u?xD%v_r&g-}jo;ifxfk5Ui2A9o0KGYk&9dCay``$*^1+e?&Jnru<%KimBM z!evEk-madgs)d5_8B2P1-d$5v;}Us7{q)vUcNQ;`3z~N9>!OS&XLniNE1ugU^Ww&{ z#&1?XOjlmnvZ3UB-nJXs*&jI#q`rtPx}Sa{Y5kFB+^gn_d2ZWxbGiA$=6ekCkoGZ)Y<#HZSk(-P`**|I@loowCB$YHCLP^*J>*lO^?6=NE3B zJO8;9m7lp~&($kaG`OqQy?d~`^8T**^Y4E?Tleq8&uaU+w(iBr6E<5cFa9W`lW>}q z%ZBI5r|1P@k94OUj$^*@TI3kZ8j)|+T**w|I1b!nxFN6E!x{0ixPFmA*v3+k1cQ>B zzr|V&8MSNQ<$}~m97u3l^<95c`GiCNyb`akJn+wqzlZlm3R4)@@AeOK;u)*m8%i}2 zat^2oZwR{ap9_@mS2LE$C1gta>`Is9N@fb<+O6=Qk>kc=iD!=u&K&37F!j^@&zYKU z8m6e#bTdqIPVC|KntxjKgTsyooE3S72d16zO}8stGK*>ZzEq~3f`gMk%stH*rf^|W z{Kx86qpAD&47;Cqtm_M{D)fqP_FKUl;j(t8m}d5Asr~Ag?@!)we!A1d@DJMCleWDL zdva*J#Z^~TUwM3|H}w0p3tt!Px^HYd_vW5O zheE&ISgcTXJ5QS7sO^T6k*{65s&|~c7dx*cZgSq`dyQAhq=RpN7I!pz7CK3mFX_7A z<(V6%2(X83diK=iAxDRnm~`lyglqiaoELc1!D=Y{R_x z#fA4OWLY`*vhPQ*rF}-(S)_R=s(5+~Htl z>90Sn?Jw-UuU}Cx-S&+Alz-g&JLR=9uef%<*~+{2XfE&S<^@M~xEV8BNWYKV_SpRH zfz(O&rOxb`J2kzWSD?;Npsq8(q1c5{dnxCZ16x?9-1QGQRwIyxkANLh$XJ!g&cWe#2Ztljn_H2_dopBshIM&#bf(ckdmML3k%q;zil_+ zEW4_?dQqi#du)`==aSFQCMeg<)GzU!{@IrQ=Bhg)KhU{C%$?x z?JPC=ounLHab(G@HATD%;TLzl6AJSGpr*j$LQ6mV~cy4|>LZE;cZ|s9d3- zG{|7_cKa4jy>FH8{+)4qSJ(JK$^83TgDq3+|5)5V|9zT?h+B8g*3!J#=(kZxy47lz zqWxu`CBMwCo7yGywsUdJviaKQ{+PQ?Rb71}&9c+8MT0rjk-^7+|*1JEH_ly(Q);R zh(OGtraQ3==AtiJ)=il0`A+;DLsZ*?)LCU;8cq6*Gd`|Z^1YOI^}h~7Bcb2-Cdu$# z6`rm<+jpL|e<jlzG;e^1ozY8pc{#A@}}B8pCno{ zhiL|Tg6^g!{*^|Lr;65iur~OIefTKX@RLz&f@qCLz5a};{ZZXpI+Rb}BR?lBI%fIgD*qY_R`x@uHh;6?;Z}V8jOWmq#W|<+^-*{I&to zbFL;)?Q`+lYw>bk^JhIf`*~UZzMprB@4tL~I_9wCyl^+em*-ZCdHzV6W!bG#Q^>13 z>BOnCMwv}9yccKv(RqLLtkm->={NKF9CfOX-r>3SnrrdyPA%^pYz#qbWu#;$8t)pl$O74NY=d@VIcv%Bf*nubg^sT(m->=ug_S{#$G7 zXT>IDJ>7bHTkhL;_kKNcd39Y`i+N_vlIU4kirlR$#Wn@Zz+l|4-DGHWW9_|Fl@kq; zu1#mRZkW}&q3Oh|=n@^>fJv$$ZkiKJvyX(lEI93T{YYi0u0!6GZDt#m@yK!NZ#*b# zqFSLGeBAbwQP$!m>5IGnPI_@E{Op;j&yzedI#RPELpE=%(-63@;cdBb{e`^R#~P`a4KKsg3Grp|rYh(}qwftNR|J8Zvo?D;qI=Ij7UBlYrH$u%{ z@~+8vu}Uh|_Vt0*d3)7WS?A4YzHRb2St+U!c$0%;w=iM=tzfEleWKV?7+26mP@0GqXuMX?!$qO_iqNX)| z?f>`B=dt$Rne$hzP~7qIvCL8VeR91~AKjI$PO5*Hw!l1l(d30|Z+eCoi{78G=Ag>y zyFQz4=6PBj>74Pr>x@q3(%xVHOf}3VWbpBJM*sf6#&^YcuIsGBd#~phvX!ya9SEHu zYtmE9wxzjVW$V<>8N4&Y6?U}Nvp2c{8%t^S<-~Xo{yhR^IVnY zv5@_Bt7hO_@4HE>Rl+tdELLw_lO3t|&9i3emgNVzr|#ml`ONZ8BC%UI=cAbOx#%}t z!G2F8L^Is{O_W0y%uM}YuH3s2L~(ys)Af13VWYgts?{spCw-F_x7M^=TJl75_LYoo z$BRZz-=Ez4>T7IaTylI}`pwFf5)Zx3-!I=>hn!p_40-YoH5NdlK--VoL`aZMa{Q)2U~uy>+)q>;tc({)I{mJ zPcgU3mror>{w-oH5s#SJ7&z&vx75O!EAPZJxZTXKj`{1h@u!K<_K7oT6exmGyu%+Bj}3b)y87Cyb~V!SEv@13cpY=?EGNZxuX z`6?$pCeMn^GtO`JlFWwRH<~moZ_ak}h&{1j+op`^qE{5>aq(U~vWn;Av(k>U z%^Uj;ec5~5Y{B9WvNxaUYS{nc-BNpc$KUDk^LBn+$*iTtQ}ShU@1n!AZ!fcSTH(Dh z@m163?4162VM5o;BW$0BZOb^=U2Aac=+eyNa_O_2MdKzk=!Tt}7u~VpuJ!dBJG(pM zv-9h`&(8|jx%rGxsri%ddbyvrUj3FcCwNW@|J=j3J8zf2SKzYH`p;MlbV@lbhKVor?cQ{BEV}>b2QvSysHB`N_K{*RS1FdvCkZFk9b!XOT+T z{j|=r^1I&e<3D3+td|`zb6TodyhHS_Ej#aqhCa=RG8 zV0g^jJ5eV{t2U3hbz{kb*^F#=Q)*_XzE^0?UAWNu&j#;WbH{u!OeC?WFeciHKLOSZS26VIH~Z+$EJL15~GTKNOtxHkkIeJ{IU z19Rk;B7uZGPtMlN1sl`RMEZ?Q^ooEN-R zw(z})>FtSa>~izxo!gUg|Ncd}yO(5kmRcB99iCQ^_v6!rb^Tl7=O0pk@kh>X`QsJp z@2qYZmhCmZRP*WD?ZrD%O)@lI0ZT7k4jQJ?yvep<6#g~4gB^zh^s0ItQ2D^zwER5yg!G{n!79eD=A9@7CS6r*BP#bw7UXef#zD>+M?}?0sv?wYw~2x97%evt5gS zzYyFjn-I!Sd_mTB?OJE+DCW)g-l;TJOB`B|e6v(7@Z$OaoGj#G9k}xF z&cjnAHU~ZTuv$M+VDX}9XEi?B+&<#b`%CPR@T%oucQ?tb-+DxvN7AWL_Uv8$lJ?#H z0z!BDJie^&uv`5zXjWff#wh2-VB+z;zjh@h&edb)S znBeiS(U9rcFB&13& zRe7(!PNz37_mHg8Ky8pLJY)+NjepV`K+dJooMY$?Vnm5KawY^m=e-vYNhkMHM z&iIY24|MvkO}(5{yz$SSEdo4tt)E@l_?Q0w_2qKR#hZ0O<#zUJ(b2~3JJ0#3eZKO3 z`R};dk<+ekPti>H$|ky|O4EN=*lu6O&w)31Z)vfv32lfJHQ0aPxeQkXL(dYXBhQzF ze5w2Ba$9tZ^1O^!o7OBk$9vjlOCYOEdTZ;-pIUAwweFrHx6steY*3E*=@70t=U_|@oZ`I4b#;H-`*&> zuUXV@zIXNC?lYSwKH^~0a^Ul3>BvsB=He67m9y?C7tOYM5wRdvR?7AGqSrsZG1^+0 z-oCM}F1xE*{*2%6+}nQTJMSjN$gP$vyXqd(dpapKcJk|uKHJi>j5go7wejYe)9!r? zsd5+dCU_($2c$`RJYZsxUbI{8l8jol+=*N1*EpxIYU+I-#LIG?!?$E|*S%+~FB+XT zwM<)fu0USK>s9HX2_Nik9I(1^ zK*RPH`7GS<*uVKN=hvN`R1zLqIZ4d>QuDvN ziJDulh>2c}^77U(t*Y&1_4u-)tm$2WQ2*%_<&#$!*xu?b+1;DNzxk3$Xy3L47TR8W zd)BP-_Bgpk!|G}BEZ?{%8IM!$%goT6w|v&i;zG7rb#1GA2UqE*xME{iPM``gmy6zpqocK)rPuw_bwKj#(+NBK1?JDmNd zDc3v`Uc9m)(~FhoDQgdhOW})z!st6P>?YN=JuWl3&(E1&t^HT!{n;5ircapkzuz_Q zK$hy!S02sFU*C8ZckICIu}w&i@lnaAjfI6AVV-G zaovi%Di!CHX&byxKe%L6qACCG_^XwCVLxWY&5}JGR5i1;YfJTf(U2oH^EETH^yd}N z-?(;{b?qyMb7^&#)7~z8pLze(PUY7uyo}Y8Zp7UB)1y{g`u^s=kGzrj zKJ!poj_e(chy_QM=_*y3`sI2r;GaL&@rLqAg_4cdwFXaTT#ejrrqf&5ne871T&#BPVVdb7 z_(jTpvW`*MI-v`m?62Ee4vFk~zc!?%N^|kb<`>OARap|UU2B%K#0s6htKFFQy2L4L z``q4)uil$#UTiq;YjJ(LhH+uTQPz#oI(*S*&TgKN*uCMd!EAN&^*()VGFIKbtB?O% z=OTS8zjouj;PAM&Yd`1rt-n35`9i>1UHJpM@5;>NoAqewv6ltzuS?c6I%jnq^Nlu}0-L>8^`*y;9qW7RU!T@yeg6N9`!=~e(_Z(ms@|K`tG(y%e5t3ue;j6C z-Yn>RsVF75`}wBW=-fZ&jpHAlPx+@_D?R%HHcBhP|oNp70CvtncanTR=}vyyT| z1N$zlNb4+s!k6b($42>E<2&Ytzwp@qCcai$$$>+CwMT{V=<8Y*&BH@j{!Q;;~Xr)7u`h zUwidIgwrd?_())xkZzv4e4V|D&iM?vqyHQCe=6G6d4BUzf#?U-2_G(d7P)?UVz=O_ zq!HgM(Jd9TYv;E;V(Qntx8&Gdm0Y$nOtt3^&bRP6b7i)$OVjN)-=}6t>!=)xikg)D zmF>@3F(ai3g&U_uIZr(vVfv!`?7JhEmb7g!bT2(6m(dY=ZGET8Uu~h@8NFMD%%*Mg znSS$n^q$*??mz8Isr%P0>zpji%q*PjEY^Ow$?nhkiu+o-4+f{LG5VduELQ&8c5hAB z{f%o^ZnnzkFju;I>h6xJ$7_1)e{|nDUpH%>Lr~o2l*0R$j_&VsGe7=#rhn;BwNimiq5<~&c8a!nLQ4LV*5!!yY}7n*%gxi&dtJzygT*&L@#jVpShlWPbx*Cn_RIvE8*(!`XB%+-66Eyrle;~yuH$#`vKIeE{cZpC>&`kX zUA$%8rW0Xy7oPUrlX$-SXYXqtL+1@fLHjEY#oF81WAse;mS0b81?y98vEw~0KRoO|W8!lanleJhu7%FcB6 zI$@w$A$Q`B^qG0TI5YE(*JR0GcwulsqfE0$XohIyKm#sBe z_*l?c`=4#nvlAlMekuG4?>jXA-@B96n^T|sh ztl!s!XD;uLpMJCS-L&X)e=|exXTP3#d+zRnwOpy@XPv)pt4t{4y1kq!yN!W2^>)br z9_5t%bI#70Tx{?><(g+_`s>B5LPq@;oy7vey||wGl=FoaPg^^WgB5^|%Y(RX91wOA)xo3V|o!#CI8 z_xS3!RTlbudAa{ceth8NpmnQtH44Lgd3Rc$<55;let+)dwuI12o637n?i#$F%( zEWYOA^~;5NW+r+HlK)8U!=ka>l{`-@w5@+qkECkLpQ9+@u571i_4 zw^PS^zP2v+`IZZTK5t%T%spk*HS_k|`8RHD`lPJ0t1x4g>+Zhe%l^BC-&na?djrdI z_d9dvOE@n#+M~X~NNUZiO>g3#Z(4JI*VUu-I-f)9E_2UJ$x1FP|ESYfW}^32E9YgL z=qHAb@P6^YGA^Z#uvBNZMA9f=gXW2=I?T?56HY2FBLph;hlm4 zAD?z?PD*!~q~F7LoMqoxc2_suwPh^#KXLAb>c)gBC)PmyZ>Bt5wY>Lr)9W^7ybiF~ zv&w42&70w&yVZosd4H_lvU-}Rs+9KItE}B&I#Uww_y73%-Kg<{l=qsdLz`98=45>A zzkbB4Irg#coWt+r45w_{^3}xJ;e*@+nMZX?Ue$!#9Ag$apVeZtAbIZZk8Ne$6OS@^ z>7;pS%xLuA-`$*h&2v`nnZgYh&4U}c;&LVi^6!u4mz%nA(~{(Fi}N32cYo!JVEe|$ z^G0^do$B+p-`Cu!s!X_&e`Dk8PiwiqeM$XyGP-U~-Q`=1ie|4r9P3@&w_@F`pl2O! z2S3^RM1I|SVAb3MtC&N+?o#sp%EhGPa$Y@A9kP#AkRe8Vo zVZmkG&-Gq9mXwy<{qbYhMTfP^SFBpT^X{#ut1s)BPYbc^x#+g8 z<#$%_qCIO??$FBP%K2nD>w4a9CYyiZ=UvRrKhHapzGLh2?*;kkYhqSkHhCqvW8v9X z`ybhUPxxQ||EsfQ11x1T9(+_cIr{LsbQQHRB&yk_0*mQpJi2LMTy>r#RO7rit`2V}^ zW^hPHn_Iq}c2(NkO7J#k%(ujQ*2#yBmaSWGFJFG+P2InLn|=TM{QsGCnukMYZmiK5b}Nvd~UBNYCcQ z;md3K^mtbnO`Mm!-z#JN8J(*hn;$GWF{OHy$wiM3?^k}E{wsW|bye+Ere8nLWcB=g zx=Tvmsm{~6F?UC-%fI`V`p*`;FUXI+mA$jt=>L;1FQ?vddG>n!EkV{dak-n%<=uYx z?Dvnq)jvOol^%QZ7cXTxsOj*p=*Sn(W&he4*i5xA z)_F-R-^zHjnAxQABC&D-`oQRC-dUSX8Z;p0)6ZA%~sPhnlZJa~H7J*g5EX zo{DVKIQ!%7lE)$TFSIW7PxV&jtl7rv9?Q9UUci0pm;BE2cPoB5`FwTn zLan@~;rpg?*1e9teD>+ut>-dVFHX!UI@Ki`x_M9jvXgmcVPUr?y*=0V&1H9|{r}_k ze&6?QlL`!KJW%(J-AjteONvoTdq+VtS5ArC4T;v+)v@avdb!V6if-U!ytcN%H|U0) z*Tp_KR@6Z}N_{3Ja7K;fOY}`Kz+beUZ}A8;o9=5znIcx46go_?()#B*ZJ| zyu|mEnJ3hlm$t>FJM{*Ny~whe5h%rdN-3;!#-H3@h5PcYHh2COI6pJl^v=omdnWkp z|9b7*vr`K$n!k3~RCJh)ebUt3nQWC^nS3h6{QKAM(LX=`f5OHt=bjO# zw_sI(}H_d1Tpc zz7vY?JXTI(eiW@*%9@&cP2y3^6sb7x`np-w30Yd3r=2%<&Dyay{$JX%hvNHZ6oveH zZL|9Aw_`I+v)|P4?@yL~AD>+w{hGIRno;obl{+`?-hKSg{QuJ1vtOsqjF+)u5&Fcj zwozHANcBU@)eu{&Rk6;UsjA`2o^V{A?jUzVYn~#@1<#4{OIR8@7ji4#U*q!6tgX0u zo7LPSd*z-jU~*i0PN`j3C2z$N?uqsda`#=|y-MmfPHB9(nERspbb-H;K@(c*4(d25 zUD(v!TdTVBrd8<7rf?3YwaZvPcU3J3>0HxPeevgmRNZq^lQo;)2TT81shz&(R%!Rn z|EB6$J7>pLD%Y}K|G4{Zne&Mk_g`#@yq3Py;zkjwnx9qR@?Xe-(w>R<1bD1?O zqi?&hFVNA>OJ@#Xsr-5_{{OD@g`c$krroy6UX*t0wpD2QoNuhlvLB^BoTs_|@o_Gh5F#3(fj5xAez@4;LB}SC{@cAP^N5F4-jf@I%Fc1dg8e!@`ct(+!Vj z?+m{GKl7J+%uQ?dHys*fYc@n*%emF^_V3=^KQFkYXA38}x%t;~N&aR&al`+9W@dSK z=*~hr`;)Krw_bVmb?dZCLB{8vn>V|bN9>kOx!LYG&GBqm3G>xj{);j&$~|uKKpNDS^4Nl=a;GPjog3q zo{_y}z3=At=6&yDgQgjj8c&||#+uRHn$bPAiMwk15!Tw7I@zI|!kfd&ne)!h+OdpV zy!4UJPu09fqK72kMICr6B}68-k({+<*Pr+P^dNL^Zoary9I` z|5LFu-7rY7>~chsjAT*vj-@K^)x6e5&r#?xPGEBSw%_8nwO+(#72XuLFE>su?h?#0 zc$|`UU&fS4YwbaOp`n`{n3Qz$ z$L?;|S*q?kE8bP4d|!H8d1wDaVLQW(Pww}4=)JVP_?z?Iq;<3ORaUBq8LDWizWTdq z!jex8?Wr!hwmgENP4)`ho?7+#Y67LqC2qg?cT@#j2zm42NbQFsiVa&&C%AO)Oq!=~ zLR5!?X+!iDyM|hUgm9)c?T0qiz79Y0IC_7U-2GpoXSVary0}uO_m#ncHqD;B%_3@5 zK~pzetW0<{@51vKCQCe4-|+pkBPJyOlq!#eOM1AQkk!Op2+UG8x!1rC? zpq=RFrCkm}-=3xO`S~xu|5@+Jou@B(_BU1U{+<5P{?F^)){|R4uiqH7OQ}hs#K*3w z-}4Wng<8rHCqb)C*R>L^UkvL~IXAc6j9d9jYLMYv=eOK(23|!hSG>GlzFPTGa-qAH z_?ZBQ3_b7C6R9&qPb*kPHXZgTTgLqHpsrZY1*Vxn#Z9_yDm(H7_+o`W-&CK_raWuO zmkWX0JATH_l9t%bez|_;c@t(HrduPpi%J=vDq1;||#%7-zUWOiR zDK7+@OPJp*X80{}AaB78dtcTaUv^3}ey&osLg7tPJXe;t#m4V=?AddSW#fFYOY_ff+PEVnKu_|q_tg8olm48xDVz28O_|}p z7}tce7v8bV3+~C`*!g?>=%~-P0 zZ0jQV9m4xmI4^2%Jm>T*F?98o32N^G#gubRO@%i0-n5Jjbl$RH)q*=w5vDJC^KP6A zWzEjov8S$hzUym)FD5^G4d>Y1eK)`Fdhyb}O<{f39nk@`J-@xvEbn*QRsN~}_>Qyt z_PX__^s}_Km(0%aJi4rO*$Tx7!Ij_FZM!(DYj&0VX^VKD_w~73{$J%(P(9{i$M@tD zr^58_K}NeBS<61#Y>3u)6ZO`P^-b7A%k4~Mvl+6359En^?2BdG&3wkn=hN4OYX?v0 zx15d_+Qkz%t?l!lzfFapXw`wickeHU4mbaZWXJyMq~^48qO ztZ!2KjFSru?)3G~3CP#CYRHU>vwoJ8J=14zMVy6)X1CSLi7$-RcBj>D)ZDda(}AlG zZcD^(5ADua$CYvJlsWry=9SZSy-Y}d9U`J}j$6chZr!B!v(Du_zjuEBk>A&?o%v#O z9g`DkW~lvqciT{qmyN9{I@aXm_rrUiU&{ZN|0^$Q>cZs_TI@QirgvjDb}TJB)s$qi zXmQ(GzPVfMoK4OwX40FS)ZHTXYN2^BPucF)qS}pdK8J5~cNNFEq_!q>UEd^7GUI2+ z<^nC}r4j;*TBX7bc%KAr``{5WQI9i!CiC_z)flCs)(WE!qWA6yXs^&IkZ#_*@$2o% zmIqmfLM+@v`)w}>tj)Q9_u>35#qn?vV(-&55=?u$xbAPLnm`RD^(@W0UW^yn7 zp8wLm^WB-VTD+?m8r`>Av%2kW%NF7Pp!Lcz*m}o}bTh8ip#mG3N|Mg>2is2Cc*iPX z_p5)KnolkAv)s=*rE9IPjL!ekyt?WME2pMy+u?S$cbZChe6wxplXrz;TV>PB`!~x= zwjV#Xd26e8`t@JkR|@uc>*eX*vXbFhzv`f>%+;;gN`V>=BQ~y4xfhYRUNgdEufwx{ zjrZO!zyILJnTa2~yth=H*=rbP{_taesJr*yxr^n_r4{o_d)YqBt2XAy5SnG0QS&0E zU%~XUJ?)Bh_i|O~aS;<@=?pH87=poywTf24^#??&p$Pvr_ zAi?`rw=?J51(`XV-zr`&Gf1AWsCI7Yiw6%LG%BtxeR1HygM*5%wVV@_WTZYz^ZeTw zP@$A?ASS6J4)1W zwH&MsS-89D+c6ccyUh&06}Bc`(Yeik@wwmSZ8w8lKh!abP2-r~&QRtSprG4z|2K!2 zPr%2-M!Sg9CT70k)4hY(D_$82=_VN#I$Ub3G!*rUP?#Fz*LHlO(_Hrc*ESWG>Ui{? zJmjw2^5HN?vg^kqK`g2dqvjck%zG;NRPo^ycC%c$UAoinY@2as+f>~@8x%NsmuN<= zG?{k0q2xH*55B@1jA^sW%A9%bI(XeY`f-t^+FpHrpY;9u&y`FSR_)VSn_BT>?MA~T zfi)%fe)TVE(T#Ym`RV)#ZhODX_Yqb9%HGXi`DrJYgHZI`xXUY^&(l^Fl^6eDuha40 zAmO+1qU;!^-#Q261Y;k+kbfpM{m?Fro}I_!S#KmS%9iD8tp z)?H5CtS3D-^KM!H?yE zhV)#vaL#j0Tc&;gc8mSJ%u{3MJ=K}N=GVXW+kbY+JS9d>&;2X`(%dUNR^~F>is~$I z@;e%SwBeM@olN7}cU!pJZz#=~vEoUHjV4>j1Cd)I`=`qWD86)$7Z!dNktOq)aWjkM zthy-+zRYXH1*Nygtq@=0v*Mx0svmXV2&w zg?|%FZ+fS?z^CxN+Obc2U;EGfwf&Gz>|gia`)lg><#%5Bq8#|VlB?j0>4A&WQ+{2D zY_R3spnuxtZ_tf!hOi!$Y3vE{>^ICAzKPWKdFs3@j-UK<`hLz0`HXK~8~xw(WoQ0{ z=YD~A-$*vpN++BTkf>(Yd~@30Q8zF6d2?99c1T)*d?xv0@v z8(&fWX}b;ghW89_DjmPCnf~TxF~e`cR>S2TBHx-C*p<%iFFtH*Z5}8t>F&E8CAbF#rj^+PmuVQbo{_AgJK>Lb-lBO2KP#xe{DZsR-V3S;@4>| zXG6O4gFJ5Wef6oD{Z{vJXzIO;Qx92Q*)KTswa(3-ZL{3csq($fA&_~Y}ZpZu__c;voH>;yN% z?~SWim0C~gPWaDq!#_k<;AL?U_mkxezh|yuRjT#NYy2aVus>j{!xDp?U}XZDK6#BE ziACHlT$7^}f@a)dnt14m*okh2YR{`oiq+q|Lm@KznQp8P)fIRNZRLO3tFFqhr@Y}Y{|?r*>Y+%TY~8#gNa=-`W}rN1b*~hc))#$r+Df{ z;WeLUdOog+bY(HQeq1rCe((JMzIox7R~4*CJ!Mp3a%t zN|{X&`_naAsc z!KSA7W{Lh0n!)jIb?KBN-Zs2j9i8Lr>kkO;Ue^Bp;m${))))WZbkkY3s_E0xscOMj z1U|mWd49hB{nLME&g*S>IHTS<924eewY|w4 zoX*p3#Z~{@;}LNuR&dqj+1+!uO>|~#YpzXMwqx(P&`BC!XJt9JmHz#!S^m41S%Opb z^|uB8XG`fCiHU^im`42iBY1ya-oHQkmUoTCZ}0^DH1l@v+26eGALHSuI&OoP9fcov znlq@$8vf%m(y}&Hp40xu>UHU=%M*WftH?3U<)6#bRwtTi~gnUPd4uHl)I8uw(%(I9X7V+ZySzAuW>#Txnt5@#kP#K zOEh14hL(zCa>tvVgrz>%}e!{}Jeo$DEz9VcqvFYv-@hJ#76%+P5o((4HBdt69&AbNKzrxKU%_eT4sY#AlXkZXG#6 z`vv^u1uFebYh#|L>9$R}dG!Np&h4j4OQhCjwbX9sI6miE*A@?{1fH|HK36s>tq3jJ z;=#80{#6U911na(-1JJXZMLgevg?9vOI9usQC3${aG!JgUSz84i$V$QyQ$27|K6MS z%EKba`-5?n@UQyf^(!}IRXV=BRO7tRFh;Iy9d{DT*)@@qe|~vh9+PnS&c+iJ!hKhx z3)U>Te5cdTY^|lIO4W9kMT`G(1*$u3mspj?6}52olgWuC;uj`6pX`jxY;^9TQYw{B|Vr)NRMM7j_}F^^C2^~9*KG8nY_`_}k27i8>uc;U+g=glU6C$!8LO|ACjmf$=E0LKYgAG33qTszAF&* zeiH1H&uy%ERd;2gsqp;;o}0ZMJJ0v~z$-NUftS$q4-4$q%GNsASF`HgJNDnv?_=7h z*7XyvA4oPe%a&99{>Ws~*#*_PZuhr7{qJ)A6xZoO$7AvdaWRs0H}o&=zZGu2FZyry z?~>aq{a#;SUU^c#Cu)0b`VA4S&Nx|%(^J3Rxwh3re|e44=fHPGbyKp^*7j9sJ&o*0 zoA&OS^ruOub=Vf$uCLvAJR%_aMENIIZ|TYYTehz*U|IAieu35{&6Sw~|CQS+O^q%) z9D2T2rZv&;lX%J3dY7xGPG2s&l;Sp>@m3fAV;#Y3AvHJF-t(x5P+ubY*hobts`!%6 zL7Z&({0qU1Y@-abvZ_#~n!=)ennQtYTMj8%ZAgud~d=Y@_>}7lP_G zk3=rd{kEy^kz3-I2g0)+>|As1k@`lL+vl_~5Cv znE36}O^cUJS=wV=a`?y*-k0^I^SLVcWcHo+0*%)32M)sy@5$!$%hT z1J!D~vL{BRaa`FEev_Fwo$Z3@^=ZX3+1|>|thTRn*qu_Sm7jTUQC;6|riZ&Goa4%N z$|{i$y1vi1!k69Ga&^Jv8yQ0V>sE;0aGpM4`5pByHqz(vUS0P->obRM!x7%ZR@HXxNAJ-;N5w+#o{?5K$04Pn!>^ITYFYj$xYCT0Qw{e?-hoeqYgR85UtH4di+O8Ep z*tfU;`Vv@P+ohzjNkd_i=G@!=zt4Sd{r%p|YGdEp_j{)wzy9;C^=aGZ*7tAni)x(g zx9zmrb8-1S1x|@G!4c6JEYEvB^p#(^_&)R9$?m!hyz~B@Ro7kk>e=4s=^`fLRY|4H z+j^8vif2e{mp;2p%{wx*E_GY_=K8-pb zd&1*=zUFzq)f0pDCqD05xiQ+J%=Y*_#y7DC@}Ax>oclZPv4ojG9sh=Urf->jb1&?C zZ>-=_^y7-CRF1sq8eyxM&l_(snMjxE%4BTvsx&OUP+0ElW5(f@xK)g&XxFSqfp*Nn zo|zY!*4iysE&plbv*VoR_Z{ch=bZ?b?{SrANuIy#mHC@1eCx|s3EiIkK{YPaZq+I+ zd6umib303Yl$%}zF0!=u{O4l!ODk_j-SyHja?fH=`p8spxzAvk~ zvn7n%@Aw5S`)nSe#&T^>DaQZh#s0O~rQw-{;jyJ(xKiGJdM9=M+s-pg)s3syue+Z$ zCF;-DWZop-yv3Hwm8`d0-Igi-buBL@?_0!~M-mU;HXZqUC_8B04d;I@g_rKkxIXWC z&bkj%%LL8dFV2w@W?6l>xV3-7&nG)9?oEwOJ*5{jGxenEuT8rvlUHlVipEu@J(0}( z{r?Nk|5f&#=l`?r`D*v!+TA(t`(7u^_iny>cq9Ldg!%r(_xEOQ_-#?v$X8Z>>YoK~ z1k;B0AcL>_s%9j+mu_$m`nHPYhU9^LC$4%Q;Mo36IL?OU#o|SYgV&TKJHaGlVY5}_ku0jMfDsT3)^nqP&!;79$C}LCGe}CIi-;G zPqU;^;ht>%dt2Gx-*SF;tGWEGV)@&~-QQ+poZl9*)wDD?Yx3bsxu@><{LT0tWO-+A zNX6+p*B>ZGZ#9e&*mb4JO48-FiWUezt7`+%nR97+_Twb z`WioVHHw9=(Fu9M!)L`U{b|;2Z!W33vAjon51eGTRR7;xRCI!2&Y#qCPu)w(&V@6a zJ|Ol>k@1}{WA&W-%ge3mbW@M7EPr+VYgzIMjvK;%K0hn5dq4Yu-bn@Pb4;Du%r0U3 z&lhYJ> zoo?UMw${1dFg4~Z+nY)6Ty!mcwmdQTP;^5j{in8`mlBWP!Fy6}%g-37W%LWJ&KG$n zqdL8JPEyx>mdkzJCSrEU|C9b6?skat_qt!&SbDAf-5vW)ChN80rbf>TmFMl_O?zS{ zGJTi!;jPEmz4u(*7gX)&dE(mBo3{e?mp%SY}?me+3ZNle$3jo4*#*g`{Q z%eCW=gReeedfs za#xDwC->p5arZ@C0%NS2H zc^s-!{a^Mib`#@i#y9mr249VT>mKhbl3Ka(exa0XvSf*(aKg@pzl?piHyKZt(r31| z^y)j)d}zt0r_Xqv#AK9(u-&#%*t2%V6;X-!tfd%mwJ&u)2twhgrnQ+%Gynj4z?PRe_2ajxt{3u&o- zS?!{k-HRTd-jv0a)$}xWt6SpXSG<=mONYsyxo`ZAKTpftf7{lcDdBmXWtPYPJT2JQ zmb>)q1(_11?N-{`b*xwGsK3c5%6qRMR`oYv!=6r+qGGJ zNyYie3RRZIxAy;N{Zz1ahYJr&*l(Sr#Nfc-D^i;~k4{>@yYP@+MDgr1mSVR|cGq6p zUz+VUbN!yEJ5uNU?if4gZJPO-dl&cHRMWdpgO5F(`M2d#$Tt@k$1mYuj#r&tS)6s* z{pidHN8fdwEB=V?+{-xs`2v3*8@)Q^i{I~Fw`V_MyUh8{c8iD4GaPLyuku7lCcH1= zF%|n-`@T@{0NW&!LltdT54rlV_rI*WNf_}CS6SCm>hfTX^Obr z)bDX~PI;@k>3&!7Ejm4|YI>NG_1D0%SCfs8hAVNeY1zJHs`8$#85}V_53Xq*D%|nv zsM_3%;jIehQ?w?;wK6^p^w@kybL%YYc}g?exKD21Kj+U~hv!f7nEqc@`8mO}>`>q3 z`)=)X{!6}|^{yrU^s8BJGXg(Y?R>*yyZNTMTzkKS`AK7ju7B6xsjpVw9`?3MX!R}k z=#YbWU&E;eGdOu8ueOWg(6o z!L-b6-}%{HtUN|yR}+|y2XKZZD}Cu$ncSsk_=ip5f6^@l&6Ro~ll)XXgI&MQnV@?~ z^XP2<{y^#bJd0OuDxHwm=2&T*k)mCqFq2t+`8l5Kow2P(O}pgcgFYF`yvpE-EP2r6 z|9jD_#~Kz*E^({O^9}^sbr;OjyXQYy`$^dID9-O)rKx{;<&N!|_K*L!pF8*3$~*Ukbjqv0ZR-s3C{h0x zT@|uo!aRAai7vk-6rW}tjyims>+Q-5F^6C74?D^%aI5p=M!jP^*^~CXPc~}qIen?b zGJi`jrBrh6u9+FN^XHY#d`4q$EJAsBw%6C8fzW9B~k@=qfMg4jw#k10# zRK>g>pIjpNp<9v z8&(Ij7*@07s2=B2ds$)HkXp#2%kj1L=B9tgbvmLByka;V8)44#buvOz6tID@Z4|@ zz9+m%&Do&tO6}sfZK}ufyqar$^mk8AR=<3wyjbeZEWUnc0dXX~m zQ|_tGSLIrHbNuwCm0MnoliojRw(;t$GnX3mRd?r4S$O(MZGh&I>6*sV%$K%kpVRbS zEx@v1dR4%=Yg=6ROia)5jk{Flw=(Kb_4|4IzV^0d^7!iA`GK6Qmf>y2ujcORIV|yYbJb4En#uR3wspS0 zcKYnY`QI(WDodVmDP4+FJeD@$!!@~CYZb4D2fS{5_EWd9fl+3bcLQgHxp-Y)mQqe) zDEkS$8c)gI(@{$}ZZ;h{&YI#Xzy<4doPxC#LiF?U$b9KFG4gg=J_Y9F!MEb7X@#NX8YBgu~3cO9kwfE zPqYZT>%xq)8DW*4eKV5dW`@V#ky!ms>-`(P>k_P8xi=$jhTRB#v-+OJwMcs-Bb~W2 z)As3oS$(Sa44eGVqxu_L)Ly*!rI+7$HSbW>qY0g=y`PuAdK`G3Z(rui;IKzJCKFfi z$j7k%^0mHj>ruCPNbNSJicqm!Z*78Sh0RHh z6xw(t!!d8G_%<`&*||3abFABIA{C>p((Y)+eyX$ixNnYfw)6^)IjZ(%AD>NJxKR00 z{yf=Ba;NfMtXmR4_eoox``Y?|sT_OG?mqBMV&5STKHup5=Z~&%DhgdVY5L^oyT)OP z+gJTR5xnN9)Yrc(JbG0OOUyi<#LB!VD-D!?s zE$)WPiRZC3u9FL1T4ky$-v8P(<44Gxh#L{Nt{6m!dcO`CE2qrCYEH+ zzQZpmwkEg8xp?uETg!?*@u;_~ed8kcSaEuuPd6@_pI9&-Z;Ku4Y{(~;iXjCjn_LY7`VlkDx)l6i~3(rUunGi^Rk^wb6)%^khgP49}&AAaie)MRao*B!3VzzF`(tC@T{ zN>9VM&hqh``B#?pAaZY$hWVF87xg#}~S48`X5&tBYn5$HB$Qmg-N^}Yv+ z&x2))L|1gGl`m|cK84vw?w;OtFU@t|;*R`!dge0Y%*y1?HG# zzcdd`npeDL&LsbxN2a%yPx4yvYSFXFI87)0c5ExTPNYcJf*Kq`RhRleC?zb|_vt%X(i!KssZFjJuy= z_Rd*rCO(;_qHuFhXUdHkuvxRHi zO_!hLzPU2-&DL*IHU(HL6P~KN^s>S0q|13prExul5qpEOLZ4VluCDP9=V(1OV_DCC zW9_N$KdoNxX8bkl;jRC38>1|&O-yF*T)15CN|M?3mRD8R?oSL)K6!TQl_yWHUiyD6 z%Qx73OK6Vm+VokUm>n-YFbBj95Sb6uWYy&#lIA>jzn(jGm@q6Ly3oZ(&~XLA5lnPbECCFm@gP(OaS# zFW!ZmG++8CM0t0~t-e*=-k%nR2CZ{naW++7=-oH*NxxgQf@fEz28L}^-kx;j;k+C3 zaz9Qno>3dU6H6XUafh4&eY)WI~StwJ-R0^T6MJTphso4=YkWVlKkfE{r(fDUsDgO%Z}Ld z>r3IncnLGT*o`LJYNk#!=ngIWzDr{>OWQ$HYo?wlT?ZR39*{V0knY#pTg+4ZEQ)b9 zOHNnv4CCed@@FMWG?p=MW7}YH+<X1c90`FQDu-pmcY zGKUKmO5N7E|NLq~bc)WZgK3s+51mZ6h5mc{X7?7xZL%9agZiwu4;u1VuGl!&NH*fc zLGBxQ2fj5JPfcR)oS@Nk?v>$T)+D~m!I|^7*ZP@7U3lNJU=O>L=Z3JGdGF#?4}`xA zTfF;4=AGjH%adEf`@g7_HY&gO412CUw=(0S#oLv8=dM2XrlNUnPE!6i9zCmqjqafV z^SXcU6J4KobanK{tfjvE`g(;MC$?ST`MhEMz2@~MkCOPr{U1K^+f&h`_iS>Tf?c!y zU(Xte^^di6rOsb|edG0i&kDbSYVo)`t>W74#p@ZPxjuf&zklpOG{4@R9Y2`#uGsRa zec1N4;&$1dTI(T<`ow@osSyj--|hv!*TDr1C)O7gLrm;N4Ev?;?m zd%bx{-2mUaLPdOKd%lL*Bvvq}q?~^qzW#6XkA+QhlmGSg zK7HodpL`@}r(}9#dWuNNV}lQ+uG{7~OwHbK_^s6&vEN5N2F~gVn8>`6!&1zDQDeg8MD>%zRJk;nY!{F$yCb~p0Q<&5{5nr}B+FFM-zN34E}-G066w;~fZ zZQXMH7LWJIc}cdl;X-xUiYYTp&T#Ed@46?JcXsU~IbEqn(*ye!{9Chh#y=yT+wPL_ z4!!F=+3Mzht6Dzg7q`xhYqw6AiJbLY?p~vK--p-cXaeuNi;utb$fX~Qk9wAPWQleZ z7sp=q>66cHob#gp^um2J{MgSOl)ctqy@s*YkoQGJV4JdO(z$C2akd@d{Ex13C0l*` zT$#6*9_@h}`18p?HAr z^ea$%RGiW6^vavhw;oT$Ql?M6@-X4&z#ZdZP|8eqSWr5=jm&hRaZ}bKB0_DgU?A z&3!+`aGUUOBz^Sg(yFtMqdzPX+p~gIFKDV;$VJObvsa`yo8Ox{`{emYhuZr7nuqk& z#yO`R4pwUFHV;t_t`g6Ep1GUjg4(Aj?e%w_uxhVwji@|(GVC7rG{vN+uBT45$7UI? zk1#m)_|mkkM}1rSYgvyJeR#6rg=XG@w0S4Pa^5Sa-8*{aOt#Fsl^>?Cb=?U)yEydh z!PhJ1KEE^Jg~>gaGke7Hp6Nz!Rnc6n&Lpy5T%#`D>lpvx1h23MjF!@WRBELOTT48O?<;F|9#@{WL&E9#ues|updFnYJ13(JqyxTRi zdXC%n)qAe4ydk^lzIydlTfxIkobi9Yzf`OFcz^lq4@Was&;D?AT`JkU zv1hlRy;7XlZ};8HbHD9u>^sQq7M;QTa^vT>#^07+N>#PpcBku4k$>UaYXu9^i_7nF zb>H6flIyoiu-n-a4;B=h5nJ_Y<*T*tcWgNO{?_Jlcj1X*?&eb~yM3O$QQCfV|Y7ZySse$kw=m&KIWZA zjahEQm$WkOeyi*UF8Xrh!h{gb9ZQ1s?=4dfI`-h?{5%^R(H;(ttYCJGmM#6l^!-(+>-vrM^~?E{VdlBPEJd;HHvdz z9eJl|sou9`qV4k&K`(YHeN?!#xr_DvTVCGV)>m0X;}0G9E4%$()oiovdp7Txc;RZK z=@rQpFWzvibo#zcFx$_v_wMwN@bYPFF}Ir*eUVuBX8S8;zs)x#SIXbrRH<{{>v&_- zXYMuA_SkfXx*wmx@adJ?yPY?#^xpZb>}+0izK`ec3ESIWeod_YR%udH-^N$#$gjF5 zxLy=PmT&x9I(YU>YvN`8#+Fe3T;kT(tT(=W3uEn>ZbUciJ!`0=5O)7N-|-9U zx6W%V^%ye&b#A!IX~6L@v5DQ z2x*qIY%AL<6|DrCR5+%2ZKKGBGa^1;&sa?>| z3mKE=x(O_B6TW!We`DSaZ=OAp!IFV>ryOduVyC}VyC*d}?t!}akB3ZV=2A~y?>GP2 zFVp^CwBP&SnWjlb51SVC@+AJWf$Y!lAN`Lq zz_AcP>m$BXS`>T_fB(>8)IaC<<#WaLJUYw`x6E(eiM-T!{-*Q%&FPJXxohqhs@*cp zW4OENqVrzOsT`jeeh0>!d6Z<`cIL3=Q7O;O>!#}&oYDC?@$#>WL5-b>G~D_(7qi{5Rs`d7xI)R#LRo|*9Fs_~XL6VJ19UwkuT*1Fy)2b<6M z26Y6BOy2OghU@;{M&)DWZHl1ehqWID?wO4ifTRfK9gf{1~NZ*%;QweDh(o$HS zHdU(PW4UHp?9@YtbxltSe~Vew$>n|3q~-L_q!`yw6||`D^f4j z%CmhE->`66&3w03vD9BRDw*rud}d6&e6rYs_f%hLaa+fyKOgn-{4&Zv@ZLytPk;1? zFO>iDACbBpimAnur+;IVcFD-kY?YrCyv_Rd(Rm3U zGb?0{A7zO>v$>`;uC3D5%Sbz2esA0%uMf5}YlEVbd;-;kvWjCxmx>isoJY{|J%B=)zdW6Co2nlpSW1FM&Z>|f3-t}ACCwp z<;UF8y`%Im?9Se8d$!&PnHc*(Bii^>d#c=x-McQwi*1y>aiTp{&U262U4@d~nt1`M z9F~PhD>~n}pe?d#v+@yD-wD4Prc7KfXlZpP`_Qz{j+W6grcOK&lJj`dih28e#e)n| z&tz++J;?A|>^Swy!)2c)pPCZ3^yzd-{q@JcY^yr(O7xM{r1o9Qek^_R>VRI6UFpGz zS5priIxEtvywa3)QjGia1M@`PltP#7cy=)=QLi|3YH!7^wC_Q&>*q||e$y!7`&EIf z$*~HL=DuW_cYZNb}_(S(>K3f7r=WXg}ESuXPeZ^)gkfMA9xp5XzFpt-4fAQJZrkcvK%+5 zFw=Rz|EYe9d{ph^`k`P;M&-w20WVf*K7X=2d874pi);7mUa}P@xc}as|F3*oiQU?X zIl|pB#=J}W4&7Un5E`4Fn7`0mV2cFnrn%xfk0yr4A9*JDS-FD!&AHn@&t2VY{qBLg z`F!^|B_;Jy$C$J{HwtgCKKbvo$_>Zl^?M$_+-R55!Ck&N*5CVK*y=J{#mluXE}dD@ zZCTO!Q$Kw6jPBWcw(w+Uu_qin^(g72lF|v^D|ULZ|E@1e3XA-(KI6dp9|c}NL)gw} z6$YxdKK0msczaIxm4^0<*3s)fp5vSS#A=WJh56?EQO@$Gi);II?k#va@6G4m0T-X% z`;lI-QC>WJ1MA#}m)YN|8@0~Z|55sf*oU~!XZr1bzJGmK^2vookE?oS+=+_Vu;t#{ z&q-ac_peq~j}ywDG>x-)yWIYl%IbbG<)2QieSPiCjg3`nf82R=<*B9S`+Wr!96aRaFrEPPo}<@9dXRV$Xks4gnX#8tqDcSLL9mP7lND?hn^>%zy256|s8UG`;d*8ThYp07LcvGGh;VwjfkJ(asZ zubt@ll95rIyrr@@;ems5_}4d$%8Y>$LdoGmo-qfHpPnL=nXP*5rgDy2fNA*oRgQs+ z`d6^k#Fe;CRkyB=m}fhpaB5C@3H)Xb^X@w6jxh+o%HJbN2%k~QQk$0eAP@mT$$kysuO! zx_aOf-^=q(>%Q#zv03`@N9p(}pN_;m{I^0mMrKpq8?I^mJ$=!x3;o~N#20+?UO!*x z?WNhBi|b`4)pWkGzq&Bj&gk`8 z*jlkAvqV=W>r3F~M0KV2B4_1yHSWHz(L1Y=LGTv;Er$NKz96v)XHA4A*m4>jD_d0*dF zu`cpg?4x<#<=WJ%eV(7(=PGx==z{%o#m1?2k^B>n&E4{GzeM=F4Rhy9UWibeJd3~h zSN|Qp{WHw*QnWtK(pro&$hmYuWXx<5mws36h3!#AgCK|JF`T~-J4(5_thytRi< zR`Wv+>Dh5QO-_8X)_vctjK8OwCw$y6z4piJl)|=O%FmT%CWOc;)Q3;7SJu|} z*tA^#Ox%LVLa#P&>8^$=OYSWXd3c_orikb251vo=0uT3oIe32Z_x+P~_Bs5Ur&NE; z(t=@e#SHh20@_`5r#0lB1%6t(=#BQ{yUSl#pLyK-x!{V{+W2E%E{O!O1hBo&;d6Gm zV>e4U=5_n$%bOqk)U4T(8Qy-qy3YH9vhBY{@3d;}Tlyc~*GJi!ZIO-<)1jR8>(?RdnUrogC%*L-nD*x^{Itm7a?z+_1q|YW32f zHMwCLuk8OyKJ0(5!pHTne44&=%*Hp@4?f5#-~MH3fw#B8jY~q`!e(@9YjvF!-Eh_K zMUH9M-Z+lWi;Fs4HVXWFBlOLvGvsJL({kaE-7()*ykFXFS#~M(P~D1Y<#U8t_+m|) zf(5>D%vJSPpB-j#vxb-bzPk2JpU7FRUrnpdYzl6v_tMpScl@aQ&8EE0m_x-oZ@e4HDC<@-dAp^Y?P$#gh4{(tEjLv7?dGqVdQ~U=zy<55 zOK03ut$EBh)CZK63bYjqv=tka@vc5KTl&J{D=hjOl@)g0)epTX_P}a!Ro@lg*L)Rw zf6s}%{Z9m_#4#vq3^?_`*J!jR%~x^N6^f56jG}YE3roKYL{Q6GgS2J49`m)zg8@YH_f)lb^Mw3WS`f=U#0D}AtkZe-Rr*DZhB$lnQtKb`q&Z8 zi=xx@MAr%J6E1D(I&5~`U}9iwt#WCITjh4n)W7gIYopI0X+7F*t@ySl_+lHNnAMY1FoMoE5#QTzr_I@kX zKX27L4HGZ#I(zB#=g&4rd*{l%PPm-gi}stS#2%X-7BqA zxB2M(urvM8mz|0Wg?baz7O&t;H(4rm@r902wHmYMh+^V^>^-8ysZtCO2s zTzIbMV%6-EQ7^yT>aN{a>vxF%AL9e|y!k?P6%%hQKeT?ncz4{Sw%gaQmQM5ClJj=W zjDkwFQ&!x2Y=ze?I@UBzuy~>Ih1)k&LcUoXK5A?BJ)>}ghKU8+v(@>_11|HY-*vni z`COUj@4BLEKj-ebdPucE<)wU8orSr9*Y#O7FD{<&n;~Bl*~2^INle$jbyuA8#rSQf zf4gwm@=@7?lV#sF_le#zS?sxxrPb=(!xV4NvXEChT3?@Y(%)8ZpCY@jpdjP_hOdv+ z{p)J}eygo6e{*AZ{_YQ7TRpy9H%_{Jy7T+myIbxCY%k6D{OsbfzJ|RU_sW)iFckf` zsO`Pt%b=Ah2_g=wN(%Zj#j@q5xlAnaI5j@ESsY+(8%>lOTp|XD|KvV?V0N; zsHFN_Vx80Ze@a*RUPd3(K5i?#{p%ioAlgVzvKUYV5`F*6g zb=#ke#^rl9tzB?^+hOPKglXG1~ z{MWl6gmWyf-fd_qar2)SdhfJZrGBvP3eB5)Lr%L|{kXdJ z%KE&i>QYh{_Gc>GKGzWZwA3a*bwxzhAHUE|Z`9@#as5~>rn@1^uWJ^BMxIP9 zT`tjWUSK{&y;s`HcIAgf=4(w0>u;DwCEDAIyxf&=D>*0f?F@@Ycg-gxipzD&$L;-9 z5cB8Dg$Z9g5}a$>OV{qsjt^dtcKzUCy}*u6+i>+b@qbD?d)Sw-w?w`(UfcXU#;vZ! z`9zYJhjD$z(+AeQ7uK1lz7f}5+-+GlE$pQAR=01@SX(b*L(ef)4fY!@^OTONd|Pm-N2bV8z3vO6>Dc@7PzG7+hcX3xm!P+{HUpozc zFSqafW_+krhNUA zvWDT4TZVGhGs^{&HpG1EUOsQ)*G-8x*1TCA^zPz{M`EfHt+x+ov^?MMr8_OZ;e6+X znB_57B8wh6ElsPUFP?p@@ZBQevxUg{MyH7>=N)Zt`o6L~JV~Tw<}FG8 z>&xVh@AJDqQTpr@ttkNs+&Z$%Hu{&EEYGXX< z+`>~zw;M05_l;P8VSUr(3yfj0En*DPPcP>fntVC2O}VyD&&^kP`4ZNcSf9@enHJpO z6zX|@{(9lVgGbkt9sf6Xmco=H{fmyTG(5^amC!g(j-A>exAUW@eOr6M z!|QX7=Vtf?<>wkd+?e*J`)<$t*DcX2ve&WZWj=HN;q-fU@#LyGi>*rE-73HL((c(^ z;mCUtakek{&bCDHwfu3anMvRDU^s}WjAh@{xLD= zZYR>!q zToPZqx9G{oXKuDF|G($em-F6*RdYPQ)d}?7aTIHRSr&5h!J5d~vi6%L@2!h8I}{vg z6d4%uIYqBLH1_xR{pEpmXSRf2UGuSIdrzq4H}+chJgxTT=ixny!ttW)k1v%yT8e#2q_*vfS>?Lb%7oW8{)Z4%J$D$eE|HS*pt5vkw`*K7o2~X-$6c=lVIumE5PO_SuI=S`qax=Z34tl-Hp5mU-vg|v2ZYM2S>&A3a?BK&z z-6pfvIpPba&zTpNc(wDXrFr4x)kQh6zx(SMDyN%Bs$MTZ&iZiumtZy{c&2}rW=)UvtO%%`0;?$z$yRL9?oPF34 zc`YDx^R2sk6`$;waA}WI?GcZBYq=Y@cm1=Q|NLI$`vXUf^B$);{nfj;`DUEB#@oEt z<$N=D$A$;II?rLdU%2=DKUG8fJv$fdPxxGLf7>Fv$(z$-+na6HUoxJ4i7`4Rsh?~1 z)=yP8PDXdsn7YQz_x0J_<~l>ka+1!n>K&fpYXvV`>3mS}dR~%LrQVep87F_?)a%0< z%Yye@6)c&f_R~94gf+v)Uo1Q*@aVo4S-maV_ZXzJwfyzpD2ji3(CXD5_urE12Wy(g z>3h3eIsg6qbNBJT2giy&?^xctt>?`HUFGmgoEI+`79A9R=)HcAl9=uP>qpM@z5EsM zbH-`YxJc7?pL(X3i*I#Rzr(kC_4+j{j^4k0$EmM-lQDbm**g=~vyIWJ%7Y1ySIKSkAJzozDvhtGXHBUkp!oRmIY$!b~B=4&Ba7Pr3e^)n3E zR4!p`ZLp{_cTYt2y3G>3t77NZ9h&<7mdQ1hk-F&Q@1gdx2?H0;d0D1p>1LjneqkMj*e@Oim14| zyqu|g>~4X}n^xr{c^SdDbu4mbeygV(_}lPvXXWDbUE4nY_6zu|=32>9F!?3RdbU(| zp%Sw%Wv9HB`+lx;{2+EQu8e(wW+vb1--~J#KV^9xWA=V>)##Yp7H`d|#aG;?I4s~fGi6B;iG z?OL#5hgYKRPvJ|?lsnHKd#vt1&*#cg-)X-mep&HxnLXeCgoqzM54|k9vvj+>T$zmA z3&sxL{c5{^e_MU0wpjCKLX^)*w%hu`i>CgP3$uv4AGS(sox#S!S8IO0GK#o(J?vCg zyth%I(OjL>LkwN)9u>@!TnaBrUgVw5sh_I#`}S%nk=d<%Hb)tCw);FgvU9TDGm%FP z?+>#6_kQ{E(d~I+N11je=%+7PI`hD@4Ey@KU$4iD_p9%lYu9<^^rz$7_-jjEq<%a- znS1#})qQ%;`!h2Semb7fX|mYWb|LFoIc~`|UgJlmT)t61G;J!xZZ&N0c%-dYnN8S| zyY=M`9%bM1q`u8+>W!;4A2njnZ1lYMlkHyEBCbv0uFuvzsJb5*^G87Z|B<6QdheEW zTdF=6y`$<|5h%P$)9aKs^9lY_&(F@tJSM-;=Csqiyp6n*Kdw5tXzJ4R%b%Ld4vWrM z{Z}T=J6`bF)s=UOy_zKVh@XGZm%(OriSv76PsU1j_6s^2Pk)@6UhvT>I^|FZV-@q< zd50!n{-MhDq)q#Vwxoe?m)MF6`L6t*G|$R;$yb@pbG{_`&gA9B%}<%<>av;E4PRRKHZdhy&mwl?aO_o<*wf8L&a z_`4%d#xnNYE!PvB)**8uk`Hj*iMkRrWz$@>l6;NMN$Xr$CWY#>`8hm%vP;?SKCA9Q z;fqfWeEgJmDAuGv=7ChloDJV9u1IS2-Lgq;*}q76vVhvRw}M%})7$hUXNl`x5w<9@ z?tl0${Aj^K@tx+ud4HE4omS{7ICb*b23fY8O0I2!8=4!|KCmeWILa*BR=3dQA>$i? z3G>*kQXjgnuH4(ho)dHOMd(MTrNQ>o9n#v=#Se?#+cL9f<+mp}T-6OxtCuX^eCKxD zIqrfV+aAAMyQHstzV!Sj`g8t%?A)AMUvMt6@u$4`L0 z=J|4)%S$fs2s~&|wvyQplqb7lnt=Gy6s3&5;83-uuuV@^7_8YA=V!HERR!8c2KTfrrckFc0 z(o?6MtdFLiY;B*PI_*x-@>}~iU0I@Occ!J=;a}>aKfyevg8WC9ez+8L`EeW1EXT(e zuF1M>kSe^$+F_8r#O%9{-_)u66N5jRzkJPK-QIfIFJ9x1!;Kl+m@c|%9GVv(#$sQ; z$Y$}=UFSO`Z?C=~T>RmLmsQM*0R-)qGQVCmbCM1&dvUy zvD(q=%7Lq-S>HJ z?sR^&aGiA=LT_8rTJG5^Ln;*|b?(t80V~USrfR2lA7pm&wzp^4)KI&g zNo=oFgvq=|vxAb26S8-9R;+#YCRbFC~7hfadFuLwX*F`K2k}@19^8;cd*GUFrJo z{s-sch$~*X(v!pGFLkG$ocklBt%y(R)OrK!TNyw0ltrHw`+RtZ#h!@EKQ|mpnwI;* z^=gU5hKFaAcl=P(+xGZTwASLNyu`rn{7y5A(^X$)JjvQ{{i3^>pLlWB`kRYQ!rS+K zvd~KlJ!;3t9G0_7EO}COrpMlEvs3!&Z*5%N+_7ZZxz)=1_Bl&ebKm;*v;2;{m0Yyg zq&UGakM|tK<`>Gs`#JQzk0xyo(NSrMpSHWZiB)!MA7fH?`4>Ke=$fz-@2rjgOnb7! z^5c(gVP}1x;$RzYkyHH4?(-S?=1uiY*4<{xyUo|^XnE#_x1VZLrQX;`uD+gN{UrA0 znuBFclGohIROP;3nf-oAs+fl1%4WOh@GQ5Cz6`Yr|4oh;0t-aTRitMK`p5pZj9IYG z;rhS-&KGAgZ+Fj_l&)s9yYJWnlaG_L)x!^XYwy@>fAaYK4!eK(kCH?!ek*Hz|DWTP zqvmv&$FD4qeOKGO!{JvtQ_p&~E1T`HI{h(Y|2#AMU;Z1F_0Dq3PmL>i!}*KTovp9^ z_HX@L5@$cZ%f4Tl|6*gL1fYv#;&!8y8j_TG5%B(p{Ta<2VyeZ5$<(oYGGnN%~h{wsD} zN>kVWe~(jkosx;x{M>-4yk^Tps*~qV_NxqbnR=+2VV_RGq98xF3EJ~_xO8QyPFlv$ z`$^PasN}KIBCiusKAN+-o_J~AIxbt?yzkpzzyIvjx83`4UZ_p^@_tYMsc8lapJ=_* zO?;=K`nUW#hkW#Aw_Ex)VOIn1#L8?mJ+9+etYXHa_v}F4!hP{ox@t3)^z0ViFL3O7 z?zDTh?`__d++1bly}miN+HTJDvZmfst)g?=<{QnO^epCbkF4sczLlS!xF3IUc$T-< z<-p&kUQPa+@=``oHd98idgC{{IYHI@Ee}d=cXr$T@Y9@bE!h)f5W7ix7KFs zfBXH-%F0fJ_e=byo$BYS>wf3mh;w`y`btsw8E4?TvOAkk@BOBipLza=)$;BCFG!iM z4XWO8URLj2?uVYK8m?K5wobu5Rmm;}s_z7hmdf+yoPK})zSQcMC6VD@o^JWJHanlO zNXGcx)RTr9S2UkU6nt9uQhc@76q7AGXV|T=?70yzfp1=K=1P%Cnye;XpVD+!>0O`P zRyO_c_Ktw-%i7AqRBqbnr3HJ4ExfsRPr=!)Zn>B;}bgOL$Uq9{adX?h_Mei3s zx1P9ccJ-%~CQGXeD#aDcw|!BYU~QlOe1`poeRs;|C0_{IxKa6r(HmXkb+M5bV#Aa4 z&&LUg?~}}YtJigFPP5C2vakIMs#mXyuc~(u5L*Ao;aC3wtLO_xFYjCnwS4=@FRH0^ zOOJ0xPD$TP?$}1VYT=2;%aZl&bjHncCG_^PK}%N2kovNeqoNlxz!Yp5GC)R6p-YjLXZ&stcUk&ECIT zvgGX#0mZjROVl4bdU|^EdwJbDyKUmnhYxoO&dyEAtEi|uvTffL>zChsE4;n;3fui( zvOVNSRw?_O1#1s$-CtTiJ>a_jURxy{?>`S%U;f!_GW&6#PukZQ?n^(E6?*wk^qp~> zT32eD@OhJRaQ1PzDRZY@mD>AeLeEOwmHkX*6W5#<&9-}=WFa|alGdv8H+k1@S`<0) zb>bq<$N#+!>RjDEP3zqpt93s(GXy%XCu7>yhKjZUU|`x}0q@%_il!(XJ>_0lE_=LH#AzY_31yYb|LN~tdqE525>m>doB z?iDLi*uORH>_X>D=gg(Eu5D|NKCbnq+Iix-&+2!#T*-Q}q5S@VQ>%N;*ILvr{_tbM zhNfvzr8#*oHmv<#@-}p8RP78K=cT*4>^@aBJHPO+d(oR-`9V->WorB8RSP}%?*Dty zz2f2}WvAlXljfU!RsDGB$=)41Cg{Cj+s_wY$sqoB$A*=6#Iyq)o;--wj{2eHbLGi$ z2eEk%^rkK`Sop!C$aUl9{^^ObF47m8yS03;3urG)R}&SRGA~{G(katxzW(aVmTCA_ z2F0cYo33S>)obysOl@k$->97Ei9ep6XK%UF*zw~2%Ppm|lp7tNd(2$r(QR&+#+he+ zz;1Wo(?|LfV*g~V5y{b7b9NC=Ap6xw&SN|;lydx%II@CM)t)|?u>9h=(^o>iMriNw z3Ou)Xmg+8^iM#&xw5f-P1+%@nZBx9hPuFO{MKRr~CvVeCes1C1+j57C+3e8t-}x`E z76e*x`6RAh>mPmo=&kv}PG08m7N(^SueEmX+{YIhV|}E0>GRg6BS)L=u82Qh`b&IG z+iC~CwJTnxPQ3e2XG@WAf_!jm7}t{vUBC8eE%>Yz${Q{kQdrxWdLXRG@RdXTWX{j= zQ`MYGH_3H8jS{?NyGinhgV)_@t-9s{g-sbIoGdnV3-`rx!8B@E@ZDTzeW3?%+ z@9N5RDGQgy^OZTQSD5O()-fjM@X^H@TldY3tNG})Q6@|Ctm~6WhRQO164}uqJ0pa+ zPn=UvVZK{r*vfq_%0O+;Zl_cK{}ephu_{T&|C{y3%O567NT{pJ$-ch2K50_k!WpWs zLq6Y)czC3&(yP{eYtEfZEprtXm+~$*U0T^b>zwG6bD|EeyWnd&7O1@aNCLzvq5`lNDRtfBug3#&xaNTi3>{Fv#(;nY1JAdU@ObsTJ>? znO}eU&3*0oD&}*yMAulHd81@DENZ3#2Lo2D`k9#58+dT_m+X~OW2FV7 zEW^~Sr%Fg`T$0T`p=5IBu#b7{cJ{E}S61GUbG5oNF^3;VaAsr9~7SO+}re z`YMEU&&z6^-h6LDkd_JeQm2Xai_<(Vnq0ch6FYTT+Kb3MW=_ffaaS+wT~zG)Xg)um zw{H4ssZ-NGM_$o+JeB#&Wv#Oh#6s=5_XS?nYwx&iD&^{Mu9S1tkxR=%e(J1#QX}^D zx$5)H8$MinduHCUgZENx@>&<_igoyE`7CtXbCC1eMn;=Fwd2TXVuToyQst$YoMZIU%T*P)iou>XG?a8&by!cCnd$YWA;&-;|e-*?g*X6$7?xOpc@BFM& z8&Z?rMtPj)h@0}m&#SI&md1SFljnDEZ`jTFJI1T7?bp8QAGP7d{!gDX?iSzh+oCP7 zz_hI1Ye{sk?F6=J168hd$K<>^n^tdZ4_@>j>&?U|8at$_L;k((Ik}(VhB)KzNpCvO z2H9@@&+z7SQPP(%-fyCoKWC~6+OgdTXRMYnb3ZxLTQT8?mea8oJ5?VC?xjlHEu61> zUbQ^eSd)=?KBFjSTW2-j%60d;9h;?k&Yx3r=f6}s_lj@Yvx$vUq%@vwf9!aJp^ANV zh@ay+;q%D?+x%YMz0|WPnDcbihgWfXc8RZlcXajCmF{n!Pf&3BzC5qnB{bsYrf0Ep z?e5#T|7KsDTib5t_Q|HY#`+ystl@?|-c`b%-1PSA%I$v|%qkFhE8v~&dC=iB5(iEM z)oq{ZK22^V@3fY#-%=fyd>403)~T!Ccj3zazm4*0^LFc)smQ*J2$t89FVB6uZdOL_ zY>oGNpWM{%`j%Z!h@7~2@AjRo-cf5?{z;{q@c6En`Tg}ANB++jSdxF`GkkNAI{EMH zlnX6YoB!;e0uobatkzOBS@>^H{?Zn;BA%Zv`>hVARP{{`{V4TRW|EG@)W|}mua@b? z-^?r{3lA988R^R`II&RwiH?!OLYc=}@5|Yi%)1~tNy%d0Nwr1W&4RC+S>N$}Qed8V zXcgzZ<4bM`yKiKCZ5GoKIyXZ4X@TpfiSyUl&$%en?|o_B-sOd}sLWe_-A-iK_iqZ+s8lbKmlb zy1De7LmbLmPISI4+T`fVrm*1=dwj>2Hxr)zRPXg$n*Unp-M@`5tPVw+^nF+nmV3MH zV?T%9Ja68Xl%~YWhCi{6|9al^?nr-l?n$3*ZEyH1o?!pzOtW6;*IIiv9q)BvKk`9)M?{Wa&|h_|?$E~U zk`42h9jrTM_@#T*#`&ke?=-!kpRy*n`R}CU7viDG`zIad%nAN0wc$R)H~T*`6_3rk zna}uJ_ISX>faLQ?=yd6KQQm{{PwoJzdrxtXxpoLaznmR3(sSx<&$Xp zA9DZg2G2YO;YQ264}7N_%;&6|ac|H0fG_<~Ydg>v04Ry~@3oPC!{x9O9HMY`GMKi4a#tbPAx&H44Z#xqZ4HCA3Y5^j9{^PH3Xg~Ia< ze{whc)jWIhV|v|v&bhq*7VTkd(o*}+ouGem_Niq*_e?){MBnDK{$st5ydB%GNxxgv z&TRa)(#_ts!stgOqp!}>1(htpA}=Hh8@37EZ&4Rof8+7u|7A}30-wy(rscIB)AFy5 zYCV^7^V|BSZ|7ocFI-t85>~A^=gCEX`L$_o|EyjL7JmDpe8}{5OXbVkZ;!XnO_qPz zSDU&%_uFIfwX3<`~xK5&$=w&I517R{CEOL)cg zww-8LTg`B1o9FH8r{<-x{qX18@UctMAkL8IzsFnAC?)%hI*(fyU)!z!wClD(%gu%v zi!!cmp1g%Et0($_vccv#0gV!@Grt6ebNqTNW}LC2KR|Q-)PpJ9doKx#bGj}({VPoG zyvB?VrE#L!GJiwvKS`ckdf2=sAwBnZ-T%vnmV9`4c{^9Qcjxz`yvHUvuGe^?zxk+E zcUG9&=9o}3|1_1&%Z|qDb=luHG1;Q|@%(?8N%tOvnJDrrioWS=(}AL^IG_Or@8aO^;&Ihu}O2aq{OW%(-LjFj=SGbV)j~e zc#Cwzs@W~Q8t0f|d)IOK7OhK^e^!5G`C89aF3V@NE!(_u$r9;{oy$_QlFI6=qJD8| zezvro`Twcd%t@2?omPrps0Be={==7tOxGc&AQZu=y?!)0TkUvZJ?zTVXzOscYr4w*eW z^n^!m-oc|clAijQzPhQO+ecjF()%$JuJr+ieAP!XIJ zbMcgs(FdWz$-m~BC3ds@P%}?ZJ7%2Ys9!RPd+wXPQ6@hnO*&p(oqTE5l0=b9O_SyZ zYNTA;TOD!lLGrzByITg|GOZ~7;z%&gY)_7 z0~W`B?(8YhG&*$tZ;S3pE4FPPbAvqDBc;A%wm2*3G12@Icw3gid6fZ&SoC5YBCF+diR-LFUa57TOZTC=7n2E-J7Q4 zfsd2=7e|Fu$sKj|@3Nc1`0E1WuBAKtj#z#SmEpGNkNuh+yzABBmq+A}tllwU{zaX7 zlNG-11!~LAMIM+elQrqJwbIF%dv%Vs+Q!SB%Q<-Z=OfKf&h*Gv(e20FhKpwXS33Ff)*Qj7@xKlJ-I9N- zeY>F0;q)y2$I3q$H$7_%>06T3+Pgy3>`#vCtw_Q3?KQ=L^Cf4CroCBs()`TV$4+X; z19WS)alcCyEwK1)RMKa2itDVAcFz+o<(*E-s$btarChPMsOro6(*64Aol6I2uFY%D zE=${R<-35P=)lxEVb!2*^CY&lNJ=pyB&7+d0qUU>NbsvA3`P+Hi>ABR8eTat-qAOd+o!+avcD(LojYOOn!J1+y}X?Dea9Z# zT2589v{apHX(_6D^QNk3)=~30jF+l4H`tZwKGvK1!D#BE-E)$UZz(IQXr1$B!N&84 zwI{#*yyS9{=yASRHF48&cFVUKRa!32fp=%sv?71Y-m+OcyOL6j zTUnQw3jchxa>>HhtZgxE?WKZ76CX)E59W@J$e+ZM5meOhr||yLODmS}IDe{HR3Rb0 zc~$2PyLl&%9Q(wvWnuc>NcD${cu9{o`0Q}hD7Y6>`nPOxnIv%?XtgiUv7?d{wAFb_xC@(cOvwV)yiWPlfQVr z+|TlG-tHc4BX*T+`GIlf}9PV`)%*_YY{ZzmjD zC9ksWlHuJ0mmHmJ;#V~tw=Q;&e0I*(+9a5%a;M12hPP8gIs zLAhp|oc4jo>UmyT0{_-56k98@Z^iMWI(ji|zUJpR#2BwXIMmu585(JjedXq%v!ctE z8_PFL{S=g#yKbsm_?~%ADeBKoFrQpD*){)*{@P5TBhin-W2dgLi@X=R*{sU)@rv0; zuM6>?=U6TrFUqwveEGZX7}E_)PG8+~^>Nny*L-opg>28a`3C&EWvf}|{Oe)ImoL*> zc5)wmI@5N_)+O`*KTKP^e!XvjPqg>zu+~qrPiO75oH(`g+&3@A8Bb>LO%^F)oAo$C zFyUy!)PgrH=W3VE+4Jo%1{YPGG`l&ulNY~S(Uey)r_#qU~e+ewpBJKk8-#BA`WpH(%b ztC=tTvYNm111JCMTQ4qK#~kf`wz2l#XIFD!wNU15GcUNVjhXRBxp4o7SyR-%O|ZWh zA+wd6_wUo4&qQM_O`m-_78-l{^lK?@)|ZSA=cc>WSu1dCmhL@myja0Y??>hJ5B`Td zm-k7U)l25oaf|aDFWvCTB!cz0-Gb)OWjohv@rIq<$X&8wmIz}QcZ6)hH4z`(A2~AC ztD3JCzmbsEmC9pSBWSRj%lq#hHIKX#jXMuo#w2VLp1CdTPlJ+Crv9HygMftXC&dD` zd6gL*R`+yxb^1t|uy!)Tx-SP(x0u&49LRj&&rt4sOlf-ORKGCkSC0-^uRGOs;@N$n zP0Fh>%Un#)_f6=w=+EM^O;yz7zO+w7ab>iVbLu@tfgc49#f%n?;-3>dLnrlyb+VPH zz6qEb@yF0^rSXmmHu*=*KTfR)`)1pG{ww3Zm{6v?@J|g-IDBufIQD-1nS`~LqJcj{ z`7)|rhfU0W<-hb7L)qf)2b#MQbl=VlKae`c8OFV@-g*ftWF5S`N;~FG zLuHVO-q+__Pio#0yY21Vo^I{;JEXoHmVMj68nl7$fE6Qm(Hn!UAA>gN^~L7r zFt3r`AdryQCu=Ns>5llr8*>VoHfSW+Hhe7tpV_*;KRJB!oDBu`3Cs;ggX)^4q@Ua< zl+DrLH9NDBU&23QgCOX*R_Uo5SFlMxzQKCTS1Kn4bnuN2gBjB;eoW2oaSeruNA#X5Zb?nImh;RpG1G=yW0wv75OB-9OKJp$|;tzyR8H| zdLunG$K~tq1+z;lW}gA=r_N>n?;`uNHtYnej*8iW>mT?|&sua=YYI#3t$9hUjr?6F zlV8;e^54IBWundUyr8laLEoeoiv;vEL(Wap_&dQ@VbSLgDkqz}KTUbETFl0?>V^{Y z9BK9w^G|$Dlk2wb;N(nJF`sdqyJ{lDN^VUD%I)TmczihsS z|B&^Kwpp9|+;Vr`8}Coy7rwm7J@ov&*}8~j68fR9*3jX zD;>7TI&7Ki5Wsqy6?E=T!J7>qH?ZC2K9<6rl9Aq=7vkMc>7$!wmRtjZh;%C`HFVTT)$|l&FzjKoX6zC&gmsCk2*T-uZZ`@slRvl zov?YV)NQ|U1Apx+Im@dz`d7N;+zV{)EIrTs-Ff??I*y{S-hy~fQT}bJ8&}WXw0idD z)n?q9z4}Qx8yhWdvVQc9;o0cAY)xx?W6!%wM!$@I)D#tbT;cXy&hv5pkNhc99`88e zcKq<+9Tz^DKRNJ6d&gR?(7#%LBKGZ=ocXFmJH$~v``(uwau2IoUMn`K=LP*@GxA;~ zTAqHXF1a<&ZrfQsb(6h~e+utAZGY(bjsMrbyEk;UNWXh!b~1S5oGF$!ZZ7mW`YPrK zpXo9yE}NZOUp+gt-*Wcmgx}$(tX5z968p5-_ScLb2{!xG3s+B=(DO*-=jqrR!39wQ z*L(uy4+d=tZk@iADf9UH-|Y30-jjZ^CpL9N>qri%^ghaW`g^76 z4Oh^?p5nzlTKOw)s3y$5-q@5jiPh!61=U+KOl77Vb#a;cS@HJM?@EXFckAd>8yNqb zVJ0G#vHW6ad#9+f!K39e3IFGB`_7QFde`^krR$YWYj50BZj%zZEhqBRgw*5Sn;ySC z(kZNMZOD1^^f{&Gi9$hAVGAxeNvft!@y*aw32?Kzp{=VcyM9W*H?5b+&LyAiUsu1I z^5)C;fA4MW{oZ|#^ZZ`3|9SPk&&35wSMnE#W;qyNNje*_`tFIc*MHs_-@H{2FekZ7 z?xoAM_4MLZ%F3p;g_xE5ac6t5G>eJiEVa5A&* z&HbP>VLuJ}il1n1ATZ2VMQBl9%`0IQ_RVaAo%0J#?Y( z)PgOse(S{#hOhFkz9N6-z^a(?(@f{sdfjf%l(#FBy0EP9v#J53=5`Hb7ms@{kGXg+ zUz3slYqr-V_g8m%rL&{?w(Oq0ea(zk)!NAcN0$CsxM!Nu!#e>P5y!Z^-hJQ_HSWI5 zEgU^L*0S|#@U2JPT3JP{%L}jU5`OPt+qA*whTy;UFUAW~ex2FQ&fdB2c;D7*5jN8$ zTW*|~^0l`AL;9+xyKUB#%zagw{Iu8l zS1ar)R!w^NyEN^#a-h>v{nxJLA~q504>jwuNUc6>d~haLoU7wJ;U1-}Y{$Ac%v;wc zXd-d+Rm&sktCK?l82-)-of`br%p%&v!f~T%(79Q+vy%UD>;7H(_g$>$?fPdc_f@ai zRDQi?e(FNYO}pv>1+J}ke6@>v_3H&YRBKxI)+T0^Kby1dz@IbkPOe+VSk716Ehdn8 z&vnU6nO!0l{gL|7XPq4;QqTtxS&Ga&y69OJ}~>YZg8~liYob z^;`EEiCYW9HuPWG*VHIq%egO8;I4`Hv8n^pPV*)jm{bt8o67zGD zU(BCzbh2Q#da!MD2V2}H{;19gTzjoqH)L=nT+Hwn)0}_eq*7eQj5iGj6D4jW8gTQ! z;JeUL7b&c>SZz{n#-!HYsx!9z{=mRpK66q1W~NW8d|pn|C)EaND@ccp|yAa8S^#2gjosMf2DtFr}`G4t=a+IQmlr@0>|8BTY;{G9jt z{ffhfzD93b6KlRLb?=mdXWGZZY|c*YT>L%uvv|q0YuBe+y?S+~&%^t9f76B{%LuEh zj~0D+o3il1k7Z>G=bS$rtmw46;lc^ctj71QoUySdlDT`Wt|!Vb=hfIYvzsH=zCZj& z$^GxO*OaPm?TPxs)cYZGvVVYzV$QFC2ziUdNwUnX&hup^^c~%}Mkcn2(I<-2Y3>~h zsUs6zxil8OP>5Z~CZ%G2@q^#y(YfLaW9|CipEyT>V>E0g_r%^!gtBa zDtGCY?c2ZGeX(C9ca;Am%jC;*nd}3^Z(sa(l;NNee@xPq{Spc{UN)XK;m!ZAXwsA_ zx8u+XkAB=h%wJLYdJa?1JBWJ0> ziq0ap3t&F`HL~sQu9r9DRJ$rTYsaO_UI*E3Hb!VC1UR$RT%6)`^f{Nr6%8+Y z$s@l_H2&%|AME&-a%ii-^-3PL*^1vDH)&fZEU;ZDaMRTFdJ+g8)o<|IOsWJn(&vn?w0~mHVy0h zRvP@{UwE^Mq20SDSv~p5=TjG+uT;`{(tP^F`=FA~w-3%+A2{P<=!I=hSZ7D;T`1(I;*djg8Q$MrE&lFs)l9ji@3Ry+mol6= zsd!_G{Kex-n=LdRwfIaFUUH}N$W6~BGG+xu$&wd#?s)t@W%3V>xh~v-{}?)caaM4g z{-Y6NyTq~Xv0LM-kb@sxqBaE2Of!97_{vNsnS(p=E>otc(5us|hJPjtI7RZm^gf@#D_%ZS6W@zfOK+=;3;Io#T^NX^k7}T_u;JLR~wIuP}eO zaM$3&fd`&83obgVa>l=G({?UNchg)X#H{Rjrw_yqob3J$|qv`OB*jJBdX3B>N=9H;sd^Ohm)KIN(VBsR=g4P8r z{VM~SQja>xrDk<%E9moVxyQWoHf#Cr6(*1W{o8v(WnqW3=(1*&zYanVMLkq**qbe8 zT-Ie0AMe;`!?*At^NaTqzmlhZ6II!y_Wf4K1|f}I%-5YVr}Ede_3xQ`UTopg=;!l3 z@XmNpcwx=XGHElHrwO}1X!aZv+$X18JY%z!wo+n|$8)~&GQR(bZr|f~@hVs{eV?u5 zRAewqQH6c6BsycMphur)6nmV{g04wTMJ%EXGUuCe_VYIvCj_uvD(myR8(L_8Kl`zT z%vHIqP1;ExnIbnz-r5;ut+2>Un{9rbzygE!#s%+mkL=`s@zKKW(n@(||NpENm3&J! z8!vj_|Mr^DrZiV6?zGhvyKnthpR_*mI#*0fv%!s(`uPvFV>hldlyxrIsS(?GX$l+D{UZZ_qzu6>v-BEYcQ{Ezm-(;pWx2EG5ZZ{O2P)lOye6>HjW zILfNZ*0ARr{pVu4eehN{tNvTbf`mB<3)iKIt!n0eE2&)lLuA?-uA9x>#V#rRoe5_$ z7)A9KtbHN;+Tl6dd-Vs`=FZ}{=dR>4gGKloCr@0@rO9_KW5JAql)P0F^wf{) zMokbrth#_zGO_LSzrPKJo8oso=@D>S(wJIXdwNZA6hrco%6Flj!G=dpT+t9v=AWVD z)MMa$Pavt~m{X6UTLzCR(-Drl2|S8!H@^E`+w$Rw;^M7wKWt-_f;$;oDt?)y2tK{IaOO*Vix!Msx5yzJ277oah>@)d!p(YOOKZmaOzW z`2=@k*Blo6XRH!CMAW|?X{tR^cQ(}^qgDQwCXb559){*3i9h<4T;~K698Z=6aJ*D_ zS#&#)?aq-^k!6~zBD-FC1y|gzuul5gz-RK|VCd6Ijj3NW*=MQAuU#2ra(jN;K@Oe_ z=Y4l_-mmq$njY5mz(?5H*1~Cn`r{};`8bPzB_)^hTbq7$g*Kj=_IBQ}+T5qT$)|Va zUXp*GdGoT|ZM83FZR={*ZON#sioDglf6dLE>ASZ-J#KuYeb=sg=X8AE`K;C~^EsX2 zz4DXkv(hfp&xghDUedo;mNh>>;mhpgN6A%5>a!Ql8Jl_`g8%dR{{4?udDD1Wjz<_7FV*XzTMul?R>+x-5Oi&8%v4Y)Xwz(_`JsI*5x_Z)-AR@oDq<+eu?er z`*Z(Id(QE;(y7|fIr!Yo?jE+*IbOHC=kRZFp46~`oui`qfrX|`!5q8mHS;W+LvBn_ z%8XB#=hMs;A$sQXh34K@C*=Hm8czyLn9Cz}Af@A_*7|_|R&yuak}#MXvn4p;v96Q* zlSx+Mk*=k8^jnN4UEp_I{Bx77;nb&b>@#l_ZCb$YQV<*wGX2WmDGzqd7s?G>d9U_K zucL5Z|Ax=U3wD%gE%G;g>stRzmCeCs@&To^$zL_kTuj{Y$tXs%y>U8EO3yn5my~7+ zKV{Z8&r3ce+)Sxoa&0PCNGE3wDtT} zaQi5i!W6L`6R-aKnQ(!zImu{&=xo_tk8be9nk!f{pEx+R!s^mHvB;0oa=~90ZDP)> zn7W8DQ!UTomIhz_ze63?>-T4_X=d9i(ylz8 z`TY3OZPU_rFH`g7nrVDXyJge6l}9smJ-^MVx&GwZj+LtGcpS6V@NvYqum7ukkNwtT zwb|=;zPjAicj(!fZJRbZq@^v`vq(2N%F8u(_2MN5?oF5z5)&C7;#6`h>}uTy_C?13 zPJB73_gQalU)9vt2~oB`)SZ4CFWf7Z+W(XLdT!O;f8l;H$^Bg=p9 zs~5PN_EbGwRN>`XgRLCrgJT0*>bcxcF1K{07FX1QM&^^}h0;t?H*Q)ZmS%I) z)_v>oh|S!7H3wJjcyLVo&YLN#!#jFizf9z82}&=W>g=-Rnuf_N-q%6ZGfEe7D(sbb zb&T&tN5vGrHG7nm8iIMEv^&yGOTGr3SZU!mZ&~4ahC11xX>EVrJa%-w{+3gMMZ|RP z)(1PcA9$a$u=}3`k6U5^(>u-yjI;8k6Rs}(m9&i|x)E9aBpPaMTw0rr{ik79t&ph1oq@^Y;S*TeVyl&U3l8={K z`Q9I6`}nV~FMPAt=hh9Hg1|4LKe%)Ihs($QO266<_*Z#XK= za%5dILo`bCUi(4wk_6R+aQBPydDo4D>w`LN+`d244B39Kam`!h9iH>W3ez2oquFZI zvhTcX)ZS=NA?5LY)3J^W?*5uo)(T6Xta{e)d5Vu5TN@i^$u^vOA93xu?``Rdv$kul zmTimMD9X52eI4hTy9*Yb?*1y0-M2GtCI4>Ag=bw_k0oE=t`||e!z%pGkjIX3(voJ~ zYDu;|yA1@_#c(y}Cl>fk37cw^;LBw2I+-E$fb6k;=KcPMYx8#Wmutmwh5t$@;NuCC zH2o~zw0c=s)DE_lhf0KMHnBH6-p?wj(RMJuVN3Y+XRKVlb7sgrp4NHnh6mF`D-ZS^ zKUTH<(NA9Nx468bKYffIR#@w~!*oKQH>A@>Y=Q=NZvZic) z)X9rYldJDltxm1~`YLVn?k!7BN5&aHC|I9c5T-Aa;iD(FN0ZCvzd_9QQ(&)Sos)x@V&7PT%v+-LfBk?|eF z?Vqv|t*(_HoMExKp^zZEa&o49P7e(#vE1Pt2!|mlu|F-Y9 zzRUe@`UN}XE$2;5p3bQ~n8DDqcuDQaj0fLpT{Gf^Z<){8=J37tzR|6)tNXslE}WZW zlJhHbK6kNQ%bDN{p`91}lA|t&RIcad`t!GB4{z5Tw}!$CpB%P4P;uH^5c%olK7BXw zP;HZ|9EVG!H$1j2H03r(WQ{q|oMPJ07pWXw`SQ&6H4hUFUsX>!yO1HDk2R-QqdRF| zsKc5!Ii-mkv@*U4w(K`^xNwFwd|r^lJ}LGiA%z>9>P}q_47Ou^d+|}qyAGB&2L#m0 z12*$s&i43k?ya*@G2|F$v1H4RzJ~(WPc10y$W{=UbZ*}K(5WB0**l(JF4-W@zQgX6 zmiIfK)tjfArEghUA-(J&!}UWSRG+Q(dn-IianDo>&zo~va-?*$H@e6@y3*_2Bj%sM zDN~%jy>Hrys)UVeQzsjiAIbUoX0qE(cC!@+%qqCb_F3QX1lJg=z}6g2tL{s`HOtyp^O}cG&Fo1)sPO-Vf|j3DSEQHkWX*`MWJ|Q%)Jg<6%g~ivn&ANNi=S8G$EB(>h;9 z`uT@){NA~bkI4VDe1HC6g7M6m3z&3grn@p7o8h|3G?ttDyNJOGo^@N?kK}GxuyjV# zo2w$byth0IOR<^3*!=atNf(KbLkVo426M2)9;W7I1B;~}{X|YJkzsoq<(g=Cb>=4D z%NON;mR7Aj_;_Y@>8r;RqLf)g?T*Aruv~d{*dtrx!UThPMar`lxm{NHWgNVG)x;`s z&y0YEi|N}1+{_M{m^2?Sa8Tioxw+cWZBewx>-xprCtO)QCOIkl7Vj3jZY6DgU9mUh zqLG=AgW%NE-YdT*&-{GZEBKx1@^=2NYah%XP5N*>X`bcoy)gxT=l#!hWzP(nGxfPo zPUq>()|Xjc78z>(nSXj?(yI<{6MlZqpbxE?d(UrMQT9?~QBqK6muIlD;>wJdffoSLLk!@Df)qe$llL*<~tP`%Yc36>(n_=ecgxBoq0AHusmGKKtR%Sxt#A2M;Jje`b<+`JA!Z@9+Xi zwpxP=so4cnmI|EFkW<}wd3U#FusS0~37%F9lXo8u z@^;g`pO#l=e*fn+M{v@#na0X0&eJ+BAMU@KyzSWW5~cZxr_)kIbVY@ho=<;s@9eZZ z&FEb_Jl5P45ik#azrOP*zqHL4i59QWQXT)Mdkasu$+5E8JF`s)pAfhp>c*}`-#l&I z)xLjDo;B;LHn(4*MnY@os;Q|xOr~|4ivLI*I<9z=bLUxx*rZ#g%cHz)X8vUIIip?h zG+E*f^OAWQGyUIv_|)?JvB5_D!w-@bYT3i97Cmz+HN3gt(UQjtmi_JJ%?MgFL!#~I zo*=Q=0dF*xb2fOg9*{aP{YmL!dtS%wQEP5ZP4ZlKR!l@9=<(VattDGcV(!?^d4GOq z_#ShSeby>>jBRwz_HIerchI^tJ?GGpx6v$$8n+Iw_ik@lb#5R3v-9DP+*iu9)v(ru zXq9tS9kIQl`J&}fRG-KX8NQASbI)*H+b(KmDaPN~d~mKo1;3JtdxVR-+t2B1>uTP) zPT$kCNo3jYlA~EoAN)kV|Jsu1eWRsYbbo93Z;rUPB0TR}4}La~Xq>(GSHQ*f5C6tr zn;NRh_%cS~4sWwyuE5JgUAhn%g{{wZVov{^+!q%qa^zZL@k`J@Qz$ zW7+!2^P^7s=H`nSOL3JoOPo!#`g7vt3wOWvRGYarHh0}NHf%ZGlj3$pe3?|_5tWJY zrvle4<4CEj4Xq4|eY(ZBG&g+9?b+LP=1;x6MnFF(pwXX=eMWrZt?v0Fqh#tq91v{l}U$@2incvu* z7xB8(Ce*$BK%TViq>evaJe;d%ouaGM>jOgw^c)*`s zY~N|aBMKcGS8ccY6IGq?L5WAM-BE%~-}N5r{zmP^zhWok=jbzLA2N6#_O!hqH6%aq zRW=LL5;41u!;v`!j1Rdg=fzrbhWl+e^wVku+o6|M=8KHQ<|`;U*d6Ab|B!95W2BbD zz8QBvF-TrGrqFfh((xXTPc^GMSwEz-Jb3wkX(VTQQO3bN|G14W=j{A<>~+4&|MI_w zwnlGX6TLn4wAGgSD&E|4FCTsS;NRbPc4wyTCd>P;g! zU%`E)Bj%u!leW^9M;eW}yQL<2KV3F$h2YL6J|}HeljTwqy}#C`YI%t430vh;ztGgA zjQ@eXmVm_qpEj}QtfiKd6!aV~t9qAZY*XAb=Vrpvz;J`xO%)c~#n?`ZN_$G)dD1jH zreJbRK$xG_G~r5a>s+W zZ;$?u@4qd&Bwa)DQ5kFOvW^|G2f2g~zrDl|5i;{ti+^Ua8}G+U&2J7QyjrJHT;BRd zT<3J1`jfkV3!d^x+-ZHi%rMhbZbKZa$&o-$Ih@{J{k#LRGAWt2aGVi>;4q*pnlW{{CiyIgeLj0Y}<1ff&ie;E>G6 zysO$1DBY%E?avaJ()E18b|-*8S6dYJw3L1(;QI^(@m+t?{W6#Gc+qcDW$trdV?rTkal-`B z+y@pq^V;5gF}bYpE4e}ZOpoLhMxQH(YwDSr!y829b`(jh^C)OFpVfazVZnR-?=y-n zoMRx%V&e6W@p#_md=2;SQx4lc zeKD`7sQ=C?ju|ULihrKm_GFoVd_&wn1wNsN?_=8*b3}LSJj%9Q(X0J%slU^dcMIO> zc(|Uuq^(f9T=DUPYezmEdmk^}aZ2I#LMh8bR*X+L9=@9XtTr+3>r*Syk``^Hk|V#C zdQUGY)2rOL_xI8Tj1?{uo&g^8Kbnd<q>a)g$?Y98@Sn&4GbP0lsMYATIuyZ7Q4=5!z_UpJ_;On7F%#MtCz+d=iuQIUB`O% z@!3rWJ9Sc3B^s{;jJHZ1@K6 z=Z#XHzt1vTl3QG-t_@IZU+WhbOsrlm^5UHM!5bx+DL9_2Wy^<{e&bsqnLy zWr9s9ADfD}zf$`g`Eq7?l7-EJXJY-x=_qc{&h7gW=%7kYPUx`ZeH^m8@|m3!OOKQZI0R&Jgu}< z;yxa4$;;d>HBq(Wx0Kh((!;gC6kLUb1F0+>#aSB5*^&a@Gw77P0O^_U?Q;?x`a04?f^l%XylWxVl3l zM|josQppZcmct@Ssfx3oYTWbYJsc&rX>ISMQx;dRwP`!~J*v>FYu)=nZ~u}x+ZMc{-(ppjR${Qy}6>F z_(8PPNaw`Q(@J)8SCqW-`kBZub<+ybjUna>c7yr&!GpN3ayC;l#5afmVLVRj&*;wgDCqV$zM93_^)l7#(IAa zYiGIH4~Mq6D?9VlpFAo|ZG9moy6QpZt80-Sr(P=@WKel1ZvKliuS()_nhAr}${#W< zSFY>W+;ECLX!K(bS4A_|7dBCmb<*;wWwZV`OTJjjP$g_rdSJR%c=@vI(p8BGZ0i@C zF0gQ$)9Gw{vB_xuLQ|3N)BnA@&eo%3^khO=vW35!am(iv6K6EW5)-E9D|=5&nSE!G zM{kRl=#1yT6_&dvK4?E!U2uNxt{XnhR%Xs;gtv9g@i_8_<-sK86o=&?%K>dDb)-lie*NgRp5B|()3-1#u{i)$~Whv*f$EmSjrm>e*$~= zjwD6ZJGl+-qj_&0a+0_q`cN|J&eJW9yD#qu6xws+{Sn@J+F2fcHYmREYrU%+}z zF~v)MPsu{I{hLKBC!0Qs+qE{N>cNy#3hQnq#Po+oUcC}0KJZ;8zNa^UZ)>~hik$p+F>Bg0AN9A;ZgRl_+Ysd9N(n8ha__pxqp7rwwzI4W^o0+@lmJ&Gq2?j!uU9NvuYWC(i3% zl={eR+}^e%{$JKy$A%5}mbm=6voyj{_fRpXtIwmmJiYc2Gwy)hS=$+Eg8x z=iTpucAX1Yq+a*PL-@~|V1ox4^X_!k2*#D^bp6@KP-MPr`fjHgld@(^N)kS-7b4@E zr25FL>)*FU_MaB__Gtvl8WaigrbT)hobLWtFm3MMeAQoTygu!-3-j>)>T_9=V-eq; z;zNGVo@sI2)>KRXe$IOJvQxWr;_}P>+Fnewws%-`^VZw|$vM%{ky+ovMN~?TPp|k} zdC+y@9loYpEBQR8FDid~c*mnUe(UlX-mhbKb(ma#Zu9R<;w;OkT;_teNe>>&rZ{}Q z;wM+IuI-J$x__5Ato-~+eKqoo_D%R-uCcY(it+z;y#@s1WVrQKB zmo2dN>ujY*rAFR&1=dflx__)BSH473=CA$l!@Glu+4H=JYzj8kVJ z{SKS7$5pUu|4EkQ!(Dfl$v^7yud|Y~OIPoIs^rn5B*#3tX#MC@~uDVQ%z;xOG?s&+da)#c_^ZrbHE|3-L0g>Dyr}d)MP-p6@wM zURwU_$cOAp{r2xB&lCUq_MJo8?Bqi4;=1oWj_n#HUB1#SpY&AnT}!kkE?KMesjXj9 zthPi}Ofhz+r~7Poo?lr@w7V_TqISOIJK!9g)H8Jz_vDR@^O9~j8u-Rfw{a3MzsUR| zh-rzd8pEOM(wviSCo-{2J@IH}m&F9nrhEKcCxc^G&;GMDTkAFdnN_n(?=4z((!*`K zypyra>uP!-!HvwE@| zeT<8$7A{(K%=LQ1zddP@Ukv|En{dWymAU?%*!cZ7FBfgNe1Cg-N|n~6`b(lB*1lEF zCnng5s4p&^q;BSId1(5fd@I|=Gk)oB*Q|N=#v$B3lBx7`>z#G?K1g5kZ(X%-{+Go+ z^<1QjCR$2%O0pTQ5)qd-eQLaW_7mUx$14+N@ukdsn4a)Kl&5djqn8Q1at~(L^D(O% z*M7cu+fQ}R;f<-c?4M6)?yZ#jsnAs4{X0h{bt7L{TKKDiqm=Rdnwwf=}YU32GL7@53vU=yP=iJmH4oB|7y$JsEOJ$ z?!|1=)!@49`o8Ai9mxqDMv4CnqwsWKHx<9ZztZ>tBW?9PG7KM ztx}V{DEGe*wIBS4-@j_U_NxCu7dxB&fd|nNYZ_iTshQFE$r!_sM1s|9{rF=_>z^fW4%Ie*dw00u1ldWh=)Y3_vZmD*E z`3fqgW^Heox=6wDh*`Y#+Np=Q4>)_Rbdgf~8eq45;X#EMTgUZIjiPH;7afe#J^tZl z;XQth3sTZ6_h^^LIyas_mcCcTx@K#@kBH#@+b7=~@)b=tS9-ZVYp2YTdeQ0sDqeaU z+KE&-d2q{D{Y*Xh@p$dl+MBH0(yjePdtaW->~&qo5XBVDl)~A!oj-q~dq z|6woweQ)OcgtwjE4$_4WUv^*2@^Fj(V6{nby}GpF)@Qw$rzPJyea@22Wv$l>cekE> zd5+aBFE?r9@K+hDJvz9gS#SI}t2%AE@Y>biGxldna=$%ov0hL5!T#wd-JBRR<0f<~ zSsa^rN@=xmll&&8-IouX^HttrBJIw(IyC?Hm4K7oDQh%e3wb>_?0sOz>Wt!jn_J$j)6)!%QrDR&JIU_G-q{hicArhx)OqWh5}2DX z?OWbwo^v|5+}Ds|bTV|@E(<*Mpze`b<4w=2+p)ph>#xn0qh)izDA2=H~7 z-pRW`SaPB4WGgOFo1ahSDil{tx$HChQ*w)Z_&V3@?B?A+9o(JI>*ZADXGN5oKfO@x z)b%BQ&$hhM`}=mK{nOp|rtcuDT>SNI52Zc_1zP0fpW;d@opPNwZF|a=^AcL3t$G_1 zdjswn3+yvkT3wkH{wmV;sBfHmO?pu2^QJbfXEv=Ix6K5$<*MY|K2q{9tk^1jw*1U} z{}=Tf-eCB4RqKrd;z_&bNV2|rc<;nJRuy~>0f7grSZCw z-L*-rJ<(jzY9}`P$Tj7OW@j(!+NJPi>r@|Gt%x1dHhzdrczEejqwe3o$;?ZaGAIB2 z8_nh=p7uNK_v`eZn>N>Oe)V^A?af1nk6zxyG*kB6teKIzl8yTu5BdMsTDWAl{-0aI zOCA05)|p2{Nqt%Lf7|qB)BSusXGYDM7dC7DoH_Ac6}!7Fk9pne+hkkNzB7Cyd!E`B z-7}eHT~Rry=VcH0%}INI=h!^!1x4H3Idj?X7aNz}FXx+NJn_haa%IcI>Ta=a-i}5oG|a6 zmILn&w*~EW68I1#DzhV0YJT;WdwVzKomJhJdhgGSX>-rse*b3In%gnkpFQ*SwXRp& zc2|V!uF4&WY|$!R!&+vGL))H(o5x+b5LF(zZA$JwuU)K>$1O9qZQroHd}iMC`|`8- zE!ZT*6ZsN8KNCE~^Dai>d|S9+NV2Kg?gXJdZV%bZ+)i;FUH7=9Gw^I%{5*|rTUlQp zt9y9`E8g}!`+9cv`&Yl>%6+bXn?3#Nx}6)(Z9O4;D{}jp$+~}@o(gzzs(h(P;jRkX zd9xp8pO>F`D{RMxn@M6;x?!G<~%*LaM{$e&+p{(Z()7gsUG(=XV1=UNlUD@ zTrQthUbN|h)VwRjhyBkB-xFHzwpoj#-z%QSZ~OZEenalN(`Ll{@4oc;QR$`jhuN)j z!cW|JYdFJtR&ST<>S>p@2}Ln2RNZ80pYY*MiqZ4P<=;PBx=V%5E6zDp8CsNU@;+|f zhSH5)(yZ*OB*jSv;DLST;Ux>wVeN_&9a5Pj=e;wB$iO>_3 z%Ks0Ps)U|!S*_H5V$X?`uIv&bjQ{vrVu}=*8+&DTiLUJn?y%sTr8DvZrhz zqpt3$;+KILl09Z=4yRSh(zrxD7kQn&VDsNKY}wN@>fP%Cv~x~9O5XNmxzTrKmJ602 zpT1{WyNj94Zf}+Dm1gyxSN(GqZCjRo=#_ZQ*7;`nIrmD^uiLF^$ewmTx(IW8S_x-BU|7L(dRLH(_dcM_NQ_|>-pcSKb)O^*x4!Lf#;WVnK@k_ zPn9j+I#*%+Td!8X-aXsCUM<0twp%RWUQdN^aO?h{ zXM1FX^xW3n@cZbtr;B~PMS5Xf^t(H5N9OQ(`|SF?E1t9dS8&C)4ap_DOKNVLE!teZ zx};1mQsJkIzIsrsKi~1$X;vCMP)eJ8e_gq@>3dYnIt^ zJ2K{+wUXlZ@Jw@8X2*248MorryO#Yb&8U}I{5#p_`L@~9udd&_^xW1X-D~=m&XalQ zYqS2+y;IR);pg|?3@`pXY1g^6#jDPGw^k&zavXXT{cXKYhHli&yo1uqj+U?fGHpko zm1?X}ad1`mty?o|UmICZe$5`Xy%$B z^E6yETxXZ{B(RrHI##XgXk+)(s*aQ2>sRz&a6dKCef=W0<)w#arQ3Xe;g%wlH_7+V z=K84fK2G^!spr1S{+(U@+w7~g%-`9+s?5Jzi=|yXx8nQRHD}MQoBMM0{J_~uw}^ih z-yY!mbmxcYi~p*AaNjgs^xs$ia9?0#)vn^KqE8{}4{z!*&lBDFH+6bey{4LpwQ*&S z&jq1xcNm*%PaZt8f_asy=Y^G8bK8DP{@rKvNJ4a@@cmB{ML$aPHXWFGIYK+Fy1+-4 zZ^4{X;yH%rV@^FhS!5|W;mns(#vPB#-t^tRDVQhc>M-Z=iWgm{xOVPySyXJZ!sd^p zU&i7hpUs9VBa$Y>WNckDIq8ea=B;yLq^%xEuho~ivwv0Y-S1te#ln6*4?A0`dW3uG z=h)9jmOD#7KX+F`NM3mQ{m+w`b9483|4vp1aiUZ1aIj+b#0-CWxmVkKC~4sNl4%8*U`DC40MxkryXxf0 zBdd=r){$oC+tYlbTP}`^DK3WBVsP;?awdPBhC66%jkuWIc_gdhR=w zsfVvb9nH`W-LN@y;_Ou^&nions`4>SZV6w{FJtb!e)^x=F-Ga9FI<>rx$uMdqsYYX zmsVM>Gx2_EbA8q7TIpA3pK`B@2;KYZx8Lyq*AJh+-xFTG=i|YZyg~CzLiXGj3clSi z`MY!Yo5;6WTl;^k{V``U&nb;93}q8p9jYd1-%Tk@QP`i?+!yBhZIjcJ>sN)IMzzI# z)ZC>r=M1Y}+P981aZinx^p=_bJhRQqGJ~f&rmg*IaImWM5nKP9f_p7j-f_J>m;R8W zNy+<7Pxg(2TAuE!TiQxm4Yz28#dWIRHLSUL>(jZftik-7r8 zPYmmhT$bDQtf}{&*z;9t+8bq~mgX={UmsHt)nWbBR`I*V%=fm>dUyT&CKR_s+4ZU7 z7TXp#u4?UU$@zRUUYDM~DrlFg5Wk^O({O%(>gtV5%TBGj5vTS!E9q6wJ8w}N)~L1j zx_Ph=?_Iklb%dlu*fox z#e;q0#vLtp-n8m}nxy~f7Q+RO10g)DO>-PtrY>I)v1L`xx3*IgvhVtDhzZf%ndJI) z*8Ay}Y_WIKcc<@uB-|Pwe9(jYzD|v9BGEjIo5Jga0& znqT&%i%}A}J)MguUGvH@(pjbIllvg)Px;rb!)JwD4drUoPR!KcpS4xgzCA@(@I=Kn zL53_{&9aYLB^x-eY>GKCk-@Rs>4pN=!MNbnLRw}|AMk}XT$*lNADYA7x8l4mm!(%) zUUIp}TD^UKt{OEiZ+JbmTV@|AVm|xt*X(?*`+NRe4}Q+c{MY@$p5>b>k7q5A+I#H& zmo5gY>cXW>SDC9{yG(WL&3m_S`IG|2D~x*8C%$iZ#m$_2eDMk!k2w>(7DURgX?*o$ zW!TdP%I8eWS$DgyO4}`@)}3)E{6B|(#nVOFVO8PrZ%WRTm44u?*HDph+V{ZdVs_`r zb>|Km+f}?gw|Q>v(e9dSp2y=V9DiJ%e14(i{S8&kU(6rzEc?7hCiK>l7rTnA0?+)o zu%|Ugb<1qKkoC=G+r-Y*@NT*JBXFt0&!;}WmLJ^X@AJ#l$^VfOoAgR1_g4a|D^@>R zwPnu6)_JckTHK2|uv_PYdqbVnwAtR>FXNuf44#-7mb<$&BlJP8_zacWi5Cq^rmeqa zTVGc0=lA@LYh3(y%ghQ?Da$Ksl&)ysoIFg%krQ5A`(^KX%+(K;s zw)+I{{QY~unb$cIISZM&6B8X8WnZ+aH+^ssn8$HQ*zt?Y1RF=g?dKiNJ5J2%`8e~L zaA19O&~=_)v&EkOzP5w?6W27ejmBq$gP7m&6gzMI@yz-?$HVFWrQ~LBTeC&iK4h;| zfW)em^5^o;X1tgc{kW_${dw9Ilk)IgC&RX0jX4>T)}3he=OsqdW{p5huOWeq;O-13xXo6gCws~kBwE;%_WIY%D$^%-AUxbiWJ z^e*x0wwO+j^@~)iMW3Z)zW8KX>al*>xwRS0e#flR^JZHnzxG*P{Op=!#*3I4kLO>$ zVG%NaaU43n+_sdh68z=9Z;K%VWJf1(@nQPkL>k}Q7 zc_k%n9!)5$nqJ9!@$hp&TN#C_9n&MVt$`n@mGM%3DC&oiUTi?5U)ZQVFiE^5A4_W!eYw3o$c%B5}!&=*=1 z!LRFeykec%C&nfIcU!LXbgp{o6!uB$!nKZw3DYAkeA?I|bDF0#YNs6gqUEo5d>2Rw z{?ckT>%03uov%|k8kQ>;35D0#itPIJYW3m!uIC=wDgQlHb9MLM^I!kp)aX8aY5VLO zJ)txIIetx>)4pt%kZp+htdlZFKi-^_%+YBUb76sJ>CG8o=G7VDuBxT+XAJx&9xOTa za6zx&QAg>?O6OuMuNYT}7FgT7UhN%nkyEw%ywJ^H)eABwAMMxM{pZtZC&ia5Pe?xa zKjF^%qqVnx=?QP%F0r)X@XM|@@6}vimDG{wnOK$Q-j1u2XMKS=w}kE9>EJB|U*vq3%K(Ok2$3V!oLa zs2wa@`*YQqh9}M}PHkT_ly>Dc{LFdcEX^Sp9=^3-T%kxK?0LoQMISzE82-rHRq*)# zX^on~```A-cb45#DPaWf_!iv2gtaw;U8rAsL|KDfi zba-Bn-NL!f>-3&f8|#+e@|>sO+doy0xA)!c?!_#o;?4oW7dK@D2wyA{z9r=JdBgK7 z2X`I~Y%2C%%<^2!xuEaDx79fumjohTUfCpFEwzH?de4> z)zciewC~;RoLJr~5H;bp2j9^-b6qoJdzO8heV%FmOwYq6PS*1;OcRb0e|}Nv?)OsT zTVYf8OgMJsl$=}e?RMqBH-|Tyep?uKuIKIH)WA1~r-B4Tza^?>Pui-qwbafupumrH z`{9#ei9CVb6;r%)j28JA&$LWQ?N2!D(vlLy6Ig7xZLu1+?IYWXF$a!aOfiTvI;onI zo)#GT;;^K0b&<($zX}OS1%H=q?^?bxANsKJ?4gsdIIhJ?zHZ$*>CqnNPtuQl)yxh> z9~WZw4qh<*#Gca0?V>L-s}e)s&SVpQ5UP^Jt#s|_&w`kf?~2_{DhIqi^UFcwOX%%q z(=Pt5`u6om$@@KD*X-KNZ@NRQ`uW?H_NOPS&nOgL^Wn?^^M~L6eVOHS_I&!ZndWnj z>1?iv)2(6@oBkk9NiVxo<7x3}AJ1s_L;iZ#9@lg$)4pJm!pLhQmdx5ZJ0mp`P0wu!k&t(d+xfmf@WaK5DP` zq<($)jCaSSmrh|Xw={)XEtEVTS-AYpTCde}p8b1qC)H!l!HXa6Sbd27F+2I;eQw)Y z{%?z47EewKeRJ($!Poy64s4mO%JNuroos36$B+n9zPY#Ap7UKe(|2lX@y37>9pPUr zA08GgOkDF)p-d!mVd9$134fZo_RqZ0VQA*sx%t-W;GYH48JBu=MqisSS?%nR^^=s>+ATYSBLFS zWuM#eD`59Kp4I$QwKrTUcDvecmr*2hRo^xC;=)!D*>_9bBmarFwkyc(@qFX)J z?b^2w_nhX_m#=W&WY_J|drfxN%_mNG6Iby_a+bDVm7C=qc3u9IV1V^`k;|Uzwz<0f zFg{sPcc7v3x`Nzn55qF`_fx|^{rK9>_3gyh_WqvDWl!BU za9nM#_!}n2_222n#Bk^ENDKU;0UO;?YOt~oK!dcelSePhAwgvC`Z zW(QB2Y)*LgwZrg`{-UYMc{UoYi4UZ89utoJik3(=*^{I zWAkO@N3CDonp^wY)AG@$Fd6YR7PadtWiLDKb(*xM(O^~NBRT&2YC+RN-ynp5qLAS20{mKD}6IUXH8(wnLNGemUu!@quA)m;Ex) zS|9C7p>!*yu;7fV)0y@jF)$V}o)_os8)pY$#(F7Dba`~A!E;u1eL-D>+89BsVp>$%md*Q}8}cYaOw>*Dl> zEA`#?rL0=C>C1{UnU7Be=`LR!HZ95T@~can#Z@kc6GCM*?W@1`aCz-KC8a;(YrvC) zYhAmY7am>uH+jkBa~J)s-#*K>e%r$wY0g(8TKBhQ%axn&&Yu0e&3dj)U+9EMK>^d| zIsWf1xfgOTWBdFUd)^DrEw|e&Q8u$$RO~Q6N3MQxe^1Qv_Zy!VES`Jq(vAt{4>jNZ zV{X~jAFVNS*ZbWbq5fHBQ@NE=x1WglWW%p8p~2EyRmiehf&`~e?%J|@a?FND++ktyQ6050bACIX+t+FJTT4M?QSaI(3kte8Ti3+a z+z@B3Q?M#X?QKF zSnd{!y}aDMRc|iw=DyyauOIy&GxmvOnX1}@Q&*mb|8jdh`SP~6=JBHSue=_6yKU+tMS;bf&-Wro%Q zrvE(9bw@-{_6X~&2&3s|W(vzm?b`ZjRqupJ*Hd15pWn?qeOaAe+R^s^-_L&Y&6`#A zzM41kF%!GOytU4+k8=t;y|l|BSF8WBR%WP8MWDAt=jOWqA;w12C6`{5SoviB zq9-QTls{j{Jz>ASFFNKAFM~2$X>7i@gwaZ!s8FpB?)&|w2$~;^@_sDeglUF-C)R<}6l$0MDiXLO%BRPNe4ZSkXdY(3%TF_Emy^A|bTU#zfKlRvk? zUh2y6yBFS-i#2H;SS=jBu8zyye9OXv3bwlr`kX6B*xxqyMm3|2fzsqv41#;S3R(GY zX`FO=b!GmNzmtD>?sSz7fU?f@odMnKRe27gIJ&Q^WJ^B zFRS$Hs_r?e#;0~q3+J1*oNND_$;vTJ9V(PZgH`&CaLnG7o&rT`XwKFfzD%m3D*4)xD$?bIf=?F zdyoDwvOQ(B$wcn_p@rXhw0>-4Y0P$-x?c56^k=Qsd!4QKJbhb)qPG+o)mgn;Y!JZ< zN<6L)-z+_(ZkVz`5BzN*0-;<{0tK&YI)&iiB(F%~n;1FWqE$ zwlsZn{wgN3X^Cdj0?n*)F0MLU#_;V+mc)*b_E`@PIvZFlwAkFePRU7>zOSTGs z)AB0Ty=l6{-obg{)Lf`%L z-vbsh;YL;sZjQFvu~lY5%1(UluFsyI(%AE9MWoBSG{e;|CrV}1rXNsT^X}``o!nwO z(sv69yI$Xree`MR>pw|exBe|$xI1?Gy7kVdHp)V|BM}l zJKpk$C#({BDqH<$>9J&v88d!VN5Oxe~XyU&x( zNv~69o%?!w&)R6vu{4V&Y%bjTUHIgmkmED9FD*%3TzW}-k@B4AYwymUTsaWrH@tKudUtwb#F=5=7^Ljd)$Sm9zU#YuO$36 z*(h+e$-?Q`oNuiTuh}|j*}168Md#Tw6FC^)hbF>L=~h?xd_ZEuEMd z_%ov4opIsKDp!q?(`&P*Rwm7IxYT%or}SSyk^YM)p?P1=&6#K39y;@ZG{@q6lQS&Z znYVm4Oj>pp3*)n#bH};n&7!te@gjHE2OWDUE9V;iaArzs$VSGcSC3yj{B&E$+`}R* zY0gWZn>0q)i7x(VeB`+xr<9z!`<*Mbu@-yQru$ZGG%)xuLCf3c?lO~Es%Di}+}nRC z>`CsPrm1IF?4POCt;pECVtdLNiFxK`8BS%=2a82A4p}I3afGXXIFtTHMDy>0PW|tk z%eu-9(*D}1#E7a!+U));wX(wV`lkYq8yoUAfBAkfFm%_9SAS;nUOuY#gk`VR^6ut& zA1@s(J7;)D>e@O#ned7SEpI%$-KN{zW0dO&pIEy5CyT=cUaepG%MU+b>{#^hlG=Ku zYXSBbTZ|H0BOkx(nH;jO!Qjcao^Ln3von({cPC$CI&ZP^>9Tpw4`=s%dpFI^d-?Cv z6IKVmdR<_3>-EOfkLT~)v(s&Ayq+;HM`}rCW8Uk}7xo2KM!H_ly`b4O&t-AlsU=3+ z!cNajcA0*urF3?9pl~F^^d~~q^Li5gw)08kG#}izLblW5=bgM=9Nr?ed*<40ZQ}b7 z{PxAlvQHtq`_4bkIQDVU`N!F3OkBV1H20rbo2R|-=JOM?zPw&*J9|mw68*v*yUOw$ z6IX1rJ0c~l9dp&WC^^ZJxvlkB_x_W-;$>?5!gufUNb4uWGn-bm^@`tK`0BuFZ?DtO zC%wF-)A7EF?XQ?t=+FNX7A@;8^?Z3?TI0V!9(LjfgmB@3+@86Q%uJXyG zwA%DnzI&#dWS*VQVc(85cb)u#@4J+|_2<2O<;on(lo`vyZr!_Ovh@)f0!Eq!U>^U>;XiRt-s7cVQj25oQuHu14ZyKn8Q6_z4wkG z&eg8{dwBJ6uJ!v>oTRJ^Z{FGY`)qjY|C`mfZ{)X?X1-bY&)h%O^O3N?^&PDn-iJ-T z^IPe1p7NI4qLx=h<^_jd%6RWB^}hC}<-)s(ld9u`D%b*k%A93T`^@uTZcEv8CFU82 zj2lipe-7#X6V}d zj$FTZ>!CoZ@ zr{2F#+p<=x@@K2(yIRkO8%>`U@14V6Eb{)lw`d!quSzSOCo0Lz5BmC;nmN$W(&^=I*)V| z%e+>7nfKw$%HOTG++S}qJsw@1yrxgCI{x!f_I>6Bo3?*fxis$yhu25rFMdByltckAx;?bbD4-p0MWdU^T7y@KiTN`Go4K416dxA$?_)p@B; z;8vhhv`36!(H^z=>&>6+)Vg#wTtNQXcpix}87B!E zR|y(ho&UUgMxp1AYZEd=?Qj3Qy>F7tUK#tRWSlH9E{y8duM#z+8603?T{g2*dBCnn^EhY z;AHa-ZkbDpGiUnQ`5Zia`M}|-#bzqa#@|im9GbY->5FFTl*zLXhRkR^yeIm=Dlxn8 zB&Vr27aY^I(mq?{pg-5RB@ac^onN5s$4@$Ony^!B(#hp{YcF2NhO3aiuIzbuC$q#={wh)-) z*5dpqT{{20M%G-fDaBEh$5!9|{cBshyuhDJ#q;khn(@`-noIGdZPT7@jMPugmdFoV zIqT;6&5m=sF0-9*XVtR1Q5iH<_od0Pi81j4$V2^po5EIp&1LBfrJ@VI0Rf z*>VC-{jIl=-7Wt6Xsc6J+5116vuy5749GA0d-sH!<*k=57MXdur9Rtz#I16N`bFE? zy5`%lw*n$3+z@`hB5%g6jVh1qc6Pp8xpt0gUT{Fc37=I-6NT^gUFR*nbNHEjg!qxG zN7t-)CAp11^rPvOgvY*_7EN8sb_e3pj=QAiE}ys9|55(prA?6!WHxIr7Tk8s@Kc1I z%{1qJ`_pPe{;&Yb5S&i{QqPZqB*+jw7q@rSNpgW+wJUUDLZXC>r=H2&RCa>mUbB)o2BNc`!`Fhd6EIv+pa&TVX8}+9G z$DCA4l=YIr@s$aNwlzGj9~!P| zpSy=av}^uV)|Xe9lN+v1D{=9epOls;HvhxFIXjj}-2c9N+k5#tPiLxl*$c#pBt6PK z#J_Hq@$*$5gg57NR&0NF>*elm$G0t-QgGFyG$_VDrzYDw|7_pf+geMKK8Ie~+U(!a zx$*9`iq}i*9!ktwtx{$epk`UPQ*QB{9XH}Kk_$gcF`IAc*}3qOVTHi4ww`JJZk;>ywiFho|;DJ7nQKT~%$d&eG*6A177r6z34@zUuV+Z?$~a)Jw;i z^}Vj|wO82N(PG!hy#Ie6$KUs!5f4N+DNOot)7k4*;i9>dZ`^dYND0XO#4UF7#(|Xw zvkp0%-e0khp*7))LqnEyg80KDadT(of0g^$F-eKv@Mpw=j|$oCokC?CTIX0kxY{&I zSxX-=jY8;|5JRTnT5yv&-i*ilzHLa(4RVY9p2##NtL79Mt2 zm9pELQQ|g*<4vN-p^H~eG3tKTXL;T{*~_7E%7MglIR+>0EpB<5yh7~TBtgCEHEi-b z_-upSYackSF+A2`9K$~Uk^20mZr;}?H%H7iaTDI|(3^JtyGJU5|o)k!-FE}s5;>e;z>`b&b;>%{hX|JXi7sceCLV1>4PzLgK0S8dDnc7D&ciw)n{EVU-BWnA{6CgYi^*2{pLIY)agR?S_)UMTOo=8$Jl zx6Rob4+Cwde_`7z_Qg1}eRF13YOrF*?&ryh^6P^;L#uXP@7i6X#yj;~){eE;SVY&^ zIjx!7a6vVA;o(_pr)BR7dE#z;LD%Eiqh$)Z*Z(!Yo^d8t%_h6kf00r7*0may5;+~& zc>>G5H4l|ul6rV*W$d>I@9RruYzd0qUi

>-kQ74AgZ0ejFujFSLpB3A)#rNjv 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

-7(&`knvx@xQTc^{&1Hdl#=< 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

`%Zt(*MsT=U0tt;ZWU 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 {D`5z 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 c0}lfqR1U%yV~}8A%t_GcYg!0AlFkB>(^b diff --git a/static/docs-rs/bdk/nightly/latest/NanumBarunGothic.ttf.woff2 b/static/docs-rs/bdk/nightly/latest/NanumBarunGothic.ttf.woff2 deleted file mode 100644 index 1866ad4bcea609c1008f722bb47b8207534e9c7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399468 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 z%0D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

0bKPVRdWOH@rq&fFb{-5%{$JvcBK_KkW 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%0DFddo!j?Fr6q>A`r>< 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 diff --git a/static/docs-rs/bdk/nightly/latest/SourceCodePro-It.ttf.woff b/static/docs-rs/bdk/nightly/latest/SourceCodePro-It.ttf.woff deleted file mode 100644 index 8d68f2febddb04dd6e768a4939d63eb7a1f4a139..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58444 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 diff --git a/static/docs-rs/bdk/nightly/latest/SourceCodePro-It.ttf.woff2 b/static/docs-rs/bdk/nightly/latest/SourceCodePro-It.ttf.woff2 deleted file mode 100644 index 462c34efcd9d6b70b42359ca1a1d9476efe43eeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44896 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

Ft|q|Npdl`S=v8-z47)#r}z2HojaZ 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�a#*^;HuA9amThQz2(CEmZ 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 TB%f)pzl=#-!7A{Uhk*eA76{#B diff --git a/static/docs-rs/bdk/nightly/latest/SourceCodePro-LICENSE.txt b/static/docs-rs/bdk/nightly/latest/SourceCodePro-LICENSE.txt deleted file mode 100644 index 07542572e3..0000000000 --- a/static/docs-rs/bdk/nightly/latest/SourceCodePro-LICENSE.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. - -This Font Software is licensed under the SIL Open Font License, Version 1.1. - -This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/static/docs-rs/bdk/nightly/latest/SourceCodePro-Regular.ttf.woff b/static/docs-rs/bdk/nightly/latest/SourceCodePro-Regular.ttf.woff deleted file mode 100644 index 7be076e1fca99ac23aba68ccfb6e4b94b776b772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68152 zcmXT-cXMN4WME)mc+tEIfa3N@el(8)2ojiU+%dF_y;pEeAQrJ;MmE)AQH2bL-eM5 zaHtal!`~+i3_P9;46BOeeu%%EY-#%zL#-JipCX24?0Lpdh^?%ljQn%M^S6xBq9wEXkt6z`(%FzyuOy zV5neBPDn{e*!S_hEi-fQk^0~Nznz)nAQ*ChgJHTO>pqx#aKfL13yw}Wb%5=OB6AvB z8iS@ePf=$e&c8I| z>F4)OoLF&6XTH=V#`s&Fi)RU*QJa-COLJ+j<&z*c3B8rgJWU~-&kB+xmb?p+(mbd( zS+8j7b-~lDPbM$8WA}S8{KbXP4e0KHk<}4nWlbt;;j(M!KzG$mq zHb+s`uUP)Ymp0EchDW^Gy?3^4%4_-C&cbDHwdceOH$lhx#Xszw_6xGHl`6l@m+@5Z z3@MVFc_ru;f2Hl5$2{t@)F1FCZ7`g0^1zd-$2HGtoEJ;z%=L(sf5Ca!VV^joiiFhO zLc1gHnlo1F_Z?{F?w_FMeZ){3s;1BtQ-x--7-m7?ee7h(Hl~4>pG^hE!!*q%0OwIyXuvnH(la0^$zwZ^d=q3SmtZI zcVS9)SWh=olf;piM+6p0oLJeGmdVjw$CFXCwVAV9gB7V;q;i739 z9ik4V8H$>7N1n6Zb9VcyyXiaTNVocBoU1TW-r%v!W5)-@=}BieJ(W8WpS2u4RjTEu zFwN|oYRhIxMZQbFN{lkZmR8MTJ6#yKB$RcImqc^O_KR1a&P!Nlhp(+9X@<&Gx-WR()1*Q{eMxHGK-pecm`*#%? zyx;nnnX^c5VROMQiLSNpa-S?(efq0$c#p`+D;G4(@BiUWowQVR8;5vT$fdjwiXAdh zq5bIwg(8#IzTd1_k0PObQjy|OuJih(&{R~N@ET=lL~_l$V> z2jTUbCaVaoSTZ5w=);!FPJ+*cj?9c%v(f3Rn4Z#<2tk)=H3ubIW>)lFF@O4MwTRwJ z%gMcuokWf4Q*mRHUv&t= z_{_7f7zf(!o^WO7l+raJ@5Q5bc7AXDH-F1N#dit&GLQz^r_?ic@E6ZGqPe5o!wBExO_w-A$C zN9z`?G%d7#efC^^M)R|xvwL?(p5zkSAo+HYAVWc1LEHwuN1=Z{7=L8(+aR*G`OKTp ztGu;md5``7@5IPDtt_By@+03nD&b!yes{TgznUSSY{G=&tM|uW?_jhG>-fCy^QO-V zKV(|d7#QMq&U0VXv3zck)4`vPzn;Y>-#_!5p@Okxg7E?g1_9^d=~uSp-bO;v-v8Hs zn>X<#BL`DMgF2gn!W&l!1_e`&-^J=q|8}x(eb3RkC-e_yRLD_nv@$L=U>V=!yGCSIet>zzc@ zKq^r{?4f|1pn%{+0m(oC(Tf7Ih62JHD>~FGA{Os-KQAarz3q_A73qPVm3->zvc-PE`3gxIa5=u?+xEn2ne$mW>i#b(X@KN|YKI?0=| zrEYMZZ0enK&6Sg?#k(^PTQpxbi7O8EeQeV2y<BR7YfTg+!jxo-6zsDW*;OrC|8@IB zvvX=UnWFRA-)^(rl>Y71zKDk7pK{_(WLF#Kzsudb`unGSb~n_2iOhfaxn`mMx72<2 z%zyITfBXAS!~AdDb=T#MO_UAof{jd#4U9i;;CQ`}arXxG-$g3!#Wvyvtk*v?od3kM z{)1Hh2eJ1b8V_mCeYJApu8d3ib=_OMW^eJ`T@oN(;@n>+SijuAkn5tKE~XNUT|&ixXM$w~{HnqL|UryZO#gP%K@^G$>82Kl}N8!aTo zA0)-JX&0ETJKDR0wfvEsq~EcLoGMSDV(EUNrm9vIQ&irDiT$HdXxi z>KCTp<}LM|5q3YmqW-e}x9|7&*FWhBDe+s~5ZZmFI`T8~8ns)W-^Pm{|YG%b(l!C{MMWdj7fg&!~M< z-#_{N)3R=+{S*J6(f=l{>6#d7xoMSDj;P!sry2(jHc3VOkd{{$M53JICA`BvAC)U~ zyCax?WIn^{8yzWA`HUxp@}2PwJG#NP?3mpR`Qt1Rx`&pgZ0%ZO_8{$!T#Bguja4?0 zz3Qt!ryONklQc0@iS=OE*U-ldtC!rm^!cmT-oW>2tA$fa=dMYb6nZXUwc4`O30H$R z1$}>hKmPw|zAZ(cBCgdtonj1Ir_iwI``(+k+;()mI+nZU*s8}@w!L-Rdbe%s{@mM9 zXWrCp=1H&0-mY$0?x%LH*>ho`!mcZ8*cG`y3P0NZQub_YC;%6Mc7g+KnmCfKy z+gr+TdxZaa73=q?ZOPkQ0y zFIDb#{l9R-LzOr9YQ?ILDUS>Ph+1;m3&gEl*RbNNLxyL@#;Bv0nHPP#Xq&aXYTcp; z{j1!0ORAR0ecH49-HOi*XC|!7nttnO)$!YkMjG!otUu9x$5Nqa=^cgZCn9z7H`rAO zaO8aJKdxT$K9l>xgxB3)mu^`9YuyjCpVu~tnIAD(lXWBF`!=PGO6PW8-ko;fh27$W z$nT8Wlf^D)on}{B_vwE1ztP)$UT)KIh68dN%NeTq``+k==g2dzd;B8&{MXZ!`G2a`|9u(H@Md-V$MEO> z-dOp)IkE5m*L{WW`oFE7&3I=~%X|sH!=3f6g8$6R{~VV1|Fre~y?pD_In#@?L)R)k ze=@0V>hf7$VXs6YmCt{jeeTM~Pm%jp^q-r0dXwkhCzF>=480X-otZwfJLW{M&573n zF0LWY&L&RDCPx><|C4TEjd)e@fosi`#2ek&eZuz-sk0R8wR(A*@4DRmamI|yndcVv z7U{gdaEx_ZYI<2>cv*6}?753E$DZmvdyp9SB=E^{cCHJ;t`dS*XR?^i5ZO9I#&jmn z)|pISXR@80!FhJ3r0xt+-I=VuGZl45qi$LuhV+0mG7hn%(@uGyBT-ttK(Y$N-%0)w#4 z%exZ_8XgzScw9I^xL{6jVbkS;S;mEvE*DPZE@=E*IMuswvUcI@)rIZZ1=F(&`(J-( zkp3`_{liT653Kf;Ty-|g@$;V9s9m}BqBmEj>-n9&Lp==>*EDT?)A~E6zx_^!`<<5K zcY4(CG@bHkkke@@ebamHOn+rguhSPd)nmu)`VLB-JEW@jr1ai%-g{4U?>&>f_te(z ziL%`@;kpOubq~Yqj5&Way#FzA{*TzrnRdEsT)%$QU-#*{{;%NpY{|0=e{SuVcGZD* zWJ=hqy0it631YKc(>6w?rp?w&TQxIn*=)(QWiwN!&3Kx& z(m8Qqke|ZS)*#285Rr*qi-IE8gb13i)Or`>YqMlmg%|I~NwXg5ZdGZzGOZ)XUCA@H zQzvlAyerdJTyj|C>D;N;tI}pNZN?>+B+uYZ-LoovCewFZa=M(!c6P;0)8)@DGDQi5 z&g3YaAyhh(>+1}uxik1}BSrp32-QY1{f(4jj$jjxU>A-Q55CE9`G&;hn=G4e$ZWpJ zRD46I`-WWiO-Antf(6!+c)As8yagjPW-!}^Y6x) z%o|#nH%@KdF!%6==EEB&D{tsl-Z*>lhbhq?dv1Sdvi>m1`eWDb53_cEY^(k-vHe5u z@sD%WKQybK)!TgejhXvd&dv8_Oxn*f7N3wYJbtEd^Yu5z)hW%!`Z-gyi%ysto)C(B z=ELv(v?*rF*}RKen-5=Yf7%fxty4! z?A2qz>9ga*hhyqyJbykN-hS;?#%fuyHC|dvxlCVqX*)MB+jQ#UV%O+O(H9p&166%aG{sI)k-0X=$@A9~m8CB(Px`Xp{Da7EHNWPl zXutR@^y;Fx%1ej%DJdGYo|C?PN%fp|A^d~hZj)O6_nWOR@vE3DmG{c{q<5iE$m;S(p{ProGcu;lSvpxoX7OazlI6iFkI`H*qRG8N|+I%f>Im%fbg+;zD!qGS7p6SW;j-?{4)N^TH2JyBXa zrf$uVtSbklt}|rcy&v(sD$&+#vHdoW42SKzUfyVvjp(17XI!?^_{Q6R2jx0)>$|`h^=Ykf@8yp3Ce3`=`_Ax=%CxEX-po6on`HTN?K{akYGDoc z-o+h~O=5jH_g(58)v%6xZ{v>ICbhoY`%d(Z`n3Lg@8b?ICp~@9{Epd1C2XGE8@nUQ zNun)G3hzxLZ-;QC={MEVfsf|1ZAhnbrwNJJpv={V@54!LQA$yW@|vU5bxQO%a&wX}s&%2^F*Mv@+cZ zt~q*VUqva+zL7KQ?p7zhjrTMBuFLH_B6jJ{I_6Iux(h2~)1L@OyL{f=r=hT|ORQvX zfJct1?whJb9XG6^u6%Vj+~~VyhjfonQgnu=xyaHZ+b&(olQ`9pyEyf3!4%=!ey4W} zu29%EIjm%Hfae>PwQtfEcHM}Kx_Z{xbYtT*ezRqmp4NB z+KhFj`xEBgDA;u`^dQ?t*^*05xDJLzN_$t z{x@UW2XY4zH+p^P_|0h3caBD>~$JYxSoU;}&uX9u{ zId=EOGdYLy&az8!LUR}Fz1Utm>)X^9N^koacZfINk(Fp#xI_4{${r_mkBVNuDIetK zYCTN0@;$V?WLJxAiCWsm@0ToRoWAG(+}pxKJX!U(MQnHJ8|RYME!`!vTeM4dw|JMd zx7fe%<9z-?k8}FVJWlr)ah&%r)C%2O@LP3{KflM17P%=O)!znuG}%Jcm)bB`+hy^)vLU+7M{=a)bA zi(=L6CH)s}tJe11Yj(fkf8qE?k>9Srwk%nHFzhtiR zcfvmIS#>V<6F>0(4GCI2-}9Gc>C4AoxIOnTj`!+PS-&Ly;-5)%zS;{nMcPceHladj zt@1~WTON--ZrON5I8(TD^@U|Z{maf?Xo{V>ZPE_4T;)RDTVao^w#+@!oLT)P{rN&> z!#T0j`X=mPlhrKDwc<*?x%Y)dXZwYZGtRH`7WcR_^SVt(HR9+y z|8Q@cj&(<^%FK6pK9VcxKH~h+th4>1tPub5-70d9-#u+E=}6?I&0o0vLFzZDUtFJN zseZr6B=p~%+v}6;T7}MwU6X43wLOI{{`cO{p5a@d(RIkY{?fMIO`wYA_O@L6slDm@ z^={|hHv9g{_{TN7%{|4(JM+E5yZSGLKAL^;>Lc4&<$ad1`gRw1A4Om2ee{08>?7Nk z%szVGb9+a=>*6E#T^AqSzRd8^`(+y+-M&!!=>5XqN4GC+KXTujzdPT(zhi&Doap^| za>DiYwtD-ReFgqA_=?=0xU8do!m_USE}JKut?PK!@!n^B$9t#sUG*(-!uO}%6Zx;P zS9PECUfq9&zgGQt_r>&M|K;mPzb}yQsBfy%*r)#2<f)bA)h;qUdUdHODL6y1kT)Z7RgOMOX_ zTPE*F-Lg4C?5$Fsy&(4}?9#lX=NbBi(i!<1KX2*Z(Ys~;jZ7UNY>?uLjH>u8?8!~?`VIiw{cg=_8smoEneM;+?Y&FfM%o7TqI8RL4 z?R>{-m-Ah^3!Wd@y6pK;u}j>KZe8e3`u$S1Q21r)M&>VFJ3POvy5U&mdnctT_Km<^ z#XPRPnq@QY37Jp5CuZ#wFKXVqPpxdqKD|7vTIV+wwZV6Ceoec<`D@z_%P+DUD}Jrp zvGa@VMwVauc2s_0-stjc;f|kQlsA5VdHhk|CI2IK3+8uOyV(o>?x@py$MVTNi}FYIEwt}Cy}-WnuSdPucdoy#Z`6OS z-ZA-$`NsJ#-#_x3xp#`*M3z~K6DwwEPIQ^2Ix$B}%+gceQ)O!0G!Lu2N)vs4ZF9Nw z!dmF$g7;o3-F3bBH!QzIcdA_8uR6);|3r^TH&2(JlvRFt_|f-E?nmVp^gk^8X7{V* zNAnlYkKr$a9~r;6T+z07s-3o7mz}y@n_a*7joUA~A1!`)`oz(F9>v}EKA*ee-MvrD z?Y}rlsO{1vjl*&Nr#)|YXfNC}vwvym(fGwzkKA8$HL!WE=W8zs59yBme$rk0J*7MM zJGyuMZ|j>B(A9TT#rQw-+_sl*?!VySeEQNy$LMqY#ngyAv3Emswzt&7e=zb-AdIQGuZUt!+e$!eZ2+$T>w^v?IP>KF6V zrR^=TUko{SznuK2{lfAi^$zi3{|(RT{!^Y6?3O?2?;(gZ-r(XXh8Kycg%E-BxkA+|hFOig(Ata<3bX@{=}9 zwo_8@aDme>9RgPS06AHU9PiWf3 zIH6~k_q{kCmoiOV>7nee4K1NxDnG2NpSrInCM|Jwq}^e@&DO^*Xt>O771_oA`|O{< zDu)^=+qTDPip}#J_RO^R6P}PEwkbns(%Bjt--!jYmMPAi>ufwB^Or^*ub6iL3r`T<_trXnm*u()HdJ-u8m^M|A!lt~jDI zXSu(}4qxrXT))}YYCY7A3O*#gWm}7Rra$NPOnJ`mOnc7ojC#)NFA{hX(vE} zC)i&wxS+qmvVh-U0>=_oONYb&zAG%g4%HX9WmwV`+7u<^mo-HuGDb*UYw=B}zQN7c zI{Ber1)nvPc?_cVRC3GE4I~n0Ntz9&IYDDa{ zrqZ;(H$2Q*&!(@w5%z8J@10LJRs_v!eEv-JXMkPf`Ddqpxb16~7Y~q_7%U?A)K&Ll zNQuDTBOZpXXT(<@2`hA%BX<3Wv!uJ)^qDDfkxpUL-lq6ly7W!o{3K|n4V4Uy?G3wp#c8WsZg~5Z$Wmw9u=iK|-(C+oe#x_xZEm#qWzkaEyD{aL zYQJ*WM!vsN-fMW&huiqx8S~X=!io>fF}r@o`SYE6NTKREvf`FJ_aGYaI>@_D*Kt#r{olS#`i)I@n( zzhKdqAL4_Wt)vH#?WfA0QgTK$YY%UV|EyqY;}S@+BQ zW3wdFHddzGnS zzw6rlK5plFyG8x4i+?BWTeSZ1?B9O-*2_Os|6N(PwEoTgpYw%6g*d#mR%-e#+52VE zLLtu8JNL~W%af0T zz(JVHmkpx7<;5;+-QZWD^Gs;w4gWj(brW<}ZrtKxrTu)W^hxihtG%LBR|iGSTsbFv z-RhlJ1Lm%ZyLc&M=@!phRd4s{y=e3MQdH%;ck{jY`-|euE=m9FId!byamUBACTCVX z<0xMK^X944$}s8dd0TJpO8mQ3`}W_rrr%V5FJEkZcFxLkQO`SPA9l@SE?-xzmgKt2 zrOZXHVM{}!Sc1h3&U;Pk4K&X%6gvxAU1(QLNZrA;u6_4|zzW8DZRa1jPhnZ=zH>rD zj)?2x3o0h!YaOyL@|8%;bvC~!{6$XvuwAM@{?+?0xpL+K zgYJz|YZ$W+KHIePjl%DjnsJ5eSDK%YewzC&uZsUKQyq8x+%C9<0hLwd|Rn+ zH^u+K=ATA&>Su(e@kqA?AF_N1inE9u1ulk!vyQp9w|(k6`7{C)S)fv|y>x%*?A_9P z=HBCcKdbzF^*h(9&Iy8>oZ>XNQWt7nVPz7Ma?XCivp3P8r|skh#&ZXBD_G{@Ulkm{z3U)EB|!aeTx2d`|k~f za);)=gOd_`3k-kgeCn!d;?j=l^joxELQAdVX41w8^|G$!N6`^lYb47!s#~lNUpJb2 zMl1W|x1yPMRQXS8f9k7IQchiTNGnA4D$7Z6nrSk^br@yVQQhp=DcE z=445y9Gj(^)^C}oH*@#1wZ8erx2vw*SXZ{aw=6P7_xcIn!r6Cqzt2~wVAvwf#=u|! z3b=36!r9)gpIrqCKyZ~(zTd$vfG32-)KT~Xo5KPo`4Z;82RsZ|&oG`o82-V0n#we_ zXGi^vKhDhYVP0mxdB)CzY3bUVoNp+<;n(B6KEe5pL!SNj8RySEf1drZ_s79MV*gbB z`=3y{BK(VsyEQv0Y~vma4;z)bwv&l*5#rlgm}FSP4;yP3u4=xe)KaxbGQ%*cecNK? z7lyyOCO_h_FxTtxetc?&U0$zZ*v9VmN4*vD`#R(w<*R6(^gT7ftwmW*(ob#j&lKUC z{&^GE2U%(E4{>~@k~@vh^ZC;1OX`+$V`B2O*H898ef^1h;o3*fj@Aa8(rUaEExGhe zNSFrul-H+bd9melh>W<1g~Rtp8=NJagi`6Nw@w zUXoLLt=xha&t>F2`=N*PSkdD-GtZpK-)7c6^Ya<;Fvr#FT-WqnW67RfdZ{W~d{g$# zb$buo%lp4LG_!}TL?G59{NmXXep|2e7hiv2to5|Nc;7Ecy?64}lg~wpPg!1_^X;6| z^DUpR>pnMnm-fBu_fhQ^S3gZKKNS5k_Uq)|rnOJ}zn1?j|1;ll--6H!#uCyp+>cw= z9@_Wt)`!X|YOBP*_KUf`UVQgr=Zmc0I&XjeXF15s@YsNX;Q+LuU~1wS%DYdhl09?c9G7#}8W;>fYhle#p+}W6B;r zd6P}jvAsW!l|A0`@yw6(G~?5=*Pc;SGoC)v{p|8Er_~Ktk4Po>ZWW8Xz4r69+ShyM zo;a5>eM|OD*|(0{Qjfpc`7Km^dGJNamm2B&KdVmBH8E&$etoF*aPXmOMXrmS z7kMxCzxyhWKfL^~Ub*@X?YoEHd4K2k^y`{fv_xv9`>cuUmgq}*)f`cr(xZI&gw3X& zHOjY7*cF}Wt`go;c~2^TdikN<&-Q-#ccE#ECrWa3s#>+pTlvqSmbi5*5u&!`li zR@yZ0jpoKVYUQV_KTZ9!RA|K%t;wg>cCEOU)#22&dhM${yVkv1ZNG8JMy8EshQ`~J zzU^19Xke0VV}fSi!#TINtu;C}fA%?W4u1V^jp)Tw>0dW*DZTJ3=lRyvw{zbCUs+KF9h_?CZFXO4TR#-ifnazy5jU>b>f9Hv1dyzx{vkU&Z~e z2jid1f0bXPp`onR9<}IU23t^u=B=*2MXO(E{_1-Cu*5=Mulx0*X*<;A8gp&L^A8;V z;QOcVh}ugJ$Dmdd)x9SooK7Td>YbzV{Y1J{f7+6xnX8K`7b=) zvUY3Sit8`${%YB`^u9xh2j|TN0#n+pE{Iq;)=MxOJ2o_$ZV>J}m|DT`{@IPs#Vpp% ziw{11;P~O3i&>{{S@5ANCcVD?#;?A69y6*wyWJo?LOn-d8!vmyW2axto4?-CtYGX3 zV~tRHEj6z`Ero~2#YJT0M7F>-Mx7{uWKkCDvg_Y+b}gTOdG7gA|8g)`UhZGMe)D(f z1G{|BoMHa|f8YD*|Jzd&<#-OC{&?Ad>GZ*t2t&1l25w8lGOt$I`UdLlol>|nLsjq7 zg6}&jTNd$M+Ic>)J=Xgg+di%w3laO=!r;Gw!NIZIyWh#(%-=s*`~tT`-%5tdz2})1 zaU4D(viSPTFIyZOIwTEwSL~kBuj%^AX_Lp-Z@-n_f3Mv4b!Njar#}^DIK+|@BXIz zdZk+z?QCXC$i10)^m*vRU$@RV8Rf@j9M-Tp@iIxbd$)9xuTGodnf=ex@3hQs4^4`g z=C(Xp)=%BQQ*&w!A#v zvT^gbS+?47i<7jk{HuNZk(tSA*2Y^0#rGz(3a&YE%tcbV;_WZhlY6JnDZ97RdiUbn z+w<o-l^xI1E2s!KwyPF=;8weJ#kfFc@ukU0A7 zPtU%CM8K>7KL&pV^E>17&wb>zi?{7@6yq28culnZXsR(6D zwZ2)3j_-Xkvl{EWAKdS{vOh^f#4ulX#}(IL7T*_{ta^f5efU;-JpGUoF4ii1YvM6Q zSwD_V4O!RU=x8yAZ&^__`O{$wzK886C-2pIrzdC4cZ2DGn0})38V5#xu9Ny*{CgiA z{Wxdc7v2NM`d8mQ-6+IRey{LbX4`HlqxEb_xeXEGO^2>td?p;Q!2kLDwtmY^Th9Hg zDPH?B`}Ttb>6+G$o6XP8yLq+r*_&mXA7A|G%xCp-Ni*Nf;|%3OdS3S?zl_`1!cn>- zrem_di@CXJZstwH%a`YRoO|#&^yIW>jNIF$xBfURC_XL7yl1v!tlYB025+@YYih1% zEDhtjFiEg|!#&;9#lM%B=1U80HEP{7XOU9w-9LhR&M7~;|C+la&rWsi|9tb#vuccz zA}OEuJf2ylb70BpE1!36@cRFw_~6R6bq}U47JsvOr?S}V8$IVQZw&aoq2o7;=Z^IO z`>#JQ|4_)))SsHrTIw5Twc!5C)gQNBJ!&qrQY5I!|HiFp%(`W7XINiZmSU=$wg2eW zgRf_<+qB}EVQJzmO?jhVU*BaaX0N;+^?G&YR3zPPQel}bIGpI(4$T-Wb&#~&M{h~C2V5yv#aP&IFcaD%&DK&aaaHQ z*{&x?Qwmcr`g~G7agzI$`m2Y{W_o$ewL3TD%Z6+)+w0%xEy@3`$neq`VTB7Wzve9H z(0#0I>LS+3;h4AX!1bpKi;7uP{3f`3J@6}2UiFO9rlQTYKm79c9Lfq_oja{-e*L-) zOXgqr*&Q9YZBZPf{JZjmGN#RJBBvW7eGD#bNm-!wz~q!c(7EI9WTZ~%Yb$Z99BSNW zEiWx~dV2SXrcZx*S4f-2hGwl?vt>%$QQH%DYl&+K}CUgU7`x?JTy3wvrxc%rft`~+UbeLj|X zzT(LA53Zqsva*7gywv|)QC5~ZYRnk$JeWzE1>wGlnd!m?r&8oU&e?i6W z`ZRf&=X~eqWo~!5(zPnFq}bg%T3bBlj^OJ#*;W;+7TB22o8UPoRq9@Ru!H!4_`_a? zJ@%%t2M*kreygXY@zMW}M})8UZ*Mum<@R)a{X5H&mFlN&?Du@9d4kh4qUnx-ef-up zfe-yIL^qozy_Gz_krE< zSP#iPx%V&ici@J_Q|*lt+yiet7jW1oYWyuEYR=7zwSVQV<*b{Sap%xKxi6jtA4|6_ z+p=dTf3-wlpfC2wexw`%OJ-t;QUH!|k zL}*ss>tmYdE1H)DyH0TbG5KYgNS)mNtBZ|fciZmM5BYo{)nmgd`H#OOzg!pc7kj;k zu|D*EfuT~8@9`b8R74D4d#uXclCgk!-|jnx^Y&LdWcroz_MX~#qme~hmpO4c!%Uuv zF5`W1cfV;|)KrMyt{ai4EqZ#DR;;ktmJN#)r%V<aPc} z`^vsW%(9s?v02CJa>|9vDj(V1uKD-vUcQ=V){e8u{M(LIUH$geY4xR*D>i8z<*Kan zym0lx%BdTJc6zS6BGT#Ox7IF!;aOV3wFmAAsWX3Uy3iWKbHAz~Yvs|o0-cwS&z~ax z>z%ck&+gORR|6G|FYI`5((3)52lxLfCgv>;V2O~uF#o>;cg-Q~v!wORV{ z*PBOGG*2vib$faGT_;6N5i7 zpwMxzI+DRf(LscX#bZK(`0QONU+>*{`(?*ct!;Cb{azk(cI%fXbCzwsyn62MDc|Ol z-u<}v^iuQtC)Kk*o;~x9k4;5pzTC#Y2G*a?`PHAE({%ZHK*@_E`EeHO`(L&zvu#-~ zm3eF?!cN5j@b@pvc{Hv}+c&w}UP>l**DYhk za1jgrAO8Q!&qekxf5`MIdcW_P#WzKA?Mfb0{gz9W()sY8!;ay*=IzA~=0#1ZFXlbl z_v4Jd{gEH3JhNm)^-o$|RC9eTlq%U}#t|A|;<%!1k(<+0k-4f{rZ0NVDcg2mROzqU z8$-64%x|+8s0N%R)6UE3{y~1w6dB-<}blbg<>8 zi_sm?V%EujmYc7%m{GrZ*4eNxt|>7JMzc}{PR#LT-z-1>RqYlzR&TD^VxCVMFKJF) z>v;Xr+J<=^7lmXlId)!KnDVcuI3oLvS$49^&7#+Kde1yquLOu`Of0*TZnS#05_6S` zzj2F+g^OHY)#T%xvP)jMYzI_$9eTZpo=Rs;S?+QculD6RwMHTDx!x@8fG17M){^DLCc*P(S?G;$P=)G=Exn z!g~Stl>h%e9^ZfN|0ibNg8Q}!bzfBWGi^0E@AE(F*UIIyd=>R=^u$^U3)lAqEOv=} zx;JBfnwa033RAAb6FZ(oMTxt;p1eUv@@2oUxAzn`p9`(Ado(hR{WDq4BES4sO}Eh1?&I>At@y=`3 zs+qiNk5t%5hFm!}ch7?ZS2xxi5cd%+dLDM~^N-o@ufGU4E0awMtDe5ObB|*FJwww% zi~kS#|D04;)8F^+pS#G}WebiTe($DvrkgL4{nnC<*hMXVFm$%ILp99J}5*zhOL>H3N- zy1N`#ME(bzbEdtY{iJj856(4#M|E$iZdtMyl9ta2-SWQ3 zwD7OeR%Kt^g`8S%nHHvXNpXe-ZE;+2i0`)eW!9bHW=#KIEcx~|fc=B+Y!A1+o}w{= zB}Wc3uFa}RIdO6MOQ{#8H@}?uqjq(}0>iM4&TSR@x^+)aCe1fOXo5y zdUe`+B+?B^acpQ(?SQBpQk)Cc+_;{}NwGid0pDtYy zxfFi*{U7~<3V*8XmfLXu@BJLMWCz=N%WFAYyRz@RvrXB*d8(Oa)O3y00b3kbG%ezE zG8HiuTD1fezFm3(S<@U9Zr?9Sh~3@Xlg+=h==+6gjtRXY$;-}jMg8FavG<+gjzR&q zl8Q?jE1#})U2U<*bLMf+naxcqX9ct-2lP$KpLQY6XJecE{>5=VlFEzN6JPs1lKExe z`-4>~Yw;Wp^II8$m&281?eYY-UQp^+{AIB0uTZM)`hVdrv&)veS2rzU<;RX>wQS>3@^{%RRaAts(oW|F4-Y+(N0pS#R+uTC*;cS$5-4L$QQF z(TkTZ@rzzGxkMVfO1EgS+}fginsp)Psx3?l|0dlM@bvb)b|+)8tItMLX76Q!Dz80e zi>&pYlB#h_A;j?_%R(t|bbm2f=+*^J46HsU`{aVyx1HRPA|u&u*k)FCfqCM!4UHc& z6q8~tOtmCzzvcEHT{6{7FUs}74<0ezQ?~E#l|Qn*y>0LFBh2*=FNexJQefTIo$s)1 zqIrzS5^hDyjuIKw&xKCxnpOG>vt?hhx!!kr!PoUqcj0aqsYOwpx9)duTfJmX^RLAW zYaNXad>1^yrT^;b+la@?-OR#!Yj?Vs>^wRz_39N_vDs=l9#elS<=^$by-me)@(%mj zNne(){i50>H(kTp<09L_uKC`jtzQ+V)ZM?Y^8V=xp10rko~=(8I&=KvPLXSNvsJfF z=UZMdk#9wbGn?!x3%luTPY&Okb(3xN?pmd}t0OMtTdTVrZWCYpxOlg{$@ben_6r_8 zcw%np53XZkdww6W*m^;ciB zAO9&2jJxr!GrDL-&)v0KJTLBYiELZM>m-U=UcRVwYS*lq6`<@YZlGFiLtz>EPt;(u=e+~Dgwtg=ZR+%mIkewwiU*>!r7pbT7T%`};({r~FN?_(d-YeKsx;$rV_oP}=%Q z_*9})0&C(9E|v7mjLw|AsI+qvkE?J?mch|!*>jp_KG_W`w@e&0=H@qE zsB1KHKH=vFbqOd78yvk>q%+fXg3s+m+(M~mMRWyj`CqhJ*yAu;F{M>~%4@+FZqmAo zrfX#OKJcGhQKoV)X3MwS-*@J`xLo@0&d$%h?((cZ=Lku3reEhjmKf)r5T|#F+x7mZ zMHhv?-krF0xAb!FrN+kP^KV5&$J-yZsk*kk?N7$NTHdOQJxVjVHnjho`Q5Q|&Lum| zxuu+JOB`mO)#c7TuW-vEnBjqKSMSq=vmzxq=k@1lPt!l+_x8=B{TH_0+Ftf^#isDe z@2}@RGfdBTYOC%S6E}P3<2$X~8CTXGo>Wuu+-t2tMW^7|KF!+IHU<0j?yP?=_inpO z&pxf^(Hqz073cZ)$e(eP-sNSwJmA=StGX9XNhT-08};k`xHQ#!ebw9QgF2($J6^{KeW(eGzxJI~d)zv#?op;SiK^+H<9Ux+%fYgBax zOj~rFz!?i}rzwnI^6sl>=W@u| z`lXcJ#QA`OmeLk)j-Q_eep*JZ-kK+{N;OwvVm4>&(JhUaf=cEtxq6DXC2x7vqV@}O zm3RYfFZNd@?N<53RhjfXKz-NrMWmD=j2F)xull4&e^@gtz8K>8B z{4>^kVkbNy=Y3>VnDK-6vumQ$xj+=7mN`cbZOI|03~f#+pAL+V!8OPSx2UEj{&CUik;!<=mh-JU|NiTb z|5p>+F1^XkTTqn9ePhW~-b<-F%(p-ImvP)g@~}u{>dD=zs~$v8shqcjRphVcLbWbC z-xXGEQB@+Bf{;62k& z`ZH($gIQ0vC0^I5=Gm2YQ}@PsrawGia(^>TS$2b`arTaPe2G^yQ)c9Cxwy#VZLUdW z@TcsVDr?3 zgyur;ms4xcE_)E!7JW!_je%4o`>E|3dGbDy4j1POWi3KUr*3~Gg4$nvo~C4%Z`!H% zpFMK+QIEGu-7JqaVy^|AgoIB8Zr$y;V%nl`&Z)vu6S6sDRj>G5EbWrwxa$|lztB2* z(!^<>7f;Kc?r-Nl&!S25+k?Zl2XwzMh%U4MJ21PYEci>N(^ZkboC}p9fgGnaW$BAh zr>7le^{q9hpX9e(Y2JF%r+D`oj-T8!=BvdtTh3bRbYeDt@gKcksi1&UTGqI1?jkL- zn|D-&gJ$0f>OZK=c|a`QgSA?JX1VoG?nf)P-Ay-`8GeX!o00`z96R%kk8iyf-GA`= z1J?$P>u)va&O`c3X<{;fDI{pIk~i%;XP|G2-l zSMHztK~0gVj~ajO_0o76nWM~<^-t@`jcAece2xq6KfE&I(Y2#fLbf z6dy3h+2cgw2I0Lo7oG7}JvB?CYHGkvhl>%c`&CUA<}IzA6|i-N*_CP2f+t%xEOIsd zbm6DwpKS+g82j@6pRQQnbU-6!rp=YW534WCzq)x&`gxtISo}+E< z!6!C5?B09J-Z*W~>vYvi<3v5j8}Av@FP~a)Sa@a6*}J_d2k))>QQOk`UGcTcPqEZ_ z(>1t3Zm@J+FJR?x(Ys}nNbSS`X4iVJ6`pEul4NdlU(@X_-RAh0QTa-Wio994zXxis!=-C^=|hE7ZHt@PoI7+ZW7MVeZM1d1CzhgE4>mSBe`g2zP;JUTVy3C zwVXH}7<6AD#Cxy5?!whG(#$TFYOQU&@K)rjz^>pWikFlsuHIETY5K{$u!7}R&^A+~yYJ)ysy zn^$USN3Cd+H~zD`e#^dh-Kjoh5yzJXSxqy%{UJYp^?K=l&f@=b4cS80P5$%y(BpGk zP1aN{5s@p;NlB2n{=jh*PZ`i!|Ad6 zg1QI4r6boz?(jt~OG;FxGOawI@w=tz|LcjadfP07R=;XXOX}>JocM3{TnWSWk}~I$ z#+xjbtbf+Gex02CwtZDRcg)SX{rj9&KRtf@^P$SZQr7w6#Y=DCoSuqW8}0o}Tay*`Ifk`|jU6=V!7}+sQ14=WX`0^ z^_w*-{yw&wCh%<8Y)~6y$MeKfOrZ4PcTu~AFW`&NLLJxjg13AxigR8qU&7Y)Z%Tmh zoFv92e8-r+FaK9&`()XJHnYQbCP%#GI4oVHa%oxu0S^DansofFu#Hu;w2#I}GEwuN(6g}#?=$tv8d*!p`t|B0ArCCgi32YnM| zrSgM1!}je-&#qyYmUDbPPc7+$_^+QjHLN>ILipzWwRf#L8CJE~b>fm4NuHd0y;l4w zPl}!Rr-iH3*YVZi{DhWU(hqhB-U*)Ulqsuuf6G^`z`HTx%~e9g1tBE$}1J? zU&T)@URZp)n%B1Qzudo9H#%pYRNlE^f0f0C8SD70OkW-p;JK|k_1~*`Pk*Z|?J$+; ze{oDOyXvZT%bK+(p1%8f;-K);!j`%`&s_HOHrHuSbc7rX@J%DiWP@1Oc1g$kZBP!Dc*m-#Z*c=$S3}%@!g!rg=dZ(><~Ds-uk_^ zv~WAmgU>crZ}|`H3P`PJiI&*+X8y*=Gs)N7gjO-sSkJrqb^4XRUkg8!o9^4cLtQ!8 zL6X@={FdiC=g+NYIV;zH^G%t(>6_5(DxR$QiAyb1j0)zO z8*ld8e6w?3+^^|+WijWLE$VrDtv|i|gzY8vg6TK*F#bN3c|$E~Chyt`HY+w^|6?U9 zcj?ZLTYtsR_Tkp=eEcukZ5%Jw{Wx6o_Dj0Tjjr2of_hi~YMgpQWPbjCmdMA`9$H6E zDNn9m?wIy6=QB&=nu84c&#kX%T4nt|$mMacI!g?Q@z9bH`u=`t`>MB znRe2@;f&0et2}iYM;yAy~y~%qhH2sXF zTx{fff3poIUw^;rm-66K<&qPH5zG9ZEm1notDk-CgP!tcHl54cvRRI1p9{IBE_E+* zc{wgzv`{eT@JN;=)-y_Q+U9?&&EFbQPzt(5;@MzhTxx3GD&OP^3 z%GZdiHN{tRz5f}D^x8$HN4He%*}mGwVBYTgvNbR6oSM6IrLy%jzKTEg%}NZBoL(1P zm9CpdAJycxVc4n6I6t@X^x9*|-Y-vVQGRnHe(inB*!|1(U!0w>=i}C#Jlj0;^qfS+ zPomfIcm8y@u-n3ZHp_0t!WUPMD(Si{x2R<93@>C)nE8J5*&Tm3=A1iqf7REUTP}Wi zQ~UK}Y~O-htvQkMg%OXBKl=G`u66cL#>>@<8yS~pUN{gv*LCt|4^g@JroJgh=iQL# z_LIK6Gf>Yq*`SxR_^r`q`9AsOPY&<0v@>(y7njfFOuX}$)h#df;kUbib~a*jn~u#1 z-MiL(`K2!wKj&Z7Ue~2;B01-O#p0qHa+#7PHVbzI#ii~3*WI`Mc=12SXYMY1tNv`; z(CQ~9`E{T5G5&tn1+Hx?L$+Rv>&;qlJJs!P{?(xQ1)*~eo_rwF`R%-~-iDl+fhvc$ z@4G7Z?fi*T0bH`%8Z2I}sMi#_d{yob&z;Awy$o(`uC?5MJ-hh4%QL@KKg=1_>XTL# zWhMQ}`_OrF=SM4+r$1C>xa7-rWyK=pN!B5o>hI5e?EZP8 zG<%-3uiOe6Q zuI{_(aX9t++q38A>4%^5@y!YUct2_S@2=&`u3US!G&N(r;SO){Y1{7xuF=!g(K$G& zEzvW*z@|88$8)6zi@O_Nm)`b_joGs~^N;qQ2RAQC9d8mmn{s5n@$EUq%9GoDdpWW% zeCN?>uatNi+_bY9jZ zs%+IQT#^6g(5qi>E3@Z)e)e0`wzZ^o->KH-Mz0HRzaPEkUH$EJi!8%rvBkZf>eKz& z^d9Cv}JTj|=TlyBq8EwdB|TT~WoG%TdtJXVgAp_X0It@AC_8>IQR}u3jwb zQ~hVJVqNr!htZ#|rZ+g{-EB*ou3S)X`@w^C3lFZ9E1CJ;*1%NJPyc_0>C@g{RsR}v zzZ|oEc7E!eZAXrnSsa*p(!hSlYmEZadBwAmPQRRbdqWGO$+HtWn?0SXc=9Hmmav!D z@_Tyi*Gh);y`gzE^=W@R6pdcDFn^kN_^Z^Mbf@5lt?9bUngZ>6pJ>jR+s<^bv_1T- z9qXOm=Q3$J9N#{QF8&)^|6-a*j@O05^R`Mgpn=DbQ`><>5}vF*vm zn%uWe`x6}u6W-YG|D)Qye1uLZam%x&#?}RmmuIxE zxwb_4y2YM}GTO(Im)6{0xAe}%mfKh3-@JW#C~@8P?Kj>RsrNmbR_6O`=ZkF#1<_MZ zKfbK9kCo}Z_kpxc(dXZPxYgcJA?UV6EVA<1;_d94FWsEl-EcLU+o(wSB>#uMOtRnA zrmUTKt4~98%h8EBPWKqQEe^ypUt5`_a;iS+#`nj6l;?i`JG)!Oz2Um_MZp6`0w&z< z3=4C%PoCl{%XY{qbN11Ss>1CV+ZoM2RtZkZJ6g}p4!Knv)|(5gSD+`!JD=S{+63#ohqK%b0qa{hS~L{DyoJK*DR8xjS?2i z%(>VR_|9FgKYlIqUGCM)*~TjyOjrE#_?(+Be75+(no9zg_ZhO0(DcKVLmoTYc@X z=)dD<%;$ISTjKNX%r*XHLf^KWe7?HyacO9{h=EO(-%abpY~IG#YiGZ|x05O9!;FpF z+iX8R{Jr_Gf9wbTJs%JJ_BC?&@I!&Qbz}anj$>~wot4%}d#_-%%_IC`gYBRDYkt>0 zF#DH(NbpOrhI;Gi!pDL)c1mQ~{HynB&0FGZseQiY$AV5)QjaM5l=-I5w)uetz*Gh-k^e%5f?3X=9 zwb?JpE#GqJZ{CLMukxdJ89lhF@#KxtpQGjs^^LU;#SgPO*OWiFy+`r|PvxK0K7Myq zO>{Qr?)CN1d$&WC{rRbzSzmKfANg#pN?Ww&9`~_ovs06APyI9blx%JC_Vw%HPdwLO zv;LkP+q{@r^Wq-K-`Kci3$v^F!JuaeniW@#FPygGEEKvMzconbi+*u+@rV5rH~)Qh z^7Qomm6xS1^HrF9s81`~reFX2)veY&i?TmGJXNh8nzPoM@!RHAw!it`xRtHacym2) zjp(LRHY@VEpM^hZRl0L&@ukxb6Zx__B6sY|ba!u5s^1V{Gb3KC?oUEqP7dE2hx_w? zu3A))SNJg}@ZX!wpB~+GeQ{y!53L`Ueld#OS!uChTbaYb{k^sd%rE9J?bCaacVdR> zY)Rc8R=aXu+*zWUc46k;Yi}-cNX;pKvi!*Fwgz9dr;JaReX+k{Yb&2)yQiu6^<=rc zd#4VrX_1lg5ub8M@0VSUQ1d(i`@0$^eT$WUbvT;8G596*Omz4D`xnhE1b&}+btkq{ z=A2D1t8z`g+QqYdtAAbS^*YOTOLp>a-|cr+xrlBEi2sT2O|PK# z^WMp9{tcgg*nfF_CM!wp>y3Nn_FwvPR!*s9-;t-;KW+K%eZQVeu2B*CddaeM;harX zA8+P(8SPk?q6xOy!Tm^FysAkwJ+4=Ke;Li{##vp`Kb@9l={3Q-`!0=^ab6i zo?Og5FUk1-_SZ{xn65v$+N>=5*Pgbhhy3?-mR?R_;tY#R+8s9iTKvmNni}zZ>nhDE z4sG9ZzGI6^degsOo16bGmGd<{ol-7y?c4OK->Yv% z-@jAXaqjx&uOgSHnalkw`6vJ1BJ_~Ez1OK7GsE|}cvY_aB&5UUV1NB^58ruBBiXFn zC$g(PCHP<5QnKo=-cBWL+qZJgYQ`UKKY6#dJjK^kI`?~SW~Xf5s|)$-g1_hX&SZ-{ zy+hi*&G_+oubqZQZ0E{0SG0*;lUn%7!1^Mu-vw2k&gY%~=gr^wcH7kYSj(!Cpp!eq z-}k8fsrg2`{C zn;F_NYtQJNcq-cZ=tHM$eq`4ENS+r_=2NOl5{^Hcee_Ji3G>Hg=YRZ|-~9S*dH2Qh zt85y>^fZ~RB2qU$u-X-~rae@{jz68RvCue z;?U7O@Q2~`gwn@6rY~1&9CV*2?Q?$l*1WF?+xO`QUW!`5eQ-uWQe*N>&Yg=Sv_GpY zC_7hmXS3eFa)a-NiPv6MTwnRf+WPuKIj4oCFRzu=JU{RFRkv@?Y13yl-2b1hOf+V$txS0A^yy?Pg;+Ry(C`A`4b?Rp`- zTX#ZK%#$g#@440Y9*)xe|5`5kn1&e7foeCW#m37FL#8v$v1Us+c}R25;cL=jYm{Wq z&5YKc-L&p2m$~%aeQ&-*#hU+=Z}|S_(hBRM<4jpX>oA|;1sG3ymD~SnL7nx64 zzRh3WZ?V;>1W)ycS=L&sb3aZx{<}WnsjoYOlG`vNI%Y#SW@rtW^rO-r6yZJWl88xOoRe>aow2{+?6)2;hn zWW6lU2zzZTDRj$m_ti&*ET>Q2N^1T5^HE;Dm5IrZ-<>u&YguaAch8j1{lwE)J2mdr ziJVzC_iSolJ}kF&+wB!){Pl6vePtXpYS_4@8+>kk$y1)BC5oUE8eidbN+6m$CA>p7jUbu6cI-b=*I3js0^sZ06zkxpRwb{@iO#58t>g zD%rB9;Ed!(o!+a{nX-i)p08d1e6{t?CjG}UGc{e+wC(;yH`VkAMTfTRKK8)iy@K+r z{q!fGa<0PR8uhyqC33 zw5aUi9BYs6@;e7UZ2ehTZyI3{6le3UFKYVduRm?I=l|lKv3aM7e7lqQUPbhLXIw#A{zOHJ{ew}%SIRWe9 zW_D)mJ)$V1kSx9Tq|R5)j(L?28jaKCD<0&m5xi+_y4Czr$HC?;oONGoKY7pp_2;?$ z*QNe`VscjHKQFrL&#zwbA$$GNXCH6q#C?&Qwfp1ScW<{vy(}u{FMVjO^X%>64;?po z`)4@Uep&kdbaMU0r7KQNo!L?H)Vh@S&&-`~Z&dql5I6Ap;BWNFeA5-vSEp)A_w2HLTno(G!xC z=JM~mYWdVf!dsI9+J;PfUs}I3J?2{ul3uG}nS+3e=&T-Xi z%El90Th=96wSi~sSc{k!-d?%wi@>hQCoW`p+h?6F^L!%u>Bzgj5`EX{oOk^L%@?w- zFj_y+X!lYhSN;^~I~#wdoIEQRRMLEjFX(O8*Yz#OFWu9-QDnGE^K#<#4aYeCF5R)* zqgv_w%2kZpBr_fME=-tQGx6*aMb=K{M;VoIZvT!wP709_w{3Y;-l@s00rsAq?}}NA z>=jE|7TK#_aRCp!@AXgryR^clyOrCed zbS=l{rod~Bppf(TVieiywPFrrXiwEC5;ST#*)mjjZzCzNr2Xg3sGk$nK5R+dWgOHKy?$ZX&)oqI9c71awyjdzI5Wq!dxqgOk(2uO z%I~DrG9Nu(CpP=ezUj_w+djU(SnJUJyJ13{&8vm`KD_j=U-Hwu{`1dUsV`PW{w{l3 z#H%L0<-;Yu+X^0C>H241;AM74{u8Tk?Y2E+_F2)*oV-ilJ#80+x;%3Z6AYR> z@BjR5?-~3*pAbu}n>8VTwZ)-y6)$h-J3q|&g_)mcF*%}ef#$ih=Ft|7 zH2K75Tk{3}L@byToF4smb@BRVY8MaK94SmWaNH>;cK>xDXRY7&=FQvtEs4kfj&$D{ z=hTM{McJC4RQ}Ct&KH?d^uil_i80;L=*Nt*1;1b4dGq%4&kZ@J zx2OL;%zlYIf5*dwUk*R+R?O+@?D)O*SiyrF*Bw0H))jAB_hC)y@yfsD&sXlzo^&kL zNQy1$%=6fjcO6|>j=a4x_0fliMYeMBCie0lq@|;uod_;|DD3)QyIiv9z{l?^BY18; zRPJzF$eZQIA=VcacIxMmW7^Zse{Y%Bcw?rDiA&O7&K1qYY!B$bn6#VuKbx&`QfB?D zTW_|m{Og@>tZ(stWAOLz#VhYLU;RG6>dhYR8TpsHDpUL}nNT`1ZBpJQ z#+ca@)!U_E&bW2uj-@|mrA`cs z+@k$aE=%#d>6Rm{W~vg`wfh=Xt2lTUXP)1Z`~S(6e}9A572J5r(|*4}Z-?^s_jM1h ztYnw_Q}lnUdw)#f(TR(%FREblyRd^TFbtL4=9oxAN%zDd@E372+3p)bkAY5Y{?eins!=jeZKeh z$lVoQi@)x^TetSv^b6T77prStAG!GO;bP(F{_ls_KE;^tt~zVFdh_+lJx43wH{Se| z?41<8wCq&oT4gO=PA?zzxfcJp?(Kj5xO$Jb?KItnsV}2A;}5NWv~lOvw`Z%QZ4K6Z zc=_T@RP)wI(QB?drpHd%d*ON4T=5+bixzvFS@K(Qj^68}`P=+=AAR^p`WVw<<4XSv zDi`_GD-2h@6f~R0zi)|BGw1SkEgQYhtz!`U5i7k+>F#5`cHNCfO;b(JuHdxVb<|X* zw=+8HEo0_^2V9CRQ)XU1vUj2E-dB$O%DTx{bX1!!#}=*q?sQ*XIPtr{>G;cUv&(m? zsj2(*&Mw&URIkCir#3(HhuVV93l^y?apl>vb8U{zQ{_l~-yr4_XxqzkJRo=0?R!_R zA5EGwt-N$s{+~O7-469nbx+W zMIGv@<|!}k%Cf1(r3V-rW$iaO_5S`^(~>OVyLX+{u79eRdUUJt$%5LFY1#2_KIeQi zZ>;Y)CGccB%TXK2_#C6{Cl4*2w{Pyd`Lh?lI$3vrMU%O|_K)MHhdp>_|2{tT&Lftr z)}TPOUufTK6<+;z;x_)c{~Zk(%v zl1!N1oBbCq3WtSUf316Vi5CBRTc!QS&OBOo=vbBS$yI&(Tm)JUCiO^OW+`s)z3x}l z_RDX%+#YMGk1zM^e12h%$&z`c6U%#DEzB=lyD(q#FufS1Z5pK7Z9Zd9DvQw@tBL~g zpC9`SCeE7pEsJ@s%RBcH-wi9;l>Fp&J#2G+&3}_G=YHLRuoKHYt~8aL*Z#REWRAOE z&k^|=e#6~9Hq8MFuT*VsWj_2e{n55}ud?)~e@Tn9`mHB;rdlZCW5CAN)9w?l-rR8X z=7y_`J6W1St*m*|de7}`ua)_nRGwY5rr1r2w|i=lD38^>bDy`~m%3{oVjuGQQe=3! z)GCqW&9PaFliggRUM&#UJ=4ta!Ts>%5R187C+F0f`~F+BYU%M4)30$!eSLdvM(mfb zCud89hQ7!@G-LlP(Uq&re2!kb?>v8DqHdymB&DYd|cYYw3ESWrf<2m z%iX(+cn)SfFuL((mfFfFXY~}#<~t|dOMY!WV!LyG+wWJtY$8z=rE{)#Ojv*F$+k$A zx6@e8O-W|^q;m54kH*l`$@}{iI#r|>Ui*AFvvkk$X$wC{&6pYWyyNe&{bxCHj_3FN z?w8?Cd%vStCTd38+*p3=+qLJ;l?7-#Tk_5P*hZ#Fft#4N-rX-QWNyCu&AOd(&imJ$ zULU&kRd4PKZ}mCKw;EzJ^2JuQ9NThs%BGa0M}Mw8HxDV^+T6Gkd0%o=~~gAcqE{^ysZsBq2aKmDsEW9@}? z=I>csJ~9;eoIJj}!RDmcg5BJ}RWq5M^MrdZ<)opfPE@v)yd?MoL<7*u|>-hDp zHZCpx{XJ}kcD~+^nSyWMglt*a{WN_8w~WeuzfVH!E1$@?rbkUmtSJ8x_O1H4>@Gpo zFNHqB0qnvHHimth@7CY9&T74#{JNJO*3G+{>P>pTFB7wN-_!o(P}B5e{cl=2_Wmal z51KT6TB&s}`kU@=XYIHvYu;a<`F8K^KmVrON&l2?9P@qOl^3gQz0wuhDh!P_ToRt? zU7nsZIeHVfLAK%~IcNK`B5jXXu5$R)-MmeF@r$eXd^Jsg;w4K(| zO`W9_3YEflSIu6xdwXeOd+GN1&v%}%t~)UQd#7iU%-&y~KaR|)Yx&f<^NrCd^=E=# zT6^sb*KKxO#O)T=y^>pYPxQ$p6B4G`&Z~TC{c^YD^HF*qNs&+A_2&L# zDy(=JQJ17r=boH1rC?qC?41VhZ;3tnd9A5^UAi61Ud;qv8HSaeleW%r%F--6p31uF zG?QwzqDgA_@vT;qgKnKn=rMXRcM_lT-bGvE@7ms4{>7x}z2)~u%qNv?i{3{S8NB5= zy+^7yTx@IVaov+Uwwy-rhF zY8&7G*pmEu+O#zFa)pu|j{CIt-#h%gIdZ|8ll zo>cqs*N**rZ`YabN^*C2&RO7kZl%B~{mO6Q{ ze{lc1>DEy$j~Sa}za5Jm9`YVkvTHuiq@@vk(cYm*;c8}s;T4?=hHin4xgv_p`ZPoYjn1o8ZyB-%3f~QZ@gNh}*}Fi|2inw?FhEQdV-urHiT2 zT|GXV|7|m>z8dw)#@^X}8FR&loelTgR&<`;Fs-NU>)HsbBmV18*}qkopLCMbey`g9 z5TB!bYmWN&Kbik;=Z`5B>wavJvp;IXzW?{iKf90a*!}g#%jKW_|3}tv=?3_}{uta7 z`Qz^FZrz*~#gEU=-tzr3xlMJUoet+pdl#Xk#JHz_I4V8v>Ce9EqIxOgh4WIS+mkkV zSuYIl3ECv+_*wLvnCX^pr+7{sDmLM$XypAkaiT@dly#Za1?2+&ZmGqxG|E`JxtC9v zf8RFfY5dFcn;-mG$8cO^^Yf>_9GMc|?Ph$wHe$+phaU?fV$xrgz2|V@=b4iueW^Fk zcv+6frq9w*ELXQ~d+CxkUDvCpH@aD5QS$k{DuI)~^NUZavRAB0(3tPWUbJ3#h1K_X zmcm&(bpJS?KaqQ*ORn*I_QNyUx`&o3szSg z*!-@kc0WW;TodzZGe_Yu*B3 zonPr6_x&(Dwdioh+=R>dObX9Vs55*`e5CzTy=6k%gY(@P>JG;m%nxYy_Xd3Sm@BmR z$M%=!8Sm7$E`Pjb|K$5ob3c5Ie?6t|*~{4{_k?sf&$zfeq5fg4$G+}$j@=i8WVx2K zIdHdsKExX^M=#4Vs~TC7<(CZ)+oiUR&>5l z$-9-;^s3OhK4u2rgi0hnrr$MnaI@vU1v_D1W0|{`#RqFY&VywHiynBkF~jf9s9!6#TOap zYz)jaaCBX{A=J$)^uNP>*Ud-f{@hy1CCD;+(xUhKVm=!=gh!Mwc-fyk>mSFS-z6>?OVNWBIg?(<5xzKZ(=gm2mIF#saMTupK>7c3QOy2ixfzd-%s-XnKS7`ORpobqp);&6Ihgr&)4C1KM7X%5-Nv3>Qq zE+1acTeWOjndt4u<-#kMx#{(PnVx&-|6R5AEheSBEo~FFZ9RGV_nM=%K>^7d=FWC% zNRoZmFneuQe&(v%TgtzvMBlrn)@moUK>yj%sRB70`VTBmkY|*b#VsbtSP~&wRwHP% zVQ)cZ$>znN@`RCL`|nIUX+q~gT zB-DgWewMPtCaYUY{+T-YAh*ZeSJ|apc3G7T!QtO++{3h|T`QKJy(-Y(ez|?QVNh!L zEskB;Sy_MAhU@w~epFFV>0k2K^YrTTw&9tz2P4`S*!ay+Ie+3>G5>d`HLPWMACg1N z4)M>mSeKuXop8hu?v8E5TpoELCHZ}Ub(=n!g+9&o;yPCJQdsh_c*L1D z&+UrK?psYO@ZsUz;j_{#`FL0PYu2#h^9~8-*HhkJT%DS?cE9<9vRiMsR(fa7k=e#; zZj@yt_`gN6iap9DL|A>riRTygiJnvWAv9fh$|q+{KF1&RCUgJuZ+W;pNBge(Mb8Tz z{n6!7eb1&P^c6~fv6~RMuRm2p?_}GCzp71-k6iZp95o{>D{gywnA#Dy%{~F~=N}op zb`iRF!hiYxT}*%fe01!ddt6GXV^&|^?V|F>C!KC|&)D*NOF-O}h%2r8i;6lI+_XA$ zS7BZDn)SIkxogEWDo)I;U9fQL#O37$k_unB*xSl#OQ)I$`r2A;-EztEcEz=<$}P#y={5)=EQ>%g?z^u3Wx3qTk&6^{iDDU*FEU zwJY97Zi~U0-){T$rJfkgWG-p*Smg5m#NQ`f+5yLZ1-0KJ#w-?zw=i4iwpY> zZuQoS{GD4=VbQrx?f=trVX^zReK)91Ypbnzf9q-J<_sm<<8HenjaOdb(f%I!?T*^C z6^REPs1!DJb!oQqyWM=qlXd2Zg`m+q+l&1ZC$?>PI=OLk*QF;Rx9k}+f{wLX0MUbA)WwG^${MgpA~ z?{d$26ja(h>i+g^((6Y$DKRUS75$GiPsw-qaK`e+#)1cjRHx=B%=GaJkZPM)U0uUy z{-pT%zquw=j3L~u*Rr@OFPR_OGQn2h{^Pw_Umx5%^W(-1xlNK^Jyu-cJJa52BY4nm zV(1;MX}8Ve*0{S=EWfryVq4$alm^B%otsUT$xoPZtE|en{Z~@^PO-(l7b{-`cGv_;RBy{r)L-p%~ zvdoj!FMZYZcD*>_JN?`J%J_HIOa8tsKK}0Sqv>+X1XE_e_#Yst!|?dv^t}sCGu_JC z`n=ldyG%vOyOjyoHXHvr<-K}!!FyTGqI!o-ZMugi3aVaMd$K&|V8ebJWi9S^lc$}E z4VZU)_iWC^oDTJ;c&9`Ak=@V8{|EO8UM$a?YL-SuxzEoPoLqo(Hh zmnN;&?Z$7|eHr~X?p@Sz_o$!r+>rKJ2cy}iKHfcD{rlZt*(>b@c)C89-L2WJlHXa8 z%qSjLJZHLiaC%&3Eh|%M;mw&Z&SX0+uSoRY#V=+V9C2#p+x7dT${sG&{m{Y@cV1qs z_;^4~(ZolSd+L+cyPn}U`2HtU^1BSft=Bat@t*@ran)yY4f(cdopx{&vU4q~!BF+wIFcTDQjT zzILs?_Uggr@QGh`Ds*oRd3I3!_d+wvzjv>zm78w+B*D9=jp2T7wy23w_Uc)#rt@1x z_ZYt~{j~qL^Bk3f0V}T+Pcip5-n;#QG}H0eOY@g6S3GrcuA<+ZU%!6|fAG`a6Wp#@ zqqv$+LHOIPeRflw!k@)ezfepmFrHxbi#z@uZ-xB9tTzlEx$@CjM|__B_bj=S{iMP~ z-o5IN?gmY-h9jSnS)Lp}|9JM1Z~glAO_LV9YP#4jq_9?a-KyvN&Pe{|ki0Z?+Xi{{ zRNIC`f#6kVQ*CXe<&{3zraf%M} zw_eV6BS&V}?ptry7M+NjVPucZ_YSSgvsUir5tWm@Av$?SY0%$KN0in# zpMS8ra&xkNeA#RN1m*Z2o3b`+E)Mt`^lrv`^&j&RSblur+!ME_D~!u~=|a6e%YDC| zd@0HGW?t-fVD7AnPv7pXT9CCd?9z!9!q@c{@O-knk~6`J_bmU@f4blG&Rm!ty~b$f z)~Bbh=(sKvzu11FdWZIxjPB*e8+WVQnyo40++^tYMP_IJB)RQR{%+TJx!j?b#p~3s zy{eZlEoPe>Vl_L+^5M}KzF9Y|{#^2wl<%HcT_pUj?R?XWPy1#r-?LQb?~j-D0sbp( ze(uQIq@w*``@IwUud?~Cyc6*utS@ZQ58b1a1-k<${-65e<<6h+CwCP@=zU_1`5qo} z_tE9MN0;mNB)yZq)IUeBik8G^dCkQ3}{}W&& z(cK!NdG%y%JI~9%hBG&9-8b?5gz96qMbm0d-PwKg*5;NL@9A$m_<@l@L(co%_lbK_)L*{u$p5(YiSBpN5)aSi6~W5?Tvy)t zdHT&J&&A)@``)WcU2*)Sbyf0-`nQH(!u(fUKDIR6`prj!Nh?IUw%wWg>YQWLzcQ0+ zkH!9)d-A^HzZm`CFi-J9>)EP3A9TB)82d>W225z`Teu{#V(F@_FPksNKiP7HbGBuY zNN-`%&dKSIgOfO}e|Van8+z)@h4012+tU5#E;34fa5L|C#mT0Bmv8X5KH@vdVB~bB zOLN+?6Q9{W{WE#G@_iz2NjSN~W4z^<@B$t?H8(ay+*yJ6=TxIXtq*=TR$ zyW3J|F!#;*WBu{j(jnR<-Hk7~kL%vk-jQq7zUb zhtN#fMH2aqF}@1&5%~^sHXEnE2r z>YY2c=lr%kqn_7WF*)G!=b6^4vQOAKyzbIn+G=-7)6TlSz1FmL=kiG2C-b7iW6w_J zcpHE3)6UZuqwn8YYi!1}Ry_0h`F}r-UzjAa`M{dA?%Ox7 z`pSr$o|9%C#<_#%n8KoR>$dk2=Qv67f<-al1Cd4>!)7NJt(2T zq2qhqB;5Fc@m3R;bfKQC#Ir5=yV~LpE6gbQa&3KTp5&jurG9@Fr|}>0`nc`iBk{Fy zohP1W{u4aIB>Ix=bfas2&e8<6zjaoB?W$g9$Di)3|G=!}WOHw_RaB+zDQB^|vUByNbM>0Y^bxohX-g2=Yp91|yn?BlIGcwF#eyi5Kbj$+0guCD2>`HsBO-_mp1 z#bPazc=lPl9yM6>L;2;}GwVJSG3J8RwD|{CYaE#n{V`%Y)6@dd&(%}DutZ<3_dLETDMd!AM1C2A#V_+e zpQ|gRe}_JrC?YA%Cs2|-+ix!mdkf>nxGDd%x~I;xuegw%ys>Vc@MVE>?TXs#GCv-l zYiChm;QN(D{*T@P*7Igp6L(w|=Zl-c*5`9o)5&AP?#UM(eEh(j&gAI%eZutwn;&^e zHL0mKf>sYcwkCM`9}iaUys*SG{L7`bUsty*+as3ZT&va~DBIDaqtoM3^?mo9y(bJC z?rE8QGTV9C!-Maz{hAu@+1rXOHk<9N{{H0Fxx@DkoZG~fk-AY&+f>Y8Mz0ii)cHwK znvzDTWgF}&)~6ZX6P=oIYq|4A?xb4r!mC`Xcj!)LOj66<=wUtg_i^{@F;n(2-MSwW z-&kAa{j1BHm#_WclcLh2;*rWPOJ*6%%ih~|)^u-aSz21z>ynh*`?DQt!lvo({q)Iu zVXpehwF?&IpJ=?JJ=Zn2b=iuwJHEe4wn%Wh_U(H7T@SVk6%SdB;@S@1pC$ZU?v25V zuTLwtM|gN^pI*e8s(f$npUqMl^^=#~Ua^wlWX5Ha{8ARFLxQy|re4!+WCB@BUOGKm z*w>T$deRZQ8T*rR?2BH!GBvs_kodY$Cx73Ce}2c`ZeM%XX5peuOb^cJlw|%p7G{3H zIZ$ZUm-tM*3s)XA?mM#Z-@T7!y-WP3-#F;{=1%>_vJ_v>l}RnHqoieTzYp@xReI^5 zG~wJS*KHMsLH5f+)U^JI&$Q<_C42OfbwyoUfn*Yg*uL<@y+^B;h_ogj$~gCw^XT8m z1l~1^ZaIaXUcWNEDB{nzRkNgy*}rn1Hq9;Vxy040riv;Fm2>^{wa**wnsah;=AM4W z)pc3}U_@9u8`!mCXdsg>Wt}{GeENRhw;HJ*6 zXw}rF+SNBF)@j#Tt9$8Rko>qZ*g#D8n)|v#5l5uA@IC$U_fqcmrSofw3UX3Ya|~)W zTo-rqZ#!>qUsEc0{`5}qUkvY`XEc7#zrrKJeEQ;j>$!8+XRb^vn6-NMk8kg)E@&3M zV%5D<%kWfw>R+$aJ&!kkKN$0L zTKyE3A4UPcC-KZUYNW8T^YRM&X#ywG_Md-oFX@MYVL|k?;#YER)yLaAn(j4f1<6IV z*6qEpJ|)7Va!+waf3+IeSH z+pVgw(&jaR#jihvZf+>Le@FJpfj=ByZ`&RCbl<0OyZMw94W6*L3BR;Y-WRS{{m5N> zUj7e5u)&JUQ5~7(zAZ(R-3nT}N1?)JKOW`*eW^~=u9`N{Sx z`CV?P(?X9G0l9tudxLV{ zgL~_0rs%8=4pzIisr7jV3zNV7F4aiwwd(r4U;6*|D>sL3?7LW1$-Fo&Z2qt3@53vq z?Cu|k|9AVb!SvrOYL1)ZcJQC}xzH?kzvOO6+M&G*{7+k5<=%aHV%@|rmv!7H{9dk| z9`|Zn)0>uX_S0)c?k-L|KjF_$?#r9L+2|hjFFfM(z*CToY9c*jY{|Gs; zqGOrEiHxI0ZF$iXvxF`D&7}Q)zj8V=anqNmqrr9`7nU2FoU=UtX~&`aoHJRidN1vA zYh0{5E3}l&s;72t-_iV)wWk6OWlPOsnt$@bm#pmWjnPSlpDj~1ENGk+YGk~R!)wvy?oz#$phUf_p8zb>!Mcvk(u)Q)Ts?#KhiXqqbs%x9pCVL>2$F( z#p%2Z(HyVY4{y3{PJM2YiN@eTl3*A1L+%Q zcKzavVaw}VXX>h?7Oau7DI%vUIL3uV+Odf<-Lvnbc=7To4Wn* zYyB3P?r~|+?X>9?nI$@*rb5RPSPtzuoBjE8##BMive=@N>!vodhaXzJIPsJ7QRSbH zV!zvbxnNsfYgqEM^f;fqUD@5K|1Vy=wk%}Z)`=HAo^1?2w$wzgv|cY?U+9c|>0<4h z&;B~G)Si!1&58J5)v`pU_J;dIiD@(6Ja<`tP`Fc;`FHvKIXy>uPMU45)3n*HUwC%M z8SToo)$fk{EK9#~BhTzcdC#}FqLdj4M>05m_iS3=dv~Xl@b1*)7m{Y8W@~i!F1xbT zzp`0)w_fb*?#iB(WzNs}^53t~etGdY&%e1b%P%P!v%awnte=1M&5H@Qrnr^fdFJ;) zQl|FA121W=GHuJAdCp!1eyjH`Fnuu5an&dBx$FNJFH%n1yGU_Hwa`y>G4cQZN;ir> zI>=eP?f4vlwXgnMNWL-skL--;-W#X?NfV4@{bY1iZc^{Nu*}<=1;o7U#a@?a@-S_g z^V@atk#(Q+st)bm$+y!v=?#aZ6Q`Yj)0&OXcb5L@+_$fi+hNX;X^)dx`QtO@&RSRV z>|4=o_SGc^+!?>_m}M;WRR zFTtc-tLW~xoyv=)dar2ZY>nOGoEsDK!S6QLCk1)8D0b@u?&`kRm@Y*B>$-SrZpkyh z1>t{Y>M7QqJ{uk{)))CWTz+q^c5k1iC4a)Sz=``-o+x+`8*ctqIfZ_?=hwd^)8h_rdFRSFTAmSZI7#*kIwh7g++!q-^DT%B0etO@948OT}#A zk+P3vTN%%%KY77dG%Zt9;{5WH=k|U+`t0FZm#CjFD)dfG*!%hIs#O;Yc6Wa_n{6C* zq%`TytqXN0t@!pMbc<2V`ejODA{+kJ+)ZY5_*O6fdYANLE7rhA zlNUOc-zj;VyZvs(W!Z(F`C_*0s=C2A%=E9#XitG^y>uW z_hotC{by}GF3sO?ajxN{FVEiyJJi?6JJzrJ!M)7>Q=3EMzdN667uYY#OFZ{wg0StJ zXde5Pm*v7NCi0IX`dtAkHmdLW+x3hKI@Zz~*ja`f2 z2TplU{uX&B{#lZpFK_q72zEyPUT<4g)HmsE#g3`m8>Xu8d?@ZbQqTSS#^R4c-y)CA z`BJ>$eS*cs%vtx%w)_+KIlD&ueSl=S&d+U=Zfvip*|WK5{pZX{z2Z;!oxkr18BuUHa-`gKqJQJwo?>nmxF?>Ybp_`*q&4?YqC5 zvz|Wb&-UK$zJHwO{{JN}PVkz?6dvU@m-)GH)7sdD8Tr9tiB=y4E52JxpZvW)sI6T6 zzv%n>pLZ5l?7!mv>ECRm~+pW&XpXs_1@6^`5YM(TU&wIS>9mdbgze$XA93R<*BBzFzmHJ4(oX{r>EI zCw}|aZQ65x>D`v^vulN8if^Uy%xwIwo;!{4?wC4u z@!#?(Q}q|wXz|$fUj3*2uC*37`=9;2&v!U5FY)(@U+)dxm&-(jNp9EunVx&`b-C`8 zVEH@t`O04xcJx1vc_sX^W_O{9PWi_N`<3Pi@BXthx?0^YX6wJS-AuaQ`|g*tgdO_A zzu3;+bGCi(flu;>cYZT?%NOOVDsy6i!EDhF4`+pDZH`=PbUEN(9nag(7D_wXW-UsZ zI-jG~&R~<_ZQt0pY?sf>HuF5yJRxf7r7x9gd=p|AzJIOv{LRH+-naVU+{l9ymk6($ zu~gJ}Zpre?hRqM(7$^H|Oy;_^^6(3X!+x{W_>8yl7SAy&TQFf6PbOEqqNnDCEgQe= zzZpBXw0zs;_y0@Gx%1QRRU3bPcJ}too8~i)>3p|6Yvtv1F8Kc4D~HyL-OH@)DZX+g zSTNXGr?TgDso4JeNgsc{Q%>jjKJ#y#@toOAe9P~@FJVcWcQWHk^n=$THQcIduRCl_ zW>2|v>DI1{yaSJS9L(WmTPyIdLv6ag{{7#D2i|`A9h=AKY;VQ-xB0k2Tcm=i^YtWw zhix&;-#8`aMfItj{;qfYY~6Nkfr6cX8xpxce8{e`e?QsiweBV3FKg$dWmW!azarwl zYjb3NyXL!?S@XBwo9h>GbedN8!5|~4?LUjnf^UeYAlIMQKq5{1oKLqPos$b65TkgP>_sH$i`^8UR`25jX8ENv>bj_Ai;S+rO zN@gnE(R-J}psWA1&9D5JPqJp``FA{%{@AzvdH(t5)y-xt|5JXkec1fHI-YOm|E~G0 z^YWfm?5b36T*v$(UFOScFj_9EZ8iT^@6s>VHD7)3R*`kEW9IO#-&^$a;dBk5&BEt8 zekmqccx#0AzLuOmxu&k~S_!Xu%{PYZ>E;)2azwqeDqXQuq~vDJq$@inesR%i)pKA! z@n?3sZ@Q#r^R)XF%GK8*SN?tcJGT6;@2S6hOLn&TPfmT7^zkW0NG1g3KU(VR4&RBEiOGCH^e}%ljzLS#|tzY2Yn*Zs_gwJeQ z>Q$0=J)RZW8i#o=61XkPQL=g8I)??>%aL_ zzg|I0hPyRm$=1@^1@qg^T`wo*M4wc<$5sL+hRE9=w)$@Y?Q@|E4+TH}C!Z@n3Pq6V3lJ z0ZFe!4t$FK!gS<%XmG`(H=6zr)KBgIadTR5#-rEM_~ag0STgR_O$bsu8ujt6%rxPE z@3~*<`sQ!c^l|FSnYNd6@xD)&|24B8{CipWi?DOF+2@$GjO)G$#mGH6*zI=k?~3C8 zQco7X{B*u@pBv+CUY2N6-r1!K9|*r#qJCl8{N6=z9zW0gab~%_^uW!>HtBNywsx-Meqy@_488?toj3)XBANKa_s4zB`ek zux!)1Ll5dh;ufV`zPHNQCFp$Bf0n;p-?!&f*0TFa-TGapFY3Q*5n0Y{vB*?TWslxJPNsK1Vm~+howYQhU@@~rRn^Z)Rm=7U zWTd~Eu9NSrYMjM6+iRmxsoKn2)1^=PshQ}hwU*?SmQ-e`h==}^IjDNEVpCkm{2uk^ z?r-Wu9~SZ!e2_cOI9aTx_@H~>R9W!@tEWi56|rAudNRdL`Qx&nxK6f++~|EfPF;BP z^!FmI{kBH-nisnDIIU_{W#p-BwOLj6I-sjCQ)u$di899zdVS&iXQpni(Rppbzk{EG zf4?k^zr&*2yhN09R*dcQ6ZmZd>aqmBewHlswbPtG`B^bP z-#=;F(09iTi&W<2uUH$=;yh)~s-K%Z+j<0pzRhktyWRYLu>9)%%YS}5+jx0<)caSx zDf8>?q+jkmU8ViRX7wkHUz&AuH?v*6WWs#7B<%F6z`Z|CX&>GD#GsG+k=@6Ce+w-B zMEUaRZmjm`dlO>TX8oaZ`KMwFh3#K99$&(8{)%Yp!`GjuUr79;Fm=hUv^Q_{mCl-H z#|y3InC0_z;p?98S*v zaC)}5d_%_WyHA@JpAG(Gb*RdCMz>t|)%czkt1V~koU^W+Tw?0hf05;agP~CNRnyJK z4r%PVDYzy2O40hulAEGK&mL)e-M;IGZF=eHY_};(f_!JKys>+2$ek;qXU{!IUDbNQ6` zE7_|>KjW|b*3s*aKQI61e#Mh-^=|u_<#eaW|9Jf7jbyR;=9xO?T~&f>J1uYD{>^WP$otzr> zCI1Wmylw4?F*o1vyl?oE>^3bx^i08)3bv2JTt81rJ$mM_z^6m{kbB4X)^wrviQS75 zu2gQ?C3JJC%44xQqpBYzT|H3+7QOwY1<7JwhiA0v_sPjUaNGM^@x7eTX^qJ#XI|H& zGyZ${P&H6b|HwSGBg+)Uj_p3j8d!7vp@8OR<6z~q#}f@NGc!LnUh(xH`|1B&Y^@uG zkGW5p*E4@R$IInz0b+iu6Z4N;6P++e-s2(1miz8jO>-}V74Nw3KC7JJTfvqZzT?uD zLQl8$P2p~^Ui4J->PMNE%ckbYSM8|ro3g6!sX%n}rrN-guu8qkU)#d$4p!D!Zm+I> zIOATya@i?GDK}3>omrz#vW?$ix zsZMU|FRk)6KexB;?yl_P$JfVhfA?!=W8-IWzj>GM*PnZG=rj8?cX83r!h)0ArfRoy z%~h7FbVy$0a(M@Dz)Ah*)7RFm58JGK-SFp^w;7Vs=Z{9334GafJS|Vy%JBNNn;Spt zt-qhEE|n~u3!lhmc=uRm>;)1NhU zV#n$HD=)70NN!aZd&)hz^GJ%~evOA8eQme${J3>*!;Vn1lY8#nD_xb=+I48^{{@o^ z%=ZbWTy%NTz2@t~eZr|TRQ9j3dOe9rx~J^qDgCgxd*WuDJq!1(3ArNvLfrGBXUC}& zEs;}iB;@Z0+LfFzy&*{dQzedBk*Eu8Zp}jC!2k z8XmdoCck+DJ;&Y3yY?5Nt@lB4+kvaBKO>}XoEcQ`d8`)i>>l&fAIU%6jt0Z@VA3efGcno{g6)q<3e;eP5Koo4+*W^|3z5JuBV5 z=iaS+>`@l!{WDx9|8VkI-g{-+9^bjz{k?=S-|ck!Qrj+{D@TQ7w+ZkCRg`;9HjR3f za?N#e>%kZgubm4@3lFm9{@ndJ^m)EPkA8@+PU@vypA`$PxAi=%VHS#yj{Bc>dh1X1 zhtv0OdwSOVzDiXlbCzp8^XwqL8_RF6U(Y%%?q&_|jrG?};&+;CklPxyF0->GZ?~yH z=FVe9k|(PbzY2e8R{qQ(z9_Ly&aokx^KW|BtV;fs>RRDRQvau}T7K!OsY+ztTZMuH zx-Xl5ze?J|@{o-osAEEu;r>PUPJW7>JbCTPxQvgt6VyyD-kN9po4sev!lUoL@gJQu zS@)7!r($}+l2XN9_s1N4OD}2PQuUp*erx;O4-=CXcHG-oHT%8W!^79T^D;_aM@`xG zD|~kC&x9?TcY^p1lT^kc)+bf-nnPGlY@P5dmq{?tG&4@E!o{QE4#NcI7%3fx zytbGcsaAZizy`{5u7#iAs?RzuvuJqqbwXKgg`rOnH)I8mvw&VSLg|FNWk^C!f zF5au`os}azB>5JpW;s+qze{Q9nSZ+ zv)q)(toq@H(Utz4r;^{=rA+vG;z&+ei2R4I8&CQico2B&YW<(I=DXL8(wja^>94L4 zoEr1JCU5DY)mN-Iax0i0*dExruzit@>HA$v&duz;v3hEEP}_>QIUjc`DSm&Dl9P8x zI(+sl+g}meEkd+PtGlA6Zd8>o+U;b2V@FCsXox1i>8W4se{3!NS9ec&nx^shv{STr z;WgKL`H3&nld_Nf_kPm(oM+MTUE9~3PQ80{a#=~R$-{|T%+mj>FRQkj_pehw`gMKv zt?IQ2_dRBm?)Vkm{nyU>fVtSV%)bjx8E4fWnYP7Z?ZW4`o$sv)T9TMMaazn3$*_(q zhW<5Yu{KAm3}<)ZHk-Jr(Cyli+|pA5)A5{ zIITr5YGKdY<)tO_!c5BMSnf~#7;|rTq&hl^3TD?aXHGY`Wndqb9aI62cz4L3u zwUd?~@|*qMU1;jn)(sK48=Y#GowiSw-mAv4>&}C(Ehl#^xc%VgOV2CcQgYpQ_k7j$d^>sZ=Nz%#@N-72<;!kN-*F>WqIAZao?D45cOOXeE$5ua-uT&? zvH!RCR`&Ha0T*uOZqRYPeSKdeI|RRJLvV$)to(wz-NgO^v18)_%z1 zQH&2$PR(6tv5=KzK3i0g(W$iTug98iE3ZCqyLwUTg>TMhw}-9e;^E`kbC=yTapk8n zpRI!5w$FTXYQxn>g}1MSMJ)aQ=N{W$+rT%EEjP{5nYPUB>~*8PzM3<-)UTab-0)lR z%CYw;j|$HP$ZV}z?4|s=*we{v^VOV_{kkuX1@3D#7oBHL35pfraZ0(xQ-IMh!u}BbGb$?;zwi!Iv0v2DKU*>jm*_PAq zGKEg&s`;C|GPIU*?Uid+|5-CRaN#9muetx+7T-E!^1?<+_{tS$CiC7Y)w|XuWR)D< z^6ry;nzV*o;fah*KXnqf2IgJ<;b|*5`DC9(%akkO7MzO zzxzjm;{0ob=eB>7OTAa6H1G6L<;3~=HZu3EOt$F0<5;ixhX!qp2_FrE(**t|+&n!7BYy0oq68)oYH#)BMpS!&3?Th2jpIrIn>Kysv{Lz|C zSIeV~Gc{gCJ3Q76QgeD35iFNc_@3)V-1VseH%0k;x2zQ~{W05@v*g~Qjb{v2XMZ!- z^m-ZMdG(39ae9rd-^bYBH{YF^%jYSZd8_^J+%>8zjxOCIvD)~P!0NAAH%eIMnp@73 z`;Z==eOlc)DK1g*;+25MmqKrz-+B8LUx(1N z8xUWewYtEnH}9xS*L|F1V+W3JS<^RM#)JcTtQC!gmm{hYf+yw)v$ z$(BDgAz?QRYqRQeRWJ4RmVR+LT-1L3z2)y5k98f1!3+H*r?SRObNTuHN#q-=SH)lK z3ZxborSMK_zrrq3|0?3{>i7>ez9y+b5q6VjtaOXjOTYS!>r3C#RH-qFbPd}U@szdgg(V{Vdmnw5{PI3{#^D0Pz4PJ&n|9P5Shn_f#@;`={nt`1Wt~k6 z>g@c~{UWE?E!!l^l4B*wYEQx^8Jb(Ct}O0YAipBJ;O{+wz)YFG6@R<7^X3*h ztYAHo8d)16`b9Bz(I1)H?~ZNKe9}=Rr%}hWH2aa)auxqSJ>65Y=IcL<{=L5_@_y&u zB`!~$f1j`W*|zTI5<5PDo6Rz3=ag{AgzUXsr#g2|@zkR$Hkz%BeX-}7%qi8=;Wy9n z78c5$#_Wt|l!wQ8{za?<}I1^#L z>+jsS+LnWhU8ZL;^<3l6*vGr8Avh%~we0d^mzkL+3(i)YRaTUWxnT41&6--v<(cz> zGks4T%AUW0uRHj8ojkQPC8Sv zNw3={GvMZ}FH73mZ%oip7W*yaKOx_JVO@Od9i0WMw#weT8U28xZ)Nbo#K~7@eEqTK zL7M&Rm)bjTORiSS`D77X=G~pnFgHEqcc|3jS%z1x8|zKhUmN@*`**SO)wp0&L3?W#oFZnMIv_7Up6 zUeb)0*EYP2{G&F}Fy!~!*wCGe+j3T=luG{n739@4Q>-M;{kHV_UlGT?#Qi+la`52V z{S8$=%^plRc-CaQqsN}rn#c;uhXD@lrZLlh9-E|kUt!^&N3!12?l^ieT`*^u z&RB5vN7%;`>0R6NVz0}t3BGpmz|`&4hp)}cn7fSey5{TVjQ4xZ%TDp6*1gB}a_LgJ101c>wuzk&-L9mw zNZ8|vnc<3(`DUkHEZX(^)OS@YjU#8P_VVp`%~(FG`b4|?s@3;v?RK&;_hISE$30V?PX4p}z1^{lpa0z_magMoZzJb=`{h69 zyU{+a{!%(N8Ap2j!r9Z+nxUBKGjKPbPUAu1TxY+cp@ze}7y~%2wxbEsg z{uLP}lVzi?EC{;dy@vN}6W?FHe}Z33Ur(7E@j7$SD(}q)M7Vg)D1W(i*lj_&&aU5K zEx(-Jt@&aaD8{qko!e9uId&$mtBXEfDNqpXJm&0v?8(BUs=|fq{iG&)Fs-vpk+Jw7BgtOJn7U)uFPW+r(NpFXahrLk?P7SnY?)w$ zc>cten+;)m7cXWA;+e~OCnP^S`|p~Vv=-IQPv@KS)SkIK+g%zb`{#b_zrDuib~H0? zJtLXQbk@jpN~XO*3B#!+%DaARyuUA@Yozw8x%OYi_H!%yZZ*HWX13+K^tXvM3i+kR zc3U+cd@R3pUnu9otceTC1T41kX7x=7Y%q6Hmh1I@eA4A&W$@tx-Nv~WyjO57Jh+x` zxs9o9?X?YyXZoE>d2L|WCL+wIyu|O2fXItaGY(s+c%FaBv(e$k?9R}TQxlxzN}f;o z)!KZLaeh>;ZvEo5uN@vpE!|@}QD=gB!ix3#9cr%@-!hmh^38nh)-`fg<;NeV-*fZP z=E%r@G(BO8T2{{LS9472csKuKI_c#e_XFG>fLd_C{y-!ecrKO86pqL6NP`V zy<54CV>kE7jhY93M;=uBF}o|%d4H3{!Q`VhIY(u$n*WSEq%=q3!Q?&l5AF+jMJ6$% zXRqlgUHCJv^z)tzha##C_f5E?@w{DaalvNOdzXdV4fJgU-xrC_V10O0?);+ZW zAMj}ruiSekA^WugXUpc!Q&(pkk`G8+U{|ZiH^s-iShVjNYp?0Ss_D z#%pgDm_EtzSBX;oTl`yj^|7eU>N)v_KOe`%M9IYHDWx z#&y$%cdu3-QREWL&%YDivTtRj;kBvr_HuO83q6P^$Z+p=o%mvkY45GM+FioaB!W3g zzO0g-U+?j#Z1KOA%2d96bNoBsxZXZ8Yk}>l2+MV4#U}$eOWclR_-Ed| zR`;zjNbmN;8y7ZI2cPF$d&&3p#^C8ehAV3H%~l4vsqdB3eKTvyLPN>z?e2Suw67hO z_I+RS{`Qf2r(9Kr(06wi%FNH_(U|pg+Ov=yj{6s0*PqyX-u&2XQ={GI1TSr2pcjQ}rd%_~()cG<$oz&OS9_KGgzdaJ(Td%sU9S&p zjz|vn5i4n6p0daE;E{uCQ-arA%$j;O`)msL4*98p#)o<*9WE}f{+7G%LEYWXQt!+? z8}oKw<9)Am%4p?fkxxfdvR_YI&^Gyk^7QYExAWdv)feda$vE_+e_@>3p5w0>?gTEj zyu^PlCPUEFb6S7L64P2orCaegK`unvtsEVWR^Yr&` zBpUAjNmc*v8#2GXW^3V(bB-6a=InXgcR0URK%|`gsQf|wYqGx|H1o6N_m`HJGy5(Q z_}#Fp>(b6|6CnD>3>EU8DmJAOWF z=l{?9Ge{^!@Bh2U{U;6M|8ahrT7Rkb-K(q5ofvLKTl{}#&SYM2-Hi@u>{1XysVl<%?p~*Tzkf<$qcF zdCtdm>n7~5(NEeS%JXdf%PV&~x83{wsL<=k)gt>VEmM;k+g-NK^IS2r@S?}+(sgQD zGk3g9S{`Z_^8W| zMP6SI+dEfs!SScr-`<^9Gd`60ZFy&n=z)udXRY2v?b*7pZjbsRuGewzZBt5~Ec(}D z`a~kv`+TQ{=<0PBRcF>utG}^EPwWsg-}>s@%TFX82eTcO+O4E=%|++ll(T|gU219r ziz9@?Z%#F=I4geU$JJ7T|hdSp4W7ccacoxI#4QCe# zF&eeppV9qoZ{R=PU&g;8Jw&vtKYG~ko!l8G+HO;ID)4I#>%v{_3@_dJegub2uew`g z^hfU1oeQ_NEljpN^z_r8i9bKor+eHH6KoLmj7u!-2VN&y|JoO`>(jywzlPJtqWb>?hws?e0`Ge=1DCRe@yOME%W`z z+lSBBm`C5|2-mt=5}|a6b))*wQuaj>kKM<(cckS1nd{Z94hXXy%=~tulKT=&zs6=-N25fxD_Z_wL=? zqxT#%g!otvO}x;%t@&rs8nHL+&Kd^Xhpw}*s@`T+&0q6ojpj}nuejcPTdx}7QcLmt z<{zBvo~2x^IK1UgK(YI2edV9aA9?;;HuK~0v+HNf{qOxKHC{-6zF>XLud|yUi5frd zkFGzZe{lUTp?{&9U)Fo>DRTSs@#Shyn+TuJ9Z$G-IeA;2Sg}qlj4{K~aQ!`l$jjia6`nC?=rWV|21xHX#D@oC1OK)>5FBv zSN*R(wEdpYzOUCl=x%TO9&B}bRkFIkM_6x45X}rQPb3q)_zWR>6i;7nWYjVo0f4tyxW3y1&!+DG9 zd@6Tto+6`N_eoV))LH%!@02P3nS8acbzN+Ky7$GDPu3bT)-g6V-`YAVHroqc+IxKY z>1DPb)UVC!I5gqK6bVnmvK=RWay2van!0?Jho;XXkytx7kT=p{?lUXpuEXvsVA(wyn9A zd{jJ6!>&v$M0(LSCF5Vh`&wtKhpJ!wbLYb~>EHQp-uHArnk!J9S9yN1c+3Y4b$!`} zdby=-LfqN*vca$IWH03&e*InVCv%oW-ebK}^ZCl>gx(3a>9!Wglw78@gERK{`L*sJ zrWB?g4Gn%(lYQlUmgIh;+&AB^#VDr~NX^k)rhj(6h0NnE|(++x>?tMm0*-Gn}0KRdgJ{cv5p z+ZC~%t;aX#a&}d}{~@qT-rnV;X7bnEYld-YmQgXzoax=CuRbbaV|p^V>dOS(_qtzh zMc3ThqbpQcsU+C1&6M%r`;RMnGqVz>`?Lx-T)8#d^Y>l$>G}_kFZ{c1|MUv4y>*jr z3kombZjI5I9irSGZ0O!Dx4$yCHRHi6zV~y?4G;Y`$k^$&M}CQ&LALIlE006eOtYsx z^NoGj=X$m;?)ZTNZ8!F$WR*^@KhxA^m7`m=zSd?_R{Hf!fAOmAYd9^$r`q@H=#;EG zT|L*}_@}A4YPF}{-TJ;Y_xpN9z4MlB-Lt;w)uj_0^DMPbub22YdF{@9otzT0 zrug2vCe|8wNg>qi7w@LDnd=I=w`k0=o^`kQUgXWbuWOZJj#MP6Y<_;nc4r^&+9h_c zPv5?v?XXfZFXq(C9~b{9#%6cl(OCIhVA}SJ`tpuUG50uP&Mp7%aWZ>HNRfUke^e-M zi|UE<#SZts9_5;+6uRb4+wT`5&kZNDaql|zP_--W{_>q4Qf3GWUQD|9c&&YOquiGE zgYu$2$_MQK{pr?SvbE`gOJd&lZJ{EjTaO<*TX6n2i_kZxB}?u|=ihQwpP4dE&193_ zjK;$|BhPK7_y6a{2NK@vqB%yF7hAegEmRa?2E^OBa2NKd%)l z5cDEn_~~-L5(DtDvlhkNJ&#GUX^h2{oIWKf~7hVzPy{NSZ`m6@lv~e)pyM-&HqswzVq9gRm&=W zkG+2U#rq%CA-3k$i`ITzd*ah>S?%Rvo3GmNNOQ;XHJ`Me z*{{2zNMhH9A9D}w+}r7J{o(H8(^rIO-k2nLk_it%VanU0yJ|3RVF&faBW>9$;H-wZOeq>%B>zg>Ccvj zTkPE@d*8Xrvw7k9*RRblJz93)x&U-qcj$tl4A_ zwSTQFQ4x_pt@92B8M$=@N*Sgcn&!x-6m_uqMdzmnj;yQ17ydf2`R@6meI?ren>R-s zT-yFTW{OKtSf|vyUXGPKFHSZy3Y^~0$~TQ&VK3{4?_5739~HEpRnqmE9HF-~$kD+4 z)cnr0B=^X+oQ&fNA{zB-Dn<&a4bQa#{%M;pvNULoQ+sLap}TZ*(n|J)@2B&dZRyS| zQPZpMFyfn{SoJQb2B0 zWTy+gk+bM?%?jRsdi$kopJX%Q!^10?qrxsnb!BBYCYoJM+nTw3(zMl==H9I8T6vAR zHvDp%Q_(`%?TeN^?G5OYK2@IgG-~rF!>0$cFIubE&zR^ie`3)(hX%X2-@PB^efnej zF#mw0?GE)AvAwVNe)4+1`%h>6?$5G5k0spi9%ZULFoA`qr6win)wJWv)fZxI)_s~} zE7VDl9>o#O`=|9j!<( z+^@Z4)kV0}OQu{CZK#_V)z@pm{4+=8`N#b$ofpm%?mjA9{UbRmPh^i<;qj+Og?I1b zm>?s(@#oAlefs#_Kr4udix+B)?TtBin;cE!ADH_v9zuBit9NN@Dlyv3>1)y5jzAX9eNaoWB0H zZVNxDuMjllTc~y=;$KV8p@4Wdo5~~R9v_|mJam()4Y=kYW+NK^TKb6NWS0Zc?`54% z2}B)wc&kZy$N!G<2}->F=C5>LJeR*9A5fvS@0xYT@x$s|3tgX9|CpluJAbi7jz}0JOSS~Q53CKl1XuW1avb!D?6q66 zo#Esr_7A>GS9}#%B*J}i(bMXmQ*RXvy=ThwYvPY4eoV>I5t8&)J+ADa>ZyBB&Sv`Lk1wWsSC)nSe|hho?N|QW|DTI3 zozz{t^QfnPXR5c{yB$k%f4?~KZQHiD%8PH`7TS1p>7_>!^=EclIUSsIJC>`>Dn?}8 zAOEMpEA~fMdQS86+_aFle+l3IZqxRMr@sbIZeO3v{YXT0Nqwu?!8`4}{`x+C#Wx@L zsIA%D#LF3RLHt;c<>HUo7Adi}W4O=Q9-On>S9w$ZD~-)8+gG2R6Tm*>@OB2yv!CwI zziUubcyjjr%XOE|hdKWKyZaMkT(7)}n4xll8sCnm5mljyndk1G?YLvTPU37&Y-v|` z@o(09kB-JJ|NHap#3Ki`+wbbwlfCYbp!P@MDa=Lk8;?%$)K2rr^~*K$Tl3_2ZSKB( z9mh0%J5tr0%Uy22SS4J(<(S*oHOHrwc^ti=5d1o1qpEHWzw+hZz88PK`gH8g0`V6e z4d-P3te#n7!?J!gn}S*c@4m47at@A#u@fI|SpVQ*-l_R6ZOb(}qxt{aS-%j>yV%+I zX=aN+z$*6LnLP4O_9Yd%zL<5~E0KFrN5;oKCFA|Nb}K|P+mnt~`V_ifUiJFijVY0P z&F)^E8n@eO^UI#s9BN&U43_RFUBa~JjY;BUBc`|@jz^+%E?Ql3_4%V67br1jdbpKj z;GqL$KmW$AQB+KtbL!BY#xVc+VYfuy@=h&ptxE3QQ1N+Nr{0Z!s{=*kjH`;us?R0M zaCb|+{#~_OZO_MrtadB;|B3S)-Ft{{ZO-}r z&cz<9dcPMvwnP<=PiGD`rIwooG(mC|GK2WZDHr< zwzhM#AN1GGzJ1H=d*N}bxffR?_Z;gkQJdUnC~>Xy+{)rpx1ASGI-@zadYzBj?s&EA zr1o?3&!^9={}-@hM`=Pr_C$N7Q@PuA#E5O)T~)Vkx$m)Ech{_0`&_v7!(t82)P-C- z8pI2=<0G|vO9PZQdq?k9v5vI9%zrfL=h8I>a}UZb<_pNEDKG#2?xW@IUAxQg9((bX zXUaQH4bjEM5})oCOU>yDQV9yOkbW+)gqJtS)A_LP6P|?^c2}45-1wTjcz5;0tGPzI z?z&ChU1fJ6bjn24?oCP8)xUoI%FA1@VxHrC8{eysqd$hu$u|ghvDy5;!{Nr4zn`C# z{oJniB4&lyO7Swi8?WBavR=R6F3L+~ci7jpaq$u|I&0$ZZeOK6QzLNFscHpT@#Yc@ zP4lVE7gOd$xdg8GwZnYt8NOHE5$BAbN=>#j(m!%t^NV)sTlJ8D_7=mYmLFT6XX^>) zm`e8;P4!AMnGt<8H{0j)^C#T9x8>gsy>Z2OzjoX;~@CjdQ;@6YByeE?S7Fg@tdUkA=+r$+c*EufLmiKyc%y?qZ{W-19%kN%z zJ^%X!*3;K}_{|PX+oRlA!!}nldxEKn*|oV6pIkTZ?9eyKIXBZZO?rim;F;=^AA@Ra zzZ_+_;+P*A^<%5=p7IHAt~_6RX=P|VpMXG{{=yFjFKw|FxmA*w*|}R{ZN3p(Qs7fj z-rkFgsy$yG@;$2P`Lp)qg(Ty!RUug^ZhX7Xeq12A`T=`++3vHN>0Yg(Ju7X4SFFFD zxz?<5Z_wGkm0x?mvfkk8iVV~+)Qn7YvK$CS5(n+bxzGv2jd&}dvhBKZ+}@<4SsRa6mtEe&dZJlYth-si_G{Oo zl?6{FWtONXUMZbmY0l>Je@Q@8?xe0ZO-i`pNqpcfv(??c%yq ze1d<2m?mWy zupidVoo&^)$?KP zhU%Jvrbor6*;+-bb+`ndR|u@*@;h~9(b?IVQ*#^(7HX}~H)OoJ=)sbmd7sl(Rwfo) z64rgmv}(HBty^v$H-wZryL#eHC1*`p`C_vFvZ>*zu!IF{r+2LLh%P7OOpka8F@b+esZ=Ik14v?Djs*F z@)d)L&cOrkrFkVz7>le}>qdxe~Rpk9%w{NTI{*;?WIX)^* z4_)TSy?!UBY#G-ev;33ggccL4#ZTF-OSDwtoi-&ZPoLGNerO@f$<6Y%jeHkc|KHtp zSACjA+vkI~N_Q`xbW3%zN%(^EKb8k>itF4l$7;)(#GAiT*{9vDvyR$PZy#XOBF42+ zgXLpKtA`%fqjSstHGEt2dS%)_-xia(wx8tE4osVpzb9%{Q|R5SmFrIaYfrGcac|a{ z6|YqfR^{0rw=U$%RkME5`6IT>uHkon(f8DM|Fm}e=ldr+tz%+Ae9Le9!+RT7e>{Kj zX$EWE5(azr?_94kw(RTTeo^|zc*lD6?-wrVzEJyPc_+Ja z|51nE&hO?ueD|N{hu@+6LwkF6*RM`;-MzwUhkwC$`xQ4jzWeX+XI$?aB9#*%zMWm^ z@L87a4M#27qqvL{tygYdvG?-+6x+7e5bG-z`$TkBHp(lT7W2%~(72xQE7V6qNpF1mM8g#E4?OCMI4imW=tb6fAPQSVuA1C2P*w}{aSy2(x|g4D4VwDMPsP|f^rrne>Fbky<7S7hOfC>}4^~@$chRMnCrsZpn6Fh7 zkCkXFzM=WZcKN$w>lemfVxIC& zW9|Brk1O#lS)r%!31U6YWu>}fQTNf(cdA!p2NY1ty3(s8^R+CtFWbF%uy6Hh7h63Hu z4ijE)dzkm8SAEY4>D#*tvKJiJZkj6KIB~l=LuLLU{pRnp9rJu|fQ;N!oPE=nTF=C-mt>MFi`3B*;#j)>v2%uP?2Ng$9+XHaJa8^+KA2`KaUy%?s%201 zCaviIxaM2iy|l~DJK`-KC+?nCXd$t8Zxx%*_6Oz{j7#49n6YpD=7ZSUs<#5`d}Ql((UXe!#CgAn3ue%cARu?(cvfFw{C7a;d-`4;SDAW#xyJ=-nJSJQs?R^CZ?20! z_t->2mT&Pv&K>s-oNwy8^(}P=)6JX%^H2XYHJja5@Ga-ibAOdT`&w@2n9TBAP*8ei zNrq#*Ax}%ao7l5pfdaqZ3x4WxEV(!TnEs;v7iTXA|I^#CMO8Rv+F|{y?>F_^8F)f< zxhC;B&Qg)s)u9&kDdaj|42$W`yLFQ5HRBn5Esb<#m8w3ee0TeEs_gNlrEY$U!!}6s zHuQ8^bh~J~&XAkJye9M9<^$I|1DdkaragFT`m=&YsaVDJhgy`mo3lU-kJGtkNvIxN*@m~e_a0gW6uVzSJf})THDtP zKHB+b2k+cw{z5ww&pKVH+f~we(Q$5ZDf`sWgkEYVkuT_?^-E{h5k;A#d z;N%)D{mb`GChAPTxa^d-d!^EiE6nzfI5x&Oo-9yly<4`qbMnLGT8UfgyS)3(FBeM{ z+beu`i{`20-imeqLo^qPcUrynEu9r7#vjSJDz(e2bJb!I($hps{&RWEMgN!2Y1-?T zxoVol8si!NOmj9QBwelazp*xW=Bux#ZsaQkMjui)7nMnyyrwVrT0z|UoEN(uC!TEQ zm}cgGVrA~N>(Wym-fvOfw!}X%hxM=aYHqD9ce>{LUyOK~dCreTng6Qyr%9iduixkO zqlU+;!vE>RRV|axmdgJ&Df|07{_m?*p?8GCkM`|5ymdC?t+%zGQi2T^T-WwzTq38i z|B*sggAJd6wnLrYylGl|UoM|YW?0DhNp9m#E$$1+Q?(hD*iIyFN}Eu{@t1S!#KMEc zC96LLx!-wyRnU79-?8j<@=VD_FS1VXOxnEJ&Y0tdo!0b)%lDc5zWH1EQtE=|Q?&DT zpUf$L9HKJkiFe*=-AbWD$s1oM@84PU^pv(HmvfErk^1IEt2Iybarf8$di#3)|J$C|2d3m#HA%wyJUR(rU(Qb6kJ=7)NsC>3CwI9odEu4(RlaIlk0n$Dp)Gd)u#j&sXj zlv^>rxBJ7^b7B2|^NM(3BYWis_Lny+_1-tgdJx2%@Nmz~idoVh-W}E4@Gz$#+)!9Q zb6U>Xzn59$6+DjbZZG4yUNJ9jt*OM8tiA7QZ?4a|I{SaJZ%(A-{OT#QZoIhjvwn4F zZ1iRAz98Y~JIe*M=C&&ceO;BB`#tJ()y1RhS_|it>&3o$BR<=|e3A|Sfj!yE zwZGoj`K_rU#~koGK7FByUI>ewTTr9OPs zy~R31$K4>c|JL$Ve@Y{n^0qqZadpY)Wgk$DVOl?V^0|3-o7#eosO^|+&MC5wZI7M5 z{fGMjD~#^u@>^`tQk6X>H{bTbm4fMc8V3)x9y{mQ?6_XI`f^oKlU~=)oszp;G&SG8 zQO{Cp{lnwylhR=^CsA3pS#lPW^~_m6MfTn-TE?FhJ|p+1T2JDsNdF5g(ld)Yy&f$L zkn!6a`%m=ct>w?IPMdu9%769nkHSHdH}AOh&iZrx`Kt#yUy5GdaqE%YPmb`%4TsB2 z)@42YsPX6Q%FDB2>N2Ct3)QAa-`&%rHsSvB&vFmHYd*McGW&j%m9a(qwFO32Hl?je z-n##_R~2>N)ziPup4T?X#@#yc&c`#e?pp1tSQxP9ted;*MGq6Du1njtr8!PotTf$y zLduRKtks7C(mB{3PT27NYSvbTJWky|F85fDdVXP?@WOpT%DPBZYqp2?@(NvK8s+Eg za&;Gf&%D$@_QxxOtE^t)jXlN+cbZld+uHG49k-3GPg#D^E+zWn-b34hTDn;`hCkwF zsS#Sgqv7+f%FkbpHqKe>n7;kBl#J!N>-OAx|4n?HSbciqmim>+Gdar3n9d(e&`{{> z*!9EihVg|*D=%Bl-DTy^-THH9aFxf5=?#M2CzQ|Zx|h8Fgm+q;`G)Kh+~$dXU%$S5 znZQ>z|1Hn7Gl%uQuIqQSs{7ZbF+G>PZl4un*|pSX zbFI%#XPovrq3l`cuh+*9E1jt<%`uy=XmxncOuumTJ!N?t^S2*c=D{%Q_Rc&pf~5^3yY_9`dh>pLJ^bNTB@y6$f;J-@Q@%b^Ls+$sw`V2wDeQjbg5MP6UVQfNnrbs7XI&nz5j{yT((V@ zPF78r*|kW=lE3cRk^bAtB6hQF`u)Ei+EE!O_b4*2^MNpP&CN%@S3f-Hp69vjQ?m5I zmqv?p*Z25KwHp4BcD(R;{iCA}>v^j7dYqSxcg=OayxENxwyTj-g4%4Vc}+c zsIx$P>GKT6OAjlvmdq{><=oo&?NgEI&l=ZC%cb#QXD8iqu03^HwCL697(dT%%*qlG zb;)bZ9v+Ur{#~WX!>9YjagNDzL+q6W*|=>5l^<)Bzq*yC@Zx;s&d_at8fCZsYu~Wm z?QBHuC5>+wWj6Q6!AE{Q||v0YFlrATywuc z)U6`u&>zPo30zm>+ngjBtBxJ>ywbTvw4hbR#VYC0oOK8II$~FG?eg32r+!55xra)x zRo}*=|GeHWn0anwc;UcKUG57>iIN>6(#2{>u7WVdOPgI%M9wQ?)nVA9~ez_w3Q# zcf+)19AOBy@~P)azSB25se6BP@1^@0>i6zn%{JQm`tT>Nl%xio=oI~1HS&I&j@CwwCms{H92(;k#I{-`Da<VaD9y)h2BJCvs`cUhrwF z-7mH^-g+vV=lp%Q<56D}quR_9+pc#zITbA|Qd%1H&Tcou!ot_vYKH%Izii{!_YZhj;E+!T#2{@L3%PFO5`v0eKclX>&x!){8#N8anr zQGRLq^^t#+yLHcdxqGgMcg#!QY*`n0-ne{5PnbXN&7a99=RIkB`#ws4pVikxbEZ|_ zXMw8s;pFB%$?}>V3w{_nBB^Eay=oqxkOnJOXV^L0fMu_AkId{=b^0jv# znr!Tdx61kd^>5Fq_U-mHrGYWO4_wXIyL?^Uk8cbAZQr}PAygCZe5FGg$nEt4}KTW-*?ywoH;?S99QVD>Cp275%0yx}Md| z{7>;(dHy6n32CjEroub+*YhUG^cr$2Og+Tg!7CUt)1ZA-i}D;Um-4mc4y|DFXy6)|9ucB`*+9q_KAnZ?yoF2ZhodQB`~9ChSQHzziS-(x_$}In%>c_ zp?|T|^-rB5cV!)yyH1L%sL*GL$oAxjw$MkV0{gk+OqCXUw|QAatu|A>xGE$`t2-{S zKyF=Q(H^cB0(uQz2~KKX)s0WOh*zqyEpXAwY&m~^lURg_()RaTtwof+y3MK7Q)10< zc~g3rcjMpl$Ca0y5_`nO-*~vR#prFk4U2ZEOZdU^k|Q_1-rsE7;&)-9!$bS|)g2cf zInVpGyi@T1%?}lFu12OR!R{X(S~T(hp1^GS#6do2rQ%d8CizN_Bfm7bTqYJjI$>G2 z#J=y#ae*~G^Z9pK87?h)?rrGwv+dQ)8SIHG8qHp`nQl;h!^M7RV}Vu-$Mr+H9~f+y z^AD(hVE)s5QsPKuM5FHxruIUa@*}k$J!}NeAJzWIwugQGf$$H^f7t#r9H@HBem{84 z?Elt&P0jkx&di#+c$vETnuOx8sHkbP=FQpA6n`!yM(LbIpQZ4!(jNaA$Cf=+|H1I| z-0q}?Q@y)|m7kp{6q4CfU$^ep`mH-Z&!4lQse5_lZ+pKZXH(`B$`sF7t=qm#N)x0h z>qt%1mZ0SyqmquyvGi+d4!_poWSUh~bcn0W|MR!~Q#)p#w0Las%xA_lf72kJ)BYbA z1rB69?7Ca*+avaLR=~2jlkPgF-h99Mf7PbzcUj8Zcl=9di9K@o#?Ft`0(H;bl+=_9 z?;m(K!6H-7bJJ-Jg=H&Px*je2_}p=78e?xq_|)y~Q_I>bFO=|a74v^Z*Ww|PP|MlM|vbT!z z75;zK@$~)SnggGn&fU97dU0sXm7S0K*00y={dYrdeM}DDw_Fe3xJet2KH%DDS*ORf zRsMnS7K{Bs^Fn4X-QqJdP_6Ipla*6^Ejts;qSuW~*#=uh@}%T-G>B zDuey^ngy*I)(=v1bod=Mto<=*8+Q)Z&j20)9&hJcQ+#u0e@d~xtz&%LYn#&cbzG+9 zYclxWmY;O}-99V4#H2lJtx$ZD8T0xS>Cm+)u{_3W5?y0;+i+^l{4@8fE-6Uy%2ie_@$BWy1ct+Q?Yf$v8T=HJn9 zs(2&(>0ZTucdvWh+Z*Pu(a%(wz`JCg{Sv{COCz)1s|h~WPnXNh-lO_eVLi)6&eN|? zY^qd7%2?c&!F@GwmY7S1|Ls@rN}OzGlwEn8 zDQTBiVU9(uZ#H{qC$gNpBOQfEjEwgG~_RMH*Z?Ez4(z**j zldSC;R)_VOt;n!luDfK7{FVjVZ)}lWJ^4V&OMmMX+U=R*&!4isUAS}av~O4WUkdmN z^Ua-ds`FY2*V(-f|K~RJY;Q7qb#+VYrh9o&0+r#J(w6TP=LYOwB>R;=>iYff8T?oO zZraj+s?OcYp|)N}cG1TDJ$)B0*n6s9yi)JJ{DPH+_wqnv36Jy(b~D`5latRa%qp01 z?)WVok=r`S4KW|4n7u0BvUFp8hNGg6|7{Ivvt`1s=51L#&u4d3J>%Pjg*zsF3$)(j z@%qkT{*sPofu2@QuUDwgb^4vbIoIv+3!S-+-(PTpyxP9(`HM=iaBlHGRrYLCeJU%4w2sW7{XQ23r{3=KdzdS06ZI=EX$^;!iC% zpBH?(WI>>R`2JN@u_n9cZ8e|xU+G``yPr<~YCqQYyj?%%U*mt{NITPelPfhmdM(osQnY+nuHW|`4u21Z{SQaU} z+bE%0>ai%Xe+_B$Mz9XCwyL{*qmvm1$Hp@vp-l-}#bv(iJ98 zv`n71WsZ{c-s|uGi-tK12R(`XxX*mcF7rh9N!1}octe+StIIyR6WqV+5!cmbsb9>0 z;zLx*gBEWp`#Nuh-to)I_P)LQKD8{p`g6-YJ5S0@EM?|5OhOX}X)GaRA3rO}BmVuD3vLmf6h{OjhK>>Ky%e`wH^A6m-) z;`hO zPdSXc=)vkW|06iBc^P!qX;!F3xZmOlvpnnN)v)H#(b`Gdk8V}&Ui*O6B*i4~^II2R z`AW{3ch7iJ)HA1VJ-FG+#QV}YHuj9`7tc&$eqO;QY95wxE%BbScG;6$iMXD0!5Y&W zjL`ze_mw|ay7&7;=Zb#e98t#YXOs6foi7VnnIWfsoN-@k+TA%dC%S~!Tukxn$@ZKV z68|&#aMYpltMj*Bv}@j-X)CpMyN%njWUcetAFCy=a{pgHd+H8$h6=`*gUr)J85kTc zes{aMt?ho9-0g4A-z@tk*cat|Et5T0>GzK6%t!O%{XG~y&EIy~!T4>-1yAw2Uj!69 zIt&CC9qE{?;Mrv&x#`J?-~}F?ufJS!w`b-tI%1&QV|2_y*vIIoiSZeu<2Kwnn~oT1 zui13WdEVzK?m4$pj8mg?ww{fBSJq#B_jw(E#RX@%ZyoMCpBwg9ADSHUe3oxGt+`#${(C=X6Z@p=Ds}J{CyqfXY&*EiB)SNQ6*_$=b%0E9+DIQaDGBs%4rjQ+z zyu$xJpY=L#$IEHA-|cuk@3&mVi@<%^*B1s)&+E7SxPSS)%6G1-f~QL92fvZ|}X|4;K5|{eG1Fs^;@ue*3>(&aW=dcxLkRt-Rxh2@|*_ z7#KeMetvUXuJY||xwqG)9)H1+YwdrHS1#?J+dobvi-${s{j49aDL%LR!6I+H-9p!5 zcwevE`L1nt-p;puyWh3yez*N_LAn3%D)o6)&vuH(RXr_@;Ob7iIeWvSwdF9oSLg5h z{cw4FUAK^~+Zv0HLMmQd?UN3-iLAV|NQ!ru;WjH&!2su8jzqBAJE9cU%V0~DK|O-laKk%FiE}D6IuLBH)6||`3e;W z1Q{3@7`A-e4vxpqy}2wfJ_>J_@`>Wa|iam{YNv$kejT^8H!7rX20i>u4;H#j=C^-7qg-D&X* zUUqhdY5Kh;SMO%4Kk>*4y!7(&=?OUZJIiiO1(vyqftuuHxm?>-Q>N&;4%qTDXMuoR(-@Oghpftnau;u$corM-63Evf9aoA0qn=We2r(kp=Dp$^1H?NnfYx$-4OQYRGr5n zBF%9*d#ZpR%S0DJU!ILe1pS#hRVM0a&wb$|epDmOZRXUq zF{;|`YPErLK7I8%s_&0wOZPa0RSVZxCXN$#*^hI1v)q=;>vc{t{o;e1w|6v6Ju zLqXFv&JkUcBDy;AaMZPp^K>?yRGe;Owqc@gPFi=?%~e+0HqMoOlOn$R=Ha++8|O32 zJP~NOJQUbhI7fKS6OrYXha=Aw&a2_lSkjT?rLnZ9NNdFsF6lDc(3Y+zhZj1{*-`NL zU^l-#V^hnDWo=QfRxEe?|E0xkmdMKTUyJYm@;27pa>>nFe8&k@z2er@F^{dxcbwEc z`g-=h*Noez9+O?F6)RWybee0~)0MHhcb>|9e;UNdUvWZNPJ4mWybmF3Z5~_dSDe&l z6@6ryUvb*{-si^tnn$1On;sluNK|N8bc6lg*1O$56XeSdY}MPbyV_~0RH>9n=EY^s z)8%T}c2xXeX>mECvLuB^(lG7N6v<*Soyd)8ho{L_^T}8iK07p3x?FD6hbKp8^T*e@ zsil8fwqTK0(NxJE!)Y6PmHktHa*1dLu84R!U!j7Hhnazaq3r1lPzD62RWKv$uBuXp z#-tOAI<#iJNb1m>cH>cp_PifL9vTymO!Cm0`6S3gbLy2#9@=xi7@g3Vd}h-Lt=Vsi zPH0ZQ^XY{4{6Ab8D<&N3(pWX)k(b8GDVI)Zte*2pYsHF5r&g_4HS1N@ij~uDy;`w) z-Y=<)6%&um%2+k?SyaZ#sn>30te*SL>cxu5=XSkVHTzxFi5r&vVB#G}(9vSvOFi^!aM z^;$&s+^=RgGA5thb|Y){+p-&()9-$}kv*T9rOLk_ujex~HnDIEYWe)AZ+gJU*vP=Z z5D~NObP;i-^2^4-x@S>7to^xxTRINz?vlW0@>F;K2|`tz*qnrEi33cL6G zQq9Wn8Epn;ao_gN*uP8u*e2G*7UtN;zWl~p+1p~+zMS2go49Y*m6p=)cXNH1db6w2r%_X-^$gh4hj0GQ zEnXve)S$KEq;7}!`I-Ce-#*D)E%inCLfks>ReNma7xDzpkhcHsf408v$G+P6?w{xN z$r|N5PUyS1ErkzMuL3 zN1t4N z|Mc^k-yUYn9$QYN%N$JE_4b|X(s!;)Pp7Yzx@!BgCm|`s%kF=j%KR2#rmF4pPbCLl zv5w4NwRK~#)W*wOO;WQNlxO&qmq&RC$4YZ8zP8oGDC_Lg6?5fy5=_=VU1&MC|7>FP z4BlP0Yzp7Y9<^EcglCd_nlq!V#DNnTzr+?6Ctb_-pJq2Sz>$OY228P!MgkM~_`W7gf zn08%gw&O|Q_$ch!!+y-5QS;2hpo`lV@XBf|;I@5nxM7FpV}WC5(hbt>8a2--yuLVr zpGPOdnVsu}6aO!R7QvoGCS#8~7n;mU7BuMbBycE89A;T&&}_M6-H9eMmAE%f@@#8% zUr4^!_9Fb%2Dv!x)E@C7CGk(}H|Kvk_u~9JC%ehz?E7ZF%m3tb?rDLc*r!?ib=&XU zf75F6yZ@ily>CaZn$G`!?a^WTsH81>E^@hPORY`Wvgu+JUszKAGzs1OEmrk^9$gfR z=KHC$ciV|iaT8TT@7$|RX}{a|;#xJQjEr^JYlq)Aww+tux+hcquITdMtMAsgEemrF zUS0ih)xwoiuU+X{CSbx^UK?ExBp-;ZNiI>L!X8FOBiF%USJt>)-!^RUtDhcD;N&fA%iRyFwe~|4f*F z^-Zbtgs<16`2Xu3ymHE``qO-#wz=l-zq_uqIg=9q=J>iBo3zWeX_lpDicR^oS9@!; z&G)5Yu`B2Q3M!9X`9;lh{j1Ygub;{Z;hLNr{br^9w>x6h3vW0_zu5KnK3}@;Y$pHZ zeMxDK(p8%eZ?oR_X`N#0y$MMf9;RkXE=gZ{!MpPX?@pTx4`Z_@_jk3|J*&^zXYSd? z*pt9yd~}Xi)1RnoXLsHZomyiS)xFhb!#k(^Wn8c7%U++K*YT@f?Zu(60vUz{35@$C zgWp8tyxG5ack4y1MTYw|a{rj!tK3ofziO@g=j{5zV%g$#+2=&}Y_42$T>kF;_#caZ zrmy)O`F~F2{Ez?E%|HL^=bHQHfBpTw-HWHk=ZsEG#LXX@iVKPgKY#dV%Ic<;CT6!L zr{<=m#m*g-E99A!g^ju8!_4-*k(m>7$L7lVs$Spq>}p~Au1Gd^Hd`4RY`nBnRO0_G zW^V0L|D>nhd$aA?QO&6MABAp6J-Wbpt6tyb?rCOaRrM}uepU5uX=Ya2h34L$$S+;$ zpO(D*xB36`Qz}8tIHb~({@(YSvP90l7k}iKQVz>1tYbC|> zf2!7ZeAl73t!rN7t%*p!Up>3}j{D2weqBxN@4do04;j?{Uc0vNyXvyb>#DhY%(uzw zwMp!|U?i=z`r@;>XEIj4(mww6tAEeyuc74=cG-n9vz3{OyBw>1IkVKTrZ4tokLa<= z6VeeK{7(dVg8l#NNL{_>t}`vgZJh=4{MQ0XeTQXts`IOa#mNN~byfzt9DCB_6Jg|i zA$G--oXYj-tK_$=tuEjFFYxcKkXhvyHyvNJ;qh zIpsPT`@C%AC$!*3QQdOD0(f`=%?sT=T|9`<%j&nH*Naoau`m_)M{w z%`(UF&`b{t;nMQ9zINjyC2c03(NS!$`5w0U9RA}oFU(yk8$S#wH4cq1N;l3 zug&1otYA=%Re$dC>f5?_zQv}0TvNYTp3R**)$wM$zHe?}Ca2lU+pgc&O-=k3H0xbY zg7hT8oeIK6%I0%w680#47hY^I^P%FOlu*U1<{?{kZNqCPzbIVhC1j*J{YlrE6TFfY zc`H})tllYNQ2O5cVbJ;IU8x5u6(t*2_vjhN|Ce~ZI;$l7h5zdHy_VNov#gBIyw01@ z9b|ZA*=$MckWX7z-40byN}gceo;N=&Z(fL-am+g-`3d?Dp7#VDW0Y(*w6CAgkoe|h z-HK?_7ec!4(xM}?_Z{PYd}8*aOEslAo+njzDj65ZPf(PcXc%_tY(V9iz_QP~PgS4I zeme0^)9i*LO{Z0o>VMhYh?<*edh=L{m)^zrvYzjA#3v~Jddpy@zSHe=^lG;D#cz5SYd_r+wbFL$2qWREb4 zHE{i8)^_};ns7>@mdBwNZhlUGHD$J-=qwzE3BYZ#$zdpPTq#vj1Z`2M7l=!6Hm?*9szQqPjUWZhMfxVujp=531l*>EZRzCyU9>W+#CH;aR;>k68! zZ65qQ{>mVsS@z9+h3fuOy`{hH@qxFXIxBgA^GXEIzGU}z`J)b|OUYpJyQC3wbU zy{DSR!u~f?9%*t5`&Ym8joDQ8mUVj0=MM*u{NMbk+W(QBT!n|P$JxamyARwH=2*ZG z(HY9OS+6iPPyhWay_D3vUt*2Jzwhi}0e4z1%>Vbd^mE<5)rmI$KR)|^?CwV? za1pC5ZOyK3{?4YN=wnenxU^rB^G0UQogJSaoOJ!EX<%fydBdiS#RWx=&o!%yKYf1S z#E~3}i!e(GB^IZiqd)A^*@^a`g9~3Geo-IsJ57 z->mOd{?&gTK7Bs>=Q`QVhr}dizPrn;Ed1GY`pf(Z(1;djz=(r^fq{jAkAW#OB{jb& zKR1to#l_7hgh48~vM7f^D!nK*n?Wiku_TW{ih&KJiGh)UiGhQGhk@~b7z4-zh6+a6 zQ_OGfdy2SztiE4UzdIV-@9kYs7NNZ2_6PapW{-}o%GF-g`*q%%IZq~kPjj0V5-`VN z`Gp|X$eCP;fm06_t!fI@3^v`gDtMXHs>3nO4&@2lTXfa zy;j7PtCDRVS$)#V<(lTEa}&OHteKwjcX55HvBqXuuJm&$|6j!$?*E*uD1K0EYX2y`{_y;Nvj00LD0jzy*nXm&b&W*2zp9L(LwTYk)Mk5u@_usesW3)$ZvudR{k z|LD5s!1a$(_m4%_$iIKOB<0NfPstxcWKJ(Jim;n{+-oJ*HJ_~;{IXhngN<`$Mm=sY z5lCMeS)n5vJniqqzl!Pg&rWGS)p}Nyc>hj~YHQK|`?GFK-O#ztv-^3KlKqqa3=erz zUNJCKFrJ;kS|T0(`RMyIS)!58LKK5VCdGy;20vJ`Z1FC;W&2mYu{hJ|Z+|_0U(l&D zaIp2?=IyVIHb38U|BiY7y*Kann4S<|NWAk{l-5_MEMno_uK0J=W73{(Z8n zwT%)#)axXL1_bMHa7hIwst!!{={_0eoZC5Yezx7r@bhV;*vVn-7 zZ+flB#%X=eG_Cyp5OxF~i# zI~%>x@Sd{$XAQ5mlLu4yENAJ&-LOudH)TTbNiQQuvk7aT>`J-bWx4lsir&sicY1BQ zZ2I?f*7Ve5AKfH+I^?9lOh>m9GDcpA-ZhU<`r>#hAdY99Z2duE;AYbiuC6>J6_ptpce$nJ$e9&xYoCeF zy1n;kO6Ogi{)M;p{1x@E&G$Jo_D3G#ynW)=sT=LSnaeA- zoVsr5y!86XVz=sSzlkx)|CnxGnVB%l>+!SvqEmBT`fdGb_3~+G=(}WjC8?rWYn*nU z-F9)p7bg|H`PEm1d!#4zKG~JRJX7Jd%_FZ@Sw&6rGUvG1Hpfg}^DQeWy!P1YlfSkH z&wn6zJGlI1@v`%azAjCA%>dOlg$^ToGgPOqXqvBYKb7G-am_U2Jm(;B7Y8~Rsi zp147fLpt|I`hOE+Ax+;i5?rhsW+XE`OV%_y=9Sa=_CjxL&YM=|p1T%2#~-N7Y5ZKk zx$Y3}4&Lt(UleT`pMU6jncS2AkU9FNPlGgz(4TFQ>tf{_GEOWmnar9p*L{v#-nkP# zuVPoOKC%5|)~CQC=S>rI(*F5fDL$F{#JDHk$9C?WiF?}jG_Fx-pZtB2uAKAk)^iE% z(~=|4@b`&8{r|vibxm{B49{JgTC7uD{3`c}(#wsNhu(1Q^vio#)p+^VN>e{AcgBEj1U^FjS8 z$!AtB?o;RPDV}uP`Gd*h>l1HJ;y&@U!ahB4@}!?vHwRpwEUI$i=1K3K=pg@;G{*Ip zobI0ZVeqP|XodTmH-;6_ALix%?K$Ce;8?(uMtjWRhrkMjFd z)t~m&XnOL#Qt-X#)B8d|cGcmM9eo#M&R(_YxGIxtdfh=LHSD?G&f~9a(o5qeOn)M} z`s=hkXRYK<9{IQx?ix%{b;3(J;4w!S8V8 z4jKOkm0y%KUtUss9nt?^{q`xzBD>wi+wbV}N355h)PD2*@u!@XUh@+7$8G7`tF!(C zOWbzjipy5t`KrG+)||Na)qB$2VBQVQimww^Ez8`McH?Er#@Wp3Aq$>HEewrX`}Nk6 zv$q!I-dZP}G5y??yt%7CmoC)1F88c1^ z{k=2Xvr4`11br6XSISq$Wz*RBu0P@V{+HI(|4R3Juf2Zu+TFU>FP*P#H{a6Wf8FFm zNSSQw>%P+CjCm8SIbVhCFrM%#Y?rCTn{}!0F9dLe{rxiggZn+^eXQ&^etv#a`R?|= zb;k9t&FBBxetyrP_b0cXuiE#i<*#w%WeEo>uB~_bMWlY-<~;f@a_Y{f&$t(GD4m%q z^Y8vziOB(Nnlt)LFZK#w)Mu1bNz~l-{O*x;a#szdKEG=yy~H%1{a0+E?DbOiotk+! ze9MjR=9HiK&m8HyGM)j{cG0=OT%nf6!1C~WcdqryTZ*9xH?N#b_Zrjb>x3=|O zDf@r?&Rj`G&p_sx%}KAMZ~qpRt$i4|+~VDj&3(3(N9Ghgv0UC7XZYcIyw*eo=SHsC zx2~;QW%|0TL3z#t9`PNAc;A`csknS*^O?i*zAQ4Yec^5YL-~l8(66d&?JxhgN2q#C zSsAeOY)-nlY19{s3lsfHmT||vbSsxIIJDs9v*^6J%lACdmH&CF{~u4`#HAXZn?zP_ z+WGeFy0F!8?3SlI&lOEvedmeacgf5qNwJ8;z03E$$(8?o%l{wO$E1!mp!wh%Y}+<8 z+g{1M{5-+k`sPi&vaPf4KCN5qV{+L^+xC&<`ikS~ZGU81SSlA~|C+5WbM5B!z{Cyf z*RDSluq35N#L_D#!`u2+@ZPe&e1$#1a~=y_-*J@LZFb5u*RaYfo8!K&^RIn8UBD?R zMLld)%u=&WQ|G=}>eyZ@`zm6&)%B(8N>{V@8s5z5Ui)pv^F7aO=l{I6UQtWMwdV1X zlfh}p(YJ5jlPbM+KC!QO*5{aKR@-;pc0M*MsZaG<#huS_-}jxbeZE~lc9OF9$4gJO zw|C~gNs{;7_2zxSaqGK3^~(3&zMDLwaM`Tvm0Rb1Xfm&Pz?U9x#AIx(g-N$k6v|o+41;K)&HW5w{i%VCF=8Wob%v)EaCTv z$E+xG-HEHsr7MvPu(Z(Ls{Z}?LYrCYpGxMP?r!E?sa1$DcW+CK_(m34b;#X8!D=>}^GH z?iMqVUDlVBtyrvf{`t~9v&=u0-8*8k_Te@_)UTuJpcdex{rIf-U-#Ejnr~RBotW z?YEtgd}c-3ALIQ`*B{*X@%x`i@}Fb(ofH3Q63^%MadXWa{!e-LPQ9*F&FA^nz5dx! zoB8RVQshn_uB_QmU!%hRY~P)^)|*bS>aepPVLkWo+nq_$#j)$oeQmBU5}3}z+s4Si z*1lWp&Rx@q9x8RLoi2+Wtm||+7%SY_l@oSX zM$DOc`}Es8C$7evJUZv}(nq`Q)SR1guCsWG@|$FK_9I^{^|o#3?9F*l|1Y(7hobwr z`G3yk|2g%&=4Ah)V{@|Yo+jHpa=!O0^q#2s(>0%!&VQCU|EZ^BmvnK%q&1PdUT|J5 z3BNsO+wpC=xBuk8^3>hWc}Gu$X21G9|L?zp_tce?xhwN8i>Y(CocS?(MTfF*5d*#duLpA-?A$v^ za!tYK^#|{>)l2=!`>^_;zMGztroH5!gb#BMnzO}A)+BzId2qRtf`*%<{9GS)waf2L zZpk&uo#S(Qa%P^9FZ;q4bt`x4cB|jk)mGNlv*++8Fg%TsjFFflxu)PU)Lcc5&@bCQ zhd%#&PJJ%F_50F$@AjA`@y5R2bE$IU=a}a&&k4_UZ~ph~HKzlpw*PxsXyK!L#l*k% zE}EjtLnZ}fdZlWH>MVUVA!zB+ke8aFHcL-=tTYNCP=vu3dVjz~C~s`F7K8_Hx$t zuM!Lk=e`WEvVBtg(ydD5)ocI5XV3qVI(_()76-%0-3Q+mWNRk9OES;y{l=r+++5CM zXZ7RAgVoLJTW)7HJ!i|8sHyv~^I$sre94-s4=WFtp9`bIH>DGQbQacc`~0O!cH8l{krVd5*&9`%KP|1i>CL~dRVnt(XU>b4#z__# z3al=)i)&F7{;AMKHDn=KL@Ez|M5g=e$2zkr-h8?xhwJ} z^5wqh+b5ATxu(wR$o-r>?`LtC-3YmFt-I)EPe4RxPur-|SoK?$Vqq7dU6J!>vB161RAs<1S~873K8gZnWk*a?wJ3`r|yC zuIC@s?2c_$$S^s2?e^taDYxvr9%a_I$O*dWxlb$C_w(B~E9Sh{vNnyWm9O5}y7A03 zF*@aRSn1oBt&%6V=2V@M-#t@Iz5LyTnk~VT_IgjYWy{{Ze7T?y|0j2`3ELV=suk`? zcAh(`5IgtHhJAfGx>t>KuXC-v(igS#YSiMbw-)q9E&rOZ*K}4#c3WE3w6yHLXIb-} zWjBgtcZy|Ataq8uTsZljjNER!n>&m5^1Z%WrR<^a|1Dy@`_^q)v&$}>yXCq&%lz#+ z+bzq#UAlM6{dboA+x5&P3-~S_v~p>GWgxpwxnxP-rHfW>$6r}&n5GnMH(mdU_fM~V z)AFB0|Mc58UH(b>PuIFB^AGGY4O#voWbU%d2R|j6{9pY??d>MNg-g~fTD2^5);hzt z43}1(V0rDsqwwr>s{PG)z6s1v6)Yq8COSVgu#D;Zv-mFmm+;v1oGe4{%{-^KovYm`|NS|m%>?$3 z337*=ONAnSFKTQ5=p%Pfxl*M6nW4?J;~y*L9T2V*;(s1#GyD06n0d!PS2F59akZH# z{#j_=smrO(H$BX*om6<+8eD^3b?v_wcct&{?6khIjjeG5AIsJFEqAll@I9F?Y^*dn z#HA-$GVGDe9RIm1v~yi=fBJ63#M1lgxy#Y34;vORfw{Q4LF*8kV{^XOHiuOtZsjH)Uq0bLULd-I%)VP}of=fsS_9 zHw|nimw0|nvFl&=Fh$_ZiA%c2_iqy9I?$oWTbQCKesqP4X;wfxo5^C{yBFp<_!q?+ z7#&=}a6z0qpwIQ<{e=-tvW7g?$zvD(e0IAAH&WC9lgX%|7|9K}OYGS+D%$-4kC{|6-6>vNVdjLFneT zjuTSXg&fSU^iGsjlVbEQ)NMF_D{PyoM4Q(a#uZa<1^C@vX|46rw2D{urSdP1P=ysT z%Hk)E7I8{ESd>zi?9Q|6|m-*hdTdN-x~rt`Nc zdsFf&|IaU&)gz&`c)!BJO&m{y`hp^Lx&xQ_-fAhzy&4wMptz#@UlZF!j|pX$^E}uW zsudo;;4;f)aweDW(oB=NX%~EExo*zn(_M6QOUtxNMp1s+8LGCf^Dj;R68cCvvh6fS z9U`-lzI?-T&ot c`WqY?;`2A@=5Rmx!`SUHs}wxE4H?r00A!e%aR2}S diff --git a/static/docs-rs/bdk/nightly/latest/SourceCodePro-Regular.ttf.woff2 b/static/docs-rs/bdk/nightly/latest/SourceCodePro-Regular.ttf.woff2 deleted file mode 100644 index 10b558e0b69a74b8329766fffbd5f64356c7230d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52228 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 HjMai9wA43vhA_c4c7r^o4=q0R;)@s< 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 D0=ucW diff --git a/static/docs-rs/bdk/nightly/latest/SourceSerif4-Bold.ttf.woff b/static/docs-rs/bdk/nightly/latest/SourceSerif4-Bold.ttf.woff deleted file mode 100644 index 8ad41888e6e3f9f4439052ae6b14ece2cdfcd7cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110552 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 ChpsgM diff --git a/static/docs-rs/bdk/nightly/latest/SourceSerif4-Bold.ttf.woff2 b/static/docs-rs/bdk/nightly/latest/SourceSerif4-Bold.ttf.woff2 deleted file mode 100644 index db57d21455c94e80aa7cca25cac803a08e1b01ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81320 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

;h!HL`TlXw`&F}- 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 diff --git a/static/docs-rs/bdk/nightly/latest/SourceSerif4-It.ttf.woff b/static/docs-rs/bdk/nightly/latest/SourceSerif4-It.ttf.woff deleted file mode 100644 index 2a34b5c42a8aaca17a3c6a37a33489ab0cf2193f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78108 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 diff --git a/static/docs-rs/bdk/nightly/latest/SourceSerif4-It.ttf.woff2 b/static/docs-rs/bdk/nightly/latest/SourceSerif4-It.ttf.woff2 deleted file mode 100644 index 1cbc021a3aa22e1469542d531e9115fb78d497ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59860 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 z 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 diff --git a/static/docs-rs/bdk/nightly/latest/SourceSerif4-LICENSE.md b/static/docs-rs/bdk/nightly/latest/SourceSerif4-LICENSE.md deleted file mode 100644 index 68ea189240..0000000000 --- a/static/docs-rs/bdk/nightly/latest/SourceSerif4-LICENSE.md +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. - -This Font Software is licensed under the SIL Open Font License, Version 1.1. - -This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/static/docs-rs/bdk/nightly/latest/SourceSerif4-Regular.ttf.woff b/static/docs-rs/bdk/nightly/latest/SourceSerif4-Regular.ttf.woff deleted file mode 100644 index 45a5521ab0c77a02ebf55a3f7305faccc02e2894..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103604 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ä>{ge#)@GR4TVa#d)Gs!sZ)OX1V0X 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%0A8W z`BsKc_ZIGre(Nc`d+ph*-o=(1X4l@T*yoYd@^aSk-|U@Iq2e|h>=OJUuKMo0nY5v!TRSPtUiZ!_<)uoWK3-(qT~@*%Z5=Wz^X`VJEY=UNC$2ZW#XHC8j(z?+p8s#Y z{@&x<9q8e2z34T+#7?OVT)W$y6#HKOF4)!_88P9o2zzPjRn6spj+`<*veo6j;m?wU zThqRr`ahX%e@lM$FP#LoU*|q>NNsJ5Hxw#mVzZv_W*$}S6PB30ZsrDyNy6UcpR(Jc zR=nWY)7`y_K|AoD({E|E=`OeV*G20-`OtYr+2q)lTXq5rJ6V~&U$g4u*UDNRmnq*S z(pdf3CrPg{Yo+67E{*?Y7anaedlsO^YqxNMoJwmW>zdCMU!QwSU}a(TUdv!>al${b zT=(n5uYU`c*FCt)!4tZ=WNojxOmo{4r8%D$<~h|Q7F0Wm_lL~hx=ZPr6pPccAE7Q< z75@bv#c!49cz&U6-mgU$zTLl@yh?lBOeI-&?MvJ$Y#n{QGu5YW=esdyw#H4iX&w7+ zJDidipXavm)T-8NUUnB=>E61dvF%!?hM!EGtgx>AbCW|i+g?c>em1q6lYd6O8Iy6s z#H`0V7APy_I?X=(QbL4pSKWR~Zkz_pR{yls9qP5x3yL z0If4MeX<`mdA1Ah$l0|jG_J-*q9<_oYge0!6R&=<&l0mPkgIs;WL51k&+|b2qWL$M z3R^5zN!-Mqt`IHe|KFNh;%k+ajzdwsWbv`*b@!$m<~-W?uEY3J@wUFHj#nEKwx~b& zxW8fzYxS2Ss+~vY<~MAAw*AmL^Lx*EV(*KGU)6oE?dP@?zorQbPfj`$qPX_;TCV-K z?in;`8P(s85iPaqkO<-4xp|@5-_Z9wkFHvDec+ds+ErG%&U4Zx^QBq;*#Eg3aP852 zvp;Z7slCyuzi--3*dBbUnQHt@y(5_4MWZRE@cn}2Ydh;FDwHL8uU@%qXS>Mft4&=w zAGcoHwoO#8?$>MMw2yn^-#@K9X(VFp8&&Y^Tckl&oXCu-7iYF@esJ^drpGH!74cnP zl9BHJx=hdP#DqPa%PxHQkk!a!x?{)gc-!OaD&-QnzW!fvVn_HApFfSwPSxGr8;^QO z*9rAh-qxcPx)QO8fwSy8JJR?R(Pey-{Hg8SBs z);!-f*LbmoHcN5ntA)${OO^8dOuBigdF!08DVNtQvknniu~7Tan*!OVmy{mdJ>Bgw zH9^|8-_X{5aoimHPkz626>I$%)AwtC^SD~(rXnC~$Zovo#*$pa8QWOz@_i~j^78ib z;zNl(AIlS;F`N-r;_81|xruo})GF)eepiEcdHrmd>~Hy}W%j`-S${>!8+RYH{7$?!My=_sGS%*Z$T2 zuqYMioqSPq+I6Y0-|=g$lyhEO_r@s&6>>QAXxbl!deQE$bNZTRW!y^1fmCQ({&*r;TJ}rP8I$ zxo2#2B(44mE#hKNj^D(kAKF_O{Wt%>%lohXPAp3{`Rb6VcuJ)G`NSU^e{NjyVq&qH z(`B=syA8SWX79CPi-pTCt5tQ#n)fF!lL@iYk$vv-??cE>gEFmc*Q0ju#29;p2dmoE zR|VPz{FkX&$GYYF^jWVatae!I__r^=t=2tB++n}nOu20;iHq3T{Z}rKIC!>gReaoW z$Lg@1zqr1yxVJF0<~Tnm4qZpria+ehD)cXU5H-VkaxRMobkRViScmF*&6dCa znVIbsw!U5<)Yp31`O3NyR;4KK`5bM|V%xUlW;y(IdAPjlwNk98$&LzNlX)V7kHYVB ze@i@kz<_1PP5oA-C8|qGy6Q76u5Mj-N_2JVa_^gSgQr}da!EZwRpS*W_pHpiT>vFm7m9rpC&Y5j)9m)fU%zVd5jwZ-PS zs?oPJ-ZQQ(_c(OTwKaT8xgN(&yPKSM&n#Yk`;~yrTaFZ-)_u&sHywUjCL;DEUxmFi z^}2F|cx~SC>f_$m>sLMs<@p;ERle@uobqqyukPV8c_-4Em%6RO-S?%NQDaCPrx9z0 z{EdBWI$J_}Yv=FFyV|@xlHt|KFOpC9DnuV{;qLfVbfDEu>Ly=F!W5wZpXmBC2ZVc< zii9yf%{Z&Qe8cY`*3e1ScC4@c+;a=FG@@M3t%^D_eHueH>oq36aQCyKVOod%8?cX@5~>9?toURDteJO8U*RP)fEx}nHU z{oJ14mv z?~SgVpZ#~5PGUokyAaPNg$NGy-Bp(95o>N7?)bL%{n>smlUR@Q`~iQmmt6k&@sY)j z5Y;Rfvpm+?X>5nqWKQH3NnLho@s*~6b)I?KZwX{?cb%g&zgkkxBf_Bc*q6S&s}~;; zIm~Xlchzg>Q>#iGjZ2*DHhY?vnjf5Fj_-`w9Dy4`pA5gt7)Lji%* zm2PEx3R26jggJWTPAA%K9H$IlYW| zvs0_?-Q?3@N4Hf)`MOmv-Mc)tKCF0w*HYaXd@ok0_$N%T{A5X1!HG%Zv;;GE);sga|%<<&4FGCI(sVo_^XoNhe0|jVD(# zTl4uiTV_t_;Lg>zPS{j_TUc;zV(yzY%BN$yZ8zI~J2SDD+xqt(i?DM&4VJOKZ@I00 z|9uhmi=DmTLSESq(;a_u)2i?8<4NBfEi+kaTTFw|l}f3LpU=eF0OEl+LD*)2*7Lf_=KFm(NK zopJVE>YgZty3e1if=VN$BhF54H2*8asA5yU^}mXp-+`a89_uw99lgZqD$LqbSebZo z1(VJEErD|uUvq0dcPs5vZdbh|zt90|{r4$rQ|4|=JsP`7UUUlklGD#(y7Vm9sO$^+ zpP5$V`-|bT{3H86bKKe$@_&hM;@VuBadOVNR8x`CXZywZUT`mGm#NpNdyp=^>c&sk z#{D-+U%I?It#%>PigDhGRZZ_Q{`2gM(u)&PiQ2dLqSw0AZ@RKlui^va4NEmPL|ZY2 zFvg!ymfE%Khgkh@y9g!?tykGommUgjZ%>@}?%LHmnr|!bd4x^++I!8)_fF`}7H@?| z$2g~yFI*k2y{$;=QRQ~iM_UsYi5lI~@jtDysLbbYhW7TUTtUBg)Vf*jR$cnYJ6}8U zxc<*AOOlSAS)g~gUV*VDm1h!n_9@LdJ@Q|A^B(VTKjohB(xQSfzMAiS$-&5U%k+ye z<}<7Iyq-8A=%Du-$Kz`P#HynA8JOqRZ(9C*-uo4&e%?2(OVjxiw>9zALV=h~xBp6R zPW;>S`Oh1@-*>hjtc<>O|FP}yh}{vv{U4qAO=L4H6nvieORY%tTmSaWrP9|*$MyZr zw|8H-G{OG6rqKS4A#dIuo_|y?;k?I+v$;VUGF7QRE(@i&qH;;6wf-S97bWPe zKYVe4k>~-ukvAK|n!Z+k^LcaTH&vB*@*)8&Gm~^a9 zXem0qczq{$jir$BXU<&;kG-tiMQR)qXT5wEziC3LaJ&`M?z+bYmHnQwt~U>{Rj^!O zblPIKWRBhekI5HYGC5CPe?93%>yP6lp?B{#&UIY<|Mr{??s=DtuP$d++n}ig4D-|?{xeI-IxJBrf|7H(o$eBiZZ`=%-ui~F;$ zYwpvojo0^|uCTFb);v&P z*uJl^B`C#J&?exfP^O&FV(kN~GtR9y)U!G&u_IF1eFIBY%Z*##O|Pc*l~jobGNk`f zOITeK8r3&##-cZ$xpY?bD_$)sKJ>Wrb%xKy9h+8Xh_duOmhRy3zWDOu%-<~spC4`T z`(WSrk!gkC)&BL%FS_=xE(?;IUoC$tz-6MZUfHzm37gFrMN%?lz8z%o%8S-a|15WE zuCVCog$Isrt&(iKn`5ynVPos!x=SCV@*iiop5fQNx&Q&*OrQ2&ChQ(TGTIW7qrQ5>qx9QsRmGhHT z_mu~|2)d(jJGid&z}*FP^Z%r0iwpEN?kN@EPbiSQzosoZ_E^MgkUK4!7G zD{{?e=U@5g(yO#8_)yq=(>E@?lcLLY?hB+oYTN9y$ts(-=AMs^QeE)3?&_v%2alfh z{XWel^C8>G`9^`6>*E{uXPO*WVTsJxB78HpP+O?o-e#)(R$JXS6_4h;jxYC-d&jHq znbpWKn=jWw$zCh`Sy}EXL)IIY!kcHNF1Z<4wmwsC`afn~(~1a{n*z*%MnMJ3&%^}W z^t{?ruU+fC^Li@Rrtb~E7yP!F-F7ALwaw!!x9~nicZ1r=mBJ=cwSwl4H~mf)e0)gy zTI+J2r(#cS|5pbFbN{+#ZlOIJDVS>>PZGXI(A zy%>e5mQNn~ob~UH@w>ig^(-Bi=bbCrv(@I8&3|?Dwe5yK=W*u~GuckRL8 z7c(#CiJps3%bO*%Ff((-{2=C(sFp3dyL5UdxlPjAYT3D5cEA3a%6k)4RDK$@eehej z=KY7oJB)XH`fL%h=3hzT&znvu-<16|B(fyd9QC#TIQ_ML@w$^TwsYP~ng!fu|EV*n zGXFy7*X4J$AKY7h{N%4dW0&b^6IBkr72V5iDz-_$W##JstWW29@m_nH&2CcVbpJ&Y z^X^xw-|JUjjcQnQsDD4-$x9!;eab8r<`WRS+2i8hrb;pea}#nung2v2~l3eb2mmq-f)tsXN)`VV$LW z@evyXZTa0sz6DB?Y^8f{{x$v85+i=;y;SMJkMp0uJEL#1^yA0(%=~xunKQ1bOHdTP zvvJp)r%!BK9%(s;32zkHt(^Mofp762vHBOBKYYDdCVX<4y2hv_S31Ezhxx>ZIiKtK z?>bD4c9w7C6`LyccnwSL3Esn#7FpUyB!6SO7Wgl~_D{~K9^t*$mR-o7`!H27dE$&T z9s#w-hAly6iwaL(Iy`@|s)uFKzDYj4?RUTZk8W$t-YGSEs<_Q`-hc}pEBU+>yM8Z{ zo4@eMW4#}bj{m>O#;!Jp@q9|1%mYE)+f(X&+M?$MSy#`Jxy$NRVJ1?3XnOaZIboIo ze*dOE*ValEF=UxCsjKhJ-pVhtBQHE`$?3dPmXzvwx&3ESW$4rV|1!H$CoOwxnD$EB zYuD|x&}R$Jm$C9c@OD}GaoOhbe^XwT8 zi}GIwWEmOvTx|W5e%xsSs|Q2ygVN8X!4qyheHFT+d~*8Nr@8y4m^yPySeV8>>j~M% zyU72gurq5=S#Y1TOH9cNN8ik(ESpD<_=dCTLL|J_Ixjg>RceZ`* zC;Ot9**<%^)^L_LmN%Mynxgn+lj$Mr^?Z>AYhDPk&D;HRdZx&cSOADIl#PJFk)oX5E-W zI_KvZCtljSLV5F^xd&=LhDxSt@&Tj|0RH3BZ&KGgj__L-%f$mKNDW_NrvoPm}aZ~ zI5et8^1jBU2PR546v`j@obp+zk&<|B$^59gH!I`a=PrJ5Pm8u{rw`W~W_Qav2r#^{c6&cFY5$(6Mw!q>hY~k3-8%E+Sk}tL3ms>K z8*6T`Id2rl@ZkDC!AIir%oRh{JXvS-e4X$)am$izW`;d{lkq96-Fs<~!{+02J-5wEo%r;))R&&VAKy=F*8E*5K9MYC~oTfW}< z6`FkY4a?hg6@vSo8YG_nSK!(FKnQ z>SFrA^Q^Q&fAhTKZ;Yf0RP$pm2|wy>F$!O~EJE$_FR#5S@0C7suFUNS$h)w4w=|2< zna;s<&fyL zPq%h!C;pN6`|xyv*3=6}LYCgCp0-^tK2dw+>aEi>A9UY-7jk=(eTS zbmsbZs;YbZymn2W@S}Q?#hHan_kL_^`oAu1rg70B#SdpRLN@QXY;x(s*V(@7C4QaX zwEceC(I@j~bEM78I#ngUe%5utbt|_0*6Q+%b?2*Wzd3o;k|VJ@ofT+ z{g>;O8N!Q?Ctws;-_kv%ZQ~Fl+v!&$cI6Z|!^Tr0}vg z=~DgQZQrf6^aD!uykMRUTuIXx?iHEmC_8=qd5yH57ruB~NDmOU#GU2!6&bVr+Vn(s{W z{;P+dZm52C_UT=VB0G=xml_ZLShzN~=KMQ4pL@oVS-V#9@}8J4uRI@naC|!*X}uw$l+i zcV=zKU6%6s(xR1>g-w~2#mjz$SBMnoIJzI$v4d&Van}XhS{=7KubPOrp9||?v})MC z-8h-U9zWy-Aozu?POjwebRckkJDE>=;j*gIC2zdNz!LskEZm6<;5Ld%Z{ z7F}H{I`@=K&6S^%X1;rOiix4GvaOl3IH6jsk~1bm>T;9I$q6PKv(yEaT-3}E*)WCS zK%|Y~foEJ9O&e7j{9OL}?71t}U&Hl2x3O+vrsA~XkLen3_KB4^R0j0N{uL_bU1<45 z+@LAA?nJ{e-sNGtGJCF_a$l2{ld)x0sJLXN%Fe=POVp+voqq9LTwsKPM>Du6;)_HS&US_(Rr^?fOv7%@8;pJjqrwf@1YiBb) z+}QJSvFY#cJj<7DD?9t4=y%rg_V>}d)}$Qxt{Z*ov}MPCl}oLcav7TgdxSLduQVQ= zc_Jq(`23t@MR_a!SfAW7Z{E%wNnEXG7baLlZhq1(p3KOTd!HO~Xr<$0(40orC>54Q=QYq02bWuNC`En*_RVnlD|5p#io_f;q>q)w8 zxKyQVigfK)JI1YBnzXX6y`EiX^kHdM>zu>Om)!g7o|Bz$ZLU$$hrEeXqC#ELZNjb_ zZ#QkoI(n2-$)mSeee32kt~dYQT`hL?^Ynx3X52WSC(b1w>ar!{^4}7ko1c2}pU7$5 zjcF6*@VXcxymjyVtfQKqCaZ46d8pj_ywXc*p3YrU^AAchKX7!cuQuyY>6k{eAVCwt&T=#*VKaj+(>^PE^cM zeyMI|yvK&+Dwk%gkBXRKHtQMlugNoNw>r(#>AP7TP?gPU)OaH#EIfUk0LP4V(lbxB zY}l`IiS<&hF`G+0<5PoJk3C%eCxXjEzi3?CaoOu+PI-LlLV?DI0UaI}btGe*9xS%- znf-fm$i}K^3qth&A1P|u5uT;lC75=AHArxEv6-gGiRE1{RIVs<^;BQJU_Aevw_btx zqR(|+yEZIb>{FXbJS*#i9nyEiQx;Tg`pFU#b?ahslCSb|$!Cx6DoJf#%azva zR%`7TIOEYoDGA0)=NeC1Z4oJ6qj;SCN=)tNtuL+Z!ndj2&bNLl(YQh6RhrPnb9>ls zT%L1dhqW}{#7K2vOOxDJ*Ic$}_!afUp1H-g_fqfbuH~sSXYMY@YS`|_dw3#G#hX=} zYfm^Qc*HF0KK^8FcxVHwfaH3W9q*nnAD%t&%^8zL+CLvm7r$c4cm3DTlJtm$F9M>( z&-VM3w}=L$$*;42`(UQ7hM6YsTkpSK8zf!1xnnBtWqe&<`N#R?9TOePixs@Sjj_Jp z9NZ>LD>QD57P*?5+9kEqCSc;8sJydcl0AQf)$HxvQ%s&Q{M;bXdd;^}`Vv>LdhWze zoHr*5P3`zx8_wdpTV zE@lc>u4HZ4lM^dDVTVuo6ve*F22<@af%d&=u;W*JM-HtxC1QZcoaEQb^08S z>FxNfW#nLVJBs1#`Gj^C_n*%$+kd(1@Js&JG^YHs%WvPA-aBo3>CKj&2`?6%E?(#8 z65to?BmA(o*V{PQWV7VN)oUiMPTw4~b%SYDs!xjZbS0~Tz~lY}{46`m`pzCq*f(>d zv|!Rvvp24d{=!zzw0}Ilul5bu#F2mr1}0iJ1>|yhm-YU)~px%)~%Q< zxoJhTmfghdJ>eT(UV1IT=6SEYe`&@MwTyd@%vmQDX3E#!5HAW+zFBAUReWE7;P$x8 z6xY07(SOZT@!qKiP@nLT=lp{hqCoNnYCFz%RNi6Bl!sm(aTjfF>MhLkJzX5_8-^D8?FDtt(Mf~EY_U1+}$qF*7Mij?m);ySG zweKvm%aIRO8R4pj1yx@qW=E|4v%J?n)jy*`&%Q;2PiT{@#}CFJj@L{FBOJNZr<{6y zX*B~w=%SLPjmgvfuBZpx;JmZ2F#XeqBDd^spM>H!p369XdRoz22ko?MUtXuiYtb47 zhi8lI7tv4NlCJ-Ks=%qJkDr#_Vc6>HR`_qxAJt5m8?H}}E?Ls{f9ikrOpD;DE42-N zeh>Phwokf3Q~T)d{Eg-J`FxT$nFrNeo5>`4{;TH0rQH>qC0V=0)0R{OPg6Vg)bMMn zq0_VJ%X`mr&-^q?W!H|IH!Ul}&OYmIxG(wS*{sOP)^p9Ls9aK=cf{W8xG%*!?=OPf zS3lokHqlz`@gjBg%qwdaW`C{~Xbp0bpX{6|)L|j&_argk<=OD>c2^V& zx!7L5SatE{eR;W9yT9t3N^jkNur#-GmhawK(scJtEXw3}={ zFTMAT-n>;=m-Eo{*qa;McP>8`rks3giIKyzxLdY+w=Ahzv8DH=*TPplI=x3uT%1y0 zv?ityi>VC)uo-5m7z0aO=(&;q_{_vdX53Gfkj49@8uHJiT$^X~)m&e^bwnK>X$E5x>_Z<#zyl=#Gp279i_I9hM z&ekPy^XKO2E!dhBskpG^O6Byz?d^}YT-nIBw)xD#%)U(LGm5VTR{vXcaeMc+$_T2#nnFjOLq#qvX}bv>+JGt^8*jZyTn|* z>~X%Rb=`T<4QcP6MQEw~O#hj+)`0EV>sK9~lfG}iz46$UsdK)~Y`V6_w0>`0_TRVL z<$u+#zh#rqz;Lr!_GV*IfWy!K4%M13%APW}uG=Oy$7;(vq2!eT)k~XZ^)3;}u21-L zA!f<$xgQJXFC_WrrkTHty~lN>d_+I=sR)q`DW`a z(wgkxbNAw<=ZBcK)&;DdxAgttb5~ZhePLLsyY$aeo@Cx$KF-Pu4_Dlqr^)z?X|r)^ z^I_{}%5QmrD@(YQ@j$iq_0sOs@5`Tp8cX0DE_%K{>DlL8-leA&y>J4x9@ zRD-R^=5~>%_l$@;GG#Gc@-IuC*u>>l`}2xzZb`kr{_eRqw^%>1c7N@De)_ro#q_;C z-0eLV70a)zoOa=l@67c_KDig!J#xG7u*2AK>1_Q~!EC?Q*Z$&?3>1^A;z;W`_J9HcVGV^<}&>i%-_CR|2?d_;a9`1e^YaBTJQQ0I=!v_&&%6?JtzLl z3_8P`_xvnxfPZa?2kZP4&Zl{&6pp_-;bHVgBk9iv!EZlK^Dp1?tAB#M)5I5Rr@Cgc z`+b_m6BaZ{Bxq+|?MFX3kL_%7GcR7dI7!yJM&-!;y3(3IYK!Y{cqIHgb*;}qCtRrc zc_5qEw0`&1i=Q&TW#+D&a$weC?a$1I-Fp6goE>)jcXodZ&+)YFTS{a2YLch_Nsay0 zWqVvc;)dOYr(33+ivQs2^m9t63`_mego%~xn8HxFWO>LXjK z{{4p70&ZGvo@Yjck1GhLvF4dgsHY8~UzQ4F)up0=WW3;)qwH+Q|@ zcbC=bHmQI5rggFUsk^_ms%)e0Ou26SfT48>TlAj0y3DQyo?lGt!+gqqGH=g$=alOD z^_bG-ceAAae&g+{TCT0lnW52@$RD$E-F~CR+yCA2UwfHrwJ~qK+q3U;CoUA#Se+g+ zyIW!F5Wo>79xj|-49M$ee?c| znw3YBQxEV8SrmQSa=n)+PMG0?l=M%fL}qy%F{U5O*cvDNT0FI7_c5N9;)s(bU9B+- zGL~+N_Ly=?d`b7DD!auxE9Xcp&$)iSF>OM^$JduH>&eeM_at1yH;-ZVzYbw$*DH>b zW(4$^xgJ^eOst4$*}1cirfOfw;}m@Le`A2y{E00~(q9F+#$<9yKeg4rI5vkqO9k($67&ws|p*>}s5Pu-K$)1I}m>=kn7of4^@tsc(y z{^gWsibo@IQZCt8*nFD&p!i`|hKZG$zP>%rrs9R=QT5R+(@#HpxGOW|UDSc_at@ul zAwfYKpKe&a>d}VHRqjv!n7-P2Y-P)=&Hv|e{`!0ZQ_x!JUJKZ&Jr9_-CJG$-t+569Dw5BQMe2LQhckYjDL;N4{ zS>jP2KN-iD-`{JT`s&IBv9)RTH~wc!pL*mHw(=3nQ$J=h#=cg68RQ!u@V~oZ5s#nKsuf3s;@tb6l~NBktIbxtju$AxAw)o0#cbyLbPwUMdRKjHZs_R@-*e!u=ajh5@5 z{x$lTuui<9#`#@2KR-QSN_W@nUL>&ElEZ)blH+p{B1@0H(s;Wfq4mxN@ktwE53MR& zy2egShu6)&aqjZld^YphJm&abdMduCk9Bg=EA?%QnY`xv?|mZIF0?QwdCyw@*OyJ> z?PqZLZCf_neQ}`p%FOj_+5+GF3@TsQR^}G;K7Y};Yo6%q?Q2V~`b#}9Ij92M9OY84$Yjvh-?+_|#^p~(uUgCI6v!eCEo0~iIqC-}0`#DW2 zeUAjoGJSPX<#nbi-WFRzqrZK9#w6-x>pI=5^;dE7Lyg)pDZgcA%RF{mnIrmh{i|hb zqvP9hdwrd3tBrq$PE!?=KI4CX`Hk|kHM+-jOg{e%KR@l!S-;tp47r*Jx z{}+C~FQT?>!&Bcg^{yQYk8*D~^EG6F$WN2%gm-)V?dLg6yc(0Y?%hitHYKyw(vuwH zx0d8TxV`H2pDlu!Mx_-hz4d#gf?Pb-$JpP!{xtA<>HbO1s`~0hemB2!RDF*6c5B)i z)4%h6F(iID`}d?{VdkqjGT~Bl;{F93w>e|6W-ixLpOvBQ?nT9gi#=j}vlO$XCB*{QcBoro)!oJ94fw>!f+S zp8xCr8$F?rg{(8y*oYe!X!U0QYWrSu-CH4Q`bnjSbsPUJU3Jv6TUGJpn54Yq8{(lMf$v&-I>ua+{5wPW09@8;mWU zC2tDcVxXMx$7CaK$@$Jm=M@XIQsPtQYCoOfl5u`c;>~||jC5}Qadh_x>%Gc&|IWF; z&7O=4B>lh7|7-kMfHUD;=sRDZJqMrsPi0?ue`7-AO)b}lKc=OgTe`xdfaCr4J-_M> z*sIsL1pWT$pY&+a(Z_jWvtM#l{d>r6EG6pO#dtk~b@N2Y8T*XfRbTFI5BzXFIAPc8 zOD)T1t-3YI`A4mKey#xL@0#G_%ugG)ST8-6x8rWN=eqN&kJsPz=K8FnwpQTU>34Zc zyX((CGdZ{DT$YgREzKCkGdEt(De$aVv26)g|1C=en=4&=k~?F523=-*cwP)-0Xv zW1@XDtDsaeyGOz@Xx-(or^)km5_J6ix}3kwGmUbHpLckA-OGqc*7+5V8Zy@9bFU>@ z34X47pD%e#PUxr{XU@E5QmMgTTPGhc-}98)jq7pnIY~+Hg74LFjStqw`7e%17P|H; zw)c?!ocGDwn@)M$C=A(gu=ZzOspE-)D2*^|xL+ zDCG6^-f2zp|Nlu>J0Duvn{}<<1 z9xn+v$SG{BSX0^{I_FbR=x**;{v40|N*?@PD=~$OvDtOI&FLL}I+-?EGpi@OT0CLN zlw(`ik`_LEJFjEO3Kb6D#-}QQr5C;g-?F$eRao-s@9^s1&sVFrh;J>dJhGM3G4|py zPW?j{R(D=`$a!Vzp5~fjf99>G@kQRkLsCM&~o@p%ghJ?~GNym*q4 zy#nvFI-!=X^V8kf-%0Gt@IQ7(yK&(u%|D;#sQmcjBD8mX|Hij|x8i>8lhX|rpEB9@ zPiiX*UwZT+<^C4aXS}inhaBu*HeELUvyg|S>eX)M`k&8sJJ#W%4S=av^N#FVNNr8@Gm#U2*ulq&A zDVDc%&n?!Ms}?ByEAZr0iAcAI<<=tC&#Thz-}rYpb}I9lmpbn;oWDYQ z=i&WU)+`(5mdUudJ}%}7Q8aUzbFlkupoiqS{sm@tJ|FD&Q@x+lXi_J7F~arfXS44I z_|s1vv`IdfB7=$Ro8u&ly%3h z8@o@poU+i+`Htpgi>(&coTZ``sdh*AH5|B9^0nzo=FFoCuO6Q6eVVjoM^5t1c(wpm zW^dbN8>aCKsixRyFP+mbzO2W5o63a6S}Xg-?#UT=yr^!8Ug0nHGwRBd%c(J83!jUh zy>`v>k)UVpG+mJ*@!5hNUuRxCDzfWrrtstaO&xy^R&{edT+zC$akui@?ejV#J>q^> zt<1Ksco1_(qT+K5@A-rLH#hBh=^bldyoqs_>BZ%aS$bxRSp5sHI^~||Zu5%wHSe*U z5j01`X45OH#?qN`XL#9O{4+GGZJIfMevc#X?YP#Z*XpLWm=>y}cy=AX?ezLP>)n-# z%MKji-V?!~_-$UE_=Vqd^HsdJs^@liDOV-wc}q)wXZ~?te_`Ikg0GQTl_iG@o^5sC z!Q)q8>hWk_$9ujk#T&LC&+rP}{FC)>^O}F{-1g@_o>#oxbDuTIa$UuJe-Xyi@`&ea zmlz%~xe({Qf422cLu2ixoaWhCdgnxDJO7LsiK5qxvZ*)MHZ_Bh?T z`TEKkXR`nJFVg9JzH$G&Nk8<SP1YKG753(*j-PiV`|alpEJ?OS0NfTy-Z!H2vub znSB|Hdyh9})p$%2?YHfDU?MDejx{y=^;d-(I&V&euxw#!OMJHWK#A&ur%CtjKk884 z_AUK~)uNx0Wqa5fS#(!>q^F8*lKXBsqi@FB@P!P$9ZxGXoNS#>_isMpB%HEr!z!mm zeNA^P{_P71IwfHA{*F7q+-g;K)r{C-XEqB$W4xO$)PLzIpT+{cBS6=5-?%!*C ztpPUq3+LXD$W8p$<*CUbq(3`&1#2r?zlr8=fu$?kl>goIHVj{|^YF>EIUR>19K-%8 zCa+@dm%itD^Gd3U?}ORfBX-u$)5~#f>TC>kP+qof#~b_Gni+o|ALS5@vu3kj=NzJc zCPSP@@$ZlNPap3$9TJRGp4jor=+YM9qKW^eb^j6*<8eQ9bc*(@9{PL~ZI+Y1Jb(WCB){{rTT`zoE4gnH`=@{M z@?zbV_&vV*N^^H;P5gIo!*-9{jm!P6YfX9B$5`<1&N_>UM_$)Oey-EpR8>>pw)?+I z>J6Qy#UeL1$4mX6eO;dW+jYjB1q)WQ6X&T%Cd^B^=bKYJvs^s; z-Mq?G=XZWKc{phW)8(t@j7_FC2i|LmbW7Ye&FJ`?k7tFS>8D;>w0J-7*&{!1-EmO! zI^W#*V8@sIR&SdY&&3C(OgwF3>w0u<*3(_GweOzWtYu7Gmc4z_np6DeKC5$HUgBED zud?9gYU|HBf6M-CSp7rYR%mwBWmzU+-$N?*uW9bPC7Au)P)h9HmYZs}^IyNvFh0k* zNczY{-KR3O+|PfwGZ@8wnr6B0$V=YK7apJKQZu_X_f;vgusY9VHP&D?$(gg;G%oWT z>n=8tbLTGBi>_7>o_$^W_pOH#ODl?0Cp2{WBnUkZ6gB3kp6huJJT@lWqT@Om%oyi)8(vj)jwmrJBjOCP1Lj3o3!^O z?f$2>`1R4+UuTvne>|7FzSY+!y7kh1ziDnCUxYpo@=v^^l5mgXZPkXqRSYMt?ezP8 zce|8U^(XhZU1ub1?JoEIOO>%@^N}f^zUA>5Vrl~3$mA75~?sDjs;r;LPPO8tc z_P?Ba%+m4e9*e4pmf2-Tcdw{FU#^>a&EdQApP4OlSp8=jC*8TX{hdkbtQS94zp6f< zqOHB`%!S!6l^b&`Q>T1?Jh5n5n~0tu@8mtrn#&X>^ZN*Yn14f$!RRC(&!2cV`z7<9 zznE-si`%{W^ZZ#?*^Tc15t48*onOl|;{}6SuY1rnUZG>bH4lE+l+Ib#7rR*0(_YPB zlA%D_+?^*aX1Q1|J`r|MFuK(}Cse}lykz)Y%j{o!53KNMi2QdbM}Fmj)|uxRC8pfd z-O|*k`MKzer%J8+jT0||!nu76C4+Y>wd}Q%n6XYGO`|=s>a{cU}EqxLeEjrQAR6nyH~SeZT(3Zp=QU)t<;3 zD0|gmcDK8x_Ns^bD!EgG`8G`dT78efVBXrZ{kLZX7v}e*-8!8b6LCP)fThZ!BFyC6 zrYhIe8%nhsw4a1*oIlO;-~E%bdc}8d;%Yr{Rd7Z;|9y{}(gng7Sud-z>P>q8B30#m z#c_{=Z0R-D$rZ*1=L{P2-_4rwoPX*T9+^V3iMj6brsqEDI4t{ey|Sg8?e68XcviRWU-{I_(J~U5C0(zDm+4Fv*?aMC z$w&EE-3<$vgKAzK_z;$OO2hm}L(yRY>y<}0FBaNAdBc^@iHypczjczm%r;BxT^64f z?7ASokA2I+)Ai?UKRWqSNk;I6ZRdzbpw3b%$3E#|~*$^ssWL8^e z>D{C^GcwXeZfaR1t^UxlmPa@>W&6zh-*6wlN?Pxol`ExeQy)rQu5Z^CS%EM#2Wlm&b zoDXgnjQ*azn0aQDJ%5{2eA~JUU-PxfgI4dZ$=}#%EBgN2HIBYI(SvL4YGiAF zpSs=XdwoyR_Q~abEJ=dyKR2wt+G6XH_3{dD@#FWedatUA&rUnAYj1vC#F9lbk?>Sl*G@aCR>`g8h*JF}m>FWGebV$T2jcS3o+E;xp~$li7Ce9S)k*9+~RuMY6H zwts16IDOjc=*I?jH8KkQKLfa5oyo3fmn|{>wdll$8_ktBbLGn4pWM8E(T4N>9QWt# zlu#Dy?de@-cK5&e*@g?R{jy5`PkHk8{+fdB^9B8^C(4R9#Xt0U{(Ya?M`bM~rPUMH z$P{)(|1|me_3D0?(|%c{&)@5soxKoe!@{e5py%DjD|t`LzRft*W9)Q!mrcF>;SWJA zKbEn}3a)qixoJzV(?QPm`!7$HN3(d`cM`vT%<*`!;fyl##V@kDCthe>xv+hMex1ah z3(hHfK73AZ+WGPKn`5t9j;dW-z^WX)>E?;-diw``*$S)uW#@9G7+c)dk$b*Nn(OGv zfA323*W?u^8Gp%S)0p)(C*JLbJCj+~{)`)IYU|scU)?qJ+35_vjlF>>s~>bM{$Bf- z%m1PHw(ooYmtAL`mzyE_bnynOP0AC)1s^aS{yE!9BHV210pC}t>0b>C@2jpz4NpJY zd$#lRT+JIRx0TPo!Cxy{_@!cd`z?d`)}S{mCefC?$KD%HTb=$E(+Smb3P1+zDH9Pc+Fmr;2r6xnsfe%SX3y zfBWBjAy#aHxjmy@()WiQe-`XJta`z6gQ1HB*UyCg-Ps{m=bo5<_+Fm)>8&|auYs+sO7Nshlk%0X&(go?ypQ#_ z@{bFvGtTt|Y-%=G<|r!dqvugmq**)3I&|I7YQHoN&c_#<#TWeD7x445d4yo~v#>W$ z67ME{zSp|^*n=N8&j&S}SP~RAK10Tx;*-HU826&pO4mTiTpD)B&<^(iYiG1(>#&2)JcSv`k?~=wzN3VN7nJe%n?@z*i$2l4Me!QqR6bqI3 z*C_9&@Tp(_adqgM*cgY;liUv%&0en4U%B91cHy%9=hXi!J-lE_!>;$CFS1>7ew?;E z5~=7X?Yuax{wl{onGB1czYN7MEG(?yxn7>Yf1 z+g}G`#_g7j+kdj>74N9c__uW_>y)gJ@{sZ?V7SHV=u@Ac7ye{Nao(xz+I7v6yMeJ5frc+h3CUws`(%~nZ#qYX$(vysslZ$^UtbMoY-KzH>IP0BMOl^2=_*VThcCOj> z#)&_?jqgMy-%r0<`?dCKZNdD#YXkniGTtH_c=O=_4jIWEOA>Z99`=d$VB_0*=XO=X zi5;^qPMgK?CU^FG_xfK8AD+&f_UhuRi@(4yOvkVOP8|0m@BXUgf3MZFO4}t`>dGuzUuSMQthx7xzkthHpmqcQuW7roxJ?f<{*$=y#*=YQJv zF4%o5{*r60+SFgZ&ywz+41Z%k^XCPDUvs}r&?$a%=Yxvbrf;U3?6aRNNR-Lrxx4Yp zzV5^4mwYTJaa;GTde>3+&(l7gJaK&6);)Cl!vba!`^=X z@KyKl^cj1$dq3N$F8yMmz{#rlMw57zEyLq^Og_Z6#nl=d=svjlRc(BAa>~K!i8n)o z%Rbgeb6g9|+p_QNiCz0d7s!jg@MirLoO$WqMy40xtiQq<|Ai*-Xic7=pQGSv(QJ|> zo8y0(p^R~jo5}w$y$Ac%ZrL1isJkL_GyLrIDg9E@AMX)K)0(wnE7Nn43oQ?)oH;tr z-cxD62YsCUbo-ea3*iY(~$zJ&UHGE>UB-5^s!VQK(|E@p(!RQdN z?=+jil*bM4j?FijulJ1AZOzUZA6YkiQdHUZeu0MnzsgUK-cITMaaHx(^}DU9x9m8w z6`!+;`dpYfZ|a5@Zbzz}4;E;AjwlsjT)M42qsi6N4 zM3ScLuC?c!wZ7YQv0zMufQNQX-H}C)CT;rF<|fU_pVl(_*};Qr)eD*$Ot}tU;i{EN zUp2|{v((F@r`9b|nX*Gw&~h9j?anHKWjD#*>Lprio8D`{jGXQ~d>( z`R}dTzW$xg4)ffYh`ycOtryH19V_-3Db)+^SF}j`S$5duqqL9zjeOu?O&_EZ|k_Zxx2qHRsMMP<(Jv6 zpJf(XSG=FUthVaT%i967|M>snH2?IwmF3R+*?UWOm_CudeU|rMO78#N8}shUFKs?n z=FA7zDKJ6?zopacZc6BHq)PNnY3@qL*q~PD?ioT7TQ&j5f}dS&$c^{rkLN@eE#-Z zb(f#pik@0`DYR7gd(`fJ8lHRm#rzD`DW~q=Hm+EF|DW9y(|_+oLPMTDivOHHc^6yB zxvTfe-R?5g{?X5}F#6jiGwu7bRV}+FEopuzEa=U?_@Mo>#Ml2AuI2w}ko^38r%bcF zNTl6@2OdEt2af*_k1J|vw(D-6cKTs)(uZx=e?7B3y*T_VA6tg&(Rwop<_&i@S;w3` z)zcSTz1;HIhI3_$>iC!Z{y*XUZH;+9UjN)QUDH$Zj`M$O_tn);JVaoJp zdvzLT-a54{$f#F@kzaC=;Qp1j>vPSc4ue5NSM-n9BISfN%L zbD^Z9hDn3;W@N^}%P|^n2Zps0N$fG550Vy2Zh@)s5}&q+9IeD&OZl4NNh6mi1K3`dZHF zjXK}fPsxp&&pL_W^qoBI3n%Wro^<}E{)AKYd&3oE%=VWnJnc5Fx3$B zZs6z?kl(1r+W2NqWq!i4T{kApIMyJt(B@RBsq>#}9#yZO>X&L3pWJ%DAU9_6$xG7J zYdF5U>^sw7w8Z^p)sv&!s$b1`|Gp;^l&rxQxY%PfX&wTy`fBH_7DGCl@1sry4 zHYKbA8&2lMo3dHa0DL|r!T$y~qgwIAiQ z+s4bC^=eAIQx+ z67GVyTrq2=3oO1ZtNSv}z7Eon5q{I*)iP(Xv9Q)b@5v`OPq8|ZvAIMxtv90~ zS?ENU9>bc+JGVWN$zC6+Ejz2P=xDJb(~&g6jEPMTcmMWUEL!AT_~pwor&@z)uk>W2 zO)sw1libOk85=Cpz;^EO_ZN#oo4!VHEalVRAvkYAL|UeQ6=T=cSDG7~{S>x@98Jn( z1O-Vf|Fkck#h#vw-1O}KtX&b7X8hAUY)-qrInzIBXS8ElsPLwidh%AenO`A-c#>1Hgw-z8f*8cW818W9ziE3 zTybvema?yZ$|z_sx3*Cv?5Bq=*TRLnny0aRzWI1-s_JFtKNIiTHh12U3Ul1BKxo(X z>uYtnS1s6P^X~sWw}=1ol3!jF<7=4t>BL^)^NEwwOT<^6J#*2c)c@|qS*pHHi_b2Z zY^bs8E;d@yOjJH~*{Kty307x1)Yn8Z^{UA;b^c%| zn&4Sloa_0~#iqm4^!w?<^Az@(PLivRGFTj9Q@7}=oo(at$6-S6GUY(Z70{qnBVu{z%^a@_Zc|Pc=yZ6Pczge2_Y? zIUsU}*WK;A%l-BX*7et}5Gh-0f1`TV)BS6n9@+RPi`iQ({JB|};I!Ir*V!y)^`#yV zNDPa59k>45^3!M7pHz6*c717oIOY9=U$2hbKhviEt+4Lu9W;bvwV_;5kjZ_p%^8U==#MgNIi&S9BxmuHpRhO*R^zXGydCACgB|nmD zdH%c~7w~dGp66R9@^Hvai`n+3&O&aBebwxD@!P-NQvb8_&69QB z(t<{(Zshd8jEdZ){he)dL)gs>TOsXNGa^Hc+E(6qlB|EI?ahOn>#E<)1;elHPnEv< zntk<+_zJ5a6XnMTUPbM=G^>km%bIIp%ATeIZ4a!TFYx4L-*Tj1XT8(fPj+hdUE74K zy^5YCWXEVU6q=uT^+`AHo6^1AIo=|{ul&T-W$xX#m~r9mvwM6G9B%jB;`;vYN??7C z_f0vEv^k>M{ayQvA6%MTz{@Lk+paW2;@B3G^_)N1eop*${&dn3u}Tef#o0xlBweFl zCbUlZl31l-+QR)?2p1j}_z$ zH(%S)y6dXNm4$q6J5yc;>?nEpTeo0B>7K2=%F|a0oLAl3$S!v{%II0N%lpa7-4gwa z-PIaQ?8D}MWnnmZ|8n!4-EOBRKm0wT;_>C4U1bw_t!K@?viE-P%f2Lc(|Pglb-Y#z zettLksgV5ghz9<1`y_cgA|{;Ikm;XsV4mhZU&9{{)+o4rC`>C3pC)mF+c^PLbvx_>n2_M;H7lFE@|<+!c%KEXE{X|N4I|4v-+Oj1*MF+YSSWcE&tKMs3+p<}_y=l&@IAtd%o8|5gjzyY_ zG|ZX3_s0aw)aAdFThI5enH>`l$y3h6Z0BMx#W-)tP!v@E}LTYo)3En&SC;?6kMNdmFN5%APXaX_pxO&kmX> zRXoG&-{z_uxfIUhao_5zYeGu0zlXYSxXNm|rS$LDw(Y8|4O>jtTO2XFQ8|5Q=7-+= z7rpx4J71M#EiRGgpV)WK`kmjVmg21&Q~xYj&^A>z$9t8wgh*G^uXN z+518IveHFN>-{U<-#q;M^n*837MK4x-MD-D&pN$Ui4V`uOnFr^f6}TbwUoEf3v}$| z82=}pxF2+4&6Qv$VXv||+cYP9RoQYc^7*~Tm+cqZW<9OdHJ7;@7#eC-Xvxy-JjJj-%KCvfK z{I)!Jm{RZm_Fj}+Y*^NU1t}>zHyl0w+-65@nAdf~r-_^QE>JsZP(LB;^zxPYSs~MT zWbJ(qsi#*h<~L*d72rL8TAS&*ndcn2M#eKUbbmds z?q^cp{?2gfdh^SV_L%!$FWtT7rsj^u9RWWNZVrC6Xk*5zvvJXBS(B=gnk}cDckw^6 zQctq>jOpj9CV@A1&#w6Spe1(4v%`_mi`|Y1B_A}Lw61%bioL91$)~l3*H-a5E!z-R zd^6>AWu9r6lF(Dz_3N3J79~}0n)KNFSoIGVYfF=YBmY#34S23g$#PmQow~os-1_YE zOF19f+^0S6d$UL_dJ)gPD&>2f|L3E+{`4L8rFXX_f48leclMgqPkWJl zcaOY&rT@uIt9)6}`;Xdxa(BDjKa^{BL#=1&BfA@?Q;m$1C4SCXB$HP$OF!Fo$&F)o z?ZR_7`B^tb`{#VltM|UQF5<*Xw`ZqV-`(RfKDRc8^P&YC6lXqb`;ou2 zQ1|Eiq&R~$9aFU=(vF5}?t3IQW74bg&6>--!}5RgobCzau4(T0+O=E1c%!w;nbsbM z#N`Xj+A9`WM9wPcia00LtGn{s{Hy%S^kRzZCjVc%KejSP??-?3hT0twm+L>b^%r(t zS>3s(VClYy-8UxM&#u{+x9(xx*+*+$JNl`mzP)xclaR z)F&O&C{IDzK0e#C*G~HXEdIUKF(Nc_SL~T9*U#ikozPjv%IBJ)CjKSIZoNszl_RQ? zt9dv3?K<)F?+Vj{_Zt#VS$vT@cvF4iv$j+}qbD5OUYGFR=hnN=HaVsLT)Udq-y>Ra z2bXf12?qq&|8-Y+pjs1`J+WxE-pxy^^`CbK)$LiO)pYZz-NfaupW4jrOEwMJ``W`d zHUCoH+_ek2pWTqRJiKwr$~K3?VkR}`m_j~G+7hRGsa1dTjGZ$KmR)}O>eqa3yJJ7? zlKtu z&Ut&wIXFDBD_JG;JL}3>A?|ngC#Gp^++>sOb1?W@W&7%8J3kJ#+GiiNDl^Oi?(N}~ zH~Ld|UN!pg<*92Ac`A>8zu__mlSPJ~O`Ta$V+9a)Muub>G#~m9?(! zlR_Oflo;km*S|?wqoX!s$py}Raof|cJkkC8-?g?zW$B8F?5GpIEz!IiCNA+QTUvo7OP`73&y#t~ZZET>moR*cTKDkBj?gPiFFC&G$6j-;s9mvucgfkVnEexO zzIv)~FvX?fh=S_Dt|nee-_jAw#(pJX#6%_$6Hsdq9+6#VC0Jud2Y3Ks`k|{ z4?awl-m}!#;Bz?FN|#x?n4TTt-2JsFK~J80FZ-Gu)_xPdZ=H0-qDsT}+FDZ+!?kg& z2c7NGZ!Ii#S7CoIkqfg)m_i(M`;r$pYwWNq44-pXTGb_q@yvDJa}iZsXsWh z{%Ph)Et|(BQrau-d^mi_>tt^Kk=JQQJwBO;Yo#dr#j-pKY;*QiR#xwwlG4Ihus3Yl zCW$oy8*cV|>}0&rcz0i?b5|JSErFT7T|ax`elh9IaGs+d|Ffp|%D1}{r`E5}=&B8> zW?390;B3q&u!du~(ELY6L5tm_r%ubhn<}vA@xO1cpFQr$f61bmCDtG}gY#EIZIH*I z$@tF1EPY6kxna2`s{Qed4ldF^!7xp7z7o7rpKHl5s%9I|n1v--0if&1<) z+`!x9xPAd=!k3T@dYASbuM<2y z*_nnjMjkoE_=Ix6An+R0&i%m=#^mSKTyyg1GM0z*{?3^YfY7zS2(ra?bMR#-z{|k)Dv3 z7tcP8p1j-D_o=$UEw?GH(q3U_B44mb1U~5UmQuf1ea)gj!RpW+*Plr%+w=T{4TQs8 z);uW`I%P4PTYKM0c8C2A>#sc9yKUOTlxP&e2h&$dd+g|ys zy)A#xvTUB+y^5FiZaT5@$x2VhibE}2FJIhBRneR4JSosf<x+M#Zk+EkcL?2~P0n zTyOe$_oC87!5J0JJ1&H@@_(DG`falCw+A13&&*am8JD<5q~n2&TaCunEk_r%$2RPk zVtv!vXZAXV1cqG&k`uyCNcuJ`YvQenNGS4q*|Aegt-s4pV$YOiDu_g~!CYr^} zIT6+!d-bS+gx|{pCvIBtDyl9_WANM}xLs9kafgDf_Oj`>Kb|No7F=I3^VMft|I4LL zcCGdYk2Tztx+7@AxvaEH$1`)K{x?PY#J<4@+vtRvg zQ!@=~l^4#FVzjR=c^0|w1M7(ezw-I^Tz9r|U3>KEc8iSl4ZYdR4o!K!vaXC@F8_Sj zE?se-k`J0Tx}E~NxBj^z*MDlNX!&>ZhK{}dL)!um=H;PrGc2e2 zes;V3BvJRdr(>0@RqV4*rD50C{9Df`ad*!BxV*0+^Dh|w)y!=?*ca2yXUk}It+3be z<0Agh3z`0Rc#l`FGrfC5Isd1kKd0-dgDye;DlI3!TA6Ue=+Y8bmByX^*;1Ot@7h~4 zJlAQ?yiguvI!EMj`K7I8eQzBuhj9C!#v{?rL|-khG-^*Q+ex0I=` zn;2Ca`g3;utiGLpZi=p!pQrZtcC+j9eLp`vlMAl%Qqocs|I4Kls&V_pWR}MDGxI+m zRz3LT-^YSUg^x%(ya=;_(TYwyc*^xfO{ z=j-F!JBtl8Wpjf6*Wc7C%G$tw&8U#;X?WEe#Wh&cfQ!PYC_qn z82f_^YBgokyi(+M?(|sbu`7VV%JAzFCKYMh=i3#^*c@clX1vK?k#*~h$NOdH3{odc zvWi!&pYUW#*_?^9R!mp+oO$GGnAWlx#f8Q%;}%N%d~rr1Ut6~;A&lSh@V4?lvhr4M z-_E|vTX~N+cK-IC51)v~y!$=n{?qN?8RE1qwu_BcAv z?9{Y#Z?CQBI?$S*(opC7P51DEKLwf#tae`i@ZiuAPmc9p8MdF2x#8?NDRoX-?9o26 zJ#{%Be**&?R2LX;Ub}Kl#zMt# zudh=>H2zOWl}y{pbcN~TiH5GXbMJ-M6>M_nR&!H)u;y!y@5!mA*^l48SaNS}iMqA+ zk4f81SzC|AE`PX1GCOpg4t^MrjK0?OB!O|W&XW0SL5n6K7OH9!jHo^{)=r>IIXqWeevnvYxQ{T zjP>%rwJdpac@N*k-K;n2)}Kk6Vx@7W-B9rPrN;dC#V5qMC%dao&pT>kdqI4C}~lr{>|MrCWVO*R00zdrVY&{m3k%$j}(U#5xUB};z8d(}Qrd7vwUH{VQmHo0P^@ObQ zu{&uj8D*!WJ(J$ZUf%feUP^iO@y+RV$+i=}t!v*JS!L0CQ*1$8|Chedr56eh{&4N@ zj=UV8n0r#`Ok>9Oeb1+@@yOr_e)#Qs*X5LHJ69c*U*~jcjYsXR_3`(U3cKeTd}h2~ zck{jde7F8>Q~#g%x$xn-$#-i~uP#`AEG1>q&icSt;aZQM=iIFSRc3hfKGR&Q70XUc zbDyltpJ-+G?dXjE52c=4`kwon;vKHYC~-qGXG+v*xmNWF+KHzN&Yf-lIb%-MY4L;K zn4iC93%&mR>#PUs1s!S^Uz+GXb?MVmw&~vv{ixr=|5NOL)~n8yt0b2TMb14K)v#*1 zXZ;G1S99Nd@9@r8mG<&#P|$Mb11U!rH96b~`08@c;roMmOBbA0xF(_cUvk!x2}U~$ zmuoJ4&GEO-o#9CWZrV-{aVs} zN~(-u)->@&AG`!JGXw6}1zE+Wd|2ffZLGnuif_YA8xgJMo~=8)#JLx*3bpzdvPyy@ z%;&$8Qmd-r%D-FgoiILJJaKtg$Lj^3w1T)L4@&Py+|oMdjCaF}r4K5V7?v!#HA}MJ z(LmC8^)ch$IzmBHo@nXLI4b{;g3=Wq*l#gH(gV5W9~eGD+enUu81jH!&YrdFZrvzQkky$FrJ)rb{jSeLTXUZ7>?Y`t95Y|Fs+;Qi8F%lnR>sDBaZZ=O)* zy=P%-;bxsXMJ+qeUy3O#zv83EA8^&y(m(3D$R>u_JOzD$jF)b?eLZUW>3jXU_xjsC zOGS1$&$RyR`bmEMr_jS&Oll_AFPm;Z@lU+@wpr{UvtJ3X-qSiSN@3fM$5OttrTRa< zy<+Mhr?=s9#O=Ndm9J)G9h1~}#-i0>elw%)=k#kV|Ib%ds>iSW^5x_2*Kez&VkMP# zpL^^7(O&Xw{e{!3-ygeH=PS0eZqt+$%{QxmoML;cw7oQAO=aiV=vj;XHeWuHq-f*l zS(7Yu^~$O4ny{$o>ES>iGM8Ki^#aEFXVg^|4&_$rJldRs{D|EA8ig zyZV68?-Z`>n-}uty?FBbyn%qH;qC19<_~$IYj@?wv6n~-a*6kBIIU4@SSvl>ZHo0$ z?VJ-w!}I>V-M2Y2g_|qZ`*aWAocvvn)jj`B^s2Yr5E-`P#Wg9nw~zB#)Zdq8FS{2vkL5Ls z)$a>ey>`8v#bGz`Vg17C_LKkIzt?lsW=YhS=Y_{U#U0)%{&cqSMt-}EzdT?%aRqYvG*|Yv%K0P|I?b{rkJ@@!j zHCEMT+n)MWS1;wUgoi(QMRLqkiw!~mY% z@@$urhI@_yRIW`lTXY1U%@MQjqE85ZNjmwthXx7|*@O*Z{Hp4Sv+1!6` zcJ%GKS0S1^NB#b971lsg{<)S#iIO6DI75dp~2_UgN`RQqNtJ ze3H&>&{j>KaO1VzU!ystoOnxH25th6z)jaqfrh4=MR-eY`1A_6}xv%ra?-g;)#jz(z$N6 z6Zh!-{JW*K$V1wn-DFe5k(;SY*3bF#`P<{yw=ZAaoz-jf;7FOqTHRAQ+S{FWWTk0X zKYefhL83g#?{G40TEBai(HgYK9c%~}xiN8F9e zU-*}M-)(90vQv&Tg|B%2y1K4Uq@&Y8a8_Nq`=seE7Jr?eXJ6UBacz5pc8%T{iE4h$*RT$}&lyYz_zf!(|(e`SPD^K^ba zBc0VNllR3pZp#IUuE81i8xT-uDG>Z~vY4US-Fs z{YDD!qpmN^JYg4lX6e7j^?MVa=87H4&Tj49*5e)Ow7Xht$=kK^YE5qMmu*y6Zl3$W zynE}7{yW`sOy*vS+QQy>{Mf>*=R5ZAnvin)J@3*_7oBDw{jk1OU*7x1j_hA=69uiB z>%F5_UiI0tJA_p`a`st;)zwEg>@9TkSh2Zh3D1@shC5=awU0lDEKAmzUL1V);Du@I ziCwI_!bK)2Dh3>l<`Mo;QE=DWbWvPc(C!Uiv;0o7d#oxCv~$0 z`8U6>-FJ_r@PFHdDYGMkHpH3wSg*}JASfLb^pvMHH~Zb9Wo1{hM83r^HvRk8y!hLn zB;A8Q{(buTH0^wul#S#I?h|#%l7gIfCB?Vgep|V2QfU9I&~LnA+zl7EN1ZiKj2 zdD>$S=cE@whTnRkgzmYT@%Z0=;@F#|ymVK>1rssDxv%V8)FT5c=I#uYf75aC-7B+C zS8m!r+<55s>guA`)iU+bZa!0H)i15tzw~6!1q;VZGtb&9ThzYN^MB}9{dcipUdgij zfX~8*>vAMdPg=T7(Dv$f+tXo-cAwKdIOEM%c_)z-y0a{K`7ci{>ztGkeYasgYg(_> zw9fXd=;SNbT&IoXPoJ3`CLZ2&^6}T-zqKu&=OhHKdw9!d*IX;(H=j-B%zC80X6m8W zEfW}Kn8`(aZ(O_FKS-cs3By8nF&^>0%O{iC0$q3I;%EsDleV*o%(mv%jzvyKtMjMY=OTIa{sG;-Xq9vlIEZ=jrZaEzu zdQkL~sM3U>cOK85MU}pAkLh^*?fo_{L91o%<_6E%yH4)y`?JQo;QFy$(`#Q^ZLD8D zqlUAxXZos_tZFjfif&j(rv8!pu4R9mcjX05N9*N!TffI=R;F*de)`DuUBM+4$F=%j zymj96Los#oAx6*Adx~qK9qXnyn}1+BbD-WRV#%HvH;rVL$jVFpE}zBY(mHqQEe_4% zv{&ujM?M_?D=P8h=xct*hWN}m3v}!S&L8AqdHR^;$}!WA7ZNrfD3mvry>)ZdyNaK3 zfnPJtPfd}UyCy5i=JGf1BROvp_g-D!mDu&!R8B54C&t!_cfz&<)8Fe#70(;hrS@Zwb3xum9TUIS2D3wNxTS^C}KKh)CI-7c3}qf8YMF?XO;D7G7^U*SdJ0 z+DBen(Xx5bk@p?>m9{c&+V&*#N^MNu!?YG;XWS(>9`)@xSN4%_?x8JGCr_7{-HC{l@z^1Mf%S#d^mS(>8`Hh&7RicPT6Si< zXOZHLWl>Er>p%XG!6lAiub8!2+}>SQ8@=i)&x9uBn@pEycAfe_&v>?a-<=1HRR{A{ zt(re^4ad3I)!aJ+P84rA_o7ut!gc$uA~%NhWk(mRIheL?kw~i7LxI@0y{k0C-fmfX z&Gre4jbUk&aOyhu^gtu4dweR1^@n}GCpi4jx{!@xDrI z@Jq1`$*#}$>O6cXxArQxK(+C^&Zl{WI%T|qZi@oVet(uZEum@qGJoxDxmdNwC6d?O zwoOqtIwv5%Ht~y)lupE|@+IvmjhU?TcK1x`y&aRszC?M>+qE25A}{)1b#z!TeVaq; zFP8uNYS(dxRW&{SEx~3Tk)ph3p7*i0RSJ1V=Uv&hubg@6!>4~U%9#(YuD2{EUR71&9-EpD@k=|A|ode41ox%VgGOljkaPlsKr zOZWYh$$7rakok2>;d|LDo|`njudd4uw_-jhkgoE@X6w6^bB`Wq-&*GAzpA=ThU@MG zgL(dwe?N|Q)M#r@3!HV+zGrclX#?x^SJ@`+#vS)|{B&zSKSyUx{ic0auh%x+JCuAN z%V?JN9Hq*bjSIM*uj}m7{vqih{X1!6^WF9(>t?B6_lXDke65DSxL*Lrn)M|Mof+`WCXQ1y}8z=Qojg!i6$fW2c3S^(BobR@V34wBDSS$9eij zm+cl2VZkMmpQp?HPWVvMA2Tzz+~tv3)c2nYO4hu+!@K=cvxe?NS=G!cE1|UvLKgL> zrCPro&y-$#dHw2E2LI1#O>5R!-{yT6mis6|(0fJLlc$Fl7f4P|f2c4a>D$3aZ@K02 zXE|S5ySVJQt4@zd(r&jmVLz@t+cl{{chBDSZu>b?i+#dFjq55;pY;g*;Bd#Pv{hr9 zjTw~_g4T5b7)8y6^^X9*KzkSWT<$JAeM)6;J%X(IEkByDT#bpy(w#T}C<$nBM_Q>5=pO+g1%+(Dvd zPp?c7D3JHsvS#hG=dSlJ`=~M~q%*XCm-_QwzWYGQmOp%*?$zh+CKM|=y;}NJbH5PV z^P_H`W@u(CW@g~#-4#`Ejr#@DZO*6LH=SK>e=YCiE7eo1xBpzZb>Dg88`X=!lla%o zu=V}i;@gunyJ@P8nEgr}=9A`nGPN7G9Xn8x6qVmDaN+4sEBDMrJPsSpI&;4N>gHb6 z85dSJ#P{OqtPhHStA<+=f{K&Dsa}=k-mzC;u<~_PdlKDz&Sv2U7v?qX+MuN^<{@8OMaUN@m<>z#KS9J-$cvoQ;Fm$J=S^oB1>WUC*0 z%7*U?`hF}eIQN=Y?~o?9uT-Xn{&x4Jcc-xIm_PBrOusKj?#+7W{^jFeMpsloN=3aLAM; zvzu$BwdUWT*7v$j<|S79q8xsUe1BoZx2Dqjjb@IrW3q! zzn%F_^v>pI-#a*)Hf_Fpr{ZhtE5qdamst-t&a|DG$Q=>5tWEB>(T(awXE+W1&gu|+ znsJq5+4dXX*6ncpx!byOU(qv$Qz{|qhPM>>`!;-?HDQ5OkrSiPq2A{%*XGXBlxN=U zD_B1L*;B_8%WR4(i;a4WC)r)fePW`udr5%M_bg}a8CTK{hL}5Vj5Lb!{4gV`=)7|ZwIFMCB!9`Uea)=FnIMjC@S^D=R=&i&2IuvUq1bQ`2oY1iU*Xq zPF9xOncUldqVRjFO8z^?`%@!Rb_c$Fu+Ycl;hptQP!RkF+JK()V? zmtJO2??oP2@y;#$ODa+_G_IK}iDA}v%f0(*k(d4{*6s6Bv-KP@eKQ33il406`ciXs zlWFy~5^t*;LUPBa2zfly?&`ljdBLKHrYDcD+V-#(ePXXyuHSaUWX-bA!e#Ao>v$J6 z9ayK)c1z{;k?OS%GJf#5KUtE=@l^WO^#1jiR2SY^?{FnSr>ZN;okQ;9y<1{S7jC_o z<$7V#$%_xU>Yl90JoRAz!WE%QY7Fdz4OqA{rysku>7hy7D{<$G?uktnK1;9dXFAVj z)X(^*FmRV?S^ks2SA8?)Ki1BBw@9J9<=920DPRQ@9bZk(qurp#=|1y83 zo#7`3b_YFPHrFVgtznXzELq|!#WWAB7Rk(9v1)SQ!3`EJ2R4ZEe+gT=-BEbw*LOEh z&)%hFtn6BTqk7ibAGz0-NpVU*bt_t|M{rSX|mQ9~D zh38Btj?r{DC(R$L@Z({~bGEA2oL1?7ORXkNZPZ-Y_u2ktqJeR>@jA)xmEvp?o73*3 zzUj-(owfb2rMAqnr8;p#n)&U)5Ax#FZ4|D)s&Pr}+0 z`m*H@p0c)moMfIbCDe6O>F-6ktDck;zS{R+$nx}65BUdyx6Uv)9#%JFpL=kF0n45l z#+TTRE_}J6I?YM3p!fRsl@Ge8b;boO)wnw#u>0d8}Jx_D_o1(7fhxxa-Z8)^CE7*e~8x{nU1S zrs4|MWr5Mhjc0z$kUFZ@cXN|<_3>WWTdGTrt@?P=+B~)<@P+dafqn7|&LwYsU1DBW zl=@Q7@6s`$@0*p~3}ioP%>489T=1dyTYjB95O4i1;HOGmv8!uT&$&$Zt$+X6ZeOI% z*t4eEZ|{*C_Q5(adqr}mP6>LhG4ITZW5R2g?qA{2l2~`Vor~>JdCh;nf**hWeg1v@ zCC5!>g&R+Ob(vpnNq1|IDw^_%Biwc8X6H0SQ*hpH_iZk*m(V*6TW;e`~w%#HsQhiWd3& z*|IfZN_h<1vctULzbxWb$j-JuW_HJ4XVNc|*wW952YG(j#xI?*t$pqkr!Qgg%r2RG znKmV7htx^G3qR|^{pfdCy!BSdG|-%RzKFF{b#`I+!4ua{2ZvAGqOim7 zcP?iSdf^lGxI^q%9d z`AhuO=EvVM`&7PP&ml)V^ZeT@$_@VQ%F|giE$n*-_TmJ2#9dCWy0 zP6P=AT8+xmx}ey1%xvRuHz z@1*jQ-|abJ^Hw_ge$KzxQL4I*A>ggpBHh>VAq6JMOO~)zuHF!;c=DMXZ%~1l&sWKM zjzh`D8-rt*Prh!QxZkfSQQ3WW>gU96z_tCe4b}+FkGtMG^e5>-21(3Rjzoa z&T$>1eW4*sN=@zFCEMBFYYnU}+&V4cQ^DVF-;(spL^y;FFfWw<)Al;BgDvvg<+bN# z<-h6Jv|g#;{hV`-=FbZ*u#~T{a=T&vTrF0cl|?2ct+s06CaFV@=E&T5Uiihs*>wWr zCHbn}yL@V4bL`*5*?Xt!cAP!GC1!>`<2m!4VXk zt2|dU{DljP<~98{vX8oiIB(6^kQSq9AlzxTa?-BJ!FDEH$Jl!nx2#=MyFm3|ti(#e zwT;(~Rm_{o|G9Iv|KDwG#Zl9rERp+n>9hG#Mc*4Y7YN^&ySAK5Y2k)Pt?d?F?R$l} zBx7{h`j4kpM!h|vFWvms{+}G* z0--XFof`fdTsK$eITqJ#T&B;i_};d*{5by({?I=)LAHOY7mB^E z;Qg+iR{cQ3enE@U*TAi-MW1N$FB0u->$xm(@0;?kKCkj3vHw#p{uKXZb@83&g*4G? ztjFj1|NZ%+s#kIGme&rKA{I}6)xaruYRZW-=QN8ZdEPp&@4k1ASo_q(T;-bWuRbp0 zE?CZ9wQS+GrNPAu&uuS1A^1gb$wa{-E~X`!uTE}AIq*L8R%ZT+Tfw)2m(~3&o3Zq) zOA({>P2G|&Q>^o+Du;6leG57D@SG&!dzC3+<{rmdR_57@}*zWXR%-^(T&F%2-ac*aL%PlXw zKJ@Z~F0)2sl(tZ=`S*f1$^H8ynrFqdlHWFBUZqpY z`)vNdit$z#JD1FPdt2T@AYoUE?Wcor8?MUC5nt%{H0k^o`H%DGUt{7qQC{xT_^B$+ z-mUl7%$j|3O-n4lSLDSm>i3YC;`vi!!OD62V;d&Ue7f((iaY!)cRgRe^f0?t@L8MP zeDiO2p{85wob645UA|puQU7TDEGjtbePc@l_ap6(%WMNzxyj3GYL?hNHIOKfTeySm ztk%f}U3s)Rf+06aDu=ykN z&ua@mufD$`@Bh>{#mu79`%GkNKc?(@d1iV2cJ|3HmdvgVxn$Zjb?4^~Ka*lRmpD#2 zP&40%)4*wV+`44RSW_bFbFV-S=&q)o<$2K}o zs(k7a&aXOPtFgV{VAv`jg@+;6^<0;7dgdya{Y>mO)!OouZ}th{PrjKl-gYM^GwqYx zUN61Tm4nw>|I@LSYl+?VW?J*Y61usYf13DjV(yab{Sf53XYD7SKa&C&N{Y@l7&hF` zi}b(L-&8EgeDhZFGtHZ<3d1|ISD@{FDd}#^XsCulY(ZTZS)SoJK4ZGBP z|LERbrVOu>eQF={8mSt2h6Sj*mzUYc$6RwAgF zy=qfv`i+)vOXkYoVF@q^-WY#>m&5h4V0Vdst1e5Gy814^H7Sd!*40$wuXN^-uzOc- zuG?I?{PFu#u0r1hEen6PtT1j`{d8T!d#7}5xrLwqv`=4g)q3kT$%d#M39J5OF8sdi zIorl&v5Pz##WXOToPM`vnb&QjPlqet*7!7eFcxy=Xf4vz zFBJ-CS3Q2^@<*bETDQR3dr6HytH zCkNKK`;XJ+!T7R+qw&YwM1G`a9uStH9nO2fr$IhQE{D z`cignIiD|@$lGcpcPubUw_g%_ysh&^CDY`0%ftI7 ze=z*_-#gRQGEQi<=|R~KoorHvbWZ9Rda)Myp4hSdvPn;(R$ig!`QD=FQ7X0^hpF*4&)$B761I(Mgk6&(U#-%|AUoXVJRjse+-5Q{wez$=W@P zIOX}7d9O~^?mH89`Yn-urgQVnv;FFpQODdf=Y*W?{JvN(@nn$e*R3lq9!W`is3AXT zYG$eZ2^YS0_O|Ie-Y8AGdt3JOi~o=R?CPobU-5L6{HfaByhX_ugy(+Ij8~s({%gVt z?>N6=>v>n>zjN}k?mN9{uO830X;X`ewZo2j?cFDxal8M;mPZWUhOf&dr<)7ONpD)5 zAkx+GV$+oUj}~nIeL45mm8Dac9K3pH;meM^=9@Ib?KYK%TD3g1N{50 zI8CX2X}80=!|93bistZ*#Zw9_{@!+$-{-7t@NOmf? z{?xl~(_s_EU3&f2kF&BP*w;T6h@D>fZ32hz`A=`APhDlP>Fi6Z{n^#IvUA^ZZ42qQ z-s9ujZ+P?To)(+k7p6bxi`W-m{Q8jV`y=}fTXN5;x}&NSzv!Us(@m4}_Im& z?+NE8#~%HYyf;<#&9^B|lhe}dqx$vFJj-D|dgZ+K!_2a4GYpRPiv49_|7r71Xh!8< zJssZHf37mw_Gf(*+>l!tw`8GX>+62a(}#HPxE9rQR`u9@=(Rbp+g>HNb9W3+UCR19 z{4qxYb#oiPJ6b6T@A0xoPhbCwt8R-*#ZqCn+{16QpI>{p^Z8fRhk~m9PLDbE>V4F* zNIz^Uc4Auj9tj(tCe|jOSpFktvQC`0+LLGAlyF^VL)^?Am)6dCx<#YncC@?f(N7I? zo-EFFeAjtB^!YQ-Aoc(9X&j0Ns&+{&nR$Mx?35+xYrQ-8)celfd9(fhtPN@#=c_(? zHfu}$0gZJK7AD7uf9v=U5e2A?mhhf zk1v?wHur^xo2Pegzzs3C_KUX1qxT2(hZf9uT5>SLebWgwwQJ}4O=sq=Y;SOC32e9U zU;N*>WlKwyu>Hwb&p#MUz53EXHE6l_g*2W28v@^$a_v^@5k$ zC!gN&^jyEr<6b_GMc2Je$4ho3*1F$k<9Pl@aK(4-w$HCVU2f<&A8WmNX=?cq2d&~~ zCL6W;!ZV-0e?Mp5-Z#xw5ynUL_C!6rqxI8UqvGn}ou)lGEPGyEuJqq{c!6LJ!D7@mBgnUc*A$82OM+rLagT_LDzOemFmeuXX>z|4L!2=Lq*~=GpZ^ z_sFUIMM4{+Ue1Y;VSRh}ZItqV*9O_&ZL$kK96e;Q(dtFaEiU!&1DTSKU-^kg_L@(T zd-5TySjHy2!nN|>zw;-5E;TMa>8`06AzN=TXVyidX!Afrsr8R8-xO1QvRpnY=15l6 zy0!-s#YOIU9X!E*Bx_?%gxM^`((SQ(Y%hMlAsUptVa84At=;hs){D4P{vKoh&Tg-v zaqG&WqYoCHRSw_cv!&{nHWy1A8I|pBM zoqMkE>qg74LJ`e{ER5?X2-vQ$IUT&Hh-;bYEzjQ1XXaI;?+)mS?h;Me)4WmaZ2~*D z`M2dSMc;-=oSIf9GQVFl{6~d^p%*{*LiehYt_Qn!2mX?cyYe*ctd+R3{zUh=w(DM> zo}@c(={LzWTh%zyRZF&2@00xV`|PF@DJxH{;ET8Y6u6M_Mx?p1@$wI^A_CuArn_0Z zdos7Q-8kys-5KXamdD?ce%r0}!1RLM-~T_)G(VeKK0$he#cQRVsd-ZRlbt8YS;q=% zb2+ZwnVKK_;1gT&iT>R_zvUUp1(xgWYpC zy_RQw5v+5J!Fj#mtv6~xi{~{oH+oNNYyZN&!}+=Mi>;r37g@PXKbC0qQ2Y(=rSd(q zthZl~eWn*0Fj?eFp6q<4+LbGA3!S>QtU7YCv-F8?CYoY;K4*J(ubFYyyHn;=;92<( zWzTlC^(KBfJDKy9?OjIO)OFeGjSX(D_m`{MP+|Dwi=mC-^{dO6`m{B6NGP2Bx2wsf zr1(R~rN}B>$7s#YW~I`vK3oD^GdfxGtc_Z16uJYpdUa@7@pO7#D7z-4V72=^SAv~T zRG?9;kPO3Fe}M~kC)^iM7gDc_K6fqge_!mhCErgU=$L10zv}gzx%^2vAIw&ta!gFh zTGSBub4&94W0%VuZ_b^tIzUKaSJBq#&LW@uYpNzE&QM#PWAr?^dik z<;gf_%4%oHL&B?jL*0HKt@O`)?%+2e^=?)9mR#?$(aZQ~4MmUn6r3?EZ@j7(-1Ui!^>vnc=C{NJ;9 zTluGyiuF&3Y+1v9E&0;H?QctUgq_v~UesP7oWR|5>77?|#>5z5k$byl>h|?);s4Dg z!*P1DbY>D;Lh=5+i?1wQBQM0zG4s`x-$n^CJTJTpE-m2yecFKGp;(@Qhk)g-Gq$UK zJeKqF(k- zub!$p6s^d|wqkE+XBEHTd*`vc z>}%mAj5Sqr*#cP)iTC?VSXis@-+h7Z&716!Mw(Z@*H7CR7iG4yD95fH^v;EEbE;3_7vmHQ_>608{Yi? zbnEor3xm&{pLcO#&>>eIrl2~Rrz-C~w_fTal?82Hl)6ere zt`@Yk>ULz>Zr$Q|YCsAP!h3H&2()oV7% z>ut{ABkV^66r?U!TsvA|{V?lH!uts}pKI!$#yfJTUDJ~6JhIZ%s_=-%AJAM4*i{#6jr-g{0 zf1_3B-S~BT#(&L?RmU$`)8N5X z)W#gR;Ombyr}I*urk>wnqv9{PLDi`1W`!*OcC~f8w;L2GluYs6(`n%{&3z^lTb*aa z^O%i~mEOmEosLxA!+D+Cz5n8c-&%UNDC&E}ZlvRs&PM7w6W#PQe>CMCw9X#Km3`-*969t@=gx;u4i+x0OB5&@9xhQx2=96vfPkwURS$c9p_e7hf2-8LJ zYI0()eiX;;cz?sXU~pFo(C2N zU3q)9uJp$@uK9=e+AhA!zHZi}&c?Ts40D7uA03t{se7fdM*07AwhjBd^2&|YWko+y zcv`flt?Y?{$=8B&6(4Kd4^}ZBZz^uen0GbxU~t})Eu6fn|J*BHXl%K}6QaZ}JulzJ zAYP_RDK)}cqxksBrF>~RIFLRIGg+KUBhLb}zemQC$q2Q(gGpb4VzOEt@~j;JERV*rrWki=_S; zrMDM3ZQx`S`1eisuhakc0#E#I=+ExRnU?f~r+qE&GA(8?yJy?d&zBxtf8wz8v|m13 zV^TyVIJ^_Kg)!+)aVqOw^N?w!&pDgRUDB5){#$XmH~ai!wS*P3B>wKLv=+0fpZ1t* z-l6qPUCii*o(CC`8c*C8NrrDE(e7G<0#<_0SGP(OgWwVIFj~BTQ%>6C*Ue>%; zUcF31=!~_7v)hb3TgBaDd^^z7T!eO~eJXS|&~$1T6^&Gw6Pc-QGn_o)i} zvSrT3`Rvt_+zgHK(@!cbD|*i?RWPe(l77$WZ}MLy<|+M_s@pX6gTb}w=E=1RZRTN4 z6{n-cCf#Z(3guaPlvidFgRuPR#5zAch3|LOqn<2FU@cX-9Qo3=`1`#(X%a6x!ac6- z66jvHGq3$Ccjx@By+Sse_KRIKJl4+%z4pWSSuxl8PFv>;f7vtb=Pzulb~&h-e6WSJ zqu^=kpGyZC1?I9`d$%>wPqjOs_QbBjGl3ZyH>5M4i)+r7w+?;w@X4ODTU38At@*UG z+UmH+jiTMm5-hJ)ZRL6%?V9Fsux{aW<4?~kee-jU`-cg?5imct&(&+5$$^VqUw7P{ zRCKJ*$YqU>%kqr4&$_=E6iirm?|c*5w`;-Dl!WWya~l3|TsUHWWX?3^+oE05(ry1p z8n>R6Ir8Cnoen=!uDjF$`SXFXo?&g87n0k8ZkN56iMo3%LOynWZsQm>{d5(;O%6ig@G-nC3KH(D*s zrhZ?Ne`v^)UNxro`mq&y#XHL9q36GgOF1XJa&nQu!cXBmyY%2TNzfZv9j@-yO(jmTs4nZl5KkP(X!Cm%FfseJwkHxR`HzqpVa4Z zbc$z1+3j-=x8z!!e^GW-Tj+Jy#ME^rVc%mE%dV7Gy%W&*tjlW~-Ie*IM)3l(8dvbd zm4$Zl!5vT3qc*(c*)Qe2WqzRkL+1mYB^zd*o#s<@?A-RG%J=$o zUx$m<-fu2us;lN-S$A)_^-_h2A+P`cKKe~(UxJOXakI^$*}@{rl+N=!{Lm4DYW8tvx6wh(;8UA#7aqNE zgmr_n({II!Pxr3PvpHIMOuy%)d{6x1<92HE{O-;u+qX0O)*emy9jWu%L>psg*6OCI z?@O$+ZL?i3f9r0~<{iO4t1N;lb}WtE*2|kuY0tlL?T~Kyx1_L6z4+(clg~;{ zjwsjMsrt6jZ}BOl@3|op+li~9>^$gc$tv~Vd zc#UNLsf#^w}(Cd=M@H-30W_Y!i{lyzZ|W~SE!2n zzU$rfUEfRZU$2e(o?Ux=0>i~0rXS1MdM>nlWmfkLm~-mb1`*~zGIO>Hz6=(Ac;>=2 z@0tFAW;upaZwa@jb!tWGiU-Bd)4bTf-E*(nwJG}U-p-%RnAfa*>$%`6Q$3Ho2y?{J zv|HEG6xx=q4bx9Go5f&s?$=X}kmwnnJU==mCf!?p@WqrFht;3#pT1A|nA7y$TdJL3 z4er`_nklM3)?Hz9@t4VErYi;MCPz!B{CD?qO;)$)-{1LW!#?MY$5+(2ZtdJFvqxR_H}^S>+XcTbZkZ&# zujc8s&a~RUHz%^~7n5eUcyiox1D%Oe`^W5RWz$0xj-UO}Wn8Sd@r$;h;!7Pv ziD_$MZgA>PmsDrW{!%3Ib7t)?i!!DDpG^_Vd#V?AY|k!K_`Rcy#gO^JI^ohB_cfcR zUJr{=oSgV_uJGgx)}s-x#JO|#Y@MNBd9r28!{#5SFV5jD?5j%tx@W^?>#XW5xz*Ee z{8HUl*SYrc_4>5a5ic40erukc{{D;gj-!bW%a$@se))59*36CK^K0HMi~BBj;rLlA*xDw$;;WrRS`DVs+lGWuZ)heA}ce=X^8L>|;9a8tX zl|8YKU#W!gT{bR>sj%4C6|W{zwY~7H_UA~hi05z2A8|2NzRbO!di;?YcUeaG>(ATQ znr~ho8!`QLguMKpLs7BolXKJh^{zE0xz^j?NObS7PPXbcS4=kA?ewtK{#LiXPj>R! zAoc!t`Zqd0R~=k*=*RM_`g@o5T;kPkWy>?VwQ@zp%=wzvPCMP&^7^a(LiQi7CTCvU z-~M&Y>lFFU;3QvTKHio)j2%K-)^C2RA`=&MU0PAkBHDXK-=q9)KFNcVm~6jqDf2i{ zHDkGvK=;C!gP|#VWS{c3-O5&0-KdxPbD!68%hSwr^%@V`} zUw*mcU8BM8zsonA`6JKb@PA5+>uza=&xhlWN*|gnbg%1CK<%TspF{s%zn@!_Ftgt7 zZSbvpmDJoojTT94>J)bHU6_)hbWK&SIp^>Hqv}tB6?dGr3i~`^?yN*7 zW_J4%C;VT}J2l@x-paQ3Gz&+H`)Q59S-TkjY<<3C-%9NU?M>P{AIkWO^2|wUDf-Ce zZNDjH=}Mo5xwx zfxjgq!GS@=w!tKKxG2S+x_`R9c3xgWk+aYvfBR;k zp5}LJlJ@=7_$GCnbM;gw!~GAN-KQ>FCv3N_-=E=&}9hrB3&pF8V{lvw+8kgVOb}acl^F}~VTL%Auu8$KA zo!IF#CrC-uZSqE!bGyDK6*@bomIh3JvwXpJquuk^tYRDLkD4tCd(z6f)oAxT*%MWh zRNmbCm*%%K&2Og5!i=QdalYp^vL`1W(DiRP-SCTfW32k+tBlN#kenfup+YF7+AB2Y%Yg9KK_>_M_3d>YLNQ^FDpe z#J=IklZQu}#U<|F?KAQT3osViA^Igv#N`wB75(U4Css&E+~&Nc*eLSdaMziJt3iAZ zu4>gpIjKqCt@hdeEB-}PMNvawFMWH*8k?7m2);Wsq<2P+L_CR$y1UJ zSne^bzLI&rv|B!Q%9Uou4}CwjHBGO$XOOuyq=^0A#1$IvQZ&T)h5L`mxEwle^|QSv%s6f2n@wv{i3Aex~L0+}q+g-FNr@%a@ADS-L`g=6ivAf}h{C?fJY-N#G95c_Q{aun(vty09}Kw*r!4lIrBZYeq`*s zmXvTX_{^)`^|SBonZEMC!*;bcWQ>S{45EjrTT{!<{t9D zXRLl_XlB{d3A<&pnOYWf>(`XmW5``sWtSrZ11? z-0<&DDB62})}%YKm#54#JEM7R+tOrF#emY%VD@}WJPfeJipzg2I2b1vwu>~^)c_a+KI-Ilz-KPYmwM^o*FaASr^ z_gBx{)3GVbXJ7IW>*Hxw$7HUhoM3BCIi8!dWr^6-dg+F2m1((=>Hh5t!Y`cv9k8Q} zhjnYD`2V)lu!t@5^1)iWQ;q!oPJJ zBgHHJ>bZ zo+Wf;*E&7HmRrrCxBi^s+N@~MzD&(>tEM5-f>pkUe2-s~XM7ni>w5jip0}6e7cV)x zzb>UyI7C=)g2Sxa7w5;G5BXEN^PA&~N}l=qs<+PVj9W05aie*9SM?1myBqs2IX$1M zZDa7O_mH9PnIw1bzOxnI!~-JPZrDeml~ zlOAtl{dp9G{&?K9|FVvE-G5)LSB5!OS5C}q*w&|z*z@SkyWR74mY=9P#o*xFmuSbX zx8m69Yn}3Lt`^0;Dd(T|iaehvKlk{;tCQz^+kN?(fL-A+#Z~n-8#bu>?>dOcb_?W`Gb*7{Ic+bb&PgTm8YrBx$}ZC=w0c~ z%mtgbn`CV@zaA01OWoGOvs^=aEG+xK^OWqxCK z_D$aVdkfR8Z+lj1cW-<( z>gjvN#;mbI=+*fv$HZ+~=lHx+33G3C^Y)ILaz7{eIkVQ$-7_z1vh*zYQ#scua4Yk4 z>D|**Z^SCAE*3mB;}1_`gvm79#i`!!Wd&DHe^J5|b13`8uD`1$r!E(qZ6Wc(ujy9& z#Z{*+6~{aAvK`2K9QUxO>cNCB*&7V=b~hN$;a>M7ceq__b}L_6Y$nGLEY3TGbg3*4pi*1vAW*W%FsYf9#I8(d@mVs`LA zv~ugrlo`geqjEG)#Y=0?oq4rLabnl`M7s=&2mQ|la@(T5ER6c!maRFNSHmwQt)ys) zMb7t(i#7uKLHp)y5BPfXMqkKn{$nv0ckP?lQ+D8AWaXwuF^A>8sdpK1#P88q^Ms@M zy-3&2li$1SZ#jqQW=Huv4~$S`Y@V$OYIrnB3W^Jn#L zwe~qHWxL-&>&MOM4-WcovhF(l@|W?A=N1i}YOhk|Psp~enAr8$popV{Z(Wef)YuDF zorjOb?T)!^#q;*Sidkw~QUq$<4x03y@a<{+l)UYK-tklUd&|~ea67&)-Xmwp2OrtT z4-c%_p~WGjTeQGcwe^==%AtL?zEu2~r@2*h?$?QRU$*WQ{~D`*yH@^G@6nLP-dF?6 ztm~IAq&GRQSQVLVt6V6tI;%$h{;?Mx^9vJ`-|aZJGilNFrlqx~*u?Me;pr3H?6u&B zAy0<9&b2K!7M&KG`$j9*wXFAxI$xN{hrpk%^*pH?Cpz%F&oR}SG|$+CIlptVc1InP zgS=GpKE{Lth2Cwmv~&eR>@WPRa^#!m_&)8V-J5^*zWMGORZ|S+*w%+{JZ3Iqd4JE6 zL!}EZ&t@tKUie3SV%63~9zR?AtuktR*(a9?tPooevaq_l+D|v9bK<7vqV}Q>8(Hfe z>sH)-o?vfLsb00_uUG5R%hyfzls%g(#^>^}b23|h&^?7Yjh#sxk-{#uOP&0TN@6C) zl(;@pHhd`@_dV5e5AXUl*SlZdJ02vlw?;-iUWotl`TG&CKI=@L#2+*9Yr+i12fu`)VHMS#!LbA-uFV=iD=)Dc|?pOuXRj z^V}v(d+$xgx+llZZv3S2$?@b}*Jx>3!#T(DtftN}UYJ}u)8xc;1g@2cN2 zH<~NXNdNfZT_D4Q+b^SK^Xn%N!ZOavp_&TKdxaCS_hn^25BPM+IQW!3S4~{A zLcC6}*b%vRf%bpPXWZT%z3Dr<(X#8QvF}4SeyqRlt=!VdRQM?G(wA92JwP@1zrdov2FRxt5TaDJ2tDY_FaexOnp>r{IQ{2`rTk&rR_0c2n45p=aNi@<==eEy>hr(djXf;?zsc4!O739gFFB(N zy$%OX{*#LddG_~xn(k4~tp%5u3X*=w9hc7OJ}fyu_LTebfO%=f$|vLIZq>fGi|w3y z^rjCJn9b%XNFLpOZ&P~o+PO>xOId!G2mQ*tshqk|bfM)g?uX%%WNoB-8UE^8g__N+ zyI_;zsVI77mL=Q0p4-;5$_uV>%JBR#lDI3=_4dQ!RZIWuGpq`z$dz{qFxE_6RxaWt zc6F&zgi`mRw2j{!#Qw;%-g@V>z;i~A!WTEcqkQ+7%BtH6CMO=v;@i8pJlycN(f#}H zgZkf_2_L8Z znLlq<)P5U?|p%TO z?1I8ADhy_M$3po&ybGOSRJXXx>&u1SIRYk^bi4~yK66%gaNoHd!TY7?V5inkojUOIKBzoqql z?sZYiJYr?b?q7Ee^ggxz>S3YkFP#DN&h^iHxaFHdkYZ)=9P1DRbHOdIyY+&W3Qo{l zv-!h2;jKTe=}XzMp86WLVQ%V|7mp&3eq3}|MBMK1Yh% z?%5^it{A~)vVBT-%I_}4lPb#I(;AzK=Gr|td@<_qnm4*r#ncS`?Bk!fe|DKv`WRVCpv$OJGZ3htHzgG4+AdF`}e$Vjkn?T{^hxy zUyoeBay<9Isr?x@`AW7*#C3-LYgxZ~Jbc4UkgxBBH z-JV*Qw&Lf!jb~@x@@by*lw&?q^OO8dWqX$LW*2{I-vK-iee? zGf07I&JweO_L4KK7mJ3D>%n>-XKc z|1)WS_Ut)PlWX3u;mx`A+BrhxE-y>>=R|weCCj;+ii=|19c} zSx&G1Ei}O94mBxSe z#LJgXb!mRO9R8VhQ#ko~tz4JH6(pujUvc<(#NCu^-kHa@+*yBP&cxA9%wQq9ISD*U3ZP!K9u;^!8pU;>bX1P0S zh5WzIr$x1yEoFWib#CSVc9rdQ3!~fVNg-Yb`gxSpeafdQ{FY_KV{Zj|(T&QcNChG4)MPpK`9oR(JuwZh=&H zQ{&y7;~Ru3rwSZ?bDQd%uV$$L#5?jnzRP-FIE=Nom|A zx&GA52Mb**Hp*xQyKK09U)l$LX{r_X# zk_vlHcI|z+-Naq4cJIoXBU)Vlt-j}rx`^DLn;86Tdi}DqOWO7Z9*`H@xH`#2NZ5!$K>u(WD$i!Cu%?6I0|KGgw;l4P_ zaqWU@?&eF|^uwcs7=Il%DpK5gapqs|PoJBnwXxiH7N4NGmr?XhhGm(uTEP5g{8G2; zmW8BTqoZiBa)3kE(rY`;2vZAZ9G8d^@8{9QHziV>U$psi=e&R+h|F_uxzF@kQ(SM%2Nq^41HtsyXhr!{;qLsIO zH6;~Poiloqzt>isy2wiB8M<)sOPey_>vW{}IQM zNnXEN1utxS?%jOh;rX_E(^xktdhe<5l=i!EJN<;?@n3V)3f$7Rb$S?0>wM7^`R!ux zo+-2M&Xf-Peb4r|!jr{~rL%q%DYzeNuV-s^{*h(;u`}c%gAcDjgOSD#-bvs7y+1Bp zedvdk)M?43D`(bD`?h`CW=$vd5P4ocJ&3Eqm(o zy|>NmPs(NI+OLxoFzrlM)_%8V`pKw+WhQ|WPgPxVZVKjYn`;)UCC0T-`z*^>ORnO8 zz2)swHgSq?W9r-%enTeoqnEy3>^H?PzbCOBO5;4XX4S&F`$c&Pshb0K*q*XDQrk7Z z=a^gDVy8H5vD=zG4x2Z9x*K+(X}58Ll>ClRzY;CRl9`&Uck1$PZAufKw%$a%aL%GB zTt`}ePvhGmC${j^`-nmz-48yuyZe-_J9hz!?Q#R-+Kzg?shsCC?6)|tIEWo>E)E5d*+Mcw zHp^<~o&(=iB90q6E?HXF@y69r*k)4T5|y*P^_5@sO;_#CRQ)ObUD?KNmz~wF?ctZX zv!d5s$T?MUXqCIc&X8xDBBYuwEel%SBenhU6NW{P^~F=wI=_5R4KBMCMKw<~K!cIP^4b{#=FTz3y38W_hN2<(9npY-M#Pp*=0h{qf3E z#WlYen%(EAt=J_Ht&>|~>+!|9(fQaO=BXE_ul&BM?+)WkrTzXo!Y5aVPd~RI;bgOA z@YJJa^P}f2b=7y)zZAa8zj>Xd4MD%R2k|H>No)MQSGIg)`S~U1!zXxst{8q2goX`MG<9YgWIt@_N4JL>J$i9o(aN5GQUfS}o&Ox{b6rU*%d zR-flMPemcy3>5}PY7xNbXZIE27+t&X!CVsP+ELh(D6;$3>)$hwIC$q$R>Sep92exck zUaVz5b;C8jZ?m6FIKAfRuOG7y|KA+UzJg2FC9Ja!|=q)jq5-| zvaWq`jEDZE#uQ7vJ71+TWI}iUD|%_GmliX5#x;*kk<(&$DaF zEWVy&hF$A@p00dcpd#IrzGv}4mEV10F1;0!^4(Sv&pusUXzOy9pWkh-^IOqRXYF>J zJ#leT>gf&Tu3odQwl3h?Q*~_Xs;!qr`;?IBcS$X9oE=Kf=$dCos{ ze7UYh7{*_kaq{8m!nCh_pK2sx#cvw$ae*^?U_%{zO750 z*|p=HpH#t$DMstlFRuBcV{r5@Z}(f>P3&oMQqDfrhn}jte($&S)G2sVWVmz2$}ew@ z3;Wq`abJJI@B5R95q<98Cv88w?ZIiqmEWD~j~{!z@TRE#f+d(=E3 zowr(565$s%Nv+krk-fKJv3JP1{{_+$1pO;-$gY*Tx-w{?%f#86Qaq+=xV4-$`_uMh zTRx|N!OiRhk@~hLk2id_Je%%u$#F$J|E~VlXnU@|f4aXg-DZz|A#!GJ?1BIF#nyfE ze=j$U5>|e6zDqAkYtx5w|N9UBx*u+Oyd>)UhDV2kUf!zV)-PLZ&61t)d3k&Kv4oGl zAK!fEjVPJ1^J&gpr7m6x|K7Fx3tA3K%G~#PFJ{uju5~MA-?xK`Uv4-5O|j3ZZr#9^ zVsWK8#dKXbOSE66Y_xX#gHIdFIn#`HYTdQ4Ub!QtBQ^83M_5W^p2_R?hGBk&TDG}I zO7?p%T6yu0^~NW0>5s3R$l>{|7Mt;QzI9cF#%|px-`PJ5sw_k#l~*kc&|PJy=P#eH z9A)YLcKxaE{k+jm3!7Da_s3Y}-QDSLadYa^Ig=dSqqCXa-e?9pux#~xa_O@5$!T9I zcgci`O83s*oaZn2I`ys2HW5de3o|}ni?xh(*`RmyVEh&dml@k_c6&}~EZbM<_rh=L z`t(%x({?Jy4_-S|x8avY-c-MbC*pV}p83;q>zU18_n!Xa{_zJcxCOCj3m+EPw>DRO znrOLfl1yGJZ=!_ipTrw1AGqvlUsna6JEU_ZsW`)LPJH*?8@k0QJm+7THcNkhy)wOp zQ~%>V(cIgGLC&`OHXkezx@l~aU+>NQ@T)@@@Oz+wzxg{eQ){f6ama=U02Zy(u|2%jD!-Uc;?k&-eFh7F_?D{f()1s#C(1 z-FX`C9zbAHa-c7FKfHCR;?N+;#vecG^Hrf`R zi*e@ud%x)Phg@x?bl%1SnFF;vCwz>yIsRvT6>|I>N6=%#-^H8W?R{^!;7#Tn{i|R8 zXxJ!CTzhsA^SmvUelPk~uTO97+;H@5)Gd`;dWP%&S=JgY*W4!bTKlH3&cnw+H+&b@ zKiKuDGVhS`t$nelq}|&S?tb_X_H0vxLG^~%+UE)VLOLg0f~u}W{kA{Ib#uwh)Q<;W zoX(o=s!^Ngms1f1`za^rcas}_{KsP^K`+UII7k4RmT@7?2c@{RJLs{J1t4!uym{OqPl zprplF^Yff{Kd!z~?_qCoW5$MG=kF-_|3COJ^?Roe`{Dg(?tip%WM2N?wplm()z?#B zV+?NiDp>FN&awEdU1)q@WZ198x~jELJw5VVPrh4!ymjHEo%>3s7Hw?**8l22#tP0? zw=VCvoH_BJ{gb{4Gr0~&lJO*%DKk&$HT2` zLr#ZjWUt;RV>xNBh2Bfeu*>}mey_0BG|TS~SJ`|%bJj-7w2S?HYNp*BjVDu#A5J)w zb35gwP}yys*c$Dndo4`PZ7))hY4S}!e{GuO(PPSQUu-&H{Ly#ey<;`8-3{!Nc>*a>@R&T#Ip$W7);^fA)>*S7Px9NW9)Mb#a%w#}?&T3=un z?Dg&IyR04Q$KT2ei#*HPu_QcysiMx;Emo{$Ti5n<|20mvD#_I`V|o42wrhG`y7A)o z{1Pucm=m>2;v=Wx3^N_&R%**fx5#$Qx>i$quczR!M4@=l%31p+ z%{=)?!EBM&q}($pKUPTHsJu4azEZ~c*~Cdn`!*{by5FGty&!4H51IMu$pQV-Z!>Rm zRJif`_Q{3OOl>EBFPHXZtUV#}yz%FWxV)q!yW5kDQyXX66kKKrezW!L$uCdrF1m3( zo)D>_wpe9x*zsbelU+Iv$Ckd*J@2+peU-R@xq-@|%@!$XZ)y}@`}F+eo0$bh;)m859tq-?hZXAeCtt17q=rx%t6I&XgT>b{_4)~YW( zQsI1`(|$Y`UL=&l@_+YA(Izt*gE-QbgV zgmZU$$uk*?@GQTy>Q2VFSI%rsTRVB%vi$`w@~#G++R*ancFcvf#=m2?hv!^%TWY`h zX9@e_?YyeRriVW%aYU4L;)U~(XP@#IMoI7S$$A+6QCC3DWcG%h zSJLl7o_DX8+IjFyc&G`V-RiH4zIEs5&JXgR)*;LO?{m)DH@l=R@@edUE?K(anZdTS zU7e=;ck^Ve57(GCe{I<<%}#}`?#4}4r)S`ftF8J-y|_+GwRc+RqO>dDSA{&B z|1L3Y(){iX#z*~QI-HuHZ=6_Vo)c%Sl5$P^8sm@ZOaEjIo|{d#Tzb)sW80h0C8rGq z7oE{k`P}!9@AU!E6|2wuJf(8*+y52aq9=C;UEJ@*T3c(*^>t_HLB0#SVrJ`HwOlQD zX+`gGk7++%Mcj;YNDI%MxH0MX%@vH+_2FK2nr=%r%baaKG;!|Vd`Vto$78QOT#l`= z*{$AG$!WuXsz~kpzDKWZ_E)eqb@41tY1{Z$<=$#Lb>@QKFGcvjcy4Dqvts{~SN=Di zUcUVx;qYn!3v+vei62j2-Z8B+-EUI=n>;?5gNMFvwAg&l2t%((X+8EP>)aX1NW&AGvmQUbH9dZ*;oO^6{ElIN?<`>{?6f_* z=9=)opUap<_`YU{2X41n;L0;q`0hdOX2F&fOPhs^KiOCq-I?+J8k*}D(QV%yN@5y34H|x}~`PT)!KdM|mJuN1UtIV)vyzns^Lk=-ZOHs|5fPb&j??v#*=K@l})m zRF~C-<#UeBHLU&Z3EO;hgO%^TJGOjnk@m7PmW*x_C4X;uCvKDX>-e9& zS0gsFA-TT%Pd`88)msGo5oPO={3d68-VY~SISWa&& z{S|0aJu5x@{F#n*Ju8J5C$gC4E8H(=T6}xi&YWMuKSWyuH`g+H?7lVW(&TyNZ>9$< z6L~Y8uXd}6viPSR=kG45%6gu%z5eWi{=_|3rIuX%&0F2dmG;fY*FS%8-Z2@UbB^iV ztGie0E4Ojzm!}{2U%x_Z>!!bvUq$Q=`o5B{%;Q_`wD#fZcRb63{<6hQ*}a?f`_@&C z<;JS#gd!g&@n!zoAM5_^$^+Z0|LUXSGEQ%k2%C29|NoVLUe9l8lg!}o%>Mo9tIOtF z;$>}n6mPUim4t^dz1n8i_`l@4!4AbM7xR}qTD0TiT#mMS!AF12OZ0Z``R45KP{sL( zaPhOM#HjBp&!1OayyU3(!gdX{?@=}?`~Lq94D?L>w`EV<;rLHKZ@6$=(mpfeMCFlu zr=pqrr>K37@r>RUeQVlu@7#zS-e`CKG#_!3iUX2tuUdYwx6f98J(O{2m@vFC$ zPGZ`Y2Q4*oqphRZ@}sTFF65utcVzp1?z4IAOi$J`znY-enEAGAI=|wzbH#sUH}S1$ z=+MqT7{Gh~u1?HJ(=x`jNnc*CeHRp-vC}RS$OwCi}#+iJ?pMEb=9@@ zybo15x>ae)kyT&)oTXpg{Cjs=#!8h5oV*O;ex{8Nq?H5iJmqmKt$Fw0@a`lTm*-|I zuWVXM>ckdWtm8E~z4nM_UU=R{KRG77_?yO}YxVYZPI}hLrQD}5^T|YG$Gi_KN>bv@ zV|2nV%cs=M+mOw>W|?5`!yMm}yDA$}B)3nBZElo}6qyrycGFF%zxsYVd8aR!^zh&E zn?)Z_&-Y)U{`q{&iZ6x-dQrYAu*GOj_Q}XEF;2&8PiHI-em`eVb6xw) zr+2EAcz4-|GiYz0{zh0^<;DYns1LH+r=_Y+4eDwv>3P@xb5FR1@Db4&oUaTXaj|MY z@jl^f^g-v9`fZC1dfi(lUUl)iaWL*w(76-Fi>JIz{i(&#uh$moV643U+3eD}+iL+J~o{{p*Ien%h zf@l8$(WC^CP1*}R4m=G{Gn%`j?GGzkceA(K)GO2Ge4jjXX>0r+&GNS=p6jhp(#W2z zrpmi=yLBaF~K^i6kQXIZPEchk`IY~cC7C%!qPe~NlA^J0V|OJ4Hs zEv215TQsc>MXcas)wPshObR|}oVq(EQ~BDWDc1Ef%TZzU1*vhm`~ zg}!Zl0S|Vj8g%6CsBXI?usVn}^h)Qp<^y%!ErG5Q-#zw(Ht_Pc{Ax^=5RTzK!@6$6 z$}_oZLT76kaUQ?0@9qD&2cNReZ(ivuthK61ifwmEqsnU2sMxP8&rTSb8Lcz3tNb!! zW0|dO-Jv6%Hj|g%$o)Af^V72P95XGmx7GY#`up3tN8k4Rq4@_O3M~!78kyLS9bh8pY5Y*)xVj&L-QYkolMspvvB~a6?{T!}a_{yOi(VxpC*xy|U-=W#7N?m+%Rn46!OMsVS*eaUaZ%;8ud3`N+Qne?%(%YUz_LM+g1BqZ|(no?{9xO`2A`_;gcJk!RhB> zca%K+rD*Z5qvW=1)0Du_j^(0WQ+Ii-EQ^YLs=&7RWX{T{d26*;*Q&mqA#i4;@pHYH zT}84N>|#0|+}-*80r$dIm%j}Dw$W#}_4jhxANsl_e>xlY#?+0{!`$ zGhT8nNKZ&fN=r;--c)Q6TYYeCM|-&8e4(YMjDpuG6|b)UxJ}m~xAjW%tM#YV&PHv? zy1Y)Ad+x51*^AtJA__x&m;O>MF$l=tm7=NI9JJJPx}vam*jCn}C#McSnR@>$SBch| z6_32Mt}fLndm37@`qZjb>z3VmwQBvsW3&EbP0u^K^-5Iq+p0S&7oXepYTfdCzjj5} zf0ueu*F5)9d2;@~h387P6^lu|b`sxxCBi=9iD&q)jq`OrEXt03?`HmcXZ)_KZ{L+{ zkN>^4`tLpYyVvv2C4KJwe&TX(aex4%8Bu-A+mlHW?D0xTQ9>h^lh zj9UFkp3(KG;@<5?0)H}1E$;W8WapzxSEwGXqd2d9~SOVF>3W%Y&=89to`(3?iQtuE?Sed zr)X_;lUrBpIAuy`2&0351XJt5t5-}-wr)wZcI2;NxTw*3?TwGj>=~=dl=c*;$0-G` z*z$4qjf71%Wc2#=1-gz1tvqwyEQ3W>;)F_M4&U@g9}Amof=vz=?O|~73=8o!_sO`~ z_xh)!#8J;#PhBIg`riI}*y3!AT)YB{OH${TDwXtvx>b_0Qgidx+e-+kxEe41m|~S| z87H6`8E9%1uuL@e!uJDz6?z`2s4l(v@m-O?ET$e}PqifpBGiN?FX+)Nu>ss}) zE%RpI>$~bZH2f~<=$~4ZcWd2#p2sHoueZrR|5{dW6aCh2`*nF9_s1to%;I&zU-L3J z88juWTe!}nD=nf=T*3M7WYN&eyq7o0PCqNmlJU>}XW^tYkfqA&7pz#aW)T-d(*Xeu zo^{LCEnK;D?c&wT^AkE87G01~P8JR}*5UJ4m~=wq74!eec{8TH-7!zTC2-CX$$%R? zyDhF{?z$tl{^{q}6^>WD*>0{_p|<&Gmhs6n4QqR@FGctE>m*tWt+XlkImxWKQNPuF z<|4mlHQie!FNAz~HXaf5XX;d$=+m`*b5MEl(xB&FrRRb_3#;%5RBluCoTXFQHHGQf z3b$Di)+b(^nOShSStlj`$0?z%jSc(_@g=$k(Kh2(3kty?ag)-Vo>OcieLn;Twd9(dMK zGj-9kbA^pjd$M!CnkqOtU%YjVnf<%df^!8wzTV?F?(rvLrN%R+Uxv3CgOaZ-ICnUv zF{)C>Z^DbPKE7$~8*+a{zU}o0I~TfgRZE_+#gW5OJUj9?X6+81o~OJp@uAW4SG_S` z*A(#!m1aI@wBwq4IrpNd!*u@UtE{)@o8kyt^7GB?3C$!UdtCK=;xJTfkqaC8^aZQ(B zd{XqDsO7thXXd7q(~{+TKB~_sIN&1eZ}c){vcKWekYNAhM!VX-JjUltKI?2wnpHd} z=ed&p@&2DO_IpA$_-QS3$$V5+m#Q6}-`bq}ciyR0uV&ra^{egJvS-t-ZL8hZkoRVu z=#D2#wZnUu4$R!nz;ZyrWnCtZSi8D_XG&k3%k2(sgQeRoWA6FI>^dRfiIq&wgy{jThwLiR$O<$&Zd;jaZZ_3K63k&1-$c4NAU-sNr zBlBW~wroH5r+@u>n4dom`rvsqv+8}I$>E|;dkqRS7d12FYr--p=cAInp?9~$+Mn-n z&Y88-W}gE`#}T2GKI;NjUHR|-*Z#(mDU)-l;74{W6m+}aLu;$$_LeLB>!q$`YyZrnc9PbRPWP^*ScTW6xUkyZ0@5~?2AgL z?mE%K?4bUk+d;wqsF2&;HM=!4I=XuOT;*b{FVBi8H`^h>A%3y7*fiq)p_=W6-GUL* zR>z!WuG@Lhp2urpzkA(3jhIDoxzq0a-|+PE$7$Z#Q+Cf%H~J_4qf{u}l_4wrTvlsj*3wY0Y$tb-~N^6e9>mQ#YEw86ee`p$bS-IJpS*ztj?`eLO z0Jdur#O*Hnl*dLoe(uuyoMaRK^ZDBKK8idQO7|Oc3hiR8pEI8;y-~D=zumGhFKt0$ zyKqi=;bM{7R-SX`r2pt}SttEkF_vTYqD5uP9t8c>Y82me-aIU@G?3RNyy4l^*b3%& zp<8c{N#*TY*k;@~KfiCo<8xs4qQ<@)(!;E#_Q7pDbHbkTUbEp%CJ zN=sne!3h?bhgyq`HZnBmpFMh6?8^zq0}~caT;$p(WGaxH>%zcsY)zO>$>U%Ce-h7J zo<46`=H}1>;U$I%kFT|T`o3`1H2L)cAHqM(?#Rs3{I+1`Du1PIiT?YNWmM}kV~v(Q zWNG>!)p%;AaHOXp_l!Mjc-7aO?06XFV_p8G>B@4(8!sj{Hz?j+Y}Z(7uF5Z%(rno;@R`Ql^Ky_T|tI=^)i zHQMpqD2cm$VyTlub-C4>J8%B8{#_Eh!S?*-Z9h+1>P)X~iPm58nuY1>oTZg6zjf>D z>o2a%TDR$H|0Cviu~%Z551U!<)Z^J|-EbqF&*r`Dq3u?NWeh-{n9W+ zv7^%q<-`s%E-#NiHrunjuk4HQ>C-C3>(_}FxAGvc?W-waUbFv>{6W9Poilz`%r>b0E`3yX zv6}u%*RVuS$qp~RwkZ-5JGcTjn4A-7{C4!-G7*8TUpvBV-}LSgs`$QB@WzK}%}ukH z?v0wKDY|86blP7J#pd8A0e$;6ynd8>v43N@2h+03_FfzvOucEYt2fO}&8+XzeD1(wb$jyd^ApYL z-Ca`HH?E0i-5z@;$R{*1txv=+t6b*rB6e#p-Bp|BTW<)t>fcbA8GrJW@ol#i5f)y0 z%u7Ec{j*%UM#C{+@!e?oWw~|U&6(|=h-H+e5j9V+C{IE1$P%=OJ(y54a2U5TW$yc((C$PHU=m3ejd=^s3P_x7JVnmNYt zSEhf@-yj(?U*XO9Bga$^#&;Dw2p1PUeE;rWzAF+lCfB%dZ<60WamHVl2p9QeKAnF? zZZ&IvIBrYbowVnTo$y3vrU;Mg8>Yo}?#OE~nVPnM)l#F{l!w!8HrpMoI|}@!S7#kz z-YIFiu0zMEAt~sny7p#Ii;ZvWSiilyTrTSNG^slB>EyM`4K`J7?7etYrC0 z7cPatBU}p&TdWR!We{Dwz*u$BvNIxI7Km;LRk$$aT6x55t&){gT zSQOzf;m3hX@q12x-(ApuG`G8Cv7w@S#rx$SJUerLe{I;HJY|C6Tt+bycMq27EI0Z- zPY8V=)Y$at;3PefX$BAVGA_DIllYqR_+Rg#GSi1A#QNs&Rd8?By(O+YE#atC(*C@T z+gW-?x!Kso-!DuJnwk9KbcX!=rovM;g=Y+1_U;Z5czCK^{%eleBh_UKtvC!j_QtkN zbLE=GDOrF0;;e=TTwPoA5;t6nf9d)}d)`E5lO3)w7T>}&-u(#p z>RRsTu=>}9jw$P}>8!hB{8?2|TZ*aduaaKTyHLg_PYwiq*wg(o!_j$PrS(ldg`~_~ z31P~!X9e#p3BNM`?U8QNz>WKO_E;$WZ>TA=y>A+wbYK2_qk!tydmo!R7@f5Rcoud` zzUS9CbIG8j?V1Ho-$X;vWxEgW>#yF*7`Dw}@owptxw1zkH#c2#(%$FW@mgwP+l=4{j^|IqC%ssHja6pCA{`TP(*-6m z*R0?BSjWEOSy{4|b?y6ut^chQN-W)2%y&+a3V8MW&D!OBrAr<;+01;O{N-2I8uwb) z(B^$*Su6C_*UfWTEcn^&$wE_w*2XD`GwjdIn|UHY>cg^V)xf4rnsR*n5y!iDq^6ok z$zQPWIP*VVF8WZQNU(J)S7x5lZgat-7cZ1E{QsE9%&76}cDp&NsM{Q=X|qDSTNYoe z3!Z-VQ~Un~;l=Y0UW{MqF3_+-;?8Ynx73DnsgFx~Z-&e*6)Ix2`lKt9@3^|;tdNGw z-A`M3IG&z)b#2!c9{nz9o4ZB*3$lGOSsGdwM0>9l5AfT0KWUo5>4}+Iak zdC2PNi791sYP>J5Ri39@?Kk11=%S>Qwg0AA$aZsBYTmR`4p;AA!X6zmmr3Mor>LTK zXmI*z+e<<-o}PFjmE2>v>{%d#Kw|tJkvJ}QMkfx%7J;u~r(Zrll_bgJa`ekRO(*t@ z8x~=2qrXq!hVGu z_YfPQK3yv@!E!d28Bb4Sw$8ZiB-xSalD)Rq@R&sKXXztTZacAptaG~Z{za_n+@OoI zllF>vyyWZ*wfCC8?`L$&zNeGFexAOHi+6GLZ-Ej<)@Z)$Z`;G_uK#lWQS*4o9S+y? zGK{PX|4myzO||Kf#Om6uc9Q#4x9ywedFzASId2^;hl`6F^{z|t$R1{JD>QRd{k>=7 zUx9S)qm!TCKWj_i9Nz$Aex;sAIZd-FITkl>=GwYa^hJ#MukW{Cy?OK5(s()Z zcDv?>Whd>IzM5tAep>XyZILgJR>|rQ?8c>M1P{Z}Oy z|0vbu&5Fx7D+6UAb+;Ff})@KFK?vZFfP~v3-X)SThZoMeV*wE9vL#`r$BLWSR^KGFAzp{s{cE{{U-_4_WN))&v&6)u|YT3&f^mv3TrSLced zM86ut9nlRFE-Or9ELL3oNwC%M*lAVEtCht^U(8TRE%PwgdSnR?ONYV2HGeEb{9d%g zH7?ZL$t~h`{?WGpvvn7n83ffdH~Oh;WjRnFxNwcTz>Yg9UB@;{H(cDjvvt#zSyv7- z2=blgdOa<2jTI|L*U{ZfT!L!0MXSrtdZq+1$S_U*w&~r`mv>Dw)^1JfF+6t7XZN-@ z+g)ayoU3UXoW#$FPN)&!n1m@&!%*eV5b2 zX1=faStY;ZGk@0!vlMclHNBQQ``vZB2||xOlfBPbw(Zs4J#C8M?DARbEEh+&Pkg+k zN`SvgY~?1-YcE*aYh-VV6rX*5zi`rwM^c~jcF5_~JeiWyl|9ADZzHE)RijV}Ip+4;<1Q4VwDqGAghv)_L^(=09a-hL!}D zqsQdi52_n2;O3cSZOg63ad0nJm+t(T{7f7NJ@WopoP5g1XrRJ!^p_F4-@FuVlW)NPRE1~fqNe--HWslo6fkNpIOG?UwcDzz<0N9 zk)qm@C-jfoD-?U2{nooiM&!gFr4+d%d)&`l41JTTEX}@|za>tg|HdT#B?}+0J56=q zP~({q(8clBq2fBf73anq`tAvbBRUrO5qYo|~<= z&Y`{c9LI#E{udu8u1Vup&||tbf&Gw_cU9-Jd40clPR^7mioeF#%76L0T*H?--5twI zyKl?pxjJZ>usvHPI)Rh_a+rkWQMn5@>*E=cTaNTM|25VVIQ7TO=#tn)p@OMx!rCql z$u^OT*YW)mDN9bAx_aZbom%OKPVgLjde+g~b<_Kgzh`WH|3%)_PMXor^@qsG1u+w6N|FsMO2h>!xl;PY>o6ZdN?ibBC}hW-~5Ta zm-ACzr}V6mvGbcDv?crLrFU+b%KK#|N$N6u<8EBAYz_mLpaiex<%SlI_H8S9cv*$Q z*LUi_409^;7x}I|$=zx1_q#JizHw(;cTQS!GGm3}+p6>nf3J94 ze4}P7yORBokE#15kMZ}IUV}6&gH1>GoysarwEc5H8k&CtF>MwGM ze5iiuN|7=<`?ly)iz2?ptiF25OIbbrz=?AQCv4QHIyz1Aru7nmi4)goDrbtgIkmd3 zl#1LxaV@j4tC;J02~Cd#h0_w87RsMl#gr+p7<;$~7(0WOO;CGDl&NfJdi`!Qw|sHPh~D zq-?W4`q8rCtLc-cn2`Bb;n{3-@ z27CX!zc4-F#Jazg9ji7yLJKHQvHG_gzlQQs`}=rsd~{U#4zuI3TUAk!5qHd#!q40ze8`fX#X%tKLYyY)(T|s!6jNBLIV|#Cj-|Djx*K_QAxo>%%3I$9SCth{S#?)>>&`vz85|fK`)oT8Z}}T+v&mkW<>U^1|Np-- zuUBTUbVS>4Tgsy*++p+dSwZlRgI3FhwHZwHzVmYkT$K7Ief~z~Qp^0mzs~FBSbUr) z?|ji;r-nU|?X70^yvVl2-pCeDOKCtVDr*MKz!eTM4`QzrgL-;SWf}tmV*>+cizb6~<2jq^RZSVGi758zFVs0t}SJ(sw28NFe42*k}WfJ2H@{3Ct zxWZc)7#M^>>i+#_uqr4@EnwgZGhtw0aA#m(@Vn;FD^f9MOD%g%^wqB)cE69D=Kkh{ z^F8NHIw!rSgm4Cb6mg4rEKK%ywT{uVLT=BRGjBb&KAKmiPUXVW^OvA z5s=Xtx6k_igp`{v|9{_Vf3&^){*L!^iqG49FJ!pG9&~W^f;M3bJ`35Zf_OHMv!@<0 zl(U8(u0OH7P)e`S`UK}Uwnpdl#>o0-6?}hULUQ^Ht$Gdrlo@uFUv1Fd?V>Cb!MpyK z`97^lt6Q$O-oCh%-IDL0)6?n$%~nP7H5xMVTo*ON^aKQ#p#=N-zMnX#5N%-v~)8M8_jccZCPgIdM&Z__sZ z<1pvoym)p^_9pX}!naRsE_u3cf86BPMrUq4Ua@IzSp0sDM^Dq%P5wX2{P6QvmY-bY zY$feHoaIt_3Xe$qT)&sS?cjc^gY1u_DlVq2bC_{7+JZTpLI2XtzxqceUwi2J`oY4L zpZ3c9idtwR^~Cv8NMq5_D_b8per$cHzlu%!605VX+xw*7E1L5?B-gFde|5s(?3x@_ z`R>!pW-RaLOZ#}>=={Q}n>nvdR_|U@;igyfByC;HhR;6*xSlWCQKC1!TJGFKb3LhZ zj7;T93B0w3J$_t16mRlJ^@snSd6y@3^BEpE(9mzlu)Zz5ebVOd&et5;l^!nSDC4kQ z<9PV0;{x%26(w)K=jg3BPUvB@PhjxlxTnl~kJ*pg=_c2b$hmHNCI4+vmE2=zcV$Xy z;k0X?IwKeU`oZGvIdk(Brg!4~eD!lU^F-b^vlxXxSK-;do%eO|>NC^!H05;b@;`om zc-b;tUESYbrcL_NcJ5r;7oqNbhWeK$%+5Y>rn%)W^YwG}N0%Skex`8;lhJf$8+(VJ z{BqMIRL-qv-?P^IUt_+2@WJo*>_4xZ`)FZV#XYWdz8z13ADmrQbXUgFdgoI|J)Ix9 z9~bmo*Q_w`Nm5C;GFw4e()Yzl0jBfKs~+2T^{028Z=SP#--Fb2N?~c4 zbhLBgk^j&33fAZ!`=q<5Z~i5YN!v?1?B}q@*C~e|{NJZ8d02P($>&{|(Ybey$Fvz=j=AWB9LRn&H@=2%nJoLC-RB!a z%slyTycZIFXnVb|w@J*uR7?E$U6%Qk>{ZXCtg`#g*>nZ&?DKt_$#&!8Pk|jhjH@L+ z*jhi=`O5t;wDsJ~7i*IYL|7ME-2YyD#8K+V!K*B+XCHpQ&-{&lpHZ{Y$B6q&-^d=E z8lVube2@RvlJ7bV-}{=4D%p=qd{+?XuP^)(y8OmOh7i9W)%&kciQDt;$_f#GNjW=S zr>g(o3t!0kY0N$SP`+S(#gn=F8=A`dXIHO(BOd>DZ&20B+VZ>VYJa|cI9#Bcb0}&V z3)jq>UEdW|nlD>jelI&O$>HrvpIBSpz3V4kiaN;rh&z8TXVLwCIafqkO{b>4`tr-I zda>QcyNT(a{oefjt@`usGRx~0t8%@irKgKVKD2Ul={$aBI!CHiCF_yQja}iM3f{NB zhh|9>99tQv*tJfyraPkSazxpB5UN=p(aA2%beV@sr$gwA@u`{_{GaS={{OA-a8LEi zv0eUlQP`>b^-^J6rQ~s26)xUekGIw3sM@5ULrE{DMK80yb@hNz__eJwciBp;x zAD7)!t>gIj?S@o`(q%KF2LjA?#~2^jdD8 z+R9-wpZ&Q9OR2g$kM%sM%EB*>bLK{@3Vw0;(8t3Soo8ousD?!-&1`TwFl*|eZ-@8E z);{{Z*Ltt}UF+XR_U|bFSXp4T^8dc?_ujvZ|G|~LaKqY$LuRa9(O*uT{BTmTL@mQj zQs}X&v&P(r;3t~@go69!_gt&ZydM$2B`V2JIKDi-P5r`^-#OVsfy=E^~J;4TF?G%)LFSP-z_lpdYHeW{ak+b>+APe?bdvKh}G3O z_vyy7n$Fq!h0#_It7q=8StuU$-|)hTzLxh>yL~e|bdQ!?*0lUklb2fMYb3VBb?Nbx&{vnAZ=K>-JpBc0!S_F#bGP0+ zZM7_ZhWXl$t5?5Xy=}%UUN`rBmS$?oR(lP%XD(f8wmJV_TbjjMZVUAI%6UQ+_MpWwK=DC2;;d5p>4Mfv{8&tosob^d)`-g`|< zJTKC_)D5&f`{-I6`5 z<4NU*{R(Vv8t2K(Ix1ttD-$5(BiA(f)?DMon>HQEJsEvD>}}M|Tz>zx9f| znm6%EO6SQA?{bw{&#w7r&kCL{J27mM+3PoZ_SN``ZHRis+uN3weRb8PPm5H&#h-oF zt2@0WB)v&b)oP*2S+k&siRKrsr?`&{pDMv7p+;eXZf@96QizA*{kuSfl0LYkLQ~Aw=E;P z6z_K~|HSmVNO!YF=)P5NW}f293@o%PvVHM?{e$Nf^{oE|x7H*n|EPX0cHK{0EVS22 zMC@zu&Y4#}b1!V$GtKLTNBs2O$uAmW6M4Ta@;fBoU-G|><4*toW{GEkF8dr=*>-w1 zY|EDU6JF0&-&lV2Tmb+7)?P zm1jQS|Ixv*wx8qS_3r8)EAQpiwQj5|%zphSZSls+Ki}4o11;0+Z{z?9m|3UN% z*V2_sZ?tbVJ~|_yrlJ1Le7W=Xj#D#)%eto@;-37VmHT1q#2DkF5iCcg7U^C$Y6{8M zn$+X;w!~vy5QphudH)#QUXgsRX~BV7l&?J4O~2-RbfcTHiQUAMHLk^Fw3w zLuUDd{3d~?wVSdM-Iyv|;`m>rUEyQPudtb4|L>>sqr->ZJ)Y~nu#2(tL)!9(vwe@Q z3U6kN%bjr-M3^5bnmLAwM{uvNPvqL{Ba5J?pn^)=QfGy)lJ5uu^)N<7k{_?e&_AS1C~|u zOZL9{_29_U0=23izQ=Pw%Xv+AR)KJ$p8!Zoj?v_V3EyN2j{JHp?%1x7TW;iD*do&yL33 zN1nHKY%t4hF!JlIz+z2C6=k3JoV96 z_L8$e)n@)9PhYg}{(kj=xs?XP_GX*sucEnM-jtUO%Z z{`-+t6&v;kUvO*Lb!aimj|&oB{9BZQR6d)zZ1i&uDGQe|UGebqiR8IbUyJV-?LJy9 zCnX{9-?rjO*6A}h7e9NnHS|xudYJ6{2kriEYQBdS#9FWCyu78w^+VTpA&taEZ;vRa z*2p=Z5i6@c$P>RRS>>3)SH(|pyyjn>m)RG}?O-Y4S}3^i?Tf7fb&nP6?k`*t_)vUT zLe-hLgoH1~i4Rs^G=F?BZ94Zv_V^z>dklo;$+bRR`{b}g7FYL!tj;4(PE1-R`}nYb z#jTQk6XvpPzFm8$n&JG^0^z8|{f|~E`86F%`F_&%fpm>N-$T(ia*3m`A5ZHv~;=FKQdt`D$u!b`*}phefvwFJ1SCsaQn{|d8(P!({AUj*XMTpyUcEm zU)r1X_113FU9sMJtp@kLGiesnOZG{h-0o_TnzPt$GxN_g8ml~QwQLN#O+|JECv5xi`|I`E>c5Ad zzpL7RO70%>mf)=1&{D}rU$xL9#Z~u@Tc?+tyYsxDL@(NAf|zr1K=6iEF?CzduD1$P z8krvn%m3w_^6#&;vBCb2;U8znY%S>QFF8~$(==JOZL)7e_VK0@>eaQMWPDFNzC7!R zIpgQpzjIZm85~Uswk!I2|MPFr-S&GQ>D{ZkUi&E1Hh;dRfB65~hxz{>YdXVZk|ez_ z@NJWDf7_eovv#p1MryY|J>b@qY4%yKDQ5*oz!KHowtC}*y-SWcd=P0Bna#m|xSW;K zr(xZ;ZMvO1Q)lM>{hK>8b!TU8tJ~zWX+~m)INv;p`WauLy^UjelF$Ly&O>~w3SQjU zDVK2ih5cpSx-0e1jxKPn*&^zybRa(e|Ku4zFV}u|w0iesj+5wo?))iA_f;C6^NPLu z&@icSS;3s3*>TrHZY=Q6(A?%(9(&>6v(!qx$7i%- z8=76?$i3o}EHme5*c@Kfg<>b{y=t-xUL~yl{mSkm>-RW=w;Cs=I4LRJxUIYF;p^xH zQxX?SUH$sBdG{?D&AypBnlrB}`MgUN2$((m%qJ-nZD z${hT7VENWV%O!W@{Loo_@5yhGANOC(IC)Zz{hY>+z4>M4l|f4`f4WvVy>3ePyt0}; z->)*?Rrw0kt5&|qd07~}lPQtq(Q%fqnupI-oD7l@xbn z8UMt~yf-YR^Z1?V2_k$m-P5alG;*u1sXf;@ZF0I{b4JxVLmt<5j@V@ZyHtK%Zf#w? zeOLMS&hU)}e-Lx@P+N>k|py&^aIX4~uG1?eg&$(&x!ph&q`jx-Nqk4&X z1j_dUFXTO-WI>U-d)X~bLWS`Uv9}Hz4XWRNAAq?sE}Qix_^p& z{oU#X7k(FfKIB*$vw`i-CEZsgQ}@QlE$!iS+S_}>s!!jwYIjVbbyoGH-EpViiN9U> zd5_w^t!(!%yS+DioyA@eHs|u(&~xu@^1oks_@Lic+n2kRmGAYM^|U}X@?q(!-{UG;^?$up>`>eBbEnCd)4O?q;(xc7=>`YFZmz!!_cmDehw||Uvnr77-E(&x0 zV0U@F{rTMOdncY340c@mgC{0&^UfpS>L zA;Id`PVN`~4|xA;?>cAme2($O{EUZ(6u*4_nQw94es0ag`sV#&Qihc?j3k?ibf+Hw z$>MQ9RJm{AtTlJ~Sg&5?wkq13)g}|KCcgDn&RW-#Z}jWmaz{mfE^&Vvk?rUAI$~*Z z)n;Gqc?R33Nb;oWru`D{TC+8#@4^Y|g;J-Ubxp|m7Ax9h$9&?lrgr%;&B70{pPhtU zuk&6vbt;{A<5OK~wO3+nSy^nNSN7ANJiIf?TK_(q8E&zPTkPs}UAFhJQhOI{UT}Bf ztXCQOFXqVC&irv=%e8BnAJ{va)21FWFWfjGyw@YWAz||Zv+(Ex>dm*0Xv@ES`R?)D z$94s>n@;-8X*h4o(|TL@LV!Zj_L`)FY7-3RT%GtrqdY^l>cbTlrnk8twn~_KUp{?b z@{+U__mgGT3v9BTKds?CW$eD|N6s3?lg7+b(pf#`9sML79d$%MTE69f_R~WP+7p|t zj`iivbXoK8(?XuS=38ujN2N@bhT0`w%4S~i>+Mt5W0&6CIQQ$z=rMBhGI^d|GCr{~Yh zn{LK0Uw$oP%~y+;@iKXqz7c2tbJ@l**X&ce;K(Fo=pY(*`t?aA#c9&El3Up}WEFg9 z;?`r(@5<+h;_clS(xuOIpgHJcwkDUlhvD>!B!;68qphd-Gus(%FBjqx{vF&U>`{>_ z`D4fa`lYvd!`8R?S2Nlk(A;-0n?)*drI3Ay`?Hkoc5>S4U#wJ9>jJ0!m2>Vs8Eld> z@vzSHh2{?~a?1!GI^kWb@+Rz#fly*stIY)GrF`}We!4RY|3B7i&c}DJV)2a!JKI_~ zKRvUsX}i@EZS}K5cy(F%K8`$P#|alc2oy5hIr@23fQL}r=Q=~tqGAX6o;r(LhD+a{ zskOK;@n+Jy%g>KAKWuDV`=S0sr$5_o&n?c2MUMy;a5Fr(Dr~)d_p@Cg8~HQDE)=x? zDqN^0^5Mh3>>pL1q>lB?dH7FG=)(=)N3v469TxI2!lxJu_&OdsA2dC2n@yE7r*mqf z^2)I6tXWsN)}8e9J$=&C`|QICfx05W{WIF+KJMn~^8WGS;>GkAp)X8-B>nW#d-)_R zvD<+4)SHw7tCf444ZUqoY0DfGe9rb{u~%r=#h@z7S&su5?B`!SefL9p3VY8v>iv_j2{>>s zv4^o$WvybtSssbSFL|b1@>BX;$uvDhM0EP<9I3d|i#B^Ii=SE5vEpXP-WP4xx^FLv zuZcXd^Wfv156?7ReI9r1WHaAC(~loT4=60-+6JifLF!fwQ{MTby=kq+?Ubyx2`nl3K_B?ev?mXW4XNSaT^UvlAv-o3bukGns zwy65H{iEdlU-+072G@Le;;A?5LfrIF0j8CcLK)tM%Ek+vDy+zHZZOn!5qt7<@^p=g zWz#^frJ!+YWNULOYDa!!`K2Kzc)n_I1YN)M!usfNDkIAT6q!m{S4+cP0i?HWhU z`F#9KCpzalGOYRfuwhF>OhUT9bvI)yXwX>HS|;)I?R9ZSv=-T)?pn?>VUufzr05mb zQpbXI$C(7D>!dKUR~5*S_+1;i~_A-q3l^*4NwzKE4d#vw#Wp3SNR_{&H zGVaqlvpyU2^P!p-kdZo(P8R$eY8rcGapXMye z(ryW`X^^>j%xiN^DXZM#rf)_rBAqrBZ!&8*vKd$kTABsEOJoQ}Dd=@6UZ0}OaQ0(h z*%J;oQB9r2rQza6Z@voFWbL>rU@=>Fl5Wq*IXo5980Ws3d(Bw!r@`bU@dkZUA}&j| zxLXTuU^}nct9!)c(AMn-zkcEPqqxp@ajNf+&X-TRK1&3!O3qnj!MtyOquTwCo^C~# zqIec;(&)Un@mJC!o(reg%qJ#me>j9T>J0R($y?!!?P`!#&`f*hx@Bej#{9C2Q_nZe?~tfssnJUN z@HC0-hk3m%SLcp%@urimO{$LkDg0pT^S!03 z2F?8TLx1svlrR_L2c>K^=No=YC|oR+WZoqCL6TYQQWZxlZ;_@E!}V1e|I1t6ZPoJp zSl*JhMaw+d*?F7(hX^*wX#c|5+{bxRa_pjIjteySMRBF7*d;kL%=+P0cBHX?f|EJ- z&N^$B4>xor0t#Z}{zR_4XSz8lvva?h@dEk1hE?w#f4M5!Q>JK~b}mtUZQ2389?_+% zs{Nkr`1tf>@|g=0b>XQiyiTrW>VcHW|}SrF~Wik(py(C~>vtuYt^+ zHoj$YJJTP3c=eIJ;o9#H7Z)G+@Jh_xz35qns!?A`+gb~TKD+m&O@7mN*gTT%fBhq4 z$u?UXp`@0RqKx6L3krU8Hpd9+UfQP3wL2*zlzU~P>msKEH=bp>7D}`!tyE@N-#&rU zxr{?JX$8lA3o$*9l$#m07O#~%7j?68&s0)L>FUT9))Ku^SoAlFQ%i6`X|!OF?G=%g zU#w@&NejO*Z|0i-!No;_a+?os6pA|Qy<7iJfV?^1$^)|<)c;-BdQDr-ie;HytpA1j z*aWM_m5 zZGWcTWlQ_yaV>zGna^jP)H_8b54_;yiH-kI~ELEm0Knaw*iHcVvXH(dJD z=;J}t3&q!q^?n>)TIl_xqj~+&FY0VL4hL>IEb?Ra_i76ERWdhD`r>fr#IACwmy;Z1 zc{4BYc`2)lC4TOT2${Jhz-EJMi_w{=6;*e`1-f6{+Bivio@bMH+KdR7>DB!oUF8a; zE$089^ZxeUQk}&&>u#sX-TBP;<9zfzy9Y0;q=YP^GtU&K)ph5blh#OHro2ohX@>25 z#`6Y3qCalF{hxB?$@wOsaywrJ-s{|rmLJ-4qdL2@B_E_ZOqX9htM<+B18-J+_+GR^ z!Z_e}59f80HK7|kdIN7{H$G+*x^8#2!QN=WR7SnF+1-EE{>sgHS&2P^qAJ{LEkaDrTUE)E?0eOiJ%*^M~8d@by z?F}E;Wc^GD_}j~$YJAz=dc{kBnb_sbOO5VS3v9l=_J(;_&DqT>C)`|aoK}C9xr~Rm zbGE|f^7m2pv+m{G-rUE&-H!EM-O1Z*W_t0;a<^N~557)}%AA)ISha{dUq&q72PDor??Ach!;xMr%M&n>nr-rq(yy~?) z!FimE>M8>kvV}aAJr%M>*24Ff;>)Kj-UAb;Y!C#&e{Nc)V6-;}6PTJ18CU%=+&8AP^LfcMVIri0ZYvf7L4S?9LAn5a0i|HJjMr6TaXS8aC7&Mgd2F>7u^A$+uN} zt`+@PoZ(VdXnHi|!_}iYu@!bLSyx`OKipEX>2<1Uw3_Q=&NFM1XUscp(7PdK{Q;BS zIGq+DmiasS7+xF+sz}nb+bA+GgLmDbS}k6W`C^&5jsZ58-~L{ZXTRpc+y6bWH$vkq zC(XMQ8*^dWG{eQ4c5PT};wr%^<(t#1scEjOmBNzwclEhh{9FJ14R~$;Tgc+)REy$aNR4Sw`NqUUg5k-uB6Q|j#HCWi6xkNo^guI$LsI5D@fXs(Ny^z{RG7xVoR4?1c3 z(P)Be^0q2Rg@@sv>*GW|$X)SLaylk>M|RGFwajn6a!>xx{qPr4@pG;4#&n?6Wt8D(co%b5ig2sg&~U{cLRaRNByJ`A!SnwM#73m#<{`?|b5GPxt9F zz8)t|_Vk`Tb8x0;ponE(#c4)l| zyrkS%m2m3Kn%>U;Gfl%4SMcmtJeDb1ddXNbZ{p^8CqA4~-t$Q)uCmRV>&ee8t%B@! zK3TK;4g@Ugd;6pD!py@FySd_{SoxoBQsbI)?z+QiyTGeyn%{XIeKUXH%=Irgg{^b5 zLs!M0@3ZEf-MRO7^sI0FVs}2T-?V9|EBlVgrO&UmwzePnQf>c9nPWqf{=FAftKQE3 zapptVTwU9{Vz;N+-97nvZB0na+S&GtmK@npxiDvr?1^O?1$0x)jLSRLR4VsYpRkSj zb3Ui{v&jnqHAgERNkjjnS1y+&+*!6xUUF=ifXhq)ubEYMHeOr6QPdll*wmqKe$vHj z@BX6hYMI6DIWotCs{;70U%u=A;D2qP{+gqIYD9nB`^^%sH0wb7J=3~2t{*==KTHqb z6W_C?+4%PF=pW0crgio!r#&lT40s;8=1K_9yVns*D+1ZljHVv*37)az*vV5o;*%v) zCkx2wZ1S|-Y-!?z~YQN8Xdwy5UdAr{_Px@k7FFA`IH(SSM zvmmVI=m+y$rlail^VE$tT~BD(^UTB|O)Xh}(bWE9ha@IAGw_zPv+ya*THEM9h6#Lr6U-Jc6iCff{iM)Uu)%5S*PT53wdBl` zK7E?9ht0^YUHgdOXD7=g*5Z3Ds!k-fb*0~&7{|6IwPE61W{F+joFCM6t&^#^zG=ZJ z`3tdAS;90{_VaID)Mb>$tn$OH^}CJpqTYKPb=zk!%KX;5vF|U_m)V!)XWtG9x->=l z_WAoA$$jE$qG|#vFCcTyleM{s2Yii z08g#_JENjKFgx$waENgHRTDGKk>U5KqDAA**PWUaDm80ccrs0&j zf@!g8g}GyDFq z&hbRqdRd8x*WW7YA3pDTdhX@9WyZ^O*E23HKKEWfJL+xOzds+3*L?XX@24YfeWclm z?NHu-(dgqmzMN~7yB99o~{f_&JOcIh73Uj4o|Dxz0z?r(#9XO1qiCJO5hu zwq)||SZ5(!TxM4K_Ro`!1y9ad1XUQmkZ`owwMEJzZQkwZTN|vrg;|*S{Q{;<|Eu6W>?$MN;uPo06 zroXnldOEwY_#EqB(cbK~QwOqJiay?(eIP%HA)+JwF^4jaqu~kbq zX4WN}3TaRM*?aZT7LlZ-Ij8j0&T)PDl$EM&Iy)#d%x`k4Sa(;X&#ThzoLf4-E3C4V z&b>^SGx>N!FVBZytAjI6X+>+MKQ7|PS#YXU@EPY!?Y6X}hU12JFYYM46{L}vKKFX~ ztv##uw{)_+XT0}R@OiUzz=j2L<#+u$Q+aHe%k?v?>C2Wmlgkk>pnpj z4xf73EU{^p&bI?WCi8E#F5fqyxMT@e;~MS7Ub}=&MPB`KYWbQE`!BBkTEEC|UtjK( zMhT64qb(CAu_muF{F$ z5>r$Ew`xz_HjZM^MLPu7&re(RdK=fVR!ZEyaVqBUy0p+qd>V(}@qo_0DftucF!wG|P;>lh##>^T zbV^O}l$xekl9bg1GrN`5k&n#!8Oy?WOxqX_)ob=}U%DZ2@~-I%k7exonbOC-@=r1U z+OH*@v53JUZgTXh3$x~w=BJtkMJN13+bybg@*B?~p%JV(pdhz|878fDb!d`?+;o zQjWW6YH9wyz%n_7+34uL?0fbE@|>P@I?;{!?$kE3os0j@u9?ntQ|#a6ZvCB4 zlKS0k9!%%$I`CI0y?o6}i}wE5r9M9^+^5J2Yl}|&SU10q^S|NFWT#_quCr_o)+p;; z-Vmv5`szjATb|vkE60B`pb!?nMD$>cdU3UTK8V^R2=(zznv!!%D*g{eAvr%a`S9c%LlK^ zSa;}g32Vz+-Oyh7=;YIVi$6wKYX+SAwE6gDl}AfnMfin;nOIIToalP^$d#6axGFu< zf2yagSJWx4wx6a@&AICS9M_&1ErnM+*Y!PFDivU;u~zk7e}n0n>f~eP4?Zz%Zfeld z|E;$F)!Cgb6F#n*^}2yWI2ic*8DiT9_PuJo}H<`*Zg~e_i{Ly7!rzx>owi zSGH@-u6AYmdYo~3sj`jc{GmdM1K%*ze4+SSB( z&s^e3OIS7SzYE*4dgVtF3;m90UW-`s_Qr)m?fkD&#j_^H-kj9@Z&~v1O9JBQ4c}7b zR&6_R*yXlNLx$U~Ec4Z2Z#m?Q16c(;CZ}J1UB(*m_F02=m6hCPwkbkSDlIEq7kd;~ zZDUwgG*cls>~0Rb*IkQg%feFm1)e!Qdnod9j|R`n71Iw-oO@9)J?q8W+MK{Dhi<+M zQT7a3mYZ%OPd9Z1D9Jy)-rt+NHS31pO3kp-eID{Lod@=aF}`j5kgTFAtSY%J=$-RD zli2kpIZt&RYBzb-tiQdtGJ_-MuGYJd=ac@a*(t5D`*f=_G(pazl6%KgNmY+UA|7SN zYJqxc7kPXZ*_?c8pdHgU({Yoc@zNZR4lU`VM@5aUWg*6*3j=O?^1hpu=Cw&Nw(Eha zr=X3+W02wI<|RpKUMpt^glZi-a&w~ZQH}Y@)Azq_*s&mBsq8;}nE;Qs9!-~PO!XJc z>7VSTd+FT6!csgkQ=HXfL$+bb{ZJ3+$AIcX{Dsyi2WU){MdG4;WVO}vYE zm*{-H_hIMlubu73^v`rv9Fm#;Wy1f6)Cn68yj*DMc*(iAX-WGt7Ek`Oi7ypT-Ai+= zN#p4^_1Gw~IVtkY(PZBeA6cXMr=6ZfoX8Vh^&x^=Zg%_esF$C&aT))acinA$^m3td zpFc)e@AZ>)m*N(3k9r{N{z?2*<71EFrXv%@*gBPU1CC7G^x(Ja!(Tg6-c{|?;uF)y0%yCt5jBAt8%qeI{#()`Yf{xS}g$@*`_Ylr1HkI&bhxs z@W-#v{^PsPm}jv(D{s0Pu)6MNYyOoL97!|w7OIu6-Ltw{i?^M%>b-%CXTmeXyDOZ% zo0VQR=1g1gK0Ex)W%;9voL|)izwDj+tYMlE2IIb-gT?B6I=&2{ZYaLJq7S|=*HRboU=`>=DBXz!aQviyPd&-Y<9fFI4X!`QhMR%`(Nd6_pVm#OUWO}w=)A+eI*u$O#fx==r?KZ z+vyKxn|^jZw_~=Ff{CWN>kKQtT`M@NHpkEL4watjbM95b0k_s_X^EYyY6WKf`Rv`!jnv?w4w>n;E<1`Gu@A=f5|tKjN}4%!ef|%A`X%u5$XhcfZ_p zZoc08fA+q<^KJ_BZ>f52l=}Qq>df+N#q}8mnu|nKSMeoG+rHjoQRAZ;E&0FMOf{a# zS2Uxq87=i{&^cMQ!d3r#AIyn)o4}*=?}=_`lA1vMs=Swz zI)5)(`K@p9RSWKQ4o_Cc_EjzCQ+2H3YktjFwczC^oA{@K*PFbr=3abX&gAz*?&Cg= zDr@;>{dXY=Cpf|nwP$Tj*l^l9JH>Z}(xxQ>^CQjc=C5FCUiIzqe`Yq(*nQql!u%_Z z+utnUQt=D)*_^=d_Pi_mSl4%1uhtiH_`cbI+UAV^7>w?B2@M_5Q&kp0%a3 zqav321R1b~?$=#@Eo-KSuXN+qs7ZPn?ixGRRxul;u8`9Ed)Qc;ufpd0t-Sc47=uf< zXFb|c8J79_*FvF0v-NzQ{7RcYF&^lC|7D$<@3eDi+0Re4Oq+3PU+dPVH%e}*=^SNC zVhrbA)Y&-0G1bIKWc4vap{G(}DlVT5T6Rsy&|5I=msDbzYuGjQXj@M6WZTox`YH`< z^|!y)iL6&Ss*!kshyQRy>is`Q!zFKqx|K~8j7v=kmn_VhzE$GI&CA&zTe3=*ox)op!OdLpM@ZJm2ABxG+;w%;l5e!h<_ zRr24rubKD$*ZLKeE;XyF;{0-dd3e6upqRaDagxenvxTQjW1<2cNO<|{tbM&f^=9St zOYfRQw3^b4Ao{_IJC##BwqI){ES)YP{!|@s<$BdAmGUJU?lY;8k|Xr-2KHoCxKZ$*V!i- z_5D96J=IY9*r!LDXCC<{N*b}Bo?tmcpy)s%ds@v-|KNA$QvSRjuT8jr{N!%o)#tvSeZ{vWzvQo0 z7GD+r$=DV@jYHiT;zqANoO+&h;Au;yw&vrspto<%@8Hd7e!vk^Ik9^thuo#2@=5+( zMf!*4Z)jur@9DH4sNL+^0hg758%&a(vv@7o)Ual6meDTh>wniY3Oi`-Qu?vF-QMxw z7v2}lmoNI5xE?NEv@s*edtu{Oej%q<5xus#Qr2f0;+QgaR0>3N&k&G(s~oMJx$vET z!!G+q>z4cSeFa^)b(?R#$yO;1ao}6)B-{AHZKs67(JOvmmFDcwyilH*CD(H4Q}I77 zL)IzrqYj&-o$k$B^QwkPLE8DqrR*jsA!z1$^H^!xESv&W}&i$c!w~_6o^@4&aM}A!4 z{jje!dBXhul}u~Pww(`~>Mu22qE_XbR(+tL=JHJuPrqBpI7$6H^6227;$_$0-4#D( zv};yV?d_B1;`e3l+480qtapr@X&arXH2q3@-f^#|O!HmzByTq!FJtq0qIKLOI$F{9 z$s+wJDaH1}hO_)mPF&j6Ix+vG@fZK8Hv4!^%7+{|2B>8g3gj%I5A05Sc&aoS#>Eh^gbMSq7nj(H#em?`SURoXFAk`fsG$ zHR9^1->l&vwn{LkWFpYZdBC)Yzx zMyQI`Oy0Qr!;MzP$s13-_K1&R^gX8Z>S?3n%&Ird4==?n-gPo?V(w$j{1cwe2TrAE za|_JjirsGTpkP6p<*ws5GI=W87N#9n-I<@eVbYVSS+^#;XoYUNzj@jUL&*B6t$J&pz7=u-%L*VD*yTI!Qj51YLQcu_j!grosmB&)biQvl+eD3ayHU$e|jyo zt@!COIXz(KgZuU3x*L_Vh1;k6oOp3m~! zzT_QSDpTtXCwbYOt(>}C^l$JLyW5-YxLALwaC~)6d%+YZrz1>9J@!X&M!Z~gev!8Q z45xb>oUEPHPKo_4KaPb@Pt z|1JGlao4t-ishPD_IulR-C6%8Mik_q781_=$SmJ``JTJUsnj)LjIaN!J*1&p!TNoh zPoBE!&y-TT*P_7}^e)fOtLsv7$VqbwTp#vSW6Fe+B~@xiD%7sMoN4vH?i7Or|ApPl zuf1pIF6Z<975hiE;{Cl}tpCN9+g#dt&FS~|AFYnj-*eQrbH3L2B<(2UShY8H<*vUI z-}e{o|F%a$%4;%*!sFkD8ZDPC73~Xr*5n%P3On@Mrm1|3y^Jb@Q=P3E!?ejWf27U4 zl6y2fWP|n}sc%vd((w<@?Pb_9TjRq@fv(mGllpI$^LQE+YQMef{j&JRuFFR08=vjf z{P^nG-mS&;BFghzytz-G+Fj9S`hMyZJ}I7z={vvNYB}|7p-^?5;k$d;$M06RUI^A( zutfJ^6yy8+e#?w2MVr3OaGo^RG-B3@6TOR;_x`_KmF@7-RqKP@>^U2sD*u#94KFpl z#o6w$&&j5ZX`ATe4fE8x<~<7Cxs+?&sXcd@nc3f1yUXZm|LQs*xZOHu(%FOJnE&M0?PRhdH*Hu-Xq#QYxw!->{-oZZ9KA}W{G%-i*e>ubba|33-a)TQ zw>n2!W7|yYv^fSxEE1cN`g+yOy7E>bE`ND#M+yc5?oX z$N60g-`D>x`y^{o@?+j^X3^Bz>xJIO?fup;HRbz;8LmC4^f&Fehl#=wz4A|tbBm^% zIdU0KD3#bS+2473u2SrwpnDt&GK`spjNiVAL>ygp__gTCod)OD?+m<~)RvXsoz-B`1=oEg-tu({hcS)&pF+5YUhum+pG3Rzl^&2jwj$e>&p`tmLH6Ne&%W2 zMB&3$Qc)L!R8G165`5gXA%k=7ny&DN9&Q%`=5+=gi;ugi{X{h3XzrRda;`*UVg(w*D2?7IXsJOvgd-<=$+I_XEw zmm|M|Dy1TMr>K13oh_y*X7h6q)A>hBPyD-dP`KpAze_J8mOGmqc^-1LEov{1#p(R( z>SB9bR`A6*9bbN@;liGjIZ9S`d;S)_fAl<7yy856oXhefoAU+l%Gs1nUDUD8Lu-+D zd*99CCI9Ujy+n3SQ}J7V=X8%j?Vi4?E*eWbd*`IQ$N$2|%O&3Atln+N zGa>4ih^DEq!u*7k*3z3l0=7MgV$(8A^f}k{`q}%uyEnz6HouXY#1t28dx*cvMt^V3 z@*gz|KJ9uGy+>Vqm)Q1d-Zcl-1!-;YeqO}*w@1W%;`95yQZkK?%OzUQ-lMYBQt2JhZ*1vqMv;O}srps!Y@yVPsY|XR_)^#cT6?|0nEUx9xEz#<9 z@wb&+A{92@?^I8T=aP7fJjp(CJZeO!Z zg2jw{%1oclW!h|_VLp3#%;WugJ2MY0J*jozS^ULa+}DMArr!Bb67+S~tHdoP@Asvj z4}W~6;b`vns`KT#ncqJxSp8bCV{H&?R-o8d^-BG7IlK2bu5Q&^cXH8an;-}Ag$yNh?Vyj7Ol zFnemp$(xs#a39s#o?W^-oO_yntZLncs;#R$dRENH7IjV15V`EIGO%S+QejzT^1qhg z36t!izo=gdcwM1&%wO%^`5C)jT-ov4QS9NAUGu-sPx`)@>3h?z8HWYA@>+G?9elN- z>Zj?76Ff5v8G~}S&keIF>b|_Oo^7oW^DC{*t<`(XWeRgM#Y^XQKaPGZUba>D;`SG( zs-J~gi<+i!yyaccu|PI=Z~XEJMw3%(w`lGYb}kiI6~5V0$?50H7r#D!xPM@qv~;_` zXNiB;jUU*s-8rw(v?B1mvtUi8!b_LD*AJyNcOgb_KROL6&w~%Nob$Q zlAQf2$F*>lwr}K|u<5>Cm#<9H&F=rcJ$0S$+eK{0)7rXZn`g51FFxa39(L-yw%mmB zuua~r89~OoFKK+tPviIdTsZrt;Mqv$-%G^rube5rd`tACQ`cr_+$)ma^mWPAXE*+v zoH)AV=fz7~x2-NNoqqJv)?LC)(>S@VrNut0eXn(WSK0gdf1GtKjx6HX8sVR}?ATA! z2&;F8FMagMQrf_!oum{azTuEp=9S4@tAn!Yll;Y8PAqJYSoOZSoykL?$MIv(ET!Jb zTKuL{_Hdr*4azc_|Da(D>!kcC5A1ff*X+@7T%e_Mv-HsPOZ?Yt)&|sEayz=|k?}89 z!Ip%tQS1hH>qA9yD*vo<_~Bc9e`Y-giquQ=7 z`{Yt3HvzXfS9x~tSvV<1=Fq36H5PrMZ7a%nou;^_D!u%cpsM6na=;?4^Tg#fE=QJ! zwG;^Sy5Bk4w4{>f#tDYyi%k7*DOb)>654NjeBsoJo-30Xe5~(R2~ATy;;Q=pZuQxv z(^i{nb$eCh-U#bY-@W1X@71p#8OObxc*?7&T4(;89Wp}7zFaZ)8afLXFWTZFx0|#7 zZTOUFOFWmVo-!=W)iW)FrCbZk#vszIQe@p4QuM^#53Dg*QX*7H@|N z77O|Cg*s2(SA5ib|ML9KYx+0BJ3a?)?Km^-o6h>~9L@=9p$j!Q-BtwzE!CPb`{NCH zkx-4yAknT*yMm-vD}`!E2HX>AQcQA`d|PzwaM#o%W-mVByW%!~6_4}vT3y@SY7(=} z<-bj-&Bh7G1dFHIJP4oRB)-G{*Z-9cUp0ayLjPV?SQRw2@KN_v9j%1)18HnM7Z2nu zTyy034Y|-{F2Q++H`*?&{jM}sNYiNdkEx4v%6X=n%@5tVWLAGvZ^g4kd+gU}WJf&I zV{MNx^pd!*E50~nYMjoro^8G7c4_oaS-gkop7q9`m+h_}XP%)ygJB2j<$qzWmR_qu ziWbSN<}nI$Jsx4%Rg^QUB)0Q@#8wltv-xY>9^E(EzcH$_{$xzv;pFYbTb|3`Zd<~@ zB)aNJaoGg-601wkE3afY$n<=hp|OEoKT>hxbr#KQ4*Oz)6b#qL9yi;RkkoTUKx5mM z4Z)Y2t{NxbJL|M(_S4h5{eOSXlYD&TY?oeY&`ghC?>b1JX7B-~x7QKZq-v`$n=w6%Xhi%JuRtHr7n30;ey z)h$t}O;R~*AEuNwNvqCLs%u$c(9=wfsTM)!SMUjXEuUa@^M%7U7t3w#jY{nclRMIH zD*Skoe4}i_*(R61(m7t+V$F8JI!f_s zfbpNOEa}*zuS3#K&7HF++HKa9&7pD67fot>n$wx`W3f`Y^o>0)7hT^tXKm1;67S@z zT+eoUPu%P~wP@R^=M(3wohRJl`bT)e`$szxH$4%|Zu4;CPj>A)(V%(bZony@OYWG=9n71i2i6T)`UN$C{NA=eZ4O=nC}Q&`D=X!$F7i$eVjS+;%~+xL^F#$FZA zvHu;fcR@|bTSq7gSt_VldAxAW7vI$yS(9F#>`A@d zIa$rx_33q!1^mZOuS~oYER^1|r~STT^B2i0*$nl(PipGK)^p2ub+Fz0-;`7E<;d0r zl2QIWx7B6Q};soo%q&p6$lDTUhQ9`w#aX zJ)He>zLtColvQe zCnMK!+0%NL0ndWq$r}1c*dMXV?44j=X45L$b*x?F$3#1x==b5-^6J?p%y-jfz0nnw z=w|v_CMmbLLb9LzhujW}LqF%I-4Bc0yYttVW?5PGy~+#LJznS6GjXku+ohemQ+gEk zdC0PBubiZG@pZ`k+T?7Or3WT&v^V*=_0s7wsTa-%qISOZ_?c)o?K)ov%S|7ij*jLB z_KU=noKGMBVDGzs#g?S7qi>>b-^%+c_P^Ng_Vv%VLiQ93d_Fhd@V!l&c}cHOIlL==`CoGBIvSiZJzeSst?1ft)Un~QYSI}e}SZK$B#ajkq&toVW{U+OK1&8=sDf3=D`eEPgM<#cN-qXuKrQPl&w|F~VczyC3~_U-K-j@;;q9UD9yMSObB zGIo4qi9K=J&~Vejtzm6;`^B9XPfne}@v!V#zOu)?@}48x%uc$v_PUwuez4%;C63*H zUWVuf2Qr#vt@@tnpYL%0^)+MlE+$`|2;KKW%CA{AMY^^4U6fY6K6B>HWUmhkg|c2e zaOSJwxO!n~l9lSJmyf?Yre!Bg%KiVrIpKe{{E{mk;VsfF871@Dq^hHnCapfgm$}`T z;qA8n2J7Eidu&)Ut9|>7tjn>tKfOMqoci?gTFYA}Cw&tFKhm?>dA_<)nld{4(89n4{Tl;FaOSsNo zZLxCkzP5Ec40ip}dKq+nN(8g;&TCe|~jS zS2Xuu$>m>LdAB^s<((*bgo}GJ%ceyf+guKAOtH6DImsnq9sbDi(w`G{OfkKRSANC2 z=UCmj_54D%x6qc43)SvCm_9>vRe$*u3vXR1t-?>Lk|GXYZ1}Eq$IHZCvt(eqeVgsK z)!LhLZEq%J%1?B(j;myqh(U^)pK%L z>z9v}k*p`o+#da4bM3jRA)S`hyy&!YU*q2ki*Ce6?%h}Q_OYyNfA!r3jy1oo@2)Lq zFu@l2t8k5)4JO*8lyez`QLUgdD2RP2%~2GjTNbU6K5FWJK6 z$Kwx1ZO+a7d^c@YaH@5`xl(A@*39@g`7HCd>b4^{AMpS2H(sZ^Iwo@GtABlczxUQA z9L`+cDZaOWO{_C|g@;X#>m%a`6+3U!c{wYd7KaPWORnH;Ilkn;j9F_w-a8RhCuY=; zli&8#Rcea(r*zk~j~BM&eOWtomk`s`(N|R95meE@gmar$jpT{ySjBlh3;!e zvDb=q@^+U5HSx68%`JQS>8s{k+{Kj*E;1o;S{3WBYpd zuIt~QJo&Qb{ky39$#a*M@5s)&%V+y1I-2?aC;PK|)1&U*EKRq$cJbqk?@L(o4_{2# zXePFFnV4zRywdOih^nAV_DBQJ zKfk7Lamn1;$*sWjen!~#rFmx$%gXXs|DQKW__|DZ=9zU}*`389VM`Z@6y+?*^?15N z`|LdN6`o7d9=m_M(Or^L&9MEOhU{%ohrB&5$FH$g+&ewV=VsI9lZ66Pw_hmWy_y~z zx=?!Oo3K80EtQ^mTwgS-J==VF1+FD_8l3t%DIhK0zqQ5A?S;Rc=Ydx*JC!^>a{iz3 zQr#}_p1{A>_OBP2eq?EA&Jx#W(r=#dVP(SayzSN7xBu=mXOF$kC#oC2^UHKecQRYP~#r1eXKr#vZWe;OdFtu#57+w!QfYf$K? z@OshsJ1M`_Hu3uCu-F#eELS<)C39<;%>A_}A^#ew3oX7E`P^PseB|19ulV23xW}&#|J`mXviA0#lRMk* zw{pMzpZAStckk8bS9k4E|B>|K_1>Ca6A#yd+Bpk|b8^CkUdL@e{ch9?2(L6?~)DoomB zk@t(|LZFCe!OsO(UOL9SYN*_7Q$I;IEagb&%A-l<6#?&*jW?LA674on+vl-(o1`Ac z>5U9ux*3H&E^zhPzx%Pf{lBSqJH(g@Rga2u=Gwo7V-M;wX)4J#K;_+{U z`kUJ01vD6~`>M*BK4|{`mi}TA})c^c=K& zdslxJ&d(Cv-<|nWZrRh{6ATs#>3V9MIdgMImVwWs(6Fv7-B1?8lAVgi-r6%GrDRw3 zHfU(LOC|CeN*+3~P+!wgN%hra1<}PNeOvbBPHJ@9eu#VNl=aK_tS8-M4bgYK5Fqu8 zLHiMd_A>_F5@+Xy&t>Tj&r+XZd5wqap_z=w{&^i|iv7M_AzA+7 zMp4FN|N5G@gfInaCO0}g)V0h%$fdbv`GO-igV=#+^{-a?TL z6C!jrrcb?pg?H7Z#|u8^wJmDw552UD`SP!w4-f91#j!U3@#-Tc1uJ(<`+ww#+?%s& zY!5-;Rus@LtWFpQIpW_t1b{7Sxi z%NE2-e&<~{t9c!7n3UbWECt5&{iY2k@}%13>iX{O_;bI3Yt!Ei_50U*h31vD*gEa9 zJbIJG;UTB+9>>tVKh%Y|1ZL9Tq8S4#>`Y|ERYBly;_!-8{nhsn+88Lc5L z>=UKd&pIP?X@NrF0tpYMkY3@nD<5Bvxw}*BYW3t^FZapbzfYh3alO`k_Uq6Tk?Osw_vVNRPfqJQzjlp{r(Mi5 z|0DV<_ucY1zVA?S{Ns)JFCrA;Uq;JkN3DGR@1?O@*w6BcH`Vgou|N07Z#cfb{fyhI z!Y=PZBLT@$r#S6Ie1hHw6odz0bTv}twu0ar`}ULW(|O;wt@d8W?!_9k zU+t}$(f>I9#9YJL3nAr#CAI5W^ggE6_5a{KAyRK~sy+L*(_z!5*P`#={lC+#xiR#{ z3-`|d9#{QqE8gs{cvEgu=Co>-*7x1#yft^ku9%_`(PXwLNrY$n4=@e|?sp z3<&!7tajrQm8Z%5OqZwBP7`Z=88Pd&TO`N&b1Yk|ghfu9iph5HrbVvwyt5#~A|) z_Kv^(_Iz|(AZ0-rwd9C9*S z<#9>W=Il1+4Z+hUS6aC~%B*x(h&;RD@B0)}=T&8%@AkPo%2V6O;VrW2Y9Qy<{6jAn zacyZ$Zm7v_(CXDld!=sVH*L45CiC-6N{@TF9;;8)6`s%A=CxwZ;pNYZx9A(nOF3#+M(3?cLI=zSc=Crg!N>cK)mL93y{f6;$L1Z2WQfUbW2wzZd>IpO5#} z{=F-ix;%WF?MHzpkHn4~&FycgRcPD)*X+mhPFb#grmIT%A4RLSX-)~91e*9JV2m0o@DBICfrf;#W0(weq^eM|PvwSE_twgR+oUw zfudLIj|Ddy$32or`S0qnNGbYLxVJ$|RL$unP4m5Y78XSFwuxAuD?K>7EZ}^WmT6;` z#PJXXwv_<|KBiUyzI+P5-44ghS}7FmvC;A7Y0b1ZPg3559E@nok$k>noq*ixwB)N5 zYq&pKCN1aVFrBpJ#*WOyCqja1f-4L~CwQ`~-ddiVf1YiM^1Tbpj<0*Jd^))5)WJ_v zQeR(ND^Ra)vxt+Qm+^6dXWPzm(F#udUMh=YILamxE`v zv@L7A(b;J&$0w;epMUv%kH{P6ROgxL$1c8)Sg|v2n)Uw)C6jmmo3Mpz;;Qf$ z+fstxetH(nC}k$CcJI*a4!57Hv#gG(eVM$@wC?Gl9lL{Ge#=nF_b{loNh*6kceBiE z^EJA4Z+ItkeO?}YAU^P4$?gr&d*W-_`#W-YyDxCbD*R`iX5X4W&HF;%_jB&NlIu?> zI&Ayxy5Pfnog<>N?@7GK>a&>Yuu7zP#h306U$q|bia74=;@3R7dCAK7<(+>vDx|hd zb&+QYJ+vj7&v?$s{;EBS`Fzj&`S@oP%y`K7uk3yPpPczEE5CpBUB92p$!Y7Xvd}{& zvkf=s@)}25rETLm({b~HzRlhIo|;*x4qU^OVfPXV{WNRao)eiU^}_~ zbi8zTn8bolSrc}@PI(>vZ^ryc^|!kxxaF$2Ol8X2=kfaR@oAyK9S`O_SrwGhC+J9N0M&g5-Etut?+KIc|e#(kVLq zeSyopO{eL{KK~-EJ>i(t-(xu?Jyx-+HafkDciU(ZKHj_i>C%SOn}vJc-q@6Kyl-wqnUKsJ zSFs6unK?NXm#{MZb!InyGi}3dqf>do3zlwKxF#rLA#dum3rwwIYfk^a{r&D-9qS9* z>>qc}J9laC*S&w=3A21|NeVOLzL#wHSLi=#|#ZJ9OCHO+0ILP((H zzFD`vTiNN)7VCffWD?`^?`(&6&bv8%^S+0CMTs)40S2Ov-KB*66es?7J$W&=@2k1> z9Q&B}AKt}0IQCM_QR3YG|8b!bVyFKdkX>4P`m$|g^5%5?lP^6B&dz(k<;g|n0>x$R z%$E;$zI?dMDr53Wnd$`93+^u`>{^=4@3~nvrC~~QRqRcv_1e*oOD6{OTA5{;?Rlm2 z<>dmtIR}@|>di2@{lMuehn~oMj>V-5J;YYB#cxgg-?uNc*gZS5qHD)+^(AzT`F@=o3?oElz-d8wx~Uuvh2c{iGLoc%vuw;jlHg4^XMPN zi9uh#s3iWo;KP%BU_+!#nu)sfPRYv&7LBtk*7#4jlE#z$aM{G$A1c>wd24=ZOVB^o zzRz=9vph~-Nj;{#;+?x}l5=!c;LMesZFK?NVk>tBE`K&#$LZqS#Jjey%8!)JUw6dh z-Psc>6AB)^`_8_7U%z#e?>GgYrZm@908BQ||?x}1leSNFS;LK|6Y_;z{4c3HT=bNY`x*(NVX`0}*&&!UO ztvcYNDw@7sdAa0Qm)J9UN;i-0zB2#Zh7WoS8<)sdu8X{}kY6Z(?^@Ktg$F&KZB^gU zZ+%9O?ZQ#FInoQ)v)q_{ep$Tc=|fTG6F1L4%-zoABv`mf?dE$%d!?shPhEXyze(L{ zd^~;KuC=>=Z@Zn(Z?bRqiO=UG9i>upiw!b=HJg45yy3ucBZlj?6pNX}qkRhnHdKmi zQ{u>};8}am<11xT zD;GxOZ92E&^+ATDop(=tZo9YQZF%+H^83a935*uyFN2<1A1{;Gy*Q`NXMNx*zOv$~ zP|xc^+N}YnG=AK4bD6#I7)Rd|K4mX!C&hx+!upOK2U3MpCT?7?CzLDW%bT|gsvo_o z@13(;CiQHPr{ukhs-}F;ckEYR{EqLM=GV9Gd+)i+SL+m{mHTXc-cvPuZOOE?3ft6g zMHy>vuRghCRmH+}!7eSjmrmZ$H+;jxBYjzR+M*s^zH1kqQs10Okkt+O+Ry$vW8s!K zp*4$J>+S`)=xIK^5|`1vhj(X!xu%=rWvN3u|4vL%+^J&qnC<2wLB8Bi$3;r!@MbqK z&VML7+qmFmf^?Pjx>~2=+$$e>FW6-sJj@Xw%KYT-kwr(Cw(qf2GSiCToc!GN$PqW0 zKt0LOvZkG3`|IO2o-chjYiZc}P0TW14y7yn_`~w5{d9-v(NiozJEv`oh=}Ktymu_U z%{5?qC(ok8{EMDxsZN^{Fu(UkRN$;&t-ig!`K5{HTF*~zn$&NysQJeaqsnV{ELV$!ni;Lf;=HGu}>ra(;Dx-wwTrkF(gS_eV)hR++}XB9z%J zB(d|-BJEf1rz+zWf^`Z^jZTYnYzj^5*;M~?{i@G7_B#)K?oXZfcHXY5UnSDD4bPnt zJa%NHejM!s47f*PsckNKyzNeo!x;I2E?oiV2Y&)fMN9W*);OD=5`}WB0a-94& zW1qAn=d>ff5#7gHo<=Xes;GK2YL4RCuHbu`yM8iAtxakBG1>3ue2v<#Oqc$DxX`WN zWWm^dn4|lYg2n0=Ges{>v`zcG+}ptF^@dA|IvG>7F8;d_^y^8|eY;C~OJ!F6lvyb$ z7Pdv;_*?5Gey4U`S{Aw^EX&o+;tEfMRli@7$ZEmwCj(=Sczx<>`4X=b{xW4xk)CT| z^@h?r7q2)Z-uG*N({w~&g`1^xUmnAh@;f=dPP?ABVSZ$}>)`*lX%g{_+y2bzsr`Ap zsHtG7k0obXK{WHry;~#R&(*!SQ~!?pg~M{fIU=@iJ_>A5e~~c%>Wnk4GcJ4$vaXnT zqu-}WN_NQ!sc@g-r1apVWci6NoJ%iHnpyQpK%&*DMcU)#R%T}D%$gpr@V*7}0+&*@#{UT#pcF=o-_ zfQ-pkeBUHB#MboaUC8~uF??Q%c&>ztSEEOSfa~$}SLa>})W{SGa6bN!JMVexPNk2h z@{ZlTda!MRK->OLN1x8PX&-g9cc$$J89AFx;pP=C8%i#eOq4!pDf&KOd5=o*zwYO! z)TU;CDEYc1{q~dy8t6IY<~Cn@m5Z;sh*YaGBr4nGwq{qbrwf4kMfFdeu248 zrO}NUjE33)#)2vOD}{NEFLn%AyTB$*f`5@A-((i`8S~$8??~$jvwd)0?5^4A^0TJ< zmc8{A&To9X`nm>t>qCY4j!#SZ!V;f*K9>o4z=a=j9obG6_Ldlefkq6He+l zUJy7Ec|c$C%;U9dOo}XbI#?<3M%(0mIPS7m?zPGe!!w+WcNRNHMCH1ja}oMnvv{%5 z9_1rnzozYY-{5y_@7sN6XVB9&`};Q2?@8Vl-}GO4^5oKhL7Hpe6FFfqvn^^9C;9t8~EbE86z%}OSK8AlD zPj(GA{rTzZU)FT# z3d!AlKdFT0bAQ0MHkG7^Z)#1mH;JwD&vcDuw2fD3-%zG6eKcrOrcSExJ>i8ncicRd zX1h-Oob)c6ga%hl**1mfwpYGaH>`BYedBapWyxKWNR5qq=X92+tDll+^oU7eQCg@k z*qF|K{mMyw8GF0>eV?jIVp1dm*0I`8emu$hxAv{|UwYL<)$P8`sr~pUuJYy)s}GG^ z7q4A?r~Fv#XP=1==e?L=kgB~y;>)QIlG+)WF=8gSPAv^)@qFag&VG|J8Xvc3b5-B+UqVs@Ai2$+x{~AD#7j8H**HLQm_@PkmH! z_})df_Ct?<=xOiv*6s>n&|I`oz{usgaCi3vmiE&^;SK7k#Wk7!ahFB+F3#LG<#t|a zZgywyw5jh;Wye*We9u2;O8Ck8cYD?x7LmLrD=Pi%N%DbgqpP~B!)1)C4;VMLPnG|_ z&A*bpsE+e|_H!QRIC*Nj(6y|kjkyO4pK#sEYBlQ!WfCr|oH#LW(LYI}kA2>M<337eIkcVk z)4eYFA;(*}ZhEX%(v{?MEGG9jziLT*)iPMpB!9gjHN1Jkgh2h?HQWA_=J2S9RtU{d zTBOVswMmMv%5Br#ncMG1ZI`czt2j7cz`{UhdXv0aPWB7UH*e<$tGGKD9c$V9zweEy zW_j+1QwkSKc~t%g33EA~gjivnJK8vAw$O)U{i zTO{7k8P?=dqZ4xcQr9G@mMK|*-V)8~4i!v|@@}hyE4`OTyg!s!W~dhu5wSzvBRjd= zNVnirfMLbteMtuHU&Tt78gV2qu?}9LwI_P_4feXnwjUlDboDL>_c!<;ShBIvgI~Ts zOVxkzdS{c2nM%!Fg4qHS7j<@NzC8DKPwBrG(d9eJwz;_{>VCeN{_n|wuNKT!3tUbV zeqt}Z{p#t74SvOQUT&Mc+jrTgMy}NM#j-IAR5Y^VUVqy6=4!_5&jy$0_Rq}IPd)M1 zF+seg;q79BuzHO{-#-7o!*-)p=2~Kd>;kZe-lHbxecW*$au0Lw%WW?)2z;>5HF3>8 z@0Qxxha$=^s7jP+w#B-&7H)rOqtz4pfKjPug~y6{TuH}L4*k%3dOP7zME~E~nbX)x zvr-KvpHj5yO~2@HI>kuCLuOOZqM377PBy#pamIm1LY!}WInV6iR7_ZMjwhYdc;U)P zowg@@Or6X-RSt^Byb;h-6wi3%$oQw4HAO;hmimtA`VoufrkzmCZj-;tW4~%9OVhE3 ztiN`jHMw)WPpU6%<9;9gZsNL!B6)MNU#!`!+1JBn1vcL5JM{GX?eqDr*BGXpSC?x& z=J0hx^vs*LnBVc(>_2U}e1-1e^=!Bd9|o;>6Z2Ecf>26=-t0DWBvCtJki;aN7qD(s^*zrGq#?fck$&q?G=1U zQ;RBQ&*RO%ygBw{qMPNp?T18kzt8^=yWhb--^>ir-tl2a*2}Iq#k9f@)mSGRck>nf zos*~fAJ`!yJw0}Q=-zd8FJ3PGDf?jg=VzMV?;Dx0gq7E=UY!2$ZS%5@4>!{?_}{aM zmz;iZt+RCg_Y?Oz-~VOYxv!hU+9~lyVdMHo zb9K%3JUmlo+-evdwdcJU*J5GboQmx|yzi%Nyz7^EW}4Xh--@lW3m$z`<~eMgl;d7{ zUg6NYB^&-aCX}}}-1SX7BO{df{R1ff?FHq(yY3K?&*|#-TSb;XC|td5{;LF~b8-s| z()cMb5I;q%JVXDLUTJa1N+`QyEj=)#EDo4ap`#-}C5emwMR znMze&YOws|avn*xO)q%nM?5RO(Ct>^$hV_l+74f(q&Bf#+ZH+eo-yn1@peD6%UoX; z#jn^n|I)UV3B7K7Z#l%x_=4Y>H^nDf*8EO0QSOl`TJ?OD*?E7VvV!RxO1W!}u-muk z<%C2mGrqd*kZrx2(tz9(`MUN%f;u zv!2~}ym@7Vo{7Qj^BT^%mo!@34c-KDB|o26aX&eRpbqXov)4(&OXyD_1#s7hi^Gsf7I-$X^E4gZ&q3EVxOF=teudv zW?j!^vrm(avl-g^ZZ}^oP>s$g4OY>6QFv&+S&6*fn@SHaOTC=!CJ%j=>KvQuZ&g@2 z`w5rg5{~&YYPmfw9qNy^CYOK6P~zzB>DGI@K4b40<5^Mj{+w9Z^){w=|o2UC~G~ zxoYaVXz7B@mb`&3wR0SK<+go3`9bl_sT{QjvmD~p`Q?e|orx|(A6Rn8a z`Sz>bQ&Zo~M~r9W*7x50W_hoA_hp9Pytz#2jfa?4G{`G6+6wauOk?2{+B9>&PqX-H zLB}adnxcyvD?4N=f35AP=3xt4)cW-`r)D*~rh{up!sa$Zc4_hFqP|j(lus6(*k`e) zU0v69u7LO9>WLQvTi4$F%D(H*PTt6JxwW^MtNwB}#wu@;ty!NMp6!3~&cdBXmvwBI zw_?VI=k>e_&!(n7{msO@|L=L*EzFtSjBC%ojw-0{PTYTZ!{c3IF(3DdYgl?@@O!$e z&Tw6#Jo#7d(JwM*On&4Exbp|bg&$qoH2cOOmiIbRN;*rMCW{C{?Fko@84qqI)gq+3Eb< zbp<9H4-`GW_)6E8v(SYpP=Z(V*Fv`@i=WNk{+3jAZc?0xr)eflr0N?mW9R!ms`VpoOhjn%vK;sn33$BM7#sP?^nRQu4s z4&OaVw@PQVp0`^4C4H*!O^sPU7R=EwN-zu;Ub?DZJ?ov&N0T{T#qW8S?kxA4zujxa zK7~Nl*IRb9mVVD;>p$`A$D=-(SvPimUh#X6naGQsZgEfeZ4`b_i742+DWq=o-%Dj{ z%##l1?U7s6YjC}2yOF|lmbmadrm3e+?|aW>VfOGKyJ&`Pv5G67fYKYzD_m~eH&W!5 zb3S(4YPVbRtY#yVT<0tsb(iDCC!`z}J~t}+=$s?Zp?QI2Rr(@{Oa>+12TK@PHpZ11 z`nlJtM6_7#(|9&#RdvpznV$l5V{XmVT2{S+@t^g#ukS9d$x_p7U@Geq*`TIe6_|Kp zs?(>`j?GygFD{b&_y0Nh9f$e*`1rLy=O3Oj@9nzV=C|kHpHch#;;-7dGcG6y z)+}w&zTH^=kLl@SUTL4qx6`+^x*t+L^yP3g!_uwG;v;Mr|G8}alXpjd4$IXQ+#Xr7 z7FIQZ^{aNxZqn&bXxBTrdJ*4MEvK{fk9o67UPh~KUG$^igNVy^5i1#)U)L|~J<+53 zcb^bI#1enzaw!{WZ*Ou_+tk3fxL@r_fg#h*foK1;5= zk~fE`bM1Ad*|J_decn=&EZ;qmXbs*rUGDCyi2BKwe;zLNd%uo#>x%9lQU8xgDm+&4@_TNrU6EZTYXAQIEVju!FAKLGRJkd*=48uT^JA}O=Y~9d ztG4R=r})?Q4{bdr?>2uGqTt)jHFIOkk(b<1*EqED^L%j%4)Vf;3W!Y(_n7TaB;vr#T;BZHB*m4`^SQRsV(q;+Brt4woW zEn-;MJWbRg&8lLe{3MrJ)oJ_AZLGc27GcsZ5k7}K^GC<8i|)$T`!)1Wtv<8kNLKlS zhIqY+_K|-bwtqjpe&4T4w~J3$e+)0IT>J0g(XxoGm!8W{+9w;f_x*gK?Do{9ujVI~ zKQVrEZE4Wn6IJS)EFXQ+ar~tg_UKq!Su!*0$;v0IJyN~z-0)-FbK>m5T#l_%or3p$ zWm)YJ$F6^YCGv`A;;bc;l};U+#;}o%YioW}&Fh#N(Y%XWYweubGP*0ac!Ib5$`Pbug#`8*t;C!iK=ugR?Y#b2o`?78Db|&GXe@ z<5_`&*Aj1}Puh1j;D1ebbDdnJ-Nv&4`azEs=f&n2U#XYNHJ+mMP_yC5V&0j&DNklE z(b9ZyKrpC5EXL_{gRgnVvX=r|I|Sc;KQPaH(`K$$X(!sJRO}4z^YrPpG%MU5Gd)ma z{^jSpKQ3Esz2{!60<*W3(_v3dzOJKLN;e}8?JPOJ;lnX?m9-N?f->LFj{38HeX&}w z6wlgvF<(K|*WVo&C89Jf3r%$=Pf^{o?$47Se`W3Bk2m&pPIsK*zcc!cz}COqi$4{6 z-v8R35T9^kziRFE`<_26G%u+YU7015RF>0rWctbD!M-BT9ta9AEGeA0$BpNgr!YOgf8<^G+08Gn zO}YKAIWgXA&2ImicP1~LK4oY)iJZ@zlkxCx?}?iU-cy7Oj9+{@By@enkqHU1wL88v zNCe1($ukJBDlyy&|tYqm1mUOP0GrGUoT;~Y=FV=LvT7fOF$;B=HV~5_P9a{ zP;Hijl$q?N2l6MImN|<>CcaS-c(NqbQC*iizu?rS4R%v`t}e7v;!)S(Ty<%|$_Wuk z5t~%Bc1m11kW|OCgk@djN7sOZQCv?a9}aiib!F|!`4()~szv=jiEG==Uw81YUDE44 zxlG(u4BWqzZ*8mM^~ou{d{~aV@cv`P1pkcVi5Ut0T${56)E8boHhrbL_olY)NxF}8 zJa75Pze~`r;9Rc4VxM!xl;1~oEBDi&N7L@Qf-Os4pBxuX>oT?R*x7AJx zlUl2=!9R83-z^LH*S}Q}+S+=-t>jbB?O8SZp2?mSVBLLfeK_Brq~#XQhufY%y!F8* z##i{FXUA`@mqMQ`vf|q>m>uz(VG-Rzq(}hl*B{F1EyHM(Qr8&nfT1(#olE%JT_05Gv!_EhAqe9 zZ0#PMKJkfXuHyVH`jVf;f7Y682s>p}qVbe@)Rz|Jw@#%M0Bf+`hJM)|@%B^s*z>qxkMb&I{_B#x#Ao%Jiq| z>d&WlN^$sZYx&PAQR<)F-kM=DA@8rQtL4pg3#02-8%{5Iop0*1HoAWGPn%rs9?w(L z)+r{>nfPaw@|?$8r1VZJZrQQIdG^+WahvX>$?mz;oLkRPyEt~nqdimn3ZLyRI9#~c zTlIkd|*nL4$)CPb*Txduv{ z?Z`?<<6120@hyX=`{0HMuEo}&Cf|<+O8EY~`Pfj0@vx4FTX5a1-$I%_VG1|X6C#A# zRA0|?Y*`v`vKs}<%ZDtM;UAn_EtMlDM=r2)>YF0}{LW7*=&n21JlmB!5 zFcH*EkKcQw^oeFb)20K!l?xoI9e0chs}gER4CbWo@RNTm0i&+0(AyE8$VfySiK9 z>Ge;|9F^R8J2FZOcfXc6c1G{A5p&wLq&1-qmI|9fdlOA1%Jhy!X-=7MGt1@lQq1hM(~O!K-n!3x+P0>&Y)$Diz54hmEB{HImov{8%sOK+HT zdT(2)<)n@;3wGH$9Oma<=a`Xozu@hpS&e^B-%3(^+4fA5Q;O_fe7C*RUHP2hnQTj|(w4y9-fdH7?1{J$z$z+yQ!J>FbN?%! zDbtUTK6b=BuzEGOBN*e&GKS@@OLZf4Ba zJ9qpv--gToRQ_uH6#IKbJcMUuqGfPro|g3v?nUp{NDI1Io5$?F@$&BG9J3P+IhyPG z_W7~dZu)+xbn(qtP2;`Xd4aR0JnMI>m0!eH%|1Oz{MpW^GsV&$J49RFT6E=xNCom5 zaV(phImv1BLTip^pI7{LJhMn<-m>u1DqRs$hrO7@J2*u7N?UfN-T$2_tbARm@75Dv zksZ>!6OVG8OlnQpIBCZb;Wg6NRKKj8XlcFVQ+L~at%93cTu~jVtKGa@7pY#**q$B3 zWXpM1j@k2+du=q+eA}NYGd{NTyJ_WJxb$9a>DDky@h{r(44aGoALrgH-}kWh{ES)b z%>k25E?D`!HC}6SU|YZq$KYv<+om2~!*;`r>vqB_qXXL>FOt%}5~1|{&dOJ7a=acU zRB2ED%oCmJnZ5Y)KW{0W`O~i#dWuesI=4hhhjWs#5ZB$N>`u1bd3%=C|KC)$$ay5~P>OCL-PXg|9*>3YSxH(S0{rkgs-F7r55nXrJrNIT?{R#d>&i<`BgKFPic z>tEw}VRC-r<-jhJLsM63noYlQY|5LLi`FzMc0A5=7r3)Bbbg9v%C^?)^=$5v`mT`$ zwocK<+p>?Z{;d~rO_2ZMww?uVZy5aGi<|yuo6Yk{Ym+TE2S@*!ZlbUyRI@qZ^{ua` zKFV5u__;$k^wHs`!889?Jqsm`is}@ zi-+7!MLK6)-=fK+_Mj{!svu_<8=p=#b7bBBq-`!cw&XkOM``UbIBXjcZ+?C5#E0{u z!|h+3Q#he2mjCO`MALHCd$qfA%6!Yp&b~4FX1!JDsIOM=Wvx$>CwG}t z?!bg~(KoQ`v6+h`5>f ziR<_&pEFylS7r;IdAp-Q&b@s?=L_ zXNc!!<&_z`tjabedv29JsW|0eQrpg+7ppqw9!{v_SvD{I=bamhr(-@{+2a}T_Dxyj z#zdi)TC4QEX8SnLm$ulTS+jFb&d$u!#mo8+_hwne+`L!3X8H3Q8h_shbBo&kakc#GQmA(N z>BY45+_df88_FUpbS79hurBstHD_Aw@ieacq*qs}qF!*&(-T53Sh?0aw1zlsmuuc| z%hEJcVXe{HW!tZWYpu6+x4gQy$TQ;HnVi|%lj2;n&Nlp6|9`gq|Nnn0zP9N=%e=Gu7G#GkakYibV}BAUu>qgXtl&CQB&{TQA^KdT`n{@)E2*~ z(1mGLqQt9?V~l_9H>|TZnaJR3x+5Xk{cA#UqvqLZVV8q%eXqJv`TF*>d9w3wPYAvg z`EdI6Sd;pHuK5cZT5BH7@)r*i@9SA#;AA3KQ`@)tVVmow@SmUbKlSWqWh;E+#AR=~ z(0N7luZ{&K&5I^4-1aMb!PJ(&*}WWPwazM&Gbb(Y%>6Tod%w%Kta);b0d-p${)+VqPxVXA-4_s0`oHB}~i%T5px-*@Nrs{aR9ys=gN z8`@WGe1ZGW@2R^#)Mr?pbX#LQYs0w%-ac>EMijcw-4)`zx?b38%mrtB;$sjP#>wF5W9r1|d)08(vzUYxU){yR+1>6AVpWoj!+K?*IBx(&1Lp-x;ze zq&ZgFI_ufFGm|ZMnyt%^-liiqY4w!J*~t&q2^uKwuR0x`ZsmP0V&gWkORqk39-MV8 zdb;z*%E-#7ePKTpKG-Hywk@mbNqKc3J>MkcH_Nro#0tK>d%Krc^?WZ?{xt8`qbrP! zd-4KOL|n|SChk&MxAZuRW0EPSVUGJ6|FGsO6C#>5W@Y5-MA^Rm!}iEhGxTKI4K5+O z8_f3q45I2?wSK;wUNtFpPpkfkZJE+Pch??bQa!%qi20n(^*au%kFu*z-o1JMLW4P< z4>x|*?KW3&s?!kq@lfN(?nye^56gSn6<*Z-d-dkLou5xDM(5P-Ih=d{_2j+sHavB| zS34YUZ@#x*r|C+s$|;dcSDROMn={?0oe&~u_3D;_p_Sv}iHELUDV^cTTD@z^x@S|i zMIN!-n^J9XOY+UM7d0Q*lrPTKI4CWXGR6Jq|F$1~-8+8VJ9lFN<0ePuJ|)wL6G<7{ z-p^>8Icve8j6?Yj+Wpr4-JcRJUAS!W(;<>EXbS)DZLD^`f1Y>z6fA2ZQu=7obU|kx zfwl@Bqa$)B1m4?m)P3FZNjp{hMVKGsfIwllr z=-jCNtC+wnvQ3dAN3Up|U#+Lf!~^}yIm|aDx4e{oo>{OkcyWHtvF80%U58V(o=GLJ zvu|hE=J#G>dLrgq`+(C>2-Z~lIo?NF)vfW5ia-uS{&sd>zTF2WYFi?$hDI$W_~ zvv2XIbbjaE?XEgaGm`VXUai;vG==T;jn?X_kiy5)?}*tQTq!;O=M0-y596zMJqi5o z$fkI4-&fto&tG|#oZ(-0pmDqK^!?WRt@7VBZPfBuWPASmm1}W!{@>=+uz0|-g{dxSyLo?#@TX1sQ%mnX^^CpP zdR14|_3TyEi<^aC)pVz)U2}-4S-J2iLsUy^Mx&YKx0ikQUS48eo0W4sJY(u#nZ*{0 zr_TJlUuC}Qq2hO;S)7_P4NX;>@7qZ4t2C3`P{tB>=k&jaE#kR9chtj z!B;g~GPO=lHa<5i`2Ge1_09W_Jv)0!cJ|ej_oeAG-3}j~9MyGMyXeuyHCrCMGXAhk z=4YGH`plJERnwOoGo2K_;ecte%68SQ2OqEZUG1@Q=KRUevcBEA^d?|8n_sTbjfIg? zJkQ=KIli^@Wn6n8+;&x+?xJT`WE@lW>p8!fIZ5%s^9#j1>_?<#u$Vt6H}$!l_2}I@ z5yhvOZc69oTOG3Tobl+1=gv>_z1D0!JacO3-NdbBA?c~s*51LVKc$^Hq3ykN|3;;I zj-nqG!j3pc20+Qz}6AtLFU`dwW%4Ioq?~--FdQ)#iaY~z?Tz&Gk-=q8^*X}3fExZ$8#Clz2 zqNw(cRR_0ZegE@w_tbdb#OUMA{mlKROuYmvWNW@jRQxnIXD{8r6w7VZOvr-pc)`QP-Td;9ZLZrb`u_eH0Y8a^c+AWP{suigI?6TNu5j@@RByVrsqX)+q;)PDNvoPK6*^|1?*oB3*f zPb%9PzHUzSVbk!^{_DH0&Dpz-@!#!R;))?KrA->pOGOB9SHmaY_%arzp= zq7=~LurcF{lZog_t{9u^eZTB|c$NzCEL{?FFXf@H5}#Rn>73XtoV|V@eQt_x+J9u3 z$;Uvg>J3MG5?8(SX?rl`!L>M*wKu+$imNaQ&FO!zC@Xbi<-e|#B?SlX?Br&1XP$r3 zTeR5Ou~;x-$CA_U`MuBiZQExqe97SIyTa0Q(J4(Py8qrZ^FR4vet*72^hZtpnbS_} zjJ_8UcC-Gw&`tI9o#DOxQ$nuRmj|>xl3;xq-gi{+yYa1$+qiyf>8uJ|zHP=ivjbs| zInp1k^bY*1Tysb1OUHsXiQqCRBeyT<)q5t~>Umb;K67c#UB=uq(*(+!Slna8_EpW* zm2t5;=;bOg`BtAtu6V|J@6{PzPj5wv&RwRN-;gU-xS`v2mu=QUBVCEKbOUSeylYNB z*B;#zo1M7&NcMs$y907UoD)>GW;!inGiDZkD57y_i5_D_P|n?THxDm1QZiQg9XsKl z>emigw`nE)=a|C<>^wQ{m^1y;-9N=T`|qivso$2}7CW^!PUA3ZwOv%O>8}}&7`vym zKXs08{LsnmaLCZ-ZS1mQo-1~pB!c_K7Q5GM9l9dr-_U;Tiw?u>($Hl z**^LEx+Xa2n&t8H8t*MPF=X|9nf1}txpnHg?yA)JZlyT~TJCpn?w@IN^q|59UB!fG z&7Ao!eVB8k_pd+3aQj?hEZYsfb9+kJZurIM&0v@*E*mel=2%RSEl04ZWN_SxgpQ>L z#gF*DDv>X_wtUVsBj+ilkF>Y1y4JNqCgLSKOJMd4%M)tO-L5CjuHNd~c}8`s-@+L; zrY}&uEmg7QYJzC!;#re}}6M%omzBg_-|U-2P2GG3xtGPd;3-rv87e z!N)(Vg`YF#zxP*I`^a?5s`gh)+?R?j7F--D8>*?}^xrqbZ1Uwb6K_v`6QCsO`qj{4=8)bYzD9Jdc>+3vn^)MB?qZ*ZqA^8&MvYt}ozcTp^G&)mmx(I#d=CI6zz86KYx z^#6UZ>|tUm&m^1l!>b>Q)^68tQ#oIf zCUNP%+Q%k)JMibc$ulMW{?tnu7kPbuR4?#-dEze?zb7o$+F2)SPTkm<_$WloSI{l> z>HKYrvsdSGx7o~`xtU$u^3J?m!ww$X$|X0n5tpy@b>eA&D-rb-pt&rwbOdn zjjM4{ccP-DE~l>iI@j_v-^w`*EB8zeu9V9NJGxK$9}k=0|9qu)cR!qJUeEUMYCwVB zhkyQ|CVVVbOV75fQ1c0pGA(f`T^qE0o-6O(4`<`PrRi617T)wTFZmebbRW>)>MCw6|nes{J^neN3UIzsrP+b5V!As==1ZLp1CjN z)@=;6WZxW=J*#?^g6e{>8!1|k|6J1SZMbrhpKFQ!ul%Ue}ikYikg&yKs?7eG?7t^LDKhG1_ z{+<0>Z1y#J?cdqY9<=hz{Q6l+s_m7L@#{7zsb^Qym1;M>z8e~Pn17wqucT*|+G3Hp zz2-fqPDwia(*E(~x<2ct(`n(8e_iv7xu4~$>%Q>Vrz<9MMLkwqnOoT(uH48yUv~G$ zn}rRtT5o5%s~B?YAKK6?llG-c|JlEDKFyYu9fxPNYS> zR;nFy|FURqZ-2Q9WeJWz$!RM1=R0oOm0oqH!R*rFn8` zYQp-j;pyLb_#W#V4VKOOT{r(t?$^0bquJx;-1zt|=6$sC7J)Z0in4{Q+AND%t=%H> zIc7vDq_mvnER3&*GMAn?FEK~u+P>z*&m{&*5*3~kYG)iOV{80rs56iIHb+}*XX4^7 z`(hpK`p-P>Zrvu{c=nLNo{qEoCfwVue4;jsDWGQG>Jmm6QS*MFNu^hc;o>Xp85!<*qR5{|_EaO}|d#UCLednnDJ^!cF; zrV?eQZEKf)&wRYmoRRW)oc2_PGaC^dCH2dA*I} zd91Y3obud`f_qza=D5$_>$Ktfy2Bejml!k|@98?Sul>*#!?xFvJ&l(V#oA&U63r8C z*zrZD{MhpsJgDz(@WzSj@~x%UTQ_*;U%9!|&5k>7dYtqjy}h34)59d}`fn^1`%#l= zv3DM)|GecLxs%=b^+ZmF>joKlbv%7{rSV4UD)T8G{#JIJj>!{0?KFM-=1|7OXP*y- z@q0cze)8e*;|Z%5FHDn=U71wGHqq6lGeJsi#cQMe@iUE=GICw}(loKN^g;5|_lmj! zQ#4dp^i2NrAiR2-!ey_`LV{NwakK>(Z@0c0*m`2ivdKjgCpHN^F%;SBc4ggsmc>#m z+c^kIrweox`zj)aM`P4>-LX7TjtGv>pG6&9RWyxu3Z!0z(*`3FuuXa1fz z`_dM(6-PM@Rg}y)qmp;%vn>>xn)Hlgh3^cZy$7F(-O}09$`_f!Dss|r%KZP;C$9B7 z9j$k?)|TJDWY!;3t3Ru2^*t{yI#d|2N~eNPF5+SIi_jL4Oh-+Rh-n7bN6)1@+RiPAByy>-UE5r;!~d$(;``?5IlY2=)Snpc%=DS|edWsA&zmY-9rq}{i+w#uaUXZocE!H! z$7U?qfBBl}wHHo1imGI@ABGf}-t*hOCpUQa=Jj^=F>9LRYV3m_ zYt5=7Cv88d3+=M1pQF6XO7A!0i&r)8elAYhZC~)!y0}*T!ll_Ji_{hOzB?4MTROP+ zt*MO!OIbdL#O>@8&x$)X{Qg<1%66mQa?M4C-<++6zx`VNPFbFP*<`K2eD>$-1J(*u z{o}gH75MJLR;L=?dr}E|Ld{k4xBj1QrNEG`dyDa+p4j(WR^Gqk0=ugXqebN%l6B># zrvIKA`r!BEkPlk&U+bhe{uq7Wc=7tT=91$)ytV<{E*1;fvzs**Gm30a{#4eHV6yVz zLy_&SInythd2^H$1xMZ7&p7v+ftBSlclBKVBQHxFIGzMrE8Kc2JHe&+)#p&5w~_aa z_D!3-;)RmSqWQed+3oF9pH4P$(D?u5U$Evr%?}C|fAYjC z7VS4rf_GnhVB>Yj>?P~gO;IANUUE&oz@*p}aMWC(yV&Z=jK929iX4VQzPpyBx7^_< zdt4S$b1!Vm)Ngwww#m-ht{tfDQpdf-H5Fw(>v5FV5)jCma}wk`nfd=Z=N%q zqwseHKhsx-FIGLX@^-ld{#K}Z7&?EN&0Idy$ba@K7c;**mK-uK-!!L8eb2(lUmZ&h zNn3s7ojdL2H^&0)%2lQxix%$@?tJK@)7J9hxwG$1w$4O7rK*3bb@k_ZHvg&=cPV=( zxrSRwZKkQCi_bDA`)_qpKd!%@B0t%TBmAvL-9wGs<`*BYhlTD45O?XmJ}vJsSDCQf z!sTU-HBL7coLN|AKc_E=_ZH*9h=q-t4$jFxz{Puc!~CXFhdaM{qZD6M-Cg-lcW&Lh+@<>i^<9F3;v%!6BLDSBRumMfy)Um|$bQ1U(XDQd zl!J8!Lx+Sz#s0N_J+rEemHkZiUaj3VmF@7$=U3*~FEM;x-Ks(Ucqe|y6?~B!9VvEsVYHd!r61qjP%75(if{NgJc^6S}%mi&qzK z5cNKE$$jhkqYkPQ*{qvf-kYq||6w~tNUv<8yY>EFUc;m<3zM6tZOm=Tb+S>Je>11_ zjsBIy2wDDbQv;ZGb(j2FWT$F*X{t)dy=< z$Fyp_XHISNs{ch{lZ!7n#dXTA;ah@ZxDP*3iK;n{X zc2lq2n!Uv4MdUe_wJjk%>{=NwQnCU=vRSosa)Ja8iJ$ejC7X5C!FKD)X6|LnZfZt6 z2=lLM*J_!yfUAG|ii@I7zieU)Pc!Vkp}a-fI%3XJxvpAUvENl$&5su!J?kfuw({_C z+jT~6O1Jb@KJV%92=81tW!8}df$TrU@9y+w%8BbXA8!5rY)0Wz|6QwUc5+|8zkWh~ zKVJ^>-oUlDr7~VdJ5JsIsB)uL{UgDk`uV388!EBS@!i?{w0hpr4e^{m=Y`CBFZe#% zKT+rY=WL#8zZ2hA+|f8>7JLKN1?+iR?Q+AcF20v>+uXyucs9uXx%ryMAZXuQAEm&6 zm7x#ax@TtS^J>2m@ZNTM#hwXux<|gRxToFb-DQ;=sQX$$H1?}l*o)U;ylP>}4Lxch z(hrg*CAl>vnw9k$dIqkxQVHYsVE-~lH6nb^(F13WoH(<@otNdqCIR;9$;^k-R=I5v z&WbYe@Kh@(T@*Ao;2&%0!szv?&DR=Nrrz7S;+%G7&bvFlnYN~rumAmW4Dn6S(&KZpwUQbK&}Lh18ctjd$y{m%Iw9T;-M54{I1)l@cP_KyZ>2>AcQ2I5|H(GHeB7(8A^rR?m5SZ_R^VM|yPREqBvWvRM6*$Mr`_-lAtd z%XbM+oEKWElx$WTWOiX{^|IumWv@*SOvza=Yq@0b_1Zz>0R|S z{?mtc7N1`mWm@@G{R!XYE2Z-%1hU!G2Q1nDHd=hikK%PPVkex|KD+6+@v2Svv7S4d zu7qg+$~`J`_|t2p<1!DP-yOpS-!(I5#A$3jap`G_J(Co-vrv-ZoNDK5wVS@O81`r{77%s|TzAAw>FGj`W6oJ= zJ>sfatL!(jADc9d-}B<}ordP2FVh9*J#VSZmAb6)boshHubTE=_S#$j=J(3?OFK)~ z`_C)CUU5c0;md!y#sAY@i5lPNmiQ*rcGoRYr(g4shg>n++2l)EL04AhEplh{cJZ5b zoM&^(Dz&v?wkcu0Ql5LQZz^t?@1y;&M|0VvsXFr0K0Xf)N;SA`)qL|>+p6GLpE>Eq zEmk2VZ>~IWGrH#DCY0!RLhb7Dt1PCE7+-&xH23f9KmWY-_VUcxy>aof>r*=qt>^R4 zyf2-YeQmpLY{#X!H+x0vcA6CY?$9~iX=~4?Q-8Ah;pJbA4Z7R)gE!Bed1s#(r`M*r zk~X)08nx|JO0hQHX{dCsT;0^-N{+ggys!GC=vM)!-PF0yO^EJ0mF5E97Dl^J6IrIAE#NFpJ<)UZKur{_%PCHst zaOJ)Im$kh0S9JP0;(l9h@-Ni+uJ>lA4Aqe|>uuSHA5`W#wbbwU50YE9j>O#_fA@>Fn8U zx5L8q_Z)q@tFWj4oVnWMJo)K+wf76}c(?studP?j`%_QeJrS*)cUAL9PMM=t8b_zf zY!e144$<_>4EEkCQ~f4+aQXUPQ}As1`PYs0=}-AfW*Vx2=T7M5sMVcK`2OPtYug{jHXqLRE?>XbNoB@@+POTYw|0Ha^;@rf{m9OQ-g7vcw_fc!eW>m4gad4{H%)>MDbIH4TeDPs(`V_T)DGp#f{#w5 ze4c$}qwj~d{tx1+&ub57ewGqgX31);S$=TxC!LQ=_PqHJ_SE@9J9zU#uyOyP{nk9=|f=mu>fM=JMWe4WFyocE1Qzit?xz67pDS)2Q;P z*{(4}>8w-pB<_{E(XNwuRcEa*bqW{!R_?Je-st=Bt8r(vt|}D;owx2u)2Yx}DKK%X zLB=(w*|+Az<#pb8yXR8GS*L>b*wWX=B{5D@C9LAT7A(>{*tLSCE?}e8OV6i#lgf<} ze@*()Jt3t_L9V*f@T-Z%k8iWKrn{%!wtjQ#N$`zN2OU+lBED$~e7JLAN9Et0TeE(x zT=wg`@O1x-&;AqkY2MNPXT0qF>`AwNE;w}W(1!gSmc1hLE(;{C*6b;@`y+bT&m-%( zGuQSjM}MDNW+28{FMar*n#-Z!3YC~W`L?YaJ$_hAd|M~L89v{!C3o3|X2*nRrvux9 zB)VI=H{|}=C&ip&-Cio0VEtqBb;$(lpPMJY|0LJ8SAXSPeyyGdZ9o zPv#%sjZLdy+Y=x2!Q{j#eWr4CwLX<|74loy);u^SxZ%Umqxg0Oo{a=38Nk)7qU;pWjX5#8Cf8}SS|Ld$+_A2k*4X=dx2{)EYl*w@a&s3=&?SE`=Xp_kH8wyC>N`53q4vEw&eFL(U1+N3HpclJ*Sw;c&u zQWGBVS@4LR;GDq5=`b_k-=C>6$@Aos*|s;XJ}BkUJloO#LE3&9&H7!R8vEWg&x`x? z`hVQVpK+WyY)9A66}ncQEx=owQz3WR^iIW-h0#y%#Qu(FSGT)B(7>lbskbhO{lPW{33FE($%wdfmX6hdmA zE32GYR+7JXn}(O~*+nV62ft}8OXTT3vf{4NoPC)*%PvjmlehMnb|?FHdBrD<*$4O@ zb8k}Wx)y13(q|g)n?pzDN%ULY;n07VxW2?-^E2IwkNhD%PC0X&P8hTvnRx2>`&2jC ze;xG((_@sRb$u%)t3FlLzOC&TpDDa1^G=W;XYFPq4*kh}hvhH3{Wv68aWL)(x8Zq3 z70&5?hqzg%ZWHhc_@%O;`?KWBT{l`MH(U^&dQd;g?OLqIi_kBguOA+b`%!H9FT+Dm zib?tAp{TIGVc!30>}D}qyLsvF^)d2^G4hEz>F{;GYF@Zkimz74d)L;b?{4kda;Rg< zlaO%Vxx2TS%*k_F!P2Q$z$(F*IPuwspJ^J7U7vO_`8*6v^yvS~5#yYqAs(~*&#R?d z4fZ6<&yo2ldJBB-aoCUXZ`4-OkmpfEjs!6 z_wQwto0{!<)7$$pb7f@Y%FLI&9|i4-btLRdyH*eszbuFslnJ8w4gS^2)od(z(%rsOZs_|LTX&wYuf_KTOF>r>d^?sPzI>4vqA3H_}* z-h+yttA(VISk!H_g%=LC2q$i=w4xZ!`ZoDgOSh z)6aKnZxGv}?O#*4oN?=iGtRjZJFlpV1?DXMBqViosm#%xcmC>a*wEytU3!sq%XF?4 z=dEM6uy1#s6J_n9%JRF)#9_wqn%6daLIUK3#W~uRF}~Zw;m5vrN!_dkbEB^6Bm z^YX=2Uf$~*W|ub-T&?G(~oyVf4HYbUV5{nt?5yu zXRPPCw#dkg*0((pw++O4=Sl@_@mTLaU*d*hmeR*Ex2ek#rfihdOg0WmJK!;sQ8~42 z10donXG^tB0_KAe5gY16UGs@#2>iZ)Hzv3%RBZ)UMqQs3@hntreU_u74{`PQ7w zw_5*BbHc6Kin5ZFid!3sm@U|)s@q?^KE7aMd;QwoM<4H0{cxk_&54^EpGLAyoj6x; zr|4D5qV01;VsCxTsIC^+>z4B_edWc{hC_CTH`FKISpVaV_T$Vi*<80pjzm=V-Ts*I zM2)lFa>?}*mlB@XF1NViX7a@H^qyI&ee8!$2;^-Mwdjui5)!N=e!$T-wzF!tq)yKK z&ZbW@XSH6+5jPc0xhlBqT%O(f$i_d8O0Q;~DLV0_XNvB|tA~!vDlf>kerj_YV8}qP5>tz%Fe$>#L>D4;v zdhZhDEz8+&I-dEu{Fdcm_vROmU25jO5K~NbTg;cir7A1w_C4~=!Sxd^PnmJfjC;P_ zHqYH}oPs@=JYAgThl%Tl=rDDJX}W5vp74KmWED$;%ilTi=OlVMcRhZRzewn^P+JkV z&-0UY|69e`xc=!cU!1WbIe%^O<-WJ?w4XXx9JxC?^}hXunu2M|*Hrk;SJ&T_THkz0 zGhAE!*Sx!I2aJ#VT%34!LQUeSUBb1exC8oxe$>rczd^<~!Sa{vw2dtLRKi+hmv8Xa z)M-fMYTN6OxV!1j_iCY0c5Sa-e`y=CM7Ey`$S9?R2~i$R+D3b)lG zKP)&i=iwyXM=Y~SYh(eGk&QXMb*Y_I%@`B_>s?rCS= zzVRUH?UyNA-xSV{T`hBJ>VvD-f4!4udeC>1w|v9r<^%UQ3h&Q%I`GdY@i|N5-j%7b?VN`X8N69th~|ID5&4iH1IwF|X5tulI<$ zCGCEpc&%xRP;5@X@AVJW53CMUQaHh$a=K<>08hYT?P;9ud_sLPdNLblY)^K581Q&c zVbWbD{xE^-6U{>JHt+Ybj$-oEmlIEu6!C75lilL*>iCkQdNEO4`euuSxP|6~{(d{F zQ$V-%Rju-$g&!Ds7hd)%9*dS+-Z~^99CRZEhN>8y~gIE~|{1D#BQqGuiFwHt%MIc^a{S z7nNA=JXEOW^N)X777)ZHyLC2HrxW;@jah6eV!GbjFkob%DAIy%#HwygE`ld3m6J8!Cf6_)l~t7OkgeA{>};zG?m`wbK4J7pIO zlt-zGzfjdW;pcm_D63s)o1xS%t?*TsFJ6_@&HC@t+p4p5X)wd*%o#0`|7+g0Bzn5> zRxNa^IM^1q;o+>g1#jfGEJ`xG=*n?i&q;ezAFFxek*-d~18s~+*Be7O*{e*IJ#Mvn zlI2u0jUcl>?l}Tct}@)QhkaEy%L}Y&J9yz}N?xmHLh8P@sp~R|{~e362#6_rclp_j zorM>#f4ePybIret4#p*Eu8a*MvRGj&FTq`6Ak;p{ASt_%S)DptOC(PJMk} zT-@AG#69hQpu6D&RZ~eJ)xqObVuNp2&SDci_X>!h4|4Hj7*DHR7d-XTXi?xVg zE15H|=cU-Zrz+LIt~@YYESY$PNh~64YlLL6SH|+6K@Xo4d%G=fS!s~i$;9z)x{7`G zpGj})D;id;p8Dzc=f9ty{e13Uv(NnIyocp_8XNoOZCp{a{?FtC>Ys{!hQ9u;m$!Gt z#@nxUZ!=vcx=VHM|DXLaRgaXHayA^7H*{^SRyy-gE%kVN+*9){pIO6aTQA!9;&{Tv z|8vewywUWhTJ{Y$*X}DJ-H96|#M%@8FWV5iY;D``f6j^0KE;MQa)*Tsa+>;kR-4}u zU$B9B$&%BF2RFE|Z1$|V=i150rjb)GFhhnZZPA9$zU@344C?0JX5fClfsa|I>CidF zrQT8zD)nWbV$(nyyj))=FrCXW6xlZUl1IzYBC7|R)ZC5QmL^0nwa-obVe@0}0>>t= zI@jI{x<3!fgsL0ZHgs)gU)k4@RP|{8B5@nBZ4YY%r28VA4c<=hd%NIg)3P7yGdsK1 zFO&(HyI>X5kFP7DJN$e2{%qsRx!!((wR7^TrVpOVUv4a$xvtM(ruXmdJYVu@1Pv>jhWss@v%IxR&j>?@m^V>9` zAJ)p3uQB<~*6CJVt#Z>UTkP3d*=4qD_hubTEoC_zWT?Y?IH;sZ=fr;9sizwP|6R6N z<3FLXgy-~wU&nHP?D5IDCE_f(;y~*0lM^P0UP^v-CG5!ajFh&h5}Cuixkol;{@~(0 zp`mg|(r>3>tCYUuv#VSDm$yi~HSU?fu=UO3o;0)kg(2OmxGFq1NOi6`th)c;+wQK) z&rJRQ{#0b8zPfPkbj~_pN8HMkqfS|3dXsPRBq<8+s^E^Fz_gI5bDP(u z*jSZsnaT2*>EAbfRQn*LG1BxFA{+#G= z{WgQmZ|}*Lr|{&`fZIzzL|GtjKm zL2GGMf^x_iAwC9mQ}JfQwyJ9iBGVtQw&K3M|6zzMzjp6ZWAPcektGIZn$9^vW|p&U z7S82b^KklJr@2vD)t-0Xp6nMpCCd9IY0f71y{-DiQVDq`^WQ2+Ex-ClVb#@N=O$Q& z*crZ*JUlgGNu=zqBqk%b9!Z(deSf^u?j@8>tEqhKZ!BH(yi|VG@jo9MYOcJGm)*hm zC%SXe^8@oEe(pW=Ew^`Ty7g|Z=x^6ucZFTkkY_Gtc?DvA# zF?~qAf7X$secG;Vt0rf->Q51yUILkJ+0ekoV5;Z zNa9)jbVI8|SVLl~#It2Z{j==&K z&wRCS%)X*&pt8GFW`kMH)$@xts&ayS_Zg>n7sp-86Jg)`L-hNT zt_KdX3N}F@x89vNQ?zC3rTf>qt{s_kNkl5&R_`|R{^`DKe?N#Ye7}443-dDb&rvQ_ z*NdB{Rp_cpgmoouc9PiLduLsy!5mp%nQQ7FmWm#Z+OhVDSxuaFu2okP-@V{~N5Knu z>Sr6UT~bV$#{JmD&(4_DMZ2&s6oF$hN6kmbbu1 zWN*UOI3}$Iml(Nb<*5&k*{N_$dfv39bN9hT2gRNqebiL#5K$*sA+=pebNK;|8!Ps_ z{My9y^!$Pk>}_o-8`mETY`YlLckz(ee!~dXw$P-A<=dVg3v5j^;|UhuFE~T?u#Cht zUr?L;`9g!J+_wcu5vFaGrS+5Vgf}Pd-L+ry-u30bXY28-KDwbU*L5qKnE;bnc=W-w zjl69;@-&oz z+tpW=R=jlKRB-iYk)QXm(>3E^|F21V?9Va9F@O8fa(arl+tj%VMyjrLq9JO_8!!Ho z{$0KL_q*69p=J$-pF?6@iO8O zg+4a6?w1R0Y>K_TN_S(2Y_#Ih4}wQGyL`-wNt5DGtar|+ZuanWJp1#?b)^-J>mO@> zC=O6QK70S_Ip25Me-P~m-PTl8Eb@cZWBS>^OPa+tKPLZq`9t>YK6%akKhFGCj{jXL zyZ6KV57XPSKZe=5FBVzy`a6poHl{lt<)PVbFz=7rQcU<#)k~McN;BDi$?8OnSU{|MEBS3)ZkNy?D`{J+o+wWW$S!59t@Ael*H|y}hRL%;Vp0jOTwZ z$k*S~vR~~V(;Ib@D2F4@|61wZ>q^X(_!c}@OyT=h?=`wyAGT>|cU7fcK46tp9+KRB zWapG%rK!P8p|@s5*5;aUa?2bMcWD#eadYPKAkK|;QWX=O@6OJ6_pZQsqQnZJ#XXG? zxhXFac6>4XvmyAzvbznx7cW|R_=o(Xri&R_CIScN9Q@ZHRpW0oEqZyksMaH|pf9pr zC68LHS9Un;G;w-*h{c|5PSKj5UQhSv2Z)D0$hs1^)ZyZ)t}Z73W*ti{ug)&!^{3~b z+rR4I=HJar=k=fa^5)x>wQFCu>K}-gnpKvttJKS}YPAVyu&!ipsML*Q#dp;RUH<7u~+#_gOkg>U1nT@kMqRcPK^ZQ-93w;M9taW4bqTu4J&U);RD*Es-VKeOn=jo?j&s`e#|8K&76bBc4Ta4p0qyDuOWY-flk%G z{gV#lsLbbUb>p1rvFWB?RMPRU!Yh3PvNYs`FR*4VSgZK{-dP7f#SPDsnw&TOE1s4u zmmvN+LhxGehevi{EnBBI-d~jB^m41(9|H}ZTMIAG$T+B%t#Xt(g{wzNb;}~Rtf;_P z(|5OmLLacrpa1$(>J!}@iyyP^H(h%9afQ@v~Z-gOJtu3flpuda6WvomjW z9!i{^+!gRM#OQ0+BiXFW33}<@D$c$68PX^u*8lL}Tocpv$qNt8v^ljmFru$SPhh*u zp___g>pWj1Z0m0NpmFW{nxZh1=Hp3^d)Th%yy0KDF5KxujljcGI(aLe6br9&SgtAj z@L{@%^`w9U-^CY1^%=*r`t~32XS(shpgF$D=Vs0{KiA`p=JS+o+mg4N{9YF*$2Kp! zM)!79)kFJ->krI--#%|;mdAp=U)fjRIVHC*SaM6^OpZqBhkXt~ll*!3zm*)}xjchK zD{hjBTH}Sk;+tOj8wi-V&A9QUeWMUB?+^*}PIb z?oj-Nup66ecNaBodwkwdTKlbDXX&4ldmih1ubSE?G7o~}Mue9CtF zn>UMo*50!(=>L4??%c{>pXV&^cxK0*Fv%iD%_r-|!(WrjPTbvCDfjY?^wfv5_pUhi zHqKzRy7A`fYfMJzi_g~ItNiz^+luK&NBx|d#p>%;Ev@&dEIfH*)}I~oW=z`kY|f#L zTU(ufrJgr7xqNM(SL&iqHdE8=?5D=?94azse8toFN^7B*R7>oc%Qt6iHqi8zI9=ka z>RPju_tEVh-4vFIB@QBMyUP!0PWIe<)>i+o?^3rv&libIoRpojX<~k{z5Mf6XQ#)7 zowNF`w^PDBxkcyvVxEH!_HWLixx1)rckb?cb~P3iQG2VM zS4_OHx4MNXL8;RuB+-4!0^6=56@@SSPpik;rhhr`*SY-N*}b)k{{Q*>_px~&{{!WJ zf;QzVj@ddVXju2?&$=X8G*rcP2el6)gtzckWDXUaq%t;+gl}o_$C5urTT@xp+{&yF_&7g69GUd+euw|M|&QUZhg2@^SKd zdpT+AvZUX>jW^dZJumL-h|J$-$*sG$F#P+Az1J153f{PT&$jB=(|sFOteauczD@40 zz|XB;_W!!tIwMC_X(I3KciGpR#Ij^3T;Yl4-@war>@-X2jY<$z&9F@{;kogRu;Z1} zo|_p;=!<<|%;7$;%}7FDY{LBA43i$KZt{dV5|cPi{Vn`rA* zjpGjmwD?N==j7S)1@AYI`7>YaPk-;aLZ=h?C(h3{k34GWT7EpO?x?!nU$M`J`Bus; zJyOECr$f}aJBdZ;Q~xo={~4?F`5zok{AJI##?$?9y42csn|kvwhu5s!f4&tc#m)$5SRBYsZvq)gWT%KdyA}KeHKHAB~{YHo}d;5VhLkaz$35nCWDi_XI zW!P|2q{nJ**&&Zpn${0ge8u$&qmQni_0+~qq3qZ>O~a=C)}-4%9-8icy+PoS*@?L? zlFROu>|8tL;bE&+3tf`x*GnCLchyV$-}41dQD^V3USIbyXm{|cl1Jv{kIc(2nXf<0 zu6Aqghi87vB~+@Vg2XNFg!w3S1xjw!l>L52s^a@S7jdzpE&@k0)Vi`KhxuhnmAm;p zGs*YO_j}h=D12wK^yZUJXQo~1IdzBSQruV1pEE+^bQau=aNvLQz54u`cY5;0amr#B zb{(C1>qehmN&bfyYUj@^y4K^cR(-<6o3GdLFY))t%lH@?Hf^fES81sE7O~|aNuOg6 z<-O!o?hD>^QE9cM#Q7T^cF%17=ok0Qv0~%Aq6Fc`X4ZZ-ynH#z#^-J%#&gWOQ$B0W zjZ>B%PHd3zkZfJ~t~RAz>uF4xL<_Sio9^5AX) zQpB&m&@MIO+Wqvn`CX+@o;9&sv)=By`bu5&>}qL)=Oqc(pFLoXT^xR`EZihtY0l%= zptV!|UOWD7_P2jA-~N8Q(LyWb#Z^g_uEoW!CtqA#aNbOKZtA6p*SYSu$NlqXyYZD_ zw_;2D7WWs|(z^Zr*)uMl{y&)En{vZlm74i%r|<8UEXh{6wwv|9rPMCzSP$jvN!#nD z$3Iw>y7t)ZgDMki49owATRx4`*>-);gv!T>I&W5`d}leZ?`TVHx9ap=U3&sl_fGJS zJCSbpt!&@j{8js&ov*mbab{__*2djiSN^$n@htys-Gg&9a=Kcq75I6soMunAmbboL z>CT(XdN<%M+nuv~KOe1P{{6_k^)s*hib?-VodflItzJ}pRk^Ec{^Lc@|HM)S&DA=I zv(wjmb;N(n__Lzv+@cvTT=`wx)kSyPWJ@jIzigjH@v?6pYK_wt7+2R>tV}Ms-d{E0 z@Ws!EIb|2$UjObGkFBQFwS~E^*1Ip*s$ZY;W#wD-{6E~s64kQrXdRtDbxZEwfcxoF z&wcS{>Ym&AIWlSSy-RaH-MU(IkbR4Kzy2&klPp!ksnZSymG$PWn1)f+|Ze?DBqxOi~yz|%Il9zm`<+CCt zz+QQ)($8J7=UBe3aTgNmsyP}sF~e||_~%o%r=Oou=>0+dRnga{tDc1}zG|@5)F|rj zP2m-XcW+v@dR3)!bMuNlcMmEHS6y&E81H-G+Mb)M_f~i1e0=&UOKZinXveL0*s|1p zTMCVG^-$$KU;QJ(9um)gY5 zfl7O{FKXr~M;=!Ax%Z_(PWRuq&sWw)EYIK&;n~+BueEdjwzyB1Usa^-n&?w3_*iAh zO;u-OzRM;?k1x!sJ7dx5>3Xiq*v9zMs^E3Ii$ZjwzH(eMi*?<2(VOMAf{0D_GAqy8 zWmTUQp3VN&k#W3xzr)R%=dW-pU=v^h$#5B^j5RFJkzxY6L+1F zDmUErkhk_SLmB^pcc}()D^H)ldwf=Y#*%jjY=YMNxX52(GIQM^n5r4q?tklw=)!|v z9+^!t>v{Hl(we#jJp#pR&y*eYyBB44>ZEz8UxLjww`U(OEp_qr+qg@AV(aTUPt}Y< z-EVA|xmiBicI|5G);$X(+=Lm;HyjT7$I1WM+1TFZG=IFuQGUTWYk9bDD17rjq8F}| zdQ$3JsqUU^iCC{${n1OlMmMFFe$)tkvXF0!%vJCCc0Gn)tR99IeOytv*Sss<_1Y!o zmG*gUxo@AWpYYW``G~3V>{Y5CbDvDOle=N@r#T{Dx6kOWFFxBNDevpM(qrGBNr8qf zCm$P5KJKD_Q(ksz$cr^GZ(QfI=7)S-9`gIc{uK8)VzD{@Fszh~cf_k6{#BiV6Hi68*nYZ!mt0 zX=W`8IB-jML%T$e`(L9siPy|FM}Ojzn!54DxrKk5)6`P$A9v3v`n2q9+VUA1so%to zdCWBMX53sVyzFG4fY!AKh8-22itSqyj^#dD`u??Z2UC{3z0SqCoYStYns6!V*|N2+ zRo}(d?pAvpBPF`;b?TdrKWt(yl2`2C&s=d!UUVu46T_jxhbt;dS;hMPtXs4~V~c># z0ps$sGZx-m=Xd?k#k;p`zFrSaE<7T#Y+J&+`e&Y3?rpeqH}dM9je@6-y?AQ6yUE}8 zg@Zr){P_!FyXM>yx4o^pt&3&r-44<3epT72sveN^UUL9@D2{@-nS=i?3@@{Vi$dZofLf5YKo6@6#RPFb^0&eryS znE67^s4-n{*<9DW-~477)r0K6F4or8-g>j)@5CAHLKghF$8Ac)0yo@kX$~3SqcU5{Ot^wyi-)b}t+Uw0dsoQDP-=>( zzxt`ZL&822KbAc5X^>^QG5Jj3gO@J*ja*;4-8x*>|^ou;bomy3V*_1F5giv$T#EiFUjiPGmDh#yv2hH z4rDSO%4A%2yex=cL590$QOQA@NoJegbnLBSx3lqyS5*r+s1_n0Ddeg9K{mqNmdDil zL$=X}^(Pspy}#OP)IYzJHGMcJ_W> zmYEUx9arnvj6Rx77N56n7UKqY#&0~$A4{(4G{~~u5M?_+BX{`A+p#wVMODED>zt9vrLsJ#08 zi%fntrDb>8_>J>k^LD@L>nqL(U*srq;g#%lDXXc!8iVv1m&Tcu8V252&+x4)j8nDgtFH1zkF&IAm6d*bZkGPm ze#)d(_r4T*O{(^ct@+~pm-FD-%~zwozIwOnUF_Pvj&&<;Y`7lhc;b3dWpR1v^{;O= z&RpCS9DKFCDLDT3FNW7SHs_trhx^9<+RVt-eImPW)~+v4pVuA!(a`p}gTyx%G(b6aMEHnKdu05A@q;m@2pY&fHl2R+-+z zGkj9^mBs%KELpQV=S}FoMjroL|NfrTd}aE6smj&0AC4VcWShYlvwQMMhCjFVzSLQ- zoD>u?C;7D7mA8>`cVmsxl+CL7z8~^hv*h0r(d^pe%YOVzk&pb>`>T6Qmy`%6H9<%b9fUtJb;i9Up9yYW5#pq29Pz;JI?)h3nhe z3;TMSrY};s$fj?5#@xQr_qDd{hHIVq#X^P?cSh{Ipm|FA=i08>tY^MBb%nJ|Iq+wa zo3OIkjU5%9IxJ!F@9isJc`SUqtUuQ8yOMv2$)PS|t+h&-Z$$UqocT5L_xymrQ8K$i zqdzT-607+=*HnAgYN_qM0kVlHU3ph;l=f!rxYb)(a$ncO+e!3R^gn5ps7r6knP>TK zjpkjvu;%MA^(}3?>Y7`U^%i)B=Y4J3!RvJPWwDU$u0zT)Q%?UA+CP8w*3c5Uc}(#s zS1ZiQ3s^tQeDHSXoEg)iEwde$n#3HKr8rSk#JJ7%nxa`vkmschN7UMk?mRu~aEYPu zk+N&wY|ew?!cFm=ob#e)UfHpEvwnTdw>l%0N9uo5Rd!t-hXYm zcO%Z~-L3WuQeW1Jt;==#yZKp$`n7eYK712$AI|rk%>0b$jXp#5brZ`3z5@wYbI%&G zMdyFmoZy;z_BYSAn;Xx5x>Fd;{>!G}px5PD{Z2pf9?bqrlA(F)JkxsP z(gmmM-y1u7XEhdeS*6D?P12nsufIid?PHZbk=rbi$4$b-l2Z~MupBzTd89U7UuB~B zq#5@0RdZJ#arQruGp%91Hv_*dqjkdKzM%RmC+|;U`QE+uNq>W`-4c~chV#vgw|`lb zyes$eg*RTuOD09f7ax9IXrh*QC3OG%zxUpppEzsQ!hP*hMwc$!(cJF$a_#Hdf_eVY z&FfVE*X*mkT%G;=zWv>REw_C*9?V;R0O`WmxdTiUwYAlSW@AKZ3E@!=T zT4Z-zxn$bA(&;br-jzEMkZ}T^Izv>Yo*Q$;M)^n^VdJ^TD`8}AN#HS^V;^`=>O8RA!pjk zB|8g}H|Mq8yD0qfnsiyDd;dMP?02;b#25QSOMbs{dAsUIErZ9G{P#{hc6+hiU-Acqok*!v-ka_6USNXM#lARnv&iKsgzef6tZ^i7#Q<v*~Lb(}D0NfP?kbn8aa z?PFI@KNI`?ckk~i=7J;blW*kJWC?gnX7e9TQM&hJ3fpVp)l<}#GTRn;yiDkMlBCG= zQSNI-b4BsVJrAZWwL7)b`iIc{$K33nPVFsN5GQ*#&EZbD)z4LjJ*~VNd0fmwrwN@; zy>dGJpP{0^Qg^Ke|7FkF+Z5SrZ)@;v3CWUqIRB@Ft-$Jeot`s0J!g7)B^*vXdtSj) z_l$XI_(uJkT03`DUNM$9vOksmUpene4Q0WvW_=yPe?C~*&vE8o^4CJX{p-&k%17GYTamstMi+w82BeE8W7=Ow4Do|XALj*VO`dxZQ`>1_b%R>I{nzWow+gP-*50H zGyiC)pY!K#xcBb=`)+M8ytY^BMCrCe%cMNKt5zzlbWXK8S@AqYQ+dAZ%TIGYt#~dI z=(M)KN^jAVoF;)lC3SV>K*>EHrlkFRb27`?^NGocTgTiF1;1SW{ohN!jdok&X0->N zxWAtLN{N=k(#sn@T{_n%wu8&VYx>tKuVcTtI-K~CVXU~=ZDDy)z_M?F?^zG}$JYp^ z?lGA9?NV~rJ5`a`cFkSoGXEB?y)3r4^44;V(A~f9d++vN({ik``M&z)>o&DcZ8Mkq zpD_6Rg;TO@hNQez?V-kx^IdkheOwrS`PND~wG}n0dvEi$sc^9!e(05-)=9UIKfm1DJ+Hg<>7#4PSA}|>^1m`>c=^Qs z(?7pilcclWH6Q&|pyw~;HTmxuqhAY`Y+17=B72V0&YJ7%>spKAe|mJd$%*xfJDP0R zZ_D-f<*94eLMN-mUcPIwZ*y@?a(Q%|pP!?npWnSrGfu2~@uGg--M>qJDT(#3(_8bY z#>LO9$FxV|#9^)%<-4L!y1U%iIc?kRC7iomx!Hqnsl{ez`L@lO{_cXyr|Dk`znnR_ zM)uZ89`W8K({2iyX)l#!Yq9@e)hteCrd${&9E1R}|t5$ZeNRg1v{4no^ z+S^D21Jm>G^Y7l3YEZUI;4j%##^7qFyU>U?;3unVGM}^ZK{iwIu*(52rj*+UDKA`q zV$uDR0)Iuk!W6p~-AH0(+gUNoz5Jl}#6MNXlEkx|XZ&`$d*}4WAV&||{26kMg=>!; zFYu9ebKj%h+ZRz#u;~8%qC#&5`49X(Prc3au58=0cXs`K(7`O?KV|;g z${D?#4`fasUNT8>$F=0AQRg!Y*E-KU5_~~!_d~&NHCd7}jn4iea-y3#-zBqqNKkG)&izPhw->81wI?r`;tz@LF@%e!Nq4m!W?Q`0{|MjtT3^E@d zK9Rm#7GbExlRuy4^*biD;D|!N zBi7(UUS$qvF7rJ3@mN(&XL`pE=9lMk&I$14^j!$DJd=C$#9xke+eKDQQ<^b3>Vyx6 z@1+~7mrt}@xp2xvk*$2QnnNFDi+sAVWkMC_`pe-Sk5&sre{q^|^4RW$ZDH|zLeV>( za41*FZ`>Dn#qem9k7D!exPZe=-&fterSYZp*ZM~54c52zth8+4|Ka{&(^A_P$L1ZC zZEFa)7Wd3h&`2@!q^F`^>=@Y2Lv7Hp5Zd!9UhB-tbGHHY0GVo&hv6oWVoMf>MT2K!EAC?80$ z^vd1z()z>(5w_ho*rrJ_O*@wG=TUUq((dO{IvaREWAR3kJ@GZCH|Tu4`!d~9KEaaV zwCTZ=IZq8G_UBAa{Mp3!Sap{;!RL)1G^=%Dzaw zt=2G=d5sdw{LrrV=}U8`HhlHEzg{ZAv}wAOPW^f@9)F>Kb(sMk6S^KRe4QCLXLkNx ztCm+i;DqYJszWMh~fxnvFKNRDA><=1V2$XJR(T_Z4H#zH6XP;4&rIDEF(j}`V zs-_B0{K92s`fBsvzqhtr40canuw~VjHqE8~f=b_7-ded%^z@;kV=2{D+Ua4-DwkV6 z@>^G#{%D)``gyBP)!vxQ_KTzr1 zIrkyko)+uM+4&um-TBGEV;Vm>h~$%_6e6gOn5zMv-?xC=Tk~TzF9wN zs=vNX(cPi?#>QXA|IdmJx2V2Y#P4=9^}WwGv-@WLs*80#Y2GrJoXb|q{a7aJJtNzh z<6K3{Sp7si5p5^Ub66+bm`owI#bJv1hZdk!D%yhJv#S* z$^WF}>G1wzDm#Du`0{Jo?&&M{O>Up?nf1Wmu;Z3uckZi;G)pH$GnO$Ps5_OhZMKiO zf$etrjA=c+KBCKJaw{)%Ss84%AkItGyFI1h*Mq+jl1`-`6dJ46ukqj9euZW2QiR^L&E4bKTM({0 zb#-D#cv4j1;&UO}*JXe9kqZ{^%dptF<$J`9bq71SukAA6JzcH!`{LWbe^>KJZ|{%) z^=-p#oin1f2}$ZHJg9=@B8yxPfpT3^2SMlyX5cnOLptu1W&(t zfUm8=_DF)YthUaE_M^qBVmFkT%+4`YPdRwaN=kRb@df2QQ>vG9ep6)4sb99swE5;- zFSm+aKIc!kxcbFy2z&b^*LteXO!bd`yupmB|GDpdoLRY?g}d})ph4y@hnqp~Dqb`9 zt@3Lwj$xfRC0j4%dYJjroeDk$XI-0hyU%-0*s;w1#}=!V@zI@iOXT*yyS#7LpO?kr z*Ak}P{5V@K|8Z$;OKM22_N;rqr?B2mDS96+vb!~})+y2Cbka56#?si5?8qIStSine zXwvk}S+e6(y<@BHw4wtwlSJm9x98kbZ8?9RpZ5|8WC7OQrjzhW1$xy^FXYSp>b zf*i-rJFHKeyQ{(CZ%@eMslPQQ9_#a1{;AKD^Xt-W8Rqvxw?sZqIGrJW)VP`c-zC|LZen zUd%Asy=`H(bNt@q##M6n%Zv6cuekSV^B#$t;WG1|$=07w>Us0vp3?uWCF^D^`ZaCR zqRxAhW}ItTcHofV;+g99`~v%B1@_jbIv2?+LNc=e^GSM(;zeAri6A% z@}$XTjh;s`62#f=&sGrgepc+Ymx0$t{N{oWmrhI*ysVKsV-By{O|v&ze%Wl{6DRrX z=$ezleM&9=#oJi>oojMF{knILck=0HX=dkg@@CzeF!QFt-j$VU$;+zlT0#-{-7+h$-sIe%d}iUs z;(+<7=ijRF^`4BfRaer!>A6cH;XJqY^xU7-`&(K9te=_76eitTrXhaOdWp-k*{`zg zV<+S)t49?mXh{p**gE+%@6Ae=cV0hq>@NHHKM}cl<>#SN+a(tLmr~-4_C_`G-Y=+q zq>=c0U*Hw)Vl(~y>lM>a9bnp8oL~R{9{1IgvnEN3cSwm!S2}qY#H@aMTz*UIyO#F+ zNv@9;s(gF+V@2rS-xjV-MxH0!mj(Cies*7{`7hIiRu?7iPA9P+vXXqQeNy{kR@=!N zPfS(_e4;b?=j<U-)|DI{av9Go2s;WH4`scU*j%EA*&+6aeQY!Sy<$G3n>am|3 zV)L%<3lW~rHO=Wuvpwf=*BwIL|AQJovGF#0wr28pUl(fR7gp@Ht0BJsEF23bE8!sA3E?#=uXtw+N$PFErF8GM) zy{fO+=`XeW%5nLJD`XGv+`|_&OZ4lXIiGo7>{6&mG5f_bb;~C$T2@q$FM=3NiTZCtw%e~1ja45@DYwmwTSr?rpY;- zrTymr^DNg-hbM23s-E)6bK{Yks9iIXm9LbnHGNc>+8x0jeYI+>L~Yx$#q!zglJ0hO zUcA*tH#(U99cOM>AIlWax}r1f!)29w%4=LcegEkEU`=mN$H}l89W!z|lq+qmj_h0` z_Qv(voQcOi{d;pt=i1u!*-vJh_(Uu-X4Pp{*;paZ+Zr=#NrLOMw;``iCR~kqnzg7p zL)TI7eL!-%@}Gj9+B-3GW%7QM<)$2M@tdyG`Yj@0)`VXh3f#ooMMVC02rql~)bf@5 zN*0^8d)JGus_BZ?w!ZW4e%sa4-{}xu^F#Z~D`Cg;&x8NIKhL^%cW4l==^O{oyjtE+ zIqvUoI+jE$*Jk;5I&zB#8Ld?im&g{aO?O~A{ae%^wB%OFPro#7;T5d)lU5$txFj_G ziI?1~gIxwMK`6sEV)dfO%4lQc1cc!dzt$H_6MK;Ql zXWuk6xjW86(!7xxX{y`H*u1XUy}m2)=he;hz)KU&swZW;Z`rD`ptf0Q%W=EeuYZ@s zn#1N=GDDrD&c(P_&uZCSh@1^`_QNQ2P-qO-YW_V6>pgEcbd|K>Wr9K&XJyX zy&pe|`8z4>$%XTI$%4lJmlv^XT=|+jYscSn{D}v?ESV7Mv5s@!wSK+VuP>V|ynQLD zRzbr2|Krjx)8kp9FW%HXfAQarJXwS1V$JKzlntKyo(bRW@L+3Gj-pS>G4*+gCUHw- z-x!=)E@!mowiZyY2Px78Ty4py+?NFR`&wo~Z3(^1ELK1d|Je;YzvxG-UOkd&g zIFlS=z^{;r4fTnQ*epmkrR1WtiIKy z`Fu%<>iRj4qNiSane`^t$Z#`Xz>44Oj{~;KPzpk8%HvEg)N}f15Cno;t$k&0Om5%4GXMUpYgbHn8?H6FX|1ikw{FjR zv%PFn&R2PQs7KmEx^e9uJz81iCyN(hpm?`EZk%+ z+w0t)VW0HnhI|P3eZIO_yOny@yX%4~E8T7X_^dwV?{#Xum-p&3{yt~cn|RI+|G9MD zI;qqJ4owRfPS!4YaYJqHp1jR28=u`tRP|cp9(jac+~c%dtc~C)mP{c>jnMGCKdYo? z+<*Jzw_K-4rLF|O`io=h0xfc`bS|mMzqL&{S^BJ6*#m!#@;{YtS6<9a-?Amf=&-zIx@nn@=T8H75rhe=gqdJ#)&X z3pRGQ8+{o4+b(rztxWP~P}x4QOw;wn#|q|c2haMZ{giL~mZIr(DrM866Vt9X{JZ}1 zYX$Rf<0pJ}VcWL;C=j!c&@9?ERcXERM6*zHdQD4MuYPBT%1MXdn@VRL-4#4D_$5}-||sd zZ+?j3*KgTe(`u^OWm5 zc5Pxmz>i|wjs zf-6jFa}52jZt?t^6CBwu6>nzd(x5bzBWmy32XZA!Kej}z7hPC>q501JUk|P8o$~Dj zY7!T)=f0kKk8{Vp+=A_S>@oKlYgIO>DsFUWz2xJ@by81fr(K?u-9zKH0)yFaPA8o! zy0poe`E=5$9sUmvcP~lH(%q|`wl2!hIBJf?o@1BW403C#3p2QKr8`#_HhIT$*OX;M zc{bnOvG&LO=1%3)Vxk3_Up_E<)_yu8W*oktG%jGLLY-?M_{i*)sb?h;&?6 z;QFhRF1F0pySw#u(5L)|UygM3{rc6{b>!s>j_Gec-?#3&SMQ>opD+LB#f7qM=BC@W znVD_f{w(#_k{wA&F`9-mBQ!OIH|{&fw(OL{#a&aq(>=95D9^1C;$L`NBREX?=E>{- zm%cu@^w5uqyEP6-oNO_iv~*?3%O|ZRFIh9!uzvg{;uGC^Urw^^(}#cMV&Wf#3XG03 zh3L(Va|~HGBjzF7Rlfa-kq=9Ql3HA?+9x(IU+1}frEABz^$Nv;dxhCgrM+3_m;d#v z*y{AJ@kZI#RR3CEk<-=DWn+o@Empfy)RJwh`URgqFRL~_(pk3SDBA;bt2AMWvds*x z%iCjPL%k}_CGId=D5~P{@KCB_jHIVr{gv9XagDFmf4Oq(durO>Yu--fdd}tBM4yVq$+xjB zKRE5c&5|99tmflc!LPp6*HnK}n(|+5_X*46O<&nvo^{f#rn=nNi&M)`MZ8|UOLX&>Ea{ok-IohIDe@NY>y1}5D{2kdZhummIqp&W z=SpK{^)fr|ja;dc+zU_dGoPDjb5v-x>z>3!Ub~#-^438m`V-jLPi(q&dHck$-%dGu zxi3ZSLO}lVtgwn9%OtAS)+)GEn;s=&TMGqq2ppWga%+ z`Hi-k36FI)ENAgHk4mr?J{hs@eDM^fP5#l_rth4TcK*L#&+PY4zBARBZ#mM=>ho}p z8o!dpnQhm9FF!hk)$ii+_XoK)PStQN>lB;S8KYC}EpcK=LzDlCeRa8-x44gTmm4j< z@af<07flhB>id!OX-A_#|$hFxrJ>>-uiw0s@0M+?#-Qf z)3SEn@`b$!_- zxsNZuxlh5^+r-e=iUbOral&U^`Zk6%deY+ojiJc;$cE-qO z3a^92h2#dr?_SNckv&_Q*?Xx;ChV57+REg8!hf^p?g>cj2`!(r>n-Pf&9IkG zpO{^=-Lh`ZgDKN`!#>PuuseHIIx4fxC&v6%z`C4MZJLv>`)dkkOBl~iGc!M*app|U zoQr$%wl?PMy=C}iefT||wC-Dh-;B35Jz1?Cboo@V@NLJZd1Y%@rv5fraVOp3>AnMZ zrk?GaIcfJNr2}zE2D>9(r9Pb7zj24xC;IyI*)5&HQ%-DB*H|=bf`PY1{RHE#W`nL~L$7^PQr%5DJ7b7VRE&EO7)N2ZMTm!9d7&U ztTb!eQ%;xHu5(^QuDBm^{&W1J{~mW2r+Ssnxy7}&;c}Pv-iFUHn%;k{^dF?$I{fR7 zsM0(8@FRbp2W>t)`MAx!>&4eI{dWG+Eq$T!Ke>3y`+!}QHuul)xBqzPTBq@NpGt?G&{*NwK?HPXSen)LFJ>Fv*PmQ?}>lfaaZKxZ04V4W-c}R6c^1u zmCirUpzWK|4f7*Eihe~V&0MnZmCWBMg_C%v_MQKrwCe2SKiz+{FP`_$`&YjI|72CR zlS@i{+#5fIcTc#@wOftFXZ`j~ht_d_yz^Bt!F!0p^ zx;rUO?8tBS62Gmy&w^)sKHOZ{+-rRFy<*-ZcgY>R5#IAp=bSIgJ;t=ir|$lovy$%X zJI`*8(K)SkEH${NRc^taMd8V%-lwE>zv+K_?;QWwVblKa8ywvO{(g*JaG+nJblZ&s zc}WKACg-t9^t>(me}m<>eZyb2gzW~a)`^F#4Vcxz`RwY~sXAJo#sQ{xGnX!3SE<$7 z?S1FJlXB|MTfP4|Q=MN=WLw91C~?MLg`CQzua>H*a85ok#puy>vo77o1=n4!_1q3H zO*{W}iA3`GuK`^fOH4J7MC{A@8e}4RciG$LF7Ljt|MuU-mt)$QsHtz?u3GYc?Q5S? z>%G>$evzP-Wwm(P~Us#|0|C+ke<&eV|No&%bhpZ!2C}pD?g>%x<-nV@jL9pjO?b>DycZ&RgY9DjD}5 zaz=f->%GK-GmLddeO^=GoWGI@?k(pca~f^6Ul@oboM+?-liE?QnDAMr{(U7|bpC_s z<)AfVTi0%}NteGUYwTJQX1BTj#XU~Ji+jbD7FnygmR$buy}NzuG|f|XQWpi+&+MtV z^w`2`kLR};ksU(1d+&-I4vdd@T6I=pkD&9>=S~kF^qMKV6hFW5z&yC#wol7iCbXh( zL))nnT^h^2ymRZk@pbO^J99qo@Y`+NP~^WZ@bp&miB`%#bT1v=@={{=pWA5@IU4of z`84Zaa+6A3@r>{5Q(jvS7S=oU9UFO5c|*g1k?~!fz)Hiu@E@jyuoJ)lX!e zxi|a?*Y=jg7kX1#1h@RWYk9qp<*e%K&MOuFlMkK`I3*o4bMCdK0EcRk&pz@;MV?Lj z-k9FUe7=Uk?q7-6n`MXZt+#(2{YqrJ-CTG6;$)XubNvqMUYhLII!WA5AmWJN3}1m6 zx>np@UoKf=uw(M>r$@gy7%>)Z_%}`8%KORI*jR87ns zqyjvo^hLWic`5Fn9yBGT{T=sxH`9B4pIELu_c$@bHto%!i!&$Np51)v%#ZtG7yMFs z-oDDuk-vOp`qf(&0k+|m=6c7DF_^xAIz$#FdA_~Pv5-5GaowU=HC;?BP`)u1-wdf?xmh6ny}ZSa@K zF@L$#-1fWXhZ6a1vso9NT<5=jyI0xk;-FsB@U)QU)=%YluEktGvis`0r|q8~9=LOo zNo-nF)oUJ;NRyDxP-)FIY3(ZoCQ$Jw4}`Kd-oO&MfY=iC#NI1(T8%EoOEUUceiY~j0wR(sC4$Q8DS z3+KPldipme`H9)OBDW7BV*X2ZeZ9FcjBSBw+5L&aJ{unk2>EbK)8a^b`A_Rf{Br~Q z9Y4QE9p*0;aq;@?Z6H6zAyzS;tJ!{mIZNLT>mK8-Xou6VDfZyZNEw{nJ}Z_Gigwq%WL#%l@Lq+s67c-)r}A%sT8N<1EAy_eI-F{$8Kx z@heP$oS{9_EDsm?t#Y(Y;hZ{A_ea+^sZh(G5(|se@803LwYcd~1*^TuM`!b!OAp-a z+93Q=^Wo%IKY4!sm%q7c%JD67Vwaz7oH6a#?KLu&d-wZsOHOsMT-9`rSN{;Ze&y7n zP}XOwxE@U9S{`9)t#Njy_S1KPruScj=`Kr))ZW0Fz47;FwLi)=72m2VUwwOdt2%f) zyS-(N#OLcO-1W8>cSq0uvhmwP)!kcD*T>fV%x>8&cEpWs!PgD`JzFM~Ugb<%pjVs{ znGnwrF_ZNhf8v)_x*O`9l3FBeBmd7`bj<$p+U$dG68Cc4{^m4~&v1*_t3OBMJXH0U zY_d&L{G`-7XQdh6`H+c=4tH;nv0U-V>v{P0Ytx)}a_4aPw>;ZDiT`}0`fsJb2gR>! z{Cmr)WU8Xzr?B^Dqg1@O^i)sk3HNzk4cPn6F2&g9Guy9+x<2bX+(jjFe66ms=x?&l zdFSulG(S`S#hX@>PfoKUG{jF&{rBPO?eyLrrJ}WF6)bBEewRA8eyiELeB!adYgN^E z%`a$2=>*-7ui3{Rd;R+Ix!vy`AN_XS?soOwu)psgNM<~~nZ0%KY_rCk4+rL3wftwh z`J>CSwq%v)!f4Bvc`bcz=5GsBLX6AIXKAXInlIatyGz=4SJ{hqZs$F|yjU`^+`P?r zU)hXZ(#k42No~g>_N;#PZfYrWxmm^g7=u~-8zx0d$G_ieyF)zp$~9k0>!sR1*J##d z(q-rR}`ZqcW%CI zqY~(R;nP;Z7E|TC7?D}^JC3;;e-fYaZ5=nuwQtj=eOt%Na_#H1b7wPV+`D42R#ACz zVpQ_wFKs-|@-MCT{%)#w^Noseb*~L8ySt>T%kxQkx@%QxTu@M4YL(SoCAO|Cxgt=9{Tm`$Prv8;=@VXeJabkztv^R_k%uP`V;wUe9+$ z*`#d0$YVX<6>qAZs<jpe51y zZeH8YZuOnoCHtnhf6ER}pT&>PHq2Pxw{4@GidDH<@9qhiF>iyImrF@c*Pfpiz zox0fRF3M1(G2vQGSF=OylcWLD32rMd}|H*ML_k-~m>?*_@~TdKRbOx(-r z_kYWazt63oA?Pt|G5x4LHM?J4LG(pbZ+)$<{7 z<A@4oC)X#dvuX<^Cuzt}Gxwo}nwv>r#pS`TM zxoio8{zB!Yoj>+_?7G4Iq1%@EO06ZCnKZ*AlNl#frLM8F z3Chn=tMk~@abt$6u&9T2?^2Jpw=7(rb8~O^Jz17sanLiaplkJnhu(MZy8I5vvi>=n zH+K62{>w4(t0r%E^%nL1YR2oS@-aRBxQf(_6U(LdxprPPZ0$B(tW|4NvR^251KXj5 zphFf06Vz|XoO>42cBgIH($p70ZzHd5n$pI1JfqQ^=^)R&%}c!NB?`QDl&H!*sP$yK z@mMjz-#}uwkof_=&gZXmH>k7b%whdD<-s>M?l_tx3Px68kfI~>ADeWwqBciBhDpC$nAWVp?v*ps+zA1N! zw>0$bXjpSCam%{keOEPOwNGC0NcDV`_ef|;roQdB&!RkA?+WqyyFZuKP_3Hr?crg^ zds@be+SD9-RlJ=iuWeA}xp*<8Z{Bsi)I((xciFgg{|M58CV#u$*D;mH&;I?~GpB|G88p7pV8R zy?IVkRsG~E*IeeUc{^c2nrD`r&f(tscTm$5u@=oW*>UZOfyF zzh`%-#l2r4vd6({4p+&~C(4>@?)om=!T86d>zm^2*&NXmw72egudvH~U;m3kpT*{V z_>iW4@oUM2D_>pmZ>hDI^)388|4nY%!OX7?Dc=Fu3X3k$fo-f&C za*K89vE2)p_N1K?X4J9_S~ZjV!z{~Z46fd$#orX~oK_N%NG_aHr<(9sRaijz>KWFG zvvVH4zc_1WT$r&t)Bf}fNrTRtCro)b*DN|%b$O0N{%^w)hgL&tzoy-RZyXcmX&kZ% zJT^~gL4kz8G?xhz=VUH=(!r;rwf}_Wk|P(Item%d&W?R9T)xb+&ST!;^>zzuo0Yb% z4`k6?d-?YKfbH+I?#HTM{}Vn}_Rp!PFn8sL`!D5BJu1}7x82lH;@K9ndmfpc6>TDN zF5U0cckVGLJ0TJ;EopJY?Eb0lcgZ`R%rG{e_D+4}>rBn_o;SAGZ>-j8a&VS4d!lmT zF-PK?xlXILoeZkpzT)wk2kQC$vli`bt6LX4QSv(T)$%&s1-6RIOKdkDs3~muY4cGh z_q5ako(+Ko^N(g9)sVe+Y4X-RoTv06v)#Fag+-RTuDgAO#WbmE&BjTICwv(Wn>lZ+ zS;qQy%RC?V-;!0Sl2&Y?sjuF=D{fvLSbW~;t@?}LT+aNCU6(>4(hlS{ZQO9?G0P0@ zgwA7!j1CujE<0p2Dfh(Em2;V%Z5EJh%)IPZr#$Dylo~8xF>lKaKM&{kx36yWSiQ46DBa+9bENHtdDQ|FbzflWQGvTPCCR<3C7(=2>3GeK$b zo(;-hOl8xxZI3*kZPqZmqT#&dsspx%X5TOiGEP}1%X`vM{MOxbn|5|j>sz)kZSsj# z3MUU(UwhQ|+2Zz>m#lJmB@w?BFCSS^c8^h#%V@tya0a&sETuhgt*d;9d{+#23`Tb3}sos zzpk~a@Ac&*Mc$rw_ikNWFKTDD(tL*2+0|mAvOdDk8xx*%cL!xW{UE}yMj*j;(XHgE zGrBG=yPu=JS>sZ%l#+9s$o0+_g?s9bpXGd3`r0~fjnd{R-Df6r$L(uBq4V^h;>@PP z&cYu@FDO0^5;B=!p7)@=`HRE650BLMd}z7uX?}}Ww_thj1qGHu7FS+2#@rW2n0|R( z57AA2bLi5vIs2^Mui5jbEO)QjY;}CtiQ^Hy6?Bx~R0w#0fZ|z=Z zZs3un%*MQT+g3r<7pb}G>-Dk@n*4cuJoa+4{>*1q(?8zL%1qimYenCOCk+YDn-avk zxj5#hXnHe*oocC@eBt)f6Rz3p9sJQePab|*)?C*q<|njn!@cG>wh21(HmUBKAUMZ= zvvy)9qhmo>Zo1MBape_}x6Y+6tvYhS`_@^fSSLev)!yRv75)Z(ifOLb<3B9QS#;Po z=zqq_R>nipUkWZ5xBW=-X51vmBY-t*n~?W^LgEL){}UHP-CjUHQZ z=5o(}H^(NkQ*62JEm7&4vfCH9?{?I4H{4;8daOuf+0{hR9m}0|IAw}4g)=pNHELo} zW#9RgD|hNdH}R~zIX{1}*WTk5FK<;VI~;N5@MKSiixy57Ei|tt@9ax0UgaK`qOKkwKoSfrcKGY_R#!j;Vm_W-77vH?FkXu&{Z>OrOzo&tKM*p1xhO_zc~pV zh*|pK;^KbWZyNtBaTO(Ti1M=#eenX!TiXDO^SlStR+pM@8?McPg*9H zkk?S@^Zkv{8orp=`8(2&e+lh6;bLc(8&mq)d#iu@sha;28t=6Vo&9{*d16F*lUb2} z(y|v)yM1_-pImv!dD3%fFh@o-2XB_vYwyK|!FJ1v71Qt3 z1UbETs$*XN_Vvt5do3&eiN46qmEGU8UuNmPq#aGuJ%jUiHGOBwF*zXR6aL{-aWBuY zswuX<4ARUS(u8N9*syV#cetdP9!t)imrh}Az6P-;PHpI1#vLhnEos+;sflYJ?Y?~e z65EEdhSC`cBI%PEuANM{vvF!-EYC67+j$LN8P2FDeAcNye?H+guaYD~#QGB}*KM&e zkGzn$@5|q13^`dGf%DQ%Z9i2pGw;;)OYhB@6O4U-hW&hhR%s&7w?dgd(N}>wSF2ap z^_i=D^L(V?bpG;WwU|pSQhcYRTf85#U7gU{K9h?>N-i|nYo5=vB>$FXi#Bfd-u0WF z+&y5k)6dGSU_xi_Q|HYWm;ZNtKBqXtDS>M+$5w6fJ^}3;SEu*bfW7)<-JB|f)GzFdcyii5t1$S-e zJie=?)0(emxCH($vi{HUHt1o1%J<-i`cIrcDn6*y-c9E@zQnHV)=8x!B36#`A9PL4 zziZdV~a)u1m$>oVG&AGv&J;|YD~3A$Pv zbt2Te?6~&JxGvu6Xncs%Mrzg}$vaK2YsxOpezBx9S}dm7(%^xV``z+yt0(rosQ>Zp z*Wc=9|AjtXuh*LWm~*^f@3e#G7;e-w=q7Bq+xA?HDMxVe;V`#$o~O)n`4&yN-X@lL zs7QVDniWpFdo5fmL{qpvA8B9O=f};wfBoj7?Ywo@KYVzd#j*d3SBaf|;639+w|&n3 z3CrF{JN$pD@%I9`Qn#J)b~oc-+1GOUq8Kh_t?ksYHI7yI%KPkg_h|v%J6rwq(vu-ZwfN3rj>jC0=HiDV{W$7if_@cTb6FBuDz9 z&{Q`=HqS!u(~AGtmubp~q-bk+Hs`5SZ4@n8+~^yn`?~(q(w+fYBNa~u@xT_@5C&A55wPn@i?}0CWE(`SA z*Jp54bCzD}Mebywd3H`bn}7Qyc|KyiyQ(MeQ<21in5)@syo(}}c9wjLXx-Yfn>DHK zq|)RcL8_Kr`~LdW*0pfkKWaMfViGh<*HfW0$9Y=ami7DnqZ{58xa@y$`_cD&&bZ!l zG2480|6J*q@K3krXE@{M^=!}VXWv}PEpgLpN_+rQ;Q2FND)+7>9e$y#dT_zilkC17 z*EVJ*JdNGcTXi#F?mE{piR5TrW?)2b>-D!Uw<1( zy(@Rw|9tnc_xsg$Y*#;b**4!N$~Wufj$2JT=FQmjt8izmciR`ibE#aZwudwOf|l=D z-OcoJ%6VBQmZDZC&GN39s%bXD*}N++j4cr z=Vfm1v)yh^;oUpg+(+|%^=IGhXZ$~&n`2P8%$)WA91F((B`*89^)_4!y!7nksZU#` zvWV&PsZ4#MruJ-_it5x!^Ov%1-Or|B$T212^cB1Bv#xt))!R1bZvA-8%;1KewElaW z$vaO36nVTAU9NZkao+3PIp>=s9$iW0+&yt^_>mK{dM$)%_W7RrUZA$^v%|7d4z1uB zGw(?H*avP`YP>B}TNoo$?`f{K^25IrbzQ!NQntshtdR&_g!?hXbF&;q&(;RYL=7FS0vfln&>{!v{pFDH($BGzRzaf|K#;wK85#vIBaNf z;Yv+sZ3BaBrNNGkQ?mOnEjq+uwe{mRMi~tQyPxjezhXWJmzZoDDpE@QT#GDTKGKle=9 ztrO)b16omOFZsh#;Hd*#YE3j2>{Ocm3UdZTne z$E%t>@NKrD^}5$TI21SP$q5vP)_R;=qFHhHiN4m0ojnp04$bU%@wT+NTqi4Qf%ddL zdhZu8n*6wNL-*~x&F5o7e}6gMd9>5t+Gzb;%g<3?SA4U+uYcvmigPDsc(lv^70PVw z%ib!zk<0giwW#fEht@nbtu3>{#9wXDWw_0?;kx7-8|fQ?0ed-@uWR|+Fr&PfvgcoVY$<+zQhLFvjm}H2*eZNmGNU@-`R76(r)w#n9tH5d zPI9_EMJZhB+DT2;87HFW&E2y3;O4r|%i5&Zou4(~{}iib|0j9B;L`n?U;jP!@qvfZ zY9%w|7rx%Q_tp6=*Q>V1+x$Pd)?wRPvy|Vu%9_#t-|b{b5NCSh%XT~W^PTsSJIgtX z!WRm8vCVw4$MDv)C*KW2ZcW^CNi*u&zf~7j`utfGe9=;&w~(PT&TD2FJ74kXBk|`t z^1Z(>U)ph-=TV&O>9e)K?!5n{{+LrGnyC*z2~2sGUHsH(lQG+c zzIcfje~U|PmX&Xc@mf|_tg(S>^4t^U5&TZiZQAcuZT5haKCK9 z{o6g;#BU$?C&BcMuQ_*f<6q4q#r1rQzqy;|CNo!GKhkW?P$qcbp83I)d$#8iqH_}D z4J4+w&t=#xksxohZ=b`5uPR&ap17WyXBBICb=vy3H)r;E=CuS%+ijIDmAszVviRha z&YExRx7w~}pZ@8%hC^?o)T-+{7iw*EDcY8Ha>;p~tQ=YScmIs+bsn+rbludmfA`G& zD`)Os8Tqi;VAamaw;1$I6Yk#ec;9;aL95vxr{5PJs<_>9jaeoB+2w_-g7eC=t)1z9 zX`;5pvx?74oaU-Jba=AbrmlGfUuU0ZdhTIW`eDVakE!o(-=6hs+LpAlAFlYHp1WgD zVO5#8SMu=^|18%{)kSGt>2H>FZOKa5@RjX%6{o?C<2^skZX0}wm&{Rae#>-YDZ}q* zj@^G|dJ3d4{<;(9p~rlKbMmL@|K(&~Jza8?yR&uPX~hG#c-NBI`s`wN59CXNF;6O&P~YTn9+Q2n`K#aLgJ&HY}`6Apo3yK z*sR;{HlEtx0on?+lQE&1K`gn+(_(dJ>IU5&HzOUt3yt^s4}B>)-^<`Fu)$cT{`|>= z*Svo|DL3qt$l08{`{_;>$M%~HyEzlgnRQY#>{fe<-aqek+l2A;)P48+8K)^$tUUPX zyOAPqc+dWL&MB2kCcjqP*UNZJ(_*c%NXM_&8G|BR=oAS&z)6b!fO(D=!K4$$}ZLmJH;<}b{{Xjv6f*sZ^BNVvU!hdxOMn- zigj0S^E}M9(xI|n>V!?&-1hA!D*Y}VKD;(hVsXkpgKOWuG__yumGp?2(0_jhf1%?( zL-S_fj3Jo zG9;#J_i;=7yFO`U@sF#u49%<`Opo#$3tjamhV#O*8NTZjwrDCZ?XfA*PkrGl-(>eI zsyk@8gpbc>OA&F`Z+yZhRi_&M;=VNVTTG7%Tg3%0quCM;Z}#2DiE9cxHYrQ#sZ($W zE7$u%9X?m@^{YL;{o2mI;BC{Qe)~4fs))JQ?$?X)^mYWPPhKea%KSI;YT1i{v4S%; z*_G&ZUDMjSQr_pY?CjJDYpomH%9(mkN&eN_))?B-5Naf09&fb9%jSAQV<>mTZq~5F z33qBvZiw1pt+z~#t3uOX(<#)-Jaxy{oo}`krt&Y8otyI3#?A<|-} zR+;DyFN67SAG%B-L3^nn_TW}nR4s0+WgKx29NBFZrxeue{7RR z!!-dehiSiM<|&+bK0WTI0B50ToYk5auY1+MrM!GE9ISjLKaMx&%F{aIRXp=9ZCm(m z=I5>Jr|Yp!d~|R2nq7N+Z1YR!9PbG0p47_}YP;s;lgS36wr>xeO*i|`dOtp4P5FMo zKdI_B0!w$?xm`5NSyl2|&c)8B33DS{92i1+9j_X+&umz=F?IdMZj;uny(a!zTbEz0 z@2cOmvh1#G-g$qv?AqvOJ$$oY8=Ri>Exa`E!@NreCT)3l#@NbAEcLs}mC`dGL<|<& zh_5IY4|t!qAdWeB+H2l(S8N%wQw-iYpFVHO>E8Y8!iM!nnWZhVkF^yXI>zaIKPT|q zW7aj{k2cL`$XQe%C#6%rp0(zMi0Y}0PPM{%ZSyW@t9pL(TR&|{r$wCk%mvqdCsldI zS$Fbq+7&Lgin+UF_H|!9DaX4iPfrChy$X5~<)we8tK#Fs#+xtZi~s%nq*>$b>DzhE zi!Z*t<^Sh+?Y_syA8Hj%UJ>IN9Jlssx-PDIa{yxn5Cm8;>>ofqC$-?!i^ zpZi82-p1=(ooiQ{(5HJ8GknC_n+VX{Qs6! z{eNx+&h9!n->EBcf9}yI%na2Rg7~JmMR|*IuGD06O>2*^3qH)Yaiy}ej@2!*OSh}V zYEK@Wth|1vOq0OROB;HZEaXtk(%i1O+(1#tY_ab5`~Ue?FZ*++eEs?I_qDf}rhLnu z-Cfr8rg_`bDg2CY5^ooI-FWc2a*Cj*{=d_Tx8J2GrS^6NJPFeeoX{g0ld^m5)2UnB zHus9Wj>sr_#<40q=cCNJIR|ozx;Aj__4XBe%J?hPYVQB3xqR1EoD^2B`*fUHqr#Bu z@Dq4Yj}$}S z>(8iIBYs0SXx5W=4EGeGtabXjTZPt^c16upTk+K(G<(vCv#;e6S0DTCX#4h}-{Lbd z$6xzLE&Vl_Yo<`#$yFz}W?x$tf9AH}^voGL6QwWqxyx00uaA3u*I?%Ho2A+xN=c(Y93 z$QN}-6JF>3yQh8Su-#VX>KpNiN=LL$Yh)_(Rv%3kF+4Q=!zAVx_m4f_R+N?`XdvtU z?n3F@*)MhM=3NiI?&33h^@&inyuz;Jwz8uKI&Z$PKmV)dR^pX15#8%{U%dCaKD?1! zIr-mPkL^3RcktZr6rS_ul6{uWX12u<5(b-IdEGrKepc74%5v84JhRnpE|Vvm-Sk+c zqSHL=L)J=_v^Saaf9W#6NGbR~{Z`oVnYWhZ|8Bl-wdnr0%=7VYzQ?cG`|El`V`Us` z(xIeC@9P&{Gc+IFbis7V?*k8)dCKirmkkj^J{;|^E|LQBkkM& z;jmp%gm-9^&i2l4y)G*{lIEKU1wL8)vv|u@iNDhqpLpQ=_sIEQcb2cMJp2B-+3dOT zlBb`=ExOOdGtG8#oYKmC?HEtTiB|5X^KzwUZui;gnf_Kp_UoLjm3Jon_lX`PjR(C*$hKG*epO^bJgZw9PC{-ADs(JKJE1R_Cn@s$r zzdsucdn$x?{P@oG`l6A9ndCMdmNR#lR1TlfbufZ6e6kpW{1Yeb*s$lQ;8pYp* zCSADrEbZauZId*AbsW}Es}s!2tUms-`=MRj<=PaLXU{n7-!%K@CM>C0x#+g$j8>z7 zBLPm&wF+9r3*H|0_5Tp~MKqH;$bavf%W*f~eb2vM*L>&S>`DQ)8B2Q|Uz%*6eQrtH z`*jy4hwc*fEdSKUvD{Z;+QMXum`(aGdom6uPoL3VaG*f@-*X8kHU0o&<>f&8#bxJ=eKzVD|7vPIOFJ^)7i&oRNl{!l1*N-Pj8EIo2FCo49%jsyOS^P zaVuRXHTmJ|_>kvi=jUIYJoDz&?E$u5oBXXe3JI@RsJ<@ePLJWzO4a05p9(s{-sGLp zln9PBSkkSqRfuu#iQL2YOOGB2-+oJSos9bXWy;|mGp*JhQVDgr67aQr`AlDw61-{D#Zx(Kdm=>1G;)&opjZ#su9cUJgZW>C0m^TY}rEj8HbI&URhsr>v#5_ zf2M(-tt-<5pZ~F*M75`ySh_KY<&wb*kKr)Sewv@;YxWviq3Q&8ODqMW&uC z+I>-E>dE@|HHDwu)_HgOJYOJT+f!~7XZXpZh2!Dl)}pf)D^+G1iuXTUQykAy?{k&k zj9J-*NxN&cZSw0?5h^KiOw2n2iXuGtmaJ86l($lyJk@Fb`zOp$XS^z+JLgrV-jtqw``eGJ_v@rN=2?gYthcH( z%yMj;5qQ_Ikk6-8sBrOD^#zCKKm3*{8*qZ>H}?TE1BvxMQxcyWO04&(5l=YIP-fSB zaPF#?JAHYMozA$&eB(F6?NbSRdfe*XF|j?K+IgJu8{>g(v-dUg+&-8fe*1tP7vt@d z3469Ux5etr%ieH6PjEvScaC`T$4h*YWh;NY`?9%)V?#d!=nUk-Z_I3u%WoUKX>a1& zVkB60v@&6J)!EPqZrTUMzB;MZ-t?0GHS->u%cWRdpQmmTPYl9dyy8%7kMz6u-se;J z;)hq7{MYWvNi$|&-gz>EXL8`bc89R!&NatwiA{efu6E;YVAl`jwnJS%64~u#TA26l zHSsUIlq|AFqi@^Gx2`vLectS`N+!j!FG+7l@1G6*@?{>2V$R&Zdjy289Ffm%Dxch2 zHTBNcub)Di#1rEF+;o#?_2@qIt{~cA3+t6Y?zU}mqFl|dxWhRObrxs^ZQyeJmMr_# z>%&{-7d~ra=a#*Rs1Mk=zwYw2&o;84vy{X4s{K5p>6?81#K}4D)^a|1q9<|w8)Hkm zx_=5cvHj3(tMy zFx<3i!hd0ds>=V82kh8y_&TMUM*O>XR>5szPG79WH;EW8y<6^^kNc@v?QD}!WZE$y z{?Y7YmRtS`Ep7a>o-wyC+PT0*z_D|}ve`!`i$7ZHt@pxZ_gk^e>4NKOR{QMqY~`Ff ziKD^wfw}u7^WuK7+lLpoaV$E!DZalZ*zCHW{`V!#haZnt` zUex*LB37@|ZSQ#f#)od6o0iI^ZmJ5puDq&;w(RPPF-~7#^46{N@tK*oE^j|KL-0>R z{eyik=M_t(uUudE!uk1}n9o`LyWTzNWq6@Ts`mP-6Yx_TD9OH$0+>^_vU1we8En zit-z3SvSm|1xnKAK}lMUgRy$T!5ytr6WNax^NQVYWX#@vKrYE3FERDTVbFxlC;5iI z;tBmT6O7KurGtfqoA|CAs^i^|&+u(Y!`ZEW_AZym+1seTkM+i7o@1f&|J*Td;tTmY zmqj9{eyycY)A@Pe&hvAYo>g|d3CkJ2c^~xVowomb)5-e&Frz7pt9<0rKS=(_=un+{o(pU%e}`&WKC)b>@r>6?c7w>!jk-{1P6&b|4!F4w6O89smF zBT9lkZ`ydH=U_;~UL~!6+anV8r%gSuK!)LGq!(k*7lGN^8>9{|*O(}sHoLe?*mmc% zS+ZsdTHQwjTddj+)o*LL8niPb*-XjulX7Lq6xYvn{6(y`8oiG?9)5MGsu4N=-rP5+&bJyd$Zsj#$jR`lCf_LZ-eKX_^qXR^}1zUEt9yYY_F zZBeW1KDjyU?)k#Bz~s@XFD^%|_};mDNZS;euXeII@6;3CyOyz(uc4Lk&5Dht2R_`% zmk@M(Y@{@8p`^&umWri4GkzWxHtI^=(Wy9XJGaCxmI}Gn%QI9GJzR_CO+BW(=G!IC ze2?WEVmET0uxc#|bhq>u@Q}6F=#f;Nx8nK3Er+stEQ&qmvM!O*^tU{EOr8H`Y=A&s zS$C(6a&q-Sv9)1y)n+XIdhI3iI;Q7!?p`0lUKl7m_4wGgVLpqU+wrY)_FlQ!%N@N( zAT#j&w;y%(cNNY&ba>6N;H&g8GbU#6F^9w~vW2Gr#F?xv{8Y z?uQf`6G@Sm6Bo{D+1$-lsnfCYn}~Ldf?fVT1C~}R<7XQeOenB?uiYUTY4Bp3*1YS9 z_gPj5)qZp_d46KX|Nd>S8}e80`t{!HV_)vcO*T(#pG>{6Nwwc%#u4RhDz`h0=Q48g z&1{))Br?S@B5{j@M6Rah1re{CDy^H`gS-|_3A%LG$jd9*tYv0EN8G;Z^Rn;vDc)T8 zx9f=f8EM0{^zu$V-T4HClz+L0?KC9cy z{_S~hqP11zx9f9dldIE&emd=y`RX%&@w|v_K6=gFR4bR0lIWIB$OUyT2{NzC@i1L5<(SdS*PywPlEVZguY>^8@Ki z4b%9xeE-T&arb-eg68K-5;osb>|ZzO_(s)N-_CYz(^pHFdnK@`RAW)xmXFu?&n(*@ zd&z2CMP?=Gm?Mu>6fsox0~qwc|mYcD2%Odnfydbnh^`cwue)yvpYX z-vrKQ@B20*`NXRnO;J7rp~_R%v+Fmd^+$f-D_oOr_(Y-ier`tidy{uNXP@$L>iYI% zN`u1->;Ln9udDr8&CSU9Mf}Xu{QBR~4?k?b;++3=)ypmjp55MkH ztz$P4zwj+mwsgbqo(p*vuQE=AtXXjPi=7pxBmY~qT>%HqKl;gGw*CB#WhcGlbr#-@ zwDYyTG_!5TjLrS>y=^X?m-P}lW%o*DC@u9amkXF9)A?}GymIrHfHk$-4n@DL`oS)( z{x0&w{g#^!yZ>8#PyYR>f4Y=|^sAfc>tDT${Q526!{5ug3DUfgU829Dmq}i{Z*;cf z-?U7(FWY^L7wu1-CHPnO^1MrmdpcJM6gV!6jEqs%>b`yO;~l-f`)2JHu!}C;;;W~7 z$7AKadx>YSO53?_+ci^-BRo**vyb)E^`D|VTyHa^8%$4rYmy?se(Ue6JN<7?_s=;Q zDD!Q}{no3~%ir!&k=f@`D`@)l-PMh=nqDr?I^H8=H{pEG$ve!3o=4XDwSJA8miSyI z^nsA|CK*8;&rc72KB&2`kv+x5ZJYC}%=>wzE}3&WG{bY2oxG%B?7KR5`Xt4dF)3^T zwK5N0+-CH?zmR?RQ_WwKz4TPL8BS;y*BgG<{{3nF)gaE`|J@sYwXa^kk8AzP#}_5N zr?0ZFDp)GXbZNp`gOI)F(*Lt%@GYwY z)1SArkCpRtn>4Yy$z0&zwd@jg`xAQ7UCQv$r=aX39jCpw2rBEXo*<~KS1*6KV{@kH z5q1CN4T-arR_S!Ecd$#AKQg0rs#IUgboaE~FK2Z69)Ew`%|~LF{p8&<_`4(S-(J0}?%L{qPGRkBF#`SW8y#xRpD^migGSQ+ z+5T8DPZ`I zW~3_m?pItg@%G=0rb02?n1&Rd+YNpC{NdHNADobk$S# z@}jbzJ4#>w{!~!?>@W-O(Q|Wp<-}I(aL;~!O~xiMMaJ{`tGD7ZjM72dh2!6-T~yQl zdPcxdzW3G-8?U))lXd4^&Xzj7!0>$8Q^qHKe;)AHJDAq*oWP$@AvNQNMU+e!yRm(g z%%1|oGjR=Ur)D)deH1SWZnL`iOzZf9H6eF2o!ooBZnn(%eb=#S(UVtKP3Lo-I{0Jm zpR<*FFCWO>b*ewKBD7X2{7%f7$1(T5xmfot(s@?>kRVcX>&!x`JhyJZ{d0KPCztWnx~xSkmBw)vYcG z6K1wJck9zzW-4WUv=g0G=qCK^_VhEN)-BJyjMuaI?fX_2>|KRW832z$F#AOya<+p8ZQty`8d~ zZ*FqY3`>(!o*vgOM$6dzJ#O} z@%_wyyV@4+e0XQigEg1mdgiyAC&-@W>dWQO%lg{CI%l=Eq;$(h;ndu(se#VZOuJ$( zaj!I9>R35XF5SVoW`4k-%{z{4-_Wil;uZ1K;HtUcbK74Nh1JTk9P`>`55=492+!Y8 za>T{z{LU=9+b=pVax_;iZFn!c@B6A*+X}O$aNWJGkXN^3(Pl;a{R=lQ+I08%#~-&= z-dnHTfPahYP&b7Kzn|IY~{LG3Q?8)jJ0s z*wzNWpCM@Rc3Z6XXFuEBZ!1mK{oV8KO3RNqso$1_A99{?_5_)Wc zXW8!ZYimyYiOksjYX5_&+r@47_mwE!P2IoE`EPE7?Zw$M*kV0CUKZ~Z-p5t(%j?sZ z(k)xpxvgf3GQA)q*{eJ$C2A7q#3{XZf2@{L@~r=~urcCC1J^a1Ugx8tGiO`9xajE^ z(S0^O!L1@lM#gqBUyj-1o#L|-4kdbQYpvNePcG+3|F5?~XI|87b!(EmD7U1{{mHML z+jMTv|95ZsyUl-1j0z+S+?M>FS@n6MJac}eb-HYRu;hKq102T=njL6)X2rg^uwi1& zeBqR!BUSxDGpA_A2R%Dx>^A+?lSK_zxsDF30h~lhRq3UWKb0Y+QcdkUw^H+U+!6 zKDTA|>rTGqtX{Y8@QcN@C)Qq@m+J4~`NGr3Q)Y4B|LW{=*s z1*u0Dq#8@H|39%srZ9eT=QQn%xoWf8FIxO?U-pzUcG3Q$>|3f9h)QK_;uABJayL7% zCCTma3AR_+QVn5R8Qebi!;fW1m)M=+H_>05yEQ&x*LtTP`dv85PPlj>qx|cvkGBG_isI0>}-_wF!e)@a4+A< z8LiU~3LRV-`(@+Zp6IYSlce4&P7{4{ruAL!*Dn(sA5S_WdrBl?*`^QDn-gX};{9;q zpLqQrMPuhpiYI$s#m}$rJu)G5BKxyN$t##_SI51Ryv?mssa^D~`o!Ptif3=XsV+;e z>;9NLW9C(s1zVZk#=7l36qmB=z3s8pu}$HuCtT&L*7(oPSsGfM_2-nhVE!~`pWV5N zzu7iTSG*X(c>DMhkB93cU%pz}71yeLJK|iH_uA&vcK4Moe_urE&zY+BV7ASvlt1PT z|KA+m(EjCt?UMF4ijO}$dL77AGFy20o1@~t8=bZru2Bnl7ku8^apjd`4p7u9hLu)qO0nL0Z4ZTSx=O15RISOh6QA8Cs{6!qTG5*sryLI~xqidKJ5$Z& z?0Kow-y%gT<-g^3)zp1ZIAw9cd-9eS3e!J6b27cMLeIJQYJWgm)%E4h5BtTJtF%m> zP4eq)87I_r-h$n^jw`g(qnJ2}I zcASuzdvdpF`pI_RTYhDclJZv%bT8HMW4pgB&8fAix9XOU&Rw4mTV@{e>y^9KsyaI$ z>D$KUiO+L{*{^Y^m)5OmhY0{{klIPAxLlAjP+m6GT)ulzWGzXT;aaJ z1;*}cxm6A?6Zx^Fc*To0bCI(jPHZ>6vSq{WYl7jglQ?CLdHra*utRi`eH8okKN|1+ zou5egrWkyBBU5sBj^!(tm{apK7bzZpxY$edWgH!oK_aPNe5)?Ulk zmVHl|XS%jLv~2t4o$t?h`sxTtu*hv=`mg#-`)Bf08yj>bstHJ#Brw~&DiqYRrK%c-@n>^ zYv=7)m|t6ewCT<=N!_!TXBQREUS_`iOvWkK&lk(Dwp*T-@7eP&e?$c(at!(Jq(qusl$yK#mekFy zig_z@IaAd8k1W(|Zhp~zC;6@Azvc^@7hc$W-Y(nTwKw^6<~Gk|>Iv0152qbcOIUW_ zwK%Qp*%i%4v3}uM8bPgc>FJw~EWJ_Erzj-h%x!UF-J~^BcCAtQX|rc$N}1Ss$t9(c z9zx5nn)qv$tx`JNd7~uEW!D4FV>h?owXvx9{PF&R`78K!p5D3DKW){`Z`oIG2UJDm zeqPdYvuw*`zM8{_)Mg%IF4=tG^zQNp<^wH0hgy7sSrqSV z?x{)7Th^w0|NJ9yyLGkBKELNgO}MEy)xK)Q<7! z8?MJ2TU4Bl&T7l;dV4nR>)bU@0-Umf{v4iv!|0#L%Z9z$|3amz?*wRk;S(+5+VJybJKHyWxBFUl`>eZibigUc2d~Sx_o*HHbmgSGp_vb3 zl=+2YM)TqoZ5$_lGC!5QPq(1=#OD~@Ck4Mu`X3}tGvewOP*0n7dr?K}3#N|d=JRDI zxB@Ppe(WwDrM3ISDR-3yv+WA%tV<%RIz4uuT|aFxe}`ZF$Z*@x^sYa``Ecve~vqo_mj&R&t)!wcMxt zNuVlNcgxlltuHjve(!#FB;n7EBRlqE_<58r)$od*>!3m^PfYxeR+8)6owJ@l=GfSmohrMhyGM2Xa_c=SJS}!Fty*yZ zamT~Q|Go--UAa8q*W~3vE9JKY@l9F1&h7G5{eZ4r^4**PSML;FmNIeiS%C`M?H`1%Bwu;Fnr(;D z??n61j-+L+DS}@&ngmXIa`^a(u7~Pf56v~&Eat?g->?#}Vb+!2Z0WM}bW~hSMZ>f` zM;z-j_P2z1Kh|2v=qkgNE#}m3f9vD?xmQ)Y&dxTg-|gYB%}aCRB#Wlj4W~aA|NU_I z_TL}N+4wFN&37xydB$hLI!9Ia$NU`^U!7Xdw(V@deW@E_Ki_;j9{B3<C(*Q>5*k)Ac<*2Db6;lU49vB$Hn)GB+pJ||u5fa8ZHH&(T+ofv27eZ@IsBYVh1 zo&RQg>TbMX`oUHhyhQdn|4UZRyEzg0IWm72uFdDs-*lcye^SGH4~Dru1s#?(DGRQ$ z{+h(k@%TxX)T@_58<%^t#4MXzW_sap#M1t#`wJ7JZ22lrH{3?o&2Zkp1SO?WfuF% zfX(4j51O(Th{;4R(Z12yo;sz(_sN8{bpdx9^%Q4M{J-Js3Fi5?9@UG!bbI)Zo#&6< zp=!b1Y{r+qU0i(AK6@p1(3C@yrIw~`o9?;$b>O>iIy3KD&01TwQKbD;b!I}9-C^U& zIZC|=TWZ>_+PPS>b{=|npKsCWXJ-PpCzQ#Ts<(B{oht3E!ZF&J1?0t?H8LKt5RdxyqsJ5iE>>P zCf6J8Uv9X6`M`5&lLOUKGF#5@*lpmePmpa7zVh(=%E$BL+TX8fz90Ksp!UF;xnh$G z_XwD*;>lQBsH^%f@Ytr6x@$jwo;|IH|EcJ_Yq!dNz1qRLE#>;kRLiSBS0+Cbd|7{N z$^RF(U%ZZAIr;XvHFH7?uGfdTpZs&6WoPT;tn&3=dOx4nJCQf%PV{YtefiB7S_&;P ze)gy3KXzZs{aAL7+uq3c@8|f)d#ot&;;}s-?mt`f5re(;?UVXXeqFWLcUO9?(S!L5 zSf3vi*m1#PsbZV%Eq9Ii8$_-wy|-`c!+WN+aryUW-TQFM?tRmo16Q6c%WS-J=fIX_ z&sH|dD6R6Jxk4^z|Awi5)jq|gimzNbBPi1K-`Dccv{3P#F|Jo5f86isS(IgP`>j)i z@2UNo^_@FptOPAvJ7jcZrui73&Y0$>#FxHCW${weUuS&F3wVk+R2Ip%-#Ylv^+Cu@ zSAGex8XHqf>CKyxTKyR_Hwk#lOyuml@o2#oB}VDKoo^0J$xuIiDSO3++~D-Epl>fH ztH&E%Hh(-VAmjav@x|hQ-u% zRd?-PxmEXm-+{Dk-XCwW7&#m`H|4JiOW>iT2A%mOY$DMTWjPDZ2*sI2JC$@!iS%?i z-MleiO_Tb4^AFv|KV1!vDhN7waempkS@%i1am~G~Ue_B3mOfQ&75>#FG53y+>#})$ zpRUv|KJzT}Yrj(JC)dfslaE;}-#)kM=ag5C@}=c(V-5c8JD-!^W|!>w_vDMi?Z5B$ zbLVZkS(UT$@kmXGUg!*s2RTT^29`09yWy5q35@}zEx zVrr}ZtPrE3h|Eh%HeJ-;Pajfhr}py6qg4S#WrY(a>m~545jZLO+Clu_y^Tk5+hdat z%zt{WXT8d9w|9RxJEU$eoLbu_TcdJ&U8wQJmF97~vac_F^1eq>@@i~deR%0Ho;9o2 z8^-Sa82{od`;}AY&XvZ-zH*(bd-m@JT`Yvxn~=T02&;-EdOd_t|x! zPT#h(%DPvX->&$3car7(b!T6`k^OM%8s9wg>Ti|J={M89uX=m)q+?U@502Vp({5j1 z$-nsK56xd2{56)_9E*D!+IxCW!CD53x}un6lJAp@_aF6(PF~My&RgAIvG4nZb8FWA zyzFSTaD&>Sxoim<2Qyw)UOQqUYgX*5dd}`jeaV~$cP2$c z;YiPgKQ?-P^o_5}^tS$T>f_a{^}jT}^(mfmd?UWRxqJ@ey@_HPEq*zh)|*{?l`vb} zs&K090n2`^vvc%+xy{i}TAA8fwCBch&jke{xAcxQ>YsZq{&(Y*yQgofT>aer-)ZaO zFEge+u$wl^e~AZUm!ips`Bq9t-(?!_-B!FpnBotx({4hc)UdUYwVvD z`lpv4+^AKuuV?y-=+jZ&+cNGhJ3V7>Vq2Www%EgLhqY6yClqaFoK=#f@?We^>v_bd zsZ#FmkL)inSJj-2R^bEY3T*soRVc;yYr^?)j{cmrkDT`0DtDqAjLB z;?k1*Yl?zmZgT4{VE%4fRP(yJ_;9}d1<8*x0*@3p3YmmIq>631Cb6Znr)=V19^tnl zh4b&bWD9Qz_Sq8Ls$@1hV={xDhsea;MU#%MUh?YL)iqNpndg1Axw&*Qmuq%j+>)K; z)1M@q+BdVURNzgw>!Z$>G1tv6?KEoF5XpEjF>JR;=G2}I1{RS?SA%vd_1`$u{7R_A zm}}Ad_N(h>#?Sn5ko`qBv%ZWyzwi6%Lkgmo%&k^r|rnL^&AB~MkDJwf=)^2?wC*@N8 z{7m3^2gMTS2-|rxC6xRQe*Sd&MZf^4q2nZZ8!qRN-rziLe>4Y!swyngc3<&)``4_kQS=VqC0bW__p zEnmaZ_=s+tTfx8UmxO2bE#0$GRQ}IFqa(9?PFJ+;VBNo*b^r3#^p35OS#iH=r5~^e z+f9vqvt0biW9g4;dp}q_Y1o{#U8`F0Z|8%b&l{ifZ`R1^uAL^*I+tyWouhF+`|qP+iA|bS zv$ZmEFL@PPU0`#$5}x>L-^)b;iL%#Dh^(1tzdXz7%F$<&9kY{FJlh}~x~Y4T{Mt+HXBjsZyI#n8cwDB5N0Tw=NMq~gQ{`RLgqoGM)I_g3beq#s zGo|s}vjx68_jw%r_Upleuh--2|D6A&)tdZD^;@?5yXuAfw(F;AZism@E{%s=gRZ6qo>WJeNo$Xos^rv1d zGn6`eQjcxc;SW4UXEi^#rA4{%%<8_Vw`oD@u^s1So2R8#l+B!$Tk%cc!a0^%#~l{i zL^Exval4)7sBLg!A%BKxw$Cop+IV0vj-&z-B0Hs!1) zCt@Flr!(b>Ua09=c7E|3QRV)kvL2gLkv9EITVkz_@07~WZA+h!dF$F;pX^@8&G&Y# z@7q`!FPr>&pVhHzwWjxXZBGC0)qU2|;kCg9jq}$S)^=a~a(l9AP4%HC27(#f4co*r zY@5nvz5LzOv(0h2{_6&@B$L03D*Sp}3vX=DnDzBcRbY&4a$t;na-hsKG1q&4T0@@S zJ-g~t&6@Mw5qytj16O_aFgY%`|Jl+D>Tat%Yp0ZSE3TOy<-F8lSKO=DUmo0Xv!3F! z)Z+RwAtSM?E8~A&u$y9GA+b}?cHKRtsn2uy7hm|e^@n&#>s7I}cKK4-;?A$7>lWrJ z6yKcuvj5>0k1HWl58q}^`Mup!s&MlsQ<*|12<(N6edh-s-FLYbq zne*}VtT_|5%wJ}2?)rSc|L)Th9>3YYEf$JcyFpb_~tri@smaS7}W$VydTt0RMpPyw`u=$RaJkH z(AOgFy10KwL%wEyN{_#~df%ZLzdm2co@l=RP@07=i;wgH9`h#2bxk}cd9F=pfAwhn zO1&zHbhm4+FE8lbUM~CP6CaQA>&088)=5S3K3)*%WP7qqZ%KQkrB{!X%_(1b0Wq@TIR0F z#YgGF7tEM*c^?~W`H^_yY<i+CAmp$MqKxkG zhL3;NL?8Fg{lc?0{&}B5xCMJy_jm2M?(LJ}Z4RZc-1eYbA>@eUj{H>@q?h&`Pg}*! zH*YDEZP1laomZdUZ27}n7tIus_u-Rm*t??|pw8HzasiDfPWhbgUws*TFEFWT|GabT zRQ>B&nu!bdzV~|5>F?R`+w+Ct*2gbTZ0i^QQny3kP1E*J3-LEe+&7L^y;yG2`!)E{ zhAC`YoW0Ma8tyDooBg`Ew=C$%gv2MeCQ7efx*}<-NQ)%PRHjR74_;ck@Y2)dM$bcg z-9DwTv_1PjTgK* zy+FXV;%bi5ZxdzxgiR|FyAE>mX1SaEl36Ih$`{8M_2j{W?@sLU&m&(ycx=NNthMr% zkHSyGL(i>$9##IMGWEY4R z{%GdNDU-218{4g4cIm&u%%g=dwZ{^_O0s(y_RW3J@GIo7c<5%E0`}E{GHrj#WM_oT zbw1`8^&;TRB?E2Ss>FonJYVIRt(D))Su}`ddYQQHdSO)ha$$b$Yk|PUt(u&*7cOSc zdT~qj_Z;7xxzA#Er`$?&Ty1jkoapP{6~ejPb6)x-^RC<>Up>2OL(Q@!i@O(ZQJPWn zy2I;w?VptEzXP+by2wqBx^m#e#&xL+yCW=LRIZsCvGrSA%3S+LY6;7i>~ME#54jyZ z@%*HXuLmc<#;D@^8xefji1Ve>H| z@eO)!-yGYt#5H-9h2GXQo&0yM65i*$f`uM`Yo8aoI=&~S(QJ;{l79~`c{}!2>NT~k zyzSUq?l8lu_v`mXs=DwBVVBZ&t>}-JKHx@ zEx8e@6|b@QL#4ID^P8EI!&U}KI;$zqHHqweQF70F&7%4p=Qqukn0SNTC&|CHPP$Td z>8i6!7D{BQrs-sySoXi^PldN(WZiS)pSj!5PY(E|xAv|6MCp8+1XXhmy-k@c6Hjdt zwA9Hu(f6vAZOOdviyltTG`gDd<3V85S;3V@I&y_){hat&tnT4c@!da;8noXQzEfMv zv%^;C?Ea4Y$9lSXDm!dXU47EMv{&nd*+;jKCI6V8nyg<{FVs7;MzQhsa{qkmubbA* zYTSD__?zB}-R~uKwI1boaq7ayqYL9#CHL*QzWHL>>upQb!r8lxxP+E3x%#B~nB{KU z%_Y_%mErY@(O)Ycn^#`l@3H1r+&<}0t-#(b^V2VV?n~Gy%fjKo`c(8|#y;l<4L!GO z??vs)*s`o3yCE{D{R!22kL|r&Hk!fX!$C3wjbC0TaaJ%J+rb|>UoPRsvzy9)s56c9XUHa`l zwc=MwWF& zc&nEC|Lx38TYu{$!MED*}|ZnYYVSh?iNms?l@R9b76GvoZge6 z=Nt+;m5YRUd{6fnUluI*UM76!?&%wMQ4&XY_V7&=Xk#D>hzr)=bg_zckuc% zC2U%d?PLY}rFS{Ea4!kI#aQU2eg8VgC0T)ta`6Xut5>E}ax-o^60$+no!KpN>gBZV zKV7PaY*{$I^IZz-j@=?*_+I6PVd6dGjxWY4r3N8wGcN?aP1`c1-;7CZ+4O@;^ECt? zZ#WaWr&#Dy zloX>_r5O44hiiF?lKY|TWwnYNKa^ft)H*Dw0ai>#wd(5)3|kX>x!o@87s3y5g;NyhT$VPrmSeR@TfZ=cBH-tq|_y`XSOKel1(! zWpz{iFGX$NB}cnHT$5?enzi8LMuCr;wq4}$G4b`j9Pn}Sh5kdYmgf~%7k>5d4Le>Z z(Zh1FXP>&Sl9J;)5nq>^c54L}#koZFi)#z^axu<-e0lNx%BP>q1*1bUuS&PebA06O zjmr{MTgmCNr}E+oiHrUjne$#;5XEwx~3Heei#l z6F(RyzFXLRM32w5v9&?@ac6<_l~4&Y9@tQE_wo^Vzk#w$^my+)9p^ z>?z|MBV+n(?Q0RfNoIX&-A(1PDj{w)ZY8)s-4Fz?RfoqO!J7_GkjkY9JsjM&pV_B$8U3+)PcZ0Eiw zeSQneqNF=Jb$legPySXbwj$-e`G=y^J=>jj2bL5zzV-Eicj}#m{mdD^-555N z&oS8(8`d-9!#9nnqRSl&-`z_5BWl|-d(Karu;!LM@2bh}E<1#epAmeg*H-9%=}Y?; zmpK-T-d(Z&5qQI;ecgwSY@XvA|NFNtLsvJ?0OdK?xE%Oc}JwO z@{Q8hFG8Z@HqEM1k*ExI-eCTqez%Um8)l|8<%Sh6yj3>bYhZYN@x{v^&NbCifQPDTT4VA8gZ^MS2$4h>HEurRVm&-wrrcMyujA#$rPQ($t(f>{6~XKPKdtm z(sb)k7jpHw;#;)Xp~P@fQ1-&v2jY#+MPFT}V6#dkTR42p!`C(v>YnP%HGc)aYEN14 zkNs%0!_PT;XII->?z?tRH0-ZbOYCX6I6j-*Ob&bRC*5@R`)zh%9m}oIo@0WMMsKrZ zmAJRvKgAyPLF&Ado_56(iFTXxnl*Y?lJ0s5OWfb7b7q5QWmibZjVFHhzHE$Rid1ty zcw*-79E;?)%LPyWPtMN$^ons>iP~-X|CSa%&etbCeDNWAo3qI7&?~j+Pkcfy*nS9E zUnS36xYB&V5A~84x-%c|=6$g?yP-_?!a8Bg2TGS~uWwd1?(ZZx%i-g&ydH!2(Rla)a?%lJL_x_jR*t^dE zMLj#qw^)H2-;W6HpIPS2bL+cguQON5tzI^dMxWcs4I(GD$V(`&8ogCpSn_529iA=G z4d0xZd$nH2E%@7UvEqRK<-AmrKGXfY8TM?q-adL$E*kuVZ%d%{sTog{&vv_8WnQ0h zSa0ka@wu6U@>C`~v1BS@492 z{Be9T)!jMx%F4Ce1w2-Z_a(Xoeq7VGY^DWA?yETu&#x-F>VNk1C*K)HcGWW0d&;s~ zr=1G4t;tv7c1xCz%ifjD=c(B5!DQpw?Y>i~u>D8xockGH+`bhAy||g#XR+ApT}uDP zm3PF#zN~-$KH8mc)Ag@k-K|g5HOZzVue>W%`Kf>5x)T>ao!lztfA`6!Po6*S-#Ynp z=DnJB<@>W|M*98Jy)K)2y6&m^8T&b>mn8?*m#|-W*CTl9PO62<)W0|GHmT{a`Ofe* z?&1GUzW2-LKdjJ;)pUy6HKXtAM@`8;Pa6HNP4ZT|+!AIf8aOBZh?BovkKB|roxoWe zH}bu_bdvj}dcDW?%Mx3JSmLg@CK)tG5>qD2Xp1jAe zbcE@2G2Ciy+hj8HoAKR`K~`IWzAtJpo4e}F@~^iyc&R_z%+a|xc1wuT z+_=PBhtoDqZVl4=RHJm^&yC*^6XbVGYPogAk5?QW^S8Z_Po*{*Dt8ZQAtmpIC;zv=+@cu*hCp7&u$@$Im?6m9>dyU>oWnD3^;tL|=n7;Jw@5?tY_ikf2ZFK6P?Saau2H6Jn!|q$&i5A;!8(ujGezkw`>2dXib&FqoK5>29<(&Cn?@HdfaC^66(TCo+ulf;t zdPE~OtZ%4@XZ^U3ZPE6}p-q?K*l*o${KocVcF=}X1!8uK90M=wM6Q_2<(3%n%+uh_ z^8gmEm%PEIFC6X4g8ioSJgpWv``vo2C41e?6PCAMPQ1;Q%Q>TzzeVr;+r2iQw2J-+ z?bv*`$vU6udC-Q7Jh%HEh5zT=QqTDIKHIre<^Hmww6i<;g3cY7m&qE;t= z#*kyPb2VkGwf&4ckDK}WZc$DA7$YBb|MqUXPb#0j-@C)!qsC;#HP?T)$yXKY`FCEN zS;p^~^-Cs6`N^Uq?v-t+-1{RK#koYA&MI)2dp|yy<}ulEZ6sT1nxxEwsJQI3-TlTt z8z!D)QJTnm!cpKR=P&C{h0Pyl-&~#jW4*pvbHMkBotqBt+0S?W^s`8Bm(!d(^S69m z_0r>MkY$?l|3KjlDMC4Zw=Z6}dbhjz;L(YD*YmQ(&lJ3J^Z4!r`S*>rd-y*tS2Gj; zS9>+XLwN4w+&IpJ1uAXJ7fOfccJVXreb%A;#zyPxcF!|zQ@(4k4{q)io ztuKwaFQOH_xFZtK7{6`PwCB6}Oo2D;a%Fm|3OqFO^sOpGLulpZi_% zTxIM+z49%4^iR}J5Ly%zo8&w#TV|z3G5f4DqN#40i_M+{-hXvpu=4%S=Yj8vnb&Z= z$jFf9_!IoK#^j~_|G@b_zbAY+TX~Z6;1ZPyf5W(M)}N?(oTXN6zsnsvJJsRgNt-p2 z-kDo#+ILQmk5S+a^{A;kDv014V^j%TEZQ!o%V7yimw&@88^GnG&!#R zlg^YWcH5IbExPrlz?u2#l(kn(YkuGV-1PsDR?xMo`@1}acbkR#zKXkKv3!k|V%sU1 zMDMktZbc94^f`EQa+~3d=<zmqoFMz5GY*>c|h?WvXW-<8C) zKkk!wy>8Dos~6ttOGGVqqDK2E$46ZD}h_x*Ke=RRQbvAY4!fv=V=Eo=|`+R zDsLK=W*~g}v!s8F$^N&3+Ielx?>@QtC;mwIrg7%$hSrBqDzy0jT-&qGJ$Z6G*S6xt z8#q5WTw5dMQqBH+MfZiZ+w_0!la0E2d$-jmhFQBaCRSbd4{s>TQ+{)(>ZfGJ^XCiZ zy3bU;b8yRMugVEiSN(XRv;WwRH8<9rwC%i56>oC%(#y;16Hk<~J5JruUHYVH=l!B= zyNjpRvNU|Sp?&#{Tbk(aUEAi~ONwrg+4*p1w{*?dZZ>B*|AKE$Yck5)^jrG%)$2{=o~A6|O0)(Fu?`(eglL+EJxI7tx33 z=GMqpN$!+bmS+_==hm{W6OFIZMZ48RcBMJ&nxt8-`}>89{Er;g-#M+jUf%t1ks&(t z1DpTCc{TFWjxlbEUY76pN0(zi>p`PlnM@m}v3#DZ!?)t_!~>~m%X!%OKZax-pAqSu_e+9(^8KYh79B53S;l5r{@v)M zq>YE{{|TA5mT&C#KXWd%;lGUh{vC7UYjVClW&ZU+?w+jeIr#_T_J+}m!xJw*VGb&f zXV+-(ZedCCGd!74wNd$t6I-y<~}$5FSN6|%-_?mN*zIw}48JigQ_D{#rOzDU@VizBo?C(8Uw7Yh8txjB`*Oc%T%^Hl$?%9eR8FDz4o8DA&eX#l4lOqXEMTcg@ec|37m9;-?FXLvjx&7LoZgXb;O>Wp) zc%ZCTjDHIYXevjIJ4&eH`4{2vgFBRzCV7eYw@x}PvvQwy-Mk457qy}sJoolF*q;1U zU@$Y}$C9qeHbpE`)K6u*D=%Q&+`uQysN18Y(6~eLk+|t3bJ2v4TyHqE4-|)OXr1zA z_6K3vE$-=gFimCu)l?7JhNQ zBDc@JW~uw*{@0-xwYQnL$=cVP38zz#w zO{cHA&ukmM#o+7dTuq1Ygs-Qke2ji!Iz@7iiABrS4YM;6Idm(T_Ws}g@A;Lb>r1}< z-Rb_^T4sTtUx2!J@YZhKjG2ZRd2ZJCo2H3A-uFggi;SD~@uq3n2AupCJ~d3sUvP3+ z$bpR8IvK4!$Ifo%$T;etZFu3yd+pRMyjJ$HY+H)lZf6zFpMKHIIEwXxR%4jx;r-## z^ZcKA_dea+&wQ(*xqIUN^!E<0INHPrM)y!AKqO%ky^6!y;|B0^30&neF}|Gd^*-5*gT zCf6mSd5GInu*O-iZsP>3un? zy?##lugt5f!&0wS=gi%F?aYjgX<~hn*VyjAsXR1KLcGVnYje9`RaCBHeX#n?>nrUY zvNtaIT(LWHKfg*W|D-$y-3u9Y3s@VjoyeH&aUgAhso|~AZ*B`rnb)#r2utMduATgH zUznTpHh=b8E(_)|Z83A(edu1&uJ<8sw^Q?3Z>cQsWsBPVP%OSL$le9e~cU=pZwlznD4F|^U`(p7Kep1Zkn&`=5pQq@p&Xi+P3tyI$Zbr)*srK zyJv2z%C)q$l67Yc0@Dw$C%d-4R><1E>0(mOUe)%bn_Bz=8*f$@zPZ8jQQ73j`i6s( zY-X%kYPc*s^Z5JB=kGye`}Zx@9C_xqs{C{AXFYHaae4JJqw$xi*Zv)K`^4uQ{;=Wp z^z7`}dvmU>N!`3XWuEbcYuh#)FkZZI-TnnHdbS1EUXJ2on0_m6qP1Ms;<`?*>V3wk zi=Wt^t5p`-`1JqF-V=+KS*A|5x%}$YZ*Hz-zy1WYH?^xYzexw_T-pR7RzvSBHmYe5TZ{;jF%Xlk+XS+%GjOLr7XN0%Zos>y%m{{Lf zVC%c=y*01co}wJBI0r{DjrOhQBs=YP{&rf_JiS50BI6-@%c+?r(+_0ZRUCaMF`uR3 zN@oPM^^1KYVU-#_pM)y=R29dFEUFc@?zapbP8&BDcrfTWaoeO^C33UFN6~ z)|+=-Ooab&>C`PV9Mamgwx}Fh|06S7bic*133j(SR%%WA*XXdh#psX3mg9^5Z0^up zeX}d

Nzny>Lv**kS@&QvbXlYBRw|Eag1{#a!7KPzua^;6AC&wCU7pGg076 z5|uZ;F)#esQP5YRanJ1D{XX99Yd5XkaQFPTgxlP$X796Z-z-~pVOl(A?$!HcD|7FC zOSx^W>X0w~ZFfx8@3s}|qPB>59NK)LV%0*mcV}ysdVN{^OY?72o$vm|_Lt&cyziMY zq0lG$^35+MpzF5o`Ivt`8?^aWj>&D`)EoGy<4Tb^UuHCTf22WhXY6ViH^=69$i;X zbi6syeMqD8(~7QJ86D3uy3f7n{3p?MaYo0>8Qn)CI=|lNx@*z#*rNONj?Ui|UDtnf zy#H}lfam0go>Mn`&P+LTVvf#?lZtvUHC=hU?~C*Hj|eNg7)$2q5N#+-N>bNcL^ zlYebaUEXuz^`6tmYfgUub80@92iNKqU8|RPtv+*V)le1R-j9PW|){3{cRv)%n`FYo>+f^%`SFK+OdPayOH!o%~-)+Ae?oeNo&k z?W)rCuY30{-Tr;uz1!@+3gll;u3dKi`_g^a%zx+EzghlwQT+Ga|8B(ps{ZdUVB^5f z$l$xF|Aao^WD3EkJZ2+&5V$D*M7sp3Sg{ z^GpJtcZgp=>DAEWts&K=q4~U53VN@moV`+`do?TfO4-}1iF2=1#$L^}y;8jQYWm+P z6LnJ5#Va)(61xH?8BJNr^!Km-)Y#9KMJ9zZ`8$6VV zW4p8(A?KWJ%KI6e)6%vnJHPz?a&f}G(7V5`A24Dui;z=s6fJ48n!)+3>1=au^W0|J z=D*F(&5N6bn=dyPH+T2ewRpF1rbQ&MYs;7$O}g^!(I2f(r7yILgEpT!k@t4<%=2k> zvwyBRtmya1>#CQ$@EXIz({_1el~}CSo5mr0X2UVQup5V_t~kFq%|}M}+P;=oN#xHyv*D0atlDZr=jD3SLF$`Dw-u;fdr{EQDrK;>>2=#A1>2Limn@ne zs_c1T9z|iWjPIxi4^A~cP6{J zP5R|HC%$zbUrnmtt~EiM?st4%ec^iJ`jn#&8PuZnrB_ z(r<-BT@@wMH}9oJ=f%X1HDj(#ucf(f-hK1BOirK4@!7#=Z(3cRCgH5J zarH8x(;7lAW{bxPSdU8B-z9%HJ(Mq_F3tBgT%x$|*8(-G2dm49SLvYT@?^8A;|2@|v_kY9Y4)qnKfB)W6 z7pUd7wVS137q{8{RpQ;B3C&loKE1o^`>(3=|0YFl`}hCIpZX(G$7XSVk>lPqd+X|# z_patWU6I{U7Q4&Cy6&2>w$$WX&wHocdcIZn+A_VE+p+Hd?A2a6TAo+nV*c=L<=aB` zt!r;=%YAN^bX(%NQc>y6|Jv89f5G z{`g^^`n;-VJH_Lwo^Cb2_v^{#@_WA@Bu}y86|ebt)%*q%2Ihxp&*_ap@654qpZ*R-}{XJJnMMp_XO;1r%RaaSCef@$JOV%t} zwQSwOl}pzyUcEd&AtNOxDJv~6F*7wcIXnIRgBMTUJbLx)-NTnp-#&h={zI6B--3^U zf#E>YKYQ?nBHPl^@2v}695%O#SIRW=+M>|eWwKVKFRv{Q-_O|G#v^T*b!G?W@MEf+j4GiOuxR5xxG)uy71MRo!ryc#q2J8eQqy%|2&)OkFU<| z=AXZ>=J&_f{tf{i5iTJ-mVF-O_btHJTiyr!2TgndngMTMtd zh~d`VdMQdeckAUicG=QPk>atXmt*;Dzg~)#ul;)YJ_9qa(G3A-UgJ9)%DqOnB$7)n zd&~drF+Sq)xOeNBBJDL>PGx1U*?O)@I%mttwCJ3zXUnYLY&o4*{buX=I(C_o6N&CJ zrDqD&=aihvOkXmm^jxKQOv%aA@R-uGrRH}^PUmKp-zhy`%Ww1LM6zV0zs=V(#rh#D z!xmrjUccv?+dFx6Go?9vElJ5toRfVGubNywYj9a-^I5~|HlKATY`LJ+t-H~ryeh)r zXMES$nP)p|qYY=T-ua;H>HCSZi+{hHTx32gVAJn^=C9^vTq@_5`^S0sanJwPeVdKu z7tC1|GIh15-&S7v8=Kh`a`P=X9^Cx9|9mZ?IgopM+h5+SMPlz4)r9w=GF}TQYlDl6YA%|F z8g8_?xxTw=b@+)byNsWdww7jVykF&%zS{fgrKD#4%ZZEijT0v87bnbJ?A;n_q#Jg+ zBtqFZVeOfR5`XPp|F0MOdpkX_qW;js`{w_hcc*DSyBHbq_xSS%-+w!cEZfAoaMi>8 z(tm=hH=q4?^xd78;=ez|-ms%6o>=KvqFGmx4j#T&@&CxkhwB~5qnAuNl-@a- zyywX43UT?z!B%aCTFJ(WlZ|zajnzMI*6`k}w0g6i^k&uHMKL;iOyP`yEu3I-m)8hw<>pMeSf=j zZ&v>8=b7FIfI^VRpmM&!v18z<|oMO&5{jR0cw+9|K zCofLX@B4Q1*pHm#+HHk)w=3r7Hk~)Sm_GZ-X5X^5GhXILm(PB6+4u9yWxq>|Yj(}F zyQ?!lZ=1jQ@#V8$Uq1W!<+I-<+%>ye?d~eg&)ev~{mAlYt@PrVa}GZ(T7RuqWJ(%y zSb~(;0meCpY;y_)n~ic#borcavgo+HWBsg6IY+#FjyqYj7*{NqRg`n)l+XD?7CoCQ zR?Pa8b4csV0VRv3;)*4+xN=UdI&)%?Mc3zwHM6>Mj%A%Wl4Q}wU9o7ESI)UtXU;sb z={ViK4di#lK&h+aWo$np+ zs}$b-MEA|K?Hk?i9gM3K|GmWR|J#kr3moPhbF5@*e-bG(?RkOAyyJnDjK`n2%1obL z;1qYvQ#{G~TC(1>%i(V$=kJWXXSkv*Je7CPL!A}p_w=mT#Q528(y6vH=TGSAWE=@w zb2LZi=!#!gW~_~zeKT^_#V;#4Z*Sl$-oUf?b#U;u)YxY!k;g8qIV%xtmacO=VBLb| zGqNR9Dx1$4#b0oL#<}d&97pe&_8F?&ENfE_F6h+}*)qAc`P-(B`3qOff0*6(ayAEp z1V_S+l!%ve?HA6O-(aRHGvlyk#rj9P+Add}U@rH)v$f#*u~_!<*qX0DrbaSPQScP; z)~e50b8Pdrw|5Wz%DKJmZMDViZ~q-|U`#J#|U&+E*^+A?G`s-$b8C)m^If z!|T(!o}wwsnM7BvdbM)mtQ9k(R!qIMVy@MS$-7p#q+UDm>&L!)g~Po6PVYCi|2wnu z-=&5E4<}xEGiUEFOc&VG7bu-OboRvIwG~&U+r7KU>;EXTwwA7Ym`Na-gr_dQ6KS?*ka%z)K-#xX64(=lQRZeOk(lev~AtCMDHb|lCw zF?dZ%vDxvgZ7JSs60^4*joOyZX||!~c>??S$F3^+PkVcwuB~Z^tm*LIG{OI~?6phD zRgJP=I_(n6d9NjWyAZ&e>fd|Cqh0PU@_Fa9_d(F11&z6Q=fA!HQJAt>7mBYF8$_5v2 zwuk@CS8bfNYG>4{t+!U~wOX}#*Q${GM!Bnt12PrYh#V?aDEhK7{ol-e*DKauXUn~k zmU}VmeD?0LjOpJp_Vc~k(D!0R-^(2b=cG0itjY9LT$kGG;32tcNsPczufV7;*TY3? zJVl>s#kXpOnTCe*UJcQ$Yt@NF%t7iI+7jyo7 z-+P7Kh3V16rY?;yb5>XV>%AcHWruN#XW)qq+aB5p?N7FE(B2``Y4fflMWAG6ft}6u zShfa6zH|5IKWE5mknZ?0|J8cNMN`&W@^aX+A9g(9%-vAf}_ZebNmnxVSC?7d{r%~eF_hi+| ze@;*K9BcpC$gAVXclrn8yQjzhNNoP0X@4{)cD1;Hd-hsGz6kHvCoioy@9(wdbFzAo zvbj>{?!PNe+MGFjf-5H zXmEvx!M5w+pNo?=G6+W;FJALJ@_k=~v1ZcQ)ymiQs9BZAoeq_|Uby!7*EqWA1hp@ zmZ58&HQ8)u#M>)=;>+*edi!W=`0tn|z84MNmlS1-PFgJ#);pR}vQo{vJaby6ZEW3> zzQcbveL8#i)OH>zmw5H!i>fi{)7g6U`K96o!`_`*@Xqw&W>)i;#}-dy$|@9iZ$n-#XVn%lR;|Ngjv@0Ehw#YEZTi`kgx8Kv|2N4KRukQCUt g=I8$Te4ZCSA8eN6xNhms^iam9h=GBDfe}Oi0K648jQ{`u diff --git a/static/docs-rs/bdk/nightly/latest/SourceSerif4-Regular.ttf.woff2 b/static/docs-rs/bdk/nightly/latest/SourceSerif4-Regular.ttf.woff2 deleted file mode 100644 index 2db73fe2b49e8cfcaaf1d5311a610e730b8ed502..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76180 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 bu|mph$&(HUWF(dUHMA0&Dk&@;d5-}Ad{}Pp diff --git a/static/docs-rs/bdk/nightly/latest/ayu.css b/static/docs-rs/bdk/nightly/latest/ayu.css deleted file mode 100644 index 53a919812c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/ayu.css +++ /dev/null @@ -1 +0,0 @@ - body{background-color:#0f1419;color:#c5c5c5;}h1,h2,h3,h4{color:white;}h1.fqn{border-bottom-color:#5c6773;}h1.fqn a{color:#fff;}h2,h3,h4{border-bottom-color:#5c6773;}h4{border:none;}.in-band{background-color:#0f1419;}.invisible{background:rgba(0,0,0,0);}.docblock code{color:#ffb454;}.code-header{color:#e6e1cf;}.docblock pre>code,pre>code{color:#e6e1cf;}span code{color:#e6e1cf;}.docblock a>code{color:#39AFD7 !important;}.docblock code,.docblock-short code{background-color:#191f26;}pre,.rustdoc.source .example-wrap{color:#e6e1cf;background-color:#191f26;}.sidebar{background-color:#14191f;}.rust-logo>img{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);}*{scrollbar-color:#5c6773 #24292f;}.sidebar{scrollbar-color:#5c6773 #24292f;}::-webkit-scrollbar-track{background-color:transparent;}::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar::-webkit-scrollbar-track{background-color:transparent;}.sidebar::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar .current{background-color:transparent;color:#ffb44c;}.source .sidebar{background-color:#14191f;}.sidebar .location{border-color:#000;background-color:#0f1419;color:#fff;}.sidebar-elems .location{color:#ff7733;}.sidebar-elems .location a{color:#fff;}.sidebar .version{border-bottom-color:#424c57;}.sidebar-title{border-top-color:#5c6773;border-bottom-color:#5c6773;}.block a:hover{background:transparent;color:#ffb44c;}.line-numbers span{color:#5c6773;}.line-numbers .line-highlighted{color:#708090;background-color:rgba(255,236,164,0.06);padding-right:4px;border-right:1px solid #ffb44c;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#5c6773;}.docblock table td,.docblock table th{border-color:#5c6773;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#c5c5c5;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#000 !important;background-color:#c6afb3;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.content .item-info::before{color:#ccc;}.content span.foreigntype,.content a.foreigntype{color:#ef57ff;}.content span.union,.content a.union{color:#98a01c;}.content span.constant,.content a.constant,.content span.static,.content a.static{color:#6380a0;}.content span.primitive,.content a.primitive{color:#32889b;}.content span.traitalias,.content a.traitalias{color:#57d399;}.content span.keyword,.content a.keyword{color:#de5249;}.content span.externcrate,.content span.mod,.content a.mod{color:#acccf9;}.content span.struct,.content a.struct{color:#ffa0a5;}.content span.enum,.content a.enum{color:#99e0c9;}.content span.trait,.content a.trait{color:#39AFD7;}.content span.type,.content a.type{color:#cfbcf5;}.content span.fn,.content a.fn,.content span.method,.content a.method,.content span.tymethod,.content a.tymethod,.content .fnname{color:#fdd687;}.content span.attr,.content a.attr,.content span.derive,.content a.derive,.content span.macro,.content a.macro{color:#a37acc;}pre.rust .comment{color:#788797;}pre.rust .doccomment{color:#a1ac88;}nav:not(.sidebar){border-bottom-color:#424c57;}nav.main .current{border-top-color:#5c6773;border-bottom-color:#5c6773;}nav.main .separator{border:1px solid #5c6773;}a{color:#39AFD7;}a.srclink,a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar a,.in-band a{color:#c5c5c5;}.search-results a{color:#0096cf;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search{color:#c5c5c5;background-color:#141920;box-shadow:0 0 0 1px #424c57,0 0 0 2px transparent;border-color:#424c57;}.search-input{color:#ffffff;background-color:#141920;box-shadow:0 0 0 1px #424c57,0 0 0 2px transparent;transition:box-shadow 150ms ease-in-out;}#crate-search+.search-input:focus{box-shadow:0 0 0 1px #148099,0 0 0 2px transparent;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable,.stab.deprecated,.stab.portability{color:#c5c5c5;background:#314559 !important;border-style:none !important;border-radius:4px;padding:3px 6px 3px 6px;}.stab.portability>code{color:#e6e1cf;background:none;}#help>div{background:#14191f;box-shadow:0px 6px 20px 0px black;border:none;border-radius:4px;}#help span.bottom,#help span.top{border-color:#5c6773;}.since{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}.line-numbers :target{background-color:transparent;}pre.rust .number,pre.rust .string{color:#b8cc52;}pre.rust .kw,pre.rust .kw-2,pre.rust .prelude-ty,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .op,pre.rust .lifetime{color:#ff7733;}pre.rust .macro,pre.rust .macro-nonterminal{color:#a37acc;}pre.rust .question-mark{color:#ff9011;}pre.rust .self{color:#36a3d9;font-style:italic;}pre.rust .attribute{color:#e6e1cf;}pre.rust .attribute .ident,pre.rust .attribute .op{color:#e6e1cf;}.example-wrap>pre.line-number{color:#5c67736e;border:none;}a.test-arrow{font-size:100%;color:#788797;border-radius:4px;background-color:rgba(57,175,215,0.09);}a.test-arrow:hover{background-color:rgba(57,175,215,0.368);color:#c5c5c5;}.toggle-label,.code-attribute{color:#999;}:target,:target>*{background:rgba(255,236,164,0.06);}:target{border-right:3px solid rgba(255,180,76,0.85);}pre.compile_fail{border-left:2px solid rgba(255,0,0,.4);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.4);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#39AFD7;}.tooltip::after{background-color:#314559;color:#c5c5c5;border:1px solid #5c6773;}.tooltip::before{border-color:transparent #314559 transparent transparent;}.notable-traits-tooltiptext{background-color:#314559;border-color:#5c6773;}.notable-traits-tooltiptext .notable{border-bottom-color:#5c6773;}#titles>button.selected{background-color:#141920 !important;border-bottom:1px solid #ffb44c !important;border-top:none;}#titles>button:not(.selected){background-color:transparent !important;border:none;}#titles>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#titles>button>div.count{color:#888;}.search-input:focus{}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{}.content span.struct,.content a.struct,.block a.current.struct{}#titles>button:hover,#titles>button.selected{}.content span.type,.content a.type,.block a.current.type{}.content span.union,.content a.union,.block a.current.union{}pre.rust .lifetime{}.stab.unstable{}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){}.content span.enum,.content a.enum,.block a.current.enum{}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{}.content span.keyword,.content a.keyword,.block a.current.keyword{}pre.rust .comment{}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{}pre.rust .kw{}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{}pre.rust .doccomment{}.stab.deprecated{}.content a.attr,.content a.derive,.content a.macro{}.stab.portability{}.content span.primitive,.content a.primitive,.block a.current.primitive{}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{}pre.rust .kw-2,pre.rust .prelude-ty{}.content span.trait,.content a.trait,.block a.current.trait{}.search-results a:focus span{}a.result-trait:focus{}a.result-traitalias:focus{}a.result-mod:focus,a.result-externcrate:focus{}a.result-mod:focus{}a.result-externcrate:focus{}a.result-enum:focus{}a.result-struct:focus{}a.result-union:focus{}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{}a.result-type:focus{}a.result-foreigntype:focus{}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{}a.result-constant:focus,a.result-static:focus{}a.result-primitive:focus{}a.result-keyword:focus{}@media (max-width:700px){.sidebar-menu{background-color:#14191f;border-bottom-color:#5c6773;border-right-color:#5c6773;}.sidebar-elems{background-color:#14191f;border-right-color:#5c6773;}#sidebar-filler{background-color:#14191f;border-bottom-color:#5c6773;}}kbd{color:#c5c5c5;background-color:#314559;border-color:#5c6773;border-bottom-color:#5c6773;box-shadow-color:#c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#5c6773;background-color:#0f1419;color:#fff;}#theme-picker>img,#settings-menu>img{filter:invert(100);}#copy-path{color:#fff;}#copy-path>img{filter:invert(70%);}#copy-path:hover>img{filter:invert(100%);}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#e0e0e0;}#theme-choices{border-color:#5c6773;background-color:#0f1419;}#theme-choices>button:not(:first-child){border-top-color:#5c6773;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:rgba(110,110,110,0.33);}@media (max-width:700px){#theme-picker{background:#0f1419;}}#all-types{background-color:#14191f;}#all-types:hover{background-color:rgba(70,70,70,0.33);}.search-results .result-name span.alias{color:#c5c5c5;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#14191f;}#sidebar-toggle:hover{background-color:rgba(70,70,70,0.33);}#source-sidebar{background-color:#14191f;}#source-sidebar>.title{color:#fff;border-bottom-color:#5c6773;}div.files>a:hover,div.name:hover{background-color:#14191f;color:#ffb44c;}div.files>.selected{background-color:#14191f;color:#ffb44c;}.setting-line>.title{border-bottom-color:#5c6773;}input:checked+.slider{background-color:#ffb454 !important;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(15,20,25,1),rgba(15,20,25,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(15,20,25,1),rgba(15,20,25,0));}.toggle-line-inner{background:#616161;}.toggle-line:hover .toggle-line-inner{background:##898989;} \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/all.html b/static/docs-rs/bdk/nightly/latest/bdk/all.html deleted file mode 100644 index 42cd9eb596..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/all.html +++ /dev/null @@ -1,6 +0,0 @@ -List of all items in this crate -

List of all items[] - -

Structs

Enums

Traits

Macros

Functions

Typedefs

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/enum.AnyBlockchain.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/enum.AnyBlockchain.html deleted file mode 100644 index c656c94f92..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/enum.AnyBlockchain.html +++ /dev/null @@ -1,41 +0,0 @@ -AnyBlockchain in bdk::blockchain::any - Rust -

Enum bdk::blockchain::any::AnyBlockchain[][src]

pub enum AnyBlockchain {
-    Electrum(ElectrumBlockchain),
-    Esplora(EsploraBlockchain),
-    CompactFilters(CompactFiltersBlockchain),
-}
Expand description

Type that can contain any of the Blockchain types defined by the library

-

It allows switching backend at runtime

-

See this module’s documentation for a usage example.

-

Variants

Electrum(ElectrumBlockchain)

Tuple Fields

This is supported on crate feature electrum only.

Electrum client

-

Esplora(EsploraBlockchain)

Tuple Fields

This is supported on crate feature esplora only.

Esplora client

-

CompactFilters(CompactFiltersBlockchain)

Tuple Fields

This is supported on crate feature compact_filters only.

Compact filters client

-

Trait Implementations

Return the set of Capability supported by this backend

-

Setup the backend and populate the internal database for the first time Read more

-

Populate the internal database with transactions and UTXOs Read more

-

Fetch a transaction from the blockchain given its txid

-

Broadcast a transaction

-

Return the current height

-

Estimate the fee rate required to confirm a transaction in a given target of blocks

-

Type that contains the configuration

-

Create a new instance given a configuration

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/enum.AnyBlockchainConfig.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/enum.AnyBlockchainConfig.html deleted file mode 100644 index d7e29a2e01..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/enum.AnyBlockchainConfig.html +++ /dev/null @@ -1,66 +0,0 @@ -AnyBlockchainConfig in bdk::blockchain::any - Rust -

Enum bdk::blockchain::any::AnyBlockchainConfig[][src]

pub enum AnyBlockchainConfig {
-    Electrum(ElectrumBlockchainConfig),
-    Esplora(EsploraBlockchainConfig),
-    CompactFilters(CompactFiltersBlockchainConfig),
-}
Expand description

Type that can contain any of the blockchain configurations defined by the library

-

This allows storing a single configuration that can be loaded into an AnyBlockchain -instance. Wallets that plan to offer users the ability to switch blockchain backend at runtime -will find this particularly useful.

-

This type can be serialized from a JSON object like:

- -
use bdk::blockchain::{electrum::ElectrumBlockchainConfig, AnyBlockchainConfig};
-let config: AnyBlockchainConfig = serde_json::from_str(
-    r#"{
-   "type" : "electrum",
-   "url" : "ssl://electrum.blockstream.info:50002",
-   "retry": 2,
-   "stop_gap": 20
-}"#,
-)
-.unwrap();
-assert_eq!(
-    config,
-    AnyBlockchainConfig::Electrum(ElectrumBlockchainConfig {
-        url: "ssl://electrum.blockstream.info:50002".into(),
-        retry: 2,
-        socks5: None,
-        timeout: None,
-        stop_gap: 20,
-    })
-);
-

Variants

Electrum(ElectrumBlockchainConfig)

Tuple Fields

This is supported on crate feature electrum only.

Electrum client

-

Esplora(EsploraBlockchainConfig)

Tuple Fields

This is supported on crate feature esplora only.

Esplora client

-

CompactFilters(CompactFiltersBlockchainConfig)

This is supported on crate feature compact_filters only.

Compact filters client

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/index.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/index.html deleted file mode 100644 index 4ffe4ccfa5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/index.html +++ /dev/null @@ -1,45 +0,0 @@ -bdk::blockchain::any - Rust -

Module bdk::blockchain::any[][src]

Expand description

Runtime-checked blockchain types

-

This module provides the implementation of AnyBlockchain which allows switching the -inner Blockchain type at runtime.

-

Example

-

In this example both wallet_electrum and wallet_esplora have the same type of -Wallet<AnyBlockchain, MemoryDatabase>. This means that they could both, for instance, be -assigned to a struct member.

- -
let electrum_blockchain = ElectrumBlockchain::from(electrum_client::Client::new("...")?);
-let wallet_electrum: Wallet<AnyBlockchain, _> = Wallet::new(
-    "...",
-    None,
-    Network::Testnet,
-    MemoryDatabase::default(),
-    electrum_blockchain.into(),
-)?;
-
-let esplora_blockchain = EsploraBlockchain::new("...", 20);
-let wallet_esplora: Wallet<AnyBlockchain, _> = Wallet::new(
-    "...",
-    None,
-    Network::Testnet,
-    MemoryDatabase::default(),
-    esplora_blockchain.into(),
-)?;
-
-

When paired with the use of ConfigurableBlockchain, it allows creating wallets with any -blockchain type supported using a single line of code:

- -
let config = serde_json::from_str("...")?;
-let blockchain = AnyBlockchain::from_config(&config)?;
-let wallet = Wallet::new(
-    "...",
-    None,
-    Network::Testnet,
-    MemoryDatabase::default(),
-    blockchain,
-)?;
-

Enums

-

Type that can contain any of the Blockchain types defined by the library

-

Type that can contain any of the blockchain configurations defined by the library

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/sidebar-items.js deleted file mode 100644 index 14144cf693..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/any/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["AnyBlockchain","Type that can contain any of the [`Blockchain`] types defined by the library"],["AnyBlockchainConfig","Type that can contain any of the blockchain configurations defined by the library"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/enum.CompactFiltersError.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/enum.CompactFiltersError.html deleted file mode 100644 index bddbebc440..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/enum.CompactFiltersError.html +++ /dev/null @@ -1,64 +0,0 @@ -CompactFiltersError in bdk::blockchain::compact_filters - Rust -

Enum bdk::blockchain::compact_filters::CompactFiltersError[][src]

pub enum CompactFiltersError {
-
Show 15 variants InvalidResponse, - InvalidHeaders, - InvalidFilterHeader, - InvalidFilter, - MissingBlock, - DataCorruption, - NotConnected, - Timeout, - PeerBloomDisabled, - NoPeers, - Db(Error), - Io(Error), - Bip158(Error), - Time(SystemTimeError), - Global(Box<Error>), -
}
This is supported on crate feature compact_filters only.
Expand description

An error that can occur during sync with a CompactFiltersBlockchain

-

Variants

InvalidResponse

A peer sent an invalid or unexpected response

-

InvalidHeaders

The headers returned are invalid

-

InvalidFilterHeader

The compact filter headers returned are invalid

-

InvalidFilter

The compact filter returned is invalid

-

MissingBlock

The peer is missing a block in the valid chain

-

DataCorruption

The data stored in the block filters storage are corrupted

-

NotConnected

A peer is not connected

-

Timeout

A peer took too long to reply to one of our messages

-

PeerBloomDisabled

The peer doesn’t advertise the BLOOM service flag

-

NoPeers

No peers have been specified

-

Db(Error)

Tuple Fields

0: Error

Internal database error

-

Io(Error)

Tuple Fields

0: Error

Internal I/O error

-

Bip158(Error)

Tuple Fields

0: Error

Invalid BIP158 filter

-

Time(SystemTimeError)

Tuple Fields

Internal system time error

-

Global(Box<Error>)

Tuple Fields

0: Box<Error>

Wrapper for crate::error::Error

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/index.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/index.html deleted file mode 100644 index f6d211f263..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/index.html +++ /dev/null @@ -1,38 +0,0 @@ -bdk::blockchain::compact_filters - Rust -

Module bdk::blockchain::compact_filters[][src]

This is supported on crate feature compact_filters only.
Expand description

Compact Filters

-

This module contains a multithreaded implementation of an Blockchain backend that -uses BIP157 (aka “Neutrino”) to populate the wallet’s database -by downloading compact filters from the P2P network.

-

Since there are currently very few peers “in the wild” that advertise the required service -flag, this implementation requires that one or more known peers are provided by the user. -No dns or other kinds of peer discovery are done internally.

-

Moreover, this module doesn’t currently support detecting and resolving conflicts between -messages received by different peers. Thus, it’s recommended to use this module by only -connecting to a single peer at a time, optionally by opening multiple connections if it’s -desirable to use multiple threads at once to sync in parallel.

-

This is an EXPERIMENTAL feature, API and other major changes are expected.

-

Example

-
let num_threads = 4;
-
-let mempool = Arc::new(Mempool::default());
-let peers = (0..num_threads)
-    .map(|_| {
-        Peer::connect(
-            "btcd-mainnet.lightning.computer:8333",
-            Arc::clone(&mempool),
-            Network::Bitcoin,
-        )
-    })
-    .collect::<Result<_, _>>()?;
-let blockchain = CompactFiltersBlockchain::new(peers, "./wallet-filters", Some(500_000))?;
-

Structs

-

Data to connect to a Bitcoin P2P peer

-

Structure implementing the required blockchain traits

-

Container for unconfirmed, but valid Bitcoin transactions

-

A Bitcoin peer

-

Enums

-

An error that can occur during sync with a CompactFiltersBlockchain

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/peer/struct.Mempool.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/peer/struct.Mempool.html deleted file mode 100644 index 744f72d99d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/peer/struct.Mempool.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../../bdk/blockchain/compact_filters/struct.Mempool.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/peer/struct.Peer.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/peer/struct.Peer.html deleted file mode 100644 index 4a3da2bc20..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/peer/struct.Peer.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../../bdk/blockchain/compact_filters/struct.Peer.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/sidebar-items.js deleted file mode 100644 index 187af79563..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["CompactFiltersError","An error that can occur during sync with a [`CompactFiltersBlockchain`]"]],"struct":[["BitcoinPeerConfig","Data to connect to a Bitcoin P2P peer"],["CompactFiltersBlockchain","Structure implementing the required blockchain traits"],["CompactFiltersBlockchainConfig","Configuration for a [`CompactFiltersBlockchain`]"],["Mempool","Container for unconfirmed, but valid Bitcoin transactions"],["Peer","A Bitcoin peer"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.BitcoinPeerConfig.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.BitcoinPeerConfig.html deleted file mode 100644 index 23870398bd..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.BitcoinPeerConfig.html +++ /dev/null @@ -1,38 +0,0 @@ -BitcoinPeerConfig in bdk::blockchain::compact_filters - Rust -

Struct bdk::blockchain::compact_filters::BitcoinPeerConfig[][src]

pub struct BitcoinPeerConfig {
-    pub address: String,
-    pub socks5: Option<String>,
-    pub socks5_credentials: Option<(String, String)>,
-}
This is supported on crate feature compact_filters only.
Expand description

Data to connect to a Bitcoin P2P peer

-

Fields

address: String

Peer address such as 127.0.0.1:18333

-
socks5: Option<String>

Optional socks5 proxy

-
socks5_credentials: Option<(String, String)>

Optional socks5 proxy credentials

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.CompactFiltersBlockchain.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.CompactFiltersBlockchain.html deleted file mode 100644 index 869d94b852..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.CompactFiltersBlockchain.html +++ /dev/null @@ -1,40 +0,0 @@ -CompactFiltersBlockchain in bdk::blockchain::compact_filters - Rust -

Struct bdk::blockchain::compact_filters::CompactFiltersBlockchain[][src]

pub struct CompactFiltersBlockchain { /* fields omitted */ }
This is supported on crate feature compact_filters only.
Expand description

Structure implementing the required blockchain traits

-

Example

-

See the blockchain::compact_filters module for a usage example.

-

Implementations

Construct a new instance given a list of peers, a path to store headers and block -filters downloaded during the sync and optionally a number of blocks to ignore starting -from the genesis while scanning for the wallet’s outputs.

-

For each Peer specified a new thread will be spawned to download and verify the filters -in parallel. It’s currently recommended to only connect to a single peer to avoid -inconsistencies in the data returned, optionally with multiple connections in parallel to -speed-up the sync process.

-

Trait Implementations

Return the set of Capability supported by this backend

-

Setup the backend and populate the internal database for the first time Read more

-

Fetch a transaction from the blockchain given its txid

-

Broadcast a transaction

-

Return the current height

-

Estimate the fee rate required to confirm a transaction in a given target of blocks

-

Populate the internal database with transactions and UTXOs Read more

-

Type that contains the configuration

-

Create a new instance given a configuration

-

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.CompactFiltersBlockchainConfig.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.CompactFiltersBlockchainConfig.html deleted file mode 100644 index 1ddbfb28a6..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.CompactFiltersBlockchainConfig.html +++ /dev/null @@ -1,41 +0,0 @@ -CompactFiltersBlockchainConfig in bdk::blockchain::compact_filters - Rust -

Struct bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig[][src]

pub struct CompactFiltersBlockchainConfig {
-    pub peers: Vec<BitcoinPeerConfig>,
-    pub network: Network,
-    pub storage_dir: String,
-    pub skip_blocks: Option<usize>,
-}
This is supported on crate feature compact_filters only.
Expand description

Configuration for a CompactFiltersBlockchain

-

Fields

peers: Vec<BitcoinPeerConfig>

List of peers to try to connect to for asking headers and filters

-
network: Network

Network used

-
storage_dir: String

Storage dir to save partially downloaded headers and full blocks. Should be a separate directory per descriptor. Consider using crate::wallet::wallet_name_from_descriptor for this.

-
skip_blocks: Option<usize>

Optionally skip initial skip_blocks blocks (default: 0)

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.Mempool.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.Mempool.html deleted file mode 100644 index 53edfe838d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.Mempool.html +++ /dev/null @@ -1,31 +0,0 @@ -Mempool in bdk::blockchain::compact_filters - Rust -

Struct bdk::blockchain::compact_filters::Mempool[][src]

pub struct Mempool(_);
This is supported on crate feature compact_filters only.
Expand description

Container for unconfirmed, but valid Bitcoin transactions

-

It is normally shared between Peers with the use of Arc, so that transactions are not -duplicated in memory.

-

Implementations

Create a new empty mempool

-

Add a transaction to the mempool

-

Note that this doesn’t propagate the transaction to other -peers. To do that, broadcast should be used.

-

Look-up a transaction in the mempool given an [Inventory] request

-

Return whether or not the mempool contains a transaction with a given txid

-

Return the list of transactions contained in the mempool

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.Peer.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.Peer.html deleted file mode 100644 index 5022a0207d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/compact_filters/struct.Peer.html +++ /dev/null @@ -1,34 +0,0 @@ -Peer in bdk::blockchain::compact_filters - Rust -

Struct bdk::blockchain::compact_filters::Peer[][src]

pub struct Peer { /* fields omitted */ }
This is supported on crate feature compact_filters only.
Expand description

A Bitcoin peer

-

Implementations

Connect to a peer over a plaintext TCP connection

-

This function internally spawns a new thread that will monitor incoming messages from the -peer, and optionally reply to some of them transparently, like pings

-

Connect to a peer through a SOCKS5 proxy, optionally by using some credentials, specified -as a tuple of (username, password)

-

This function internally spawns a new thread that will monitor incoming messages from the -peer, and optionally reply to some of them transparently, like pings

-

Return the [VersionMessage] sent by the peer

-

Return the Bitcoin [Network] in use

-

Return the mempool used by this peer

-

Return whether or not the peer is still connected

-

Send a raw Bitcoin message to the peer

-

Waits for a specific incoming Bitcoin message, optionally with a timeout

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/index.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/index.html deleted file mode 100644 index cd7ec8d7a3..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/index.html +++ /dev/null @@ -1,14 +0,0 @@ -bdk::blockchain::electrum - Rust -

Module bdk::blockchain::electrum[][src]

This is supported on crate feature electrum only.
Expand description

Electrum

-

This module defines a Blockchain struct that wraps an [electrum_client::Client] -and implements the logic required to populate the wallet’s database by -querying the inner client.

-

Example

-
let client = electrum_client::Client::new("ssl://electrum.blockstream.info:50002")?;
-let blockchain = ElectrumBlockchain::from(client);
-

Structs

-

Wrapper over an Electrum Client that implements the required blockchain traits

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/sidebar-items.js deleted file mode 100644 index 1bd5458912..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"struct":[["ElectrumBlockchain","Wrapper over an Electrum Client that implements the required blockchain traits"],["ElectrumBlockchainConfig","Configuration for an [`ElectrumBlockchain`]"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/struct.ElectrumBlockchain.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/struct.ElectrumBlockchain.html deleted file mode 100644 index a8ea19375a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/struct.ElectrumBlockchain.html +++ /dev/null @@ -1,33 +0,0 @@ -ElectrumBlockchain in bdk::blockchain::electrum - Rust -

Struct bdk::blockchain::electrum::ElectrumBlockchain[][src]

pub struct ElectrumBlockchain { /* fields omitted */ }
This is supported on crate feature electrum only.
Expand description

Wrapper over an Electrum Client that implements the required blockchain traits

-

Example

-

See the blockchain::electrum module for a usage example.

-

Trait Implementations

Return the set of Capability supported by this backend

-

Setup the backend and populate the internal database for the first time Read more

-

Fetch a transaction from the blockchain given its txid

-

Broadcast a transaction

-

Return the current height

-

Estimate the fee rate required to confirm a transaction in a given target of blocks

-

Populate the internal database with transactions and UTXOs Read more

-

Type that contains the configuration

-

Create a new instance given a configuration

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/struct.ElectrumBlockchainConfig.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/struct.ElectrumBlockchainConfig.html deleted file mode 100644 index c4c26a7141..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/electrum/struct.ElectrumBlockchainConfig.html +++ /dev/null @@ -1,44 +0,0 @@ -ElectrumBlockchainConfig in bdk::blockchain::electrum - Rust -

Struct bdk::blockchain::electrum::ElectrumBlockchainConfig[][src]

pub struct ElectrumBlockchainConfig {
-    pub url: String,
-    pub socks5: Option<String>,
-    pub retry: u8,
-    pub timeout: Option<u8>,
-    pub stop_gap: usize,
-}
This is supported on crate feature electrum only.
Expand description

Configuration for an ElectrumBlockchain

-

Fields

url: String

URL of the Electrum server (such as ElectrumX, Esplora, BWT) may start with ssl:// or tcp:// and include a port

-

eg. ssl://electrum.blockstream.info:60002

-
socks5: Option<String>

URL of the socks5 proxy server or a Tor service

-
retry: u8

Request retry count

-
timeout: Option<u8>

Request timeout (seconds)

-
stop_gap: usize

Stop searching addresses for transactions after finding an unused gap of this length

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/enum.Capability.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/enum.Capability.html deleted file mode 100644 index cee4afa585..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/enum.Capability.html +++ /dev/null @@ -1,38 +0,0 @@ -Capability in bdk::blockchain - Rust -

Enum bdk::blockchain::Capability[][src]

pub enum Capability {
-    FullHistory,
-    GetAnyTx,
-    AccurateFees,
-}
Expand description

Capabilities that can be supported by a Blockchain backend

-

Variants

FullHistory

Can recover the full history of a wallet and not only the set of currently spendable UTXOs

-

GetAnyTx

Can fetch any historical transaction given its txid

-

AccurateFees

Can compute accurate fees for the transactions found during sync

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/enum.EsploraError.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/enum.EsploraError.html deleted file mode 100644 index a83bb0185a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/enum.EsploraError.html +++ /dev/null @@ -1,57 +0,0 @@ -EsploraError in bdk::blockchain::esplora - Rust -

Enum bdk::blockchain::esplora::EsploraError[][src]

pub enum EsploraError {
-    Ureq(Error),
-    UreqTransport(Transport),
-    HttpResponse(u16),
-    Io(Error),
-    NoHeader,
-    Parsing(ParseIntError),
-    BitcoinEncoding(Error),
-    Hex(Error),
-    TransactionNotFound(Txid),
-    HeaderHeightNotFound(u32),
-    HeaderHashNotFound(BlockHash),
-}
This is supported on crate feature esplora only.
Expand description

Errors that can happen during a sync with EsploraBlockchain

-

Variants

Ureq(Error)

Tuple Fields

0: Error

Error during ureq HTTP request

-

UreqTransport(Transport)

Tuple Fields

0: Transport

Transport error during the ureq HTTP call

-

HttpResponse(u16)

Tuple Fields

0: u16

HTTP response error

-

Io(Error)

Tuple Fields

0: Error

IO error during ureq response read

-

NoHeader

No header found in ureq response

-

Parsing(ParseIntError)

Tuple Fields

Invalid number returned

-

BitcoinEncoding(Error)

Tuple Fields

0: Error

Invalid Bitcoin data returned

-

Hex(Error)

Tuple Fields

0: Error

Invalid Hex data returned

-

TransactionNotFound(Txid)

Tuple Fields

0: Txid

Transaction not found

-

HeaderHeightNotFound(u32)

Tuple Fields

0: u32

Header height not found

-

HeaderHashNotFound(BlockHash)

Tuple Fields

0: BlockHash

Header hash not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/index.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/index.html deleted file mode 100644 index c0a0c70fd0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/index.html +++ /dev/null @@ -1,19 +0,0 @@ -bdk::blockchain::esplora - Rust -

Module bdk::blockchain::esplora[][src]

This is supported on crate feature esplora only.
Expand description

Esplora

-

This module defines a EsploraBlockchain struct that can query an Esplora -backend populate the wallet’s database by:

-

Example

-
let blockchain = EsploraBlockchain::new("https://blockstream.info/testnet/api", 20);
-

Esplora blockchain can use either ureq or reqwest for the HTTP client -depending on your needs (blocking or async respectively).

-

Please note, to configure the Esplora HTTP client correctly use one of: -Blocking: –features=‘esplora,ureq’ -Async: –features=‘async-interface,esplora,reqwest’ –no-default-features

-

Structs

-

Structure that implements the logic to sync with Esplora

-

Enums

-

Errors that can happen during a sync with EsploraBlockchain

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/sidebar-items.js deleted file mode 100644 index d4d17db97b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["EsploraError","Errors that can happen during a sync with [`EsploraBlockchain`]"]],"struct":[["EsploraBlockchain","Structure that implements the logic to sync with Esplora"],["EsploraBlockchainConfig","Configuration for an [`EsploraBlockchain`]"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/struct.EsploraBlockchain.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/struct.EsploraBlockchain.html deleted file mode 100644 index 67345d0da8..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/struct.EsploraBlockchain.html +++ /dev/null @@ -1,36 +0,0 @@ -EsploraBlockchain in bdk::blockchain::esplora - Rust -

Struct bdk::blockchain::esplora::EsploraBlockchain[][src]

pub struct EsploraBlockchain { /* fields omitted */ }
This is supported on crate feature esplora only.
Expand description

Structure that implements the logic to sync with Esplora

-

Example

-

See the blockchain::esplora module for a usage example.

-

Implementations

Create a new instance of the client from a base URL and the stop_gap.

-

Set the inner ureq agent.

-

Set the number of parallel requests the client can make.

-

Trait Implementations

Return the set of Capability supported by this backend

-

Setup the backend and populate the internal database for the first time Read more

-

Fetch a transaction from the blockchain given its txid

-

Broadcast a transaction

-

Return the current height

-

Estimate the fee rate required to confirm a transaction in a given target of blocks

-

Populate the internal database with transactions and UTXOs Read more

-

Type that contains the configuration

-

Create a new instance given a configuration

-

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/struct.EsploraBlockchainConfig.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/struct.EsploraBlockchainConfig.html deleted file mode 100644 index fbefefc89f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/struct.EsploraBlockchainConfig.html +++ /dev/null @@ -1,51 +0,0 @@ -EsploraBlockchainConfig in bdk::blockchain::esplora - Rust -

Struct bdk::blockchain::esplora::EsploraBlockchainConfig[][src]

pub struct EsploraBlockchainConfig {
-    pub base_url: String,
-    pub proxy: Option<String>,
-    pub concurrency: Option<u8>,
-    pub stop_gap: usize,
-    pub timeout: Option<u64>,
-}
This is supported on crate feature esplora only.
Expand description

Configuration for an EsploraBlockchain

-

Fields

base_url: String

Base URL of the esplora service

-

eg. https://blockstream.info/api/

-
proxy: Option<String>

Optional URL of the proxy to use to make requests to the Esplora server

-

The string should be formatted as: <protocol>://<user>:<password>@host:<port>.

-

Note that the format of this value and the supported protocols change slightly between the -sync version of esplora (using ureq) and the async version (using reqwest). For more -details check with the documentation of the two crates. Both of them are compiled with -the socks feature enabled.

-

The proxy is ignored when targeting wasm32.

-
concurrency: Option<u8>

Number of parallel requests sent to the esplora service (default: 4)

-
stop_gap: usize

Stop searching addresses for transactions after finding an unused gap of this length.

-
timeout: Option<u64>

Socket timeout.

-

Implementations

create a config with default values given the base url and stop gap

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/ureq/struct.EsploraBlockchain.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/ureq/struct.EsploraBlockchain.html deleted file mode 100644 index 9e118ac7a5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/esplora/ureq/struct.EsploraBlockchain.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../../bdk/blockchain/esplora/struct.EsploraBlockchain.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.log_progress.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.log_progress.html deleted file mode 100644 index 8172d50174..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.log_progress.html +++ /dev/null @@ -1,5 +0,0 @@ -log_progress in bdk::blockchain - Rust -

Function bdk::blockchain::log_progress[][src]

pub fn log_progress() -> LogProgress
Expand description

Create a new instance of LogProgress

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.noop_progress.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.noop_progress.html deleted file mode 100644 index 1e4138bf05..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.noop_progress.html +++ /dev/null @@ -1,5 +0,0 @@ -noop_progress in bdk::blockchain - Rust -

Function bdk::blockchain::noop_progress[][src]

pub fn noop_progress() -> NoopProgress
Expand description

Create a new instance of NoopProgress

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.progress.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.progress.html deleted file mode 100644 index 06011a744e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/fn.progress.html +++ /dev/null @@ -1,5 +0,0 @@ -progress in bdk::blockchain - Rust -

Function bdk::blockchain::progress[][src]

pub fn progress() -> (Sender<ProgressData>, Receiver<ProgressData>)
Expand description

Shortcut to create a channel (pair of Sender and Receiver) that can transport ProgressData

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/index.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/index.html deleted file mode 100644 index 92f9299cdf..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/index.html +++ /dev/null @@ -1,32 +0,0 @@ -bdk::blockchain - Rust -

Module bdk::blockchain[][src]

Expand description

Blockchain backends

-

This module provides the implementation of a few commonly-used backends like -Electrum, Esplora and -Compact Filters/Neutrino, along with a generalized trait -Blockchain that can be implemented to build customized backends.

-

Re-exports

-
pub use any::AnyBlockchain;
pub use any::AnyBlockchainConfig;
pub use self::electrum::ElectrumBlockchain;
pub use self::electrum::ElectrumBlockchainConfig;
pub use self::compact_filters::CompactFiltersBlockchain;

Modules

-

Runtime-checked blockchain types

-
compact_filterscompact_filters

Compact Filters

-
electrumelectrum

Electrum

-
esploraesplora

Esplora

-

Structs

-

Structure that implements the logic to sync with Esplora

-

Type that implements Progress and logs at level INFO every update received

-

Type that implements Progress and drops every update received

-

Enums

-

Capabilities that can be supported by a Blockchain backend

-

Traits

-

Trait that defines the actions that must be supported by a blockchain backend

-

Trait for Blockchain types that can be created given a configuration

-

Trait for types that can receive and process progress updates during Blockchain::sync and -Blockchain::setup

-

Functions

-

Create a new instance of LogProgress

-

Create a new instance of NoopProgress

-

Shortcut to create a channel (pair of Sender and Receiver) that can transport ProgressData

-

Type Definitions

-

Data sent with a progress update over a channel

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/sidebar-items.js deleted file mode 100644 index 8667824b32..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["Capability","Capabilities that can be supported by a [`Blockchain`] backend"]],"fn":[["log_progress","Create a new instance of [`LogProgress`]"],["noop_progress","Create a new instance of [`NoopProgress`]"],["progress","Shortcut to create a [`channel`] (pair of [`Sender`] and [`Receiver`]) that can transport [`ProgressData`]"]],"mod":[["any","Runtime-checked blockchain types"],["compact_filters","Compact Filters"],["electrum","Electrum"],["esplora","Esplora"]],"struct":[["EsploraBlockchain","Structure that implements the logic to sync with Esplora"],["LogProgress","Type that implements [`Progress`] and logs at level `INFO` every update received"],["NoopProgress","Type that implements [`Progress`] and drops every update received"]],"trait":[["Blockchain","Trait that defines the actions that must be supported by a blockchain backend"],["ConfigurableBlockchain","Trait for [`Blockchain`] types that can be created given a configuration"],["Progress","Trait for types that can receive and process progress updates during [`Blockchain::sync`] and [`Blockchain::setup`]"]],"type":[["ProgressData","Data sent with a progress update over a [`channel`]"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.EsploraBlockchain.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.EsploraBlockchain.html deleted file mode 100644 index b6713192ad..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.EsploraBlockchain.html +++ /dev/null @@ -1,36 +0,0 @@ -EsploraBlockchain in bdk::blockchain - Rust -

Struct bdk::blockchain::EsploraBlockchain[][src]

pub struct EsploraBlockchain { /* fields omitted */ }
Expand description

Structure that implements the logic to sync with Esplora

-

Example

-

See the blockchain::esplora module for a usage example.

-

Implementations

This is supported on crate feature esplora only.

Create a new instance of the client from a base URL and the stop_gap.

-
This is supported on crate feature esplora only.

Set the inner ureq agent.

-
This is supported on crate feature esplora only.

Set the number of parallel requests the client can make.

-

Trait Implementations

Return the set of Capability supported by this backend

-

Setup the backend and populate the internal database for the first time Read more

-

Fetch a transaction from the blockchain given its txid

-

Broadcast a transaction

-

Return the current height

-

Estimate the fee rate required to confirm a transaction in a given target of blocks

-

Populate the internal database with transactions and UTXOs Read more

-

Type that contains the configuration

-

Create a new instance given a configuration

-

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.LogProgress.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.LogProgress.html deleted file mode 100644 index f685b313d7..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.LogProgress.html +++ /dev/null @@ -1,26 +0,0 @@ -LogProgress in bdk::blockchain - Rust -

Struct bdk::blockchain::LogProgress[][src]

pub struct LogProgress;
Expand description

Type that implements Progress and logs at level INFO every update received

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Send a new progress update Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.NoopProgress.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.NoopProgress.html deleted file mode 100644 index 7d138f9747..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/struct.NoopProgress.html +++ /dev/null @@ -1,26 +0,0 @@ -NoopProgress in bdk::blockchain - Rust -

Struct bdk::blockchain::NoopProgress[][src]

pub struct NoopProgress;
Expand description

Type that implements Progress and drops every update received

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Send a new progress update Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.Blockchain.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.Blockchain.html deleted file mode 100644 index 657a097c68..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.Blockchain.html +++ /dev/null @@ -1,36 +0,0 @@ -Blockchain in bdk::blockchain - Rust -

Trait bdk::blockchain::Blockchain[][src]

pub trait Blockchain {
-    fn get_capabilities(&self) -> HashSet<Capability>;
-
fn setup<D: BatchDatabase, P: 'static + Progress>(
        &self,
        database: &mut D,
        progress_update: P
    ) -> Result<(), Error>; -
fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error>; -
fn broadcast(&self, tx: &Transaction) -> Result<(), Error>; -
fn get_height(&self) -> Result<u32, Error>; -
fn estimate_fee(&self, target: usize) -> Result<FeeRate, Error>; - - fn sync<D: BatchDatabase, P: 'static + Progress>(
        &self,
        database: &mut D,
        progress_update: P
    ) -> Result<(), Error> { ... } -}
Expand description

Trait that defines the actions that must be supported by a blockchain backend

-

Required methods

Return the set of Capability supported by this backend

-

Setup the backend and populate the internal database for the first time

-

This method is the equivalent of Blockchain::sync, but it’s guaranteed to only be -called once, at the first Wallet::sync.

-

The rationale behind the distinction between sync and setup is that some custom backends -might need to perform specific actions only the first time they are synced.

-

For types that do not have that distinction, only this method can be implemented, since -Blockchain::sync defaults to calling this internally if not overridden.

-

Fetch a transaction from the blockchain given its txid

-

Broadcast a transaction

-

Return the current height

-

Estimate the fee rate required to confirm a transaction in a given target of blocks

-

Provided methods

Populate the internal database with transactions and UTXOs

-

If not overridden, it defaults to calling Blockchain::setup internally.

-

This method should implement the logic required to iterate over the list of the wallet’s -script_pubkeys using Database::iter_script_pubkeys and look for relevant transactions -in the blockchain to populate the database with BatchOperations::set_tx and -BatchOperations::set_utxo.

-

This method should also take care of removing UTXOs that are seen as spent in the -blockchain, using BatchOperations::del_utxo.

-

The progress_update object can be used to give the caller updates about the progress by using -Progress::update.

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.ConfigurableBlockchain.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.ConfigurableBlockchain.html deleted file mode 100644 index 288cca68d8..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.ConfigurableBlockchain.html +++ /dev/null @@ -1,10 +0,0 @@ -ConfigurableBlockchain in bdk::blockchain - Rust -

Trait bdk::blockchain::ConfigurableBlockchain[][src]

pub trait ConfigurableBlockchain: Blockchain + Sized {
-    type Config: Debug;
-    fn from_config(config: &Self::Config) -> Result<Self, Error>;
-}
Expand description

Trait for Blockchain types that can be created given a configuration

-

Associated Types

Type that contains the configuration

-

Required methods

Create a new instance given a configuration

-

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.Progress.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.Progress.html deleted file mode 100644 index f6acc91610..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/trait.Progress.html +++ /dev/null @@ -1,11 +0,0 @@ -Progress in bdk::blockchain - Rust -

Trait bdk::blockchain::Progress[][src]

pub trait Progress: Send {
-    fn update(
        &self,
        progress: f32,
        message: Option<String>
    ) -> Result<(), Error>; -}
Expand description

Trait for types that can receive and process progress updates during Blockchain::sync and -Blockchain::setup

-

Required methods

Send a new progress update

-

The progress value should be in the range 0.0 - 100.0, and the message value is an -optional text message that can be displayed to the user.

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/type.ProgressData.html b/static/docs-rs/bdk/nightly/latest/bdk/blockchain/type.ProgressData.html deleted file mode 100644 index f1ddc8bf20..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/blockchain/type.ProgressData.html +++ /dev/null @@ -1,5 +0,0 @@ -ProgressData in bdk::blockchain - Rust -

Type Definition bdk::blockchain::ProgressData[][src]

pub type ProgressData = (f32, Option<String>);
Expand description

Data sent with a progress update over a channel

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyBatch.html b/static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyBatch.html deleted file mode 100644 index 793ee11b87..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyBatch.html +++ /dev/null @@ -1,44 +0,0 @@ -AnyBatch in bdk::database::any - Rust -

Enum bdk::database::any::AnyBatch[][src]

pub enum AnyBatch {
-    Memory(<MemoryDatabase as BatchDatabase>::Batch),
-    Sled(<Tree as BatchDatabase>::Batch),
-    Sqlite(<SqliteDatabase as BatchDatabase>::Batch),
-}
Expand description

Type that contains any of the BatchDatabase::Batch types defined by the library

-

Variants

Memory(<MemoryDatabase as BatchDatabase>::Batch)

Tuple Fields

In-memory ephemeral database

-

Sled(<Tree as BatchDatabase>::Batch)

Tuple Fields

0: <Tree as BatchDatabase>::Batch
This is supported on crate feature key-value-db only.

Simple key-value embedded database based on [sled]

-

Sqlite(<SqliteDatabase as BatchDatabase>::Batch)

Tuple Fields

This is supported on crate feature sqlite only.

Sqlite embedded database using [rusqlite]

-

Trait Implementations

Store a script_pubkey along with its keychain and child number.

-

Store a LocalUtxo

-

Store a raw transaction

-

Store the metadata of a transaction

-

Store the last derivation index for a given keychain.

-

Store the sync time

-

Delete a script_pubkey given the keychain and its child number.

-

Delete the data related to a specific script_pubkey, meaning the keychain and the child -number. Read more

-

Delete a LocalUtxo given its [OutPoint]

-

Delete a raw transaction given its [Txid]

-

Delete the metadata of a transaction and optionally the raw transaction itself

-

Delete the last derivation index for a keychain.

-

Reset the sync time to None Read more

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyDatabase.html b/static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyDatabase.html deleted file mode 100644 index 9426c7b24b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyDatabase.html +++ /dev/null @@ -1,66 +0,0 @@ -AnyDatabase in bdk::database::any - Rust -

Enum bdk::database::any::AnyDatabase[][src]

pub enum AnyDatabase {
-    Memory(MemoryDatabase),
-    Sled(Tree),
-    Sqlite(SqliteDatabase),
-}
Expand description

Type that can contain any of the Database types defined by the library

-

It allows switching database type at runtime.

-

See this module’s documentation for a usage example.

-

Variants

Memory(MemoryDatabase)

Tuple Fields

In-memory ephemeral database

-

Sled(Tree)

Tuple Fields

0: Tree
This is supported on crate feature key-value-db only.

Simple key-value embedded database based on [sled]

-

Sqlite(SqliteDatabase)

Tuple Fields

This is supported on crate feature sqlite only.

Sqlite embedded database using [rusqlite]

-

Trait Implementations

Container for the operations

-

Create a new batch container

-

Consume and apply a batch of operations

-

Store a script_pubkey along with its keychain and child number.

-

Store a LocalUtxo

-

Store a raw transaction

-

Store the metadata of a transaction

-

Store the last derivation index for a given keychain.

-

Store the sync time

-

Delete a script_pubkey given the keychain and its child number.

-

Delete the data related to a specific script_pubkey, meaning the keychain and the child -number. Read more

-

Delete a LocalUtxo given its [OutPoint]

-

Delete a raw transaction given its [Txid]

-

Delete the metadata of a transaction and optionally the raw transaction itself

-

Delete the last derivation index for a keychain.

-

Reset the sync time to None Read more

-

Type that contains the configuration

-

Create a new instance given a configuration

-

Read and checks the descriptor checksum for a given keychain. Read more

-

Return the list of script_pubkeys

-

Return the list of LocalUtxos

-

Return the list of raw transactions

-

Return the list of transactions metadata

-

Fetch a script_pubkey given the child number of a keychain.

-

Fetch the keychain and child number of a given script_pubkey

-

Fetch a LocalUtxo given its [OutPoint]

-

Fetch a raw transaction given its [Txid]

-

Fetch the transaction metadata and optionally also the raw transaction

-

Return the last derivation index for a keychain.

-

Return the sync time, if present

-

Increment the last derivation index for a keychain and return it Read more

-

Force changes to be written to disk

-

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyDatabaseConfig.html b/static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyDatabaseConfig.html deleted file mode 100644 index e42c08b1c2..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/any/enum.AnyDatabaseConfig.html +++ /dev/null @@ -1,36 +0,0 @@ -AnyDatabaseConfig in bdk::database::any - Rust -

Enum bdk::database::any::AnyDatabaseConfig[][src]

pub enum AnyDatabaseConfig {
-    Memory(()),
-    Sled(SledDbConfiguration),
-    Sqlite(SqliteDbConfiguration),
-}
Expand description

Type that can contain any of the database configurations defined by the library

-

This allows storing a single configuration that can be loaded into an AnyDatabase -instance. Wallets that plan to offer users the ability to switch blockchain backend at runtime -will find this particularly useful.

-

Variants

Memory(())

Tuple Fields

0: ()

Memory database has no config

-

Sled(SledDbConfiguration)

Tuple Fields

This is supported on crate feature key-value-db only.

Simple key-value embedded database based on [sled]

-

Sqlite(SqliteDbConfiguration)

Tuple Fields

This is supported on crate feature sqlite only.

Sqlite embedded database using [rusqlite]

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/any/index.html b/static/docs-rs/bdk/nightly/latest/bdk/database/any/index.html deleted file mode 100644 index 939bb8716c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/any/index.html +++ /dev/null @@ -1,28 +0,0 @@ -bdk::database::any - Rust -

Module bdk::database::any[][src]

Expand description

Runtime-checked database types

-

This module provides the implementation of AnyDatabase which allows switching the -inner Database type at runtime.

-

Example

-

In this example, wallet_memory and wallet_sled have the same type of Wallet<(), AnyDatabase>.

- -
let memory = MemoryDatabase::default();
-let wallet_memory = Wallet::new_offline("...", None, Network::Testnet, memory)?;
-
-let sled = sled::open("my-database")?.open_tree("default_tree")?;
-let wallet_sled = Wallet::new_offline("...", None, Network::Testnet, sled)?;
-

When paired with the use of ConfigurableDatabase, it allows creating wallets with any -database supported using a single line of code:

- -
let config = serde_json::from_str("...")?;
-let database = AnyDatabase::from_config(&config)?;
-let wallet = Wallet::new_offline("...", None, Network::Testnet, database)?;
-

Structs

-

Configuration type for a [sled::Tree] database

-

Configuration type for a sqlite::SqliteDatabase database

-

Enums

-

Type that contains any of the BatchDatabase::Batch types defined by the library

-

Type that can contain any of the Database types defined by the library

-

Type that can contain any of the database configurations defined by the library

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/any/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/database/any/sidebar-items.js deleted file mode 100644 index b10a47631b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/any/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["AnyBatch","Type that contains any of the [`BatchDatabase::Batch`] types defined by the library"],["AnyDatabase","Type that can contain any of the [`Database`] types defined by the library"],["AnyDatabaseConfig","Type that can contain any of the database configurations defined by the library"]],"struct":[["SledDbConfiguration","Configuration type for a [`sled::Tree`] database"],["SqliteDbConfiguration","Configuration type for a [`sqlite::SqliteDatabase`] database"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/any/struct.SledDbConfiguration.html b/static/docs-rs/bdk/nightly/latest/bdk/database/any/struct.SledDbConfiguration.html deleted file mode 100644 index e95ab74763..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/any/struct.SledDbConfiguration.html +++ /dev/null @@ -1,29 +0,0 @@ -SledDbConfiguration in bdk::database::any - Rust -

Struct bdk::database::any::SledDbConfiguration[][src]

pub struct SledDbConfiguration {
-    pub path: String,
-    pub tree_name: String,
-}
Expand description

Configuration type for a [sled::Tree] database

-

Fields

path: String

Main directory of the db

-
tree_name: String

Name of the database tree, a separated namespace for the data

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Performs the conversion.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/any/struct.SqliteDbConfiguration.html b/static/docs-rs/bdk/nightly/latest/bdk/database/any/struct.SqliteDbConfiguration.html deleted file mode 100644 index cfb3e910c3..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/any/struct.SqliteDbConfiguration.html +++ /dev/null @@ -1,27 +0,0 @@ -SqliteDbConfiguration in bdk::database::any - Rust -

Struct bdk::database::any::SqliteDbConfiguration[][src]

pub struct SqliteDbConfiguration {
-    pub path: String,
-}
Expand description

Configuration type for a sqlite::SqliteDatabase database

-

Fields

path: String

Main directory of the db

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Performs the conversion.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/index.html b/static/docs-rs/bdk/nightly/latest/bdk/database/index.html deleted file mode 100644 index 2e0a2451ac..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/index.html +++ /dev/null @@ -1,25 +0,0 @@ -bdk::database - Rust -

Module bdk::database[][src]

Expand description

Database types

-

This module provides the implementation of some defaults database types, along with traits that -can be implemented externally to let Wallets use customized databases.

-

It’s important to note that the databases defined here only contains “blockchain-related” data. -They can be seen more as a cache than a critical piece of storage that contains secrets and -keys.

-

The currently recommended database is [sled], which is a pretty simple key-value embedded -database written in Rust. If the key-value-db feature is enabled (which by default is), -this library automatically implements all the required traits for [sled::Tree].

-

Re-exports

-
pub use any::AnyDatabase;
pub use any::AnyDatabaseConfig;
pub use memory::MemoryDatabase;

Modules

-

Runtime-checked database types

-

In-memory ephemeral database

-

Structs

-

Sqlite database stored on filesystem

-

Blockchain state at the time of syncing

-

Traits

-

Trait for a database that supports batch operations

-

Trait for operations that can be batched

-

Trait for Database types that can be created given a configuration

-

Trait for reading data from a database

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/memory/index.html b/static/docs-rs/bdk/nightly/latest/bdk/database/memory/index.html deleted file mode 100644 index 494cfa4819..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/memory/index.html +++ /dev/null @@ -1,9 +0,0 @@ -bdk::database::memory - Rust -

Module bdk::database::memory[][src]

Expand description

In-memory ephemeral database

-

This module defines an in-memory database type called MemoryDatabase that is based on a -BTreeMap.

-

Structs

-

In-memory ephemeral database

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/memory/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/database/memory/sidebar-items.js deleted file mode 100644 index 665f6718d0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/memory/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"struct":[["MemoryDatabase","In-memory ephemeral database"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/memory/struct.MemoryDatabase.html b/static/docs-rs/bdk/nightly/latest/bdk/database/memory/struct.MemoryDatabase.html deleted file mode 100644 index 9893b11d86..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/memory/struct.MemoryDatabase.html +++ /dev/null @@ -1,63 +0,0 @@ -MemoryDatabase in bdk::database::memory - Rust -

Struct bdk::database::memory::MemoryDatabase[][src]

pub struct MemoryDatabase { /* fields omitted */ }
Expand description

In-memory ephemeral database

-

This database can be used as a temporary storage for wallets that are not kept permanently on -a device, or on platforms that don’t provide a filesystem, like wasm32.

-

Once it’s dropped its content will be lost.

-

If you are looking for a permanent storage solution, you can try with the default key-value -database called [sled]. See the database module documentation for more details.

-

Implementations

Create a new empty database

-

Trait Implementations

Container for the operations

-

Create a new batch container

-

Consume and apply a batch of operations

-

Store a script_pubkey along with its keychain and child number.

-

Store a LocalUtxo

-

Store a raw transaction

-

Store the metadata of a transaction

-

Store the last derivation index for a given keychain.

-

Store the sync time

-

Delete a script_pubkey given the keychain and its child number.

-

Delete the data related to a specific script_pubkey, meaning the keychain and the child -number. Read more

-

Delete a LocalUtxo given its [OutPoint]

-

Delete a raw transaction given its [Txid]

-

Delete the metadata of a transaction and optionally the raw transaction itself

-

Delete the last derivation index for a keychain.

-

Reset the sync time to None Read more

-

Type that contains the configuration

-

Create a new instance given a configuration

-

Read and checks the descriptor checksum for a given keychain. Read more

-

Return the list of script_pubkeys

-

Return the list of LocalUtxos

-

Return the list of raw transactions

-

Return the list of transactions metadata

-

Fetch a script_pubkey given the child number of a keychain.

-

Fetch the keychain and child number of a given script_pubkey

-

Fetch a LocalUtxo given its [OutPoint]

-

Fetch a raw transaction given its [Txid]

-

Fetch the transaction metadata and optionally also the raw transaction

-

Return the last derivation index for a keychain.

-

Return the sync time, if present

-

Increment the last derivation index for a keychain and return it Read more

-

Force changes to be written to disk

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/database/sidebar-items.js deleted file mode 100644 index 22babbc454..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"mod":[["any","Runtime-checked database types"],["memory","In-memory ephemeral database"]],"struct":[["SqliteDatabase","Sqlite database stored on filesystem"],["SyncTime","Blockchain state at the time of syncing"]],"trait":[["BatchDatabase","Trait for a database that supports batch operations"],["BatchOperations","Trait for operations that can be batched"],["ConfigurableDatabase","Trait for [`Database`] types that can be created given a configuration"],["Database","Trait for reading data from a database"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/sqlite/struct.SqliteDatabase.html b/static/docs-rs/bdk/nightly/latest/bdk/database/sqlite/struct.SqliteDatabase.html deleted file mode 100644 index 803ba38ba6..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/sqlite/struct.SqliteDatabase.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/database/struct.SqliteDatabase.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/struct.SqliteDatabase.html b/static/docs-rs/bdk/nightly/latest/bdk/database/struct.SqliteDatabase.html deleted file mode 100644 index 20e254ac9b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/struct.SqliteDatabase.html +++ /dev/null @@ -1,65 +0,0 @@ -SqliteDatabase in bdk::database - Rust -

Struct bdk::database::SqliteDatabase[][src]

pub struct SqliteDatabase {
-    pub path: String,
-    pub connection: Connection,
-}
Expand description

Sqlite database stored on filesystem

-

This is a permanent storage solution for devices and platforms that provide a filesystem. -crate::database

-

Fields

path: String

Path on the local filesystem to store the sqlite file

-
connection: Connection

A rusqlite connection object to the sqlite database

-

Implementations

Instantiate a new SqliteDatabase instance by creating a connection -to the database stored at path

-

Trait Implementations

Container for the operations

-

Create a new batch container

-

Consume and apply a batch of operations

-

Store a script_pubkey along with its keychain and child number.

-

Store a LocalUtxo

-

Store a raw transaction

-

Store the metadata of a transaction

-

Store the last derivation index for a given keychain.

-

Store the sync time

-

Delete a script_pubkey given the keychain and its child number.

-

Delete the data related to a specific script_pubkey, meaning the keychain and the child -number. Read more

-

Delete a LocalUtxo given its [OutPoint]

-

Delete a raw transaction given its [Txid]

-

Delete the metadata of a transaction and optionally the raw transaction itself

-

Delete the last derivation index for a keychain.

-

Reset the sync time to None Read more

-

Type that contains the configuration

-

Create a new instance given a configuration

-

Read and checks the descriptor checksum for a given keychain. Read more

-

Return the list of script_pubkeys

-

Return the list of LocalUtxos

-

Return the list of raw transactions

-

Return the list of transactions metadata

-

Fetch a script_pubkey given the child number of a keychain.

-

Fetch the keychain and child number of a given script_pubkey

-

Fetch a LocalUtxo given its [OutPoint]

-

Fetch a raw transaction given its [Txid]

-

Fetch the transaction metadata and optionally also the raw transaction

-

Return the last derivation index for a keychain.

-

Return the sync time, if present

-

Increment the last derivation index for a keychain and return it Read more

-

Force changes to be written to disk

-

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/struct.SyncTime.html b/static/docs-rs/bdk/nightly/latest/bdk/database/struct.SyncTime.html deleted file mode 100644 index 8214c2e98a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/struct.SyncTime.html +++ /dev/null @@ -1,32 +0,0 @@ -SyncTime in bdk::database - Rust -

Struct bdk::database::SyncTime[][src]

pub struct SyncTime {
-    pub block_time: BlockTime,
-}
Expand description

Blockchain state at the time of syncing

-

Contains only the block time and height at the moment

-

Fields

block_time: BlockTime

Block timestamp and height at the time of sync

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/trait.BatchDatabase.html b/static/docs-rs/bdk/nightly/latest/bdk/database/trait.BatchDatabase.html deleted file mode 100644 index 1d4c0e748c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/trait.BatchDatabase.html +++ /dev/null @@ -1,13 +0,0 @@ -BatchDatabase in bdk::database - Rust -

Trait bdk::database::BatchDatabase[][src]

pub trait BatchDatabase: Database {
-    type Batch: BatchOperations;
-    fn begin_batch(&self) -> Self::Batch;
-
fn commit_batch(&mut self, batch: Self::Batch) -> Result<(), Error>; -}
Expand description

Trait for a database that supports batch operations

-

This trait defines the methods to start and apply a batch of operations.

-

Associated Types

Container for the operations

-

Required methods

Create a new batch container

-

Consume and apply a batch of operations

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/trait.BatchOperations.html b/static/docs-rs/bdk/nightly/latest/bdk/database/trait.BatchOperations.html deleted file mode 100644 index a0042ab44c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/trait.BatchOperations.html +++ /dev/null @@ -1,36 +0,0 @@ -BatchOperations in bdk::database - Rust -

Trait bdk::database::BatchOperations[][src]

pub trait BatchOperations {
-
Show 13 methods fn set_script_pubkey(
        &mut self,
        script: &Script,
        keychain: KeychainKind,
        child: u32
    ) -> Result<(), Error>; -
fn set_utxo(&mut self, utxo: &LocalUtxo) -> Result<(), Error>; -
fn set_raw_tx(&mut self, transaction: &Transaction) -> Result<(), Error>; -
fn set_tx(&mut self, transaction: &TransactionDetails) -> Result<(), Error>; -
fn set_last_index(
        &mut self,
        keychain: KeychainKind,
        value: u32
    ) -> Result<(), Error>; -
fn set_sync_time(&mut self, sync_time: SyncTime) -> Result<(), Error>; -
fn del_script_pubkey_from_path(
        &mut self,
        keychain: KeychainKind,
        child: u32
    ) -> Result<Option<Script>, Error>; -
fn del_path_from_script_pubkey(
        &mut self,
        script: &Script
    ) -> Result<Option<(KeychainKind, u32)>, Error>; -
fn del_utxo(
        &mut self,
        outpoint: &OutPoint
    ) -> Result<Option<LocalUtxo>, Error>; -
fn del_raw_tx(&mut self, txid: &Txid) -> Result<Option<Transaction>, Error>; -
fn del_tx(
        &mut self,
        txid: &Txid,
        include_raw: bool
    ) -> Result<Option<TransactionDetails>, Error>; -
fn del_last_index(
        &mut self,
        keychain: KeychainKind
    ) -> Result<Option<u32>, Error>; -
fn del_sync_time(&mut self) -> Result<Option<SyncTime>, Error>; -
}
Expand description

Trait for operations that can be batched

-

This trait defines the list of operations that must be implemented on the Database type and -the BatchDatabase::Batch type.

-

Required methods

Store a script_pubkey along with its keychain and child number.

-

Store a LocalUtxo

-

Store a raw transaction

-

Store the metadata of a transaction

-

Store the last derivation index for a given keychain.

-

Store the sync time

-

Delete a script_pubkey given the keychain and its child number.

-

Delete the data related to a specific script_pubkey, meaning the keychain and the child -number.

-

Delete a LocalUtxo given its [OutPoint]

-

Delete a raw transaction given its [Txid]

-

Delete the metadata of a transaction and optionally the raw transaction itself

-

Delete the last derivation index for a keychain.

-

Reset the sync time to None

-

Returns the removed value

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/trait.ConfigurableDatabase.html b/static/docs-rs/bdk/nightly/latest/bdk/database/trait.ConfigurableDatabase.html deleted file mode 100644 index 2ea8d3f23a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/trait.ConfigurableDatabase.html +++ /dev/null @@ -1,10 +0,0 @@ -ConfigurableDatabase in bdk::database - Rust -

Trait bdk::database::ConfigurableDatabase[][src]

pub trait ConfigurableDatabase: Database + Sized {
-    type Config: Debug;
-    fn from_config(config: &Self::Config) -> Result<Self, Error>;
-}
Expand description

Trait for Database types that can be created given a configuration

-

Associated Types

Type that contains the configuration

-

Required methods

Create a new instance given a configuration

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/database/trait.Database.html b/static/docs-rs/bdk/nightly/latest/bdk/database/trait.Database.html deleted file mode 100644 index 992fd3f58c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/database/trait.Database.html +++ /dev/null @@ -1,39 +0,0 @@ -Database in bdk::database - Rust -

Trait bdk::database::Database[][src]

pub trait Database: BatchOperations {
-
Show 14 methods fn check_descriptor_checksum<B: AsRef<[u8]>>(
        &mut self,
        keychain: KeychainKind,
        bytes: B
    ) -> Result<(), Error>; -
fn iter_script_pubkeys(
        &self,
        keychain: Option<KeychainKind>
    ) -> Result<Vec<Script>, Error>; -
fn iter_utxos(&self) -> Result<Vec<LocalUtxo>, Error>; -
fn iter_raw_txs(&self) -> Result<Vec<Transaction>, Error>; -
fn iter_txs(
        &self,
        include_raw: bool
    ) -> Result<Vec<TransactionDetails>, Error>; -
fn get_script_pubkey_from_path(
        &self,
        keychain: KeychainKind,
        child: u32
    ) -> Result<Option<Script>, Error>; -
fn get_path_from_script_pubkey(
        &self,
        script: &Script
    ) -> Result<Option<(KeychainKind, u32)>, Error>; -
fn get_utxo(&self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error>; -
fn get_raw_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error>; -
fn get_tx(
        &self,
        txid: &Txid,
        include_raw: bool
    ) -> Result<Option<TransactionDetails>, Error>; -
fn get_last_index(
        &self,
        keychain: KeychainKind
    ) -> Result<Option<u32>, Error>; -
fn get_sync_time(&self) -> Result<Option<SyncTime>, Error>; -
fn increment_last_index(
        &mut self,
        keychain: KeychainKind
    ) -> Result<u32, Error>; -
fn flush(&mut self) -> Result<(), Error>; -
}
Expand description

Trait for reading data from a database

-

This traits defines the operations that can be used to read data out of a database

-

Required methods

Read and checks the descriptor checksum for a given keychain.

-

Should return Error::ChecksumMismatch if the -checksum doesn’t match. If there’s no checksum in the database, simply store it for the -next time.

-

Return the list of script_pubkeys

-

Return the list of LocalUtxos

-

Return the list of raw transactions

-

Return the list of transactions metadata

-

Fetch a script_pubkey given the child number of a keychain.

-

Fetch the keychain and child number of a given script_pubkey

-

Fetch a LocalUtxo given its [OutPoint]

-

Fetch a raw transaction given its [Txid]

-

Fetch the transaction metadata and optionally also the raw transaction

-

Return the last derivation index for a keychain.

-

Return the sync time, if present

-

Increment the last derivation index for a keychain and return it

-

It should insert and return 0 if not present in the database

-

Force changes to be written to disk

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/fn.get_checksum.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/fn.get_checksum.html deleted file mode 100644 index ccdf013e0a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/fn.get_checksum.html +++ /dev/null @@ -1,5 +0,0 @@ -get_checksum in bdk::descriptor::checksum - Rust -

Function bdk::descriptor::checksum::get_checksum[][src]

pub fn get_checksum(desc: &str) -> Result<String, DescriptorError>
Expand description

Compute the checksum of a descriptor

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/index.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/index.html deleted file mode 100644 index 8f76917d29..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/index.html +++ /dev/null @@ -1,9 +0,0 @@ -bdk::descriptor::checksum - Rust -

Module bdk::descriptor::checksum[][src]

Expand description

Descriptor checksum

-

This module contains a re-implementation of the function used by Bitcoin Core to calculate the -checksum of a descriptor

-

Functions

-

Compute the checksum of a descriptor

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/sidebar-items.js deleted file mode 100644 index e1add094a5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/checksum/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"fn":[["get_checksum","Compute the checksum of a descriptor"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Descriptor.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Descriptor.html deleted file mode 100644 index d0003f40ac..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Descriptor.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/descriptor/enum.Descriptor.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.DescriptorPublicKey.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.DescriptorPublicKey.html deleted file mode 100644 index 05f9388e84..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.DescriptorPublicKey.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/keys/enum.DescriptorPublicKey.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Legacy.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Legacy.html deleted file mode 100644 index fb2dd3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Legacy.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/descriptor/enum.Legacy.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Segwitv0.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Segwitv0.html deleted file mode 100644 index 194aba17ab..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/enum.Segwitv0.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/descriptor/enum.Segwitv0.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/struct.DerivedDescriptorKey.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/struct.DerivedDescriptorKey.html deleted file mode 100644 index 3d9e091385..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/struct.DerivedDescriptorKey.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/descriptor/struct.DerivedDescriptorKey.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/struct.Miniscript.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/struct.Miniscript.html deleted file mode 100644 index ca1ccb5a6e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/struct.Miniscript.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/descriptor/struct.Miniscript.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/trait.ScriptContext.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/trait.ScriptContext.html deleted file mode 100644 index 08af1d1289..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/trait.ScriptContext.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/keys/trait.ScriptContext.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/type.KeyMap.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/type.KeyMap.html deleted file mode 100644 index 2fdaa9d33d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/derived/type.KeyMap.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/keys/type.KeyMap.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html deleted file mode 100644 index aa69a51af2..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html +++ /dev/null @@ -1,152 +0,0 @@ -Descriptor in bdk::descriptor - Rust -

Enum bdk::descriptor::Descriptor[]

pub enum Descriptor<Pk> where
    Pk: MiniscriptKey, 
{ - Bare(Bare<Pk>), - Pkh(Pkh<Pk>), - Wpkh(Wpkh<Pk>), - Sh(Sh<Pk>), - Wsh(Wsh<Pk>), -}
Expand description

Script descriptor

-

Variants

Bare(Bare<Pk>)

Tuple Fields

0: Bare<Pk>

A raw scriptpubkey (including pay-to-pubkey) under Legacy context

-

Pkh(Pkh<Pk>)

Tuple Fields

0: Pkh<Pk>

Pay-to-PubKey-Hash

-

Wpkh(Wpkh<Pk>)

Tuple Fields

0: Wpkh<Pk>

Pay-to-Witness-PubKey-Hash

-

Sh(Sh<Pk>)

Tuple Fields

0: Sh<Pk>

Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)

-

Wsh(Wsh<Pk>)

Tuple Fields

0: Wsh<Pk>

Pay-to-Witness-ScriptHash with Segwitv0 context

-

Implementations

Create a new pk descriptor

-

Create a new PkH descriptor

-

Create a new Wpkh descriptor -Will return Err if uncompressed key is used

-

Create a new sh wrapped wpkh from Pk. -Errors when uncompressed keys are supplied

-

Create a new sh for a given redeem script -Errors when miniscript exceeds resource limits under p2sh context -or does not type check at the top level

-

Create a new wsh descriptor from witness script -Errors when miniscript exceeds resource limits under p2sh context -or does not type check at the top level

-

Create a new sh wrapped wsh descriptor with witness script -Errors when miniscript exceeds resource limits under wsh context -or does not type check at the top level

-

Create a new bare descriptor from witness script -Errors when miniscript exceeds resource limits under bare context -or does not type check at the top level

-

Create a new sh sortedmulti descriptor with threshold k -and Vec of pks. -Errors when miniscript exceeds resource limits under p2sh context

-

Create a new sh wrapped wsh sortedmulti descriptor from threshold -k and Vec of pks -Errors when miniscript exceeds resource limits under segwit context

-

Create a new wsh sorted multi descriptor -Errors when miniscript exceeds resource limits under p2sh context

-

Get the [DescriptorType] of Descriptor

-

Whether or not the descriptor has any wildcards

-

Derives all wildcard keys in the descriptor using the supplied index

-

Panics if given an index ≥ 2^31

-

Parse a descriptor that may contain secret keys

-

Internally turns every secret key found into the corresponding public key and then returns a -a descriptor that only contains public keys and a map to lookup the secret key given a public key.

-

Serialize a descriptor to string with its secret keys

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Whether the descriptor is safe -Checks whether all the spend paths in the descriptor are possible -on the bitcoin network under the current standardness and consensus rules -Also checks whether the descriptor requires signauture on all spend paths -And whether the script is malleable. -In general, all the guarantees of miniscript hold only for safe scripts. -All the analysis guarantees of miniscript only hold safe scripts. -The signer may not be able to find satisfactions even if one exists

-

Computes the Bitcoin address of the descriptor, if one exists

-

Computes the scriptpubkey of the descriptor

-

Computes the scriptSig that will be in place for an unsigned -input spending an output with this descriptor. For pre-segwit -descriptors, which use the scriptSig for signatures, this -returns the empty script.

-

This is used in Segwit transactions to produce an unsigned -transaction whose txid will not change during signing (since -only the witness data will change).

-

Computes the “witness script” of the descriptor, i.e. the underlying -script before any hashing is done. For Bare, Pkh and Wpkh this -is the scriptPubkey; for ShWpkh and Sh this is the redeemScript; -for the others it is the witness script.

-

Returns satisfying witness and scriptSig to spend an -output controlled by the given descriptor if it possible to -construct one using the satisfier S.

-

Computes an upper bound on the weight of a satisfying witness to the -transaction. Assumes all signatures are 73 bytes, including push opcode -and sighash suffix. Includes the weight of the VarInts encoding the -scriptSig and witness stack length.

-

Get the scriptCode of a transaction output.

-

The scriptCode is the Script of the previous transaction output being serialized in the -sighash when evaluating a CHECKSIG & co. OP code.

-

Attempts to produce a satisfying witness and scriptSig to spend an -output controlled by the given descriptor; add the data to a given -TxIn output. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Formats the value using the given formatter. Read more

-

Extract the spending policy

-

Run a predicate on every key in the descriptor, returning whether -the predicate returned true for every key Read more

-

Run a predicate on every key in the descriptor, returning whether -the predicate returned true for any key Read more

-

The associated error which can be returned from parsing.

-

Parses a string s to return a value of this type. Read more

-

Parse an expression tree into a descriptor

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Convert the object into an abstract policy

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Convert a descriptor using abstract keys to one using specific keys -This will panic if translatefpk returns an uncompressed key when -converting to a Segwit descriptor. To prevent this panic, ensure -translatefpk returns an error in this case instead.

-

The associated output type. This must be Self

-

Calls translate_pk with conversion functions that cannot fail

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

Converts the given value to a String. Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Legacy.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Legacy.html deleted file mode 100644 index 42eace7398..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Legacy.html +++ /dev/null @@ -1,94 +0,0 @@ -Legacy in bdk::descriptor - Rust -

Enum bdk::descriptor::Legacy[]

pub enum Legacy {}
Expand description

Legacy ScriptContext -To be used as P2SH scripts -For creation of Bare scriptpubkeys, construct the Miniscript -under Bare ScriptContext

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Depending on ScriptContext, fragments can be malleable. For Example, -under Legacy context, PkH is malleable because it is possible to -estimate the cost of satisfaction because of compressed keys -This is currently only used in compiler code for removing malleable -compilations. -This does NOT recursively check if the children of the fragment are -valid or not. Since the compilation proceeds in a leaf to root fashion, -a recursive check is unnecessary. Read more

-

Check whether the given satisfaction is valid under the ScriptContext -For example, segwit satisfactions may fail if the witness len is more -3600 or number of stack elements are more than 100. Read more

-

Depending on script Context, some of the Terminals might not -be valid under the current consensus rules. -Or some of the script resource limits may have been exceeded. -These miniscripts would never be accepted by the Bitcoin network and hence -it is safe to discard them -For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey -uncompressed public keys are non-standard and thus invalid. -In LegacyP2SH context, scripts above 520 bytes are invalid. -Post Tapscript upgrade, this would have to consider other nodes. -This does NOT recursively check the miniscript fragments. Read more

-

Consensus rules at the Miniscript satisfaction time. -It is possible that some paths of miniscript may exceed resource limits -and our current satisfier and lifting analysis would not work correctly. -For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes. Read more

-

Policy rules at the Miniscript satisfaction time. -It is possible that some paths of miniscript may exceed resource limits -and our current satisfier and lifting analysis would not work correctly. -For example, satisfaction path in Legacy context scriptSig more -than 1650 bytes Read more

-

Depending on script context, the size of a satifaction witness may slightly differ.

-

Depending on script Context, some of the script resource limits -may have been exceeded under the current bitcoin core policy rules -These miniscripts would never be accepted by the Bitcoin network and hence -it is safe to discard them. (unless explicitly disabled by non-standard flag) -For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey -scripts over 3600 bytes are invalid. -Post Tapscript upgrade, this would have to consider other nodes. -This does NOT recursively check the miniscript fragments. Read more

-

Check the consensus + policy(if not disabled) rules that are not based -satisfaction Read more

-

Check the consensus + policy(if not disabled) rules including the -ones for satisfaction Read more

-

Check whether the top-level is type B

-

Other top level checks that are context specific

-

Check top level consensus rules.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the ScriptContext as a ScriptContextEnum

-

Returns whether the script context is Legacy

-

Returns whether the script context is Segwitv0

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Segwitv0.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Segwitv0.html deleted file mode 100644 index 5b258b41ab..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Segwitv0.html +++ /dev/null @@ -1,91 +0,0 @@ -Segwitv0 in bdk::descriptor - Rust -

Enum bdk::descriptor::Segwitv0[]

pub enum Segwitv0 {}
Expand description

Segwitv0 ScriptContext

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Depending on ScriptContext, fragments can be malleable. For Example, -under Legacy context, PkH is malleable because it is possible to -estimate the cost of satisfaction because of compressed keys -This is currently only used in compiler code for removing malleable -compilations. -This does NOT recursively check if the children of the fragment are -valid or not. Since the compilation proceeds in a leaf to root fashion, -a recursive check is unnecessary. Read more

-

Check whether the given satisfaction is valid under the ScriptContext -For example, segwit satisfactions may fail if the witness len is more -3600 or number of stack elements are more than 100. Read more

-

Depending on script Context, some of the Terminals might not -be valid under the current consensus rules. -Or some of the script resource limits may have been exceeded. -These miniscripts would never be accepted by the Bitcoin network and hence -it is safe to discard them -For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey -uncompressed public keys are non-standard and thus invalid. -In LegacyP2SH context, scripts above 520 bytes are invalid. -Post Tapscript upgrade, this would have to consider other nodes. -This does NOT recursively check the miniscript fragments. Read more

-

Consensus rules at the Miniscript satisfaction time. -It is possible that some paths of miniscript may exceed resource limits -and our current satisfier and lifting analysis would not work correctly. -For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes. Read more

-

Depending on script Context, some of the script resource limits -may have been exceeded under the current bitcoin core policy rules -These miniscripts would never be accepted by the Bitcoin network and hence -it is safe to discard them. (unless explicitly disabled by non-standard flag) -For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey -scripts over 3600 bytes are invalid. -Post Tapscript upgrade, this would have to consider other nodes. -This does NOT recursively check the miniscript fragments. Read more

-

Policy rules at the Miniscript satisfaction time. -It is possible that some paths of miniscript may exceed resource limits -and our current satisfier and lifting analysis would not work correctly. -For example, satisfaction path in Legacy context scriptSig more -than 1650 bytes Read more

-

Depending on script context, the size of a satifaction witness may slightly differ.

-

Check the consensus + policy(if not disabled) rules that are not based -satisfaction Read more

-

Check the consensus + policy(if not disabled) rules including the -ones for satisfaction Read more

-

Check whether the top-level is type B

-

Other top level checks that are context specific

-

Check top level consensus rules.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the ScriptContext as a ScriptContextEnum

-

Returns whether the script context is Legacy

-

Returns whether the script context is Segwitv0

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/enum.Error.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/enum.Error.html deleted file mode 100644 index 4c001f8828..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/enum.Error.html +++ /dev/null @@ -1,60 +0,0 @@ -Error in bdk::descriptor::error - Rust -

Enum bdk::descriptor::error::Error[][src]

pub enum Error {
-    InvalidHdKeyPath,
-    InvalidDescriptorChecksum,
-    HardenedDerivationXpub,
-    DuplicatedKeys,
-    Key(KeyError),
-    Policy(PolicyError),
-    InvalidDescriptorCharacter(char),
-    Bip32(Error),
-    Base58(Error),
-    Pk(Error),
-    Miniscript(Error),
-    Hex(Error),
-}
Expand description

Errors related to the parsing and usage of descriptors

-

Variants

InvalidHdKeyPath

Invalid HD Key path, such as having a wildcard but a length != 1

-

InvalidDescriptorChecksum

The provided descriptor doesn’t match its checksum

-

HardenedDerivationXpub

The descriptor contains hardened derivation steps on public extended keys

-

DuplicatedKeys

The descriptor contains multiple keys with the same BIP32 fingerprint

-

Key(KeyError)

Tuple Fields

Error thrown while working with keys

-

Policy(PolicyError)

Tuple Fields

Error while extracting and manipulating policies

-

InvalidDescriptorCharacter(char)

Tuple Fields

0: char

Invalid character found in the descriptor checksum

-

Bip32(Error)

Tuple Fields

0: Error

BIP32 error

-

Base58(Error)

Tuple Fields

0: Error

Error during base58 decoding

-

Pk(Error)

Tuple Fields

0: Error

Key-related error

-

Miniscript(Error)

Tuple Fields

0: Error

Miniscript error

-

Hex(Error)

Tuple Fields

0: Error

Hex decoding error

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/index.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/index.html deleted file mode 100644 index 57d693bf9b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/index.html +++ /dev/null @@ -1,7 +0,0 @@ -bdk::descriptor::error - Rust -

Module bdk::descriptor::error[][src]

Expand description

Descriptor errors

-

Enums

-

Errors related to the parsing and usage of descriptors

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/sidebar-items.js deleted file mode 100644 index 1ad99d4faf..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/error/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["Error","Errors related to the parsing and usage of descriptors"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/index.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/index.html deleted file mode 100644 index 496ecb82fd..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/index.html +++ /dev/null @@ -1,36 +0,0 @@ -bdk::descriptor - Rust -

Module bdk::descriptor[][src]

Expand description

Descriptors

-

This module contains generic utilities to work with descriptors, plus some re-exported types -from [miniscript].

-

Re-exports

-
pub use self::checksum::get_checksum;
pub use self::error::Error as DescriptorError;
pub use self::policy::Policy;

Modules

-

Descriptor checksum

-

Descriptor errors

-

Descriptor policy

-

Descriptor templates

-

Structs

-

Extended DescriptorPublicKey that has been derived

-

Top-level script AST type

-

Enums

-

Script descriptor

-

Legacy ScriptContext -To be used as P2SH scripts -For creation of Bare scriptpubkeys, construct the Miniscript -under Bare ScriptContext

-

Segwitv0 ScriptContext

-

Traits

-

Trait implemented on Descriptors to add a method to extract the spending policy

-

Trait for types which can be converted into an ExtendedDescriptor and a KeyMap usable by a wallet in a specific [Network]

-

The ScriptContext for Miniscript. Additional type information associated with -miniscript that is used for carrying out checks that dependent on the -context under which the script is used. -For example, disallowing uncompressed keys in Segwit context

-

Type Definitions

-

Alias for a Descriptor that contains extended derived keys

-

Alias for a Descriptor that can contain extended keys using DescriptorPublicKey

-

Alias for the type of maps that represent derivation paths in a psbt::Input or -psbt::Output

-

Alias type for a map of public key to secret key

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.BuildSatisfaction.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.BuildSatisfaction.html deleted file mode 100644 index bce9e1008e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.BuildSatisfaction.html +++ /dev/null @@ -1,41 +0,0 @@ -BuildSatisfaction in bdk::descriptor::policy - Rust -

Enum bdk::descriptor::policy::BuildSatisfaction[][src]

pub enum BuildSatisfaction<'a> {
-    None,
-    Psbt(&'a Psbt),
-    PsbtTimelocks {
-        psbt: &'a Psbt,
-        current_height: u32,
-        input_max_height: u32,
-    },
-}
Expand description

Options to build the satisfaction field in the policy

-

Variants

None

Don’t generate satisfaction field

-

Psbt(&'a Psbt)

Tuple Fields

0: &'a Psbt

Analyze the given PSBT to check for existing signatures

-

PsbtTimelocks

Fields

psbt: &'a Psbt

Given PSBT

-
current_height: u32

Current blockchain height

-
input_max_height: u32

The highest confirmation height between the inputs -CSV should consider different inputs, but we consider the worst condition for the tx as whole

-

Like Psbt variant and also check for expired timelocks

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PolicyError.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PolicyError.html deleted file mode 100644 index c71c1f3d10..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PolicyError.html +++ /dev/null @@ -1,45 +0,0 @@ -PolicyError in bdk::descriptor::policy - Rust -

Enum bdk::descriptor::policy::PolicyError[][src]

pub enum PolicyError {
-    NotEnoughItemsSelected(String),
-    IndexOutOfRange(usize),
-    AddOnLeaf,
-    AddOnPartialComplete,
-    MixedTimelockUnits,
-    IncompatibleConditions,
-}
Expand description

Errors that can happen while extracting and manipulating policies

-

Variants

NotEnoughItemsSelected(String)

Tuple Fields

0: String

Not enough items are selected to satisfy a SatisfiableItem::Thresh or a SatisfiableItem::Multisig

-

IndexOutOfRange(usize)

Tuple Fields

0: usize

Index out of range for an item to satisfy a SatisfiableItem::Thresh or a SatisfiableItem::Multisig

-

AddOnLeaf

Can not add to an item that is Satisfaction::None or Satisfaction::Complete

-

AddOnPartialComplete

Can not add to an item that is Satisfaction::PartialComplete

-

MixedTimelockUnits

Can not merge CSV or timelock values unless both are less than or both are equal or greater than 500_000_000

-

IncompatibleConditions

Incompatible conditions (not currently used)

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Performs the conversion.

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.Satisfaction.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.Satisfaction.html deleted file mode 100644 index 94e7d013c1..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.Satisfaction.html +++ /dev/null @@ -1,63 +0,0 @@ -Satisfaction in bdk::descriptor::policy - Rust -

Enum bdk::descriptor::policy::Satisfaction[][src]

pub enum Satisfaction {
-    Partial {
-        n: usize,
-        m: usize,
-        items: Vec<usize>,
-        sorted: Option<bool>,
-        conditions: ConditionMap,
-    },
-    PartialComplete {
-        n: usize,
-        m: usize,
-        items: Vec<usize>,
-        sorted: Option<bool>,
-        conditions: FoldedConditionMap,
-    },
-    Complete {
-        condition: Condition,
-    },
-    None,
-}
Expand description

Represent if and how much a policy item is satisfied by the wallet’s descriptor

-

Variants

Partial

Fields

n: usize

Total number of items

-
m: usize

Threshold

-
items: Vec<usize>

The items that can be satisfied by the descriptor or are satisfied in the PSBT

-
sorted: Option<bool>

Whether the items are sorted in lexicographic order (used by sortedmulti)

-
conditions: ConditionMap

Extra conditions that also need to be satisfied

-

Only a partial satisfaction of some kind of threshold policy

-

PartialComplete

Fields

n: usize

Total number of items

-
m: usize

Threshold

-
items: Vec<usize>

The items that can be satisfied by the descriptor

-
sorted: Option<bool>

Whether the items are sorted in lexicographic order (used by sortedmulti)

-
conditions: FoldedConditionMap

Extra conditions that also need to be satisfied

-

Can reach the threshold of some kind of threshold policy

-

Complete

Fields

condition: Condition

Extra conditions that also need to be satisfied

-

Can satisfy the policy item

-

None

Cannot satisfy or contribute to the policy item

-

Implementations

Returns whether the Satisfaction is a leaf item

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.SatisfiableItem.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.SatisfiableItem.html deleted file mode 100644 index 5b9400ca13..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.SatisfiableItem.html +++ /dev/null @@ -1,79 +0,0 @@ -SatisfiableItem in bdk::descriptor::policy - Rust -

Enum bdk::descriptor::policy::SatisfiableItem[][src]

pub enum SatisfiableItem {
-    Signature(PkOrF),
-    SignatureKey(PkOrF),
-    Sha256Preimage {
-        hash: Hash,
-    },
-    Hash256Preimage {
-        hash: Hash,
-    },
-    Ripemd160Preimage {
-        hash: Hash,
-    },
-    Hash160Preimage {
-        hash: Hash,
-    },
-    AbsoluteTimelock {
-        value: u32,
-    },
-    RelativeTimelock {
-        value: u32,
-    },
-    Multisig {
-        keys: Vec<PkOrF>,
-        threshold: usize,
-    },
-    Thresh {
-        items: Vec<Policy>,
-        threshold: usize,
-    },
-}
Expand description

An item that needs to be satisfied

-

Variants

Signature(PkOrF)

Tuple Fields

0: PkOrF

Signature for a raw public key

-

SignatureKey(PkOrF)

Tuple Fields

0: PkOrF

Signature for an extended key fingerprint

-

Sha256Preimage

Fields

hash: Hash

The digest value

-

SHA256 preimage hash

-

Hash256Preimage

Fields

hash: Hash

The digest value

-

Double SHA256 preimage hash

-

Ripemd160Preimage

Fields

hash: Hash

The digest value

-

RIPEMD160 preimage hash

-

Hash160Preimage

Fields

hash: Hash

The digest value

-

SHA256 then RIPEMD160 preimage hash

-

AbsoluteTimelock

Fields

value: u32

The timestamp value

-

Absolute timeclock timestamp

-

RelativeTimelock

Fields

value: u32

The locktime value

-

Relative timelock locktime

-

Multisig

Fields

keys: Vec<PkOrF>

The raw public key or extended key fingerprint

-
threshold: usize

The required threshold count

-

Multi-signature public keys with threshold count

-

Thresh

Fields

items: Vec<Policy>

The policy items

-
threshold: usize

The required threshold count

-

Threshold items with threshold count

-

Implementations

Returns whether the SatisfiableItem is a leaf item

-

Returns a unique id for the SatisfiableItem

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/index.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/index.html deleted file mode 100644 index 7dd45df829..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/index.html +++ /dev/null @@ -1,31 +0,0 @@ -bdk::descriptor::policy - Rust -

Module bdk::descriptor::policy[][src]

Expand description

Descriptor policy

-

This module implements the logic to extract and represent the spending policies of a descriptor -in a more human-readable format.

-

This is an EXPERIMENTAL feature, API and other major changes are expected.

-

Example

-
use bdk::descriptor::policy::BuildSatisfaction;
-let secp = Secp256k1::new();
-let desc = "wsh(and_v(v:pk(cV3oCth6zxZ1UVsHLnGothsWNsaoxRhC6aeNi5VbSdFpwUkgkEci),or_d(pk(cVMTy7uebJgvFaSBwcgvwk8qn8xSLc97dKow4MBetjrrahZoimm2),older(12960))))";
-
-let (extended_desc, key_map) = ExtendedDescriptor::parse_descriptor(&secp, desc)?;
-println!("{:?}", extended_desc);
-
-let signers = Arc::new(key_map.into());
-let policy = extended_desc.extract_policy(&signers, BuildSatisfaction::None, &secp)?;
-println!("policy: {}", serde_json::to_string(&policy)?);
-

Structs

-

An extra condition that must be satisfied but that is out of control of the user

-

Raw public key or extended key fingerprint

-

Descriptor spending policy

-

Enums

-

Options to build the satisfaction field in the policy

-

Errors that can happen while extracting and manipulating policies

-

Represent if and how much a policy item is satisfied by the wallet’s descriptor

-

An item that needs to be satisfied

-

Type Definitions

-

Type for a map of sets of Condition items keyed by each set’s index

-

Type for a map of folded sets of Condition items keyed by a vector of the combined set’s indexes

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/sidebar-items.js deleted file mode 100644 index 40fd0e48aa..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["BuildSatisfaction","Options to build the satisfaction field in the policy"],["PolicyError","Errors that can happen while extracting and manipulating policies"],["Satisfaction","Represent if and how much a policy item is satisfied by the wallet’s descriptor"],["SatisfiableItem","An item that needs to be satisfied"]],"struct":[["Condition","An extra condition that must be satisfied but that is out of control of the user"],["PkOrF","Raw public key or extended key fingerprint"],["Policy","Descriptor spending policy"]],"type":[["ConditionMap","Type for a map of sets of [`Condition`] items keyed by each set’s index"],["FoldedConditionMap","Type for a map of folded sets of [`Condition`] items keyed by a vector of the combined set’s indexes"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Condition.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Condition.html deleted file mode 100644 index 0203262270..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Condition.html +++ /dev/null @@ -1,50 +0,0 @@ -Condition in bdk::descriptor::policy - Rust -

Struct bdk::descriptor::policy::Condition[][src]

pub struct Condition {
-    pub csv: Option<u32>,
-    pub timelock: Option<u32>,
-}
Expand description

An extra condition that must be satisfied but that is out of control of the user

-

Fields

csv: Option<u32>

Optional CheckSequenceVerify condition

-
timelock: Option<u32>

Optional timelock condition

-

Implementations

Returns true if there are no extra conditions to verify

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.PkOrF.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.PkOrF.html deleted file mode 100644 index 965b0797f2..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.PkOrF.html +++ /dev/null @@ -1,28 +0,0 @@ -PkOrF in bdk::descriptor::policy - Rust -

Struct bdk::descriptor::policy::PkOrF[][src]

pub struct PkOrF { /* fields omitted */ }
Expand description

Raw public key or extended key fingerprint

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Policy.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Policy.html deleted file mode 100644 index ead69e3974..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Policy.html +++ /dev/null @@ -1,44 +0,0 @@ -Policy in bdk::descriptor::policy - Rust -

Struct bdk::descriptor::policy::Policy[][src]

pub struct Policy {
-    pub id: String,
-    pub item: SatisfiableItem,
-    pub satisfaction: Satisfaction,
-    pub contribution: Satisfaction,
-}
Expand description

Descriptor spending policy

-

Fields

id: String

Identifier for this policy node

-
item: SatisfiableItem

Type of this policy node

-
satisfaction: Satisfaction

How much a given PSBT already satisfies this policy node in terms of signatures

-
contribution: Satisfaction

How the wallet’s descriptor can satisfy this policy node

-

Implementations

Return whether or not a specific path in the policy tree is required to unambiguously -create a transaction

-

What this means is that for some spending policies the user should select which paths in -the tree it intends to satisfy while signing, because the transaction must be created differently based -on that.

-

Return the conditions that are set by the spending policy for a given path in the -policy tree

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.ConditionMap.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.ConditionMap.html deleted file mode 100644 index 5b78416e91..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.ConditionMap.html +++ /dev/null @@ -1,5 +0,0 @@ -ConditionMap in bdk::descriptor::policy - Rust -

Type Definition bdk::descriptor::policy::ConditionMap[][src]

pub type ConditionMap = BTreeMap<usize, HashSet<Condition>>;
Expand description

Type for a map of sets of Condition items keyed by each set’s index

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.FoldedConditionMap.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.FoldedConditionMap.html deleted file mode 100644 index c266939af3..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.FoldedConditionMap.html +++ /dev/null @@ -1,5 +0,0 @@ -FoldedConditionMap in bdk::descriptor::policy - Rust -

Type Definition bdk::descriptor::policy::FoldedConditionMap[][src]

pub type FoldedConditionMap = BTreeMap<Vec<usize>, HashSet<Condition>>;
Expand description

Type for a map of folded sets of Condition items keyed by a vector of the combined set’s indexes

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/sidebar-items.js deleted file mode 100644 index e324d2a835..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["Descriptor","Script descriptor"],["Legacy","Legacy ScriptContext To be used as P2SH scripts For creation of Bare scriptpubkeys, construct the Miniscript under `Bare` ScriptContext"],["Segwitv0","Segwitv0 ScriptContext"]],"mod":[["checksum","Descriptor checksum"],["error","Descriptor errors"],["policy","Descriptor policy"],["template","Descriptor templates"]],"struct":[["DerivedDescriptorKey","Extended [`DescriptorPublicKey`] that has been derived"],["Miniscript","Top-level script AST type"]],"trait":[["ExtractPolicy","Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]"],["IntoWalletDescriptor","Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]"],["ScriptContext","The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"]],"type":[["DerivedDescriptor","Alias for a [`Descriptor`] that contains extended derived keys"],["ExtendedDescriptor","Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]"],["HdKeyPaths","Alias for the type of maps that represent derivation paths in a `psbt::Input` or `psbt::Output`"],["KeyMap","Alias type for a map of public key to secret key"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.DerivedDescriptorKey.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.DerivedDescriptorKey.html deleted file mode 100644 index a80ff3acc9..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.DerivedDescriptorKey.html +++ /dev/null @@ -1,70 +0,0 @@ -DerivedDescriptorKey in bdk::descriptor - Rust -

Struct bdk::descriptor::DerivedDescriptorKey[][src]

pub struct DerivedDescriptorKey<'s>(_, _);
Expand description

Extended DescriptorPublicKey that has been derived

-

Derived keys are guaranteed to never contain wildcards of any kind

-

Implementations

Construct a new derived key

-

Panics if the key is wildcard

-

Methods from Deref<Target = DescriptorPublicKey>

The fingerprint of the master key associated with this key

-

Full path, from the master key

-

For wildcard keys this will return the path up to the wildcard, so you -can get full paths by appending one additional derivation step, according -to the wildcard type (hardened or normal)

-

Whether or not the key has a wildcards

-

Computes the public key corresponding to this descriptor key

-

Will return an error if the descriptor key has any hardened -derivation steps in its path, or if the key has any wildcards.

-

To ensure there are no wildcards, call .derive(0) or similar; -to avoid hardened derivation steps, start from a DescriptorSecretKey -and call as_public, or call TranslatePk2::translate_pk2 with -some function which has access to secret key data.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

The resulting type after dereferencing.

-

Dereferences the value.

-

Formats the value using the given formatter. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

The associated Hash type with the publicKey

-

Converts an object to PublicHash

-

Check if the publicKey is uncompressed. The default -implementation returns false Read more

-

Computes the size of a public key when serialized in a script, -including the length bytes Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Converts an object to a public key

-

Converts a hashed version of the public key to a hash160 hash. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.Miniscript.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.Miniscript.html deleted file mode 100644 index 0fa0787b15..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.Miniscript.html +++ /dev/null @@ -1,214 +0,0 @@ -Miniscript in bdk::descriptor - Rust -

Struct bdk::descriptor::Miniscript[]

pub struct Miniscript<Pk, Ctx> where
    Pk: MiniscriptKey,
    Ctx: ScriptContext
{ - pub node: Terminal<Pk, Ctx>, - pub ty: Type, - pub ext: ExtData, - // some fields omitted -}
Expand description

Top-level script AST type

-

Fields

node: Terminal<Pk, Ctx>

A node in the Abstract Syntax Tree(

-
ty: Type

The correctness and malleability type information for the AST node

-
ext: ExtData

Additional information helpful for extra analysis.

-

Implementations

Whether all spend paths of miniscript require a signature

-

Whether the miniscript is malleable

-

Whether the miniscript can exceed the resource limits(Opcodes, Stack limit etc)

-

Whether the miniscript contains a combination of timelocks

-

Whether the miniscript has repeated Pk or Pkh

-

Check whether the underlying Miniscript is safe under the current context -Lifting these polices would create a semantic representation that does -not represent the underlying semantics when miniscript is spent. -Signing logic may not find satisfaction even if one exists.

-

For most cases, users should be dealing with safe scripts. -Use this function to check whether the guarantees of library hold. -Most functions of the library like would still -work, but results cannot be relied upon

-

Iterator-related extensions for Miniscript

-

Creates a new [Iter] iterator that will iterate over all Miniscript items within -AST by traversing its branches. For the specific algorithm please see -[Iter::next] function.

-

Creates a new [PkIter] iterator that will iterate over all plain public keys (and not -key hash values) present in Miniscript items within AST by traversing all its branches. -For the specific algorithm please see [PkIter::next] function.

-

Creates a new [PkhIter] iterator that will iterate over all public keys hashes (and not -plain public keys) present in Miniscript items within AST by traversing all its branches. -For the specific algorithm please see [PkhIter::next] function.

-

Creates a new [PkPkhIter] iterator that will iterate over all plain public keys and -key hash values present in Miniscript items within AST by traversing all its branches. -For the specific algorithm please see [PkPkhIter::next] function.

-

Enumerates all child nodes of the current AST node (self) and returns a Vec referencing -them.

-

Returns child node with given index, if any

-

Returns Vec with cloned version of all public keys from the current miniscript item, -if any. Otherwise returns an empty Vec.

-

NB: The function analyzes only single miniscript item and not any of its descendants in AST. -To obtain a list of all public keys within AST use Miniscript::iter_pk() function, for example -miniscript.iter_pubkeys().collect().

-

Returns Vec with hashes of all public keys from the current miniscript item, if any. -Otherwise returns an empty Vec.

-

For each public key the function computes hash; for each hash of the public key the function -returns its cloned copy.

-

NB: The function analyzes only single miniscript item and not any of its descendants in AST. -To obtain a list of all public key hashes within AST use Miniscript::iter_pkh() function, -for example miniscript.iter_pubkey_hashes().collect().

-

Returns Vec of [PkPkh] entries, representing either public keys or public key -hashes, depending on the data from the current miniscript item. If there is no public -keys or hashes, the function returns an empty Vec.

-

NB: The function analyzes only single miniscript item and not any of its descendants in AST. -To obtain a list of all public keys or hashes within AST use Miniscript::iter_pk_pkh() -function, for example miniscript.iter_pubkeys_and_hashes().collect().

-

Returns Option::Some with cloned n’th public key from the current miniscript item, -if any. Otherwise returns Option::None.

-

NB: The function analyzes only single miniscript item and not any of its descendants in AST.

-

Returns Option::Some with hash of n’th public key from the current miniscript item, -if any. Otherwise returns Option::None.

-

For each public key the function computes hash; for each hash of the public key the function -returns it cloned copy.

-

NB: The function analyzes only single miniscript item and not any of its descendants in AST.

-

Returns Option::Some with hash of n’th public key or hash from the current miniscript item, -if any. Otherwise returns Option::None.

-

NB: The function analyzes only single miniscript item and not any of its descendants in AST.

-

Add type information(Type and Extdata) to Miniscript based on -AstElem fragment. Dependent on display and clone because of Error -Display code of type_check.

-

Extracts the AstElem representing the root of the miniscript

-

Get a reference to the inner AstElem representing the root of miniscript

-

Attempt to parse an insane(scripts don’t clear sanity checks) -script into a Miniscript representation. -Use this to parse scripts with repeated pubkeys, timelock mixing, malleable -scripts without sig or scripts that can exceed resource limits. -Some of the analysis guarantees of miniscript are lost when dealing with -insane scripts. In general, in a multi-party setting users should only -accept sane scripts.

-

Attempt to parse a Script into Miniscript representation. -This function will fail parsing for scripts that do not clear -the Miniscript::sanity_check checks. Use Miniscript::parse_insane to -parse such scripts.

-

Encode as a Bitcoin script

-

Size, in bytes of the script-pubkey. If this Miniscript is used outside -of segwit (e.g. in a bare or P2SH descriptor), this quantity should be -multiplied by 4 to compute the weight.

-

In general, it is not recommended to use this function directly, but -to instead call the corresponding function on a Descriptor, which -will handle the segwit/non-segwit technicalities for you.

-

Maximum number of witness elements used to satisfy the Miniscript -fragment, including the witness script itself. Used to estimate -the weight of the VarInt that specifies this number in a serialized -transaction.

-

This function may returns Error when the Miniscript is -impossible to satisfy

-

Maximum size, in bytes, of a satisfying witness. For Segwit outputs -one_cost should be set to 2, since the number 1 requires two -bytes to encode. For non-segwit outputs one_cost should be set to -1, since OP_1 is available in scriptSigs.

-

In general, it is not recommended to use this function directly, but -to instead call the corresponding function on a Descriptor, which -will handle the segwit/non-segwit technicalities for you.

-

All signatures are assumed to be 73 bytes in size, including the -length prefix (segwit) or push opcode (pre-segwit) and sighash -postfix.

-

Attempt to parse an insane(scripts don’t clear sanity checks) -from string into a Miniscript representation. -Use this to parse scripts with repeated pubkeys, timelock mixing, malleable -scripts without sig or scripts that can exceed resource limits. -Some of the analysis guarantees of miniscript are lost when dealing with -insane scripts. In general, in a multi-party setting users should only -accept sane scripts.

-

Attempt to produce non-malleable satisfying witness for the -witness script represented by the parse tree

-

Attempt to produce a malleable satisfying witness for the -witness script represented by the parse tree

-

Lifting corresponds conversion of miniscript into Policy -[policy.semantic.Policy] for human readable or machine analysis. -However, naively lifting miniscripts can result in incorrect -interpretations that don’t correspond underlying semantics when -we try to spend them on bitcoin network. -This can occur if the miniscript contains a

-
    -
  1. Timelock combination
  2. -
  3. Contains a spend that exceeds resource limits
  4. -
-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Formats the value using the given formatter. Read more

-

Extract the spending policy

-

Run a predicate on every key in the descriptor, returning whether -the predicate returned true for every key Read more

-

Run a predicate on every key in the descriptor, returning whether -the predicate returned true for any key Read more

-

Parse a Miniscript from string and perform sanity checks -See Miniscript::from_str_insane to parse scripts from string that -do not clear the Miniscript::sanity_check checks.

-

The associated error which can be returned from parsing.

-

Parses a string s to return a value of this type. Read more

-

Parse an expression tree into a Miniscript. As a general rule, this -should not be called directly; rather go through the descriptor API.

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Convert the object into an abstract policy

-

Ord of Miniscript must depend only on node and not the type information. -The type information and extra_properties can be deterministically determined -by the ast.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

PartialEq of Miniscript must depend only on node and not the type information. -The type information and extra_properties can be deterministically determined -by the ast.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

PartialOrd of Miniscript must depend only on node and not the type information. -The type information and extra_properties can be deterministically determined -by the ast.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Serialize this value into the given Serde serializer. Read more

-

This will panic if translatefpk returns an uncompressed key when -converting to a Segwit descriptor. To prevent this panic, ensure -translatefpk returns an error in this case instead.

-

The associated output type. This must be Self

-

Calls translate_pk with conversion functions that cannot fail

-

Eq of Miniscript must depend only on node and not the type information. -The type information and extra_properties can be deterministically determined -by the ast.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

Converts the given value to a String. Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

Translate a struct from one generic to another where the -translation for Pk is provided by translatefpk Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/index.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/index.html deleted file mode 100644 index 49ed5eff21..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/index.html +++ /dev/null @@ -1,21 +0,0 @@ -bdk::descriptor::template - Rust -

Module bdk::descriptor::template[][src]

Expand description

Descriptor templates

-

This module contains the definition of various common script templates that are ready to be -used. See the documentation of each template for an example.

-

Structs

-

BIP44 template. Expands to pkh(key/44'/0'/0'/{0,1}/*)

-

BIP44 public template. Expands to pkh(key/{0,1}/*)

-

BIP49 template. Expands to sh(wpkh(key/49'/0'/0'/{0,1}/*))

-

BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))

-

BIP84 template. Expands to wpkh(key/84'/0'/0'/{0,1}/*)

-

BIP84 public template. Expands to wpkh(key/{0,1}/*)

-

P2PKH template. Expands to a descriptor pkh(key)

-

P2WPKH template. Expands to a descriptor wpkh(key)

-

P2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))

-

Traits

-

Trait for descriptor templates that can be built into a full descriptor

-

Type Definitions

-

Type alias for the return type of DescriptorTemplate, descriptor! and others

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/sidebar-items.js deleted file mode 100644 index 4ea3e793ef..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"struct":[["Bip44","BIP44 template. Expands to `pkh(key/44'/0'/0'/{0,1}/*)`"],["Bip44Public","BIP44 public template. Expands to `pkh(key/{0,1}/*)`"],["Bip49","BIP49 template. Expands to `sh(wpkh(key/49'/0'/0'/{0,1}/*))`"],["Bip49Public","BIP49 public template. Expands to `sh(wpkh(key/{0,1}/*))`"],["Bip84","BIP84 template. Expands to `wpkh(key/84'/0'/0'/{0,1}/*)`"],["Bip84Public","BIP84 public template. Expands to `wpkh(key/{0,1}/*)`"],["P2Pkh","P2PKH template. Expands to a descriptor `pkh(key)`"],["P2Wpkh","P2WPKH template. Expands to a descriptor `wpkh(key)`"],["P2Wpkh_P2Sh","P2WPKH-P2SH template. Expands to a descriptor `sh(wpkh(key))`"]],"trait":[["DescriptorTemplate","Trait for descriptor templates that can be built into a full descriptor"]],"type":[["DescriptorTemplateOut","Type alias for the return type of [`DescriptorTemplate`], `descriptor!` and others"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44.html deleted file mode 100644 index 38d64a691a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44.html +++ /dev/null @@ -1,37 +0,0 @@ -Bip44 in bdk::descriptor::template - Rust -

Struct bdk::descriptor::template::Bip44[][src]

pub struct Bip44<K: DerivableKey<Legacy>>(pub K, pub KeychainKind);
Expand description

BIP44 template. Expands to pkh(key/44'/0'/0'/{0,1}/*)

-

Since there are hardened derivation steps, this template requires a private derivable key (generally a xprv/tprv).

-

See Bip44Public for a template that can work with a xpub/tpub.

-

Example

-
use bdk::template::Bip44;
-
-let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-let wallet = Wallet::new_offline(
-    Bip44(key.clone(), KeychainKind::External),
-    Some(Bip44(key, KeychainKind::Internal)),
-    Network::Testnet,
-    MemoryDatabase::default()
-)?;
-
-assert_eq!(wallet.get_address(New)?.to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR");
-assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "pkh([c55b303f/44'/0'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#xgaaevjx");
-

Tuple Fields

0: K1: KeychainKind

Trait Implementations

Build the complete descriptor

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Convert to wallet descriptor

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44Public.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44Public.html deleted file mode 100644 index 4b43c5095c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44Public.html +++ /dev/null @@ -1,40 +0,0 @@ -Bip44Public in bdk::descriptor::template - Rust -

Struct bdk::descriptor::template::Bip44Public[][src]

pub struct Bip44Public<K: DerivableKey<Legacy>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP44 public template. Expands to pkh(key/{0,1}/*)

-

This assumes that the key used has already been derived with m/44'/0'/0'.

-

This template requires the parent fingerprint to populate correctly the metadata of PSBTs.

-

See Bip44 for a template that does the full derivation, but requires private data -for the key.

-

Example

-
use bdk::template::Bip44Public;
-
-let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
-let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
-let wallet = Wallet::new_offline(
-    Bip44Public(key.clone(), fingerprint, KeychainKind::External),
-    Some(Bip44Public(key, fingerprint, KeychainKind::Internal)),
-    Network::Testnet,
-    MemoryDatabase::default()
-)?;
-
-assert_eq!(wallet.get_address(New)?.to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR");
-assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "pkh([c55b303f/44'/0'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#xgaaevjx");
-

Tuple Fields

0: K1: Fingerprint2: KeychainKind

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Convert to wallet descriptor

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49.html deleted file mode 100644 index ef5a5781d6..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49.html +++ /dev/null @@ -1,37 +0,0 @@ -Bip49 in bdk::descriptor::template - Rust -

Struct bdk::descriptor::template::Bip49[][src]

pub struct Bip49<K: DerivableKey<Segwitv0>>(pub K, pub KeychainKind);
Expand description

BIP49 template. Expands to sh(wpkh(key/49'/0'/0'/{0,1}/*))

-

Since there are hardened derivation steps, this template requires a private derivable key (generally a xprv/tprv).

-

See Bip49Public for a template that can work with a xpub/tpub.

-

Example

-
use bdk::template::Bip49;
-
-let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-let wallet = Wallet::new_offline(
-    Bip49(key.clone(), KeychainKind::External),
-    Some(Bip49(key, KeychainKind::Internal)),
-    Network::Testnet,
-    MemoryDatabase::default()
-)?;
-
-assert_eq!(wallet.get_address(New)?.to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt");
-assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "sh(wpkh([c55b303f/49\'/0\'/0\']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#gsmdv4xr");
-

Tuple Fields

0: K1: KeychainKind

Trait Implementations

Build the complete descriptor

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Convert to wallet descriptor

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49Public.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49Public.html deleted file mode 100644 index 7dd3d298f0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49Public.html +++ /dev/null @@ -1,40 +0,0 @@ -Bip49Public in bdk::descriptor::template - Rust -

Struct bdk::descriptor::template::Bip49Public[][src]

pub struct Bip49Public<K: DerivableKey<Segwitv0>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))

-

This assumes that the key used has already been derived with m/49'/0'/0'.

-

This template requires the parent fingerprint to populate correctly the metadata of PSBTs.

-

See Bip49 for a template that does the full derivation, but requires private data -for the key.

-

Example

-
use bdk::template::Bip49Public;
-
-let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
-let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
-let wallet = Wallet::new_offline(
-    Bip49Public(key.clone(), fingerprint, KeychainKind::External),
-    Some(Bip49Public(key, fingerprint, KeychainKind::Internal)),
-    Network::Testnet,
-    MemoryDatabase::default()
-)?;
-
-assert_eq!(wallet.get_address(New)?.to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt");
-assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "sh(wpkh([c55b303f/49\'/0\'/0\']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#gsmdv4xr");
-

Tuple Fields

0: K1: Fingerprint2: KeychainKind

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Convert to wallet descriptor

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84.html deleted file mode 100644 index 9c3c4ebf7d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84.html +++ /dev/null @@ -1,37 +0,0 @@ -Bip84 in bdk::descriptor::template - Rust -

Struct bdk::descriptor::template::Bip84[][src]

pub struct Bip84<K: DerivableKey<Segwitv0>>(pub K, pub KeychainKind);
Expand description

BIP84 template. Expands to wpkh(key/84'/0'/0'/{0,1}/*)

-

Since there are hardened derivation steps, this template requires a private derivable key (generally a xprv/tprv).

-

See Bip84Public for a template that can work with a xpub/tpub.

-

Example

-
use bdk::template::Bip84;
-
-let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-let wallet = Wallet::new_offline(
-    Bip84(key.clone(), KeychainKind::External),
-    Some(Bip84(key, KeychainKind::Internal)),
-    Network::Testnet,
-    MemoryDatabase::default()
-)?;
-
-assert_eq!(wallet.get_address(New)?.to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7");
-assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "wpkh([c55b303f/84\'/0\'/0\']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#nkk5dtkg");
-

Tuple Fields

0: K1: KeychainKind

Trait Implementations

Build the complete descriptor

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Convert to wallet descriptor

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84Public.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84Public.html deleted file mode 100644 index 7ab54bb950..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84Public.html +++ /dev/null @@ -1,40 +0,0 @@ -Bip84Public in bdk::descriptor::template - Rust -

Struct bdk::descriptor::template::Bip84Public[][src]

pub struct Bip84Public<K: DerivableKey<Segwitv0>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP84 public template. Expands to wpkh(key/{0,1}/*)

-

This assumes that the key used has already been derived with m/84'/0'/0'.

-

This template requires the parent fingerprint to populate correctly the metadata of PSBTs.

-

See Bip84 for a template that does the full derivation, but requires private data -for the key.

-

Example

-
use bdk::template::Bip84Public;
-
-let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
-let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
-let wallet = Wallet::new_offline(
-    Bip84Public(key.clone(), fingerprint, KeychainKind::External),
-    Some(Bip84Public(key, fingerprint, KeychainKind::Internal)),
-    Network::Testnet,
-    MemoryDatabase::default()
-)?;
-
-assert_eq!(wallet.get_address(New)?.to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7");
-assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "wpkh([c55b303f/84\'/0\'/0\']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#nkk5dtkg");
-

Tuple Fields

0: K1: Fingerprint2: KeychainKind

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Convert to wallet descriptor

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Pkh.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Pkh.html deleted file mode 100644 index 83a5f37405..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Pkh.html +++ /dev/null @@ -1,38 +0,0 @@ -P2Pkh in bdk::descriptor::template - Rust -

Struct bdk::descriptor::template::P2Pkh[][src]

pub struct P2Pkh<K: IntoDescriptorKey<Legacy>>(pub K);
Expand description

P2PKH template. Expands to a descriptor pkh(key)

-

Example

-
use bdk::template::P2Pkh;
-
-let key =
-    bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-let wallet = Wallet::new_offline(
-    P2Pkh(key),
-    None,
-    Network::Testnet,
-    MemoryDatabase::default(),
-)?;
-
-assert_eq!(
-    wallet.get_address(New)?.to_string(),
-    "mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"
-);
-

Tuple Fields

0: K

Trait Implementations

Build the complete descriptor

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Convert to wallet descriptor

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh.html deleted file mode 100644 index 6347d9335e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh.html +++ /dev/null @@ -1,38 +0,0 @@ -P2Wpkh in bdk::descriptor::template - Rust -

Struct bdk::descriptor::template::P2Wpkh[][src]

pub struct P2Wpkh<K: IntoDescriptorKey<Segwitv0>>(pub K);
Expand description

P2WPKH template. Expands to a descriptor wpkh(key)

-

Example

-
use bdk::template::P2Wpkh;
-
-let key =
-    bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-let wallet = Wallet::new_offline(
-    P2Wpkh(key),
-    None,
-    Network::Testnet,
-    MemoryDatabase::default(),
-)?;
-
-assert_eq!(
-    wallet.get_address(New)?.to_string(),
-    "tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd"
-);
-

Tuple Fields

0: K

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Convert to wallet descriptor

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh_P2Sh.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh_P2Sh.html deleted file mode 100644 index cb67334dc6..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh_P2Sh.html +++ /dev/null @@ -1,38 +0,0 @@ -P2Wpkh_P2Sh in bdk::descriptor::template - Rust -

Struct bdk::descriptor::template::P2Wpkh_P2Sh[][src]

pub struct P2Wpkh_P2Sh<K: IntoDescriptorKey<Segwitv0>>(pub K);
Expand description

P2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))

-

Example

-
use bdk::template::P2Wpkh_P2Sh;
-
-let key =
-    bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-let wallet = Wallet::new_offline(
-    P2Wpkh_P2Sh(key),
-    None,
-    Network::Testnet,
-    MemoryDatabase::default(),
-)?;
-
-assert_eq!(
-    wallet.get_address(New)?.to_string(),
-    "2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"
-);
-

Tuple Fields

0: K

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Convert to wallet descriptor

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/trait.DescriptorTemplate.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/trait.DescriptorTemplate.html deleted file mode 100644 index 6a1abacf4e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/trait.DescriptorTemplate.html +++ /dev/null @@ -1,23 +0,0 @@ -DescriptorTemplate in bdk::descriptor::template - Rust -

Trait bdk::descriptor::template::DescriptorTemplate[][src]

pub trait DescriptorTemplate {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError>;
-}
Expand description

Trait for descriptor templates that can be built into a full descriptor

-

Since IntoWalletDescriptor is implemented for any DescriptorTemplate, they can also be -passed directly to the Wallet constructor.

-

Example

-
use bdk::descriptor::error::Error as DescriptorError;
-use bdk::keys::{IntoDescriptorKey, KeyError};
-use bdk::miniscript::Legacy;
-use bdk::template::{DescriptorTemplate, DescriptorTemplateOut};
-
-struct MyP2PKH<K: IntoDescriptorKey<Legacy>>(K);
-
-impl<K: IntoDescriptorKey<Legacy>> DescriptorTemplate for MyP2PKH<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        Ok(bdk::descriptor!(pkh(self.0))?)
-    }
-}
-

Required methods

Build the complete descriptor

-

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/type.DescriptorTemplateOut.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/type.DescriptorTemplateOut.html deleted file mode 100644 index c7a7eb10ef..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/template/type.DescriptorTemplateOut.html +++ /dev/null @@ -1,6 +0,0 @@ -DescriptorTemplateOut in bdk::descriptor::template - Rust -

Type Definition bdk::descriptor::template::DescriptorTemplateOut[][src]

pub type DescriptorTemplateOut = (ExtendedDescriptor, KeyMap, ValidNetworks);
Expand description

Type alias for the return type of DescriptorTemplate, descriptor! and others

-

Trait Implementations

Convert to wallet descriptor

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ExtractPolicy.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ExtractPolicy.html deleted file mode 100644 index 7ac0262831..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ExtractPolicy.html +++ /dev/null @@ -1,8 +0,0 @@ -ExtractPolicy in bdk::descriptor - Rust -

Trait bdk::descriptor::ExtractPolicy[][src]

pub trait ExtractPolicy {
-    fn extract_policy(
        &self,
        signers: &SignersContainer,
        psbt: BuildSatisfaction<'_>,
        secp: &Secp256k1<All>
    ) -> Result<Option<Policy>, DescriptorError>; -}
Expand description

Trait implemented on Descriptors to add a method to extract the spending policy

-

Required methods

Extract the spending policy

-

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.IntoWalletDescriptor.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.IntoWalletDescriptor.html deleted file mode 100644 index 1a37e15ea7..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.IntoWalletDescriptor.html +++ /dev/null @@ -1,10 +0,0 @@ -IntoWalletDescriptor in bdk::descriptor - Rust -

Trait bdk::descriptor::IntoWalletDescriptor[][src]

pub trait IntoWalletDescriptor {
-    fn into_wallet_descriptor(
        self,
        secp: &Secp256k1<All>,
        network: Network
    ) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError>; -}
Expand description

Trait for types which can be converted into an ExtendedDescriptor and a KeyMap usable by a wallet in a specific [Network]

-

Required methods

Convert to wallet descriptor

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ScriptContext.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ScriptContext.html deleted file mode 100644 index 8bf9205d79..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ScriptContext.html +++ /dev/null @@ -1,78 +0,0 @@ -ScriptContext in bdk::descriptor - Rust -

Trait bdk::descriptor::ScriptContext[]

pub trait ScriptContext: Debug + Clone + Ord + PartialOrd<Self> + Eq + PartialEq<Self> + Hash + Sealed {
-    fn check_terminal_non_malleable<Pk, Ctx>(
        _frag: &Terminal<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
; -
fn max_satisfaction_size<Pk, Ctx>(ms: &Miniscript<Pk, Ctx>) -> Option<usize>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
; - - fn check_witness<Pk, Ctx>(
        _witness: &[Vec<u8, Global>]
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_global_consensus_validity<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_global_policy_validity<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_local_consensus_validity<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_local_policy_validity<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_global_validity<Pk, Ctx>(
        ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_local_validity<Pk, Ctx>(
        ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn top_level_type_check<Pk, Ctx>(
        ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), Error>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn other_top_level_checks<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), Error>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn top_level_checks<Pk, Ctx>(ms: &Miniscript<Pk, Ctx>) -> Result<(), Error>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -}
Expand description

The ScriptContext for Miniscript. Additional type information associated with -miniscript that is used for carrying out checks that dependent on the -context under which the script is used. -For example, disallowing uncompressed keys in Segwit context

-

Required methods

Depending on ScriptContext, fragments can be malleable. For Example, -under Legacy context, PkH is malleable because it is possible to -estimate the cost of satisfaction because of compressed keys -This is currently only used in compiler code for removing malleable -compilations. -This does NOT recursively check if the children of the fragment are -valid or not. Since the compilation proceeds in a leaf to root fashion, -a recursive check is unnecessary.

-

Depending on script context, the size of a satifaction witness may slightly differ.

-

Provided methods

Check whether the given satisfaction is valid under the ScriptContext -For example, segwit satisfactions may fail if the witness len is more -3600 or number of stack elements are more than 100.

-

Depending on script Context, some of the Terminals might not -be valid under the current consensus rules. -Or some of the script resource limits may have been exceeded. -These miniscripts would never be accepted by the Bitcoin network and hence -it is safe to discard them -For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey -uncompressed public keys are non-standard and thus invalid. -In LegacyP2SH context, scripts above 520 bytes are invalid. -Post Tapscript upgrade, this would have to consider other nodes. -This does NOT recursively check the miniscript fragments.

-

Depending on script Context, some of the script resource limits -may have been exceeded under the current bitcoin core policy rules -These miniscripts would never be accepted by the Bitcoin network and hence -it is safe to discard them. (unless explicitly disabled by non-standard flag) -For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey -scripts over 3600 bytes are invalid. -Post Tapscript upgrade, this would have to consider other nodes. -This does NOT recursively check the miniscript fragments.

-

Consensus rules at the Miniscript satisfaction time. -It is possible that some paths of miniscript may exceed resource limits -and our current satisfier and lifting analysis would not work correctly. -For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes.

-

Policy rules at the Miniscript satisfaction time. -It is possible that some paths of miniscript may exceed resource limits -and our current satisfier and lifting analysis would not work correctly. -For example, satisfaction path in Legacy context scriptSig more -than 1650 bytes

-

Check the consensus + policy(if not disabled) rules that are not based -satisfaction

-

Check the consensus + policy(if not disabled) rules including the -ones for satisfaction

-

Check whether the top-level is type B

-

Other top level checks that are context specific

-

Check top level consensus rules.

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.DerivedDescriptor.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.DerivedDescriptor.html deleted file mode 100644 index 3be2149bcb..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.DerivedDescriptor.html +++ /dev/null @@ -1,5 +0,0 @@ -DerivedDescriptor in bdk::descriptor - Rust -

Type Definition bdk::descriptor::DerivedDescriptor[][src]

pub type DerivedDescriptor<'s> = Descriptor<DerivedDescriptorKey<'s>>;
Expand description

Alias for a Descriptor that contains extended derived keys

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.ExtendedDescriptor.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.ExtendedDescriptor.html deleted file mode 100644 index 56b6d02058..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.ExtendedDescriptor.html +++ /dev/null @@ -1,6 +0,0 @@ -ExtendedDescriptor in bdk::descriptor - Rust -

Type Definition bdk::descriptor::ExtendedDescriptor[][src]

pub type ExtendedDescriptor = Descriptor<DescriptorPublicKey>;
Expand description

Alias for a Descriptor that can contain extended keys using DescriptorPublicKey

-

Trait Implementations

Convert to wallet descriptor

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.HdKeyPaths.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.HdKeyPaths.html deleted file mode 100644 index c1a3bb6ec0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.HdKeyPaths.html +++ /dev/null @@ -1,6 +0,0 @@ -HdKeyPaths in bdk::descriptor - Rust -

Type Definition bdk::descriptor::HdKeyPaths[][src]

pub type HdKeyPaths = BTreeMap<PublicKey, KeySource>;
Expand description

Alias for the type of maps that represent derivation paths in a psbt::Input or -psbt::Output

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.KeyMap.html b/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.KeyMap.html deleted file mode 100644 index 8296010295..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/descriptor/type.KeyMap.html +++ /dev/null @@ -1,9 +0,0 @@ -KeyMap in bdk::descriptor - Rust -

Type Definition bdk::descriptor::KeyMap[]

Expand description

Alias type for a map of public key to secret key

-

This map is returned whenever a descriptor that contains secrets is parsed using -Descriptor::parse_descriptor, since the descriptor will always only contain -public keys. This map allows looking up the corresponding secret key given a -public key from the descriptor.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/enum.Error.html b/static/docs-rs/bdk/nightly/latest/bdk/enum.Error.html deleted file mode 100644 index d53033e02c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/enum.Error.html +++ /dev/null @@ -1,149 +0,0 @@ -Error in bdk - Rust -

Enum bdk::Error[][src]

pub enum Error {
-
Show 41 variants InvalidU32Bytes(Vec<u8>), - Generic(String), - ScriptDoesntHaveAddressForm, - NoRecipients, - NoUtxosSelected, - OutputBelowDustLimit(usize), - InsufficientFunds { - needed: u64, - available: u64, - }, - BnBTotalTriesExceeded, - BnBNoExactMatch, - UnknownUtxo, - TransactionNotFound, - TransactionConfirmed, - IrreplaceableTransaction, - FeeRateTooLow { - required: FeeRate, - }, - FeeTooLow { - required: u64, - }, - FeeRateUnavailable, - MissingKeyOrigin(String), - Key(KeyError), - ChecksumMismatch, - SpendingPolicyRequired(KeychainKind), - InvalidPolicyPathError(PolicyError), - Signer(SignerError), - InvalidNetwork { - requested: Network, - found: Network, - }, - InvalidProgressValue(f32), - ProgressUpdateError, - InvalidOutpoint(OutPoint), - Descriptor(Error), - AddressValidator(AddressValidatorError), - Encode(Error), - Miniscript(Error), - Bip32(Error), - Secp256k1(Error), - Json(Error), - Hex(Error), - Psbt(Error), - PsbtParse(PsbtParseError), - Electrum(Error), - Esplora(Box<EsploraError>), - CompactFilters(CompactFiltersError), - Sled(Error), - Rusqlite(Error), -
}
Expand description

Errors that can be thrown by the Wallet

-

Variants

InvalidU32Bytes(Vec<u8>)

Tuple Fields

0: Vec<u8>

Wrong number of bytes found when trying to convert to u32

-

Generic(String)

Tuple Fields

0: String

Generic error

-

ScriptDoesntHaveAddressForm

This error is thrown when trying to convert Bare and Public key script to address

-

NoRecipients

Cannot build a tx without recipients

-

NoUtxosSelected

manually_selected_only option is selected but no utxo has been passed

-

OutputBelowDustLimit(usize)

Tuple Fields

0: usize

Output created is under the dust limit, 546 satoshis

-

InsufficientFunds

Fields

needed: u64

Sats needed for some transaction

-
available: u64

Sats available for spending

-

Wallet’s UTXO set is not enough to cover recipient’s requested plus fee

-

BnBTotalTriesExceeded

Branch and bound coin selection possible attempts with sufficiently big UTXO set could grow -exponentially, thus a limit is set, and when hit, this error is thrown

-

BnBNoExactMatch

Branch and bound coin selection tries to avoid needing a change by finding the right inputs for -the desired outputs plus fee, if there is not such combination this error is thrown

-

UnknownUtxo

Happens when trying to spend an UTXO that is not in the internal database

-

TransactionNotFound

Thrown when a tx is not found in the internal database

-

TransactionConfirmed

Happens when trying to bump a transaction that is already confirmed

-

IrreplaceableTransaction

Trying to replace a tx that has a sequence >= 0xFFFFFFFE

-

FeeRateTooLow

Fields

required: FeeRate

Required fee rate (satoshi/vbyte)

-

When bumping a tx the fee rate requested is lower than required

-

FeeTooLow

Fields

required: u64

Required fee absolute value (satoshi)

-

When bumping a tx the absolute fee requested is lower than replaced tx absolute fee

-

FeeRateUnavailable

Node doesn’t have data to estimate a fee rate

-

MissingKeyOrigin(String)

Tuple Fields

0: String

In order to use the TxBuilder::add_global_xpubs option every extended -key in the descriptor must either be a master key itself (having depth = 0) or have an -explicit origin provided

-

Key(KeyError)

Tuple Fields

Error while working with keys

-

ChecksumMismatch

Descriptor checksum mismatch

-

SpendingPolicyRequired(KeychainKind)

Tuple Fields

Spending policy is not compatible with this KeychainKind

-

InvalidPolicyPathError(PolicyError)

Tuple Fields

Error while extracting and manipulating policies

-

Signer(SignerError)

Tuple Fields

Signing error

-

InvalidNetwork

Fields

requested: Network

requested network, for example what is given as bdk-cli option

-
found: Network

found network, for example the network of the bitcoin node

-

Invalid network

-

InvalidProgressValue(f32)

Tuple Fields

0: f32

Progress value must be between 0.0 (included) and 100.0 (included)

-

ProgressUpdateError

Progress update error (maybe the channel has been closed)

-

InvalidOutpoint(OutPoint)

Tuple Fields

0: OutPoint

Requested outpoint doesn’t exist in the tx (vout greater than available outputs)

-

Descriptor(Error)

Tuple Fields

0: Error

Error related to the parsing and usage of descriptors

-

AddressValidator(AddressValidatorError)

Tuple Fields

Error that can be returned to fail the validation of an address

-

Encode(Error)

Tuple Fields

0: Error

Encoding error

-

Miniscript(Error)

Tuple Fields

0: Error

Miniscript error

-

Bip32(Error)

Tuple Fields

0: Error

BIP32 error

-

Secp256k1(Error)

Tuple Fields

0: Error

An ECDSA error

-

Json(Error)

Tuple Fields

0: Error

Error serializing or deserializing JSON data

-

Hex(Error)

Tuple Fields

0: Error

Hex decoding error

-

Psbt(Error)

Tuple Fields

0: Error

Partially signed bitcoin transaction error

-

PsbtParse(PsbtParseError)

Tuple Fields

0: PsbtParseError

Partially signed bitcoin transaction parse error

-

Electrum(Error)

Tuple Fields

0: Error

Electrum client error

-

Esplora(Box<EsploraError>)

Tuple Fields

Esplora client error

-

CompactFilters(CompactFiltersError)

Tuple Fields

Compact filters client error)

-

Sled(Error)

Tuple Fields

0: Error

Sled database error

-

Rusqlite(Error)

Tuple Fields

0: Error

Rusqlite client error

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/enum.KeychainKind.html b/static/docs-rs/bdk/nightly/latest/bdk/enum.KeychainKind.html deleted file mode 100644 index ef79a2680a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/enum.KeychainKind.html +++ /dev/null @@ -1,46 +0,0 @@ -KeychainKind in bdk - Rust -

Enum bdk::KeychainKind[][src]

pub enum KeychainKind {
-    External,
-    Internal,
-}
Expand description

Types of keychains

-

Variants

External

External

-

Internal

Internal, usually used for change outputs

-

Implementations

Return KeychainKind as a byte

-

Trait Implementations

Performs the conversion.

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Calculate the base32 serialized length

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Error type if conversion fails

-

Check if all values are in range and return array-like struct of u5 values

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

Encode as base32 and write it to the supplied writer -Implementations shouldn’t allocate. Read more

-

Convert Self to base32 vector

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/enum.Utxo.html b/static/docs-rs/bdk/nightly/latest/bdk/enum.Utxo.html deleted file mode 100644 index a6993d93e4..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/enum.Utxo.html +++ /dev/null @@ -1,41 +0,0 @@ -Utxo in bdk - Rust -

Enum bdk::Utxo[][src]

pub enum Utxo {
-    Local(LocalUtxo),
-    Foreign {
-        outpoint: OutPoint,
-        psbt_input: Box<Input>,
-    },
-}
Expand description

An unspent transaction output (UTXO).

-

Variants

Local(LocalUtxo)

Tuple Fields

A UTXO owned by the local wallet.

-

Foreign

Fields

outpoint: OutPoint

The location of the output.

-
psbt_input: Box<Input>

The information about the input we require to add it to a PSBT.

-

A UTXO owned by another wallet.

-

Implementations

Get the location of the UTXO

-

Get the TxOut of the UTXO

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/error/enum.Error.html b/static/docs-rs/bdk/nightly/latest/bdk/error/enum.Error.html deleted file mode 100644 index 9abf6d4a9c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/error/enum.Error.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/enum.Error.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/fn.version.html b/static/docs-rs/bdk/nightly/latest/bdk/fn.version.html deleted file mode 100644 index a339cbe1b7..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/fn.version.html +++ /dev/null @@ -1,5 +0,0 @@ -version in bdk - Rust -

Function bdk::version[][src]

pub fn version() -> &'static str
Expand description

Get the version of BDK at runtime

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/index.html b/static/docs-rs/bdk/nightly/latest/bdk/index.html deleted file mode 100644 index b049128512..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/index.html +++ /dev/null @@ -1,172 +0,0 @@ -bdk - Rust -

Crate bdk[][src]

Expand description

A modern, lightweight, descriptor-based wallet library written in Rust.

-

About

-

The BDK library aims to be the core building block for Bitcoin wallets of any kind.

-
    -
  • It uses Miniscript to support descriptors with generalized conditions. This exact same library can be used to build -single-sig wallets, multisigs, timelocked contracts and more.
  • -
  • It supports multiple blockchain backends and databases, allowing developers to choose exactly what’s right for their projects.
  • -
  • It is built to be cross-platform: the core logic works on desktop, mobile, and even WebAssembly.
  • -
  • It is very easy to extend: developers can implement customized logic for blockchain backends, databases, signers, coin selection, and more, without having to fork and modify this library.
  • -
-

A Tour of BDK

-

BDK consists of a number of modules that provide a range of functionality -essential for implementing descriptor based Bitcoin wallet applications in Rust. In this -section, we will take a brief tour of BDK, summarizing the major APIs and -their uses.

-

The easiest way to get started is to add bdk to your dependencies with the default features. -The default features include a simple key-value database (sled) to cache -blockchain data and an electrum blockchain client to -interact with the bitcoin P2P network.

-
bdk = "0.14.0"

Sync the balance of a descriptor

Example

-
use bdk::Wallet;
-use bdk::database::MemoryDatabase;
-use bdk::blockchain::{noop_progress, ElectrumBlockchain};
-use bdk::electrum_client::Client;
-
-fn main() -> Result<(), bdk::Error> {
-    let client = Client::new("ssl://electrum.blockstream.info:60002")?;
-    let wallet = Wallet::new(
-        "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)",
-        Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"),
-        bitcoin::Network::Testnet,
-        MemoryDatabase::default(),
-        ElectrumBlockchain::from(client)
-    )?;
-
-    wallet.sync(noop_progress(), None)?;
-
-    println!("Descriptor balance: {} SAT", wallet.get_balance()?);
-
-    Ok(())
-}
-

Generate a few addresses

Example

-
use bdk::{Wallet};
-use bdk::database::MemoryDatabase;
-use bdk::wallet::AddressIndex::New;
-
-fn main() -> Result<(), bdk::Error> {
-let wallet = Wallet::new_offline(
-        "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)",
-        Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"),
-        bitcoin::Network::Testnet,
-        MemoryDatabase::default(),
-    )?;
-
-    println!("Address #0: {}", wallet.get_address(New)?);
-    println!("Address #1: {}", wallet.get_address(New)?);
-    println!("Address #2: {}", wallet.get_address(New)?);
-
-    Ok(())
-}
-

Create a transaction

Example

-
use bdk::{FeeRate, Wallet};
-use bdk::database::MemoryDatabase;
-use bdk::blockchain::{noop_progress, ElectrumBlockchain};
-use bdk::electrum_client::Client;
-
-use bitcoin::consensus::serialize;
-use bdk::wallet::AddressIndex::New;
-
-fn main() -> Result<(), bdk::Error> {
-    let client = Client::new("ssl://electrum.blockstream.info:60002")?;
-    let wallet = Wallet::new(
-        "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)",
-        Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"),
-        bitcoin::Network::Testnet,
-        MemoryDatabase::default(),
-        ElectrumBlockchain::from(client)
-    )?;
-
-    wallet.sync(noop_progress(), None)?;
-
-    let send_to = wallet.get_address(New)?;
-    let (psbt, details) = {
-        let mut builder =  wallet.build_tx();
-        builder
-            .add_recipient(send_to.script_pubkey(), 50_000)
-            .enable_rbf()
-            .do_not_spend_change()
-            .fee_rate(FeeRate::from_sat_per_vb(5.0));
-        builder.finish()?
-    };
-
-    println!("Transaction details: {:#?}", details);
-    println!("Unsigned PSBT: {}", &psbt);
-
-    Ok(())
-}
-

Sign a transaction

Example

-
use std::str::FromStr;
-
-use bitcoin::util::psbt::PartiallySignedTransaction as Psbt;
-
-use bdk::{Wallet, SignOptions};
-use bdk::database::MemoryDatabase;
-
-fn main() -> Result<(), bdk::Error> {
-    let wallet = Wallet::new_offline(
-        "wpkh([c258d2e4/84h/1h/0h]tprv8griRPhA7342zfRyB6CqeKF8CJDXYu5pgnj1cjL1u2ngKcJha5jjTRimG82ABzJQ4MQe71CV54xfn25BbhCNfEGGJZnxvCDQCd6JkbvxW6h/0/*)",
-        Some("wpkh([c258d2e4/84h/1h/0h]tprv8griRPhA7342zfRyB6CqeKF8CJDXYu5pgnj1cjL1u2ngKcJha5jjTRimG82ABzJQ4MQe71CV54xfn25BbhCNfEGGJZnxvCDQCd6JkbvxW6h/1/*)"),
-        bitcoin::Network::Testnet,
-        MemoryDatabase::default(),
-    )?;
-
-    let psbt = "...";
-    let mut psbt = Psbt::from_str(psbt)?;
-
-    let finalized = wallet.sign(&mut psbt, SignOptions::default())?;
-
-    Ok(())
-}
-

Feature flags

-

BDK uses a set of feature flags -to reduce the amount of compiled code by allowing projects to only enable the features they need. -By default, BDK enables two internal features, key-value-db and electrum.

-

If you are new to BDK we recommended that you use the default features which will enable -basic descriptor wallet functionality. More advanced users can disable the default features -(--no-default-features) and build the BDK library with only the features you need. -Below is a list of the available feature flags and the additional functionality they provide.

-
    -
  • all-keys: all features for working with bitcoin keys
  • -
  • async-interface: async functions in bdk traits
  • -
  • keys-bip39: BIP-39 mnemonic codes for generating deterministic keys
  • -
-

Internal features

-

These features do not expose any new API, but influence internal implementation aspects of -BDK.

-
    -
  • compact_filters: compact_filters client protocol for interacting with the bitcoin P2P network
  • -
  • electrum: electrum client protocol for interacting with electrum servers
  • -
  • esplora: esplora client protocol for interacting with blockstream electrs servers
  • -
  • key-value-db: key value database based on sled for caching blockchain data
  • -
-

Re-exports

-
pub extern crate bitcoin;
pub extern crate electrum_client;
pub extern crate miniscript;
pub extern crate rusqlite;
pub extern crate sled;
pub use descriptor::template;
pub use descriptor::HdKeyPaths;
pub use wallet::address_validator;
pub use wallet::signer;
pub use wallet::signer::SignOptions;
pub use wallet::tx_builder::TxBuilder;
pub use wallet::Wallet;

Modules

-

Blockchain backends

-

Database types

-

Descriptors

-

Key formats

-

Wallet

-

Macros

-

Macro to write full descriptors with code

-

Macro to write descriptor fragments with code

-

Structs

-

Block height and timestamp of a block

-

Fee rate

-

An unspent output owned by a Wallet.

-

A wallet transaction

-

A Utxo with its satisfaction_weight.

-

Enums

-

Errors that can be thrown by the Wallet

-

Types of keychains

-

An unspent transaction output (UTXO).

-

Traits

-

Trait implemented by types that can be used to measure weight units.

-

Functions

-

Get the version of BDK at runtime

-

Type Definitions

-

DEPRECATED: Confirmation time of a transaction

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/enum.Language.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/enum.Language.html deleted file mode 100644 index ff12277c72..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/enum.Language.html +++ /dev/null @@ -1,52 +0,0 @@ -Language in bdk::keys::bip39 - Rust -

Enum bdk::keys::bip39::Language[]

pub enum Language {
-    English,
-}
This is supported on crate feature keys-bip39 only.
Expand description

Language to be used for the mnemonic phrase.

-

The English language is always available, other languages are enabled using -the compilation features.

-

Variants

English

The English language.

-

Implementations

The list of supported languages. -Language support is managed by compile features.

-

Get words from the word list that start with the given prefix.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/enum.WordCount.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/enum.WordCount.html deleted file mode 100644 index 760cb7ad76..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/enum.WordCount.html +++ /dev/null @@ -1,31 +0,0 @@ -WordCount in bdk::keys::bip39 - Rust -

Enum bdk::keys::bip39::WordCount[][src]

pub enum WordCount {
-    Words12,
-    Words15,
-    Words18,
-    Words21,
-    Words24,
-}
This is supported on crate feature keys-bip39 only.
Expand description

Type describing entropy length (aka word count) in the mnemonic

-

Variants

Words12

12 words mnemonic (128 bits entropy)

-

Words15

15 words mnemonic (160 bits entropy)

-

Words18

18 words mnemonic (192 bits entropy)

-

Words21

21 words mnemonic (224 bits entropy)

-

Words24

24 words mnemonic (256 bits entropy)

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/index.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/index.html deleted file mode 100644 index ed28b3ac45..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/index.html +++ /dev/null @@ -1,12 +0,0 @@ -bdk::keys::bip39 - Rust -

Module bdk::keys::bip39[][src]

This is supported on crate feature keys-bip39 only.
Expand description

BIP-0039

-

Structs

-

A mnemonic code.

-

Enums

-

Language to be used for the mnemonic phrase.

-

Type describing entropy length (aka word count) in the mnemonic

-

Type Definitions

-

Type for a BIP39 mnemonic with an optional passphrase

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/sidebar-items.js deleted file mode 100644 index 10e71d1882..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["Language","Language to be used for the mnemonic phrase."],["WordCount","Type describing entropy length (aka word count) in the mnemonic"]],"struct":[["Mnemonic","A mnemonic code."]],"type":[["MnemonicWithPassphrase","Type for a BIP39 mnemonic with an optional passphrase"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/struct.Mnemonic.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/struct.Mnemonic.html deleted file mode 100644 index 1eb522386d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/struct.Mnemonic.html +++ /dev/null @@ -1,97 +0,0 @@ -Mnemonic in bdk::keys::bip39 - Rust -

Struct bdk::keys::bip39::Mnemonic[]

pub struct Mnemonic { /* fields omitted */ }
This is supported on crate feature keys-bip39 only.
Expand description

A mnemonic code.

-

The core::str::FromStr implementation will try to determine the language of the -mnemonic from all the supported languages. (Languages have to be explicitly enabled using -the Cargo features.)

-

Supported number of words are 12, 18 and 24.

-

Implementations

Create a new Mnemonic in the specified language from the given entropy. -Entropy must be a multiple of 32 bits (4 bytes) and 128-256 bits in length.

-

Create a new English Mnemonic from the given entropy. -Entropy must be a multiple of 32 bits (4 bytes) and 128-256 bits in length.

-

Generate a new Mnemonic in the given language -with the given randomness source. -For the different supported word counts, see documentation on Mnemonic.

-

Example:

- -
extern crate rand;
-extern crate bip39;
-
-use bip39::{Mnemonic, Language};
-
-let mut rng = rand::thread_rng();
-let m = Mnemonic::generate_in_with(&mut rng, Language::English, 24).unwrap();
-

Get the language of the Mnemonic.

-

Get an iterator over the words.

-

Determine the language of the mnemonic.

-

NOTE: This method only guarantees that the returned language is the -correct language on the assumption that the mnemonic is valid. -It does not itself validate the mnemonic.

-

Some word lists don’t guarantee that their words don’t occur in other -word lists. In the extremely unlikely case that a word list can be -interpreted in multiple languages, an [Error::AmbiguousLanguages] is -returned, containing the possible languages.

-

Parse a mnemonic in normalized UTF8 in the given language.

-

Parse a mnemonic in normalized UTF8.

-

Parse a mnemonic in the given language.

-

Parse a mnemonic and detect the language from the enabled languages.

-

Get the number of words in the mnemonic.

-

Convert to seed bytes with a passphrase in normalized UTF8.

-

Convert to seed bytes.

-

Convert the mnemonic back to the entropy used to generate it. -The return value is a byte array and the size. -Use Mnemonic::to_entropy (needs std) to get a Vec.

-

Convert the mnemonic back to the entropy used to generate it.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Consume self and turn it into an ExtendedKey Read more

-

Consume self and turn it into a DescriptorKey by adding the extra metadata, such as -key origin and derivation path Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Formats the value using the given formatter. Read more

-

The associated error which can be returned from parsing.

-

Parses a string s to return a value of this type. Read more

-

Type specifying the amount of entropy required e.g. [u8;32]

-

Extra options required by the generate_with_entropy

-

Returned error in case of failure

-

Generate a key given the extra options and the entropy

-

Generate a key given the options with a random entropy

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/type.MnemonicWithPassphrase.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/type.MnemonicWithPassphrase.html deleted file mode 100644 index f5b2dce539..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/bip39/type.MnemonicWithPassphrase.html +++ /dev/null @@ -1,8 +0,0 @@ -MnemonicWithPassphrase in bdk::keys::bip39 - Rust -

Type Definition bdk::keys::bip39::MnemonicWithPassphrase[][src]

pub type MnemonicWithPassphrase = (Mnemonic, Option<String>);
This is supported on crate feature keys-bip39 only.
Expand description

Type for a BIP39 mnemonic with an optional passphrase

-

Trait Implementations

Consume self and turn it into an ExtendedKey Read more

-

Consume self and turn it into a DescriptorKey by adding the extra metadata, such as -key origin and derivation path Read more

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorKey.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorKey.html deleted file mode 100644 index cb80713702..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorKey.html +++ /dev/null @@ -1,28 +0,0 @@ -DescriptorKey in bdk::keys - Rust -

Enum bdk::keys::DescriptorKey[][src]

pub enum DescriptorKey<Ctx: ScriptContext> {
-    // some variants omitted
-}
Expand description

Container for public or secret keys

-

Implementations

Create an instance given a public key and a set of valid networks

-

Create an instance given a secret key and a set of valid networks

-

Override the computed set of valid networks

-

Trait Implementations

Formats the value using the given formatter. Read more

-

The “identity” conversion is used internally by some bdk::fragments

-

Turn the key into a DescriptorKey within the requested ScriptContext

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorPublicKey.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorPublicKey.html deleted file mode 100644 index eded948f2d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorPublicKey.html +++ /dev/null @@ -1,74 +0,0 @@ -DescriptorPublicKey in bdk::keys - Rust -

Enum bdk::keys::DescriptorPublicKey[]

pub enum DescriptorPublicKey {
-    SinglePub(DescriptorSinglePub),
-    XPub(DescriptorXKey<ExtendedPubKey>),
-}
Expand description

The MiniscriptKey corresponding to Descriptors. This can -either be Single public key or a Xpub

-

Variants

SinglePub(DescriptorSinglePub)

Tuple Fields

Single Public Key

-

XPub(DescriptorXKey<ExtendedPubKey>)

Tuple Fields

0: DescriptorXKey<ExtendedPubKey>

Xpub

-

Implementations

The fingerprint of the master key associated with this key

-

Full path, from the master key

-

For wildcard keys this will return the path up to the wildcard, so you -can get full paths by appending one additional derivation step, according -to the wildcard type (hardened or normal)

-

Whether or not the key has a wildcards

-

If this public key has a wildcard, replace it by the given index

-

Panics if given an index ≥ 2^31

-

Computes the public key corresponding to this descriptor key

-

Will return an error if the descriptor key has any hardened -derivation steps in its path, or if the key has any wildcards.

-

To ensure there are no wildcards, call .derive(0) or similar; -to avoid hardened derivation steps, start from a DescriptorSecretKey -and call as_public, or call TranslatePk2::translate_pk2 with -some function which has access to secret key data.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The associated error which can be returned from parsing.

-

Parses a string s to return a value of this type. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Turn the key into a DescriptorKey within the requested ScriptContext

-

The associated Hash type with the publicKey

-

Check if the publicKey is uncompressed. The default -implementation returns false Read more

-

Converts an object to PublicHash

-

Computes the size of a public key when serialized in a script, -including the length bytes Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorSecretKey.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorSecretKey.html deleted file mode 100644 index 0b98c46351..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorSecretKey.html +++ /dev/null @@ -1,37 +0,0 @@ -DescriptorSecretKey in bdk::keys - Rust -

Enum bdk::keys::DescriptorSecretKey[]

pub enum DescriptorSecretKey {
-    SinglePriv(DescriptorSinglePriv),
-    XPrv(DescriptorXKey<ExtendedPrivKey>),
-}
Expand description

A Secret Key that can be either a single key or an Xprv

-

Variants

SinglePriv(DescriptorSinglePriv)

Tuple Fields

Single Secret Key

-

XPrv(DescriptorXKey<ExtendedPrivKey>)

Tuple Fields

0: DescriptorXKey<ExtendedPrivKey>

Xprv

-

Implementations

Return the public version of this key, by applying either -DescriptorSinglePriv::as_public or [DescriptorXKey<bip32::ExtendedPrivKey>::as_public] -depending on the type of key.

-

If the key is an “XPrv”, the hardened derivation steps will be applied before converting it -to a public key. See the documentation of [DescriptorXKey<bip32::ExtendedPrivKey>::as_public] -for more details.

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The associated error which can be returned from parsing.

-

Parses a string s to return a value of this type. Read more

-

Turn the key into a DescriptorKey within the requested ScriptContext

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.ExtendedKey.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.ExtendedKey.html deleted file mode 100644 index 491dd93576..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.ExtendedKey.html +++ /dev/null @@ -1,39 +0,0 @@ -ExtendedKey in bdk::keys - Rust -

Enum bdk::keys::ExtendedKey[][src]

pub enum ExtendedKey<Ctx: ScriptContext = Legacy> {
-    Private((ExtendedPrivKey, PhantomData<Ctx>)),
-    Public((ExtendedPubKey, PhantomData<Ctx>)),
-}
Expand description

Enum for extended keys that can be either xprv or xpub

-

An instance of ExtendedKey can be constructed from an ExtendedPrivKey -or an ExtendedPubKey by using the From trait.

-

Defaults to the Legacy context.

-

Variants

Private((ExtendedPrivKey, PhantomData<Ctx>))

Tuple Fields

0: (ExtendedPrivKey, PhantomData<Ctx>)

A private extended key, aka an xprv

-

Public((ExtendedPubKey, PhantomData<Ctx>))

Tuple Fields

0: (ExtendedPubKey, PhantomData<Ctx>)

A public extended key, aka an xpub

-

Implementations

Return whether or not the key contains the private data

-

Transform the ExtendedKey into an ExtendedPrivKey for the -given [Network], if the key contains the private data

-

Transform the ExtendedKey into an ExtendedPubKey for the -given [Network]

-

Trait Implementations

Identity conversion

-

Consume self and turn it into an ExtendedKey Read more

-

Consume self and turn it into a DescriptorKey by adding the extra metadata, such as -key origin and derivation path Read more

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.KeyError.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.KeyError.html deleted file mode 100644 index 1bd87a3f13..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.KeyError.html +++ /dev/null @@ -1,44 +0,0 @@ -KeyError in bdk::keys - Rust -

Enum bdk::keys::KeyError[][src]

pub enum KeyError {
-    InvalidScriptContext,
-    InvalidNetwork,
-    InvalidChecksum,
-    Message(String),
-    Bip32(Error),
-    Miniscript(Error),
-}
Expand description

Errors thrown while working with keys

-

Variants

InvalidScriptContext

The key cannot exist in the given script context

-

InvalidNetwork

The key is not valid for the given network

-

InvalidChecksum

The key has an invalid checksum

-

Message(String)

Tuple Fields

0: String

Custom error message

-

Bip32(Error)

Tuple Fields

0: Error

BIP32 error

-

Miniscript(Error)

Tuple Fields

0: Error

Miniscript error

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.ScriptContextEnum.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.ScriptContextEnum.html deleted file mode 100644 index cb067610e8..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/enum.ScriptContextEnum.html +++ /dev/null @@ -1,36 +0,0 @@ -ScriptContextEnum in bdk::keys - Rust -

Enum bdk::keys::ScriptContextEnum[][src]

pub enum ScriptContextEnum {
-    Legacy,
-    Segwitv0,
-}
Expand description

Enum representation of the known valid ScriptContexts

-

Variants

Legacy

Legacy scripts

-

Segwitv0

Segwitv0 scripts

-

Implementations

Returns whether the script context is ScriptContextEnum::Legacy

-

Returns whether the script context is ScriptContextEnum::Segwitv0

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.any_network.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.any_network.html deleted file mode 100644 index 4510fe7c93..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.any_network.html +++ /dev/null @@ -1,5 +0,0 @@ -any_network in bdk::keys - Rust -

Function bdk::keys::any_network[][src]

pub fn any_network() -> ValidNetworks
Expand description

Create a set containing mainnet, testnet and regtest

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.mainnet_network.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.mainnet_network.html deleted file mode 100644 index 772072cd6f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.mainnet_network.html +++ /dev/null @@ -1,5 +0,0 @@ -mainnet_network in bdk::keys - Rust -

Function bdk::keys::mainnet_network[][src]

pub fn mainnet_network() -> ValidNetworks
Expand description

Create a set only containing mainnet

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.merge_networks.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.merge_networks.html deleted file mode 100644 index cad3fd8b40..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.merge_networks.html +++ /dev/null @@ -1,5 +0,0 @@ -merge_networks in bdk::keys - Rust -

Function bdk::keys::merge_networks[][src]

pub fn merge_networks(a: &ValidNetworks, b: &ValidNetworks) -> ValidNetworks
Expand description

Compute the intersection of two sets

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.test_networks.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.test_networks.html deleted file mode 100644 index 62e3f01d85..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/fn.test_networks.html +++ /dev/null @@ -1,5 +0,0 @@ -test_networks in bdk::keys - Rust -

Function bdk::keys::test_networks[][src]

pub fn test_networks() -> ValidNetworks
Expand description

Create a set containing testnet and regtest

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/index.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/index.html deleted file mode 100644 index cdca37e3ec..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/index.html +++ /dev/null @@ -1,39 +0,0 @@ -bdk::keys - Rust -

Module bdk::keys[][src]

Expand description

Key formats

-

Modules

-
bip39keys-bip39

BIP-0039

-

Structs

-

A Single Descriptor Secret Key with optional origin information

-

A Single Descriptor Key with optional origin information

-

Output of a GeneratableKey key generation

-

Options for generating a [PrivateKey]

-

Contents of a “sortedmulti” descriptor

-

Enums

-

Container for public or secret keys

-

The MiniscriptKey corresponding to Descriptors. This can -either be Single public key or a Xpub

-

A Secret Key that can be either a single key or an Xprv

-

Enum for extended keys that can be either xprv or xpub

-

Errors thrown while working with keys

-

Enum representation of the known valid ScriptContexts

-

Traits

-

Trait for keys that can be derived.

-

Trait that adds extra useful methods to ScriptContexts

-

Trait that allows generating a key with the default options

-

Trait for keys that can be generated

-

Trait for objects that can be turned into a public or secret DescriptorKey

-

The ScriptContext for Miniscript. Additional type information associated with -miniscript that is used for carrying out checks that dependent on the -context under which the script is used. -For example, disallowing uncompressed keys in Segwit context

-

Functions

-

Create a set containing mainnet, testnet and regtest

-

Create a set only containing mainnet

-

Compute the intersection of two sets

-

Create a set containing testnet and regtest

-

Type Definitions

-

Alias type for a map of public key to secret key

-

Set of valid networks for a key

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/keys/sidebar-items.js deleted file mode 100644 index 9b1ae8b56f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["DescriptorKey","Container for public or secret keys"],["DescriptorPublicKey","The MiniscriptKey corresponding to Descriptors. This can either be Single public key or a Xpub"],["DescriptorSecretKey","A Secret Key that can be either a single key or an Xprv"],["ExtendedKey","Enum for extended keys that can be either `xprv` or `xpub`"],["KeyError","Errors thrown while working with `keys`"],["ScriptContextEnum","Enum representation of the known valid [`ScriptContext`]s"]],"fn":[["any_network","Create a set containing mainnet, testnet and regtest"],["mainnet_network","Create a set only containing mainnet"],["merge_networks","Compute the intersection of two sets"],["test_networks","Create a set containing testnet and regtest"]],"mod":[["bip39","BIP-0039"]],"struct":[["DescriptorSinglePriv","A Single Descriptor Secret Key with optional origin information"],["DescriptorSinglePub","A Single Descriptor Key with optional origin information"],["GeneratedKey","Output of a [`GeneratableKey`] key generation"],["PrivateKeyGenerateOptions","Options for generating a [`PrivateKey`]"],["SortedMultiVec","Contents of a “sortedmulti” descriptor"]],"trait":[["DerivableKey","Trait for keys that can be derived."],["ExtScriptContext","Trait that adds extra useful methods to [`ScriptContext`]s"],["GeneratableDefaultOptions","Trait that allows generating a key with the default options"],["GeneratableKey","Trait for keys that can be generated"],["IntoDescriptorKey","Trait for objects that can be turned into a public or secret [`DescriptorKey`]"],["ScriptContext","The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"]],"type":[["KeyMap","Alias type for a map of public key to secret key"],["ValidNetworks","Set of valid networks for a key"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.DescriptorSinglePriv.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.DescriptorSinglePriv.html deleted file mode 100644 index 32066095fb..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.DescriptorSinglePriv.html +++ /dev/null @@ -1,26 +0,0 @@ -DescriptorSinglePriv in bdk::keys - Rust -

Struct bdk::keys::DescriptorSinglePriv[]

pub struct DescriptorSinglePriv {
-    pub origin: Option<(Fingerprint, DerivationPath)>,
-    pub key: PrivateKey,
-}
Expand description

A Single Descriptor Secret Key with optional origin information

-

Fields

origin: Option<(Fingerprint, DerivationPath)>

Origin information

-
key: PrivateKey

The key

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.DescriptorSinglePub.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.DescriptorSinglePub.html deleted file mode 100644 index c7859114fe..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.DescriptorSinglePub.html +++ /dev/null @@ -1,47 +0,0 @@ -DescriptorSinglePub in bdk::keys - Rust -

Struct bdk::keys::DescriptorSinglePub[]

pub struct DescriptorSinglePub {
-    pub origin: Option<(Fingerprint, DerivationPath)>,
-    pub key: PublicKey,
-}
Expand description

A Single Descriptor Key with optional origin information

-

Fields

origin: Option<(Fingerprint, DerivationPath)>

Origin information

-
key: PublicKey

The key

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.GeneratedKey.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.GeneratedKey.html deleted file mode 100644 index 3d959162bc..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.GeneratedKey.html +++ /dev/null @@ -1,27 +0,0 @@ -GeneratedKey in bdk::keys - Rust -

Struct bdk::keys::GeneratedKey[][src]

pub struct GeneratedKey<K, Ctx: ScriptContext> { /* fields omitted */ }
Expand description

Output of a GeneratableKey key generation

-

Implementations

Consumes self and returns the key

-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Consume self and turn it into an ExtendedKey Read more

-

Consume self and turn it into a DescriptorKey by adding the extra metadata, such as -key origin and derivation path Read more

-

Turn the key into a DescriptorKey within the requested ScriptContext

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.PrivateKeyGenerateOptions.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.PrivateKeyGenerateOptions.html deleted file mode 100644 index adf2986f30..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.PrivateKeyGenerateOptions.html +++ /dev/null @@ -1,31 +0,0 @@ -PrivateKeyGenerateOptions in bdk::keys - Rust -

Struct bdk::keys::PrivateKeyGenerateOptions[][src]

pub struct PrivateKeyGenerateOptions {
-    pub compressed: bool,
-}
Expand description

Options for generating a [PrivateKey]

-

Defaults to creating compressed keys, which save on-chain bytes and fees

-

Fields

compressed: bool

Whether the generated key should be “compressed” or not

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.SortedMultiVec.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.SortedMultiVec.html deleted file mode 100644 index 7eba24a6ae..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/struct.SortedMultiVec.html +++ /dev/null @@ -1,86 +0,0 @@ -SortedMultiVec in bdk::keys - Rust -

Struct bdk::keys::SortedMultiVec[]

pub struct SortedMultiVec<Pk, Ctx> where
    Pk: MiniscriptKey,
    Ctx: ScriptContext
{ - pub k: usize, - pub pks: Vec<Pk, Global>, - // some fields omitted -}
Expand description

Contents of a “sortedmulti” descriptor

-

Fields

k: usize

signatures required

-
pks: Vec<Pk, Global>

public keys inside sorted Multi

-

Implementations

Create a new instance of SortedMultiVec given a list of keys and the threshold

-

Internally checks all the applicable size limits and pubkey types limitations according to the current Ctx.

-

Parse an expression tree into a SortedMultiVec

-

This will panic if translatefpk returns an uncompressed key when -converting to a Segwit descriptor. To prevent this panic, ensure -translatefpk returns an error in this case instead.

-

utility function to sanity a sorted multi vec

-

Create Terminal::Multi containing sorted pubkeys

-

Encode as a Bitcoin script

-

Attempt to produce a satisfying witness for the -witness script represented by the parse tree

-

Size, in bytes of the script-pubkey. If this Miniscript is used outside -of segwit (e.g. in a bare or P2SH descriptor), this quantity should be -multiplied by 4 to compute the weight.

-

In general, it is not recommended to use this function directly, but -to instead call the corresponding function on a Descriptor, which -will handle the segwit/non-segwit technicalities for you.

-

Maximum number of witness elements used to satisfy the Miniscript -fragment, including the witness script itself. Used to estimate -the weight of the VarInt that specifies this number in a serialized -transaction.

-

This function may panic on malformed Miniscript objects which do -not correspond to semantically sane Scripts. (Such scripts should be -rejected at parse time. Any exceptions are bugs.)

-

Maximum size, in bytes, of a satisfying witness. -In general, it is not recommended to use this function directly, but -to instead call the corresponding function on a Descriptor, which -will handle the segwit/non-segwit technicalities for you.

-

All signatures are assumed to be 73 bytes in size, including the -length prefix (segwit) or push opcode (pre-segwit) and sighash -postfix.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

Run a predicate on every key in the descriptor, returning whether -the predicate returned true for every key Read more

-

Run a predicate on every key in the descriptor, returning whether -the predicate returned true for any key Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Convert the object into an abstract policy

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.DerivableKey.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.DerivableKey.html deleted file mode 100644 index 49c05cc170..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.DerivableKey.html +++ /dev/null @@ -1,104 +0,0 @@ -DerivableKey in bdk::keys - Rust -

Trait bdk::keys::DerivableKey[][src]

pub trait DerivableKey<Ctx: ScriptContext = Legacy>: Sized {
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError>;
-
-    fn into_descriptor_key(
        self,
        origin: Option<KeySource>,
        derivation_path: DerivationPath
    ) -> Result<DescriptorKey<Ctx>, KeyError> { ... } -}
Expand description

Trait for keys that can be derived.

-

When extra metadata are provided, a DerivableKey can be transformed into a -DescriptorKey: the trait IntoDescriptorKey is automatically implemented -for (DerivableKey, DerivationPath) and -(DerivableKey, KeySource, DerivationPath) tuples.

-

For key types that don’t encode any indication about the path to use (like bip39), it’s -generally recommended to implemented this trait instead of IntoDescriptorKey. The same -rules regarding script context and valid networks apply.

-

Examples

-

Key types that can be directly converted into an ExtendedPrivKey or -an ExtendedPubKey can implement only the required into_extended_key() method.

- -
use bdk::bitcoin;
-use bdk::bitcoin::util::bip32;
-use bdk::keys::{DerivableKey, ExtendedKey, KeyError, ScriptContext};
-
-struct MyCustomKeyType {
-    key_data: bitcoin::PrivateKey,
-    chain_code: Vec<u8>,
-    network: bitcoin::Network,
-}
-
-impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        let xprv = bip32::ExtendedPrivKey {
-            network: self.network,
-            depth: 0,
-            parent_fingerprint: bip32::Fingerprint::default(),
-            private_key: self.key_data,
-            chain_code: bip32::ChainCode::from(self.chain_code.as_ref()),
-            child_number: bip32::ChildNumber::Normal { index: 0 },
-        };
-
-        xprv.into_extended_key()
-    }
-}
-

Types that don’t internally encode the Network in which they are valid need some extra -steps to override the set of valid networks, otherwise only the network specified in the -ExtendedPrivKey or ExtendedPubKey will be considered valid.

- -
use bdk::bitcoin;
-use bdk::bitcoin::util::bip32;
-use bdk::keys::{
-    any_network, DerivableKey, DescriptorKey, ExtendedKey, KeyError, ScriptContext,
-};
-
-struct MyCustomKeyType {
-    key_data: bitcoin::PrivateKey,
-    chain_code: Vec<u8>,
-}
-
-impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        let xprv = bip32::ExtendedPrivKey {
-            network: bitcoin::Network::Bitcoin, // pick an arbitrary network here
-            depth: 0,
-            parent_fingerprint: bip32::Fingerprint::default(),
-            private_key: self.key_data,
-            chain_code: bip32::ChainCode::from(self.chain_code.as_ref()),
-            child_number: bip32::ChildNumber::Normal { index: 0 },
-        };
-
-        xprv.into_extended_key()
-    }
-
-    fn into_descriptor_key(
-        self,
-        source: Option<bip32::KeySource>,
-        derivation_path: bip32::DerivationPath,
-    ) -> Result<DescriptorKey<Ctx>, KeyError> {
-        let descriptor_key = self
-            .into_extended_key()?
-            .into_descriptor_key(source, derivation_path)?;
-
-        // Override the set of valid networks here
-        Ok(descriptor_key.override_valid_networks(any_network()))
-    }
-}
-

Required methods

Consume self and turn it into an ExtendedKey

-

This can be used to get direct access to xprvs and xpubs for types that implement this trait, -like Mnemonic when the keys-bip39 feature is enabled.

- -
use bdk::bitcoin::Network;
-use bdk::keys::{DerivableKey, ExtendedKey};
-use bdk::keys::bip39::{Mnemonic, Language};
-
-let xkey: ExtendedKey =
-    Mnemonic::parse_in(
-        Language::English,
-        "jelly crash boy whisper mouse ecology tuna soccer memory million news short",
-    )?
-    .into_extended_key()?;
-let xprv = xkey.into_xprv(Network::Bitcoin).unwrap();
-

Provided methods

Consume self and turn it into a DescriptorKey by adding the extra metadata, such as -key origin and derivation path

-

Implementations on Foreign Types

Implementors

Identity conversion

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.ExtScriptContext.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.ExtScriptContext.html deleted file mode 100644 index 7d1b008255..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.ExtScriptContext.html +++ /dev/null @@ -1,13 +0,0 @@ -ExtScriptContext in bdk::keys - Rust -

Trait bdk::keys::ExtScriptContext[][src]

pub trait ExtScriptContext: ScriptContext {
-    fn as_enum() -> ScriptContextEnum;
-
-    fn is_legacy() -> bool { ... }
-
fn is_segwit_v0() -> bool { ... } -}
Expand description

Trait that adds extra useful methods to ScriptContexts

-

Required methods

Provided methods

Returns whether the script context is Legacy

-

Returns whether the script context is Segwitv0

-

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableDefaultOptions.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableDefaultOptions.html deleted file mode 100644 index 8f4f7769dc..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableDefaultOptions.html +++ /dev/null @@ -1,13 +0,0 @@ -GeneratableDefaultOptions in bdk::keys - Rust -

Trait bdk::keys::GeneratableDefaultOptions[][src]

pub trait GeneratableDefaultOptions<Ctx>: GeneratableKey<Ctx> where
    Ctx: ScriptContext,
    <Self as GeneratableKey<Ctx>>::Options: Default
{ - fn generate_with_entropy_default(
        entropy: Self::Entropy
    ) -> Result<GeneratedKey<Self, Ctx>, Self::Error> { ... } -
fn generate_default() -> Result<GeneratedKey<Self, Ctx>, Self::Error> { ... } -}
Expand description

Trait that allows generating a key with the default options

-

This trait is automatically implemented if the GeneratableKey::Options implements Default.

-

Provided methods

Generate a key with the default options and a given entropy

-

Generate a key with the default options and a random entropy

-

Implementors

Automatic implementation of GeneratableDefaultOptions for GeneratableKeys where -Options implements Default

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableKey.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableKey.html deleted file mode 100644 index c7cb024687..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableKey.html +++ /dev/null @@ -1,22 +0,0 @@ -GeneratableKey in bdk::keys - Rust -

Trait bdk::keys::GeneratableKey[][src]

pub trait GeneratableKey<Ctx: ScriptContext>: Sized {
-    type Entropy: AsMut<[u8]> + Default;
-    type Options;
-    type Error: Debug;
-    fn generate_with_entropy(
        options: Self::Options,
        entropy: Self::Entropy
    ) -> Result<GeneratedKey<Self, Ctx>, Self::Error>; - - fn generate(
        options: Self::Options
    ) -> Result<GeneratedKey<Self, Ctx>, Self::Error> { ... } -}
Expand description

Trait for keys that can be generated

-

The same rules about ScriptContext and ValidNetworks from IntoDescriptorKey apply.

-

This trait is particularly useful when combined with DerivableKey: if Self -implements it, the returned GeneratedKey will also implement it. The same is true for -IntoDescriptorKey: the generated keys can be directly used in descriptors if Self is also -IntoDescriptorKey.

-

Associated Types

Type specifying the amount of entropy required e.g. [u8;32]

-

Extra options required by the generate_with_entropy

-

Returned error in case of failure

-

Required methods

Generate a key given the extra options and the entropy

-

Provided methods

Generate a key given the options with a random entropy

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.IntoDescriptorKey.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.IntoDescriptorKey.html deleted file mode 100644 index 8a85318131..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.IntoDescriptorKey.html +++ /dev/null @@ -1,108 +0,0 @@ -IntoDescriptorKey in bdk::keys - Rust -

Trait bdk::keys::IntoDescriptorKey[][src]

pub trait IntoDescriptorKey<Ctx: ScriptContext>: Sized {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError>;
-}
Expand description

Trait for objects that can be turned into a public or secret DescriptorKey

-

The generic type Ctx is used to define the context in which the key is valid: some key -formats, like the mnemonics used by Electrum wallets, encode internally whether the wallet is -legacy or segwit. Thus, trying to turn a valid legacy mnemonic into a DescriptorKey -that would become part of a segwit descriptor should fail.

-

For key types that do care about this, the ExtScriptContext trait provides some useful -methods that can be used to check at runtime which Ctx is being used.

-

For key types that can do this check statically (because they can only work within a -single Ctx), the “specialized” trait can be implemented to make the compiler handle the type -checking.

-

Keys also have control over the networks they support: constructing the return object with -DescriptorKey::from_public or DescriptorKey::from_secret allows to specify a set of -ValidNetworks.

-

Examples

-

Key type valid in any context:

- -
use bdk::bitcoin::PublicKey;
-
-use bdk::keys::{DescriptorKey, IntoDescriptorKey, KeyError, ScriptContext};
-
-pub struct MyKeyType {
-    pubkey: PublicKey,
-}
-
-impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for MyKeyType {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        self.pubkey.into_descriptor_key()
-    }
-}
-

Key type that is only valid on mainnet:

- -
use bdk::bitcoin::PublicKey;
-
-use bdk::keys::{
-    mainnet_network, DescriptorKey, DescriptorPublicKey, DescriptorSinglePub,
-    IntoDescriptorKey, KeyError, ScriptContext,
-};
-
-pub struct MyKeyType {
-    pubkey: PublicKey,
-}
-
-impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for MyKeyType {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        Ok(DescriptorKey::from_public(
-            DescriptorPublicKey::SinglePub(DescriptorSinglePub {
-                origin: None,
-                key: self.pubkey,
-            }),
-            mainnet_network(),
-        ))
-    }
-}
-

Key type that internally encodes in which context it’s valid. The context is checked at runtime:

- -
use bdk::bitcoin::PublicKey;
-
-use bdk::keys::{DescriptorKey, ExtScriptContext, IntoDescriptorKey, KeyError, ScriptContext};
-
-pub struct MyKeyType {
-    is_legacy: bool,
-    pubkey: PublicKey,
-}
-
-impl<Ctx: ScriptContext + 'static> IntoDescriptorKey<Ctx> for MyKeyType {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        if Ctx::is_legacy() == self.is_legacy {
-            self.pubkey.into_descriptor_key()
-        } else {
-            Err(KeyError::InvalidScriptContext)
-        }
-    }
-}
-

Key type that can only work within miniscript::Segwitv0 context. Only the specialized version -of the trait is implemented.

-

This example deliberately fails to compile, to demonstrate how the compiler can catch when keys -are misused. In this case, the “segwit-only” key is used to build a pkh() descriptor, which -makes the compiler (correctly) fail.

- -
ⓘ
use bdk::bitcoin::PublicKey;
-use std::str::FromStr;
-
-use bdk::keys::{DescriptorKey, IntoDescriptorKey, KeyError};
-
-pub struct MySegwitOnlyKeyType {
-    pubkey: PublicKey,
-}
-
-impl IntoDescriptorKey<bdk::miniscript::Segwitv0> for MySegwitOnlyKeyType {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<bdk::miniscript::Segwitv0>, KeyError> {
-        self.pubkey.into_descriptor_key()
-    }
-}
-
-let key = MySegwitOnlyKeyType {
-    pubkey: PublicKey::from_str("...")?,
-};
-let (descriptor, _, _) = bdk::descriptor!(pkh(key))?;
-//                                       ^^^^^ changing this to `wpkh` would make it compile
-
-

Required methods

Turn the key into a DescriptorKey within the requested ScriptContext

-

Implementations on Foreign Types

Implementors

The “identity” conversion is used internally by some bdk::fragments

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.ScriptContext.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.ScriptContext.html deleted file mode 100644 index 107cb058a9..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/trait.ScriptContext.html +++ /dev/null @@ -1,78 +0,0 @@ -ScriptContext in bdk::keys - Rust -

Trait bdk::keys::ScriptContext[]

pub trait ScriptContext: Debug + Clone + Ord + PartialOrd<Self> + Eq + PartialEq<Self> + Hash + Sealed {
-    fn check_terminal_non_malleable<Pk, Ctx>(
        _frag: &Terminal<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
; -
fn max_satisfaction_size<Pk, Ctx>(ms: &Miniscript<Pk, Ctx>) -> Option<usize>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
; - - fn check_witness<Pk, Ctx>(
        _witness: &[Vec<u8, Global>]
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_global_consensus_validity<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_global_policy_validity<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_local_consensus_validity<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_local_policy_validity<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_global_validity<Pk, Ctx>(
        ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn check_local_validity<Pk, Ctx>(
        ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), ScriptContextError>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn top_level_type_check<Pk, Ctx>(
        ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), Error>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn other_top_level_checks<Pk, Ctx>(
        _ms: &Miniscript<Pk, Ctx>
    ) -> Result<(), Error>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -
fn top_level_checks<Pk, Ctx>(ms: &Miniscript<Pk, Ctx>) -> Result<(), Error>
    where
        Pk: MiniscriptKey,
        Ctx: ScriptContext
, - { ... } -}
Expand description

The ScriptContext for Miniscript. Additional type information associated with -miniscript that is used for carrying out checks that dependent on the -context under which the script is used. -For example, disallowing uncompressed keys in Segwit context

-

Required methods

Depending on ScriptContext, fragments can be malleable. For Example, -under Legacy context, PkH is malleable because it is possible to -estimate the cost of satisfaction because of compressed keys -This is currently only used in compiler code for removing malleable -compilations. -This does NOT recursively check if the children of the fragment are -valid or not. Since the compilation proceeds in a leaf to root fashion, -a recursive check is unnecessary.

-

Depending on script context, the size of a satifaction witness may slightly differ.

-

Provided methods

Check whether the given satisfaction is valid under the ScriptContext -For example, segwit satisfactions may fail if the witness len is more -3600 or number of stack elements are more than 100.

-

Depending on script Context, some of the Terminals might not -be valid under the current consensus rules. -Or some of the script resource limits may have been exceeded. -These miniscripts would never be accepted by the Bitcoin network and hence -it is safe to discard them -For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey -uncompressed public keys are non-standard and thus invalid. -In LegacyP2SH context, scripts above 520 bytes are invalid. -Post Tapscript upgrade, this would have to consider other nodes. -This does NOT recursively check the miniscript fragments.

-

Depending on script Context, some of the script resource limits -may have been exceeded under the current bitcoin core policy rules -These miniscripts would never be accepted by the Bitcoin network and hence -it is safe to discard them. (unless explicitly disabled by non-standard flag) -For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey -scripts over 3600 bytes are invalid. -Post Tapscript upgrade, this would have to consider other nodes. -This does NOT recursively check the miniscript fragments.

-

Consensus rules at the Miniscript satisfaction time. -It is possible that some paths of miniscript may exceed resource limits -and our current satisfier and lifting analysis would not work correctly. -For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes.

-

Policy rules at the Miniscript satisfaction time. -It is possible that some paths of miniscript may exceed resource limits -and our current satisfier and lifting analysis would not work correctly. -For example, satisfaction path in Legacy context scriptSig more -than 1650 bytes

-

Check the consensus + policy(if not disabled) rules that are not based -satisfaction

-

Check the consensus + policy(if not disabled) rules including the -ones for satisfaction

-

Check whether the top-level is type B

-

Other top level checks that are context specific

-

Check top level consensus rules.

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/type.KeyMap.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/type.KeyMap.html deleted file mode 100644 index 8161d42e1f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/type.KeyMap.html +++ /dev/null @@ -1,9 +0,0 @@ -KeyMap in bdk::keys - Rust -

Type Definition bdk::keys::KeyMap[]

Expand description

Alias type for a map of public key to secret key

-

This map is returned whenever a descriptor that contains secrets is parsed using -Descriptor::parse_descriptor, since the descriptor will always only contain -public keys. This map allows looking up the corresponding secret key given a -public key from the descriptor.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/keys/type.ValidNetworks.html b/static/docs-rs/bdk/nightly/latest/bdk/keys/type.ValidNetworks.html deleted file mode 100644 index 3910fc93ec..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/keys/type.ValidNetworks.html +++ /dev/null @@ -1,5 +0,0 @@ -ValidNetworks in bdk::keys - Rust -

Type Definition bdk::keys::ValidNetworks[][src]

pub type ValidNetworks = HashSet<Network>;
Expand description

Set of valid networks for a key

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/macro.descriptor!.html b/static/docs-rs/bdk/nightly/latest/bdk/macro.descriptor!.html deleted file mode 100644 index 976e018bd9..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/macro.descriptor!.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to macro.descriptor.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/macro.descriptor.html b/static/docs-rs/bdk/nightly/latest/bdk/macro.descriptor.html deleted file mode 100644 index 3e9acaa44f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/macro.descriptor.html +++ /dev/null @@ -1,80 +0,0 @@ -descriptor in bdk - Rust -

Macro bdk::descriptor[][src]

macro_rules! descriptor {
-    (bare($($minisc : tt) *)) => { ... };
-    (sh(wsh($($minisc : tt) *))) => { ... };
-    (shwsh($($minisc : tt) *)) => { ... };
-    (pk($key : expr)) => { ... };
-    (pkh($key : expr)) => { ... };
-    (wpkh($key : expr)) => { ... };
-    (sh(wpkh($key : expr))) => { ... };
-    (shwpkh($key : expr)) => { ... };
-    (sh($($minisc : tt) *)) => { ... };
-    (wsh($($minisc : tt) *)) => { ... };
-}
-
Expand description

Macro to write full descriptors with code

-

This macro expands to a Result of -DescriptorTemplateOut and DescriptorError

-

The syntax is very similar to the normal descriptor syntax, with the exception that modifiers -cannot be grouped together. For instance, a descriptor fragment like sdv:older(144) has to be -broken up to s:d:v:older(144).

-

The pk(), pk_k() and pk_h() operands can take as argument any type that implements -IntoDescriptorKey. This means that keys can also be written inline as strings, but in that -case they must be wrapped in quotes, which is another difference compared to the standard -descriptor syntax.

-

Example

-

Signature plus timelock descriptor:

- -
let (my_descriptor, my_keys_map, networks) = bdk::descriptor!(sh(wsh(and_v(v:pk("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"),older(50)))))?;
-
-

2-of-3 that becomes a 1-of-3 after a timelock has expired. Both descriptor_a and descriptor_b are equivalent: the first -syntax is more suitable for a fixed number of items known at compile time, while the other accepts a -Vec of items, which makes it more suitable for writing dynamic descriptors.

-

They both produce the descriptor: wsh(thresh(2,pk(...),s:pk(...),sdv:older(...)))

- -
let my_key_1 = bitcoin::PublicKey::from_str(
-    "02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c",
-)?;
-let my_key_2 =
-    bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
-let my_timelock = 50;
-
-let (descriptor_a, key_map_a, networks) = bdk::descriptor! {
-    wsh (
-        thresh(2, pk(my_key_1), s:pk(my_key_2), s:d:v:older(my_timelock))
-    )
-}?;
-
-#[rustfmt::skip]
-let b_items = vec![
-    bdk::fragment!(pk(my_key_1))?,
-    bdk::fragment!(s:pk(my_key_2))?,
-    bdk::fragment!(s:d:v:older(my_timelock))?,
-];
-let (descriptor_b, mut key_map_b, networks) = bdk::descriptor!(wsh(thresh_vec(2, b_items)))?;
-
-assert_eq!(descriptor_a, descriptor_b);
-assert_eq!(key_map_a.len(), key_map_b.len());
-
-

Simple 2-of-2 multi-signature, equivalent to: wsh(multi(2, ...))

- -
let my_key_1 = bitcoin::PublicKey::from_str(
-    "02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c",
-)?;
-let my_key_2 =
-    bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
-
-let (descriptor, key_map, networks) = bdk::descriptor! {
-    wsh (
-        multi(2, my_key_1, my_key_2)
-    )
-}?;
-
-

Native-Segwit single-sig, equivalent to: wpkh(...)

- -
let my_key =
-    bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
-
-let (descriptor, key_map, networks) = bdk::descriptor!(wpkh(my_key))?;
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/macro.fragment!.html b/static/docs-rs/bdk/nightly/latest/bdk/macro.fragment!.html deleted file mode 100644 index 6eeebba321..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/macro.fragment!.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to macro.fragment.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/macro.fragment.html b/static/docs-rs/bdk/nightly/latest/bdk/macro.fragment.html deleted file mode 100644 index 4a9c1388c3..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/macro.fragment.html +++ /dev/null @@ -1,36 +0,0 @@ -fragment in bdk - Rust -

Macro bdk::fragment[][src]

macro_rules! fragment {
-    ($modif : tt : $($tail : tt) *) => { ... };
-    (true) => { ... };
-    (false) => { ... };
-    (pk_k($key : expr)) => { ... };
-    (pk($key : expr)) => { ... };
-    (pk_h($key : expr)) => { ... };
-    (after($value : expr)) => { ... };
-    (older($value : expr)) => { ... };
-    (sha256($hash : expr)) => { ... };
-    (hash256($hash : expr)) => { ... };
-    (ripemd160($hash : expr)) => { ... };
-    (hash160($hash : expr)) => { ... };
-    (and_v($($inner : tt) *)) => { ... };
-    (and_b($($inner : tt) *)) => { ... };
-    (and_or($($inner : tt) *)) => { ... };
-    (andor($($inner : tt) *)) => { ... };
-    (or_b($($inner : tt) *)) => { ... };
-    (or_d($($inner : tt) *)) => { ... };
-    (or_c($($inner : tt) *)) => { ... };
-    (or_i($($inner : tt) *)) => { ... };
-    (thresh_vec($thresh : expr, $items : expr)) => { ... };
-    (thresh($thresh : expr, $($inner : tt) *)) => { ... };
-    (multi_vec($thresh : expr, $keys : expr)) => { ... };
-    (multi($thresh : expr $(, $key : expr) +)) => { ... };
-    (sortedmulti($($inner : tt) *)) => { ... };
-    (sortedmulti_vec($($inner : tt) *)) => { ... };
-}
-
Expand description

Macro to write descriptor fragments with code

-

This macro will be expanded to an object of type Result<(Miniscript<DescriptorPublicKey, _>, KeyMap, ValidNetworks), DescriptorError>. It allows writing -fragments of larger descriptors that can be pieced together using fragment!(thresh_vec(m, ...)).

-

The syntax to write macro fragment is the same as documented for the descriptor macro.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/sidebar-items.js deleted file mode 100644 index 6b216d6b77..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["Error","Errors that can be thrown by the `Wallet`"],["KeychainKind","Types of keychains"],["Utxo","An unspent transaction output (UTXO)."]],"externcrate":[["bitcoin",""],["electrum_client",""],["miniscript",""],["rusqlite",""],["sled",""]],"fn":[["version","Get the version of BDK at runtime"]],"macro":[["descriptor","Macro to write full descriptors with code"],["fragment","Macro to write descriptor fragments with code"]],"mod":[["blockchain","Blockchain backends"],["database","Database types"],["descriptor","Descriptors"],["keys","Key formats"],["wallet","Wallet"]],"struct":[["BlockTime","Block height and timestamp of a block"],["FeeRate","Fee rate"],["LocalUtxo","An unspent output owned by a `Wallet`."],["TransactionDetails","A wallet transaction"],["WeightedUtxo","A [`Utxo`] with its `satisfaction_weight`."]],"trait":[["Vbytes","Trait implemented by types that can be used to measure weight units."]],"type":[["ConfirmationTime","DEPRECATED: Confirmation time of a transaction"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/struct.BlockTime.html b/static/docs-rs/bdk/nightly/latest/bdk/struct.BlockTime.html deleted file mode 100644 index 60242ca796..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/struct.BlockTime.html +++ /dev/null @@ -1,38 +0,0 @@ -BlockTime in bdk - Rust -

Struct bdk::BlockTime[][src]

pub struct BlockTime {
-    pub height: u32,
-    pub timestamp: u64,
-}
Expand description

Block height and timestamp of a block

-

Fields

height: u32

confirmation block height

-
timestamp: u64

confirmation block timestamp

-

Implementations

Returns Some BlockTime if both height and timestamp are Some

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/struct.FeeRate.html b/static/docs-rs/bdk/nightly/latest/bdk/struct.FeeRate.html deleted file mode 100644 index 9245c946b9..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/struct.FeeRate.html +++ /dev/null @@ -1,47 +0,0 @@ -FeeRate in bdk - Rust -

Struct bdk::FeeRate[][src]

pub struct FeeRate(_);
Expand description

Fee rate

-

Implementations

Create a new instance of FeeRate given a float fee rate in btc/kvbytes

-

Create a new instance of FeeRate given a float fee rate in satoshi/vbyte

-

Create a new FeeRate with the default min relay fee value

-

Calculate fee rate from fee and weight units (wu).

-

Calculate fee rate from fee and vbytes.

-

Return the value as satoshi/vbyte

-

Calculate absolute fee in Satoshis using size in weight units.

-

Calculate absolute fee in Satoshis using size in virtual bytes.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

The resulting type after applying the - operator.

-

Performs the - operation. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/struct.LocalUtxo.html b/static/docs-rs/bdk/nightly/latest/bdk/struct.LocalUtxo.html deleted file mode 100644 index 1712f36b52..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/struct.LocalUtxo.html +++ /dev/null @@ -1,40 +0,0 @@ -LocalUtxo in bdk - Rust -

Struct bdk::LocalUtxo[][src]

pub struct LocalUtxo {
-    pub outpoint: OutPoint,
-    pub txout: TxOut,
-    pub keychain: KeychainKind,
-}
Expand description

An unspent output owned by a Wallet.

-

Fields

outpoint: OutPoint

Reference to a transaction output

-
txout: TxOut

Transaction output

-
keychain: KeychainKind

Type of keychain

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/struct.TransactionDetails.html b/static/docs-rs/bdk/nightly/latest/bdk/struct.TransactionDetails.html deleted file mode 100644 index 680670adec..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/struct.TransactionDetails.html +++ /dev/null @@ -1,55 +0,0 @@ -TransactionDetails in bdk - Rust -

Struct bdk::TransactionDetails[][src]

pub struct TransactionDetails {
-    pub transaction: Option<Transaction>,
-    pub txid: Txid,
-    pub received: u64,
-    pub sent: u64,
-    pub fee: Option<u64>,
-    pub confirmation_time: Option<BlockTime>,
-    pub verified: bool,
-}
Expand description

A wallet transaction

-

Fields

transaction: Option<Transaction>

Optional transaction

-
txid: Txid

Transaction id

-
received: u64

Received value (sats)

-
sent: u64

Sent value (sats)

-
fee: Option<u64>

Fee value (sats) if available. -The availability of the fee depends on the backend. It’s never None with an Electrum -Server backend, but it could be None with a Bitcoin RPC node without txindex that receive -funds while offline.

-
confirmation_time: Option<BlockTime>

If the transaction is confirmed, contains height and timestamp of the block containing the -transaction, unconfirmed transaction contains None.

-
verified: bool

Whether the tx has been verified against the consensus rules

-

Confirmed txs are considered “verified” by default, while unconfirmed txs are checked to -ensure an unstrusted Blockchain backend can’t trick the -wallet into using an invalid tx as an RBF template.

-

The check is only performed when the verify feature is enabled.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/struct.WeightedUtxo.html b/static/docs-rs/bdk/nightly/latest/bdk/struct.WeightedUtxo.html deleted file mode 100644 index 37f94f80b0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/struct.WeightedUtxo.html +++ /dev/null @@ -1,35 +0,0 @@ -WeightedUtxo in bdk - Rust -

Struct bdk::WeightedUtxo[][src]

pub struct WeightedUtxo {
-    pub satisfaction_weight: usize,
-    pub utxo: Utxo,
-}
Expand description

A Utxo with its satisfaction_weight.

-

Fields

satisfaction_weight: usize

The weight of the witness data and scriptSig expressed in weight units. This is used to -properly maintain the feerate when adding this input to a transaction during coin selection.

-
utxo: Utxo

The UTXO

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/trait.Vbytes.html b/static/docs-rs/bdk/nightly/latest/bdk/trait.Vbytes.html deleted file mode 100644 index 8766b4dcf0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/trait.Vbytes.html +++ /dev/null @@ -1,8 +0,0 @@ -Vbytes in bdk - Rust -

Trait bdk::Vbytes[][src]

pub trait Vbytes {
-    fn vbytes(self) -> usize;
-}
Expand description

Trait implemented by types that can be used to measure weight units.

-

Required methods

Convert weight units to virtual bytes.

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/type.ConfirmationTime.html b/static/docs-rs/bdk/nightly/latest/bdk/type.ConfirmationTime.html deleted file mode 100644 index 6c1d9d7aba..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/type.ConfirmationTime.html +++ /dev/null @@ -1,7 +0,0 @@ -ConfirmationTime in bdk - Rust -

Type Definition bdk::ConfirmationTime[][src]

pub type ConfirmationTime = BlockTime;
👎 Deprecated:

This structure has been renamed to BlockTime

-
Expand description

DEPRECATED: Confirmation time of a transaction

-

The structure has been renamed to BlockTime

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/types/enum.KeychainKind.html b/static/docs-rs/bdk/nightly/latest/bdk/types/enum.KeychainKind.html deleted file mode 100644 index 03524a9b17..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/types/enum.KeychainKind.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/enum.KeychainKind.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/types/enum.Utxo.html b/static/docs-rs/bdk/nightly/latest/bdk/types/enum.Utxo.html deleted file mode 100644 index 03f5add737..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/types/enum.Utxo.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/enum.Utxo.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.BlockTime.html b/static/docs-rs/bdk/nightly/latest/bdk/types/struct.BlockTime.html deleted file mode 100644 index 1aeb0d712d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.BlockTime.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/struct.BlockTime.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.FeeRate.html b/static/docs-rs/bdk/nightly/latest/bdk/types/struct.FeeRate.html deleted file mode 100644 index fae2b90fdc..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.FeeRate.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/struct.FeeRate.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.LocalUtxo.html b/static/docs-rs/bdk/nightly/latest/bdk/types/struct.LocalUtxo.html deleted file mode 100644 index eeb7867365..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.LocalUtxo.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/struct.LocalUtxo.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.TransactionDetails.html b/static/docs-rs/bdk/nightly/latest/bdk/types/struct.TransactionDetails.html deleted file mode 100644 index 4348bd4a45..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.TransactionDetails.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/struct.TransactionDetails.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.WeightedUtxo.html b/static/docs-rs/bdk/nightly/latest/bdk/types/struct.WeightedUtxo.html deleted file mode 100644 index 5e7d643399..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/types/struct.WeightedUtxo.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/struct.WeightedUtxo.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/types/trait.Vbytes.html b/static/docs-rs/bdk/nightly/latest/bdk/types/trait.Vbytes.html deleted file mode 100644 index 1074aa3d4a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/types/trait.Vbytes.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/trait.Vbytes.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/types/type.ConfirmationTime.html b/static/docs-rs/bdk/nightly/latest/bdk/types/type.ConfirmationTime.html deleted file mode 100644 index 52ce4499bb..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/types/type.ConfirmationTime.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk/type.ConfirmationTime.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/enum.AddressValidatorError.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/enum.AddressValidatorError.html deleted file mode 100644 index 66caec4e08..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/enum.AddressValidatorError.html +++ /dev/null @@ -1,47 +0,0 @@ -AddressValidatorError in bdk::wallet::address_validator - Rust -

Enum bdk::wallet::address_validator::AddressValidatorError[][src]

pub enum AddressValidatorError {
-    UserRejected,
-    ConnectionError,
-    TimeoutError,
-    InvalidScript,
-    Message(String),
-}
Expand description

Errors that can be returned to fail the validation of an address

-

Variants

UserRejected

User rejected the address

-

ConnectionError

Network connection error

-

TimeoutError

Network request timeout error

-

InvalidScript

Invalid script

-

Message(String)

Tuple Fields

0: String

A custom error message

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/index.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/index.html deleted file mode 100644 index fb3c44189c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/index.html +++ /dev/null @@ -1,47 +0,0 @@ -bdk::wallet::address_validator - Rust -

Module bdk::wallet::address_validator[][src]

Expand description

Address validation callbacks

-

The typical usage of those callbacks is for displaying the newly-generated address on a -hardware wallet, so that the user can cross-check its correctness.

-

More generally speaking though, these callbacks can also be used to “do something” every time -an address is generated, without necessarily checking or validating it.

-

An address validator can be attached to a Wallet by using the -Wallet::add_address_validator method, and -whenever a new address is generated (either explicitly by the user with -Wallet::get_address or internally to create a change -address) all the attached validators will be polled, in sequence. All of them must complete -successfully to continue.

-

Example

-
#[derive(Debug)]
-struct PrintAddressAndContinue;
-
-impl AddressValidator for PrintAddressAndContinue {
-    fn validate(
-        &self,
-        keychain: KeychainKind,
-        hd_keypaths: &HdKeyPaths,
-        script: &Script
-    ) -> Result<(), AddressValidatorError> {
-        let address = Address::from_script(script, Network::Testnet)
-            .as_ref()
-            .map(Address::to_string)
-            .unwrap_or(script.to_string());
-        println!("New address of type {:?}: {}", keychain, address);
-        println!("HD keypaths: {:#?}", hd_keypaths);
-
-        Ok(())
-    }
-}
-
-let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
-let mut wallet = Wallet::new_offline(descriptor, None, Network::Testnet, MemoryDatabase::default())?;
-wallet.add_address_validator(Arc::new(PrintAddressAndContinue));
-
-let address = wallet.get_address(New)?;
-println!("Address: {}", address);
-

Enums

-

Errors that can be returned to fail the validation of an address

-

Traits

-

Trait to build address validators

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/sidebar-items.js deleted file mode 100644 index 58959ba340..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["AddressValidatorError","Errors that can be returned to fail the validation of an address"]],"trait":[["AddressValidator","Trait to build address validators"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/trait.AddressValidator.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/trait.AddressValidator.html deleted file mode 100644 index 69299c835c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/address_validator/trait.AddressValidator.html +++ /dev/null @@ -1,12 +0,0 @@ -AddressValidator in bdk::wallet::address_validator - Rust -

Trait bdk::wallet::address_validator::AddressValidator[][src]

pub trait AddressValidator: Send + Sync + Debug {
-    fn validate(
        &self,
        keychain: KeychainKind,
        hd_keypaths: &HdKeyPaths,
        script: &Script
    ) -> Result<(), AddressValidatorError>; -}
Expand description

Trait to build address validators

-

All the address validators attached to a wallet with Wallet::add_address_validator will be polled -every time an address (external or internal) is generated by the wallet. Errors returned in the -validator will be propagated up to the original caller that triggered the address generation.

-

For a usage example see this module’s documentation.

-

Required methods

Validate or inspect an address

-

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/index.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/index.html deleted file mode 100644 index 94cad6065e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/index.html +++ /dev/null @@ -1,74 +0,0 @@ -bdk::wallet::coin_selection - Rust -

Module bdk::wallet::coin_selection[][src]

Expand description

Coin selection

-

This module provides the trait CoinSelectionAlgorithm that can be implemented to -define custom coin selection algorithms.

-

You can specify a custom coin selection algorithm through the coin_selection method on -TxBuilder. DefaultCoinSelectionAlgorithm aliases the coin selection algorithm that will -be used if it is not explicitly set.

-

Example

-
#[derive(Debug)]
-struct AlwaysSpendEverything;
-
-impl<D: Database> CoinSelectionAlgorithm<D> for AlwaysSpendEverything {
-    fn coin_select(
-        &self,
-        database: &D,
-        required_utxos: Vec<WeightedUtxo>,
-        optional_utxos: Vec<WeightedUtxo>,
-        fee_rate: FeeRate,
-        amount_needed: u64,
-        fee_amount: u64,
-    ) -> Result<CoinSelectionResult, bdk::Error> {
-        let mut selected_amount = 0;
-        let mut additional_weight = 0;
-        let all_utxos_selected = required_utxos
-            .into_iter()
-            .chain(optional_utxos)
-            .scan(
-                (&mut selected_amount, &mut additional_weight),
-                |(selected_amount, additional_weight), weighted_utxo| {
-                    **selected_amount += weighted_utxo.utxo.txout().value;
-                    **additional_weight += TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight;
-                    Some(weighted_utxo.utxo)
-                },
-            )
-            .collect::<Vec<_>>();
-        let additional_fees = fee_rate.fee_wu(additional_weight);
-        let amount_needed_with_fees = (fee_amount + additional_fees) + amount_needed;
-        if amount_needed_with_fees > selected_amount {
-            return Err(bdk::Error::InsufficientFunds {
-                needed: amount_needed_with_fees,
-                available: selected_amount,
-            });
-        }
-
-        Ok(CoinSelectionResult {
-            selected: all_utxos_selected,
-            fee_amount: fee_amount + additional_fees,
-        })
-    }
-}
-
-// create wallet, sync, ...
-
-let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-let (psbt, details) = {
-    let mut builder = wallet.build_tx().coin_selection(AlwaysSpendEverything);
-    builder.add_recipient(to_address.script_pubkey(), 50_000);
-    builder.finish()?
-};
-
-// inspect, sign, broadcast, ...
-
-

Structs

-

Branch and bound coin selection

-

Result of a successful coin selection

-

Simple and dumb coin selection

-

Traits

-

Trait for generalized coin selection algorithms

-

Type Definitions

-

Default coin selection algorithm used by TxBuilder if not -overridden

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/sidebar-items.js deleted file mode 100644 index 8e7e293b89..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"struct":[["BranchAndBoundCoinSelection","Branch and bound coin selection"],["CoinSelectionResult","Result of a successful coin selection"],["LargestFirstCoinSelection","Simple and dumb coin selection"]],"trait":[["CoinSelectionAlgorithm","Trait for generalized coin selection algorithms"]],"type":[["DefaultCoinSelectionAlgorithm","Default coin selection algorithm used by `TxBuilder` if not overridden"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html deleted file mode 100644 index dc63d49d9e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html +++ /dev/null @@ -1,25 +0,0 @@ -BranchAndBoundCoinSelection in bdk::wallet::coin_selection - Rust -

Struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection[][src]

pub struct BranchAndBoundCoinSelection { /* fields omitted */ }
Expand description

Branch and bound coin selection

-

Code adapted from Bitcoin Core’s implementation and from Mark Erhardt Master’s Thesis: http://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf

-

Implementations

Create new instance with target size for change output

-

Trait Implementations

Perform the coin selection Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.CoinSelectionResult.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.CoinSelectionResult.html deleted file mode 100644 index 6a3bd3ba73..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.CoinSelectionResult.html +++ /dev/null @@ -1,28 +0,0 @@ -CoinSelectionResult in bdk::wallet::coin_selection - Rust -

Struct bdk::wallet::coin_selection::CoinSelectionResult[][src]

pub struct CoinSelectionResult {
-    pub selected: Vec<Utxo>,
-    pub fee_amount: u64,
-}
Expand description

Result of a successful coin selection

-

Fields

selected: Vec<Utxo>

List of outputs selected for use as inputs

-
fee_amount: u64

Total fee amount in satoshi

-

Implementations

The total value of the inputs selected.

-

The total value of the inputs selected from the local wallet.

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html deleted file mode 100644 index 8ec54a6db6..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html +++ /dev/null @@ -1,30 +0,0 @@ -LargestFirstCoinSelection in bdk::wallet::coin_selection - Rust -

Struct bdk::wallet::coin_selection::LargestFirstCoinSelection[][src]

pub struct LargestFirstCoinSelection;
Expand description

Simple and dumb coin selection

-

This coin selection algorithm sorts the available UTXOs by value and then picks them starting -from the largest ones until the required amount is reached.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Perform the coin selection Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.html deleted file mode 100644 index f04a5f5ec7..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.html +++ /dev/null @@ -1,23 +0,0 @@ -CoinSelectionAlgorithm in bdk::wallet::coin_selection - Rust -

Trait bdk::wallet::coin_selection::CoinSelectionAlgorithm[][src]

pub trait CoinSelectionAlgorithm<D: Database>: Debug {
-    fn coin_select(
        &self,
        database: &D,
        required_utxos: Vec<WeightedUtxo>,
        optional_utxos: Vec<WeightedUtxo>,
        fee_rate: FeeRate,
        amount_needed: u64,
        fee_amount: u64
    ) -> Result<CoinSelectionResult, Error>; -}
Expand description

Trait for generalized coin selection algorithms

-

This trait can be implemented to make the Wallet use a customized coin -selection algorithm when it creates transactions.

-

For an example see this module’s documentation.

-

Required methods

Perform the coin selection

-
    -
  • database: a reference to the wallet’s database that can be used to lookup additional -details for a specific UTXO
  • -
  • required_utxos: the utxos that must be spent regardless of amount_needed with their -weight cost
  • -
  • optional_utxos: the remaining available utxos to satisfy amount_needed with their -weight cost
  • -
  • fee_rate: fee rate to use
  • -
  • amount_needed: the amount in satoshi to select
  • -
  • fee_amount: the amount of fees in satoshi already accumulated from adding outputs and -the transaction’s header
  • -
-

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html deleted file mode 100644 index be26ddbde0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html +++ /dev/null @@ -1,6 +0,0 @@ -DefaultCoinSelectionAlgorithm in bdk::wallet::coin_selection - Rust -

Type Definition bdk::wallet::coin_selection::DefaultCoinSelectionAlgorithm[][src]

pub type DefaultCoinSelectionAlgorithm = BranchAndBoundCoinSelection;
Expand description

Default coin selection algorithm used by TxBuilder if not -overridden

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/enum.AddressIndex.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/enum.AddressIndex.html deleted file mode 100644 index cb85ef3389..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/enum.AddressIndex.html +++ /dev/null @@ -1,45 +0,0 @@ -AddressIndex in bdk::wallet - Rust -

Enum bdk::wallet::AddressIndex[][src]

pub enum AddressIndex {
-    New,
-    LastUnused,
-    Peek(u32),
-    Reset(u32),
-}
Expand description

The address index selection strategy to use to derived an address from the wallet’s external -descriptor. See Wallet::get_address. If you’re unsure which one to use use WalletIndex::New.

-

Variants

New

Return a new address after incrementing the current descriptor index.

-

LastUnused

Return the address for the current descriptor index if it has not been used in a received -transaction. Otherwise return a new address as with AddressIndex::New.

-

Use with caution, if the wallet has not yet detected an address has been used it could -return an already used address. This function is primarily meant for situations where the -caller is untrusted; for example when deriving donation addresses on-demand for a public -web page.

-

Peek(u32)

Tuple Fields

0: u32

Return the address for a specific descriptor index. Does not change the current descriptor -index used by AddressIndex::New and AddressIndex::LastUsed.

-

Use with caution, if an index is given that is less than the current descriptor index -then the returned address may have already been used.

-

Reset(u32)

Tuple Fields

0: u32

Return the address for a specific descriptor index and reset the current descriptor index -used by AddressIndex::New and AddressIndex::LastUsed to this value.

-

Use with caution, if an index is given that is less than the current descriptor index -then the returned address and subsequent addresses returned by calls to AddressIndex::New -and AddressIndex::LastUsed may have already been used. Also if the index is reset to a -value earlier than the crate::blockchain::Blockchain stop_gap (default is 20) then a -larger stop_gap should be used to monitor for all possibly used addresses.

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/export/index.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/export/index.html deleted file mode 100644 index 302f1c1433..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/export/index.html +++ /dev/null @@ -1,34 +0,0 @@ -bdk::wallet::export - Rust -

Module bdk::wallet::export[][src]

Expand description

Wallet export

-

This modules implements the wallet export format used by FullyNoded.

-

Examples

Import from JSON

-
let import = r#"{
-    "descriptor": "wpkh([c258d2e4\/84h\/1h\/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe\/0\/*)",
-    "blockheight":1782088,
-    "label":"testnet"
-}"#;
-
-let import = WalletExport::from_str(import)?;
-let wallet = Wallet::new_offline(
-    &import.descriptor(),
-    import.change_descriptor().as_ref(),
-    Network::Testnet,
-    MemoryDatabase::default(),
-)?;
-

Export a Wallet

-
let wallet = Wallet::new_offline(
-    "wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/0/*)",
-    Some("wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/1/*)"),
-    Network::Testnet,
-    MemoryDatabase::default()
-)?;
-let export = WalletExport::export_wallet(&wallet, "exported wallet", true)
-    .map_err(ToString::to_string)
-    .map_err(bdk::Error::Generic)?;
-
-println!("Exported: {}", export.to_string());
-

Structs

-

Structure that contains the export of a wallet

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/export/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/wallet/export/sidebar-items.js deleted file mode 100644 index 06abb3c4ee..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/export/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"struct":[["WalletExport","Structure that contains the export of a wallet"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/export/struct.WalletExport.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/export/struct.WalletExport.html deleted file mode 100644 index dfd89394d5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/export/struct.WalletExport.html +++ /dev/null @@ -1,43 +0,0 @@ -WalletExport in bdk::wallet::export - Rust -

Struct bdk::wallet::export::WalletExport[][src]

pub struct WalletExport {
-    pub blockheight: u32,
-    pub label: String,
-    // some fields omitted
-}
Expand description

Structure that contains the export of a wallet

-

For a usage example see this module’s documentation.

-

Fields

blockheight: u32

Earliest block to rescan when looking for the wallet’s transactions

-
label: String

Arbitrary label for the wallet

-

Implementations

Export a wallet

-

This function returns an error if it determines that the wallet’s descriptor(s) are not -supported by Bitcoin Core or don’t follow the standard derivation paths defined by BIP44 -and others.

-

If include_blockheight is true, this function will look into the wallet’s database -for the oldest transaction it knows and use that as the earliest block to rescan.

-

If the database is empty or include_blockheight is false, the blockheight field -returned will be 0.

-

Return the external descriptor

-

Return the internal descriptor, if present

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

The associated error which can be returned from parsing.

-

Parses a string s to return a value of this type. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Converts the given value to a String. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/fn.get_funded_wallet.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/fn.get_funded_wallet.html deleted file mode 100644 index 5d09c5738e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/fn.get_funded_wallet.html +++ /dev/null @@ -1,5 +0,0 @@ -get_funded_wallet in bdk::wallet - Rust -

Function bdk::wallet::get_funded_wallet[][src]

pub fn get_funded_wallet(
    descriptor: &str
) -> (Wallet<(), MemoryDatabase>, (String, Option<String>), Txid)
Expand description

Return a fake wallet that appears to be funded for testing.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/fn.wallet_name_from_descriptor.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/fn.wallet_name_from_descriptor.html deleted file mode 100644 index 2e9e643de9..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/fn.wallet_name_from_descriptor.html +++ /dev/null @@ -1,5 +0,0 @@ -wallet_name_from_descriptor in bdk::wallet - Rust -

Function bdk::wallet::wallet_name_from_descriptor[][src]

pub fn wallet_name_from_descriptor<T>(
    descriptor: T,
    change_descriptor: Option<T>,
    network: Network,
    secp: &Secp256k1<All>
) -> Result<String, Error> where
    T: IntoWalletDescriptor
Expand description

Deterministically generate a unique name given the descriptors defining the wallet

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/index.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/index.html deleted file mode 100644 index c4fd6b57e7..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/index.html +++ /dev/null @@ -1,25 +0,0 @@ -bdk::wallet - Rust -

Module bdk::wallet[][src]

Expand description

Wallet

-

This module defines the Wallet structure.

-

Modules

-

Address validation callbacks

-

Coin selection

-

Wallet export

-

Generalized signers

-

Cross-platform time

-

Transaction builder

-

Structs

-

A derived address and the index it was found at -For convenience this automatically derefs to Address

-

A Bitcoin wallet

-

Enums

-

The address index selection strategy to use to derived an address from the wallet’s external -descriptor. See Wallet::get_address. If you’re unsure which one to use use WalletIndex::New.

-

Traits

-

Trait to check if a value is below the dust limit

-

Functions

-

Return a fake wallet that appears to be funded for testing.

-

Deterministically generate a unique name given the descriptors defining the wallet

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/wallet/sidebar-items.js deleted file mode 100644 index 75382201e9..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["AddressIndex","The address index selection strategy to use to derived an address from the wallet’s external descriptor. See [`Wallet::get_address`]. If you’re unsure which one to use use `WalletIndex::New`."]],"fn":[["get_funded_wallet","Return a fake wallet that appears to be funded for testing."],["wallet_name_from_descriptor","Deterministically generate a unique name given the descriptors defining the wallet"]],"mod":[["address_validator","Address validation callbacks"],["coin_selection","Coin selection"],["export","Wallet export"],["signer","Generalized signers"],["time","Cross-platform time"],["tx_builder","Transaction builder"]],"struct":[["AddressInfo","A derived address and the index it was found at For convenience this automatically derefs to `Address`"],["Wallet","A Bitcoin wallet"]],"trait":[["IsDust","Trait to check if a value is below the dust limit"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerError.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerError.html deleted file mode 100644 index a0f2f4bb58..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerError.html +++ /dev/null @@ -1,60 +0,0 @@ -SignerError in bdk::wallet::signer - Rust -

Enum bdk::wallet::signer::SignerError[][src]

pub enum SignerError {
-    MissingKey,
-    InvalidKey,
-    UserCanceled,
-    InputIndexOutOfRange,
-    MissingNonWitnessUtxo,
-    InvalidNonWitnessUtxo,
-    MissingWitnessUtxo,
-    MissingWitnessScript,
-    MissingHdKeypath,
-    NonStandardSighash,
-}
Expand description

Signing error

-

Variants

MissingKey

The private key is missing for the required public key

-

InvalidKey

The private key in use has the right fingerprint but derives differently than expected

-

UserCanceled

The user canceled the operation

-

InputIndexOutOfRange

Input index is out of range

-

MissingNonWitnessUtxo

The non_witness_utxo field of the transaction is required to sign this input

-

InvalidNonWitnessUtxo

The non_witness_utxo specified is invalid

-

MissingWitnessUtxo

The witness_utxo field of the transaction is required to sign this input

-

MissingWitnessScript

The witness_script field of the transaction is required to sign this input

-

MissingHdKeypath

The fingerprint and derivation path are missing from the psbt input

-

NonStandardSighash

The psbt contains a non-SIGHASH_ALL sighash in one of its input and the user hasn’t -explicitly allowed them

-

To enable signing transactions with non-standard sighashes set -SignOptions::allow_all_sighashes to true.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerId.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerId.html deleted file mode 100644 index e53e15ff6a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerId.html +++ /dev/null @@ -1,52 +0,0 @@ -SignerId in bdk::wallet::signer - Rust -

Enum bdk::wallet::signer::SignerId[][src]

pub enum SignerId {
-    PkHash(Hash),
-    Fingerprint(Fingerprint),
-    Dummy(u64),
-}
Expand description

Identifier of a signer in the SignersContainers. Used as a key to find the right signer among -multiple of them

-

Variants

PkHash(Hash)

Tuple Fields

0: Hash

Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA public key

-

Fingerprint(Fingerprint)

Tuple Fields

0: Fingerprint

The fingerprint of a BIP32 extended key

-

Dummy(u64)

Tuple Fields

0: u64

Dummy identifier

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/index.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/index.html deleted file mode 100644 index d3f1503358..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/index.html +++ /dev/null @@ -1,61 +0,0 @@ -bdk::wallet::signer - Rust -

Module bdk::wallet::signer[][src]

Expand description

Generalized signers

-

This module provides the ability to add customized signers to a Wallet -through the Wallet::add_signer function.

- -
#[derive(Debug)]
-struct CustomSigner {
-    device: CustomHSM,
-}
-
-impl CustomSigner {
-    fn connect() -> Self {
-        CustomSigner { device: CustomHSM::connect() }
-    }
-}
-
-impl Signer for CustomSigner {
-    fn sign(
-        &self,
-        psbt: &mut psbt::PartiallySignedTransaction,
-        input_index: Option<usize>,
-        _secp: &Secp256k1<All>,
-    ) -> Result<(), SignerError> {
-        let input_index = input_index.ok_or(SignerError::InputIndexOutOfRange)?;
-        self.device.sign_input(psbt, input_index)?;
-
-        Ok(())
-    }
-
-    fn id(&self, _secp: &Secp256k1<All>) -> SignerId {
-        self.device.get_id()
-    }
-
-    fn sign_whole_tx(&self) -> bool {
-        false
-    }
-}
-
-let custom_signer = CustomSigner::connect();
-
-let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
-let mut wallet = Wallet::new_offline(descriptor, None, Network::Testnet, MemoryDatabase::default())?;
-wallet.add_signer(
-    KeychainKind::External,
-    SignerOrdering(200),
-    Arc::new(custom_signer)
-);
-
-

Structs

-

Options for a software signer

-

Defines the order in which signers are called

-

Container for multiple signers

-

Enums

-

Signing error

-

Identifier of a signer in the SignersContainers. Used as a key to find the right signer among -multiple of them

-

Traits

-

Trait for signers

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/sidebar-items.js deleted file mode 100644 index 5700429cf3..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["SignerError","Signing error"],["SignerId","Identifier of a signer in the `SignersContainers`. Used as a key to find the right signer among multiple of them"]],"struct":[["SignOptions","Options for a software signer"],["SignerOrdering","Defines the order in which signers are called"],["SignersContainer","Container for multiple signers"]],"trait":[["Signer","Trait for signers"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignOptions.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignOptions.html deleted file mode 100644 index 18128b37eb..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignOptions.html +++ /dev/null @@ -1,49 +0,0 @@ -SignOptions in bdk::wallet::signer - Rust -

Struct bdk::wallet::signer::SignOptions[][src]

pub struct SignOptions {
-    pub trust_witness_utxo: bool,
-    pub assume_height: Option<u32>,
-    pub allow_all_sighashes: bool,
-}
Expand description

Options for a software signer

-

Adjust the behavior of our software signers and the way a transaction is finalized

-

Fields

trust_witness_utxo: bool

Whether the signer should trust the witness_utxo, if the non_witness_utxo hasn’t been -provided

-

Defaults to false to mitigate the “SegWit bug” which chould trick the wallet into -paying a fee larger than expected.

-

Some wallets, especially if relatively old, might not provide the non_witness_utxo for -SegWit transactions in the PSBT they generate: in those cases setting this to true -should correctly produce a signature, at the expense of an increased trust in the creator -of the PSBT.

-

For more details see: https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd

-
assume_height: Option<u32>

Whether the wallet should assume a specific height has been reached when trying to finalize -a transaction

-

The wallet will only “use” a timelock to satisfy the spending policy of an input if the -timelock height has already been reached. This option allows overriding the “current height” to let the -wallet use timelocks in the future to spend a coin.

-
allow_all_sighashes: bool

Whether the signer should use the sighash_type set in the PSBT when signing, no matter -what its value is

-

Defaults to false which will only allow signing using SIGHASH_ALL.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerOrdering.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerOrdering.html deleted file mode 100644 index faaba87339..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerOrdering.html +++ /dev/null @@ -1,44 +0,0 @@ -SignerOrdering in bdk::wallet::signer - Rust -

Struct bdk::wallet::signer::SignerOrdering[][src]

pub struct SignerOrdering(pub usize);
Expand description

Defines the order in which signers are called

-

The default value is 100. Signers with an ordering above that will be called later, -and they will thus see the partial signatures added to the transaction once they get to sign -themselves.

-

Tuple Fields

0: usize

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignersContainer.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignersContainer.html deleted file mode 100644 index 6519cd6a40..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignersContainer.html +++ /dev/null @@ -1,36 +0,0 @@ -SignersContainer in bdk::wallet::signer - Rust -

Struct bdk::wallet::signer::SignersContainer[][src]

pub struct SignersContainer(_);
Expand description

Container for multiple signers

-

Implementations

Create a map of public keys to secret keys

-

Default constructor

-

Adds an external signer to the container for the specified id. Optionally returns the -signer that was previously in the container, if any

-

Removes a signer from the container and returns it

-

Returns the list of identifiers of all the signers in the container

-

Returns the list of signers in the container, sorted by lowest to highest ordering

-

Finds the signer with lowest ordering for a given id in the container.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Performs the conversion.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.Signer.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.Signer.html deleted file mode 100644 index 9615df27f1..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.Signer.html +++ /dev/null @@ -1,26 +0,0 @@ -Signer in bdk::wallet::signer - Rust -

Trait bdk::wallet::signer::Signer[][src]

pub trait Signer: Debug + Send + Sync {
-    fn sign(
        &self,
        psbt: &mut PartiallySignedTransaction,
        input_index: Option<usize>,
        secp: &Secp256k1<All>
    ) -> Result<(), SignerError>; -
fn sign_whole_tx(&self) -> bool; -
fn id(&self, secp: &Secp256k1<All>) -> SignerId; - - fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey> { ... } -}
Expand description

Trait for signers

-

This trait can be implemented to provide customized signers to the wallet. For an example see -this module’s documentation.

-

Required methods

Sign a PSBT

-

The input_index argument is only provided if the wallet doesn’t declare to sign the whole -transaction in one go (see Signer::sign_whole_tx). Otherwise its value is None and -can be ignored.

-

Return whether or not the signer signs the whole transaction in one go instead of every -input individually

-

Return the SignerId for this signer

-

The SignerId can be used to lookup a signer in the Wallet’s signers map or to -compare two signers.

-

Provided methods

Return the secret key for the signer

-

This is used internally to reconstruct the original descriptor that may contain secrets. -External signers that are meant to keep key isolated should just return None here (which -is the default for this method, if not overridden).

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/struct.AddressInfo.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/struct.AddressInfo.html deleted file mode 100644 index 5f4c4f1a62..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/struct.AddressInfo.html +++ /dev/null @@ -1,46 +0,0 @@ -AddressInfo in bdk::wallet - Rust -

Struct bdk::wallet::AddressInfo[][src]

pub struct AddressInfo {
-    pub index: u32,
-    pub address: Address,
-}
Expand description

A derived address and the index it was found at -For convenience this automatically derefs to Address

-

Fields

index: u32

Child index of this address

-
address: Address

Address

-

Methods from Deref<Target = Address>

Get the address type of the address. -None if unknown or non-standard.

-

Check whether or not the address is following Bitcoin -standardness rules.

-

Segwit addresses with unassigned witness versions or non-standard -program sizes are considered non-standard.

-

Generates a script pubkey spending to this address

-

Creates a URI string bitcoin:address optimized to be encoded in QR codes.

-

If the address is bech32, both the schema and the address become uppercase. -If the address is base58, the schema is lowercase and the address is left mixed case.

-

Quoting BIP 173 “inside QR codes uppercase SHOULD be used, as those permit the use of -alphanumeric mode, which is 45% more compact than the normal byte mode.”

-

Trait Implementations

Formats the value using the given formatter. Read more

-

The resulting type after dereferencing.

-

Dereferences the value.

-

Formats the value using the given formatter. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Wallet.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Wallet.html deleted file mode 100644 index 64eb91609b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Wallet.html +++ /dev/null @@ -1,120 +0,0 @@ -Wallet in bdk::wallet - Rust -

Struct bdk::wallet::Wallet[][src]

pub struct Wallet<B, D> { /* fields omitted */ }
Expand description

A Bitcoin wallet

-

A wallet takes descriptors, a database and a -blockchain and implements the basic functions that a Bitcoin wallets -needs to operate, like generating addresses, returning the balance, -creating transactions, etc.

-

A wallet can be either “online” if the blockchain type provided -implements Blockchain, or “offline” if it is the unit type (). Offline wallets only expose -methods that don’t need any interaction with the blockchain to work.

-

Implementations

Create a new “offline” wallet

-

Get the Bitcoin network the wallet is using.

-

Return a derived address using the external descriptor, see AddressIndex for -available address index selection strategies. If none of the keys in the descriptor are derivable -(ie. does not end with /*) then the same address will always be returned for any AddressIndex.

-

Return whether or not a script is part of this wallet (either internal or external)

-

Return the list of unspent outputs of this wallet

-

Note that this method only operates on the internal database, which first needs to be -Wallet::sync manually.

-

Returns the UTXO owned by this wallet corresponding to outpoint if it exists in the -wallet’s database.

-

Return a single transactions made and received by the wallet

-

Optionally fill the TransactionDetails::transaction field with the raw transaction if -include_raw is true.

-

Note that this method only operates on the internal database, which first needs to be -Wallet::sync manually.

-

Return the list of transactions made and received by the wallet

-

Optionally fill the TransactionDetails::transaction field with the raw transaction if -include_raw is true.

-

Note that this methods only operate on the internal database, which first needs to be -Wallet::sync manually.

-

Return the balance, meaning the sum of this wallet’s unspent outputs’ values

-

Note that this methods only operate on the internal database, which first needs to be -Wallet::sync manually.

-

Add an external signer

-

See the signer module for an example.

-

Add an address validator

-

See the address_validator module for an example.

-

Start building a transaction.

-

This returns a blank TxBuilder from which you can specify the parameters for the transaction.

-
Example
-
let (psbt, details) = {
-   let mut builder =  wallet.build_tx();
-   builder
-       .add_recipient(to_address.script_pubkey(), 50_000);
-   builder.finish()?
-};
-
-// sign and broadcast ...
-

Bump the fee of a transaction previously created with this wallet.

-

Returns an error if the transaction is already confirmed or doesn’t explicitly signal -replace by fee (RBF). If the transaction can be fee bumped then it returns a TxBuilder -pre-populated with the inputs and outputs of the original transaction.

-
Example
-
let (mut psbt, _) = {
-    let mut builder = wallet.build_tx();
-    builder
-        .add_recipient(to_address.script_pubkey(), 50_000)
-        .enable_rbf();
-    builder.finish()?
-};
-let _ = wallet.sign(&mut psbt, SignOptions::default())?;
-let tx = psbt.extract_tx();
-// broadcast tx but it's taking too long to confirm so we want to bump the fee
-let (mut psbt, _) =  {
-    let mut builder = wallet.build_fee_bump(tx.txid())?;
-    builder
-        .fee_rate(FeeRate::from_sat_per_vb(5.0));
-    builder.finish()?
-};
-
-let _ = wallet.sign(&mut psbt, SignOptions::default())?;
-let fee_bumped_tx = psbt.extract_tx();
-// broadcast fee_bumped_tx to replace original
-

Sign a transaction with all the wallet’s signers, in the order specified by every signer’s -SignerOrdering

-

The SignOptions can be used to tweak the behavior of the software signers, and the way -the transaction is finalized at the end. Note that it can’t be guaranteed that every -signers will follow the options, but the “software signers” (WIF keys and xprv) defined -in this library will.

-
Example
-
let (mut psbt, _) = {
-    let mut builder = wallet.build_tx();
-    builder.add_recipient(to_address.script_pubkey(), 50_000);
-    builder.finish()?
-};
-let  finalized = wallet.sign(&mut psbt, SignOptions::default())?;
-assert!(finalized, "we should have signed all the inputs");
-

Return the spending policies for the wallet’s descriptor

-

Return the “public” version of the wallet’s descriptor, meaning a new descriptor that has -the same structure but with every secret key removed

-

This can be used to build a watch-only version of a wallet

-

Try to finalize a PSBT

-

The SignOptions can be used to tweak the behavior of the finalizer.

-

Return the secp256k1 context used for all signing operations

-

Returns the descriptor used to create addresses for a particular keychain.

-

get the corresponding PSBT Input for a LocalUtxo

-

Return an immutable reference to the internal database

-

Create a new “online” wallet

-

Sync the internal database with the blockchain

-

Return a reference to the internal blockchain client

-

Broadcast a transaction to the network

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/time/fn.get_timestamp.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/time/fn.get_timestamp.html deleted file mode 100644 index bae116236d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/time/fn.get_timestamp.html +++ /dev/null @@ -1,5 +0,0 @@ -get_timestamp in bdk::wallet::time - Rust -

Function bdk::wallet::time::get_timestamp[][src]

pub fn get_timestamp() -> u64
Expand description

Return the current timestamp in seconds

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/time/index.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/time/index.html deleted file mode 100644 index 3bc63c604d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/time/index.html +++ /dev/null @@ -1,11 +0,0 @@ -bdk::wallet::time - Rust -

Module bdk::wallet::time[][src]

Expand description

Cross-platform time

-

This module provides a function to get the current timestamp that works on all the platforms -supported by the library.

-

It can be useful to compare it with the timestamps found in -TransactionDetails.

-

Functions

-

Return the current timestamp in seconds

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/time/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/wallet/time/sidebar-items.js deleted file mode 100644 index 22164ef49f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/time/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"fn":[["get_timestamp","Return the current timestamp in seconds"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/trait.IsDust.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/trait.IsDust.html deleted file mode 100644 index 246dbdeeb8..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/trait.IsDust.html +++ /dev/null @@ -1,8 +0,0 @@ -IsDust in bdk::wallet - Rust -

Trait bdk::wallet::IsDust[][src]

pub trait IsDust {
-    fn is_dust(&self) -> bool;
-}
Expand description

Trait to check if a value is below the dust limit

-

Required methods

Check whether or not a value is below dust limit

-

Implementations on Foreign Types

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html deleted file mode 100644 index 15130838ad..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html +++ /dev/null @@ -1,50 +0,0 @@ -ChangeSpendPolicy in bdk::wallet::tx_builder - Rust -

Enum bdk::wallet::tx_builder::ChangeSpendPolicy[][src]

pub enum ChangeSpendPolicy {
-    ChangeAllowed,
-    OnlyChange,
-    ChangeForbidden,
-}
Expand description

Policy regarding the use of change outputs when creating a transaction

-

Variants

ChangeAllowed

Use both change and non-change outputs (default)

-

OnlyChange

Only use change outputs (see TxBuilder::only_spend_change)

-

ChangeForbidden

Only use non-change outputs (see TxBuilder::do_not_spend_change)

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/enum.TxOrdering.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/enum.TxOrdering.html deleted file mode 100644 index b6de43bb3d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/enum.TxOrdering.html +++ /dev/null @@ -1,51 +0,0 @@ -TxOrdering in bdk::wallet::tx_builder - Rust -

Enum bdk::wallet::tx_builder::TxOrdering[][src]

pub enum TxOrdering {
-    Shuffle,
-    Untouched,
-    Bip69Lexicographic,
-}
Expand description

Ordering of the transaction’s inputs and outputs

-

Variants

Shuffle

Randomized (default)

-

Untouched

Unchanged

-

Bip69Lexicographic

BIP69 / Lexicographic

-

Implementations

Sort transaction inputs and outputs by TxOrdering variant

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/index.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/index.html deleted file mode 100644 index d8d7d3a326..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/index.html +++ /dev/null @@ -1,29 +0,0 @@ -bdk::wallet::tx_builder - Rust -

Module bdk::wallet::tx_builder[][src]

Expand description

Transaction builder

-

Example

-
// create a TxBuilder from a wallet
-let mut tx_builder = wallet.build_tx();
-
-tx_builder
-    // Create a transaction with one output to `to_address` of 50_000 satoshi
-    .add_recipient(to_address.script_pubkey(), 50_000)
-    // With a custom fee rate of 5.0 satoshi/vbyte
-    .fee_rate(FeeRate::from_sat_per_vb(5.0))
-    // Only spend non-change outputs
-    .do_not_spend_change()
-    // Turn on RBF signaling
-    .enable_rbf();
-let (psbt, tx_details) = tx_builder.finish()?;
-

Structs

-

Marker type to indicate the TxBuilder is being used to bump the fee of an existing transaction.

-

Marker type to indicate the TxBuilder is being used to create a new transaction (as opposed -to bumping the fee of an existing one).

-

A transaction builder

-

Enums

-

Policy regarding the use of change outputs when creating a transaction

-

Ordering of the transaction’s inputs and outputs

-

Traits

-

Context in which the TxBuilder is valid

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/sidebar-items.js b/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/sidebar-items.js deleted file mode 100644 index dcd52e5dff..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"enum":[["ChangeSpendPolicy","Policy regarding the use of change outputs when creating a transaction"],["TxOrdering","Ordering of the transaction’s inputs and outputs"]],"struct":[["BumpFee","Marker type to indicate the [`TxBuilder`] is being used to bump the fee of an existing transaction."],["CreateTx","Marker type to indicate the [`TxBuilder`] is being used to create a new transaction (as opposed to bumping the fee of an existing one)."],["TxBuilder","A transaction builder"]],"trait":[["TxBuilderContext","Context in which the [`TxBuilder`] is valid"]]}); \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.BumpFee.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.BumpFee.html deleted file mode 100644 index db1b06dd19..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.BumpFee.html +++ /dev/null @@ -1,27 +0,0 @@ -BumpFee in bdk::wallet::tx_builder - Rust -

Struct bdk::wallet::tx_builder::BumpFee[][src]

pub struct BumpFee;
Expand description

Marker type to indicate the TxBuilder is being used to bump the fee of an existing transaction.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.CreateTx.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.CreateTx.html deleted file mode 100644 index 8574f1649a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.CreateTx.html +++ /dev/null @@ -1,28 +0,0 @@ -CreateTx in bdk::wallet::tx_builder - Rust -

Struct bdk::wallet::tx_builder::CreateTx[][src]

pub struct CreateTx;
Expand description

Marker type to indicate the TxBuilder is being used to create a new transaction (as opposed -to bumping the fee of an existing one).

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.TxBuilder.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.TxBuilder.html deleted file mode 100644 index 7fe4c50b69..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.TxBuilder.html +++ /dev/null @@ -1,226 +0,0 @@ -TxBuilder in bdk::wallet::tx_builder - Rust -

Struct bdk::wallet::tx_builder::TxBuilder[][src]

pub struct TxBuilder<'a, B, D, Cs, Ctx> { /* fields omitted */ }
Expand description

A transaction builder

-

A TxBuilder is created by calling build_tx or build_fee_bump on a wallet. After -assigning it, you set options on it until finally calling finish to consume the builder and -generate the transaction.

-

Each option setting method on TxBuilder takes and returns &mut self so you can chain calls -as in the following example:

- -
// chaining
-let (psbt1, details) = {
-    let mut builder = wallet.build_tx();
-    builder
-        .ordering(TxOrdering::Untouched)
-        .add_recipient(addr1.script_pubkey(), 50_000)
-        .add_recipient(addr2.script_pubkey(), 50_000);
-    builder.finish()?
-};
-
-// non-chaining
-let (psbt2, details) = {
-    let mut builder = wallet.build_tx();
-    builder.ordering(TxOrdering::Untouched);
-    for addr in &[addr1, addr2] {
-        builder.add_recipient(addr.script_pubkey(), 50_000);
-    }
-    builder.finish()?
-};
-
-assert_eq!(
-    psbt1.global.unsigned_tx.output[..2],
-    psbt2.global.unsigned_tx.output[..2]
-);
-

At the moment coin_selection is an exception to the rule as it consumes self. -This means it is usually best to call coin_selection on the return value of build_tx before assigning it.

-

For further examples see this module’s documentation;

-

Implementations

Set a custom fee rate

-

Set an absolute fee

-

Set the policy path to use while creating the transaction for a given keychain.

-

This method accepts a map where the key is the policy node id (see -Policy::id) and the value is the list of the indexes of -the items that are intended to be satisfied from the policy node (see -SatisfiableItem::Thresh::items).

-
Example
-

An example of when the policy path is needed is the following descriptor: -wsh(thresh(2,pk(A),sj:and_v(v:pk(B),n:older(6)),snj:and_v(v:pk(C),after(630000)))), -derived from the miniscript policy thresh(2,pk(A),and(pk(B),older(6)),and(pk(C),after(630000))). -It declares three descriptor fragments, and at the top level it uses thresh() to -ensure that at least two of them are satisfied. The individual fragments are:

-
    -
  1. pk(A)
  2. -
  3. and(pk(B),older(6))
  4. -
  5. and(pk(C),after(630000))
  6. -
-

When those conditions are combined in pairs, it’s clear that the transaction needs to be created -differently depending on how the user intends to satisfy the policy afterwards:

-
    -
  • If fragments 1 and 2 are used, the transaction will need to use a specific -n_sequence in order to spend an OP_CSV branch.
  • -
  • If fragments 1 and 3 are used, the transaction will need to use a specific locktime -in order to spend an OP_CLTV branch.
  • -
  • If fragments 2 and 3 are used, the transaction will need both.
  • -
-

When the spending policy is represented as a tree (see -Wallet::policies), every node -is assigned a unique identifier that can be used in the policy path to specify which of -the node’s children the user intends to satisfy: for instance, assuming the thresh() -root node of this example has an id of aabbccdd, the policy path map would look like:

-

{ "aabbccdd" => [0, 1] }

-

where the key is the node’s id, and the value is a list of the children that should be -used, in no particular order.

-

If a particularly complex descriptor has multiple ambiguous thresholds in its structure, -multiple entries can be added to the map, one for each node that requires an explicit path.

- -
let mut path = BTreeMap::new();
-path.insert("aabbccdd".to_string(), vec![0, 1]);
-
-let builder = wallet
-    .build_tx()
-    .add_recipient(to_address.script_pubkey(), 50_000)
-    .policy_path(path, KeychainKind::External);
-
-

Add the list of outpoints to the internal list of UTXOs that must be spent.

-

If an error occurs while adding any of the UTXOs then none of them are added and the error is returned.

-

These have priority over the “unspendable” utxos, meaning that if a utxo is present both in -the “utxos” and the “unspendable” list, it will be spent.

-

Add a utxo to the internal list of utxos that must be spent

-

These have priority over the “unspendable” utxos, meaning that if a utxo is present both in -the “utxos” and the “unspendable” list, it will be spent.

-

Add a foreign UTXO i.e. a UTXO not owned by this wallet.

-

At a minimum to add a foreign UTXO we need:

-
    -
  1. outpoint: To add it to the raw transaction.
  2. -
  3. psbt_input: To know the value.
  4. -
  5. satisfaction_weight: To know how much weight/vbytes the input will add to the transaction for fee calculation.
  6. -
-

There are several security concerns about adding foreign UTXOs that application -developers should consider. First, how do you know the value of the input is correct? If a -non_witness_utxo is provided in the psbt_input then this method implicitly verifies the -value by checking it against the transaction. If only a witness_utxo is provided then this -method doesn’t verify the value but just takes it as a given – it is up to you to check -that whoever sent you the input_psbt was not lying!

-

Secondly, you must somehow provide satisfaction_weight of the input. Depending on your -application it may be important that this be known precisely. If not, a malicious -counterparty may fool you into putting in a value that is too low, giving the transaction a -lower than expected feerate. They could also fool you into putting a value that is too high -causing you to pay a fee that is too high. The party who is broadcasting the transaction can -of course check the real input weight matches the expected weight prior to broadcasting.

-

To guarantee the satisfaction_weight is correct, you can require the party providing the -psbt_input provide a miniscript descriptor for the input so you can check it against the -script_pubkey and then ask it for the max_satisfaction_weight.

-

This is an EXPERIMENTAL feature, API and other major changes are expected.

-
Errors
-

This method returns errors in the following circumstances:

-
    -
  1. The psbt_input does not contain a witness_utxo or non_witness_utxo.
  2. -
  3. The data in non_witness_utxo does not match what is in outpoint.
  4. -
-

Note unless you set only_witness_utxo any psbt_input you pass to this method must -have non_witness_utxo set otherwise you will get an error when finish is called.

-

Only spend utxos added by add_utxo.

-

The wallet will not add additional utxos to the transaction even if they are needed to -make the transaction valid.

-

Replace the internal list of unspendable utxos with a new list

-

It’s important to note that the “must-be-spent” utxos added with TxBuilder::add_utxo -have priority over these. See the docs of the two linked methods for more details.

-

Add a utxo to the internal list of unspendable utxos

-

It’s important to note that the “must-be-spent” utxos added with TxBuilder::add_utxo -have priority over this. See the docs of the two linked methods for more details.

-

Sign with a specific sig hash

-

Use this option very carefully

-

Choose the ordering for inputs and outputs of the transaction

-

Use a specific nLockTime while creating the transaction

-

This can cause conflicts if the wallet’s descriptors contain an “after” (OP_CLTV) operator.

-

Build a transaction with a specific version

-

The version should always be greater than 0 and greater than 1 if the wallet’s -descriptors contain an “older” (OP_CSV) operator.

-

Do not spend change outputs

-

This effectively adds all the change outputs to the “unspendable” list. See -TxBuilder::unspendable.

-

Only spend change outputs

-

This effectively adds all the non-change outputs to the “unspendable” list. See -TxBuilder::unspendable.

-

Only Fill-in the psbt::Input::witness_utxo field when spending from -SegWit descriptors.

-

This reduces the size of the PSBT, but some signers might reject them due to the lack of -the non_witness_utxo.

-

Fill-in the psbt::Output::redeem_script and -psbt::Output::witness_script fields.

-

This is useful for signers which always require it, like ColdCard hardware wallets.

-

Fill-in the PSBT_GLOBAL_XPUB field with the extended keys contained in both the external -and internal descriptors

-

This is useful for offline signers that take part to a multisig. Some hardware wallets like -BitBox and ColdCard are known to require this.

-

Spend all the available inputs. This respects filters like TxBuilder::unspendable and the change policy.

-

Choose the coin selection algorithm

-

Overrides the DefaultCoinSelectionAlgorithm.

-

Note that this function consumes the builder and returns it so it is usually best to put this as the first call on the builder.

-

Finish the building the transaction.

-

Returns the BIP174 “PSBT” and summary details about the transaction.

-

Enable signaling RBF

-

This will use the default nSequence value of 0xFFFFFFFD.

-

Enable signaling RBF with a specific nSequence value

-

This can cause conflicts if the wallet’s descriptors contain an “older” (OP_CSV) operator -and the given nsequence is lower than the CSV value.

-

If the nsequence is higher than 0xFFFFFFFD an error will be thrown, since it would not -be a valid nSequence to signal RBF.

-

Replace the recipients already added with a new list

-

Add a recipient to the internal list

-

Add data as an output, using OP_RETURN

-

Sets the address to drain excess coins to.

-

Usually, when there are excess coins they are sent to a change address generated by the -wallet. This option replaces the usual change address with an arbitrary script_pubkey of -your choosing. Just as with a change output, if the drain output is not needed (the excess -coins are too small) it will not be included in the resulting transaction. The only -difference is that it is valid to use drain_to without setting any ordinary recipients -with add_recipient (but it is perfectly fine to add recipients as well).

-

When bumping the fees of a transaction made with this option, you probably want to -use allow_shrinking to allow this output to be reduced to pay for the extra fees.

-
Example
-

drain_to is very useful for draining all the coins in a wallet with drain_wallet to a -single address.

- -
let mut tx_builder = wallet.build_tx();
-
-tx_builder
-    // Spend all outputs in this wallet.
-    .drain_wallet()
-    // Send the excess (which is all the coins minus the fee) to this address.
-    .drain_to(to_address.script_pubkey())
-    .fee_rate(FeeRate::from_sat_per_vb(5.0))
-    .enable_rbf();
-let (psbt, tx_details) = tx_builder.finish()?;
-

Explicitly tells the wallet that it is allowed to reduce the fee of the output matching this -script_pubkey in order to bump the transaction fee. Without specifying this the wallet -will attempt to find a change output to shrink instead.

-

Note that the output may shrink to below the dust limit and therefore be removed. If it is -preserved then it is currently not guaranteed to be in the same position as it was -originally.

-

Returns an Err if script_pubkey can’t be found among the recipients of the -transaction we are bumping.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Performs the conversion.

-

Performs the conversion.

-

The alignment of pointer.

-

The type for initializers.

-

Initializes a with the given initializer. Read more

-

Dereferences the given pointer. Read more

-

Mutably dereferences the given pointer. Read more

-

Drops the object pointed to by the given pointer. Read more

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/trait.TxBuilderContext.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/trait.TxBuilderContext.html deleted file mode 100644 index a9c73f278f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/trait.TxBuilderContext.html +++ /dev/null @@ -1,5 +0,0 @@ -TxBuilderContext in bdk::wallet::tx_builder - Rust -

Trait bdk::wallet::tx_builder::TxBuilderContext[][src]

pub trait TxBuilderContext: Debug + Default + Clone { }
Expand description

Context in which the TxBuilder is valid

-

Implementors

- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/bdk/wallet/utils/trait.IsDust.html b/static/docs-rs/bdk/nightly/latest/bdk/wallet/utils/trait.IsDust.html deleted file mode 100644 index c0e56858e7..0000000000 --- a/static/docs-rs/bdk/nightly/latest/bdk/wallet/utils/trait.IsDust.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../bdk/wallet/trait.IsDust.html...

- - - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/brush.svg b/static/docs-rs/bdk/nightly/latest/brush.svg deleted file mode 100644 index ea266e856a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/brush.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/clipboard.svg b/static/docs-rs/bdk/nightly/latest/clipboard.svg deleted file mode 100644 index 8adbd99630..0000000000 --- a/static/docs-rs/bdk/nightly/latest/clipboard.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/static/docs-rs/bdk/nightly/latest/crates.js b/static/docs-rs/bdk/nightly/latest/crates.js deleted file mode 100644 index 0abc2ef87a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/crates.js +++ /dev/null @@ -1 +0,0 @@ -window.ALL_CRATES = ["bdk"]; \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/dark.css b/static/docs-rs/bdk/nightly/latest/dark.css deleted file mode 100644 index b97fa52f48..0000000000 --- a/static/docs-rs/bdk/nightly/latest/dark.css +++ /dev/null @@ -1 +0,0 @@ -body{background-color:#353535;color:#ddd;}h1,h2,h3,h4{color:#ddd;}h1.fqn{border-bottom-color:#d2d2d2;}h2,h3,h4{border-bottom-color:#d2d2d2;}.in-band{background-color:#353535;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#2A2A2A;}pre,.rustdoc.source .example-wrap{background-color:#2A2A2A;}.sidebar{background-color:#505050;}.rust-logo>img{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff)}*{scrollbar-color:rgb(64,65,67) #717171;}.sidebar{scrollbar-color:rgba(32,34,37,.6) #5a5a5a;}::-webkit-scrollbar-track{background-color:#717171;}::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar::-webkit-scrollbar-track{background-color:#717171;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar .current{background-color:#333;}.source .sidebar{background-color:#565656;}.sidebar .location{border-color:#fff;background:#575757;color:#DDD;}.sidebar .version{border-bottom-color:#DDD;}.sidebar-title{border-top-color:#777;border-bottom-color:#777;}.block a:hover{background:#444;}.line-numbers span{color:#3B91E2;}.line-numbers .line-highlighted{background-color:#0a042f !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#DDD;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#ddd;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#eee !important;background-color:#616161;}.search-results a:focus span{color:#eee !important;}a.result-trait:focus{background-color:#013191;}a.result-traitalias:focus{background-color:#013191;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-mod:focus{background-color:#803a1b;}a.result-externcrate:focus{background-color:#396bac;}a.result-enum:focus{background-color:#5b4e68;}a.result-struct:focus{background-color:#194e9f;}a.result-union:focus{background-color:#b7bd49;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#4950ed;}a.result-type:focus{background-color:#38902c;}a.result-foreigntype:focus{background-color:#b200d6;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#217d1c;}a.result-constant:focus,a.result-static:focus{background-color:#0063cc;}a.result-primitive:focus{background-color:#00708a;}a.result-keyword:focus{background-color:#884719;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#82b089;}.content span.struct,.content a.struct,.block a.current.struct{color:#2dbfb8;}.content span.type,.content a.type,.block a.current.type{color:#ff7f00;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#dd7de8;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#09bd00;}.content span.union,.content a.union,.block a.current.union{color:#a6ae37;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#82a5c9;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#43aec7;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#bda000;}.content span.trait,.content a.trait,.block a.current.trait{color:#b78cf2;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#b397da;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#2BAB63;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#de5249;}pre.rust .comment{color:#8d8d8b;}pre.rust .doccomment{color:#8ca375;}nav:not(.sidebar){border-bottom-color:#4e4e4e;}nav.main .current{border-top-color:#eee;border-bottom-color:#eee;}nav.main .separator{border-color:#eee;}a{color:#D2991D;}a.srclink,a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar a,.in-band a{color:#ddd;}.search-results a{color:#ddd;}a.test-arrow{color:#dedede;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search{color:#111;background-color:#f0f0f0;border-color:#000;box-shadow:0 0 0 1px #000,0 0 0 2px transparent;}.search-input{color:#111;background-color:#f0f0f0;box-shadow:0 0 0 1px #000,0 0 0 2px transparent;}.search-input:focus{border-color:#008dfd;}#crate-search+.search-input:focus{box-shadow:0 0 8px 4px #078dd8;}.module-item .stab,.import-item .stab{color:#ddd;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;color:#2f2f2f;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;color:#2f2f2f;}.stab.portability>code{background:none;}#help>div{background:#4d4d4d;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}#help dt{border-color:#bfbfbf;background:rgba(0,0,0,0);}.since{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#ddd;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#ab8ac1;}pre.rust .kw-2,pre.rust .prelude-ty{color:#769acb;}pre.rust .number,pre.rust .string{color:#83a300;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#ee6868;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#d97f26;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#4a4949;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target,:target>*{background-color:#494a3d;}:target{border-right:3px solid #bb7410;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.8);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.8);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.8);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.8);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;border-color:#000;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#111;border-color:#777;}.notable-traits-tooltiptext .notable{border-bottom-color:#d2d2d2;}#titles>button:not(.selected){background-color:#252525;border-top-color:#252525;}#titles>button:hover,#titles>button.selected{border-top-color:#0089ff;background-color:#353535;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#505050;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#505050;border-right-color:#000;}#sidebar-filler{background-color:#505050;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow-color:#c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background:#f0f0f0;color:#000;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#ffb900;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(65%);}#theme-choices{border-color:#e0e0e0;background-color:#353535;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#4e4e4e;}@media (max-width:700px){#theme-picker{background:#f0f0f0;}}#all-types{background-color:#505050;}#all-types:hover{background-color:#606060;}.search-results .result-name span.alias{color:#fff;}.search-results .result-name span.grey{color:#ccc;}#sidebar-toggle{background-color:#565656;}#sidebar-toggle:hover{background-color:#676767;}#source-sidebar{background-color:#565656;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#444;}div.files>.selected{background-color:#333;}.setting-line>.title{border-bottom-color:#ddd;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(53,53,53,1),rgba(53,53,53,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(53,53,53,1),rgba(53,53,53,0));}.toggle-line-inner{background:#616161;}.toggle-line:hover .toggle-line-inner{background:##898989;} \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/down-arrow.svg b/static/docs-rs/bdk/nightly/latest/down-arrow.svg deleted file mode 100644 index 35437e77a7..0000000000 --- a/static/docs-rs/bdk/nightly/latest/down-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/favicon-16x16.png b/static/docs-rs/bdk/nightly/latest/favicon-16x16.png deleted file mode 100644 index 7cfe6c13550d31bc31355616bbb9cb77fd1b25ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2214 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s-c4dY{ltlRYSS9D@>LsS+ zC#C9D0Vi&D~Tl`=|73as??%gf94%8m8%i_-NCEiEne z4UF`SjC6}q(sYX}^GXscbn}XpK}JB#a7isrF3Kz@$;{7F0GXMXlwVq6tE9xGpr8OX zJhdVdVR~LM)ceW#x%wa(eM3D1ePrb&nQ1tbgJdw27i8p@;mZj#ED1$=+6fRZ) znH8xy5iXgzsd>ej`FXZVhGuAzkvJrs^Kg_-&)}|u2z}MHxBeS?9zo-%{ z1WD$>sf7?8gqxEIQmvq%0FGs=#AHw)*(wzj<)@S;r>20t1(z+(Pb(=;EJ}4uPt7Z_ zRdP&A%goCxsZ?-DEzV5OOD$5+@J%dIFg8>Gc}5deZ+S*)9zI{{LtJH}56XKmN80FP zcmtvUDYJsg0I;SY7dJaD8+~wD0V+4_xDW+WYF>)1QjwCqUH-zVxeN@94Vli)0T>a( zz@Ra)bmDn!mq3x@_Qn}Ud_=gpyFCwc85(U2bd&PBB$2vdX60w^v(oFo&r^v`U9GY4 zWA?%L17VTcu1iu<6Mb_o6wfm^oqT5J+-ke;)$c9uR_pCZu5>kBRqdcVqsm0++xcV9 z|IACbxpL9ReqT#c#^K;#;gBu;)-h#!UT(?`wfnyQ>heo%OzWZ^D!N|weQ5ZwQ#5#U zW%Q27ld3_7mLHnCD<0BbXBswhQ#QUFT=cjlUiOw_)yBMkB z%{SREaQf1!s3f;9TY79(m;L|$?dpjytaD%8Gq_?Cc`e$yV%vl2%bV=@bzlGHSS9yx zQNXEqtA@t%i{{=@3G!0c9=_SMM78`u4Re&-mX>)xrmi}2cP7uCc@6q}zSjfH-+x)N zXMF^BnY@U@@op+|tR;OY?N^-g@vt zjYX%kH_1N*_tQi#*5wmB{eyd-2Ln=w%+S>Z^uU}RA|Cb!S{QXPA&KNy+waJMo zDN9uK<@$p)L}tvG@!-{~F1N)8KYlc{`Fko}tU#EjXkFN9Lko)&U%r@VYirBadOiB` zWy<8qlPCP*x+9Tm$oe2QKK}mU7cW+9-LvP+pFcMH-aoFC`~CZOOkAAZo%{Er4~Rdo xjlHnZCwK3+7`5i-8S&5eJAM-QFj4RIAO6UTq9GjLGE+g#3r|-+mvv4FO#uBWOY;B# diff --git a/static/docs-rs/bdk/nightly/latest/favicon-32x32.png b/static/docs-rs/bdk/nightly/latest/favicon-32x32.png deleted file mode 100644 index 5109c1de8bea744180448b347fb44ddef23b90f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2919 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANMUyD~!}N+NuHtdjF{^%7I^ zlT!66atjzhz{b9!ATc>RwL~E)H9a%WR_Xoj{Yna%DYi=CroINg16w1-Ypui3%0DIeEoa6}C!XbFK1lpi<;HsXMd|v6mX?*7iAWdWaj57fXqxx$}cUkRZ`+oP*8vx zo?4NKFg>pr>iy*WTz!y?zM-ChKC<$X%rqRzK{6Q13o`Oc@{2R_3*a6=u>vlQp|K(t zhn9-O0&I$XeX-jBQ=XfP;*H`G*Rm4)I*LOo3sUuiQj7CTi;`1a%Tn`7l))hZ3Ky$@ z%!<^U2$#&<)V$)%{5)GFV^k54lvGgORxdm3f`6-!cl`e@TskTZ+ z21W+D2Ijhk1|f##RwhPP2Bx|O=2iv}_kdNWmL#SmmLw8VZwE@THWj%AzP?r-nZ+gf zMU`M7NHPyjErjqO+?-61Y6S%aa4cITCW8XWR;i#UKczG|H3jS~xNLELT1k0gQL1Bl zYF>%0l4Dw0W?p7VrGiUpab|j6YLSA5Z(@;xv7rLUGn%M+%QI5*@cB|7;wl?`P~L+% z(ncS{8xRFZnH5w9fHeiVxY=>p=!44&P`P2pg(#3x^HOY;ij?f_W)@|bGcYhVWI8(s zU_=Z9gT}r=$CT}PxhXr;?)&{oU-(9JW|_W%F4t0%s&&V6;y;EGM;wP@>#Z4at1Z?fapef^tb zmE6Nc0jJ`v8XC(lntMkj$V**&_-4}*)$#{5%u#Y%TIT(jy6VW?nLK;uHR$vCUJo#T z|7FdN^B--GTzj&5T|zm()svdThxo%p)9+pMeY22(fq}EYBeIx*fm;}a85w5Hkzin8 zIqvD=7!uKXbh^KfNV&*y`^}{@PMvb=^6g;V?6k;9r)rfWADiYfjZEo@clRob|%d$JA_BD1X4e3LWX@kcTKLnIpf#U7p9BaG1f5^H7X{ES@0jpvC6Oi z&HaJ-?SbR}udZOc!mupYhEK!0Yw`)dzO{!V`k3F}?uye(%ScFYFweVFFME&oIW{477;YUuUbUtNZ2a*N2~f?kIlFCoC*1V_nws@@3|+CKyw{`cPA-X0nf@}z8$j7Gx5 zSu2i)X3RFr4a(17zq~QWz{qIP+1cjRqA$)}SrPpHb-vJAHU|ZP1Dn?Pgg-lA;#>CS zhGTNFa`m@22RG>)dT1ajDr!^v%S7|rrE?`ZU*G6Gs1{rQOf@((bn3EY%Tzq?-o5*7 z){k@Nb~Mkw`?6lT#a?x-Fz|@3a2++63M^2 zE3~wRj&m80Qa~G~&J$mQP9j@82EPG~8 z`K$V})Y-Y2jh%h&i9JRWcx5e%TsB6Wxmf)An(oyrSC*VAQR&@2F@uvaD?2-S!mXzk z8}ja2xhhTElD(_oq0_1uo{X;#e`zmWR<=_@PHx%0x`!DT?%zLu;6Ow4m5py>9E*#K zkMV5TzFk{}Pg{mBJ0rv6_qVs7&$wua6nzN^58wUsoT$k}2{o3C_xJWn$`+J6nn;Bf z78cHm2@ak-&%S=$#EF7WpFG*|bA1Dw$Cif7d|{n3(A1>$y1l+M0)-o}Qj#S3B$E$&;)`$;rts zi!WaBw`bbFv-By$VU$hQb1iXFP;FuKi z%iwC`#fyQlJBwUXQ&S@)`;R~7Vqw}<{e4|kRn?tirwe*h-mUy0+FAJWvWmV?=NbE& z9~XAi{k2L>O`S4jO2Vvpk|}9vZN<;eUA%eIGci%|?%lipZK}R#M7~(xDEENB{7N26 zV}C>31Ap_&@4p8}M|*pEavnW;^vL5vH+OeQ8JQ=ywq~C>bEe{Fm|xP3zp@hFzT9J$ z6rZf4@i^&|nuN-?-T!k - - - - diff --git a/static/docs-rs/bdk/nightly/latest/implementors/alloc/string/trait.ToString.js b/static/docs-rs/bdk/nightly/latest/implementors/alloc/string/trait.ToString.js deleted file mode 100644 index f3e935dbe1..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/alloc/string/trait.ToString.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl ToString for WalletExport","synthetic":false,"types":["bdk::wallet::export::WalletExport"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.Blockchain.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.Blockchain.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.Blockchain.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.ConfigurableBlockchain.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.ConfigurableBlockchain.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.ConfigurableBlockchain.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.Progress.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.Progress.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/blockchain/trait.Progress.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.BatchDatabase.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.BatchDatabase.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.BatchDatabase.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.BatchOperations.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.BatchOperations.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.BatchOperations.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.ConfigurableDatabase.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.ConfigurableDatabase.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.ConfigurableDatabase.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.Database.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.Database.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/database/trait.Database.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/template/trait.DescriptorTemplate.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/template/trait.DescriptorTemplate.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/template/trait.DescriptorTemplate.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/trait.ExtractPolicy.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/trait.ExtractPolicy.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/trait.ExtractPolicy.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/trait.IntoWalletDescriptor.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/trait.IntoWalletDescriptor.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/descriptor/trait.IntoWalletDescriptor.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.DerivableKey.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.DerivableKey.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.DerivableKey.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.ExtScriptContext.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.ExtScriptContext.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.ExtScriptContext.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.GeneratableDefaultOptions.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.GeneratableDefaultOptions.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.GeneratableDefaultOptions.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.GeneratableKey.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.GeneratableKey.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.GeneratableKey.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.IntoDescriptorKey.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.IntoDescriptorKey.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.IntoDescriptorKey.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.ScriptContext.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.ScriptContext.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/keys/trait.ScriptContext.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/trait.Vbytes.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/trait.Vbytes.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/trait.Vbytes.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.Signer.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.Signer.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.Signer.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/trait.IsDust.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/trait.IsDust.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/trait.IsDust.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/tx_builder/trait.TxBuilderContext.js b/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/tx_builder/trait.TxBuilderContext.js deleted file mode 100644 index 8262d3bea5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/tx_builder/trait.TxBuilderContext.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/clone/trait.Clone.js b/static/docs-rs/bdk/nightly/latest/implementors/core/clone/trait.Clone.js deleted file mode 100644 index ac41cfd89a..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/clone/trait.Clone.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Clone for AnyBlockchainConfig","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl Clone for ElectrumBlockchainConfig","synthetic":false,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl Clone for EsploraBlockchainConfig","synthetic":false,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl Clone for BitcoinPeerConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl Clone for CompactFiltersBlockchainConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl Clone for Capability","synthetic":false,"types":["bdk::blockchain::Capability"]},{"text":"impl Clone for NoopProgress","synthetic":false,"types":["bdk::blockchain::NoopProgress"]},{"text":"impl Clone for LogProgress","synthetic":false,"types":["bdk::blockchain::LogProgress"]},{"text":"impl Clone for SyncTime","synthetic":false,"types":["bdk::database::SyncTime"]},{"text":"impl<'s> Clone for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Clone for PkOrF","synthetic":false,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl Clone for SatisfiableItem","synthetic":false,"types":["bdk::descriptor::policy::SatisfiableItem"]},{"text":"impl Clone for Satisfaction","synthetic":false,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl Clone for Policy","synthetic":false,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl Clone for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl<'a> Clone for BuildSatisfaction<'a>","synthetic":false,"types":["bdk::descriptor::policy::BuildSatisfaction"]},{"text":"impl Clone for ScriptContextEnum","synthetic":false,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl Clone for PrivateKeyGenerateOptions","synthetic":false,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl Clone for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl Clone for FeeRate","synthetic":false,"types":["bdk::types::FeeRate"]},{"text":"impl Clone for LocalUtxo","synthetic":false,"types":["bdk::types::LocalUtxo"]},{"text":"impl Clone for WeightedUtxo","synthetic":false,"types":["bdk::types::WeightedUtxo"]},{"text":"impl Clone for Utxo","synthetic":false,"types":["bdk::types::Utxo"]},{"text":"impl Clone for TransactionDetails","synthetic":false,"types":["bdk::types::TransactionDetails"]},{"text":"impl Clone for BlockTime","synthetic":false,"types":["bdk::types::BlockTime"]},{"text":"impl Clone for AddressValidatorError","synthetic":false,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl Clone for LargestFirstCoinSelection","synthetic":false,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl Clone for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl Clone for SignerError","synthetic":false,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl Clone for SignerOrdering","synthetic":false,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl Clone for SignersContainer","synthetic":false,"types":["bdk::wallet::signer::SignersContainer"]},{"text":"impl Clone for SignOptions","synthetic":false,"types":["bdk::wallet::signer::SignOptions"]},{"text":"impl Clone for CreateTx","synthetic":false,"types":["bdk::wallet::tx_builder::CreateTx"]},{"text":"impl Clone for BumpFee","synthetic":false,"types":["bdk::wallet::tx_builder::BumpFee"]},{"text":"impl<'a, Cs: Clone, Ctx, B, D> Clone for TxBuilder<'a, B, D, Cs, Ctx>","synthetic":false,"types":["bdk::wallet::tx_builder::TxBuilder"]},{"text":"impl Clone for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Clone for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Eq.js b/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Eq.js deleted file mode 100644 index e71bd0b280..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Eq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Eq for Capability","synthetic":false,"types":["bdk::blockchain::Capability"]},{"text":"impl<'s> Eq for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Eq for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Eq for PolicyError","synthetic":false,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl Eq for ScriptContextEnum","synthetic":false,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl Eq for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl Eq for LocalUtxo","synthetic":false,"types":["bdk::types::LocalUtxo"]},{"text":"impl Eq for TransactionDetails","synthetic":false,"types":["bdk::types::TransactionDetails"]},{"text":"impl Eq for BlockTime","synthetic":false,"types":["bdk::types::BlockTime"]},{"text":"impl Eq for AddressValidatorError","synthetic":false,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl Eq for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl Eq for SignerError","synthetic":false,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl Eq for SignerOrdering","synthetic":false,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl Eq for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Eq for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Ord.js b/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Ord.js deleted file mode 100644 index d19ffc9f15..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Ord.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl<'s> Ord for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Ord for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Ord for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl Ord for SignerOrdering","synthetic":false,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl Ord for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Ord for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialEq.js b/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialEq.js deleted file mode 100644 index 653d499bd3..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl PartialEq<AnyBlockchainConfig> for AnyBlockchainConfig","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl PartialEq<ElectrumBlockchainConfig> for ElectrumBlockchainConfig","synthetic":false,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl PartialEq<EsploraBlockchainConfig> for EsploraBlockchainConfig","synthetic":false,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl PartialEq<BitcoinPeerConfig> for BitcoinPeerConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl PartialEq<CompactFiltersBlockchainConfig> for CompactFiltersBlockchainConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl PartialEq<Capability> for Capability","synthetic":false,"types":["bdk::blockchain::Capability"]},{"text":"impl<'s> PartialEq<DerivedDescriptorKey<'s>> for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl PartialEq<Condition> for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl PartialEq<PolicyError> for PolicyError","synthetic":false,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl PartialEq<ScriptContextEnum> for ScriptContextEnum","synthetic":false,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl PartialEq<KeychainKind> for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl PartialEq<FeeRate> for FeeRate","synthetic":false,"types":["bdk::types::FeeRate"]},{"text":"impl PartialEq<LocalUtxo> for LocalUtxo","synthetic":false,"types":["bdk::types::LocalUtxo"]},{"text":"impl PartialEq<WeightedUtxo> for WeightedUtxo","synthetic":false,"types":["bdk::types::WeightedUtxo"]},{"text":"impl PartialEq<Utxo> for Utxo","synthetic":false,"types":["bdk::types::Utxo"]},{"text":"impl PartialEq<TransactionDetails> for TransactionDetails","synthetic":false,"types":["bdk::types::TransactionDetails"]},{"text":"impl PartialEq<BlockTime> for BlockTime","synthetic":false,"types":["bdk::types::BlockTime"]},{"text":"impl PartialEq<AddressValidatorError> for AddressValidatorError","synthetic":false,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl PartialEq<SignerId> for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl PartialEq<SignerError> for SignerError","synthetic":false,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl PartialEq<SignerOrdering> for SignerOrdering","synthetic":false,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl PartialEq<TxOrdering> for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl PartialEq<ChangeSpendPolicy> for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]},{"text":"impl PartialEq<AddressInfo> for AddressInfo","synthetic":false,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialOrd.js b/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialOrd.js deleted file mode 100644 index 1e33ba386e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialOrd.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl<'s> PartialOrd<DerivedDescriptorKey<'s>> for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl PartialOrd<Condition> for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl PartialOrd<FeeRate> for FeeRate","synthetic":false,"types":["bdk::types::FeeRate"]},{"text":"impl PartialOrd<SignerId> for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl PartialOrd<SignerOrdering> for SignerOrdering","synthetic":false,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl PartialOrd<TxOrdering> for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl PartialOrd<ChangeSpendPolicy> for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.AsRef.js b/static/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.AsRef.js deleted file mode 100644 index cc88354e83..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.AsRef.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl AsRef<[u8]> for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js b/static/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js deleted file mode 100644 index ee58911780..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<AddressValidatorError> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<PolicyError> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<SignerError> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<KeyError> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<PsbtParseError> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<CompactFiltersError> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<EsploraError> for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl From<ElectrumBlockchain> for AnyBlockchain","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchain"]},{"text":"impl From<EsploraBlockchain> for AnyBlockchain","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchain"]},{"text":"impl From<CompactFiltersBlockchain> for AnyBlockchain","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchain"]},{"text":"impl From<ElectrumBlockchainConfig> for AnyBlockchainConfig","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl From<EsploraBlockchainConfig> for AnyBlockchainConfig","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl From<CompactFiltersBlockchainConfig> for AnyBlockchainConfig","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl From<Client> for ElectrumBlockchain","synthetic":false,"types":["bdk::blockchain::electrum::ElectrumBlockchain"]},{"text":"impl From<Error> for EsploraError","synthetic":false,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl From<Transport> for EsploraError","synthetic":false,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl From<Error> for EsploraError","synthetic":false,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl From<ParseIntError> for EsploraError","synthetic":false,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl From<Error> for EsploraError","synthetic":false,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl From<Error> for EsploraError","synthetic":false,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl From<Error> for CompactFiltersError","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl From<Error> for CompactFiltersError","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl From<Error> for CompactFiltersError","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl From<SystemTimeError> for CompactFiltersError","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl From<Error> for CompactFiltersError","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl From<MemoryDatabase> for AnyDatabase","synthetic":false,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl From<Tree> for AnyDatabase","synthetic":false,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl From<SqliteDatabase> for AnyDatabase","synthetic":false,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl From<<MemoryDatabase as BatchDatabase>::Batch> for AnyBatch","synthetic":false,"types":["bdk::database::any::AnyBatch"]},{"text":"impl From<<Tree as BatchDatabase>::Batch> for AnyBatch","synthetic":false,"types":["bdk::database::any::AnyBatch"]},{"text":"impl From<<SqliteDatabase as BatchDatabase>::Batch> for AnyBatch","synthetic":false,"types":["bdk::database::any::AnyBatch"]},{"text":"impl From<()> for AnyDatabaseConfig","synthetic":false,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl From<SledDbConfiguration> for AnyDatabaseConfig","synthetic":false,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl From<SqliteDbConfiguration> for AnyDatabaseConfig","synthetic":false,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl From<KeyError> for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl From<PolicyError> for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl From<bool> for Satisfaction","synthetic":false,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl From<SatisfiableItem> for Policy","synthetic":false,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl<Ctx: ScriptContext> From<ExtendedPubKey> for ExtendedKey<Ctx>","synthetic":false,"types":["bdk::keys::ExtendedKey"]},{"text":"impl<Ctx: ScriptContext> From<ExtendedPrivKey> for ExtendedKey<Ctx>","synthetic":false,"types":["bdk::keys::ExtendedKey"]},{"text":"impl From<Error> for KeyError","synthetic":false,"types":["bdk::keys::KeyError"]},{"text":"impl From<Error> for KeyError","synthetic":false,"types":["bdk::keys::KeyError"]},{"text":"impl From<Hash> for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl From<Fingerprint> for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl From<HashMap<DescriptorPublicKey, DescriptorSecretKey, RandomState>> for SignersContainer","synthetic":false,"types":["bdk::wallet::signer::SignersContainer"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/default/trait.Default.js b/static/docs-rs/bdk/nightly/latest/implementors/core/default/trait.Default.js deleted file mode 100644 index 6c7914178f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/default/trait.Default.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Default for Mempool","synthetic":false,"types":["bdk::blockchain::compact_filters::peer::Mempool"]},{"text":"impl Default for MemoryDatabase","synthetic":false,"types":["bdk::database::memory::MemoryDatabase"]},{"text":"impl Default for PkOrF","synthetic":false,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl Default for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Default for PrivateKeyGenerateOptions","synthetic":false,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl Default for FeeRate","synthetic":false,"types":["bdk::types::FeeRate"]},{"text":"impl Default for TransactionDetails","synthetic":false,"types":["bdk::types::TransactionDetails"]},{"text":"impl Default for BlockTime","synthetic":false,"types":["bdk::types::BlockTime"]},{"text":"impl Default for LargestFirstCoinSelection","synthetic":false,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl Default for BranchAndBoundCoinSelection","synthetic":false,"types":["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]},{"text":"impl Default for SignerOrdering","synthetic":false,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl Default for SignersContainer","synthetic":false,"types":["bdk::wallet::signer::SignersContainer"]},{"text":"impl Default for SignOptions","synthetic":false,"types":["bdk::wallet::signer::SignOptions"]},{"text":"impl Default for CreateTx","synthetic":false,"types":["bdk::wallet::tx_builder::CreateTx"]},{"text":"impl Default for BumpFee","synthetic":false,"types":["bdk::wallet::tx_builder::BumpFee"]},{"text":"impl Default for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Default for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/fmt/trait.Debug.js b/static/docs-rs/bdk/nightly/latest/implementors/core/fmt/trait.Debug.js deleted file mode 100644 index d3b7ea02df..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/fmt/trait.Debug.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Debug for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl Debug for AnyBlockchainConfig","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl Debug for ElectrumBlockchainConfig","synthetic":false,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl Debug for EsploraBlockchain","synthetic":false,"types":["bdk::blockchain::esplora::ureq::EsploraBlockchain"]},{"text":"impl Debug for EsploraError","synthetic":false,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl Debug for EsploraBlockchainConfig","synthetic":false,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl Debug for Mempool","synthetic":false,"types":["bdk::blockchain::compact_filters::peer::Mempool"]},{"text":"impl Debug for Peer","synthetic":false,"types":["bdk::blockchain::compact_filters::peer::Peer"]},{"text":"impl Debug for CompactFiltersBlockchain","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchain"]},{"text":"impl Debug for BitcoinPeerConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl Debug for CompactFiltersBlockchainConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl Debug for CompactFiltersError","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl Debug for Capability","synthetic":false,"types":["bdk::blockchain::Capability"]},{"text":"impl Debug for AnyDatabase","synthetic":false,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl Debug for SledDbConfiguration","synthetic":false,"types":["bdk::database::any::SledDbConfiguration"]},{"text":"impl Debug for SqliteDbConfiguration","synthetic":false,"types":["bdk::database::any::SqliteDbConfiguration"]},{"text":"impl Debug for AnyDatabaseConfig","synthetic":false,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl Debug for SqliteDatabase","synthetic":false,"types":["bdk::database::sqlite::SqliteDatabase"]},{"text":"impl Debug for MemoryDatabase","synthetic":false,"types":["bdk::database::memory::MemoryDatabase"]},{"text":"impl Debug for SyncTime","synthetic":false,"types":["bdk::database::SyncTime"]},{"text":"impl<'s> Debug for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Debug for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl Debug for PkOrF","synthetic":false,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl Debug for SatisfiableItem","synthetic":false,"types":["bdk::descriptor::policy::SatisfiableItem"]},{"text":"impl Debug for Satisfaction","synthetic":false,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl Debug for Policy","synthetic":false,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl Debug for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Debug for PolicyError","synthetic":false,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl<'a> Debug for BuildSatisfaction<'a>","synthetic":false,"types":["bdk::descriptor::policy::BuildSatisfaction"]},{"text":"impl<Ctx: Debug + ScriptContext> Debug for DescriptorKey<Ctx>","synthetic":false,"types":["bdk::keys::DescriptorKey"]},{"text":"impl Debug for ScriptContextEnum","synthetic":false,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl Debug for PrivateKeyGenerateOptions","synthetic":false,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl Debug for KeyError","synthetic":false,"types":["bdk::keys::KeyError"]},{"text":"impl Debug for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl Debug for FeeRate","synthetic":false,"types":["bdk::types::FeeRate"]},{"text":"impl Debug for LocalUtxo","synthetic":false,"types":["bdk::types::LocalUtxo"]},{"text":"impl Debug for WeightedUtxo","synthetic":false,"types":["bdk::types::WeightedUtxo"]},{"text":"impl Debug for Utxo","synthetic":false,"types":["bdk::types::Utxo"]},{"text":"impl Debug for TransactionDetails","synthetic":false,"types":["bdk::types::TransactionDetails"]},{"text":"impl Debug for BlockTime","synthetic":false,"types":["bdk::types::BlockTime"]},{"text":"impl Debug for AddressValidatorError","synthetic":false,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl Debug for CoinSelectionResult","synthetic":false,"types":["bdk::wallet::coin_selection::CoinSelectionResult"]},{"text":"impl Debug for LargestFirstCoinSelection","synthetic":false,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl Debug for BranchAndBoundCoinSelection","synthetic":false,"types":["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]},{"text":"impl Debug for WalletExport","synthetic":false,"types":["bdk::wallet::export::WalletExport"]},{"text":"impl Debug for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl Debug for SignerError","synthetic":false,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl Debug for SignerOrdering","synthetic":false,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl Debug for SignersContainer","synthetic":false,"types":["bdk::wallet::signer::SignersContainer"]},{"text":"impl Debug for SignOptions","synthetic":false,"types":["bdk::wallet::signer::SignOptions"]},{"text":"impl Debug for CreateTx","synthetic":false,"types":["bdk::wallet::tx_builder::CreateTx"]},{"text":"impl Debug for BumpFee","synthetic":false,"types":["bdk::wallet::tx_builder::BumpFee"]},{"text":"impl<'a, B: Debug, D: Debug, Cs: Debug, Ctx: Debug> Debug for TxBuilder<'a, B, D, Cs, Ctx>","synthetic":false,"types":["bdk::wallet::tx_builder::TxBuilder"]},{"text":"impl Debug for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Debug for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]},{"text":"impl<B: Debug, D: Debug> Debug for Wallet<B, D>","synthetic":false,"types":["bdk::wallet::Wallet"]},{"text":"impl Debug for AddressIndex","synthetic":false,"types":["bdk::wallet::AddressIndex"]},{"text":"impl Debug for AddressInfo","synthetic":false,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/fmt/trait.Display.js b/static/docs-rs/bdk/nightly/latest/implementors/core/fmt/trait.Display.js deleted file mode 100644 index 01fb89d0ac..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/fmt/trait.Display.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Display for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl Display for EsploraError","synthetic":false,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl Display for CompactFiltersError","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl<'s> Display for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Display for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl Display for PolicyError","synthetic":false,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl Display for KeyError","synthetic":false,"types":["bdk::keys::KeyError"]},{"text":"impl Display for AddressValidatorError","synthetic":false,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl Display for SignerError","synthetic":false,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl Display for AddressInfo","synthetic":false,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/hash/trait.Hash.js b/static/docs-rs/bdk/nightly/latest/implementors/core/hash/trait.Hash.js deleted file mode 100644 index c02f002754..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/hash/trait.Hash.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Hash for Capability","synthetic":false,"types":["bdk::blockchain::Capability"]},{"text":"impl<'s> Hash for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Hash for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Hash for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl Hash for LocalUtxo","synthetic":false,"types":["bdk::types::LocalUtxo"]},{"text":"impl Hash for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl Hash for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Hash for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Copy.js b/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Copy.js deleted file mode 100644 index b95912a278..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Copy.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Copy for Capability","synthetic":false,"types":["bdk::blockchain::Capability"]},{"text":"impl Copy for NoopProgress","synthetic":false,"types":["bdk::blockchain::NoopProgress"]},{"text":"impl Copy for LogProgress","synthetic":false,"types":["bdk::blockchain::LogProgress"]},{"text":"impl Copy for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl<'a> Copy for BuildSatisfaction<'a>","synthetic":false,"types":["bdk::descriptor::policy::BuildSatisfaction"]},{"text":"impl Copy for ScriptContextEnum","synthetic":false,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl Copy for PrivateKeyGenerateOptions","synthetic":false,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl Copy for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl Copy for FeeRate","synthetic":false,"types":["bdk::types::FeeRate"]},{"text":"impl Copy for LargestFirstCoinSelection","synthetic":false,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl Copy for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Copy for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Freeze.js b/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Freeze.js deleted file mode 100644 index 6d4d4cfb98..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Freeze.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Freeze for Error","synthetic":true,"types":["bdk::error::Error"]},{"text":"impl !Freeze for AnyBlockchain","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchain"]},{"text":"impl Freeze for AnyBlockchainConfig","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl !Freeze for ElectrumBlockchain","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchain"]},{"text":"impl Freeze for ElectrumBlockchainConfig","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl Freeze for EsploraBlockchain","synthetic":true,"types":["bdk::blockchain::esplora::ureq::EsploraBlockchain"]},{"text":"impl Freeze for EsploraError","synthetic":true,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl Freeze for EsploraBlockchainConfig","synthetic":true,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl !Freeze for Mempool","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Mempool"]},{"text":"impl Freeze for Peer","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Peer"]},{"text":"impl Freeze for CompactFiltersBlockchain","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchain"]},{"text":"impl Freeze for BitcoinPeerConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl Freeze for CompactFiltersBlockchainConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl Freeze for CompactFiltersError","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl Freeze for Capability","synthetic":true,"types":["bdk::blockchain::Capability"]},{"text":"impl Freeze for NoopProgress","synthetic":true,"types":["bdk::blockchain::NoopProgress"]},{"text":"impl Freeze for LogProgress","synthetic":true,"types":["bdk::blockchain::LogProgress"]},{"text":"impl !Freeze for AnyDatabase","synthetic":true,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl !Freeze for AnyBatch","synthetic":true,"types":["bdk::database::any::AnyBatch"]},{"text":"impl Freeze for SledDbConfiguration","synthetic":true,"types":["bdk::database::any::SledDbConfiguration"]},{"text":"impl Freeze for SqliteDbConfiguration","synthetic":true,"types":["bdk::database::any::SqliteDbConfiguration"]},{"text":"impl Freeze for AnyDatabaseConfig","synthetic":true,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl !Freeze for SqliteDatabase","synthetic":true,"types":["bdk::database::sqlite::SqliteDatabase"]},{"text":"impl Freeze for MemoryDatabase","synthetic":true,"types":["bdk::database::memory::MemoryDatabase"]},{"text":"impl Freeze for SyncTime","synthetic":true,"types":["bdk::database::SyncTime"]},{"text":"impl<'s> Freeze for DerivedDescriptorKey<'s>","synthetic":true,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Freeze for Error","synthetic":true,"types":["bdk::descriptor::error::Error"]},{"text":"impl Freeze for PkOrF","synthetic":true,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl Freeze for SatisfiableItem","synthetic":true,"types":["bdk::descriptor::policy::SatisfiableItem"]},{"text":"impl Freeze for Satisfaction","synthetic":true,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl Freeze for Policy","synthetic":true,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl Freeze for Condition","synthetic":true,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Freeze for PolicyError","synthetic":true,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl<'a> Freeze for BuildSatisfaction<'a>","synthetic":true,"types":["bdk::descriptor::policy::BuildSatisfaction"]},{"text":"impl<K> Freeze for P2Pkh<K> where
    K: Freeze, 
","synthetic":true,"types":["bdk::descriptor::template::P2Pkh"]},{"text":"impl<K> Freeze for P2Wpkh_P2Sh<K> where
    K: Freeze, 
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh_P2Sh"]},{"text":"impl<K> Freeze for P2Wpkh<K> where
    K: Freeze, 
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh"]},{"text":"impl<K> Freeze for Bip44<K> where
    K: Freeze, 
","synthetic":true,"types":["bdk::descriptor::template::Bip44"]},{"text":"impl<K> Freeze for Bip44Public<K> where
    K: Freeze, 
","synthetic":true,"types":["bdk::descriptor::template::Bip44Public"]},{"text":"impl<K> Freeze for Bip49<K> where
    K: Freeze, 
","synthetic":true,"types":["bdk::descriptor::template::Bip49"]},{"text":"impl<K> Freeze for Bip49Public<K> where
    K: Freeze, 
","synthetic":true,"types":["bdk::descriptor::template::Bip49Public"]},{"text":"impl<K> Freeze for Bip84<K> where
    K: Freeze, 
","synthetic":true,"types":["bdk::descriptor::template::Bip84"]},{"text":"impl<K> Freeze for Bip84Public<K> where
    K: Freeze, 
","synthetic":true,"types":["bdk::descriptor::template::Bip84Public"]},{"text":"impl Freeze for WordCount","synthetic":true,"types":["bdk::keys::bip39::WordCount"]},{"text":"impl<Ctx> Freeze for DescriptorKey<Ctx>","synthetic":true,"types":["bdk::keys::DescriptorKey"]},{"text":"impl Freeze for ScriptContextEnum","synthetic":true,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl<Ctx> Freeze for ExtendedKey<Ctx>","synthetic":true,"types":["bdk::keys::ExtendedKey"]},{"text":"impl<K, Ctx> Freeze for GeneratedKey<K, Ctx> where
    K: Freeze, 
","synthetic":true,"types":["bdk::keys::GeneratedKey"]},{"text":"impl Freeze for PrivateKeyGenerateOptions","synthetic":true,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl Freeze for KeyError","synthetic":true,"types":["bdk::keys::KeyError"]},{"text":"impl Freeze for KeychainKind","synthetic":true,"types":["bdk::types::KeychainKind"]},{"text":"impl Freeze for FeeRate","synthetic":true,"types":["bdk::types::FeeRate"]},{"text":"impl Freeze for LocalUtxo","synthetic":true,"types":["bdk::types::LocalUtxo"]},{"text":"impl Freeze for WeightedUtxo","synthetic":true,"types":["bdk::types::WeightedUtxo"]},{"text":"impl Freeze for Utxo","synthetic":true,"types":["bdk::types::Utxo"]},{"text":"impl Freeze for TransactionDetails","synthetic":true,"types":["bdk::types::TransactionDetails"]},{"text":"impl Freeze for BlockTime","synthetic":true,"types":["bdk::types::BlockTime"]},{"text":"impl Freeze for AddressValidatorError","synthetic":true,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl Freeze for CoinSelectionResult","synthetic":true,"types":["bdk::wallet::coin_selection::CoinSelectionResult"]},{"text":"impl Freeze for LargestFirstCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl Freeze for BranchAndBoundCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]},{"text":"impl Freeze for WalletExport","synthetic":true,"types":["bdk::wallet::export::WalletExport"]},{"text":"impl Freeze for SignerId","synthetic":true,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl Freeze for SignerError","synthetic":true,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl Freeze for SignerOrdering","synthetic":true,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl Freeze for SignersContainer","synthetic":true,"types":["bdk::wallet::signer::SignersContainer"]},{"text":"impl Freeze for SignOptions","synthetic":true,"types":["bdk::wallet::signer::SignOptions"]},{"text":"impl Freeze for CreateTx","synthetic":true,"types":["bdk::wallet::tx_builder::CreateTx"]},{"text":"impl Freeze for BumpFee","synthetic":true,"types":["bdk::wallet::tx_builder::BumpFee"]},{"text":"impl<'a, B, D, Cs, Ctx> Freeze for TxBuilder<'a, B, D, Cs, Ctx> where
    Cs: Freeze, 
","synthetic":true,"types":["bdk::wallet::tx_builder::TxBuilder"]},{"text":"impl Freeze for TxOrdering","synthetic":true,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Freeze for ChangeSpendPolicy","synthetic":true,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]},{"text":"impl<B, D> !Freeze for Wallet<B, D>","synthetic":true,"types":["bdk::wallet::Wallet"]},{"text":"impl Freeze for AddressIndex","synthetic":true,"types":["bdk::wallet::AddressIndex"]},{"text":"impl Freeze for AddressInfo","synthetic":true,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Send.js b/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Send.js deleted file mode 100644 index e4d80a88fb..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Send.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Send for Error","synthetic":true,"types":["bdk::error::Error"]},{"text":"impl Send for AnyBlockchain","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchain"]},{"text":"impl Send for AnyBlockchainConfig","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl Send for ElectrumBlockchain","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchain"]},{"text":"impl Send for ElectrumBlockchainConfig","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl Send for EsploraBlockchain","synthetic":true,"types":["bdk::blockchain::esplora::ureq::EsploraBlockchain"]},{"text":"impl Send for EsploraError","synthetic":true,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl Send for EsploraBlockchainConfig","synthetic":true,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl Send for Mempool","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Mempool"]},{"text":"impl Send for Peer","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Peer"]},{"text":"impl Send for CompactFiltersBlockchain","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchain"]},{"text":"impl Send for BitcoinPeerConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl Send for CompactFiltersBlockchainConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl Send for CompactFiltersError","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl Send for Capability","synthetic":true,"types":["bdk::blockchain::Capability"]},{"text":"impl Send for NoopProgress","synthetic":true,"types":["bdk::blockchain::NoopProgress"]},{"text":"impl Send for LogProgress","synthetic":true,"types":["bdk::blockchain::LogProgress"]},{"text":"impl Send for AnyDatabase","synthetic":true,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl Send for AnyBatch","synthetic":true,"types":["bdk::database::any::AnyBatch"]},{"text":"impl Send for SledDbConfiguration","synthetic":true,"types":["bdk::database::any::SledDbConfiguration"]},{"text":"impl Send for SqliteDbConfiguration","synthetic":true,"types":["bdk::database::any::SqliteDbConfiguration"]},{"text":"impl Send for AnyDatabaseConfig","synthetic":true,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl Send for SqliteDatabase","synthetic":true,"types":["bdk::database::sqlite::SqliteDatabase"]},{"text":"impl Send for MemoryDatabase","synthetic":true,"types":["bdk::database::memory::MemoryDatabase"]},{"text":"impl Send for SyncTime","synthetic":true,"types":["bdk::database::SyncTime"]},{"text":"impl<'s> Send for DerivedDescriptorKey<'s>","synthetic":true,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Send for Error","synthetic":true,"types":["bdk::descriptor::error::Error"]},{"text":"impl Send for PkOrF","synthetic":true,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl Send for SatisfiableItem","synthetic":true,"types":["bdk::descriptor::policy::SatisfiableItem"]},{"text":"impl Send for Satisfaction","synthetic":true,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl Send for Policy","synthetic":true,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl Send for Condition","synthetic":true,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Send for PolicyError","synthetic":true,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl<'a> Send for BuildSatisfaction<'a>","synthetic":true,"types":["bdk::descriptor::policy::BuildSatisfaction"]},{"text":"impl<K> Send for P2Pkh<K> where
    K: Send
","synthetic":true,"types":["bdk::descriptor::template::P2Pkh"]},{"text":"impl<K> Send for P2Wpkh_P2Sh<K> where
    K: Send
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh_P2Sh"]},{"text":"impl<K> Send for P2Wpkh<K> where
    K: Send
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh"]},{"text":"impl<K> Send for Bip44<K> where
    K: Send
","synthetic":true,"types":["bdk::descriptor::template::Bip44"]},{"text":"impl<K> Send for Bip44Public<K> where
    K: Send
","synthetic":true,"types":["bdk::descriptor::template::Bip44Public"]},{"text":"impl<K> Send for Bip49<K> where
    K: Send
","synthetic":true,"types":["bdk::descriptor::template::Bip49"]},{"text":"impl<K> Send for Bip49Public<K> where
    K: Send
","synthetic":true,"types":["bdk::descriptor::template::Bip49Public"]},{"text":"impl<K> Send for Bip84<K> where
    K: Send
","synthetic":true,"types":["bdk::descriptor::template::Bip84"]},{"text":"impl<K> Send for Bip84Public<K> where
    K: Send
","synthetic":true,"types":["bdk::descriptor::template::Bip84Public"]},{"text":"impl Send for WordCount","synthetic":true,"types":["bdk::keys::bip39::WordCount"]},{"text":"impl<Ctx> Send for DescriptorKey<Ctx> where
    Ctx: Send
","synthetic":true,"types":["bdk::keys::DescriptorKey"]},{"text":"impl Send for ScriptContextEnum","synthetic":true,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl<Ctx> Send for ExtendedKey<Ctx> where
    Ctx: Send
","synthetic":true,"types":["bdk::keys::ExtendedKey"]},{"text":"impl<K, Ctx> Send for GeneratedKey<K, Ctx> where
    Ctx: Send,
    K: Send
","synthetic":true,"types":["bdk::keys::GeneratedKey"]},{"text":"impl Send for PrivateKeyGenerateOptions","synthetic":true,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl Send for KeyError","synthetic":true,"types":["bdk::keys::KeyError"]},{"text":"impl Send for KeychainKind","synthetic":true,"types":["bdk::types::KeychainKind"]},{"text":"impl Send for FeeRate","synthetic":true,"types":["bdk::types::FeeRate"]},{"text":"impl Send for LocalUtxo","synthetic":true,"types":["bdk::types::LocalUtxo"]},{"text":"impl Send for WeightedUtxo","synthetic":true,"types":["bdk::types::WeightedUtxo"]},{"text":"impl Send for Utxo","synthetic":true,"types":["bdk::types::Utxo"]},{"text":"impl Send for TransactionDetails","synthetic":true,"types":["bdk::types::TransactionDetails"]},{"text":"impl Send for BlockTime","synthetic":true,"types":["bdk::types::BlockTime"]},{"text":"impl Send for AddressValidatorError","synthetic":true,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl Send for CoinSelectionResult","synthetic":true,"types":["bdk::wallet::coin_selection::CoinSelectionResult"]},{"text":"impl Send for LargestFirstCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl Send for BranchAndBoundCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]},{"text":"impl Send for WalletExport","synthetic":true,"types":["bdk::wallet::export::WalletExport"]},{"text":"impl Send for SignerId","synthetic":true,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl Send for SignerError","synthetic":true,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl Send for SignerOrdering","synthetic":true,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl Send for SignersContainer","synthetic":true,"types":["bdk::wallet::signer::SignersContainer"]},{"text":"impl Send for SignOptions","synthetic":true,"types":["bdk::wallet::signer::SignOptions"]},{"text":"impl Send for CreateTx","synthetic":true,"types":["bdk::wallet::tx_builder::CreateTx"]},{"text":"impl Send for BumpFee","synthetic":true,"types":["bdk::wallet::tx_builder::BumpFee"]},{"text":"impl<'a, B, D, Cs, Ctx> !Send for TxBuilder<'a, B, D, Cs, Ctx>","synthetic":true,"types":["bdk::wallet::tx_builder::TxBuilder"]},{"text":"impl Send for TxOrdering","synthetic":true,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Send for ChangeSpendPolicy","synthetic":true,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]},{"text":"impl<B, D> Send for Wallet<B, D> where
    B: Send,
    D: Send
","synthetic":true,"types":["bdk::wallet::Wallet"]},{"text":"impl Send for AddressIndex","synthetic":true,"types":["bdk::wallet::AddressIndex"]},{"text":"impl Send for AddressInfo","synthetic":true,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralEq.js b/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralEq.js deleted file mode 100644 index 4d6d4c9098..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl StructuralEq for Capability","synthetic":false,"types":["bdk::blockchain::Capability"]},{"text":"impl StructuralEq for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl StructuralEq for PolicyError","synthetic":false,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl StructuralEq for ScriptContextEnum","synthetic":false,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl StructuralEq for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl StructuralEq for LocalUtxo","synthetic":false,"types":["bdk::types::LocalUtxo"]},{"text":"impl StructuralEq for TransactionDetails","synthetic":false,"types":["bdk::types::TransactionDetails"]},{"text":"impl StructuralEq for BlockTime","synthetic":false,"types":["bdk::types::BlockTime"]},{"text":"impl StructuralEq for AddressValidatorError","synthetic":false,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl StructuralEq for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl StructuralEq for SignerError","synthetic":false,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl StructuralEq for SignerOrdering","synthetic":false,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl StructuralEq for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl StructuralEq for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralPartialEq.js b/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralPartialEq.js deleted file mode 100644 index 1054145a0f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralPartialEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl StructuralPartialEq for AnyBlockchainConfig","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl StructuralPartialEq for ElectrumBlockchainConfig","synthetic":false,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl StructuralPartialEq for EsploraBlockchainConfig","synthetic":false,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl StructuralPartialEq for BitcoinPeerConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl StructuralPartialEq for CompactFiltersBlockchainConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl StructuralPartialEq for Capability","synthetic":false,"types":["bdk::blockchain::Capability"]},{"text":"impl StructuralPartialEq for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl StructuralPartialEq for PolicyError","synthetic":false,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl StructuralPartialEq for ScriptContextEnum","synthetic":false,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl StructuralPartialEq for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl StructuralPartialEq for FeeRate","synthetic":false,"types":["bdk::types::FeeRate"]},{"text":"impl StructuralPartialEq for LocalUtxo","synthetic":false,"types":["bdk::types::LocalUtxo"]},{"text":"impl StructuralPartialEq for WeightedUtxo","synthetic":false,"types":["bdk::types::WeightedUtxo"]},{"text":"impl StructuralPartialEq for Utxo","synthetic":false,"types":["bdk::types::Utxo"]},{"text":"impl StructuralPartialEq for TransactionDetails","synthetic":false,"types":["bdk::types::TransactionDetails"]},{"text":"impl StructuralPartialEq for BlockTime","synthetic":false,"types":["bdk::types::BlockTime"]},{"text":"impl StructuralPartialEq for AddressValidatorError","synthetic":false,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl StructuralPartialEq for SignerId","synthetic":false,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl StructuralPartialEq for SignerError","synthetic":false,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl StructuralPartialEq for SignerOrdering","synthetic":false,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl StructuralPartialEq for TxOrdering","synthetic":false,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl StructuralPartialEq for ChangeSpendPolicy","synthetic":false,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]},{"text":"impl StructuralPartialEq for AddressInfo","synthetic":false,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Sync.js b/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Sync.js deleted file mode 100644 index 9826f90a6e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Sync.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Sync for Error","synthetic":true,"types":["bdk::error::Error"]},{"text":"impl Sync for AnyBlockchain","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchain"]},{"text":"impl Sync for AnyBlockchainConfig","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl Sync for ElectrumBlockchain","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchain"]},{"text":"impl Sync for ElectrumBlockchainConfig","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl Sync for EsploraBlockchain","synthetic":true,"types":["bdk::blockchain::esplora::ureq::EsploraBlockchain"]},{"text":"impl Sync for EsploraError","synthetic":true,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl Sync for EsploraBlockchainConfig","synthetic":true,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl Sync for Mempool","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Mempool"]},{"text":"impl Sync for Peer","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Peer"]},{"text":"impl Sync for CompactFiltersBlockchain","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchain"]},{"text":"impl Sync for BitcoinPeerConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl Sync for CompactFiltersBlockchainConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl Sync for CompactFiltersError","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl Sync for Capability","synthetic":true,"types":["bdk::blockchain::Capability"]},{"text":"impl Sync for NoopProgress","synthetic":true,"types":["bdk::blockchain::NoopProgress"]},{"text":"impl Sync for LogProgress","synthetic":true,"types":["bdk::blockchain::LogProgress"]},{"text":"impl !Sync for AnyDatabase","synthetic":true,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl !Sync for AnyBatch","synthetic":true,"types":["bdk::database::any::AnyBatch"]},{"text":"impl Sync for SledDbConfiguration","synthetic":true,"types":["bdk::database::any::SledDbConfiguration"]},{"text":"impl Sync for SqliteDbConfiguration","synthetic":true,"types":["bdk::database::any::SqliteDbConfiguration"]},{"text":"impl Sync for AnyDatabaseConfig","synthetic":true,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl !Sync for SqliteDatabase","synthetic":true,"types":["bdk::database::sqlite::SqliteDatabase"]},{"text":"impl Sync for MemoryDatabase","synthetic":true,"types":["bdk::database::memory::MemoryDatabase"]},{"text":"impl Sync for SyncTime","synthetic":true,"types":["bdk::database::SyncTime"]},{"text":"impl<'s> Sync for DerivedDescriptorKey<'s>","synthetic":true,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Sync for Error","synthetic":true,"types":["bdk::descriptor::error::Error"]},{"text":"impl Sync for PkOrF","synthetic":true,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl Sync for SatisfiableItem","synthetic":true,"types":["bdk::descriptor::policy::SatisfiableItem"]},{"text":"impl Sync for Satisfaction","synthetic":true,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl Sync for Policy","synthetic":true,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl Sync for Condition","synthetic":true,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Sync for PolicyError","synthetic":true,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl<'a> Sync for BuildSatisfaction<'a>","synthetic":true,"types":["bdk::descriptor::policy::BuildSatisfaction"]},{"text":"impl<K> Sync for P2Pkh<K> where
    K: Sync
","synthetic":true,"types":["bdk::descriptor::template::P2Pkh"]},{"text":"impl<K> Sync for P2Wpkh_P2Sh<K> where
    K: Sync
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh_P2Sh"]},{"text":"impl<K> Sync for P2Wpkh<K> where
    K: Sync
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh"]},{"text":"impl<K> Sync for Bip44<K> where
    K: Sync
","synthetic":true,"types":["bdk::descriptor::template::Bip44"]},{"text":"impl<K> Sync for Bip44Public<K> where
    K: Sync
","synthetic":true,"types":["bdk::descriptor::template::Bip44Public"]},{"text":"impl<K> Sync for Bip49<K> where
    K: Sync
","synthetic":true,"types":["bdk::descriptor::template::Bip49"]},{"text":"impl<K> Sync for Bip49Public<K> where
    K: Sync
","synthetic":true,"types":["bdk::descriptor::template::Bip49Public"]},{"text":"impl<K> Sync for Bip84<K> where
    K: Sync
","synthetic":true,"types":["bdk::descriptor::template::Bip84"]},{"text":"impl<K> Sync for Bip84Public<K> where
    K: Sync
","synthetic":true,"types":["bdk::descriptor::template::Bip84Public"]},{"text":"impl Sync for WordCount","synthetic":true,"types":["bdk::keys::bip39::WordCount"]},{"text":"impl<Ctx> Sync for DescriptorKey<Ctx> where
    Ctx: Sync
","synthetic":true,"types":["bdk::keys::DescriptorKey"]},{"text":"impl Sync for ScriptContextEnum","synthetic":true,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl<Ctx> Sync for ExtendedKey<Ctx> where
    Ctx: Sync
","synthetic":true,"types":["bdk::keys::ExtendedKey"]},{"text":"impl<K, Ctx> Sync for GeneratedKey<K, Ctx> where
    Ctx: Sync,
    K: Sync
","synthetic":true,"types":["bdk::keys::GeneratedKey"]},{"text":"impl Sync for PrivateKeyGenerateOptions","synthetic":true,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl Sync for KeyError","synthetic":true,"types":["bdk::keys::KeyError"]},{"text":"impl Sync for KeychainKind","synthetic":true,"types":["bdk::types::KeychainKind"]},{"text":"impl Sync for FeeRate","synthetic":true,"types":["bdk::types::FeeRate"]},{"text":"impl Sync for LocalUtxo","synthetic":true,"types":["bdk::types::LocalUtxo"]},{"text":"impl Sync for WeightedUtxo","synthetic":true,"types":["bdk::types::WeightedUtxo"]},{"text":"impl Sync for Utxo","synthetic":true,"types":["bdk::types::Utxo"]},{"text":"impl Sync for TransactionDetails","synthetic":true,"types":["bdk::types::TransactionDetails"]},{"text":"impl Sync for BlockTime","synthetic":true,"types":["bdk::types::BlockTime"]},{"text":"impl Sync for AddressValidatorError","synthetic":true,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl Sync for CoinSelectionResult","synthetic":true,"types":["bdk::wallet::coin_selection::CoinSelectionResult"]},{"text":"impl Sync for LargestFirstCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl Sync for BranchAndBoundCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]},{"text":"impl Sync for WalletExport","synthetic":true,"types":["bdk::wallet::export::WalletExport"]},{"text":"impl Sync for SignerId","synthetic":true,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl Sync for SignerError","synthetic":true,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl Sync for SignerOrdering","synthetic":true,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl Sync for SignersContainer","synthetic":true,"types":["bdk::wallet::signer::SignersContainer"]},{"text":"impl Sync for SignOptions","synthetic":true,"types":["bdk::wallet::signer::SignOptions"]},{"text":"impl Sync for CreateTx","synthetic":true,"types":["bdk::wallet::tx_builder::CreateTx"]},{"text":"impl Sync for BumpFee","synthetic":true,"types":["bdk::wallet::tx_builder::BumpFee"]},{"text":"impl<'a, B, D, Cs, Ctx> !Sync for TxBuilder<'a, B, D, Cs, Ctx>","synthetic":true,"types":["bdk::wallet::tx_builder::TxBuilder"]},{"text":"impl Sync for TxOrdering","synthetic":true,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Sync for ChangeSpendPolicy","synthetic":true,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]},{"text":"impl<B, D> !Sync for Wallet<B, D>","synthetic":true,"types":["bdk::wallet::Wallet"]},{"text":"impl Sync for AddressIndex","synthetic":true,"types":["bdk::wallet::AddressIndex"]},{"text":"impl Sync for AddressInfo","synthetic":true,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Unpin.js b/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Unpin.js deleted file mode 100644 index 5ff37cf49d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Unpin.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Unpin for Error","synthetic":true,"types":["bdk::error::Error"]},{"text":"impl Unpin for AnyBlockchain","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchain"]},{"text":"impl Unpin for AnyBlockchainConfig","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl Unpin for ElectrumBlockchain","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchain"]},{"text":"impl Unpin for ElectrumBlockchainConfig","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl Unpin for EsploraBlockchain","synthetic":true,"types":["bdk::blockchain::esplora::ureq::EsploraBlockchain"]},{"text":"impl Unpin for EsploraError","synthetic":true,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl Unpin for EsploraBlockchainConfig","synthetic":true,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl Unpin for Mempool","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Mempool"]},{"text":"impl Unpin for Peer","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Peer"]},{"text":"impl Unpin for CompactFiltersBlockchain","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchain"]},{"text":"impl Unpin for BitcoinPeerConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl Unpin for CompactFiltersBlockchainConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl Unpin for CompactFiltersError","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl Unpin for Capability","synthetic":true,"types":["bdk::blockchain::Capability"]},{"text":"impl Unpin for NoopProgress","synthetic":true,"types":["bdk::blockchain::NoopProgress"]},{"text":"impl Unpin for LogProgress","synthetic":true,"types":["bdk::blockchain::LogProgress"]},{"text":"impl Unpin for AnyDatabase","synthetic":true,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl Unpin for AnyBatch","synthetic":true,"types":["bdk::database::any::AnyBatch"]},{"text":"impl Unpin for SledDbConfiguration","synthetic":true,"types":["bdk::database::any::SledDbConfiguration"]},{"text":"impl Unpin for SqliteDbConfiguration","synthetic":true,"types":["bdk::database::any::SqliteDbConfiguration"]},{"text":"impl Unpin for AnyDatabaseConfig","synthetic":true,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl Unpin for SqliteDatabase","synthetic":true,"types":["bdk::database::sqlite::SqliteDatabase"]},{"text":"impl Unpin for MemoryDatabase","synthetic":true,"types":["bdk::database::memory::MemoryDatabase"]},{"text":"impl Unpin for SyncTime","synthetic":true,"types":["bdk::database::SyncTime"]},{"text":"impl<'s> Unpin for DerivedDescriptorKey<'s>","synthetic":true,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl Unpin for Error","synthetic":true,"types":["bdk::descriptor::error::Error"]},{"text":"impl Unpin for PkOrF","synthetic":true,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl Unpin for SatisfiableItem","synthetic":true,"types":["bdk::descriptor::policy::SatisfiableItem"]},{"text":"impl Unpin for Satisfaction","synthetic":true,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl Unpin for Policy","synthetic":true,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl Unpin for Condition","synthetic":true,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Unpin for PolicyError","synthetic":true,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl<'a> Unpin for BuildSatisfaction<'a>","synthetic":true,"types":["bdk::descriptor::policy::BuildSatisfaction"]},{"text":"impl<K> Unpin for P2Pkh<K> where
    K: Unpin
","synthetic":true,"types":["bdk::descriptor::template::P2Pkh"]},{"text":"impl<K> Unpin for P2Wpkh_P2Sh<K> where
    K: Unpin
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh_P2Sh"]},{"text":"impl<K> Unpin for P2Wpkh<K> where
    K: Unpin
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh"]},{"text":"impl<K> Unpin for Bip44<K> where
    K: Unpin
","synthetic":true,"types":["bdk::descriptor::template::Bip44"]},{"text":"impl<K> Unpin for Bip44Public<K> where
    K: Unpin
","synthetic":true,"types":["bdk::descriptor::template::Bip44Public"]},{"text":"impl<K> Unpin for Bip49<K> where
    K: Unpin
","synthetic":true,"types":["bdk::descriptor::template::Bip49"]},{"text":"impl<K> Unpin for Bip49Public<K> where
    K: Unpin
","synthetic":true,"types":["bdk::descriptor::template::Bip49Public"]},{"text":"impl<K> Unpin for Bip84<K> where
    K: Unpin
","synthetic":true,"types":["bdk::descriptor::template::Bip84"]},{"text":"impl<K> Unpin for Bip84Public<K> where
    K: Unpin
","synthetic":true,"types":["bdk::descriptor::template::Bip84Public"]},{"text":"impl Unpin for WordCount","synthetic":true,"types":["bdk::keys::bip39::WordCount"]},{"text":"impl<Ctx> Unpin for DescriptorKey<Ctx> where
    Ctx: Unpin
","synthetic":true,"types":["bdk::keys::DescriptorKey"]},{"text":"impl Unpin for ScriptContextEnum","synthetic":true,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl<Ctx> Unpin for ExtendedKey<Ctx> where
    Ctx: Unpin
","synthetic":true,"types":["bdk::keys::ExtendedKey"]},{"text":"impl<K, Ctx> Unpin for GeneratedKey<K, Ctx> where
    Ctx: Unpin,
    K: Unpin
","synthetic":true,"types":["bdk::keys::GeneratedKey"]},{"text":"impl Unpin for PrivateKeyGenerateOptions","synthetic":true,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl Unpin for KeyError","synthetic":true,"types":["bdk::keys::KeyError"]},{"text":"impl Unpin for KeychainKind","synthetic":true,"types":["bdk::types::KeychainKind"]},{"text":"impl Unpin for FeeRate","synthetic":true,"types":["bdk::types::FeeRate"]},{"text":"impl Unpin for LocalUtxo","synthetic":true,"types":["bdk::types::LocalUtxo"]},{"text":"impl Unpin for WeightedUtxo","synthetic":true,"types":["bdk::types::WeightedUtxo"]},{"text":"impl Unpin for Utxo","synthetic":true,"types":["bdk::types::Utxo"]},{"text":"impl Unpin for TransactionDetails","synthetic":true,"types":["bdk::types::TransactionDetails"]},{"text":"impl Unpin for BlockTime","synthetic":true,"types":["bdk::types::BlockTime"]},{"text":"impl Unpin for AddressValidatorError","synthetic":true,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl Unpin for CoinSelectionResult","synthetic":true,"types":["bdk::wallet::coin_selection::CoinSelectionResult"]},{"text":"impl Unpin for LargestFirstCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl Unpin for BranchAndBoundCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]},{"text":"impl Unpin for WalletExport","synthetic":true,"types":["bdk::wallet::export::WalletExport"]},{"text":"impl Unpin for SignerId","synthetic":true,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl Unpin for SignerError","synthetic":true,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl Unpin for SignerOrdering","synthetic":true,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl Unpin for SignersContainer","synthetic":true,"types":["bdk::wallet::signer::SignersContainer"]},{"text":"impl Unpin for SignOptions","synthetic":true,"types":["bdk::wallet::signer::SignOptions"]},{"text":"impl Unpin for CreateTx","synthetic":true,"types":["bdk::wallet::tx_builder::CreateTx"]},{"text":"impl Unpin for BumpFee","synthetic":true,"types":["bdk::wallet::tx_builder::BumpFee"]},{"text":"impl<'a, B, D, Cs, Ctx> Unpin for TxBuilder<'a, B, D, Cs, Ctx> where
    Cs: Unpin,
    Ctx: Unpin
","synthetic":true,"types":["bdk::wallet::tx_builder::TxBuilder"]},{"text":"impl Unpin for TxOrdering","synthetic":true,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl Unpin for ChangeSpendPolicy","synthetic":true,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]},{"text":"impl<B, D> Unpin for Wallet<B, D> where
    B: Unpin,
    D: Unpin
","synthetic":true,"types":["bdk::wallet::Wallet"]},{"text":"impl Unpin for AddressIndex","synthetic":true,"types":["bdk::wallet::AddressIndex"]},{"text":"impl Unpin for AddressInfo","synthetic":true,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/ops/arith/trait.Sub.js b/static/docs-rs/bdk/nightly/latest/implementors/core/ops/arith/trait.Sub.js deleted file mode 100644 index 0527a76602..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/ops/arith/trait.Sub.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Sub<FeeRate> for FeeRate","synthetic":false,"types":["bdk::types::FeeRate"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/ops/deref/trait.Deref.js b/static/docs-rs/bdk/nightly/latest/implementors/core/ops/deref/trait.Deref.js deleted file mode 100644 index 172ef72b01..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/ops/deref/trait.Deref.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl<'s> Deref for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl<K, Ctx: ScriptContext> Deref for GeneratedKey<K, Ctx>","synthetic":false,"types":["bdk::keys::GeneratedKey"]},{"text":"impl Deref for AddressInfo","synthetic":false,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/static/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js deleted file mode 100644 index aba091cb3e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl !RefUnwindSafe for Error","synthetic":true,"types":["bdk::error::Error"]},{"text":"impl !RefUnwindSafe for AnyBlockchain","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchain"]},{"text":"impl RefUnwindSafe for AnyBlockchainConfig","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl RefUnwindSafe for ElectrumBlockchain","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchain"]},{"text":"impl RefUnwindSafe for ElectrumBlockchainConfig","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl !RefUnwindSafe for EsploraBlockchain","synthetic":true,"types":["bdk::blockchain::esplora::ureq::EsploraBlockchain"]},{"text":"impl !RefUnwindSafe for EsploraError","synthetic":true,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl RefUnwindSafe for EsploraBlockchainConfig","synthetic":true,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl RefUnwindSafe for Mempool","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Mempool"]},{"text":"impl !RefUnwindSafe for Peer","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Peer"]},{"text":"impl !RefUnwindSafe for CompactFiltersBlockchain","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchain"]},{"text":"impl RefUnwindSafe for BitcoinPeerConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl RefUnwindSafe for CompactFiltersBlockchainConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl !RefUnwindSafe for CompactFiltersError","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl RefUnwindSafe for Capability","synthetic":true,"types":["bdk::blockchain::Capability"]},{"text":"impl RefUnwindSafe for NoopProgress","synthetic":true,"types":["bdk::blockchain::NoopProgress"]},{"text":"impl RefUnwindSafe for LogProgress","synthetic":true,"types":["bdk::blockchain::LogProgress"]},{"text":"impl !RefUnwindSafe for AnyDatabase","synthetic":true,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl !RefUnwindSafe for AnyBatch","synthetic":true,"types":["bdk::database::any::AnyBatch"]},{"text":"impl RefUnwindSafe for SledDbConfiguration","synthetic":true,"types":["bdk::database::any::SledDbConfiguration"]},{"text":"impl RefUnwindSafe for SqliteDbConfiguration","synthetic":true,"types":["bdk::database::any::SqliteDbConfiguration"]},{"text":"impl RefUnwindSafe for AnyDatabaseConfig","synthetic":true,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl !RefUnwindSafe for SqliteDatabase","synthetic":true,"types":["bdk::database::sqlite::SqliteDatabase"]},{"text":"impl !RefUnwindSafe for MemoryDatabase","synthetic":true,"types":["bdk::database::memory::MemoryDatabase"]},{"text":"impl RefUnwindSafe for SyncTime","synthetic":true,"types":["bdk::database::SyncTime"]},{"text":"impl<'s> RefUnwindSafe for DerivedDescriptorKey<'s>","synthetic":true,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl RefUnwindSafe for Error","synthetic":true,"types":["bdk::descriptor::error::Error"]},{"text":"impl RefUnwindSafe for PkOrF","synthetic":true,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl RefUnwindSafe for SatisfiableItem","synthetic":true,"types":["bdk::descriptor::policy::SatisfiableItem"]},{"text":"impl RefUnwindSafe for Satisfaction","synthetic":true,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl RefUnwindSafe for Policy","synthetic":true,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl RefUnwindSafe for Condition","synthetic":true,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl RefUnwindSafe for PolicyError","synthetic":true,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl<'a> RefUnwindSafe for BuildSatisfaction<'a>","synthetic":true,"types":["bdk::descriptor::policy::BuildSatisfaction"]},{"text":"impl<K> RefUnwindSafe for P2Pkh<K> where
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::P2Pkh"]},{"text":"impl<K> RefUnwindSafe for P2Wpkh_P2Sh<K> where
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh_P2Sh"]},{"text":"impl<K> RefUnwindSafe for P2Wpkh<K> where
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh"]},{"text":"impl<K> RefUnwindSafe for Bip44<K> where
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip44"]},{"text":"impl<K> RefUnwindSafe for Bip44Public<K> where
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip44Public"]},{"text":"impl<K> RefUnwindSafe for Bip49<K> where
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip49"]},{"text":"impl<K> RefUnwindSafe for Bip49Public<K> where
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip49Public"]},{"text":"impl<K> RefUnwindSafe for Bip84<K> where
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip84"]},{"text":"impl<K> RefUnwindSafe for Bip84Public<K> where
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip84Public"]},{"text":"impl RefUnwindSafe for WordCount","synthetic":true,"types":["bdk::keys::bip39::WordCount"]},{"text":"impl<Ctx> RefUnwindSafe for DescriptorKey<Ctx> where
    Ctx: RefUnwindSafe
","synthetic":true,"types":["bdk::keys::DescriptorKey"]},{"text":"impl RefUnwindSafe for ScriptContextEnum","synthetic":true,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl<Ctx> RefUnwindSafe for ExtendedKey<Ctx> where
    Ctx: RefUnwindSafe
","synthetic":true,"types":["bdk::keys::ExtendedKey"]},{"text":"impl<K, Ctx> RefUnwindSafe for GeneratedKey<K, Ctx> where
    Ctx: RefUnwindSafe,
    K: RefUnwindSafe
","synthetic":true,"types":["bdk::keys::GeneratedKey"]},{"text":"impl RefUnwindSafe for PrivateKeyGenerateOptions","synthetic":true,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl RefUnwindSafe for KeyError","synthetic":true,"types":["bdk::keys::KeyError"]},{"text":"impl RefUnwindSafe for KeychainKind","synthetic":true,"types":["bdk::types::KeychainKind"]},{"text":"impl RefUnwindSafe for FeeRate","synthetic":true,"types":["bdk::types::FeeRate"]},{"text":"impl RefUnwindSafe for LocalUtxo","synthetic":true,"types":["bdk::types::LocalUtxo"]},{"text":"impl RefUnwindSafe for WeightedUtxo","synthetic":true,"types":["bdk::types::WeightedUtxo"]},{"text":"impl RefUnwindSafe for Utxo","synthetic":true,"types":["bdk::types::Utxo"]},{"text":"impl RefUnwindSafe for TransactionDetails","synthetic":true,"types":["bdk::types::TransactionDetails"]},{"text":"impl RefUnwindSafe for BlockTime","synthetic":true,"types":["bdk::types::BlockTime"]},{"text":"impl RefUnwindSafe for AddressValidatorError","synthetic":true,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl RefUnwindSafe for CoinSelectionResult","synthetic":true,"types":["bdk::wallet::coin_selection::CoinSelectionResult"]},{"text":"impl RefUnwindSafe for LargestFirstCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl RefUnwindSafe for BranchAndBoundCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]},{"text":"impl RefUnwindSafe for WalletExport","synthetic":true,"types":["bdk::wallet::export::WalletExport"]},{"text":"impl RefUnwindSafe for SignerId","synthetic":true,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl RefUnwindSafe for SignerError","synthetic":true,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl RefUnwindSafe for SignerOrdering","synthetic":true,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl !RefUnwindSafe for SignersContainer","synthetic":true,"types":["bdk::wallet::signer::SignersContainer"]},{"text":"impl RefUnwindSafe for SignOptions","synthetic":true,"types":["bdk::wallet::signer::SignOptions"]},{"text":"impl RefUnwindSafe for CreateTx","synthetic":true,"types":["bdk::wallet::tx_builder::CreateTx"]},{"text":"impl RefUnwindSafe for BumpFee","synthetic":true,"types":["bdk::wallet::tx_builder::BumpFee"]},{"text":"impl<'a, B, D, Cs, Ctx> !RefUnwindSafe for TxBuilder<'a, B, D, Cs, Ctx>","synthetic":true,"types":["bdk::wallet::tx_builder::TxBuilder"]},{"text":"impl RefUnwindSafe for TxOrdering","synthetic":true,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl RefUnwindSafe for ChangeSpendPolicy","synthetic":true,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]},{"text":"impl<B, D> !RefUnwindSafe for Wallet<B, D>","synthetic":true,"types":["bdk::wallet::Wallet"]},{"text":"impl RefUnwindSafe for AddressIndex","synthetic":true,"types":["bdk::wallet::AddressIndex"]},{"text":"impl RefUnwindSafe for AddressInfo","synthetic":true,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/static/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js deleted file mode 100644 index d4f28bacf6..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl !UnwindSafe for Error","synthetic":true,"types":["bdk::error::Error"]},{"text":"impl !UnwindSafe for AnyBlockchain","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchain"]},{"text":"impl UnwindSafe for AnyBlockchainConfig","synthetic":true,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl UnwindSafe for ElectrumBlockchain","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchain"]},{"text":"impl UnwindSafe for ElectrumBlockchainConfig","synthetic":true,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl !UnwindSafe for EsploraBlockchain","synthetic":true,"types":["bdk::blockchain::esplora::ureq::EsploraBlockchain"]},{"text":"impl !UnwindSafe for EsploraError","synthetic":true,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl UnwindSafe for EsploraBlockchainConfig","synthetic":true,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl UnwindSafe for Mempool","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Mempool"]},{"text":"impl !UnwindSafe for Peer","synthetic":true,"types":["bdk::blockchain::compact_filters::peer::Peer"]},{"text":"impl !UnwindSafe for CompactFiltersBlockchain","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchain"]},{"text":"impl UnwindSafe for BitcoinPeerConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl UnwindSafe for CompactFiltersBlockchainConfig","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl !UnwindSafe for CompactFiltersError","synthetic":true,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl UnwindSafe for Capability","synthetic":true,"types":["bdk::blockchain::Capability"]},{"text":"impl UnwindSafe for NoopProgress","synthetic":true,"types":["bdk::blockchain::NoopProgress"]},{"text":"impl UnwindSafe for LogProgress","synthetic":true,"types":["bdk::blockchain::LogProgress"]},{"text":"impl !UnwindSafe for AnyDatabase","synthetic":true,"types":["bdk::database::any::AnyDatabase"]},{"text":"impl !UnwindSafe for AnyBatch","synthetic":true,"types":["bdk::database::any::AnyBatch"]},{"text":"impl UnwindSafe for SledDbConfiguration","synthetic":true,"types":["bdk::database::any::SledDbConfiguration"]},{"text":"impl UnwindSafe for SqliteDbConfiguration","synthetic":true,"types":["bdk::database::any::SqliteDbConfiguration"]},{"text":"impl UnwindSafe for AnyDatabaseConfig","synthetic":true,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl !UnwindSafe for SqliteDatabase","synthetic":true,"types":["bdk::database::sqlite::SqliteDatabase"]},{"text":"impl !UnwindSafe for MemoryDatabase","synthetic":true,"types":["bdk::database::memory::MemoryDatabase"]},{"text":"impl UnwindSafe for SyncTime","synthetic":true,"types":["bdk::database::SyncTime"]},{"text":"impl<'s> UnwindSafe for DerivedDescriptorKey<'s>","synthetic":true,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]},{"text":"impl UnwindSafe for Error","synthetic":true,"types":["bdk::descriptor::error::Error"]},{"text":"impl UnwindSafe for PkOrF","synthetic":true,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl UnwindSafe for SatisfiableItem","synthetic":true,"types":["bdk::descriptor::policy::SatisfiableItem"]},{"text":"impl UnwindSafe for Satisfaction","synthetic":true,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl UnwindSafe for Policy","synthetic":true,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl UnwindSafe for Condition","synthetic":true,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl UnwindSafe for PolicyError","synthetic":true,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl<'a> UnwindSafe for BuildSatisfaction<'a>","synthetic":true,"types":["bdk::descriptor::policy::BuildSatisfaction"]},{"text":"impl<K> UnwindSafe for P2Pkh<K> where
    K: UnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::P2Pkh"]},{"text":"impl<K> UnwindSafe for P2Wpkh_P2Sh<K> where
    K: UnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh_P2Sh"]},{"text":"impl<K> UnwindSafe for P2Wpkh<K> where
    K: UnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::P2Wpkh"]},{"text":"impl<K> UnwindSafe for Bip44<K> where
    K: UnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip44"]},{"text":"impl<K> UnwindSafe for Bip44Public<K> where
    K: UnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip44Public"]},{"text":"impl<K> UnwindSafe for Bip49<K> where
    K: UnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip49"]},{"text":"impl<K> UnwindSafe for Bip49Public<K> where
    K: UnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip49Public"]},{"text":"impl<K> UnwindSafe for Bip84<K> where
    K: UnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip84"]},{"text":"impl<K> UnwindSafe for Bip84Public<K> where
    K: UnwindSafe
","synthetic":true,"types":["bdk::descriptor::template::Bip84Public"]},{"text":"impl UnwindSafe for WordCount","synthetic":true,"types":["bdk::keys::bip39::WordCount"]},{"text":"impl<Ctx> UnwindSafe for DescriptorKey<Ctx> where
    Ctx: UnwindSafe
","synthetic":true,"types":["bdk::keys::DescriptorKey"]},{"text":"impl UnwindSafe for ScriptContextEnum","synthetic":true,"types":["bdk::keys::ScriptContextEnum"]},{"text":"impl<Ctx> UnwindSafe for ExtendedKey<Ctx> where
    Ctx: UnwindSafe
","synthetic":true,"types":["bdk::keys::ExtendedKey"]},{"text":"impl<K, Ctx> UnwindSafe for GeneratedKey<K, Ctx> where
    Ctx: UnwindSafe,
    K: UnwindSafe
","synthetic":true,"types":["bdk::keys::GeneratedKey"]},{"text":"impl UnwindSafe for PrivateKeyGenerateOptions","synthetic":true,"types":["bdk::keys::PrivateKeyGenerateOptions"]},{"text":"impl UnwindSafe for KeyError","synthetic":true,"types":["bdk::keys::KeyError"]},{"text":"impl UnwindSafe for KeychainKind","synthetic":true,"types":["bdk::types::KeychainKind"]},{"text":"impl UnwindSafe for FeeRate","synthetic":true,"types":["bdk::types::FeeRate"]},{"text":"impl UnwindSafe for LocalUtxo","synthetic":true,"types":["bdk::types::LocalUtxo"]},{"text":"impl UnwindSafe for WeightedUtxo","synthetic":true,"types":["bdk::types::WeightedUtxo"]},{"text":"impl UnwindSafe for Utxo","synthetic":true,"types":["bdk::types::Utxo"]},{"text":"impl UnwindSafe for TransactionDetails","synthetic":true,"types":["bdk::types::TransactionDetails"]},{"text":"impl UnwindSafe for BlockTime","synthetic":true,"types":["bdk::types::BlockTime"]},{"text":"impl UnwindSafe for AddressValidatorError","synthetic":true,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl UnwindSafe for CoinSelectionResult","synthetic":true,"types":["bdk::wallet::coin_selection::CoinSelectionResult"]},{"text":"impl UnwindSafe for LargestFirstCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::LargestFirstCoinSelection"]},{"text":"impl UnwindSafe for BranchAndBoundCoinSelection","synthetic":true,"types":["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]},{"text":"impl UnwindSafe for WalletExport","synthetic":true,"types":["bdk::wallet::export::WalletExport"]},{"text":"impl UnwindSafe for SignerId","synthetic":true,"types":["bdk::wallet::signer::SignerId"]},{"text":"impl UnwindSafe for SignerError","synthetic":true,"types":["bdk::wallet::signer::SignerError"]},{"text":"impl UnwindSafe for SignerOrdering","synthetic":true,"types":["bdk::wallet::signer::SignerOrdering"]},{"text":"impl !UnwindSafe for SignersContainer","synthetic":true,"types":["bdk::wallet::signer::SignersContainer"]},{"text":"impl UnwindSafe for SignOptions","synthetic":true,"types":["bdk::wallet::signer::SignOptions"]},{"text":"impl UnwindSafe for CreateTx","synthetic":true,"types":["bdk::wallet::tx_builder::CreateTx"]},{"text":"impl UnwindSafe for BumpFee","synthetic":true,"types":["bdk::wallet::tx_builder::BumpFee"]},{"text":"impl<'a, B, D, Cs, Ctx> !UnwindSafe for TxBuilder<'a, B, D, Cs, Ctx>","synthetic":true,"types":["bdk::wallet::tx_builder::TxBuilder"]},{"text":"impl UnwindSafe for TxOrdering","synthetic":true,"types":["bdk::wallet::tx_builder::TxOrdering"]},{"text":"impl UnwindSafe for ChangeSpendPolicy","synthetic":true,"types":["bdk::wallet::tx_builder::ChangeSpendPolicy"]},{"text":"impl<B, D> !UnwindSafe for Wallet<B, D>","synthetic":true,"types":["bdk::wallet::Wallet"]},{"text":"impl UnwindSafe for AddressIndex","synthetic":true,"types":["bdk::wallet::AddressIndex"]},{"text":"impl UnwindSafe for AddressInfo","synthetic":true,"types":["bdk::wallet::AddressInfo"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/core/str/traits/trait.FromStr.js b/static/docs-rs/bdk/nightly/latest/implementors/core/str/traits/trait.FromStr.js deleted file mode 100644 index b76335d1f3..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/core/str/traits/trait.FromStr.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl FromStr for WalletExport","synthetic":false,"types":["bdk::wallet::export::WalletExport"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/miniscript/trait.MiniscriptKey.js b/static/docs-rs/bdk/nightly/latest/implementors/miniscript/trait.MiniscriptKey.js deleted file mode 100644 index 15310a1788..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/miniscript/trait.MiniscriptKey.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl<'s> MiniscriptKey for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/miniscript/trait.ToPublicKey.js b/static/docs-rs/bdk/nightly/latest/implementors/miniscript/trait.ToPublicKey.js deleted file mode 100644 index 6c57ee9682..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/miniscript/trait.ToPublicKey.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl<'s> ToPublicKey for DerivedDescriptorKey<'s>","synthetic":false,"types":["bdk::descriptor::derived::DerivedDescriptorKey"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/serde/de/trait.Deserialize.js b/static/docs-rs/bdk/nightly/latest/implementors/serde/de/trait.Deserialize.js deleted file mode 100644 index b9adbc2a7b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/serde/de/trait.Deserialize.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl<'de> Deserialize<'de> for AnyBlockchainConfig","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl<'de> Deserialize<'de> for ElectrumBlockchainConfig","synthetic":false,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl<'de> Deserialize<'de> for EsploraBlockchainConfig","synthetic":false,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl<'de> Deserialize<'de> for BitcoinPeerConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl<'de> Deserialize<'de> for CompactFiltersBlockchainConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl<'de> Deserialize<'de> for SledDbConfiguration","synthetic":false,"types":["bdk::database::any::SledDbConfiguration"]},{"text":"impl<'de> Deserialize<'de> for SqliteDbConfiguration","synthetic":false,"types":["bdk::database::any::SqliteDbConfiguration"]},{"text":"impl<'de> Deserialize<'de> for AnyDatabaseConfig","synthetic":false,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl<'de> Deserialize<'de> for SyncTime","synthetic":false,"types":["bdk::database::SyncTime"]},{"text":"impl<'de> Deserialize<'de> for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl<'de> Deserialize<'de> for LocalUtxo","synthetic":false,"types":["bdk::types::LocalUtxo"]},{"text":"impl<'de> Deserialize<'de> for TransactionDetails","synthetic":false,"types":["bdk::types::TransactionDetails"]},{"text":"impl<'de> Deserialize<'de> for BlockTime","synthetic":false,"types":["bdk::types::BlockTime"]},{"text":"impl<'de> Deserialize<'de> for WalletExport","synthetic":false,"types":["bdk::wallet::export::WalletExport"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/serde/ser/trait.Serialize.js b/static/docs-rs/bdk/nightly/latest/implementors/serde/ser/trait.Serialize.js deleted file mode 100644 index fe77a57500..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/serde/ser/trait.Serialize.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Serialize for AnyBlockchainConfig","synthetic":false,"types":["bdk::blockchain::any::AnyBlockchainConfig"]},{"text":"impl Serialize for ElectrumBlockchainConfig","synthetic":false,"types":["bdk::blockchain::electrum::ElectrumBlockchainConfig"]},{"text":"impl Serialize for EsploraBlockchainConfig","synthetic":false,"types":["bdk::blockchain::esplora::EsploraBlockchainConfig"]},{"text":"impl Serialize for BitcoinPeerConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::BitcoinPeerConfig"]},{"text":"impl Serialize for CompactFiltersBlockchainConfig","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersBlockchainConfig"]},{"text":"impl Serialize for SledDbConfiguration","synthetic":false,"types":["bdk::database::any::SledDbConfiguration"]},{"text":"impl Serialize for SqliteDbConfiguration","synthetic":false,"types":["bdk::database::any::SqliteDbConfiguration"]},{"text":"impl Serialize for AnyDatabaseConfig","synthetic":false,"types":["bdk::database::any::AnyDatabaseConfig"]},{"text":"impl Serialize for SyncTime","synthetic":false,"types":["bdk::database::SyncTime"]},{"text":"impl Serialize for PkOrF","synthetic":false,"types":["bdk::descriptor::policy::PkOrF"]},{"text":"impl Serialize for SatisfiableItem","synthetic":false,"types":["bdk::descriptor::policy::SatisfiableItem"]},{"text":"impl Serialize for Satisfaction","synthetic":false,"types":["bdk::descriptor::policy::Satisfaction"]},{"text":"impl Serialize for Policy","synthetic":false,"types":["bdk::descriptor::policy::Policy"]},{"text":"impl Serialize for Condition","synthetic":false,"types":["bdk::descriptor::policy::Condition"]},{"text":"impl Serialize for KeychainKind","synthetic":false,"types":["bdk::types::KeychainKind"]},{"text":"impl Serialize for LocalUtxo","synthetic":false,"types":["bdk::types::LocalUtxo"]},{"text":"impl Serialize for TransactionDetails","synthetic":false,"types":["bdk::types::TransactionDetails"]},{"text":"impl Serialize for BlockTime","synthetic":false,"types":["bdk::types::BlockTime"]},{"text":"impl Serialize for WalletExport","synthetic":false,"types":["bdk::wallet::export::WalletExport"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/implementors/std/error/trait.Error.js b/static/docs-rs/bdk/nightly/latest/implementors/std/error/trait.Error.js deleted file mode 100644 index a772f567ff..0000000000 --- a/static/docs-rs/bdk/nightly/latest/implementors/std/error/trait.Error.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["bdk"] = [{"text":"impl Error for Error","synthetic":false,"types":["bdk::error::Error"]},{"text":"impl Error for EsploraError","synthetic":false,"types":["bdk::blockchain::esplora::EsploraError"]},{"text":"impl Error for CompactFiltersError","synthetic":false,"types":["bdk::blockchain::compact_filters::CompactFiltersError"]},{"text":"impl Error for Error","synthetic":false,"types":["bdk::descriptor::error::Error"]},{"text":"impl Error for PolicyError","synthetic":false,"types":["bdk::descriptor::policy::PolicyError"]},{"text":"impl Error for KeyError","synthetic":false,"types":["bdk::keys::KeyError"]},{"text":"impl Error for AddressValidatorError","synthetic":false,"types":["bdk::wallet::address_validator::AddressValidatorError"]},{"text":"impl Error for SignerError","synthetic":false,"types":["bdk::wallet::signer::SignerError"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/light.css b/static/docs-rs/bdk/nightly/latest/light.css deleted file mode 100644 index df49ab3e00..0000000000 --- a/static/docs-rs/bdk/nightly/latest/light.css +++ /dev/null @@ -1 +0,0 @@ - body{background-color:white;color:black;}h1,h2,h3,h4{color:black;}h1.fqn{border-bottom-color:#D5D5D5;}h2,h3,h4{border-bottom-color:#DDDDDD;}.in-band{background-color:white;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#F5F5F5;}pre,.rustdoc.source .example-wrap{background-color:#F5F5F5;}.sidebar{background-color:#F1F1F1;}*{scrollbar-color:rgba(36,37,39,0.6) #e6e6e6;}.sidebar{scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;}.rust-logo>img{}::-webkit-scrollbar-track{background-color:#ecebeb;}::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar::-webkit-scrollbar-track{background-color:#dcdcdc;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar .current{background-color:#fff;}.source .sidebar{background-color:#f1f1f1;}.sidebar .location{border-color:#000;background-color:#fff;color:#333;}.sidebar .version{border-bottom-color:#DDD;}.sidebar-title{border-top-color:#777;border-bottom-color:#777;}.block a:hover{background:#F5F5F5;}.line-numbers span{color:#c67e2d;}.line-numbers .line-highlighted{background-color:#f6fdb0 !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#ddd;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#4E4C4C;}.search-results a:hover{background-color:#ddd;}.search-results a:focus{color:#000 !important;background-color:#ccc;}.search-results a:focus span{color:#000 !important;}a.result-trait:focus{background-color:#c7b6ff;}a.result-traitalias:focus{background-color:#c7b6ff;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-enum:focus{background-color:#b4d1b9;}a.result-struct:focus{background-color:#e7b1a0;}a.result-union:focus{background-color:#b7bd49;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#c6afb3;}a.result-type:focus{background-color:#ffc891;}a.result-foreigntype:focus{background-color:#f5c4ff;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#8ce488;}a.result-constant:focus,a.result-static:focus{background-color:#c3e0ff;}a.result-primitive:focus{background-color:#9aecff;}a.result-keyword:focus{background-color:#f99650;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#508157;}.content span.struct,.content a.struct,.block a.current.struct{color:#ad448e;}.content span.type,.content a.type,.block a.current.type{color:#ba5d00;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#cd00e2;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#068000;}.content span.union,.content a.union,.block a.current.union{color:#767b27;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#546e8a;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#2c8093;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#4d76ae;}.content span.trait,.content a.trait,.block a.current.trait{color:#7c5af3;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#6841f1;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#9a6e31;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#de5249;}nav:not(.sidebar){border-bottom-color:#e0e0e0;}nav.main .current{border-top-color:#000;border-bottom-color:#000;}nav.main .separator{border:1px solid #000;}a{color:#3873AD;}a.srclink,a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar a,.in-band a{color:#000;}.search-results a{color:initial;}a.test-arrow{color:#f5f5f5;}body.source .example-wrap pre.rust a{background:#eee;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}#crate-search{color:#555;background-color:white;border-color:#e0e0e0;box-shadow:0 0 0 1px #e0e0e0,0 0 0 2px transparent;}.search-input{color:#555;background-color:white;box-shadow:0 0 0 1px #e0e0e0,0 0 0 2px transparent;}.search-input:focus{border-color:#66afe9;}#crate-search+.search-input:focus{box-shadow:0 0 8px #078dd8;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;}.stab.portability>code{background:none;}#help>div{background:#e9e9e9;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}.since{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:black;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#8959A8;}pre.rust .kw-2,pre.rust .prelude-ty{color:#4271AE;}pre.rust .number,pre.rust .string{color:#718C00;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#C82829;}pre.rust .comment{color:#8E908C;}pre.rust .doccomment{color:#4D4D4C;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#B76514;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#c7c7c7;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target,:target>*{background:#FDFFD3;}:target{border-right:3px solid #ffb44c;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.5);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.5);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#eee;border-color:#999;}.notable-traits-tooltiptext .notable{border-bottom-color:#DDDDDD;}#titles>button:not(.selected){background-color:#e6e6e6;border-top-color:#e6e6e6;}#titles>button:hover,#titles>button.selected{background-color:#ffffff;border-top-color:#0089ff;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#F1F1F1;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#F1F1F1;border-right-color:#000;}#sidebar-filler{background-color:#F1F1F1;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow-color:#c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background-color:#fff;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#717171;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(35%);}#theme-choices{border-color:#ccc;background-color:#fff;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#eee;}@media (max-width:700px){#theme-picker{background:#fff;}}#all-types{background-color:#fff;}#all-types:hover{background-color:#f9f9f9;}.search-results .result-name span.alias{color:#000;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#F1F1F1;}#sidebar-toggle:hover{background-color:#E0E0E0;}#source-sidebar{background-color:#F1F1F1;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#E0E0E0;}div.files>.selected{background-color:#fff;}.setting-line>.title{border-bottom-color:#D5D5D5;} \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/main.js b/static/docs-rs/bdk/nightly/latest/main.js deleted file mode 100644 index 57cd8d1711..0000000000 --- a/static/docs-rs/bdk/nightly/latest/main.js +++ /dev/null @@ -1,8 +0,0 @@ -if(!String.prototype.startsWith){String.prototype.startsWith=function(searchString,position){position=position||0;return this.indexOf(searchString,position)===position}}if(!String.prototype.endsWith){String.prototype.endsWith=function(suffix,length){var l=length||this.length;return this.indexOf(suffix,l-suffix.length)!==-1}}if(!DOMTokenList.prototype.add){DOMTokenList.prototype.add=function(className){if(className&&!hasClass(this,className)){if(this.className&&this.className.length>0){this.className+=" "+className}else{this.className=className}}}}if(!DOMTokenList.prototype.remove){DOMTokenList.prototype.remove=function(className){if(className&&this.className){this.className=(" "+this.className+" ").replace(" "+className+" "," ").trim()}}}function getVar(name){var el=document.getElementById("rustdoc-vars");if(el){return el.attributes["data-"+name].value}else{return null}}function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}(function(){window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");window.searchJS=resourcePath("search",".js");window.searchIndexJS=resourcePath("search-index",".js");var sidebarVars=document.getElementById("sidebar-vars");if(sidebarVars){window.sidebarCurrent={name:sidebarVars.attributes["data-name"].value,ty:sidebarVars.attributes["data-ty"].value,relpath:sidebarVars.attributes["data-relpath"].value,}}}());function getVirtualKey(ev){if("key"in ev&&typeof ev.key!="undefined"){return ev.key}var c=ev.charCode||ev.keyCode;if(c==27){return"Escape"}return String.fromCharCode(c)}var THEME_PICKER_ELEMENT_ID="theme-picker";var THEMES_ELEMENT_ID="theme-choices";var MAIN_ID="main-content";function getThemesElement(){return document.getElementById(THEMES_ELEMENT_ID)}function getThemePickerElement(){return document.getElementById(THEME_PICKER_ELEMENT_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function showThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}(function(){var themeChoices=getThemesElement();var themePicker=getThemePickerElement();var availableThemes=getVar("themes").split(",");function switchThemeButtonState(){if(themeChoices.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}}function handleThemeButtonsBlur(e){var active=document.activeElement;var related=e.relatedTarget;if(active.id!==THEME_PICKER_ELEMENT_ID&&(!active.parentNode||active.parentNode.id!==THEMES_ELEMENT_ID)&&(!related||(related.id!==THEME_PICKER_ELEMENT_ID&&(!related.parentNode||related.parentNode.id!==THEMES_ELEMENT_ID)))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;availableThemes.forEach(function(item){var but=document.createElement("button");but.textContent=item;but.onclick=function(){switchTheme(window.currentTheme,window.mainTheme,item,true);useSystemTheme(false)};but.onblur=handleThemeButtonsBlur;themeChoices.appendChild(but)})}());(function(){"use strict";window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:function(){return document.getElementById("search")},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:function(){if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},focus:function(){searchState.input.focus()},defocus:function(){searchState.input.blur()},showResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(main,"hidden");removeClass(search,"hidden");searchState.mouseMovedAfterSearch=false;document.title=searchState.title},hideResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(search,"hidden");removeClass(main,"hidden");document.title=searchState.titleBeforeSearch;if(searchState.browserSupportsHistoryApi()){history.replaceState("",window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},getQueryStringParams:function(){var params={};window.location.search.substring(1).split("&").map(function(s){var pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},putBackSearch:function(search_input){var search=searchState.outputElement();if(search_input.value!==""&&hasClass(search,"hidden")){searchState.showResults(search);if(searchState.browserSupportsHistoryApi()){var extra="?search="+encodeURIComponent(search_input.value);history.replaceState(search_input.value,"",getNakedUrl()+extra+window.location.hash)}document.title=searchState.title}},browserSupportsHistoryApi:function(){return window.history&&typeof window.history.pushState==="function"},setup:function(){var search_input=searchState.input;if(!searchState.input){return}function loadScript(url){var script=document.createElement('script');script.src=url;document.head.append(script)}var searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(window.searchJS);loadScript(window.searchIndexJS)}}search_input.addEventListener("focus",function(){searchState.putBackSearch(this);search_input.origPlaceholder=searchState.input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});search_input.addEventListener("blur",function(){search_input.placeholder=searchState.input.origPlaceholder});if(search_input.value!=''){loadSearch()}searchState.addCrateDropdown(window.ALL_CRATES);var params=searchState.getQueryStringParams();if(params.search!==undefined){var search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search);loadSearch()}},addCrateDropdown:function(crates){var elem=document.getElementById("crate-search");if(!elem){return}var savedCrate=getSettingValue("saved-filter-crate");for(var i=0,len=crates.length;i0){return tmp}}return null}function showSidebar(){var elems=document.getElementsByClassName("sidebar-elems")[0];if(elems){addClass(elems,"show-it")}var sidebar=document.getElementsByClassName("sidebar")[0];if(sidebar){addClass(sidebar,"mobile");var filler=document.getElementById("sidebar-filler");if(!filler){var div=document.createElement("div");div.id="sidebar-filler";sidebar.appendChild(div)}}}function hideSidebar(){var elems=document.getElementsByClassName("sidebar-elems")[0];if(elems){removeClass(elems,"show-it")}var sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"mobile");var filler=document.getElementById("sidebar-filler");if(filler){filler.remove()}document.getElementsByTagName("body")[0].style.marginTop=""}var toggleAllDocsId="toggle-all-docs";var main=document.getElementById(MAIN_ID);var savedHash="";function handleHashes(ev){var elem;var search=searchState.outputElement();if(ev!==null&&search&&!hasClass(search,"hidden")&&ev.newURL){searchState.hideResults(search);var hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(searchState.browserSupportsHistoryApi()){history.replaceState(hash,"",getNakedUrl()+window.location.search+"#"+hash)}elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}expandSection(savedHash.slice(1))}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function getHelpElement(build){if(build){buildHelperPopup()}return document.getElementById("help")}function displayHelp(display,ev,help){if(display){help=help?help:getHelpElement(true);if(hasClass(help,"hidden")){ev.preventDefault();removeClass(help,"hidden");addClass(document.body,"blur")}}else{help=help?help:getHelpElement(false);if(help&&!hasClass(help,"hidden")){ev.preventDefault();addClass(help,"hidden");removeClass(document.body,"blur")}}}function handleEscape(ev){var help=getHelpElement(false);var search=searchState.outputElement();if(help&&!hasClass(help,"hidden")){displayHelp(false,ev,help)}else if(search&&!hasClass(search,"hidden")){searchState.clearInputTimeout();ev.preventDefault();searchState.hideResults(search)}searchState.defocus();hideThemeButtonState()}var disableShortcuts=getSettingValue("disable-shortcuts")==="true";function handleShortcut(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":displayHelp(false,ev);ev.preventDefault();searchState.focus();break;case"+":case"-":ev.preventDefault();toggleAllDocs();break;case"?":displayHelp(true,ev);break;case"t":case"T":displayHelp(false,ev);ev.preventDefault();var themePicker=getThemePickerElement();themePicker.click();themePicker.focus();break;default:if(getThemePickerElement().parentNode.contains(ev.target)){handleThemeKeyDown(ev)}}}}function handleThemeKeyDown(ev){var active=document.activeElement;var themes=getThemesElement();switch(getVirtualKey(ev)){case"ArrowUp":ev.preventDefault();if(active.previousElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.previousElementSibling.focus()}else{showThemeButtonState();themes.lastElementChild.focus()}break;case"ArrowDown":ev.preventDefault();if(active.nextElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.nextElementSibling.focus()}else{showThemeButtonState();themes.firstElementChild.focus()}break;case"Enter":case"Return":case"Space":if(ev.target.id===THEME_PICKER_ELEMENT_ID&&themes.style.display==="none"){ev.preventDefault();showThemeButtonState();themes.firstElementChild.focus()}break;case"Home":ev.preventDefault();themes.firstElementChild.focus();break;case"End":ev.preventDefault();themes.lastElementChild.focus();break}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);(function(){var x=document.getElementsByClassName("version-selector");if(x.length>0){x[0].onchange=function(){var i,match,url=document.location.href,stripped="",len=window.rootPath.match(/\.\.\//g).length+1;for(i=0;i .in-band > .trait").textContent;var baseIdName="impl-"+traitName+"-";var libs=Object.getOwnPropertyNames(imp);for(var i=0,llength=libs.length;i summary:not(.hideme)"),function(el){el.addEventListener("click",function(e){if(e.target.tagName!="SUMMARY"&&e.target.tagName!="A"){e.preventDefault()}})});onEachLazy(document.getElementsByClassName("notable-traits"),function(e){e.onclick=function(){this.getElementsByClassName('notable-traits-tooltiptext')[0].classList.toggle("force-tooltip")}});var sidebar_menu=document.getElementsByClassName("sidebar-menu")[0];if(sidebar_menu){sidebar_menu.onclick=function(){var sidebar=document.getElementsByClassName("sidebar")[0];if(hasClass(sidebar,"mobile")){hideSidebar()}else{showSidebar()}}}var buildHelperPopup=function(){var popup=document.createElement("aside");addClass(popup,"hidden");popup.id="help";popup.addEventListener("click",function(ev){if(ev.target===popup){displayHelp(false,ev)}});var book_info=document.createElement("span");book_info.className="top";book_info.innerHTML="You can find more information in \ - the rustdoc book.";var container=document.createElement("div");var shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["T","Focus the theme picker menu"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(function(x){return"
"+x[0].split(" ").map(function(y,index){return(index&1)===0?""+y+"":" "+y+" "}).join("")+"
"+x[1]+"
"}).join("");var div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";var infos=["Prefix searches with a type followed by a colon (e.g., fn:) to \ - restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ - enum, trait, type, macro, \ - and const.","Search functions by type signature (e.g., vec -> usize or \ - * -> vec)","Search multiple things at once by splitting your query with comma (e.g., \ - str,u8 or String,struct:Vec,test)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for items inside another one by searching for a path: vec::Vec",].map(function(x){return"

"+x+"

"}).join("");var div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;container.appendChild(book_info);container.appendChild(div_shortcuts);container.appendChild(div_infos);var rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";var rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);container.appendChild(rustdoc_version);popup.appendChild(container);insertAfter(popup,document.querySelector("main"));buildHelperPopup=function(){}};onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){var reset_button_timeout=null;window.copy_path=function(but){var parent=but.parentElement;var path=[];onEach(parent.childNodes,function(child){if(child.tagName==='A'){path.push(child.textContent)}});var el=document.createElement('textarea');el.value=path.join('::');el.setAttribute('readonly','');el.style.position='absolute';el.style.left='-9999px';document.body.appendChild(el);el.select();document.execCommand('copy');document.body.removeChild(el);but.children[0].style.display='none';var tmp;if(but.childNodes.length<2){tmp=document.createTextNode('✓');but.appendChild(tmp)}else{onEachLazy(but.childNodes,function(e){if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent='✓'}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent='';reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/normalize.css b/static/docs-rs/bdk/nightly/latest/normalize.css deleted file mode 100644 index 469959f137..0000000000 --- a/static/docs-rs/bdk/nightly/latest/normalize.css +++ /dev/null @@ -1,2 +0,0 @@ - /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ -html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type="button"],[type="reset"],[type="submit"],button{-webkit-appearance:button}[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none} \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/noscript.css b/static/docs-rs/bdk/nightly/latest/noscript.css deleted file mode 100644 index 8ad88640ab..0000000000 --- a/static/docs-rs/bdk/nightly/latest/noscript.css +++ /dev/null @@ -1 +0,0 @@ - #main-content .attributes{margin-left:0 !important;}#copy-path{display:none;}.sub{display:none;}#theme-picker{display:none;} \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/rust-logo.png b/static/docs-rs/bdk/nightly/latest/rust-logo.png deleted file mode 100644 index 74b4bd695045ebc52c21af95301adc9311ca881c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5758 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 v#bP0l+XkK|AsFv diff --git a/static/docs-rs/bdk/nightly/latest/rustdoc.css b/static/docs-rs/bdk/nightly/latest/rustdoc.css deleted file mode 100644 index 1f77c75cbe..0000000000 --- a/static/docs-rs/bdk/nightly/latest/rustdoc.css +++ /dev/null @@ -1 +0,0 @@ - @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:16px/1.4 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5em;}h2{font-size:1.4em;}h3{font-size:1.3em;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{display:flex;border-bottom:1px dashed;margin-top:0;padding-left:1px;}h1.fqn>.in-band>a:hover{text-decoration:underline;}h2,.top-doc h3,.top-doc h4,.sidebar .others h3{border-bottom:1px solid;}h3.code-header{font-size:1.1em;}h4.code-header{font-size:1em;}h3.code-header,h4.code-header{font-weight:600;border-bottom-style:none;padding:0;margin:0;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;margin-top:16px;margin-bottom:10px;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,div.item-list .out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}.content ul.crate a.crate{font-size:16px/1.6;}ol,ul{padding-left:25px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.6em;}p{margin:0 0 .6em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.1em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:16px;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{width:200px;overflow-y:scroll;position:sticky;min-width:200px;height:100vh;top:0;left:0;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(:first-child){transition:opacity 0.5s,visibility 0.2s;opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*{opacity:1;visibility:visible;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.sidebar .block>ul>li{margin-right:-10px;}.hidden{display:none !important;}.logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.logo-container>img{height:100px;width:100px;}.sidebar .location{border:1px solid;font-size:17px;margin:30px 10px 20px 10px;text-align:center;word-wrap:break-word;font-weight:inherit;padding:0;}.sidebar .version{font-size:15px;text-align:center;border-bottom:1px solid;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.location a:hover{text-decoration:underline;}.block{padding:0;margin-bottom:14px;}.block h2,.block h3{text-align:center;}.block ul,.block li{margin:0 10px;padding:0;list-style:none;}.block a{display:block;text-overflow:ellipsis;overflow:hidden;line-height:15px;padding:7px 5px;font-size:14px;font-weight:300;transition:border 500ms ease-out;}.sidebar-title{border-top:1px solid;border-bottom:1px solid;text-align:center;font-size:17px;margin-bottom:5px;font-weight:inherit;padding:0;}.sidebar-links{margin-bottom:15px;}.sidebar-links>a{padding-left:10px;width:100%;}.sidebar-menu{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.3em;}.top-doc .docblock h3{font-size:1.15em;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.1em;}.top-doc .docblock h6{font-size:1em;}.docblock h5{font-size:1em;}.docblock h6{font-size:0.95em;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;text-align:right;font-size:23px;margin:0px;padding:0 0 0 12px;font-weight:normal;}.method>.code-header,.trait-impl>.code-header,.invisible>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.1em;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1em;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.8em;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.content .item-info code{font-size:90%;}.content .item-info{position:relative;margin-left:33px;}.sub-variant>div>.item-info{margin-top:initial;}.content .item-info::before{content:'⬑';font-size:25px;position:absolute;top:-6px;left:-19px;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;}nav:not(.sidebar){flex-grow:1;border-bottom:1px solid;padding-bottom:10px;margin-bottom:25px;}.source nav:not(.sidebar).sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.invisible>.srclink,.method>.code-header+.srclink{position:absolute;top:0;right:0;font-size:17px;font-weight:normal;}.block a.current.crate{font-weight:500;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.2rem;}.search-container{position:relative;max-width:960px;}.search-container>div{display:inline-flex;width:calc(100% - 63px);}#crate-search{min-width:115px;margin-top:5px;padding:6px;padding-right:19px;flex:none;border:0;border-right:0;border-radius:4px 0 0 4px;outline:none;cursor:pointer;border-right:1px solid;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container>.top-button{position:absolute;right:0;top:10px;}.search-input{-webkit-appearance:none;-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:none;border-radius:1px;margin-top:5px;padding:10px 16px;font-size:17px;transition:border-color 300ms ease;transition:border-radius 300ms ease-in-out;transition:box-shadow 300ms ease-in-out;width:100%;}#crate-search+.search-input{border-radius:0 1px 1px 0;width:calc(100% - 32px);}.search-input:focus{border-radius:2px;border:0;outline:0;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:18px;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:table;}.stab{padding:3px;margin-bottom:5px;font-size:90%;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.2em;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:80%;line-height:1.2;margin-bottom:0;margin-left:.3em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.impl-items .since,.impl .since,.methods .since{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-size:17px;font-weight:normal;}.rightside{float:right;}.has-srclink{font-size:16px;margin-bottom:12px;justify-content:space-between;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:130%;top:5px;right:5px;z-index:1;}a.test-arrow:hover{text-decoration:none;}.section-header:hover a:before{position:absolute;left:-25px;padding-right:10px;content:'\2002\00a7\2002';}.section-header:hover a{text-decoration:none;}.code-attribute{font-weight:300;}.since+.srclink{padding-left:10px;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:20px;margin-right:5px;}h3.variant{font-weight:600;font-size:1.1em;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1em;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}.top-doc .docblock>.section-header:first-child{margin-left:15px;}.top-doc .docblock>.section-header:first-child:hover>a:before{left:-10px;}.docblock>.section-header:first-child{margin-top:0;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:16px;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:20px;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:16px;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:19px;font-weight:600;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:20px;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:18px;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:16px;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#all-types{text-align:center;border:1px solid;margin:0 10px;margin-bottom:10px;display:block;border-radius:7px;}#all-types>p{margin:5px 0;}#sidebar-toggle{position:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.2em;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5em;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-34px;top:9px;}.theme-picker button{outline:none;}#settings-menu,#help-button{position:absolute;top:10px;}#settings-menu{right:0;outline:none;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:4px;width:27px;height:29px;border:1px solid;border-radius:3px;cursor:pointer;}#help-button{right:30px;font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:17px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;box-shadow:inset 0 -1px 0;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:16px;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:19px;display:block;}#implementors-list>.impl-items .table-display .out-of-band{font-size:17px;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.7em;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:16px;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:3px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.rustdoc.source .sidebar{transition:width .5s;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){body{padding-top:0px;}main{padding-left:15px;padding-top:0px;}.rustdoc{flex-direction:column;}.rustdoc:not(.source)>.sidebar{width:100%;height:45px;min-height:40px;max-height:45px;margin:0;padding:0 15px;position:static;z-index:11;overflow-y:hidden;}.rustdoc.source>.sidebar{position:fixed;top:0;left:0;margin:0;z-index:11;width:0;}.sidebar.mobile{position:sticky !important;top:0;left:0;width:100%;margin-left:0;background-color:rgba(0,0,0,0);}.sidebar>.location{float:right;margin:0px;margin-top:2px;padding:3px 10px 1px 10px;min-height:39px;background:inherit;text-align:left;font-size:24px;}.sidebar .location:empty{padding:0;}.rustdoc:not(.source) .sidebar .logo-container{width:35px;height:35px;margin-top:5px;margin-bottom:5px;float:left;margin-left:50px;}.sidebar .logo-container>img{max-width:35px;max-height:35px;}.sidebar-menu{position:fixed;z-index:10;font-size:2rem;cursor:pointer;width:45px;left:0;top:0;text-align:center;display:block;border-bottom:1px solid;border-right:1px solid;height:45px;}.rustdoc.source>.sidebar>.sidebar-menu{display:none;}.sidebar-elems{position:fixed;z-index:1;top:45px;bottom:0;width:246px;left:-246px;overflow-y:auto;border-right:1px solid;}.sidebar>.block.version{overflow:hidden;border-bottom:none;margin-bottom:0;height:100%;padding-left:12px;}.sidebar>.block.version>div.narrow-helper{float:left;width:1px;height:100%;}.sidebar>.block.version>p{margin:0;min-width:55px;display:flex;align-items:center;height:100%;}nav.sub{width:calc(100% - 32px);margin-left:32px;margin-bottom:10px;}.source nav:not(.sidebar).sub{margin-left:32px;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.theme-picker{z-index:1;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}.show-it,.sidebar-elems:focus-within{z-index:2;left:0;}.show-it>.block.items{margin:8px 0;}.show-it>.block.items>ul{margin:0;}.show-it>.block.items>ul>li{text-align:center;margin:2px 0;}.show-it>.block.items>ul>li>a{font-size:21px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}#all-types{margin:10px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-container>div{width:calc(100% - 32px);}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source .sidebar.expanded{max-width:100vw;width:100vw;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}.search-container>div{display:block;width:calc(100% - 37px);}#crate-search{width:100%;border-radius:4px;border:0;}#crate-search+.search-input{width:calc(100% + 71px);margin-left:-36px;}#theme-picker,#settings-menu{padding:5px;width:31px;height:31px;}#theme-picker{margin-top:-2px;}#settings-menu{top:7px;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:anywhere;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;} \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/search-index.js b/static/docs-rs/bdk/nightly/latest/search-index.js deleted file mode 100644 index 56e36cc7d4..0000000000 --- a/static/docs-rs/bdk/nightly/latest/search-index.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchIndex = JSON.parse('{\ -"bdk":{"doc":"A modern, lightweight, descriptor-based wallet library …","t":[13,13,3,13,13,13,13,6,13,13,13,4,13,13,3,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,4,13,3,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,13,13,4,8,3,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,14,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,0,11,11,11,11,11,11,11,11,12,11,12,12,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,12,10,12,5,11,11,11,11,11,11,11,11,0,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,8,4,16,8,3,13,13,3,3,8,6,0,11,11,11,11,11,11,10,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,0,11,0,10,11,11,11,11,10,10,11,10,10,11,11,11,11,11,11,11,5,5,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,4,4,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,13,3,3,3,4,13,13,13,13,13,13,13,13,3,13,13,13,3,13,13,13,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,12,11,11,11,11,11,11,11,12,11,11,13,3,3,4,13,13,13,13,13,13,13,13,13,13,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,16,8,8,16,8,8,3,3,0,10,11,12,11,11,11,11,10,11,11,11,10,11,12,10,11,10,11,10,11,10,11,10,11,10,11,10,11,11,11,11,11,11,11,11,10,11,11,11,11,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,11,11,11,11,10,11,10,11,10,11,10,11,0,11,12,11,10,11,10,11,10,11,10,11,10,11,10,11,11,11,11,11,11,11,11,11,11,4,4,4,13,13,13,13,13,13,3,13,13,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,6,3,4,6,8,6,8,6,4,3,13,8,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,5,13,13,13,4,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,13,13,13,4,13,3,6,6,13,13,13,13,13,13,13,13,13,13,13,3,3,4,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,8,6,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,8,4,4,4,3,3,16,16,8,4,8,8,3,8,13,13,13,4,6,13,13,13,16,13,3,13,8,4,13,13,13,3,6,13,13,5,10,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,11,11,11,11,12,12,11,11,11,11,11,11,12,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,13,4,3,6,4,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,3,8,13,13,13,13,3,11,11,12,0,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,0,11,0,11,11,11,11,11,11,11,0,11,11,11,11,11,11,5,12,12,8,4,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,12,3,8,3,6,3,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,3,3,13,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,5,13,3,13,13,4,3,13,13,3,8,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["AddressValidator","Bip32","BlockTime","BnBNoExactMatch","BnBTotalTriesExceeded","ChecksumMismatch","CompactFilters","ConfirmationTime","Descriptor","Electrum","Encode","Error","Esplora","External","FeeRate","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","Foreign","Generic","Hex","InsufficientFunds","Internal","InvalidNetwork","InvalidOutpoint","InvalidPolicyPathError","InvalidProgressValue","InvalidU32Bytes","IrreplaceableTransaction","Json","Key","KeychainKind","Local","LocalUtxo","Miniscript","MissingKeyOrigin","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","ProgressUpdateError","Psbt","PsbtParse","Rusqlite","ScriptDoesntHaveAddressForm","Secp256k1","Signer","Sled","SpendingPolicyRequired","TransactionConfirmed","TransactionDetails","TransactionNotFound","UnknownUtxo","Utxo","Vbytes","WeightedUtxo","as_byte","as_ref","as_sat_vb","base32_len","blockchain","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_base32","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","confirmation_time","database","default","default","default","default_min_relay_fee","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","descriptor","descriptor","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","fee","fee_vb","fee_wu","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fragment","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_btc_per_kvb","from_sat_per_vb","from_vb","from_wu","get_hash","get_hash","hash","hash","height","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into_descriptor_key","into_extended_key","into_wallet_descriptor","into_wallet_descriptor","keychain","keys","ne","ne","ne","ne","ne","ne","new","outpoint","outpoint","partial_cmp","received","satisfaction_weight","sent","serialize","serialize","serialize","serialize","sub","timestamp","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transaction","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txid","txout","txout","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","utxo","vbytes","verified","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet","write_base32","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","available","found","needed","requested","required","required","0","outpoint","psbt_input","AccurateFees","Blockchain","Capability","Config","ConfigurableBlockchain","EsploraBlockchain","FullHistory","GetAnyTx","LogProgress","NoopProgress","Progress","ProgressData","any","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","broadcast","clone","clone","clone","clone_into","clone_into","clone_into","compact_filters","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","electrum","eq","esplora","estimate_fee","fmt","from","from","from","from_config","get_capabilities","get_hash","get_height","get_tx","hash","init","init","init","into","into","into","log_progress","noop_progress","progress","setup","sync","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update","update","update","vzip","vzip","vzip","AnyBlockchain","AnyBlockchainConfig","CompactFilters","CompactFilters","Electrum","Electrum","Esplora","Esplora","borrow","borrow","borrow_mut","borrow_mut","broadcast","clone","clone_into","deref","deref","deref_mut","deref_mut","deserialize","drop","drop","eq","estimate_fee","fmt","from","from","from","from","from","from","from","from","from_config","get_capabilities","get_height","get_tx","init","init","into","into","ne","serialize","setup","sync","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","0","0","0","0","0","0","Bip158","BitcoinPeerConfig","CompactFiltersBlockchain","CompactFiltersBlockchainConfig","CompactFiltersError","DataCorruption","Db","Global","InvalidFilter","InvalidFilterHeader","InvalidHeaders","InvalidResponse","Io","Mempool","MissingBlock","NoPeers","NotConnected","Peer","PeerBloomDisabled","Time","Timeout","add_tx","address","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broadcast","clone","clone","clone_into","clone_into","connect","connect_proxy","default","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","drop","drop","drop","eq","eq","estimate_fee","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_config","get_capabilities","get_height","get_mempool","get_network","get_tx","get_tx","get_version","has_tx","init","init","init","init","init","init","into","into","into","into","into","into","is_connected","iter_txs","ne","ne","network","new","new","peers","recv","send","serialize","serialize","setup","skip_blocks","socks5","socks5_credentials","storage_dir","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","0","0","0","0","0","ElectrumBlockchain","ElectrumBlockchainConfig","borrow","borrow","borrow_mut","borrow_mut","broadcast","clone","clone_into","deref","deref","deref_mut","deref_mut","deserialize","drop","drop","eq","estimate_fee","fmt","from","from","from","from_config","get_capabilities","get_height","get_tx","init","init","into","into","ne","retry","serialize","setup","socks5","stop_gap","timeout","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","url","vzip","vzip","BitcoinEncoding","EsploraBlockchain","EsploraBlockchainConfig","EsploraError","HeaderHashNotFound","HeaderHeightNotFound","Hex","HttpResponse","Io","NoHeader","Parsing","TransactionNotFound","Ureq","UreqTransport","base_url","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","broadcast","clone","clone_into","concurrency","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","eq","estimate_fee","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_config","get_capabilities","get_height","get_tx","init","init","init","into","into","into","ne","new","new","proxy","serialize","setup","stop_gap","timeout","to_owned","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with_agent","with_concurrency","0","0","0","0","0","0","0","0","0","0","Batch","BatchDatabase","BatchOperations","Config","ConfigurableDatabase","Database","SqliteDatabase","SyncTime","any","begin_batch","begin_batch","block_time","borrow","borrow","borrow_mut","borrow_mut","check_descriptor_checksum","check_descriptor_checksum","clone","clone_into","commit_batch","commit_batch","connection","del_last_index","del_last_index","del_path_from_script_pubkey","del_path_from_script_pubkey","del_raw_tx","del_raw_tx","del_script_pubkey_from_path","del_script_pubkey_from_path","del_sync_time","del_sync_time","del_tx","del_tx","del_utxo","del_utxo","deref","deref","deref_mut","deref_mut","deserialize","drop","drop","flush","flush","fmt","fmt","from","from","from_config","from_config","get_last_index","get_last_index","get_path_from_script_pubkey","get_path_from_script_pubkey","get_raw_tx","get_raw_tx","get_script_pubkey_from_path","get_script_pubkey_from_path","get_sync_time","get_sync_time","get_tx","get_tx","get_utxo","get_utxo","increment_last_index","increment_last_index","init","init","into","into","iter_raw_txs","iter_raw_txs","iter_script_pubkeys","iter_script_pubkeys","iter_txs","iter_txs","iter_utxos","iter_utxos","memory","new","path","serialize","set_last_index","set_last_index","set_raw_tx","set_raw_tx","set_script_pubkey","set_script_pubkey","set_sync_time","set_sync_time","set_tx","set_tx","set_utxo","set_utxo","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","AnyBatch","AnyDatabase","AnyDatabaseConfig","Memory","Memory","Memory","Sled","Sled","Sled","SledDbConfiguration","Sqlite","Sqlite","Sqlite","SqliteDbConfiguration","begin_batch","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_descriptor_checksum","commit_batch","del_last_index","del_last_index","del_path_from_script_pubkey","del_path_from_script_pubkey","del_raw_tx","del_raw_tx","del_script_pubkey_from_path","del_script_pubkey_from_path","del_sync_time","del_sync_time","del_tx","del_tx","del_utxo","del_utxo","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","flush","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_config","get_last_index","get_path_from_script_pubkey","get_raw_tx","get_script_pubkey_from_path","get_sync_time","get_tx","get_utxo","increment_last_index","init","init","init","init","init","into","into","into","into","into","iter_raw_txs","iter_script_pubkeys","iter_txs","iter_utxos","path","path","serialize","serialize","serialize","set_last_index","set_last_index","set_raw_tx","set_raw_tx","set_script_pubkey","set_script_pubkey","set_sync_time","set_sync_time","set_tx","set_tx","set_utxo","set_utxo","tree_name","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","0","0","0","0","0","0","0","0","0","MemoryDatabase","begin_batch","borrow","borrow_mut","check_descriptor_checksum","commit_batch","default","del_last_index","del_path_from_script_pubkey","del_raw_tx","del_script_pubkey_from_path","del_sync_time","del_tx","del_utxo","deref","deref_mut","drop","flush","fmt","from","from_config","get_last_index","get_path_from_script_pubkey","get_raw_tx","get_script_pubkey_from_path","get_sync_time","get_tx","get_utxo","increment_last_index","init","into","iter_raw_txs","iter_script_pubkeys","iter_txs","iter_utxos","new","set_last_index","set_raw_tx","set_script_pubkey","set_sync_time","set_tx","set_utxo","try_from","try_into","type_id","vzip","Bare","DerivedDescriptor","DerivedDescriptorKey","Descriptor","ExtendedDescriptor","ExtractPolicy","HdKeyPaths","IntoWalletDescriptor","KeyMap","Legacy","Miniscript","Pkh","ScriptContext","Segwitv0","Sh","Wpkh","Wsh","address","as_enum","as_enum","as_inner","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","derive","desc_type","deserialize","deserialize","drop","drop","drop","drop","drop","encode","eq","eq","eq","eq","eq","error","explicit_script","ext","extract_policy","extract_policy","extract_policy","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from_ast","from_str","from_str","from_str_insane","from_tree","from_tree","get_hash","get_hash","get_hash","get_hash","get_hash","get_leaf_pk","get_leaf_pk_pkh","get_leaf_pkh","get_nth_child","get_nth_pk","get_nth_pk_pkh","get_nth_pkh","get_satisfaction","has_mixed_timelocks","has_repeated_keys","hash","hash","hash","hash","hash","hash_to_hash160","init","init","init","init","init","into","into","into","into","into","into_inner","into_wallet_descriptor","is_deriveable","is_non_malleable","is_uncompressed","iter","iter_pk","iter_pk_pkh","iter_pkh","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","ne","new","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","serialized_len","template","to_owned","to_owned","to_owned","to_owned","to_owned","to_pubkeyhash","to_public_key","to_string","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","vzip","within_resource_limits","0","0","0","0","0","get_checksum","Base58","Bip32","DuplicatedKeys","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","Pk","Policy","borrow","borrow_mut","deref","deref_mut","drop","fmt","fmt","from","from","from","from","from","from","from","from","init","into","to_string","try_from","try_into","type_id","vzip","0","0","0","0","0","0","0","0","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","Sha256Preimage","Signature","SignatureKey","Thresh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","contribution","csv","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","get_hash","hash","id","id","init","init","init","init","init","init","init","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","ne","ne","partial_cmp","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","current_height","input_max_height","psbt","0","0","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","0","0","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","0","0","0","0","0","0","0","0","0","1","1","1","1","1","1","2","2","2","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","from","from","from","from","from","from","from","from","from","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","DescriptorSinglePriv","DescriptorSinglePub","Entropy","Error","ExtScriptContext","ExtendedKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","KeyError","KeyMap","Legacy","Message","Miniscript","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","SinglePriv","SinglePub","SortedMultiVec","ValidNetworks","XPrv","XPub","any_network","as_enum","as_public","bip39","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_local_validity","check_terminal_non_malleable","check_witness","check_witness","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","compressed","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","derive","derive_public_key","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","encode","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","generate","generate_default","generate_with_entropy","generate_with_entropy_default","get_hash","get_hash","get_hash","has_secret","hash","hash","hash","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_segwit_v0","is_segwit_v0","is_uncompressed","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","ne","ne","ne","new","origin","origin","other_top_level_checks","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","pks","sanity_check","satisfy","script_size","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_pubkeyhash","to_string","to_string","to_string","to_string","top_level_checks","top_level_checks","top_level_type_check","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","0","0","0","0","0","0","0","0","English","Language","Mnemonic","MnemonicWithPassphrase","WordCount","Words12","Words15","Words18","Words21","Words24","all","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","from_entropy","from_entropy_in","from_str","generate_in_with","generate_with_entropy","get_hash","get_hash","hash","hash","init","init","init","into","into","into","into_descriptor_key","into_extended_key","language","language_of","ne","parse","parse_in","parse_in_normalized","parse_normalized","partial_cmp","partial_cmp","serialize","to_entropy","to_entropy_array","to_owned","to_owned","to_seed","to_seed_normalized","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","word_count","word_iter","words_by_prefix","AddressIndex","AddressInfo","IsDust","LastUnused","New","Peek","Reset","Wallet","add_address_validator","add_signer","address","address_validator","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","broadcast","build_fee_bump","build_tx","client","coin_selection","database","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","export","finalize_psbt","fmt","fmt","fmt","fmt","from","from","from","get_address","get_balance","get_descriptor_for_keychain","get_funded_wallet","get_psbt_input","get_tx","get_utxo","index","init","init","init","into","into","into","is_dust","is_mine","list_transactions","list_unspent","ne","network","new","new_offline","policies","public_descriptor","secp_ctx","sign","signer","sync","time","to_string","try_from","try_from","try_from","try_into","try_into","try_into","tx_builder","type_id","type_id","type_id","vzip","vzip","vzip","wallet_name_from_descriptor","0","0","AddressValidator","AddressValidatorError","ConnectionError","InvalidScript","Message","TimeoutError","UserRejected","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","fmt","fmt","from","init","into","ne","to_owned","to_string","try_from","try_into","type_id","validate","vzip","0","BranchAndBoundCoinSelection","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","LargestFirstCoinSelection","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","coin_select","coin_select","coin_select","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fee_amount","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","local_selected_amount","new","selected","selected_amount","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","deref","deref_mut","descriptor","deserialize","drop","export_wallet","fmt","from","from_str","init","into","label","serialize","to_string","try_from","try_into","type_id","vzip","0","Dummy","Fingerprint","InputIndexOutOfRange","InvalidKey","InvalidNonWitnessUtxo","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","PkHash","SignOptions","Signer","SignerError","SignerId","SignerOrdering","SignersContainer","UserCanceled","add_external","allow_all_sighashes","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","descriptor_secret_key","drop","drop","drop","drop","drop","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_hash","hash","id","ids","init","init","init","init","init","into","into","into","into","into","ne","ne","new","partial_cmp","partial_cmp","remove","sign","sign_whole_tx","signers","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","0","0","0","get_timestamp","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","Untouched","add_data","add_foreign_utxo","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","default","default","default","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","do_not_spend_change","drain_to","drain_wallet","drop","drop","drop","drop","drop","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_hash","get_hash","hash","hash","include_output_redeem_witness_script","init","init","init","init","init","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Utxo","","","bdk::blockchain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::blockchain::any","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::blockchain::any::AnyBlockchain","","","bdk::blockchain::any::AnyBlockchainConfig","","","bdk::blockchain::compact_filters","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::blockchain::compact_filters::CompactFiltersError","","","","","bdk::blockchain::electrum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::blockchain::esplora","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::blockchain::esplora::EsploraError","","","","","","","","","","bdk::database","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::database::any","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::database::any::AnyBatch","","","bdk::database::any::AnyDatabase","","","bdk::database::any::AnyDatabaseConfig","","","bdk::database::memory","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::Descriptor","","","","","bdk::descriptor::checksum","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::error::Error","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","","bdk::descriptor::policy::PolicyError","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys::DescriptorPublicKey","","bdk::keys::DescriptorSecretKey","","bdk::keys::ExtendedKey","","bdk::keys::KeyError","","","bdk::keys::bip39","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::AddressIndex","","bdk::wallet::address_validator","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::address_validator::AddressValidatorError","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerId","","","bdk::wallet::time","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Error that can be returned to fail the validation of an …","BIP32 error","Block height and timestamp of a block","Branch and bound coin selection tries to avoid needing a …","Branch and bound coin selection possible attempts with …","Descriptor checksum mismatch","Compact filters client error)","DEPRECATED: Confirmation time of a transaction","Error related to the parsing and usage of descriptors","Electrum client error","Encoding error","Errors that can be thrown by the Wallet","Esplora client error","External","Fee rate","When bumping a tx the fee rate requested is lower than …","Node doesn’t have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than …","A UTXO owned by another wallet.","Generic error","Hex decoding error","Wallet’s UTXO set is not enough to cover recipient’s …","Internal, usually used for change outputs","Invalid network","Requested outpoint doesn’t exist in the tx (vout greater …","Error while extracting and manipulating policies","Progress value must be between 0.0 (included) and 100.0 …","Wrong number of bytes found when trying to convert to u32","Trying to replace a tx that has a sequence >= 0xFFFFFFFE","Error serializing or deserializing JSON data","Error while working with keys","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a Wallet.","Miniscript error","In order to use the TxBuilder::add_global_xpubs option …","Cannot build a tx without recipients","manually_selected_only option is selected but no utxo has …","Output created is under the dust limit, 546 satoshis","Progress update error (maybe the channel has been closed)","Partially signed bitcoin transaction error","Partially signed bitcoin transaction parse error","Rusqlite client error","This error is thrown when trying to convert Bare and …","An ECDSA error","Signing error","Sled database error","Spending policy is not compatible with this KeychainKind","Happens when trying to bump a transaction that is already …","A wallet transaction","Thrown when a tx is not found in the internal database","Happens when trying to spend an UTXO that is not in the …","An unspent transaction output (UTXO).","Trait implemented by types that can be used to measure …","A Utxo with its satisfaction_weight.","Return KeychainKind as a byte","","Return the value as satoshi/vbyte","","Blockchain backends","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","If the transaction is confirmed, contains height and …","Database types","","","","Create a new FeeRate with the default min relay fee value","","","","","","","","","","","","","","","","","Descriptors","Macro to write full descriptors with code","","","","","","","","","","","","","","","","","","","","Fee value (sats) if available. The availability of the fee …","Calculate absolute fee in Satoshis using size in virtual …","Calculate absolute fee in Satoshis using size in weight …","","","","","","","","","","Macro to write descriptor fragments with code","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Calculate fee rate from fee and vbytes.","Calculate fee rate from fee and weight units (wu).","","","","","confirmation block height","","","","","","","","","","","","","","","","","","","","","Type of keychain","Key formats","","","","","","","Returns Some BlockTime if both height and timestamp are …","Get the location of the UTXO","Reference to a transaction output","","Received value (sats)","The weight of the witness data and scriptSig expressed in …","Sent value (sats)","","","","","","confirmation block timestamp","","","","","","","","","Optional transaction","","","","","","","","","","","","","","","","","Transaction id","Get the TxOut of the UTXO","Transaction output","","","","","","","","","The UTXO","Convert weight units to virtual bytes.","Whether the tx has been verified against the consensus …","Get the version of BDK at runtime","","","","","","","","","Wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","Sats available for spending","found network, for example the network of the bitcoin node","Sats needed for some transaction","requested network, for example what is given as bdk-cli …","Required fee rate (satoshi/vbyte)","Required fee absolute value (satoshi)","","The location of the output.","The information about the input we require to add it to a …","Can compute accurate fees for the transactions found …","Trait that defines the actions that must be supported by a …","Capabilities that can be supported by a Blockchain backend","Type that contains the configuration","Trait for Blockchain types that can be created given a …","Structure that implements the logic to sync with Esplora","Can recover the full history of a wallet and not only the …","Can fetch any historical transaction given its txid","Type that implements Progress and logs at level INFO every …","Type that implements Progress and drops every update …","Trait for types that can receive and process progress …","Data sent with a progress update over a channel","Runtime-checked blockchain types","","","","","","","Broadcast a transaction","","","","","","","Compact Filters","","","","","","","","","","Electrum","","Esplora","Estimate the fee rate required to confirm a transaction in …","","","","","Create a new instance given a configuration","Return the set of Capability supported by this backend","","Return the current height","Fetch a transaction from the blockchain given its txid","","","","","","","","Create a new instance of LogProgress","Create a new instance of NoopProgress","Shortcut to create a channel (pair of Sender and Receiver) …","Setup the backend and populate the internal database for …","Populate the internal database with transactions and UTXOs","","","","","","","","","","","","","Send a new progress update","","","","","","Type that can contain any of the Blockchain types defined …","Type that can contain any of the blockchain configurations …","Compact filters client","Compact filters client","Electrum client","Electrum client","Esplora client","Esplora client","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Invalid BIP158 filter","Data to connect to a Bitcoin P2P peer","Structure implementing the required blockchain traits","Configuration for a CompactFiltersBlockchain","An error that can occur during sync with a …","The data stored in the block filters storage are corrupted","Internal database error","Wrapper for crate::error::Error","The compact filter returned is invalid","The compact filter headers returned are invalid","The headers returned are invalid","A peer sent an invalid or unexpected response","Internal I/O error","Container for unconfirmed, but valid Bitcoin transactions","The peer is missing a block in the valid chain","No peers have been specified","A peer is not connected","A Bitcoin peer","The peer doesn’t advertise the BLOOM service flag","Internal system time error","A peer took too long to reply to one of our messages","Add a transaction to the mempool","Peer address such as 127.0.0.1:18333","","","","","","","","","","","","","","","","","","Connect to a peer over a plaintext TCP connection","Connect to a peer through a SOCKS5 proxy, optionally by …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return the mempool used by this peer","Return the Bitcoin Network in use","Look-up a transaction in the mempool given an Inventory …","","Return the VersionMessage sent by the peer","Return whether or not the mempool contains a transaction …","","","","","","","","","","","","","Return whether or not the peer is still connected","Return the list of transactions contained in the mempool","","","Network used","Create a new empty mempool","Construct a new instance given a list of peers, a path to …","List of peers to try to connect to for asking headers and …","Waits for a specific incoming Bitcoin message, optionally …","Send a raw Bitcoin message to the peer","","","","Optionally skip initial skip_blocks blocks (default: 0)","Optional socks5 proxy","Optional socks5 proxy credentials","Storage dir to save partially downloaded headers and full …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wrapper over an Electrum Client that implements the …","Configuration for an ElectrumBlockchain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Request retry count","","","URL of the socks5 proxy server or a Tor service","Stop searching addresses for transactions after finding an …","Request timeout (seconds)","","","","","","","","URL of the Electrum server (such as ElectrumX, Esplora, …","","","Invalid Bitcoin data returned","Structure that implements the logic to sync with Esplora","Configuration for an EsploraBlockchain","Errors that can happen during a sync with EsploraBlockchain","Header hash not found","Header height not found","Invalid Hex data returned","HTTP response error","IO error during ureq response read","No header found in ureq response","Invalid number returned","Transaction not found","Error during ureq HTTP request","Transport error during the ureq HTTP call","Base URL of the esplora service","","","","","","","","","","Number of parallel requests sent to the esplora service …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a new instance of the client from a base URL and …","create a config with default values given the base url and …","Optional URL of the proxy to use to make requests to the …","","","Stop searching addresses for transactions after finding an …","Socket timeout.","","","","","","","","","","","","","","","Set the inner ureq agent.","Set the number of parallel requests the client can make.","","","","","","","","","","","Container for the operations","Trait for a database that supports batch operations","Trait for operations that can be batched","Type that contains the configuration","Trait for Database types that can be created given a …","Trait for reading data from a database","Sqlite database stored on filesystem","Blockchain state at the time of syncing","Runtime-checked database types","Create a new batch container","","Block timestamp and height at the time of sync","","","","","Read and checks the descriptor checksum for a given …","","","","Consume and apply a batch of operations","","A rusqlite connection object to the sqlite database","Delete the last derivation index for a keychain.","","Delete the data related to a specific script_pubkey, …","","Delete a raw transaction given its Txid","","Delete a script_pubkey given the keychain and its child …","","Reset the sync time to None","","Delete the metadata of a transaction and optionally the …","","Delete a LocalUtxo given its OutPoint","","","","","","","","","Force changes to be written to disk","","","","","","Create a new instance given a configuration","","Return the last derivation index for a keychain.","","Fetch the keychain and child number of a given …","","Fetch a raw transaction given its Txid","","Fetch a script_pubkey given the child number of a keychain.","","Return the sync time, if present","","Fetch the transaction metadata and optionally also the raw …","","Fetch a LocalUtxo given its OutPoint","","Increment the last derivation index for a keychain and …","","","","","","Return the list of raw transactions","","Return the list of script_pubkeys","","Return the list of transactions metadata","","Return the list of LocalUtxos","","In-memory ephemeral database","Instantiate a new SqliteDatabase instance by creating a …","Path on the local filesystem to store the sqlite file","","Store the last derivation index for a given keychain.","","Store a raw transaction","","Store a script_pubkey along with its keychain and child …","","Store the sync time","","Store the metadata of a transaction","","Store a LocalUtxo","","","","","","","","","","","Type that contains any of the BatchDatabase::Batch types …","Type that can contain any of the Database types defined by …","Type that can contain any of the database configurations …","In-memory ephemeral database","In-memory ephemeral database","Memory database has no config","Simple key-value embedded database based on sled","Simple key-value embedded database based on sled","Simple key-value embedded database based on sled","Configuration type for a sled::Tree database","Sqlite embedded database using rusqlite","Sqlite embedded database using rusqlite","Sqlite embedded database using rusqlite","Configuration type for a sqlite::SqliteDatabase database","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Main directory of the db","Main directory of the db","","","","","","","","","","","","","","","","Name of the database tree, a separated namespace for the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","In-memory ephemeral database","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a new empty database","","","","","","","","","","","A raw scriptpubkey (including pay-to-pubkey) under Legacy …","Alias for a Descriptor that contains extended derived keys","Extended DescriptorPublicKey that has been derived","Script descriptor","Alias for a Descriptor that can contain extended keys …","Trait implemented on Descriptors to add a method to …","Alias for the type of maps that represent derivation paths …","Trait for types which can be converted into an …","Alias type for a map of public key to secret key","Legacy ScriptContext To be used as P2SH scripts For …","Top-level script AST type","Pay-to-PubKey-Hash","The ScriptContext for Miniscript. Additional type …","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Computes the Bitcoin address of the descriptor, if one …","","","Get a reference to the inner AstElem representing the root …","","","","","","","","","","","Enumerates all child nodes of the current AST node (self) …","Depending on script Context, some of the Terminals might …","","","Depending on script Context, some of the script resource …","","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","","","Policy rules at the Miniscript satisfaction time. It is …","","","Check the consensus + policy(if not disabled) rules …","Depending on ScriptContext, fragments can be malleable. …","","","Check whether the given satisfaction is valid under the …","","","Descriptor checksum","","","","","","","","","","","","","","","","","","","","","","","","","","","Derives all wildcard keys in the descriptor using the …","Get the DescriptorType of Descriptor","","","","","","","","Encode as a Bitcoin script","","","","","","Descriptor errors","Computes the “witness script” of the descriptor, i.e. …","Additional information helpful for extra analysis.","Extract the spending policy","","","","","","","","","","","","","","","","","","Add type information(Type and Extdata) to Miniscript based …","","","Attempt to parse an insane(scripts don’t clear sanity …","Parse an expression tree into a descriptor","Parse an expression tree into a Miniscript. As a general …","","","","","","Returns Vec with cloned version of all public keys from …","Returns Vec of PkPkh entries, representing either public …","Returns Vec with hashes of all public keys from the …","Returns child node with given index, if any","Returns Option::Some with cloned n’th public key from …","Returns Option::Some with hash of n’th public key or …","Returns Option::Some with hash of n’th public key from …","Returns satisfying witness and scriptSig to spend an …","Whether the miniscript contains a combination of timelocks","Whether the miniscript has repeated Pk or Pkh","","","","","","","","","","","","","","","","","Extracts the AstElem representing the root of the …","Convert to wallet descriptor","Whether or not the descriptor has any wildcards","Whether the miniscript is malleable","","Creates a new Iter iterator that will iterate over all …","Creates a new PkIter iterator that will iterate over all …","Creates a new PkPkhIter iterator that will iterate over …","Creates a new PkhIter iterator that will iterate over all …","","","Lifting corresponds conversion of miniscript into Policy […","Depending on script context, the size of a satifaction …","","","Maximum size, in bytes, of a satisfying witness. For …","Computes an upper bound on the weight of a satisfying …","Maximum number of witness elements used to satisfy the …","","Construct a new derived key","Create a new bare descriptor from witness script Errors …","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when …","Create a new sh sortedmulti descriptor with threshold k …","Create a new sh wrapped wpkh from Pk. Errors when …","Create a new sh wrapped wsh descriptor with witness script …","Create a new sh wrapped wsh sortedmulti descriptor from …","Create a new Wpkh descriptor Will return Err if …","Create a new wsh descriptor from witness script Errors …","Create a new wsh sorted multi descriptor Errors when …","A node in the Abstract Syntax Tree(","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation. …","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts don’t clear sanity …","","","","","","Descriptor policy","Whether all spend paths of miniscript require a signature","Whether the descriptor is safe Checks whether all the …","Check whether the underlying Miniscript is safe under the …","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the …","Get the scriptCode of a transaction output.","Computes the scriptpubkey of the descriptor","Size, in bytes of the script-pubkey. If this Miniscript is …","","","","Descriptor templates","","","","","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Convert a descriptor using abstract keys to one using …","This will panic if translatefpk returns an uncompressed …","","","","","","","","","","","The correctness and malleability type information for the …","","","","","","Computes the scriptSig that will be in place for an …","","","","","","Whether the miniscript can exceed the resource …","","","","","","Compute the checksum of a descriptor","Error during base58 decoding","BIP32 error","The descriptor contains multiple keys with the same BIP32 …","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on …","Hex decoding error","Invalid character found in the descriptor checksum","The provided descriptor doesn’t match its checksum","Invalid HD Key path, such as having a wildcard but a …","Error thrown while working with keys","Miniscript error","Key-related error","Error while extracting and manipulating policies","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Absolute timeclock timestamp","Can not add to an item that is Satisfaction::None or …","Can not add to an item that is …","Options to build the satisfaction field in the policy","Can satisfy the policy item","An extra condition that must be satisfied but that is out …","Type for a map of sets of Condition items keyed by each set…","Type for a map of folded sets of Condition items keyed by …","SHA256 then RIPEMD160 preimage hash","Double SHA256 preimage hash","Incompatible conditions (not currently used)","Index out of range for an item to satisfy a …","Can not merge CSV or timelock values unless both are less …","Multi-signature public keys with threshold count","Cannot satisfy or contribute to the policy item","Don’t generate satisfaction field","Not enough items are selected to satisfy a …","Only a partial satisfaction of some kind of threshold …","Can reach the threshold of some kind of threshold policy","Raw public key or extended key fingerprint","Descriptor spending policy","Errors that can happen while extracting and manipulating …","Analyze the given PSBT to check for existing signatures","Like Psbt variant and also check for expired timelocks","Relative timelock locktime","RIPEMD160 preimage hash","Represent if and how much a policy item is satisfied by …","An item that needs to be satisfied","SHA256 preimage hash","Signature for a raw public key","Signature for an extended key fingerprint","Threshold items with threshold count","","","","","","","","","","","","","","","","","","","","","","","","","","","","How the wallet’s descriptor can satisfy this policy node","Optional CheckSequenceVerify condition","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return the conditions that are set by the spending policy …","","","Returns a unique id for the SatisfiableItem","Identifier for this policy node","","","","","","","","","","","","","","","Returns whether the SatisfiableItem is a leaf item","Returns whether the Satisfaction is a leaf item","Returns true if there are no extra conditions to verify","Type of this policy node","","","","Return whether or not a specific path in the policy tree …","How much a given PSBT already satisfies this policy node …","","","","","","Optional timelock condition","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Current blockchain height","The highest confirmation height between the inputs CSV …","Given PSBT","","","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","The items that can be satisfied by the descriptor or are …","The items that can be satisfied by the descriptor","Threshold","Threshold","Total number of items","Total number of items","Whether the items are sorted in lexicographic order (used …","Whether the items are sorted in lexicographic order (used …","","","The digest value","The digest value","The digest value","The digest value","The policy items","The raw public key or extended key fingerprint","The required threshold count","The required threshold count","The timestamp value","The locktime value","","","","","","","","","","","","","","","","","","","BIP44 template. Expands to pkh(key/44'/0'/0'/{0,1}/*)","BIP44 public template. Expands to pkh(key/{0,1}/*)","BIP49 template. Expands to sh(wpkh(key/49'/0'/0'/{0,1}/*))","BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))","BIP84 template. Expands to wpkh(key/84'/0'/0'/{0,1}/*)","BIP84 public template. Expands to wpkh(key/{0,1}/*)","Trait for descriptor templates that can be built into a …","Type alias for the return type of DescriptorTemplate, …","P2PKH template. Expands to a descriptor pkh(key)","P2WPKH template. Expands to a descriptor wpkh(key)","P2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))","","","","","","","","","","","","","","","","","","","Build the complete descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BIP32 error","Trait for keys that can be derived.","Container for public or secret keys","The MiniscriptKey corresponding to Descriptors. This can …","A Secret Key that can be either a single key or an Xprv","A Single Descriptor Secret Key with optional origin …","A Single Descriptor Key with optional origin information","Type specifying the amount of entropy required e.g. [u8;32]","Returned error in case of failure","Trait that adds extra useful methods to ScriptContexts","Enum for extended keys that can be either xprv or xpub","Trait that allows generating a key with the default options","Trait for keys that can be generated","Output of a GeneratableKey key generation","Trait for objects that can be turned into a public or …","The key has an invalid checksum","The key is not valid for the given network","The key cannot exist in the given script context","Errors thrown while working with keys","Alias type for a map of public key to secret key","Legacy scripts","Custom error message","Miniscript error","Extra options required by the generate_with_entropy","A private extended key, aka an xprv","Options for generating a PrivateKey","A public extended key, aka an xpub","The ScriptContext for Miniscript. Additional type …","Enum representation of the known valid ScriptContexts","Segwitv0 scripts","Single Secret Key","Single Public Key","Contents of a “sortedmulti” descriptor","Set of valid networks for a key","Xprv","Xpub","Create a set containing mainnet, testnet and regtest","Returns the ScriptContext as a ScriptContextEnum","Return the public version of this key, by applying either …","BIP-0039","","","","","","","","","","","","","","","","","","","","","","","Depending on script Context, some of the Terminals might …","Depending on script Context, some of the Terminals might …","Depending on script Context, some of the script resource …","Depending on script Context, some of the script resource …","Check the consensus + policy(if not disabled) rules that …","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","Consensus rules at the Miniscript satisfaction time. It is …","Policy rules at the Miniscript satisfaction time. It is …","Policy rules at the Miniscript satisfaction time. It is …","Check the consensus + policy(if not disabled) rules …","Check the consensus + policy(if not disabled) rules …","Depending on ScriptContext, fragments can be malleable. …","Check whether the given satisfaction is valid under the …","Check whether the given satisfaction is valid under the …","","","","","","","","","","","","","","Whether the generated key should be “compressed” or not","","","","","","","","","","","","","","","","","","","","","","","","","If this public key has a wildcard, replace it by the given …","Computes the public key corresponding to this descriptor …","","","","","","","","","","","","Encode as a Bitcoin script","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create an instance given a public key and a set of valid …","Create an instance given a secret key and a set of valid …","","","Parse an expression tree into a SortedMultiVec","Full path, from the master key","Generate a key given the options with a random entropy","Generate a key with the default options and a random …","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","","","","Return whether or not the key contains the private data","","","","","","","","","","","","","","","","","","","","","","","","","","Turn the key into a DescriptorKey within the requested …","Consume self and turn it into a DescriptorKey by adding …","","","","","","Consume self and turn it into an ExtendedKey","","","Consumes self and returns the key","Transform the ExtendedKey into an ExtendedPrivKey for the …","Transform the ExtendedKey into an ExtendedPubKey for the …","Whether or not the key has a wildcards","Returns whether the script context is Legacy","Returns whether the script context is …","Returns whether the script context is Segwitv0","Returns whether the script context is …","","signatures required","The key","The key","","Create a set only containing mainnet","The fingerprint of the master key associated with this key","Depending on script context, the size of a satifaction …","Maximum size, in bytes, of a satisfying witness. In …","Maximum number of witness elements used to satisfy the …","Compute the intersection of two sets","","","","Create a new instance of SortedMultiVec given a list of …","Origin information","Origin information","Other top level checks that are context specific","Other top level checks that are context specific","Override the computed set of valid networks","","","","public keys inside sorted Multi","utility function to sanity a sorted multi vec","Attempt to produce a satisfying witness for the witness …","Size, in bytes of the script-pubkey. If this Miniscript is …","Create Terminal::Multi containing sorted pubkeys","Create a set containing testnet and regtest","","","","","","","","","","","Check top level consensus rules.","Check top level consensus rules.","Check whether the top-level is type B","Check whether the top-level is type B","This will panic if translatefpk returns an uncompressed …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The English language.","Language to be used for the mnemonic phrase.","A mnemonic code.","Type for a BIP39 mnemonic with an optional passphrase","Type describing entropy length (aka word count) in the …","12 words mnemonic (128 bits entropy)","15 words mnemonic (160 bits entropy)","18 words mnemonic (192 bits entropy)","21 words mnemonic (224 bits entropy)","24 words mnemonic (256 bits entropy)","The list of supported languages. Language support is …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a new English Mnemonic from the given entropy. …","Create a new Mnemonic in the specified language from the …","","Generate a new Mnemonic in the given language with the …","","","","","","","","","","","","","","Get the language of the Mnemonic.","Determine the language of the mnemonic.","","Parse a mnemonic and detect the language from the enabled …","Parse a mnemonic in the given language.","Parse a mnemonic in normalized UTF8 in the given language.","Parse a mnemonic in normalized UTF8.","","","","Convert the mnemonic back to the entropy used to generate …","Convert the mnemonic back to the entropy used to generate …","","","Convert to seed bytes.","Convert to seed bytes with a passphrase in normalized UTF8.","","","","","","","","","","","","","","","Get the number of words in the mnemonic.","Get an iterator over the words.","Get words from the word list that start with the given …","The address index selection strategy to use to derived an …","A derived address and the index it was found at For …","Trait to check if a value is below the dust limit","Return the address for the current descriptor index if it …","Return a new address after incrementing the current …","Return the address for a specific descriptor index. Does …","Return the address for a specific descriptor index and …","A Bitcoin wallet","Add an address validator","Add an external signer","Address","Address validation callbacks","","","","","","","Broadcast a transaction to the network","Bump the fee of a transaction previously created with this …","Start building a transaction.","Return a reference to the internal blockchain client","Coin selection","Return an immutable reference to the internal database","","","","","","","","","","","","Wallet export","Try to finalize a PSBT","","","","","","","","Return a derived address using the external descriptor, …","Return the balance, meaning the sum of this wallet’s …","Returns the descriptor used to create addresses for a …","Return a fake wallet that appears to be funded for testing.","get the corresponding PSBT Input for a LocalUtxo","Return a single transactions made and received by the …","Returns the UTXO owned by this wallet corresponding to …","Child index of this address","","","","","","","Check whether or not a value is below dust limit","Return whether or not a script is part of this wallet …","Return the list of transactions made and received by the …","Return the list of unspent outputs of this wallet","","Get the Bitcoin network the wallet is using.","Create a new “online” wallet","Create a new “offline” wallet","Return the spending policies for the wallet’s descriptor","Return the “public” version of the wallet’s …","Return the secp256k1 context used for all signing …","Sign a transaction with all the wallet’s signers, in the …","Generalized signers","Sync the internal database with the blockchain","Cross-platform time","","","","","","","","Transaction builder","","","","","","","Deterministically generate a unique name given the …","","","Trait to build address validators","Errors that can be returned to fail the validation of an …","Network connection error","Invalid script","A custom error message","Network request timeout error","User rejected the address","","","","","","","","","","","","","","","","","","","","Validate or inspect an address","","","Branch and bound coin selection","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by TxBuilder if not …","Simple and dumb coin selection","","","","","","","","","Perform the coin selection","","","","","","","","","","","","","","Total fee amount in satoshi","","","","","","","","","","","","","The total value of the inputs selected from the local …","Create new instance with target size for change output","List of outputs selected for use as inputs","The total value of the inputs selected.","","","","","","","","","","","","","","Structure that contains the export of a wallet","Earliest block to rescan when looking for the wallet’s …","","","Return the internal descriptor, if present","","","Return the external descriptor","","","Export a wallet","","","","","","Arbitrary label for the wallet","","","","","","","","Dummy identifier","The fingerprint of a BIP32 extended key","Input index is out of range","The private key in use has the right fingerprint but …","The non_witness_utxo specified is invalid","The fingerprint and derivation path are missing from the …","The private key is missing for the required public key","The non_witness_utxo field of the transaction is required …","The witness_script field of the transaction is required to …","The witness_utxo field of the transaction is required to …","The psbt contains a non-SIGHASH_ALL sighash in one of its …","Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …","Options for a software signer","Trait for signers","Signing error","Identifier of a signer in the SignersContainers. Used as a …","Defines the order in which signers are called","Container for multiple signers","The user canceled the operation","Adds an external signer to the container for the specified …","Whether the signer should use the sighash_type set in the …","Create a map of public keys to secret keys","Whether the wallet should assume a specific height has …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return the secret key for the signer","","","","","","","","","Finds the signer with lowest ordering for a given id in …","","","","","","","","","","","","","","","","","Return the SignerId for this signer","Returns the list of identifiers of all the signers in the …","","","","","","","","","","","","","Default constructor","","","Removes a signer from the container and returns it","Sign a PSBT","Return whether or not the signer signs the whole …","Returns the list of signers in the container, sorted by …","","","","","","","Whether the signer should trust the witness_utxo, if the …","","","","","","","","","","","","","","","","","","","","","","","","Return the current timestamp in seconds","BIP69 / Lexicographic","Marker type to indicate the TxBuilder is being used to …","Use both change and non-change outputs (default)","Only use non-change outputs (see …","Policy regarding the use of change outputs when creating a …","Marker type to indicate the TxBuilder is being used to …","Only use change outputs (see TxBuilder::only_spend_change)","Randomized (default)","A transaction builder","Context in which the TxBuilder is valid","Ordering of the transaction’s inputs and outputs","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Fill-in the PSBT_GLOBAL_XPUB field with the extended keys …","Add a recipient to the internal list","Add a utxo to the internal list of unspendable utxos","Add a utxo to the internal list of utxos that must be spent","Add the list of outpoints to the internal list of UTXOs …","Explicitly tells the wallet that it is allowed to reduce …","","","","","","","","","","","Set a specific ChangeSpendPolicy. See …","","","","","","","","","","","","","Choose the coin selection algorithm","","","","","","","","","","","","","","","Do not spend change outputs","Sets the address to drain excess coins to.","Spend all the available inputs. This respects filters like …","","","","","","Enable signaling RBF","Enable signaling RBF with a specific nSequence value","","","Set an absolute fee","Set a custom fee rate","Finish the building the transaction.","","","","","","","","","","","","","","","Fill-in the psbt::Output::redeem_script and …","","","","","","","","","","","Only spend utxos added by add_utxo.","Use a specific nLockTime while creating the transaction","Only spend change outputs","Only Fill-in the psbt::Input::witness_utxo field when …","Choose the ordering for inputs and outputs of the …","","","Set the policy path to use while creating the transaction …","Replace the recipients already added with a new list","Sign with a specific sig hash","Sort transaction inputs and outputs by TxOrdering variant","","","","","","","","","","","","","","","","","","","","","Replace the internal list of unspendable utxos with a new …","Build a transaction with a specific version","","","","",""],"i":[1,1,0,1,1,1,1,0,1,1,1,0,1,2,0,1,1,1,3,1,1,1,2,1,1,1,1,1,1,1,1,0,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,2,2,4,2,0,1,2,4,5,6,3,7,8,1,2,4,5,6,3,7,8,2,2,4,5,6,3,7,8,2,4,5,6,3,7,8,7,0,4,7,8,4,1,2,4,5,6,3,7,8,1,2,4,5,6,3,7,8,0,0,2,5,7,8,1,2,4,5,6,3,7,8,2,4,5,6,3,7,8,7,4,4,1,1,2,4,5,6,3,7,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,4,5,6,3,7,8,4,4,4,4,2,5,2,5,8,1,2,4,5,6,3,7,8,1,2,4,5,6,3,7,8,9,9,10,11,5,0,4,5,6,3,7,8,8,3,5,4,7,6,7,2,5,7,8,4,8,2,4,5,6,3,7,8,1,7,1,2,4,5,6,3,7,8,1,2,4,5,6,3,7,8,7,3,5,1,2,4,5,6,3,7,8,6,12,7,0,1,2,4,5,6,3,7,8,0,2,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,39,40,41,42,43,43,44,0,0,45,0,0,44,44,0,0,0,0,0,44,46,47,44,46,47,48,44,46,47,44,46,47,0,44,46,47,44,46,47,44,46,47,0,44,0,48,44,44,46,47,45,48,44,48,48,44,44,46,47,44,46,47,0,0,0,48,48,44,46,47,44,46,47,44,46,47,44,46,47,49,46,47,44,46,47,0,0,50,51,50,51,50,51,50,51,50,51,50,51,51,50,51,50,51,51,50,51,51,50,51,50,50,50,50,51,51,51,51,50,50,50,50,50,51,50,51,51,51,50,50,51,50,51,50,51,50,51,50,51,52,53,54,55,56,57,58,0,0,0,0,58,58,58,58,58,58,58,58,0,58,58,58,0,58,58,58,59,60,59,61,62,60,63,58,59,61,62,60,63,58,62,60,63,60,63,61,61,59,59,61,62,60,63,58,59,61,62,60,63,58,60,63,59,61,62,60,63,58,60,63,62,59,61,62,60,63,58,58,59,61,62,60,63,58,58,58,58,58,58,62,62,62,61,61,59,62,61,59,59,61,62,60,63,58,59,61,62,60,63,58,61,59,60,63,63,59,62,63,61,61,60,63,62,63,60,60,63,60,63,58,59,61,62,60,63,58,59,61,62,60,63,58,59,61,62,60,63,58,59,61,62,60,63,58,64,65,66,67,68,0,0,69,70,69,70,69,70,70,69,70,69,70,70,69,70,70,69,70,69,69,70,69,69,69,69,69,70,69,70,70,70,70,69,70,70,70,70,69,70,69,70,69,70,70,69,70,71,0,0,0,71,71,71,71,71,71,71,71,71,71,72,73,71,72,73,71,72,73,72,72,72,73,71,72,73,71,72,72,73,71,72,72,73,73,71,71,72,73,71,71,71,71,71,71,71,72,73,73,73,73,73,71,72,73,71,72,72,73,72,72,72,73,72,72,72,71,73,71,72,73,71,72,73,71,72,73,71,72,73,73,74,75,76,77,78,79,80,81,82,83,84,0,0,85,0,0,0,0,0,84,86,87,86,87,86,87,88,86,87,87,84,86,86,89,86,89,86,89,86,89,86,89,86,89,86,89,86,86,87,86,87,87,86,87,88,86,86,87,86,87,85,86,88,86,88,86,88,86,88,86,88,86,88,86,88,86,88,86,86,87,86,87,88,86,88,86,88,86,88,86,0,86,86,87,89,86,89,86,89,86,89,86,89,86,89,86,87,86,87,86,87,86,87,86,87,0,0,0,90,91,92,90,91,92,0,90,91,92,0,91,90,91,93,94,92,90,91,93,94,92,91,91,90,91,90,91,90,91,90,91,90,91,90,91,90,91,90,91,93,94,92,90,91,93,94,92,93,94,92,90,91,93,94,92,91,91,93,94,92,90,90,90,90,91,91,91,91,93,94,92,92,92,92,91,91,91,91,91,91,91,91,91,90,91,93,94,92,90,91,93,94,92,91,91,91,91,93,94,93,94,92,90,91,90,91,90,91,90,91,90,91,90,91,93,90,91,93,94,92,90,91,93,94,92,90,91,93,94,92,90,91,93,94,92,95,96,97,98,99,100,101,102,103,0,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,105,0,0,0,0,0,0,0,0,0,0,105,0,0,105,105,105,105,106,107,108,105,106,107,109,108,105,106,107,109,108,108,110,106,107,110,107,110,110,106,107,110,106,107,110,110,106,107,110,106,107,0,105,106,107,109,108,105,106,107,109,108,105,106,107,109,108,105,106,107,109,109,108,105,106,107,109,108,105,105,105,108,105,106,107,109,108,108,105,106,107,109,108,0,105,108,111,105,108,105,105,106,107,109,109,108,108,105,108,105,106,107,109,108,108,105,108,108,105,108,105,106,107,109,108,108,108,108,108,108,108,108,105,108,108,105,106,107,109,108,109,105,106,107,109,108,105,106,107,109,108,108,112,105,108,109,108,108,108,108,105,108,108,110,106,107,108,105,108,105,109,105,105,105,105,105,105,105,105,105,105,105,108,110,108,105,108,105,106,107,109,108,0,108,105,108,108,108,105,105,108,105,108,109,0,105,106,107,109,108,109,109,105,109,108,105,110,110,105,108,105,106,107,109,108,105,106,107,109,108,108,105,106,107,109,108,105,105,106,107,109,108,108,113,114,115,116,117,0,118,118,118,0,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,119,120,121,122,123,124,125,126,127,128,128,0,129,0,0,0,127,127,128,128,128,127,129,130,128,129,129,0,0,0,130,130,127,127,0,0,127,127,127,127,131,127,129,132,133,128,130,131,127,129,132,133,128,130,131,127,129,132,133,130,131,127,129,132,133,130,133,132,133,131,133,131,127,129,132,133,128,130,131,127,129,132,133,128,130,131,127,129,132,133,128,130,133,128,131,127,129,132,133,128,128,130,131,127,129,129,132,132,133,128,130,132,133,133,127,132,131,127,129,132,133,128,130,131,127,129,132,133,128,130,127,129,133,132,133,128,133,132,132,131,127,129,132,133,133,131,127,129,132,133,130,128,131,127,129,132,133,128,130,131,127,129,132,133,128,130,131,127,129,132,133,128,130,131,127,129,132,133,128,130,134,135,135,135,136,137,138,139,140,139,140,139,140,139,140,139,140,141,142,143,144,145,146,147,148,148,147,149,150,151,152,153,154,155,156,157,158,159,154,155,156,157,158,159,155,157,159,0,0,0,0,0,0,0,0,0,0,0,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,160,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,151,152,153,154,155,156,157,158,159,161,0,0,0,0,0,0,162,162,0,0,0,0,0,0,161,161,161,0,0,163,161,161,162,164,0,164,0,0,163,165,166,0,0,165,166,0,167,165,0,164,168,169,166,170,171,165,172,163,173,161,164,168,169,166,170,171,165,172,163,173,161,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,169,166,170,163,173,169,166,170,163,173,169,166,170,173,173,164,168,168,169,166,170,171,165,172,163,173,161,164,168,169,166,170,171,165,172,163,173,161,166,166,164,168,169,166,170,171,165,172,163,173,161,169,169,166,170,163,169,169,166,166,170,171,165,165,172,163,173,161,161,169,164,164,164,168,169,166,170,171,165,172,163,173,161,161,161,172,172,166,165,169,166,162,174,162,174,169,166,170,164,169,166,170,164,168,169,166,170,171,165,172,163,173,161,164,168,169,166,170,171,165,172,163,173,161,175,176,168,168,166,165,172,176,164,168,168,164,164,166,167,163,167,163,166,169,170,171,169,0,166,110,169,169,0,169,166,170,169,170,171,110,110,172,169,166,170,169,169,169,169,169,0,169,166,170,163,173,166,169,166,165,161,110,110,110,110,169,164,168,169,166,170,171,165,172,163,173,161,164,168,169,166,170,171,165,172,163,173,161,164,168,169,166,170,171,165,172,163,173,161,164,168,169,166,170,171,165,172,163,173,161,177,178,179,180,181,182,183,184,185,186,0,0,0,0,187,187,187,187,187,186,186,188,187,186,188,187,186,188,186,188,186,188,186,188,187,186,188,187,188,186,188,187,186,188,186,186,188,188,186,188,187,188,188,188,188,188,186,188,186,188,186,188,187,186,188,187,188,188,188,188,188,188,188,188,188,186,188,188,188,188,186,188,188,188,186,188,186,188,187,186,188,187,186,188,187,186,188,187,188,188,186,0,0,0,189,189,189,189,0,190,190,191,0,190,189,191,190,189,191,190,190,190,190,0,190,190,189,191,191,190,189,191,190,189,191,191,0,190,190,189,191,191,190,189,191,190,190,190,0,190,190,190,191,190,189,191,190,189,191,192,190,190,190,191,190,190,190,190,190,190,190,0,190,0,191,190,189,191,190,189,191,0,190,189,191,190,189,191,0,193,194,0,0,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,195,197,0,0,0,0,0,198,199,200,198,199,200,199,199,201,199,200,199,200,198,199,200,198,199,200,198,199,200,198,198,199,200,198,199,200,198,199,200,198,199,200,198,200,198,198,199,198,199,200,198,199,200,198,199,200,198,199,200,0,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,203,204,204,205,205,205,205,205,205,205,205,205,204,0,0,0,0,0,0,205,206,207,206,207,204,205,203,206,207,204,205,203,206,207,204,205,203,206,207,204,205,203,206,207,204,203,203,206,207,204,205,203,206,207,204,205,203,206,207,208,204,205,203,206,207,204,205,203,206,204,205,205,203,206,207,204,204,204,205,203,206,206,207,204,204,208,206,204,205,203,206,207,204,205,203,206,207,204,203,206,204,203,206,208,208,206,204,205,203,206,207,205,207,204,205,203,206,207,204,205,203,206,207,204,205,203,206,207,204,205,203,206,207,209,210,211,0,212,0,213,213,0,0,213,212,0,0,0,212,214,214,214,214,214,214,214,214,215,216,214,212,213,215,216,214,212,213,214,215,216,214,212,213,215,216,214,212,213,212,213,214,215,216,212,213,215,216,214,212,213,215,216,214,212,213,214,214,214,215,216,214,212,213,214,214,212,213,214,214,214,215,216,214,212,213,215,216,214,212,213,212,213,212,213,214,215,216,214,212,213,215,216,214,212,213,214,214,214,214,214,212,213,214,214,214,212,215,216,214,212,213,215,216,214,212,213,215,216,214,212,213,215,216,214,212,213,214,214,215,216,214,212,213],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],["u8",15]],[[]],[[],["f32",15]],[[],["usize",15]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4,[["vec",3,[["u5",3],["global",3]]]]]],[[],["keychainkind",4]],[[],["feerate",3]],[[],["localutxo",3]],[[],["weightedutxo",3]],[[],["utxo",4]],[[],["transactiondetails",3]],[[],["blocktime",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[]],[[],["transactiondetails",3]],[[],["blocktime",3]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["keychainkind",4]],["bool",15]],[[["feerate",3]],["bool",15]],[[["localutxo",3]],["bool",15]],[[["weightedutxo",3]],["bool",15]],[[["utxo",4]],["bool",15]],[[["transactiondetails",3]],["bool",15]],[[["blocktime",3]],["bool",15]],null,[[["usize",15]],["u64",15]],[[["usize",15]],["u64",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],null,[[["error",4]]],[[["keyerror",4]],["error",4]],[[["signererror",4]]],[[["error",4]]],[[["error",4]]],[[["addressvalidatorerror",4]]],[[]],[[["esploraerror",4]]],[[["compactfilterserror",4]]],[[["error",4]]],[[["error",4]]],[[["error",3]]],[[["policyerror",4]]],[[["psbtparseerror",4]]],[[["error",4]]],[[["error",4]]],[[["error",4]]],[[["error",4]]],[[["error",4]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["f32",15]]],[[["f32",15]]],[[["u64",15],["usize",15]],["feerate",3]],[[["u64",15],["usize",15]],["feerate",3]],[[],["u64",15]],[[],["u64",15]],[[]],[[]],null,[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["option",4,[["keysource",6]]],["derivationpath",3]],["result",4,[["descriptorkey",4],["keyerror",4]]]],[[],["result",4,[["extendedkey",4],["keyerror",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["descriptorerror",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["descriptorerror",4]]]],null,null,[[["feerate",3]],["bool",15]],[[["localutxo",3]],["bool",15]],[[["weightedutxo",3]],["bool",15]],[[["utxo",4]],["bool",15]],[[["transactiondetails",3]],["bool",15]],[[["blocktime",3]],["bool",15]],[[["option",4,[["u32",15]]],["option",4,[["u64",15]]]],["option",4]],[[],["outpoint",3]],null,[[["feerate",3]],["option",4,[["ordering",4]]]],null,null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["feerate",3]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["string",3]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[],["txout",3]],null,[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,[[],["usize",15]],null,[[],["str",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["result",4]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[["transaction",3]],["result",4,[["error",4]]]],[[],["capability",4]],[[],["noopprogress",3]],[[],["logprogress",3]],[[]],[[]],[[]],null,[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],null,[[["capability",4]],["bool",15]],null,[[["usize",15]],["result",4,[["feerate",3],["error",4]]]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[],["result",4,[["error",4]]]],[[],["hashset",3,[["capability",4]]]],[[],["u64",15]],[[],["result",4,[["u32",15],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[],["logprogress",3]],[[],["noopprogress",3]],[[]],[[["progress",8]],["result",4,[["error",4]]]],[[["progress",8]],["result",4,[["error",4]]]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["f32",15],["option",4,[["string",3]]]],["result",4,[["error",4]]]],[[["f32",15],["option",4,[["string",3]]]],["result",4,[["error",4]]]],[[["f32",15],["option",4,[["string",3]]]],["result",4,[["error",4]]]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[["transaction",3]],["result",4,[["error",4]]]],[[],["anyblockchainconfig",4]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["result",4]],[[["usize",15]]],[[["usize",15]]],[[["anyblockchainconfig",4]],["bool",15]],[[["usize",15]],["result",4,[["feerate",3],["error",4]]]],[[["formatter",3]],["result",6]],[[["esplorablockchain",3]]],[[]],[[["electrumblockchain",3]]],[[["compactfiltersblockchain",3]]],[[["electrumblockchainconfig",3]]],[[["esplorablockchainconfig",3]]],[[["compactfiltersblockchainconfig",3]]],[[]],[[],["result",4,[["error",4]]]],[[],["hashset",3,[["capability",4]]]],[[],["result",4,[["u32",15],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[["anyblockchainconfig",4]],["bool",15]],[[],["result",4]],[[["progress",8]],["result",4,[["error",4]]]],[[["progress",8]],["result",4,[["error",4]]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["transaction",3]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["transaction",3]],["result",4,[["error",4]]]],[[],["bitcoinpeerconfig",3]],[[],["compactfiltersblockchainconfig",3]],[[]],[[]],[[["tosocketaddrs",8],["arc",3,[["mempool",3]]],["network",4]],["result",4,[["compactfilterserror",4]]]],[[["totargetaddr",8],["tosocketaddrs",8],["option",4],["arc",3,[["mempool",3]]],["network",4]],["result",4,[["compactfilterserror",4]]]],[[],["mempool",3]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["result",4]],[[],["result",4]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["bitcoinpeerconfig",3]],["bool",15]],[[["compactfiltersblockchainconfig",3]],["bool",15]],[[["usize",15]],["result",4,[["feerate",3],["error",4]]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["error",3]]],[[["error",4]]],[[["error",3]]],[[["systemtimeerror",3]]],[[]],[[["error",4]]],[[],["result",4,[["error",4]]]],[[],["hashset",3,[["capability",4]]]],[[],["result",4,[["u32",15],["error",4]]]],[[],["arc",3,[["mempool",3]]]],[[],["network",4]],[[["inventory",4]],["option",4,[["transaction",3]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[],["versionmessage",3]],[[["txid",3]],["bool",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["vec",3,[["transaction",3]]]],[[["bitcoinpeerconfig",3]],["bool",15]],[[["compactfiltersblockchainconfig",3]],["bool",15]],null,[[]],[[["vec",3,[["peer",3]]],["asref",8,[["path",3]]],["option",4,[["usize",15]]]],["result",4,[["compactfilterserror",4]]]],null,[[["str",15],["option",4,[["duration",3]]]],["result",4,[["option",4,[["networkmessage",4]]],["compactfilterserror",4]]]],[[["networkmessage",4]],["result",4,[["compactfilterserror",4]]]],[[],["result",4]],[[],["result",4]],[[["progress",8]],["result",4,[["error",4]]]],null,null,null,null,[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[["transaction",3]],["result",4,[["error",4]]]],[[],["electrumblockchainconfig",3]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["result",4]],[[["usize",15]]],[[["usize",15]]],[[["electrumblockchainconfig",3]],["bool",15]],[[["usize",15]],["result",4,[["feerate",3],["error",4]]]],[[["formatter",3]],["result",6]],[[]],[[["client",3]]],[[]],[[],["result",4,[["error",4]]]],[[],["hashset",3,[["capability",4]]]],[[],["result",4,[["u32",15],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[["electrumblockchainconfig",3]],["bool",15]],null,[[],["result",4]],[[["progress",8]],["result",4,[["error",4]]]],null,null,null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[["transaction",3]],["result",4,[["error",4]]]],[[],["esplorablockchainconfig",3]],[[]],null,[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["result",4]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["esplorablockchainconfig",3]],["bool",15]],[[["usize",15]],["result",4,[["feerate",3],["error",4]]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[["parseinterror",3]]],[[["error",4]]],[[["error",4]]],[[["transport",3]]],[[["error",4]]],[[]],[[["error",3]]],[[]],[[],["result",4,[["error",4]]]],[[],["hashset",3,[["capability",4]]]],[[],["result",4,[["u32",15],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[["esplorablockchainconfig",3]],["bool",15]],[[["str",15],["usize",15]]],[[["string",3],["usize",15]]],null,[[],["result",4]],[[["progress",8]],["result",4,[["error",4]]]],null,null,[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[["agent",3]]],[[["u8",15]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],null,[[]],[[]],[[]],[[]],[[["keychainkind",4],["asref",8]],["result",4,[["error",4]]]],[[["keychainkind",4],["asref",8]],["result",4,[["error",4]]]],[[],["synctime",3]],[[]],[[],["result",4,[["error",4]]]],[[],["result",4,[["error",4]]]],null,[[["keychainkind",4]],["result",4,[["option",4,[["u32",15]]],["error",4]]]],[[["keychainkind",4]],["result",4,[["option",4,[["u32",15]]],["error",4]]]],[[["script",3]],["result",4,[["option",4],["error",4]]]],[[["script",3]],["result",4,[["option",4],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["option",4,[["script",3]]],["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["option",4,[["script",3]]],["error",4]]]],[[],["result",4,[["option",4,[["synctime",3]]],["error",4]]]],[[],["result",4,[["option",4,[["synctime",3]]],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["result",4]],[[["usize",15]]],[[["usize",15]]],[[],["result",4,[["error",4]]]],[[],["result",4,[["error",4]]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[],["result",4,[["error",4]]]],[[],["result",4,[["error",4]]]],[[["keychainkind",4]],["result",4,[["option",4,[["u32",15]]],["error",4]]]],[[["keychainkind",4]],["result",4,[["option",4,[["u32",15]]],["error",4]]]],[[["script",3]],["result",4,[["option",4],["error",4]]]],[[["script",3]],["result",4,[["option",4],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["option",4,[["script",3]]],["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["option",4,[["script",3]]],["error",4]]]],[[],["result",4,[["option",4,[["synctime",3]]],["error",4]]]],[[],["result",4,[["option",4,[["synctime",3]]],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],[[["keychainkind",4]],["result",4,[["u32",15],["error",4]]]],[[["keychainkind",4]],["result",4,[["u32",15],["error",4]]]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[],["result",4,[["vec",3,[["transaction",3]]],["error",4]]]],[[],["result",4,[["vec",3,[["transaction",3]]],["error",4]]]],[[["option",4,[["keychainkind",4]]]],["result",4,[["vec",3,[["script",3]]],["error",4]]]],[[["option",4,[["keychainkind",4]]]],["result",4,[["vec",3,[["script",3]]],["error",4]]]],[[["bool",15]],["result",4,[["vec",3,[["transactiondetails",3]]],["error",4]]]],[[["bool",15]],["result",4,[["vec",3,[["transactiondetails",3]]],["error",4]]]],[[],["result",4,[["vec",3,[["localutxo",3]]],["error",4]]]],[[],["result",4,[["vec",3,[["localutxo",3]]],["error",4]]]],null,[[["string",3]]],null,[[],["result",4]],[[["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["transaction",3]],["result",4,[["error",4]]]],[[["transaction",3]],["result",4,[["error",4]]]],[[["script",3],["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["script",3],["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["synctime",3]],["result",4,[["error",4]]]],[[["synctime",3]],["result",4,[["error",4]]]],[[["transactiondetails",3]],["result",4,[["error",4]]]],[[["transactiondetails",3]],["result",4,[["error",4]]]],[[["localutxo",3]],["result",4,[["error",4]]]],[[["localutxo",3]],["result",4,[["error",4]]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["keychainkind",4],["asref",8]],["result",4,[["error",4]]]],[[],["result",4,[["error",4]]]],[[["keychainkind",4]],["result",4,[["option",4,[["u32",15]]],["error",4]]]],[[["keychainkind",4]],["result",4,[["option",4,[["u32",15]]],["error",4]]]],[[["script",3]],["result",4,[["option",4],["error",4]]]],[[["script",3]],["result",4,[["option",4],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["option",4,[["script",3]]],["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["option",4,[["script",3]]],["error",4]]]],[[],["result",4,[["option",4,[["synctime",3]]],["error",4]]]],[[],["result",4,[["option",4,[["synctime",3]]],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["result",4,[["error",4]]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["memorydatabase",3]]],[[["sqlitedatabase",3]]],[[]],[[["tree",3]]],[[]],[[]],[[]],[[]],[[["sleddbconfiguration",3]]],[[["sqlitedbconfiguration",3]]],[[],["result",4,[["error",4]]]],[[["keychainkind",4]],["result",4,[["option",4,[["u32",15]]],["error",4]]]],[[["script",3]],["result",4,[["option",4],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["option",4,[["script",3]]],["error",4]]]],[[],["result",4,[["option",4,[["synctime",3]]],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],[[["keychainkind",4]],["result",4,[["u32",15],["error",4]]]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[],["result",4,[["vec",3,[["transaction",3]]],["error",4]]]],[[["option",4,[["keychainkind",4]]]],["result",4,[["vec",3,[["script",3]]],["error",4]]]],[[["bool",15]],["result",4,[["vec",3,[["transactiondetails",3]]],["error",4]]]],[[],["result",4,[["vec",3,[["localutxo",3]]],["error",4]]]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["transaction",3]],["result",4,[["error",4]]]],[[["transaction",3]],["result",4,[["error",4]]]],[[["script",3],["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["script",3],["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["synctime",3]],["result",4,[["error",4]]]],[[["synctime",3]],["result",4,[["error",4]]]],[[["transactiondetails",3]],["result",4,[["error",4]]]],[[["transactiondetails",3]],["result",4,[["error",4]]]],[[["localutxo",3]],["result",4,[["error",4]]]],[[["localutxo",3]],["result",4,[["error",4]]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[["keychainkind",4],["asref",8]],["result",4,[["error",4]]]],[[],["result",4,[["error",4]]]],[[],["memorydatabase",3]],[[["keychainkind",4]],["result",4,[["option",4,[["u32",15]]],["error",4]]]],[[["script",3]],["result",4,[["option",4],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["option",4,[["script",3]]],["error",4]]]],[[],["result",4,[["option",4,[["synctime",3]]],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["result",4,[["error",4]]]],[[["formatter",3]],["result",6]],[[]],[[],["result",4,[["error",4]]]],[[["keychainkind",4]],["result",4,[["option",4,[["u32",15]]],["error",4]]]],[[["script",3]],["result",4,[["option",4],["error",4]]]],[[["txid",3]],["result",4,[["option",4,[["transaction",3]]],["error",4]]]],[[["keychainkind",4],["u32",15]],["result",4,[["option",4,[["script",3]]],["error",4]]]],[[],["result",4,[["option",4,[["synctime",3]]],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],[[["keychainkind",4]],["result",4,[["u32",15],["error",4]]]],[[],["usize",15]],[[]],[[],["result",4,[["vec",3,[["transaction",3]]],["error",4]]]],[[["option",4,[["keychainkind",4]]]],["result",4,[["vec",3,[["script",3]]],["error",4]]]],[[["bool",15]],["result",4,[["vec",3,[["transactiondetails",3]]],["error",4]]]],[[],["result",4,[["vec",3,[["localutxo",3]]],["error",4]]]],[[]],[[["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["transaction",3]],["result",4,[["error",4]]]],[[["script",3],["keychainkind",4],["u32",15]],["result",4,[["error",4]]]],[[["synctime",3]],["result",4,[["error",4]]]],[[["transactiondetails",3]],["result",4,[["error",4]]]],[[["localutxo",3]],["result",4,[["error",4]]]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["network",4]],["result",4,[["address",3],["error",4]]]],[[],["scriptcontextenum",4]],[[],["scriptcontextenum",4]],[[],["terminal",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["vec",3,[["miniscript",3],["global",3]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["terminal",4]],["result",4,[["scriptcontexterror",4]]]],[[["terminal",4]],["result",4,[["scriptcontexterror",4]]]],[[["terminal",4]],["result",4,[["scriptcontexterror",4]]]],[[],["result",4,[["scriptcontexterror",4]]]],[[],["result",4,[["scriptcontexterror",4]]]],[[],["result",4,[["scriptcontexterror",4]]]],null,[[],["descriptor",4]],[[],["legacy",4]],[[],["segwitv0",4]],[[],["deriveddescriptorkey",3]],[[],["miniscript",3]],[[]],[[]],[[]],[[]],[[]],[[["descriptor",4]],["ordering",4]],[[["legacy",4]],["ordering",4]],[[["segwitv0",4]],["ordering",4]],[[],["ordering",4]],[[["miniscript",3]],["ordering",4]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["u32",15]],["descriptor",4,[["descriptorpublickey",4]]]],[[],["descriptortype",4]],[[],["result",4,[["descriptor",4]]]],[[],["result",4,[["miniscript",3]]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["script",3]],[[["descriptor",4]],["bool",15]],[[["legacy",4]],["bool",15]],[[["segwitv0",4]],["bool",15]],[[],["bool",15]],[[["miniscript",3]],["bool",15]],null,[[],["script",3]],null,[[["signerscontainer",3],["buildsatisfaction",4],["secp256k1",3]],["result",4,[["option",4,[["policy",3]]],["descriptorerror",4]]]],[[["signerscontainer",3],["buildsatisfaction",4],["secp256k1",3]],["result",4,[["option",4,[["policy",3]]],["error",4]]]],[[["signerscontainer",3],["buildsatisfaction",4],["secp256k1",3]],["result",4,[["option",4,[["policy",3]]],["error",4]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[],["bool",15]],[[],["bool",15]],[[]],[[]],[[]],[[]],[[]],[[["terminal",4]],["result",4,[["miniscript",3],["error",4]]]],[[["str",15]],["result",4,[["descriptor",4],["error",4]]]],[[["str",15]],["result",4,[["miniscript",3],["error",4]]]],[[["str",15]],["result",4,[["miniscript",3],["error",4]]]],[[["tree",3]],["result",4,[["descriptor",4],["error",4]]]],[[["tree",3]],["result",4,[["miniscript",3],["error",4]]]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["vec",3,[["global",3]]]],[[],["vec",3,[["pkpkh",4],["global",3]]]],[[],["vec",3,[["global",3]]]],[[["usize",15]],["option",4,[["miniscript",3]]]],[[["usize",15]],["option",4]],[[["usize",15]],["option",4,[["pkpkh",4]]]],[[["usize",15]],["option",4]],[[],["result",4,[["error",4]]]],[[],["bool",15]],[[],["bool",15]],[[]],[[]],[[]],[[]],[[]],[[],["hash",3]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[],["terminal",4]],[[["secp256k1",3],["network",4]],["result",4,[["descriptorerror",4]]]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["iter",3]],[[],["pkiter",3]],[[],["pkpkhiter",3]],[[],["pkhiter",3]],[[],["result",4,[["policy",4],["error",4]]]],[[],["result",4,[["policy",4],["error",4]]]],[[],["result",4,[["lifterror",4]]]],[[["miniscript",3]],["option",4,[["usize",15]]]],[[["miniscript",3]],["option",4,[["usize",15]]]],[[["miniscript",3]],["option",4,[["usize",15]]]],[[],["result",4,[["usize",15],["error",4]]]],[[],["result",4,[["usize",15],["error",4]]]],[[],["result",4,[["usize",15],["error",4]]]],[[["descriptor",4]],["bool",15]],[[["descriptorpublickey",4],["secp256k1",3]],["deriveddescriptorkey",3]],[[["miniscript",3,[["barectx",4]]]],["result",4,[["descriptor",4],["error",4]]]],[[],["descriptor",4]],[[],["descriptor",4]],[[["miniscript",3,[["legacy",4]]]],["result",4,[["descriptor",4],["error",4]]]],[[["usize",15],["vec",3,[["global",3]]]],["result",4,[["descriptor",4],["error",4]]]],[[],["result",4,[["descriptor",4],["error",4]]]],[[["miniscript",3,[["segwitv0",4]]]],["result",4,[["descriptor",4],["error",4]]]],[[["usize",15],["vec",3,[["global",3]]]],["result",4,[["descriptor",4],["error",4]]]],[[],["result",4,[["descriptor",4],["error",4]]]],[[["miniscript",3,[["segwitv0",4]]]],["result",4,[["descriptor",4],["error",4]]]],[[["usize",15],["vec",3,[["global",3]]]],["result",4,[["descriptor",4],["error",4]]]],null,[[["miniscript",3]],["result",4,[["error",4]]]],[[["script",3]],["result",4,[["miniscript",3,[["publickey",3]]],["error",4]]]],[[["secp256k1",3],["str",15]],["result",4,[["error",4]]]],[[["script",3]],["result",4,[["miniscript",3,[["publickey",3]]],["error",4]]]],[[["descriptor",4]],["option",4,[["ordering",4]]]],[[["legacy",4]],["option",4,[["ordering",4]]]],[[["segwitv0",4]],["option",4,[["ordering",4]]]],[[],["option",4,[["ordering",4]]]],[[["miniscript",3]],["option",4,[["ordering",4]]]],null,[[],["bool",15]],[[],["result",4,[["error",4]]]],[[],["result",4,[["analysiserror",4]]]],[[],["result",4,[["vec",3,[["vec",3,[["u8",15],["global",3]]],["global",3]]],["error",4]]]],[[],["result",4,[["vec",3,[["vec",3,[["u8",15],["global",3]]],["global",3]]],["error",4]]]],[[],["script",3]],[[],["script",3]],[[],["usize",15]],[[],["result",4]],[[],["result",4]],[[],["usize",15]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["publickey",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[["hashmap",3]],["string",3]],[[["miniscript",3]],["result",4,[["error",4]]]],[[["miniscript",3]],["result",4,[["error",4]]]],[[],["result",4,[["descriptor",4]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["script",3]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],null,null,null,null,null,[[["str",15]],["result",4,[["string",3],["descriptorerror",4]]]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["keyerror",4]],["error",4]],[[["policyerror",4]]],[[["error",4]]],[[["error",4]]],[[["error",4]]],[[["error",4]]],[[["error",4]]],[[]],[[],["usize",15]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["pkorf",3]],[[],["satisfiableitem",4]],[[],["satisfaction",4]],[[],["policy",3]],[[],["condition",3]],[[],["buildsatisfaction",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[["condition",3]],["ordering",4]],null,null,[[],["pkorf",3]],[[],["condition",3]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["condition",3]],["bool",15]],[[["policyerror",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[["bool",15]]],[[]],[[["satisfiableitem",4]]],[[]],[[]],[[]],[[["btreemap",3]],["result",4,[["condition",3],["policyerror",4]]]],[[],["u64",15]],[[]],[[],["string",3]],null,[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,[[["condition",3]],["bool",15]],[[["policyerror",4]],["bool",15]],[[["condition",3]],["option",4,[["ordering",4]]]],[[],["bool",15]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[],["result",4,[["descriptortemplateout",6],["descriptorerror",4]]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["secp256k1",3],["network",4]],["result",4,[["error",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["error",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["error",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["error",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["error",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["error",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["error",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["error",4]]]],[[["secp256k1",3],["network",4]],["result",4,[["error",4]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],["validnetworks",6]],[[],["scriptcontextenum",4]],[[["secp256k1",3]],["result",4,[["descriptorpublickey",4],["descriptorkeyparseerror",3]]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["miniscript",3]],["result",4,[["scriptcontexterror",4]]]],[[["terminal",4]],["result",4,[["scriptcontexterror",4]]]],[[],["result",4,[["scriptcontexterror",4]]]],[[],["result",4,[["scriptcontexterror",4]]]],[[],["sortedmultivec",3]],[[],["descriptorpublickey",4]],[[],["descriptorsinglepub",3]],[[],["scriptcontextenum",4]],[[],["privatekeygenerateoptions",3]],[[]],[[]],[[]],[[]],[[]],[[["sortedmultivec",3]],["ordering",4]],[[["descriptorpublickey",4]],["ordering",4]],[[["descriptorsinglepub",3]],["ordering",4]],null,[[]],[[["usize",15]]],[[["usize",15]]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["u32",15]],["descriptorpublickey",4]],[[["secp256k1",3]],["result",4,[["publickey",3],["conversionerror",4]]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["script",3]],[[["sortedmultivec",3]],["bool",15]],[[["descriptorpublickey",4]],["bool",15]],[[["descriptorsinglepub",3]],["bool",15]],[[["scriptcontextenum",4]],["bool",15]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[],["bool",15]],[[]],[[["extendedpubkey",3]]],[[["extendedprivkey",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["error",4]]],[[]],[[["error",4]]],[[["descriptorpublickey",4],["validnetworks",6]]],[[["descriptorsecretkey",4],["validnetworks",6]]],[[["str",15]],["result",4,[["descriptorpublickey",4]]]],[[["str",15]],["result",4,[["descriptorsecretkey",4]]]],[[["tree",3]],["result",4,[["sortedmultivec",3],["error",4]]]],[[],["derivationpath",3]],[[],["result",4,[["generatedkey",3]]]],[[],["result",4,[["generatedkey",3]]]],[[],["result",4,[["generatedkey",3]]]],[[],["result",4,[["generatedkey",3]]]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["bool",15]],[[]],[[]],[[]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4,[["descriptorkey",4],["keyerror",4]]]],[[["option",4,[["keysource",6]]],["derivationpath",3]],["result",4,[["descriptorkey",4],["keyerror",4]]]],[[["option",4,[["keysource",6]]],["derivationpath",3]],["result",4,[["descriptorkey",4],["keyerror",4]]]],[[],["result",4,[["descriptorkey",4],["keyerror",4]]]],[[],["result",4,[["descriptorkey",4],["keyerror",4]]]],[[],["result",4,[["descriptorkey",4],["keyerror",4]]]],[[],["result",4,[["descriptorkey",4],["keyerror",4]]]],[[],["result",4,[["extendedkey",4],["keyerror",4]]]],[[],["result",4,[["extendedkey",4],["keyerror",4]]]],[[],["result",4,[["extendedkey",4],["keyerror",4]]]],[[]],[[["network",4]],["option",4,[["extendedprivkey",3]]]],[[["network",4],["secp256k1",3]],["extendedpubkey",3]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,null,null,[[],["result",4,[["policy",4],["error",4]]]],[[],["validnetworks",6]],[[],["fingerprint",3]],[[["miniscript",3]],["option",4,[["usize",15]]]],[[],["usize",15]],[[],["usize",15]],[[["validnetworks",6],["validnetworks",6]],["validnetworks",6]],[[["sortedmultivec",3]],["bool",15]],[[["descriptorpublickey",4]],["bool",15]],[[["descriptorsinglepub",3]],["bool",15]],[[["usize",15],["vec",3,[["global",3]]]],["result",4,[["sortedmultivec",3],["error",4]]]],null,null,[[["miniscript",3]],["result",4,[["error",4]]]],[[["miniscript",3]],["result",4,[["error",4]]]],[[["validnetworks",6]]],[[["sortedmultivec",3]],["option",4,[["ordering",4]]]],[[["descriptorpublickey",4]],["option",4,[["ordering",4]]]],[[["descriptorsinglepub",3]],["option",4,[["ordering",4]]]],null,[[],["result",4,[["error",4]]]],[[],["result",4,[["vec",3,[["vec",3,[["u8",15],["global",3]]],["global",3]]],["error",4]]]],[[],["usize",15]],[[],["terminal",4]],[[],["validnetworks",6]],[[]],[[]],[[]],[[]],[[]],[[],["descriptorpublickey",4]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[["miniscript",3]],["result",4,[["error",4]]]],[[["miniscript",3]],["result",4,[["error",4]]]],[[["miniscript",3]],["result",4,[["error",4]]]],[[["miniscript",3]],["result",4,[["error",4]]]],[[],["result",4,[["sortedmultivec",3]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["language",4]],[[],["mnemonic",3]],[[]],[[]],[[["language",4]],["ordering",4]],[[["mnemonic",3]],["ordering",4]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["result",4,[["mnemonic",3]]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["language",4]],["bool",15]],[[["mnemonic",3]],["bool",15]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[]],[[]],[[]],[[],["result",4,[["mnemonic",3],["error",4]]]],[[["language",4]],["result",4,[["mnemonic",3],["error",4]]]],[[["str",15]],["result",4,[["mnemonic",3],["error",4]]]],[[["language",4],["usize",15]],["result",4,[["mnemonic",3],["error",4]]]],[[],["result",4,[["generatedkey",3]]]],[[],["u64",15]],[[],["u64",15]],[[]],[[]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[["option",4,[["keysource",6]]],["derivationpath",3]],["result",4,[["descriptorkey",4],["keyerror",4]]]],[[],["result",4,[["extendedkey",4],["keyerror",4]]]],[[],["language",4]],[[],["result",4,[["language",4],["error",4]]]],[[["mnemonic",3]],["bool",15]],[[],["result",4,[["mnemonic",3],["error",4]]]],[[["language",4]],["result",4,[["mnemonic",3],["error",4]]]],[[["language",4],["str",15]],["result",4,[["mnemonic",3],["error",4]]]],[[["str",15]],["result",4,[["mnemonic",3],["error",4]]]],[[["language",4]],["option",4,[["ordering",4]]]],[[["mnemonic",3]],["option",4,[["ordering",4]]]],[[],["result",4]],[[],["vec",3,[["u8",15],["global",3]]]],[[]],[[]],[[]],[[]],[[["str",15]]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[],["usize",15]],[[]],[[["str",15]]],null,null,null,null,null,null,null,null,[[["arc",3,[["addressvalidator",8]]]]],[[["keychainkind",4],["signerordering",3],["arc",3,[["signer",8]]]]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[["transaction",3]],["result",4,[["txid",3],["error",4]]]],[[["txid",3]],["result",4,[["txbuilder",3,[["defaultcoinselectionalgorithm",6],["bumpfee",3]]],["error",4]]]],[[],["txbuilder",3,[["defaultcoinselectionalgorithm",6],["createtx",3]]]],[[]],null,[[]],[[["usize",15]]],[[["usize",15]]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["addressinfo",3]],["bool",15]],null,[[["psbt",3],["signoptions",3]],["result",4,[["bool",15],["error",4]]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[["addressindex",4]],["result",4,[["addressinfo",3],["error",4]]]],[[],["result",4,[["u64",15],["error",4]]]],[[["keychainkind",4]],["extendeddescriptor",6]],[[["str",15]]],[[["localutxo",3],["option",4,[["sighashtype",4]]],["bool",15]],["result",4,[["input",3],["error",4]]]],[[["txid",3],["bool",15]],["result",4,[["option",4,[["transactiondetails",3]]],["error",4]]]],[[["outpoint",3]],["result",4,[["option",4,[["localutxo",3]]],["error",4]]]],null,[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[],["bool",15]],[[["script",3]],["result",4,[["bool",15],["error",4]]]],[[["bool",15]],["result",4,[["vec",3,[["transactiondetails",3]]],["error",4]]]],[[],["result",4,[["vec",3,[["localutxo",3]]],["error",4]]]],[[["addressinfo",3]],["bool",15]],[[],["network",4]],[[["intowalletdescriptor",8],["option",4,[["intowalletdescriptor",8]]],["network",4]],["result",4,[["error",4]]]],[[["intowalletdescriptor",8],["option",4,[["intowalletdescriptor",8]]],["network",4]],["result",4,[["error",4]]]],[[["keychainkind",4]],["result",4,[["option",4,[["policy",3]]],["error",4]]]],[[["keychainkind",4]],["result",4,[["option",4,[["extendeddescriptor",6]]],["error",4]]]],[[],["secp256k1",3]],[[["psbt",3],["signoptions",3]],["result",4,[["bool",15],["error",4]]]],null,[[["progress",8],["option",4,[["u32",15]]]],["result",4,[["error",4]]]],null,[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[["option",4],["network",4],["secp256k1",3]],["result",4,[["string",3],["error",4]]]],null,null,null,null,null,null,null,null,null,[[]],[[]],[[],["addressvalidatorerror",4]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["addressvalidatorerror",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[],["usize",15]],[[]],[[["addressvalidatorerror",4]],["bool",15]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["keychainkind",4],["hdkeypaths",6],["script",3]],["result",4,[["addressvalidatorerror",4]]]],[[]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["largestfirstcoinselection",3]],[[]],[[["vec",3,[["weightedutxo",3]]],["vec",3,[["weightedutxo",3]]],["feerate",3],["u64",15],["u64",15]],["result",4,[["coinselectionresult",3],["error",4]]]],[[["vec",3,[["weightedutxo",3]]],["vec",3,[["weightedutxo",3]]],["feerate",3],["u64",15],["u64",15]],["result",4,[["coinselectionresult",3],["error",4]]]],[[["vec",3,[["weightedutxo",3]]],["vec",3,[["weightedutxo",3]]],["feerate",3],["u64",15],["u64",15]],["result",4,[["coinselectionresult",3],["error",4]]]],[[],["largestfirstcoinselection",3]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[],["u64",15]],[[["u64",15]]],null,[[],["u64",15]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,null,[[]],[[]],[[],["option",4,[["string",3]]]],[[["usize",15]]],[[["usize",15]]],[[],["string",3]],[[],["result",4]],[[["usize",15]]],[[["wallet",3],["str",15],["bool",15]],["result",4,[["str",15]]]],[[["formatter",3]],["result",6]],[[]],[[["str",15]],["result",4]],[[],["usize",15]],[[]],null,[[],["result",4]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["signerid",4],["signerordering",3],["arc",3,[["signer",8]]]],["option",4,[["arc",3,[["signer",8]]]]]],null,[[["secp256k1",3]],["keymap",6]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["signerid",4]],[[],["signererror",4]],[[],["signerordering",3]],[[],["signerscontainer",3]],[[],["signoptions",3]],[[]],[[]],[[]],[[]],[[]],[[["signerid",4]],["ordering",4]],[[["signerordering",3]],["ordering",4]],[[]],[[],["signerscontainer",3]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[],["option",4,[["descriptorsecretkey",4]]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["signerid",4]],["bool",15]],[[["signererror",4]],["bool",15]],[[["signerordering",3]],["bool",15]],[[["signerid",4]],["option",4,[["arc",3]]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["fingerprint",3]],["signerid",4]],[[]],[[["hash",3]],["signerid",4]],[[]],[[]],[[]],[[["keymap",6]],["signerscontainer",3]],[[]],[[],["u64",15]],[[]],[[["secp256k1",3]],["signerid",4]],[[],["vec",3,[["signerid",4]]]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[["signerid",4]],["bool",15]],[[["signerordering",3]],["bool",15]],[[]],[[["signerid",4]],["option",4,[["ordering",4]]]],[[["signerordering",3]],["option",4,[["ordering",4]]]],[[["signerid",4],["signerordering",3]],["option",4,[["arc",3,[["signer",8]]]]]],[[["partiallysignedtransaction",3],["option",4,[["usize",15]]],["secp256k1",3]],["result",4,[["signererror",4]]]],[[],["bool",15]],[[],["vec",3,[["arc",3]]]],[[]],[[]],[[]],[[]],[[]],[[],["string",3]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[],["u64",15]],null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[["outpoint",3],["input",3],["usize",15]],["result",4,[["error",4]]]],[[]],[[["script",3],["u64",15]]],[[["outpoint",3]]],[[["outpoint",3]],["result",4,[["error",4]]]],[[],["result",4,[["error",4]]]],[[["script",3]],["result",4,[["error",4]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["changespendpolicy",4]]],[[],["createtx",3]],[[],["bumpfee",3]],[[]],[[],["txordering",4]],[[],["changespendpolicy",4]],[[]],[[]],[[]],[[]],[[]],[[["txordering",4]],["ordering",4]],[[["changespendpolicy",4]],["ordering",4]],[[["coinselectionalgorithm",8]],["txbuilder",3,[["coinselectionalgorithm",8]]]],[[],["createtx",3]],[[],["bumpfee",3]],[[]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[]],[[["script",3]]],[[]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]]],[[]],[[["u32",15]]],[[["txordering",4]],["bool",15]],[[["changespendpolicy",4]],["bool",15]],[[["u64",15]]],[[["feerate",3]]],[[],["result",4,[["error",4]]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[],["u64",15]],[[],["u64",15]],[[]],[[]],[[]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[["u32",15]]],[[]],[[]],[[["txordering",4]]],[[["txordering",4]],["option",4,[["ordering",4]]]],[[["changespendpolicy",4]],["option",4,[["ordering",4]]]],[[["btreemap",3,[["string",3],["vec",3,[["usize",15]]]]],["keychainkind",4]]],[[["vec",3]]],[[["sighashtype",4]]],[[["transaction",3]]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["vec",3,[["outpoint",3]]]]],[[["i32",15]]],[[]],[[]],[[]],[[]],[[]]],"p":[[4,"Error"],[4,"KeychainKind"],[4,"Utxo"],[3,"FeeRate"],[3,"LocalUtxo"],[3,"WeightedUtxo"],[3,"TransactionDetails"],[3,"BlockTime"],[6,"MnemonicWithPassphrase"],[6,"DescriptorTemplateOut"],[6,"ExtendedDescriptor"],[8,"Vbytes"],[13,"InvalidU32Bytes"],[13,"Generic"],[13,"OutputBelowDustLimit"],[13,"MissingKeyOrigin"],[13,"Key"],[13,"SpendingPolicyRequired"],[13,"InvalidPolicyPathError"],[13,"Signer"],[13,"InvalidProgressValue"],[13,"InvalidOutpoint"],[13,"Descriptor"],[13,"AddressValidator"],[13,"Encode"],[13,"Miniscript"],[13,"Bip32"],[13,"Secp256k1"],[13,"Json"],[13,"Hex"],[13,"Psbt"],[13,"PsbtParse"],[13,"Electrum"],[13,"Esplora"],[13,"CompactFilters"],[13,"Sled"],[13,"Rusqlite"],[13,"InsufficientFunds"],[13,"InvalidNetwork"],[13,"FeeRateTooLow"],[13,"FeeTooLow"],[13,"Local"],[13,"Foreign"],[4,"Capability"],[8,"ConfigurableBlockchain"],[3,"NoopProgress"],[3,"LogProgress"],[8,"Blockchain"],[8,"Progress"],[4,"AnyBlockchain"],[4,"AnyBlockchainConfig"],[13,"Electrum"],[13,"Esplora"],[13,"CompactFilters"],[13,"Electrum"],[13,"Esplora"],[13,"CompactFilters"],[4,"CompactFiltersError"],[3,"Mempool"],[3,"BitcoinPeerConfig"],[3,"Peer"],[3,"CompactFiltersBlockchain"],[3,"CompactFiltersBlockchainConfig"],[13,"Db"],[13,"Io"],[13,"Bip158"],[13,"Time"],[13,"Global"],[3,"ElectrumBlockchain"],[3,"ElectrumBlockchainConfig"],[4,"EsploraError"],[3,"EsploraBlockchainConfig"],[3,"EsploraBlockchain"],[13,"Ureq"],[13,"UreqTransport"],[13,"HttpResponse"],[13,"Io"],[13,"Parsing"],[13,"BitcoinEncoding"],[13,"Hex"],[13,"TransactionNotFound"],[13,"HeaderHeightNotFound"],[13,"HeaderHashNotFound"],[8,"BatchDatabase"],[8,"ConfigurableDatabase"],[3,"SqliteDatabase"],[3,"SyncTime"],[8,"Database"],[8,"BatchOperations"],[4,"AnyBatch"],[4,"AnyDatabase"],[4,"AnyDatabaseConfig"],[3,"SledDbConfiguration"],[3,"SqliteDbConfiguration"],[13,"Memory"],[13,"Sled"],[13,"Sqlite"],[13,"Memory"],[13,"Sled"],[13,"Sqlite"],[13,"Memory"],[13,"Sled"],[13,"Sqlite"],[3,"MemoryDatabase"],[4,"Descriptor"],[4,"Legacy"],[4,"Segwitv0"],[3,"Miniscript"],[3,"DerivedDescriptorKey"],[8,"ScriptContext"],[8,"ExtractPolicy"],[8,"IntoWalletDescriptor"],[13,"Bare"],[13,"Pkh"],[13,"Wpkh"],[13,"Sh"],[13,"Wsh"],[4,"Error"],[13,"Key"],[13,"Policy"],[13,"InvalidDescriptorCharacter"],[13,"Bip32"],[13,"Base58"],[13,"Pk"],[13,"Miniscript"],[13,"Hex"],[4,"SatisfiableItem"],[4,"PolicyError"],[4,"Satisfaction"],[4,"BuildSatisfaction"],[3,"PkOrF"],[3,"Policy"],[3,"Condition"],[13,"Psbt"],[13,"PsbtTimelocks"],[13,"NotEnoughItemsSelected"],[13,"IndexOutOfRange"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Signature"],[13,"SignatureKey"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[3,"Bip44"],[3,"Bip44Public"],[3,"Bip49"],[3,"Bip49Public"],[3,"Bip84"],[3,"Bip84Public"],[8,"DescriptorTemplate"],[4,"KeyError"],[8,"GeneratableKey"],[4,"ScriptContextEnum"],[4,"ExtendedKey"],[4,"DescriptorSecretKey"],[4,"DescriptorPublicKey"],[8,"ExtScriptContext"],[3,"GeneratedKey"],[3,"SortedMultiVec"],[3,"DescriptorSinglePub"],[3,"DescriptorSinglePriv"],[4,"DescriptorKey"],[3,"PrivateKeyGenerateOptions"],[8,"GeneratableDefaultOptions"],[8,"IntoDescriptorKey"],[8,"DerivableKey"],[13,"SinglePub"],[13,"XPub"],[13,"SinglePriv"],[13,"XPrv"],[13,"Private"],[13,"Public"],[13,"Message"],[13,"Bip32"],[13,"Miniscript"],[4,"Language"],[4,"WordCount"],[3,"Mnemonic"],[4,"AddressIndex"],[3,"Wallet"],[3,"AddressInfo"],[8,"IsDust"],[13,"Peek"],[13,"Reset"],[4,"AddressValidatorError"],[8,"AddressValidator"],[13,"Message"],[3,"CoinSelectionResult"],[3,"LargestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[8,"CoinSelectionAlgorithm"],[3,"WalletExport"],[3,"SignerOrdering"],[4,"SignerId"],[4,"SignerError"],[3,"SignersContainer"],[3,"SignOptions"],[8,"Signer"],[13,"PkHash"],[13,"Fingerprint"],[13,"Dummy"],[4,"TxOrdering"],[4,"ChangeSpendPolicy"],[3,"TxBuilder"],[3,"CreateTx"],[3,"BumpFee"]]}\ -}'); -if (window.initSearch) {window.initSearch(searchIndex)}; \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/search.js b/static/docs-rs/bdk/nightly/latest/search.js deleted file mode 100644 index 23ebc9069b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/search.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];var TY_PRIMITIVE=itemTypes.indexOf("primitive");var TY_KEYWORD=itemTypes.indexOf("keyword");function printTab(nb){if(nb===0||nb===1||nb===2){searchState.currentTab=nb}var nb_copy=nb;onEachLazy(document.getElementById("titles").childNodes,function(elem){if(nb_copy===0){addClass(elem,"selected")}else{removeClass(elem,"selected")}nb_copy-=1});onEachLazy(document.getElementById("results").childNodes,function(elem){if(nb===0){addClass(elem,"active")}else{removeClass(elem,"active")}nb-=1})}function removeEmptyStringsFromArray(x){for(var i=0,len=x.length;i-1){var obj=searchIndex[results[i].id];obj.lev=results[i].lev;var res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType){var ar=[];for(var entry in results){if(hasOwnPropertyRustdoc(results,entry)){ar.push(results[entry])}}results=ar;var i,len,result;for(i=0,len=results.length;ib?+1:-1)}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});for(i=0,len=results.length;i"));return{name:val.substring(0,val.indexOf("<")),generics:values.split(/\s*,\s*/),}}return{name:val,generics:[],}}function checkGenerics(obj,val){var tmp_lev,elem_name;if(val.generics.length>0){if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>=val.generics.length){var elems=Object.create(null);var elength=obj[GENERICS_DATA].length;for(var x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length>0){var elems=Object.create(null);len=obj[GENERICS_DATA].length;for(x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length!==0){tmp_lev=checkGenerics(obj,val);if(tmp_lev<=MAX_LEV_DISTANCE){return tmp_lev}}}}else if(literalSearch){if((!val.generics||val.generics.length===0)&&obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){return obj[GENERICS_DATA].some(function(gen){return gen[NAME]===val.name})}return false}lev_distance=Math.min(levenshtein(obj[NAME],val.name),lev_distance);if(lev_distance<=MAX_LEV_DISTANCE){lev_distance=Math.ceil((checkGenerics(obj,val)+lev_distance)/2)}if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){var olength=obj[GENERICS_DATA].length;for(x=0;x0){var length=obj.type[INPUTS_DATA].length;for(var i=0;iOUTPUT_DATA){var ret=obj.type[OUTPUT_DATA];if(typeof ret[0]==="string"){ret=[ret]}for(var x=0,len=ret.length;xlength){return MAX_LEV_DISTANCE+1}for(var i=0;ilength){break}var lev_total=0;var aborted=false;for(var x=0;xMAX_LEV_DISTANCE){aborted=true;break}lev_total+=lev}if(!aborted){ret_lev=Math.min(ret_lev,Math.round(lev_total/clength))}}return ret_lev}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER)return true;if(filter===type)return true;var name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,}}function handleAliases(ret,query,filterCrates){var aliases=[];var crateAliases=[];if(filterCrates!==undefined){if(ALIASES[filterCrates]&&ALIASES[filterCrates][query.search]){var query_aliases=ALIASES[filterCrates][query.search];var len=query_aliases.length;for(var i=0;iMAX_RESULTS){ret.others.pop()}};onEach(aliases,pushFunc);onEach(crateAliases,pushFunc)}var nSearchWords=searchWords.length;var i,it;var ty;var fullId;var returned;var in_args;var len;if((val.charAt(0)==="\""||val.charAt(0)==="'")&&val.charAt(val.length-1)===val.charAt(0)){val=extractGenerics(val.substr(1,val.length-2));for(i=0;i")>-1){var trimmer=function(s){return s.trim()};var parts=val.split("->").map(trimmer);var input=parts[0];var inputs=input.split(",").map(trimmer).sort();for(i=0,len=inputs.length;i1?paths.length-1:1);var lev,j;for(j=0;j1){lev=checkPath(contains,paths[paths.length-1],ty);if(lev>MAX_LEV_DISTANCE){continue}else if(lev>0){lev_add=lev/10}}returned=MAX_LEV_DISTANCE+1;in_args=MAX_LEV_DISTANCE+1;var index=-1;lev=MAX_LEV_DISTANCE+1;fullId=ty.id;if(searchWords[j].indexOf(split[i])>-1||searchWords[j].indexOf(val)>-1||ty.normalizedName.indexOf(val)>-1){if(typePassesFilter(typeFilter,ty.ty)&&results[fullId]===undefined){index=ty.normalizedName.indexOf(val)}}if((lev=levenshtein(searchWords[j],val))<=MAX_LEV_DISTANCE){if(typePassesFilter(typeFilter,ty.ty)){lev+=1}else{lev=MAX_LEV_DISTANCE+1}}in_args=findArg(ty,valGenerics,false,typeFilter);returned=checkReturned(ty,valGenerics,false,typeFilter);lev+=lev_add;if(lev>0&&val.length>3&&searchWords[j].indexOf(val)>-1){if(val.length<6){lev-=1}else{lev=0}}if(in_args<=MAX_LEV_DISTANCE){if(results_in_args[fullId]===undefined){results_in_args[fullId]={id:j,index:index,lev:in_args,}}results_in_args[fullId].lev=Math.min(results_in_args[fullId].lev,in_args)}if(returned<=MAX_LEV_DISTANCE){if(results_returned[fullId]===undefined){results_returned[fullId]={id:j,index:index,lev:returned,}}results_returned[fullId].lev=Math.min(results_returned[fullId].lev,returned)}if(typePassesFilter(typeFilter,ty.ty)&&(index!==-1||lev<=MAX_LEV_DISTANCE)){if(index!==-1&&paths.length<2){lev=0}if(results[fullId]===undefined){results[fullId]={id:j,index:index,lev:lev,}}results[fullId].lev=Math.min(results[fullId].lev,lev)}}}var ret={"in_args":sortResults(results_in_args,true),"returned":sortResults(results_returned,true),"others":sortResults(results,false),};handleAliases(ret,query,filterCrates);return ret}function validateResult(name,path,keys,parent){for(var i=0,len=keys.length;i-1||path.indexOf(keys[i])>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(keys[i])>-1)||levenshtein(name,keys[i])<=MAX_LEV_DISTANCE)){return false}}return true}function getQuery(raw){var matches,type,query;query=raw;matches=query.match(/^(fn|mod|struct|enum|trait|type|const|macro)\s*:\s*/i);if(matches){type=matches[1].replace(/^const$/,"constant");query=query.substring(matches[0].length)}return{raw:raw,query:query,type:type,id:query+type}}function nextTab(direction){var next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){var target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#titles > button").item(searchState.currentTab);if(target){target.focus()}}function buildHrefAndPath(item){var displayPath;var href;var type=itemTypes[item.ty];var name=item.name;var path=item.path;if(type==="mod"){displayPath=path+"::";href=window.rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="primitive"||type==="keyword"){displayPath="";href=window.rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=window.rootPath+name+"/index.html"}else if(item.parent!==undefined){var myparent=item.parent;var anchor="#"+type+"."+name;var parentType=itemTypes[myparent.ty];var pageType=parentType;var pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){var enumNameIdx=item.path.lastIndexOf("::");var enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=window.rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=window.rootPath+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function escape(content){var h1=document.createElement("h1");h1.textContent=content;return h1.innerHTML}function pathSplitter(path){var tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){var extraClass="";if(display===true){extraClass=" active"}var output=document.createElement("div");var duplicates={};var length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(function(item){if(item.is_alias!==true){if(duplicates[item.fullPath]){return}duplicates[item.fullPath]=true}var name=item.name;var type=itemTypes[item.ty];length+=1;var extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}var link=document.createElement("a");link.className="result-"+type;link.href=item.href;var wrapper=document.createElement("div");var resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){var alias=document.createElement("span");alias.className="alias";var bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",item.displayPath+""+name+extra+"");wrapper.appendChild(resultName);var description=document.createElement("div");description.className="desc";var spanDesc=document.createElement("span");spanDesc.insertAdjacentHTML("beforeend",item.desc);description.appendChild(spanDesc);wrapper.appendChild(description);link.appendChild(wrapper);output.appendChild(link)})}else{output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first){var search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true"&&(!search.firstChild||search.firstChild.innerText!==searchState.loadingText))){var elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}var query=getQuery(searchState.input.value);currentResults=query.id;var ret_others=addTab(results.others,query);var ret_in_args=addTab(results.in_args,query,false);var ret_returned=addTab(results.returned,query,false);var currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}var output="

Results for "+escape(query.query)+(query.type?" (type: "+escape(query.type)+")":"")+"

"+"
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
";var resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;search.appendChild(resultsElem);searchState.focusedByTab=[null,null,null];searchState.showResults(search);var elems=document.getElementById("titles").childNodes;elems[0].onclick=function(){printTab(0)};elems[1].onclick=function(){printTab(1)};elems[2].onclick=function(){printTab(2)};printTab(currentTab)}function execSearch(query,searchWords,filterCrates){function getSmallest(arrays,positions,notDuplicates){var start=null;for(var it=0,len=positions.length;itpositions[it]&&(start===null||start>arrays[it][positions[it]].lev)&&!notDuplicates[arrays[it][positions[it]].fullPath]){start=arrays[it][positions[it]].lev}}return start}function mergeArrays(arrays){var ret=[];var positions=[];var notDuplicates={};for(var x=0,arrays_len=arrays.length;xpositions[x]&&arrays[x][positions[x]].lev===smallest&&!notDuplicates[arrays[x][positions[x]].fullPath]){ret.push(arrays[x][positions[x]]);notDuplicates[arrays[x][positions[x]].fullPath]=true;positions[x]+=1}}}return ret}function tokenizeQuery(raw){var i,matched;var l=raw.length;var depth=0;var nextAngle=/(<|>)/g;var ret=[];var start=0;for(i=0;i'){depth+=1}break;case">":if(depth>0){depth-=1}break;case",":if(depth===0){ret.push(raw.substring(start,i));start=i+1}break}}if(start!==i){ret.push(raw.substring(start,i))}return ret}var queries=tokenizeQuery(query.raw);var results={"in_args":[],"returned":[],"others":[],};for(var i=0,len=queries.length;i1){return{"in_args":mergeArrays(results.in_args),"returned":mergeArrays(results.returned),"others":mergeArrays(results.others),}}return{"in_args":results.in_args[0],"returned":results.returned[0],"others":results.others[0],}}function getFilterCrates(){var elem=document.getElementById("crate-search");if(elem&&elem.value!=="All crates"&&hasOwnPropertyRustdoc(rawSearchIndex,elem.value)){return elem.value}return undefined}function search(e,forced){var params=searchState.getQueryStringParams();var query=getQuery(searchState.input.value.trim());if(e){e.preventDefault()}if(query.query.length===0){return}if(!forced&&query.id===currentResults){if(query.query.length>0){searchState.putBackSearch(searchState.input)}return}searchState.title="Results for "+query.query+" - Rust";if(searchState.browserSupportsHistoryApi()){var newURL=getNakedUrl()+"?search="+encodeURIComponent(query.raw)+window.location.hash;if(!history.state&&!params.search){history.pushState(query,"",newURL)}else{history.replaceState(query,"",newURL)}}var filterCrates=getFilterCrates();showResults(execSearch(query,index,filterCrates),params.go_to_first)}function buildIndex(rawSearchIndex){searchIndex=[];var searchWords=[];var i,word;var currentIndex=0;var id=0;for(var crate in rawSearchIndex){if(!hasOwnPropertyRustdoc(rawSearchIndex,crate)){continue}var crateSize=0;searchWords.push(crate);var crateRow={crate:crate,ty:1,name:crate,path:"",desc:rawSearchIndex[crate].doc,parent:undefined,type:null,id:id,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),};id+=1;searchIndex.push(crateRow);currentIndex+=1;var itemTypes=rawSearchIndex[crate].t;var itemNames=rawSearchIndex[crate].n;var itemPaths=rawSearchIndex[crate].q;var itemDescs=rawSearchIndex[crate].d;var itemParentIdxs=rawSearchIndex[crate].i;var itemFunctionSearchTypes=rawSearchIndex[crate].f;var paths=rawSearchIndex[crate].p;var aliases=rawSearchIndex[crate].a;var len=paths.length;for(i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:itemFunctionSearchTypes[i],id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){ALIASES[crate]={};var j,local_aliases;for(var alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}if(!hasOwnPropertyRustdoc(ALIASES[crate],alias_name)){ALIASES[crate][alias_name]=[]}local_aliases=aliases[alias_name];for(j=0,len=local_aliases.length;j0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=function(){var qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}index=buildIndex(rawSearchIndex);registerSearchEvents();if(searchState.getQueryStringParams().search){search()}};if(window.searchIndex!==undefined){initSearch(window.searchIndex)}})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/settings.css b/static/docs-rs/bdk/nightly/latest/settings.css deleted file mode 100644 index 670986588e..0000000000 --- a/static/docs-rs/bdk/nightly/latest/settings.css +++ /dev/null @@ -1 +0,0 @@ -.setting-line{padding:5px;position:relative;}.setting-line>div{display:inline-block;vertical-align:top;font-size:17px;padding-top:2px;}.setting-line>.title{font-size:19px;width:100%;max-width:none;border-bottom:1px solid;}.toggle{position:relative;display:inline-block;width:45px;height:27px;margin-right:20px;}.toggle input{opacity:0;position:absolute;}.select-wrapper{float:right;position:relative;height:27px;min-width:25%;}.select-wrapper select{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:none;border:2px solid #ccc;padding-right:28px;width:100%;}.select-wrapper img{pointer-events:none;position:absolute;right:0;bottom:0;background:#ccc;height:100%;width:28px;padding:0px 4px;}.select-wrapper select option{color:initial;}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.3s;transition:.3s;}.slider:before{position:absolute;content:"";height:19px;width:19px;left:4px;bottom:4px;background-color:white;-webkit-transition:.3s;transition:.3s;}input:checked+.slider{background-color:#2196F3;}input:focus+.slider{box-shadow:0 0 0 2px #0a84ff,0 0 0 6px rgba(10,132,255,0.3);}input:checked+.slider:before{-webkit-transform:translateX(19px);-ms-transform:translateX(19px);transform:translateX(19px);}.setting-line>.sub-settings{padding-left:42px;width:100%;display:block;} \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/settings.html b/static/docs-rs/bdk/nightly/latest/settings.html deleted file mode 100644 index 7fa2382cc1..0000000000 --- a/static/docs-rs/bdk/nightly/latest/settings.html +++ /dev/null @@ -1,5 +0,0 @@ -Rustdoc settings -

Rustdoc settings

Theme preferences
Use system theme
Preferred dark theme
Preferred light theme
-
Auto-hide item contents for large items.
Auto-hide item methods' documentation
Auto-hide trait implementation documentation
Directly go to item in search if there is only one result
Show line numbers on code examples
Disable keyboard shortcuts
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/settings.js b/static/docs-rs/bdk/nightly/latest/settings.js deleted file mode 100644 index b4d6fdcd78..0000000000 --- a/static/docs-rs/bdk/nightly/latest/settings.js +++ /dev/null @@ -1 +0,0 @@ -(function(){function changeSetting(settingName,value){updateLocalStorage("rustdoc-"+settingName,value);switch(settingName){case"preferred-dark-theme":case"preferred-light-theme":case"use-system-theme":updateSystemTheme();break}}function handleKey(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey){return}switch(getVirtualKey(ev)){case"Enter":case"Return":case"Space":ev.target.checked=!ev.target.checked;ev.preventDefault();break}}function setEvents(){onEachLazy(document.getElementsByClassName("slider"),function(elem){var toggle=elem.previousElementSibling;var settingId=toggle.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=function(){changeSetting(this.id,this.checked)};toggle.onkeyup=handleKey;toggle.onkeyrelease=handleKey});onEachLazy(document.getElementsByClassName("select-wrapper"),function(elem){var select=elem.getElementsByTagName("select")[0];var settingId=select.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){select.value=settingValue}select.onchange=function(){changeSetting(this.id,this.value)}})}window.addEventListener("DOMContentLoaded",setEvents)})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/source-files.js b/static/docs-rs/bdk/nightly/latest/source-files.js deleted file mode 100644 index 0b663f217c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/source-files.js +++ /dev/null @@ -1,3 +0,0 @@ -var N = null;var sourcesIndex = {}; -sourcesIndex["bdk"] = {"name":"","dirs":[{"name":"blockchain","dirs":[{"name":"compact_filters","files":["mod.rs","peer.rs","store.rs","sync.rs"]},{"name":"esplora","files":["api.rs","mod.rs","ureq.rs"]}],"files":["any.rs","electrum.rs","mod.rs","script_sync.rs"]},{"name":"database","files":["any.rs","keyvalue.rs","memory.rs","mod.rs","sqlite.rs"]},{"name":"descriptor","files":["checksum.rs","derived.rs","dsl.rs","error.rs","mod.rs","policy.rs","template.rs"]},{"name":"keys","files":["bip39.rs","mod.rs"]},{"name":"psbt","files":["mod.rs"]},{"name":"testutils","files":["mod.rs"]},{"name":"wallet","files":["address_validator.rs","coin_selection.rs","export.rs","mod.rs","signer.rs","time.rs","tx_builder.rs","utils.rs"]}],"files":["error.rs","lib.rs","types.rs"]}; -createSourceSidebar(); diff --git a/static/docs-rs/bdk/nightly/latest/source-script.js b/static/docs-rs/bdk/nightly/latest/source-script.js deleted file mode 100644 index 09515e07cf..0000000000 --- a/static/docs-rs/bdk/nightly/latest/source-script.js +++ /dev/null @@ -1 +0,0 @@ -(function(){function getCurrentFilePath(){var parts=window.location.pathname.split("/");var rootPathParts=window.rootPath.split("/");for(var i=0,len=rootPathParts.length;i"){sidebar.classList.add("expanded");child.innerText="<";updateLocalStorage("rustdoc-source-sidebar-show","true")}else{sidebar.classList.remove("expanded");child.innerText=">";updateLocalStorage("rustdoc-source-sidebar-show","false")}}function createSidebarToggle(){var sidebarToggle=document.createElement("div");sidebarToggle.id="sidebar-toggle";sidebarToggle.onclick=toggleSidebar;var inner=document.createElement("div");if(getCurrentValue("rustdoc-source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}sidebarToggle.appendChild(inner);return sidebarToggle}function createSourceSidebar(){if(!window.rootPath.endsWith("/")){window.rootPath+="/"}var container=document.querySelector("nav.sidebar");var sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);var sidebar=document.createElement("div");sidebar.id="source-sidebar";if(getCurrentValue("rustdoc-source-sidebar-show")!=="true"){container.classList.remove("expanded")}else{container.classList.add("expanded")}var currentFile=getCurrentFilePath();var hasFoundFile=false;var title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(sourcesIndex).forEach(function(key){sourcesIndex[key].name=key;hasFoundFile=createDirEntry(sourcesIndex[key],sidebar,"",currentFile,hasFoundFile)});container.insertBefore(sidebar,document.querySelector(".sidebar-logo").nextSibling);var selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}var lineNumbersRegex=/^#?(\d+)(?:-(\d+))?$/;function highlightSourceLines(scrollTo,match){if(typeof match==="undefined"){match=window.location.hash.match(lineNumbersRegex)}if(!match){return}var from=parseInt(match[1],10);var to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(tocur_line_id){var tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",function(){var match=window.location.hash.match(lineNumbersRegex);if(match){return highlightSourceLines(false,match)}});onEachLazy(document.getElementsByClassName("line-numbers"),function(el){el.addEventListener("click",handleSourceHighlight)});highlightSourceLines(true);window.createSourceSidebar=createSourceSidebar})() \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/any.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/any.rs.html deleted file mode 100644 index fe51f45be8..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/any.rs.html +++ /dev/null @@ -1,511 +0,0 @@ -any.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Runtime-checked blockchain types
-//!
-//! This module provides the implementation of [`AnyBlockchain`] which allows switching the
-//! inner [`Blockchain`] type at runtime.
-//!
-//! ## Example
-//!
-//! In this example both `wallet_electrum` and `wallet_esplora` have the same type of
-//! `Wallet<AnyBlockchain, MemoryDatabase>`. This means that they could both, for instance, be
-//! assigned to a struct member.
-//!
-//! ```no_run
-//! # use bitcoin::Network;
-//! # use bdk::blockchain::*;
-//! # use bdk::database::MemoryDatabase;
-//! # use bdk::Wallet;
-//! # #[cfg(feature = "electrum")]
-//! # {
-//! let electrum_blockchain = ElectrumBlockchain::from(electrum_client::Client::new("...")?);
-//! let wallet_electrum: Wallet<AnyBlockchain, _> = Wallet::new(
-//!     "...",
-//!     None,
-//!     Network::Testnet,
-//!     MemoryDatabase::default(),
-//!     electrum_blockchain.into(),
-//! )?;
-//! # }
-//!
-//! # #[cfg(all(feature = "esplora", feature = "ureq"))]
-//! # {
-//! let esplora_blockchain = EsploraBlockchain::new("...", 20);
-//! let wallet_esplora: Wallet<AnyBlockchain, _> = Wallet::new(
-//!     "...",
-//!     None,
-//!     Network::Testnet,
-//!     MemoryDatabase::default(),
-//!     esplora_blockchain.into(),
-//! )?;
-//! # }
-//!
-//! # Ok::<(), bdk::Error>(())
-//! ```
-//!
-//! When paired with the use of [`ConfigurableBlockchain`], it allows creating wallets with any
-//! blockchain type supported using a single line of code:
-//!
-//! ```no_run
-//! # use bitcoin::Network;
-//! # use bdk::blockchain::*;
-//! # use bdk::database::MemoryDatabase;
-//! # use bdk::Wallet;
-//! # #[cfg(all(feature = "esplora", feature = "ureq"))]
-//! # {
-//! let config = serde_json::from_str("...")?;
-//! let blockchain = AnyBlockchain::from_config(&config)?;
-//! let wallet = Wallet::new(
-//!     "...",
-//!     None,
-//!     Network::Testnet,
-//!     MemoryDatabase::default(),
-//!     blockchain,
-//! )?;
-//! # }
-//! # Ok::<(), bdk::Error>(())
-//! ```
-
-use super::*;
-
-macro_rules! impl_from {
-    ( $from:ty, $to:ty, $variant:ident, $( $cfg:tt )* ) => {
-        $( $cfg )*
-        impl From<$from> for $to {
-            fn from(inner: $from) -> Self {
-                <$to>::$variant(inner)
-            }
-        }
-    };
-}
-
-macro_rules! impl_inner_method {
-    ( $self:expr, $name:ident $(, $args:expr)* ) => {
-        match $self {
-            #[cfg(feature = "electrum")]
-            AnyBlockchain::Electrum(inner) => inner.$name( $($args, )* ),
-            #[cfg(feature = "esplora")]
-            AnyBlockchain::Esplora(inner) => inner.$name( $($args, )* ),
-            #[cfg(feature = "compact_filters")]
-            AnyBlockchain::CompactFilters(inner) => inner.$name( $($args, )* ),
-            #[cfg(feature = "rpc")]
-            AnyBlockchain::Rpc(inner) => inner.$name( $($args, )* ),
-        }
-    }
-}
-
-/// Type that can contain any of the [`Blockchain`] types defined by the library
-///
-/// It allows switching backend at runtime
-///
-/// See [this module](crate::blockchain::any)'s documentation for a usage example.
-pub enum AnyBlockchain {
-    #[cfg(feature = "electrum")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "electrum")))]
-    /// Electrum client
-    Electrum(electrum::ElectrumBlockchain),
-    #[cfg(feature = "esplora")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "esplora")))]
-    /// Esplora client
-    Esplora(esplora::EsploraBlockchain),
-    #[cfg(feature = "compact_filters")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "compact_filters")))]
-    /// Compact filters client
-    CompactFilters(compact_filters::CompactFiltersBlockchain),
-    #[cfg(feature = "rpc")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "rpc")))]
-    /// RPC client
-    Rpc(rpc::RpcBlockchain),
-}
-
-#[maybe_async]
-impl Blockchain for AnyBlockchain {
-    fn get_capabilities(&self) -> HashSet<Capability> {
-        maybe_await!(impl_inner_method!(self, get_capabilities))
-    }
-
-    fn setup<D: BatchDatabase, P: 'static + Progress>(
-        &self,
-        database: &mut D,
-        progress_update: P,
-    ) -> Result<(), Error> {
-        maybe_await!(impl_inner_method!(self, setup, database, progress_update))
-    }
-    fn sync<D: BatchDatabase, P: 'static + Progress>(
-        &self,
-        database: &mut D,
-        progress_update: P,
-    ) -> Result<(), Error> {
-        maybe_await!(impl_inner_method!(self, sync, database, progress_update))
-    }
-
-    fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        maybe_await!(impl_inner_method!(self, get_tx, txid))
-    }
-    fn broadcast(&self, tx: &Transaction) -> Result<(), Error> {
-        maybe_await!(impl_inner_method!(self, broadcast, tx))
-    }
-
-    fn get_height(&self) -> Result<u32, Error> {
-        maybe_await!(impl_inner_method!(self, get_height))
-    }
-    fn estimate_fee(&self, target: usize) -> Result<FeeRate, Error> {
-        maybe_await!(impl_inner_method!(self, estimate_fee, target))
-    }
-}
-
-impl_from!(electrum::ElectrumBlockchain, AnyBlockchain, Electrum, #[cfg(feature = "electrum")]);
-impl_from!(esplora::EsploraBlockchain, AnyBlockchain, Esplora, #[cfg(feature = "esplora")]);
-impl_from!(compact_filters::CompactFiltersBlockchain, AnyBlockchain, CompactFilters, #[cfg(feature = "compact_filters")]);
-impl_from!(rpc::RpcBlockchain, AnyBlockchain, Rpc, #[cfg(feature = "rpc")]);
-
-/// Type that can contain any of the blockchain configurations defined by the library
-///
-/// This allows storing a single configuration that can be loaded into an [`AnyBlockchain`]
-/// instance. Wallets that plan to offer users the ability to switch blockchain backend at runtime
-/// will find this particularly useful.
-///
-/// This type can be serialized from a JSON object like:
-///
-/// ```
-/// # #[cfg(feature = "electrum")]
-/// # {
-/// use bdk::blockchain::{electrum::ElectrumBlockchainConfig, AnyBlockchainConfig};
-/// let config: AnyBlockchainConfig = serde_json::from_str(
-///     r#"{
-///    "type" : "electrum",
-///    "url" : "ssl://electrum.blockstream.info:50002",
-///    "retry": 2,
-///    "stop_gap": 20
-/// }"#,
-/// )
-/// .unwrap();
-/// assert_eq!(
-///     config,
-///     AnyBlockchainConfig::Electrum(ElectrumBlockchainConfig {
-///         url: "ssl://electrum.blockstream.info:50002".into(),
-///         retry: 2,
-///         socks5: None,
-///         timeout: None,
-///         stop_gap: 20,
-///     })
-/// );
-/// # }
-/// ```
-#[derive(Debug, serde::Serialize, serde::Deserialize, Clone, PartialEq)]
-#[serde(tag = "type", rename_all = "snake_case")]
-pub enum AnyBlockchainConfig {
-    #[cfg(feature = "electrum")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "electrum")))]
-    /// Electrum client
-    Electrum(electrum::ElectrumBlockchainConfig),
-    #[cfg(feature = "esplora")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "esplora")))]
-    /// Esplora client
-    Esplora(esplora::EsploraBlockchainConfig),
-    #[cfg(feature = "compact_filters")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "compact_filters")))]
-    /// Compact filters client
-    CompactFilters(compact_filters::CompactFiltersBlockchainConfig),
-    #[cfg(feature = "rpc")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "rpc")))]
-    /// RPC client configuration
-    Rpc(rpc::RpcConfig),
-}
-
-impl ConfigurableBlockchain for AnyBlockchain {
-    type Config = AnyBlockchainConfig;
-
-    fn from_config(config: &Self::Config) -> Result<Self, Error> {
-        Ok(match config {
-            #[cfg(feature = "electrum")]
-            AnyBlockchainConfig::Electrum(inner) => {
-                AnyBlockchain::Electrum(electrum::ElectrumBlockchain::from_config(inner)?)
-            }
-            #[cfg(feature = "esplora")]
-            AnyBlockchainConfig::Esplora(inner) => {
-                AnyBlockchain::Esplora(esplora::EsploraBlockchain::from_config(inner)?)
-            }
-            #[cfg(feature = "compact_filters")]
-            AnyBlockchainConfig::CompactFilters(inner) => AnyBlockchain::CompactFilters(
-                compact_filters::CompactFiltersBlockchain::from_config(inner)?,
-            ),
-            #[cfg(feature = "rpc")]
-            AnyBlockchainConfig::Rpc(inner) => {
-                AnyBlockchain::Rpc(rpc::RpcBlockchain::from_config(inner)?)
-            }
-        })
-    }
-}
-
-impl_from!(electrum::ElectrumBlockchainConfig, AnyBlockchainConfig, Electrum, #[cfg(feature = "electrum")]);
-impl_from!(esplora::EsploraBlockchainConfig, AnyBlockchainConfig, Esplora, #[cfg(feature = "esplora")]);
-impl_from!(compact_filters::CompactFiltersBlockchainConfig, AnyBlockchainConfig, CompactFilters, #[cfg(feature = "compact_filters")]);
-impl_from!(rpc::RpcConfig, AnyBlockchainConfig, Rpc, #[cfg(feature = "rpc")]);
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/mod.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/mod.rs.html deleted file mode 100644 index fa93555e06..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/mod.rs.html +++ /dev/null @@ -1,1141 +0,0 @@ -mod.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Compact Filters
-//!
-//! This module contains a multithreaded implementation of an [`Blockchain`] backend that
-//! uses BIP157 (aka "Neutrino") to populate the wallet's [database](crate::database::Database)
-//! by downloading compact filters from the P2P network.
-//!
-//! Since there are currently very few peers "in the wild" that advertise the required service
-//! flag, this implementation requires that one or more known peers are provided by the user.
-//! No dns or other kinds of peer discovery are done internally.
-//!
-//! Moreover, this module doesn't currently support detecting and resolving conflicts between
-//! messages received by different peers. Thus, it's recommended to use this module by only
-//! connecting to a single peer at a time, optionally by opening multiple connections if it's
-//! desirable to use multiple threads at once to sync in parallel.
-//!
-//! This is an **EXPERIMENTAL** feature, API and other major changes are expected.
-//!
-//! ## Example
-//!
-//! ```no_run
-//! # use std::sync::Arc;
-//! # use bitcoin::*;
-//! # use bdk::*;
-//! # use bdk::blockchain::compact_filters::*;
-//! let num_threads = 4;
-//!
-//! let mempool = Arc::new(Mempool::default());
-//! let peers = (0..num_threads)
-//!     .map(|_| {
-//!         Peer::connect(
-//!             "btcd-mainnet.lightning.computer:8333",
-//!             Arc::clone(&mempool),
-//!             Network::Bitcoin,
-//!         )
-//!     })
-//!     .collect::<Result<_, _>>()?;
-//! let blockchain = CompactFiltersBlockchain::new(peers, "./wallet-filters", Some(500_000))?;
-//! # Ok::<(), CompactFiltersError>(())
-//! ```
-
-use std::collections::HashSet;
-use std::fmt;
-use std::path::Path;
-use std::sync::atomic::{AtomicUsize, Ordering};
-use std::sync::{Arc, Mutex};
-
-#[allow(unused_imports)]
-use log::{debug, error, info, trace};
-
-use bitcoin::network::message_blockdata::Inventory;
-use bitcoin::{Network, OutPoint, Transaction, Txid};
-
-use rocksdb::{Options, SliceTransform, DB};
-
-mod peer;
-mod store;
-mod sync;
-
-use super::{Blockchain, Capability, ConfigurableBlockchain, Progress};
-use crate::database::{BatchDatabase, BatchOperations, DatabaseUtils};
-use crate::error::Error;
-use crate::types::{KeychainKind, LocalUtxo, TransactionDetails};
-use crate::{BlockTime, FeeRate};
-
-use peer::*;
-use store::*;
-use sync::*;
-
-pub use peer::{Mempool, Peer};
-
-const SYNC_HEADERS_COST: f32 = 1.0;
-const SYNC_FILTERS_COST: f32 = 11.6 * 1_000.0;
-const PROCESS_BLOCKS_COST: f32 = 20_000.0;
-
-/// Structure implementing the required blockchain traits
-///
-/// ## Example
-/// See the [`blockchain::compact_filters`](crate::blockchain::compact_filters) module for a usage example.
-#[derive(Debug)]
-pub struct CompactFiltersBlockchain {
-    peers: Vec<Arc<Peer>>,
-    headers: Arc<ChainStore<Full>>,
-    skip_blocks: Option<usize>,
-}
-
-impl CompactFiltersBlockchain {
-    /// Construct a new instance given a list of peers, a path to store headers and block
-    /// filters downloaded during the sync and optionally a number of blocks to ignore starting
-    /// from the genesis while scanning for the wallet's outputs.
-    ///
-    /// For each [`Peer`] specified a new thread will be spawned to download and verify the filters
-    /// in parallel. It's currently recommended to only connect to a single peer to avoid
-    /// inconsistencies in the data returned, optionally with multiple connections in parallel to
-    /// speed-up the sync process.
-    pub fn new<P: AsRef<Path>>(
-        peers: Vec<Peer>,
-        storage_dir: P,
-        skip_blocks: Option<usize>,
-    ) -> Result<Self, CompactFiltersError> {
-        if peers.is_empty() {
-            return Err(CompactFiltersError::NoPeers);
-        }
-
-        let mut opts = Options::default();
-        opts.create_if_missing(true);
-        opts.set_prefix_extractor(SliceTransform::create_fixed_prefix(16));
-
-        let network = peers[0].get_network();
-
-        let cfs = DB::list_cf(&opts, &storage_dir).unwrap_or_else(|_| vec!["default".to_string()]);
-        let db = DB::open_cf(&opts, &storage_dir, &cfs)?;
-        let headers = Arc::new(ChainStore::new(db, network)?);
-
-        // try to recover partial snapshots
-        for cf_name in &cfs {
-            if !cf_name.starts_with("_headers:") {
-                continue;
-            }
-
-            info!("Trying to recover: {:?}", cf_name);
-            headers.recover_snapshot(cf_name)?;
-        }
-
-        Ok(CompactFiltersBlockchain {
-            peers: peers.into_iter().map(Arc::new).collect(),
-            headers,
-            skip_blocks,
-        })
-    }
-
-    /// Process a transaction by looking for inputs that spend from a UTXO in the database or
-    /// outputs that send funds to a know script_pubkey.
-    fn process_tx<D: BatchDatabase>(
-        &self,
-        database: &mut D,
-        tx: &Transaction,
-        height: Option<u32>,
-        timestamp: Option<u64>,
-        internal_max_deriv: &mut Option<u32>,
-        external_max_deriv: &mut Option<u32>,
-    ) -> Result<(), Error> {
-        let mut updates = database.begin_batch();
-
-        let mut incoming: u64 = 0;
-        let mut outgoing: u64 = 0;
-
-        let mut inputs_sum: u64 = 0;
-        let mut outputs_sum: u64 = 0;
-
-        // look for our own inputs
-        for (i, input) in tx.input.iter().enumerate() {
-            if let Some(previous_output) = database.get_previous_output(&input.previous_output)? {
-                inputs_sum += previous_output.value;
-
-                if database.is_mine(&previous_output.script_pubkey)? {
-                    outgoing += previous_output.value;
-
-                    debug!("{} input #{} is mine, removing from utxo", tx.txid(), i);
-                    updates.del_utxo(&input.previous_output)?;
-                }
-            }
-        }
-
-        for (i, output) in tx.output.iter().enumerate() {
-            // to compute the fees later
-            outputs_sum += output.value;
-
-            // this output is ours, we have a path to derive it
-            if let Some((keychain, child)) =
-                database.get_path_from_script_pubkey(&output.script_pubkey)?
-            {
-                debug!("{} output #{} is mine, adding utxo", tx.txid(), i);
-                updates.set_utxo(&LocalUtxo {
-                    outpoint: OutPoint::new(tx.txid(), i as u32),
-                    txout: output.clone(),
-                    keychain,
-                })?;
-                incoming += output.value;
-
-                if keychain == KeychainKind::Internal
-                    && (internal_max_deriv.is_none() || child > internal_max_deriv.unwrap_or(0))
-                {
-                    *internal_max_deriv = Some(child);
-                } else if keychain == KeychainKind::External
-                    && (external_max_deriv.is_none() || child > external_max_deriv.unwrap_or(0))
-                {
-                    *external_max_deriv = Some(child);
-                }
-            }
-        }
-
-        if incoming > 0 || outgoing > 0 {
-            let tx = TransactionDetails {
-                txid: tx.txid(),
-                transaction: Some(tx.clone()),
-                received: incoming,
-                sent: outgoing,
-                confirmation_time: BlockTime::new(height, timestamp),
-                verified: height.is_some(),
-                fee: Some(inputs_sum.saturating_sub(outputs_sum)),
-            };
-
-            info!("Saving tx {}", tx.txid);
-            updates.set_tx(&tx)?;
-        }
-
-        database.commit_batch(updates)?;
-
-        Ok(())
-    }
-}
-
-impl Blockchain for CompactFiltersBlockchain {
-    fn get_capabilities(&self) -> HashSet<Capability> {
-        vec![Capability::FullHistory].into_iter().collect()
-    }
-
-    #[allow(clippy::mutex_atomic)] // Mutex is easier to understand than a CAS loop.
-    fn setup<D: BatchDatabase, P: 'static + Progress>(
-        &self,
-        database: &mut D,
-        progress_update: P,
-    ) -> Result<(), Error> {
-        let first_peer = &self.peers[0];
-
-        let skip_blocks = self.skip_blocks.unwrap_or(0);
-
-        let cf_sync = Arc::new(CfSync::new(Arc::clone(&self.headers), skip_blocks, 0x00)?);
-
-        let initial_height = self.headers.get_height()?;
-        let total_bundles = (first_peer.get_version().start_height as usize)
-            .checked_sub(skip_blocks)
-            .map(|x| x / 1000)
-            .unwrap_or(0)
-            + 1;
-        let expected_bundles_to_sync = total_bundles.saturating_sub(cf_sync.pruned_bundles()?);
-
-        let headers_cost = (first_peer.get_version().start_height as usize)
-            .saturating_sub(initial_height) as f32
-            * SYNC_HEADERS_COST;
-        let filters_cost = expected_bundles_to_sync as f32 * SYNC_FILTERS_COST;
-
-        let total_cost = headers_cost + filters_cost + PROCESS_BLOCKS_COST;
-
-        if let Some(snapshot) = sync::sync_headers(
-            Arc::clone(first_peer),
-            Arc::clone(&self.headers),
-            |new_height| {
-                let local_headers_cost =
-                    new_height.saturating_sub(initial_height) as f32 * SYNC_HEADERS_COST;
-                progress_update.update(
-                    local_headers_cost / total_cost * 100.0,
-                    Some(format!("Synced headers to {}", new_height)),
-                )
-            },
-        )? {
-            if snapshot.work()? > self.headers.work()? {
-                info!("Applying snapshot with work: {}", snapshot.work()?);
-                self.headers.apply_snapshot(snapshot)?;
-            }
-        }
-
-        let synced_height = self.headers.get_height()?;
-        let buried_height = synced_height.saturating_sub(sync::BURIED_CONFIRMATIONS);
-        info!("Synced headers to height: {}", synced_height);
-
-        cf_sync.prepare_sync(Arc::clone(first_peer))?;
-
-        let all_scripts = Arc::new(
-            database
-                .iter_script_pubkeys(None)?
-                .into_iter()
-                .map(|s| s.to_bytes())
-                .collect::<Vec<_>>(),
-        );
-
-        #[allow(clippy::mutex_atomic)]
-        let last_synced_block = Arc::new(Mutex::new(synced_height));
-
-        let synced_bundles = Arc::new(AtomicUsize::new(0));
-        let progress_update = Arc::new(Mutex::new(progress_update));
-
-        let mut threads = Vec::with_capacity(self.peers.len());
-        for peer in &self.peers {
-            let cf_sync = Arc::clone(&cf_sync);
-            let peer = Arc::clone(peer);
-            let headers = Arc::clone(&self.headers);
-            let all_scripts = Arc::clone(&all_scripts);
-            let last_synced_block = Arc::clone(&last_synced_block);
-            let progress_update = Arc::clone(&progress_update);
-            let synced_bundles = Arc::clone(&synced_bundles);
-
-            let thread = std::thread::spawn(move || {
-                cf_sync.capture_thread_for_sync(
-                    peer,
-                    |block_hash, filter| {
-                        if !filter
-                            .match_any(block_hash, &mut all_scripts.iter().map(AsRef::as_ref))?
-                        {
-                            return Ok(false);
-                        }
-
-                        let block_height = headers.get_height_for(block_hash)?.unwrap_or(0);
-                        let saved_correct_block = matches!(headers.get_full_block(block_height)?, Some(block) if &block.block_hash() == block_hash);
-
-                        if saved_correct_block {
-                            Ok(false)
-                        } else {
-                            let mut last_synced_block = last_synced_block.lock().unwrap();
-
-                            // If we download a block older than `last_synced_block`, we update it so that
-                            // we know to delete and re-process all txs starting from that height
-                            if block_height < *last_synced_block {
-                                *last_synced_block = block_height;
-                            }
-
-                            Ok(true)
-                        }
-                    },
-                    |index| {
-                        let synced_bundles = synced_bundles.fetch_add(1, Ordering::SeqCst);
-                        let local_filters_cost = synced_bundles as f32 * SYNC_FILTERS_COST;
-                        progress_update.lock().unwrap().update(
-                            (headers_cost + local_filters_cost) / total_cost * 100.0,
-                            Some(format!(
-                                "Synced filters {} - {}",
-                                index * 1000 + 1,
-                                (index + 1) * 1000
-                            )),
-                        )
-                    },
-                )
-            });
-
-            threads.push(thread);
-        }
-
-        for t in threads {
-            t.join().unwrap()?;
-        }
-
-        progress_update.lock().unwrap().update(
-            (headers_cost + filters_cost) / total_cost * 100.0,
-            Some("Processing downloaded blocks and mempool".into()),
-        )?;
-
-        // delete all txs newer than last_synced_block
-        let last_synced_block = *last_synced_block.lock().unwrap();
-        log::debug!(
-            "Dropping transactions newer than `last_synced_block` = {}",
-            last_synced_block
-        );
-        let mut updates = database.begin_batch();
-        for details in database.iter_txs(false)? {
-            match details.confirmation_time {
-                Some(c) if (c.height as usize) < last_synced_block => continue,
-                _ => updates.del_tx(&details.txid, false)?,
-            };
-        }
-        database.commit_batch(updates)?;
-
-        match first_peer.ask_for_mempool() {
-            Err(CompactFiltersError::PeerBloomDisabled) => {
-                log::warn!("Peer has BLOOM disabled, we can't ask for the mempool")
-            }
-            e => e?,
-        };
-
-        let mut internal_max_deriv = None;
-        let mut external_max_deriv = None;
-
-        for (height, block) in self.headers.iter_full_blocks()? {
-            for tx in &block.txdata {
-                self.process_tx(
-                    database,
-                    tx,
-                    Some(height as u32),
-                    None,
-                    &mut internal_max_deriv,
-                    &mut external_max_deriv,
-                )?;
-            }
-        }
-        for tx in first_peer.get_mempool().iter_txs().iter() {
-            self.process_tx(
-                database,
-                tx,
-                None,
-                None,
-                &mut internal_max_deriv,
-                &mut external_max_deriv,
-            )?;
-        }
-
-        let current_ext = database
-            .get_last_index(KeychainKind::External)?
-            .unwrap_or(0);
-        let first_ext_new = external_max_deriv.map(|x| x + 1).unwrap_or(0);
-        if first_ext_new > current_ext {
-            info!("Setting external index to {}", first_ext_new);
-            database.set_last_index(KeychainKind::External, first_ext_new)?;
-        }
-
-        let current_int = database
-            .get_last_index(KeychainKind::Internal)?
-            .unwrap_or(0);
-        let first_int_new = internal_max_deriv.map(|x| x + 1).unwrap_or(0);
-        if first_int_new > current_int {
-            info!("Setting internal index to {}", first_int_new);
-            database.set_last_index(KeychainKind::Internal, first_int_new)?;
-        }
-
-        info!("Dropping blocks until {}", buried_height);
-        self.headers.delete_blocks_until(buried_height)?;
-
-        progress_update
-            .lock()
-            .unwrap()
-            .update(100.0, Some("Done".into()))?;
-
-        Ok(())
-    }
-
-    fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        Ok(self.peers[0]
-            .get_mempool()
-            .get_tx(&Inventory::Transaction(*txid)))
-    }
-
-    fn broadcast(&self, tx: &Transaction) -> Result<(), Error> {
-        self.peers[0].broadcast_tx(tx.clone())?;
-
-        Ok(())
-    }
-
-    fn get_height(&self) -> Result<u32, Error> {
-        Ok(self.headers.get_height()? as u32)
-    }
-
-    fn estimate_fee(&self, _target: usize) -> Result<FeeRate, Error> {
-        // TODO
-        Ok(FeeRate::default())
-    }
-}
-
-/// Data to connect to a Bitcoin P2P peer
-#[derive(Debug, serde::Deserialize, serde::Serialize, Clone, PartialEq)]
-pub struct BitcoinPeerConfig {
-    /// Peer address such as 127.0.0.1:18333
-    pub address: String,
-    /// Optional socks5 proxy
-    pub socks5: Option<String>,
-    /// Optional socks5 proxy credentials
-    pub socks5_credentials: Option<(String, String)>,
-}
-
-/// Configuration for a [`CompactFiltersBlockchain`]
-#[derive(Debug, serde::Deserialize, serde::Serialize, Clone, PartialEq)]
-pub struct CompactFiltersBlockchainConfig {
-    /// List of peers to try to connect to for asking headers and filters
-    pub peers: Vec<BitcoinPeerConfig>,
-    /// Network used
-    pub network: Network,
-    /// Storage dir to save partially downloaded headers and full blocks. Should be a separate directory per descriptor. Consider using [crate::wallet::wallet_name_from_descriptor] for this.
-    pub storage_dir: String,
-    /// Optionally skip initial `skip_blocks` blocks (default: 0)
-    pub skip_blocks: Option<usize>,
-}
-
-impl ConfigurableBlockchain for CompactFiltersBlockchain {
-    type Config = CompactFiltersBlockchainConfig;
-
-    fn from_config(config: &Self::Config) -> Result<Self, Error> {
-        let mempool = Arc::new(Mempool::default());
-        let peers = config
-            .peers
-            .iter()
-            .map(|peer_conf| match &peer_conf.socks5 {
-                None => Peer::connect(&peer_conf.address, Arc::clone(&mempool), config.network),
-                Some(proxy) => Peer::connect_proxy(
-                    peer_conf.address.as_str(),
-                    proxy,
-                    peer_conf
-                        .socks5_credentials
-                        .as_ref()
-                        .map(|(a, b)| (a.as_str(), b.as_str())),
-                    Arc::clone(&mempool),
-                    config.network,
-                ),
-            })
-            .collect::<Result<_, _>>()?;
-
-        Ok(CompactFiltersBlockchain::new(
-            peers,
-            &config.storage_dir,
-            config.skip_blocks,
-        )?)
-    }
-}
-
-/// An error that can occur during sync with a [`CompactFiltersBlockchain`]
-#[derive(Debug)]
-pub enum CompactFiltersError {
-    /// A peer sent an invalid or unexpected response
-    InvalidResponse,
-    /// The headers returned are invalid
-    InvalidHeaders,
-    /// The compact filter headers returned are invalid
-    InvalidFilterHeader,
-    /// The compact filter returned is invalid
-    InvalidFilter,
-    /// The peer is missing a block in the valid chain
-    MissingBlock,
-    /// The data stored in the block filters storage are corrupted
-    DataCorruption,
-
-    /// A peer is not connected
-    NotConnected,
-    /// A peer took too long to reply to one of our messages
-    Timeout,
-    /// The peer doesn't advertise the [`BLOOM`](bitcoin::network::constants::ServiceFlags::BLOOM) service flag
-    PeerBloomDisabled,
-
-    /// No peers have been specified
-    NoPeers,
-
-    /// Internal database error
-    Db(rocksdb::Error),
-    /// Internal I/O error
-    Io(std::io::Error),
-    /// Invalid BIP158 filter
-    Bip158(bitcoin::util::bip158::Error),
-    /// Internal system time error
-    Time(std::time::SystemTimeError),
-
-    /// Wrapper for [`crate::error::Error`]
-    Global(Box<crate::error::Error>),
-}
-
-impl fmt::Display for CompactFiltersError {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        write!(f, "{:?}", self)
-    }
-}
-
-impl std::error::Error for CompactFiltersError {}
-
-impl_error!(rocksdb::Error, Db, CompactFiltersError);
-impl_error!(std::io::Error, Io, CompactFiltersError);
-impl_error!(bitcoin::util::bip158::Error, Bip158, CompactFiltersError);
-impl_error!(std::time::SystemTimeError, Time, CompactFiltersError);
-
-impl From<crate::error::Error> for CompactFiltersError {
-    fn from(err: crate::error::Error) -> Self {
-        CompactFiltersError::Global(Box::new(err))
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/peer.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/peer.rs.html deleted file mode 100644 index 26e53c5648..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/peer.rs.html +++ /dev/null @@ -1,1149 +0,0 @@ -peer.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-use std::collections::HashMap;
-use std::net::{TcpStream, ToSocketAddrs};
-use std::sync::{Arc, Condvar, Mutex, RwLock};
-use std::thread;
-use std::time::{Duration, SystemTime, UNIX_EPOCH};
-
-use socks::{Socks5Stream, ToTargetAddr};
-
-use rand::{thread_rng, Rng};
-
-use bitcoin::consensus::Encodable;
-use bitcoin::hash_types::BlockHash;
-use bitcoin::network::constants::ServiceFlags;
-use bitcoin::network::message::{NetworkMessage, RawNetworkMessage};
-use bitcoin::network::message_blockdata::*;
-use bitcoin::network::message_filter::*;
-use bitcoin::network::message_network::VersionMessage;
-use bitcoin::network::stream_reader::StreamReader;
-use bitcoin::network::Address;
-use bitcoin::{Block, Network, Transaction, Txid, Wtxid};
-
-use super::CompactFiltersError;
-
-type ResponsesMap = HashMap<&'static str, Arc<(Mutex<Vec<NetworkMessage>>, Condvar)>>;
-
-pub(crate) const TIMEOUT_SECS: u64 = 30;
-
-/// Container for unconfirmed, but valid Bitcoin transactions
-///
-/// It is normally shared between [`Peer`]s with the use of [`Arc`], so that transactions are not
-/// duplicated in memory.
-#[derive(Debug, Default)]
-pub struct Mempool(RwLock<InnerMempool>);
-
-#[derive(Debug, Default)]
-struct InnerMempool {
-    txs: HashMap<Txid, Transaction>,
-    wtxids: HashMap<Wtxid, Txid>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq)]
-enum TxIdentifier {
-    Wtxid(Wtxid),
-    Txid(Txid),
-}
-
-impl Mempool {
-    /// Create a new empty mempool
-    pub fn new() -> Self {
-        Self::default()
-    }
-
-    /// Add a transaction to the mempool
-    ///
-    /// Note that this doesn't propagate the transaction to other
-    /// peers. To do that, [`broadcast`](crate::blockchain::Blockchain::broadcast) should be used.
-    pub fn add_tx(&self, tx: Transaction) {
-        let mut guard = self.0.write().unwrap();
-
-        guard.wtxids.insert(tx.wtxid(), tx.txid());
-        guard.txs.insert(tx.txid(), tx);
-    }
-
-    /// Look-up a transaction in the mempool given an [`Inventory`] request
-    pub fn get_tx(&self, inventory: &Inventory) -> Option<Transaction> {
-        let identifer = match inventory {
-            Inventory::Error | Inventory::Block(_) | Inventory::WitnessBlock(_) => return None,
-            Inventory::Transaction(txid) => TxIdentifier::Txid(*txid),
-            Inventory::WitnessTransaction(txid) => TxIdentifier::Txid(*txid),
-            Inventory::WTx(wtxid) => TxIdentifier::Wtxid(*wtxid),
-            Inventory::Unknown { inv_type, hash } => {
-                log::warn!(
-                    "Unknown inventory request type `{}`, hash `{:?}`",
-                    inv_type,
-                    hash
-                );
-                return None;
-            }
-        };
-
-        let txid = match identifer {
-            TxIdentifier::Txid(txid) => Some(txid),
-            TxIdentifier::Wtxid(wtxid) => self.0.read().unwrap().wtxids.get(&wtxid).cloned(),
-        };
-
-        txid.map(|txid| self.0.read().unwrap().txs.get(&txid).cloned())
-            .flatten()
-    }
-
-    /// Return whether or not the mempool contains a transaction with a given txid
-    pub fn has_tx(&self, txid: &Txid) -> bool {
-        self.0.read().unwrap().txs.contains_key(txid)
-    }
-
-    /// Return the list of transactions contained in the mempool
-    pub fn iter_txs(&self) -> Vec<Transaction> {
-        self.0.read().unwrap().txs.values().cloned().collect()
-    }
-}
-
-/// A Bitcoin peer
-#[derive(Debug)]
-pub struct Peer {
-    writer: Arc<Mutex<TcpStream>>,
-    responses: Arc<RwLock<ResponsesMap>>,
-
-    reader_thread: thread::JoinHandle<()>,
-    connected: Arc<RwLock<bool>>,
-
-    mempool: Arc<Mempool>,
-
-    version: VersionMessage,
-    network: Network,
-}
-
-impl Peer {
-    /// Connect to a peer over a plaintext TCP connection
-    ///
-    /// This function internally spawns a new thread that will monitor incoming messages from the
-    /// peer, and optionally reply to some of them transparently, like [pings](bitcoin::network::message::NetworkMessage::Ping)
-    pub fn connect<A: ToSocketAddrs>(
-        address: A,
-        mempool: Arc<Mempool>,
-        network: Network,
-    ) -> Result<Self, CompactFiltersError> {
-        let stream = TcpStream::connect(address)?;
-
-        Peer::from_stream(stream, mempool, network)
-    }
-
-    /// Connect to a peer through a SOCKS5 proxy, optionally by using some credentials, specified
-    /// as a tuple of `(username, password)`
-    ///
-    /// This function internally spawns a new thread that will monitor incoming messages from the
-    /// peer, and optionally reply to some of them transparently, like [pings](NetworkMessage::Ping)
-    pub fn connect_proxy<T: ToTargetAddr, P: ToSocketAddrs>(
-        target: T,
-        proxy: P,
-        credentials: Option<(&str, &str)>,
-        mempool: Arc<Mempool>,
-        network: Network,
-    ) -> Result<Self, CompactFiltersError> {
-        let socks_stream = if let Some((username, password)) = credentials {
-            Socks5Stream::connect_with_password(proxy, target, username, password)?
-        } else {
-            Socks5Stream::connect(proxy, target)?
-        };
-
-        Peer::from_stream(socks_stream.into_inner(), mempool, network)
-    }
-
-    /// Create a [`Peer`] from an already connected TcpStream
-    fn from_stream(
-        stream: TcpStream,
-        mempool: Arc<Mempool>,
-        network: Network,
-    ) -> Result<Self, CompactFiltersError> {
-        let writer = Arc::new(Mutex::new(stream.try_clone()?));
-        let responses: Arc<RwLock<ResponsesMap>> = Arc::new(RwLock::new(HashMap::new()));
-        let connected = Arc::new(RwLock::new(true));
-
-        let mut locked_writer = writer.lock().unwrap();
-
-        let reader_thread_responses = Arc::clone(&responses);
-        let reader_thread_writer = Arc::clone(&writer);
-        let reader_thread_mempool = Arc::clone(&mempool);
-        let reader_thread_connected = Arc::clone(&connected);
-        let reader_thread = thread::spawn(move || {
-            Self::reader_thread(
-                network,
-                stream,
-                reader_thread_responses,
-                reader_thread_writer,
-                reader_thread_mempool,
-                reader_thread_connected,
-            )
-        });
-
-        let timestamp = SystemTime::now().duration_since(UNIX_EPOCH)?.as_secs() as i64;
-        let nonce = thread_rng().gen();
-        let receiver = Address::new(&locked_writer.peer_addr()?, ServiceFlags::NONE);
-        let sender = Address {
-            services: ServiceFlags::NONE,
-            address: [0u16; 8],
-            port: 0,
-        };
-
-        Self::_send(
-            &mut locked_writer,
-            network.magic(),
-            NetworkMessage::Version(VersionMessage::new(
-                ServiceFlags::WITNESS,
-                timestamp,
-                receiver,
-                sender,
-                nonce,
-                "MagicalBitcoinWallet".into(),
-                0,
-            )),
-        )?;
-        let version = if let NetworkMessage::Version(version) =
-            Self::_recv(&responses, "version", None).unwrap()
-        {
-            version
-        } else {
-            return Err(CompactFiltersError::InvalidResponse);
-        };
-
-        if let NetworkMessage::Verack = Self::_recv(&responses, "verack", None).unwrap() {
-            Self::_send(&mut locked_writer, network.magic(), NetworkMessage::Verack)?;
-        } else {
-            return Err(CompactFiltersError::InvalidResponse);
-        }
-
-        std::mem::drop(locked_writer);
-
-        Ok(Peer {
-            writer,
-            responses,
-            reader_thread,
-            connected,
-            mempool,
-            version,
-            network,
-        })
-    }
-
-    /// Send a Bitcoin network message
-    fn _send(
-        writer: &mut TcpStream,
-        magic: u32,
-        payload: NetworkMessage,
-    ) -> Result<(), CompactFiltersError> {
-        log::trace!("==> {:?}", payload);
-
-        let raw_message = RawNetworkMessage { magic, payload };
-
-        raw_message
-            .consensus_encode(writer)
-            .map_err(|_| CompactFiltersError::DataCorruption)?;
-
-        Ok(())
-    }
-
-    /// Wait for a specific incoming Bitcoin message, optionally with a timeout
-    fn _recv(
-        responses: &Arc<RwLock<ResponsesMap>>,
-        wait_for: &'static str,
-        timeout: Option<Duration>,
-    ) -> Option<NetworkMessage> {
-        let message_resp = {
-            let mut lock = responses.write().unwrap();
-            let message_resp = lock.entry(wait_for).or_default();
-            Arc::clone(message_resp)
-        };
-
-        let (lock, cvar) = &*message_resp;
-
-        let mut messages = lock.lock().unwrap();
-        while messages.is_empty() {
-            match timeout {
-                None => messages = cvar.wait(messages).unwrap(),
-                Some(t) => {
-                    let result = cvar.wait_timeout(messages, t).unwrap();
-                    if result.1.timed_out() {
-                        return None;
-                    }
-                    messages = result.0;
-                }
-            }
-        }
-
-        messages.pop()
-    }
-
-    /// Return the [`VersionMessage`] sent by the peer
-    pub fn get_version(&self) -> &VersionMessage {
-        &self.version
-    }
-
-    /// Return the Bitcoin [`Network`] in use
-    pub fn get_network(&self) -> Network {
-        self.network
-    }
-
-    /// Return the mempool used by this peer
-    pub fn get_mempool(&self) -> Arc<Mempool> {
-        Arc::clone(&self.mempool)
-    }
-
-    /// Return whether or not the peer is still connected
-    pub fn is_connected(&self) -> bool {
-        *self.connected.read().unwrap()
-    }
-
-    /// Internal function called once the `reader_thread` is spawned
-    fn reader_thread(
-        network: Network,
-        connection: TcpStream,
-        reader_thread_responses: Arc<RwLock<ResponsesMap>>,
-        reader_thread_writer: Arc<Mutex<TcpStream>>,
-        reader_thread_mempool: Arc<Mempool>,
-        reader_thread_connected: Arc<RwLock<bool>>,
-    ) {
-        macro_rules! check_disconnect {
-            ($call:expr) => {
-                match $call {
-                    Ok(good) => good,
-                    Err(e) => {
-                        log::debug!("Error {:?}", e);
-                        *reader_thread_connected.write().unwrap() = false;
-
-                        break;
-                    }
-                }
-            };
-        }
-
-        let mut reader = StreamReader::new(connection, None);
-        loop {
-            let raw_message: RawNetworkMessage = check_disconnect!(reader.read_next());
-
-            let in_message = if raw_message.magic != network.magic() {
-                continue;
-            } else {
-                raw_message.payload
-            };
-
-            log::trace!("<== {:?}", in_message);
-
-            match in_message {
-                NetworkMessage::Ping(nonce) => {
-                    check_disconnect!(Self::_send(
-                        &mut reader_thread_writer.lock().unwrap(),
-                        network.magic(),
-                        NetworkMessage::Pong(nonce),
-                    ));
-
-                    continue;
-                }
-                NetworkMessage::Alert(_) => continue,
-                NetworkMessage::GetData(ref inv) => {
-                    let (found, not_found): (Vec<_>, Vec<_>) = inv
-                        .iter()
-                        .map(|item| (*item, reader_thread_mempool.get_tx(item)))
-                        .partition(|(_, d)| d.is_some());
-                    for (_, found_tx) in found {
-                        check_disconnect!(Self::_send(
-                            &mut reader_thread_writer.lock().unwrap(),
-                            network.magic(),
-                            NetworkMessage::Tx(found_tx.unwrap()),
-                        ));
-                    }
-
-                    if !not_found.is_empty() {
-                        check_disconnect!(Self::_send(
-                            &mut reader_thread_writer.lock().unwrap(),
-                            network.magic(),
-                            NetworkMessage::NotFound(
-                                not_found.into_iter().map(|(i, _)| i).collect(),
-                            ),
-                        ));
-                    }
-                }
-                _ => {}
-            }
-
-            let message_resp = {
-                let mut lock = reader_thread_responses.write().unwrap();
-                let message_resp = lock.entry(in_message.cmd()).or_default();
-                Arc::clone(message_resp)
-            };
-
-            let (lock, cvar) = &*message_resp;
-            let mut messages = lock.lock().unwrap();
-            messages.push(in_message);
-            cvar.notify_all();
-        }
-    }
-
-    /// Send a raw Bitcoin message to the peer
-    pub fn send(&self, payload: NetworkMessage) -> Result<(), CompactFiltersError> {
-        let mut writer = self.writer.lock().unwrap();
-        Self::_send(&mut writer, self.network.magic(), payload)
-    }
-
-    /// Waits for a specific incoming Bitcoin message, optionally with a timeout
-    pub fn recv(
-        &self,
-        wait_for: &'static str,
-        timeout: Option<Duration>,
-    ) -> Result<Option<NetworkMessage>, CompactFiltersError> {
-        Ok(Self::_recv(&self.responses, wait_for, timeout))
-    }
-}
-
-pub trait CompactFiltersPeer {
-    fn get_cf_checkpt(
-        &self,
-        filter_type: u8,
-        stop_hash: BlockHash,
-    ) -> Result<CFCheckpt, CompactFiltersError>;
-    fn get_cf_headers(
-        &self,
-        filter_type: u8,
-        start_height: u32,
-        stop_hash: BlockHash,
-    ) -> Result<CFHeaders, CompactFiltersError>;
-    fn get_cf_filters(
-        &self,
-        filter_type: u8,
-        start_height: u32,
-        stop_hash: BlockHash,
-    ) -> Result<(), CompactFiltersError>;
-    fn pop_cf_filter_resp(&self) -> Result<CFilter, CompactFiltersError>;
-}
-
-impl CompactFiltersPeer for Peer {
-    fn get_cf_checkpt(
-        &self,
-        filter_type: u8,
-        stop_hash: BlockHash,
-    ) -> Result<CFCheckpt, CompactFiltersError> {
-        self.send(NetworkMessage::GetCFCheckpt(GetCFCheckpt {
-            filter_type,
-            stop_hash,
-        }))?;
-
-        let response = self
-            .recv("cfcheckpt", Some(Duration::from_secs(TIMEOUT_SECS)))?
-            .ok_or(CompactFiltersError::Timeout)?;
-        let response = match response {
-            NetworkMessage::CFCheckpt(response) => response,
-            _ => return Err(CompactFiltersError::InvalidResponse),
-        };
-
-        if response.filter_type != filter_type {
-            return Err(CompactFiltersError::InvalidResponse);
-        }
-
-        Ok(response)
-    }
-
-    fn get_cf_headers(
-        &self,
-        filter_type: u8,
-        start_height: u32,
-        stop_hash: BlockHash,
-    ) -> Result<CFHeaders, CompactFiltersError> {
-        self.send(NetworkMessage::GetCFHeaders(GetCFHeaders {
-            filter_type,
-            start_height,
-            stop_hash,
-        }))?;
-
-        let response = self
-            .recv("cfheaders", Some(Duration::from_secs(TIMEOUT_SECS)))?
-            .ok_or(CompactFiltersError::Timeout)?;
-        let response = match response {
-            NetworkMessage::CFHeaders(response) => response,
-            _ => return Err(CompactFiltersError::InvalidResponse),
-        };
-
-        if response.filter_type != filter_type {
-            return Err(CompactFiltersError::InvalidResponse);
-        }
-
-        Ok(response)
-    }
-
-    fn pop_cf_filter_resp(&self) -> Result<CFilter, CompactFiltersError> {
-        let response = self
-            .recv("cfilter", Some(Duration::from_secs(TIMEOUT_SECS)))?
-            .ok_or(CompactFiltersError::Timeout)?;
-        let response = match response {
-            NetworkMessage::CFilter(response) => response,
-            _ => return Err(CompactFiltersError::InvalidResponse),
-        };
-
-        Ok(response)
-    }
-
-    fn get_cf_filters(
-        &self,
-        filter_type: u8,
-        start_height: u32,
-        stop_hash: BlockHash,
-    ) -> Result<(), CompactFiltersError> {
-        self.send(NetworkMessage::GetCFilters(GetCFilters {
-            filter_type,
-            start_height,
-            stop_hash,
-        }))?;
-
-        Ok(())
-    }
-}
-
-pub trait InvPeer {
-    fn get_block(&self, block_hash: BlockHash) -> Result<Option<Block>, CompactFiltersError>;
-    fn ask_for_mempool(&self) -> Result<(), CompactFiltersError>;
-    fn broadcast_tx(&self, tx: Transaction) -> Result<(), CompactFiltersError>;
-}
-
-impl InvPeer for Peer {
-    fn get_block(&self, block_hash: BlockHash) -> Result<Option<Block>, CompactFiltersError> {
-        self.send(NetworkMessage::GetData(vec![Inventory::WitnessBlock(
-            block_hash,
-        )]))?;
-
-        match self.recv("block", Some(Duration::from_secs(TIMEOUT_SECS)))? {
-            None => Ok(None),
-            Some(NetworkMessage::Block(response)) => Ok(Some(response)),
-            _ => Err(CompactFiltersError::InvalidResponse),
-        }
-    }
-
-    fn ask_for_mempool(&self) -> Result<(), CompactFiltersError> {
-        if !self.version.services.has(ServiceFlags::BLOOM) {
-            return Err(CompactFiltersError::PeerBloomDisabled);
-        }
-
-        self.send(NetworkMessage::MemPool)?;
-        let inv = match self.recv("inv", Some(Duration::from_secs(5)))? {
-            None => return Ok(()), // empty mempool
-            Some(NetworkMessage::Inv(inv)) => inv,
-            _ => return Err(CompactFiltersError::InvalidResponse),
-        };
-
-        let getdata = inv
-            .iter()
-            .cloned()
-            .filter(
-                |item| matches!(item, Inventory::Transaction(txid) if !self.mempool.has_tx(txid)),
-            )
-            .collect::<Vec<_>>();
-        let num_txs = getdata.len();
-        self.send(NetworkMessage::GetData(getdata))?;
-
-        for _ in 0..num_txs {
-            let tx = self
-                .recv("tx", Some(Duration::from_secs(TIMEOUT_SECS)))?
-                .ok_or(CompactFiltersError::Timeout)?;
-            let tx = match tx {
-                NetworkMessage::Tx(tx) => tx,
-                _ => return Err(CompactFiltersError::InvalidResponse),
-            };
-
-            self.mempool.add_tx(tx);
-        }
-
-        Ok(())
-    }
-
-    fn broadcast_tx(&self, tx: Transaction) -> Result<(), CompactFiltersError> {
-        self.mempool.add_tx(tx.clone());
-        self.send(NetworkMessage::Tx(tx))?;
-
-        Ok(())
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/store.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/store.rs.html deleted file mode 100644 index 553b6ef6e0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/store.rs.html +++ /dev/null @@ -1,1705 +0,0 @@ -store.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-805
-806
-807
-808
-809
-810
-811
-812
-813
-814
-815
-816
-817
-818
-819
-820
-821
-822
-823
-824
-825
-826
-827
-828
-829
-830
-831
-832
-833
-834
-835
-836
-837
-838
-839
-840
-841
-842
-843
-844
-845
-846
-847
-848
-849
-850
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-use std::convert::TryInto;
-use std::fmt;
-use std::io::{Read, Write};
-use std::marker::PhantomData;
-use std::ops::Deref;
-use std::sync::Arc;
-use std::sync::RwLock;
-
-use rand::distributions::Alphanumeric;
-use rand::{thread_rng, Rng};
-
-use rocksdb::{Direction, IteratorMode, ReadOptions, WriteBatch, DB};
-
-use bitcoin::consensus::{deserialize, encode::VarInt, serialize, Decodable, Encodable};
-use bitcoin::hash_types::{FilterHash, FilterHeader};
-use bitcoin::hashes::hex::FromHex;
-use bitcoin::hashes::Hash;
-use bitcoin::util::bip158::BlockFilter;
-use bitcoin::util::uint::Uint256;
-use bitcoin::Block;
-use bitcoin::BlockHash;
-use bitcoin::BlockHeader;
-use bitcoin::Network;
-
-use lazy_static::lazy_static;
-
-use super::CompactFiltersError;
-
-lazy_static! {
-    static ref MAINNET_GENESIS: Block = deserialize(&Vec::<u8>::from_hex("0100000000000000000000000000000000000000000000000000000000000000000000003BA3EDFD7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4A29AB5F49FFFF001D1DAC2B7C0101000000010000000000000000000000000000000000000000000000000000000000000000FFFFFFFF4D04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73FFFFFFFF0100F2052A01000000434104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5FAC00000000").unwrap()).unwrap();
-    static ref TESTNET_GENESIS: Block = deserialize(&Vec::<u8>::from_hex("0100000000000000000000000000000000000000000000000000000000000000000000003BA3EDFD7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4ADAE5494DFFFF001D1AA4AE180101000000010000000000000000000000000000000000000000000000000000000000000000FFFFFFFF4D04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73FFFFFFFF0100F2052A01000000434104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5FAC00000000").unwrap()).unwrap();
-    static ref REGTEST_GENESIS: Block = deserialize(&Vec::<u8>::from_hex("0100000000000000000000000000000000000000000000000000000000000000000000003BA3EDFD7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4ADAE5494DFFFF7F20020000000101000000010000000000000000000000000000000000000000000000000000000000000000FFFFFFFF4D04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73FFFFFFFF0100F2052A01000000434104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5FAC00000000").unwrap()).unwrap();
-    static ref SIGNET_GENESIS: Block = deserialize(&Vec::<u8>::from_hex("0100000000000000000000000000000000000000000000000000000000000000000000003BA3EDFD7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4A008F4D5FAE77031E8AD222030101000000010000000000000000000000000000000000000000000000000000000000000000FFFFFFFF4D04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73FFFFFFFF0100F2052A01000000434104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5FAC00000000").unwrap()).unwrap();
-}
-
-pub trait StoreType: Default + fmt::Debug {}
-
-#[derive(Default, Debug)]
-pub struct Full;
-impl StoreType for Full {}
-#[derive(Default, Debug)]
-pub struct Snapshot;
-impl StoreType for Snapshot {}
-
-pub enum StoreEntry {
-    BlockHeader(Option<usize>),
-    Block(Option<usize>),
-    BlockHeaderIndex(Option<BlockHash>),
-    CFilterTable((u8, Option<usize>)),
-}
-
-impl StoreEntry {
-    pub fn get_prefix(&self) -> Vec<u8> {
-        match self {
-            StoreEntry::BlockHeader(_) => b"z",
-            StoreEntry::Block(_) => b"x",
-            StoreEntry::BlockHeaderIndex(_) => b"i",
-            StoreEntry::CFilterTable(_) => b"t",
-        }
-        .to_vec()
-    }
-
-    pub fn get_key(&self) -> Vec<u8> {
-        let mut prefix = self.get_prefix();
-        match self {
-            StoreEntry::BlockHeader(Some(height)) => {
-                prefix.extend_from_slice(&height.to_be_bytes())
-            }
-            StoreEntry::Block(Some(height)) => prefix.extend_from_slice(&height.to_be_bytes()),
-            StoreEntry::BlockHeaderIndex(Some(hash)) => {
-                prefix.extend_from_slice(&hash.into_inner())
-            }
-            StoreEntry::CFilterTable((filter_type, bundle_index)) => {
-                prefix.push(*filter_type);
-                if let Some(bundle_index) = bundle_index {
-                    prefix.extend_from_slice(&bundle_index.to_be_bytes());
-                }
-            }
-            _ => {}
-        }
-
-        prefix
-    }
-}
-
-pub trait SerializeDb: Sized {
-    fn serialize(&self) -> Vec<u8>;
-    fn deserialize(data: &[u8]) -> Result<Self, CompactFiltersError>;
-}
-
-impl<T> SerializeDb for T
-where
-    T: Encodable + Decodable,
-{
-    fn serialize(&self) -> Vec<u8> {
-        serialize(self)
-    }
-
-    fn deserialize(data: &[u8]) -> Result<Self, CompactFiltersError> {
-        deserialize(data).map_err(|_| CompactFiltersError::DataCorruption)
-    }
-}
-
-impl Encodable for BundleStatus {
-    fn consensus_encode<W: Write>(&self, mut e: W) -> Result<usize, std::io::Error> {
-        let mut written = 0;
-
-        match self {
-            BundleStatus::Init => {
-                written += 0x00u8.consensus_encode(&mut e)?;
-            }
-            BundleStatus::CfHeaders { cf_headers } => {
-                written += 0x01u8.consensus_encode(&mut e)?;
-                written += VarInt(cf_headers.len() as u64).consensus_encode(&mut e)?;
-                for header in cf_headers {
-                    written += header.consensus_encode(&mut e)?;
-                }
-            }
-            BundleStatus::CFilters { cf_filters } => {
-                written += 0x02u8.consensus_encode(&mut e)?;
-                written += VarInt(cf_filters.len() as u64).consensus_encode(&mut e)?;
-                for filter in cf_filters {
-                    written += filter.consensus_encode(&mut e)?;
-                }
-            }
-            BundleStatus::Processed { cf_filters } => {
-                written += 0x03u8.consensus_encode(&mut e)?;
-                written += VarInt(cf_filters.len() as u64).consensus_encode(&mut e)?;
-                for filter in cf_filters {
-                    written += filter.consensus_encode(&mut e)?;
-                }
-            }
-            BundleStatus::Pruned => {
-                written += 0x04u8.consensus_encode(&mut e)?;
-            }
-            BundleStatus::Tip { cf_filters } => {
-                written += 0x05u8.consensus_encode(&mut e)?;
-                written += VarInt(cf_filters.len() as u64).consensus_encode(&mut e)?;
-                for filter in cf_filters {
-                    written += filter.consensus_encode(&mut e)?;
-                }
-            }
-        }
-
-        Ok(written)
-    }
-}
-
-impl Decodable for BundleStatus {
-    fn consensus_decode<D: Read>(mut d: D) -> Result<Self, bitcoin::consensus::encode::Error> {
-        let byte_type = u8::consensus_decode(&mut d)?;
-        match byte_type {
-            0x00 => Ok(BundleStatus::Init),
-            0x01 => {
-                let num = VarInt::consensus_decode(&mut d)?;
-                let num = num.0 as usize;
-
-                let mut cf_headers = Vec::with_capacity(num);
-                for _ in 0..num {
-                    cf_headers.push(FilterHeader::consensus_decode(&mut d)?);
-                }
-
-                Ok(BundleStatus::CfHeaders { cf_headers })
-            }
-            0x02 => {
-                let num = VarInt::consensus_decode(&mut d)?;
-                let num = num.0 as usize;
-
-                let mut cf_filters = Vec::with_capacity(num);
-                for _ in 0..num {
-                    cf_filters.push(Vec::<u8>::consensus_decode(&mut d)?);
-                }
-
-                Ok(BundleStatus::CFilters { cf_filters })
-            }
-            0x03 => {
-                let num = VarInt::consensus_decode(&mut d)?;
-                let num = num.0 as usize;
-
-                let mut cf_filters = Vec::with_capacity(num);
-                for _ in 0..num {
-                    cf_filters.push(Vec::<u8>::consensus_decode(&mut d)?);
-                }
-
-                Ok(BundleStatus::Processed { cf_filters })
-            }
-            0x04 => Ok(BundleStatus::Pruned),
-            0x05 => {
-                let num = VarInt::consensus_decode(&mut d)?;
-                let num = num.0 as usize;
-
-                let mut cf_filters = Vec::with_capacity(num);
-                for _ in 0..num {
-                    cf_filters.push(Vec::<u8>::consensus_decode(&mut d)?);
-                }
-
-                Ok(BundleStatus::Tip { cf_filters })
-            }
-            _ => Err(bitcoin::consensus::encode::Error::ParseFailed(
-                "Invalid byte type",
-            )),
-        }
-    }
-}
-
-pub struct ChainStore<T: StoreType> {
-    store: Arc<RwLock<DB>>,
-    cf_name: String,
-    min_height: usize,
-    network: Network,
-    phantom: PhantomData<T>,
-}
-
-impl ChainStore<Full> {
-    pub fn new(store: DB, network: Network) -> Result<Self, CompactFiltersError> {
-        let genesis = match network {
-            Network::Bitcoin => MAINNET_GENESIS.deref(),
-            Network::Testnet => TESTNET_GENESIS.deref(),
-            Network::Regtest => REGTEST_GENESIS.deref(),
-            Network::Signet => SIGNET_GENESIS.deref(),
-        };
-
-        let cf_name = "default".to_string();
-        let cf_handle = store.cf_handle(&cf_name).unwrap();
-
-        let genesis_key = StoreEntry::BlockHeader(Some(0)).get_key();
-
-        if store.get_pinned_cf(cf_handle, &genesis_key)?.is_none() {
-            let mut batch = WriteBatch::default();
-            batch.put_cf(
-                cf_handle,
-                genesis_key,
-                (genesis.header, genesis.header.work()).serialize(),
-            );
-            batch.put_cf(
-                cf_handle,
-                StoreEntry::BlockHeaderIndex(Some(genesis.block_hash())).get_key(),
-                &0usize.to_be_bytes(),
-            );
-            store.write(batch)?;
-        }
-
-        Ok(ChainStore {
-            store: Arc::new(RwLock::new(store)),
-            cf_name,
-            min_height: 0,
-            network,
-            phantom: PhantomData,
-        })
-    }
-
-    pub fn get_locators(&self) -> Result<Vec<(BlockHash, usize)>, CompactFiltersError> {
-        let mut step = 1;
-        let mut index = self.get_height()?;
-        let mut answer = Vec::new();
-
-        let store_read = self.store.read().unwrap();
-        let cf_handle = store_read.cf_handle(&self.cf_name).unwrap();
-
-        loop {
-            if answer.len() > 10 {
-                step *= 2;
-            }
-
-            let (header, _): (BlockHeader, Uint256) = SerializeDb::deserialize(
-                &store_read
-                    .get_pinned_cf(cf_handle, StoreEntry::BlockHeader(Some(index)).get_key())?
-                    .unwrap(),
-            )?;
-            answer.push((header.block_hash(), index));
-
-            if let Some(new_index) = index.checked_sub(step) {
-                index = new_index;
-            } else {
-                break;
-            }
-        }
-
-        Ok(answer)
-    }
-
-    pub fn start_snapshot(&self, from: usize) -> Result<ChainStore<Snapshot>, CompactFiltersError> {
-        let new_cf_name: String = thread_rng().sample_iter(&Alphanumeric).take(16).collect();
-        let new_cf_name = format!("_headers:{}", new_cf_name);
-
-        let mut write_store = self.store.write().unwrap();
-
-        write_store.create_cf(&new_cf_name, &Default::default())?;
-
-        let cf_handle = write_store.cf_handle(&self.cf_name).unwrap();
-        let new_cf_handle = write_store.cf_handle(&new_cf_name).unwrap();
-
-        let (header, work): (BlockHeader, Uint256) = SerializeDb::deserialize(
-            &write_store
-                .get_pinned_cf(cf_handle, StoreEntry::BlockHeader(Some(from)).get_key())?
-                .ok_or(CompactFiltersError::DataCorruption)?,
-        )?;
-
-        let mut batch = WriteBatch::default();
-        batch.put_cf(
-            new_cf_handle,
-            StoreEntry::BlockHeaderIndex(Some(header.block_hash())).get_key(),
-            &from.to_be_bytes(),
-        );
-        batch.put_cf(
-            new_cf_handle,
-            StoreEntry::BlockHeader(Some(from)).get_key(),
-            (header, work).serialize(),
-        );
-        write_store.write(batch)?;
-
-        let store = Arc::clone(&self.store);
-        Ok(ChainStore {
-            store,
-            cf_name: new_cf_name,
-            min_height: from,
-            network: self.network,
-            phantom: PhantomData,
-        })
-    }
-
-    pub fn recover_snapshot(&self, cf_name: &str) -> Result<(), CompactFiltersError> {
-        let mut write_store = self.store.write().unwrap();
-        let snapshot_cf_handle = write_store.cf_handle(cf_name).unwrap();
-
-        let prefix = StoreEntry::BlockHeader(None).get_key();
-        let mut iterator = write_store.prefix_iterator_cf(snapshot_cf_handle, prefix);
-
-        let min_height = match iterator
-            .next()
-            .and_then(|(k, _)| k[1..].try_into().ok())
-            .map(usize::from_be_bytes)
-        {
-            None => {
-                std::mem::drop(iterator);
-                write_store.drop_cf(cf_name).ok();
-
-                return Ok(());
-            }
-            Some(x) => x,
-        };
-        std::mem::drop(iterator);
-        std::mem::drop(write_store);
-
-        let snapshot = ChainStore {
-            store: Arc::clone(&self.store),
-            cf_name: cf_name.into(),
-            min_height,
-            network: self.network,
-            phantom: PhantomData,
-        };
-        if snapshot.work()? > self.work()? {
-            self.apply_snapshot(snapshot)?;
-        }
-
-        Ok(())
-    }
-
-    pub fn apply_snapshot(
-        &self,
-        snaphost: ChainStore<Snapshot>,
-    ) -> Result<(), CompactFiltersError> {
-        let mut batch = WriteBatch::default();
-
-        let read_store = self.store.read().unwrap();
-        let cf_handle = read_store.cf_handle(&self.cf_name).unwrap();
-        let snapshot_cf_handle = read_store.cf_handle(&snaphost.cf_name).unwrap();
-
-        let from_key = StoreEntry::BlockHeader(Some(snaphost.min_height)).get_key();
-        let to_key = StoreEntry::BlockHeader(Some(usize::MAX)).get_key();
-
-        let mut opts = ReadOptions::default();
-        opts.set_iterate_upper_bound(to_key.clone());
-
-        log::debug!("Removing items");
-        batch.delete_range_cf(cf_handle, &from_key, &to_key);
-        for (_, v) in read_store.iterator_cf_opt(
-            cf_handle,
-            opts,
-            IteratorMode::From(&from_key, Direction::Forward),
-        ) {
-            let (header, _): (BlockHeader, Uint256) = SerializeDb::deserialize(&v)?;
-
-            batch.delete_cf(
-                cf_handle,
-                StoreEntry::BlockHeaderIndex(Some(header.block_hash())).get_key(),
-            );
-        }
-
-        // Delete full blocks overridden by snapshot
-        let from_key = StoreEntry::Block(Some(snaphost.min_height)).get_key();
-        let to_key = StoreEntry::Block(Some(usize::MAX)).get_key();
-        batch.delete_range(&from_key, &to_key);
-
-        log::debug!("Copying over new items");
-        for (k, v) in read_store.iterator_cf(snapshot_cf_handle, IteratorMode::Start) {
-            batch.put_cf(cf_handle, k, v);
-        }
-
-        read_store.write(batch)?;
-        std::mem::drop(read_store);
-
-        self.store.write().unwrap().drop_cf(&snaphost.cf_name)?;
-
-        Ok(())
-    }
-
-    pub fn get_height_for(
-        &self,
-        block_hash: &BlockHash,
-    ) -> Result<Option<usize>, CompactFiltersError> {
-        let read_store = self.store.read().unwrap();
-        let cf_handle = read_store.cf_handle(&self.cf_name).unwrap();
-
-        let key = StoreEntry::BlockHeaderIndex(Some(*block_hash)).get_key();
-        let data = read_store.get_pinned_cf(cf_handle, key)?;
-        data.map(|data| {
-            Ok::<_, CompactFiltersError>(usize::from_be_bytes(
-                data.as_ref()
-                    .try_into()
-                    .map_err(|_| CompactFiltersError::DataCorruption)?,
-            ))
-        })
-        .transpose()
-    }
-
-    pub fn get_block_hash(&self, height: usize) -> Result<Option<BlockHash>, CompactFiltersError> {
-        let read_store = self.store.read().unwrap();
-        let cf_handle = read_store.cf_handle(&self.cf_name).unwrap();
-
-        let key = StoreEntry::BlockHeader(Some(height)).get_key();
-        let data = read_store.get_pinned_cf(cf_handle, key)?;
-        data.map(|data| {
-            let (header, _): (BlockHeader, Uint256) =
-                deserialize(&data).map_err(|_| CompactFiltersError::DataCorruption)?;
-            Ok::<_, CompactFiltersError>(header.block_hash())
-        })
-        .transpose()
-    }
-
-    pub fn save_full_block(&self, block: &Block, height: usize) -> Result<(), CompactFiltersError> {
-        let key = StoreEntry::Block(Some(height)).get_key();
-        self.store.read().unwrap().put(key, block.serialize())?;
-
-        Ok(())
-    }
-
-    pub fn get_full_block(&self, height: usize) -> Result<Option<Block>, CompactFiltersError> {
-        let read_store = self.store.read().unwrap();
-
-        let key = StoreEntry::Block(Some(height)).get_key();
-        let opt_block = read_store.get_pinned(key)?;
-
-        opt_block
-            .map(|data| deserialize(&data))
-            .transpose()
-            .map_err(|_| CompactFiltersError::DataCorruption)
-    }
-
-    pub fn delete_blocks_until(&self, height: usize) -> Result<(), CompactFiltersError> {
-        let from_key = StoreEntry::Block(Some(0)).get_key();
-        let to_key = StoreEntry::Block(Some(height)).get_key();
-
-        let mut batch = WriteBatch::default();
-        batch.delete_range(&from_key, &to_key);
-
-        self.store.read().unwrap().write(batch)?;
-
-        Ok(())
-    }
-
-    pub fn iter_full_blocks(&self) -> Result<Vec<(usize, Block)>, CompactFiltersError> {
-        let read_store = self.store.read().unwrap();
-
-        let prefix = StoreEntry::Block(None).get_key();
-
-        let iterator = read_store.prefix_iterator(&prefix);
-        // FIXME: we have to filter manually because rocksdb sometimes returns stuff that doesn't
-        // have the right prefix
-        iterator
-            .filter(|(k, _)| k.starts_with(&prefix))
-            .map(|(k, v)| {
-                let height: usize = usize::from_be_bytes(
-                    k[1..]
-                        .try_into()
-                        .map_err(|_| CompactFiltersError::DataCorruption)?,
-                );
-                let block = SerializeDb::deserialize(&v)?;
-
-                Ok((height, block))
-            })
-            .collect::<Result<_, _>>()
-    }
-}
-
-impl<T: StoreType> ChainStore<T> {
-    pub fn work(&self) -> Result<Uint256, CompactFiltersError> {
-        let read_store = self.store.read().unwrap();
-        let cf_handle = read_store.cf_handle(&self.cf_name).unwrap();
-
-        let prefix = StoreEntry::BlockHeader(None).get_key();
-        let iterator = read_store.prefix_iterator_cf(cf_handle, prefix);
-
-        Ok(iterator
-            .last()
-            .map(|(_, v)| -> Result<_, CompactFiltersError> {
-                let (_, work): (BlockHeader, Uint256) = SerializeDb::deserialize(&v)?;
-
-                Ok(work)
-            })
-            .transpose()?
-            .unwrap_or_default())
-    }
-
-    pub fn get_height(&self) -> Result<usize, CompactFiltersError> {
-        let read_store = self.store.read().unwrap();
-        let cf_handle = read_store.cf_handle(&self.cf_name).unwrap();
-
-        let prefix = StoreEntry::BlockHeader(None).get_key();
-        let iterator = read_store.prefix_iterator_cf(cf_handle, prefix);
-
-        Ok(iterator
-            .last()
-            .map(|(k, _)| -> Result<_, CompactFiltersError> {
-                let height = usize::from_be_bytes(
-                    k[1..]
-                        .try_into()
-                        .map_err(|_| CompactFiltersError::DataCorruption)?,
-                );
-
-                Ok(height)
-            })
-            .transpose()?
-            .unwrap_or_default())
-    }
-
-    pub fn get_tip_hash(&self) -> Result<Option<BlockHash>, CompactFiltersError> {
-        let read_store = self.store.read().unwrap();
-        let cf_handle = read_store.cf_handle(&self.cf_name).unwrap();
-
-        let prefix = StoreEntry::BlockHeader(None).get_key();
-        let iterator = read_store.prefix_iterator_cf(cf_handle, prefix);
-
-        iterator
-            .last()
-            .map(|(_, v)| -> Result<_, CompactFiltersError> {
-                let (header, _): (BlockHeader, Uint256) = SerializeDb::deserialize(&v)?;
-
-                Ok(header.block_hash())
-            })
-            .transpose()
-    }
-
-    pub fn apply(
-        &mut self,
-        from: usize,
-        headers: Vec<BlockHeader>,
-    ) -> Result<BlockHash, CompactFiltersError> {
-        let mut batch = WriteBatch::default();
-
-        let read_store = self.store.read().unwrap();
-        let cf_handle = read_store.cf_handle(&self.cf_name).unwrap();
-
-        let (mut last_hash, mut accumulated_work) = read_store
-            .get_pinned_cf(cf_handle, StoreEntry::BlockHeader(Some(from)).get_key())?
-            .map(|result| {
-                let (header, work): (BlockHeader, Uint256) = SerializeDb::deserialize(&result)?;
-                Ok::<_, CompactFiltersError>((header.block_hash(), work))
-            })
-            .transpose()?
-            .ok_or(CompactFiltersError::DataCorruption)?;
-
-        for (index, header) in headers.into_iter().enumerate() {
-            if header.prev_blockhash != last_hash {
-                return Err(CompactFiltersError::InvalidHeaders);
-            }
-
-            last_hash = header.block_hash();
-            accumulated_work = accumulated_work + header.work();
-
-            let height = from + index + 1;
-            batch.put_cf(
-                cf_handle,
-                StoreEntry::BlockHeaderIndex(Some(header.block_hash())).get_key(),
-                &(height).to_be_bytes(),
-            );
-            batch.put_cf(
-                cf_handle,
-                StoreEntry::BlockHeader(Some(height)).get_key(),
-                (header, accumulated_work).serialize(),
-            );
-        }
-
-        std::mem::drop(read_store);
-
-        self.store.write().unwrap().write(batch)?;
-        Ok(last_hash)
-    }
-}
-
-impl<T: StoreType> fmt::Debug for ChainStore<T> {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        f.debug_struct(&format!("ChainStore<{:?}>", T::default()))
-            .field("cf_name", &self.cf_name)
-            .field("min_height", &self.min_height)
-            .field("network", &self.network)
-            .field("headers_height", &self.get_height())
-            .field("tip_hash", &self.get_tip_hash())
-            .finish()
-    }
-}
-
-pub enum BundleStatus {
-    Init,
-    CfHeaders { cf_headers: Vec<FilterHeader> },
-    CFilters { cf_filters: Vec<Vec<u8>> },
-    Processed { cf_filters: Vec<Vec<u8>> },
-    Tip { cf_filters: Vec<Vec<u8>> },
-    Pruned,
-}
-
-pub struct CfStore {
-    store: Arc<RwLock<DB>>,
-    filter_type: u8,
-}
-
-type BundleEntry = (BundleStatus, FilterHeader);
-
-impl CfStore {
-    pub fn new(
-        headers_store: &ChainStore<Full>,
-        filter_type: u8,
-    ) -> Result<Self, CompactFiltersError> {
-        let cf_store = CfStore {
-            store: Arc::clone(&headers_store.store),
-            filter_type,
-        };
-
-        let genesis = match headers_store.network {
-            Network::Bitcoin => MAINNET_GENESIS.deref(),
-            Network::Testnet => TESTNET_GENESIS.deref(),
-            Network::Regtest => REGTEST_GENESIS.deref(),
-            Network::Signet => SIGNET_GENESIS.deref(),
-        };
-
-        let filter = BlockFilter::new_script_filter(genesis, |utxo| {
-            Err(bitcoin::util::bip158::Error::UtxoMissing(*utxo))
-        })?;
-        let first_key = StoreEntry::CFilterTable((filter_type, Some(0))).get_key();
-
-        // Add the genesis' filter
-        {
-            let read_store = cf_store.store.read().unwrap();
-            if read_store.get_pinned(&first_key)?.is_none() {
-                read_store.put(
-                    &first_key,
-                    (
-                        BundleStatus::Init,
-                        filter.filter_header(&FilterHeader::from_hash(Default::default())),
-                    )
-                        .serialize(),
-                )?;
-            }
-        }
-
-        Ok(cf_store)
-    }
-
-    pub fn get_filter_type(&self) -> u8 {
-        self.filter_type
-    }
-
-    pub fn get_bundles(&self) -> Result<Vec<BundleEntry>, CompactFiltersError> {
-        let read_store = self.store.read().unwrap();
-
-        let prefix = StoreEntry::CFilterTable((self.filter_type, None)).get_key();
-        let iterator = read_store.prefix_iterator(&prefix);
-
-        // FIXME: we have to filter manually because rocksdb sometimes returns stuff that doesn't
-        // have the right prefix
-        iterator
-            .filter(|(k, _)| k.starts_with(&prefix))
-            .map(|(_, data)| BundleEntry::deserialize(&data))
-            .collect::<Result<_, _>>()
-    }
-
-    pub fn get_checkpoints(&self) -> Result<Vec<FilterHeader>, CompactFiltersError> {
-        let read_store = self.store.read().unwrap();
-
-        let prefix = StoreEntry::CFilterTable((self.filter_type, None)).get_key();
-        let iterator = read_store.prefix_iterator(&prefix);
-
-        // FIXME: we have to filter manually because rocksdb sometimes returns stuff that doesn't
-        // have the right prefix
-        iterator
-            .filter(|(k, _)| k.starts_with(&prefix))
-            .skip(1)
-            .map(|(_, data)| Ok::<_, CompactFiltersError>(BundleEntry::deserialize(&data)?.1))
-            .collect::<Result<_, _>>()
-    }
-
-    pub fn replace_checkpoints(
-        &self,
-        checkpoints: Vec<FilterHeader>,
-    ) -> Result<(), CompactFiltersError> {
-        let current_checkpoints = self.get_checkpoints()?;
-
-        let mut equal_bundles = 0;
-        for (index, (our, their)) in current_checkpoints
-            .iter()
-            .zip(checkpoints.iter())
-            .enumerate()
-        {
-            equal_bundles = index;
-
-            if our != their {
-                break;
-            }
-        }
-
-        let read_store = self.store.read().unwrap();
-        let mut batch = WriteBatch::default();
-
-        for (index, filter_hash) in checkpoints.iter().enumerate().skip(equal_bundles) {
-            let key = StoreEntry::CFilterTable((self.filter_type, Some(index + 1))).get_key(); // +1 to skip the genesis' filter
-
-            if let Some((BundleStatus::Tip { .. }, _)) = read_store
-                .get_pinned(&key)?
-                .map(|data| BundleEntry::deserialize(&data))
-                .transpose()?
-            {
-                println!("Keeping bundle #{} as Tip", index);
-            } else {
-                batch.put(&key, (BundleStatus::Init, *filter_hash).serialize());
-            }
-        }
-
-        read_store.write(batch)?;
-
-        Ok(())
-    }
-
-    pub fn advance_to_cf_headers(
-        &self,
-        bundle: usize,
-        checkpoint: FilterHeader,
-        filter_hashes: Vec<FilterHash>,
-    ) -> Result<BundleStatus, CompactFiltersError> {
-        let cf_headers: Vec<FilterHeader> = filter_hashes
-            .into_iter()
-            .scan(checkpoint, |prev_header, filter_hash| {
-                let filter_header = filter_hash.filter_header(prev_header);
-                *prev_header = filter_header;
-
-                Some(filter_header)
-            })
-            .collect();
-
-        let read_store = self.store.read().unwrap();
-
-        let next_key = StoreEntry::CFilterTable((self.filter_type, Some(bundle + 1))).get_key(); // +1 to skip the genesis' filter
-        if let Some((_, next_checkpoint)) = read_store
-            .get_pinned(&next_key)?
-            .map(|data| BundleEntry::deserialize(&data))
-            .transpose()?
-        {
-            // check connection with the next bundle if present
-            if cf_headers.iter().last() != Some(&next_checkpoint) {
-                return Err(CompactFiltersError::InvalidFilterHeader);
-            }
-        }
-
-        let key = StoreEntry::CFilterTable((self.filter_type, Some(bundle))).get_key();
-        let value = (BundleStatus::CfHeaders { cf_headers }, checkpoint);
-
-        read_store.put(key, value.serialize())?;
-
-        Ok(value.0)
-    }
-
-    pub fn advance_to_cf_filters(
-        &self,
-        bundle: usize,
-        checkpoint: FilterHeader,
-        headers: Vec<FilterHeader>,
-        filters: Vec<(usize, Vec<u8>)>,
-    ) -> Result<BundleStatus, CompactFiltersError> {
-        let cf_filters = filters
-            .into_iter()
-            .zip(headers.into_iter())
-            .scan(checkpoint, |prev_header, ((_, filter_content), header)| {
-                let filter = BlockFilter::new(&filter_content);
-                if header != filter.filter_header(prev_header) {
-                    return Some(Err(CompactFiltersError::InvalidFilter));
-                }
-                *prev_header = header;
-
-                Some(Ok::<_, CompactFiltersError>(filter_content))
-            })
-            .collect::<Result<_, _>>()?;
-
-        let key = StoreEntry::CFilterTable((self.filter_type, Some(bundle))).get_key();
-        let value = (BundleStatus::CFilters { cf_filters }, checkpoint);
-
-        let read_store = self.store.read().unwrap();
-        read_store.put(key, value.serialize())?;
-
-        Ok(value.0)
-    }
-
-    pub fn prune_filters(
-        &self,
-        bundle: usize,
-        checkpoint: FilterHeader,
-    ) -> Result<BundleStatus, CompactFiltersError> {
-        let key = StoreEntry::CFilterTable((self.filter_type, Some(bundle))).get_key();
-        let value = (BundleStatus::Pruned, checkpoint);
-
-        let read_store = self.store.read().unwrap();
-        read_store.put(key, value.serialize())?;
-
-        Ok(value.0)
-    }
-
-    pub fn mark_as_tip(
-        &self,
-        bundle: usize,
-        cf_filters: Vec<Vec<u8>>,
-        checkpoint: FilterHeader,
-    ) -> Result<BundleStatus, CompactFiltersError> {
-        let key = StoreEntry::CFilterTable((self.filter_type, Some(bundle))).get_key();
-        let value = (BundleStatus::Tip { cf_filters }, checkpoint);
-
-        let read_store = self.store.read().unwrap();
-        read_store.put(key, value.serialize())?;
-
-        Ok(value.0)
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/sync.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/sync.rs.html deleted file mode 100644 index 726ec973b8..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/compact_filters/sync.rs.html +++ /dev/null @@ -1,597 +0,0 @@ -sync.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-use std::collections::{BTreeMap, HashMap, VecDeque};
-use std::sync::{Arc, Mutex};
-use std::time::Duration;
-
-use bitcoin::hash_types::{BlockHash, FilterHeader};
-use bitcoin::network::message::NetworkMessage;
-use bitcoin::network::message_blockdata::GetHeadersMessage;
-use bitcoin::util::bip158::BlockFilter;
-
-use super::peer::*;
-use super::store::*;
-use super::CompactFiltersError;
-use crate::error::Error;
-
-pub(crate) const BURIED_CONFIRMATIONS: usize = 100;
-
-pub struct CfSync {
-    headers_store: Arc<ChainStore<Full>>,
-    cf_store: Arc<CfStore>,
-    skip_blocks: usize,
-    bundles: Mutex<VecDeque<(BundleStatus, FilterHeader, usize)>>,
-}
-
-impl CfSync {
-    pub fn new(
-        headers_store: Arc<ChainStore<Full>>,
-        skip_blocks: usize,
-        filter_type: u8,
-    ) -> Result<Self, CompactFiltersError> {
-        let cf_store = Arc::new(CfStore::new(&headers_store, filter_type)?);
-
-        Ok(CfSync {
-            headers_store,
-            cf_store,
-            skip_blocks,
-            bundles: Mutex::new(VecDeque::new()),
-        })
-    }
-
-    pub fn pruned_bundles(&self) -> Result<usize, CompactFiltersError> {
-        Ok(self
-            .cf_store
-            .get_bundles()?
-            .into_iter()
-            .skip(self.skip_blocks / 1000)
-            .fold(0, |acc, (status, _)| match status {
-                BundleStatus::Pruned => acc + 1,
-                _ => acc,
-            }))
-    }
-
-    pub fn prepare_sync(&self, peer: Arc<Peer>) -> Result<(), CompactFiltersError> {
-        let mut bundles_lock = self.bundles.lock().unwrap();
-
-        let resp = peer.get_cf_checkpt(
-            self.cf_store.get_filter_type(),
-            self.headers_store.get_tip_hash()?.unwrap(),
-        )?;
-        self.cf_store.replace_checkpoints(resp.filter_headers)?;
-
-        bundles_lock.clear();
-        for (index, (status, checkpoint)) in self.cf_store.get_bundles()?.into_iter().enumerate() {
-            bundles_lock.push_back((status, checkpoint, index));
-        }
-
-        Ok(())
-    }
-
-    pub fn capture_thread_for_sync<F, Q>(
-        &self,
-        peer: Arc<Peer>,
-        process: F,
-        completed_bundle: Q,
-    ) -> Result<(), CompactFiltersError>
-    where
-        F: Fn(&BlockHash, &BlockFilter) -> Result<bool, CompactFiltersError>,
-        Q: Fn(usize) -> Result<(), Error>,
-    {
-        let current_height = self.headers_store.get_height()?; // TODO: we should update it in case headers_store is also updated
-
-        loop {
-            let (mut status, checkpoint, index) = match self.bundles.lock().unwrap().pop_front() {
-                None => break,
-                Some(x) => x,
-            };
-
-            log::debug!(
-                "Processing bundle #{} - height {} to {}",
-                index,
-                index * 1000 + 1,
-                (index + 1) * 1000
-            );
-
-            let process_received_filters =
-                |expected_filters| -> Result<BTreeMap<usize, Vec<u8>>, CompactFiltersError> {
-                    let mut filters_map = BTreeMap::new();
-                    for _ in 0..expected_filters {
-                        let filter = peer.pop_cf_filter_resp()?;
-                        if filter.filter_type != self.cf_store.get_filter_type() {
-                            return Err(CompactFiltersError::InvalidResponse);
-                        }
-
-                        match self.headers_store.get_height_for(&filter.block_hash)? {
-                            Some(height) => filters_map.insert(height, filter.filter),
-                            None => return Err(CompactFiltersError::InvalidFilter),
-                        };
-                    }
-
-                    Ok(filters_map)
-                };
-
-            let start_height = index * 1000 + 1;
-            let mut already_processed = 0;
-
-            if start_height < self.skip_blocks {
-                status = self.cf_store.prune_filters(index, checkpoint)?;
-            }
-
-            let stop_height = std::cmp::min(current_height, start_height + 999);
-            let stop_hash = self.headers_store.get_block_hash(stop_height)?.unwrap();
-
-            if let BundleStatus::Init = status {
-                log::trace!("status: Init");
-
-                let resp = peer.get_cf_headers(0x00, start_height as u32, stop_hash)?;
-
-                assert!(resp.previous_filter_header == checkpoint);
-                status =
-                    self.cf_store
-                        .advance_to_cf_headers(index, checkpoint, resp.filter_hashes)?;
-            }
-            if let BundleStatus::Tip { cf_filters } = status {
-                log::trace!("status: Tip (beginning) ");
-
-                already_processed = cf_filters.len();
-                let headers_resp = peer.get_cf_headers(0x00, start_height as u32, stop_hash)?;
-
-                let cf_headers = match self.cf_store.advance_to_cf_headers(
-                    index,
-                    checkpoint,
-                    headers_resp.filter_hashes,
-                )? {
-                    BundleStatus::CfHeaders { cf_headers } => cf_headers,
-                    _ => return Err(CompactFiltersError::InvalidResponse),
-                };
-
-                peer.get_cf_filters(
-                    self.cf_store.get_filter_type(),
-                    (start_height + cf_filters.len()) as u32,
-                    stop_hash,
-                )?;
-                let expected_filters = stop_height - start_height + 1 - cf_filters.len();
-                let filters_map = process_received_filters(expected_filters)?;
-                let filters = cf_filters
-                    .into_iter()
-                    .enumerate()
-                    .chain(filters_map.into_iter())
-                    .collect();
-                status = self
-                    .cf_store
-                    .advance_to_cf_filters(index, checkpoint, cf_headers, filters)?;
-            }
-            if let BundleStatus::CfHeaders { cf_headers } = status {
-                log::trace!("status: CFHeaders");
-
-                peer.get_cf_filters(
-                    self.cf_store.get_filter_type(),
-                    start_height as u32,
-                    stop_hash,
-                )?;
-                let expected_filters = stop_height - start_height + 1;
-                let filters_map = process_received_filters(expected_filters)?;
-                status = self.cf_store.advance_to_cf_filters(
-                    index,
-                    checkpoint,
-                    cf_headers,
-                    filters_map.into_iter().collect(),
-                )?;
-            }
-            if let BundleStatus::CFilters { cf_filters } = status {
-                log::trace!("status: CFilters");
-
-                let last_sync_buried_height =
-                    (start_height + already_processed).saturating_sub(BURIED_CONFIRMATIONS);
-
-                for (filter_index, filter) in cf_filters.iter().enumerate() {
-                    let height = filter_index + start_height;
-
-                    // do not download blocks that were already "buried" since the last sync
-                    if height < last_sync_buried_height {
-                        continue;
-                    }
-
-                    let block_hash = self.headers_store.get_block_hash(height)?.unwrap();
-
-                    // TODO: also download random blocks?
-                    if process(&block_hash, &BlockFilter::new(filter))? {
-                        log::debug!("Downloading block {}", block_hash);
-
-                        let block = peer
-                            .get_block(block_hash)?
-                            .ok_or(CompactFiltersError::MissingBlock)?;
-                        self.headers_store.save_full_block(&block, height)?;
-                    }
-                }
-
-                status = BundleStatus::Processed { cf_filters };
-            }
-            if let BundleStatus::Processed { cf_filters } = status {
-                log::trace!("status: Processed");
-
-                if current_height - stop_height > 1000 {
-                    status = self.cf_store.prune_filters(index, checkpoint)?;
-                } else {
-                    status = self.cf_store.mark_as_tip(index, cf_filters, checkpoint)?;
-                }
-
-                completed_bundle(index)?;
-            }
-            if let BundleStatus::Pruned = status {
-                log::trace!("status: Pruned");
-            }
-            if let BundleStatus::Tip { .. } = status {
-                log::trace!("status: Tip");
-            }
-        }
-
-        Ok(())
-    }
-}
-
-pub fn sync_headers<F>(
-    peer: Arc<Peer>,
-    store: Arc<ChainStore<Full>>,
-    sync_fn: F,
-) -> Result<Option<ChainStore<Snapshot>>, CompactFiltersError>
-where
-    F: Fn(usize) -> Result<(), Error>,
-{
-    let locators = store.get_locators()?;
-    let locators_vec = locators.iter().map(|(hash, _)| hash).cloned().collect();
-    let locators_map: HashMap<_, _> = locators.into_iter().collect();
-
-    peer.send(NetworkMessage::GetHeaders(GetHeadersMessage::new(
-        locators_vec,
-        Default::default(),
-    )))?;
-    let (mut snapshot, mut last_hash) = if let NetworkMessage::Headers(headers) = peer
-        .recv("headers", Some(Duration::from_secs(TIMEOUT_SECS)))?
-        .ok_or(CompactFiltersError::Timeout)?
-    {
-        if headers.is_empty() {
-            return Ok(None);
-        }
-
-        match locators_map.get(&headers[0].prev_blockhash) {
-            None => return Err(CompactFiltersError::InvalidHeaders),
-            Some(from) => (store.start_snapshot(*from)?, headers[0].prev_blockhash),
-        }
-    } else {
-        return Err(CompactFiltersError::InvalidResponse);
-    };
-
-    let mut sync_height = store.get_height()?;
-    while sync_height < peer.get_version().start_height as usize {
-        peer.send(NetworkMessage::GetHeaders(GetHeadersMessage::new(
-            vec![last_hash],
-            Default::default(),
-        )))?;
-        if let NetworkMessage::Headers(headers) = peer
-            .recv("headers", Some(Duration::from_secs(TIMEOUT_SECS)))?
-            .ok_or(CompactFiltersError::Timeout)?
-        {
-            let batch_len = headers.len();
-            last_hash = snapshot.apply(sync_height, headers)?;
-
-            sync_height += batch_len;
-            sync_fn(sync_height)?;
-        } else {
-            return Err(CompactFiltersError::InvalidResponse);
-        }
-    }
-
-    Ok(Some(snapshot))
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/electrum.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/electrum.rs.html deleted file mode 100644 index eeee1f6772..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/electrum.rs.html +++ /dev/null @@ -1,643 +0,0 @@ -electrum.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Electrum
-//!
-//! This module defines a [`Blockchain`] struct that wraps an [`electrum_client::Client`]
-//! and implements the logic required to populate the wallet's [database](crate::database::Database) by
-//! querying the inner client.
-//!
-//! ## Example
-//!
-//! ```no_run
-//! # use bdk::blockchain::electrum::ElectrumBlockchain;
-//! let client = electrum_client::Client::new("ssl://electrum.blockstream.info:50002")?;
-//! let blockchain = ElectrumBlockchain::from(client);
-//! # Ok::<(), bdk::Error>(())
-//! ```
-
-use std::collections::{HashMap, HashSet};
-
-#[allow(unused_imports)]
-use log::{debug, error, info, trace};
-
-use bitcoin::{Transaction, Txid};
-
-use electrum_client::{Client, ConfigBuilder, ElectrumApi, Socks5Config};
-
-use super::script_sync::Request;
-use super::*;
-use crate::database::{BatchDatabase, Database};
-use crate::error::Error;
-use crate::{BlockTime, FeeRate};
-
-/// Wrapper over an Electrum Client that implements the required blockchain traits
-///
-/// ## Example
-/// See the [`blockchain::electrum`](crate::blockchain::electrum) module for a usage example.
-pub struct ElectrumBlockchain {
-    client: Client,
-    stop_gap: usize,
-}
-
-impl std::convert::From<Client> for ElectrumBlockchain {
-    fn from(client: Client) -> Self {
-        ElectrumBlockchain {
-            client,
-            stop_gap: 20,
-        }
-    }
-}
-
-impl Blockchain for ElectrumBlockchain {
-    fn get_capabilities(&self) -> HashSet<Capability> {
-        vec![
-            Capability::FullHistory,
-            Capability::GetAnyTx,
-            Capability::AccurateFees,
-        ]
-        .into_iter()
-        .collect()
-    }
-
-    fn setup<D: BatchDatabase, P: Progress>(
-        &self,
-        database: &mut D,
-        _progress_update: P,
-    ) -> Result<(), Error> {
-        let mut request = script_sync::start(database, self.stop_gap)?;
-        let mut block_times = HashMap::<u32, u32>::new();
-        let mut txid_to_height = HashMap::<Txid, u32>::new();
-        let mut tx_cache = TxCache::new(database, &self.client);
-        let chunk_size = self.stop_gap;
-        // The electrum server has been inconsistent somehow in its responses during sync. For
-        // example, we do a batch request of transactions and the response contains less
-        // tranascations than in the request. This should never happen but we don't want to panic.
-        let electrum_goof = || Error::Generic("electrum server misbehaving".to_string());
-
-        let batch_update = loop {
-            request = match request {
-                Request::Script(script_req) => {
-                    let scripts = script_req.request().take(chunk_size);
-                    let txids_per_script: Vec<Vec<_>> = self
-                        .client
-                        .batch_script_get_history(scripts)
-                        .map_err(Error::Electrum)?
-                        .into_iter()
-                        .map(|txs| {
-                            txs.into_iter()
-                                .map(|tx| {
-                                    let tx_height = match tx.height {
-                                        none if none <= 0 => None,
-                                        height => {
-                                            txid_to_height.insert(tx.tx_hash, height as u32);
-                                            Some(height as u32)
-                                        }
-                                    };
-                                    (tx.tx_hash, tx_height)
-                                })
-                                .collect()
-                        })
-                        .collect();
-
-                    script_req.satisfy(txids_per_script)?
-                }
-
-                Request::Conftime(conftime_req) => {
-                    // collect up to chunk_size heights to fetch from electrum
-                    let needs_block_height = {
-                        let mut needs_block_height_iter = conftime_req
-                            .request()
-                            .filter_map(|txid| txid_to_height.get(txid).cloned())
-                            .filter(|height| block_times.get(height).is_none());
-                        let mut needs_block_height = HashSet::new();
-
-                        while needs_block_height.len() < chunk_size {
-                            match needs_block_height_iter.next() {
-                                Some(height) => needs_block_height.insert(height),
-                                None => break,
-                            };
-                        }
-                        needs_block_height
-                    };
-
-                    let new_block_headers = self
-                        .client
-                        .batch_block_header(needs_block_height.iter().cloned())?;
-
-                    for (height, header) in needs_block_height.into_iter().zip(new_block_headers) {
-                        block_times.insert(height, header.time);
-                    }
-
-                    let conftimes = conftime_req
-                        .request()
-                        .take(chunk_size)
-                        .map(|txid| {
-                            let confirmation_time = txid_to_height
-                                .get(txid)
-                                .map(|height| {
-                                    let timestamp =
-                                        *block_times.get(height).ok_or_else(electrum_goof)?;
-                                    Result::<_, Error>::Ok(BlockTime {
-                                        height: *height,
-                                        timestamp: timestamp.into(),
-                                    })
-                                })
-                                .transpose()?;
-                            Ok(confirmation_time)
-                        })
-                        .collect::<Result<_, Error>>()?;
-
-                    conftime_req.satisfy(conftimes)?
-                }
-                Request::Tx(tx_req) => {
-                    let needs_full = tx_req.request().take(chunk_size);
-                    tx_cache.save_txs(needs_full.clone())?;
-                    let full_transactions = needs_full
-                        .map(|txid| tx_cache.get(*txid).ok_or_else(electrum_goof))
-                        .collect::<Result<Vec<_>, _>>()?;
-                    let input_txs = full_transactions.iter().flat_map(|tx| {
-                        tx.input
-                            .iter()
-                            .filter(|input| !input.previous_output.is_null())
-                            .map(|input| &input.previous_output.txid)
-                    });
-                    tx_cache.save_txs(input_txs)?;
-
-                    let full_details = full_transactions
-                        .into_iter()
-                        .map(|tx| {
-                            let prev_outputs = tx
-                                .input
-                                .iter()
-                                .map(|input| {
-                                    if input.previous_output.is_null() {
-                                        return Ok(None);
-                                    }
-                                    let prev_tx = tx_cache
-                                        .get(input.previous_output.txid)
-                                        .ok_or_else(electrum_goof)?;
-                                    let txout = prev_tx
-                                        .output
-                                        .get(input.previous_output.vout as usize)
-                                        .ok_or_else(electrum_goof)?;
-                                    Ok(Some(txout.clone()))
-                                })
-                                .collect::<Result<Vec<_>, Error>>()?;
-                            Ok((prev_outputs, tx))
-                        })
-                        .collect::<Result<Vec<_>, Error>>()?;
-
-                    tx_req.satisfy(full_details)?
-                }
-                Request::Finish(batch_update) => break batch_update,
-            }
-        };
-
-        database.commit_batch(batch_update)?;
-        Ok(())
-    }
-
-    fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        Ok(self.client.transaction_get(txid).map(Option::Some)?)
-    }
-
-    fn broadcast(&self, tx: &Transaction) -> Result<(), Error> {
-        Ok(self.client.transaction_broadcast(tx).map(|_| ())?)
-    }
-
-    fn get_height(&self) -> Result<u32, Error> {
-        // TODO: unsubscribe when added to the client, or is there a better call to use here?
-
-        Ok(self
-            .client
-            .block_headers_subscribe()
-            .map(|data| data.height as u32)?)
-    }
-
-    fn estimate_fee(&self, target: usize) -> Result<FeeRate, Error> {
-        Ok(FeeRate::from_btc_per_kvb(
-            self.client.estimate_fee(target)? as f32
-        ))
-    }
-}
-
-struct TxCache<'a, 'b, D> {
-    db: &'a D,
-    client: &'b Client,
-    cache: HashMap<Txid, Transaction>,
-}
-
-impl<'a, 'b, D: Database> TxCache<'a, 'b, D> {
-    fn new(db: &'a D, client: &'b Client) -> Self {
-        TxCache {
-            db,
-            client,
-            cache: HashMap::default(),
-        }
-    }
-    fn save_txs<'c>(&mut self, txids: impl Iterator<Item = &'c Txid>) -> Result<(), Error> {
-        let mut need_fetch = vec![];
-        for txid in txids {
-            if self.cache.get(txid).is_some() {
-                continue;
-            } else if let Some(transaction) = self.db.get_raw_tx(txid)? {
-                self.cache.insert(*txid, transaction);
-            } else {
-                need_fetch.push(txid);
-            }
-        }
-
-        if !need_fetch.is_empty() {
-            let txs = self
-                .client
-                .batch_transaction_get(need_fetch.clone())
-                .map_err(Error::Electrum)?;
-            for (tx, _txid) in txs.into_iter().zip(need_fetch) {
-                debug_assert_eq!(*_txid, tx.txid());
-                self.cache.insert(tx.txid(), tx);
-            }
-        }
-
-        Ok(())
-    }
-
-    fn get(&self, txid: Txid) -> Option<Transaction> {
-        self.cache.get(&txid).map(Clone::clone)
-    }
-}
-
-/// Configuration for an [`ElectrumBlockchain`]
-#[derive(Debug, serde::Deserialize, serde::Serialize, Clone, PartialEq)]
-pub struct ElectrumBlockchainConfig {
-    /// URL of the Electrum server (such as ElectrumX, Esplora, BWT) may start with `ssl://` or `tcp://` and include a port
-    ///
-    /// eg. `ssl://electrum.blockstream.info:60002`
-    pub url: String,
-    /// URL of the socks5 proxy server or a Tor service
-    pub socks5: Option<String>,
-    /// Request retry count
-    pub retry: u8,
-    /// Request timeout (seconds)
-    pub timeout: Option<u8>,
-    /// Stop searching addresses for transactions after finding an unused gap of this length
-    pub stop_gap: usize,
-}
-
-impl ConfigurableBlockchain for ElectrumBlockchain {
-    type Config = ElectrumBlockchainConfig;
-
-    fn from_config(config: &Self::Config) -> Result<Self, Error> {
-        let socks5 = config.socks5.as_ref().map(Socks5Config::new);
-        let electrum_config = ConfigBuilder::new()
-            .retry(config.retry)
-            .timeout(config.timeout)?
-            .socks5(socks5)?
-            .build();
-
-        Ok(ElectrumBlockchain {
-            client: Client::from_config(config.url.as_str(), electrum_config)?,
-            stop_gap: config.stop_gap,
-        })
-    }
-}
-
-#[cfg(test)]
-#[cfg(feature = "test-electrum")]
-crate::bdk_blockchain_tests! {
-    fn test_instance(test_client: &TestClient) -> ElectrumBlockchain {
-        ElectrumBlockchain::from(Client::new(&test_client.electrsd.electrum_url).unwrap())
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/api.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/api.rs.html deleted file mode 100644 index 22780f1a4d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/api.rs.html +++ /dev/null @@ -1,239 +0,0 @@ -api.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-
//! structs from the esplora API
-//!
-//! see: <https://github.com/Blockstream/esplora/blob/master/API.md>
-use crate::BlockTime;
-use bitcoin::{OutPoint, Script, Transaction, TxIn, TxOut, Txid};
-
-#[derive(serde::Deserialize, Clone, Debug)]
-pub struct PrevOut {
-    pub value: u64,
-    pub scriptpubkey: Script,
-}
-
-#[derive(serde::Deserialize, Clone, Debug)]
-pub struct Vin {
-    pub txid: Txid,
-    pub vout: u32,
-    // None if coinbase
-    pub prevout: Option<PrevOut>,
-    pub scriptsig: Script,
-    #[serde(deserialize_with = "deserialize_witness")]
-    pub witness: Vec<Vec<u8>>,
-    pub sequence: u32,
-    pub is_coinbase: bool,
-}
-
-#[derive(serde::Deserialize, Clone, Debug)]
-pub struct Vout {
-    pub value: u64,
-    pub scriptpubkey: Script,
-}
-
-#[derive(serde::Deserialize, Clone, Debug)]
-pub struct TxStatus {
-    pub confirmed: bool,
-    pub block_height: Option<u32>,
-    pub block_time: Option<u64>,
-}
-
-#[derive(serde::Deserialize, Clone, Debug)]
-pub struct Tx {
-    pub txid: Txid,
-    pub version: i32,
-    pub locktime: u32,
-    pub vin: Vec<Vin>,
-    pub vout: Vec<Vout>,
-    pub status: TxStatus,
-    pub fee: u64,
-}
-
-impl Tx {
-    pub fn to_tx(&self) -> Transaction {
-        Transaction {
-            version: self.version,
-            lock_time: self.locktime,
-            input: self
-                .vin
-                .iter()
-                .cloned()
-                .map(|vin| TxIn {
-                    previous_output: OutPoint {
-                        txid: vin.txid,
-                        vout: vin.vout,
-                    },
-                    script_sig: vin.scriptsig,
-                    sequence: vin.sequence,
-                    witness: vin.witness,
-                })
-                .collect(),
-            output: self
-                .vout
-                .iter()
-                .cloned()
-                .map(|vout| TxOut {
-                    value: vout.value,
-                    script_pubkey: vout.scriptpubkey,
-                })
-                .collect(),
-        }
-    }
-
-    pub fn confirmation_time(&self) -> Option<BlockTime> {
-        match self.status {
-            TxStatus {
-                confirmed: true,
-                block_height: Some(height),
-                block_time: Some(timestamp),
-            } => Some(BlockTime { timestamp, height }),
-            _ => None,
-        }
-    }
-
-    pub fn previous_outputs(&self) -> Vec<Option<TxOut>> {
-        self.vin
-            .iter()
-            .cloned()
-            .map(|vin| {
-                vin.prevout.map(|po| TxOut {
-                    script_pubkey: po.scriptpubkey,
-                    value: po.value,
-                })
-            })
-            .collect()
-    }
-}
-
-fn deserialize_witness<'de, D>(d: D) -> Result<Vec<Vec<u8>>, D::Error>
-where
-    D: serde::de::Deserializer<'de>,
-{
-    use crate::serde::Deserialize;
-    use bitcoin::hashes::hex::FromHex;
-    let list = Vec::<String>::deserialize(d)?;
-    list.into_iter()
-        .map(|hex_str| Vec::<u8>::from_hex(&hex_str))
-        .collect::<Result<Vec<Vec<u8>>, _>>()
-        .map_err(serde::de::Error::custom)
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/mod.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/mod.rs.html deleted file mode 100644 index f1e7fdb1d3..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/mod.rs.html +++ /dev/null @@ -1,429 +0,0 @@ -mod.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-
//! Esplora
-//!
-//! This module defines a [`EsploraBlockchain`] struct that can query an Esplora
-//! backend populate the wallet's [database](crate::database::Database) by:
-//!
-//! ## Example
-//!
-//! ```no_run
-//! # use bdk::blockchain::esplora::EsploraBlockchain;
-//! let blockchain = EsploraBlockchain::new("https://blockstream.info/testnet/api", 20);
-//! # Ok::<(), bdk::Error>(())
-//! ```
-//!
-//! Esplora blockchain can use either `ureq` or `reqwest` for the HTTP client
-//! depending on your needs (blocking or async respectively).
-//!
-//! Please note, to configure the Esplora HTTP client correctly use one of:
-//! Blocking:  --features='esplora,ureq'
-//! Async:     --features='async-interface,esplora,reqwest' --no-default-features
-use std::collections::HashMap;
-use std::fmt;
-use std::io;
-
-use bitcoin::consensus;
-use bitcoin::{BlockHash, Txid};
-
-use crate::error::Error;
-use crate::FeeRate;
-
-#[cfg(feature = "reqwest")]
-mod reqwest;
-
-#[cfg(feature = "reqwest")]
-pub use self::reqwest::*;
-
-#[cfg(feature = "ureq")]
-mod ureq;
-
-#[cfg(feature = "ureq")]
-pub use self::ureq::*;
-
-mod api;
-
-fn into_fee_rate(target: usize, estimates: HashMap<String, f64>) -> Result<FeeRate, Error> {
-    let fee_val = {
-        let mut pairs = estimates
-            .into_iter()
-            .filter_map(|(k, v)| Some((k.parse::<usize>().ok()?, v)))
-            .collect::<Vec<_>>();
-        pairs.sort_unstable_by_key(|(k, _)| std::cmp::Reverse(*k));
-        pairs
-            .into_iter()
-            .find(|(k, _)| k <= &target)
-            .map(|(_, v)| v)
-            .unwrap_or(1.0)
-    };
-    Ok(FeeRate::from_sat_per_vb(fee_val as f32))
-}
-
-/// Errors that can happen during a sync with [`EsploraBlockchain`]
-#[derive(Debug)]
-pub enum EsploraError {
-    /// Error during ureq HTTP request
-    #[cfg(feature = "ureq")]
-    Ureq(::ureq::Error),
-    /// Transport error during the ureq HTTP call
-    #[cfg(feature = "ureq")]
-    UreqTransport(::ureq::Transport),
-    /// Error during reqwest HTTP request
-    #[cfg(feature = "reqwest")]
-    Reqwest(::reqwest::Error),
-    /// HTTP response error
-    HttpResponse(u16),
-    /// IO error during ureq response read
-    Io(io::Error),
-    /// No header found in ureq response
-    NoHeader,
-    /// Invalid number returned
-    Parsing(std::num::ParseIntError),
-    /// Invalid Bitcoin data returned
-    BitcoinEncoding(bitcoin::consensus::encode::Error),
-    /// Invalid Hex data returned
-    Hex(bitcoin::hashes::hex::Error),
-
-    /// Transaction not found
-    TransactionNotFound(Txid),
-    /// Header height not found
-    HeaderHeightNotFound(u32),
-    /// Header hash not found
-    HeaderHashNotFound(BlockHash),
-}
-
-impl fmt::Display for EsploraError {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        write!(f, "{:?}", self)
-    }
-}
-
-/// Configuration for an [`EsploraBlockchain`]
-#[derive(Debug, serde::Deserialize, serde::Serialize, Clone, PartialEq)]
-pub struct EsploraBlockchainConfig {
-    /// Base URL of the esplora service
-    ///
-    /// eg. `https://blockstream.info/api/`
-    pub base_url: String,
-    /// Optional URL of the proxy to use to make requests to the Esplora server
-    ///
-    /// The string should be formatted as: `<protocol>://<user>:<password>@host:<port>`.
-    ///
-    /// Note that the format of this value and the supported protocols change slightly between the
-    /// sync version of esplora (using `ureq`) and the async version (using `reqwest`). For more
-    /// details check with the documentation of the two crates. Both of them are compiled with
-    /// the `socks` feature enabled.
-    ///
-    /// The proxy is ignored when targeting `wasm32`.
-    #[serde(skip_serializing_if = "Option::is_none")]
-    pub proxy: Option<String>,
-    /// Number of parallel requests sent to the esplora service (default: 4)
-    #[serde(skip_serializing_if = "Option::is_none")]
-    pub concurrency: Option<u8>,
-    /// Stop searching addresses for transactions after finding an unused gap of this length.
-    pub stop_gap: usize,
-    /// Socket timeout.
-    #[serde(skip_serializing_if = "Option::is_none")]
-    pub timeout: Option<u64>,
-}
-
-impl EsploraBlockchainConfig {
-    /// create a config with default values given the base url and stop gap
-    pub fn new(base_url: String, stop_gap: usize) -> Self {
-        Self {
-            base_url,
-            proxy: None,
-            timeout: None,
-            stop_gap,
-            concurrency: None,
-        }
-    }
-}
-
-impl std::error::Error for EsploraError {}
-
-#[cfg(feature = "ureq")]
-impl_error!(::ureq::Transport, UreqTransport, EsploraError);
-#[cfg(feature = "reqwest")]
-impl_error!(::reqwest::Error, Reqwest, EsploraError);
-impl_error!(io::Error, Io, EsploraError);
-impl_error!(std::num::ParseIntError, Parsing, EsploraError);
-impl_error!(consensus::encode::Error, BitcoinEncoding, EsploraError);
-impl_error!(bitcoin::hashes::hex::Error, Hex, EsploraError);
-
-#[cfg(test)]
-#[cfg(feature = "test-esplora")]
-crate::bdk_blockchain_tests! {
-    fn test_instance(test_client: &TestClient) -> EsploraBlockchain {
-        EsploraBlockchain::new(&format!("http://{}",test_client.electrsd.esplora_url.as_ref().unwrap()), 20)
-    }
-}
-
-const DEFAULT_CONCURRENT_REQUESTS: u8 = 4;
-
-#[cfg(test)]
-mod test {
-    use super::*;
-
-    #[test]
-    fn feerate_parsing() {
-        let esplora_fees = serde_json::from_str::<HashMap<String, f64>>(
-            r#"{
-  "25": 1.015,
-  "5": 2.3280000000000003,
-  "12": 2.0109999999999997,
-  "15": 1.018,
-  "17": 1.018,
-  "11": 2.0109999999999997,
-  "3": 3.01,
-  "2": 4.9830000000000005,
-  "6": 2.2359999999999998,
-  "21": 1.018,
-  "13": 1.081,
-  "7": 2.2359999999999998,
-  "8": 2.2359999999999998,
-  "16": 1.018,
-  "20": 1.018,
-  "22": 1.017,
-  "23": 1.017,
-  "504": 1,
-  "9": 2.2359999999999998,
-  "14": 1.018,
-  "10": 2.0109999999999997,
-  "24": 1.017,
-  "1008": 1,
-  "1": 4.9830000000000005,
-  "4": 2.3280000000000003,
-  "19": 1.018,
-  "144": 1,
-  "18": 1.018
-}
-"#,
-        )
-        .unwrap();
-        assert_eq!(
-            into_fee_rate(6, esplora_fees.clone()).unwrap(),
-            FeeRate::from_sat_per_vb(2.236)
-        );
-        assert_eq!(
-            into_fee_rate(26, esplora_fees).unwrap(),
-            FeeRate::from_sat_per_vb(1.015),
-            "should inherit from value for 25"
-        );
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/ureq.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/ureq.rs.html deleted file mode 100644 index 9f192d989b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/esplora/ureq.rs.html +++ /dev/null @@ -1,747 +0,0 @@ -ureq.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Esplora by way of `ureq` HTTP client.
-
-use std::collections::{HashMap, HashSet};
-use std::io;
-use std::io::Read;
-use std::time::Duration;
-
-#[allow(unused_imports)]
-use log::{debug, error, info, trace};
-
-use ureq::{Agent, Proxy, Response};
-
-use bitcoin::consensus::{deserialize, serialize};
-use bitcoin::hashes::hex::{FromHex, ToHex};
-use bitcoin::hashes::{sha256, Hash};
-use bitcoin::{BlockHeader, Script, Transaction, Txid};
-
-use super::api::Tx;
-use crate::blockchain::esplora::EsploraError;
-use crate::blockchain::*;
-use crate::database::BatchDatabase;
-use crate::error::Error;
-use crate::FeeRate;
-
-#[derive(Debug, Clone)]
-struct UrlClient {
-    url: String,
-    agent: Agent,
-}
-
-/// Structure that implements the logic to sync with Esplora
-///
-/// ## Example
-/// See the [`blockchain::esplora`](crate::blockchain::esplora) module for a usage example.
-#[derive(Debug)]
-pub struct EsploraBlockchain {
-    url_client: UrlClient,
-    stop_gap: usize,
-    concurrency: u8,
-}
-
-impl EsploraBlockchain {
-    /// Create a new instance of the client from a base URL and the `stop_gap`.
-    pub fn new(base_url: &str, stop_gap: usize) -> Self {
-        EsploraBlockchain {
-            url_client: UrlClient {
-                url: base_url.to_string(),
-                agent: Agent::new(),
-            },
-            concurrency: super::DEFAULT_CONCURRENT_REQUESTS,
-            stop_gap,
-        }
-    }
-
-    /// Set the inner `ureq` agent.
-    pub fn with_agent(mut self, agent: Agent) -> Self {
-        self.url_client.agent = agent;
-        self
-    }
-
-    /// Set the number of parallel requests the client can make.
-    pub fn with_concurrency(mut self, concurrency: u8) -> Self {
-        self.concurrency = concurrency;
-        self
-    }
-}
-
-impl Blockchain for EsploraBlockchain {
-    fn get_capabilities(&self) -> HashSet<Capability> {
-        vec![
-            Capability::FullHistory,
-            Capability::GetAnyTx,
-            Capability::AccurateFees,
-        ]
-        .into_iter()
-        .collect()
-    }
-
-    fn setup<D: BatchDatabase, P: Progress>(
-        &self,
-        database: &mut D,
-        _progress_update: P,
-    ) -> Result<(), Error> {
-        use crate::blockchain::script_sync::Request;
-        let mut request = script_sync::start(database, self.stop_gap)?;
-        let mut tx_index: HashMap<Txid, Tx> = HashMap::new();
-        let batch_update = loop {
-            request = match request {
-                Request::Script(script_req) => {
-                    let scripts = script_req
-                        .request()
-                        .take(self.concurrency as usize)
-                        .cloned();
-
-                    let handles = scripts.map(move |script| {
-                        let client = self.url_client.clone();
-                        // make each request in its own thread.
-                        std::thread::spawn(move || {
-                            let mut related_txs: Vec<Tx> = client._scripthash_txs(&script, None)?;
-
-                            let n_confirmed =
-                                related_txs.iter().filter(|tx| tx.status.confirmed).count();
-                            // esplora pages on 25 confirmed transactions. If there's 25 or more we
-                            // keep requesting to see if there's more.
-                            if n_confirmed >= 25 {
-                                loop {
-                                    let new_related_txs: Vec<Tx> = client._scripthash_txs(
-                                        &script,
-                                        Some(related_txs.last().unwrap().txid),
-                                    )?;
-                                    let n = new_related_txs.len();
-                                    related_txs.extend(new_related_txs);
-                                    // we've reached the end
-                                    if n < 25 {
-                                        break;
-                                    }
-                                }
-                            }
-                            Result::<_, Error>::Ok(related_txs)
-                        })
-                    });
-
-                    let txs_per_script: Vec<Vec<Tx>> = handles
-                        .map(|handle| handle.join().unwrap())
-                        .collect::<Result<_, _>>()?;
-                    let mut satisfaction = vec![];
-
-                    for txs in txs_per_script {
-                        satisfaction.push(
-                            txs.iter()
-                                .map(|tx| (tx.txid, tx.status.block_height))
-                                .collect(),
-                        );
-                        for tx in txs {
-                            tx_index.insert(tx.txid, tx);
-                        }
-                    }
-
-                    script_req.satisfy(satisfaction)?
-                }
-                Request::Conftime(conftime_req) => {
-                    let conftimes = conftime_req
-                        .request()
-                        .map(|txid| {
-                            tx_index
-                                .get(txid)
-                                .expect("must be in index")
-                                .confirmation_time()
-                        })
-                        .collect();
-                    conftime_req.satisfy(conftimes)?
-                }
-                Request::Tx(tx_req) => {
-                    let full_txs = tx_req
-                        .request()
-                        .map(|txid| {
-                            let tx = tx_index.get(txid).expect("must be in index");
-                            (tx.previous_outputs(), tx.to_tx())
-                        })
-                        .collect();
-                    tx_req.satisfy(full_txs)?
-                }
-                Request::Finish(batch_update) => break batch_update,
-            }
-        };
-
-        database.commit_batch(batch_update)?;
-
-        Ok(())
-    }
-
-    fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        Ok(self.url_client._get_tx(txid)?)
-    }
-
-    fn broadcast(&self, tx: &Transaction) -> Result<(), Error> {
-        let _txid = self.url_client._broadcast(tx)?;
-        Ok(())
-    }
-
-    fn get_height(&self) -> Result<u32, Error> {
-        Ok(self.url_client._get_height()?)
-    }
-
-    fn estimate_fee(&self, target: usize) -> Result<FeeRate, Error> {
-        let estimates = self.url_client._get_fee_estimates()?;
-        super::into_fee_rate(target, estimates)
-    }
-}
-
-impl UrlClient {
-    fn _get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, EsploraError> {
-        let resp = self
-            .agent
-            .get(&format!("{}/tx/{}/raw", self.url, txid))
-            .call();
-
-        match resp {
-            Ok(resp) => Ok(Some(deserialize(&into_bytes(resp)?)?)),
-            Err(ureq::Error::Status(code, _)) => {
-                if is_status_not_found(code) {
-                    return Ok(None);
-                }
-                Err(EsploraError::HttpResponse(code))
-            }
-            Err(e) => Err(EsploraError::Ureq(e)),
-        }
-    }
-
-    fn _get_tx_no_opt(&self, txid: &Txid) -> Result<Transaction, EsploraError> {
-        match self._get_tx(txid) {
-            Ok(Some(tx)) => Ok(tx),
-            Ok(None) => Err(EsploraError::TransactionNotFound(*txid)),
-            Err(e) => Err(e),
-        }
-    }
-
-    fn _get_header(&self, block_height: u32) -> Result<BlockHeader, EsploraError> {
-        let resp = self
-            .agent
-            .get(&format!("{}/block-height/{}", self.url, block_height))
-            .call();
-
-        let bytes = match resp {
-            Ok(resp) => Ok(into_bytes(resp)?),
-            Err(ureq::Error::Status(code, _)) => Err(EsploraError::HttpResponse(code)),
-            Err(e) => Err(EsploraError::Ureq(e)),
-        }?;
-
-        let hash = std::str::from_utf8(&bytes)
-            .map_err(|_| EsploraError::HeaderHeightNotFound(block_height))?;
-
-        let resp = self
-            .agent
-            .get(&format!("{}/block/{}/header", self.url, hash))
-            .call();
-
-        match resp {
-            Ok(resp) => Ok(deserialize(&Vec::from_hex(&resp.into_string()?)?)?),
-            Err(ureq::Error::Status(code, _)) => Err(EsploraError::HttpResponse(code)),
-            Err(e) => Err(EsploraError::Ureq(e)),
-        }
-    }
-
-    fn _broadcast(&self, transaction: &Transaction) -> Result<(), EsploraError> {
-        let resp = self
-            .agent
-            .post(&format!("{}/tx", self.url))
-            .send_string(&serialize(transaction).to_hex());
-
-        match resp {
-            Ok(_) => Ok(()), // We do not return the txid?
-            Err(ureq::Error::Status(code, _)) => Err(EsploraError::HttpResponse(code)),
-            Err(e) => Err(EsploraError::Ureq(e)),
-        }
-    }
-
-    fn _get_height(&self) -> Result<u32, EsploraError> {
-        let resp = self
-            .agent
-            .get(&format!("{}/blocks/tip/height", self.url))
-            .call();
-
-        match resp {
-            Ok(resp) => Ok(resp.into_string()?.parse()?),
-            Err(ureq::Error::Status(code, _)) => Err(EsploraError::HttpResponse(code)),
-            Err(e) => Err(EsploraError::Ureq(e)),
-        }
-    }
-
-    fn _get_fee_estimates(&self) -> Result<HashMap<String, f64>, EsploraError> {
-        let resp = self
-            .agent
-            .get(&format!("{}/fee-estimates", self.url,))
-            .call();
-
-        let map = match resp {
-            Ok(resp) => {
-                let map: HashMap<String, f64> = resp.into_json()?;
-                Ok(map)
-            }
-            Err(ureq::Error::Status(code, _)) => Err(EsploraError::HttpResponse(code)),
-            Err(e) => Err(EsploraError::Ureq(e)),
-        }?;
-
-        Ok(map)
-    }
-
-    fn _scripthash_txs(
-        &self,
-        script: &Script,
-        last_seen: Option<Txid>,
-    ) -> Result<Vec<Tx>, EsploraError> {
-        let script_hash = sha256::Hash::hash(script.as_bytes()).into_inner().to_hex();
-        let url = match last_seen {
-            Some(last_seen) => format!(
-                "{}/scripthash/{}/txs/chain/{}",
-                self.url, script_hash, last_seen
-            ),
-            None => format!("{}/scripthash/{}/txs", self.url, script_hash),
-        };
-        Ok(self.agent.get(&url).call()?.into_json()?)
-    }
-}
-
-fn is_status_not_found(status: u16) -> bool {
-    status == 404
-}
-
-fn into_bytes(resp: Response) -> Result<Vec<u8>, io::Error> {
-    const BYTES_LIMIT: usize = 10 * 1_024 * 1_024;
-
-    let mut buf: Vec<u8> = vec![];
-    resp.into_reader()
-        .take((BYTES_LIMIT + 1) as u64)
-        .read_to_end(&mut buf)?;
-    if buf.len() > BYTES_LIMIT {
-        return Err(io::Error::new(
-            io::ErrorKind::Other,
-            "response too big for into_bytes",
-        ));
-    }
-
-    Ok(buf)
-}
-
-impl ConfigurableBlockchain for EsploraBlockchain {
-    type Config = super::EsploraBlockchainConfig;
-
-    fn from_config(config: &Self::Config) -> Result<Self, Error> {
-        let mut agent_builder = ureq::AgentBuilder::new();
-
-        if let Some(timeout) = config.timeout {
-            agent_builder = agent_builder.timeout(Duration::from_secs(timeout));
-        }
-
-        if let Some(proxy) = &config.proxy {
-            agent_builder = agent_builder
-                .proxy(Proxy::new(proxy).map_err(|e| Error::Esplora(Box::new(e.into())))?);
-        }
-
-        let mut blockchain = EsploraBlockchain::new(config.base_url.as_str(), config.stop_gap)
-            .with_agent(agent_builder.build());
-
-        if let Some(concurrency) = config.concurrency {
-            blockchain = blockchain.with_concurrency(concurrency);
-        }
-
-        Ok(blockchain)
-    }
-}
-
-impl From<ureq::Error> for EsploraError {
-    fn from(e: ureq::Error) -> Self {
-        match e {
-            ureq::Error::Status(code, _) => EsploraError::HttpResponse(code),
-            e => EsploraError::Ureq(e),
-        }
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/mod.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/mod.rs.html deleted file mode 100644 index 73a566131d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/mod.rs.html +++ /dev/null @@ -1,515 +0,0 @@ -mod.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Blockchain backends
-//!
-//! This module provides the implementation of a few commonly-used backends like
-//! [Electrum](crate::blockchain::electrum), [Esplora](crate::blockchain::esplora) and
-//! [Compact Filters/Neutrino](crate::blockchain::compact_filters), along with a generalized trait
-//! [`Blockchain`] that can be implemented to build customized backends.
-
-use std::collections::HashSet;
-use std::ops::Deref;
-use std::sync::mpsc::{channel, Receiver, Sender};
-use std::sync::Arc;
-
-use bitcoin::{Transaction, Txid};
-
-use crate::database::BatchDatabase;
-use crate::error::Error;
-use crate::FeeRate;
-
-#[cfg(any(
-    feature = "electrum",
-    feature = "esplora",
-    feature = "compact_filters",
-    feature = "rpc"
-))]
-pub mod any;
-mod script_sync;
-
-#[cfg(any(
-    feature = "electrum",
-    feature = "esplora",
-    feature = "compact_filters",
-    feature = "rpc"
-))]
-pub use any::{AnyBlockchain, AnyBlockchainConfig};
-
-#[cfg(feature = "electrum")]
-#[cfg_attr(docsrs, doc(cfg(feature = "electrum")))]
-pub mod electrum;
-#[cfg(feature = "electrum")]
-pub use self::electrum::ElectrumBlockchain;
-#[cfg(feature = "electrum")]
-pub use self::electrum::ElectrumBlockchainConfig;
-
-#[cfg(feature = "rpc")]
-#[cfg_attr(docsrs, doc(cfg(feature = "rpc")))]
-pub mod rpc;
-#[cfg(feature = "rpc")]
-pub use self::rpc::RpcBlockchain;
-#[cfg(feature = "rpc")]
-pub use self::rpc::RpcConfig;
-
-#[cfg(feature = "esplora")]
-#[cfg_attr(docsrs, doc(cfg(feature = "esplora")))]
-pub mod esplora;
-#[cfg(feature = "esplora")]
-pub use self::esplora::EsploraBlockchain;
-
-#[cfg(feature = "compact_filters")]
-#[cfg_attr(docsrs, doc(cfg(feature = "compact_filters")))]
-pub mod compact_filters;
-
-#[cfg(feature = "compact_filters")]
-pub use self::compact_filters::CompactFiltersBlockchain;
-
-/// Capabilities that can be supported by a [`Blockchain`] backend
-#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
-pub enum Capability {
-    /// Can recover the full history of a wallet and not only the set of currently spendable UTXOs
-    FullHistory,
-    /// Can fetch any historical transaction given its txid
-    GetAnyTx,
-    /// Can compute accurate fees for the transactions found during sync
-    AccurateFees,
-}
-
-/// Trait that defines the actions that must be supported by a blockchain backend
-#[maybe_async]
-pub trait Blockchain {
-    /// Return the set of [`Capability`] supported by this backend
-    fn get_capabilities(&self) -> HashSet<Capability>;
-
-    /// Setup the backend and populate the internal database for the first time
-    ///
-    /// This method is the equivalent of [`Blockchain::sync`], but it's guaranteed to only be
-    /// called once, at the first [`Wallet::sync`](crate::wallet::Wallet::sync).
-    ///
-    /// The rationale behind the distinction between `sync` and `setup` is that some custom backends
-    /// might need to perform specific actions only the first time they are synced.
-    ///
-    /// For types that do not have that distinction, only this method can be implemented, since
-    /// [`Blockchain::sync`] defaults to calling this internally if not overridden.
-    fn setup<D: BatchDatabase, P: 'static + Progress>(
-        &self,
-        database: &mut D,
-        progress_update: P,
-    ) -> Result<(), Error>;
-    /// Populate the internal database with transactions and UTXOs
-    ///
-    /// If not overridden, it defaults to calling [`Blockchain::setup`] internally.
-    ///
-    /// This method should implement the logic required to iterate over the list of the wallet's
-    /// script_pubkeys using [`Database::iter_script_pubkeys`] and look for relevant transactions
-    /// in the blockchain to populate the database with [`BatchOperations::set_tx`] and
-    /// [`BatchOperations::set_utxo`].
-    ///
-    /// This method should also take care of removing UTXOs that are seen as spent in the
-    /// blockchain, using [`BatchOperations::del_utxo`].
-    ///
-    /// The `progress_update` object can be used to give the caller updates about the progress by using
-    /// [`Progress::update`].
-    ///
-    /// [`Database::iter_script_pubkeys`]: crate::database::Database::iter_script_pubkeys
-    /// [`BatchOperations::set_tx`]: crate::database::BatchOperations::set_tx
-    /// [`BatchOperations::set_utxo`]: crate::database::BatchOperations::set_utxo
-    /// [`BatchOperations::del_utxo`]: crate::database::BatchOperations::del_utxo
-    fn sync<D: BatchDatabase, P: 'static + Progress>(
-        &self,
-        database: &mut D,
-        progress_update: P,
-    ) -> Result<(), Error> {
-        maybe_await!(self.setup(database, progress_update))
-    }
-
-    /// Fetch a transaction from the blockchain given its txid
-    fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error>;
-    /// Broadcast a transaction
-    fn broadcast(&self, tx: &Transaction) -> Result<(), Error>;
-
-    /// Return the current height
-    fn get_height(&self) -> Result<u32, Error>;
-    /// Estimate the fee rate required to confirm a transaction in a given `target` of blocks
-    fn estimate_fee(&self, target: usize) -> Result<FeeRate, Error>;
-}
-
-/// Trait for [`Blockchain`] types that can be created given a configuration
-pub trait ConfigurableBlockchain: Blockchain + Sized {
-    /// Type that contains the configuration
-    type Config: std::fmt::Debug;
-
-    /// Create a new instance given a configuration
-    fn from_config(config: &Self::Config) -> Result<Self, Error>;
-}
-
-/// Data sent with a progress update over a [`channel`]
-pub type ProgressData = (f32, Option<String>);
-
-/// Trait for types that can receive and process progress updates during [`Blockchain::sync`] and
-/// [`Blockchain::setup`]
-pub trait Progress: Send {
-    /// Send a new progress update
-    ///
-    /// The `progress` value should be in the range 0.0 - 100.0, and the `message` value is an
-    /// optional text message that can be displayed to the user.
-    fn update(&self, progress: f32, message: Option<String>) -> Result<(), Error>;
-}
-
-/// Shortcut to create a [`channel`] (pair of [`Sender`] and [`Receiver`]) that can transport [`ProgressData`]
-pub fn progress() -> (Sender<ProgressData>, Receiver<ProgressData>) {
-    channel()
-}
-
-impl Progress for Sender<ProgressData> {
-    fn update(&self, progress: f32, message: Option<String>) -> Result<(), Error> {
-        if !(0.0..=100.0).contains(&progress) {
-            return Err(Error::InvalidProgressValue(progress));
-        }
-
-        self.send((progress, message))
-            .map_err(|_| Error::ProgressUpdateError)
-    }
-}
-
-/// Type that implements [`Progress`] and drops every update received
-#[derive(Clone, Copy)]
-pub struct NoopProgress;
-
-/// Create a new instance of [`NoopProgress`]
-pub fn noop_progress() -> NoopProgress {
-    NoopProgress
-}
-
-impl Progress for NoopProgress {
-    fn update(&self, _progress: f32, _message: Option<String>) -> Result<(), Error> {
-        Ok(())
-    }
-}
-
-/// Type that implements [`Progress`] and logs at level `INFO` every update received
-#[derive(Clone, Copy)]
-pub struct LogProgress;
-
-/// Create a new instance of [`LogProgress`]
-pub fn log_progress() -> LogProgress {
-    LogProgress
-}
-
-impl Progress for LogProgress {
-    fn update(&self, progress: f32, message: Option<String>) -> Result<(), Error> {
-        log::info!(
-            "Sync {:.3}%: `{}`",
-            progress,
-            message.unwrap_or_else(|| "".into())
-        );
-
-        Ok(())
-    }
-}
-
-#[maybe_async]
-impl<T: Blockchain> Blockchain for Arc<T> {
-    fn get_capabilities(&self) -> HashSet<Capability> {
-        maybe_await!(self.deref().get_capabilities())
-    }
-
-    fn setup<D: BatchDatabase, P: 'static + Progress>(
-        &self,
-        database: &mut D,
-        progress_update: P,
-    ) -> Result<(), Error> {
-        maybe_await!(self.deref().setup(database, progress_update))
-    }
-
-    fn sync<D: BatchDatabase, P: 'static + Progress>(
-        &self,
-        database: &mut D,
-        progress_update: P,
-    ) -> Result<(), Error> {
-        maybe_await!(self.deref().sync(database, progress_update))
-    }
-
-    fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        maybe_await!(self.deref().get_tx(txid))
-    }
-    fn broadcast(&self, tx: &Transaction) -> Result<(), Error> {
-        maybe_await!(self.deref().broadcast(tx))
-    }
-
-    fn get_height(&self) -> Result<u32, Error> {
-        maybe_await!(self.deref().get_height())
-    }
-    fn estimate_fee(&self, target: usize) -> Result<FeeRate, Error> {
-        maybe_await!(self.deref().estimate_fee(target))
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/script_sync.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/script_sync.rs.html deleted file mode 100644 index cb4070b033..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/blockchain/script_sync.rs.html +++ /dev/null @@ -1,793 +0,0 @@ -script_sync.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-
/*!
-This models a how a sync happens where you have a server that you send your script pubkeys to and it
-returns associated transactions i.e. electrum.
-*/
-#![allow(dead_code)]
-use crate::{
-    database::{BatchDatabase, BatchOperations, DatabaseUtils},
-    wallet::time::Instant,
-    BlockTime, Error, KeychainKind, LocalUtxo, TransactionDetails,
-};
-use bitcoin::{OutPoint, Script, Transaction, TxOut, Txid};
-use log::*;
-use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque};
-
-/// A request for on-chain information
-pub enum Request<'a, D: BatchDatabase> {
-    /// A request for transactions related to script pubkeys.
-    Script(ScriptReq<'a, D>),
-    /// A request for confirmation times for some transactions.
-    Conftime(ConftimeReq<'a, D>),
-    /// A request for full transaction details of some transactions.
-    Tx(TxReq<'a, D>),
-    /// Requests are finished here's a batch database update to reflect data gathered.
-    Finish(D::Batch),
-}
-
-/// starts a sync
-pub fn start<D: BatchDatabase>(db: &D, stop_gap: usize) -> Result<Request<'_, D>, Error> {
-    use rand::seq::SliceRandom;
-    let mut keychains = vec![KeychainKind::Internal, KeychainKind::External];
-    // shuffling improve privacy, the server doesn't know my first request is from my internal or external addresses
-    keychains.shuffle(&mut rand::thread_rng());
-    let keychain = keychains.pop().unwrap();
-    let scripts_needed = db
-        .iter_script_pubkeys(Some(keychain))?
-        .into_iter()
-        .collect();
-    let state = State::new(db);
-
-    Ok(Request::Script(ScriptReq {
-        state,
-        scripts_needed,
-        script_index: 0,
-        stop_gap,
-        keychain,
-        next_keychains: keychains,
-    }))
-}
-
-pub struct ScriptReq<'a, D: BatchDatabase> {
-    state: State<'a, D>,
-    script_index: usize,
-    scripts_needed: VecDeque<Script>,
-    stop_gap: usize,
-    keychain: KeychainKind,
-    next_keychains: Vec<KeychainKind>,
-}
-
-/// The sync starts by returning script pubkeys we are interested in.
-impl<'a, D: BatchDatabase> ScriptReq<'a, D> {
-    pub fn request(&self) -> impl Iterator<Item = &Script> + Clone {
-        self.scripts_needed.iter()
-    }
-
-    pub fn satisfy(
-        mut self,
-        // we want to know the txids assoiciated with the script and their height
-        txids: Vec<Vec<(Txid, Option<u32>)>>,
-    ) -> Result<Request<'a, D>, Error> {
-        for (txid_list, script) in txids.iter().zip(self.scripts_needed.iter()) {
-            debug!(
-                "found {} transactions for script pubkey {}",
-                txid_list.len(),
-                script
-            );
-            if !txid_list.is_empty() {
-                // the address is active
-                self.state
-                    .last_active_index
-                    .insert(self.keychain, self.script_index);
-            }
-
-            for (txid, height) in txid_list {
-                // have we seen this txid already?
-                match self.state.db.get_tx(txid, true)? {
-                    Some(mut details) => {
-                        let old_height = details.confirmation_time.as_ref().map(|x| x.height);
-                        match (old_height, height) {
-                            (None, Some(_)) => {
-                                // It looks like the tx has confirmed since we last saw it -- we
-                                // need to know the confirmation time.
-                                self.state.tx_missing_conftime.insert(*txid, details);
-                            }
-                            (Some(old_height), Some(new_height)) if old_height != *new_height => {
-                                // The height of the tx has changed !? -- It's a reorg get the new confirmation time.
-                                self.state.tx_missing_conftime.insert(*txid, details);
-                            }
-                            (Some(_), None) => {
-                                // A re-org where the tx is not in the chain anymore.
-                                details.confirmation_time = None;
-                                self.state.finished_txs.push(details);
-                            }
-                            _ => self.state.finished_txs.push(details),
-                        }
-                    }
-                    None => {
-                        // we've never seen it let's get the whole thing
-                        self.state.tx_needed.insert(*txid);
-                    }
-                };
-            }
-
-            self.script_index += 1;
-        }
-
-        for _ in txids {
-            self.scripts_needed.pop_front();
-        }
-
-        let last_active_index = self
-            .state
-            .last_active_index
-            .get(&self.keychain)
-            .map(|x| x + 1)
-            .unwrap_or(0); // so no addresses active maps to 0
-
-        Ok(
-            if self.script_index > last_active_index + self.stop_gap
-                || self.scripts_needed.is_empty()
-            {
-                debug!(
-                    "finished scanning for transactions for keychain {:?} at index {}",
-                    self.keychain, last_active_index
-                );
-                // we're done here -- check if we need to do the next keychain
-                if let Some(keychain) = self.next_keychains.pop() {
-                    self.keychain = keychain;
-                    self.script_index = 0;
-                    self.scripts_needed = self
-                        .state
-                        .db
-                        .iter_script_pubkeys(Some(keychain))?
-                        .into_iter()
-                        .collect();
-                    Request::Script(self)
-                } else {
-                    Request::Tx(TxReq { state: self.state })
-                }
-            } else {
-                Request::Script(self)
-            },
-        )
-    }
-}
-
-/// Then we get full transactions
-pub struct TxReq<'a, D> {
-    state: State<'a, D>,
-}
-
-impl<'a, D: BatchDatabase> TxReq<'a, D> {
-    pub fn request(&self) -> impl Iterator<Item = &Txid> + Clone {
-        self.state.tx_needed.iter()
-    }
-
-    pub fn satisfy(
-        mut self,
-        tx_details: Vec<(Vec<Option<TxOut>>, Transaction)>,
-    ) -> Result<Request<'a, D>, Error> {
-        let tx_details: Vec<TransactionDetails> = tx_details
-            .into_iter()
-            .zip(self.state.tx_needed.iter())
-            .map(|((vout, tx), txid)| {
-                debug!("found tx_details for {}", txid);
-                assert_eq!(tx.txid(), *txid);
-                let mut sent: u64 = 0;
-                let mut received: u64 = 0;
-                let mut inputs_sum: u64 = 0;
-                let mut outputs_sum: u64 = 0;
-
-                for (txout, input) in vout.into_iter().zip(tx.input.iter()) {
-                    let txout = match txout {
-                        Some(txout) => txout,
-                        None => {
-                            // skip coinbase inputs
-                            debug_assert!(
-                                input.previous_output.is_null(),
-                                "prevout should only be missing for coinbase"
-                            );
-                            continue;
-                        }
-                    };
-
-                    inputs_sum += txout.value;
-                    if self.state.db.is_mine(&txout.script_pubkey)? {
-                        sent += txout.value;
-                    }
-                }
-
-                for out in &tx.output {
-                    outputs_sum += out.value;
-                    if self.state.db.is_mine(&out.script_pubkey)? {
-                        received += out.value;
-                    }
-                }
-                // we need to saturating sub since we want coinbase txs to map to 0 fee and
-                // this subtraction will be negative for coinbase txs.
-                let fee = inputs_sum.saturating_sub(outputs_sum);
-                Result::<_, Error>::Ok(TransactionDetails {
-                    txid: *txid,
-                    transaction: Some(tx),
-                    received,
-                    sent,
-                    // we're going to fill this in later
-                    confirmation_time: None,
-                    fee: Some(fee),
-                    verified: false,
-                })
-            })
-            .collect::<Result<Vec<_>, _>>()?;
-
-        for tx_detail in tx_details {
-            self.state.tx_needed.remove(&tx_detail.txid);
-            self.state
-                .tx_missing_conftime
-                .insert(tx_detail.txid, tx_detail);
-        }
-
-        if !self.state.tx_needed.is_empty() {
-            Ok(Request::Tx(self))
-        } else {
-            Ok(Request::Conftime(ConftimeReq { state: self.state }))
-        }
-    }
-}
-
-/// Final step is to get confirmation times
-pub struct ConftimeReq<'a, D> {
-    state: State<'a, D>,
-}
-
-impl<'a, D: BatchDatabase> ConftimeReq<'a, D> {
-    pub fn request(&self) -> impl Iterator<Item = &Txid> + Clone {
-        self.state.tx_missing_conftime.keys()
-    }
-
-    pub fn satisfy(
-        mut self,
-        confirmation_times: Vec<Option<BlockTime>>,
-    ) -> Result<Request<'a, D>, Error> {
-        let conftime_needed = self
-            .request()
-            .cloned()
-            .take(confirmation_times.len())
-            .collect::<Vec<_>>();
-        for (confirmation_time, txid) in confirmation_times.into_iter().zip(conftime_needed.iter())
-        {
-            debug!("confirmation time for {} was {:?}", txid, confirmation_time);
-            if let Some(mut tx_details) = self.state.tx_missing_conftime.remove(txid) {
-                tx_details.confirmation_time = confirmation_time;
-                self.state.finished_txs.push(tx_details);
-            }
-        }
-
-        if self.state.tx_missing_conftime.is_empty() {
-            Ok(Request::Finish(self.state.into_db_update()?))
-        } else {
-            Ok(Request::Conftime(self))
-        }
-    }
-}
-
-struct State<'a, D> {
-    db: &'a D,
-    last_active_index: HashMap<KeychainKind, usize>,
-    /// Transactions where we need to get the full details
-    tx_needed: BTreeSet<Txid>,
-    /// Transacitions that we know everything about
-    finished_txs: Vec<TransactionDetails>,
-    /// Transactions that discovered conftimes should be inserted into
-    tx_missing_conftime: BTreeMap<Txid, TransactionDetails>,
-    /// The start of the sync
-    start_time: Instant,
-}
-
-impl<'a, D: BatchDatabase> State<'a, D> {
-    fn new(db: &'a D) -> Self {
-        State {
-            db,
-            last_active_index: HashMap::default(),
-            finished_txs: vec![],
-            tx_needed: BTreeSet::default(),
-            tx_missing_conftime: BTreeMap::default(),
-            start_time: Instant::new(),
-        }
-    }
-    fn into_db_update(self) -> Result<D::Batch, Error> {
-        debug_assert!(self.tx_needed.is_empty() && self.tx_missing_conftime.is_empty());
-        let existing_txs = self.db.iter_txs(false)?;
-        let existing_txids: HashSet<Txid> = existing_txs.iter().map(|tx| tx.txid).collect();
-        let finished_txs = make_txs_consistent(&self.finished_txs);
-        let observed_txids: HashSet<Txid> = finished_txs.iter().map(|tx| tx.txid).collect();
-        let txids_to_delete = existing_txids.difference(&observed_txids);
-        let mut batch = self.db.begin_batch();
-
-        // Delete old txs that no longer exist
-        for txid in txids_to_delete {
-            if let Some(raw_tx) = self.db.get_raw_tx(txid)? {
-                for i in 0..raw_tx.output.len() {
-                    // Also delete any utxos from the txs that no longer exist.
-                    let _ = batch.del_utxo(&OutPoint {
-                        txid: *txid,
-                        vout: i as u32,
-                    })?;
-                }
-            } else {
-                unreachable!("we should always have the raw tx");
-            }
-            batch.del_tx(txid, true)?;
-        }
-
-        // Set every tx we observed
-        for finished_tx in &finished_txs {
-            let tx = finished_tx
-                .transaction
-                .as_ref()
-                .expect("transaction will always be present here");
-            for (i, output) in tx.output.iter().enumerate() {
-                if let Some((keychain, _)) =
-                    self.db.get_path_from_script_pubkey(&output.script_pubkey)?
-                {
-                    // add utxos we own from the new transactions we've seen.
-                    batch.set_utxo(&LocalUtxo {
-                        outpoint: OutPoint {
-                            txid: finished_tx.txid,
-                            vout: i as u32,
-                        },
-                        txout: output.clone(),
-                        keychain,
-                    })?;
-                }
-            }
-            batch.set_tx(finished_tx)?;
-        }
-
-        // we don't do this in the loop above since we may want to delete some of the utxos we
-        // just added in case there are new tranasactions that spend form each other.
-        for finished_tx in &finished_txs {
-            let tx = finished_tx
-                .transaction
-                .as_ref()
-                .expect("transaction will always be present here");
-            for input in &tx.input {
-                // Delete any spent utxos
-                batch.del_utxo(&input.previous_output)?;
-            }
-        }
-
-        for (keychain, last_active_index) in self.last_active_index {
-            batch.set_last_index(keychain, last_active_index as u32)?;
-        }
-
-        info!(
-            "finished setup, elapsed {:?}ms",
-            self.start_time.elapsed().as_millis()
-        );
-        Ok(batch)
-    }
-}
-
-/// Remove conflicting transactions -- tie breaking them by fee.
-fn make_txs_consistent(txs: &[TransactionDetails]) -> Vec<&TransactionDetails> {
-    let mut utxo_index: HashMap<OutPoint, &TransactionDetails> = HashMap::default();
-    for tx in txs {
-        for input in &tx.transaction.as_ref().unwrap().input {
-            utxo_index
-                .entry(input.previous_output)
-                .and_modify(|existing| match (tx.fee, existing.fee) {
-                    (Some(fee), Some(existing_fee)) if fee > existing_fee => *existing = tx,
-                    (Some(_), None) => *existing = tx,
-                    _ => { /* leave it the same */ }
-                })
-                .or_insert(tx);
-        }
-    }
-
-    utxo_index
-        .into_iter()
-        .map(|(_, tx)| (tx.txid, tx))
-        .collect::<HashMap<_, _>>()
-        .into_iter()
-        .map(|(_, tx)| tx)
-        .collect()
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/database/any.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/database/any.rs.html deleted file mode 100644 index 9abf6d815d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/database/any.rs.html +++ /dev/null @@ -1,865 +0,0 @@ -any.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Runtime-checked database types
-//!
-//! This module provides the implementation of [`AnyDatabase`] which allows switching the
-//! inner [`Database`] type at runtime.
-//!
-//! ## Example
-//!
-//! In this example, `wallet_memory` and `wallet_sled` have the same type of `Wallet<(), AnyDatabase>`.
-//!
-//! ```no_run
-//! # use bitcoin::Network;
-//! # use bdk::database::{AnyDatabase, MemoryDatabase};
-//! # use bdk::{Wallet};
-//! let memory = MemoryDatabase::default();
-//! let wallet_memory = Wallet::new_offline("...", None, Network::Testnet, memory)?;
-//!
-//! # #[cfg(feature = "key-value-db")]
-//! # {
-//! let sled = sled::open("my-database")?.open_tree("default_tree")?;
-//! let wallet_sled = Wallet::new_offline("...", None, Network::Testnet, sled)?;
-//! # }
-//! # Ok::<(), bdk::Error>(())
-//! ```
-//!
-//! When paired with the use of [`ConfigurableDatabase`], it allows creating wallets with any
-//! database supported using a single line of code:
-//!
-//! ```no_run
-//! # use bitcoin::Network;
-//! # use bdk::database::*;
-//! # use bdk::{Wallet};
-//! let config = serde_json::from_str("...")?;
-//! let database = AnyDatabase::from_config(&config)?;
-//! let wallet = Wallet::new_offline("...", None, Network::Testnet, database)?;
-//! # Ok::<(), bdk::Error>(())
-//! ```
-
-use super::*;
-
-macro_rules! impl_from {
-    ( $from:ty, $to:ty, $variant:ident, $( $cfg:tt )* ) => {
-        $( $cfg )*
-        impl From<$from> for $to {
-            fn from(inner: $from) -> Self {
-                <$to>::$variant(inner)
-            }
-        }
-    };
-}
-
-macro_rules! impl_inner_method {
-    ( $enum_name:ident, $self:expr, $name:ident $(, $args:expr)* ) => {
-        match $self {
-            $enum_name::Memory(inner) => inner.$name( $($args, )* ),
-            #[cfg(feature = "key-value-db")]
-            $enum_name::Sled(inner) => inner.$name( $($args, )* ),
-            #[cfg(feature = "sqlite")]
-            $enum_name::Sqlite(inner) => inner.$name( $($args, )* ),
-        }
-    }
-}
-
-/// Type that can contain any of the [`Database`] types defined by the library
-///
-/// It allows switching database type at runtime.
-///
-/// See [this module](crate::database::any)'s documentation for a usage example.
-#[derive(Debug)]
-pub enum AnyDatabase {
-    /// In-memory ephemeral database
-    Memory(memory::MemoryDatabase),
-    #[cfg(feature = "key-value-db")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "key-value-db")))]
-    /// Simple key-value embedded database based on [`sled`]
-    Sled(sled::Tree),
-    #[cfg(feature = "sqlite")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "sqlite")))]
-    /// Sqlite embedded database using [`rusqlite`]
-    Sqlite(sqlite::SqliteDatabase),
-}
-
-impl_from!(memory::MemoryDatabase, AnyDatabase, Memory,);
-impl_from!(sled::Tree, AnyDatabase, Sled, #[cfg(feature = "key-value-db")]);
-impl_from!(sqlite::SqliteDatabase, AnyDatabase, Sqlite, #[cfg(feature = "sqlite")]);
-
-/// Type that contains any of the [`BatchDatabase::Batch`] types defined by the library
-pub enum AnyBatch {
-    /// In-memory ephemeral database
-    Memory(<memory::MemoryDatabase as BatchDatabase>::Batch),
-    #[cfg(feature = "key-value-db")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "key-value-db")))]
-    /// Simple key-value embedded database based on [`sled`]
-    Sled(<sled::Tree as BatchDatabase>::Batch),
-    #[cfg(feature = "sqlite")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "sqlite")))]
-    /// Sqlite embedded database using [`rusqlite`]
-    Sqlite(<sqlite::SqliteDatabase as BatchDatabase>::Batch),
-}
-
-impl_from!(
-    <memory::MemoryDatabase as BatchDatabase>::Batch,
-    AnyBatch,
-    Memory,
-);
-impl_from!(<sled::Tree as BatchDatabase>::Batch, AnyBatch, Sled, #[cfg(feature = "key-value-db")]);
-impl_from!(<sqlite::SqliteDatabase as BatchDatabase>::Batch, AnyBatch, Sqlite, #[cfg(feature = "sqlite")]);
-
-impl BatchOperations for AnyDatabase {
-    fn set_script_pubkey(
-        &mut self,
-        script: &Script,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<(), Error> {
-        impl_inner_method!(
-            AnyDatabase,
-            self,
-            set_script_pubkey,
-            script,
-            keychain,
-            child
-        )
-    }
-    fn set_utxo(&mut self, utxo: &LocalUtxo) -> Result<(), Error> {
-        impl_inner_method!(AnyDatabase, self, set_utxo, utxo)
-    }
-    fn set_raw_tx(&mut self, transaction: &Transaction) -> Result<(), Error> {
-        impl_inner_method!(AnyDatabase, self, set_raw_tx, transaction)
-    }
-    fn set_tx(&mut self, transaction: &TransactionDetails) -> Result<(), Error> {
-        impl_inner_method!(AnyDatabase, self, set_tx, transaction)
-    }
-    fn set_last_index(&mut self, keychain: KeychainKind, value: u32) -> Result<(), Error> {
-        impl_inner_method!(AnyDatabase, self, set_last_index, keychain, value)
-    }
-    fn set_sync_time(&mut self, sync_time: SyncTime) -> Result<(), Error> {
-        impl_inner_method!(AnyDatabase, self, set_sync_time, sync_time)
-    }
-
-    fn del_script_pubkey_from_path(
-        &mut self,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<Option<Script>, Error> {
-        impl_inner_method!(
-            AnyDatabase,
-            self,
-            del_script_pubkey_from_path,
-            keychain,
-            child
-        )
-    }
-    fn del_path_from_script_pubkey(
-        &mut self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error> {
-        impl_inner_method!(AnyDatabase, self, del_path_from_script_pubkey, script)
-    }
-    fn del_utxo(&mut self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error> {
-        impl_inner_method!(AnyDatabase, self, del_utxo, outpoint)
-    }
-    fn del_raw_tx(&mut self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        impl_inner_method!(AnyDatabase, self, del_raw_tx, txid)
-    }
-    fn del_tx(
-        &mut self,
-        txid: &Txid,
-        include_raw: bool,
-    ) -> Result<Option<TransactionDetails>, Error> {
-        impl_inner_method!(AnyDatabase, self, del_tx, txid, include_raw)
-    }
-    fn del_last_index(&mut self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
-        impl_inner_method!(AnyDatabase, self, del_last_index, keychain)
-    }
-    fn del_sync_time(&mut self) -> Result<Option<SyncTime>, Error> {
-        impl_inner_method!(AnyDatabase, self, del_sync_time)
-    }
-}
-
-impl Database for AnyDatabase {
-    fn check_descriptor_checksum<B: AsRef<[u8]>>(
-        &mut self,
-        keychain: KeychainKind,
-        bytes: B,
-    ) -> Result<(), Error> {
-        impl_inner_method!(
-            AnyDatabase,
-            self,
-            check_descriptor_checksum,
-            keychain,
-            bytes
-        )
-    }
-
-    fn iter_script_pubkeys(&self, keychain: Option<KeychainKind>) -> Result<Vec<Script>, Error> {
-        impl_inner_method!(AnyDatabase, self, iter_script_pubkeys, keychain)
-    }
-    fn iter_utxos(&self) -> Result<Vec<LocalUtxo>, Error> {
-        impl_inner_method!(AnyDatabase, self, iter_utxos)
-    }
-    fn iter_raw_txs(&self) -> Result<Vec<Transaction>, Error> {
-        impl_inner_method!(AnyDatabase, self, iter_raw_txs)
-    }
-    fn iter_txs(&self, include_raw: bool) -> Result<Vec<TransactionDetails>, Error> {
-        impl_inner_method!(AnyDatabase, self, iter_txs, include_raw)
-    }
-
-    fn get_script_pubkey_from_path(
-        &self,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<Option<Script>, Error> {
-        impl_inner_method!(
-            AnyDatabase,
-            self,
-            get_script_pubkey_from_path,
-            keychain,
-            child
-        )
-    }
-    fn get_path_from_script_pubkey(
-        &self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error> {
-        impl_inner_method!(AnyDatabase, self, get_path_from_script_pubkey, script)
-    }
-    fn get_utxo(&self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error> {
-        impl_inner_method!(AnyDatabase, self, get_utxo, outpoint)
-    }
-    fn get_raw_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        impl_inner_method!(AnyDatabase, self, get_raw_tx, txid)
-    }
-    fn get_tx(&self, txid: &Txid, include_raw: bool) -> Result<Option<TransactionDetails>, Error> {
-        impl_inner_method!(AnyDatabase, self, get_tx, txid, include_raw)
-    }
-    fn get_last_index(&self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
-        impl_inner_method!(AnyDatabase, self, get_last_index, keychain)
-    }
-    fn get_sync_time(&self) -> Result<Option<SyncTime>, Error> {
-        impl_inner_method!(AnyDatabase, self, get_sync_time)
-    }
-
-    fn increment_last_index(&mut self, keychain: KeychainKind) -> Result<u32, Error> {
-        impl_inner_method!(AnyDatabase, self, increment_last_index, keychain)
-    }
-
-    fn flush(&mut self) -> Result<(), Error> {
-        impl_inner_method!(AnyDatabase, self, flush)
-    }
-}
-
-impl BatchOperations for AnyBatch {
-    fn set_script_pubkey(
-        &mut self,
-        script: &Script,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<(), Error> {
-        impl_inner_method!(AnyBatch, self, set_script_pubkey, script, keychain, child)
-    }
-    fn set_utxo(&mut self, utxo: &LocalUtxo) -> Result<(), Error> {
-        impl_inner_method!(AnyBatch, self, set_utxo, utxo)
-    }
-    fn set_raw_tx(&mut self, transaction: &Transaction) -> Result<(), Error> {
-        impl_inner_method!(AnyBatch, self, set_raw_tx, transaction)
-    }
-    fn set_tx(&mut self, transaction: &TransactionDetails) -> Result<(), Error> {
-        impl_inner_method!(AnyBatch, self, set_tx, transaction)
-    }
-    fn set_last_index(&mut self, keychain: KeychainKind, value: u32) -> Result<(), Error> {
-        impl_inner_method!(AnyBatch, self, set_last_index, keychain, value)
-    }
-    fn set_sync_time(&mut self, sync_time: SyncTime) -> Result<(), Error> {
-        impl_inner_method!(AnyBatch, self, set_sync_time, sync_time)
-    }
-
-    fn del_script_pubkey_from_path(
-        &mut self,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<Option<Script>, Error> {
-        impl_inner_method!(AnyBatch, self, del_script_pubkey_from_path, keychain, child)
-    }
-    fn del_path_from_script_pubkey(
-        &mut self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error> {
-        impl_inner_method!(AnyBatch, self, del_path_from_script_pubkey, script)
-    }
-    fn del_utxo(&mut self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error> {
-        impl_inner_method!(AnyBatch, self, del_utxo, outpoint)
-    }
-    fn del_raw_tx(&mut self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        impl_inner_method!(AnyBatch, self, del_raw_tx, txid)
-    }
-    fn del_tx(
-        &mut self,
-        txid: &Txid,
-        include_raw: bool,
-    ) -> Result<Option<TransactionDetails>, Error> {
-        impl_inner_method!(AnyBatch, self, del_tx, txid, include_raw)
-    }
-    fn del_last_index(&mut self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
-        impl_inner_method!(AnyBatch, self, del_last_index, keychain)
-    }
-    fn del_sync_time(&mut self) -> Result<Option<SyncTime>, Error> {
-        impl_inner_method!(AnyBatch, self, del_sync_time)
-    }
-}
-
-impl BatchDatabase for AnyDatabase {
-    type Batch = AnyBatch;
-
-    fn begin_batch(&self) -> Self::Batch {
-        match self {
-            AnyDatabase::Memory(inner) => inner.begin_batch().into(),
-            #[cfg(feature = "key-value-db")]
-            AnyDatabase::Sled(inner) => inner.begin_batch().into(),
-            #[cfg(feature = "sqlite")]
-            AnyDatabase::Sqlite(inner) => inner.begin_batch().into(),
-        }
-    }
-    fn commit_batch(&mut self, batch: Self::Batch) -> Result<(), Error> {
-        match self {
-            AnyDatabase::Memory(db) => match batch {
-                AnyBatch::Memory(batch) => db.commit_batch(batch),
-                #[cfg(any(feature = "key-value-db", feature = "sqlite"))]
-                _ => unimplemented!("Other batch shouldn't be used with Memory db."),
-            },
-            #[cfg(feature = "key-value-db")]
-            AnyDatabase::Sled(db) => match batch {
-                AnyBatch::Sled(batch) => db.commit_batch(batch),
-                _ => unimplemented!("Other batch shouldn't be used with Sled db."),
-            },
-            #[cfg(feature = "sqlite")]
-            AnyDatabase::Sqlite(db) => match batch {
-                AnyBatch::Sqlite(batch) => db.commit_batch(batch),
-                _ => unimplemented!("Other batch shouldn't be used with Sqlite db."),
-            },
-        }
-    }
-}
-
-/// Configuration type for a [`sled::Tree`] database
-#[cfg(feature = "key-value-db")]
-#[derive(Debug, serde::Serialize, serde::Deserialize)]
-pub struct SledDbConfiguration {
-    /// Main directory of the db
-    pub path: String,
-    /// Name of the database tree, a separated namespace for the data
-    pub tree_name: String,
-}
-
-#[cfg(feature = "key-value-db")]
-impl ConfigurableDatabase for sled::Tree {
-    type Config = SledDbConfiguration;
-
-    fn from_config(config: &Self::Config) -> Result<Self, Error> {
-        Ok(sled::open(&config.path)?.open_tree(&config.tree_name)?)
-    }
-}
-
-/// Configuration type for a [`sqlite::SqliteDatabase`] database
-#[cfg(feature = "sqlite")]
-#[derive(Debug, serde::Serialize, serde::Deserialize)]
-pub struct SqliteDbConfiguration {
-    /// Main directory of the db
-    pub path: String,
-}
-
-#[cfg(feature = "sqlite")]
-impl ConfigurableDatabase for sqlite::SqliteDatabase {
-    type Config = SqliteDbConfiguration;
-
-    fn from_config(config: &Self::Config) -> Result<Self, Error> {
-        Ok(sqlite::SqliteDatabase::new(config.path.clone()))
-    }
-}
-
-/// Type that can contain any of the database configurations defined by the library
-///
-/// This allows storing a single configuration that can be loaded into an [`AnyDatabase`]
-/// instance. Wallets that plan to offer users the ability to switch blockchain backend at runtime
-/// will find this particularly useful.
-#[derive(Debug, serde::Serialize, serde::Deserialize)]
-pub enum AnyDatabaseConfig {
-    /// Memory database has no config
-    Memory(()),
-    #[cfg(feature = "key-value-db")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "key-value-db")))]
-    /// Simple key-value embedded database based on [`sled`]
-    Sled(SledDbConfiguration),
-    #[cfg(feature = "sqlite")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "sqlite")))]
-    /// Sqlite embedded database using [`rusqlite`]
-    Sqlite(SqliteDbConfiguration),
-}
-
-impl ConfigurableDatabase for AnyDatabase {
-    type Config = AnyDatabaseConfig;
-
-    fn from_config(config: &Self::Config) -> Result<Self, Error> {
-        Ok(match config {
-            AnyDatabaseConfig::Memory(inner) => {
-                AnyDatabase::Memory(memory::MemoryDatabase::from_config(inner)?)
-            }
-            #[cfg(feature = "key-value-db")]
-            AnyDatabaseConfig::Sled(inner) => AnyDatabase::Sled(sled::Tree::from_config(inner)?),
-            #[cfg(feature = "sqlite")]
-            AnyDatabaseConfig::Sqlite(inner) => {
-                AnyDatabase::Sqlite(sqlite::SqliteDatabase::from_config(inner)?)
-            }
-        })
-    }
-}
-
-impl_from!((), AnyDatabaseConfig, Memory,);
-impl_from!(SledDbConfiguration, AnyDatabaseConfig, Sled, #[cfg(feature = "key-value-db")]);
-impl_from!(SqliteDbConfiguration, AnyDatabaseConfig, Sqlite, #[cfg(feature = "sqlite")]);
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/database/keyvalue.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/database/keyvalue.rs.html deleted file mode 100644 index 877aac7599..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/database/keyvalue.rs.html +++ /dev/null @@ -1,1007 +0,0 @@ -keyvalue.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-use std::convert::TryInto;
-
-use sled::{Batch, Tree};
-
-use bitcoin::consensus::encode::{deserialize, serialize};
-use bitcoin::hash_types::Txid;
-use bitcoin::{OutPoint, Script, Transaction};
-
-use crate::database::memory::MapKey;
-use crate::database::{BatchDatabase, BatchOperations, Database, SyncTime};
-use crate::error::Error;
-use crate::types::*;
-
-macro_rules! impl_batch_operations {
-    ( { $($after_insert:tt)* }, $process_delete:ident ) => {
-        fn set_script_pubkey(&mut self, script: &Script, keychain: KeychainKind, path: u32) -> Result<(), Error> {
-            let key = MapKey::Path((Some(keychain), Some(path))).as_map_key();
-            self.insert(key, serialize(script))$($after_insert)*;
-
-            let key = MapKey::Script(Some(script)).as_map_key();
-            let value = json!({
-                "t": keychain,
-                "p": path,
-            });
-            self.insert(key, serde_json::to_vec(&value)?)$($after_insert)*;
-
-            Ok(())
-        }
-
-        fn set_utxo(&mut self, utxo: &LocalUtxo) -> Result<(), Error> {
-            let key = MapKey::Utxo(Some(&utxo.outpoint)).as_map_key();
-            let value = json!({
-                "t": utxo.txout,
-                "i": utxo.keychain,
-            });
-            self.insert(key, serde_json::to_vec(&value)?)$($after_insert)*;
-
-            Ok(())
-        }
-
-        fn set_raw_tx(&mut self, transaction: &Transaction) -> Result<(), Error> {
-            let key = MapKey::RawTx(Some(&transaction.txid())).as_map_key();
-            let value = serialize(transaction);
-            self.insert(key, value)$($after_insert)*;
-
-            Ok(())
-        }
-
-        fn set_tx(&mut self, transaction: &TransactionDetails) -> Result<(), Error> {
-            let key = MapKey::Transaction(Some(&transaction.txid)).as_map_key();
-
-            // remove the raw tx from the serialized version
-            let mut value = serde_json::to_value(transaction)?;
-            value["transaction"] = serde_json::Value::Null;
-            let value = serde_json::to_vec(&value)?;
-
-            self.insert(key, value)$($after_insert)*;
-
-            // insert the raw_tx if present
-            if let Some(ref tx) = transaction.transaction {
-                self.set_raw_tx(tx)?;
-            }
-
-            Ok(())
-        }
-
-        fn set_last_index(&mut self, keychain: KeychainKind, value: u32) -> Result<(), Error> {
-            let key = MapKey::LastIndex(keychain).as_map_key();
-            self.insert(key, &value.to_be_bytes())$($after_insert)*;
-
-            Ok(())
-        }
-
-        fn set_sync_time(&mut self, data: SyncTime) -> Result<(), Error> {
-            let key = MapKey::SyncTime.as_map_key();
-            self.insert(key, serde_json::to_vec(&data)?)$($after_insert)*;
-
-            Ok(())
-        }
-
-        fn del_script_pubkey_from_path(&mut self, keychain: KeychainKind, path: u32) -> Result<Option<Script>, Error> {
-            let key = MapKey::Path((Some(keychain), Some(path))).as_map_key();
-            let res = self.remove(key);
-            let res = $process_delete!(res);
-
-            Ok(res.map_or(Ok(None), |x| Some(deserialize(&x)).transpose())?)
-        }
-
-        fn del_path_from_script_pubkey(&mut self, script: &Script) -> Result<Option<(KeychainKind, u32)>, Error> {
-            let key = MapKey::Script(Some(script)).as_map_key();
-            let res = self.remove(key);
-            let res = $process_delete!(res);
-
-            match res {
-                None => Ok(None),
-                Some(b) => {
-                    let mut val: serde_json::Value = serde_json::from_slice(&b)?;
-                    let st = serde_json::from_value(val["t"].take())?;
-                    let path = serde_json::from_value(val["p"].take())?;
-
-                    Ok(Some((st, path)))
-                }
-            }
-        }
-
-        fn del_utxo(&mut self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error> {
-            let key = MapKey::Utxo(Some(outpoint)).as_map_key();
-            let res = self.remove(key);
-            let res = $process_delete!(res);
-
-            match res {
-                None => Ok(None),
-                Some(b) => {
-                    let mut val: serde_json::Value = serde_json::from_slice(&b)?;
-                    let txout = serde_json::from_value(val["t"].take())?;
-                    let keychain = serde_json::from_value(val["i"].take())?;
-
-                    Ok(Some(LocalUtxo { outpoint: outpoint.clone(), txout, keychain }))
-                }
-            }
-        }
-
-        fn del_raw_tx(&mut self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-            let key = MapKey::RawTx(Some(txid)).as_map_key();
-            let res = self.remove(key);
-            let res = $process_delete!(res);
-
-            Ok(res.map_or(Ok(None), |x| Some(deserialize(&x)).transpose())?)
-        }
-
-        fn del_tx(&mut self, txid: &Txid, include_raw: bool) -> Result<Option<TransactionDetails>, Error> {
-            let raw_tx = if include_raw {
-                self.del_raw_tx(txid)?
-            } else {
-                None
-            };
-
-            let key = MapKey::Transaction(Some(txid)).as_map_key();
-            let res = self.remove(key);
-            let res = $process_delete!(res);
-
-            match res {
-                None => Ok(None),
-                Some(b) => {
-                    let mut val: TransactionDetails = serde_json::from_slice(&b)?;
-                    val.transaction = raw_tx;
-
-                    Ok(Some(val))
-                }
-            }
-        }
-
-        fn del_last_index(&mut self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
-            let key = MapKey::LastIndex(keychain).as_map_key();
-            let res = self.remove(key);
-            let res = $process_delete!(res);
-
-            match res {
-                None => Ok(None),
-                Some(b) => {
-                    let array: [u8; 4] = b.as_ref().try_into().map_err(|_| Error::InvalidU32Bytes(b.to_vec()))?;
-                    let val = u32::from_be_bytes(array);
-                    Ok(Some(val))
-                }
-            }
-        }
-
-        fn del_sync_time(&mut self) -> Result<Option<SyncTime>, Error> {
-            let key = MapKey::SyncTime.as_map_key();
-            let res = self.remove(key);
-            let res = $process_delete!(res);
-
-            Ok(res.map(|b| serde_json::from_slice(&b)).transpose()?)
-        }
-    }
-}
-
-macro_rules! process_delete_tree {
-    ($res:expr) => {
-        $res?
-    };
-}
-impl BatchOperations for Tree {
-    impl_batch_operations!({?}, process_delete_tree);
-}
-
-macro_rules! process_delete_batch {
-    ($res:expr) => {
-        None as Option<sled::IVec>
-    };
-}
-#[allow(unused_variables)]
-impl BatchOperations for Batch {
-    impl_batch_operations!({}, process_delete_batch);
-}
-
-impl Database for Tree {
-    fn check_descriptor_checksum<B: AsRef<[u8]>>(
-        &mut self,
-        keychain: KeychainKind,
-        bytes: B,
-    ) -> Result<(), Error> {
-        let key = MapKey::DescriptorChecksum(keychain).as_map_key();
-
-        let prev = self.get(&key)?.map(|x| x.to_vec());
-        if let Some(val) = prev {
-            if val == bytes.as_ref() {
-                Ok(())
-            } else {
-                Err(Error::ChecksumMismatch)
-            }
-        } else {
-            self.insert(&key, bytes.as_ref())?;
-            Ok(())
-        }
-    }
-
-    fn iter_script_pubkeys(&self, keychain: Option<KeychainKind>) -> Result<Vec<Script>, Error> {
-        let key = MapKey::Path((keychain, None)).as_map_key();
-        self.scan_prefix(key)
-            .map(|x| -> Result<_, Error> {
-                let (_, v) = x?;
-                Ok(deserialize(&v)?)
-            })
-            .collect()
-    }
-
-    fn iter_utxos(&self) -> Result<Vec<LocalUtxo>, Error> {
-        let key = MapKey::Utxo(None).as_map_key();
-        self.scan_prefix(key)
-            .map(|x| -> Result<_, Error> {
-                let (k, v) = x?;
-                let outpoint = deserialize(&k[1..])?;
-
-                let mut val: serde_json::Value = serde_json::from_slice(&v)?;
-                let txout = serde_json::from_value(val["t"].take())?;
-                let keychain = serde_json::from_value(val["i"].take())?;
-
-                Ok(LocalUtxo {
-                    outpoint,
-                    txout,
-                    keychain,
-                })
-            })
-            .collect()
-    }
-
-    fn iter_raw_txs(&self) -> Result<Vec<Transaction>, Error> {
-        let key = MapKey::RawTx(None).as_map_key();
-        self.scan_prefix(key)
-            .map(|x| -> Result<_, Error> {
-                let (_, v) = x?;
-                Ok(deserialize(&v)?)
-            })
-            .collect()
-    }
-
-    fn iter_txs(&self, include_raw: bool) -> Result<Vec<TransactionDetails>, Error> {
-        let key = MapKey::Transaction(None).as_map_key();
-        self.scan_prefix(key)
-            .map(|x| -> Result<_, Error> {
-                let (k, v) = x?;
-                let mut txdetails: TransactionDetails = serde_json::from_slice(&v)?;
-                if include_raw {
-                    let txid = deserialize(&k[1..])?;
-                    txdetails.transaction = self.get_raw_tx(&txid)?;
-                }
-
-                Ok(txdetails)
-            })
-            .collect()
-    }
-
-    fn get_script_pubkey_from_path(
-        &self,
-        keychain: KeychainKind,
-        path: u32,
-    ) -> Result<Option<Script>, Error> {
-        let key = MapKey::Path((Some(keychain), Some(path))).as_map_key();
-        Ok(self.get(key)?.map(|b| deserialize(&b)).transpose()?)
-    }
-
-    fn get_path_from_script_pubkey(
-        &self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error> {
-        let key = MapKey::Script(Some(script)).as_map_key();
-        self.get(key)?
-            .map(|b| -> Result<_, Error> {
-                let mut val: serde_json::Value = serde_json::from_slice(&b)?;
-                let st = serde_json::from_value(val["t"].take())?;
-                let path = serde_json::from_value(val["p"].take())?;
-
-                Ok((st, path))
-            })
-            .transpose()
-    }
-
-    fn get_utxo(&self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error> {
-        let key = MapKey::Utxo(Some(outpoint)).as_map_key();
-        self.get(key)?
-            .map(|b| -> Result<_, Error> {
-                let mut val: serde_json::Value = serde_json::from_slice(&b)?;
-                let txout = serde_json::from_value(val["t"].take())?;
-                let keychain = serde_json::from_value(val["i"].take())?;
-
-                Ok(LocalUtxo {
-                    outpoint: *outpoint,
-                    txout,
-                    keychain,
-                })
-            })
-            .transpose()
-    }
-
-    fn get_raw_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        let key = MapKey::RawTx(Some(txid)).as_map_key();
-        Ok(self.get(key)?.map(|b| deserialize(&b)).transpose()?)
-    }
-
-    fn get_tx(&self, txid: &Txid, include_raw: bool) -> Result<Option<TransactionDetails>, Error> {
-        let key = MapKey::Transaction(Some(txid)).as_map_key();
-        self.get(key)?
-            .map(|b| -> Result<_, Error> {
-                let mut txdetails: TransactionDetails = serde_json::from_slice(&b)?;
-                if include_raw {
-                    txdetails.transaction = self.get_raw_tx(txid)?;
-                }
-
-                Ok(txdetails)
-            })
-            .transpose()
-    }
-
-    fn get_last_index(&self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
-        let key = MapKey::LastIndex(keychain).as_map_key();
-        self.get(key)?
-            .map(|b| -> Result<_, Error> {
-                let array: [u8; 4] = b
-                    .as_ref()
-                    .try_into()
-                    .map_err(|_| Error::InvalidU32Bytes(b.to_vec()))?;
-                let val = u32::from_be_bytes(array);
-                Ok(val)
-            })
-            .transpose()
-    }
-
-    fn get_sync_time(&self) -> Result<Option<SyncTime>, Error> {
-        let key = MapKey::SyncTime.as_map_key();
-        Ok(self
-            .get(key)?
-            .map(|b| serde_json::from_slice(&b))
-            .transpose()?)
-    }
-
-    // inserts 0 if not present
-    fn increment_last_index(&mut self, keychain: KeychainKind) -> Result<u32, Error> {
-        let key = MapKey::LastIndex(keychain).as_map_key();
-        self.update_and_fetch(key, |prev| {
-            let new = match prev {
-                Some(b) => {
-                    let array: [u8; 4] = b.try_into().unwrap_or([0; 4]);
-                    let val = u32::from_be_bytes(array);
-
-                    val + 1
-                }
-                None => 0,
-            };
-
-            Some(new.to_be_bytes().to_vec())
-        })?
-        .map_or(Ok(0), |b| -> Result<_, Error> {
-            let array: [u8; 4] = b
-                .as_ref()
-                .try_into()
-                .map_err(|_| Error::InvalidU32Bytes(b.to_vec()))?;
-            let val = u32::from_be_bytes(array);
-            Ok(val)
-        })
-    }
-
-    fn flush(&mut self) -> Result<(), Error> {
-        Ok(Tree::flush(self).map(|_| ())?)
-    }
-}
-
-impl BatchDatabase for Tree {
-    type Batch = sled::Batch;
-
-    fn begin_batch(&self) -> Self::Batch {
-        sled::Batch::default()
-    }
-
-    fn commit_batch(&mut self, batch: Self::Batch) -> Result<(), Error> {
-        Ok(self.apply_batch(batch)?)
-    }
-}
-
-#[cfg(test)]
-mod test {
-    use lazy_static::lazy_static;
-    use std::sync::{Arc, Condvar, Mutex, Once};
-    use std::time::{SystemTime, UNIX_EPOCH};
-
-    use sled::{Db, Tree};
-
-    static mut COUNT: usize = 0;
-
-    lazy_static! {
-        static ref DB: Arc<(Mutex<Option<Db>>, Condvar)> =
-            Arc::new((Mutex::new(None), Condvar::new()));
-        static ref INIT: Once = Once::new();
-    }
-
-    fn get_tree() -> Tree {
-        unsafe {
-            let cloned = DB.clone();
-            let (mutex, cvar) = &*cloned;
-
-            INIT.call_once(|| {
-                let mut db = mutex.lock().unwrap();
-
-                let time = SystemTime::now().duration_since(UNIX_EPOCH).unwrap();
-                let mut dir = std::env::temp_dir();
-                dir.push(format!("mbw_{}", time.as_nanos()));
-
-                *db = Some(sled::open(dir).unwrap());
-                cvar.notify_all();
-            });
-
-            let mut db = mutex.lock().unwrap();
-            while !db.is_some() {
-                db = cvar.wait(db).unwrap();
-            }
-
-            COUNT += 1;
-
-            db.as_ref()
-                .unwrap()
-                .open_tree(format!("tree_{}", COUNT))
-                .unwrap()
-        }
-    }
-
-    #[test]
-    fn test_script_pubkey() {
-        crate::database::test::test_script_pubkey(get_tree());
-    }
-
-    #[test]
-    fn test_batch_script_pubkey() {
-        crate::database::test::test_batch_script_pubkey(get_tree());
-    }
-
-    #[test]
-    fn test_iter_script_pubkey() {
-        crate::database::test::test_iter_script_pubkey(get_tree());
-    }
-
-    #[test]
-    fn test_del_script_pubkey() {
-        crate::database::test::test_del_script_pubkey(get_tree());
-    }
-
-    #[test]
-    fn test_utxo() {
-        crate::database::test::test_utxo(get_tree());
-    }
-
-    #[test]
-    fn test_raw_tx() {
-        crate::database::test::test_raw_tx(get_tree());
-    }
-
-    #[test]
-    fn test_tx() {
-        crate::database::test::test_tx(get_tree());
-    }
-
-    #[test]
-    fn test_last_index() {
-        crate::database::test::test_last_index(get_tree());
-    }
-
-    #[test]
-    fn test_sync_time() {
-        crate::database::test::test_sync_time(get_tree());
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/database/memory.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/database/memory.rs.html deleted file mode 100644 index e2098f568f..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/database/memory.rs.html +++ /dev/null @@ -1,1245 +0,0 @@ -memory.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! In-memory ephemeral database
-//!
-//! This module defines an in-memory database type called [`MemoryDatabase`] that is based on a
-//! [`BTreeMap`].
-
-use std::any::Any;
-use std::collections::BTreeMap;
-use std::ops::Bound::{Excluded, Included};
-
-use bitcoin::consensus::encode::{deserialize, serialize};
-use bitcoin::hash_types::Txid;
-use bitcoin::{OutPoint, Script, Transaction};
-
-use crate::database::{BatchDatabase, BatchOperations, ConfigurableDatabase, Database, SyncTime};
-use crate::error::Error;
-use crate::types::*;
-
-// path -> script       p{i,e}<path> -> script
-// script -> path       s<script> -> {i,e}<path>
-// outpoint             u<outpoint> -> txout
-// rawtx                r<txid> -> tx
-// transactions         t<txid> -> tx details
-// deriv indexes        c{i,e} -> u32
-// descriptor checksum  d{i,e} -> vec<u8>
-// last sync time       l -> { height, timestamp }
-
-pub(crate) enum MapKey<'a> {
-    Path((Option<KeychainKind>, Option<u32>)),
-    Script(Option<&'a Script>),
-    Utxo(Option<&'a OutPoint>),
-    RawTx(Option<&'a Txid>),
-    Transaction(Option<&'a Txid>),
-    LastIndex(KeychainKind),
-    SyncTime,
-    DescriptorChecksum(KeychainKind),
-}
-
-impl MapKey<'_> {
-    fn as_prefix(&self) -> Vec<u8> {
-        match self {
-            MapKey::Path((st, _)) => {
-                let mut v = b"p".to_vec();
-                if let Some(st) = st {
-                    v.push(st.as_byte());
-                }
-                v
-            }
-            MapKey::Script(_) => b"s".to_vec(),
-            MapKey::Utxo(_) => b"u".to_vec(),
-            MapKey::RawTx(_) => b"r".to_vec(),
-            MapKey::Transaction(_) => b"t".to_vec(),
-            MapKey::LastIndex(st) => [b"c", st.as_ref()].concat(),
-            MapKey::SyncTime => b"l".to_vec(),
-            MapKey::DescriptorChecksum(st) => [b"d", st.as_ref()].concat(),
-        }
-    }
-
-    fn serialize_content(&self) -> Vec<u8> {
-        match self {
-            MapKey::Path((_, Some(child))) => child.to_be_bytes().to_vec(),
-            MapKey::Script(Some(s)) => serialize(*s),
-            MapKey::Utxo(Some(s)) => serialize(*s),
-            MapKey::RawTx(Some(s)) => serialize(*s),
-            MapKey::Transaction(Some(s)) => serialize(*s),
-            _ => vec![],
-        }
-    }
-
-    pub fn as_map_key(&self) -> Vec<u8> {
-        let mut v = self.as_prefix();
-        v.extend_from_slice(&self.serialize_content());
-
-        v
-    }
-}
-
-fn after(key: &[u8]) -> Vec<u8> {
-    let mut key = key.to_owned();
-    let mut idx = key.len();
-    while idx > 0 {
-        if key[idx - 1] == 0xFF {
-            idx -= 1;
-            continue;
-        } else {
-            key[idx - 1] += 1;
-            break;
-        }
-    }
-
-    key
-}
-
-/// In-memory ephemeral database
-///
-/// This database can be used as a temporary storage for wallets that are not kept permanently on
-/// a device, or on platforms that don't provide a filesystem, like `wasm32`.
-///
-/// Once it's dropped its content will be lost.
-///
-/// If you are looking for a permanent storage solution, you can try with the default key-value
-/// database called [`sled`]. See the [`database`] module documentation for more details.
-///
-/// [`database`]: crate::database
-#[derive(Debug, Default)]
-pub struct MemoryDatabase {
-    map: BTreeMap<Vec<u8>, Box<dyn Any + Send + Sync>>,
-    deleted_keys: Vec<Vec<u8>>,
-}
-
-impl MemoryDatabase {
-    /// Create a new empty database
-    pub fn new() -> Self {
-        MemoryDatabase {
-            map: BTreeMap::new(),
-            deleted_keys: Vec::new(),
-        }
-    }
-}
-
-impl BatchOperations for MemoryDatabase {
-    fn set_script_pubkey(
-        &mut self,
-        script: &Script,
-        keychain: KeychainKind,
-        path: u32,
-    ) -> Result<(), Error> {
-        let key = MapKey::Path((Some(keychain), Some(path))).as_map_key();
-        self.map.insert(key, Box::new(script.clone()));
-
-        let key = MapKey::Script(Some(script)).as_map_key();
-        let value = json!({
-            "t": keychain,
-            "p": path,
-        });
-        self.map.insert(key, Box::new(value));
-
-        Ok(())
-    }
-
-    fn set_utxo(&mut self, utxo: &LocalUtxo) -> Result<(), Error> {
-        let key = MapKey::Utxo(Some(&utxo.outpoint)).as_map_key();
-        self.map
-            .insert(key, Box::new((utxo.txout.clone(), utxo.keychain)));
-
-        Ok(())
-    }
-    fn set_raw_tx(&mut self, transaction: &Transaction) -> Result<(), Error> {
-        let key = MapKey::RawTx(Some(&transaction.txid())).as_map_key();
-        self.map.insert(key, Box::new(transaction.clone()));
-
-        Ok(())
-    }
-    fn set_tx(&mut self, transaction: &TransactionDetails) -> Result<(), Error> {
-        let key = MapKey::Transaction(Some(&transaction.txid)).as_map_key();
-
-        // insert the raw_tx if present
-        if let Some(ref tx) = transaction.transaction {
-            self.set_raw_tx(tx)?;
-        }
-
-        // remove the raw tx from the serialized version
-        let mut transaction = transaction.clone();
-        transaction.transaction = None;
-
-        self.map.insert(key, Box::new(transaction));
-
-        Ok(())
-    }
-    fn set_last_index(&mut self, keychain: KeychainKind, value: u32) -> Result<(), Error> {
-        let key = MapKey::LastIndex(keychain).as_map_key();
-        self.map.insert(key, Box::new(value));
-
-        Ok(())
-    }
-    fn set_sync_time(&mut self, data: SyncTime) -> Result<(), Error> {
-        let key = MapKey::SyncTime.as_map_key();
-        self.map.insert(key, Box::new(data));
-
-        Ok(())
-    }
-
-    fn del_script_pubkey_from_path(
-        &mut self,
-        keychain: KeychainKind,
-        path: u32,
-    ) -> Result<Option<Script>, Error> {
-        let key = MapKey::Path((Some(keychain), Some(path))).as_map_key();
-        let res = self.map.remove(&key);
-        self.deleted_keys.push(key);
-
-        Ok(res.map(|x| x.downcast_ref().cloned().unwrap()))
-    }
-    fn del_path_from_script_pubkey(
-        &mut self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error> {
-        let key = MapKey::Script(Some(script)).as_map_key();
-        let res = self.map.remove(&key);
-        self.deleted_keys.push(key);
-
-        match res {
-            None => Ok(None),
-            Some(b) => {
-                let mut val: serde_json::Value = b.downcast_ref().cloned().unwrap();
-                let st = serde_json::from_value(val["t"].take())?;
-                let path = serde_json::from_value(val["p"].take())?;
-
-                Ok(Some((st, path)))
-            }
-        }
-    }
-    fn del_utxo(&mut self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error> {
-        let key = MapKey::Utxo(Some(outpoint)).as_map_key();
-        let res = self.map.remove(&key);
-        self.deleted_keys.push(key);
-
-        match res {
-            None => Ok(None),
-            Some(b) => {
-                let (txout, keychain) = b.downcast_ref().cloned().unwrap();
-                Ok(Some(LocalUtxo {
-                    outpoint: *outpoint,
-                    txout,
-                    keychain,
-                }))
-            }
-        }
-    }
-    fn del_raw_tx(&mut self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        let key = MapKey::RawTx(Some(txid)).as_map_key();
-        let res = self.map.remove(&key);
-        self.deleted_keys.push(key);
-
-        Ok(res.map(|x| x.downcast_ref().cloned().unwrap()))
-    }
-    fn del_tx(
-        &mut self,
-        txid: &Txid,
-        include_raw: bool,
-    ) -> Result<Option<TransactionDetails>, Error> {
-        let raw_tx = if include_raw {
-            self.del_raw_tx(txid)?
-        } else {
-            None
-        };
-
-        let key = MapKey::Transaction(Some(txid)).as_map_key();
-        let res = self.map.remove(&key);
-        self.deleted_keys.push(key);
-
-        match res {
-            None => Ok(None),
-            Some(b) => {
-                let mut val: TransactionDetails = b.downcast_ref().cloned().unwrap();
-                val.transaction = raw_tx;
-
-                Ok(Some(val))
-            }
-        }
-    }
-    fn del_last_index(&mut self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
-        let key = MapKey::LastIndex(keychain).as_map_key();
-        let res = self.map.remove(&key);
-        self.deleted_keys.push(key);
-
-        match res {
-            None => Ok(None),
-            Some(b) => Ok(Some(*b.downcast_ref().unwrap())),
-        }
-    }
-    fn del_sync_time(&mut self) -> Result<Option<SyncTime>, Error> {
-        let key = MapKey::SyncTime.as_map_key();
-        let res = self.map.remove(&key);
-        self.deleted_keys.push(key);
-
-        Ok(res.map(|b| b.downcast_ref().cloned().unwrap()))
-    }
-}
-
-impl Database for MemoryDatabase {
-    fn check_descriptor_checksum<B: AsRef<[u8]>>(
-        &mut self,
-        keychain: KeychainKind,
-        bytes: B,
-    ) -> Result<(), Error> {
-        let key = MapKey::DescriptorChecksum(keychain).as_map_key();
-
-        let prev = self
-            .map
-            .get(&key)
-            .map(|x| x.downcast_ref::<Vec<u8>>().unwrap());
-        if let Some(val) = prev {
-            if val == &bytes.as_ref().to_vec() {
-                Ok(())
-            } else {
-                Err(Error::ChecksumMismatch)
-            }
-        } else {
-            self.map.insert(key, Box::new(bytes.as_ref().to_vec()));
-            Ok(())
-        }
-    }
-
-    fn iter_script_pubkeys(&self, keychain: Option<KeychainKind>) -> Result<Vec<Script>, Error> {
-        let key = MapKey::Path((keychain, None)).as_map_key();
-        self.map
-            .range::<Vec<u8>, _>((Included(&key), Excluded(&after(&key))))
-            .map(|(_, v)| Ok(v.downcast_ref().cloned().unwrap()))
-            .collect()
-    }
-
-    fn iter_utxos(&self) -> Result<Vec<LocalUtxo>, Error> {
-        let key = MapKey::Utxo(None).as_map_key();
-        self.map
-            .range::<Vec<u8>, _>((Included(&key), Excluded(&after(&key))))
-            .map(|(k, v)| {
-                let outpoint = deserialize(&k[1..]).unwrap();
-                let (txout, keychain) = v.downcast_ref().cloned().unwrap();
-                Ok(LocalUtxo {
-                    outpoint,
-                    txout,
-                    keychain,
-                })
-            })
-            .collect()
-    }
-
-    fn iter_raw_txs(&self) -> Result<Vec<Transaction>, Error> {
-        let key = MapKey::RawTx(None).as_map_key();
-        self.map
-            .range::<Vec<u8>, _>((Included(&key), Excluded(&after(&key))))
-            .map(|(_, v)| Ok(v.downcast_ref().cloned().unwrap()))
-            .collect()
-    }
-
-    fn iter_txs(&self, include_raw: bool) -> Result<Vec<TransactionDetails>, Error> {
-        let key = MapKey::Transaction(None).as_map_key();
-        self.map
-            .range::<Vec<u8>, _>((Included(&key), Excluded(&after(&key))))
-            .map(|(k, v)| {
-                let mut txdetails: TransactionDetails = v.downcast_ref().cloned().unwrap();
-                if include_raw {
-                    let txid = deserialize(&k[1..])?;
-                    txdetails.transaction = self.get_raw_tx(&txid)?;
-                }
-
-                Ok(txdetails)
-            })
-            .collect()
-    }
-
-    fn get_script_pubkey_from_path(
-        &self,
-        keychain: KeychainKind,
-        path: u32,
-    ) -> Result<Option<Script>, Error> {
-        let key = MapKey::Path((Some(keychain), Some(path))).as_map_key();
-        Ok(self
-            .map
-            .get(&key)
-            .map(|b| b.downcast_ref().cloned().unwrap()))
-    }
-
-    fn get_path_from_script_pubkey(
-        &self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error> {
-        let key = MapKey::Script(Some(script)).as_map_key();
-        Ok(self.map.get(&key).map(|b| {
-            let mut val: serde_json::Value = b.downcast_ref().cloned().unwrap();
-            let st = serde_json::from_value(val["t"].take()).unwrap();
-            let path = serde_json::from_value(val["p"].take()).unwrap();
-
-            (st, path)
-        }))
-    }
-
-    fn get_utxo(&self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error> {
-        let key = MapKey::Utxo(Some(outpoint)).as_map_key();
-        Ok(self.map.get(&key).map(|b| {
-            let (txout, keychain) = b.downcast_ref().cloned().unwrap();
-            LocalUtxo {
-                outpoint: *outpoint,
-                txout,
-                keychain,
-            }
-        }))
-    }
-
-    fn get_raw_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        let key = MapKey::RawTx(Some(txid)).as_map_key();
-        Ok(self
-            .map
-            .get(&key)
-            .map(|b| b.downcast_ref().cloned().unwrap()))
-    }
-
-    fn get_tx(&self, txid: &Txid, include_raw: bool) -> Result<Option<TransactionDetails>, Error> {
-        let key = MapKey::Transaction(Some(txid)).as_map_key();
-        Ok(self.map.get(&key).map(|b| {
-            let mut txdetails: TransactionDetails = b.downcast_ref().cloned().unwrap();
-            if include_raw {
-                txdetails.transaction = self.get_raw_tx(txid).unwrap();
-            }
-
-            txdetails
-        }))
-    }
-
-    fn get_last_index(&self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
-        let key = MapKey::LastIndex(keychain).as_map_key();
-        Ok(self.map.get(&key).map(|b| *b.downcast_ref().unwrap()))
-    }
-
-    fn get_sync_time(&self) -> Result<Option<SyncTime>, Error> {
-        let key = MapKey::SyncTime.as_map_key();
-        Ok(self
-            .map
-            .get(&key)
-            .map(|b| b.downcast_ref().cloned().unwrap()))
-    }
-
-    // inserts 0 if not present
-    fn increment_last_index(&mut self, keychain: KeychainKind) -> Result<u32, Error> {
-        let key = MapKey::LastIndex(keychain).as_map_key();
-        let value = self
-            .map
-            .entry(key)
-            .and_modify(|x| *x.downcast_mut::<u32>().unwrap() += 1)
-            .or_insert_with(|| Box::<u32>::new(0))
-            .downcast_mut()
-            .unwrap();
-
-        Ok(*value)
-    }
-
-    fn flush(&mut self) -> Result<(), Error> {
-        Ok(())
-    }
-}
-
-impl BatchDatabase for MemoryDatabase {
-    type Batch = Self;
-
-    fn begin_batch(&self) -> Self::Batch {
-        MemoryDatabase::new()
-    }
-
-    fn commit_batch(&mut self, mut batch: Self::Batch) -> Result<(), Error> {
-        for key in batch.deleted_keys.iter() {
-            self.map.remove(key);
-        }
-        self.map.append(&mut batch.map);
-        Ok(())
-    }
-}
-
-impl ConfigurableDatabase for MemoryDatabase {
-    type Config = ();
-
-    fn from_config(_config: &Self::Config) -> Result<Self, Error> {
-        Ok(MemoryDatabase::default())
-    }
-}
-
-#[macro_export]
-#[doc(hidden)]
-/// Artificially insert a tx in the database, as if we had found it with a `sync`. This is a hidden
-/// macro and not a `[cfg(test)]` function so it can be called within the context of doctests which
-/// don't have `test` set.
-macro_rules! populate_test_db {
-    ($db:expr, $tx_meta:expr, $current_height:expr$(,)?) => {{
-        use std::str::FromStr;
-        use $crate::database::BatchOperations;
-        let mut db = $db;
-        let tx_meta = $tx_meta;
-        let current_height: Option<u32> = $current_height;
-        let tx = $crate::bitcoin::Transaction {
-            version: 1,
-            lock_time: 0,
-            input: vec![],
-            output: tx_meta
-                .output
-                .iter()
-                .map(|out_meta| $crate::bitcoin::TxOut {
-                    value: out_meta.value,
-                    script_pubkey: $crate::bitcoin::Address::from_str(&out_meta.to_address)
-                        .unwrap()
-                        .script_pubkey(),
-                })
-                .collect(),
-        };
-
-        let txid = tx.txid();
-        let confirmation_time = tx_meta.min_confirmations.map(|conf| $crate::BlockTime {
-            height: current_height.unwrap().checked_sub(conf as u32).unwrap(),
-            timestamp: 0,
-        });
-
-        let tx_details = $crate::TransactionDetails {
-            transaction: Some(tx.clone()),
-            txid,
-            fee: Some(0),
-            received: 0,
-            sent: 0,
-            confirmation_time,
-            verified: current_height.is_some(),
-        };
-
-        db.set_tx(&tx_details).unwrap();
-        for (vout, out) in tx.output.iter().enumerate() {
-            db.set_utxo(&$crate::LocalUtxo {
-                txout: out.clone(),
-                outpoint: $crate::bitcoin::OutPoint {
-                    txid,
-                    vout: vout as u32,
-                },
-                keychain: $crate::KeychainKind::External,
-            })
-            .unwrap();
-        }
-
-        txid
-    }};
-}
-
-#[macro_export]
-#[doc(hidden)]
-/// Macro for getting a wallet for use in a doctest
-macro_rules! doctest_wallet {
-    () => {{
-        use $crate::bitcoin::Network;
-        use $crate::database::MemoryDatabase;
-        use $crate::testutils;
-        let descriptor = "wpkh(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW)";
-        let descriptors = testutils!(@descriptors (descriptor) (descriptor));
-
-        let mut db = MemoryDatabase::new();
-        let txid = populate_test_db!(
-            &mut db,
-            testutils! {
-                @tx ( (@external descriptors, 0) => 500_000 ) (@confirmations 1)
-            },
-            Some(100),
-        );
-
-        $crate::Wallet::new_offline(
-            &descriptors.0,
-            descriptors.1.as_ref(),
-            Network::Regtest,
-            db
-        )
-        .unwrap()
-    }}
-}
-
-#[cfg(test)]
-mod test {
-    use super::MemoryDatabase;
-
-    fn get_tree() -> MemoryDatabase {
-        MemoryDatabase::new()
-    }
-
-    #[test]
-    fn test_script_pubkey() {
-        crate::database::test::test_script_pubkey(get_tree());
-    }
-
-    #[test]
-    fn test_batch_script_pubkey() {
-        crate::database::test::test_batch_script_pubkey(get_tree());
-    }
-
-    #[test]
-    fn test_iter_script_pubkey() {
-        crate::database::test::test_iter_script_pubkey(get_tree());
-    }
-
-    #[test]
-    fn test_del_script_pubkey() {
-        crate::database::test::test_del_script_pubkey(get_tree());
-    }
-
-    #[test]
-    fn test_utxo() {
-        crate::database::test::test_utxo(get_tree());
-    }
-
-    #[test]
-    fn test_raw_tx() {
-        crate::database::test::test_raw_tx(get_tree());
-    }
-
-    #[test]
-    fn test_tx() {
-        crate::database::test::test_tx(get_tree());
-    }
-
-    #[test]
-    fn test_last_index() {
-        crate::database::test::test_last_index(get_tree());
-    }
-
-    #[test]
-    fn test_sync_time() {
-        crate::database::test::test_sync_time(get_tree());
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/database/mod.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/database/mod.rs.html deleted file mode 100644 index 51d3736e5d..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/database/mod.rs.html +++ /dev/null @@ -1,845 +0,0 @@ -mod.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Database types
-//!
-//! This module provides the implementation of some defaults database types, along with traits that
-//! can be implemented externally to let [`Wallet`]s use customized databases.
-//!
-//! It's important to note that the databases defined here only contains "blockchain-related" data.
-//! They can be seen more as a cache than a critical piece of storage that contains secrets and
-//! keys.
-//!
-//! The currently recommended database is [`sled`], which is a pretty simple key-value embedded
-//! database written in Rust. If the `key-value-db` feature is enabled (which by default is),
-//! this library automatically implements all the required traits for [`sled::Tree`].
-//!
-//! [`Wallet`]: crate::wallet::Wallet
-
-use serde::{Deserialize, Serialize};
-
-use bitcoin::hash_types::Txid;
-use bitcoin::{OutPoint, Script, Transaction, TxOut};
-
-use crate::error::Error;
-use crate::types::*;
-
-pub mod any;
-pub use any::{AnyDatabase, AnyDatabaseConfig};
-
-#[cfg(feature = "key-value-db")]
-pub(crate) mod keyvalue;
-
-#[cfg(feature = "sqlite")]
-pub(crate) mod sqlite;
-#[cfg(feature = "sqlite")]
-pub use sqlite::SqliteDatabase;
-
-pub mod memory;
-pub use memory::MemoryDatabase;
-
-/// Blockchain state at the time of syncing
-///
-/// Contains only the block time and height at the moment
-#[derive(Clone, Debug, Serialize, Deserialize)]
-pub struct SyncTime {
-    /// Block timestamp and height at the time of sync
-    pub block_time: BlockTime,
-}
-
-/// Trait for operations that can be batched
-///
-/// This trait defines the list of operations that must be implemented on the [`Database`] type and
-/// the [`BatchDatabase::Batch`] type.
-pub trait BatchOperations {
-    /// Store a script_pubkey along with its keychain and child number.
-    fn set_script_pubkey(
-        &mut self,
-        script: &Script,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<(), Error>;
-    /// Store a [`LocalUtxo`]
-    fn set_utxo(&mut self, utxo: &LocalUtxo) -> Result<(), Error>;
-    /// Store a raw transaction
-    fn set_raw_tx(&mut self, transaction: &Transaction) -> Result<(), Error>;
-    /// Store the metadata of a transaction
-    fn set_tx(&mut self, transaction: &TransactionDetails) -> Result<(), Error>;
-    /// Store the last derivation index for a given keychain.
-    fn set_last_index(&mut self, keychain: KeychainKind, value: u32) -> Result<(), Error>;
-    /// Store the sync time
-    fn set_sync_time(&mut self, sync_time: SyncTime) -> Result<(), Error>;
-
-    /// Delete a script_pubkey given the keychain and its child number.
-    fn del_script_pubkey_from_path(
-        &mut self,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<Option<Script>, Error>;
-    /// Delete the data related to a specific script_pubkey, meaning the keychain and the child
-    /// number.
-    fn del_path_from_script_pubkey(
-        &mut self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error>;
-    /// Delete a [`LocalUtxo`] given its [`OutPoint`]
-    fn del_utxo(&mut self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error>;
-    /// Delete a raw transaction given its [`Txid`]
-    fn del_raw_tx(&mut self, txid: &Txid) -> Result<Option<Transaction>, Error>;
-    /// Delete the metadata of a transaction and optionally the raw transaction itself
-    fn del_tx(
-        &mut self,
-        txid: &Txid,
-        include_raw: bool,
-    ) -> Result<Option<TransactionDetails>, Error>;
-    /// Delete the last derivation index for a keychain.
-    fn del_last_index(&mut self, keychain: KeychainKind) -> Result<Option<u32>, Error>;
-    /// Reset the sync time to `None`
-    ///
-    /// Returns the removed value
-    fn del_sync_time(&mut self) -> Result<Option<SyncTime>, Error>;
-}
-
-/// Trait for reading data from a database
-///
-/// This traits defines the operations that can be used to read data out of a database
-pub trait Database: BatchOperations {
-    /// Read and checks the descriptor checksum for a given keychain.
-    ///
-    /// Should return [`Error::ChecksumMismatch`](crate::error::Error::ChecksumMismatch) if the
-    /// checksum doesn't match. If there's no checksum in the database, simply store it for the
-    /// next time.
-    fn check_descriptor_checksum<B: AsRef<[u8]>>(
-        &mut self,
-        keychain: KeychainKind,
-        bytes: B,
-    ) -> Result<(), Error>;
-
-    /// Return the list of script_pubkeys
-    fn iter_script_pubkeys(&self, keychain: Option<KeychainKind>) -> Result<Vec<Script>, Error>;
-    /// Return the list of [`LocalUtxo`]s
-    fn iter_utxos(&self) -> Result<Vec<LocalUtxo>, Error>;
-    /// Return the list of raw transactions
-    fn iter_raw_txs(&self) -> Result<Vec<Transaction>, Error>;
-    /// Return the list of transactions metadata
-    fn iter_txs(&self, include_raw: bool) -> Result<Vec<TransactionDetails>, Error>;
-
-    /// Fetch a script_pubkey given the child number of a keychain.
-    fn get_script_pubkey_from_path(
-        &self,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<Option<Script>, Error>;
-    /// Fetch the keychain and child number of a given script_pubkey
-    fn get_path_from_script_pubkey(
-        &self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error>;
-    /// Fetch a [`LocalUtxo`] given its [`OutPoint`]
-    fn get_utxo(&self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error>;
-    /// Fetch a raw transaction given its [`Txid`]
-    fn get_raw_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error>;
-    /// Fetch the transaction metadata and optionally also the raw transaction
-    fn get_tx(&self, txid: &Txid, include_raw: bool) -> Result<Option<TransactionDetails>, Error>;
-    /// Return the last derivation index for a keychain.
-    fn get_last_index(&self, keychain: KeychainKind) -> Result<Option<u32>, Error>;
-    /// Return the sync time, if present
-    fn get_sync_time(&self) -> Result<Option<SyncTime>, Error>;
-
-    /// Increment the last derivation index for a keychain and return it
-    ///
-    /// It should insert and return `0` if not present in the database
-    fn increment_last_index(&mut self, keychain: KeychainKind) -> Result<u32, Error>;
-
-    /// Force changes to be written to disk
-    fn flush(&mut self) -> Result<(), Error>;
-}
-
-/// Trait for a database that supports batch operations
-///
-/// This trait defines the methods to start and apply a batch of operations.
-pub trait BatchDatabase: Database {
-    /// Container for the operations
-    type Batch: BatchOperations;
-
-    /// Create a new batch container
-    fn begin_batch(&self) -> Self::Batch;
-    /// Consume and apply a batch of operations
-    fn commit_batch(&mut self, batch: Self::Batch) -> Result<(), Error>;
-}
-
-/// Trait for [`Database`] types that can be created given a configuration
-pub trait ConfigurableDatabase: Database + Sized {
-    /// Type that contains the configuration
-    type Config: std::fmt::Debug;
-
-    /// Create a new instance given a configuration
-    fn from_config(config: &Self::Config) -> Result<Self, Error>;
-}
-
-pub(crate) trait DatabaseUtils: Database {
-    fn is_mine(&self, script: &Script) -> Result<bool, Error> {
-        self.get_path_from_script_pubkey(script)
-            .map(|o| o.is_some())
-    }
-
-    fn get_raw_tx_or<D>(&self, txid: &Txid, default: D) -> Result<Option<Transaction>, Error>
-    where
-        D: FnOnce() -> Result<Option<Transaction>, Error>,
-    {
-        self.get_tx(txid, true)?
-            .map(|t| t.transaction)
-            .flatten()
-            .map_or_else(default, |t| Ok(Some(t)))
-    }
-
-    fn get_previous_output(&self, outpoint: &OutPoint) -> Result<Option<TxOut>, Error> {
-        self.get_raw_tx(&outpoint.txid)?
-            .map(|previous_tx| {
-                if outpoint.vout as usize >= previous_tx.output.len() {
-                    Err(Error::InvalidOutpoint(*outpoint))
-                } else {
-                    Ok(previous_tx.output[outpoint.vout as usize].clone())
-                }
-            })
-            .transpose()
-    }
-}
-
-impl<T: Database> DatabaseUtils for T {}
-
-#[cfg(test)]
-pub mod test {
-    use std::str::FromStr;
-
-    use bitcoin::consensus::encode::deserialize;
-    use bitcoin::hashes::hex::*;
-    use bitcoin::*;
-
-    use super::*;
-
-    pub fn test_script_pubkey<D: Database>(mut tree: D) {
-        let script = Script::from(
-            Vec::<u8>::from_hex("76a91402306a7c23f3e8010de41e9e591348bb83f11daa88ac").unwrap(),
-        );
-        let path = 42;
-        let keychain = KeychainKind::External;
-
-        tree.set_script_pubkey(&script, keychain, path).unwrap();
-
-        assert_eq!(
-            tree.get_script_pubkey_from_path(keychain, path).unwrap(),
-            Some(script.clone())
-        );
-        assert_eq!(
-            tree.get_path_from_script_pubkey(&script).unwrap(),
-            Some((keychain, path))
-        );
-    }
-
-    pub fn test_batch_script_pubkey<D: BatchDatabase>(mut tree: D) {
-        let mut batch = tree.begin_batch();
-
-        let script = Script::from(
-            Vec::<u8>::from_hex("76a91402306a7c23f3e8010de41e9e591348bb83f11daa88ac").unwrap(),
-        );
-        let path = 42;
-        let keychain = KeychainKind::External;
-
-        batch.set_script_pubkey(&script, keychain, path).unwrap();
-
-        assert_eq!(
-            tree.get_script_pubkey_from_path(keychain, path).unwrap(),
-            None
-        );
-        assert_eq!(tree.get_path_from_script_pubkey(&script).unwrap(), None);
-
-        tree.commit_batch(batch).unwrap();
-
-        assert_eq!(
-            tree.get_script_pubkey_from_path(keychain, path).unwrap(),
-            Some(script.clone())
-        );
-        assert_eq!(
-            tree.get_path_from_script_pubkey(&script).unwrap(),
-            Some((keychain, path))
-        );
-    }
-
-    pub fn test_iter_script_pubkey<D: Database>(mut tree: D) {
-        let script = Script::from(
-            Vec::<u8>::from_hex("76a91402306a7c23f3e8010de41e9e591348bb83f11daa88ac").unwrap(),
-        );
-        let path = 42;
-        let keychain = KeychainKind::External;
-
-        tree.set_script_pubkey(&script, keychain, path).unwrap();
-
-        assert_eq!(tree.iter_script_pubkeys(None).unwrap().len(), 1);
-    }
-
-    pub fn test_del_script_pubkey<D: Database>(mut tree: D) {
-        let script = Script::from(
-            Vec::<u8>::from_hex("76a91402306a7c23f3e8010de41e9e591348bb83f11daa88ac").unwrap(),
-        );
-        let path = 42;
-        let keychain = KeychainKind::External;
-
-        tree.set_script_pubkey(&script, keychain, path).unwrap();
-        assert_eq!(tree.iter_script_pubkeys(None).unwrap().len(), 1);
-
-        tree.del_script_pubkey_from_path(keychain, path).unwrap();
-        assert_eq!(tree.iter_script_pubkeys(None).unwrap().len(), 0);
-    }
-
-    pub fn test_utxo<D: Database>(mut tree: D) {
-        let outpoint = OutPoint::from_str(
-            "5df6e0e2761359d30a8275058e299fcc0381534545f55cf43e41983f5d4c9456:0",
-        )
-        .unwrap();
-        let script = Script::from(
-            Vec::<u8>::from_hex("76a91402306a7c23f3e8010de41e9e591348bb83f11daa88ac").unwrap(),
-        );
-        let txout = TxOut {
-            value: 133742,
-            script_pubkey: script,
-        };
-        let utxo = LocalUtxo {
-            txout,
-            outpoint,
-            keychain: KeychainKind::External,
-        };
-
-        tree.set_utxo(&utxo).unwrap();
-
-        assert_eq!(tree.get_utxo(&outpoint).unwrap(), Some(utxo));
-    }
-
-    pub fn test_raw_tx<D: Database>(mut tree: D) {
-        let hex_tx = Vec::<u8>::from_hex("0100000001a15d57094aa7a21a28cb20b59aab8fc7d1149a3bdbcddba9c622e4f5f6a99ece010000006c493046022100f93bb0e7d8db7bd46e40132d1f8242026e045f03a0efe71bbb8e3f475e970d790221009337cd7f1f929f00cc6ff01f03729b069a7c21b59b1736ddfee5db5946c5da8c0121033b9b137ee87d5a812d6f506efdd37f0affa7ffc310711c06c7f3e097c9447c52ffffffff0100e1f505000000001976a9140389035a9225b3839e2bbf32d826a1e222031fd888ac00000000").unwrap();
-        let tx: Transaction = deserialize(&hex_tx).unwrap();
-
-        tree.set_raw_tx(&tx).unwrap();
-
-        let txid = tx.txid();
-
-        assert_eq!(tree.get_raw_tx(&txid).unwrap(), Some(tx));
-    }
-
-    pub fn test_tx<D: Database>(mut tree: D) {
-        let hex_tx = Vec::<u8>::from_hex("0100000001a15d57094aa7a21a28cb20b59aab8fc7d1149a3bdbcddba9c622e4f5f6a99ece010000006c493046022100f93bb0e7d8db7bd46e40132d1f8242026e045f03a0efe71bbb8e3f475e970d790221009337cd7f1f929f00cc6ff01f03729b069a7c21b59b1736ddfee5db5946c5da8c0121033b9b137ee87d5a812d6f506efdd37f0affa7ffc310711c06c7f3e097c9447c52ffffffff0100e1f505000000001976a9140389035a9225b3839e2bbf32d826a1e222031fd888ac00000000").unwrap();
-        let tx: Transaction = deserialize(&hex_tx).unwrap();
-        let txid = tx.txid();
-        let mut tx_details = TransactionDetails {
-            transaction: Some(tx),
-            txid,
-            received: 1337,
-            sent: 420420,
-            fee: Some(140),
-            confirmation_time: Some(BlockTime {
-                timestamp: 123456,
-                height: 1000,
-            }),
-            verified: true,
-        };
-
-        tree.set_tx(&tx_details).unwrap();
-
-        // get with raw tx too
-        assert_eq!(
-            tree.get_tx(&tx_details.txid, true).unwrap(),
-            Some(tx_details.clone())
-        );
-        // get only raw_tx
-        assert_eq!(
-            tree.get_raw_tx(&tx_details.txid).unwrap(),
-            tx_details.transaction
-        );
-
-        // now get without raw_tx
-        tx_details.transaction = None;
-        assert_eq!(
-            tree.get_tx(&tx_details.txid, false).unwrap(),
-            Some(tx_details)
-        );
-    }
-
-    pub fn test_last_index<D: Database>(mut tree: D) {
-        tree.set_last_index(KeychainKind::External, 1337).unwrap();
-
-        assert_eq!(
-            tree.get_last_index(KeychainKind::External).unwrap(),
-            Some(1337)
-        );
-        assert_eq!(tree.get_last_index(KeychainKind::Internal).unwrap(), None);
-
-        let res = tree.increment_last_index(KeychainKind::External).unwrap();
-        assert_eq!(res, 1338);
-        let res = tree.increment_last_index(KeychainKind::Internal).unwrap();
-        assert_eq!(res, 0);
-
-        assert_eq!(
-            tree.get_last_index(KeychainKind::External).unwrap(),
-            Some(1338)
-        );
-        assert_eq!(
-            tree.get_last_index(KeychainKind::Internal).unwrap(),
-            Some(0)
-        );
-    }
-
-    pub fn test_sync_time<D: Database>(mut tree: D) {
-        assert!(tree.get_sync_time().unwrap().is_none());
-
-        tree.set_sync_time(SyncTime {
-            block_time: BlockTime {
-                height: 100,
-                timestamp: 1000,
-            },
-        })
-        .unwrap();
-
-        let extracted = tree.get_sync_time().unwrap();
-        assert!(extracted.is_some());
-        assert_eq!(extracted.as_ref().unwrap().block_time.height, 100);
-        assert_eq!(extracted.as_ref().unwrap().block_time.timestamp, 1000);
-
-        tree.del_sync_time().unwrap();
-        assert!(tree.get_sync_time().unwrap().is_none());
-    }
-
-    // TODO: more tests...
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/database/sqlite.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/database/sqlite.rs.html deleted file mode 100644 index 125bcd8d83..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/database/sqlite.rs.html +++ /dev/null @@ -1,2071 +0,0 @@ -sqlite.rs - source -
   1
-   2
-   3
-   4
-   5
-   6
-   7
-   8
-   9
-  10
-  11
-  12
-  13
-  14
-  15
-  16
-  17
-  18
-  19
-  20
-  21
-  22
-  23
-  24
-  25
-  26
-  27
-  28
-  29
-  30
-  31
-  32
-  33
-  34
-  35
-  36
-  37
-  38
-  39
-  40
-  41
-  42
-  43
-  44
-  45
-  46
-  47
-  48
-  49
-  50
-  51
-  52
-  53
-  54
-  55
-  56
-  57
-  58
-  59
-  60
-  61
-  62
-  63
-  64
-  65
-  66
-  67
-  68
-  69
-  70
-  71
-  72
-  73
-  74
-  75
-  76
-  77
-  78
-  79
-  80
-  81
-  82
-  83
-  84
-  85
-  86
-  87
-  88
-  89
-  90
-  91
-  92
-  93
-  94
-  95
-  96
-  97
-  98
-  99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-use bitcoin::consensus::encode::{deserialize, serialize};
-use bitcoin::hash_types::Txid;
-use bitcoin::{OutPoint, Script, Transaction, TxOut};
-
-use crate::database::{BatchDatabase, BatchOperations, Database, SyncTime};
-use crate::error::Error;
-use crate::types::*;
-
-use rusqlite::{named_params, Connection};
-
-static MIGRATIONS: &[&str] = &[
-    "CREATE TABLE version (version INTEGER)",
-    "INSERT INTO version VALUES (1)",
-    "CREATE TABLE script_pubkeys (keychain TEXT, child INTEGER, script BLOB);",
-    "CREATE INDEX idx_keychain_child ON script_pubkeys(keychain, child);",
-    "CREATE INDEX idx_script ON script_pubkeys(script);",
-    "CREATE TABLE utxos (value INTEGER, keychain TEXT, vout INTEGER, txid BLOB, script BLOB);",
-    "CREATE INDEX idx_txid_vout ON utxos(txid, vout);",
-    "CREATE TABLE transactions (txid BLOB, raw_tx BLOB);",
-    "CREATE INDEX idx_txid ON transactions(txid);",
-    "CREATE TABLE transaction_details (txid BLOB, timestamp INTEGER, received INTEGER, sent INTEGER, fee INTEGER, height INTEGER, verified INTEGER DEFAULT 0);",
-    "CREATE INDEX idx_txdetails_txid ON transaction_details(txid);",
-    "CREATE TABLE last_derivation_indices (keychain TEXT, value INTEGER);",
-    "CREATE UNIQUE INDEX idx_indices_keychain ON last_derivation_indices(keychain);",
-    "CREATE TABLE checksums (keychain TEXT, checksum BLOB);",
-    "CREATE INDEX idx_checksums_keychain ON checksums(keychain);",
-    "CREATE TABLE sync_time (id INTEGER PRIMARY KEY, height INTEGER, timestamp INTEGER);"
-];
-
-/// Sqlite database stored on filesystem
-///
-/// This is a permanent storage solution for devices and platforms that provide a filesystem.
-/// [`crate::database`]
-#[derive(Debug)]
-pub struct SqliteDatabase {
-    /// Path on the local filesystem to store the sqlite file
-    pub path: String,
-    /// A rusqlite connection object to the sqlite database
-    pub connection: Connection,
-}
-
-impl SqliteDatabase {
-    /// Instantiate a new SqliteDatabase instance by creating a connection
-    /// to the database stored at path
-    pub fn new(path: String) -> Self {
-        let connection = get_connection(&path).unwrap();
-        SqliteDatabase { path, connection }
-    }
-    fn insert_script_pubkey(
-        &self,
-        keychain: String,
-        child: u32,
-        script: &[u8],
-    ) -> Result<i64, Error> {
-        let mut statement = self.connection.prepare_cached("INSERT INTO script_pubkeys (keychain, child, script) VALUES (:keychain, :child, :script)")?;
-        statement.execute(named_params! {
-            ":keychain": keychain,
-            ":child": child,
-            ":script": script
-        })?;
-
-        Ok(self.connection.last_insert_rowid())
-    }
-    fn insert_utxo(
-        &self,
-        value: u64,
-        keychain: String,
-        vout: u32,
-        txid: &[u8],
-        script: &[u8],
-    ) -> Result<i64, Error> {
-        let mut statement = self.connection.prepare_cached("INSERT INTO utxos (value, keychain, vout, txid, script) VALUES (:value, :keychain, :vout, :txid, :script)")?;
-        statement.execute(named_params! {
-            ":value": value,
-            ":keychain": keychain,
-            ":vout": vout,
-            ":txid": txid,
-            ":script": script
-        })?;
-
-        Ok(self.connection.last_insert_rowid())
-    }
-    fn insert_transaction(&self, txid: &[u8], raw_tx: &[u8]) -> Result<i64, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("INSERT INTO transactions (txid, raw_tx) VALUES (:txid, :raw_tx)")?;
-        statement.execute(named_params! {
-            ":txid": txid,
-            ":raw_tx": raw_tx,
-        })?;
-
-        Ok(self.connection.last_insert_rowid())
-    }
-
-    fn update_transaction(&self, txid: &[u8], raw_tx: &[u8]) -> Result<(), Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("UPDATE transactions SET raw_tx=:raw_tx WHERE txid=:txid")?;
-
-        statement.execute(named_params! {
-            ":txid": txid,
-            ":raw_tx": raw_tx,
-        })?;
-
-        Ok(())
-    }
-
-    fn insert_transaction_details(&self, transaction: &TransactionDetails) -> Result<i64, Error> {
-        let (timestamp, height) = match &transaction.confirmation_time {
-            Some(confirmation_time) => (
-                Some(confirmation_time.timestamp),
-                Some(confirmation_time.height),
-            ),
-            None => (None, None),
-        };
-
-        let txid: &[u8] = &transaction.txid;
-
-        let mut statement = self.connection.prepare_cached("INSERT INTO transaction_details (txid, timestamp, received, sent, fee, height, verified) VALUES (:txid, :timestamp, :received, :sent, :fee, :height, :verified)")?;
-
-        statement.execute(named_params! {
-            ":txid": txid,
-            ":timestamp": timestamp,
-            ":received": transaction.received,
-            ":sent": transaction.sent,
-            ":fee": transaction.fee,
-            ":height": height,
-            ":verified": transaction.verified
-        })?;
-
-        Ok(self.connection.last_insert_rowid())
-    }
-
-    fn update_transaction_details(&self, transaction: &TransactionDetails) -> Result<(), Error> {
-        let (timestamp, height) = match &transaction.confirmation_time {
-            Some(confirmation_time) => (
-                Some(confirmation_time.timestamp),
-                Some(confirmation_time.height),
-            ),
-            None => (None, None),
-        };
-
-        let txid: &[u8] = &transaction.txid;
-
-        let mut statement = self.connection.prepare_cached("UPDATE transaction_details SET timestamp=:timestamp, received=:received, sent=:sent, fee=:fee, height=:height, verified=:verified WHERE txid=:txid")?;
-
-        statement.execute(named_params! {
-            ":txid": txid,
-            ":timestamp": timestamp,
-            ":received": transaction.received,
-            ":sent": transaction.sent,
-            ":fee": transaction.fee,
-            ":height": height,
-            ":verified": transaction.verified,
-        })?;
-
-        Ok(())
-    }
-
-    fn insert_last_derivation_index(&self, keychain: String, value: u32) -> Result<i64, Error> {
-        let mut statement = self.connection.prepare_cached(
-            "INSERT INTO last_derivation_indices (keychain, value) VALUES (:keychain, :value)",
-        )?;
-
-        statement.execute(named_params! {
-            ":keychain": keychain,
-            ":value": value,
-        })?;
-
-        Ok(self.connection.last_insert_rowid())
-    }
-
-    fn insert_checksum(&self, keychain: String, checksum: &[u8]) -> Result<i64, Error> {
-        let mut statement = self.connection.prepare_cached(
-            "INSERT INTO checksums (keychain, checksum) VALUES (:keychain, :checksum)",
-        )?;
-        statement.execute(named_params! {
-            ":keychain": keychain,
-            ":checksum": checksum,
-        })?;
-
-        Ok(self.connection.last_insert_rowid())
-    }
-
-    fn update_last_derivation_index(&self, keychain: String, value: u32) -> Result<(), Error> {
-        let mut statement = self.connection.prepare_cached(
-            "INSERT INTO last_derivation_indices (keychain, value) VALUES (:keychain, :value) ON CONFLICT(keychain) DO UPDATE SET value=:value WHERE keychain=:keychain",
-        )?;
-
-        statement.execute(named_params! {
-            ":keychain": keychain,
-            ":value": value,
-        })?;
-
-        Ok(())
-    }
-
-    fn update_sync_time(&self, data: SyncTime) -> Result<i64, Error> {
-        let mut statement = self.connection.prepare_cached(
-            "INSERT INTO sync_time (id, height, timestamp) VALUES (0, :height, :timestamp) ON CONFLICT(id) DO UPDATE SET height=:height, timestamp=:timestamp WHERE id = 0",
-        )?;
-
-        statement.execute(named_params! {
-            ":height": data.block_time.height,
-            ":timestamp": data.block_time.timestamp,
-        })?;
-
-        Ok(self.connection.last_insert_rowid())
-    }
-
-    fn select_script_pubkeys(&self) -> Result<Vec<Script>, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("SELECT script FROM script_pubkeys")?;
-        let mut scripts: Vec<Script> = vec![];
-        let mut rows = statement.query([])?;
-        while let Some(row) = rows.next()? {
-            let raw_script: Vec<u8> = row.get(0)?;
-            scripts.push(raw_script.into());
-        }
-
-        Ok(scripts)
-    }
-
-    fn select_script_pubkeys_by_keychain(&self, keychain: String) -> Result<Vec<Script>, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("SELECT script FROM script_pubkeys WHERE keychain=:keychain")?;
-        let mut scripts: Vec<Script> = vec![];
-        let mut rows = statement.query(named_params! {":keychain": keychain})?;
-        while let Some(row) = rows.next()? {
-            let raw_script: Vec<u8> = row.get(0)?;
-            scripts.push(raw_script.into());
-        }
-
-        Ok(scripts)
-    }
-
-    fn select_script_pubkey_by_path(
-        &self,
-        keychain: String,
-        child: u32,
-    ) -> Result<Option<Script>, Error> {
-        let mut statement = self.connection.prepare_cached(
-            "SELECT script FROM script_pubkeys WHERE keychain=:keychain AND child=:child",
-        )?;
-        let mut rows = statement.query(named_params! {":keychain": keychain,":child": child})?;
-
-        match rows.next()? {
-            Some(row) => {
-                let script: Vec<u8> = row.get(0)?;
-                let script: Script = script.into();
-                Ok(Some(script))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn select_script_pubkey_by_script(
-        &self,
-        script: &[u8],
-    ) -> Result<Option<(KeychainKind, u32)>, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("SELECT keychain, child FROM script_pubkeys WHERE script=:script")?;
-        let mut rows = statement.query(named_params! {":script": script})?;
-        match rows.next()? {
-            Some(row) => {
-                let keychain: String = row.get(0)?;
-                let keychain: KeychainKind = serde_json::from_str(&keychain)?;
-                let child: u32 = row.get(1)?;
-                Ok(Some((keychain, child)))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn select_utxos(&self) -> Result<Vec<LocalUtxo>, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("SELECT value, keychain, vout, txid, script FROM utxos")?;
-        let mut utxos: Vec<LocalUtxo> = vec![];
-        let mut rows = statement.query([])?;
-        while let Some(row) = rows.next()? {
-            let value = row.get(0)?;
-            let keychain: String = row.get(1)?;
-            let vout = row.get(2)?;
-            let txid: Vec<u8> = row.get(3)?;
-            let script: Vec<u8> = row.get(4)?;
-
-            let keychain: KeychainKind = serde_json::from_str(&keychain)?;
-
-            utxos.push(LocalUtxo {
-                outpoint: OutPoint::new(deserialize(&txid)?, vout),
-                txout: TxOut {
-                    value,
-                    script_pubkey: script.into(),
-                },
-                keychain,
-            })
-        }
-
-        Ok(utxos)
-    }
-
-    fn select_utxo_by_outpoint(
-        &self,
-        txid: &[u8],
-        vout: u32,
-    ) -> Result<Option<(u64, KeychainKind, Script)>, Error> {
-        let mut statement = self.connection.prepare_cached(
-            "SELECT value, keychain, script FROM utxos WHERE txid=:txid AND vout=:vout",
-        )?;
-        let mut rows = statement.query(named_params! {":txid": txid,":vout": vout})?;
-        match rows.next()? {
-            Some(row) => {
-                let value: u64 = row.get(0)?;
-                let keychain: String = row.get(1)?;
-                let keychain: KeychainKind = serde_json::from_str(&keychain)?;
-                let script: Vec<u8> = row.get(2)?;
-                let script: Script = script.into();
-
-                Ok(Some((value, keychain, script)))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn select_transactions(&self) -> Result<Vec<Transaction>, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("SELECT raw_tx FROM transactions")?;
-        let mut txs: Vec<Transaction> = vec![];
-        let mut rows = statement.query([])?;
-        while let Some(row) = rows.next()? {
-            let raw_tx: Vec<u8> = row.get(0)?;
-            let tx: Transaction = deserialize(&raw_tx)?;
-            txs.push(tx);
-        }
-        Ok(txs)
-    }
-
-    fn select_transaction_by_txid(&self, txid: &[u8]) -> Result<Option<Transaction>, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("SELECT raw_tx FROM transactions WHERE txid=:txid")?;
-        let mut rows = statement.query(named_params! {":txid": txid})?;
-        match rows.next()? {
-            Some(row) => {
-                let raw_tx: Vec<u8> = row.get(0)?;
-                let tx: Transaction = deserialize(&raw_tx)?;
-                Ok(Some(tx))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn select_transaction_details_with_raw(&self) -> Result<Vec<TransactionDetails>, Error> {
-        let mut statement = self.connection.prepare_cached("SELECT transaction_details.txid, transaction_details.timestamp, transaction_details.received, transaction_details.sent, transaction_details.fee, transaction_details.height, transaction_details.verified, transactions.raw_tx FROM transaction_details, transactions WHERE transaction_details.txid = transactions.txid")?;
-        let mut transaction_details: Vec<TransactionDetails> = vec![];
-        let mut rows = statement.query([])?;
-        while let Some(row) = rows.next()? {
-            let txid: Vec<u8> = row.get(0)?;
-            let txid: Txid = deserialize(&txid)?;
-            let timestamp: Option<u64> = row.get(1)?;
-            let received: u64 = row.get(2)?;
-            let sent: u64 = row.get(3)?;
-            let fee: Option<u64> = row.get(4)?;
-            let height: Option<u32> = row.get(5)?;
-            let verified: bool = row.get(6)?;
-            let raw_tx: Option<Vec<u8>> = row.get(7)?;
-            let tx: Option<Transaction> = match raw_tx {
-                Some(raw_tx) => {
-                    let tx: Transaction = deserialize(&raw_tx)?;
-                    Some(tx)
-                }
-                None => None,
-            };
-
-            let confirmation_time = match (height, timestamp) {
-                (Some(height), Some(timestamp)) => Some(BlockTime { height, timestamp }),
-                _ => None,
-            };
-
-            transaction_details.push(TransactionDetails {
-                transaction: tx,
-                txid,
-                received,
-                sent,
-                fee,
-                confirmation_time,
-                verified,
-            });
-        }
-        Ok(transaction_details)
-    }
-
-    fn select_transaction_details(&self) -> Result<Vec<TransactionDetails>, Error> {
-        let mut statement = self.connection.prepare_cached(
-            "SELECT txid, timestamp, received, sent, fee, height, verified FROM transaction_details",
-        )?;
-        let mut transaction_details: Vec<TransactionDetails> = vec![];
-        let mut rows = statement.query([])?;
-        while let Some(row) = rows.next()? {
-            let txid: Vec<u8> = row.get(0)?;
-            let txid: Txid = deserialize(&txid)?;
-            let timestamp: Option<u64> = row.get(1)?;
-            let received: u64 = row.get(2)?;
-            let sent: u64 = row.get(3)?;
-            let fee: Option<u64> = row.get(4)?;
-            let height: Option<u32> = row.get(5)?;
-            let verified: bool = row.get(6)?;
-
-            let confirmation_time = match (height, timestamp) {
-                (Some(height), Some(timestamp)) => Some(BlockTime { height, timestamp }),
-                _ => None,
-            };
-
-            transaction_details.push(TransactionDetails {
-                transaction: None,
-                txid,
-                received,
-                sent,
-                fee,
-                confirmation_time,
-                verified,
-            });
-        }
-        Ok(transaction_details)
-    }
-
-    fn select_transaction_details_by_txid(
-        &self,
-        txid: &[u8],
-    ) -> Result<Option<TransactionDetails>, Error> {
-        let mut statement = self.connection.prepare_cached("SELECT transaction_details.timestamp, transaction_details.received, transaction_details.sent, transaction_details.fee, transaction_details.height, transaction_details.verified, transactions.raw_tx FROM transaction_details, transactions WHERE transaction_details.txid=transactions.txid AND transaction_details.txid=:txid")?;
-        let mut rows = statement.query(named_params! { ":txid": txid })?;
-
-        match rows.next()? {
-            Some(row) => {
-                let timestamp: Option<u64> = row.get(0)?;
-                let received: u64 = row.get(1)?;
-                let sent: u64 = row.get(2)?;
-                let fee: Option<u64> = row.get(3)?;
-                let height: Option<u32> = row.get(4)?;
-                let verified: bool = row.get(5)?;
-
-                let raw_tx: Option<Vec<u8>> = row.get(6)?;
-                let tx: Option<Transaction> = match raw_tx {
-                    Some(raw_tx) => {
-                        let tx: Transaction = deserialize(&raw_tx)?;
-                        Some(tx)
-                    }
-                    None => None,
-                };
-
-                let confirmation_time = match (height, timestamp) {
-                    (Some(height), Some(timestamp)) => Some(BlockTime { height, timestamp }),
-                    _ => None,
-                };
-
-                Ok(Some(TransactionDetails {
-                    transaction: tx,
-                    txid: deserialize(txid)?,
-                    received,
-                    sent,
-                    fee,
-                    confirmation_time,
-                    verified,
-                }))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn select_last_derivation_index_by_keychain(
-        &self,
-        keychain: String,
-    ) -> Result<Option<u32>, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("SELECT value FROM last_derivation_indices WHERE keychain=:keychain")?;
-        let mut rows = statement.query(named_params! {":keychain": keychain})?;
-        match rows.next()? {
-            Some(row) => {
-                let value: u32 = row.get(0)?;
-                Ok(Some(value))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn select_sync_time(&self) -> Result<Option<SyncTime>, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("SELECT height, timestamp FROM sync_time WHERE id = 0")?;
-        let mut rows = statement.query([])?;
-
-        if let Some(row) = rows.next()? {
-            Ok(Some(SyncTime {
-                block_time: BlockTime {
-                    height: row.get(0)?,
-                    timestamp: row.get(1)?,
-                },
-            }))
-        } else {
-            Ok(None)
-        }
-    }
-
-    fn select_checksum_by_keychain(&self, keychain: String) -> Result<Option<Vec<u8>>, Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("SELECT checksum FROM checksums WHERE keychain=:keychain")?;
-        let mut rows = statement.query(named_params! {":keychain": keychain})?;
-
-        match rows.next()? {
-            Some(row) => {
-                let checksum: Vec<u8> = row.get(0)?;
-                Ok(Some(checksum))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn delete_script_pubkey_by_path(&self, keychain: String, child: u32) -> Result<(), Error> {
-        let mut statement = self.connection.prepare_cached(
-            "DELETE FROM script_pubkeys WHERE keychain=:keychain AND child=:child",
-        )?;
-        statement.execute(named_params! {
-            ":keychain": keychain,
-            ":child": child
-        })?;
-
-        Ok(())
-    }
-
-    fn delete_script_pubkey_by_script(&self, script: &[u8]) -> Result<(), Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("DELETE FROM script_pubkeys WHERE script=:script")?;
-        statement.execute(named_params! {
-            ":script": script
-        })?;
-
-        Ok(())
-    }
-
-    fn delete_utxo_by_outpoint(&self, txid: &[u8], vout: u32) -> Result<(), Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("DELETE FROM utxos WHERE txid=:txid AND vout=:vout")?;
-        statement.execute(named_params! {
-            ":txid": txid,
-            ":vout": vout
-        })?;
-
-        Ok(())
-    }
-
-    fn delete_transaction_by_txid(&self, txid: &[u8]) -> Result<(), Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("DELETE FROM transactions WHERE txid=:txid")?;
-        statement.execute(named_params! {":txid": txid})?;
-        Ok(())
-    }
-
-    fn delete_transaction_details_by_txid(&self, txid: &[u8]) -> Result<(), Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("DELETE FROM transaction_details WHERE txid=:txid")?;
-        statement.execute(named_params! {":txid": txid})?;
-        Ok(())
-    }
-
-    fn delete_last_derivation_index_by_keychain(&self, keychain: String) -> Result<(), Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("DELETE FROM last_derivation_indices WHERE keychain=:keychain")?;
-        statement.execute(named_params! {
-            ":keychain": &keychain
-        })?;
-
-        Ok(())
-    }
-
-    fn delete_sync_time(&self) -> Result<(), Error> {
-        let mut statement = self
-            .connection
-            .prepare_cached("DELETE FROM sync_time WHERE id = 0")?;
-        statement.execute([])?;
-        Ok(())
-    }
-}
-
-impl BatchOperations for SqliteDatabase {
-    fn set_script_pubkey(
-        &mut self,
-        script: &Script,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<(), Error> {
-        let keychain = serde_json::to_string(&keychain)?;
-        self.insert_script_pubkey(keychain, child, script.as_bytes())?;
-        Ok(())
-    }
-
-    fn set_utxo(&mut self, utxo: &LocalUtxo) -> Result<(), Error> {
-        self.insert_utxo(
-            utxo.txout.value,
-            serde_json::to_string(&utxo.keychain)?,
-            utxo.outpoint.vout,
-            &utxo.outpoint.txid,
-            utxo.txout.script_pubkey.as_bytes(),
-        )?;
-        Ok(())
-    }
-
-    fn set_raw_tx(&mut self, transaction: &Transaction) -> Result<(), Error> {
-        match self.select_transaction_by_txid(&transaction.txid())? {
-            Some(_) => {
-                self.update_transaction(&transaction.txid(), &serialize(transaction))?;
-            }
-            None => {
-                self.insert_transaction(&transaction.txid(), &serialize(transaction))?;
-            }
-        }
-        Ok(())
-    }
-
-    fn set_tx(&mut self, transaction: &TransactionDetails) -> Result<(), Error> {
-        match self.select_transaction_details_by_txid(&transaction.txid)? {
-            Some(_) => {
-                self.update_transaction_details(transaction)?;
-            }
-            None => {
-                self.insert_transaction_details(transaction)?;
-            }
-        }
-
-        if let Some(tx) = &transaction.transaction {
-            self.set_raw_tx(tx)?;
-        }
-
-        Ok(())
-    }
-
-    fn set_last_index(&mut self, keychain: KeychainKind, value: u32) -> Result<(), Error> {
-        self.update_last_derivation_index(serde_json::to_string(&keychain)?, value)?;
-        Ok(())
-    }
-
-    fn set_sync_time(&mut self, ct: SyncTime) -> Result<(), Error> {
-        self.update_sync_time(ct)?;
-        Ok(())
-    }
-
-    fn del_script_pubkey_from_path(
-        &mut self,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<Option<Script>, Error> {
-        let keychain = serde_json::to_string(&keychain)?;
-        let script = self.select_script_pubkey_by_path(keychain.clone(), child)?;
-        match script {
-            Some(script) => {
-                self.delete_script_pubkey_by_path(keychain, child)?;
-                Ok(Some(script))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn del_path_from_script_pubkey(
-        &mut self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error> {
-        match self.select_script_pubkey_by_script(script.as_bytes())? {
-            Some((keychain, child)) => {
-                self.delete_script_pubkey_by_script(script.as_bytes())?;
-                Ok(Some((keychain, child)))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn del_utxo(&mut self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error> {
-        match self.select_utxo_by_outpoint(&outpoint.txid, outpoint.vout)? {
-            Some((value, keychain, script_pubkey)) => {
-                self.delete_utxo_by_outpoint(&outpoint.txid, outpoint.vout)?;
-                Ok(Some(LocalUtxo {
-                    outpoint: *outpoint,
-                    txout: TxOut {
-                        value,
-                        script_pubkey,
-                    },
-                    keychain,
-                }))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn del_raw_tx(&mut self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        match self.select_transaction_by_txid(txid)? {
-            Some(tx) => {
-                self.delete_transaction_by_txid(txid)?;
-                Ok(Some(tx))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn del_tx(
-        &mut self,
-        txid: &Txid,
-        include_raw: bool,
-    ) -> Result<Option<TransactionDetails>, Error> {
-        match self.select_transaction_details_by_txid(txid)? {
-            Some(transaction_details) => {
-                self.delete_transaction_details_by_txid(txid)?;
-
-                if include_raw {
-                    self.delete_transaction_by_txid(txid)?;
-                }
-                Ok(Some(transaction_details))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn del_last_index(&mut self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
-        let keychain = serde_json::to_string(&keychain)?;
-        match self.select_last_derivation_index_by_keychain(keychain.clone())? {
-            Some(value) => {
-                self.delete_last_derivation_index_by_keychain(keychain)?;
-
-                Ok(Some(value))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn del_sync_time(&mut self) -> Result<Option<SyncTime>, Error> {
-        match self.select_sync_time()? {
-            Some(value) => {
-                self.delete_sync_time()?;
-
-                Ok(Some(value))
-            }
-            None => Ok(None),
-        }
-    }
-}
-
-impl Database for SqliteDatabase {
-    fn check_descriptor_checksum<B: AsRef<[u8]>>(
-        &mut self,
-        keychain: KeychainKind,
-        bytes: B,
-    ) -> Result<(), Error> {
-        let keychain = serde_json::to_string(&keychain)?;
-
-        match self.select_checksum_by_keychain(keychain.clone())? {
-            Some(checksum) => {
-                if checksum == bytes.as_ref().to_vec() {
-                    Ok(())
-                } else {
-                    Err(Error::ChecksumMismatch)
-                }
-            }
-            None => {
-                self.insert_checksum(keychain, bytes.as_ref())?;
-                Ok(())
-            }
-        }
-    }
-
-    fn iter_script_pubkeys(&self, keychain: Option<KeychainKind>) -> Result<Vec<Script>, Error> {
-        match keychain {
-            Some(keychain) => {
-                let keychain = serde_json::to_string(&keychain)?;
-                self.select_script_pubkeys_by_keychain(keychain)
-            }
-            None => self.select_script_pubkeys(),
-        }
-    }
-
-    fn iter_utxos(&self) -> Result<Vec<LocalUtxo>, Error> {
-        self.select_utxos()
-    }
-
-    fn iter_raw_txs(&self) -> Result<Vec<Transaction>, Error> {
-        self.select_transactions()
-    }
-
-    fn iter_txs(&self, include_raw: bool) -> Result<Vec<TransactionDetails>, Error> {
-        match include_raw {
-            true => self.select_transaction_details_with_raw(),
-            false => self.select_transaction_details(),
-        }
-    }
-
-    fn get_script_pubkey_from_path(
-        &self,
-        keychain: KeychainKind,
-        child: u32,
-    ) -> Result<Option<Script>, Error> {
-        let keychain = serde_json::to_string(&keychain)?;
-        match self.select_script_pubkey_by_path(keychain, child)? {
-            Some(script) => Ok(Some(script)),
-            None => Ok(None),
-        }
-    }
-
-    fn get_path_from_script_pubkey(
-        &self,
-        script: &Script,
-    ) -> Result<Option<(KeychainKind, u32)>, Error> {
-        match self.select_script_pubkey_by_script(script.as_bytes())? {
-            Some((keychain, child)) => Ok(Some((keychain, child))),
-            None => Ok(None),
-        }
-    }
-
-    fn get_utxo(&self, outpoint: &OutPoint) -> Result<Option<LocalUtxo>, Error> {
-        match self.select_utxo_by_outpoint(&outpoint.txid, outpoint.vout)? {
-            Some((value, keychain, script_pubkey)) => Ok(Some(LocalUtxo {
-                outpoint: *outpoint,
-                txout: TxOut {
-                    value,
-                    script_pubkey,
-                },
-                keychain,
-            })),
-            None => Ok(None),
-        }
-    }
-
-    fn get_raw_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
-        match self.select_transaction_by_txid(txid)? {
-            Some(tx) => Ok(Some(tx)),
-            None => Ok(None),
-        }
-    }
-
-    fn get_tx(&self, txid: &Txid, include_raw: bool) -> Result<Option<TransactionDetails>, Error> {
-        match self.select_transaction_details_by_txid(txid)? {
-            Some(mut transaction_details) => {
-                if !include_raw {
-                    transaction_details.transaction = None;
-                }
-                Ok(Some(transaction_details))
-            }
-            None => Ok(None),
-        }
-    }
-
-    fn get_last_index(&self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
-        let keychain = serde_json::to_string(&keychain)?;
-        let value = self.select_last_derivation_index_by_keychain(keychain)?;
-        Ok(value)
-    }
-
-    fn get_sync_time(&self) -> Result<Option<SyncTime>, Error> {
-        self.select_sync_time()
-    }
-
-    fn increment_last_index(&mut self, keychain: KeychainKind) -> Result<u32, Error> {
-        let keychain_string = serde_json::to_string(&keychain)?;
-        match self.get_last_index(keychain)? {
-            Some(value) => {
-                self.update_last_derivation_index(keychain_string, value + 1)?;
-                Ok(value + 1)
-            }
-            None => {
-                self.insert_last_derivation_index(keychain_string, 0)?;
-                Ok(0)
-            }
-        }
-    }
-
-    fn flush(&mut self) -> Result<(), Error> {
-        Ok(())
-    }
-}
-
-impl BatchDatabase for SqliteDatabase {
-    type Batch = SqliteDatabase;
-
-    fn begin_batch(&self) -> Self::Batch {
-        let db = SqliteDatabase::new(self.path.clone());
-        db.connection.execute("BEGIN TRANSACTION", []).unwrap();
-        db
-    }
-
-    fn commit_batch(&mut self, batch: Self::Batch) -> Result<(), Error> {
-        batch.connection.execute("COMMIT TRANSACTION", [])?;
-        Ok(())
-    }
-}
-
-pub fn get_connection(path: &str) -> Result<Connection, Error> {
-    let connection = Connection::open(path)?;
-    migrate(&connection)?;
-    Ok(connection)
-}
-
-pub fn get_schema_version(conn: &Connection) -> rusqlite::Result<i32> {
-    let statement = conn.prepare_cached("SELECT version FROM version");
-    match statement {
-        Err(rusqlite::Error::SqliteFailure(e, Some(msg))) => {
-            if msg == "no such table: version" {
-                Ok(0)
-            } else {
-                Err(rusqlite::Error::SqliteFailure(e, Some(msg)))
-            }
-        }
-        Ok(mut stmt) => {
-            let mut rows = stmt.query([])?;
-            match rows.next()? {
-                Some(row) => {
-                    let version: i32 = row.get(0)?;
-                    Ok(version)
-                }
-                None => Ok(0),
-            }
-        }
-        _ => Ok(0),
-    }
-}
-
-pub fn set_schema_version(conn: &Connection, version: i32) -> rusqlite::Result<usize> {
-    conn.execute(
-        "UPDATE version SET version=:version",
-        named_params! {":version": version},
-    )
-}
-
-pub fn migrate(conn: &Connection) -> rusqlite::Result<()> {
-    let version = get_schema_version(conn)?;
-    let stmts = &MIGRATIONS[(version as usize)..];
-    let mut i: i32 = version;
-
-    if version == MIGRATIONS.len() as i32 {
-        log::info!("db up to date, no migration needed");
-        return Ok(());
-    }
-
-    for stmt in stmts {
-        let res = conn.execute(stmt, []);
-        if res.is_err() {
-            println!("migration failed on:\n{}\n{:?}", stmt, res);
-            break;
-        }
-
-        i += 1;
-    }
-
-    set_schema_version(conn, i)?;
-
-    Ok(())
-}
-
-#[cfg(test)]
-pub mod test {
-    use crate::database::SqliteDatabase;
-    use std::time::{SystemTime, UNIX_EPOCH};
-
-    fn get_database() -> SqliteDatabase {
-        let time = SystemTime::now().duration_since(UNIX_EPOCH).unwrap();
-        let mut dir = std::env::temp_dir();
-        dir.push(format!("bdk_{}", time.as_nanos()));
-        SqliteDatabase::new(String::from(dir.to_str().unwrap()))
-    }
-
-    #[test]
-    fn test_script_pubkey() {
-        crate::database::test::test_script_pubkey(get_database());
-    }
-
-    #[test]
-    fn test_batch_script_pubkey() {
-        crate::database::test::test_batch_script_pubkey(get_database());
-    }
-
-    #[test]
-    fn test_iter_script_pubkey() {
-        crate::database::test::test_iter_script_pubkey(get_database());
-    }
-
-    #[test]
-    fn test_del_script_pubkey() {
-        crate::database::test::test_del_script_pubkey(get_database());
-    }
-
-    #[test]
-    fn test_utxo() {
-        crate::database::test::test_utxo(get_database());
-    }
-
-    #[test]
-    fn test_raw_tx() {
-        crate::database::test::test_raw_tx(get_database());
-    }
-
-    #[test]
-    fn test_tx() {
-        crate::database::test::test_tx(get_database());
-    }
-
-    #[test]
-    fn test_last_index() {
-        crate::database::test::test_last_index(get_database());
-    }
-
-    #[test]
-    fn test_sync_time() {
-        crate::database::test::test_sync_time(get_database());
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/checksum.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/checksum.rs.html deleted file mode 100644 index 429eac91f0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/checksum.rs.html +++ /dev/null @@ -1,231 +0,0 @@ -checksum.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Descriptor checksum
-//!
-//! This module contains a re-implementation of the function used by Bitcoin Core to calculate the
-//! checksum of a descriptor
-
-use std::iter::FromIterator;
-
-use crate::descriptor::DescriptorError;
-
-const INPUT_CHARSET: &str =  "0123456789()[],'/*abcdefgh@:$%{}IJKLMNOPQRSTUVWXYZ&+-.;<=>?!^_|~ijklmnopqrstuvwxyzABCDEFGH`#\"\\ ";
-const CHECKSUM_CHARSET: &str = "qpzry9x8gf2tvdw0s3jn54khce6mua7l";
-
-fn poly_mod(mut c: u64, val: u64) -> u64 {
-    let c0 = c >> 35;
-    c = ((c & 0x7ffffffff) << 5) ^ val;
-    if c0 & 1 > 0 {
-        c ^= 0xf5dee51989
-    };
-    if c0 & 2 > 0 {
-        c ^= 0xa9fdca3312
-    };
-    if c0 & 4 > 0 {
-        c ^= 0x1bab10e32d
-    };
-    if c0 & 8 > 0 {
-        c ^= 0x3706b1677a
-    };
-    if c0 & 16 > 0 {
-        c ^= 0x644d626ffd
-    };
-
-    c
-}
-
-/// Compute the checksum of a descriptor
-pub fn get_checksum(desc: &str) -> Result<String, DescriptorError> {
-    let mut c = 1;
-    let mut cls = 0;
-    let mut clscount = 0;
-    for ch in desc.chars() {
-        let pos = INPUT_CHARSET
-            .find(ch)
-            .ok_or(DescriptorError::InvalidDescriptorCharacter(ch))? as u64;
-        c = poly_mod(c, pos & 31);
-        cls = cls * 3 + (pos >> 5);
-        clscount += 1;
-        if clscount == 3 {
-            c = poly_mod(c, cls);
-            cls = 0;
-            clscount = 0;
-        }
-    }
-    if clscount > 0 {
-        c = poly_mod(c, cls);
-    }
-    (0..8).for_each(|_| c = poly_mod(c, 0));
-    c ^= 1;
-
-    let mut chars = Vec::with_capacity(8);
-    for j in 0..8 {
-        chars.push(
-            CHECKSUM_CHARSET
-                .chars()
-                .nth(((c >> (5 * (7 - j))) & 31) as usize)
-                .unwrap(),
-        );
-    }
-
-    Ok(String::from_iter(chars))
-}
-
-#[cfg(test)]
-mod test {
-    use super::*;
-    use crate::descriptor::get_checksum;
-
-    // test get_checksum() function; it should return the same value as Bitcoin Core
-    #[test]
-    fn test_get_checksum() {
-        let desc = "wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)";
-        assert_eq!(get_checksum(desc).unwrap(), "tqz0nc62");
-
-        let desc = "pkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/44'/1'/0'/0/*)";
-        assert_eq!(get_checksum(desc).unwrap(), "lasegmfs");
-    }
-
-    #[test]
-    fn test_get_checksum_invalid_character() {
-        let sparkle_heart = vec![240, 159, 146, 150];
-        let sparkle_heart = std::str::from_utf8(&sparkle_heart)
-            .unwrap()
-            .chars()
-            .next()
-            .unwrap();
-        let invalid_desc = format!("wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcL{}fjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)", sparkle_heart);
-
-        assert!(matches!(
-            get_checksum(&invalid_desc).err(),
-            Some(DescriptorError::InvalidDescriptorCharacter(invalid_char)) if invalid_char == sparkle_heart
-        ));
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/derived.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/derived.rs.html deleted file mode 100644 index ddc922b440..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/derived.rs.html +++ /dev/null @@ -1,305 +0,0 @@ -derived.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Derived descriptor keys
-
-use std::cmp::Ordering;
-use std::fmt;
-use std::hash::{Hash, Hasher};
-use std::ops::Deref;
-
-use bitcoin::hashes::hash160;
-use bitcoin::PublicKey;
-
-pub use miniscript::{
-    descriptor::KeyMap, descriptor::Wildcard, Descriptor, DescriptorPublicKey, Legacy, Miniscript,
-    ScriptContext, Segwitv0,
-};
-use miniscript::{MiniscriptKey, ToPublicKey, TranslatePk};
-
-use crate::wallet::utils::SecpCtx;
-
-/// Extended [`DescriptorPublicKey`] that has been derived
-///
-/// Derived keys are guaranteed to never contain wildcards of any kind
-#[derive(Debug, Clone)]
-pub struct DerivedDescriptorKey<'s>(DescriptorPublicKey, &'s SecpCtx);
-
-impl<'s> DerivedDescriptorKey<'s> {
-    /// Construct a new derived key
-    ///
-    /// Panics if the key is wildcard
-    pub fn new(key: DescriptorPublicKey, secp: &'s SecpCtx) -> DerivedDescriptorKey<'s> {
-        if let DescriptorPublicKey::XPub(xpub) = &key {
-            assert!(xpub.wildcard == Wildcard::None)
-        }
-
-        DerivedDescriptorKey(key, secp)
-    }
-}
-
-impl<'s> Deref for DerivedDescriptorKey<'s> {
-    type Target = DescriptorPublicKey;
-
-    fn deref(&self) -> &Self::Target {
-        &self.0
-    }
-}
-
-impl<'s> PartialEq for DerivedDescriptorKey<'s> {
-    fn eq(&self, other: &Self) -> bool {
-        self.0 == other.0
-    }
-}
-
-impl<'s> Eq for DerivedDescriptorKey<'s> {}
-
-impl<'s> PartialOrd for DerivedDescriptorKey<'s> {
-    fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
-        self.0.partial_cmp(&other.0)
-    }
-}
-
-impl<'s> Ord for DerivedDescriptorKey<'s> {
-    fn cmp(&self, other: &Self) -> Ordering {
-        self.0.cmp(&other.0)
-    }
-}
-
-impl<'s> fmt::Display for DerivedDescriptorKey<'s> {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        self.0.fmt(f)
-    }
-}
-
-impl<'s> Hash for DerivedDescriptorKey<'s> {
-    fn hash<H: Hasher>(&self, state: &mut H) {
-        self.0.hash(state);
-    }
-}
-
-impl<'s> MiniscriptKey for DerivedDescriptorKey<'s> {
-    type Hash = Self;
-
-    fn to_pubkeyhash(&self) -> Self::Hash {
-        DerivedDescriptorKey(self.0.to_pubkeyhash(), self.1)
-    }
-
-    fn is_uncompressed(&self) -> bool {
-        self.0.is_uncompressed()
-    }
-    fn serialized_len(&self) -> usize {
-        self.0.serialized_len()
-    }
-}
-
-impl<'s> ToPublicKey for DerivedDescriptorKey<'s> {
-    fn to_public_key(&self) -> PublicKey {
-        match &self.0 {
-            DescriptorPublicKey::SinglePub(ref spub) => spub.key.to_public_key(),
-            DescriptorPublicKey::XPub(ref xpub) => {
-                xpub.xkey
-                    .derive_pub(self.1, &xpub.derivation_path)
-                    .expect("Shouldn't fail, only normal derivations")
-                    .public_key
-            }
-        }
-    }
-
-    fn hash_to_hash160(hash: &Self::Hash) -> hash160::Hash {
-        hash.to_public_key().to_pubkeyhash()
-    }
-}
-
-pub(crate) trait AsDerived {
-    // Derive a descriptor and transform all of its keys to `DerivedDescriptorKey`
-    fn as_derived<'s>(&self, index: u32, secp: &'s SecpCtx)
-        -> Descriptor<DerivedDescriptorKey<'s>>;
-
-    // Transform the keys into `DerivedDescriptorKey`.
-    //
-    // Panics if the descriptor is not "fixed", i.e. if it's derivable
-    fn as_derived_fixed<'s>(&self, secp: &'s SecpCtx) -> Descriptor<DerivedDescriptorKey<'s>>;
-}
-
-impl AsDerived for Descriptor<DescriptorPublicKey> {
-    fn as_derived<'s>(
-        &self,
-        index: u32,
-        secp: &'s SecpCtx,
-    ) -> Descriptor<DerivedDescriptorKey<'s>> {
-        self.derive(index).translate_pk_infallible(
-            |key| DerivedDescriptorKey::new(key.clone(), secp),
-            |key| DerivedDescriptorKey::new(key.clone(), secp),
-        )
-    }
-
-    fn as_derived_fixed<'s>(&self, secp: &'s SecpCtx) -> Descriptor<DerivedDescriptorKey<'s>> {
-        assert!(!self.is_deriveable());
-
-        self.as_derived(0, secp)
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/dsl.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/dsl.rs.html deleted file mode 100644 index 88055dff4c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/dsl.rs.html +++ /dev/null @@ -1,2135 +0,0 @@ -dsl.rs - source -
   1
-   2
-   3
-   4
-   5
-   6
-   7
-   8
-   9
-  10
-  11
-  12
-  13
-  14
-  15
-  16
-  17
-  18
-  19
-  20
-  21
-  22
-  23
-  24
-  25
-  26
-  27
-  28
-  29
-  30
-  31
-  32
-  33
-  34
-  35
-  36
-  37
-  38
-  39
-  40
-  41
-  42
-  43
-  44
-  45
-  46
-  47
-  48
-  49
-  50
-  51
-  52
-  53
-  54
-  55
-  56
-  57
-  58
-  59
-  60
-  61
-  62
-  63
-  64
-  65
-  66
-  67
-  68
-  69
-  70
-  71
-  72
-  73
-  74
-  75
-  76
-  77
-  78
-  79
-  80
-  81
-  82
-  83
-  84
-  85
-  86
-  87
-  88
-  89
-  90
-  91
-  92
-  93
-  94
-  95
-  96
-  97
-  98
-  99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-1060
-1061
-1062
-1063
-1064
-1065
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Descriptors DSL
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! impl_top_level_sh {
-    // disallow `sortedmulti` in `bare()`
-    ( Bare, new, new, Legacy, sortedmulti $( $inner:tt )* ) => {
-        compile_error!("`bare()` descriptors can't contain any `sortedmulti()` operands");
-    };
-    ( Bare, new, new, Legacy, sortedmulti_vec $( $inner:tt )* ) => {
-        compile_error!("`bare()` descriptors can't contain any `sortedmulti_vec()` operands");
-    };
-
-    ( $inner_struct:ident, $constructor:ident, $sortedmulti_constructor:ident, $ctx:ident, sortedmulti $( $inner:tt )* ) => {{
-        use std::marker::PhantomData;
-
-        use $crate::miniscript::descriptor::{$inner_struct, Descriptor, DescriptorPublicKey};
-        use $crate::miniscript::$ctx;
-
-        let build_desc = |k, pks| {
-            Ok((Descriptor::<DescriptorPublicKey>::$inner_struct($inner_struct::$sortedmulti_constructor(k, pks)?), PhantomData::<$ctx>))
-        };
-
-        $crate::impl_sortedmulti!(build_desc, sortedmulti $( $inner )*)
-    }};
-    ( $inner_struct:ident, $constructor:ident, $sortedmulti_constructor:ident, $ctx:ident, sortedmulti_vec $( $inner:tt )* ) => {{
-        use std::marker::PhantomData;
-
-        use $crate::miniscript::descriptor::{$inner_struct, Descriptor, DescriptorPublicKey};
-        use $crate::miniscript::$ctx;
-
-        let build_desc = |k, pks| {
-            Ok((Descriptor::<DescriptorPublicKey>::$inner_struct($inner_struct::$sortedmulti_constructor(k, pks)?), PhantomData::<$ctx>))
-        };
-
-        $crate::impl_sortedmulti!(build_desc, sortedmulti_vec $( $inner )*)
-    }};
-
-    ( $inner_struct:ident, $constructor:ident, $sortedmulti_constructor:ident, $ctx:ident, $( $minisc:tt )* ) => {{
-        use $crate::miniscript::descriptor::{$inner_struct, Descriptor, DescriptorPublicKey};
-
-        $crate::fragment!($( $minisc )*)
-            .and_then(|(minisc, keymap, networks)| Ok(($inner_struct::$constructor(minisc)?, keymap, networks)))
-            .and_then(|(inner, key_map, valid_networks)| Ok((Descriptor::<DescriptorPublicKey>::$inner_struct(inner), key_map, valid_networks)))
-    }};
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! impl_top_level_pk {
-    ( $inner_type:ident, $ctx:ty, $key:expr ) => {{
-        use $crate::miniscript::descriptor::$inner_type;
-
-        #[allow(unused_imports)]
-        use $crate::keys::{DescriptorKey, IntoDescriptorKey};
-        let secp = $crate::bitcoin::secp256k1::Secp256k1::new();
-
-        $key.into_descriptor_key()
-            .and_then(|key: DescriptorKey<$ctx>| key.extract(&secp))
-            .map_err($crate::descriptor::DescriptorError::Key)
-            .map(|(pk, key_map, valid_networks)| ($inner_type::new(pk), key_map, valid_networks))
-    }};
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! impl_leaf_opcode {
-    ( $terminal_variant:ident ) => {{
-        use $crate::descriptor::CheckMiniscript;
-
-        $crate::miniscript::Miniscript::from_ast(
-            $crate::miniscript::miniscript::decode::Terminal::$terminal_variant,
-        )
-        .map_err($crate::descriptor::DescriptorError::Miniscript)
-        .and_then(|minisc| {
-            minisc.check_miniscript()?;
-            Ok(minisc)
-        })
-        .map(|minisc| {
-            (
-                minisc,
-                $crate::miniscript::descriptor::KeyMap::default(),
-                $crate::keys::any_network(),
-            )
-        })
-    }};
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! impl_leaf_opcode_value {
-    ( $terminal_variant:ident, $value:expr ) => {{
-        use $crate::descriptor::CheckMiniscript;
-
-        $crate::miniscript::Miniscript::from_ast(
-            $crate::miniscript::miniscript::decode::Terminal::$terminal_variant($value),
-        )
-        .map_err($crate::descriptor::DescriptorError::Miniscript)
-        .and_then(|minisc| {
-            minisc.check_miniscript()?;
-            Ok(minisc)
-        })
-        .map(|minisc| {
-            (
-                minisc,
-                $crate::miniscript::descriptor::KeyMap::default(),
-                $crate::keys::any_network(),
-            )
-        })
-    }};
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! impl_leaf_opcode_value_two {
-    ( $terminal_variant:ident, $one:expr, $two:expr ) => {{
-        use $crate::descriptor::CheckMiniscript;
-
-        $crate::miniscript::Miniscript::from_ast(
-            $crate::miniscript::miniscript::decode::Terminal::$terminal_variant($one, $two),
-        )
-        .map_err($crate::descriptor::DescriptorError::Miniscript)
-        .and_then(|minisc| {
-            minisc.check_miniscript()?;
-            Ok(minisc)
-        })
-        .map(|minisc| {
-            (
-                minisc,
-                $crate::miniscript::descriptor::KeyMap::default(),
-                $crate::keys::any_network(),
-            )
-        })
-    }};
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! impl_node_opcode_two {
-    ( $terminal_variant:ident, $( $inner:tt )* ) => ({
-        use $crate::descriptor::CheckMiniscript;
-
-        let inner = $crate::fragment_internal!( @t $( $inner )* );
-        let (a, b) = $crate::descriptor::dsl::TupleTwo::from(inner).flattened();
-
-        a
-            .and_then(|a| Ok((a, b?)))
-            .and_then(|((a_minisc, mut a_keymap, a_networks), (b_minisc, b_keymap, b_networks))| {
-                // join key_maps
-                a_keymap.extend(b_keymap.into_iter());
-
-                let minisc = $crate::miniscript::Miniscript::from_ast($crate::miniscript::miniscript::decode::Terminal::$terminal_variant(
-                    std::sync::Arc::new(a_minisc),
-                    std::sync::Arc::new(b_minisc),
-                ))?;
-
-                minisc.check_miniscript()?;
-
-                Ok((minisc, a_keymap, $crate::keys::merge_networks(&a_networks, &b_networks)))
-            })
-    });
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! impl_node_opcode_three {
-    ( $terminal_variant:ident, $( $inner:tt )* ) => ({
-        use $crate::descriptor::CheckMiniscript;
-
-        let inner = $crate::fragment_internal!( @t $( $inner )* );
-        let (a, b, c) = $crate::descriptor::dsl::TupleThree::from(inner).flattened();
-
-        a
-            .and_then(|a| Ok((a, b?, c?)))
-            .and_then(|((a_minisc, mut a_keymap, a_networks), (b_minisc, b_keymap, b_networks), (c_minisc, c_keymap, c_networks))| {
-                // join key_maps
-                a_keymap.extend(b_keymap.into_iter());
-                a_keymap.extend(c_keymap.into_iter());
-
-                let networks = $crate::keys::merge_networks(&a_networks, &b_networks);
-                let networks = $crate::keys::merge_networks(&networks, &c_networks);
-
-                let minisc = $crate::miniscript::Miniscript::from_ast($crate::miniscript::miniscript::decode::Terminal::$terminal_variant(
-                    std::sync::Arc::new(a_minisc),
-                    std::sync::Arc::new(b_minisc),
-                    std::sync::Arc::new(c_minisc),
-                ))?;
-
-                minisc.check_miniscript()?;
-
-                Ok((minisc, a_keymap, networks))
-            })
-    });
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! impl_sortedmulti {
-    ( $build_desc:expr, sortedmulti_vec ( $thresh:expr, $keys:expr ) ) => ({
-        let secp = $crate::bitcoin::secp256k1::Secp256k1::new();
-        $crate::keys::make_sortedmulti($thresh, $keys, $build_desc, &secp)
-    });
-    ( $build_desc:expr, sortedmulti ( $thresh:expr $(, $key:expr )+ ) ) => ({
-        use $crate::keys::IntoDescriptorKey;
-        let secp = $crate::bitcoin::secp256k1::Secp256k1::new();
-
-        let keys = vec![
-            $(
-                $key.into_descriptor_key(),
-            )*
-        ];
-
-        keys.into_iter().collect::<Result<Vec<_>, _>>()
-            .map_err($crate::descriptor::DescriptorError::Key)
-            .and_then(|keys| $crate::keys::make_sortedmulti($thresh, keys, $build_desc, &secp))
-    });
-
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! apply_modifier {
-    ( $terminal_variant:ident, $inner:expr ) => {{
-        use $crate::descriptor::CheckMiniscript;
-
-        $inner
-            .map_err(|e| -> $crate::descriptor::DescriptorError { e.into() })
-            .and_then(|(minisc, keymap, networks)| {
-                let minisc = $crate::miniscript::Miniscript::from_ast(
-                    $crate::miniscript::miniscript::decode::Terminal::$terminal_variant(
-                        std::sync::Arc::new(minisc),
-                    ),
-                )?;
-
-                minisc.check_miniscript()?;
-
-                Ok((minisc, keymap, networks))
-            })
-    }};
-
-    ( a: $inner:expr ) => {{
-        $crate::apply_modifier!(Alt, $inner)
-    }};
-    ( s: $inner:expr ) => {{
-        $crate::apply_modifier!(Swap, $inner)
-    }};
-    ( c: $inner:expr ) => {{
-        $crate::apply_modifier!(Check, $inner)
-    }};
-    ( d: $inner:expr ) => {{
-        $crate::apply_modifier!(DupIf, $inner)
-    }};
-    ( v: $inner:expr ) => {{
-        $crate::apply_modifier!(Verify, $inner)
-    }};
-    ( j: $inner:expr ) => {{
-        $crate::apply_modifier!(NonZero, $inner)
-    }};
-    ( n: $inner:expr ) => {{
-        $crate::apply_modifier!(ZeroNotEqual, $inner)
-    }};
-
-    // Modifiers expanded to other operators
-    ( t: $inner:expr ) => {{
-        $inner.and_then(|(a_minisc, a_keymap, a_networks)| {
-            $crate::impl_leaf_opcode_value_two!(
-                AndV,
-                std::sync::Arc::new(a_minisc),
-                std::sync::Arc::new($crate::fragment!(true).unwrap().0)
-            )
-            .map(|(minisc, _, _)| (minisc, a_keymap, a_networks))
-        })
-    }};
-    ( l: $inner:expr ) => {{
-        $inner.and_then(|(a_minisc, a_keymap, a_networks)| {
-            $crate::impl_leaf_opcode_value_two!(
-                OrI,
-                std::sync::Arc::new($crate::fragment!(false).unwrap().0),
-                std::sync::Arc::new(a_minisc)
-            )
-            .map(|(minisc, _, _)| (minisc, a_keymap, a_networks))
-        })
-    }};
-    ( u: $inner:expr ) => {{
-        $inner.and_then(|(a_minisc, a_keymap, a_networks)| {
-            $crate::impl_leaf_opcode_value_two!(
-                OrI,
-                std::sync::Arc::new(a_minisc),
-                std::sync::Arc::new($crate::fragment!(false).unwrap().0)
-            )
-            .map(|(minisc, _, _)| (minisc, a_keymap, a_networks))
-        })
-    }};
-}
-
-/// Macro to write full descriptors with code
-///
-/// This macro expands to a `Result` of
-/// [`DescriptorTemplateOut`](super::template::DescriptorTemplateOut) and [`DescriptorError`](crate::descriptor::DescriptorError)
-///
-/// The syntax is very similar to the normal descriptor syntax, with the exception that modifiers
-/// cannot be grouped together. For instance, a descriptor fragment like `sdv:older(144)` has to be
-/// broken up to `s:d:v:older(144)`.
-///
-/// The `pk()`, `pk_k()` and `pk_h()` operands can take as argument any type that implements
-/// [`IntoDescriptorKey`]. This means that keys can also be written inline as strings, but in that
-/// case they must be wrapped in quotes, which is another difference compared to the standard
-/// descriptor syntax.
-///
-/// [`IntoDescriptorKey`]: crate::keys::IntoDescriptorKey
-///
-/// ## Example
-///
-/// Signature plus timelock descriptor:
-///
-/// ```
-/// # use std::str::FromStr;
-/// let (my_descriptor, my_keys_map, networks) = bdk::descriptor!(sh(wsh(and_v(v:pk("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"),older(50)))))?;
-/// # Ok::<(), Box<dyn std::error::Error>>(())
-/// ```
-///
-/// -------
-///
-/// 2-of-3 that becomes a 1-of-3 after a timelock has expired. Both `descriptor_a` and `descriptor_b` are equivalent: the first
-/// syntax is more suitable for a fixed number of items known at compile time, while the other accepts a
-/// [`Vec`] of items, which makes it more suitable for writing dynamic descriptors.
-///
-/// They both produce the descriptor: `wsh(thresh(2,pk(...),s:pk(...),sdv:older(...)))`
-///
-/// ```
-/// # use std::str::FromStr;
-/// let my_key_1 = bitcoin::PublicKey::from_str(
-///     "02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c",
-/// )?;
-/// let my_key_2 =
-///     bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
-/// let my_timelock = 50;
-///
-/// let (descriptor_a, key_map_a, networks) = bdk::descriptor! {
-///     wsh (
-///         thresh(2, pk(my_key_1), s:pk(my_key_2), s:d:v:older(my_timelock))
-///     )
-/// }?;
-///
-/// #[rustfmt::skip]
-/// let b_items = vec![
-///     bdk::fragment!(pk(my_key_1))?,
-///     bdk::fragment!(s:pk(my_key_2))?,
-///     bdk::fragment!(s:d:v:older(my_timelock))?,
-/// ];
-/// let (descriptor_b, mut key_map_b, networks) = bdk::descriptor!(wsh(thresh_vec(2, b_items)))?;
-///
-/// assert_eq!(descriptor_a, descriptor_b);
-/// assert_eq!(key_map_a.len(), key_map_b.len());
-/// # Ok::<(), Box<dyn std::error::Error>>(())
-/// ```
-///
-/// ------
-///
-/// Simple 2-of-2 multi-signature, equivalent to: `wsh(multi(2, ...))`
-///
-/// ```
-/// # use std::str::FromStr;
-/// let my_key_1 = bitcoin::PublicKey::from_str(
-///     "02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c",
-/// )?;
-/// let my_key_2 =
-///     bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
-///
-/// let (descriptor, key_map, networks) = bdk::descriptor! {
-///     wsh (
-///         multi(2, my_key_1, my_key_2)
-///     )
-/// }?;
-/// # Ok::<(), Box<dyn std::error::Error>>(())
-/// ```
-///
-/// ------
-///
-/// Native-Segwit single-sig, equivalent to: `wpkh(...)`
-///
-/// ```
-/// let my_key =
-///     bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
-///
-/// let (descriptor, key_map, networks) = bdk::descriptor!(wpkh(my_key))?;
-/// # Ok::<(), Box<dyn std::error::Error>>(())
-/// ```
-#[macro_export]
-macro_rules! descriptor {
-    ( bare ( $( $minisc:tt )* ) ) => ({
-        $crate::impl_top_level_sh!(Bare, new, new, Legacy, $( $minisc )*)
-    });
-    ( sh ( wsh ( $( $minisc:tt )* ) ) ) => ({
-        $crate::descriptor!(shwsh ($( $minisc )*))
-    });
-    ( shwsh ( $( $minisc:tt )* ) ) => ({
-        $crate::impl_top_level_sh!(Sh, new_wsh, new_wsh_sortedmulti, Segwitv0, $( $minisc )*)
-    });
-    ( pk ( $key:expr ) ) => ({
-        // `pk()` is actually implemented as `bare(pk())`
-        $crate::descriptor!( bare ( pk ( $key ) ) )
-    });
-    ( pkh ( $key:expr ) ) => ({
-        use $crate::miniscript::descriptor::{Descriptor, DescriptorPublicKey};
-
-        $crate::impl_top_level_pk!(Pkh, $crate::miniscript::Legacy, $key)
-            .map(|(a, b, c)| (Descriptor::<DescriptorPublicKey>::Pkh(a), b, c))
-    });
-    ( wpkh ( $key:expr ) ) => ({
-        use $crate::miniscript::descriptor::{Descriptor, DescriptorPublicKey};
-
-        $crate::impl_top_level_pk!(Wpkh, $crate::miniscript::Segwitv0, $key)
-            .and_then(|(a, b, c)| Ok((a?, b, c)))
-            .map(|(a, b, c)| (Descriptor::<DescriptorPublicKey>::Wpkh(a), b, c))
-    });
-    ( sh ( wpkh ( $key:expr ) ) ) => ({
-        $crate::descriptor!(shwpkh ( $key ))
-    });
-    ( shwpkh ( $key:expr ) ) => ({
-        use $crate::miniscript::descriptor::{Descriptor, DescriptorPublicKey, Sh};
-
-        $crate::impl_top_level_pk!(Wpkh, $crate::miniscript::Segwitv0, $key)
-            .and_then(|(a, b, c)| Ok((a?, b, c)))
-            .and_then(|(a, b, c)| Ok((Descriptor::<DescriptorPublicKey>::Sh(Sh::new_wpkh(a.into_inner())?), b, c)))
-    });
-    ( sh ( $( $minisc:tt )* ) ) => ({
-        $crate::impl_top_level_sh!(Sh, new, new_sortedmulti, Legacy, $( $minisc )*)
-    });
-    ( wsh ( $( $minisc:tt )* ) ) => ({
-        $crate::impl_top_level_sh!(Wsh, new, new_sortedmulti, Segwitv0, $( $minisc )*)
-    });
-}
-
-#[doc(hidden)]
-pub struct TupleTwo<A, B> {
-    pub a: A,
-    pub b: B,
-}
-
-impl<A, B> TupleTwo<A, B> {
-    pub fn flattened(self) -> (A, B) {
-        (self.a, self.b)
-    }
-}
-
-impl<A, B> From<(A, (B, ()))> for TupleTwo<A, B> {
-    fn from((a, (b, _)): (A, (B, ()))) -> Self {
-        TupleTwo { a, b }
-    }
-}
-
-#[doc(hidden)]
-pub struct TupleThree<A, B, C> {
-    pub a: A,
-    pub b: B,
-    pub c: C,
-}
-
-impl<A, B, C> TupleThree<A, B, C> {
-    pub fn flattened(self) -> (A, B, C) {
-        (self.a, self.b, self.c)
-    }
-}
-
-impl<A, B, C> From<(A, (B, (C, ())))> for TupleThree<A, B, C> {
-    fn from((a, (b, (c, _))): (A, (B, (C, ())))) -> Self {
-        TupleThree { a, b, c }
-    }
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! fragment_internal {
-    // The @v prefix is used to parse a sequence of operands and return them in a vector. This is
-    // used by operands that take a variable number of arguments, like `thresh()` and `multi()`.
-    ( @v $op:ident ( $( $args:tt )* ) $( $tail:tt )* ) => ({
-        let mut v = vec![$crate::fragment!( $op ( $( $args )* ) )];
-        v.append(&mut $crate::fragment_internal!( @v $( $tail )* ));
-
-        v
-    });
-    // Match modifiers
-    ( @v $modif:tt : $( $tail:tt )* ) => ({
-        let mut v = $crate::fragment_internal!( @v $( $tail )* );
-        let first = v.drain(..1).next().unwrap();
-
-        let first = $crate::apply_modifier!($modif:first);
-
-        let mut v_final = vec![first];
-        v_final.append(&mut v);
-
-        v_final
-    });
-    // Remove commas between operands
-    ( @v , $( $tail:tt )* ) => ({
-        $crate::fragment_internal!( @v $( $tail )* )
-    });
-    ( @v ) => ({
-        vec![]
-    });
-
-    // The @t prefix is used to parse a sequence of operands and return them in a tuple. This
-    // allows checking at compile-time the number of arguments passed to an operand. For this
-    // reason it's used by `and_*()`, `or_*()`, etc.
-    //
-    // Unfortunately, due to the fact that concatenating tuples is pretty hard, the final result
-    // adds in the first spot the parsed operand and in the second spot the result of parsing
-    // all the following ones. For two operands the type then corresponds to: (X, (X, ())). For
-    // three operands it's (X, (X, (X, ()))), etc.
-    //
-    // To check that the right number of arguments has been passed we can "cast" those tuples to
-    // more convenient structures like `TupleTwo`. If the conversion succeeds, the right number of
-    // args was passed. Otherwise the compilation fails entirely.
-    ( @t $op:ident ( $( $args:tt )* ) $( $tail:tt )* ) => ({
-        ($crate::fragment!( $op ( $( $args )* ) ), $crate::fragment_internal!( @t $( $tail )* ))
-    });
-    // Match modifiers
-    ( @t $modif:tt : $( $tail:tt )* ) => ({
-        let (first, tail) = $crate::fragment_internal!( @t $( $tail )* );
-        ($crate::apply_modifier!($modif:first), tail)
-    });
-    // Remove commas between operands
-    ( @t , $( $tail:tt )* ) => ({
-        $crate::fragment_internal!( @t $( $tail )* )
-    });
-    ( @t ) => ({});
-
-    // Fallback to calling `fragment!()`
-    ( $( $tokens:tt )* ) => ({
-        $crate::fragment!($( $tokens )*)
-    });
-}
-
-/// Macro to write descriptor fragments with code
-///
-/// This macro will be expanded to an object of type `Result<(Miniscript<DescriptorPublicKey, _>, KeyMap, ValidNetworks), DescriptorError>`. It allows writing
-/// fragments of larger descriptors that can be pieced together using `fragment!(thresh_vec(m, ...))`.
-///
-/// The syntax to write macro fragment is the same as documented for the [`descriptor`] macro.
-#[macro_export]
-macro_rules! fragment {
-    // Modifiers
-    ( $modif:tt : $( $tail:tt )* ) => ({
-        let op = $crate::fragment!( $( $tail )* );
-        $crate::apply_modifier!($modif:op)
-    });
-
-    // Miniscript
-    ( true ) => ({
-        $crate::impl_leaf_opcode!(True)
-    });
-    ( false ) => ({
-        $crate::impl_leaf_opcode!(False)
-    });
-    ( pk_k ( $key:expr ) ) => ({
-        let secp = $crate::bitcoin::secp256k1::Secp256k1::new();
-        $crate::keys::make_pk($key, &secp)
-    });
-    ( pk ( $key:expr ) ) => ({
-        $crate::fragment!(c:pk_k ( $key ))
-    });
-    ( pk_h ( $key:expr ) ) => ({
-        let secp = $crate::bitcoin::secp256k1::Secp256k1::new();
-        $crate::keys::make_pkh($key, &secp)
-    });
-    ( after ( $value:expr ) ) => ({
-        $crate::impl_leaf_opcode_value!(After, $value)
-    });
-    ( older ( $value:expr ) ) => ({
-        $crate::impl_leaf_opcode_value!(Older, $value)
-    });
-    ( sha256 ( $hash:expr ) ) => ({
-        $crate::impl_leaf_opcode_value!(Sha256, $hash)
-    });
-    ( hash256 ( $hash:expr ) ) => ({
-        $crate::impl_leaf_opcode_value!(Hash256, $hash)
-    });
-    ( ripemd160 ( $hash:expr ) ) => ({
-        $crate::impl_leaf_opcode_value!(Ripemd160, $hash)
-    });
-    ( hash160 ( $hash:expr ) ) => ({
-        $crate::impl_leaf_opcode_value!(Hash160, $hash)
-    });
-    ( and_v ( $( $inner:tt )* ) ) => ({
-        $crate::impl_node_opcode_two!(AndV, $( $inner )*)
-    });
-    ( and_b ( $( $inner:tt )* ) ) => ({
-        $crate::impl_node_opcode_two!(AndB, $( $inner )*)
-    });
-    ( and_or ( $( $inner:tt )* ) ) => ({
-        $crate::impl_node_opcode_three!(AndOr, $( $inner )*)
-    });
-    ( andor ( $( $inner:tt )* ) ) => ({
-        $crate::impl_node_opcode_three!(AndOr, $( $inner )*)
-    });
-    ( or_b ( $( $inner:tt )* ) ) => ({
-        $crate::impl_node_opcode_two!(OrB, $( $inner )*)
-    });
-    ( or_d ( $( $inner:tt )* ) ) => ({
-        $crate::impl_node_opcode_two!(OrD, $( $inner )*)
-    });
-    ( or_c ( $( $inner:tt )* ) ) => ({
-        $crate::impl_node_opcode_two!(OrC, $( $inner )*)
-    });
-    ( or_i ( $( $inner:tt )* ) ) => ({
-        $crate::impl_node_opcode_two!(OrI, $( $inner )*)
-    });
-    ( thresh_vec ( $thresh:expr, $items:expr ) ) => ({
-        use $crate::miniscript::descriptor::KeyMap;
-
-        let (items, key_maps_networks): (Vec<_>, Vec<_>) = $items.into_iter().map(|(a, b, c)| (a, (b, c))).unzip();
-        let items = items.into_iter().map(std::sync::Arc::new).collect();
-
-        let (key_maps, valid_networks) = key_maps_networks.into_iter().fold((KeyMap::default(), $crate::keys::any_network()), |(mut keys_acc, net_acc), (key, net)| {
-            keys_acc.extend(key.into_iter());
-            let net_acc = $crate::keys::merge_networks(&net_acc, &net);
-
-            (keys_acc, net_acc)
-        });
-
-        $crate::impl_leaf_opcode_value_two!(Thresh, $thresh, items)
-            .map(|(minisc, _, _)| (minisc, key_maps, valid_networks))
-    });
-    ( thresh ( $thresh:expr, $( $inner:tt )* ) ) => ({
-        let items = $crate::fragment_internal!( @v $( $inner )* );
-
-        items.into_iter().collect::<Result<Vec<_>, _>>()
-            .and_then(|items| $crate::fragment!(thresh_vec($thresh, items)))
-    });
-    ( multi_vec ( $thresh:expr, $keys:expr ) ) => ({
-        $crate::keys::make_multi($thresh, $keys)
-    });
-    ( multi ( $thresh:expr $(, $key:expr )+ ) ) => ({
-        use $crate::keys::IntoDescriptorKey;
-        let secp = $crate::bitcoin::secp256k1::Secp256k1::new();
-
-        let keys = vec![
-            $(
-                $key.into_descriptor_key(),
-            )*
-        ];
-
-        keys.into_iter().collect::<Result<Vec<_>, _>>()
-            .map_err($crate::descriptor::DescriptorError::Key)
-            .and_then(|keys| $crate::keys::make_multi($thresh, keys, &secp))
-    });
-
-    // `sortedmulti()` is handled separately
-    ( sortedmulti ( $( $inner:tt )* ) ) => ({
-        compile_error!("`sortedmulti` can only be used as the root operand of a descriptor");
-    });
-    ( sortedmulti_vec ( $( $inner:tt )* ) ) => ({
-        compile_error!("`sortedmulti_vec` can only be used as the root operand of a descriptor");
-    });
-}
-
-#[cfg(test)]
-mod test {
-    use bitcoin::hashes::hex::ToHex;
-    use bitcoin::secp256k1::Secp256k1;
-    use miniscript::descriptor::{DescriptorPublicKey, DescriptorTrait, KeyMap};
-    use miniscript::{Descriptor, Legacy, Segwitv0};
-
-    use std::str::FromStr;
-
-    use crate::descriptor::{DescriptorError, DescriptorMeta};
-    use crate::keys::{DescriptorKey, IntoDescriptorKey, ValidNetworks};
-    use bitcoin::network::constants::Network::{Bitcoin, Regtest, Signet, Testnet};
-    use bitcoin::util::bip32;
-    use bitcoin::PrivateKey;
-
-    use crate::descriptor::derived::AsDerived;
-
-    // test the descriptor!() macro
-
-    // verify descriptor generates expected script(s) (if bare or pk) or address(es)
-    fn check(
-        desc: Result<(Descriptor<DescriptorPublicKey>, KeyMap, ValidNetworks), DescriptorError>,
-        is_witness: bool,
-        is_fixed: bool,
-        expected: &[&str],
-    ) {
-        let secp = Secp256k1::new();
-
-        let (desc, _key_map, _networks) = desc.unwrap();
-        assert_eq!(desc.is_witness(), is_witness);
-        assert_eq!(!desc.is_deriveable(), is_fixed);
-        for i in 0..expected.len() {
-            let index = i as u32;
-            let child_desc = if !desc.is_deriveable() {
-                desc.as_derived_fixed(&secp)
-            } else {
-                desc.as_derived(index, &secp)
-            };
-            let address = child_desc.address(Regtest);
-            if let Ok(address) = address {
-                assert_eq!(address.to_string(), *expected.get(i).unwrap());
-            } else {
-                let script = child_desc.script_pubkey();
-                assert_eq!(script.to_hex().as_str(), *expected.get(i).unwrap());
-            }
-        }
-    }
-
-    // - at least one of each "type" of operator; ie. one modifier, one leaf_opcode, one leaf_opcode_value, etc.
-    // - mixing up key types that implement IntoDescriptorKey in multi() or thresh()
-
-    // expected script for pk and bare manually created
-    // expected addresses created with `bitcoin-cli getdescriptorinfo` (for hash) and `bitcoin-cli deriveaddresses`
-
-    #[test]
-    fn test_fixed_legacy_descriptors() {
-        let pubkey1 = bitcoin::PublicKey::from_str(
-            "03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd",
-        )
-        .unwrap();
-        let pubkey2 = bitcoin::PublicKey::from_str(
-            "032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af",
-        )
-        .unwrap();
-
-        check(
-            descriptor!(bare(multi(1,pubkey1,pubkey2))),
-            false,
-            true,
-            &["512103a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd21032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af52ae"],
-        );
-        check(
-            descriptor!(pk(pubkey1)),
-            false,
-            true,
-            &["2103a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bdac"],
-        );
-        check(
-            descriptor!(pkh(pubkey1)),
-            false,
-            true,
-            &["muZpTpBYhxmRFuCjLc7C6BBDF32C8XVJUi"],
-        );
-        check(
-            descriptor!(sh(multi(1, pubkey1, pubkey2))),
-            false,
-            true,
-            &["2MymURoV1bzuMnWMGiXzyomDkeuxXY7Suey"],
-        );
-    }
-
-    #[test]
-    fn test_fixed_segwitv0_descriptors() {
-        let pubkey1 = bitcoin::PublicKey::from_str(
-            "03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd",
-        )
-        .unwrap();
-        let pubkey2 = bitcoin::PublicKey::from_str(
-            "032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af",
-        )
-        .unwrap();
-
-        check(
-            descriptor!(wpkh(pubkey1)),
-            true,
-            true,
-            &["bcrt1qngw83fg8dz0k749cg7k3emc7v98wy0c7azaa6h"],
-        );
-        check(
-            descriptor!(sh(wpkh(pubkey1))),
-            true,
-            true,
-            &["2N5LiC3CqzxDamRTPG1kiNv1FpNJQ7x28sb"],
-        );
-        check(
-            descriptor!(wsh(multi(1, pubkey1, pubkey2))),
-            true,
-            true,
-            &["bcrt1qgw8jvv2hsrvjfa6q66rk6har7d32lrqm5unnf5cl63q9phxfvgps5fyfqe"],
-        );
-        check(
-            descriptor!(sh(wsh(multi(1, pubkey1, pubkey2)))),
-            true,
-            true,
-            &["2NCidRJysy7apkmE6JF5mLLaJFkrN3Ub9iy"],
-        );
-    }
-
-    #[test]
-    fn test_fixed_threeop_descriptors() {
-        let redeem_key = bitcoin::PublicKey::from_str(
-            "03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd",
-        )
-        .unwrap();
-        let move_key = bitcoin::PublicKey::from_str(
-            "032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af",
-        )
-        .unwrap();
-
-        check(
-            descriptor!(sh(wsh(and_or(pk(redeem_key), older(1000), pk(move_key))))),
-            true,
-            true,
-            &["2MypGwr5eQWAWWJtiJgUEToVxc4zuokjQRe"],
-        );
-    }
-
-    #[test]
-    fn test_bip32_legacy_descriptors() {
-        let xprv = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
-
-        let path = bip32::DerivationPath::from_str("m/0").unwrap();
-        let desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
-        check(
-            descriptor!(pk(desc_key)),
-            false,
-            false,
-            &[
-                "2102363ad03c10024e1b597a5b01b9982807fb638e00b06f3b2d4a89707de3b93c37ac",
-                "2102063a21fd780df370ed2fc8c4b86aa5ea642630609c203009df631feb7b480dd2ac",
-                "2102ba2685ad1fa5891cb100f1656b2ce3801822ccb9bac0336734a6f8c1b93ebbc0ac",
-            ],
-        );
-
-        let desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
-        check(
-            descriptor!(pkh(desc_key)),
-            false,
-            false,
-            &[
-                "muvBdsVpJxpFuTHMKA47htJPdCvdt4F9DP",
-                "mxQSHK7DL2t1DN3xFxov1janCoXSSkrSPj",
-                "mfz43r15GiWo4nizmyzMNubsnkDpByFFAn",
-            ],
-        );
-
-        let path2 = bip32::DerivationPath::from_str("m/2147483647'/0").unwrap();
-        let desc_key1 = (xprv, path).into_descriptor_key().unwrap();
-        let desc_key2 = (xprv, path2).into_descriptor_key().unwrap();
-
-        check(
-            descriptor!(sh(multi(1, desc_key1, desc_key2))),
-            false,
-            false,
-            &[
-                "2MtMDXsfwefZkEEhVViEPidvcKRUtJamJJ8",
-                "2MwAUZ1NYyWjhVvGTethFL6n7nZhS8WE6At",
-                "2MuT6Bj66HLwZd7s4SoD8XbK4GwriKEA6Gr",
-            ],
-        );
-    }
-
-    #[test]
-    fn test_bip32_segwitv0_descriptors() {
-        let xprv = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
-
-        let path = bip32::DerivationPath::from_str("m/0").unwrap();
-        let desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
-        check(
-            descriptor!(wpkh(desc_key)),
-            true,
-            false,
-            &[
-                "bcrt1qnhm8w9fhc8cxzgqsmqdf9fyjccyvc0gltnymu0",
-                "bcrt1qhylfd55rn75w9fj06zspctad5w4hz33rf0ttad",
-                "bcrt1qq5sq3a6k9av9d8cne0k9wcldy4nqey5yt6889r",
-            ],
-        );
-
-        let desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
-        check(
-            descriptor!(sh(wpkh(desc_key))),
-            true,
-            false,
-            &[
-                "2MxvjQCaLqZ5QxZ7XotZDQ63hZw3NPss763",
-                "2NDUoevN4QMzhvHDMGhKuiT2fN9HXbFRMwn",
-                "2NF4BEAY2jF1Fu8vqfN3NVKoFtom77pUxrx",
-            ],
-        );
-
-        let path2 = bip32::DerivationPath::from_str("m/2147483647'/0").unwrap();
-        let desc_key1 = (xprv, path.clone()).into_descriptor_key().unwrap();
-        let desc_key2 = (xprv, path2.clone()).into_descriptor_key().unwrap();
-        check(
-            descriptor!(wsh(multi(1, desc_key1, desc_key2))),
-            true,
-            false,
-            &[
-                "bcrt1qfxv8mxmlv5sz8q2mnuyaqdfe9jr4vvmx0csjhn092p6f4qfygfkq2hng49",
-                "bcrt1qerj85g243e6jlcdxpmn9spk0gefcwvu7nw7ee059d5ydzpdhkm2qwfkf5k",
-                "bcrt1qxkl2qss3k58q9ktc8e89pwr4gnptfpw4hju4xstxcjc0hkcae3jstluty7",
-            ],
-        );
-
-        let desc_key1 = (xprv, path).into_descriptor_key().unwrap();
-        let desc_key2 = (xprv, path2).into_descriptor_key().unwrap();
-        check(
-            descriptor!(sh(wsh(multi(1, desc_key1, desc_key2)))),
-            true,
-            false,
-            &[
-                "2NFCtXvx9q4ci2kvKub17iSTgvRXGctCGhz",
-                "2NB2PrFPv5NxWCpygas8tPrGJG2ZFgeuwJw",
-                "2N79ZAGo5cMi5Jt7Wo9L5YmF5GkEw7sjWdC",
-            ],
-        );
-    }
-
-    #[test]
-    fn test_dsl_sortedmulti() {
-        let key_1 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
-        let path_1 = bip32::DerivationPath::from_str("m/0").unwrap();
-
-        let key_2 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF").unwrap();
-        let path_2 = bip32::DerivationPath::from_str("m/1").unwrap();
-
-        let desc_key1 = (key_1, path_1);
-        let desc_key2 = (key_2, path_2);
-
-        check(
-            descriptor!(sh(sortedmulti(1, desc_key1.clone(), desc_key2.clone()))),
-            false,
-            false,
-            &[
-                "2MsxzPEJDBzpGffJXPaDpfXZAUNnZhaMh2N",
-                "2My3x3DLPK3UbGWGpxrXr1RnbD8MNC4FpgS",
-                "2NByEuiQT7YLqHCTNxL5KwYjvtuCYcXNBSC",
-                "2N1TGbP81kj2VUKTSWgrwxoMfuWjvfUdyu7",
-                "2N3Bomq2fpAcLRNfZnD3bCWK9quan28CxCR",
-                "2N9nrZaEzEFDqEAU9RPvDnXGT6AVwBDKAQb",
-            ],
-        );
-
-        check(
-            descriptor!(sh(wsh(sortedmulti(
-                1,
-                desc_key1.clone(),
-                desc_key2.clone()
-            )))),
-            true,
-            false,
-            &[
-                "2NCogc5YyM4N6ruv1hUa7WLMW1BPeCK7N9B",
-                "2N6mkSAKi1V2oaBXby7XHdvBMKEDRQcFpNe",
-                "2NFmTSttm9v6bXeoWaBvpMcgfPQcZhNn3Eh",
-                "2Mvib87RBPUHXNEpX5S5Kv1qqrhBfgBGsJM",
-                "2MtMv5mcK2EjcLsH8Txpx2JxLLzHr4ttczL",
-                "2MsWCB56rb4T6yPv8QudZGHERTwNgesE4f6",
-            ],
-        );
-
-        check(
-            descriptor!(wsh(sortedmulti_vec(1, vec![desc_key1, desc_key2]))),
-            true,
-            false,
-            &[
-                "bcrt1qcvq0lg8q7a47ytrd7zk5y7uls7mulrenjgvflwylpppgwf8029es4vhpnj",
-                "bcrt1q80yn8sdt6l7pjvkz25lglyaqctlmsq9ugk80rmxt8yu0npdsj97sc7l4de",
-                "bcrt1qrvf6024v9s50qhffe3t2fr2q9ckdhx2g6jz32chm2pp24ymgtr5qfrdmct",
-                "bcrt1q6srfmra0ynypym35c7jvsxt2u4yrugeajq95kg2ps7lk6h2gaunsq9lzxn",
-                "bcrt1qhl8rrzzcdpu7tcup3lcg7tge52sqvwy5fcv4k78v6kxtwmqf3v6qpvyjza",
-                "bcrt1ql2elz9mhm9ll27ddpewhxs732xyl2fk2kpkqz9gdyh33wgcun4vstrd49k",
-            ],
-        );
-    }
-
-    // - verify the valid_networks returned is correctly computed based on the keys present in the descriptor
-    #[test]
-    fn test_valid_networks() {
-        let xprv = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
-        let path = bip32::DerivationPath::from_str("m/0").unwrap();
-        let desc_key = (xprv, path).into_descriptor_key().unwrap();
-
-        let (_desc, _key_map, valid_networks) = descriptor!(pkh(desc_key)).unwrap();
-        assert_eq!(
-            valid_networks,
-            [Testnet, Regtest, Signet].iter().cloned().collect()
-        );
-
-        let xprv = bip32::ExtendedPrivKey::from_str("xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi").unwrap();
-        let path = bip32::DerivationPath::from_str("m/10/20/30/40").unwrap();
-        let desc_key = (xprv, path).into_descriptor_key().unwrap();
-
-        let (_desc, _key_map, valid_networks) = descriptor!(wpkh(desc_key)).unwrap();
-        assert_eq!(valid_networks, [Bitcoin].iter().cloned().collect());
-    }
-
-    // - verify the key_maps are correctly merged together
-    #[test]
-    fn test_key_maps_merged() {
-        let secp = Secp256k1::new();
-
-        let xprv1 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
-        let path1 = bip32::DerivationPath::from_str("m/0").unwrap();
-        let desc_key1 = (xprv1, path1.clone()).into_descriptor_key().unwrap();
-
-        let xprv2 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF").unwrap();
-        let path2 = bip32::DerivationPath::from_str("m/2147483647'/0").unwrap();
-        let desc_key2 = (xprv2, path2.clone()).into_descriptor_key().unwrap();
-
-        let xprv3 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf").unwrap();
-        let path3 = bip32::DerivationPath::from_str("m/10/20/30/40").unwrap();
-        let desc_key3 = (xprv3, path3.clone()).into_descriptor_key().unwrap();
-
-        let (_desc, key_map, _valid_networks) =
-            descriptor!(sh(wsh(multi(2, desc_key1, desc_key2, desc_key3)))).unwrap();
-        assert_eq!(key_map.len(), 3);
-
-        let desc_key1: DescriptorKey<Segwitv0> = (xprv1, path1).into_descriptor_key().unwrap();
-        let desc_key2: DescriptorKey<Segwitv0> = (xprv2, path2).into_descriptor_key().unwrap();
-        let desc_key3: DescriptorKey<Segwitv0> = (xprv3, path3).into_descriptor_key().unwrap();
-
-        let (key1, _key_map, _valid_networks) = desc_key1.extract(&secp).unwrap();
-        let (key2, _key_map, _valid_networks) = desc_key2.extract(&secp).unwrap();
-        let (key3, _key_map, _valid_networks) = desc_key3.extract(&secp).unwrap();
-        assert_eq!(key_map.get(&key1).unwrap().to_string(), "tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy/0/*");
-        assert_eq!(key_map.get(&key2).unwrap().to_string(), "tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF/2147483647'/0/*");
-        assert_eq!(key_map.get(&key3).unwrap().to_string(), "tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf/10/20/30/40/*");
-    }
-
-    // - verify the ScriptContext is correctly validated (i.e. passing a type that only impl IntoDescriptorKey<Segwitv0> to a pkh() descriptor should throw a compilation error
-    #[test]
-    fn test_script_context_validation() {
-        // this compiles
-        let xprv = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
-        let path = bip32::DerivationPath::from_str("m/0").unwrap();
-        let desc_key: DescriptorKey<Legacy> = (xprv, path).into_descriptor_key().unwrap();
-
-        let (desc, _key_map, _valid_networks) = descriptor!(pkh(desc_key)).unwrap();
-        assert_eq!(desc.to_string(), "pkh(tpubD6NzVbkrYhZ4WR7a4vY1VT3khMJMeAxVsfq9TBJyJWrNk247zCJtV7AWf6UJP7rAVsn8NNKdJi3gFyKPTmWZS9iukb91xbn2HbFSMQm2igY/0/*)#yrnz9pp2");
-
-        // as expected this does not compile due to invalid context
-        //let desc_key:DescriptorKey<Segwitv0> = (xprv, path.clone()).into_descriptor_key().unwrap();
-        //let (desc, _key_map, _valid_networks) = descriptor!(pkh(desc_key)).unwrap();
-    }
-
-    #[test]
-    fn test_dsl_modifiers() {
-        let private_key =
-            PrivateKey::from_wif("cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR").unwrap();
-        let (descriptor, _, _) =
-            descriptor!(wsh(thresh(2,d:v:older(1),s:pk(private_key),s:pk(private_key)))).unwrap();
-
-        assert_eq!(descriptor.to_string(), "wsh(thresh(2,dv:older(1),s:pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c),s:pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c)))#cfdcqs3s")
-    }
-
-    #[test]
-    #[should_panic(expected = "Miniscript(ContextError(CompressedOnly))")]
-    fn test_dsl_miniscript_checks() {
-        let mut uncompressed_pk =
-            PrivateKey::from_wif("L5EZftvrYaSudiozVRzTqLcHLNDoVn7H5HSfM9BAN6tMJX8oTWz6").unwrap();
-        uncompressed_pk.compressed = false;
-
-        descriptor!(wsh(v: pk(uncompressed_pk))).unwrap();
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/error.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/error.rs.html deleted file mode 100644 index eae4aad94c..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/error.rs.html +++ /dev/null @@ -1,143 +0,0 @@ -error.rs - source -
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Descriptor errors
-
-/// Errors related to the parsing and usage of descriptors
-#[derive(Debug)]
-pub enum Error {
-    /// Invalid HD Key path, such as having a wildcard but a length != 1
-    InvalidHdKeyPath,
-    /// The provided descriptor doesn't match its checksum
-    InvalidDescriptorChecksum,
-    /// The descriptor contains hardened derivation steps on public extended keys
-    HardenedDerivationXpub,
-    /// The descriptor contains multiple keys with the same BIP32 fingerprint
-    DuplicatedKeys,
-
-    /// Error thrown while working with [`keys`](crate::keys)
-    Key(crate::keys::KeyError),
-    /// Error while extracting and manipulating policies
-    Policy(crate::descriptor::policy::PolicyError),
-
-    /// Invalid character found in the descriptor checksum
-    InvalidDescriptorCharacter(char),
-
-    /// BIP32 error
-    Bip32(bitcoin::util::bip32::Error),
-    /// Error during base58 decoding
-    Base58(bitcoin::util::base58::Error),
-    /// Key-related error
-    Pk(bitcoin::util::key::Error),
-    /// Miniscript error
-    Miniscript(miniscript::Error),
-    /// Hex decoding error
-    Hex(bitcoin::hashes::hex::Error),
-}
-
-impl From<crate::keys::KeyError> for Error {
-    fn from(key_error: crate::keys::KeyError) -> Error {
-        match key_error {
-            crate::keys::KeyError::Miniscript(inner) => Error::Miniscript(inner),
-            crate::keys::KeyError::Bip32(inner) => Error::Bip32(inner),
-            e => Error::Key(e),
-        }
-    }
-}
-
-impl std::fmt::Display for Error {
-    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
-        write!(f, "{:?}", self)
-    }
-}
-
-impl std::error::Error for Error {}
-
-impl_error!(bitcoin::util::bip32::Error, Bip32);
-impl_error!(bitcoin::util::base58::Error, Base58);
-impl_error!(bitcoin::util::key::Error, Pk);
-impl_error!(miniscript::Error, Miniscript);
-impl_error!(bitcoin::hashes::hex::Error, Hex);
-impl_error!(crate::descriptor::policy::PolicyError, Policy);
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/mod.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/mod.rs.html deleted file mode 100644 index 15786f837b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/mod.rs.html +++ /dev/null @@ -1,1613 +0,0 @@ -mod.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Descriptors
-//!
-//! This module contains generic utilities to work with descriptors, plus some re-exported types
-//! from [`miniscript`].
-
-use std::collections::{BTreeMap, HashMap, HashSet};
-use std::ops::Deref;
-
-use bitcoin::util::bip32::{
-    ChildNumber, DerivationPath, ExtendedPrivKey, ExtendedPubKey, Fingerprint, KeySource,
-};
-use bitcoin::util::psbt;
-use bitcoin::{Network, PublicKey, Script, TxOut};
-
-use miniscript::descriptor::{DescriptorPublicKey, DescriptorType, DescriptorXKey, Wildcard};
-pub use miniscript::{descriptor::KeyMap, Descriptor, Legacy, Miniscript, ScriptContext, Segwitv0};
-use miniscript::{DescriptorTrait, ForEachKey, TranslatePk};
-
-use crate::descriptor::policy::BuildSatisfaction;
-
-pub mod checksum;
-pub(crate) mod derived;
-#[doc(hidden)]
-pub mod dsl;
-pub mod error;
-pub mod policy;
-pub mod template;
-
-pub use self::checksum::get_checksum;
-use self::derived::AsDerived;
-pub use self::derived::DerivedDescriptorKey;
-pub use self::error::Error as DescriptorError;
-pub use self::policy::Policy;
-use self::template::DescriptorTemplateOut;
-use crate::keys::{IntoDescriptorKey, KeyError};
-use crate::wallet::signer::SignersContainer;
-use crate::wallet::utils::SecpCtx;
-
-/// Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]
-pub type ExtendedDescriptor = Descriptor<DescriptorPublicKey>;
-
-/// Alias for a [`Descriptor`] that contains extended **derived** keys
-pub type DerivedDescriptor<'s> = Descriptor<DerivedDescriptorKey<'s>>;
-
-/// Alias for the type of maps that represent derivation paths in a [`psbt::Input`] or
-/// [`psbt::Output`]
-///
-/// [`psbt::Input`]: bitcoin::util::psbt::Input
-/// [`psbt::Output`]: bitcoin::util::psbt::Output
-pub type HdKeyPaths = BTreeMap<PublicKey, KeySource>;
-
-/// Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]
-pub trait IntoWalletDescriptor {
-    /// Convert to wallet descriptor
-    fn into_wallet_descriptor(
-        self,
-        secp: &SecpCtx,
-        network: Network,
-    ) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError>;
-}
-
-impl IntoWalletDescriptor for &str {
-    fn into_wallet_descriptor(
-        self,
-        secp: &SecpCtx,
-        network: Network,
-    ) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError> {
-        let descriptor = if self.contains('#') {
-            let parts: Vec<&str> = self.splitn(2, '#').collect();
-            if !get_checksum(parts[0])
-                .ok()
-                .map(|computed| computed == parts[1])
-                .unwrap_or(false)
-            {
-                return Err(DescriptorError::InvalidDescriptorChecksum);
-            }
-
-            parts[0]
-        } else {
-            self
-        };
-
-        ExtendedDescriptor::parse_descriptor(secp, descriptor)?
-            .into_wallet_descriptor(secp, network)
-    }
-}
-
-impl IntoWalletDescriptor for &String {
-    fn into_wallet_descriptor(
-        self,
-        secp: &SecpCtx,
-        network: Network,
-    ) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError> {
-        self.as_str().into_wallet_descriptor(secp, network)
-    }
-}
-
-impl IntoWalletDescriptor for ExtendedDescriptor {
-    fn into_wallet_descriptor(
-        self,
-        secp: &SecpCtx,
-        network: Network,
-    ) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError> {
-        (self, KeyMap::default()).into_wallet_descriptor(secp, network)
-    }
-}
-
-impl IntoWalletDescriptor for (ExtendedDescriptor, KeyMap) {
-    fn into_wallet_descriptor(
-        self,
-        secp: &SecpCtx,
-        network: Network,
-    ) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError> {
-        use crate::keys::DescriptorKey;
-
-        let check_key = |pk: &DescriptorPublicKey| {
-            let (pk, _, networks) = if self.0.is_witness() {
-                let desciptor_key: DescriptorKey<miniscript::Segwitv0> =
-                    pk.clone().into_descriptor_key()?;
-                desciptor_key.extract(secp)?
-            } else {
-                let desciptor_key: DescriptorKey<miniscript::Legacy> =
-                    pk.clone().into_descriptor_key()?;
-                desciptor_key.extract(secp)?
-            };
-
-            if networks.contains(&network) {
-                Ok(pk)
-            } else {
-                Err(DescriptorError::Key(KeyError::InvalidNetwork))
-            }
-        };
-
-        // check the network for the keys
-        let translated = self.0.translate_pk(check_key, check_key)?;
-
-        Ok((translated, self.1))
-    }
-}
-
-impl IntoWalletDescriptor for DescriptorTemplateOut {
-    fn into_wallet_descriptor(
-        self,
-        _secp: &SecpCtx,
-        network: Network,
-    ) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError> {
-        let valid_networks = &self.2;
-
-        let fix_key = |pk: &DescriptorPublicKey| {
-            if valid_networks.contains(&network) {
-                // workaround for xpubs generated by other key types, like bip39: since when the
-                // conversion is made one network has to be chosen, what we generally choose
-                // "mainnet", but then override the set of valid networks to specify that all of
-                // them are valid. here we reset the network to make sure the wallet struct gets a
-                // descriptor with the right network everywhere.
-                let pk = match pk {
-                    DescriptorPublicKey::XPub(ref xpub) => {
-                        let mut xpub = xpub.clone();
-                        xpub.xkey.network = network;
-
-                        DescriptorPublicKey::XPub(xpub)
-                    }
-                    other => other.clone(),
-                };
-
-                Ok(pk)
-            } else {
-                Err(DescriptorError::Key(KeyError::InvalidNetwork))
-            }
-        };
-
-        // fixup the network for keys that need it
-        let translated = self.0.translate_pk(fix_key, fix_key)?;
-
-        Ok((translated, self.1))
-    }
-}
-
-/// Wrapper for `IntoWalletDescriptor` that performs additional checks on the keys contained in the
-/// descriptor
-pub(crate) fn into_wallet_descriptor_checked<T: IntoWalletDescriptor>(
-    inner: T,
-    secp: &SecpCtx,
-    network: Network,
-) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError> {
-    let (descriptor, keymap) = inner.into_wallet_descriptor(secp, network)?;
-
-    // Ensure the keys don't contain any hardened derivation steps or hardened wildcards
-    let descriptor_contains_hardened_steps = descriptor.for_any_key(|k| {
-        if let DescriptorPublicKey::XPub(DescriptorXKey {
-            derivation_path,
-            wildcard,
-            ..
-        }) = k.as_key()
-        {
-            return *wildcard == Wildcard::Hardened
-                || derivation_path.into_iter().any(ChildNumber::is_hardened);
-        }
-
-        false
-    });
-    if descriptor_contains_hardened_steps {
-        return Err(DescriptorError::HardenedDerivationXpub);
-    }
-
-    // Ensure that there are no duplicated keys
-    let mut found_keys = HashSet::new();
-    let descriptor_contains_duplicated_keys = descriptor.for_any_key(|k| {
-        if let DescriptorPublicKey::XPub(xkey) = k.as_key() {
-            let fingerprint = xkey.root_fingerprint(secp);
-            if found_keys.contains(&fingerprint) {
-                return true;
-            }
-
-            found_keys.insert(fingerprint);
-        }
-
-        false
-    });
-    if descriptor_contains_duplicated_keys {
-        return Err(DescriptorError::DuplicatedKeys);
-    }
-
-    Ok((descriptor, keymap))
-}
-
-#[doc(hidden)]
-/// Used internally mainly by the `descriptor!()` and `fragment!()` macros
-pub trait CheckMiniscript<Ctx: miniscript::ScriptContext> {
-    fn check_miniscript(&self) -> Result<(), miniscript::Error>;
-}
-
-impl<Ctx: miniscript::ScriptContext, Pk: miniscript::MiniscriptKey> CheckMiniscript<Ctx>
-    for miniscript::Miniscript<Pk, Ctx>
-{
-    fn check_miniscript(&self) -> Result<(), miniscript::Error> {
-        Ctx::check_global_validity(self)?;
-
-        Ok(())
-    }
-}
-
-/// Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]
-pub trait ExtractPolicy {
-    /// Extract the spending [`policy`]
-    fn extract_policy(
-        &self,
-        signers: &SignersContainer,
-        psbt: BuildSatisfaction,
-        secp: &SecpCtx,
-    ) -> Result<Option<Policy>, DescriptorError>;
-}
-
-pub(crate) trait XKeyUtils {
-    fn full_path(&self, append: &[ChildNumber]) -> DerivationPath;
-    fn root_fingerprint(&self, secp: &SecpCtx) -> Fingerprint;
-}
-
-// FIXME: `InnerXKey` was made private in rust-miniscript, so we have to implement this manually on
-// both `ExtendedPubKey` and `ExtendedPrivKey`.
-//
-// Revert back to using the trait once https://github.com/rust-bitcoin/rust-miniscript/pull/230 is
-// released
-impl XKeyUtils for DescriptorXKey<ExtendedPubKey> {
-    fn full_path(&self, append: &[ChildNumber]) -> DerivationPath {
-        let full_path = match self.origin {
-            Some((_, ref path)) => path
-                .into_iter()
-                .chain(self.derivation_path.into_iter())
-                .cloned()
-                .collect(),
-            None => self.derivation_path.clone(),
-        };
-
-        if self.wildcard != Wildcard::None {
-            full_path
-                .into_iter()
-                .chain(append.iter())
-                .cloned()
-                .collect()
-        } else {
-            full_path
-        }
-    }
-
-    fn root_fingerprint(&self, _: &SecpCtx) -> Fingerprint {
-        match self.origin {
-            Some((fingerprint, _)) => fingerprint,
-            None => self.xkey.fingerprint(),
-        }
-    }
-}
-impl XKeyUtils for DescriptorXKey<ExtendedPrivKey> {
-    fn full_path(&self, append: &[ChildNumber]) -> DerivationPath {
-        let full_path = match self.origin {
-            Some((_, ref path)) => path
-                .into_iter()
-                .chain(self.derivation_path.into_iter())
-                .cloned()
-                .collect(),
-            None => self.derivation_path.clone(),
-        };
-
-        if self.wildcard != Wildcard::None {
-            full_path
-                .into_iter()
-                .chain(append.iter())
-                .cloned()
-                .collect()
-        } else {
-            full_path
-        }
-    }
-
-    fn root_fingerprint(&self, secp: &SecpCtx) -> Fingerprint {
-        match self.origin {
-            Some((fingerprint, _)) => fingerprint,
-            None => self.xkey.fingerprint(secp),
-        }
-    }
-}
-
-pub(crate) trait DerivedDescriptorMeta {
-    fn get_hd_keypaths(&self, secp: &SecpCtx) -> Result<HdKeyPaths, DescriptorError>;
-}
-
-pub(crate) trait DescriptorMeta {
-    fn is_witness(&self) -> bool;
-    fn get_extended_keys(&self) -> Result<Vec<DescriptorXKey<ExtendedPubKey>>, DescriptorError>;
-    fn derive_from_hd_keypaths<'s>(
-        &self,
-        hd_keypaths: &HdKeyPaths,
-        secp: &'s SecpCtx,
-    ) -> Option<DerivedDescriptor<'s>>;
-    fn derive_from_psbt_input<'s>(
-        &self,
-        psbt_input: &psbt::Input,
-        utxo: Option<TxOut>,
-        secp: &'s SecpCtx,
-    ) -> Option<DerivedDescriptor<'s>>;
-}
-
-pub(crate) trait DescriptorScripts {
-    fn psbt_redeem_script(&self) -> Option<Script>;
-    fn psbt_witness_script(&self) -> Option<Script>;
-}
-
-impl<'s> DescriptorScripts for DerivedDescriptor<'s> {
-    fn psbt_redeem_script(&self) -> Option<Script> {
-        match self.desc_type() {
-            DescriptorType::ShWpkh => Some(self.explicit_script()),
-            DescriptorType::ShWsh => Some(self.explicit_script().to_v0_p2wsh()),
-            DescriptorType::Sh => Some(self.explicit_script()),
-            DescriptorType::Bare => Some(self.explicit_script()),
-            DescriptorType::ShSortedMulti => Some(self.explicit_script()),
-            _ => None,
-        }
-    }
-
-    fn psbt_witness_script(&self) -> Option<Script> {
-        match self.desc_type() {
-            DescriptorType::Wsh => Some(self.explicit_script()),
-            DescriptorType::ShWsh => Some(self.explicit_script()),
-            DescriptorType::WshSortedMulti | DescriptorType::ShWshSortedMulti => {
-                Some(self.explicit_script())
-            }
-            _ => None,
-        }
-    }
-}
-
-impl DescriptorMeta for ExtendedDescriptor {
-    fn is_witness(&self) -> bool {
-        matches!(
-            self.desc_type(),
-            DescriptorType::Wpkh
-                | DescriptorType::ShWpkh
-                | DescriptorType::Wsh
-                | DescriptorType::ShWsh
-                | DescriptorType::ShWshSortedMulti
-                | DescriptorType::WshSortedMulti
-        )
-    }
-
-    fn get_extended_keys(&self) -> Result<Vec<DescriptorXKey<ExtendedPubKey>>, DescriptorError> {
-        let mut answer = Vec::new();
-
-        self.for_each_key(|pk| {
-            if let DescriptorPublicKey::XPub(xpub) = pk.as_key() {
-                answer.push(xpub.clone());
-            }
-
-            true
-        });
-
-        Ok(answer)
-    }
-
-    fn derive_from_hd_keypaths<'s>(
-        &self,
-        hd_keypaths: &HdKeyPaths,
-        secp: &'s SecpCtx,
-    ) -> Option<DerivedDescriptor<'s>> {
-        let index: HashMap<_, _> = hd_keypaths.values().map(|(a, b)| (a, b)).collect();
-
-        let mut path_found = None;
-        self.for_each_key(|key| {
-            if path_found.is_some() {
-                // already found a matching path, we are done
-                return true;
-            }
-
-            if let DescriptorPublicKey::XPub(xpub) = key.as_key().deref() {
-                // Check if the key matches one entry in our `index`. If it does, `matches()` will
-                // return the "prefix" that matched, so we remove that prefix from the full path
-                // found in `index` and save it in `derive_path`. We expect this to be a derivation
-                // path of length 1 if the key is `wildcard` and an empty path otherwise.
-                let root_fingerprint = xpub.root_fingerprint(secp);
-                let derivation_path: Option<Vec<ChildNumber>> = index
-                    .get_key_value(&root_fingerprint)
-                    .and_then(|(fingerprint, path)| {
-                        xpub.matches(&(**fingerprint, (*path).clone()), secp)
-                    })
-                    .map(|prefix| {
-                        index
-                            .get(&xpub.root_fingerprint(secp))
-                            .unwrap()
-                            .into_iter()
-                            .skip(prefix.into_iter().count())
-                            .cloned()
-                            .collect()
-                    });
-
-                match derivation_path {
-                    Some(path) if xpub.wildcard != Wildcard::None && path.len() == 1 => {
-                        // Ignore hardened wildcards
-                        if let ChildNumber::Normal { index } = path[0] {
-                            path_found = Some(index)
-                        }
-                    }
-                    Some(path) if xpub.wildcard == Wildcard::None && path.is_empty() => {
-                        path_found = Some(0)
-                    }
-                    _ => {}
-                }
-            }
-
-            true
-        });
-
-        path_found.map(|path| self.as_derived(path, secp))
-    }
-
-    fn derive_from_psbt_input<'s>(
-        &self,
-        psbt_input: &psbt::Input,
-        utxo: Option<TxOut>,
-        secp: &'s SecpCtx,
-    ) -> Option<DerivedDescriptor<'s>> {
-        if let Some(derived) = self.derive_from_hd_keypaths(&psbt_input.bip32_derivation, secp) {
-            return Some(derived);
-        }
-        if self.is_deriveable() {
-            // We can't try to bruteforce the derivation index, exit here
-            return None;
-        }
-
-        let descriptor = self.as_derived_fixed(secp);
-        match descriptor.desc_type() {
-            // TODO: add pk() here
-            DescriptorType::Pkh | DescriptorType::Wpkh | DescriptorType::ShWpkh
-                if utxo.is_some()
-                    && descriptor.script_pubkey() == utxo.as_ref().unwrap().script_pubkey =>
-            {
-                Some(descriptor)
-            }
-            DescriptorType::Bare | DescriptorType::Sh | DescriptorType::ShSortedMulti
-                if psbt_input.redeem_script.is_some()
-                    && &descriptor.explicit_script()
-                        == psbt_input.redeem_script.as_ref().unwrap() =>
-            {
-                Some(descriptor)
-            }
-            DescriptorType::Wsh
-            | DescriptorType::ShWsh
-            | DescriptorType::ShWshSortedMulti
-            | DescriptorType::WshSortedMulti
-                if psbt_input.witness_script.is_some()
-                    && &descriptor.explicit_script()
-                        == psbt_input.witness_script.as_ref().unwrap() =>
-            {
-                Some(descriptor)
-            }
-            _ => None,
-        }
-    }
-}
-
-impl<'s> DerivedDescriptorMeta for DerivedDescriptor<'s> {
-    fn get_hd_keypaths(&self, secp: &SecpCtx) -> Result<HdKeyPaths, DescriptorError> {
-        let mut answer = BTreeMap::new();
-        self.for_each_key(|key| {
-            if let DescriptorPublicKey::XPub(xpub) = key.as_key().deref() {
-                let derived_pubkey = xpub
-                    .xkey
-                    .derive_pub(secp, &xpub.derivation_path)
-                    .expect("Derivation can't fail");
-
-                answer.insert(
-                    derived_pubkey.public_key,
-                    (xpub.root_fingerprint(secp), xpub.full_path(&[])),
-                );
-            }
-
-            true
-        });
-
-        Ok(answer)
-    }
-}
-
-#[cfg(test)]
-mod test {
-    use std::str::FromStr;
-
-    use bitcoin::consensus::encode::deserialize;
-    use bitcoin::hashes::hex::FromHex;
-    use bitcoin::secp256k1::Secp256k1;
-    use bitcoin::util::{bip32, psbt};
-
-    use super::*;
-    use crate::psbt::PsbtUtils;
-
-    #[test]
-    fn test_derive_from_psbt_input_wpkh_wif() {
-        let descriptor = Descriptor::<DescriptorPublicKey>::from_str(
-            "wpkh(02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737)",
-        )
-        .unwrap();
-        let psbt: psbt::PartiallySignedTransaction = deserialize(
-            &Vec::<u8>::from_hex(
-                "70736274ff010052010000000162307be8e431fbaff807cdf9cdc3fde44d7402\
-                 11bc8342c31ffd6ec11fe35bcc0100000000ffffffff01328601000000000016\
-                 001493ce48570b55c42c2af816aeaba06cfee1224fae000000000001011fa086\
-                 01000000000016001493ce48570b55c42c2af816aeaba06cfee1224fae010304\
-                 010000000000",
-            )
-            .unwrap(),
-        )
-        .unwrap();
-
-        assert!(descriptor
-            .derive_from_psbt_input(&psbt.inputs[0], psbt.get_utxo_for(0), &Secp256k1::new())
-            .is_some());
-    }
-
-    #[test]
-    fn test_derive_from_psbt_input_pkh_tpub() {
-        let descriptor = Descriptor::<DescriptorPublicKey>::from_str(
-            "pkh([0f056943/44h/0h/0h]tpubDDpWvmUrPZrhSPmUzCMBHffvC3HyMAPnWDSAQNBTnj1iZeJa7BZQEttFiP4DS4GCcXQHezdXhn86Hj6LHX5EDstXPWrMaSneRWM8yUf6NFd/10/*)",
-        )
-        .unwrap();
-        let psbt: psbt::PartiallySignedTransaction = deserialize(
-            &Vec::<u8>::from_hex(
-                "70736274ff010053010000000145843b86be54a3cd8c9e38444e1162676c00df\
-                 e7964122a70df491ea12fd67090100000000ffffffff01c19598000000000017\
-                 a91432bb94283282f72b2e034709e348c44d5a4db0ef8700000000000100f902\
-                 0000000001010167e99c0eb67640f3a1b6805f2d8be8238c947f8aaf49eb0a9c\
-                 bee6a42c984200000000171600142b29a22019cca05b9c2b2d283a4c4489e1cf\
-                 9f8ffeffffff02a01dced06100000017a914e2abf033cadbd74f0f4c74946201\
-                 decd20d5c43c8780969800000000001976a9148b0fce5fb1264e599a65387313\
-                 3c95478b902eb288ac02473044022015d9211576163fa5b001e84dfa3d44efd9\
-                 86b8f3a0d3d2174369288b2b750906022048dacc0e5d73ae42512fd2b97e2071\
-                 a8d0bce443b390b1fe0b8128fe70ec919e01210232dad1c5a67dcb0116d407e2\
-                 52584228ab7ec00e8b9779d0c3ffe8114fc1a7d2c80600000103040100000022\
-                 0603433b83583f8c4879b329dd08bbc7da935e4cc02f637ff746e05f0466ffb2\
-                 a6a2180f0569432c00008000000080000000800a000000000000000000",
-            )
-            .unwrap(),
-        )
-        .unwrap();
-
-        assert!(descriptor
-            .derive_from_psbt_input(&psbt.inputs[0], psbt.get_utxo_for(0), &Secp256k1::new())
-            .is_some());
-    }
-
-    #[test]
-    fn test_derive_from_psbt_input_wsh() {
-        let descriptor = Descriptor::<DescriptorPublicKey>::from_str(
-            "wsh(and_v(v:pk(03b6633fef2397a0a9de9d7b6f23aef8368a6e362b0581f0f0af70d5ecfd254b14),older(6)))",
-        )
-        .unwrap();
-        let psbt: psbt::PartiallySignedTransaction = deserialize(
-            &Vec::<u8>::from_hex(
-                "70736274ff01005302000000011c8116eea34408ab6529223c9a176606742207\
-                 67a1ff1d46a6e3c4a88243ea6e01000000000600000001109698000000000017\
-                 a914ad105f61102e0d01d7af40d06d6a5c3ae2f7fde387000000000001012b80\
-                 969800000000002200203ca72f106a72234754890ca7640c43f65d2174e44d33\
-                 336030f9059345091044010304010000000105252103b6633fef2397a0a9de9d\
-                 7b6f23aef8368a6e362b0581f0f0af70d5ecfd254b14ad56b20000",
-            )
-            .unwrap(),
-        )
-        .unwrap();
-
-        assert!(descriptor
-            .derive_from_psbt_input(&psbt.inputs[0], psbt.get_utxo_for(0), &Secp256k1::new())
-            .is_some());
-    }
-
-    #[test]
-    fn test_derive_from_psbt_input_sh() {
-        let descriptor = Descriptor::<DescriptorPublicKey>::from_str(
-            "sh(and_v(v:pk(021403881a5587297818fcaf17d239cefca22fce84a45b3b1d23e836c4af671dbb),after(630000)))",
-        )
-        .unwrap();
-        let psbt: psbt::PartiallySignedTransaction = deserialize(
-            &Vec::<u8>::from_hex(
-                "70736274ff0100530100000001bc8c13df445dfadcc42afa6dc841f85d22b01d\
-                 a6270ebf981740f4b7b1d800390000000000feffffff01ba9598000000000017\
-                 a91457b148ba4d3e5fa8608a8657875124e3d1c9390887f09c0900000100e002\
-                 0000000001016ba1bbe05cc93574a0d611ec7d93ad0ab6685b28d0cd80e8a82d\
-                 debb326643c90100000000feffffff02809698000000000017a914d9a6e8c455\
-                 8e16c8253afe53ce37ad61cf4c38c487403504cf6100000017a9144044fb6e0b\
-                 757dfc1b34886b6a95aef4d3db137e870247304402202a9b72d939bcde8ba2a1\
-                 e0980597e47af4f5c152a78499143c3d0a78ac2286a602207a45b1df9e93b8c9\
-                 6f09f5c025fe3e413ca4b905fe65ee55d32a3276439a9b8f012102dc1fcc2636\
-                 4da1aa718f03d8d9bd6f2ff410ed2cf1245a168aa3bcc995ac18e0a806000001\
-                 03040100000001042821021403881a5587297818fcaf17d239cefca22fce84a4\
-                 5b3b1d23e836c4af671dbbad03f09c09b10000",
-            )
-            .unwrap(),
-        )
-        .unwrap();
-
-        assert!(descriptor
-            .derive_from_psbt_input(&psbt.inputs[0], psbt.get_utxo_for(0), &Secp256k1::new())
-            .is_some());
-    }
-
-    #[test]
-    fn test_to_wallet_descriptor_fixup_networks() {
-        use crate::keys::{any_network, IntoDescriptorKey};
-
-        let secp = Secp256k1::new();
-
-        let xpub = bip32::ExtendedPubKey::from_str("xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL").unwrap();
-        let path = bip32::DerivationPath::from_str("m/0").unwrap();
-
-        // here `to_descriptor_key` will set the valid networks for the key to only mainnet, since
-        // we are using an "xpub"
-        let key = (xpub, path).into_descriptor_key().unwrap();
-        // override it with any. this happens in some key conversions, like bip39
-        let key = key.override_valid_networks(any_network());
-
-        // make a descriptor out of it
-        let desc = crate::descriptor!(wpkh(key)).unwrap();
-        // this should convert the key that supports "any_network" to the right network (testnet)
-        let (wallet_desc, _) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-
-        assert_eq!(wallet_desc.to_string(), "wpkh(tpubDEnoLuPdBep9bzw5LoGYpsxUQYheRQ9gcgrJhJEcdKFB9cWQRyYmkCyRoTqeD4tJYiVVgt6A3rN6rWn9RYhR9sBsGxji29LYWHuKKbdb1ev/0/*)#y8p7e8kk");
-    }
-
-    // test IntoWalletDescriptor trait from &str with and without checksum appended
-    #[test]
-    fn test_descriptor_from_str_with_checksum() {
-        let secp = Secp256k1::new();
-
-        let desc = "wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#tqz0nc62"
-            .into_wallet_descriptor(&secp, Network::Testnet);
-        assert!(desc.is_ok());
-
-        let desc = "wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
-            .into_wallet_descriptor(&secp, Network::Testnet);
-        assert!(desc.is_ok());
-
-        let desc = "wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)#67ju93jw"
-            .into_wallet_descriptor(&secp, Network::Testnet);
-        assert!(desc.is_ok());
-
-        let desc = "wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
-            .into_wallet_descriptor(&secp, Network::Testnet);
-        assert!(desc.is_ok());
-
-        let desc = "wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#67ju93jw"
-            .into_wallet_descriptor(&secp, Network::Testnet);
-        assert!(matches!(
-            desc.err(),
-            Some(DescriptorError::InvalidDescriptorChecksum)
-        ));
-
-        let desc = "wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#67ju93jw"
-            .into_wallet_descriptor(&secp, Network::Testnet);
-        assert!(matches!(
-            desc.err(),
-            Some(DescriptorError::InvalidDescriptorChecksum)
-        ));
-    }
-
-    // test IntoWalletDescriptor trait from &str with keys from right and wrong network
-    #[test]
-    fn test_descriptor_from_str_with_keys_network() {
-        let secp = Secp256k1::new();
-
-        let desc = "wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
-            .into_wallet_descriptor(&secp, Network::Testnet);
-        assert!(desc.is_ok());
-
-        let desc = "wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
-            .into_wallet_descriptor(&secp, Network::Regtest);
-        assert!(desc.is_ok());
-
-        let desc = "wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
-            .into_wallet_descriptor(&secp, Network::Testnet);
-        assert!(desc.is_ok());
-
-        let desc = "wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
-            .into_wallet_descriptor(&secp, Network::Regtest);
-        assert!(desc.is_ok());
-
-        let desc = "sh(wpkh(02864bb4ad00cefa806098a69e192bbda937494e69eb452b87bb3f20f6283baedb))"
-            .into_wallet_descriptor(&secp, Network::Testnet);
-        assert!(desc.is_ok());
-
-        let desc = "sh(wpkh(02864bb4ad00cefa806098a69e192bbda937494e69eb452b87bb3f20f6283baedb))"
-            .into_wallet_descriptor(&secp, Network::Bitcoin);
-        assert!(desc.is_ok());
-
-        let desc = "wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
-            .into_wallet_descriptor(&secp, Network::Bitcoin);
-        assert!(matches!(
-            desc.err(),
-            Some(DescriptorError::Key(KeyError::InvalidNetwork))
-        ));
-
-        let desc = "wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
-            .into_wallet_descriptor(&secp, Network::Bitcoin);
-        assert!(matches!(
-            desc.err(),
-            Some(DescriptorError::Key(KeyError::InvalidNetwork))
-        ));
-    }
-
-    // test IntoWalletDescriptor trait from the output of the descriptor!() macro
-    #[test]
-    fn test_descriptor_from_str_from_output_of_macro() {
-        let secp = Secp256k1::new();
-
-        let tpub = bip32::ExtendedPubKey::from_str("tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK").unwrap();
-        let path = bip32::DerivationPath::from_str("m/1/2").unwrap();
-        let key = (tpub, path).into_descriptor_key().unwrap();
-
-        // make a descriptor out of it
-        let desc = crate::descriptor!(wpkh(key)).unwrap();
-
-        let (wallet_desc, _) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let wallet_desc_str = wallet_desc.to_string();
-        assert_eq!(wallet_desc_str, "wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)#67ju93jw");
-
-        let (wallet_desc2, _) = wallet_desc_str
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        assert_eq!(wallet_desc, wallet_desc2)
-    }
-
-    #[test]
-    fn test_into_wallet_descriptor_checked() {
-        let secp = Secp256k1::new();
-
-        let descriptor = "wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0'/1/2/*)";
-        let result = into_wallet_descriptor_checked(descriptor, &secp, Network::Testnet);
-
-        assert!(result.is_err());
-        assert!(matches!(
-            result.unwrap_err(),
-            DescriptorError::HardenedDerivationXpub
-        ));
-
-        let descriptor = "wsh(multi(2,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0/*,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/*))";
-        let result = into_wallet_descriptor_checked(descriptor, &secp, Network::Testnet);
-
-        assert!(result.is_err());
-        assert!(matches!(
-            result.unwrap_err(),
-            DescriptorError::DuplicatedKeys
-        ));
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/policy.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/policy.rs.html deleted file mode 100644 index fec3ab17bc..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/policy.rs.html +++ /dev/null @@ -1,3209 +0,0 @@ -policy.rs - source -
   1
-   2
-   3
-   4
-   5
-   6
-   7
-   8
-   9
-  10
-  11
-  12
-  13
-  14
-  15
-  16
-  17
-  18
-  19
-  20
-  21
-  22
-  23
-  24
-  25
-  26
-  27
-  28
-  29
-  30
-  31
-  32
-  33
-  34
-  35
-  36
-  37
-  38
-  39
-  40
-  41
-  42
-  43
-  44
-  45
-  46
-  47
-  48
-  49
-  50
-  51
-  52
-  53
-  54
-  55
-  56
-  57
-  58
-  59
-  60
-  61
-  62
-  63
-  64
-  65
-  66
-  67
-  68
-  69
-  70
-  71
-  72
-  73
-  74
-  75
-  76
-  77
-  78
-  79
-  80
-  81
-  82
-  83
-  84
-  85
-  86
-  87
-  88
-  89
-  90
-  91
-  92
-  93
-  94
-  95
-  96
-  97
-  98
-  99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-1060
-1061
-1062
-1063
-1064
-1065
-1066
-1067
-1068
-1069
-1070
-1071
-1072
-1073
-1074
-1075
-1076
-1077
-1078
-1079
-1080
-1081
-1082
-1083
-1084
-1085
-1086
-1087
-1088
-1089
-1090
-1091
-1092
-1093
-1094
-1095
-1096
-1097
-1098
-1099
-1100
-1101
-1102
-1103
-1104
-1105
-1106
-1107
-1108
-1109
-1110
-1111
-1112
-1113
-1114
-1115
-1116
-1117
-1118
-1119
-1120
-1121
-1122
-1123
-1124
-1125
-1126
-1127
-1128
-1129
-1130
-1131
-1132
-1133
-1134
-1135
-1136
-1137
-1138
-1139
-1140
-1141
-1142
-1143
-1144
-1145
-1146
-1147
-1148
-1149
-1150
-1151
-1152
-1153
-1154
-1155
-1156
-1157
-1158
-1159
-1160
-1161
-1162
-1163
-1164
-1165
-1166
-1167
-1168
-1169
-1170
-1171
-1172
-1173
-1174
-1175
-1176
-1177
-1178
-1179
-1180
-1181
-1182
-1183
-1184
-1185
-1186
-1187
-1188
-1189
-1190
-1191
-1192
-1193
-1194
-1195
-1196
-1197
-1198
-1199
-1200
-1201
-1202
-1203
-1204
-1205
-1206
-1207
-1208
-1209
-1210
-1211
-1212
-1213
-1214
-1215
-1216
-1217
-1218
-1219
-1220
-1221
-1222
-1223
-1224
-1225
-1226
-1227
-1228
-1229
-1230
-1231
-1232
-1233
-1234
-1235
-1236
-1237
-1238
-1239
-1240
-1241
-1242
-1243
-1244
-1245
-1246
-1247
-1248
-1249
-1250
-1251
-1252
-1253
-1254
-1255
-1256
-1257
-1258
-1259
-1260
-1261
-1262
-1263
-1264
-1265
-1266
-1267
-1268
-1269
-1270
-1271
-1272
-1273
-1274
-1275
-1276
-1277
-1278
-1279
-1280
-1281
-1282
-1283
-1284
-1285
-1286
-1287
-1288
-1289
-1290
-1291
-1292
-1293
-1294
-1295
-1296
-1297
-1298
-1299
-1300
-1301
-1302
-1303
-1304
-1305
-1306
-1307
-1308
-1309
-1310
-1311
-1312
-1313
-1314
-1315
-1316
-1317
-1318
-1319
-1320
-1321
-1322
-1323
-1324
-1325
-1326
-1327
-1328
-1329
-1330
-1331
-1332
-1333
-1334
-1335
-1336
-1337
-1338
-1339
-1340
-1341
-1342
-1343
-1344
-1345
-1346
-1347
-1348
-1349
-1350
-1351
-1352
-1353
-1354
-1355
-1356
-1357
-1358
-1359
-1360
-1361
-1362
-1363
-1364
-1365
-1366
-1367
-1368
-1369
-1370
-1371
-1372
-1373
-1374
-1375
-1376
-1377
-1378
-1379
-1380
-1381
-1382
-1383
-1384
-1385
-1386
-1387
-1388
-1389
-1390
-1391
-1392
-1393
-1394
-1395
-1396
-1397
-1398
-1399
-1400
-1401
-1402
-1403
-1404
-1405
-1406
-1407
-1408
-1409
-1410
-1411
-1412
-1413
-1414
-1415
-1416
-1417
-1418
-1419
-1420
-1421
-1422
-1423
-1424
-1425
-1426
-1427
-1428
-1429
-1430
-1431
-1432
-1433
-1434
-1435
-1436
-1437
-1438
-1439
-1440
-1441
-1442
-1443
-1444
-1445
-1446
-1447
-1448
-1449
-1450
-1451
-1452
-1453
-1454
-1455
-1456
-1457
-1458
-1459
-1460
-1461
-1462
-1463
-1464
-1465
-1466
-1467
-1468
-1469
-1470
-1471
-1472
-1473
-1474
-1475
-1476
-1477
-1478
-1479
-1480
-1481
-1482
-1483
-1484
-1485
-1486
-1487
-1488
-1489
-1490
-1491
-1492
-1493
-1494
-1495
-1496
-1497
-1498
-1499
-1500
-1501
-1502
-1503
-1504
-1505
-1506
-1507
-1508
-1509
-1510
-1511
-1512
-1513
-1514
-1515
-1516
-1517
-1518
-1519
-1520
-1521
-1522
-1523
-1524
-1525
-1526
-1527
-1528
-1529
-1530
-1531
-1532
-1533
-1534
-1535
-1536
-1537
-1538
-1539
-1540
-1541
-1542
-1543
-1544
-1545
-1546
-1547
-1548
-1549
-1550
-1551
-1552
-1553
-1554
-1555
-1556
-1557
-1558
-1559
-1560
-1561
-1562
-1563
-1564
-1565
-1566
-1567
-1568
-1569
-1570
-1571
-1572
-1573
-1574
-1575
-1576
-1577
-1578
-1579
-1580
-1581
-1582
-1583
-1584
-1585
-1586
-1587
-1588
-1589
-1590
-1591
-1592
-1593
-1594
-1595
-1596
-1597
-1598
-1599
-1600
-1601
-1602
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Descriptor policy
-//!
-//! This module implements the logic to extract and represent the spending policies of a descriptor
-//! in a more human-readable format.
-//!
-//! This is an **EXPERIMENTAL** feature, API and other major changes are expected.
-//!
-//! ## Example
-//!
-//! ```
-//! # use std::sync::Arc;
-//! # use bdk::descriptor::*;
-//! # use bdk::bitcoin::secp256k1::Secp256k1;
-//! use bdk::descriptor::policy::BuildSatisfaction;
-//! let secp = Secp256k1::new();
-//! let desc = "wsh(and_v(v:pk(cV3oCth6zxZ1UVsHLnGothsWNsaoxRhC6aeNi5VbSdFpwUkgkEci),or_d(pk(cVMTy7uebJgvFaSBwcgvwk8qn8xSLc97dKow4MBetjrrahZoimm2),older(12960))))";
-//!
-//! let (extended_desc, key_map) = ExtendedDescriptor::parse_descriptor(&secp, desc)?;
-//! println!("{:?}", extended_desc);
-//!
-//! let signers = Arc::new(key_map.into());
-//! let policy = extended_desc.extract_policy(&signers, BuildSatisfaction::None, &secp)?;
-//! println!("policy: {}", serde_json::to_string(&policy)?);
-//! # Ok::<(), bdk::Error>(())
-//! ```
-
-use std::cmp::max;
-use std::collections::{BTreeMap, HashSet, VecDeque};
-use std::fmt;
-
-use serde::ser::SerializeMap;
-use serde::{Serialize, Serializer};
-
-use bitcoin::hashes::*;
-use bitcoin::util::bip32::Fingerprint;
-use bitcoin::PublicKey;
-
-use miniscript::descriptor::{DescriptorPublicKey, ShInner, SortedMultiVec, WshInner};
-use miniscript::{Descriptor, Miniscript, MiniscriptKey, Satisfier, ScriptContext, Terminal};
-
-#[allow(unused_imports)]
-use log::{debug, error, info, trace};
-
-use crate::descriptor::ExtractPolicy;
-use crate::wallet::signer::{SignerId, SignersContainer};
-use crate::wallet::utils::{self, After, Older, SecpCtx};
-
-use super::checksum::get_checksum;
-use super::error::Error;
-use super::XKeyUtils;
-use bitcoin::util::psbt::PartiallySignedTransaction as Psbt;
-use miniscript::psbt::PsbtInputSatisfier;
-
-/// Raw public key or extended key fingerprint
-#[derive(Debug, Clone, Default, Serialize)]
-pub struct PkOrF {
-    #[serde(skip_serializing_if = "Option::is_none")]
-    pubkey: Option<PublicKey>,
-    #[serde(skip_serializing_if = "Option::is_none")]
-    pubkey_hash: Option<hash160::Hash>,
-    #[serde(skip_serializing_if = "Option::is_none")]
-    fingerprint: Option<Fingerprint>,
-}
-
-impl PkOrF {
-    fn from_key(k: &DescriptorPublicKey, secp: &SecpCtx) -> Self {
-        match k {
-            DescriptorPublicKey::SinglePub(pubkey) => PkOrF {
-                pubkey: Some(pubkey.key),
-                ..Default::default()
-            },
-            DescriptorPublicKey::XPub(xpub) => PkOrF {
-                fingerprint: Some(xpub.root_fingerprint(secp)),
-                ..Default::default()
-            },
-        }
-    }
-}
-
-/// An item that needs to be satisfied
-#[derive(Debug, Clone, Serialize)]
-#[serde(tag = "type", rename_all = "UPPERCASE")]
-pub enum SatisfiableItem {
-    // Leaves
-    /// Signature for a raw public key
-    Signature(PkOrF),
-    /// Signature for an extended key fingerprint
-    SignatureKey(PkOrF),
-    /// SHA256 preimage hash
-    Sha256Preimage {
-        /// The digest value
-        hash: sha256::Hash,
-    },
-    /// Double SHA256 preimage hash
-    Hash256Preimage {
-        /// The digest value
-        hash: sha256d::Hash,
-    },
-    /// RIPEMD160 preimage hash
-    Ripemd160Preimage {
-        /// The digest value
-        hash: ripemd160::Hash,
-    },
-    /// SHA256 then RIPEMD160 preimage hash
-    Hash160Preimage {
-        /// The digest value
-        hash: hash160::Hash,
-    },
-    /// Absolute timeclock timestamp
-    AbsoluteTimelock {
-        /// The timestamp value
-        value: u32,
-    },
-    /// Relative timelock locktime
-    RelativeTimelock {
-        /// The locktime value
-        value: u32,
-    },
-    /// Multi-signature public keys with threshold count
-    Multisig {
-        /// The raw public key or extended key fingerprint
-        keys: Vec<PkOrF>,
-        /// The required threshold count
-        threshold: usize,
-    },
-
-    // Complex item
-    /// Threshold items with threshold count
-    Thresh {
-        /// The policy items
-        items: Vec<Policy>,
-        /// The required threshold count
-        threshold: usize,
-    },
-}
-
-impl SatisfiableItem {
-    /// Returns whether the [`SatisfiableItem`] is a leaf item
-    pub fn is_leaf(&self) -> bool {
-        !matches!(
-            self,
-            SatisfiableItem::Thresh {
-                items: _,
-                threshold: _,
-            }
-        )
-    }
-
-    /// Returns a unique id for the [`SatisfiableItem`]
-    pub fn id(&self) -> String {
-        get_checksum(&serde_json::to_string(self).expect("Failed to serialize a SatisfiableItem"))
-            .expect("Failed to compute a SatisfiableItem id")
-    }
-}
-
-fn combinations(vec: &[usize], size: usize) -> Vec<Vec<usize>> {
-    assert!(vec.len() >= size);
-
-    let mut answer = Vec::new();
-
-    let mut queue = VecDeque::new();
-    for (index, val) in vec.iter().enumerate() {
-        let mut new_vec = Vec::with_capacity(size);
-        new_vec.push(*val);
-        queue.push_back((index, new_vec));
-    }
-
-    while let Some((index, vals)) = queue.pop_front() {
-        if vals.len() >= size {
-            answer.push(vals);
-        } else {
-            for (new_index, val) in vec.iter().skip(index + 1).enumerate() {
-                let mut cloned = vals.clone();
-                cloned.push(*val);
-                queue.push_front((new_index, cloned));
-            }
-        }
-    }
-
-    answer
-}
-
-fn mix<T: Clone>(vec: Vec<Vec<T>>) -> Vec<Vec<T>> {
-    if vec.is_empty() || vec.iter().any(Vec::is_empty) {
-        return vec![];
-    }
-
-    let mut answer = Vec::new();
-    let size = vec.len();
-
-    let mut queue = VecDeque::new();
-    for i in &vec[0] {
-        let mut new_vec = Vec::with_capacity(size);
-        new_vec.push(i.clone());
-        queue.push_back(new_vec);
-    }
-
-    while let Some(vals) = queue.pop_front() {
-        if vals.len() >= size {
-            answer.push(vals);
-        } else {
-            let level = vals.len();
-            for i in &vec[level] {
-                let mut cloned = vals.clone();
-                cloned.push(i.clone());
-                queue.push_front(cloned);
-            }
-        }
-    }
-
-    answer
-}
-
-/// Type for a map of sets of [`Condition`] items keyed by each set's index
-pub type ConditionMap = BTreeMap<usize, HashSet<Condition>>;
-/// Type for a map of folded sets of [`Condition`] items keyed by a vector of the combined set's indexes
-pub type FoldedConditionMap = BTreeMap<Vec<usize>, HashSet<Condition>>;
-
-fn serialize_folded_cond_map<S>(
-    input_map: &FoldedConditionMap,
-    serializer: S,
-) -> Result<S::Ok, S::Error>
-where
-    S: Serializer,
-{
-    let mut map = serializer.serialize_map(Some(input_map.len()))?;
-    for (k, v) in input_map {
-        let k_string = format!("{:?}", k);
-        map.serialize_entry(&k_string, v)?;
-    }
-    map.end()
-}
-
-/// Represent if and how much a policy item is satisfied by the wallet's descriptor
-#[derive(Debug, Clone, Serialize)]
-#[serde(tag = "type", rename_all = "UPPERCASE")]
-pub enum Satisfaction {
-    /// Only a partial satisfaction of some kind of threshold policy
-    Partial {
-        /// Total number of items
-        n: usize,
-        /// Threshold
-        m: usize,
-        /// The items that can be satisfied by the descriptor or are satisfied in the PSBT
-        items: Vec<usize>,
-        #[serde(skip_serializing_if = "Option::is_none")]
-        /// Whether the items are sorted in lexicographic order (used by `sortedmulti`)
-        sorted: Option<bool>,
-        #[serde(skip_serializing_if = "BTreeMap::is_empty")]
-        /// Extra conditions that also need to be satisfied
-        conditions: ConditionMap,
-    },
-    /// Can reach the threshold of some kind of threshold policy
-    PartialComplete {
-        /// Total number of items
-        n: usize,
-        /// Threshold
-        m: usize,
-        /// The items that can be satisfied by the descriptor
-        items: Vec<usize>,
-        #[serde(skip_serializing_if = "Option::is_none")]
-        /// Whether the items are sorted in lexicographic order (used by `sortedmulti`)
-        sorted: Option<bool>,
-        #[serde(
-            serialize_with = "serialize_folded_cond_map",
-            skip_serializing_if = "BTreeMap::is_empty"
-        )]
-        /// Extra conditions that also need to be satisfied
-        conditions: FoldedConditionMap,
-    },
-
-    /// Can satisfy the policy item
-    Complete {
-        /// Extra conditions that also need to be satisfied
-        condition: Condition,
-    },
-    /// Cannot satisfy or contribute to the policy item
-    None,
-}
-
-impl Satisfaction {
-    /// Returns whether the [`Satisfaction`] is a leaf item
-    pub fn is_leaf(&self) -> bool {
-        match self {
-            Satisfaction::None | Satisfaction::Complete { .. } => true,
-            Satisfaction::PartialComplete { .. } | Satisfaction::Partial { .. } => false,
-        }
-    }
-
-    // add `inner` as one of self's partial items. this only makes sense on partials
-    fn add(&mut self, inner: &Satisfaction, inner_index: usize) -> Result<(), PolicyError> {
-        match self {
-            Satisfaction::None | Satisfaction::Complete { .. } => Err(PolicyError::AddOnLeaf),
-            Satisfaction::PartialComplete { .. } => Err(PolicyError::AddOnPartialComplete),
-            Satisfaction::Partial {
-                n,
-                ref mut conditions,
-                ref mut items,
-                ..
-            } => {
-                if inner_index >= *n || items.contains(&inner_index) {
-                    return Err(PolicyError::IndexOutOfRange(inner_index));
-                }
-
-                match inner {
-                    // not relevant if not completed yet
-                    Satisfaction::None | Satisfaction::Partial { .. } => return Ok(()),
-                    Satisfaction::Complete { condition } => {
-                        items.push(inner_index);
-                        conditions.insert(inner_index, vec![*condition].into_iter().collect());
-                    }
-                    Satisfaction::PartialComplete {
-                        conditions: other_conditions,
-                        ..
-                    } => {
-                        items.push(inner_index);
-                        let conditions_set = other_conditions
-                            .values()
-                            .fold(HashSet::new(), |set, i| set.union(i).cloned().collect());
-                        conditions.insert(inner_index, conditions_set);
-                    }
-                }
-
-                Ok(())
-            }
-        }
-    }
-
-    fn finalize(&mut self) {
-        // if partial try to bump it to a partialcomplete
-        if let Satisfaction::Partial {
-            n,
-            m,
-            items,
-            conditions,
-            sorted,
-        } = self
-        {
-            if items.len() >= *m {
-                let mut map = BTreeMap::new();
-                let indexes = combinations(items, *m);
-                // `indexes` at this point is a Vec<Vec<usize>>, with the "n choose k" of items (m of n)
-                indexes
-                    .into_iter()
-                    // .inspect(|x| println!("--- orig --- {:?}", x))
-                    // we map each of the combinations of elements into a tuple of ([chosen items], [conditions]). unfortunately, those items have potentially more than one
-                    // condition (think about ORs), so we also use `mix` to expand those, i.e. [[0], [1, 2]] becomes [[0, 1], [0, 2]]. This is necessary to make sure that we
-                    // consider every possible options and check whether or not they are compatible.
-                    .map(|i_vec| {
-                        mix(i_vec
-                            .iter()
-                            .map(|i| {
-                                conditions
-                                    .get(i)
-                                    .map(|set| set.clone().into_iter().collect())
-                                    .unwrap_or_default()
-                            })
-                            .collect())
-                        .into_iter()
-                        .map(|x| (i_vec.clone(), x))
-                        .collect::<Vec<(Vec<usize>, Vec<Condition>)>>()
-                    })
-                    // .inspect(|x: &Vec<(Vec<usize>, Vec<Condition>)>| println!("fetch {:?}", x))
-                    // since the previous step can turn one item of the iterator into multiple ones, we call flatten to expand them out
-                    .flatten()
-                    // .inspect(|x| println!("flat {:?}", x))
-                    // try to fold all the conditions for this specific combination of indexes/options. if they are not compatible, try_fold will be Err
-                    .map(|(key, val)| {
-                        (
-                            key,
-                            val.into_iter()
-                                .try_fold(Condition::default(), |acc, v| acc.merge(&v)),
-                        )
-                    })
-                    // .inspect(|x| println!("try_fold {:?}", x))
-                    // filter out all the incompatible combinations
-                    .filter(|(_, val)| val.is_ok())
-                    // .inspect(|x| println!("filter {:?}", x))
-                    // push them into the map
-                    .for_each(|(key, val)| {
-                        map.entry(key)
-                            .or_insert_with(HashSet::new)
-                            .insert(val.unwrap());
-                    });
-                // TODO: if the map is empty, the conditions are not compatible, return an error?
-                *self = Satisfaction::PartialComplete {
-                    n: *n,
-                    m: *m,
-                    items: items.clone(),
-                    conditions: map,
-                    sorted: *sorted,
-                };
-            }
-        }
-    }
-}
-
-impl From<bool> for Satisfaction {
-    fn from(other: bool) -> Self {
-        if other {
-            Satisfaction::Complete {
-                condition: Default::default(),
-            }
-        } else {
-            Satisfaction::None
-        }
-    }
-}
-
-/// Descriptor spending policy
-#[derive(Debug, Clone, Serialize)]
-pub struct Policy {
-    /// Identifier for this policy node
-    pub id: String,
-
-    /// Type of this policy node
-    #[serde(flatten)]
-    pub item: SatisfiableItem,
-    /// How much a given PSBT already satisfies this policy node in terms of signatures
-    pub satisfaction: Satisfaction,
-    /// How the wallet's descriptor can satisfy this policy node
-    pub contribution: Satisfaction,
-}
-
-/// An extra condition that must be satisfied but that is out of control of the user
-#[derive(Hash, Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Default, Serialize)]
-pub struct Condition {
-    /// Optional CheckSequenceVerify condition
-    #[serde(skip_serializing_if = "Option::is_none")]
-    pub csv: Option<u32>,
-    /// Optional timelock condition
-    #[serde(skip_serializing_if = "Option::is_none")]
-    pub timelock: Option<u32>,
-}
-
-impl Condition {
-    fn merge_nlocktime(a: u32, b: u32) -> Result<u32, PolicyError> {
-        if (a < utils::BLOCKS_TIMELOCK_THRESHOLD) != (b < utils::BLOCKS_TIMELOCK_THRESHOLD) {
-            Err(PolicyError::MixedTimelockUnits)
-        } else {
-            Ok(max(a, b))
-        }
-    }
-
-    fn merge_nsequence(a: u32, b: u32) -> Result<u32, PolicyError> {
-        let mask = utils::SEQUENCE_LOCKTIME_TYPE_FLAG | utils::SEQUENCE_LOCKTIME_MASK;
-
-        let a = a & mask;
-        let b = b & mask;
-
-        if (a < utils::SEQUENCE_LOCKTIME_TYPE_FLAG) != (b < utils::SEQUENCE_LOCKTIME_TYPE_FLAG) {
-            Err(PolicyError::MixedTimelockUnits)
-        } else {
-            Ok(max(a, b))
-        }
-    }
-
-    pub(crate) fn merge(mut self, other: &Condition) -> Result<Self, PolicyError> {
-        match (self.csv, other.csv) {
-            (Some(a), Some(b)) => self.csv = Some(Self::merge_nsequence(a, b)?),
-            (None, any) => self.csv = any,
-            _ => {}
-        }
-
-        match (self.timelock, other.timelock) {
-            (Some(a), Some(b)) => self.timelock = Some(Self::merge_nlocktime(a, b)?),
-            (None, any) => self.timelock = any,
-            _ => {}
-        }
-
-        Ok(self)
-    }
-
-    /// Returns `true` if there are no extra conditions to verify
-    pub fn is_null(&self) -> bool {
-        self.csv.is_none() && self.timelock.is_none()
-    }
-}
-
-/// Errors that can happen while extracting and manipulating policies
-#[derive(Debug, PartialEq, Eq)]
-pub enum PolicyError {
-    /// Not enough items are selected to satisfy a [`SatisfiableItem::Thresh`] or a [`SatisfiableItem::Multisig`]
-    NotEnoughItemsSelected(String),
-    /// Index out of range for an item to satisfy a [`SatisfiableItem::Thresh`] or a [`SatisfiableItem::Multisig`]
-    IndexOutOfRange(usize),
-    /// Can not add to an item that is [`Satisfaction::None`] or [`Satisfaction::Complete`]
-    AddOnLeaf,
-    /// Can not add to an item that is [`Satisfaction::PartialComplete`]
-    AddOnPartialComplete,
-    /// Can not merge CSV or timelock values unless both are less than or both are equal or greater than 500_000_000
-    MixedTimelockUnits,
-    /// Incompatible conditions (not currently used)
-    IncompatibleConditions,
-}
-
-impl fmt::Display for PolicyError {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        write!(f, "{:?}", self)
-    }
-}
-
-impl std::error::Error for PolicyError {}
-
-impl Policy {
-    fn new(item: SatisfiableItem) -> Self {
-        Policy {
-            id: item.id(),
-            item,
-            satisfaction: Satisfaction::None,
-            contribution: Satisfaction::None,
-        }
-    }
-
-    fn make_and(a: Option<Policy>, b: Option<Policy>) -> Result<Option<Policy>, PolicyError> {
-        match (a, b) {
-            (None, None) => Ok(None),
-            (Some(x), None) | (None, Some(x)) => Ok(Some(x)),
-            (Some(a), Some(b)) => Self::make_thresh(vec![a, b], 2),
-        }
-    }
-
-    fn make_or(a: Option<Policy>, b: Option<Policy>) -> Result<Option<Policy>, PolicyError> {
-        match (a, b) {
-            (None, None) => Ok(None),
-            (Some(x), None) | (None, Some(x)) => Ok(Some(x)),
-            (Some(a), Some(b)) => Self::make_thresh(vec![a, b], 1),
-        }
-    }
-
-    fn make_thresh(items: Vec<Policy>, threshold: usize) -> Result<Option<Policy>, PolicyError> {
-        if threshold == 0 {
-            return Ok(None);
-        }
-
-        let mut contribution = Satisfaction::Partial {
-            n: items.len(),
-            m: threshold,
-            items: vec![],
-            conditions: Default::default(),
-            sorted: None,
-        };
-        let mut satisfaction = contribution.clone();
-        for (index, item) in items.iter().enumerate() {
-            contribution.add(&item.contribution, index)?;
-            satisfaction.add(&item.satisfaction, index)?;
-        }
-
-        contribution.finalize();
-        satisfaction.finalize();
-
-        let mut policy: Policy = SatisfiableItem::Thresh { items, threshold }.into();
-        policy.contribution = contribution;
-        policy.satisfaction = satisfaction;
-
-        Ok(Some(policy))
-    }
-
-    fn make_multisig(
-        keys: &[DescriptorPublicKey],
-        signers: &SignersContainer,
-        build_sat: BuildSatisfaction,
-        threshold: usize,
-        sorted: bool,
-        secp: &SecpCtx,
-    ) -> Result<Option<Policy>, PolicyError> {
-        if threshold == 0 {
-            return Ok(None);
-        }
-
-        let parsed_keys = keys.iter().map(|k| PkOrF::from_key(k, secp)).collect();
-
-        let mut contribution = Satisfaction::Partial {
-            n: keys.len(),
-            m: threshold,
-            items: vec![],
-            conditions: Default::default(),
-            sorted: Some(sorted),
-        };
-        let mut satisfaction = contribution.clone();
-
-        for (index, key) in keys.iter().enumerate() {
-            if signers.find(signer_id(key, secp)).is_some() {
-                contribution.add(
-                    &Satisfaction::Complete {
-                        condition: Default::default(),
-                    },
-                    index,
-                )?;
-            }
-
-            if let Some(psbt) = build_sat.psbt() {
-                if signature_in_psbt(psbt, key, secp) {
-                    satisfaction.add(
-                        &Satisfaction::Complete {
-                            condition: Default::default(),
-                        },
-                        index,
-                    )?;
-                }
-            }
-        }
-        satisfaction.finalize();
-        contribution.finalize();
-
-        let mut policy: Policy = SatisfiableItem::Multisig {
-            keys: parsed_keys,
-            threshold,
-        }
-        .into();
-        policy.contribution = contribution;
-        policy.satisfaction = satisfaction;
-
-        Ok(Some(policy))
-    }
-
-    /// Return whether or not a specific path in the policy tree is required to unambiguously
-    /// create a transaction
-    ///
-    /// What this means is that for some spending policies the user should select which paths in
-    /// the tree it intends to satisfy while signing, because the transaction must be created differently based
-    /// on that.
-    pub fn requires_path(&self) -> bool {
-        self.get_condition(&BTreeMap::new()).is_err()
-    }
-
-    /// Return the conditions that are set by the spending policy for a given path in the
-    /// policy tree
-    pub fn get_condition(
-        &self,
-        path: &BTreeMap<String, Vec<usize>>,
-    ) -> Result<Condition, PolicyError> {
-        // if items.len() == threshold, selected can be omitted and we take all of them by default
-        let default = match &self.item {
-            SatisfiableItem::Thresh { items, threshold } if items.len() == *threshold => {
-                (0..*threshold).collect()
-            }
-            SatisfiableItem::Multisig { keys, .. } => (0..keys.len()).collect(),
-            _ => vec![],
-        };
-        let selected = match path.get(&self.id) {
-            Some(arr) => arr,
-            _ => &default,
-        };
-
-        match &self.item {
-            SatisfiableItem::Thresh { items, threshold } => {
-                let mapped_req = items
-                    .iter()
-                    .map(|i| i.get_condition(path))
-                    .collect::<Result<Vec<_>, _>>()?;
-
-                // if all the requirements are null we don't care about `selected` because there
-                // are no requirements
-                if mapped_req.iter().all(Condition::is_null) {
-                    return Ok(Condition::default());
-                }
-
-                // if we have something, make sure we have enough items. note that the user can set
-                // an empty value for this step in case of n-of-n, because `selected` is set to all
-                // the elements above
-                if selected.len() < *threshold {
-                    return Err(PolicyError::NotEnoughItemsSelected(self.id.clone()));
-                }
-
-                // check the selected items, see if there are conflicting requirements
-                let mut requirements = Condition::default();
-                for item_index in selected {
-                    requirements = requirements.merge(
-                        mapped_req
-                            .get(*item_index)
-                            .ok_or(PolicyError::IndexOutOfRange(*item_index))?,
-                    )?;
-                }
-
-                Ok(requirements)
-            }
-            SatisfiableItem::Multisig { keys, threshold } => {
-                if selected.len() < *threshold {
-                    return Err(PolicyError::NotEnoughItemsSelected(self.id.clone()));
-                }
-                if let Some(item) = selected.iter().find(|i| **i >= keys.len()) {
-                    return Err(PolicyError::IndexOutOfRange(*item));
-                }
-
-                Ok(Condition::default())
-            }
-            SatisfiableItem::AbsoluteTimelock { value } => Ok(Condition {
-                csv: None,
-                timelock: Some(*value),
-            }),
-            SatisfiableItem::RelativeTimelock { value } => Ok(Condition {
-                csv: Some(*value),
-                timelock: None,
-            }),
-            _ => Ok(Condition::default()),
-        }
-    }
-}
-
-impl From<SatisfiableItem> for Policy {
-    fn from(other: SatisfiableItem) -> Self {
-        Self::new(other)
-    }
-}
-
-fn signer_id(key: &DescriptorPublicKey, secp: &SecpCtx) -> SignerId {
-    match key {
-        DescriptorPublicKey::SinglePub(pubkey) => pubkey.key.to_pubkeyhash().into(),
-        DescriptorPublicKey::XPub(xpub) => xpub.root_fingerprint(secp).into(),
-    }
-}
-
-fn signature(
-    key: &DescriptorPublicKey,
-    signers: &SignersContainer,
-    build_sat: BuildSatisfaction,
-    secp: &SecpCtx,
-) -> Policy {
-    let mut policy: Policy = SatisfiableItem::Signature(PkOrF::from_key(key, secp)).into();
-
-    policy.contribution = if signers.find(signer_id(key, secp)).is_some() {
-        Satisfaction::Complete {
-            condition: Default::default(),
-        }
-    } else {
-        Satisfaction::None
-    };
-
-    if let Some(psbt) = build_sat.psbt() {
-        policy.satisfaction = if signature_in_psbt(psbt, key, secp) {
-            Satisfaction::Complete {
-                condition: Default::default(),
-            }
-        } else {
-            Satisfaction::None
-        };
-    }
-
-    policy
-}
-
-fn signature_in_psbt(psbt: &Psbt, key: &DescriptorPublicKey, secp: &SecpCtx) -> bool {
-    //TODO check signature validity
-    psbt.inputs.iter().all(|input| match key {
-        DescriptorPublicKey::SinglePub(key) => input.partial_sigs.contains_key(&key.key),
-        DescriptorPublicKey::XPub(xpub) => {
-            let pubkey = input
-                .bip32_derivation
-                .iter()
-                .find(|(_, (f, _))| *f == xpub.root_fingerprint(secp))
-                .map(|(p, _)| p);
-            //TODO check actual derivation matches
-            match pubkey {
-                Some(pubkey) => input.partial_sigs.contains_key(pubkey),
-                None => false,
-            }
-        }
-    })
-}
-
-impl<Ctx: ScriptContext> ExtractPolicy for Miniscript<DescriptorPublicKey, Ctx> {
-    fn extract_policy(
-        &self,
-        signers: &SignersContainer,
-        build_sat: BuildSatisfaction,
-        secp: &SecpCtx,
-    ) -> Result<Option<Policy>, Error> {
-        Ok(match &self.node {
-            // Leaves
-            Terminal::True | Terminal::False => None,
-            Terminal::PkK(pubkey) => Some(signature(pubkey, signers, build_sat, secp)),
-            Terminal::PkH(pubkey_hash) => Some(signature(pubkey_hash, signers, build_sat, secp)),
-            Terminal::After(value) => {
-                let mut policy: Policy = SatisfiableItem::AbsoluteTimelock { value: *value }.into();
-                policy.contribution = Satisfaction::Complete {
-                    condition: Condition {
-                        timelock: Some(*value),
-                        csv: None,
-                    },
-                };
-                if let BuildSatisfaction::PsbtTimelocks {
-                    current_height,
-                    psbt,
-                    ..
-                } = build_sat
-                {
-                    let after = After::new(Some(current_height), false);
-                    let after_sat = Satisfier::<bitcoin::PublicKey>::check_after(&after, *value);
-                    let inputs_sat = psbt_inputs_sat(psbt)
-                        .all(|sat| Satisfier::<bitcoin::PublicKey>::check_after(&sat, *value));
-                    if after_sat && inputs_sat {
-                        policy.satisfaction = policy.contribution.clone();
-                    }
-                }
-
-                Some(policy)
-            }
-            Terminal::Older(value) => {
-                let mut policy: Policy = SatisfiableItem::RelativeTimelock { value: *value }.into();
-                policy.contribution = Satisfaction::Complete {
-                    condition: Condition {
-                        timelock: None,
-                        csv: Some(*value),
-                    },
-                };
-                if let BuildSatisfaction::PsbtTimelocks {
-                    current_height,
-                    input_max_height,
-                    psbt,
-                } = build_sat
-                {
-                    let older = Older::new(Some(current_height), Some(input_max_height), false);
-                    let older_sat = Satisfier::<bitcoin::PublicKey>::check_older(&older, *value);
-                    let inputs_sat = psbt_inputs_sat(psbt)
-                        .all(|sat| Satisfier::<bitcoin::PublicKey>::check_older(&sat, *value));
-                    if older_sat && inputs_sat {
-                        policy.satisfaction = policy.contribution.clone();
-                    }
-                }
-
-                Some(policy)
-            }
-            Terminal::Sha256(hash) => Some(SatisfiableItem::Sha256Preimage { hash: *hash }.into()),
-            Terminal::Hash256(hash) => {
-                Some(SatisfiableItem::Hash256Preimage { hash: *hash }.into())
-            }
-            Terminal::Ripemd160(hash) => {
-                Some(SatisfiableItem::Ripemd160Preimage { hash: *hash }.into())
-            }
-            Terminal::Hash160(hash) => {
-                Some(SatisfiableItem::Hash160Preimage { hash: *hash }.into())
-            }
-            Terminal::Multi(k, pks) => {
-                Policy::make_multisig(pks, signers, build_sat, *k, false, secp)?
-            }
-            // Identities
-            Terminal::Alt(inner)
-            | Terminal::Swap(inner)
-            | Terminal::Check(inner)
-            | Terminal::DupIf(inner)
-            | Terminal::Verify(inner)
-            | Terminal::NonZero(inner)
-            | Terminal::ZeroNotEqual(inner) => inner.extract_policy(signers, build_sat, secp)?,
-            // Complex policies
-            Terminal::AndV(a, b) | Terminal::AndB(a, b) => Policy::make_and(
-                a.extract_policy(signers, build_sat, secp)?,
-                b.extract_policy(signers, build_sat, secp)?,
-            )?,
-            Terminal::AndOr(x, y, z) => Policy::make_or(
-                Policy::make_and(
-                    x.extract_policy(signers, build_sat, secp)?,
-                    y.extract_policy(signers, build_sat, secp)?,
-                )?,
-                z.extract_policy(signers, build_sat, secp)?,
-            )?,
-            Terminal::OrB(a, b)
-            | Terminal::OrD(a, b)
-            | Terminal::OrC(a, b)
-            | Terminal::OrI(a, b) => Policy::make_or(
-                a.extract_policy(signers, build_sat, secp)?,
-                b.extract_policy(signers, build_sat, secp)?,
-            )?,
-            Terminal::Thresh(k, nodes) => {
-                let mut threshold = *k;
-                let mapped: Vec<_> = nodes
-                    .iter()
-                    .map(|n| n.extract_policy(signers, build_sat, secp))
-                    .collect::<Result<Vec<_>, _>>()?
-                    .into_iter()
-                    .flatten()
-                    .collect();
-
-                if mapped.len() < nodes.len() {
-                    threshold = match threshold.checked_sub(nodes.len() - mapped.len()) {
-                        None => return Ok(None),
-                        Some(x) => x,
-                    };
-                }
-
-                Policy::make_thresh(mapped, threshold)?
-            }
-        })
-    }
-}
-
-fn psbt_inputs_sat(psbt: &Psbt) -> impl Iterator<Item = PsbtInputSatisfier> {
-    (0..psbt.inputs.len()).map(move |i| PsbtInputSatisfier::new(psbt, i))
-}
-
-/// Options to build the satisfaction field in the policy
-#[derive(Debug, Clone, Copy)]
-pub enum BuildSatisfaction<'a> {
-    /// Don't generate `satisfaction` field
-    None,
-    /// Analyze the given PSBT to check for existing signatures
-    Psbt(&'a Psbt),
-    /// Like `Psbt` variant and also check for expired timelocks
-    PsbtTimelocks {
-        /// Given PSBT
-        psbt: &'a Psbt,
-        /// Current blockchain height
-        current_height: u32,
-        /// The highest confirmation height between the inputs
-        /// CSV should consider different inputs, but we consider the worst condition for the tx as whole
-        input_max_height: u32,
-    },
-}
-impl<'a> BuildSatisfaction<'a> {
-    fn psbt(&self) -> Option<&'a Psbt> {
-        match self {
-            BuildSatisfaction::None => None,
-            BuildSatisfaction::Psbt(psbt) => Some(psbt),
-            BuildSatisfaction::PsbtTimelocks { psbt, .. } => Some(psbt),
-        }
-    }
-}
-
-impl ExtractPolicy for Descriptor<DescriptorPublicKey> {
-    fn extract_policy(
-        &self,
-        signers: &SignersContainer,
-        build_sat: BuildSatisfaction,
-        secp: &SecpCtx,
-    ) -> Result<Option<Policy>, Error> {
-        fn make_sortedmulti<Ctx: ScriptContext>(
-            keys: &SortedMultiVec<DescriptorPublicKey, Ctx>,
-            signers: &SignersContainer,
-            build_sat: BuildSatisfaction,
-            secp: &SecpCtx,
-        ) -> Result<Option<Policy>, Error> {
-            Ok(Policy::make_multisig(
-                keys.pks.as_ref(),
-                signers,
-                build_sat,
-                keys.k,
-                true,
-                secp,
-            )?)
-        }
-
-        match self {
-            Descriptor::Pkh(pk) => Ok(Some(signature(pk.as_inner(), signers, build_sat, secp))),
-            Descriptor::Wpkh(pk) => Ok(Some(signature(pk.as_inner(), signers, build_sat, secp))),
-            Descriptor::Sh(sh) => match sh.as_inner() {
-                ShInner::Wpkh(pk) => Ok(Some(signature(pk.as_inner(), signers, build_sat, secp))),
-                ShInner::Ms(ms) => Ok(ms.extract_policy(signers, build_sat, secp)?),
-                ShInner::SortedMulti(ref keys) => make_sortedmulti(keys, signers, build_sat, secp),
-                ShInner::Wsh(wsh) => match wsh.as_inner() {
-                    WshInner::Ms(ms) => Ok(ms.extract_policy(signers, build_sat, secp)?),
-                    WshInner::SortedMulti(ref keys) => {
-                        make_sortedmulti(keys, signers, build_sat, secp)
-                    }
-                },
-            },
-            Descriptor::Wsh(wsh) => match wsh.as_inner() {
-                WshInner::Ms(ms) => Ok(ms.extract_policy(signers, build_sat, secp)?),
-                WshInner::SortedMulti(ref keys) => make_sortedmulti(keys, signers, build_sat, secp),
-            },
-            Descriptor::Bare(ms) => Ok(ms.as_inner().extract_policy(signers, build_sat, secp)?),
-        }
-    }
-}
-
-#[cfg(test)]
-mod test {
-    use crate::descriptor;
-    use crate::descriptor::{ExtractPolicy, IntoWalletDescriptor};
-
-    use super::*;
-    use crate::descriptor::derived::AsDerived;
-    use crate::descriptor::policy::SatisfiableItem::{Multisig, Signature, Thresh};
-    use crate::keys::{DescriptorKey, IntoDescriptorKey};
-    use crate::wallet::signer::SignersContainer;
-    use bitcoin::secp256k1::Secp256k1;
-    use bitcoin::util::bip32;
-    use bitcoin::Network;
-    use miniscript::DescriptorTrait;
-    use std::str::FromStr;
-    use std::sync::Arc;
-
-    const TPRV0_STR:&str = "tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf";
-    const TPRV1_STR:&str = "tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N";
-
-    const PATH: &str = "m/44'/1'/0'/0";
-
-    fn setup_keys<Ctx: ScriptContext>(
-        tprv: &str,
-        path: &str,
-        secp: &SecpCtx,
-    ) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) {
-        let path = bip32::DerivationPath::from_str(path).unwrap();
-        let tprv = bip32::ExtendedPrivKey::from_str(tprv).unwrap();
-        let tpub = bip32::ExtendedPubKey::from_private(secp, &tprv);
-        let fingerprint = tprv.fingerprint(secp);
-        let prvkey = (tprv, path.clone()).into_descriptor_key().unwrap();
-        let pubkey = (tpub, path).into_descriptor_key().unwrap();
-
-        (prvkey, pubkey, fingerprint)
-    }
-
-    // test ExtractPolicy trait for simple descriptors; wpkh(), sh(multi())
-
-    #[test]
-    fn test_extract_policy_for_wpkh() {
-        let secp = Secp256k1::new();
-
-        let (prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR, PATH, &secp);
-        let desc = descriptor!(wpkh(pubkey)).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        assert!(
-            matches!(&policy.item, Signature(pk_or_f) if pk_or_f.fingerprint.unwrap() == fingerprint)
-        );
-        assert!(matches!(&policy.contribution, Satisfaction::None));
-
-        let desc = descriptor!(wpkh(prvkey)).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        assert!(
-            matches!(&policy.item, Signature(pk_or_f) if pk_or_f.fingerprint.unwrap() == fingerprint)
-        );
-        assert!(
-            matches!(&policy.contribution, Satisfaction::Complete {condition} if condition.csv == None && condition.timelock == None)
-        );
-    }
-
-    // 2 pub keys descriptor, required 2 prv keys
-    #[test]
-    fn test_extract_policy_for_sh_multi_partial_0of2() {
-        let secp = Secp256k1::new();
-        let (_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, &secp);
-        let (_prvkey1, pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, &secp);
-        let desc = descriptor!(sh(multi(2, pubkey0, pubkey1))).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        assert!(
-            matches!(&policy.item, Multisig { keys, threshold } if threshold == &2usize
-            && keys[0].fingerprint.unwrap() == fingerprint0
-            && keys[1].fingerprint.unwrap() == fingerprint1)
-        );
-        // TODO should this be "Satisfaction::None" since we have no prv keys?
-        // TODO should items and conditions not be empty?
-        assert!(
-            matches!(&policy.contribution, Satisfaction::Partial { n, m, items, conditions, ..} if n == &2usize
-            && m == &2usize
-            && items.is_empty()
-            && conditions.is_empty()
-            )
-        );
-    }
-
-    // 1 prv and 1 pub key descriptor, required 2 prv keys
-    #[test]
-    fn test_extract_policy_for_sh_multi_partial_1of2() {
-        let secp = Secp256k1::new();
-        let (prvkey0, _pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, &secp);
-        let (_prvkey1, pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, &secp);
-        let desc = descriptor!(sh(multi(2, prvkey0, pubkey1))).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-        assert!(
-            matches!(&policy.item, Multisig { keys, threshold } if threshold == &2usize
-            && keys[0].fingerprint.unwrap() == fingerprint0
-            && keys[1].fingerprint.unwrap() == fingerprint1)
-        );
-
-        assert!(
-            matches!(&policy.contribution, Satisfaction::Partial { n, m, items, conditions, ..} if n == &2usize
-             && m == &2usize
-             && items.len() == 1
-             && conditions.contains_key(&0)
-            )
-        );
-    }
-
-    // 1 prv and 1 pub key descriptor, required 1 prv keys
-    #[test]
-    #[ignore] // see https://github.com/bitcoindevkit/bdk/issues/225
-    fn test_extract_policy_for_sh_multi_complete_1of2() {
-        let secp = Secp256k1::new();
-
-        let (_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, &secp);
-        let (prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, &secp);
-        let desc = descriptor!(sh(multi(1, pubkey0, prvkey1))).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        assert!(
-            matches!(&policy.item, Multisig { keys, threshold } if threshold == &1
-            && keys[0].fingerprint.unwrap() == fingerprint0
-            && keys[1].fingerprint.unwrap() == fingerprint1)
-        );
-        assert!(
-            matches!(&policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } if n == &2
-             && m == &1
-             && items.len() == 2
-             && conditions.contains_key(&vec![0])
-             && conditions.contains_key(&vec![1])
-            )
-        );
-    }
-
-    // 2 prv keys descriptor, required 2 prv keys
-    #[test]
-    fn test_extract_policy_for_sh_multi_complete_2of2() {
-        let secp = Secp256k1::new();
-
-        let (prvkey0, _pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, &secp);
-        let (prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, &secp);
-        let desc = descriptor!(sh(multi(2, prvkey0, prvkey1))).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        assert!(
-            matches!(&policy.item, Multisig { keys, threshold } if threshold == &2
-            && keys[0].fingerprint.unwrap() == fingerprint0
-            && keys[1].fingerprint.unwrap() == fingerprint1)
-        );
-
-        assert!(
-            matches!(&policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } if n == &2
-             && m == &2
-             && items.len() == 2
-             && conditions.contains_key(&vec![0,1])
-            )
-        );
-    }
-
-    // test ExtractPolicy trait with extended and single keys
-
-    #[test]
-    fn test_extract_policy_for_single_wpkh() {
-        let secp = Secp256k1::new();
-
-        let (prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR, PATH, &secp);
-        let desc = descriptor!(wpkh(pubkey)).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let single_key = wallet_desc.derive(0);
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = single_key
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        assert!(
-            matches!(&policy.item, Signature(pk_or_f) if pk_or_f.fingerprint.unwrap() == fingerprint)
-        );
-        assert!(matches!(&policy.contribution, Satisfaction::None));
-
-        let desc = descriptor!(wpkh(prvkey)).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let single_key = wallet_desc.derive(0);
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = single_key
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        assert!(
-            matches!(&policy.item, Signature(pk_or_f) if pk_or_f.fingerprint.unwrap() == fingerprint)
-        );
-        assert!(
-            matches!(&policy.contribution, Satisfaction::Complete {condition} if condition.csv == None && condition.timelock == None)
-        );
-    }
-
-    // single key, 1 prv and 1 pub key descriptor, required 1 prv keys
-    #[test]
-    #[ignore] // see https://github.com/bitcoindevkit/bdk/issues/225
-    fn test_extract_policy_for_single_wsh_multi_complete_1of2() {
-        let secp = Secp256k1::new();
-
-        let (_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, &secp);
-        let (prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, &secp);
-        let desc = descriptor!(sh(multi(1, pubkey0, prvkey1))).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let single_key = wallet_desc.derive(0);
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = single_key
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        assert!(
-            matches!(&policy.item, Multisig { keys, threshold } if threshold == &1
-            && keys[0].fingerprint.unwrap() == fingerprint0
-            && keys[1].fingerprint.unwrap() == fingerprint1)
-        );
-        assert!(
-            matches!(&policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } if n == &2
-             && m == &1
-             && items.len() == 2
-             && conditions.contains_key(&vec![0])
-             && conditions.contains_key(&vec![1])
-            )
-        );
-    }
-
-    // test ExtractPolicy trait with descriptors containing timelocks in a thresh()
-
-    #[test]
-    #[ignore] // see https://github.com/bitcoindevkit/bdk/issues/225
-    fn test_extract_policy_for_wsh_multi_timelock() {
-        let secp = Secp256k1::new();
-
-        let (prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, PATH, &secp);
-        let (_prvkey1, pubkey1, _fingerprint1) = setup_keys(TPRV1_STR, PATH, &secp);
-        let sequence = 50;
-        #[rustfmt::skip]
-        let desc = descriptor!(wsh(thresh(
-            2,
-            pk(prvkey0),
-            s:pk(pubkey1),
-            s:d:v:older(sequence)
-        )))
-        .unwrap();
-
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        assert!(
-            matches!(&policy.item, Thresh { items, threshold } if items.len() == 3 && threshold == &2)
-        );
-
-        assert!(
-            matches!(&policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } if n == &3
-             && m == &2
-             && items.len() == 3
-             && conditions.get(&vec![0,1]).unwrap().iter().next().unwrap().csv.is_none()
-             && conditions.get(&vec![0,2]).unwrap().iter().next().unwrap().csv == Some(sequence)
-             && conditions.get(&vec![1,2]).unwrap().iter().next().unwrap().csv == Some(sequence)
-            )
-        );
-    }
-
-    // - mixed timelocks should fail
-
-    #[test]
-    #[ignore]
-    fn test_extract_policy_for_wsh_mixed_timelocks() {
-        let secp = Secp256k1::new();
-        let (prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, PATH, &secp);
-        let locktime_threshold = 500000000; // if less than this means block number, else block time in seconds
-        let locktime_blocks = 100;
-        let locktime_seconds = locktime_blocks + locktime_threshold;
-        let desc = descriptor!(sh(and_v(
-            v: pk(prvkey0),
-            and_v(v: after(locktime_seconds), after(locktime_blocks))
-        )))
-        .unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-        println!("desc policy = {:?}", policy); // TODO remove
-                                                // TODO how should this fail with mixed timelocks?
-    }
-
-    // - multiple timelocks of the same type should be correctly merged together
-    #[test]
-    #[ignore]
-    fn test_extract_policy_for_multiple_same_timelocks() {
-        let secp = Secp256k1::new();
-        let (prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, PATH, &secp);
-        let locktime_blocks0 = 100;
-        let locktime_blocks1 = 200;
-        let desc = descriptor!(sh(and_v(
-            v: pk(prvkey0),
-            and_v(v: after(locktime_blocks0), after(locktime_blocks1))
-        )))
-        .unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-        println!("desc policy = {:?}", policy); // TODO remove
-                                                // TODO how should this merge timelocks?
-        let (prvkey1, _pubkey1, _fingerprint1) = setup_keys(TPRV0_STR, PATH, &secp);
-        let locktime_seconds0 = 500000100;
-        let locktime_seconds1 = 500000200;
-        let desc = descriptor!(sh(and_v(
-            v: pk(prvkey1),
-            and_v(v: after(locktime_seconds0), after(locktime_seconds1))
-        )))
-        .unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-        let policy = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        println!("desc policy = {:?}", policy); // TODO remove
-
-        // TODO how should this merge timelocks?
-    }
-
-    #[test]
-    fn test_get_condition_multisig() {
-        let secp = Secp256k1::new();
-
-        let (_, pk0, _) = setup_keys(TPRV0_STR, PATH, &secp);
-        let (_, pk1, _) = setup_keys(TPRV1_STR, PATH, &secp);
-
-        let desc = descriptor!(wsh(multi(1, pk0, pk1))).unwrap();
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers = keymap.into();
-
-        let policy = wallet_desc
-            .extract_policy(&signers, BuildSatisfaction::None, &secp)
-            .unwrap()
-            .unwrap();
-
-        // no args, choose the default
-        let no_args = policy.get_condition(&vec![].into_iter().collect());
-        assert_eq!(no_args, Ok(Condition::default()));
-
-        // enough args
-        let eq_thresh =
-            policy.get_condition(&vec![(policy.id.clone(), vec![0])].into_iter().collect());
-        assert_eq!(eq_thresh, Ok(Condition::default()));
-
-        // more args, it doesn't really change anything
-        let gt_thresh =
-            policy.get_condition(&vec![(policy.id.clone(), vec![0, 1])].into_iter().collect());
-        assert_eq!(gt_thresh, Ok(Condition::default()));
-
-        // not enough args, error
-        let lt_thresh =
-            policy.get_condition(&vec![(policy.id.clone(), vec![])].into_iter().collect());
-        assert_eq!(
-            lt_thresh,
-            Err(PolicyError::NotEnoughItemsSelected(policy.id.clone()))
-        );
-
-        // index out of range
-        let out_of_range =
-            policy.get_condition(&vec![(policy.id.clone(), vec![5])].into_iter().collect());
-        assert_eq!(out_of_range, Err(PolicyError::IndexOutOfRange(5)));
-    }
-
-    const ALICE_TPRV_STR:&str = "tprv8ZgxMBicQKsPf6T5X327efHnvJDr45Xnb8W4JifNWtEoqXu9MRYS4v1oYe6DFcMVETxy5w3bqpubYRqvcVTqovG1LifFcVUuJcbwJwrhYzP";
-    const BOB_TPRV_STR:&str = "tprv8ZgxMBicQKsPeinZ155cJAn117KYhbaN6MV3WeG6sWhxWzcvX1eg1awd4C9GpUN1ncLEM2rzEvunAg3GizdZD4QPPCkisTz99tXXB4wZArp";
-    const CAROL_TPRV_STR:&str = "tprv8ZgxMBicQKsPdC3CicFifuLCEyVVdXVUNYorxUWj3iGZ6nimnLAYAY9SYB7ib8rKzRxrCKFcEytCt6szwd2GHnGPRCBLAEAoSVDefSNk4Bt";
-    const ALICE_BOB_PATH: &str = "m/0'";
-
-    #[test]
-    fn test_extract_satisfaction() {
-        const ALICE_SIGNED_PSBT: &str = "cHNidP8BAFMBAAAAAZb0njwT2wRS3AumaaP3yb7T4MxOePpSWih4Nq+jWChMAQAAAAD/////Af4lAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASuJJgAAAAAAACIAIERw5kTLo9DUH9QDJSClHQwPpC7VGJ+ZMDpa8U+2fzcYIgIDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZstHMEQCIBj0jLjUeVYXNQ6cqB+gbtvuKMjV54wSgWlm1cfcgpHVAiBa3DtC9l/1Mt4IDCvR7mmwQd3eAP/m5++81euhJNSrgQEBBUdSIQN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmyyEC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhSriIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAAA";
-        const BOB_SIGNED_PSBT: &str =   "cHNidP8BAFMBAAAAAZb0njwT2wRS3AumaaP3yb7T4MxOePpSWih4Nq+jWChMAQAAAAD/////Af4lAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASuJJgAAAAAAACIAIERw5kTLo9DUH9QDJSClHQwPpC7VGJ+ZMDpa8U+2fzcYIgIC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhIMEUCIQD5zDtM5MwklurwJ5aW76RsO36Iqyu+6uMdVlhL6ws2GQIgesAiz4dbKS7UmhDsC/c1ezu0o6hp00UUtsCMfUZ4anYBAQVHUiEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZsshAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIUq4iBgL4YT/L4um0jzGaJHqw5733wgbPJujHRB/Pj4FCXWeZiAwcLu4+AAAAgAAAAAAiBgN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmywzJEXwuAAAAgAAAAAAAAA==";
-        const ALICE_BOB_SIGNED_PSBT: &str =   "cHNidP8BAFMBAAAAAZb0njwT2wRS3AumaaP3yb7T4MxOePpSWih4Nq+jWChMAQAAAAD/////Af4lAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASuJJgAAAAAAACIAIERw5kTLo9DUH9QDJSClHQwPpC7VGJ+ZMDpa8U+2fzcYIgIC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhIMEUCIQD5zDtM5MwklurwJ5aW76RsO36Iqyu+6uMdVlhL6ws2GQIgesAiz4dbKS7UmhDsC/c1ezu0o6hp00UUtsCMfUZ4anYBIgIDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZstHMEQCIBj0jLjUeVYXNQ6cqB+gbtvuKMjV54wSgWlm1cfcgpHVAiBa3DtC9l/1Mt4IDCvR7mmwQd3eAP/m5++81euhJNSrgQEBBUdSIQN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmyyEC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhSriIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAEHAAEI2wQARzBEAiAY9Iy41HlWFzUOnKgfoG7b7ijI1eeMEoFpZtXH3IKR1QIgWtw7QvZf9TLeCAwr0e5psEHd3gD/5ufvvNXroSTUq4EBSDBFAiEA+cw7TOTMJJbq8CeWlu+kbDt+iKsrvurjHVZYS+sLNhkCIHrAIs+HWyku1JoQ7Av3NXs7tKOoadNFFLbAjH1GeGp2AUdSIQN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmyyEC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhSrgAA";
-
-        let secp = Secp256k1::new();
-
-        let (prvkey_alice, _, _) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, &secp);
-        let (prvkey_bob, _, _) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, &secp);
-
-        let desc = descriptor!(wsh(multi(2, prvkey_alice, prvkey_bob))).unwrap();
-
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-
-        let addr = wallet_desc
-            .as_derived(0, &secp)
-            .address(Network::Testnet)
-            .unwrap();
-        assert_eq!(
-            "tb1qg3cwv3xt50gdg875qvjjpfgaps86gtk4rz0ejvp6ttc5ldnlxuvqlcn0xk",
-            addr.to_string()
-        );
-
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-
-        let psbt = Psbt::from_str(ALICE_SIGNED_PSBT).unwrap();
-
-        let policy_alice_psbt = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::Psbt(&psbt), &secp)
-            .unwrap()
-            .unwrap();
-        //println!("{}", serde_json::to_string(&policy_alice_psbt).unwrap());
-
-        assert!(
-            matches!(&policy_alice_psbt.satisfaction, Satisfaction::Partial { n, m, items, .. } if n == &2
-             && m == &2
-             && items == &vec![0]
-            )
-        );
-
-        let psbt = Psbt::from_str(BOB_SIGNED_PSBT).unwrap();
-        let policy_bob_psbt = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::Psbt(&psbt), &secp)
-            .unwrap()
-            .unwrap();
-        //println!("{}", serde_json::to_string(&policy_bob_psbt).unwrap());
-
-        assert!(
-            matches!(&policy_bob_psbt.satisfaction, Satisfaction::Partial { n, m, items, .. } if n == &2
-             && m == &2
-             && items == &vec![1]
-            )
-        );
-
-        let psbt = Psbt::from_str(ALICE_BOB_SIGNED_PSBT).unwrap();
-        let policy_alice_bob_psbt = wallet_desc
-            .extract_policy(&signers_container, BuildSatisfaction::Psbt(&psbt), &secp)
-            .unwrap()
-            .unwrap();
-        assert!(
-            matches!(&policy_alice_bob_psbt.satisfaction, Satisfaction::PartialComplete { n, m, items, .. } if n == &2
-             && m == &2
-             && items == &vec![0, 1]
-            )
-        );
-    }
-
-    #[test]
-    fn test_extract_satisfaction_timelock() {
-        //const PSBT_POLICY_CONSIDER_TIMELOCK_NOT_EXPIRED: &str = "cHNidP8BAFMBAAAAAdld52uJFGT7Yde0YZdSVh2vL020Zm2exadH5R4GSNScAAAAAAD/////ATrcAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASvI3AAAAAAAACIAILhzvvcBzw/Zfnc9ispRK0PCahxn1F6RHXTZAmw5tqNPAQVSdmNSsmlofCEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42Zsusk3whAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIrJNShyIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAAA";
-        const PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED:     &str = "cHNidP8BAFMCAAAAAdld52uJFGT7Yde0YZdSVh2vL020Zm2exadH5R4GSNScAAAAAAACAAAAATrcAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASvI3AAAAAAAACIAILhzvvcBzw/Zfnc9ispRK0PCahxn1F6RHXTZAmw5tqNPAQVSdmNSsmlofCEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42Zsusk3whAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIrJNShyIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAAA";
-        const PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED_SIGNED: &str ="cHNidP8BAFMCAAAAAdld52uJFGT7Yde0YZdSVh2vL020Zm2exadH5R4GSNScAAAAAAACAAAAATrcAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASvI3AAAAAAAACIAILhzvvcBzw/Zfnc9ispRK0PCahxn1F6RHXTZAmw5tqNPIgIDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZstIMEUCIQCtZxNm6H3Ux3pnc64DSpgohMdBj+57xhFHcURYt2BpPAIgG3OnI7bcj/3GtWX1HHyYGSI7QGa/zq5YnsmK1Cw29NABAQVSdmNSsmlofCEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42Zsusk3whAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIrJNShyIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAEHAAEIoAQASDBFAiEArWcTZuh91Md6Z3OuA0qYKITHQY/ue8YRR3FEWLdgaTwCIBtzpyO23I/9xrVl9Rx8mBkiO0Bmv86uWJ7JitQsNvTQAQEBUnZjUrJpaHwhA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLrJN8IQL4YT/L4um0jzGaJHqw5733wgbPJujHRB/Pj4FCXWeZiKyTUocAAA==";
-
-        let secp = Secp256k1::new();
-
-        let (prvkey_alice, _, _) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, &secp);
-        let (prvkey_bob, _, _) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, &secp);
-
-        let desc =
-            descriptor!(wsh(thresh(2,d:v:older(2),s:pk(prvkey_alice),s:pk(prvkey_bob)))).unwrap();
-
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-
-        let addr = wallet_desc
-            .as_derived(0, &secp)
-            .address(Network::Testnet)
-            .unwrap();
-        assert_eq!(
-            "tb1qhpemaacpeu8ajlnh8k9v55ftg0px58r8630fz8t5mypxcwdk5d8sum522g",
-            addr.to_string()
-        );
-
-        let psbt = Psbt::from_str(PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED).unwrap();
-
-        let build_sat = BuildSatisfaction::PsbtTimelocks {
-            psbt: &psbt,
-            current_height: 10,
-            input_max_height: 9,
-        };
-
-        let policy = wallet_desc
-            .extract_policy(&signers_container, build_sat, &secp)
-            .unwrap()
-            .unwrap();
-        assert!(
-            matches!(&policy.satisfaction, Satisfaction::Partial { n, m, items, .. } if n == &3
-             && m == &2
-             && items.is_empty()
-            )
-        );
-        //println!("{}", serde_json::to_string(&policy).unwrap());
-
-        let build_sat_expired = BuildSatisfaction::PsbtTimelocks {
-            psbt: &psbt,
-            current_height: 12,
-            input_max_height: 9,
-        };
-
-        let policy_expired = wallet_desc
-            .extract_policy(&signers_container, build_sat_expired, &secp)
-            .unwrap()
-            .unwrap();
-        assert!(
-            matches!(&policy_expired.satisfaction, Satisfaction::Partial { n, m, items, .. } if n == &3
-             && m == &2
-             && items == &vec![0]
-            )
-        );
-        //println!("{}", serde_json::to_string(&policy_expired).unwrap());
-
-        let psbt_signed = Psbt::from_str(PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED_SIGNED).unwrap();
-
-        let build_sat_expired_signed = BuildSatisfaction::PsbtTimelocks {
-            psbt: &psbt_signed,
-            current_height: 12,
-            input_max_height: 9,
-        };
-
-        let policy_expired_signed = wallet_desc
-            .extract_policy(&signers_container, build_sat_expired_signed, &secp)
-            .unwrap()
-            .unwrap();
-        assert!(
-            matches!(&policy_expired_signed.satisfaction, Satisfaction::PartialComplete { n, m, items, .. } if n == &3
-             && m == &2
-             && items == &vec![0, 1]
-            )
-        );
-        //println!("{}", serde_json::to_string(&policy_expired_signed).unwrap());
-    }
-
-    #[test]
-    fn test_extract_pkh() {
-        let secp = Secp256k1::new();
-
-        let (prvkey_alice, _, _) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, &secp);
-        let (prvkey_bob, _, _) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, &secp);
-        let (prvkey_carol, _, _) = setup_keys(CAROL_TPRV_STR, ALICE_BOB_PATH, &secp);
-
-        let desc = descriptor!(wsh(c: andor(
-            pk(prvkey_alice),
-            pk_k(prvkey_bob),
-            pk_h(prvkey_carol),
-        )))
-        .unwrap();
-
-        let (wallet_desc, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-        let signers_container = Arc::new(SignersContainer::from(keymap));
-
-        let policy = wallet_desc.extract_policy(&signers_container, BuildSatisfaction::None, &secp);
-        assert!(policy.is_ok());
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/template.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/template.rs.html deleted file mode 100644 index 389814a97b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/descriptor/template.rs.html +++ /dev/null @@ -1,1457 +0,0 @@ -template.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Descriptor templates
-//!
-//! This module contains the definition of various common script templates that are ready to be
-//! used. See the documentation of each template for an example.
-
-use bitcoin::util::bip32;
-use bitcoin::Network;
-
-use miniscript::{Legacy, Segwitv0};
-
-use super::{ExtendedDescriptor, IntoWalletDescriptor, KeyMap};
-use crate::descriptor::DescriptorError;
-use crate::keys::{DerivableKey, IntoDescriptorKey, ValidNetworks};
-use crate::wallet::utils::SecpCtx;
-use crate::{descriptor, KeychainKind};
-
-/// Type alias for the return type of [`DescriptorTemplate`], [`descriptor!`](crate::descriptor!) and others
-pub type DescriptorTemplateOut = (ExtendedDescriptor, KeyMap, ValidNetworks);
-
-/// Trait for descriptor templates that can be built into a full descriptor
-///
-/// Since [`IntoWalletDescriptor`] is implemented for any [`DescriptorTemplate`], they can also be
-/// passed directly to the [`Wallet`](crate::Wallet) constructor.
-///
-/// ## Example
-///
-/// ```
-/// use bdk::descriptor::error::Error as DescriptorError;
-/// use bdk::keys::{IntoDescriptorKey, KeyError};
-/// use bdk::miniscript::Legacy;
-/// use bdk::template::{DescriptorTemplate, DescriptorTemplateOut};
-///
-/// struct MyP2PKH<K: IntoDescriptorKey<Legacy>>(K);
-///
-/// impl<K: IntoDescriptorKey<Legacy>> DescriptorTemplate for MyP2PKH<K> {
-///     fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-///         Ok(bdk::descriptor!(pkh(self.0))?)
-///     }
-/// }
-/// ```
-pub trait DescriptorTemplate {
-    /// Build the complete descriptor
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError>;
-}
-
-/// Turns a [`DescriptorTemplate`] into a valid wallet descriptor by calling its
-/// [`build`](DescriptorTemplate::build) method
-impl<T: DescriptorTemplate> IntoWalletDescriptor for T {
-    fn into_wallet_descriptor(
-        self,
-        secp: &SecpCtx,
-        network: Network,
-    ) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError> {
-        self.build()?.into_wallet_descriptor(secp, network)
-    }
-}
-
-/// P2PKH template. Expands to a descriptor `pkh(key)`
-///
-/// ## Example
-///
-/// ```
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet};
-/// # use bdk::database::MemoryDatabase;
-/// # use bdk::wallet::AddressIndex::New;
-/// use bdk::template::P2Pkh;
-///
-/// let key =
-///     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let wallet = Wallet::new_offline(
-///     P2Pkh(key),
-///     None,
-///     Network::Testnet,
-///     MemoryDatabase::default(),
-/// )?;
-///
-/// assert_eq!(
-///     wallet.get_address(New)?.to_string(),
-///     "mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"
-/// );
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-pub struct P2Pkh<K: IntoDescriptorKey<Legacy>>(pub K);
-
-impl<K: IntoDescriptorKey<Legacy>> DescriptorTemplate for P2Pkh<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        descriptor!(pkh(self.0))
-    }
-}
-
-/// P2WPKH-P2SH template. Expands to a descriptor `sh(wpkh(key))`
-///
-/// ## Example
-///
-/// ```
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet};
-/// # use bdk::database::MemoryDatabase;
-/// # use bdk::wallet::AddressIndex::New;
-/// use bdk::template::P2Wpkh_P2Sh;
-///
-/// let key =
-///     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let wallet = Wallet::new_offline(
-///     P2Wpkh_P2Sh(key),
-///     None,
-///     Network::Testnet,
-///     MemoryDatabase::default(),
-/// )?;
-///
-/// assert_eq!(
-///     wallet.get_address(New)?.to_string(),
-///     "2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"
-/// );
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-#[allow(non_camel_case_types)]
-pub struct P2Wpkh_P2Sh<K: IntoDescriptorKey<Segwitv0>>(pub K);
-
-impl<K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate for P2Wpkh_P2Sh<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        descriptor!(sh(wpkh(self.0)))
-    }
-}
-
-/// P2WPKH template. Expands to a descriptor `wpkh(key)`
-///
-/// ## Example
-///
-/// ```
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet};
-/// # use bdk::database::MemoryDatabase;
-/// # use bdk::wallet::AddressIndex::New;
-/// use bdk::template::P2Wpkh;
-///
-/// let key =
-///     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let wallet = Wallet::new_offline(
-///     P2Wpkh(key),
-///     None,
-///     Network::Testnet,
-///     MemoryDatabase::default(),
-/// )?;
-///
-/// assert_eq!(
-///     wallet.get_address(New)?.to_string(),
-///     "tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd"
-/// );
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-pub struct P2Wpkh<K: IntoDescriptorKey<Segwitv0>>(pub K);
-
-impl<K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate for P2Wpkh<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        descriptor!(wpkh(self.0))
-    }
-}
-
-/// BIP44 template. Expands to `pkh(key/44'/0'/0'/{0,1}/*)`
-///
-/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
-///
-/// See [`Bip44Public`] for a template that can work with a `xpub`/`tpub`.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet,  KeychainKind};
-/// # use bdk::database::MemoryDatabase;
-/// # use bdk::wallet::AddressIndex::New;
-/// use bdk::template::Bip44;
-///
-/// let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-/// let wallet = Wallet::new_offline(
-///     Bip44(key.clone(), KeychainKind::External),
-///     Some(Bip44(key, KeychainKind::Internal)),
-///     Network::Testnet,
-///     MemoryDatabase::default()
-/// )?;
-///
-/// assert_eq!(wallet.get_address(New)?.to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "pkh([c55b303f/44'/0'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#xgaaevjx");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-pub struct Bip44<K: DerivableKey<Legacy>>(pub K, pub KeychainKind);
-
-impl<K: DerivableKey<Legacy>> DescriptorTemplate for Bip44<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        P2Pkh(legacy::make_bipxx_private(44, self.0, self.1)?).build()
-    }
-}
-
-/// BIP44 public template. Expands to `pkh(key/{0,1}/*)`
-///
-/// This assumes that the key used has already been derived with `m/44'/0'/0'`.
-///
-/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
-///
-/// See [`Bip44`] for a template that does the full derivation, but requires private data
-/// for the key.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet,  KeychainKind};
-/// # use bdk::database::MemoryDatabase;
-/// # use bdk::wallet::AddressIndex::New;
-/// use bdk::template::Bip44Public;
-///
-/// let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
-/// let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
-/// let wallet = Wallet::new_offline(
-///     Bip44Public(key.clone(), fingerprint, KeychainKind::External),
-///     Some(Bip44Public(key, fingerprint, KeychainKind::Internal)),
-///     Network::Testnet,
-///     MemoryDatabase::default()
-/// )?;
-///
-/// assert_eq!(wallet.get_address(New)?.to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "pkh([c55b303f/44'/0'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#xgaaevjx");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-pub struct Bip44Public<K: DerivableKey<Legacy>>(pub K, pub bip32::Fingerprint, pub KeychainKind);
-
-impl<K: DerivableKey<Legacy>> DescriptorTemplate for Bip44Public<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        P2Pkh(legacy::make_bipxx_public(44, self.0, self.1, self.2)?).build()
-    }
-}
-
-/// BIP49 template. Expands to `sh(wpkh(key/49'/0'/0'/{0,1}/*))`
-///
-/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
-///
-/// See [`Bip49Public`] for a template that can work with a `xpub`/`tpub`.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet,  KeychainKind};
-/// # use bdk::database::MemoryDatabase;
-/// # use bdk::wallet::AddressIndex::New;
-/// use bdk::template::Bip49;
-///
-/// let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-/// let wallet = Wallet::new_offline(
-///     Bip49(key.clone(), KeychainKind::External),
-///     Some(Bip49(key, KeychainKind::Internal)),
-///     Network::Testnet,
-///     MemoryDatabase::default()
-/// )?;
-///
-/// assert_eq!(wallet.get_address(New)?.to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "sh(wpkh([c55b303f/49\'/0\'/0\']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#gsmdv4xr");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-pub struct Bip49<K: DerivableKey<Segwitv0>>(pub K, pub KeychainKind);
-
-impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip49<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        P2Wpkh_P2Sh(segwit_v0::make_bipxx_private(49, self.0, self.1)?).build()
-    }
-}
-
-/// BIP49 public template. Expands to `sh(wpkh(key/{0,1}/*))`
-///
-/// This assumes that the key used has already been derived with `m/49'/0'/0'`.
-///
-/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
-///
-/// See [`Bip49`] for a template that does the full derivation, but requires private data
-/// for the key.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet,  KeychainKind};
-/// # use bdk::database::MemoryDatabase;
-/// # use bdk::wallet::AddressIndex::New;
-/// use bdk::template::Bip49Public;
-///
-/// let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
-/// let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
-/// let wallet = Wallet::new_offline(
-///     Bip49Public(key.clone(), fingerprint, KeychainKind::External),
-///     Some(Bip49Public(key, fingerprint, KeychainKind::Internal)),
-///     Network::Testnet,
-///     MemoryDatabase::default()
-/// )?;
-///
-/// assert_eq!(wallet.get_address(New)?.to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "sh(wpkh([c55b303f/49\'/0\'/0\']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#gsmdv4xr");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-pub struct Bip49Public<K: DerivableKey<Segwitv0>>(pub K, pub bip32::Fingerprint, pub KeychainKind);
-
-impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip49Public<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        P2Wpkh_P2Sh(segwit_v0::make_bipxx_public(49, self.0, self.1, self.2)?).build()
-    }
-}
-
-/// BIP84 template. Expands to `wpkh(key/84'/0'/0'/{0,1}/*)`
-///
-/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
-///
-/// See [`Bip84Public`] for a template that can work with a `xpub`/`tpub`.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet,  KeychainKind};
-/// # use bdk::database::MemoryDatabase;
-/// # use bdk::wallet::AddressIndex::New;
-/// use bdk::template::Bip84;
-///
-/// let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-/// let wallet = Wallet::new_offline(
-///     Bip84(key.clone(), KeychainKind::External),
-///     Some(Bip84(key, KeychainKind::Internal)),
-///     Network::Testnet,
-///     MemoryDatabase::default()
-/// )?;
-///
-/// assert_eq!(wallet.get_address(New)?.to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "wpkh([c55b303f/84\'/0\'/0\']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#nkk5dtkg");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-pub struct Bip84<K: DerivableKey<Segwitv0>>(pub K, pub KeychainKind);
-
-impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip84<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        P2Wpkh(segwit_v0::make_bipxx_private(84, self.0, self.1)?).build()
-    }
-}
-
-/// BIP84 public template. Expands to `wpkh(key/{0,1}/*)`
-///
-/// This assumes that the key used has already been derived with `m/84'/0'/0'`.
-///
-/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
-///
-/// See [`Bip84`] for a template that does the full derivation, but requires private data
-/// for the key.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet,  KeychainKind};
-/// # use bdk::database::MemoryDatabase;
-/// # use bdk::wallet::AddressIndex::New;
-/// use bdk::template::Bip84Public;
-///
-/// let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
-/// let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
-/// let wallet = Wallet::new_offline(
-///     Bip84Public(key.clone(), fingerprint, KeychainKind::External),
-///     Some(Bip84Public(key, fingerprint, KeychainKind::Internal)),
-///     Network::Testnet,
-///     MemoryDatabase::default()
-/// )?;
-///
-/// assert_eq!(wallet.get_address(New)?.to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "wpkh([c55b303f/84\'/0\'/0\']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#nkk5dtkg");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-pub struct Bip84Public<K: DerivableKey<Segwitv0>>(pub K, pub bip32::Fingerprint, pub KeychainKind);
-
-impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip84Public<K> {
-    fn build(self) -> Result<DescriptorTemplateOut, DescriptorError> {
-        P2Wpkh(segwit_v0::make_bipxx_public(84, self.0, self.1, self.2)?).build()
-    }
-}
-
-macro_rules! expand_make_bipxx {
-    ( $mod_name:ident, $ctx:ty ) => {
-        mod $mod_name {
-            use super::*;
-
-            pub(super) fn make_bipxx_private<K: DerivableKey<$ctx>>(
-                bip: u32,
-                key: K,
-                keychain: KeychainKind,
-            ) -> Result<impl IntoDescriptorKey<$ctx>, DescriptorError> {
-                let mut derivation_path = Vec::with_capacity(4);
-                derivation_path.push(bip32::ChildNumber::from_hardened_idx(bip)?);
-                derivation_path.push(bip32::ChildNumber::from_hardened_idx(0)?);
-                derivation_path.push(bip32::ChildNumber::from_hardened_idx(0)?);
-
-                match keychain {
-                    KeychainKind::External => {
-                        derivation_path.push(bip32::ChildNumber::from_normal_idx(0)?)
-                    }
-                    KeychainKind::Internal => {
-                        derivation_path.push(bip32::ChildNumber::from_normal_idx(1)?)
-                    }
-                };
-
-                let derivation_path: bip32::DerivationPath = derivation_path.into();
-
-                Ok((key, derivation_path))
-            }
-            pub(super) fn make_bipxx_public<K: DerivableKey<$ctx>>(
-                bip: u32,
-                key: K,
-                parent_fingerprint: bip32::Fingerprint,
-                keychain: KeychainKind,
-            ) -> Result<impl IntoDescriptorKey<$ctx>, DescriptorError> {
-                let derivation_path: bip32::DerivationPath = match keychain {
-                    KeychainKind::External => vec![bip32::ChildNumber::from_normal_idx(0)?].into(),
-                    KeychainKind::Internal => vec![bip32::ChildNumber::from_normal_idx(1)?].into(),
-                };
-
-                let source_path = bip32::DerivationPath::from(vec![
-                    bip32::ChildNumber::from_hardened_idx(bip)?,
-                    bip32::ChildNumber::from_hardened_idx(0)?,
-                    bip32::ChildNumber::from_hardened_idx(0)?,
-                ]);
-
-                Ok((key, (parent_fingerprint, source_path), derivation_path))
-            }
-        }
-    };
-}
-
-expand_make_bipxx!(legacy, Legacy);
-expand_make_bipxx!(segwit_v0, Segwitv0);
-
-#[cfg(test)]
-mod test {
-    // test existing descriptor templates, make sure they are expanded to the right descriptors
-
-    use std::str::FromStr;
-
-    use super::*;
-    use crate::descriptor::derived::AsDerived;
-    use crate::descriptor::{DescriptorError, DescriptorMeta};
-    use crate::keys::ValidNetworks;
-    use bitcoin::network::constants::Network::Regtest;
-    use bitcoin::secp256k1::Secp256k1;
-    use miniscript::descriptor::{DescriptorPublicKey, DescriptorTrait, KeyMap};
-    use miniscript::Descriptor;
-
-    // verify template descriptor generates expected address(es)
-    fn check(
-        desc: Result<(Descriptor<DescriptorPublicKey>, KeyMap, ValidNetworks), DescriptorError>,
-        is_witness: bool,
-        is_fixed: bool,
-        expected: &[&str],
-    ) {
-        let secp = Secp256k1::new();
-
-        let (desc, _key_map, _networks) = desc.unwrap();
-        assert_eq!(desc.is_witness(), is_witness);
-        assert_eq!(!desc.is_deriveable(), is_fixed);
-        for i in 0..expected.len() {
-            let index = i as u32;
-            let child_desc = if !desc.is_deriveable() {
-                desc.as_derived_fixed(&secp)
-            } else {
-                desc.as_derived(index, &secp)
-            };
-            let address = child_desc.address(Regtest).unwrap();
-            assert_eq!(address.to_string(), *expected.get(i).unwrap());
-        }
-    }
-
-    // P2PKH
-    #[test]
-    fn test_p2ph_template() {
-        let prvkey =
-            bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")
-                .unwrap();
-        check(
-            P2Pkh(prvkey).build(),
-            false,
-            true,
-            &["mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"],
-        );
-
-        let pubkey = bitcoin::PublicKey::from_str(
-            "03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd",
-        )
-        .unwrap();
-        check(
-            P2Pkh(pubkey).build(),
-            false,
-            true,
-            &["muZpTpBYhxmRFuCjLc7C6BBDF32C8XVJUi"],
-        );
-    }
-
-    // P2WPKH-P2SH `sh(wpkh(key))`
-    #[test]
-    fn test_p2wphp2sh_template() {
-        let prvkey =
-            bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")
-                .unwrap();
-        check(
-            P2Wpkh_P2Sh(prvkey).build(),
-            true,
-            true,
-            &["2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"],
-        );
-
-        let pubkey = bitcoin::PublicKey::from_str(
-            "03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd",
-        )
-        .unwrap();
-        check(
-            P2Wpkh_P2Sh(pubkey).build(),
-            true,
-            true,
-            &["2N5LiC3CqzxDamRTPG1kiNv1FpNJQ7x28sb"],
-        );
-    }
-
-    // P2WPKH `wpkh(key)`
-    #[test]
-    fn test_p2wph_template() {
-        let prvkey =
-            bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")
-                .unwrap();
-        check(
-            P2Wpkh(prvkey).build(),
-            true,
-            true,
-            &["bcrt1q4525hmgw265tl3drrl8jjta7ayffu6jfcwxx9y"],
-        );
-
-        let pubkey = bitcoin::PublicKey::from_str(
-            "03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd",
-        )
-        .unwrap();
-        check(
-            P2Wpkh(pubkey).build(),
-            true,
-            true,
-            &["bcrt1qngw83fg8dz0k749cg7k3emc7v98wy0c7azaa6h"],
-        );
-    }
-
-    // BIP44 `pkh(key/44'/0'/0'/{0,1}/*)`
-    #[test]
-    fn test_bip44_template() {
-        let prvkey = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
-        check(
-            Bip44(prvkey, KeychainKind::External).build(),
-            false,
-            false,
-            &[
-                "n453VtnjDHPyDt2fDstKSu7A3YCJoHZ5g5",
-                "mvfrrumXgTtwFPWDNUecBBgzuMXhYM7KRP",
-                "mzYvhRAuQqbdSKMVVzXNYyqihgNdRadAUQ",
-            ],
-        );
-        check(
-            Bip44(prvkey, KeychainKind::Internal).build(),
-            false,
-            false,
-            &[
-                "muHF98X9KxEzdKrnFAX85KeHv96eXopaip",
-                "n4hpyLJE5ub6B5Bymv4eqFxS5KjrewSmYR",
-                "mgvkdv1ffmsXd2B1sRKQ5dByK3SzpG42rA",
-            ],
-        );
-    }
-
-    // BIP44 public `pkh(key/{0,1}/*)`
-    #[test]
-    fn test_bip44_public_template() {
-        let pubkey = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU").unwrap();
-        let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f").unwrap();
-        check(
-            Bip44Public(pubkey, fingerprint, KeychainKind::External).build(),
-            false,
-            false,
-            &[
-                "miNG7dJTzJqNbFS19svRdTCisC65dsubtR",
-                "n2UqaDbCjWSFJvpC84m3FjUk5UaeibCzYg",
-                "muCPpS6Ue7nkzeJMWDViw7Lkwr92Yc4K8g",
-            ],
-        );
-        check(
-            Bip44Public(pubkey, fingerprint, KeychainKind::Internal).build(),
-            false,
-            false,
-            &[
-                "moDr3vJ8wpt5nNxSK55MPq797nXJb2Ru9H",
-                "ms7A1Yt4uTezT2XkefW12AvLoko8WfNJMG",
-                "mhYiyat2rtEnV77cFfQsW32y1m2ceCGHPo",
-            ],
-        );
-    }
-
-    // BIP49 `sh(wpkh(key/49'/0'/0'/{0,1}/*))`
-    #[test]
-    fn test_bip49_template() {
-        let prvkey = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
-        check(
-            Bip49(prvkey, KeychainKind::External).build(),
-            true,
-            false,
-            &[
-                "2N9bCAJXGm168MjVwpkBdNt6ucka3PKVoUV",
-                "2NDckYkqrYyDMtttEav5hB3Bfw9EGAW5HtS",
-                "2NAFTVtksF9T4a97M7nyCjwUBD24QevZ5Z4",
-            ],
-        );
-        check(
-            Bip49(prvkey, KeychainKind::Internal).build(),
-            true,
-            false,
-            &[
-                "2NB3pA8PnzJLGV8YEKNDFpbViZv3Bm1K6CG",
-                "2NBiX2Wzxngb5rPiWpUiJQ2uLVB4HBjFD4p",
-                "2NA8ek4CdQ6aMkveYF6AYuEYNrftB47QGTn",
-            ],
-        );
-    }
-
-    // BIP49 public `sh(wpkh(key/{0,1}/*))`
-    #[test]
-    fn test_bip49_public_template() {
-        let pubkey = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L").unwrap();
-        let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f").unwrap();
-        check(
-            Bip49Public(pubkey, fingerprint, KeychainKind::External).build(),
-            true,
-            false,
-            &[
-                "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt",
-                "2NCTQfJ1sZa3wQ3pPseYRHbaNEpC3AquEfX",
-                "2MveFxAuC8BYPzTybx7FxSzW8HSd8ATT4z7",
-            ],
-        );
-        check(
-            Bip49Public(pubkey, fingerprint, KeychainKind::Internal).build(),
-            true,
-            false,
-            &[
-                "2NF2vttKibwyxigxtx95Zw8K7JhDbo5zPVJ",
-                "2Mtmyd8taksxNVWCJ4wVvaiss7QPZGcAJuH",
-                "2NBs3CTVYPr1HCzjB4YFsnWCPCtNg8uMEfp",
-            ],
-        );
-    }
-
-    // BIP84 `wpkh(key/84'/0'/0'/{0,1}/*)`
-    #[test]
-    fn test_bip84_template() {
-        let prvkey = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
-        check(
-            Bip84(prvkey, KeychainKind::External).build(),
-            true,
-            false,
-            &[
-                "bcrt1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvwtjf8s",
-                "bcrt1qx0v6zgfwe50m4kqc58cqzcyem7ay2sfl3gvqhp",
-                "bcrt1q4h7fq9zhxst6e69p3n882nfj649l7w9g3zccfp",
-            ],
-        );
-        check(
-            Bip84(prvkey, KeychainKind::Internal).build(),
-            true,
-            false,
-            &[
-                "bcrt1qtrwtz00wxl69e5xex7amy4xzlxkaefg3gfdkxa",
-                "bcrt1qqqasfhxpkkf7zrxqnkr2sfhn74dgsrc3e3ky45",
-                "bcrt1qpks7n0gq74hsgsz3phn5vuazjjq0f5eqhsgyce",
-            ],
-        );
-    }
-
-    // BIP84 public `wpkh(key/{0,1}/*)`
-    #[test]
-    fn test_bip84_public_template() {
-        let pubkey = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q").unwrap();
-        let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f").unwrap();
-        check(
-            Bip84Public(pubkey, fingerprint, KeychainKind::External).build(),
-            true,
-            false,
-            &[
-                "bcrt1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2prcdvd0h",
-                "bcrt1q3lncdlwq3lgcaaeyruynjnlccr0ve0kakh6ana",
-                "bcrt1qt9800y6xl3922jy3uyl0z33jh5wfpycyhcylr9",
-            ],
-        );
-        check(
-            Bip84Public(pubkey, fingerprint, KeychainKind::Internal).build(),
-            true,
-            false,
-            &[
-                "bcrt1qm6wqukenh7guu792lj2njgw9n78cmwsy8xy3z2",
-                "bcrt1q694twxtjn4nnrvnyvra769j0a23rllj5c6cgwp",
-                "bcrt1qhlac3c5ranv5w5emlnqs7wxhkxt8maelylcarp",
-            ],
-        );
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/error.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/error.rs.html deleted file mode 100644 index ce2b0a8c91..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/error.rs.html +++ /dev/null @@ -1,461 +0,0 @@ -error.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-use std::fmt;
-
-use crate::bitcoin::Network;
-use crate::{descriptor, wallet, wallet::address_validator};
-use bitcoin::OutPoint;
-
-/// Errors that can be thrown by the [`Wallet`](crate::wallet::Wallet)
-#[derive(Debug)]
-pub enum Error {
-    /// Wrong number of bytes found when trying to convert to u32
-    InvalidU32Bytes(Vec<u8>),
-    /// Generic error
-    Generic(String),
-    /// This error is thrown when trying to convert Bare and Public key script to address
-    ScriptDoesntHaveAddressForm,
-    /// Cannot build a tx without recipients
-    NoRecipients,
-    /// `manually_selected_only` option is selected but no utxo has been passed
-    NoUtxosSelected,
-    /// Output created is under the dust limit, 546 satoshis
-    OutputBelowDustLimit(usize),
-    /// Wallet's UTXO set is not enough to cover recipient's requested plus fee
-    InsufficientFunds {
-        /// Sats needed for some transaction
-        needed: u64,
-        /// Sats available for spending
-        available: u64,
-    },
-    /// Branch and bound coin selection possible attempts with sufficiently big UTXO set could grow
-    /// exponentially, thus a limit is set, and when hit, this error is thrown
-    BnBTotalTriesExceeded,
-    /// Branch and bound coin selection tries to avoid needing a change by finding the right inputs for
-    /// the desired outputs plus fee, if there is not such combination this error is thrown
-    BnBNoExactMatch,
-    /// Happens when trying to spend an UTXO that is not in the internal database
-    UnknownUtxo,
-    /// Thrown when a tx is not found in the internal database
-    TransactionNotFound,
-    /// Happens when trying to bump a transaction that is already confirmed
-    TransactionConfirmed,
-    /// Trying to replace a tx that has a sequence >= `0xFFFFFFFE`
-    IrreplaceableTransaction,
-    /// When bumping a tx the fee rate requested is lower than required
-    FeeRateTooLow {
-        /// Required fee rate (satoshi/vbyte)
-        required: crate::types::FeeRate,
-    },
-    /// When bumping a tx the absolute fee requested is lower than replaced tx absolute fee
-    FeeTooLow {
-        /// Required fee absolute value (satoshi)
-        required: u64,
-    },
-    /// Node doesn't have data to estimate a fee rate
-    FeeRateUnavailable,
-    /// In order to use the [`TxBuilder::add_global_xpubs`] option every extended
-    /// key in the descriptor must either be a master key itself (having depth = 0) or have an
-    /// explicit origin provided
-    ///
-    /// [`TxBuilder::add_global_xpubs`]: crate::wallet::tx_builder::TxBuilder::add_global_xpubs
-    MissingKeyOrigin(String),
-    /// Error while working with [`keys`](crate::keys)
-    Key(crate::keys::KeyError),
-    /// Descriptor checksum mismatch
-    ChecksumMismatch,
-    /// Spending policy is not compatible with this [`KeychainKind`](crate::types::KeychainKind)
-    SpendingPolicyRequired(crate::types::KeychainKind),
-    /// Error while extracting and manipulating policies
-    InvalidPolicyPathError(crate::descriptor::policy::PolicyError),
-    /// Signing error
-    Signer(crate::wallet::signer::SignerError),
-    /// Invalid network
-    InvalidNetwork {
-        /// requested network, for example what is given as bdk-cli option
-        requested: Network,
-        /// found network, for example the network of the bitcoin node
-        found: Network,
-    },
-    #[cfg(feature = "verify")]
-    /// Transaction verification error
-    Verification(crate::wallet::verify::VerifyError),
-
-    /// Progress value must be between `0.0` (included) and `100.0` (included)
-    InvalidProgressValue(f32),
-    /// Progress update error (maybe the channel has been closed)
-    ProgressUpdateError,
-    /// Requested outpoint doesn't exist in the tx (vout greater than available outputs)
-    InvalidOutpoint(OutPoint),
-
-    /// Error related to the parsing and usage of descriptors
-    Descriptor(crate::descriptor::error::Error),
-    /// Error that can be returned to fail the validation of an address
-    AddressValidator(crate::wallet::address_validator::AddressValidatorError),
-    /// Encoding error
-    Encode(bitcoin::consensus::encode::Error),
-    /// Miniscript error
-    Miniscript(miniscript::Error),
-    /// BIP32 error
-    Bip32(bitcoin::util::bip32::Error),
-    /// An ECDSA error
-    Secp256k1(bitcoin::secp256k1::Error),
-    /// Error serializing or deserializing JSON data
-    Json(serde_json::Error),
-    /// Hex decoding error
-    Hex(bitcoin::hashes::hex::Error),
-    /// Partially signed bitcoin transaction error
-    Psbt(bitcoin::util::psbt::Error),
-    /// Partially signed bitcoin transaction parse error
-    PsbtParse(bitcoin::util::psbt::PsbtParseError),
-
-    //KeyMismatch(bitcoin::secp256k1::PublicKey, bitcoin::secp256k1::PublicKey),
-    //MissingInputUTXO(usize),
-    //InvalidAddressNetwork(Address),
-    //DifferentTransactions,
-    //DifferentDescriptorStructure,
-    //Uncapable(crate::blockchain::Capability),
-    //MissingCachedAddresses,
-    #[cfg(feature = "electrum")]
-    /// Electrum client error
-    Electrum(electrum_client::Error),
-    #[cfg(feature = "esplora")]
-    /// Esplora client error
-    Esplora(Box<crate::blockchain::esplora::EsploraError>),
-    #[cfg(feature = "compact_filters")]
-    /// Compact filters client error)
-    CompactFilters(crate::blockchain::compact_filters::CompactFiltersError),
-    #[cfg(feature = "key-value-db")]
-    /// Sled database error
-    Sled(sled::Error),
-    #[cfg(feature = "rpc")]
-    /// Rpc client error
-    Rpc(bitcoincore_rpc::Error),
-    #[cfg(feature = "sqlite")]
-    /// Rusqlite client error
-    Rusqlite(rusqlite::Error),
-}
-
-impl fmt::Display for Error {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        write!(f, "{:?}", self)
-    }
-}
-
-impl std::error::Error for Error {}
-
-macro_rules! impl_error {
-    ( $from:ty, $to:ident ) => {
-        impl_error!($from, $to, Error);
-    };
-    ( $from:ty, $to:ident, $impl_for:ty ) => {
-        impl std::convert::From<$from> for $impl_for {
-            fn from(err: $from) -> Self {
-                <$impl_for>::$to(err)
-            }
-        }
-    };
-}
-
-impl_error!(descriptor::error::Error, Descriptor);
-impl_error!(address_validator::AddressValidatorError, AddressValidator);
-impl_error!(descriptor::policy::PolicyError, InvalidPolicyPathError);
-impl_error!(wallet::signer::SignerError, Signer);
-
-impl From<crate::keys::KeyError> for Error {
-    fn from(key_error: crate::keys::KeyError) -> Error {
-        match key_error {
-            crate::keys::KeyError::Miniscript(inner) => Error::Miniscript(inner),
-            crate::keys::KeyError::Bip32(inner) => Error::Bip32(inner),
-            crate::keys::KeyError::InvalidChecksum => Error::ChecksumMismatch,
-            e => Error::Key(e),
-        }
-    }
-}
-
-impl_error!(bitcoin::consensus::encode::Error, Encode);
-impl_error!(miniscript::Error, Miniscript);
-impl_error!(bitcoin::util::bip32::Error, Bip32);
-impl_error!(bitcoin::secp256k1::Error, Secp256k1);
-impl_error!(serde_json::Error, Json);
-impl_error!(bitcoin::hashes::hex::Error, Hex);
-impl_error!(bitcoin::util::psbt::Error, Psbt);
-impl_error!(bitcoin::util::psbt::PsbtParseError, PsbtParse);
-
-#[cfg(feature = "electrum")]
-impl_error!(electrum_client::Error, Electrum);
-#[cfg(feature = "key-value-db")]
-impl_error!(sled::Error, Sled);
-#[cfg(feature = "rpc")]
-impl_error!(bitcoincore_rpc::Error, Rpc);
-#[cfg(feature = "sqlite")]
-impl_error!(rusqlite::Error, Rusqlite);
-
-#[cfg(feature = "compact_filters")]
-impl From<crate::blockchain::compact_filters::CompactFiltersError> for Error {
-    fn from(other: crate::blockchain::compact_filters::CompactFiltersError) -> Self {
-        match other {
-            crate::blockchain::compact_filters::CompactFiltersError::Global(e) => *e,
-            err => Error::CompactFilters(err),
-        }
-    }
-}
-
-#[cfg(feature = "verify")]
-impl From<crate::wallet::verify::VerifyError> for Error {
-    fn from(other: crate::wallet::verify::VerifyError) -> Self {
-        match other {
-            crate::wallet::verify::VerifyError::Global(inner) => *inner,
-            err => Error::Verification(err),
-        }
-    }
-}
-
-#[cfg(feature = "esplora")]
-impl From<crate::blockchain::esplora::EsploraError> for Error {
-    fn from(other: crate::blockchain::esplora::EsploraError) -> Self {
-        Error::Esplora(Box::new(other))
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/keys/bip39.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/keys/bip39.rs.html deleted file mode 100644 index d40b22dc38..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/keys/bip39.rs.html +++ /dev/null @@ -1,421 +0,0 @@ -bip39.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! BIP-0039
-
-// TODO: maybe write our own implementation of bip39? Seems stupid to have an extra dependency for
-// something that should be fairly simple to re-implement.
-
-use bitcoin::util::bip32;
-use bitcoin::Network;
-
-use miniscript::ScriptContext;
-
-pub use bip39::{Language, Mnemonic};
-
-type Seed = [u8; 64];
-
-/// Type describing entropy length (aka word count) in the mnemonic
-pub enum WordCount {
-    /// 12 words mnemonic (128 bits entropy)
-    Words12 = 128,
-    /// 15 words mnemonic (160 bits entropy)
-    Words15 = 160,
-    /// 18 words mnemonic (192 bits entropy)
-    Words18 = 192,
-    /// 21 words mnemonic (224 bits entropy)
-    Words21 = 224,
-    /// 24 words mnemonic (256 bits entropy)
-    Words24 = 256,
-}
-
-use super::{
-    any_network, DerivableKey, DescriptorKey, ExtendedKey, GeneratableKey, GeneratedKey, KeyError,
-};
-
-fn set_valid_on_any_network<Ctx: ScriptContext>(
-    descriptor_key: DescriptorKey<Ctx>,
-) -> DescriptorKey<Ctx> {
-    // We have to pick one network to build the xprv, but since the bip39 standard doesn't
-    // encode the network, the xprv we create is actually valid everywhere. So we override the
-    // valid networks with `any_network()`.
-    descriptor_key.override_valid_networks(any_network())
-}
-
-/// Type for a BIP39 mnemonic with an optional passphrase
-pub type MnemonicWithPassphrase = (Mnemonic, Option<String>);
-
-#[cfg_attr(docsrs, doc(cfg(feature = "keys-bip39")))]
-impl<Ctx: ScriptContext> DerivableKey<Ctx> for Seed {
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        Ok(bip32::ExtendedPrivKey::new_master(Network::Bitcoin, &self[..])?.into())
-    }
-
-    fn into_descriptor_key(
-        self,
-        source: Option<bip32::KeySource>,
-        derivation_path: bip32::DerivationPath,
-    ) -> Result<DescriptorKey<Ctx>, KeyError> {
-        let descriptor_key = self
-            .into_extended_key()?
-            .into_descriptor_key(source, derivation_path)?;
-
-        Ok(set_valid_on_any_network(descriptor_key))
-    }
-}
-
-#[cfg_attr(docsrs, doc(cfg(feature = "keys-bip39")))]
-impl<Ctx: ScriptContext> DerivableKey<Ctx> for MnemonicWithPassphrase {
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        let (mnemonic, passphrase) = self;
-        let seed: Seed = mnemonic.to_seed(passphrase.as_deref().unwrap_or(""));
-
-        seed.into_extended_key()
-    }
-
-    fn into_descriptor_key(
-        self,
-        source: Option<bip32::KeySource>,
-        derivation_path: bip32::DerivationPath,
-    ) -> Result<DescriptorKey<Ctx>, KeyError> {
-        let descriptor_key = self
-            .into_extended_key()?
-            .into_descriptor_key(source, derivation_path)?;
-
-        Ok(set_valid_on_any_network(descriptor_key))
-    }
-}
-
-#[cfg_attr(docsrs, doc(cfg(feature = "keys-bip39")))]
-impl<Ctx: ScriptContext> DerivableKey<Ctx> for Mnemonic {
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        (self, None).into_extended_key()
-    }
-
-    fn into_descriptor_key(
-        self,
-        source: Option<bip32::KeySource>,
-        derivation_path: bip32::DerivationPath,
-    ) -> Result<DescriptorKey<Ctx>, KeyError> {
-        let descriptor_key = self
-            .into_extended_key()?
-            .into_descriptor_key(source, derivation_path)?;
-
-        Ok(set_valid_on_any_network(descriptor_key))
-    }
-}
-
-#[cfg_attr(docsrs, doc(cfg(feature = "keys-bip39")))]
-impl<Ctx: ScriptContext> GeneratableKey<Ctx> for Mnemonic {
-    type Entropy = [u8; 32];
-
-    type Options = (WordCount, Language);
-    type Error = Option<bip39::Error>;
-
-    fn generate_with_entropy(
-        (word_count, language): Self::Options,
-        entropy: Self::Entropy,
-    ) -> Result<GeneratedKey<Self, Ctx>, Self::Error> {
-        let entropy = &entropy.as_ref()[..(word_count as usize / 8)];
-        let mnemonic = Mnemonic::from_entropy_in(language, entropy)?;
-
-        Ok(GeneratedKey::new(mnemonic, any_network()))
-    }
-}
-
-#[cfg(test)]
-mod test {
-    use std::str::FromStr;
-
-    use bitcoin::util::bip32;
-
-    use bip39::{Language, Mnemonic};
-
-    use crate::keys::{any_network, GeneratableKey, GeneratedKey};
-
-    use super::WordCount;
-
-    #[test]
-    fn test_keys_bip39_mnemonic() {
-        let mnemonic =
-            "aim bunker wash balance finish force paper analyst cabin spoon stable organ";
-        let mnemonic = Mnemonic::parse_in(Language::English, mnemonic).unwrap();
-        let path = bip32::DerivationPath::from_str("m/44'/0'/0'/0").unwrap();
-
-        let key = (mnemonic, path);
-        let (desc, keys, networks) = crate::descriptor!(wpkh(key)).unwrap();
-        assert_eq!(desc.to_string(), "wpkh([be83839f/44'/0'/0']xpub6DCQ1YcqvZtSwGWMrwHELPehjWV3f2MGZ69yBADTxFEUAoLwb5Mp5GniQK6tTp3AgbngVz9zEFbBJUPVnkG7LFYt8QMTfbrNqs6FNEwAPKA/0/*)#0r8v4nkv");
-        assert_eq!(keys.len(), 1);
-        assert_eq!(networks.len(), 4);
-    }
-
-    #[test]
-    fn test_keys_bip39_mnemonic_passphrase() {
-        let mnemonic =
-            "aim bunker wash balance finish force paper analyst cabin spoon stable organ";
-        let mnemonic = Mnemonic::parse_in(Language::English, mnemonic).unwrap();
-        let path = bip32::DerivationPath::from_str("m/44'/0'/0'/0").unwrap();
-
-        let key = ((mnemonic, Some("passphrase".into())), path);
-        let (desc, keys, networks) = crate::descriptor!(wpkh(key)).unwrap();
-        assert_eq!(desc.to_string(), "wpkh([8f6cb80c/44'/0'/0']xpub6DWYS8bbihFevy29M4cbw4ZR3P5E12jB8R88gBDWCTCNpYiDHhYWNywrCF9VZQYagzPmsZpxXpytzSoxynyeFr4ZyzheVjnpLKuse4fiwZw/0/*)#h0j0tg5m");
-        assert_eq!(keys.len(), 1);
-        assert_eq!(networks.len(), 4);
-    }
-
-    #[test]
-    fn test_keys_generate_bip39() {
-        let generated_mnemonic: GeneratedKey<_, miniscript::Segwitv0> =
-            Mnemonic::generate_with_entropy(
-                (WordCount::Words12, Language::English),
-                crate::keys::test::TEST_ENTROPY,
-            )
-            .unwrap();
-        assert_eq!(generated_mnemonic.valid_networks, any_network());
-        assert_eq!(
-            generated_mnemonic.to_string(),
-            "primary fetch primary fetch primary fetch primary fetch primary fetch primary fever"
-        );
-
-        let generated_mnemonic: GeneratedKey<_, miniscript::Segwitv0> =
-            Mnemonic::generate_with_entropy(
-                (WordCount::Words24, Language::English),
-                crate::keys::test::TEST_ENTROPY,
-            )
-            .unwrap();
-        assert_eq!(generated_mnemonic.valid_networks, any_network());
-        assert_eq!(generated_mnemonic.to_string(), "primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary foster");
-    }
-
-    #[test]
-    fn test_keys_generate_bip39_random() {
-        let generated_mnemonic: GeneratedKey<_, miniscript::Segwitv0> =
-            Mnemonic::generate((WordCount::Words12, Language::English)).unwrap();
-        assert_eq!(generated_mnemonic.valid_networks, any_network());
-
-        let generated_mnemonic: GeneratedKey<_, miniscript::Segwitv0> =
-            Mnemonic::generate((WordCount::Words24, Language::English)).unwrap();
-        assert_eq!(generated_mnemonic.valid_networks, any_network());
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/keys/mod.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/keys/mod.rs.html deleted file mode 100644 index a81816c22b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/keys/mod.rs.html +++ /dev/null @@ -1,1873 +0,0 @@ -mod.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-805
-806
-807
-808
-809
-810
-811
-812
-813
-814
-815
-816
-817
-818
-819
-820
-821
-822
-823
-824
-825
-826
-827
-828
-829
-830
-831
-832
-833
-834
-835
-836
-837
-838
-839
-840
-841
-842
-843
-844
-845
-846
-847
-848
-849
-850
-851
-852
-853
-854
-855
-856
-857
-858
-859
-860
-861
-862
-863
-864
-865
-866
-867
-868
-869
-870
-871
-872
-873
-874
-875
-876
-877
-878
-879
-880
-881
-882
-883
-884
-885
-886
-887
-888
-889
-890
-891
-892
-893
-894
-895
-896
-897
-898
-899
-900
-901
-902
-903
-904
-905
-906
-907
-908
-909
-910
-911
-912
-913
-914
-915
-916
-917
-918
-919
-920
-921
-922
-923
-924
-925
-926
-927
-928
-929
-930
-931
-932
-933
-934
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Key formats
-
-use std::any::TypeId;
-use std::collections::HashSet;
-use std::marker::PhantomData;
-use std::ops::Deref;
-use std::str::FromStr;
-
-use bitcoin::secp256k1::{self, Secp256k1, Signing};
-
-use bitcoin::util::bip32;
-use bitcoin::{Network, PrivateKey, PublicKey};
-
-use miniscript::descriptor::{Descriptor, DescriptorXKey, Wildcard};
-pub use miniscript::descriptor::{
-    DescriptorPublicKey, DescriptorSecretKey, DescriptorSinglePriv, DescriptorSinglePub, KeyMap,
-    SortedMultiVec,
-};
-pub use miniscript::ScriptContext;
-use miniscript::{Miniscript, Terminal};
-
-use crate::descriptor::{CheckMiniscript, DescriptorError};
-use crate::wallet::utils::SecpCtx;
-
-#[cfg(feature = "keys-bip39")]
-#[cfg_attr(docsrs, doc(cfg(feature = "keys-bip39")))]
-pub mod bip39;
-
-/// Set of valid networks for a key
-pub type ValidNetworks = HashSet<Network>;
-
-/// Create a set containing mainnet, testnet and regtest
-pub fn any_network() -> ValidNetworks {
-    vec![
-        Network::Bitcoin,
-        Network::Testnet,
-        Network::Regtest,
-        Network::Signet,
-    ]
-    .into_iter()
-    .collect()
-}
-/// Create a set only containing mainnet
-pub fn mainnet_network() -> ValidNetworks {
-    vec![Network::Bitcoin].into_iter().collect()
-}
-/// Create a set containing testnet and regtest
-pub fn test_networks() -> ValidNetworks {
-    vec![Network::Testnet, Network::Regtest, Network::Signet]
-        .into_iter()
-        .collect()
-}
-/// Compute the intersection of two sets
-pub fn merge_networks(a: &ValidNetworks, b: &ValidNetworks) -> ValidNetworks {
-    a.intersection(b).cloned().collect()
-}
-
-/// Container for public or secret keys
-#[derive(Debug)]
-pub enum DescriptorKey<Ctx: ScriptContext> {
-    #[doc(hidden)]
-    Public(DescriptorPublicKey, ValidNetworks, PhantomData<Ctx>),
-    #[doc(hidden)]
-    Secret(DescriptorSecretKey, ValidNetworks, PhantomData<Ctx>),
-}
-
-impl<Ctx: ScriptContext> DescriptorKey<Ctx> {
-    /// Create an instance given a public key and a set of valid networks
-    pub fn from_public(public: DescriptorPublicKey, networks: ValidNetworks) -> Self {
-        DescriptorKey::Public(public, networks, PhantomData)
-    }
-
-    /// Create an instance given a secret key and a set of valid networks
-    pub fn from_secret(secret: DescriptorSecretKey, networks: ValidNetworks) -> Self {
-        DescriptorKey::Secret(secret, networks, PhantomData)
-    }
-
-    /// Override the computed set of valid networks
-    pub fn override_valid_networks(self, networks: ValidNetworks) -> Self {
-        match self {
-            DescriptorKey::Public(key, _, _) => DescriptorKey::Public(key, networks, PhantomData),
-            DescriptorKey::Secret(key, _, _) => DescriptorKey::Secret(key, networks, PhantomData),
-        }
-    }
-
-    // This method is used internally by `bdk::fragment!` and `bdk::descriptor!`. It has to be
-    // public because it is effectively called by external crates, once the macros are expanded,
-    // but since it is not meant to be part of the public api we hide it from the docs.
-    #[doc(hidden)]
-    pub fn extract(
-        self,
-        secp: &SecpCtx,
-    ) -> Result<(DescriptorPublicKey, KeyMap, ValidNetworks), KeyError> {
-        match self {
-            DescriptorKey::Public(public, valid_networks, _) => {
-                Ok((public, KeyMap::default(), valid_networks))
-            }
-            DescriptorKey::Secret(secret, valid_networks, _) => {
-                let mut key_map = KeyMap::with_capacity(1);
-
-                let public = secret
-                    .as_public(secp)
-                    .map_err(|e| miniscript::Error::Unexpected(e.to_string()))?;
-                key_map.insert(public.clone(), secret);
-
-                Ok((public, key_map, valid_networks))
-            }
-        }
-    }
-}
-
-/// Enum representation of the known valid [`ScriptContext`]s
-#[derive(Debug, Eq, PartialEq, Copy, Clone)]
-pub enum ScriptContextEnum {
-    /// Legacy scripts
-    Legacy,
-    /// Segwitv0 scripts
-    Segwitv0,
-}
-
-impl ScriptContextEnum {
-    /// Returns whether the script context is [`ScriptContextEnum::Legacy`]
-    pub fn is_legacy(&self) -> bool {
-        self == &ScriptContextEnum::Legacy
-    }
-
-    /// Returns whether the script context is [`ScriptContextEnum::Segwitv0`]
-    pub fn is_segwit_v0(&self) -> bool {
-        self == &ScriptContextEnum::Segwitv0
-    }
-}
-
-/// Trait that adds extra useful methods to [`ScriptContext`]s
-pub trait ExtScriptContext: ScriptContext {
-    /// Returns the [`ScriptContext`] as a [`ScriptContextEnum`]
-    fn as_enum() -> ScriptContextEnum;
-
-    /// Returns whether the script context is [`Legacy`](miniscript::Legacy)
-    fn is_legacy() -> bool {
-        Self::as_enum().is_legacy()
-    }
-
-    /// Returns whether the script context is [`Segwitv0`](miniscript::Segwitv0)
-    fn is_segwit_v0() -> bool {
-        Self::as_enum().is_segwit_v0()
-    }
-}
-
-impl<Ctx: ScriptContext + 'static> ExtScriptContext for Ctx {
-    fn as_enum() -> ScriptContextEnum {
-        match TypeId::of::<Ctx>() {
-            t if t == TypeId::of::<miniscript::Legacy>() => ScriptContextEnum::Legacy,
-            t if t == TypeId::of::<miniscript::Segwitv0>() => ScriptContextEnum::Segwitv0,
-            _ => unimplemented!("Unknown ScriptContext type"),
-        }
-    }
-}
-
-/// Trait for objects that can be turned into a public or secret [`DescriptorKey`]
-///
-/// The generic type `Ctx` is used to define the context in which the key is valid: some key
-/// formats, like the mnemonics used by Electrum wallets, encode internally whether the wallet is
-/// legacy or segwit. Thus, trying to turn a valid legacy mnemonic into a `DescriptorKey`
-/// that would become part of a segwit descriptor should fail.
-///
-/// For key types that do care about this, the [`ExtScriptContext`] trait provides some useful
-/// methods that can be used to check at runtime which `Ctx` is being used.
-///
-/// For key types that can do this check statically (because they can only work within a
-/// single `Ctx`), the "specialized" trait can be implemented to make the compiler handle the type
-/// checking.
-///
-/// Keys also have control over the networks they support: constructing the return object with
-/// [`DescriptorKey::from_public`] or [`DescriptorKey::from_secret`] allows to specify a set of
-/// [`ValidNetworks`].
-///
-/// ## Examples
-///
-/// Key type valid in any context:
-///
-/// ```
-/// use bdk::bitcoin::PublicKey;
-///
-/// use bdk::keys::{DescriptorKey, IntoDescriptorKey, KeyError, ScriptContext};
-///
-/// pub struct MyKeyType {
-///     pubkey: PublicKey,
-/// }
-///
-/// impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for MyKeyType {
-///     fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-///         self.pubkey.into_descriptor_key()
-///     }
-/// }
-/// ```
-///
-/// Key type that is only valid on mainnet:
-///
-/// ```
-/// use bdk::bitcoin::PublicKey;
-///
-/// use bdk::keys::{
-///     mainnet_network, DescriptorKey, DescriptorPublicKey, DescriptorSinglePub,
-///     IntoDescriptorKey, KeyError, ScriptContext,
-/// };
-///
-/// pub struct MyKeyType {
-///     pubkey: PublicKey,
-/// }
-///
-/// impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for MyKeyType {
-///     fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-///         Ok(DescriptorKey::from_public(
-///             DescriptorPublicKey::SinglePub(DescriptorSinglePub {
-///                 origin: None,
-///                 key: self.pubkey,
-///             }),
-///             mainnet_network(),
-///         ))
-///     }
-/// }
-/// ```
-///
-/// Key type that internally encodes in which context it's valid. The context is checked at runtime:
-///
-/// ```
-/// use bdk::bitcoin::PublicKey;
-///
-/// use bdk::keys::{DescriptorKey, ExtScriptContext, IntoDescriptorKey, KeyError, ScriptContext};
-///
-/// pub struct MyKeyType {
-///     is_legacy: bool,
-///     pubkey: PublicKey,
-/// }
-///
-/// impl<Ctx: ScriptContext + 'static> IntoDescriptorKey<Ctx> for MyKeyType {
-///     fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-///         if Ctx::is_legacy() == self.is_legacy {
-///             self.pubkey.into_descriptor_key()
-///         } else {
-///             Err(KeyError::InvalidScriptContext)
-///         }
-///     }
-/// }
-/// ```
-///
-/// Key type that can only work within [`miniscript::Segwitv0`] context. Only the specialized version
-/// of the trait is implemented.
-///
-/// This example deliberately fails to compile, to demonstrate how the compiler can catch when keys
-/// are misused. In this case, the "segwit-only" key is used to build a `pkh()` descriptor, which
-/// makes the compiler (correctly) fail.
-///
-/// ```compile_fail
-/// use bdk::bitcoin::PublicKey;
-/// use std::str::FromStr;
-///
-/// use bdk::keys::{DescriptorKey, IntoDescriptorKey, KeyError};
-///
-/// pub struct MySegwitOnlyKeyType {
-///     pubkey: PublicKey,
-/// }
-///
-/// impl IntoDescriptorKey<bdk::miniscript::Segwitv0> for MySegwitOnlyKeyType {
-///     fn into_descriptor_key(self) -> Result<DescriptorKey<bdk::miniscript::Segwitv0>, KeyError> {
-///         self.pubkey.into_descriptor_key()
-///     }
-/// }
-///
-/// let key = MySegwitOnlyKeyType {
-///     pubkey: PublicKey::from_str("...")?,
-/// };
-/// let (descriptor, _, _) = bdk::descriptor!(pkh(key))?;
-/// //                                       ^^^^^ changing this to `wpkh` would make it compile
-///
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-pub trait IntoDescriptorKey<Ctx: ScriptContext>: Sized {
-    /// Turn the key into a [`DescriptorKey`] within the requested [`ScriptContext`]
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError>;
-}
-
-/// Enum for extended keys that can be either `xprv` or `xpub`
-///
-/// An instance of [`ExtendedKey`] can be constructed from an [`ExtendedPrivKey`](bip32::ExtendedPrivKey)
-/// or an [`ExtendedPubKey`](bip32::ExtendedPubKey) by using the `From` trait.
-///
-/// Defaults to the [`Legacy`](miniscript::Legacy) context.
-pub enum ExtendedKey<Ctx: ScriptContext = miniscript::Legacy> {
-    /// A private extended key, aka an `xprv`
-    Private((bip32::ExtendedPrivKey, PhantomData<Ctx>)),
-    /// A public extended key, aka an `xpub`
-    Public((bip32::ExtendedPubKey, PhantomData<Ctx>)),
-}
-
-impl<Ctx: ScriptContext> ExtendedKey<Ctx> {
-    /// Return whether or not the key contains the private data
-    pub fn has_secret(&self) -> bool {
-        match self {
-            ExtendedKey::Private(_) => true,
-            ExtendedKey::Public(_) => false,
-        }
-    }
-
-    /// Transform the [`ExtendedKey`] into an [`ExtendedPrivKey`](bip32::ExtendedPrivKey) for the
-    /// given [`Network`], if the key contains the private data
-    pub fn into_xprv(self, network: Network) -> Option<bip32::ExtendedPrivKey> {
-        match self {
-            ExtendedKey::Private((mut xprv, _)) => {
-                xprv.network = network;
-                Some(xprv)
-            }
-            ExtendedKey::Public(_) => None,
-        }
-    }
-
-    /// Transform the [`ExtendedKey`] into an [`ExtendedPubKey`](bip32::ExtendedPubKey) for the
-    /// given [`Network`]
-    pub fn into_xpub<C: Signing>(
-        self,
-        network: bitcoin::Network,
-        secp: &Secp256k1<C>,
-    ) -> bip32::ExtendedPubKey {
-        let mut xpub = match self {
-            ExtendedKey::Private((xprv, _)) => bip32::ExtendedPubKey::from_private(secp, &xprv),
-            ExtendedKey::Public((xpub, _)) => xpub,
-        };
-
-        xpub.network = network;
-        xpub
-    }
-}
-
-impl<Ctx: ScriptContext> From<bip32::ExtendedPubKey> for ExtendedKey<Ctx> {
-    fn from(xpub: bip32::ExtendedPubKey) -> Self {
-        ExtendedKey::Public((xpub, PhantomData))
-    }
-}
-
-impl<Ctx: ScriptContext> From<bip32::ExtendedPrivKey> for ExtendedKey<Ctx> {
-    fn from(xprv: bip32::ExtendedPrivKey) -> Self {
-        ExtendedKey::Private((xprv, PhantomData))
-    }
-}
-
-/// Trait for keys that can be derived.
-///
-/// When extra metadata are provided, a [`DerivableKey`] can be transformed into a
-/// [`DescriptorKey`]: the trait [`IntoDescriptorKey`] is automatically implemented
-/// for `(DerivableKey, DerivationPath)` and
-/// `(DerivableKey, KeySource, DerivationPath)` tuples.
-///
-/// For key types that don't encode any indication about the path to use (like bip39), it's
-/// generally recommended to implemented this trait instead of [`IntoDescriptorKey`]. The same
-/// rules regarding script context and valid networks apply.
-///
-/// ## Examples
-///
-/// Key types that can be directly converted into an [`ExtendedPrivKey`] or
-/// an [`ExtendedPubKey`] can implement only the required `into_extended_key()` method.
-///
-/// ```
-/// use bdk::bitcoin;
-/// use bdk::bitcoin::util::bip32;
-/// use bdk::keys::{DerivableKey, ExtendedKey, KeyError, ScriptContext};
-///
-/// struct MyCustomKeyType {
-///     key_data: bitcoin::PrivateKey,
-///     chain_code: Vec<u8>,
-///     network: bitcoin::Network,
-/// }
-///
-/// impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
-///     fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-///         let xprv = bip32::ExtendedPrivKey {
-///             network: self.network,
-///             depth: 0,
-///             parent_fingerprint: bip32::Fingerprint::default(),
-///             private_key: self.key_data,
-///             chain_code: bip32::ChainCode::from(self.chain_code.as_ref()),
-///             child_number: bip32::ChildNumber::Normal { index: 0 },
-///         };
-///
-///         xprv.into_extended_key()
-///     }
-/// }
-/// ```
-///
-/// Types that don't internally encode the [`Network`](bitcoin::Network) in which they are valid need some extra
-/// steps to override the set of valid networks, otherwise only the network specified in the
-/// [`ExtendedPrivKey`] or [`ExtendedPubKey`] will be considered valid.
-///
-/// ```
-/// use bdk::bitcoin;
-/// use bdk::bitcoin::util::bip32;
-/// use bdk::keys::{
-///     any_network, DerivableKey, DescriptorKey, ExtendedKey, KeyError, ScriptContext,
-/// };
-///
-/// struct MyCustomKeyType {
-///     key_data: bitcoin::PrivateKey,
-///     chain_code: Vec<u8>,
-/// }
-///
-/// impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
-///     fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-///         let xprv = bip32::ExtendedPrivKey {
-///             network: bitcoin::Network::Bitcoin, // pick an arbitrary network here
-///             depth: 0,
-///             parent_fingerprint: bip32::Fingerprint::default(),
-///             private_key: self.key_data,
-///             chain_code: bip32::ChainCode::from(self.chain_code.as_ref()),
-///             child_number: bip32::ChildNumber::Normal { index: 0 },
-///         };
-///
-///         xprv.into_extended_key()
-///     }
-///
-///     fn into_descriptor_key(
-///         self,
-///         source: Option<bip32::KeySource>,
-///         derivation_path: bip32::DerivationPath,
-///     ) -> Result<DescriptorKey<Ctx>, KeyError> {
-///         let descriptor_key = self
-///             .into_extended_key()?
-///             .into_descriptor_key(source, derivation_path)?;
-///
-///         // Override the set of valid networks here
-///         Ok(descriptor_key.override_valid_networks(any_network()))
-///     }
-/// }
-/// ```
-///
-/// [`DerivationPath`]: (bip32::DerivationPath)
-/// [`ExtendedPrivKey`]: (bip32::ExtendedPrivKey)
-/// [`ExtendedPubKey`]: (bip32::ExtendedPubKey)
-pub trait DerivableKey<Ctx: ScriptContext = miniscript::Legacy>: Sized {
-    /// Consume `self` and turn it into an [`ExtendedKey`]
-    ///
-    /// This can be used to get direct access to `xprv`s and `xpub`s for types that implement this trait,
-    /// like [`Mnemonic`](bip39::Mnemonic) when the `keys-bip39` feature is enabled.
-    #[cfg_attr(
-        feature = "keys-bip39",
-        doc = r##"
-```rust
-use bdk::bitcoin::Network;
-use bdk::keys::{DerivableKey, ExtendedKey};
-use bdk::keys::bip39::{Mnemonic, Language};
-
-# fn main() -> Result<(), Box<dyn std::error::Error>> {
-let xkey: ExtendedKey =
-    Mnemonic::parse_in(
-        Language::English,
-        "jelly crash boy whisper mouse ecology tuna soccer memory million news short",
-    )?
-    .into_extended_key()?;
-let xprv = xkey.into_xprv(Network::Bitcoin).unwrap();
-# Ok(()) }
-```
-"##
-    )]
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError>;
-
-    /// Consume `self` and turn it into a [`DescriptorKey`] by adding the extra metadata, such as
-    /// key origin and derivation path
-    fn into_descriptor_key(
-        self,
-        origin: Option<bip32::KeySource>,
-        derivation_path: bip32::DerivationPath,
-    ) -> Result<DescriptorKey<Ctx>, KeyError> {
-        match self.into_extended_key()? {
-            ExtendedKey::Private((xprv, _)) => DescriptorSecretKey::XPrv(DescriptorXKey {
-                origin,
-                xkey: xprv,
-                derivation_path,
-                wildcard: Wildcard::Unhardened,
-            })
-            .into_descriptor_key(),
-            ExtendedKey::Public((xpub, _)) => DescriptorPublicKey::XPub(DescriptorXKey {
-                origin,
-                xkey: xpub,
-                derivation_path,
-                wildcard: Wildcard::Unhardened,
-            })
-            .into_descriptor_key(),
-        }
-    }
-}
-
-/// Identity conversion
-impl<Ctx: ScriptContext> DerivableKey<Ctx> for ExtendedKey<Ctx> {
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        Ok(self)
-    }
-}
-
-impl<Ctx: ScriptContext> DerivableKey<Ctx> for bip32::ExtendedPubKey {
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        Ok(self.into())
-    }
-}
-
-impl<Ctx: ScriptContext> DerivableKey<Ctx> for bip32::ExtendedPrivKey {
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        Ok(self.into())
-    }
-}
-
-/// Output of a [`GeneratableKey`] key generation
-pub struct GeneratedKey<K, Ctx: ScriptContext> {
-    key: K,
-    valid_networks: ValidNetworks,
-    phantom: PhantomData<Ctx>,
-}
-
-impl<K, Ctx: ScriptContext> GeneratedKey<K, Ctx> {
-    fn new(key: K, valid_networks: ValidNetworks) -> Self {
-        GeneratedKey {
-            key,
-            valid_networks,
-            phantom: PhantomData,
-        }
-    }
-
-    /// Consumes `self` and returns the key
-    pub fn into_key(self) -> K {
-        self.key
-    }
-}
-
-impl<K, Ctx: ScriptContext> Deref for GeneratedKey<K, Ctx> {
-    type Target = K;
-
-    fn deref(&self) -> &Self::Target {
-        &self.key
-    }
-}
-
-// Make generated "derivable" keys themselves "derivable". Also make sure they are assigned the
-// right `valid_networks`.
-impl<Ctx, K> DerivableKey<Ctx> for GeneratedKey<K, Ctx>
-where
-    Ctx: ScriptContext,
-    K: DerivableKey<Ctx>,
-{
-    fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        self.key.into_extended_key()
-    }
-
-    fn into_descriptor_key(
-        self,
-        origin: Option<bip32::KeySource>,
-        derivation_path: bip32::DerivationPath,
-    ) -> Result<DescriptorKey<Ctx>, KeyError> {
-        let descriptor_key = self.key.into_descriptor_key(origin, derivation_path)?;
-        Ok(descriptor_key.override_valid_networks(self.valid_networks))
-    }
-}
-
-// Make generated keys directly usable in descriptors, and make sure they get assigned the right
-// `valid_networks`.
-impl<Ctx, K> IntoDescriptorKey<Ctx> for GeneratedKey<K, Ctx>
-where
-    Ctx: ScriptContext,
-    K: IntoDescriptorKey<Ctx>,
-{
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        let desc_key = self.key.into_descriptor_key()?;
-        Ok(desc_key.override_valid_networks(self.valid_networks))
-    }
-}
-
-/// Trait for keys that can be generated
-///
-/// The same rules about [`ScriptContext`] and [`ValidNetworks`] from [`IntoDescriptorKey`] apply.
-///
-/// This trait is particularly useful when combined with [`DerivableKey`]: if `Self`
-/// implements it, the returned [`GeneratedKey`] will also implement it. The same is true for
-/// [`IntoDescriptorKey`]: the generated keys can be directly used in descriptors if `Self` is also
-/// [`IntoDescriptorKey`].
-pub trait GeneratableKey<Ctx: ScriptContext>: Sized {
-    /// Type specifying the amount of entropy required e.g. `[u8;32]`
-    type Entropy: AsMut<[u8]> + Default;
-
-    /// Extra options required by the `generate_with_entropy`
-    type Options;
-    /// Returned error in case of failure
-    type Error: std::fmt::Debug;
-
-    /// Generate a key given the extra options and the entropy
-    fn generate_with_entropy(
-        options: Self::Options,
-        entropy: Self::Entropy,
-    ) -> Result<GeneratedKey<Self, Ctx>, Self::Error>;
-
-    /// Generate a key given the options with a random entropy
-    fn generate(options: Self::Options) -> Result<GeneratedKey<Self, Ctx>, Self::Error> {
-        use rand::{thread_rng, Rng};
-
-        let mut entropy = Self::Entropy::default();
-        thread_rng().fill(entropy.as_mut());
-        Self::generate_with_entropy(options, entropy)
-    }
-}
-
-/// Trait that allows generating a key with the default options
-///
-/// This trait is automatically implemented if the [`GeneratableKey::Options`] implements [`Default`].
-pub trait GeneratableDefaultOptions<Ctx>: GeneratableKey<Ctx>
-where
-    Ctx: ScriptContext,
-    <Self as GeneratableKey<Ctx>>::Options: Default,
-{
-    /// Generate a key with the default options and a given entropy
-    fn generate_with_entropy_default(
-        entropy: Self::Entropy,
-    ) -> Result<GeneratedKey<Self, Ctx>, Self::Error> {
-        Self::generate_with_entropy(Default::default(), entropy)
-    }
-
-    /// Generate a key with the default options and a random entropy
-    fn generate_default() -> Result<GeneratedKey<Self, Ctx>, Self::Error> {
-        Self::generate(Default::default())
-    }
-}
-
-/// Automatic implementation of [`GeneratableDefaultOptions`] for [`GeneratableKey`]s where
-/// `Options` implements `Default`
-impl<Ctx, K> GeneratableDefaultOptions<Ctx> for K
-where
-    Ctx: ScriptContext,
-    K: GeneratableKey<Ctx>,
-    <K as GeneratableKey<Ctx>>::Options: Default,
-{
-}
-
-impl<Ctx: ScriptContext> GeneratableKey<Ctx> for bip32::ExtendedPrivKey {
-    type Entropy = [u8; 32];
-
-    type Options = ();
-    type Error = bip32::Error;
-
-    fn generate_with_entropy(
-        _: Self::Options,
-        entropy: Self::Entropy,
-    ) -> Result<GeneratedKey<Self, Ctx>, Self::Error> {
-        // pick a arbitrary network here, but say that we support all of them
-        let xprv = bip32::ExtendedPrivKey::new_master(Network::Bitcoin, entropy.as_ref())?;
-        Ok(GeneratedKey::new(xprv, any_network()))
-    }
-}
-
-/// Options for generating a [`PrivateKey`]
-///
-/// Defaults to creating compressed keys, which save on-chain bytes and fees
-#[derive(Debug, Copy, Clone)]
-pub struct PrivateKeyGenerateOptions {
-    /// Whether the generated key should be "compressed" or not
-    pub compressed: bool,
-}
-
-impl Default for PrivateKeyGenerateOptions {
-    fn default() -> Self {
-        PrivateKeyGenerateOptions { compressed: true }
-    }
-}
-
-impl<Ctx: ScriptContext> GeneratableKey<Ctx> for PrivateKey {
-    type Entropy = [u8; secp256k1::constants::SECRET_KEY_SIZE];
-
-    type Options = PrivateKeyGenerateOptions;
-    type Error = bip32::Error;
-
-    fn generate_with_entropy(
-        options: Self::Options,
-        entropy: Self::Entropy,
-    ) -> Result<GeneratedKey<Self, Ctx>, Self::Error> {
-        // pick a arbitrary network here, but say that we support all of them
-        let key = secp256k1::SecretKey::from_slice(&entropy)?;
-        let private_key = PrivateKey {
-            compressed: options.compressed,
-            network: Network::Bitcoin,
-            key,
-        };
-
-        Ok(GeneratedKey::new(private_key, any_network()))
-    }
-}
-
-impl<Ctx: ScriptContext, T: DerivableKey<Ctx>> IntoDescriptorKey<Ctx>
-    for (T, bip32::DerivationPath)
-{
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        self.0.into_descriptor_key(None, self.1)
-    }
-}
-
-impl<Ctx: ScriptContext, T: DerivableKey<Ctx>> IntoDescriptorKey<Ctx>
-    for (T, bip32::KeySource, bip32::DerivationPath)
-{
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        self.0.into_descriptor_key(Some(self.1), self.2)
-    }
-}
-
-fn expand_multi_keys<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
-    pks: Vec<Pk>,
-    secp: &SecpCtx,
-) -> Result<(Vec<DescriptorPublicKey>, KeyMap, ValidNetworks), KeyError> {
-    let (pks, key_maps_networks): (Vec<_>, Vec<_>) = pks
-        .into_iter()
-        .map(|key| key.into_descriptor_key()?.extract(secp))
-        .collect::<Result<Vec<_>, _>>()?
-        .into_iter()
-        .map(|(a, b, c)| (a, (b, c)))
-        .unzip();
-
-    let (key_map, valid_networks) = key_maps_networks.into_iter().fold(
-        (KeyMap::default(), any_network()),
-        |(mut keys_acc, net_acc), (key, net)| {
-            keys_acc.extend(key.into_iter());
-            let net_acc = merge_networks(&net_acc, &net);
-
-            (keys_acc, net_acc)
-        },
-    );
-
-    Ok((pks, key_map, valid_networks))
-}
-
-// Used internally by `bdk::fragment!` to build `pk_k()` fragments
-#[doc(hidden)]
-pub fn make_pk<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
-    descriptor_key: Pk,
-    secp: &SecpCtx,
-) -> Result<(Miniscript<DescriptorPublicKey, Ctx>, KeyMap, ValidNetworks), DescriptorError> {
-    let (key, key_map, valid_networks) = descriptor_key.into_descriptor_key()?.extract(secp)?;
-    let minisc = Miniscript::from_ast(Terminal::PkK(key))?;
-
-    minisc.check_miniscript()?;
-
-    Ok((minisc, key_map, valid_networks))
-}
-
-// Used internally by `bdk::fragment!` to build `pk_h()` fragments
-#[doc(hidden)]
-pub fn make_pkh<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
-    descriptor_key: Pk,
-    secp: &SecpCtx,
-) -> Result<(Miniscript<DescriptorPublicKey, Ctx>, KeyMap, ValidNetworks), DescriptorError> {
-    let (key, key_map, valid_networks) = descriptor_key.into_descriptor_key()?.extract(secp)?;
-    let minisc = Miniscript::from_ast(Terminal::PkH(key))?;
-
-    minisc.check_miniscript()?;
-
-    Ok((minisc, key_map, valid_networks))
-}
-
-// Used internally by `bdk::fragment!` to build `multi()` fragments
-#[doc(hidden)]
-pub fn make_multi<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
-    thresh: usize,
-    pks: Vec<Pk>,
-    secp: &SecpCtx,
-) -> Result<(Miniscript<DescriptorPublicKey, Ctx>, KeyMap, ValidNetworks), DescriptorError> {
-    let (pks, key_map, valid_networks) = expand_multi_keys(pks, secp)?;
-    let minisc = Miniscript::from_ast(Terminal::Multi(thresh, pks))?;
-
-    minisc.check_miniscript()?;
-
-    Ok((minisc, key_map, valid_networks))
-}
-
-// Used internally by `bdk::descriptor!` to build `sortedmulti()` fragments
-#[doc(hidden)]
-pub fn make_sortedmulti<Pk, Ctx, F>(
-    thresh: usize,
-    pks: Vec<Pk>,
-    build_desc: F,
-    secp: &SecpCtx,
-) -> Result<(Descriptor<DescriptorPublicKey>, KeyMap, ValidNetworks), DescriptorError>
-where
-    Pk: IntoDescriptorKey<Ctx>,
-    Ctx: ScriptContext,
-    F: Fn(
-        usize,
-        Vec<DescriptorPublicKey>,
-    ) -> Result<(Descriptor<DescriptorPublicKey>, PhantomData<Ctx>), DescriptorError>,
-{
-    let (pks, key_map, valid_networks) = expand_multi_keys(pks, secp)?;
-    let descriptor = build_desc(thresh, pks)?.0;
-
-    Ok((descriptor, key_map, valid_networks))
-}
-
-/// The "identity" conversion is used internally by some `bdk::fragment`s
-impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for DescriptorKey<Ctx> {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        Ok(self)
-    }
-}
-
-impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for DescriptorPublicKey {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        let networks = match self {
-            DescriptorPublicKey::SinglePub(_) => any_network(),
-            DescriptorPublicKey::XPub(DescriptorXKey { xkey, .. })
-                if xkey.network == Network::Bitcoin =>
-            {
-                mainnet_network()
-            }
-            _ => test_networks(),
-        };
-
-        Ok(DescriptorKey::from_public(self, networks))
-    }
-}
-
-impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for PublicKey {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        DescriptorPublicKey::SinglePub(DescriptorSinglePub {
-            key: self,
-            origin: None,
-        })
-        .into_descriptor_key()
-    }
-}
-
-impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for DescriptorSecretKey {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        let networks = match &self {
-            DescriptorSecretKey::SinglePriv(sk) if sk.key.network == Network::Bitcoin => {
-                mainnet_network()
-            }
-            DescriptorSecretKey::XPrv(DescriptorXKey { xkey, .. })
-                if xkey.network == Network::Bitcoin =>
-            {
-                mainnet_network()
-            }
-            _ => test_networks(),
-        };
-
-        Ok(DescriptorKey::from_secret(self, networks))
-    }
-}
-
-impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for &'_ str {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        DescriptorSecretKey::from_str(self)
-            .map_err(|e| KeyError::Message(e.to_string()))?
-            .into_descriptor_key()
-    }
-}
-
-impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for PrivateKey {
-    fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-        DescriptorSecretKey::SinglePriv(DescriptorSinglePriv {
-            key: self,
-            origin: None,
-        })
-        .into_descriptor_key()
-    }
-}
-
-/// Errors thrown while working with [`keys`](crate::keys)
-#[derive(Debug)]
-pub enum KeyError {
-    /// The key cannot exist in the given script context
-    InvalidScriptContext,
-    /// The key is not valid for the given network
-    InvalidNetwork,
-    /// The key has an invalid checksum
-    InvalidChecksum,
-
-    /// Custom error message
-    Message(String),
-
-    /// BIP32 error
-    Bip32(bitcoin::util::bip32::Error),
-    /// Miniscript error
-    Miniscript(miniscript::Error),
-}
-
-impl_error!(miniscript::Error, Miniscript, KeyError);
-impl_error!(bitcoin::util::bip32::Error, Bip32, KeyError);
-
-impl std::fmt::Display for KeyError {
-    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
-        write!(f, "{:?}", self)
-    }
-}
-
-impl std::error::Error for KeyError {}
-
-#[cfg(test)]
-pub mod test {
-    use bitcoin::util::bip32;
-
-    use super::*;
-
-    pub const TEST_ENTROPY: [u8; 32] = [0xAA; 32];
-
-    #[test]
-    fn test_keys_generate_xprv() {
-        let generated_xprv: GeneratedKey<_, miniscript::Segwitv0> =
-            bip32::ExtendedPrivKey::generate_with_entropy_default(TEST_ENTROPY).unwrap();
-
-        assert_eq!(generated_xprv.valid_networks, any_network());
-        assert_eq!(generated_xprv.to_string(), "xprv9s21ZrQH143K4Xr1cJyqTvuL2FWR8eicgY9boWqMBv8MDVUZ65AXHnzBrK1nyomu6wdcabRgmGTaAKawvhAno1V5FowGpTLVx3jxzE5uk3Q");
-    }
-
-    #[test]
-    fn test_keys_generate_wif() {
-        let generated_wif: GeneratedKey<_, miniscript::Segwitv0> =
-            bitcoin::PrivateKey::generate_with_entropy_default(TEST_ENTROPY).unwrap();
-
-        assert_eq!(generated_wif.valid_networks, any_network());
-        assert_eq!(
-            generated_wif.to_string(),
-            "L2wTu6hQrnDMiFNWA5na6jB12ErGQqtXwqpSL7aWquJaZG8Ai3ch"
-        );
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/lib.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/lib.rs.html deleted file mode 100644 index a5f37383a4..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/lib.rs.html +++ /dev/null @@ -1,571 +0,0 @@ -lib.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-// rustdoc will warn if there are missing docs
-#![warn(missing_docs)]
-// only enables the `doc_cfg` feature when
-// the `docsrs` configuration attribute is defined
-#![cfg_attr(docsrs, feature(doc_cfg))]
-
-//! A modern, lightweight, descriptor-based wallet library written in Rust.
-//!
-//! # About
-//!
-//! The BDK library aims to be the core building block for Bitcoin wallets of any kind.
-//!
-//! * It uses [Miniscript](https://github.com/rust-bitcoin/rust-miniscript) to support descriptors with generalized conditions. This exact same library can be used to build
-//!   single-sig wallets, multisigs, timelocked contracts and more.
-//! * It supports multiple blockchain backends and databases, allowing developers to choose exactly what's right for their projects.
-//! * It is built to be cross-platform: the core logic works on desktop, mobile, and even WebAssembly.
-//! * It is very easy to extend: developers can implement customized logic for blockchain backends, databases, signers, coin selection, and more, without having to fork and modify this library.
-//!
-//! # A Tour of BDK
-//!
-//! BDK consists of a number of modules that provide a range of functionality
-//! essential for implementing descriptor based Bitcoin wallet applications in Rust. In this
-//! section, we will take a brief tour of BDK, summarizing the major APIs and
-//! their uses.
-//!
-//! The easiest way to get started is to add bdk to your dependencies with the default features.
-//! The default features include a simple key-value database ([`sled`](sled)) to cache
-//! blockchain data and an [electrum](https://docs.rs/electrum-client/) blockchain client to
-//! interact with the bitcoin P2P network.
-//!
-//! ```toml
-//! bdk = "0.14.0"
-//! ```
-#![cfg_attr(
-    feature = "electrum",
-    doc = r##"
-## Sync the balance of a descriptor
-
-### Example
-```no_run
-use bdk::Wallet;
-use bdk::database::MemoryDatabase;
-use bdk::blockchain::{noop_progress, ElectrumBlockchain};
-use bdk::electrum_client::Client;
-
-fn main() -> Result<(), bdk::Error> {
-    let client = Client::new("ssl://electrum.blockstream.info:60002")?;
-    let wallet = Wallet::new(
-        "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)",
-        Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"),
-        bitcoin::Network::Testnet,
-        MemoryDatabase::default(),
-        ElectrumBlockchain::from(client)
-    )?;
-
-    wallet.sync(noop_progress(), None)?;
-
-    println!("Descriptor balance: {} SAT", wallet.get_balance()?);
-
-    Ok(())
-}
-```
-"##
-)]
-//!
-//! ## Generate a few addresses
-//!
-//! ### Example
-//! ```
-//! use bdk::{Wallet};
-//! use bdk::database::MemoryDatabase;
-//! use bdk::wallet::AddressIndex::New;
-//!
-//! fn main() -> Result<(), bdk::Error> {
-//! let wallet = Wallet::new_offline(
-//!         "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)",
-//!         Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"),
-//!         bitcoin::Network::Testnet,
-//!         MemoryDatabase::default(),
-//!     )?;
-//!
-//!     println!("Address #0: {}", wallet.get_address(New)?);
-//!     println!("Address #1: {}", wallet.get_address(New)?);
-//!     println!("Address #2: {}", wallet.get_address(New)?);
-//!
-//!     Ok(())
-//! }
-//! ```
-#![cfg_attr(
-    feature = "electrum",
-    doc = r##"
-## Create a transaction
-
-### Example
-```no_run
-use bdk::{FeeRate, Wallet};
-use bdk::database::MemoryDatabase;
-use bdk::blockchain::{noop_progress, ElectrumBlockchain};
-use bdk::electrum_client::Client;
-
-use bitcoin::consensus::serialize;
-use bdk::wallet::AddressIndex::New;
-
-fn main() -> Result<(), bdk::Error> {
-    let client = Client::new("ssl://electrum.blockstream.info:60002")?;
-    let wallet = Wallet::new(
-        "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)",
-        Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"),
-        bitcoin::Network::Testnet,
-        MemoryDatabase::default(),
-        ElectrumBlockchain::from(client)
-    )?;
-
-    wallet.sync(noop_progress(), None)?;
-
-    let send_to = wallet.get_address(New)?;
-    let (psbt, details) = {
-        let mut builder =  wallet.build_tx();
-        builder
-            .add_recipient(send_to.script_pubkey(), 50_000)
-            .enable_rbf()
-            .do_not_spend_change()
-            .fee_rate(FeeRate::from_sat_per_vb(5.0));
-        builder.finish()?
-    };
-
-    println!("Transaction details: {:#?}", details);
-    println!("Unsigned PSBT: {}", &psbt);
-
-    Ok(())
-}
-```
-"##
-)]
-//!
-//! ## Sign a transaction
-//!
-//! ### Example
-//! ```no_run
-//! use std::str::FromStr;
-//!
-//! use bitcoin::util::psbt::PartiallySignedTransaction as Psbt;
-//!
-//! use bdk::{Wallet, SignOptions};
-//! use bdk::database::MemoryDatabase;
-//!
-//! fn main() -> Result<(), bdk::Error> {
-//!     let wallet = Wallet::new_offline(
-//!         "wpkh([c258d2e4/84h/1h/0h]tprv8griRPhA7342zfRyB6CqeKF8CJDXYu5pgnj1cjL1u2ngKcJha5jjTRimG82ABzJQ4MQe71CV54xfn25BbhCNfEGGJZnxvCDQCd6JkbvxW6h/0/*)",
-//!         Some("wpkh([c258d2e4/84h/1h/0h]tprv8griRPhA7342zfRyB6CqeKF8CJDXYu5pgnj1cjL1u2ngKcJha5jjTRimG82ABzJQ4MQe71CV54xfn25BbhCNfEGGJZnxvCDQCd6JkbvxW6h/1/*)"),
-//!         bitcoin::Network::Testnet,
-//!         MemoryDatabase::default(),
-//!     )?;
-//!
-//!     let psbt = "...";
-//!     let mut psbt = Psbt::from_str(psbt)?;
-//!
-//!     let finalized = wallet.sign(&mut psbt, SignOptions::default())?;
-//!
-//!     Ok(())
-//! }
-//! ```
-//!
-//! # Feature flags
-//!
-//! BDK uses a set of [feature flags](https://doc.rust-lang.org/cargo/reference/manifest.html#the-features-section)
-//! to reduce the amount of compiled code by allowing projects to only enable the features they need.
-//! By default, BDK enables two internal features, `key-value-db` and `electrum`.
-//!
-//! If you are new to BDK we recommended that you use the default features which will enable
-//! basic descriptor wallet functionality. More advanced users can disable the `default` features
-//! (`--no-default-features`) and build the BDK library with only the features you need.
-
-//! Below is a list of the available feature flags and the additional functionality they provide.
-//!
-//! * `all-keys`: all features for working with bitcoin keys
-//! * `async-interface`: async functions in bdk traits
-//! * `keys-bip39`: [BIP-39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) mnemonic codes for generating deterministic keys
-//!
-//! ## Internal features
-//!
-//! These features do not expose any new API, but influence internal implementation aspects of
-//! BDK.
-//!
-//! * `compact_filters`: [`compact_filters`](crate::blockchain::compact_filters) client protocol for interacting with the bitcoin P2P network
-//! * `electrum`: [`electrum`](crate::blockchain::electrum) client protocol for interacting with electrum servers
-//! * `esplora`: [`esplora`](crate::blockchain::esplora) client protocol for interacting with blockstream [electrs](https://github.com/Blockstream/electrs) servers
-//! * `key-value-db`: key value [`database`](crate::database) based on [`sled`](crate::sled) for caching blockchain data
-
-pub extern crate bitcoin;
-extern crate log;
-pub extern crate miniscript;
-extern crate serde;
-#[macro_use]
-extern crate serde_json;
-
-#[cfg(all(feature = "reqwest", feature = "ureq"))]
-compile_error!("Features reqwest and ureq are mutually exclusive and cannot be enabled together");
-
-#[cfg(all(feature = "async-interface", feature = "electrum"))]
-compile_error!(
-    "Features async-interface and electrum are mutually exclusive and cannot be enabled together"
-);
-
-#[cfg(all(feature = "async-interface", feature = "ureq"))]
-compile_error!(
-    "Features async-interface and ureq are mutually exclusive and cannot be enabled together"
-);
-
-#[cfg(all(feature = "async-interface", feature = "compact_filters"))]
-compile_error!(
-    "Features async-interface and compact_filters are mutually exclusive and cannot be enabled together"
-);
-
-#[cfg(feature = "keys-bip39")]
-extern crate bip39;
-
-#[cfg(any(target_arch = "wasm32", feature = "async-interface"))]
-#[macro_use]
-extern crate async_trait;
-#[macro_use]
-extern crate bdk_macros;
-
-#[cfg(feature = "compact_filters")]
-extern crate lazy_static;
-
-#[cfg(feature = "rpc")]
-pub extern crate bitcoincore_rpc;
-
-#[cfg(feature = "electrum")]
-pub extern crate electrum_client;
-
-#[cfg(feature = "key-value-db")]
-pub extern crate sled;
-
-#[cfg(feature = "sqlite")]
-pub extern crate rusqlite;
-
-#[allow(unused_imports)]
-#[macro_use]
-pub(crate) mod error;
-pub mod blockchain;
-pub mod database;
-pub mod descriptor;
-#[cfg(feature = "test-md-docs")]
-mod doctest;
-pub mod keys;
-pub(crate) mod psbt;
-pub(crate) mod types;
-pub mod wallet;
-
-pub use descriptor::template;
-pub use descriptor::HdKeyPaths;
-pub use error::Error;
-pub use types::*;
-pub use wallet::address_validator;
-pub use wallet::signer;
-pub use wallet::signer::SignOptions;
-pub use wallet::tx_builder::TxBuilder;
-pub use wallet::Wallet;
-
-/// Get the version of BDK at runtime
-pub fn version() -> &'static str {
-    env!("CARGO_PKG_VERSION", "unknown")
-}
-
-// We should consider putting this under a feature flag but we need the macro in doctests so we need
-// to wait until https://github.com/rust-lang/rust/issues/67295 is fixed.
-//
-// Stuff in here is too rough to document atm
-#[doc(hidden)]
-pub mod testutils;
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/psbt/mod.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/psbt/mod.rs.html deleted file mode 100644 index d042ae78c9..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/psbt/mod.rs.html +++ /dev/null @@ -1,249 +0,0 @@ -mod.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-use bitcoin::util::psbt::PartiallySignedTransaction as Psbt;
-use bitcoin::TxOut;
-
-pub trait PsbtUtils {
-    fn get_utxo_for(&self, input_index: usize) -> Option<TxOut>;
-}
-
-impl PsbtUtils for Psbt {
-    #[allow(clippy::all)] // We want to allow `manual_map` but it is too new.
-    fn get_utxo_for(&self, input_index: usize) -> Option<TxOut> {
-        let tx = &self.global.unsigned_tx;
-
-        if input_index >= tx.input.len() {
-            return None;
-        }
-
-        if let Some(input) = self.inputs.get(input_index) {
-            if let Some(wit_utxo) = &input.witness_utxo {
-                Some(wit_utxo.clone())
-            } else if let Some(in_tx) = &input.non_witness_utxo {
-                Some(in_tx.output[tx.input[input_index].previous_output.vout as usize].clone())
-            } else {
-                None
-            }
-        } else {
-            None
-        }
-    }
-}
-
-#[cfg(test)]
-mod test {
-    use crate::bitcoin::TxIn;
-    use crate::psbt::Psbt;
-    use crate::wallet::AddressIndex;
-    use crate::wallet::{get_funded_wallet, test::get_test_wpkh};
-    use crate::SignOptions;
-    use std::str::FromStr;
-
-    // from bip 174
-    const PSBT_STR: &str = "cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEHakcwRAIgR1lmF5fAGwNrJZKJSGhiGDR9iYZLcZ4ff89X0eURZYcCIFMJ6r9Wqk2Ikf/REf3xM286KdqGbX+EhtdVRs7tr5MZASEDXNxh/HupccC1AaZGoqg7ECy0OIEhfKaC3Ibi1z+ogpIAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIAAAA";
-
-    #[test]
-    #[should_panic(expected = "InputIndexOutOfRange")]
-    fn test_psbt_malformed_psbt_input_legacy() {
-        let psbt_bip = Psbt::from_str(PSBT_STR).unwrap();
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let send_to = wallet.get_address(AddressIndex::New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(send_to.script_pubkey(), 10_000);
-        let (mut psbt, _) = builder.finish().unwrap();
-        psbt.inputs.push(psbt_bip.inputs[0].clone());
-        let options = SignOptions {
-            trust_witness_utxo: true,
-            ..Default::default()
-        };
-        let _ = wallet.sign(&mut psbt, options).unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "InputIndexOutOfRange")]
-    fn test_psbt_malformed_psbt_input_segwit() {
-        let psbt_bip = Psbt::from_str(PSBT_STR).unwrap();
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let send_to = wallet.get_address(AddressIndex::New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(send_to.script_pubkey(), 10_000);
-        let (mut psbt, _) = builder.finish().unwrap();
-        psbt.inputs.push(psbt_bip.inputs[1].clone());
-        let options = SignOptions {
-            trust_witness_utxo: true,
-            ..Default::default()
-        };
-        let _ = wallet.sign(&mut psbt, options).unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "InputIndexOutOfRange")]
-    fn test_psbt_malformed_tx_input() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let send_to = wallet.get_address(AddressIndex::New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(send_to.script_pubkey(), 10_000);
-        let (mut psbt, _) = builder.finish().unwrap();
-        psbt.global.unsigned_tx.input.push(TxIn::default());
-        let options = SignOptions {
-            trust_witness_utxo: true,
-            ..Default::default()
-        };
-        let _ = wallet.sign(&mut psbt, options).unwrap();
-    }
-
-    #[test]
-    fn test_psbt_sign_with_finalized() {
-        let psbt_bip = Psbt::from_str(PSBT_STR).unwrap();
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let send_to = wallet.get_address(AddressIndex::New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(send_to.script_pubkey(), 10_000);
-        let (mut psbt, _) = builder.finish().unwrap();
-
-        // add a finalized input
-        psbt.inputs.push(psbt_bip.inputs[0].clone());
-        psbt.global
-            .unsigned_tx
-            .input
-            .push(psbt_bip.global.unsigned_tx.input[0].clone());
-
-        let _ = wallet.sign(&mut psbt, SignOptions::default()).unwrap();
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/testutils/mod.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/testutils/mod.rs.html deleted file mode 100644 index 67022d6e15..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/testutils/mod.rs.html +++ /dev/null @@ -1,467 +0,0 @@ -mod.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-#![allow(missing_docs)]
-
-#[cfg(test)]
-#[cfg(feature = "test-blockchains")]
-pub mod blockchain_tests;
-
-use bitcoin::secp256k1::{Secp256k1, Verification};
-use bitcoin::{Address, PublicKey};
-
-use miniscript::descriptor::DescriptorPublicKey;
-use miniscript::{Descriptor, MiniscriptKey, TranslatePk};
-
-#[derive(Clone, Debug)]
-pub struct TestIncomingOutput {
-    pub value: u64,
-    pub to_address: String,
-}
-
-impl TestIncomingOutput {
-    pub fn new(value: u64, to_address: Address) -> Self {
-        Self {
-            value,
-            to_address: to_address.to_string(),
-        }
-    }
-}
-
-#[derive(Clone, Debug)]
-pub struct TestIncomingTx {
-    pub output: Vec<TestIncomingOutput>,
-    pub min_confirmations: Option<u64>,
-    pub locktime: Option<i64>,
-    pub replaceable: Option<bool>,
-}
-
-impl TestIncomingTx {
-    pub fn new(
-        output: Vec<TestIncomingOutput>,
-        min_confirmations: Option<u64>,
-        locktime: Option<i64>,
-        replaceable: Option<bool>,
-    ) -> Self {
-        Self {
-            output,
-            min_confirmations,
-            locktime,
-            replaceable,
-        }
-    }
-
-    pub fn add_output(&mut self, output: TestIncomingOutput) {
-        self.output.push(output);
-    }
-}
-
-#[doc(hidden)]
-pub trait TranslateDescriptor {
-    // derive and translate a `Descriptor<DescriptorPublicKey>` into a `Descriptor<PublicKey>`
-    fn derive_translated<C: Verification>(
-        &self,
-        secp: &Secp256k1<C>,
-        index: u32,
-    ) -> Descriptor<PublicKey>;
-}
-
-impl TranslateDescriptor for Descriptor<DescriptorPublicKey> {
-    fn derive_translated<C: Verification>(
-        &self,
-        secp: &Secp256k1<C>,
-        index: u32,
-    ) -> Descriptor<PublicKey> {
-        let translate = |key: &DescriptorPublicKey| -> PublicKey {
-            match key {
-                DescriptorPublicKey::XPub(xpub) => {
-                    xpub.xkey
-                        .derive_pub(secp, &xpub.derivation_path)
-                        .expect("hardened derivation steps")
-                        .public_key
-                }
-                DescriptorPublicKey::SinglePub(key) => key.key,
-            }
-        };
-
-        self.derive(index)
-            .translate_pk_infallible(|pk| translate(pk), |pkh| translate(pkh).to_pubkeyhash())
-    }
-}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! testutils {
-    ( @external $descriptors:expr, $child:expr ) => ({
-        use $crate::bitcoin::secp256k1::Secp256k1;
-        use $crate::miniscript::descriptor::{Descriptor, DescriptorPublicKey, DescriptorTrait};
-
-        use $crate::testutils::TranslateDescriptor;
-
-        let secp = Secp256k1::new();
-
-        let parsed = Descriptor::<DescriptorPublicKey>::parse_descriptor(&secp, &$descriptors.0).expect("Failed to parse descriptor in `testutils!(@external)`").0;
-        parsed.derive_translated(&secp, $child).address(bitcoin::Network::Regtest).expect("No address form")
-    });
-    ( @internal $descriptors:expr, $child:expr ) => ({
-        use $crate::bitcoin::secp256k1::Secp256k1;
-        use $crate::miniscript::descriptor::{Descriptor, DescriptorPublicKey, DescriptorTrait};
-
-        use $crate::testutils::TranslateDescriptor;
-
-        let secp = Secp256k1::new();
-
-        let parsed = Descriptor::<DescriptorPublicKey>::parse_descriptor(&secp, &$descriptors.1.expect("Missing internal descriptor")).expect("Failed to parse descriptor in `testutils!(@internal)`").0;
-        parsed.derive_translated(&secp, $child).address($crate::bitcoin::Network::Regtest).expect("No address form")
-    });
-    ( @e $descriptors:expr, $child:expr ) => ({ testutils!(@external $descriptors, $child) });
-    ( @i $descriptors:expr, $child:expr ) => ({ testutils!(@internal $descriptors, $child) });
-
-    ( @tx ( $( ( $( $addr:tt )* ) => $amount:expr ),+ ) $( ( @locktime $locktime:expr ) )? $( ( @confirmations $confirmations:expr ) )? $( ( @replaceable $replaceable:expr ) )? ) => ({
-        let outs = vec![$( $crate::testutils::TestIncomingOutput::new($amount, testutils!( $($addr)* ))),+];
-
-        let locktime = None::<i64>$(.or(Some($locktime)))?;
-
-        let min_confirmations = None::<u64>$(.or(Some($confirmations)))?;
-        let replaceable = None::<bool>$(.or(Some($replaceable)))?;
-
-        $crate::testutils::TestIncomingTx::new(outs, min_confirmations, locktime, replaceable)
-    });
-
-    ( @literal $key:expr ) => ({
-        let key = $key.to_string();
-        (key, None::<String>, None::<String>)
-    });
-    ( @generate_xprv $( $external_path:expr )? $( ,$internal_path:expr )? ) => ({
-        use rand::Rng;
-
-        let mut seed = [0u8; 32];
-        rand::thread_rng().fill(&mut seed[..]);
-
-        let key = $crate::bitcoin::util::bip32::ExtendedPrivKey::new_master(
-            $crate::bitcoin::Network::Testnet,
-            &seed,
-        );
-
-        let external_path = None::<String>$(.or(Some($external_path.to_string())))?;
-        let internal_path = None::<String>$(.or(Some($internal_path.to_string())))?;
-
-        (key.unwrap().to_string(), external_path, internal_path)
-    });
-    ( @generate_wif ) => ({
-        use rand::Rng;
-
-        let mut key = [0u8; $crate::bitcoin::secp256k1::constants::SECRET_KEY_SIZE];
-        rand::thread_rng().fill(&mut key[..]);
-
-        ($crate::bitcoin::PrivateKey {
-            compressed: true,
-            network: $crate::bitcoin::Network::Testnet,
-            key: $crate::bitcoin::secp256k1::SecretKey::from_slice(&key).unwrap(),
-        }.to_string(), None::<String>, None::<String>)
-    });
-
-    ( @keys ( $( $alias:expr => ( $( $key_type:tt )* ) ),+ ) ) => ({
-        let mut map = std::collections::HashMap::new();
-        $(
-            let alias: &str = $alias;
-            map.insert(alias, testutils!( $($key_type)* ));
-        )+
-
-        map
-    });
-
-    ( @descriptors ( $external_descriptor:expr ) $( ( $internal_descriptor:expr ) )? $( ( @keys $( $keys:tt )* ) )* ) => ({
-        use std::str::FromStr;
-        use std::collections::HashMap;
-        use $crate::miniscript::descriptor::Descriptor;
-        use $crate::miniscript::TranslatePk;
-
-        #[allow(unused_assignments, unused_mut)]
-        let mut keys: HashMap<&'static str, (String, Option<String>, Option<String>)> = HashMap::new();
-        $(
-            keys = testutils!{ @keys $( $keys )* };
-        )*
-
-        let external: Descriptor<String> = FromStr::from_str($external_descriptor).unwrap();
-        let external: Descriptor<String> = external.translate_pk_infallible::<_, _>(|k| {
-            if let Some((key, ext_path, _)) = keys.get(&k.as_str()) {
-                format!("{}{}", key, ext_path.as_ref().unwrap_or(&"".into()))
-            } else {
-                k.clone()
-            }
-        }, |kh| {
-            if let Some((key, ext_path, _)) = keys.get(&kh.as_str()) {
-                format!("{}{}", key, ext_path.as_ref().unwrap_or(&"".into()))
-            } else {
-                kh.clone()
-            }
-
-        });
-        let external = external.to_string();
-
-        let internal = None::<String>$(.or({
-            let string_internal: Descriptor<String> = FromStr::from_str($internal_descriptor).unwrap();
-
-            let string_internal: Descriptor<String> = string_internal.translate_pk_infallible::<_, _>(|k| {
-                if let Some((key, _, int_path)) = keys.get(&k.as_str()) {
-                    format!("{}{}", key, int_path.as_ref().unwrap_or(&"".into()))
-                } else {
-                    k.clone()
-                }
-            }, |kh| {
-                if let Some((key, _, int_path)) = keys.get(&kh.as_str()) {
-                    format!("{}{}", key, int_path.as_ref().unwrap_or(&"".into()))
-                } else {
-                    kh.clone()
-                }
-            });
-            Some(string_internal.to_string())
-        }))?;
-
-        (external, internal)
-    })
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/types.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/types.rs.html deleted file mode 100644 index cbeaeada32..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/types.rs.html +++ /dev/null @@ -1,523 +0,0 @@ -types.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-use std::convert::AsRef;
-use std::ops::Sub;
-
-use bitcoin::blockdata::transaction::{OutPoint, Transaction, TxOut};
-use bitcoin::{hash_types::Txid, util::psbt};
-
-use serde::{Deserialize, Serialize};
-
-/// Types of keychains
-#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash)]
-pub enum KeychainKind {
-    /// External
-    External = 0,
-    /// Internal, usually used for change outputs
-    Internal = 1,
-}
-
-impl KeychainKind {
-    /// Return [`KeychainKind`] as a byte
-    pub fn as_byte(&self) -> u8 {
-        match self {
-            KeychainKind::External => b'e',
-            KeychainKind::Internal => b'i',
-        }
-    }
-}
-
-impl AsRef<[u8]> for KeychainKind {
-    fn as_ref(&self) -> &[u8] {
-        match self {
-            KeychainKind::External => b"e",
-            KeychainKind::Internal => b"i",
-        }
-    }
-}
-
-/// Fee rate
-#[derive(Debug, Copy, Clone, PartialEq, PartialOrd)]
-// Internally stored as satoshi/vbyte
-pub struct FeeRate(f32);
-
-impl FeeRate {
-    /// Create a new instance of [`FeeRate`] given a float fee rate in btc/kvbytes
-    pub fn from_btc_per_kvb(btc_per_kvb: f32) -> Self {
-        FeeRate(btc_per_kvb * 1e5)
-    }
-
-    /// Create a new instance of [`FeeRate`] given a float fee rate in satoshi/vbyte
-    pub const fn from_sat_per_vb(sat_per_vb: f32) -> Self {
-        FeeRate(sat_per_vb)
-    }
-
-    /// Create a new [`FeeRate`] with the default min relay fee value
-    pub const fn default_min_relay_fee() -> Self {
-        FeeRate(1.0)
-    }
-
-    /// Calculate fee rate from `fee` and weight units (`wu`).
-    pub fn from_wu(fee: u64, wu: usize) -> FeeRate {
-        Self::from_vb(fee, wu.vbytes())
-    }
-
-    /// Calculate fee rate from `fee` and `vbytes`.
-    pub fn from_vb(fee: u64, vbytes: usize) -> FeeRate {
-        let rate = fee as f32 / vbytes as f32;
-        Self::from_sat_per_vb(rate)
-    }
-
-    /// Return the value as satoshi/vbyte
-    pub fn as_sat_vb(&self) -> f32 {
-        self.0
-    }
-
-    /// Calculate absolute fee in Satoshis using size in weight units.
-    pub fn fee_wu(&self, wu: usize) -> u64 {
-        self.fee_vb(wu.vbytes())
-    }
-
-    /// Calculate absolute fee in Satoshis using size in virtual bytes.
-    pub fn fee_vb(&self, vbytes: usize) -> u64 {
-        (self.as_sat_vb() * vbytes as f32).ceil() as u64
-    }
-}
-
-impl std::default::Default for FeeRate {
-    fn default() -> Self {
-        FeeRate::default_min_relay_fee()
-    }
-}
-
-impl Sub for FeeRate {
-    type Output = Self;
-
-    fn sub(self, other: FeeRate) -> Self::Output {
-        FeeRate(self.0 - other.0)
-    }
-}
-
-/// Trait implemented by types that can be used to measure weight units.
-pub trait Vbytes {
-    /// Convert weight units to virtual bytes.
-    fn vbytes(self) -> usize;
-}
-
-impl Vbytes for usize {
-    fn vbytes(self) -> usize {
-        // ref: https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#transaction-size-calculations
-        (self as f32 / 4.0).ceil() as usize
-    }
-}
-
-/// An unspent output owned by a [`Wallet`].
-///
-/// [`Wallet`]: crate::Wallet
-#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]
-pub struct LocalUtxo {
-    /// Reference to a transaction output
-    pub outpoint: OutPoint,
-    /// Transaction output
-    pub txout: TxOut,
-    /// Type of keychain
-    pub keychain: KeychainKind,
-}
-
-/// A [`Utxo`] with its `satisfaction_weight`.
-#[derive(Debug, Clone, PartialEq)]
-pub struct WeightedUtxo {
-    /// The weight of the witness data and `scriptSig` expressed in [weight units]. This is used to
-    /// properly maintain the feerate when adding this input to a transaction during coin selection.
-    ///
-    /// [weight units]: https://en.bitcoin.it/wiki/Weight_units
-    pub satisfaction_weight: usize,
-    /// The UTXO
-    pub utxo: Utxo,
-}
-
-#[derive(Debug, Clone, PartialEq)]
-/// An unspent transaction output (UTXO).
-pub enum Utxo {
-    /// A UTXO owned by the local wallet.
-    Local(LocalUtxo),
-    /// A UTXO owned by another wallet.
-    Foreign {
-        /// The location of the output.
-        outpoint: OutPoint,
-        /// The information about the input we require to add it to a PSBT.
-        // Box it to stop the type being too big.
-        psbt_input: Box<psbt::Input>,
-    },
-}
-
-impl Utxo {
-    /// Get the location of the UTXO
-    pub fn outpoint(&self) -> OutPoint {
-        match &self {
-            Utxo::Local(local) => local.outpoint,
-            Utxo::Foreign { outpoint, .. } => *outpoint,
-        }
-    }
-
-    /// Get the `TxOut` of the UTXO
-    pub fn txout(&self) -> &TxOut {
-        match &self {
-            Utxo::Local(local) => &local.txout,
-            Utxo::Foreign {
-                outpoint,
-                psbt_input,
-            } => {
-                if let Some(prev_tx) = &psbt_input.non_witness_utxo {
-                    return &prev_tx.output[outpoint.vout as usize];
-                }
-
-                if let Some(txout) = &psbt_input.witness_utxo {
-                    return txout;
-                }
-
-                unreachable!("Foreign UTXOs will always have one of these set")
-            }
-        }
-    }
-}
-
-/// A wallet transaction
-#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Default)]
-pub struct TransactionDetails {
-    /// Optional transaction
-    pub transaction: Option<Transaction>,
-    /// Transaction id
-    pub txid: Txid,
-
-    /// Received value (sats)
-    pub received: u64,
-    /// Sent value (sats)
-    pub sent: u64,
-    /// Fee value (sats) if available.
-    /// The availability of the fee depends on the backend. It's never `None` with an Electrum
-    /// Server backend, but it could be `None` with a Bitcoin RPC node without txindex that receive
-    /// funds while offline.
-    pub fee: Option<u64>,
-    /// If the transaction is confirmed, contains height and timestamp of the block containing the
-    /// transaction, unconfirmed transaction contains `None`.
-    pub confirmation_time: Option<BlockTime>,
-    /// Whether the tx has been verified against the consensus rules
-    ///
-    /// Confirmed txs are considered "verified" by default, while unconfirmed txs are checked to
-    /// ensure an unstrusted [`Blockchain`](crate::blockchain::Blockchain) backend can't trick the
-    /// wallet into using an invalid tx as an RBF template.
-    ///
-    /// The check is only performed when the `verify` feature is enabled.
-    #[serde(default = "bool::default")] // default to `false` if not specified
-    pub verified: bool,
-}
-
-/// Block height and timestamp of a block
-#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Default)]
-pub struct BlockTime {
-    /// confirmation block height
-    pub height: u32,
-    /// confirmation block timestamp
-    pub timestamp: u64,
-}
-
-/// **DEPRECATED**: Confirmation time of a transaction
-///
-/// The structure has been renamed to `BlockTime`
-#[deprecated(note = "This structure has been renamed to `BlockTime`")]
-pub type ConfirmationTime = BlockTime;
-
-impl BlockTime {
-    /// Returns `Some` `BlockTime` if both `height` and `timestamp` are `Some`
-    pub fn new(height: Option<u32>, timestamp: Option<u64>) -> Option<Self> {
-        match (height, timestamp) {
-            (Some(height), Some(timestamp)) => Some(BlockTime { height, timestamp }),
-            _ => None,
-        }
-    }
-}
-
-#[cfg(test)]
-mod tests {
-    use super::*;
-
-    #[test]
-    fn can_store_feerate_in_const() {
-        const _MY_RATE: FeeRate = FeeRate::from_sat_per_vb(10.0);
-        const _MIN_RELAY: FeeRate = FeeRate::default_min_relay_fee();
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/address_validator.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/address_validator.rs.html deleted file mode 100644 index a1809caede..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/address_validator.rs.html +++ /dev/null @@ -1,313 +0,0 @@ -address_validator.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Address validation callbacks
-//!
-//! The typical usage of those callbacks is for displaying the newly-generated address on a
-//! hardware wallet, so that the user can cross-check its correctness.
-//!
-//! More generally speaking though, these callbacks can also be used to "do something" every time
-//! an address is generated, without necessarily checking or validating it.
-//!
-//! An address validator can be attached to a [`Wallet`](super::Wallet) by using the
-//! [`Wallet::add_address_validator`](super::Wallet::add_address_validator) method, and
-//! whenever a new address is generated (either explicitly by the user with
-//! [`Wallet::get_address`](super::Wallet::get_address) or internally to create a change
-//! address) all the attached validators will be polled, in sequence. All of them must complete
-//! successfully to continue.
-//!
-//! ## Example
-//!
-//! ```
-//! # use std::sync::Arc;
-//! # use bitcoin::*;
-//! # use bdk::address_validator::*;
-//! # use bdk::database::*;
-//! # use bdk::*;
-//! # use bdk::wallet::AddressIndex::New;
-//! #[derive(Debug)]
-//! struct PrintAddressAndContinue;
-//!
-//! impl AddressValidator for PrintAddressAndContinue {
-//!     fn validate(
-//!         &self,
-//!         keychain: KeychainKind,
-//!         hd_keypaths: &HdKeyPaths,
-//!         script: &Script
-//!     ) -> Result<(), AddressValidatorError> {
-//!         let address = Address::from_script(script, Network::Testnet)
-//!             .as_ref()
-//!             .map(Address::to_string)
-//!             .unwrap_or(script.to_string());
-//!         println!("New address of type {:?}: {}", keychain, address);
-//!         println!("HD keypaths: {:#?}", hd_keypaths);
-//!
-//!         Ok(())
-//!     }
-//! }
-//!
-//! let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
-//! let mut wallet = Wallet::new_offline(descriptor, None, Network::Testnet, MemoryDatabase::default())?;
-//! wallet.add_address_validator(Arc::new(PrintAddressAndContinue));
-//!
-//! let address = wallet.get_address(New)?;
-//! println!("Address: {}", address);
-//! # Ok::<(), bdk::Error>(())
-//! ```
-
-use std::fmt;
-
-use bitcoin::Script;
-
-use crate::descriptor::HdKeyPaths;
-use crate::types::KeychainKind;
-
-/// Errors that can be returned to fail the validation of an address
-#[derive(Debug, Clone, PartialEq, Eq)]
-pub enum AddressValidatorError {
-    /// User rejected the address
-    UserRejected,
-    /// Network connection error
-    ConnectionError,
-    /// Network request timeout error
-    TimeoutError,
-    /// Invalid script
-    InvalidScript,
-    /// A custom error message
-    Message(String),
-}
-
-impl fmt::Display for AddressValidatorError {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        write!(f, "{:?}", self)
-    }
-}
-
-impl std::error::Error for AddressValidatorError {}
-
-/// Trait to build address validators
-///
-/// All the address validators attached to a wallet with [`Wallet::add_address_validator`](super::Wallet::add_address_validator) will be polled
-/// every time an address (external or internal) is generated by the wallet. Errors returned in the
-/// validator will be propagated up to the original caller that triggered the address generation.
-///
-/// For a usage example see [this module](crate::address_validator)'s documentation.
-pub trait AddressValidator: Send + Sync + fmt::Debug {
-    /// Validate or inspect an address
-    fn validate(
-        &self,
-        keychain: KeychainKind,
-        hd_keypaths: &HdKeyPaths,
-        script: &Script,
-    ) -> Result<(), AddressValidatorError>;
-}
-
-#[cfg(test)]
-mod test {
-    use std::sync::Arc;
-
-    use super::*;
-    use crate::wallet::AddressIndex::New;
-    use crate::wallet::{get_funded_wallet, test::get_test_wpkh};
-
-    #[derive(Debug)]
-    struct TestValidator;
-    impl AddressValidator for TestValidator {
-        fn validate(
-            &self,
-            _keychain: KeychainKind,
-            _hd_keypaths: &HdKeyPaths,
-            _script: &bitcoin::Script,
-        ) -> Result<(), AddressValidatorError> {
-            Err(AddressValidatorError::InvalidScript)
-        }
-    }
-
-    #[test]
-    #[should_panic(expected = "InvalidScript")]
-    fn test_address_validator_external() {
-        let (mut wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        wallet.add_address_validator(Arc::new(TestValidator));
-
-        wallet.get_address(New).unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "InvalidScript")]
-    fn test_address_validator_internal() {
-        let (mut wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        wallet.add_address_validator(Arc::new(TestValidator));
-
-        let addr = crate::testutils!(@external descriptors, 10);
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 25_000);
-        builder.finish().unwrap();
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/coin_selection.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/coin_selection.rs.html deleted file mode 100644 index 120824dc08..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/coin_selection.rs.html +++ /dev/null @@ -1,2123 +0,0 @@ -coin_selection.rs - source -
   1
-   2
-   3
-   4
-   5
-   6
-   7
-   8
-   9
-  10
-  11
-  12
-  13
-  14
-  15
-  16
-  17
-  18
-  19
-  20
-  21
-  22
-  23
-  24
-  25
-  26
-  27
-  28
-  29
-  30
-  31
-  32
-  33
-  34
-  35
-  36
-  37
-  38
-  39
-  40
-  41
-  42
-  43
-  44
-  45
-  46
-  47
-  48
-  49
-  50
-  51
-  52
-  53
-  54
-  55
-  56
-  57
-  58
-  59
-  60
-  61
-  62
-  63
-  64
-  65
-  66
-  67
-  68
-  69
-  70
-  71
-  72
-  73
-  74
-  75
-  76
-  77
-  78
-  79
-  80
-  81
-  82
-  83
-  84
-  85
-  86
-  87
-  88
-  89
-  90
-  91
-  92
-  93
-  94
-  95
-  96
-  97
-  98
-  99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Coin selection
-//!
-//! This module provides the trait [`CoinSelectionAlgorithm`] that can be implemented to
-//! define custom coin selection algorithms.
-//!
-//! You can specify a custom coin selection algorithm through the [`coin_selection`] method on
-//! [`TxBuilder`]. [`DefaultCoinSelectionAlgorithm`] aliases the coin selection algorithm that will
-//! be used if it is not explicitly set.
-//!
-//! [`TxBuilder`]: super::tx_builder::TxBuilder
-//! [`coin_selection`]: super::tx_builder::TxBuilder::coin_selection
-//!
-//! ## Example
-//!
-//! ```
-//! # use std::str::FromStr;
-//! # use bitcoin::*;
-//! # use bdk::wallet::{self, coin_selection::*};
-//! # use bdk::database::Database;
-//! # use bdk::*;
-//! # const TXIN_BASE_WEIGHT: usize = (32 + 4 + 4 + 1) * 4;
-//! #[derive(Debug)]
-//! struct AlwaysSpendEverything;
-//!
-//! impl<D: Database> CoinSelectionAlgorithm<D> for AlwaysSpendEverything {
-//!     fn coin_select(
-//!         &self,
-//!         database: &D,
-//!         required_utxos: Vec<WeightedUtxo>,
-//!         optional_utxos: Vec<WeightedUtxo>,
-//!         fee_rate: FeeRate,
-//!         amount_needed: u64,
-//!         fee_amount: u64,
-//!     ) -> Result<CoinSelectionResult, bdk::Error> {
-//!         let mut selected_amount = 0;
-//!         let mut additional_weight = 0;
-//!         let all_utxos_selected = required_utxos
-//!             .into_iter()
-//!             .chain(optional_utxos)
-//!             .scan(
-//!                 (&mut selected_amount, &mut additional_weight),
-//!                 |(selected_amount, additional_weight), weighted_utxo| {
-//!                     **selected_amount += weighted_utxo.utxo.txout().value;
-//!                     **additional_weight += TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight;
-//!                     Some(weighted_utxo.utxo)
-//!                 },
-//!             )
-//!             .collect::<Vec<_>>();
-//!         let additional_fees = fee_rate.fee_wu(additional_weight);
-//!         let amount_needed_with_fees = (fee_amount + additional_fees) + amount_needed;
-//!         if amount_needed_with_fees > selected_amount {
-//!             return Err(bdk::Error::InsufficientFunds {
-//!                 needed: amount_needed_with_fees,
-//!                 available: selected_amount,
-//!             });
-//!         }
-//!
-//!         Ok(CoinSelectionResult {
-//!             selected: all_utxos_selected,
-//!             fee_amount: fee_amount + additional_fees,
-//!         })
-//!     }
-//! }
-//!
-//! # let wallet = doctest_wallet!();
-//! // create wallet, sync, ...
-//!
-//! let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-//! let (psbt, details) = {
-//!     let mut builder = wallet.build_tx().coin_selection(AlwaysSpendEverything);
-//!     builder.add_recipient(to_address.script_pubkey(), 50_000);
-//!     builder.finish()?
-//! };
-//!
-//! // inspect, sign, broadcast, ...
-//!
-//! # Ok::<(), bdk::Error>(())
-//! ```
-
-use crate::types::FeeRate;
-use crate::{database::Database, WeightedUtxo};
-use crate::{error::Error, Utxo};
-
-use rand::seq::SliceRandom;
-#[cfg(not(test))]
-use rand::thread_rng;
-#[cfg(test)]
-use rand::{rngs::StdRng, SeedableRng};
-use std::convert::TryInto;
-
-/// Default coin selection algorithm used by [`TxBuilder`](super::tx_builder::TxBuilder) if not
-/// overridden
-#[cfg(not(test))]
-pub type DefaultCoinSelectionAlgorithm = BranchAndBoundCoinSelection;
-#[cfg(test)]
-pub type DefaultCoinSelectionAlgorithm = LargestFirstCoinSelection; // make the tests more predictable
-
-// Base weight of a Txin, not counting the weight needed for satisfying it.
-// prev_txid (32 bytes) + prev_vout (4 bytes) + sequence (4 bytes) + script_len (1 bytes)
-pub(crate) const TXIN_BASE_WEIGHT: usize = (32 + 4 + 4 + 1) * 4;
-
-/// Result of a successful coin selection
-#[derive(Debug)]
-pub struct CoinSelectionResult {
-    /// List of outputs selected for use as inputs
-    pub selected: Vec<Utxo>,
-    /// Total fee amount in satoshi
-    pub fee_amount: u64,
-}
-
-impl CoinSelectionResult {
-    /// The total value of the inputs selected.
-    pub fn selected_amount(&self) -> u64 {
-        self.selected.iter().map(|u| u.txout().value).sum()
-    }
-
-    /// The total value of the inputs selected from the local wallet.
-    pub fn local_selected_amount(&self) -> u64 {
-        self.selected
-            .iter()
-            .filter_map(|u| match u {
-                Utxo::Local(_) => Some(u.txout().value),
-                _ => None,
-            })
-            .sum()
-    }
-}
-
-/// Trait for generalized coin selection algorithms
-///
-/// This trait can be implemented to make the [`Wallet`](super::Wallet) use a customized coin
-/// selection algorithm when it creates transactions.
-///
-/// For an example see [this module](crate::wallet::coin_selection)'s documentation.
-pub trait CoinSelectionAlgorithm<D: Database>: std::fmt::Debug {
-    /// Perform the coin selection
-    ///
-    /// - `database`: a reference to the wallet's database that can be used to lookup additional
-    ///               details for a specific UTXO
-    /// - `required_utxos`: the utxos that must be spent regardless of `amount_needed` with their
-    ///                     weight cost
-    /// - `optional_utxos`: the remaining available utxos to satisfy `amount_needed` with their
-    ///                     weight cost
-    /// - `fee_rate`: fee rate to use
-    /// - `amount_needed`: the amount in satoshi to select
-    /// - `fee_amount`: the amount of fees in satoshi already accumulated from adding outputs and
-    ///                 the transaction's header
-    fn coin_select(
-        &self,
-        database: &D,
-        required_utxos: Vec<WeightedUtxo>,
-        optional_utxos: Vec<WeightedUtxo>,
-        fee_rate: FeeRate,
-        amount_needed: u64,
-        fee_amount: u64,
-    ) -> Result<CoinSelectionResult, Error>;
-}
-
-/// Simple and dumb coin selection
-///
-/// This coin selection algorithm sorts the available UTXOs by value and then picks them starting
-/// from the largest ones until the required amount is reached.
-#[derive(Debug, Default, Clone, Copy)]
-pub struct LargestFirstCoinSelection;
-
-impl<D: Database> CoinSelectionAlgorithm<D> for LargestFirstCoinSelection {
-    fn coin_select(
-        &self,
-        _database: &D,
-        required_utxos: Vec<WeightedUtxo>,
-        mut optional_utxos: Vec<WeightedUtxo>,
-        fee_rate: FeeRate,
-        amount_needed: u64,
-        mut fee_amount: u64,
-    ) -> Result<CoinSelectionResult, Error> {
-        log::debug!(
-            "amount_needed = `{}`, fee_amount = `{}`, fee_rate = `{:?}`",
-            amount_needed,
-            fee_amount,
-            fee_rate
-        );
-
-        // We put the "required UTXOs" first and make sure the optional UTXOs are sorted,
-        // initially smallest to largest, before being reversed with `.rev()`.
-        let utxos = {
-            optional_utxos.sort_unstable_by_key(|wu| wu.utxo.txout().value);
-            required_utxos
-                .into_iter()
-                .map(|utxo| (true, utxo))
-                .chain(optional_utxos.into_iter().rev().map(|utxo| (false, utxo)))
-        };
-
-        // Keep including inputs until we've got enough.
-        // Store the total input value in selected_amount and the total fee being paid in fee_amount
-        let mut selected_amount = 0;
-        let selected = utxos
-            .scan(
-                (&mut selected_amount, &mut fee_amount),
-                |(selected_amount, fee_amount), (must_use, weighted_utxo)| {
-                    if must_use || **selected_amount < amount_needed + **fee_amount {
-                        **fee_amount +=
-                            fee_rate.fee_wu(TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight);
-                        **selected_amount += weighted_utxo.utxo.txout().value;
-
-                        log::debug!(
-                            "Selected {}, updated fee_amount = `{}`",
-                            weighted_utxo.utxo.outpoint(),
-                            fee_amount
-                        );
-
-                        Some(weighted_utxo.utxo)
-                    } else {
-                        None
-                    }
-                },
-            )
-            .collect::<Vec<_>>();
-
-        let amount_needed_with_fees = amount_needed + fee_amount;
-        if selected_amount < amount_needed_with_fees {
-            return Err(Error::InsufficientFunds {
-                needed: amount_needed_with_fees,
-                available: selected_amount,
-            });
-        }
-
-        Ok(CoinSelectionResult {
-            selected,
-            fee_amount,
-        })
-    }
-}
-
-#[derive(Debug, Clone)]
-// Adds fee information to an UTXO.
-struct OutputGroup {
-    weighted_utxo: WeightedUtxo,
-    // Amount of fees for spending a certain utxo, calculated using a certain FeeRate
-    fee: u64,
-    // The effective value of the UTXO, i.e., the utxo value minus the fee for spending it
-    effective_value: i64,
-}
-
-impl OutputGroup {
-    fn new(weighted_utxo: WeightedUtxo, fee_rate: FeeRate) -> Self {
-        let fee = fee_rate.fee_wu(TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight);
-        let effective_value = weighted_utxo.utxo.txout().value as i64 - fee as i64;
-        OutputGroup {
-            weighted_utxo,
-            fee,
-            effective_value,
-        }
-    }
-}
-
-/// Branch and bound coin selection
-///
-/// Code adapted from Bitcoin Core's implementation and from Mark Erhardt Master's Thesis: <http://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf>
-#[derive(Debug)]
-pub struct BranchAndBoundCoinSelection {
-    size_of_change: u64,
-}
-
-impl Default for BranchAndBoundCoinSelection {
-    fn default() -> Self {
-        Self {
-            // P2WPKH cost of change -> value (8 bytes) + script len (1 bytes) + script (22 bytes)
-            size_of_change: 8 + 1 + 22,
-        }
-    }
-}
-
-impl BranchAndBoundCoinSelection {
-    /// Create new instance with target size for change output
-    pub fn new(size_of_change: u64) -> Self {
-        Self { size_of_change }
-    }
-}
-
-const BNB_TOTAL_TRIES: usize = 100_000;
-
-impl<D: Database> CoinSelectionAlgorithm<D> for BranchAndBoundCoinSelection {
-    fn coin_select(
-        &self,
-        _database: &D,
-        required_utxos: Vec<WeightedUtxo>,
-        optional_utxos: Vec<WeightedUtxo>,
-        fee_rate: FeeRate,
-        amount_needed: u64,
-        fee_amount: u64,
-    ) -> Result<CoinSelectionResult, Error> {
-        // Mapping every (UTXO, usize) to an output group
-        let required_utxos: Vec<OutputGroup> = required_utxos
-            .into_iter()
-            .map(|u| OutputGroup::new(u, fee_rate))
-            .collect();
-
-        // Mapping every (UTXO, usize) to an output group.
-        let optional_utxos: Vec<OutputGroup> = optional_utxos
-            .into_iter()
-            .map(|u| OutputGroup::new(u, fee_rate))
-            .collect();
-
-        let curr_value = required_utxos
-            .iter()
-            .fold(0, |acc, x| acc + x.effective_value);
-
-        let curr_available_value = optional_utxos
-            .iter()
-            .fold(0, |acc, x| acc + x.effective_value);
-
-        let actual_target = fee_amount + amount_needed;
-        let cost_of_change = self.size_of_change as f32 * fee_rate.as_sat_vb();
-
-        let expected = (curr_available_value + curr_value)
-            .try_into()
-            .map_err(|_| {
-                Error::Generic("Sum of UTXO spendable values does not fit into u64".to_string())
-            })?;
-
-        if expected < actual_target {
-            return Err(Error::InsufficientFunds {
-                needed: actual_target,
-                available: expected,
-            });
-        }
-
-        let actual_target = actual_target
-            .try_into()
-            .expect("Bitcoin amount to fit into i64");
-
-        if curr_value > actual_target {
-            return Ok(BranchAndBoundCoinSelection::calculate_cs_result(
-                vec![],
-                required_utxos,
-                fee_amount,
-            ));
-        }
-
-        Ok(self
-            .bnb(
-                required_utxos.clone(),
-                optional_utxos.clone(),
-                curr_value,
-                curr_available_value,
-                actual_target,
-                fee_amount,
-                cost_of_change,
-            )
-            .unwrap_or_else(|_| {
-                self.single_random_draw(
-                    required_utxos,
-                    optional_utxos,
-                    curr_value,
-                    actual_target,
-                    fee_amount,
-                )
-            }))
-    }
-}
-
-impl BranchAndBoundCoinSelection {
-    // TODO: make this more Rust-onic :)
-    // (And perhaps refactor with less arguments?)
-    #[allow(clippy::too_many_arguments)]
-    fn bnb(
-        &self,
-        required_utxos: Vec<OutputGroup>,
-        mut optional_utxos: Vec<OutputGroup>,
-        mut curr_value: i64,
-        mut curr_available_value: i64,
-        actual_target: i64,
-        fee_amount: u64,
-        cost_of_change: f32,
-    ) -> Result<CoinSelectionResult, Error> {
-        // current_selection[i] will contain true if we are using optional_utxos[i],
-        // false otherwise. Note that current_selection.len() could be less than
-        // optional_utxos.len(), it just means that we still haven't decided if we should keep
-        // certain optional_utxos or not.
-        let mut current_selection: Vec<bool> = Vec::with_capacity(optional_utxos.len());
-
-        // Sort the utxo_pool
-        optional_utxos.sort_unstable_by_key(|a| a.effective_value);
-        optional_utxos.reverse();
-
-        // Contains the best selection we found
-        let mut best_selection = Vec::new();
-        let mut best_selection_value = None;
-
-        // Depth First search loop for choosing the UTXOs
-        for _ in 0..BNB_TOTAL_TRIES {
-            // Conditions for starting a backtrack
-            let mut backtrack = false;
-            // Cannot possibly reach target with the amount remaining in the curr_available_value,
-            // or the selected value is out of range.
-            // Go back and try other branch
-            if curr_value + curr_available_value < actual_target
-                || curr_value > actual_target + cost_of_change as i64
-            {
-                backtrack = true;
-            } else if curr_value >= actual_target {
-                // Selected value is within range, there's no point in going forward. Start
-                // backtracking
-                backtrack = true;
-
-                // If we found a solution better than the previous one, or if there wasn't previous
-                // solution, update the best solution
-                if best_selection_value.is_none() || curr_value < best_selection_value.unwrap() {
-                    best_selection = current_selection.clone();
-                    best_selection_value = Some(curr_value);
-                }
-
-                // If we found a perfect match, break here
-                if curr_value == actual_target {
-                    break;
-                }
-            }
-
-            // Backtracking, moving backwards
-            if backtrack {
-                // Walk backwards to find the last included UTXO that still needs to have its omission branch traversed.
-                while let Some(false) = current_selection.last() {
-                    current_selection.pop();
-                    curr_available_value += optional_utxos[current_selection.len()].effective_value;
-                }
-
-                if current_selection.last_mut().is_none() {
-                    // We have walked back to the first utxo and no branch is untraversed. All solutions searched
-                    // If best selection is empty, then there's no exact match
-                    if best_selection.is_empty() {
-                        return Err(Error::BnBNoExactMatch);
-                    }
-                    break;
-                }
-
-                if let Some(c) = current_selection.last_mut() {
-                    // Output was included on previous iterations, try excluding now.
-                    *c = false;
-                }
-
-                let utxo = &optional_utxos[current_selection.len() - 1];
-                curr_value -= utxo.effective_value;
-            } else {
-                // Moving forwards, continuing down this branch
-                let utxo = &optional_utxos[current_selection.len()];
-
-                // Remove this utxo from the curr_available_value utxo amount
-                curr_available_value -= utxo.effective_value;
-
-                // Inclusion branch first (Largest First Exploration)
-                current_selection.push(true);
-                curr_value += utxo.effective_value;
-            }
-        }
-
-        // Check for solution
-        if best_selection.is_empty() {
-            return Err(Error::BnBTotalTriesExceeded);
-        }
-
-        // Set output set
-        let selected_utxos = optional_utxos
-            .into_iter()
-            .zip(best_selection)
-            .filter_map(|(optional, is_in_best)| if is_in_best { Some(optional) } else { None })
-            .collect();
-
-        Ok(BranchAndBoundCoinSelection::calculate_cs_result(
-            selected_utxos,
-            required_utxos,
-            fee_amount,
-        ))
-    }
-
-    fn single_random_draw(
-        &self,
-        required_utxos: Vec<OutputGroup>,
-        mut optional_utxos: Vec<OutputGroup>,
-        curr_value: i64,
-        actual_target: i64,
-        fee_amount: u64,
-    ) -> CoinSelectionResult {
-        #[cfg(not(test))]
-        optional_utxos.shuffle(&mut thread_rng());
-        #[cfg(test)]
-        {
-            let seed = [0; 32];
-            let mut rng: StdRng = SeedableRng::from_seed(seed);
-            optional_utxos.shuffle(&mut rng);
-        }
-
-        let selected_utxos = optional_utxos
-            .into_iter()
-            .scan(curr_value, |curr_value, utxo| {
-                if *curr_value >= actual_target {
-                    None
-                } else {
-                    *curr_value += utxo.effective_value;
-                    Some(utxo)
-                }
-            })
-            .collect::<Vec<_>>();
-
-        BranchAndBoundCoinSelection::calculate_cs_result(selected_utxos, required_utxos, fee_amount)
-    }
-
-    fn calculate_cs_result(
-        mut selected_utxos: Vec<OutputGroup>,
-        mut required_utxos: Vec<OutputGroup>,
-        mut fee_amount: u64,
-    ) -> CoinSelectionResult {
-        selected_utxos.append(&mut required_utxos);
-        fee_amount += selected_utxos.iter().map(|u| u.fee).sum::<u64>();
-        let selected = selected_utxos
-            .into_iter()
-            .map(|u| u.weighted_utxo.utxo)
-            .collect::<Vec<_>>();
-
-        CoinSelectionResult {
-            selected,
-            fee_amount,
-        }
-    }
-}
-
-#[cfg(test)]
-mod test {
-    use std::str::FromStr;
-
-    use bitcoin::{OutPoint, Script, TxOut};
-
-    use super::*;
-    use crate::database::MemoryDatabase;
-    use crate::types::*;
-    use crate::wallet::Vbytes;
-
-    use rand::rngs::StdRng;
-    use rand::seq::SliceRandom;
-    use rand::{Rng, SeedableRng};
-
-    const P2WPKH_WITNESS_SIZE: usize = 73 + 33 + 2;
-
-    const FEE_AMOUNT: u64 = 50;
-
-    fn utxo(value: u64, index: u32) -> WeightedUtxo {
-        assert!(index < 10);
-        let outpoint = OutPoint::from_str(&format!(
-            "000000000000000000000000000000000000000000000000000000000000000{}:0",
-            index
-        ))
-        .unwrap();
-        WeightedUtxo {
-            satisfaction_weight: P2WPKH_WITNESS_SIZE,
-            utxo: Utxo::Local(LocalUtxo {
-                outpoint,
-                txout: TxOut {
-                    value,
-                    script_pubkey: Script::new(),
-                },
-                keychain: KeychainKind::External,
-            }),
-        }
-    }
-
-    fn get_test_utxos() -> Vec<WeightedUtxo> {
-        vec![
-            utxo(100_000, 0),
-            utxo(FEE_AMOUNT as u64 - 40, 1),
-            utxo(200_000, 2),
-        ]
-    }
-
-    fn generate_random_utxos(rng: &mut StdRng, utxos_number: usize) -> Vec<WeightedUtxo> {
-        let mut res = Vec::new();
-        for _ in 0..utxos_number {
-            res.push(WeightedUtxo {
-                satisfaction_weight: P2WPKH_WITNESS_SIZE,
-                utxo: Utxo::Local(LocalUtxo {
-                    outpoint: OutPoint::from_str(
-                        "ebd9813ecebc57ff8f30797de7c205e3c7498ca950ea4341ee51a685ff2fa30a:0",
-                    )
-                    .unwrap(),
-                    txout: TxOut {
-                        value: rng.gen_range(0, 200000000),
-                        script_pubkey: Script::new(),
-                    },
-                    keychain: KeychainKind::External,
-                }),
-            });
-        }
-        res
-    }
-
-    fn generate_same_value_utxos(utxos_value: u64, utxos_number: usize) -> Vec<WeightedUtxo> {
-        let utxo = WeightedUtxo {
-            satisfaction_weight: P2WPKH_WITNESS_SIZE,
-            utxo: Utxo::Local(LocalUtxo {
-                outpoint: OutPoint::from_str(
-                    "ebd9813ecebc57ff8f30797de7c205e3c7498ca950ea4341ee51a685ff2fa30a:0",
-                )
-                .unwrap(),
-                txout: TxOut {
-                    value: utxos_value,
-                    script_pubkey: Script::new(),
-                },
-                keychain: KeychainKind::External,
-            }),
-        };
-        vec![utxo; utxos_number]
-    }
-
-    fn sum_random_utxos(mut rng: &mut StdRng, utxos: &mut Vec<WeightedUtxo>) -> u64 {
-        let utxos_picked_len = rng.gen_range(2, utxos.len() / 2);
-        utxos.shuffle(&mut rng);
-        utxos[..utxos_picked_len]
-            .iter()
-            .map(|u| u.utxo.txout().value)
-            .sum()
-    }
-
-    #[test]
-    fn test_largest_first_coin_selection_success() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        let result = LargestFirstCoinSelection::default()
-            .coin_select(
-                &database,
-                utxos,
-                vec![],
-                FeeRate::from_sat_per_vb(1.0),
-                250_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-
-        assert_eq!(result.selected.len(), 3);
-        assert_eq!(result.selected_amount(), 300_010);
-        assert_eq!(result.fee_amount, 254)
-    }
-
-    #[test]
-    fn test_largest_first_coin_selection_use_all() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        let result = LargestFirstCoinSelection::default()
-            .coin_select(
-                &database,
-                utxos,
-                vec![],
-                FeeRate::from_sat_per_vb(1.0),
-                20_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-
-        assert_eq!(result.selected.len(), 3);
-        assert_eq!(result.selected_amount(), 300_010);
-        assert_eq!(result.fee_amount, 254);
-    }
-
-    #[test]
-    fn test_largest_first_coin_selection_use_only_necessary() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        let result = LargestFirstCoinSelection::default()
-            .coin_select(
-                &database,
-                vec![],
-                utxos,
-                FeeRate::from_sat_per_vb(1.0),
-                20_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-
-        assert_eq!(result.selected.len(), 1);
-        assert_eq!(result.selected_amount(), 200_000);
-        assert_eq!(result.fee_amount, 118);
-    }
-
-    #[test]
-    #[should_panic(expected = "InsufficientFunds")]
-    fn test_largest_first_coin_selection_insufficient_funds() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        LargestFirstCoinSelection::default()
-            .coin_select(
-                &database,
-                vec![],
-                utxos,
-                FeeRate::from_sat_per_vb(1.0),
-                500_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "InsufficientFunds")]
-    fn test_largest_first_coin_selection_insufficient_funds_high_fees() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        LargestFirstCoinSelection::default()
-            .coin_select(
-                &database,
-                vec![],
-                utxos,
-                FeeRate::from_sat_per_vb(1000.0),
-                250_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-    }
-
-    #[test]
-    fn test_bnb_coin_selection_success() {
-        // In this case bnb won't find a suitable match and single random draw will
-        // select three outputs
-        let utxos = generate_same_value_utxos(100_000, 20);
-
-        let database = MemoryDatabase::default();
-
-        let result = BranchAndBoundCoinSelection::default()
-            .coin_select(
-                &database,
-                vec![],
-                utxos,
-                FeeRate::from_sat_per_vb(1.0),
-                250_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-
-        assert_eq!(result.selected.len(), 3);
-        assert_eq!(result.selected_amount(), 300_000);
-        assert_eq!(result.fee_amount, 254);
-    }
-
-    #[test]
-    fn test_bnb_coin_selection_required_are_enough() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        let result = BranchAndBoundCoinSelection::default()
-            .coin_select(
-                &database,
-                utxos.clone(),
-                utxos,
-                FeeRate::from_sat_per_vb(1.0),
-                20_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-
-        assert_eq!(result.selected.len(), 3);
-        assert_eq!(result.selected_amount(), 300_010);
-        assert_eq!(result.fee_amount, 254);
-    }
-
-    #[test]
-    fn test_bnb_coin_selection_optional_are_enough() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        let result = BranchAndBoundCoinSelection::default()
-            .coin_select(
-                &database,
-                vec![],
-                utxos,
-                FeeRate::from_sat_per_vb(1.0),
-                299756,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-
-        assert_eq!(result.selected.len(), 3);
-        assert_eq!(result.selected_amount(), 300010);
-        assert_eq!(result.fee_amount, 254);
-    }
-
-    #[test]
-    fn test_bnb_coin_selection_required_not_enough() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        let required = vec![utxos[0].clone()];
-        let mut optional = utxos[1..].to_vec();
-        optional.push(utxo(500_000, 3));
-
-        // Defensive assertions, for sanity and in case someone changes the test utxos vector.
-        let amount: u64 = required.iter().map(|u| u.utxo.txout().value).sum();
-        assert_eq!(amount, 100_000);
-        let amount: u64 = optional.iter().map(|u| u.utxo.txout().value).sum();
-        assert!(amount > 150_000);
-
-        let result = BranchAndBoundCoinSelection::default()
-            .coin_select(
-                &database,
-                required,
-                optional,
-                FeeRate::from_sat_per_vb(1.0),
-                150_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-
-        assert_eq!(result.selected.len(), 3);
-        assert_eq!(result.selected_amount(), 300_010);
-        assert!((result.fee_amount as f32 - 254.0).abs() < f32::EPSILON);
-    }
-
-    #[test]
-    #[should_panic(expected = "InsufficientFunds")]
-    fn test_bnb_coin_selection_insufficient_funds() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        BranchAndBoundCoinSelection::default()
-            .coin_select(
-                &database,
-                vec![],
-                utxos,
-                FeeRate::from_sat_per_vb(1.0),
-                500_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "InsufficientFunds")]
-    fn test_bnb_coin_selection_insufficient_funds_high_fees() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        BranchAndBoundCoinSelection::default()
-            .coin_select(
-                &database,
-                vec![],
-                utxos,
-                FeeRate::from_sat_per_vb(1000.0),
-                250_000,
-                FEE_AMOUNT,
-            )
-            .unwrap();
-    }
-
-    #[test]
-    fn test_bnb_coin_selection_check_fee_rate() {
-        let utxos = get_test_utxos();
-        let database = MemoryDatabase::default();
-
-        let result = BranchAndBoundCoinSelection::new(0)
-            .coin_select(
-                &database,
-                vec![],
-                utxos,
-                FeeRate::from_sat_per_vb(1.0),
-                99932, // first utxo's effective value
-                0,
-            )
-            .unwrap();
-
-        assert_eq!(result.selected.len(), 1);
-        assert_eq!(result.selected_amount(), 100_000);
-        let input_size = (TXIN_BASE_WEIGHT + P2WPKH_WITNESS_SIZE).vbytes();
-        let epsilon = 0.5;
-        assert!((1.0 - (result.fee_amount as f32 / input_size as f32)).abs() < epsilon);
-    }
-
-    #[test]
-    fn test_bnb_coin_selection_exact_match() {
-        let seed = [0; 32];
-        let mut rng: StdRng = SeedableRng::from_seed(seed);
-        let database = MemoryDatabase::default();
-
-        for _i in 0..200 {
-            let mut optional_utxos = generate_random_utxos(&mut rng, 16);
-            let target_amount = sum_random_utxos(&mut rng, &mut optional_utxos);
-            let result = BranchAndBoundCoinSelection::new(0)
-                .coin_select(
-                    &database,
-                    vec![],
-                    optional_utxos,
-                    FeeRate::from_sat_per_vb(0.0),
-                    target_amount,
-                    0,
-                )
-                .unwrap();
-            assert_eq!(result.selected_amount(), target_amount);
-        }
-    }
-
-    #[test]
-    #[should_panic(expected = "BnBNoExactMatch")]
-    fn test_bnb_function_no_exact_match() {
-        let fee_rate = FeeRate::from_sat_per_vb(10.0);
-        let utxos: Vec<OutputGroup> = get_test_utxos()
-            .into_iter()
-            .map(|u| OutputGroup::new(u, fee_rate))
-            .collect();
-
-        let curr_available_value = utxos.iter().fold(0, |acc, x| acc + x.effective_value);
-
-        let size_of_change = 31;
-        let cost_of_change = size_of_change as f32 * fee_rate.as_sat_vb();
-        BranchAndBoundCoinSelection::new(size_of_change)
-            .bnb(
-                vec![],
-                utxos,
-                0,
-                curr_available_value,
-                20_000,
-                FEE_AMOUNT,
-                cost_of_change,
-            )
-            .unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "BnBTotalTriesExceeded")]
-    fn test_bnb_function_tries_exceeded() {
-        let fee_rate = FeeRate::from_sat_per_vb(10.0);
-        let utxos: Vec<OutputGroup> = generate_same_value_utxos(100_000, 100_000)
-            .into_iter()
-            .map(|u| OutputGroup::new(u, fee_rate))
-            .collect();
-
-        let curr_available_value = utxos.iter().fold(0, |acc, x| acc + x.effective_value);
-
-        let size_of_change = 31;
-        let cost_of_change = size_of_change as f32 * fee_rate.as_sat_vb();
-
-        BranchAndBoundCoinSelection::new(size_of_change)
-            .bnb(
-                vec![],
-                utxos,
-                0,
-                curr_available_value,
-                20_000,
-                FEE_AMOUNT,
-                cost_of_change,
-            )
-            .unwrap();
-    }
-
-    // The match won't be exact but still in the range
-    #[test]
-    fn test_bnb_function_almost_exact_match_with_fees() {
-        let fee_rate = FeeRate::from_sat_per_vb(1.0);
-        let size_of_change = 31;
-        let cost_of_change = size_of_change as f32 * fee_rate.as_sat_vb();
-
-        let utxos: Vec<_> = generate_same_value_utxos(50_000, 10)
-            .into_iter()
-            .map(|u| OutputGroup::new(u, fee_rate))
-            .collect();
-
-        let curr_value = 0;
-
-        let curr_available_value = utxos.iter().fold(0, |acc, x| acc + x.effective_value);
-
-        // 2*(value of 1 utxo)  - 2*(1 utxo fees with 1.0sat/vbyte fee rate) -
-        // cost_of_change + 5.
-        let target_amount = 2 * 50_000 - 2 * 67 - cost_of_change.ceil() as i64 + 5;
-
-        let result = BranchAndBoundCoinSelection::new(size_of_change)
-            .bnb(
-                vec![],
-                utxos,
-                curr_value,
-                curr_available_value,
-                target_amount,
-                FEE_AMOUNT,
-                cost_of_change,
-            )
-            .unwrap();
-        assert_eq!(result.selected_amount(), 100_000);
-        assert_eq!(result.fee_amount, 186);
-    }
-
-    // TODO: bnb() function should be optimized, and this test should be done with more utxos
-    #[test]
-    fn test_bnb_function_exact_match_more_utxos() {
-        let seed = [0; 32];
-        let mut rng: StdRng = SeedableRng::from_seed(seed);
-        let fee_rate = FeeRate::from_sat_per_vb(0.0);
-
-        for _ in 0..200 {
-            let optional_utxos: Vec<_> = generate_random_utxos(&mut rng, 40)
-                .into_iter()
-                .map(|u| OutputGroup::new(u, fee_rate))
-                .collect();
-
-            let curr_value = 0;
-
-            let curr_available_value = optional_utxos
-                .iter()
-                .fold(0, |acc, x| acc + x.effective_value);
-
-            let target_amount =
-                optional_utxos[3].effective_value + optional_utxos[23].effective_value;
-
-            let result = BranchAndBoundCoinSelection::new(0)
-                .bnb(
-                    vec![],
-                    optional_utxos,
-                    curr_value,
-                    curr_available_value,
-                    target_amount,
-                    0,
-                    0.0,
-                )
-                .unwrap();
-            assert_eq!(result.selected_amount(), target_amount as u64);
-        }
-    }
-
-    #[test]
-    fn test_single_random_draw_function_success() {
-        let seed = [0; 32];
-        let mut rng: StdRng = SeedableRng::from_seed(seed);
-        let mut utxos = generate_random_utxos(&mut rng, 300);
-        let target_amount = sum_random_utxos(&mut rng, &mut utxos);
-
-        let fee_rate = FeeRate::from_sat_per_vb(1.0);
-        let utxos: Vec<OutputGroup> = utxos
-            .into_iter()
-            .map(|u| OutputGroup::new(u, fee_rate))
-            .collect();
-
-        let result = BranchAndBoundCoinSelection::default().single_random_draw(
-            vec![],
-            utxos,
-            0,
-            target_amount as i64,
-            FEE_AMOUNT,
-        );
-
-        assert!(result.selected_amount() > target_amount);
-        assert_eq!(result.fee_amount, (50 + result.selected.len() * 68) as u64);
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/export.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/export.rs.html deleted file mode 100644 index 6886ac171b..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/export.rs.html +++ /dev/null @@ -1,707 +0,0 @@ -export.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Wallet export
-//!
-//! This modules implements the wallet export format used by [FullyNoded](https://github.com/Fonta1n3/FullyNoded/blob/10b7808c8b929b171cca537fb50522d015168ac9/Docs/Wallets/Wallet-Export-Spec.md).
-//!
-//! ## Examples
-//!
-//! ### Import from JSON
-//!
-//! ```
-//! # use std::str::FromStr;
-//! # use bitcoin::*;
-//! # use bdk::database::*;
-//! # use bdk::wallet::export::*;
-//! # use bdk::*;
-//! let import = r#"{
-//!     "descriptor": "wpkh([c258d2e4\/84h\/1h\/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe\/0\/*)",
-//!     "blockheight":1782088,
-//!     "label":"testnet"
-//! }"#;
-//!
-//! let import = WalletExport::from_str(import)?;
-//! let wallet = Wallet::new_offline(
-//!     &import.descriptor(),
-//!     import.change_descriptor().as_ref(),
-//!     Network::Testnet,
-//!     MemoryDatabase::default(),
-//! )?;
-//! # Ok::<_, bdk::Error>(())
-//! ```
-//!
-//! ### Export a `Wallet`
-//! ```
-//! # use bitcoin::*;
-//! # use bdk::database::*;
-//! # use bdk::wallet::export::*;
-//! # use bdk::*;
-//! let wallet = Wallet::new_offline(
-//!     "wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/0/*)",
-//!     Some("wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/1/*)"),
-//!     Network::Testnet,
-//!     MemoryDatabase::default()
-//! )?;
-//! let export = WalletExport::export_wallet(&wallet, "exported wallet", true)
-//!     .map_err(ToString::to_string)
-//!     .map_err(bdk::Error::Generic)?;
-//!
-//! println!("Exported: {}", export.to_string());
-//! # Ok::<_, bdk::Error>(())
-//! ```
-
-use std::str::FromStr;
-
-use serde::{Deserialize, Serialize};
-
-use miniscript::descriptor::{ShInner, WshInner};
-use miniscript::{Descriptor, DescriptorPublicKey, ScriptContext, Terminal};
-
-use crate::database::BatchDatabase;
-use crate::wallet::Wallet;
-
-/// Structure that contains the export of a wallet
-///
-/// For a usage example see [this module](crate::wallet::export)'s documentation.
-#[derive(Debug, Serialize, Deserialize)]
-pub struct WalletExport {
-    descriptor: String,
-    /// Earliest block to rescan when looking for the wallet's transactions
-    pub blockheight: u32,
-    /// Arbitrary label for the wallet
-    pub label: String,
-}
-
-impl ToString for WalletExport {
-    fn to_string(&self) -> String {
-        serde_json::to_string(self).unwrap()
-    }
-}
-
-impl FromStr for WalletExport {
-    type Err = serde_json::Error;
-
-    fn from_str(s: &str) -> Result<Self, Self::Err> {
-        serde_json::from_str(s)
-    }
-}
-
-fn remove_checksum(s: String) -> String {
-    s.splitn(2, '#').next().map(String::from).unwrap()
-}
-
-impl WalletExport {
-    /// Export a wallet
-    ///
-    /// This function returns an error if it determines that the `wallet`'s descriptor(s) are not
-    /// supported by Bitcoin Core or don't follow the standard derivation paths defined by BIP44
-    /// and others.
-    ///
-    /// If `include_blockheight` is `true`, this function will look into the `wallet`'s database
-    /// for the oldest transaction it knows and use that as the earliest block to rescan.
-    ///
-    /// If the database is empty or `include_blockheight` is false, the `blockheight` field
-    /// returned will be `0`.
-    pub fn export_wallet<B, D: BatchDatabase>(
-        wallet: &Wallet<B, D>,
-        label: &str,
-        include_blockheight: bool,
-    ) -> Result<Self, &'static str> {
-        let descriptor = wallet
-            .descriptor
-            .to_string_with_secret(&wallet.signers.as_key_map(wallet.secp_ctx()));
-        let descriptor = remove_checksum(descriptor);
-        Self::is_compatible_with_core(&descriptor)?;
-
-        let blockheight = match wallet.database.borrow().iter_txs(false) {
-            _ if !include_blockheight => 0,
-            Err(_) => 0,
-            Ok(txs) => {
-                let mut heights = txs
-                    .into_iter()
-                    .map(|tx| tx.confirmation_time.map(|c| c.height).unwrap_or(0))
-                    .collect::<Vec<_>>();
-                heights.sort_unstable();
-
-                *heights.last().unwrap_or(&0)
-            }
-        };
-
-        let export = WalletExport {
-            descriptor,
-            label: label.into(),
-            blockheight,
-        };
-
-        let desc_to_string = |d: &Descriptor<DescriptorPublicKey>| {
-            let descriptor =
-                d.to_string_with_secret(&wallet.change_signers.as_key_map(wallet.secp_ctx()));
-            remove_checksum(descriptor)
-        };
-        if export.change_descriptor() != wallet.change_descriptor.as_ref().map(desc_to_string) {
-            return Err("Incompatible change descriptor");
-        }
-
-        Ok(export)
-    }
-
-    fn is_compatible_with_core(descriptor: &str) -> Result<(), &'static str> {
-        fn check_ms<Ctx: ScriptContext>(
-            terminal: &Terminal<String, Ctx>,
-        ) -> Result<(), &'static str> {
-            if let Terminal::Multi(_, _) = terminal {
-                Ok(())
-            } else {
-                Err("The descriptor contains operators not supported by Bitcoin Core")
-            }
-        }
-
-        // pkh(), wpkh(), sh(wpkh()) are always fine, as well as multi() and sortedmulti()
-        match Descriptor::<String>::from_str(descriptor).map_err(|_| "Invalid descriptor")? {
-            Descriptor::Pkh(_) | Descriptor::Wpkh(_) => Ok(()),
-            Descriptor::Sh(sh) => match sh.as_inner() {
-                ShInner::Wpkh(_) => Ok(()),
-                ShInner::SortedMulti(_) => Ok(()),
-                ShInner::Wsh(wsh) => match wsh.as_inner() {
-                    WshInner::SortedMulti(_) => Ok(()),
-                    WshInner::Ms(ms) => check_ms(&ms.node),
-                },
-                ShInner::Ms(ms) => check_ms(&ms.node),
-            },
-            Descriptor::Wsh(wsh) => match wsh.as_inner() {
-                WshInner::SortedMulti(_) => Ok(()),
-                WshInner::Ms(ms) => check_ms(&ms.node),
-            },
-            _ => Err("The descriptor is not compatible with Bitcoin Core"),
-        }
-    }
-
-    /// Return the external descriptor
-    pub fn descriptor(&self) -> String {
-        self.descriptor.clone()
-    }
-
-    /// Return the internal descriptor, if present
-    pub fn change_descriptor(&self) -> Option<String> {
-        let replaced = self.descriptor.replace("/0/*", "/1/*");
-
-        if replaced != self.descriptor {
-            Some(replaced)
-        } else {
-            None
-        }
-    }
-}
-
-#[cfg(test)]
-mod test {
-    use std::str::FromStr;
-
-    use bitcoin::{Network, Txid};
-
-    use super::*;
-    use crate::database::{memory::MemoryDatabase, BatchOperations};
-    use crate::types::TransactionDetails;
-    use crate::wallet::Wallet;
-    use crate::BlockTime;
-
-    fn get_test_db() -> MemoryDatabase {
-        let mut db = MemoryDatabase::new();
-        db.set_tx(&TransactionDetails {
-            transaction: None,
-            txid: Txid::from_str(
-                "4ddff1fa33af17f377f62b72357b43107c19110a8009b36fb832af505efed98a",
-            )
-            .unwrap(),
-
-            received: 100_000,
-            sent: 0,
-            fee: Some(500),
-            confirmation_time: Some(BlockTime {
-                timestamp: 12345678,
-                height: 5000,
-            }),
-            verified: true,
-        })
-        .unwrap();
-
-        db
-    }
-
-    #[test]
-    fn test_export_bip44() {
-        let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)";
-        let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)";
-
-        let wallet = Wallet::new_offline(
-            descriptor,
-            Some(change_descriptor),
-            Network::Bitcoin,
-            get_test_db(),
-        )
-        .unwrap();
-        let export = WalletExport::export_wallet(&wallet, "Test Label", true).unwrap();
-
-        assert_eq!(export.descriptor(), descriptor);
-        assert_eq!(export.change_descriptor(), Some(change_descriptor.into()));
-        assert_eq!(export.blockheight, 5000);
-        assert_eq!(export.label, "Test Label");
-    }
-
-    #[test]
-    #[should_panic(expected = "Incompatible change descriptor")]
-    fn test_export_no_change() {
-        // This wallet explicitly doesn't have a change descriptor. It should be impossible to
-        // export, because exporting this kind of external descriptor normally implies the
-        // existence of an internal descriptor
-
-        let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)";
-
-        let wallet =
-            Wallet::new_offline(descriptor, None, Network::Bitcoin, get_test_db()).unwrap();
-        WalletExport::export_wallet(&wallet, "Test Label", true).unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "Incompatible change descriptor")]
-    fn test_export_incompatible_change() {
-        // This wallet has a change descriptor, but the derivation path is not in the "standard"
-        // bip44/49/etc format
-
-        let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)";
-        let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/50'/0'/1/*)";
-
-        let wallet = Wallet::new_offline(
-            descriptor,
-            Some(change_descriptor),
-            Network::Bitcoin,
-            get_test_db(),
-        )
-        .unwrap();
-        WalletExport::export_wallet(&wallet, "Test Label", true).unwrap();
-    }
-
-    #[test]
-    fn test_export_multi() {
-        let descriptor = "wsh(multi(2,\
-                                [73756c7f/48'/0'/0'/2']tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3/0/*,\
-                                [f9f62194/48'/0'/0'/2']tpubDDp3ZSH1yCwusRppH7zgSxq2t1VEUyXSeEp8E5aFS8m43MknUjiF1bSLo3CGWAxbDyhF1XowA5ukPzyJZjznYk3kYi6oe7QxtX2euvKWsk4/0/*,\
-                                [c98b1535/48'/0'/0'/2']tpubDCDi5W4sP6zSnzJeowy8rQDVhBdRARaPhK1axABi8V1661wEPeanpEXj4ZLAUEoikVtoWcyK26TKKJSecSfeKxwHCcRrge9k1ybuiL71z4a/0/*\
-                          ))";
-        let change_descriptor = "wsh(multi(2,\
-                                       [73756c7f/48'/0'/0'/2']tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3/1/*,\
-                                       [f9f62194/48'/0'/0'/2']tpubDDp3ZSH1yCwusRppH7zgSxq2t1VEUyXSeEp8E5aFS8m43MknUjiF1bSLo3CGWAxbDyhF1XowA5ukPzyJZjznYk3kYi6oe7QxtX2euvKWsk4/1/*,\
-                                       [c98b1535/48'/0'/0'/2']tpubDCDi5W4sP6zSnzJeowy8rQDVhBdRARaPhK1axABi8V1661wEPeanpEXj4ZLAUEoikVtoWcyK26TKKJSecSfeKxwHCcRrge9k1ybuiL71z4a/1/*\
-                                 ))";
-
-        let wallet = Wallet::new_offline(
-            descriptor,
-            Some(change_descriptor),
-            Network::Testnet,
-            get_test_db(),
-        )
-        .unwrap();
-        let export = WalletExport::export_wallet(&wallet, "Test Label", true).unwrap();
-
-        assert_eq!(export.descriptor(), descriptor);
-        assert_eq!(export.change_descriptor(), Some(change_descriptor.into()));
-        assert_eq!(export.blockheight, 5000);
-        assert_eq!(export.label, "Test Label");
-    }
-
-    #[test]
-    fn test_export_to_json() {
-        let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)";
-        let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)";
-
-        let wallet = Wallet::new_offline(
-            descriptor,
-            Some(change_descriptor),
-            Network::Bitcoin,
-            get_test_db(),
-        )
-        .unwrap();
-        let export = WalletExport::export_wallet(&wallet, "Test Label", true).unwrap();
-
-        assert_eq!(export.to_string(), "{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}");
-    }
-
-    #[test]
-    fn test_export_from_json() {
-        let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)";
-        let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)";
-
-        let import_str = "{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}";
-        let export = WalletExport::from_str(import_str).unwrap();
-
-        assert_eq!(export.descriptor(), descriptor);
-        assert_eq!(export.change_descriptor(), Some(change_descriptor.into()));
-        assert_eq!(export.blockheight, 5000);
-        assert_eq!(export.label, "Test Label");
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html deleted file mode 100644 index 007f67c147..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html +++ /dev/null @@ -1,8079 +0,0 @@ -mod.rs - source -
   1
-   2
-   3
-   4
-   5
-   6
-   7
-   8
-   9
-  10
-  11
-  12
-  13
-  14
-  15
-  16
-  17
-  18
-  19
-  20
-  21
-  22
-  23
-  24
-  25
-  26
-  27
-  28
-  29
-  30
-  31
-  32
-  33
-  34
-  35
-  36
-  37
-  38
-  39
-  40
-  41
-  42
-  43
-  44
-  45
-  46
-  47
-  48
-  49
-  50
-  51
-  52
-  53
-  54
-  55
-  56
-  57
-  58
-  59
-  60
-  61
-  62
-  63
-  64
-  65
-  66
-  67
-  68
-  69
-  70
-  71
-  72
-  73
-  74
-  75
-  76
-  77
-  78
-  79
-  80
-  81
-  82
-  83
-  84
-  85
-  86
-  87
-  88
-  89
-  90
-  91
-  92
-  93
-  94
-  95
-  96
-  97
-  98
-  99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-1060
-1061
-1062
-1063
-1064
-1065
-1066
-1067
-1068
-1069
-1070
-1071
-1072
-1073
-1074
-1075
-1076
-1077
-1078
-1079
-1080
-1081
-1082
-1083
-1084
-1085
-1086
-1087
-1088
-1089
-1090
-1091
-1092
-1093
-1094
-1095
-1096
-1097
-1098
-1099
-1100
-1101
-1102
-1103
-1104
-1105
-1106
-1107
-1108
-1109
-1110
-1111
-1112
-1113
-1114
-1115
-1116
-1117
-1118
-1119
-1120
-1121
-1122
-1123
-1124
-1125
-1126
-1127
-1128
-1129
-1130
-1131
-1132
-1133
-1134
-1135
-1136
-1137
-1138
-1139
-1140
-1141
-1142
-1143
-1144
-1145
-1146
-1147
-1148
-1149
-1150
-1151
-1152
-1153
-1154
-1155
-1156
-1157
-1158
-1159
-1160
-1161
-1162
-1163
-1164
-1165
-1166
-1167
-1168
-1169
-1170
-1171
-1172
-1173
-1174
-1175
-1176
-1177
-1178
-1179
-1180
-1181
-1182
-1183
-1184
-1185
-1186
-1187
-1188
-1189
-1190
-1191
-1192
-1193
-1194
-1195
-1196
-1197
-1198
-1199
-1200
-1201
-1202
-1203
-1204
-1205
-1206
-1207
-1208
-1209
-1210
-1211
-1212
-1213
-1214
-1215
-1216
-1217
-1218
-1219
-1220
-1221
-1222
-1223
-1224
-1225
-1226
-1227
-1228
-1229
-1230
-1231
-1232
-1233
-1234
-1235
-1236
-1237
-1238
-1239
-1240
-1241
-1242
-1243
-1244
-1245
-1246
-1247
-1248
-1249
-1250
-1251
-1252
-1253
-1254
-1255
-1256
-1257
-1258
-1259
-1260
-1261
-1262
-1263
-1264
-1265
-1266
-1267
-1268
-1269
-1270
-1271
-1272
-1273
-1274
-1275
-1276
-1277
-1278
-1279
-1280
-1281
-1282
-1283
-1284
-1285
-1286
-1287
-1288
-1289
-1290
-1291
-1292
-1293
-1294
-1295
-1296
-1297
-1298
-1299
-1300
-1301
-1302
-1303
-1304
-1305
-1306
-1307
-1308
-1309
-1310
-1311
-1312
-1313
-1314
-1315
-1316
-1317
-1318
-1319
-1320
-1321
-1322
-1323
-1324
-1325
-1326
-1327
-1328
-1329
-1330
-1331
-1332
-1333
-1334
-1335
-1336
-1337
-1338
-1339
-1340
-1341
-1342
-1343
-1344
-1345
-1346
-1347
-1348
-1349
-1350
-1351
-1352
-1353
-1354
-1355
-1356
-1357
-1358
-1359
-1360
-1361
-1362
-1363
-1364
-1365
-1366
-1367
-1368
-1369
-1370
-1371
-1372
-1373
-1374
-1375
-1376
-1377
-1378
-1379
-1380
-1381
-1382
-1383
-1384
-1385
-1386
-1387
-1388
-1389
-1390
-1391
-1392
-1393
-1394
-1395
-1396
-1397
-1398
-1399
-1400
-1401
-1402
-1403
-1404
-1405
-1406
-1407
-1408
-1409
-1410
-1411
-1412
-1413
-1414
-1415
-1416
-1417
-1418
-1419
-1420
-1421
-1422
-1423
-1424
-1425
-1426
-1427
-1428
-1429
-1430
-1431
-1432
-1433
-1434
-1435
-1436
-1437
-1438
-1439
-1440
-1441
-1442
-1443
-1444
-1445
-1446
-1447
-1448
-1449
-1450
-1451
-1452
-1453
-1454
-1455
-1456
-1457
-1458
-1459
-1460
-1461
-1462
-1463
-1464
-1465
-1466
-1467
-1468
-1469
-1470
-1471
-1472
-1473
-1474
-1475
-1476
-1477
-1478
-1479
-1480
-1481
-1482
-1483
-1484
-1485
-1486
-1487
-1488
-1489
-1490
-1491
-1492
-1493
-1494
-1495
-1496
-1497
-1498
-1499
-1500
-1501
-1502
-1503
-1504
-1505
-1506
-1507
-1508
-1509
-1510
-1511
-1512
-1513
-1514
-1515
-1516
-1517
-1518
-1519
-1520
-1521
-1522
-1523
-1524
-1525
-1526
-1527
-1528
-1529
-1530
-1531
-1532
-1533
-1534
-1535
-1536
-1537
-1538
-1539
-1540
-1541
-1542
-1543
-1544
-1545
-1546
-1547
-1548
-1549
-1550
-1551
-1552
-1553
-1554
-1555
-1556
-1557
-1558
-1559
-1560
-1561
-1562
-1563
-1564
-1565
-1566
-1567
-1568
-1569
-1570
-1571
-1572
-1573
-1574
-1575
-1576
-1577
-1578
-1579
-1580
-1581
-1582
-1583
-1584
-1585
-1586
-1587
-1588
-1589
-1590
-1591
-1592
-1593
-1594
-1595
-1596
-1597
-1598
-1599
-1600
-1601
-1602
-1603
-1604
-1605
-1606
-1607
-1608
-1609
-1610
-1611
-1612
-1613
-1614
-1615
-1616
-1617
-1618
-1619
-1620
-1621
-1622
-1623
-1624
-1625
-1626
-1627
-1628
-1629
-1630
-1631
-1632
-1633
-1634
-1635
-1636
-1637
-1638
-1639
-1640
-1641
-1642
-1643
-1644
-1645
-1646
-1647
-1648
-1649
-1650
-1651
-1652
-1653
-1654
-1655
-1656
-1657
-1658
-1659
-1660
-1661
-1662
-1663
-1664
-1665
-1666
-1667
-1668
-1669
-1670
-1671
-1672
-1673
-1674
-1675
-1676
-1677
-1678
-1679
-1680
-1681
-1682
-1683
-1684
-1685
-1686
-1687
-1688
-1689
-1690
-1691
-1692
-1693
-1694
-1695
-1696
-1697
-1698
-1699
-1700
-1701
-1702
-1703
-1704
-1705
-1706
-1707
-1708
-1709
-1710
-1711
-1712
-1713
-1714
-1715
-1716
-1717
-1718
-1719
-1720
-1721
-1722
-1723
-1724
-1725
-1726
-1727
-1728
-1729
-1730
-1731
-1732
-1733
-1734
-1735
-1736
-1737
-1738
-1739
-1740
-1741
-1742
-1743
-1744
-1745
-1746
-1747
-1748
-1749
-1750
-1751
-1752
-1753
-1754
-1755
-1756
-1757
-1758
-1759
-1760
-1761
-1762
-1763
-1764
-1765
-1766
-1767
-1768
-1769
-1770
-1771
-1772
-1773
-1774
-1775
-1776
-1777
-1778
-1779
-1780
-1781
-1782
-1783
-1784
-1785
-1786
-1787
-1788
-1789
-1790
-1791
-1792
-1793
-1794
-1795
-1796
-1797
-1798
-1799
-1800
-1801
-1802
-1803
-1804
-1805
-1806
-1807
-1808
-1809
-1810
-1811
-1812
-1813
-1814
-1815
-1816
-1817
-1818
-1819
-1820
-1821
-1822
-1823
-1824
-1825
-1826
-1827
-1828
-1829
-1830
-1831
-1832
-1833
-1834
-1835
-1836
-1837
-1838
-1839
-1840
-1841
-1842
-1843
-1844
-1845
-1846
-1847
-1848
-1849
-1850
-1851
-1852
-1853
-1854
-1855
-1856
-1857
-1858
-1859
-1860
-1861
-1862
-1863
-1864
-1865
-1866
-1867
-1868
-1869
-1870
-1871
-1872
-1873
-1874
-1875
-1876
-1877
-1878
-1879
-1880
-1881
-1882
-1883
-1884
-1885
-1886
-1887
-1888
-1889
-1890
-1891
-1892
-1893
-1894
-1895
-1896
-1897
-1898
-1899
-1900
-1901
-1902
-1903
-1904
-1905
-1906
-1907
-1908
-1909
-1910
-1911
-1912
-1913
-1914
-1915
-1916
-1917
-1918
-1919
-1920
-1921
-1922
-1923
-1924
-1925
-1926
-1927
-1928
-1929
-1930
-1931
-1932
-1933
-1934
-1935
-1936
-1937
-1938
-1939
-1940
-1941
-1942
-1943
-1944
-1945
-1946
-1947
-1948
-1949
-1950
-1951
-1952
-1953
-1954
-1955
-1956
-1957
-1958
-1959
-1960
-1961
-1962
-1963
-1964
-1965
-1966
-1967
-1968
-1969
-1970
-1971
-1972
-1973
-1974
-1975
-1976
-1977
-1978
-1979
-1980
-1981
-1982
-1983
-1984
-1985
-1986
-1987
-1988
-1989
-1990
-1991
-1992
-1993
-1994
-1995
-1996
-1997
-1998
-1999
-2000
-2001
-2002
-2003
-2004
-2005
-2006
-2007
-2008
-2009
-2010
-2011
-2012
-2013
-2014
-2015
-2016
-2017
-2018
-2019
-2020
-2021
-2022
-2023
-2024
-2025
-2026
-2027
-2028
-2029
-2030
-2031
-2032
-2033
-2034
-2035
-2036
-2037
-2038
-2039
-2040
-2041
-2042
-2043
-2044
-2045
-2046
-2047
-2048
-2049
-2050
-2051
-2052
-2053
-2054
-2055
-2056
-2057
-2058
-2059
-2060
-2061
-2062
-2063
-2064
-2065
-2066
-2067
-2068
-2069
-2070
-2071
-2072
-2073
-2074
-2075
-2076
-2077
-2078
-2079
-2080
-2081
-2082
-2083
-2084
-2085
-2086
-2087
-2088
-2089
-2090
-2091
-2092
-2093
-2094
-2095
-2096
-2097
-2098
-2099
-2100
-2101
-2102
-2103
-2104
-2105
-2106
-2107
-2108
-2109
-2110
-2111
-2112
-2113
-2114
-2115
-2116
-2117
-2118
-2119
-2120
-2121
-2122
-2123
-2124
-2125
-2126
-2127
-2128
-2129
-2130
-2131
-2132
-2133
-2134
-2135
-2136
-2137
-2138
-2139
-2140
-2141
-2142
-2143
-2144
-2145
-2146
-2147
-2148
-2149
-2150
-2151
-2152
-2153
-2154
-2155
-2156
-2157
-2158
-2159
-2160
-2161
-2162
-2163
-2164
-2165
-2166
-2167
-2168
-2169
-2170
-2171
-2172
-2173
-2174
-2175
-2176
-2177
-2178
-2179
-2180
-2181
-2182
-2183
-2184
-2185
-2186
-2187
-2188
-2189
-2190
-2191
-2192
-2193
-2194
-2195
-2196
-2197
-2198
-2199
-2200
-2201
-2202
-2203
-2204
-2205
-2206
-2207
-2208
-2209
-2210
-2211
-2212
-2213
-2214
-2215
-2216
-2217
-2218
-2219
-2220
-2221
-2222
-2223
-2224
-2225
-2226
-2227
-2228
-2229
-2230
-2231
-2232
-2233
-2234
-2235
-2236
-2237
-2238
-2239
-2240
-2241
-2242
-2243
-2244
-2245
-2246
-2247
-2248
-2249
-2250
-2251
-2252
-2253
-2254
-2255
-2256
-2257
-2258
-2259
-2260
-2261
-2262
-2263
-2264
-2265
-2266
-2267
-2268
-2269
-2270
-2271
-2272
-2273
-2274
-2275
-2276
-2277
-2278
-2279
-2280
-2281
-2282
-2283
-2284
-2285
-2286
-2287
-2288
-2289
-2290
-2291
-2292
-2293
-2294
-2295
-2296
-2297
-2298
-2299
-2300
-2301
-2302
-2303
-2304
-2305
-2306
-2307
-2308
-2309
-2310
-2311
-2312
-2313
-2314
-2315
-2316
-2317
-2318
-2319
-2320
-2321
-2322
-2323
-2324
-2325
-2326
-2327
-2328
-2329
-2330
-2331
-2332
-2333
-2334
-2335
-2336
-2337
-2338
-2339
-2340
-2341
-2342
-2343
-2344
-2345
-2346
-2347
-2348
-2349
-2350
-2351
-2352
-2353
-2354
-2355
-2356
-2357
-2358
-2359
-2360
-2361
-2362
-2363
-2364
-2365
-2366
-2367
-2368
-2369
-2370
-2371
-2372
-2373
-2374
-2375
-2376
-2377
-2378
-2379
-2380
-2381
-2382
-2383
-2384
-2385
-2386
-2387
-2388
-2389
-2390
-2391
-2392
-2393
-2394
-2395
-2396
-2397
-2398
-2399
-2400
-2401
-2402
-2403
-2404
-2405
-2406
-2407
-2408
-2409
-2410
-2411
-2412
-2413
-2414
-2415
-2416
-2417
-2418
-2419
-2420
-2421
-2422
-2423
-2424
-2425
-2426
-2427
-2428
-2429
-2430
-2431
-2432
-2433
-2434
-2435
-2436
-2437
-2438
-2439
-2440
-2441
-2442
-2443
-2444
-2445
-2446
-2447
-2448
-2449
-2450
-2451
-2452
-2453
-2454
-2455
-2456
-2457
-2458
-2459
-2460
-2461
-2462
-2463
-2464
-2465
-2466
-2467
-2468
-2469
-2470
-2471
-2472
-2473
-2474
-2475
-2476
-2477
-2478
-2479
-2480
-2481
-2482
-2483
-2484
-2485
-2486
-2487
-2488
-2489
-2490
-2491
-2492
-2493
-2494
-2495
-2496
-2497
-2498
-2499
-2500
-2501
-2502
-2503
-2504
-2505
-2506
-2507
-2508
-2509
-2510
-2511
-2512
-2513
-2514
-2515
-2516
-2517
-2518
-2519
-2520
-2521
-2522
-2523
-2524
-2525
-2526
-2527
-2528
-2529
-2530
-2531
-2532
-2533
-2534
-2535
-2536
-2537
-2538
-2539
-2540
-2541
-2542
-2543
-2544
-2545
-2546
-2547
-2548
-2549
-2550
-2551
-2552
-2553
-2554
-2555
-2556
-2557
-2558
-2559
-2560
-2561
-2562
-2563
-2564
-2565
-2566
-2567
-2568
-2569
-2570
-2571
-2572
-2573
-2574
-2575
-2576
-2577
-2578
-2579
-2580
-2581
-2582
-2583
-2584
-2585
-2586
-2587
-2588
-2589
-2590
-2591
-2592
-2593
-2594
-2595
-2596
-2597
-2598
-2599
-2600
-2601
-2602
-2603
-2604
-2605
-2606
-2607
-2608
-2609
-2610
-2611
-2612
-2613
-2614
-2615
-2616
-2617
-2618
-2619
-2620
-2621
-2622
-2623
-2624
-2625
-2626
-2627
-2628
-2629
-2630
-2631
-2632
-2633
-2634
-2635
-2636
-2637
-2638
-2639
-2640
-2641
-2642
-2643
-2644
-2645
-2646
-2647
-2648
-2649
-2650
-2651
-2652
-2653
-2654
-2655
-2656
-2657
-2658
-2659
-2660
-2661
-2662
-2663
-2664
-2665
-2666
-2667
-2668
-2669
-2670
-2671
-2672
-2673
-2674
-2675
-2676
-2677
-2678
-2679
-2680
-2681
-2682
-2683
-2684
-2685
-2686
-2687
-2688
-2689
-2690
-2691
-2692
-2693
-2694
-2695
-2696
-2697
-2698
-2699
-2700
-2701
-2702
-2703
-2704
-2705
-2706
-2707
-2708
-2709
-2710
-2711
-2712
-2713
-2714
-2715
-2716
-2717
-2718
-2719
-2720
-2721
-2722
-2723
-2724
-2725
-2726
-2727
-2728
-2729
-2730
-2731
-2732
-2733
-2734
-2735
-2736
-2737
-2738
-2739
-2740
-2741
-2742
-2743
-2744
-2745
-2746
-2747
-2748
-2749
-2750
-2751
-2752
-2753
-2754
-2755
-2756
-2757
-2758
-2759
-2760
-2761
-2762
-2763
-2764
-2765
-2766
-2767
-2768
-2769
-2770
-2771
-2772
-2773
-2774
-2775
-2776
-2777
-2778
-2779
-2780
-2781
-2782
-2783
-2784
-2785
-2786
-2787
-2788
-2789
-2790
-2791
-2792
-2793
-2794
-2795
-2796
-2797
-2798
-2799
-2800
-2801
-2802
-2803
-2804
-2805
-2806
-2807
-2808
-2809
-2810
-2811
-2812
-2813
-2814
-2815
-2816
-2817
-2818
-2819
-2820
-2821
-2822
-2823
-2824
-2825
-2826
-2827
-2828
-2829
-2830
-2831
-2832
-2833
-2834
-2835
-2836
-2837
-2838
-2839
-2840
-2841
-2842
-2843
-2844
-2845
-2846
-2847
-2848
-2849
-2850
-2851
-2852
-2853
-2854
-2855
-2856
-2857
-2858
-2859
-2860
-2861
-2862
-2863
-2864
-2865
-2866
-2867
-2868
-2869
-2870
-2871
-2872
-2873
-2874
-2875
-2876
-2877
-2878
-2879
-2880
-2881
-2882
-2883
-2884
-2885
-2886
-2887
-2888
-2889
-2890
-2891
-2892
-2893
-2894
-2895
-2896
-2897
-2898
-2899
-2900
-2901
-2902
-2903
-2904
-2905
-2906
-2907
-2908
-2909
-2910
-2911
-2912
-2913
-2914
-2915
-2916
-2917
-2918
-2919
-2920
-2921
-2922
-2923
-2924
-2925
-2926
-2927
-2928
-2929
-2930
-2931
-2932
-2933
-2934
-2935
-2936
-2937
-2938
-2939
-2940
-2941
-2942
-2943
-2944
-2945
-2946
-2947
-2948
-2949
-2950
-2951
-2952
-2953
-2954
-2955
-2956
-2957
-2958
-2959
-2960
-2961
-2962
-2963
-2964
-2965
-2966
-2967
-2968
-2969
-2970
-2971
-2972
-2973
-2974
-2975
-2976
-2977
-2978
-2979
-2980
-2981
-2982
-2983
-2984
-2985
-2986
-2987
-2988
-2989
-2990
-2991
-2992
-2993
-2994
-2995
-2996
-2997
-2998
-2999
-3000
-3001
-3002
-3003
-3004
-3005
-3006
-3007
-3008
-3009
-3010
-3011
-3012
-3013
-3014
-3015
-3016
-3017
-3018
-3019
-3020
-3021
-3022
-3023
-3024
-3025
-3026
-3027
-3028
-3029
-3030
-3031
-3032
-3033
-3034
-3035
-3036
-3037
-3038
-3039
-3040
-3041
-3042
-3043
-3044
-3045
-3046
-3047
-3048
-3049
-3050
-3051
-3052
-3053
-3054
-3055
-3056
-3057
-3058
-3059
-3060
-3061
-3062
-3063
-3064
-3065
-3066
-3067
-3068
-3069
-3070
-3071
-3072
-3073
-3074
-3075
-3076
-3077
-3078
-3079
-3080
-3081
-3082
-3083
-3084
-3085
-3086
-3087
-3088
-3089
-3090
-3091
-3092
-3093
-3094
-3095
-3096
-3097
-3098
-3099
-3100
-3101
-3102
-3103
-3104
-3105
-3106
-3107
-3108
-3109
-3110
-3111
-3112
-3113
-3114
-3115
-3116
-3117
-3118
-3119
-3120
-3121
-3122
-3123
-3124
-3125
-3126
-3127
-3128
-3129
-3130
-3131
-3132
-3133
-3134
-3135
-3136
-3137
-3138
-3139
-3140
-3141
-3142
-3143
-3144
-3145
-3146
-3147
-3148
-3149
-3150
-3151
-3152
-3153
-3154
-3155
-3156
-3157
-3158
-3159
-3160
-3161
-3162
-3163
-3164
-3165
-3166
-3167
-3168
-3169
-3170
-3171
-3172
-3173
-3174
-3175
-3176
-3177
-3178
-3179
-3180
-3181
-3182
-3183
-3184
-3185
-3186
-3187
-3188
-3189
-3190
-3191
-3192
-3193
-3194
-3195
-3196
-3197
-3198
-3199
-3200
-3201
-3202
-3203
-3204
-3205
-3206
-3207
-3208
-3209
-3210
-3211
-3212
-3213
-3214
-3215
-3216
-3217
-3218
-3219
-3220
-3221
-3222
-3223
-3224
-3225
-3226
-3227
-3228
-3229
-3230
-3231
-3232
-3233
-3234
-3235
-3236
-3237
-3238
-3239
-3240
-3241
-3242
-3243
-3244
-3245
-3246
-3247
-3248
-3249
-3250
-3251
-3252
-3253
-3254
-3255
-3256
-3257
-3258
-3259
-3260
-3261
-3262
-3263
-3264
-3265
-3266
-3267
-3268
-3269
-3270
-3271
-3272
-3273
-3274
-3275
-3276
-3277
-3278
-3279
-3280
-3281
-3282
-3283
-3284
-3285
-3286
-3287
-3288
-3289
-3290
-3291
-3292
-3293
-3294
-3295
-3296
-3297
-3298
-3299
-3300
-3301
-3302
-3303
-3304
-3305
-3306
-3307
-3308
-3309
-3310
-3311
-3312
-3313
-3314
-3315
-3316
-3317
-3318
-3319
-3320
-3321
-3322
-3323
-3324
-3325
-3326
-3327
-3328
-3329
-3330
-3331
-3332
-3333
-3334
-3335
-3336
-3337
-3338
-3339
-3340
-3341
-3342
-3343
-3344
-3345
-3346
-3347
-3348
-3349
-3350
-3351
-3352
-3353
-3354
-3355
-3356
-3357
-3358
-3359
-3360
-3361
-3362
-3363
-3364
-3365
-3366
-3367
-3368
-3369
-3370
-3371
-3372
-3373
-3374
-3375
-3376
-3377
-3378
-3379
-3380
-3381
-3382
-3383
-3384
-3385
-3386
-3387
-3388
-3389
-3390
-3391
-3392
-3393
-3394
-3395
-3396
-3397
-3398
-3399
-3400
-3401
-3402
-3403
-3404
-3405
-3406
-3407
-3408
-3409
-3410
-3411
-3412
-3413
-3414
-3415
-3416
-3417
-3418
-3419
-3420
-3421
-3422
-3423
-3424
-3425
-3426
-3427
-3428
-3429
-3430
-3431
-3432
-3433
-3434
-3435
-3436
-3437
-3438
-3439
-3440
-3441
-3442
-3443
-3444
-3445
-3446
-3447
-3448
-3449
-3450
-3451
-3452
-3453
-3454
-3455
-3456
-3457
-3458
-3459
-3460
-3461
-3462
-3463
-3464
-3465
-3466
-3467
-3468
-3469
-3470
-3471
-3472
-3473
-3474
-3475
-3476
-3477
-3478
-3479
-3480
-3481
-3482
-3483
-3484
-3485
-3486
-3487
-3488
-3489
-3490
-3491
-3492
-3493
-3494
-3495
-3496
-3497
-3498
-3499
-3500
-3501
-3502
-3503
-3504
-3505
-3506
-3507
-3508
-3509
-3510
-3511
-3512
-3513
-3514
-3515
-3516
-3517
-3518
-3519
-3520
-3521
-3522
-3523
-3524
-3525
-3526
-3527
-3528
-3529
-3530
-3531
-3532
-3533
-3534
-3535
-3536
-3537
-3538
-3539
-3540
-3541
-3542
-3543
-3544
-3545
-3546
-3547
-3548
-3549
-3550
-3551
-3552
-3553
-3554
-3555
-3556
-3557
-3558
-3559
-3560
-3561
-3562
-3563
-3564
-3565
-3566
-3567
-3568
-3569
-3570
-3571
-3572
-3573
-3574
-3575
-3576
-3577
-3578
-3579
-3580
-3581
-3582
-3583
-3584
-3585
-3586
-3587
-3588
-3589
-3590
-3591
-3592
-3593
-3594
-3595
-3596
-3597
-3598
-3599
-3600
-3601
-3602
-3603
-3604
-3605
-3606
-3607
-3608
-3609
-3610
-3611
-3612
-3613
-3614
-3615
-3616
-3617
-3618
-3619
-3620
-3621
-3622
-3623
-3624
-3625
-3626
-3627
-3628
-3629
-3630
-3631
-3632
-3633
-3634
-3635
-3636
-3637
-3638
-3639
-3640
-3641
-3642
-3643
-3644
-3645
-3646
-3647
-3648
-3649
-3650
-3651
-3652
-3653
-3654
-3655
-3656
-3657
-3658
-3659
-3660
-3661
-3662
-3663
-3664
-3665
-3666
-3667
-3668
-3669
-3670
-3671
-3672
-3673
-3674
-3675
-3676
-3677
-3678
-3679
-3680
-3681
-3682
-3683
-3684
-3685
-3686
-3687
-3688
-3689
-3690
-3691
-3692
-3693
-3694
-3695
-3696
-3697
-3698
-3699
-3700
-3701
-3702
-3703
-3704
-3705
-3706
-3707
-3708
-3709
-3710
-3711
-3712
-3713
-3714
-3715
-3716
-3717
-3718
-3719
-3720
-3721
-3722
-3723
-3724
-3725
-3726
-3727
-3728
-3729
-3730
-3731
-3732
-3733
-3734
-3735
-3736
-3737
-3738
-3739
-3740
-3741
-3742
-3743
-3744
-3745
-3746
-3747
-3748
-3749
-3750
-3751
-3752
-3753
-3754
-3755
-3756
-3757
-3758
-3759
-3760
-3761
-3762
-3763
-3764
-3765
-3766
-3767
-3768
-3769
-3770
-3771
-3772
-3773
-3774
-3775
-3776
-3777
-3778
-3779
-3780
-3781
-3782
-3783
-3784
-3785
-3786
-3787
-3788
-3789
-3790
-3791
-3792
-3793
-3794
-3795
-3796
-3797
-3798
-3799
-3800
-3801
-3802
-3803
-3804
-3805
-3806
-3807
-3808
-3809
-3810
-3811
-3812
-3813
-3814
-3815
-3816
-3817
-3818
-3819
-3820
-3821
-3822
-3823
-3824
-3825
-3826
-3827
-3828
-3829
-3830
-3831
-3832
-3833
-3834
-3835
-3836
-3837
-3838
-3839
-3840
-3841
-3842
-3843
-3844
-3845
-3846
-3847
-3848
-3849
-3850
-3851
-3852
-3853
-3854
-3855
-3856
-3857
-3858
-3859
-3860
-3861
-3862
-3863
-3864
-3865
-3866
-3867
-3868
-3869
-3870
-3871
-3872
-3873
-3874
-3875
-3876
-3877
-3878
-3879
-3880
-3881
-3882
-3883
-3884
-3885
-3886
-3887
-3888
-3889
-3890
-3891
-3892
-3893
-3894
-3895
-3896
-3897
-3898
-3899
-3900
-3901
-3902
-3903
-3904
-3905
-3906
-3907
-3908
-3909
-3910
-3911
-3912
-3913
-3914
-3915
-3916
-3917
-3918
-3919
-3920
-3921
-3922
-3923
-3924
-3925
-3926
-3927
-3928
-3929
-3930
-3931
-3932
-3933
-3934
-3935
-3936
-3937
-3938
-3939
-3940
-3941
-3942
-3943
-3944
-3945
-3946
-3947
-3948
-3949
-3950
-3951
-3952
-3953
-3954
-3955
-3956
-3957
-3958
-3959
-3960
-3961
-3962
-3963
-3964
-3965
-3966
-3967
-3968
-3969
-3970
-3971
-3972
-3973
-3974
-3975
-3976
-3977
-3978
-3979
-3980
-3981
-3982
-3983
-3984
-3985
-3986
-3987
-3988
-3989
-3990
-3991
-3992
-3993
-3994
-3995
-3996
-3997
-3998
-3999
-4000
-4001
-4002
-4003
-4004
-4005
-4006
-4007
-4008
-4009
-4010
-4011
-4012
-4013
-4014
-4015
-4016
-4017
-4018
-4019
-4020
-4021
-4022
-4023
-4024
-4025
-4026
-4027
-4028
-4029
-4030
-4031
-4032
-4033
-4034
-4035
-4036
-4037
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Wallet
-//!
-//! This module defines the [`Wallet`] structure.
-
-use std::cell::RefCell;
-use std::collections::HashMap;
-use std::collections::{BTreeMap, HashSet};
-use std::fmt;
-use std::ops::{Deref, DerefMut};
-use std::str::FromStr;
-use std::sync::Arc;
-
-use bitcoin::secp256k1::Secp256k1;
-
-use bitcoin::consensus::encode::serialize;
-use bitcoin::util::base58;
-use bitcoin::util::psbt::raw::Key as PsbtKey;
-use bitcoin::util::psbt::Input;
-use bitcoin::util::psbt::PartiallySignedTransaction as Psbt;
-use bitcoin::{Address, Network, OutPoint, Script, SigHashType, Transaction, TxOut, Txid};
-
-use miniscript::descriptor::DescriptorTrait;
-use miniscript::psbt::PsbtInputSatisfier;
-
-#[allow(unused_imports)]
-use log::{debug, error, info, trace};
-
-pub mod address_validator;
-pub mod coin_selection;
-pub mod export;
-pub mod signer;
-pub mod time;
-pub mod tx_builder;
-pub(crate) mod utils;
-#[cfg(feature = "verify")]
-#[cfg_attr(docsrs, doc(cfg(feature = "verify")))]
-pub mod verify;
-
-pub use utils::IsDust;
-
-use address_validator::AddressValidator;
-use coin_selection::DefaultCoinSelectionAlgorithm;
-use signer::{SignOptions, Signer, SignerOrdering, SignersContainer};
-use tx_builder::{BumpFee, CreateTx, FeePolicy, TxBuilder, TxParams};
-use utils::{check_nlocktime, check_nsequence_rbf, After, Older, SecpCtx, DUST_LIMIT_SATOSHI};
-
-use crate::blockchain::{Blockchain, Progress};
-use crate::database::memory::MemoryDatabase;
-use crate::database::{BatchDatabase, BatchOperations, DatabaseUtils, SyncTime};
-use crate::descriptor::derived::AsDerived;
-use crate::descriptor::policy::BuildSatisfaction;
-use crate::descriptor::{
-    get_checksum, into_wallet_descriptor_checked, DerivedDescriptor, DerivedDescriptorMeta,
-    DescriptorMeta, DescriptorScripts, ExtendedDescriptor, ExtractPolicy, IntoWalletDescriptor,
-    Policy, XKeyUtils,
-};
-use crate::error::Error;
-use crate::psbt::PsbtUtils;
-use crate::signer::SignerError;
-use crate::testutils;
-use crate::types::*;
-
-const CACHE_ADDR_BATCH_SIZE: u32 = 100;
-
-/// A Bitcoin wallet
-///
-/// A wallet takes descriptors, a [`database`](trait@crate::database::Database) and a
-/// [`blockchain`](trait@crate::blockchain::Blockchain) and implements the basic functions that a Bitcoin wallets
-/// needs to operate, like [generating addresses](Wallet::get_address), [returning the balance](Wallet::get_balance),
-/// [creating transactions](Wallet::build_tx), etc.
-///
-/// A wallet can be either "online" if the [`blockchain`](crate::blockchain) type provided
-/// implements [`Blockchain`], or "offline" if it is the unit type `()`. Offline wallets only expose
-/// methods that don't need any interaction with the blockchain to work.
-#[derive(Debug)]
-pub struct Wallet<B, D> {
-    descriptor: ExtendedDescriptor,
-    change_descriptor: Option<ExtendedDescriptor>,
-
-    signers: Arc<SignersContainer>,
-    change_signers: Arc<SignersContainer>,
-
-    address_validators: Vec<Arc<dyn AddressValidator>>,
-
-    network: Network,
-
-    current_height: Option<u32>,
-
-    client: B,
-    database: RefCell<D>,
-
-    secp: SecpCtx,
-}
-
-impl<D> Wallet<(), D>
-where
-    D: BatchDatabase,
-{
-    /// Create a new "offline" wallet
-    pub fn new_offline<E: IntoWalletDescriptor>(
-        descriptor: E,
-        change_descriptor: Option<E>,
-        network: Network,
-        database: D,
-    ) -> Result<Self, Error> {
-        Self::_new(descriptor, change_descriptor, network, database, (), None)
-    }
-}
-
-impl<B, D> Wallet<B, D>
-where
-    D: BatchDatabase,
-{
-    fn _new<E: IntoWalletDescriptor>(
-        descriptor: E,
-        change_descriptor: Option<E>,
-        network: Network,
-        mut database: D,
-        client: B,
-        current_height: Option<u32>,
-    ) -> Result<Self, Error> {
-        let secp = Secp256k1::new();
-
-        let (descriptor, keymap) = into_wallet_descriptor_checked(descriptor, &secp, network)?;
-        database.check_descriptor_checksum(
-            KeychainKind::External,
-            get_checksum(&descriptor.to_string())?.as_bytes(),
-        )?;
-        let signers = Arc::new(SignersContainer::from(keymap));
-        let (change_descriptor, change_signers) = match change_descriptor {
-            Some(desc) => {
-                let (change_descriptor, change_keymap) =
-                    into_wallet_descriptor_checked(desc, &secp, network)?;
-                database.check_descriptor_checksum(
-                    KeychainKind::Internal,
-                    get_checksum(&change_descriptor.to_string())?.as_bytes(),
-                )?;
-
-                let change_signers = Arc::new(SignersContainer::from(change_keymap));
-                // if !parsed.same_structure(descriptor.as_ref()) {
-                //     return Err(Error::DifferentDescriptorStructure);
-                // }
-
-                (Some(change_descriptor), change_signers)
-            }
-            None => (None, Arc::new(SignersContainer::new())),
-        };
-
-        Ok(Wallet {
-            descriptor,
-            change_descriptor,
-            signers,
-            change_signers,
-            address_validators: Vec::new(),
-            network,
-            current_height,
-            client,
-            database: RefCell::new(database),
-            secp,
-        })
-    }
-
-    /// Get the Bitcoin network the wallet is using.
-    pub fn network(&self) -> Network {
-        self.network
-    }
-}
-
-/// The address index selection strategy to use to derived an address from the wallet's external
-/// descriptor. See [`Wallet::get_address`]. If you're unsure which one to use use `WalletIndex::New`.
-#[derive(Debug)]
-pub enum AddressIndex {
-    /// Return a new address after incrementing the current descriptor index.
-    New,
-    /// Return the address for the current descriptor index if it has not been used in a received
-    /// transaction. Otherwise return a new address as with [`AddressIndex::New`].
-    ///
-    /// Use with caution, if the wallet has not yet detected an address has been used it could
-    /// return an already used address. This function is primarily meant for situations where the
-    /// caller is untrusted; for example when deriving donation addresses on-demand for a public
-    /// web page.
-    LastUnused,
-    /// Return the address for a specific descriptor index. Does not change the current descriptor
-    /// index used by `AddressIndex::New` and `AddressIndex::LastUsed`.
-    ///
-    /// Use with caution, if an index is given that is less than the current descriptor index
-    /// then the returned address may have already been used.
-    Peek(u32),
-    /// Return the address for a specific descriptor index and reset the current descriptor index
-    /// used by `AddressIndex::New` and `AddressIndex::LastUsed` to this value.
-    ///
-    /// Use with caution, if an index is given that is less than the current descriptor index
-    /// then the returned address and subsequent addresses returned by calls to `AddressIndex::New`
-    /// and `AddressIndex::LastUsed` may have already been used. Also if the index is reset to a
-    /// value earlier than the [`crate::blockchain::Blockchain`] stop_gap (default is 20) then a
-    /// larger stop_gap should be used to monitor for all possibly used addresses.
-    Reset(u32),
-}
-
-/// A derived address and the index it was found at
-/// For convenience this automatically derefs to `Address`
-#[derive(Debug, PartialEq)]
-pub struct AddressInfo {
-    /// Child index of this address
-    pub index: u32,
-    /// Address
-    pub address: Address,
-}
-
-impl Deref for AddressInfo {
-    type Target = Address;
-
-    fn deref(&self) -> &Self::Target {
-        &self.address
-    }
-}
-
-impl fmt::Display for AddressInfo {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        write!(f, "{}", self.address)
-    }
-}
-
-// offline actions, always available
-impl<B, D> Wallet<B, D>
-where
-    D: BatchDatabase,
-{
-    // Return a newly derived address using the external descriptor
-    fn get_new_address(&self) -> Result<AddressInfo, Error> {
-        let incremented_index = self.fetch_and_increment_index(KeychainKind::External)?;
-
-        let address_result = self
-            .descriptor
-            .as_derived(incremented_index, &self.secp)
-            .address(self.network);
-
-        address_result
-            .map(|address| AddressInfo {
-                address,
-                index: incremented_index,
-            })
-            .map_err(|_| Error::ScriptDoesntHaveAddressForm)
-    }
-
-    // Return the the last previously derived address if it has not been used in a received
-    // transaction. Otherwise return a new address using [`Wallet::get_new_address`].
-    fn get_unused_address(&self) -> Result<AddressInfo, Error> {
-        let current_index = self.fetch_index(KeychainKind::External)?;
-
-        let derived_key = self.descriptor.as_derived(current_index, &self.secp);
-
-        let script_pubkey = derived_key.script_pubkey();
-
-        let found_used = self
-            .list_transactions(true)?
-            .iter()
-            .flat_map(|tx_details| tx_details.transaction.as_ref())
-            .flat_map(|tx| tx.output.iter())
-            .any(|o| o.script_pubkey == script_pubkey);
-
-        if found_used {
-            self.get_new_address()
-        } else {
-            derived_key
-                .address(self.network)
-                .map(|address| AddressInfo {
-                    address,
-                    index: current_index,
-                })
-                .map_err(|_| Error::ScriptDoesntHaveAddressForm)
-        }
-    }
-
-    // Return derived address for the external descriptor at a specific index
-    fn peek_address(&self, index: u32) -> Result<AddressInfo, Error> {
-        self.descriptor
-            .as_derived(index, &self.secp)
-            .address(self.network)
-            .map(|address| AddressInfo { index, address })
-            .map_err(|_| Error::ScriptDoesntHaveAddressForm)
-    }
-
-    // Return derived address for the external descriptor at a specific index and reset current
-    // address index
-    fn reset_address(&self, index: u32) -> Result<AddressInfo, Error> {
-        self.set_index(KeychainKind::External, index)?;
-
-        self.descriptor
-            .as_derived(index, &self.secp)
-            .address(self.network)
-            .map(|address| AddressInfo { index, address })
-            .map_err(|_| Error::ScriptDoesntHaveAddressForm)
-    }
-
-    /// Return a derived address using the external descriptor, see [`AddressIndex`] for
-    /// available address index selection strategies. If none of the keys in the descriptor are derivable
-    /// (ie. does not end with /*) then the same address will always be returned for any [`AddressIndex`].
-    pub fn get_address(&self, address_index: AddressIndex) -> Result<AddressInfo, Error> {
-        match address_index {
-            AddressIndex::New => self.get_new_address(),
-            AddressIndex::LastUnused => self.get_unused_address(),
-            AddressIndex::Peek(index) => self.peek_address(index),
-            AddressIndex::Reset(index) => self.reset_address(index),
-        }
-    }
-
-    /// Return whether or not a `script` is part of this wallet (either internal or external)
-    pub fn is_mine(&self, script: &Script) -> Result<bool, Error> {
-        self.database.borrow().is_mine(script)
-    }
-
-    /// Return the list of unspent outputs of this wallet
-    ///
-    /// Note that this method only operates on the internal database, which first needs to be
-    /// [`Wallet::sync`] manually.
-    pub fn list_unspent(&self) -> Result<Vec<LocalUtxo>, Error> {
-        self.database.borrow().iter_utxos()
-    }
-
-    /// Returns the `UTXO` owned by this wallet corresponding to `outpoint` if it exists in the
-    /// wallet's database.
-    pub fn get_utxo(&self, outpoint: OutPoint) -> Result<Option<LocalUtxo>, Error> {
-        self.database.borrow().get_utxo(&outpoint)
-    }
-
-    /// Return a single transactions made and received by the wallet
-    ///
-    /// Optionally fill the [`TransactionDetails::transaction`] field with the raw transaction if
-    /// `include_raw` is `true`.
-    ///
-    /// Note that this method only operates on the internal database, which first needs to be
-    /// [`Wallet::sync`] manually.
-    pub fn get_tx(
-        &self,
-        txid: &Txid,
-        include_raw: bool,
-    ) -> Result<Option<TransactionDetails>, Error> {
-        self.database.borrow().get_tx(txid, include_raw)
-    }
-
-    /// Return the list of transactions made and received by the wallet
-    ///
-    /// Optionally fill the [`TransactionDetails::transaction`] field with the raw transaction if
-    /// `include_raw` is `true`.
-    ///
-    /// Note that this methods only operate on the internal database, which first needs to be
-    /// [`Wallet::sync`] manually.
-    pub fn list_transactions(&self, include_raw: bool) -> Result<Vec<TransactionDetails>, Error> {
-        self.database.borrow().iter_txs(include_raw)
-    }
-
-    /// Return the balance, meaning the sum of this wallet's unspent outputs' values
-    ///
-    /// Note that this methods only operate on the internal database, which first needs to be
-    /// [`Wallet::sync`] manually.
-    pub fn get_balance(&self) -> Result<u64, Error> {
-        Ok(self
-            .list_unspent()?
-            .iter()
-            .fold(0, |sum, i| sum + i.txout.value))
-    }
-
-    /// Add an external signer
-    ///
-    /// See [the `signer` module](signer) for an example.
-    pub fn add_signer(
-        &mut self,
-        keychain: KeychainKind,
-        ordering: SignerOrdering,
-        signer: Arc<dyn Signer>,
-    ) {
-        let signers = match keychain {
-            KeychainKind::External => Arc::make_mut(&mut self.signers),
-            KeychainKind::Internal => Arc::make_mut(&mut self.change_signers),
-        };
-
-        signers.add_external(signer.id(&self.secp), ordering, signer);
-    }
-
-    /// Add an address validator
-    ///
-    /// See [the `address_validator` module](address_validator) for an example.
-    pub fn add_address_validator(&mut self, validator: Arc<dyn AddressValidator>) {
-        self.address_validators.push(validator);
-    }
-
-    /// Start building a transaction.
-    ///
-    /// This returns a blank [`TxBuilder`] from which you can specify the parameters for the transaction.
-    ///
-    /// ## Example
-    ///
-    /// ```
-    /// # use std::str::FromStr;
-    /// # use bitcoin::*;
-    /// # use bdk::*;
-    /// # use bdk::database::*;
-    /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
-    /// # let wallet = doctest_wallet!();
-    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-    /// let (psbt, details) = {
-    ///    let mut builder =  wallet.build_tx();
-    ///    builder
-    ///        .add_recipient(to_address.script_pubkey(), 50_000);
-    ///    builder.finish()?
-    /// };
-    ///
-    /// // sign and broadcast ...
-    /// # Ok::<(), bdk::Error>(())
-    /// ```
-    ///
-    /// [`TxBuilder`]: crate::TxBuilder
-    pub fn build_tx(&self) -> TxBuilder<'_, B, D, DefaultCoinSelectionAlgorithm, CreateTx> {
-        TxBuilder {
-            wallet: self,
-            params: TxParams::default(),
-            coin_selection: DefaultCoinSelectionAlgorithm::default(),
-            phantom: core::marker::PhantomData,
-        }
-    }
-
-    pub(crate) fn create_tx<Cs: coin_selection::CoinSelectionAlgorithm<D>>(
-        &self,
-        coin_selection: Cs,
-        params: TxParams,
-    ) -> Result<(Psbt, TransactionDetails), Error> {
-        let external_policy = self
-            .descriptor
-            .extract_policy(&self.signers, BuildSatisfaction::None, &self.secp)?
-            .unwrap();
-        let internal_policy = self
-            .change_descriptor
-            .as_ref()
-            .map(|desc| {
-                Ok::<_, Error>(
-                    desc.extract_policy(&self.change_signers, BuildSatisfaction::None, &self.secp)?
-                        .unwrap(),
-                )
-            })
-            .transpose()?;
-
-        // The policy allows spending external outputs, but it requires a policy path that hasn't been
-        // provided
-        if params.change_policy != tx_builder::ChangeSpendPolicy::OnlyChange
-            && external_policy.requires_path()
-            && params.external_policy_path.is_none()
-        {
-            return Err(Error::SpendingPolicyRequired(KeychainKind::External));
-        };
-        // Same for the internal_policy path, if present
-        if let Some(internal_policy) = &internal_policy {
-            if params.change_policy != tx_builder::ChangeSpendPolicy::ChangeForbidden
-                && internal_policy.requires_path()
-                && params.internal_policy_path.is_none()
-            {
-                return Err(Error::SpendingPolicyRequired(KeychainKind::Internal));
-            };
-        }
-
-        let external_requirements = external_policy.get_condition(
-            params
-                .external_policy_path
-                .as_ref()
-                .unwrap_or(&BTreeMap::new()),
-        )?;
-        let internal_requirements = internal_policy
-            .map(|policy| {
-                Ok::<_, Error>(
-                    policy.get_condition(
-                        params
-                            .internal_policy_path
-                            .as_ref()
-                            .unwrap_or(&BTreeMap::new()),
-                    )?,
-                )
-            })
-            .transpose()?;
-
-        let requirements =
-            external_requirements.merge(&internal_requirements.unwrap_or_default())?;
-        debug!("Policy requirements: {:?}", requirements);
-
-        let version = match params.version {
-            Some(tx_builder::Version(0)) => {
-                return Err(Error::Generic("Invalid version `0`".into()))
-            }
-            Some(tx_builder::Version(1)) if requirements.csv.is_some() => {
-                return Err(Error::Generic(
-                    "TxBuilder requested version `1`, but at least `2` is needed to use OP_CSV"
-                        .into(),
-                ))
-            }
-            Some(tx_builder::Version(x)) => x,
-            None if requirements.csv.is_some() => 2,
-            _ => 1,
-        };
-
-        let lock_time = match params.locktime {
-            // No nLockTime, default to 0
-            None => requirements.timelock.unwrap_or(0),
-            // Specific nLockTime required and we have no constraints, so just set to that value
-            Some(x) if requirements.timelock.is_none() => x,
-            // Specific nLockTime required and it's compatible with the constraints
-            Some(x) if check_nlocktime(x, requirements.timelock.unwrap()) => x,
-            // Invalid nLockTime required
-            Some(x) => return Err(Error::Generic(format!("TxBuilder requested timelock of `{}`, but at least `{}` is required to spend from this script", x, requirements.timelock.unwrap())))
-        };
-
-        let n_sequence = match (params.rbf, requirements.csv) {
-            // No RBF or CSV but there's an nLockTime, so the nSequence cannot be final
-            (None, None) if lock_time != 0 => 0xFFFFFFFE,
-            // No RBF, CSV or nLockTime, make the transaction final
-            (None, None) => 0xFFFFFFFF,
-
-            // No RBF requested, use the value from CSV. Note that this value is by definition
-            // non-final, so even if a timelock is enabled this nSequence is fine, hence why we
-            // don't bother checking for it here. The same is true for all the other branches below
-            (None, Some(csv)) => csv,
-
-            // RBF with a specific value but that value is too high
-            (Some(tx_builder::RbfValue::Value(rbf)), _) if rbf >= 0xFFFFFFFE => {
-                return Err(Error::Generic(
-                    "Cannot enable RBF with a nSequence >= 0xFFFFFFFE".into(),
-                ))
-            }
-            // RBF with a specific value requested, but the value is incompatible with CSV
-            (Some(tx_builder::RbfValue::Value(rbf)), Some(csv))
-                if !check_nsequence_rbf(rbf, csv) =>
-            {
-                return Err(Error::Generic(format!(
-                    "Cannot enable RBF with nSequence `{}` given a required OP_CSV of `{}`",
-                    rbf, csv
-                )))
-            }
-
-            // RBF enabled with the default value with CSV also enabled. CSV takes precedence
-            (Some(tx_builder::RbfValue::Default), Some(csv)) => csv,
-            // Valid RBF, either default or with a specific value. We ignore the `CSV` value
-            // because we've already checked it before
-            (Some(rbf), _) => rbf.get_value(),
-        };
-
-        let (fee_rate, mut fee_amount) = match params
-            .fee_policy
-            .as_ref()
-            .unwrap_or(&FeePolicy::FeeRate(FeeRate::default()))
-        {
-            //FIXME: see https://github.com/bitcoindevkit/bdk/issues/256
-            FeePolicy::FeeAmount(fee) => {
-                if let Some(previous_fee) = params.bumping_fee {
-                    if *fee < previous_fee.absolute {
-                        return Err(Error::FeeTooLow {
-                            required: previous_fee.absolute,
-                        });
-                    }
-                }
-                (FeeRate::from_sat_per_vb(0.0), *fee)
-            }
-            FeePolicy::FeeRate(rate) => {
-                if let Some(previous_fee) = params.bumping_fee {
-                    let required_feerate = FeeRate::from_sat_per_vb(previous_fee.rate + 1.0);
-                    if *rate < required_feerate {
-                        return Err(Error::FeeRateTooLow {
-                            required: required_feerate,
-                        });
-                    }
-                }
-                (*rate, 0)
-            }
-        };
-
-        let mut tx = Transaction {
-            version,
-            lock_time,
-            input: vec![],
-            output: vec![],
-        };
-
-        if params.manually_selected_only && params.utxos.is_empty() {
-            return Err(Error::NoUtxosSelected);
-        }
-
-        // we keep it as a float while we accumulate it, and only round it at the end
-        let mut outgoing: u64 = 0;
-        let mut received: u64 = 0;
-
-        fee_amount += fee_rate.fee_wu(tx.get_weight());
-
-        let recipients = params.recipients.iter().map(|(r, v)| (r, *v));
-
-        for (index, (script_pubkey, value)) in recipients.enumerate() {
-            if value.is_dust() && !script_pubkey.is_provably_unspendable() {
-                return Err(Error::OutputBelowDustLimit(index));
-            }
-
-            if self.is_mine(script_pubkey)? {
-                received += value;
-            }
-
-            let new_out = TxOut {
-                script_pubkey: script_pubkey.clone(),
-                value,
-            };
-            fee_amount += fee_rate.fee_vb(serialize(&new_out).len());
-
-            tx.output.push(new_out);
-
-            outgoing += value;
-        }
-
-        if params.change_policy != tx_builder::ChangeSpendPolicy::ChangeAllowed
-            && self.change_descriptor.is_none()
-        {
-            return Err(Error::Generic(
-                "The `change_policy` can be set only if the wallet has a change_descriptor".into(),
-            ));
-        }
-
-        let (required_utxos, optional_utxos) = self.preselect_utxos(
-            params.change_policy,
-            &params.unspendable,
-            params.utxos.clone(),
-            params.drain_wallet,
-            params.manually_selected_only,
-            params.bumping_fee.is_some(), // we mandate confirmed transactions if we're bumping the fee
-        )?;
-
-        let coin_selection = coin_selection.coin_select(
-            self.database.borrow().deref(),
-            required_utxos,
-            optional_utxos,
-            fee_rate,
-            outgoing,
-            fee_amount,
-        )?;
-        let mut fee_amount = coin_selection.fee_amount;
-
-        tx.input = coin_selection
-            .selected
-            .iter()
-            .map(|u| bitcoin::TxIn {
-                previous_output: u.outpoint(),
-                script_sig: Script::default(),
-                sequence: n_sequence,
-                witness: vec![],
-            })
-            .collect();
-
-        // prepare the drain output
-        let mut drain_output = {
-            let script_pubkey = match params.drain_to {
-                Some(ref drain_recipient) => drain_recipient.clone(),
-                None => self.get_change_address()?,
-            };
-
-            TxOut {
-                script_pubkey,
-                value: 0,
-            }
-        };
-
-        fee_amount += fee_rate.fee_vb(serialize(&drain_output).len());
-
-        let drain_val = (coin_selection.selected_amount() - outgoing).saturating_sub(fee_amount);
-
-        if tx.output.is_empty() {
-            if params.drain_to.is_some() {
-                if drain_val.is_dust() {
-                    return Err(Error::InsufficientFunds {
-                        needed: DUST_LIMIT_SATOSHI,
-                        available: drain_val,
-                    });
-                }
-            } else {
-                return Err(Error::NoRecipients);
-            }
-        }
-
-        if drain_val.is_dust() {
-            fee_amount += drain_val;
-        } else {
-            drain_output.value = drain_val;
-            if self.is_mine(&drain_output.script_pubkey)? {
-                received += drain_val;
-            }
-            tx.output.push(drain_output);
-        }
-
-        // sort input/outputs according to the chosen algorithm
-        params.ordering.sort_tx(&mut tx);
-
-        let txid = tx.txid();
-        let sent = coin_selection.local_selected_amount();
-        let psbt = self.complete_transaction(tx, coin_selection.selected, params)?;
-
-        let transaction_details = TransactionDetails {
-            transaction: None,
-            txid,
-            confirmation_time: None,
-            received,
-            sent,
-            fee: Some(fee_amount),
-            verified: true,
-        };
-
-        Ok((psbt, transaction_details))
-    }
-
-    /// Bump the fee of a transaction previously created with this wallet.
-    ///
-    /// Returns an error if the transaction is already confirmed or doesn't explicitly signal
-    /// *replace by fee* (RBF). If the transaction can be fee bumped then it returns a [`TxBuilder`]
-    /// pre-populated with the inputs and outputs of the original transaction.
-    ///
-    /// ## Example
-    ///
-    /// ```no_run
-    /// # // TODO: remove norun -- bumping fee seems to need the tx in the wallet database first.
-    /// # use std::str::FromStr;
-    /// # use bitcoin::*;
-    /// # use bdk::*;
-    /// # use bdk::database::*;
-    /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
-    /// # let wallet = doctest_wallet!();
-    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-    /// let (mut psbt, _) = {
-    ///     let mut builder = wallet.build_tx();
-    ///     builder
-    ///         .add_recipient(to_address.script_pubkey(), 50_000)
-    ///         .enable_rbf();
-    ///     builder.finish()?
-    /// };
-    /// let _ = wallet.sign(&mut psbt, SignOptions::default())?;
-    /// let tx = psbt.extract_tx();
-    /// // broadcast tx but it's taking too long to confirm so we want to bump the fee
-    /// let (mut psbt, _) =  {
-    ///     let mut builder = wallet.build_fee_bump(tx.txid())?;
-    ///     builder
-    ///         .fee_rate(FeeRate::from_sat_per_vb(5.0));
-    ///     builder.finish()?
-    /// };
-    ///
-    /// let _ = wallet.sign(&mut psbt, SignOptions::default())?;
-    /// let fee_bumped_tx = psbt.extract_tx();
-    /// // broadcast fee_bumped_tx to replace original
-    /// # Ok::<(), bdk::Error>(())
-    /// ```
-    // TODO: support for merging multiple transactions while bumping the fees
-    // TODO: option to force addition of an extra output? seems bad for privacy to update the
-    // change
-    pub fn build_fee_bump(
-        &self,
-        txid: Txid,
-    ) -> Result<TxBuilder<'_, B, D, DefaultCoinSelectionAlgorithm, BumpFee>, Error> {
-        let mut details = match self.database.borrow().get_tx(&txid, true)? {
-            None => return Err(Error::TransactionNotFound),
-            Some(tx) if tx.transaction.is_none() => return Err(Error::TransactionNotFound),
-            Some(tx) if tx.confirmation_time.is_some() => return Err(Error::TransactionConfirmed),
-            Some(tx) => tx,
-        };
-        let mut tx = details.transaction.take().unwrap();
-        if !tx.input.iter().any(|txin| txin.sequence <= 0xFFFFFFFD) {
-            return Err(Error::IrreplaceableTransaction);
-        }
-
-        let feerate = FeeRate::from_wu(
-            details.fee.ok_or(Error::FeeRateUnavailable)?,
-            tx.get_weight(),
-        );
-
-        // remove the inputs from the tx and process them
-        let original_txin = tx.input.drain(..).collect::<Vec<_>>();
-        let original_utxos = original_txin
-            .iter()
-            .map(|txin| -> Result<_, Error> {
-                let txout = self
-                    .database
-                    .borrow()
-                    .get_previous_output(&txin.previous_output)?
-                    .ok_or(Error::UnknownUtxo)?;
-
-                let (weight, keychain) = match self
-                    .database
-                    .borrow()
-                    .get_path_from_script_pubkey(&txout.script_pubkey)?
-                {
-                    Some((keychain, _)) => (
-                        self._get_descriptor_for_keychain(keychain)
-                            .0
-                            .max_satisfaction_weight()
-                            .unwrap(),
-                        keychain,
-                    ),
-                    None => {
-                        // estimate the weight based on the scriptsig/witness size present in the
-                        // original transaction
-                        let weight =
-                            serialize(&txin.script_sig).len() * 4 + serialize(&txin.witness).len();
-                        (weight, KeychainKind::External)
-                    }
-                };
-
-                let utxo = LocalUtxo {
-                    outpoint: txin.previous_output,
-                    txout,
-                    keychain,
-                };
-
-                Ok(WeightedUtxo {
-                    satisfaction_weight: weight,
-                    utxo: Utxo::Local(utxo),
-                })
-            })
-            .collect::<Result<Vec<_>, _>>()?;
-
-        if tx.output.len() > 1 {
-            let mut change_index = None;
-            for (index, txout) in tx.output.iter().enumerate() {
-                let (_, change_type) = self._get_descriptor_for_keychain(KeychainKind::Internal);
-                match self
-                    .database
-                    .borrow()
-                    .get_path_from_script_pubkey(&txout.script_pubkey)?
-                {
-                    Some((keychain, _)) if keychain == change_type => change_index = Some(index),
-                    _ => {}
-                }
-            }
-
-            if let Some(change_index) = change_index {
-                tx.output.remove(change_index);
-            }
-        }
-
-        let params = TxParams {
-            // TODO: figure out what rbf option should be?
-            version: Some(tx_builder::Version(tx.version)),
-            recipients: tx
-                .output
-                .into_iter()
-                .map(|txout| (txout.script_pubkey, txout.value))
-                .collect(),
-            utxos: original_utxos,
-            bumping_fee: Some(tx_builder::PreviousFee {
-                absolute: details.fee.ok_or(Error::FeeRateUnavailable)?,
-                rate: feerate.as_sat_vb(),
-            }),
-            ..Default::default()
-        };
-
-        Ok(TxBuilder {
-            wallet: self,
-            params,
-            coin_selection: DefaultCoinSelectionAlgorithm::default(),
-            phantom: core::marker::PhantomData,
-        })
-    }
-
-    /// Sign a transaction with all the wallet's signers, in the order specified by every signer's
-    /// [`SignerOrdering`]
-    ///
-    /// The [`SignOptions`] can be used to tweak the behavior of the software signers, and the way
-    /// the transaction is finalized at the end. Note that it can't be guaranteed that *every*
-    /// signers will follow the options, but the "software signers" (WIF keys and `xprv`) defined
-    /// in this library will.
-    ///
-    /// ## Example
-    ///
-    /// ```
-    /// # use std::str::FromStr;
-    /// # use bitcoin::*;
-    /// # use bdk::*;
-    /// # use bdk::database::*;
-    /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
-    /// # let wallet = doctest_wallet!();
-    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-    /// let (mut psbt, _) = {
-    ///     let mut builder = wallet.build_tx();
-    ///     builder.add_recipient(to_address.script_pubkey(), 50_000);
-    ///     builder.finish()?
-    /// };
-    /// let  finalized = wallet.sign(&mut psbt, SignOptions::default())?;
-    /// assert!(finalized, "we should have signed all the inputs");
-    /// # Ok::<(), bdk::Error>(())
-    pub fn sign(&self, psbt: &mut Psbt, sign_options: SignOptions) -> Result<bool, Error> {
-        // this helps us doing our job later
-        self.add_input_hd_keypaths(psbt)?;
-
-        // If we aren't allowed to use `witness_utxo`, ensure that every input but finalized one
-        // has the `non_witness_utxo`
-        if !sign_options.trust_witness_utxo
-            && psbt
-                .inputs
-                .iter()
-                .filter(|i| i.final_script_witness.is_none() && i.final_script_sig.is_none())
-                .any(|i| i.non_witness_utxo.is_none())
-        {
-            return Err(Error::Signer(signer::SignerError::MissingNonWitnessUtxo));
-        }
-
-        // If the user hasn't explicitly opted-in, refuse to sign the transaction unless every input
-        // is using `SIGHASH_ALL`
-        if !sign_options.allow_all_sighashes
-            && !psbt
-                .inputs
-                .iter()
-                .all(|i| i.sighash_type.is_none() || i.sighash_type == Some(SigHashType::All))
-        {
-            return Err(Error::Signer(signer::SignerError::NonStandardSighash));
-        }
-
-        for signer in self
-            .signers
-            .signers()
-            .iter()
-            .chain(self.change_signers.signers().iter())
-        {
-            if signer.sign_whole_tx() {
-                signer.sign(psbt, None, &self.secp)?;
-            } else {
-                for index in 0..psbt.inputs.len() {
-                    signer.sign(psbt, Some(index), &self.secp)?;
-                }
-            }
-        }
-
-        // attempt to finalize
-        self.finalize_psbt(psbt, sign_options)
-    }
-
-    /// Return the spending policies for the wallet's descriptor
-    pub fn policies(&self, keychain: KeychainKind) -> Result<Option<Policy>, Error> {
-        match (keychain, self.change_descriptor.as_ref()) {
-            (KeychainKind::External, _) => Ok(self.descriptor.extract_policy(
-                &self.signers,
-                BuildSatisfaction::None,
-                &self.secp,
-            )?),
-            (KeychainKind::Internal, None) => Ok(None),
-            (KeychainKind::Internal, Some(desc)) => Ok(desc.extract_policy(
-                &self.change_signers,
-                BuildSatisfaction::None,
-                &self.secp,
-            )?),
-        }
-    }
-
-    /// Return the "public" version of the wallet's descriptor, meaning a new descriptor that has
-    /// the same structure but with every secret key removed
-    ///
-    /// This can be used to build a watch-only version of a wallet
-    pub fn public_descriptor(
-        &self,
-        keychain: KeychainKind,
-    ) -> Result<Option<ExtendedDescriptor>, Error> {
-        match (keychain, self.change_descriptor.as_ref()) {
-            (KeychainKind::External, _) => Ok(Some(self.descriptor.clone())),
-            (KeychainKind::Internal, None) => Ok(None),
-            (KeychainKind::Internal, Some(desc)) => Ok(Some(desc.clone())),
-        }
-    }
-
-    /// Try to finalize a PSBT
-    ///
-    /// The [`SignOptions`] can be used to tweak the behavior of the finalizer.
-    pub fn finalize_psbt(&self, psbt: &mut Psbt, sign_options: SignOptions) -> Result<bool, Error> {
-        let tx = &psbt.global.unsigned_tx;
-        let mut finished = true;
-
-        for (n, input) in tx.input.iter().enumerate() {
-            let psbt_input = &psbt
-                .inputs
-                .get(n)
-                .ok_or(Error::Signer(SignerError::InputIndexOutOfRange))?;
-            if psbt_input.final_script_sig.is_some() || psbt_input.final_script_witness.is_some() {
-                continue;
-            }
-            // if the height is None in the database it means it's still unconfirmed, so consider
-            // that as a very high value
-            let create_height = self
-                .database
-                .borrow()
-                .get_tx(&input.previous_output.txid, false)?
-                .map(|tx| tx.confirmation_time.map(|c| c.height).unwrap_or(u32::MAX));
-            let current_height = sign_options.assume_height.or(self.current_height);
-
-            debug!(
-                "Input #{} - {}, using `create_height` = {:?}, `current_height` = {:?}",
-                n, input.previous_output, create_height, current_height
-            );
-
-            // - Try to derive the descriptor by looking at the txout. If it's in our database, we
-            //   know exactly which `keychain` to use, and which derivation index it is
-            // - If that fails, try to derive it by looking at the psbt input: the complete logic
-            //   is in `src/descriptor/mod.rs`, but it will basically look at `bip32_derivation`,
-            //   `redeem_script` and `witness_script` to determine the right derivation
-            // - If that also fails, it will try it on the internal descriptor, if present
-            let desc = psbt
-                .get_utxo_for(n)
-                .map(|txout| self.get_descriptor_for_txout(&txout))
-                .transpose()?
-                .flatten()
-                .or_else(|| {
-                    self.descriptor.derive_from_psbt_input(
-                        psbt_input,
-                        psbt.get_utxo_for(n),
-                        &self.secp,
-                    )
-                })
-                .or_else(|| {
-                    self.change_descriptor.as_ref().and_then(|desc| {
-                        desc.derive_from_psbt_input(psbt_input, psbt.get_utxo_for(n), &self.secp)
-                    })
-                });
-
-            match desc {
-                Some(desc) => {
-                    let mut tmp_input = bitcoin::TxIn::default();
-                    match desc.satisfy(
-                        &mut tmp_input,
-                        (
-                            PsbtInputSatisfier::new(psbt, n),
-                            After::new(current_height, false),
-                            Older::new(current_height, create_height, false),
-                        ),
-                    ) {
-                        Ok(_) => {
-                            let psbt_input = &mut psbt.inputs[n];
-                            psbt_input.final_script_sig = Some(tmp_input.script_sig);
-                            psbt_input.final_script_witness = Some(tmp_input.witness);
-                        }
-                        Err(e) => {
-                            debug!("satisfy error {:?} for input {}", e, n);
-                            finished = false
-                        }
-                    }
-                }
-                None => finished = false,
-            }
-        }
-
-        Ok(finished)
-    }
-
-    /// Return the secp256k1 context used for all signing operations
-    pub fn secp_ctx(&self) -> &SecpCtx {
-        &self.secp
-    }
-
-    /// Returns the descriptor used to create addresses for a particular `keychain`.
-    pub fn get_descriptor_for_keychain(&self, keychain: KeychainKind) -> &ExtendedDescriptor {
-        let (descriptor, _) = self._get_descriptor_for_keychain(keychain);
-        descriptor
-    }
-
-    // Internals
-
-    fn _get_descriptor_for_keychain(
-        &self,
-        keychain: KeychainKind,
-    ) -> (&ExtendedDescriptor, KeychainKind) {
-        match keychain {
-            KeychainKind::Internal if self.change_descriptor.is_some() => (
-                self.change_descriptor.as_ref().unwrap(),
-                KeychainKind::Internal,
-            ),
-            _ => (&self.descriptor, KeychainKind::External),
-        }
-    }
-
-    fn get_descriptor_for_txout(
-        &self,
-        txout: &TxOut,
-    ) -> Result<Option<DerivedDescriptor<'_>>, Error> {
-        Ok(self
-            .database
-            .borrow()
-            .get_path_from_script_pubkey(&txout.script_pubkey)?
-            .map(|(keychain, child)| (self.get_descriptor_for_keychain(keychain), child))
-            .map(|(desc, child)| desc.as_derived(child, &self.secp)))
-    }
-
-    fn get_change_address(&self) -> Result<Script, Error> {
-        let (desc, keychain) = self._get_descriptor_for_keychain(KeychainKind::Internal);
-        let index = self.fetch_and_increment_index(keychain)?;
-
-        Ok(desc.as_derived(index, &self.secp).script_pubkey())
-    }
-
-    fn fetch_and_increment_index(&self, keychain: KeychainKind) -> Result<u32, Error> {
-        let (descriptor, keychain) = self._get_descriptor_for_keychain(keychain);
-        let index = match descriptor.is_deriveable() {
-            false => 0,
-            true => self.database.borrow_mut().increment_last_index(keychain)?,
-        };
-
-        if self
-            .database
-            .borrow()
-            .get_script_pubkey_from_path(keychain, index)?
-            .is_none()
-        {
-            self.cache_addresses(keychain, index, CACHE_ADDR_BATCH_SIZE)?;
-        }
-
-        let derived_descriptor = descriptor.as_derived(index, &self.secp);
-
-        let hd_keypaths = derived_descriptor.get_hd_keypaths(&self.secp)?;
-        let script = derived_descriptor.script_pubkey();
-
-        for validator in &self.address_validators {
-            validator.validate(keychain, &hd_keypaths, &script)?;
-        }
-
-        Ok(index)
-    }
-
-    fn fetch_index(&self, keychain: KeychainKind) -> Result<u32, Error> {
-        let (descriptor, keychain) = self._get_descriptor_for_keychain(keychain);
-        let index = match descriptor.is_deriveable() {
-            false => Some(0),
-            true => self.database.borrow_mut().get_last_index(keychain)?,
-        };
-
-        if let Some(i) = index {
-            Ok(i)
-        } else {
-            self.fetch_and_increment_index(keychain)
-        }
-    }
-
-    fn set_index(&self, keychain: KeychainKind, index: u32) -> Result<(), Error> {
-        self.database.borrow_mut().set_last_index(keychain, index)?;
-        Ok(())
-    }
-
-    fn cache_addresses(
-        &self,
-        keychain: KeychainKind,
-        from: u32,
-        mut count: u32,
-    ) -> Result<(), Error> {
-        let (descriptor, keychain) = self._get_descriptor_for_keychain(keychain);
-        if !descriptor.is_deriveable() {
-            if from > 0 {
-                return Ok(());
-            }
-
-            count = 1;
-        }
-
-        let mut address_batch = self.database.borrow().begin_batch();
-
-        let start_time = time::Instant::new();
-        for i in from..(from + count) {
-            address_batch.set_script_pubkey(
-                &descriptor.as_derived(i, &self.secp).script_pubkey(),
-                keychain,
-                i,
-            )?;
-        }
-
-        info!(
-            "Derivation of {} addresses from {} took {} ms",
-            count,
-            from,
-            start_time.elapsed().as_millis()
-        );
-
-        self.database.borrow_mut().commit_batch(address_batch)?;
-
-        Ok(())
-    }
-
-    fn get_available_utxos(&self) -> Result<Vec<(LocalUtxo, usize)>, Error> {
-        Ok(self
-            .list_unspent()?
-            .into_iter()
-            .map(|utxo| {
-                let keychain = utxo.keychain;
-                (
-                    utxo,
-                    self.get_descriptor_for_keychain(keychain)
-                        .max_satisfaction_weight()
-                        .unwrap(),
-                )
-            })
-            .collect())
-    }
-
-    /// Given the options returns the list of utxos that must be used to form the
-    /// transaction and any further that may be used if needed.
-    #[allow(clippy::type_complexity)]
-    fn preselect_utxos(
-        &self,
-        change_policy: tx_builder::ChangeSpendPolicy,
-        unspendable: &HashSet<OutPoint>,
-        manually_selected: Vec<WeightedUtxo>,
-        must_use_all_available: bool,
-        manual_only: bool,
-        must_only_use_confirmed_tx: bool,
-    ) -> Result<(Vec<WeightedUtxo>, Vec<WeightedUtxo>), Error> {
-        //    must_spend <- manually selected utxos
-        //    may_spend  <- all other available utxos
-        let mut may_spend = self.get_available_utxos()?;
-
-        may_spend.retain(|may_spend| {
-            !manually_selected
-                .iter()
-                .any(|manually_selected| manually_selected.utxo.outpoint() == may_spend.0.outpoint)
-        });
-        let mut must_spend = manually_selected;
-
-        // NOTE: we are intentionally ignoring `unspendable` here. i.e manual
-        // selection overrides unspendable.
-        if manual_only {
-            return Ok((must_spend, vec![]));
-        }
-
-        let satisfies_confirmed = match must_only_use_confirmed_tx {
-            true => {
-                let database = self.database.borrow();
-                may_spend
-                    .iter()
-                    .map(|u| {
-                        database
-                            .get_tx(&u.0.outpoint.txid, true)
-                            .map(|tx| match tx {
-                                None => false,
-                                Some(tx) => tx.confirmation_time.is_some(),
-                            })
-                    })
-                    .collect::<Result<Vec<_>, _>>()?
-            }
-            false => vec![true; may_spend.len()],
-        };
-
-        let mut i = 0;
-        may_spend.retain(|u| {
-            let retain = change_policy.is_satisfied_by(&u.0)
-                && !unspendable.contains(&u.0.outpoint)
-                && satisfies_confirmed[i];
-            i += 1;
-            retain
-        });
-
-        let mut may_spend = may_spend
-            .into_iter()
-            .map(|(local_utxo, satisfaction_weight)| WeightedUtxo {
-                satisfaction_weight,
-                utxo: Utxo::Local(local_utxo),
-            })
-            .collect();
-
-        if must_use_all_available {
-            must_spend.append(&mut may_spend);
-        }
-
-        Ok((must_spend, may_spend))
-    }
-
-    fn complete_transaction(
-        &self,
-        tx: Transaction,
-        selected: Vec<Utxo>,
-        params: TxParams,
-    ) -> Result<Psbt, Error> {
-        use bitcoin::util::psbt::serialize::Serialize;
-
-        let mut psbt = Psbt::from_unsigned_tx(tx)?;
-
-        if params.add_global_xpubs {
-            let mut all_xpubs = self.descriptor.get_extended_keys()?;
-            if let Some(change_descriptor) = &self.change_descriptor {
-                all_xpubs.extend(change_descriptor.get_extended_keys()?);
-            }
-
-            for xpub in all_xpubs {
-                let serialized_xpub = base58::from_check(&xpub.xkey.to_string())
-                    .expect("Internal serialization error");
-                let key = PsbtKey {
-                    type_value: 0x01,
-                    key: serialized_xpub,
-                };
-
-                let origin = match xpub.origin {
-                    Some(origin) => origin,
-                    None if xpub.xkey.depth == 0 => {
-                        (xpub.root_fingerprint(&self.secp), vec![].into())
-                    }
-                    _ => return Err(Error::MissingKeyOrigin(xpub.xkey.to_string())),
-                };
-
-                psbt.global.unknown.insert(key, origin.serialize());
-            }
-        }
-
-        let mut lookup_output = selected
-            .into_iter()
-            .map(|utxo| (utxo.outpoint(), utxo))
-            .collect::<HashMap<_, _>>();
-
-        // add metadata for the inputs
-        for (psbt_input, input) in psbt
-            .inputs
-            .iter_mut()
-            .zip(psbt.global.unsigned_tx.input.iter())
-        {
-            let utxo = match lookup_output.remove(&input.previous_output) {
-                Some(utxo) => utxo,
-                None => continue,
-            };
-
-            match utxo {
-                Utxo::Local(utxo) => {
-                    *psbt_input =
-                        match self.get_psbt_input(utxo, params.sighash, params.only_witness_utxo) {
-                            Ok(psbt_input) => psbt_input,
-                            Err(e) => match e {
-                                Error::UnknownUtxo => Input {
-                                    sighash_type: params.sighash,
-                                    ..Input::default()
-                                },
-                                _ => return Err(e),
-                            },
-                        }
-                }
-                Utxo::Foreign {
-                    psbt_input: foreign_psbt_input,
-                    outpoint,
-                } => {
-                    if !params.only_witness_utxo && foreign_psbt_input.non_witness_utxo.is_none() {
-                        return Err(Error::Generic(format!(
-                            "Missing non_witness_utxo on foreign utxo {}",
-                            outpoint
-                        )));
-                    }
-                    *psbt_input = *foreign_psbt_input;
-                }
-            }
-        }
-
-        // probably redundant but it doesn't hurt...
-        self.add_input_hd_keypaths(&mut psbt)?;
-
-        // add metadata for the outputs
-        for (psbt_output, tx_output) in psbt
-            .outputs
-            .iter_mut()
-            .zip(psbt.global.unsigned_tx.output.iter())
-        {
-            if let Some((keychain, child)) = self
-                .database
-                .borrow()
-                .get_path_from_script_pubkey(&tx_output.script_pubkey)?
-            {
-                let (desc, _) = self._get_descriptor_for_keychain(keychain);
-                let derived_descriptor = desc.as_derived(child, &self.secp);
-
-                psbt_output.bip32_derivation = derived_descriptor.get_hd_keypaths(&self.secp)?;
-                if params.include_output_redeem_witness_script {
-                    psbt_output.witness_script = derived_descriptor.psbt_witness_script();
-                    psbt_output.redeem_script = derived_descriptor.psbt_redeem_script();
-                };
-            }
-        }
-
-        Ok(psbt)
-    }
-
-    /// get the corresponding PSBT Input for a LocalUtxo
-    pub fn get_psbt_input(
-        &self,
-        utxo: LocalUtxo,
-        sighash_type: Option<SigHashType>,
-        only_witness_utxo: bool,
-    ) -> Result<Input, Error> {
-        // Try to find the prev_script in our db to figure out if this is internal or external,
-        // and the derivation index
-        let (keychain, child) = self
-            .database
-            .borrow()
-            .get_path_from_script_pubkey(&utxo.txout.script_pubkey)?
-            .ok_or(Error::UnknownUtxo)?;
-
-        let mut psbt_input = Input {
-            sighash_type,
-            ..Input::default()
-        };
-
-        let desc = self.get_descriptor_for_keychain(keychain);
-        let derived_descriptor = desc.as_derived(child, &self.secp);
-        psbt_input.bip32_derivation = derived_descriptor.get_hd_keypaths(&self.secp)?;
-
-        psbt_input.redeem_script = derived_descriptor.psbt_redeem_script();
-        psbt_input.witness_script = derived_descriptor.psbt_witness_script();
-
-        let prev_output = utxo.outpoint;
-        if let Some(prev_tx) = self.database.borrow().get_raw_tx(&prev_output.txid)? {
-            if desc.is_witness() {
-                psbt_input.witness_utxo = Some(prev_tx.output[prev_output.vout as usize].clone());
-            }
-            if !desc.is_witness() || !only_witness_utxo {
-                psbt_input.non_witness_utxo = Some(prev_tx);
-            }
-        }
-        Ok(psbt_input)
-    }
-
-    fn add_input_hd_keypaths(&self, psbt: &mut Psbt) -> Result<(), Error> {
-        let mut input_utxos = Vec::with_capacity(psbt.inputs.len());
-        for n in 0..psbt.inputs.len() {
-            input_utxos.push(psbt.get_utxo_for(n).clone());
-        }
-
-        // try to add hd_keypaths if we've already seen the output
-        for (psbt_input, out) in psbt.inputs.iter_mut().zip(input_utxos.iter()) {
-            if let Some(out) = out {
-                if let Some((keychain, child)) = self
-                    .database
-                    .borrow()
-                    .get_path_from_script_pubkey(&out.script_pubkey)?
-                {
-                    debug!("Found descriptor {:?}/{}", keychain, child);
-
-                    // merge hd_keypaths
-                    let desc = self.get_descriptor_for_keychain(keychain);
-                    let mut hd_keypaths = desc
-                        .as_derived(child, &self.secp)
-                        .get_hd_keypaths(&self.secp)?;
-                    psbt_input.bip32_derivation.append(&mut hd_keypaths);
-                }
-            }
-        }
-
-        Ok(())
-    }
-
-    /// Return an immutable reference to the internal database
-    pub fn database(&self) -> impl std::ops::Deref<Target = D> + '_ {
-        self.database.borrow()
-    }
-}
-
-impl<B, D> Wallet<B, D>
-where
-    B: Blockchain,
-    D: BatchDatabase,
-{
-    /// Create a new "online" wallet
-    #[maybe_async]
-    pub fn new<E: IntoWalletDescriptor>(
-        descriptor: E,
-        change_descriptor: Option<E>,
-        network: Network,
-        database: D,
-        client: B,
-    ) -> Result<Self, Error> {
-        let current_height = Some(maybe_await!(client.get_height())? as u32);
-        Self::_new(
-            descriptor,
-            change_descriptor,
-            network,
-            database,
-            client,
-            current_height,
-        )
-    }
-
-    /// Sync the internal database with the blockchain
-    #[maybe_async]
-    pub fn sync<P: 'static + Progress>(
-        &self,
-        progress_update: P,
-        max_address_param: Option<u32>,
-    ) -> Result<(), Error> {
-        debug!("Begin sync...");
-
-        let mut run_setup = false;
-
-        let max_address = match self.descriptor.is_deriveable() {
-            false => 0,
-            true => max_address_param.unwrap_or(CACHE_ADDR_BATCH_SIZE),
-        };
-        debug!("max_address {}", max_address);
-        if self
-            .database
-            .borrow()
-            .get_script_pubkey_from_path(KeychainKind::External, max_address.saturating_sub(1))?
-            .is_none()
-        {
-            debug!("caching external addresses");
-            run_setup = true;
-            self.cache_addresses(KeychainKind::External, 0, max_address)?;
-        }
-
-        if let Some(change_descriptor) = &self.change_descriptor {
-            let max_address = match change_descriptor.is_deriveable() {
-                false => 0,
-                true => max_address_param.unwrap_or(CACHE_ADDR_BATCH_SIZE),
-            };
-
-            if self
-                .database
-                .borrow()
-                .get_script_pubkey_from_path(KeychainKind::Internal, max_address.saturating_sub(1))?
-                .is_none()
-            {
-                debug!("caching internal addresses");
-                run_setup = true;
-                self.cache_addresses(KeychainKind::Internal, 0, max_address)?;
-            }
-        }
-
-        debug!("run_setup: {}", run_setup);
-        // TODO: what if i generate an address first and cache some addresses?
-        // TODO: we should sync if generating an address triggers a new batch to be stored
-        if run_setup {
-            maybe_await!(self
-                .client
-                .setup(self.database.borrow_mut().deref_mut(), progress_update,))?;
-        } else {
-            maybe_await!(self
-                .client
-                .sync(self.database.borrow_mut().deref_mut(), progress_update,))?;
-        }
-
-        #[cfg(feature = "verify")]
-        {
-            debug!("Verifying transactions...");
-            for mut tx in self.database.borrow().iter_txs(true)? {
-                if !tx.verified {
-                    verify::verify_tx(
-                        tx.transaction.as_ref().ok_or(Error::TransactionNotFound)?,
-                        self.database.borrow().deref(),
-                        &self.client,
-                    )?;
-
-                    tx.verified = true;
-                    self.database.borrow_mut().set_tx(&tx)?;
-                }
-            }
-        }
-
-        let sync_time = SyncTime {
-            block_time: BlockTime {
-                height: maybe_await!(self.client.get_height())?,
-                timestamp: time::get_timestamp(),
-            },
-        };
-        debug!("Saving `sync_time` = {:?}", sync_time);
-        self.database.borrow_mut().set_sync_time(sync_time)?;
-
-        Ok(())
-    }
-
-    /// Return a reference to the internal blockchain client
-    pub fn client(&self) -> &B {
-        &self.client
-    }
-
-    /// Broadcast a transaction to the network
-    #[maybe_async]
-    pub fn broadcast(&self, tx: &Transaction) -> Result<Txid, Error> {
-        maybe_await!(self.client.broadcast(tx))?;
-
-        Ok(tx.txid())
-    }
-}
-
-/// Return a fake wallet that appears to be funded for testing.
-pub fn get_funded_wallet(
-    descriptor: &str,
-) -> (
-    Wallet<(), MemoryDatabase>,
-    (String, Option<String>),
-    bitcoin::Txid,
-) {
-    let descriptors = testutils!(@descriptors (descriptor));
-    let wallet = Wallet::new_offline(
-        &descriptors.0,
-        None,
-        Network::Regtest,
-        MemoryDatabase::new(),
-    )
-    .unwrap();
-
-    let funding_address_kix = 0;
-
-    let tx_meta = testutils! {
-            @tx ( (@external descriptors, funding_address_kix) => 50_000 ) (@confirmations 1)
-    };
-
-    wallet
-        .database
-        .borrow_mut()
-        .set_script_pubkey(
-            &bitcoin::Address::from_str(&tx_meta.output.get(0).unwrap().to_address)
-                .unwrap()
-                .script_pubkey(),
-            KeychainKind::External,
-            funding_address_kix,
-        )
-        .unwrap();
-    wallet
-        .database
-        .borrow_mut()
-        .set_last_index(KeychainKind::External, funding_address_kix)
-        .unwrap();
-
-    let txid = crate::populate_test_db!(wallet.database.borrow_mut(), tx_meta, Some(100));
-
-    (wallet, descriptors, txid)
-}
-
-#[cfg(test)]
-pub(crate) mod test {
-    use bitcoin::{util::psbt, Network};
-
-    use crate::database::Database;
-    use crate::types::KeychainKind;
-
-    use super::*;
-    use crate::signer::{SignOptions, SignerError};
-    use crate::wallet::AddressIndex::{LastUnused, New, Peek, Reset};
-
-    #[test]
-    fn test_cache_addresses_fixed() {
-        let db = MemoryDatabase::new();
-        let wallet = Wallet::new_offline(
-            "wpkh(L5EZftvrYaSudiozVRzTqLcHLNDoVn7H5HSfM9BAN6tMJX8oTWz6)",
-            None,
-            Network::Testnet,
-            db,
-        )
-        .unwrap();
-
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1qj08ys4ct2hzzc2hcz6h2hgrvlmsjynaw43s835"
-        );
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1qj08ys4ct2hzzc2hcz6h2hgrvlmsjynaw43s835"
-        );
-
-        assert!(wallet
-            .database
-            .borrow_mut()
-            .get_script_pubkey_from_path(KeychainKind::External, 0)
-            .unwrap()
-            .is_some());
-        assert!(wallet
-            .database
-            .borrow_mut()
-            .get_script_pubkey_from_path(KeychainKind::Internal, 0)
-            .unwrap()
-            .is_none());
-    }
-
-    #[test]
-    fn test_cache_addresses() {
-        let db = MemoryDatabase::new();
-        let wallet = Wallet::new_offline("wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)", None, Network::Testnet, db).unwrap();
-
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a"
-        );
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7"
-        );
-
-        assert!(wallet
-            .database
-            .borrow_mut()
-            .get_script_pubkey_from_path(KeychainKind::External, CACHE_ADDR_BATCH_SIZE - 1)
-            .unwrap()
-            .is_some());
-        assert!(wallet
-            .database
-            .borrow_mut()
-            .get_script_pubkey_from_path(KeychainKind::External, CACHE_ADDR_BATCH_SIZE)
-            .unwrap()
-            .is_none());
-    }
-
-    #[test]
-    fn test_cache_addresses_refill() {
-        let db = MemoryDatabase::new();
-        let wallet = Wallet::new_offline("wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)", None, Network::Testnet, db).unwrap();
-
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a"
-        );
-        assert!(wallet
-            .database
-            .borrow_mut()
-            .get_script_pubkey_from_path(KeychainKind::External, CACHE_ADDR_BATCH_SIZE - 1)
-            .unwrap()
-            .is_some());
-
-        for _ in 0..CACHE_ADDR_BATCH_SIZE {
-            wallet.get_address(New).unwrap();
-        }
-
-        assert!(wallet
-            .database
-            .borrow_mut()
-            .get_script_pubkey_from_path(KeychainKind::External, CACHE_ADDR_BATCH_SIZE * 2 - 1)
-            .unwrap()
-            .is_some());
-    }
-
-    pub(crate) fn get_test_wpkh() -> &'static str {
-        "wpkh(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW)"
-    }
-
-    pub(crate) fn get_test_single_sig_csv() -> &'static str {
-        // and(pk(Alice),older(6))
-        "wsh(and_v(v:pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW),older(6)))"
-    }
-
-    pub(crate) fn get_test_a_or_b_plus_csv() -> &'static str {
-        // or(pk(Alice),and(pk(Bob),older(144)))
-        "wsh(or_d(pk(cRjo6jqfVNP33HhSS76UhXETZsGTZYx8FMFvR9kpbtCSV1PmdZdu),and_v(v:pk(cMnkdebixpXMPfkcNEjjGin7s94hiehAH4mLbYkZoh9KSiNNmqC8),older(144))))"
-    }
-
-    pub(crate) fn get_test_single_sig_cltv() -> &'static str {
-        // and(pk(Alice),after(100000))
-        "wsh(and_v(v:pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW),after(100000)))"
-    }
-
-    macro_rules! assert_fee_rate {
-        ($tx:expr, $fees:expr, $fee_rate:expr $( ,@dust_change $( $dust_change:expr )* )* $( ,@add_signature $( $add_signature:expr )* )* ) => ({
-            let mut tx = $tx.clone();
-            $(
-                $( $add_signature )*
-                for txin in &mut tx.input {
-                    txin.witness.push([0x00; 108].to_vec()); // fake signature
-                }
-            )*
-
-            #[allow(unused_mut)]
-            #[allow(unused_assignments)]
-            let mut dust_change = false;
-            $(
-                $( $dust_change )*
-                dust_change = true;
-            )*
-
-            let tx_fee_rate = FeeRate::from_wu($fees, tx.get_weight());
-            let fee_rate = $fee_rate;
-
-            if !dust_change {
-                assert!((tx_fee_rate - fee_rate).as_sat_vb().abs() < 0.5, "Expected fee rate of {:?}, the tx has {:?}", fee_rate, tx_fee_rate);
-            } else {
-                assert!(tx_fee_rate >= fee_rate, "Expected fee rate of at least {:?}, the tx has {:?}", fee_rate, tx_fee_rate);
-            }
-        });
-    }
-
-    #[test]
-    #[should_panic(expected = "NoRecipients")]
-    fn test_create_tx_empty_recipients() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        wallet.build_tx().finish().unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "NoUtxosSelected")]
-    fn test_create_tx_manually_selected_empty_utxos() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .manually_selected_only();
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "Invalid version `0`")]
-    fn test_create_tx_version_0() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .version(0);
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    #[should_panic(
-        expected = "TxBuilder requested version `1`, but at least `2` is needed to use OP_CSV"
-    )]
-    fn test_create_tx_version_1_csv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_single_sig_csv());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .version(1);
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_create_tx_custom_version() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .version(42);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.version, 42);
-    }
-
-    #[test]
-    fn test_create_tx_default_locktime() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 25_000);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.lock_time, 0);
-    }
-
-    #[test]
-    fn test_create_tx_default_locktime_cltv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_single_sig_cltv());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 25_000);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.lock_time, 100_000);
-    }
-
-    #[test]
-    fn test_create_tx_custom_locktime() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .nlocktime(630_000);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.lock_time, 630_000);
-    }
-
-    #[test]
-    fn test_create_tx_custom_locktime_compatible_with_cltv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_single_sig_cltv());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .nlocktime(630_000);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.lock_time, 630_000);
-    }
-
-    #[test]
-    #[should_panic(
-        expected = "TxBuilder requested timelock of `50000`, but at least `100000` is required to spend from this script"
-    )]
-    fn test_create_tx_custom_locktime_incompatible_with_cltv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_single_sig_cltv());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .nlocktime(50000);
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_create_tx_no_rbf_csv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_single_sig_csv());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 25_000);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.input[0].sequence, 6);
-    }
-
-    #[test]
-    fn test_create_tx_with_default_rbf_csv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_single_sig_csv());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .enable_rbf();
-        let (psbt, _) = builder.finish().unwrap();
-        // When CSV is enabled it takes precedence over the rbf value (unless forced by the user).
-        // It will be set to the OP_CSV value, in this case 6
-        assert_eq!(psbt.global.unsigned_tx.input[0].sequence, 6);
-    }
-
-    #[test]
-    #[should_panic(
-        expected = "Cannot enable RBF with nSequence `3` given a required OP_CSV of `6`"
-    )]
-    fn test_create_tx_with_custom_rbf_csv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_single_sig_csv());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .enable_rbf_with_sequence(3);
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_create_tx_no_rbf_cltv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_single_sig_cltv());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 25_000);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.input[0].sequence, 0xFFFFFFFE);
-    }
-
-    #[test]
-    #[should_panic(expected = "Cannot enable RBF with a nSequence >= 0xFFFFFFFE")]
-    fn test_create_tx_invalid_rbf_sequence() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .enable_rbf_with_sequence(0xFFFFFFFE);
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_create_tx_custom_rbf_sequence() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .enable_rbf_with_sequence(0xDEADBEEF);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.input[0].sequence, 0xDEADBEEF);
-    }
-
-    #[test]
-    fn test_create_tx_default_sequence() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 25_000);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.input[0].sequence, 0xFFFFFFFF);
-    }
-
-    #[test]
-    #[should_panic(
-        expected = "The `change_policy` can be set only if the wallet has a change_descriptor"
-    )]
-    fn test_create_tx_change_policy_no_internal() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .do_not_spend_change();
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_create_tx_drain_wallet_and_drain_to() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.output.len(), 1);
-        assert_eq!(
-            psbt.global.unsigned_tx.output[0].value,
-            50_000 - details.fee.unwrap_or(0)
-        );
-    }
-
-    #[test]
-    fn test_create_tx_drain_wallet_and_drain_to_and_with_recipient() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-        let drain_addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 20_000)
-            .drain_to(drain_addr.script_pubkey())
-            .drain_wallet();
-        let (psbt, details) = builder.finish().unwrap();
-        dbg!(&psbt);
-        let outputs = psbt.global.unsigned_tx.output;
-
-        assert_eq!(outputs.len(), 2);
-        let main_output = outputs
-            .iter()
-            .find(|x| x.script_pubkey == addr.script_pubkey())
-            .unwrap();
-        let drain_output = outputs
-            .iter()
-            .find(|x| x.script_pubkey == drain_addr.script_pubkey())
-            .unwrap();
-        assert_eq!(main_output.value, 20_000,);
-        assert_eq!(drain_output.value, 30_000 - details.fee.unwrap_or(0));
-    }
-
-    #[test]
-    fn test_create_tx_default_fee_rate() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 25_000);
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_fee_rate!(psbt.extract_tx(), details.fee.unwrap_or(0), FeeRate::default(), @add_signature);
-    }
-
-    #[test]
-    fn test_create_tx_custom_fee_rate() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .fee_rate(FeeRate::from_sat_per_vb(5.0));
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_fee_rate!(psbt.extract_tx(), details.fee.unwrap_or(0), FeeRate::from_sat_per_vb(5.0), @add_signature);
-    }
-
-    #[test]
-    fn test_create_tx_absolute_fee() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .drain_wallet()
-            .fee_absolute(100);
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.fee.unwrap_or(0), 100);
-        assert_eq!(psbt.global.unsigned_tx.output.len(), 1);
-        assert_eq!(
-            psbt.global.unsigned_tx.output[0].value,
-            50_000 - details.fee.unwrap_or(0)
-        );
-    }
-
-    #[test]
-    fn test_create_tx_absolute_zero_fee() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .drain_wallet()
-            .fee_absolute(0);
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.fee.unwrap_or(0), 0);
-        assert_eq!(psbt.global.unsigned_tx.output.len(), 1);
-        assert_eq!(
-            psbt.global.unsigned_tx.output[0].value,
-            50_000 - details.fee.unwrap_or(0)
-        );
-    }
-
-    #[test]
-    #[should_panic(expected = "InsufficientFunds")]
-    fn test_create_tx_absolute_high_fee() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .drain_wallet()
-            .fee_absolute(60_000);
-        let (_psbt, _details) = builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_create_tx_add_change() {
-        use super::tx_builder::TxOrdering;
-
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .ordering(TxOrdering::Untouched);
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.output.len(), 2);
-        assert_eq!(psbt.global.unsigned_tx.output[0].value, 25_000);
-        assert_eq!(
-            psbt.global.unsigned_tx.output[1].value,
-            25_000 - details.fee.unwrap_or(0)
-        );
-    }
-
-    #[test]
-    fn test_create_tx_skip_change_dust() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 49_800);
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.output.len(), 1);
-        assert_eq!(psbt.global.unsigned_tx.output[0].value, 49_800);
-        assert_eq!(details.fee.unwrap_or(0), 200);
-    }
-
-    #[test]
-    #[should_panic(expected = "InsufficientFunds")]
-    fn test_create_tx_drain_to_dust_amount() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        // very high fee rate, so that the only output would be below dust
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .drain_wallet()
-            .fee_rate(FeeRate::from_sat_per_vb(453.0));
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_create_tx_ordering_respected() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 30_000)
-            .add_recipient(addr.script_pubkey(), 10_000)
-            .ordering(super::tx_builder::TxOrdering::Bip69Lexicographic);
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.output.len(), 3);
-        assert_eq!(
-            psbt.global.unsigned_tx.output[0].value,
-            10_000 - details.fee.unwrap_or(0)
-        );
-        assert_eq!(psbt.global.unsigned_tx.output[1].value, 10_000);
-        assert_eq!(psbt.global.unsigned_tx.output[2].value, 30_000);
-    }
-
-    #[test]
-    fn test_create_tx_default_sighash() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 30_000);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.inputs[0].sighash_type, None);
-    }
-
-    #[test]
-    fn test_create_tx_custom_sighash() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 30_000)
-            .sighash(bitcoin::SigHashType::Single);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(
-            psbt.inputs[0].sighash_type,
-            Some(bitcoin::SigHashType::Single)
-        );
-    }
-
-    #[test]
-    fn test_create_tx_input_hd_keypaths() {
-        use bitcoin::util::bip32::{DerivationPath, Fingerprint};
-        use std::str::FromStr;
-
-        let (wallet, _, _) = get_funded_wallet("wpkh([d34db33f/44'/0'/0']tpubDEnoLuPdBep9bzw5LoGYpsxUQYheRQ9gcgrJhJEcdKFB9cWQRyYmkCyRoTqeD4tJYiVVgt6A3rN6rWn9RYhR9sBsGxji29LYWHuKKbdb1ev/0/*)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.inputs[0].bip32_derivation.len(), 1);
-        assert_eq!(
-            psbt.inputs[0].bip32_derivation.values().next().unwrap(),
-            &(
-                Fingerprint::from_str("d34db33f").unwrap(),
-                DerivationPath::from_str("m/44'/0'/0'/0/0").unwrap()
-            )
-        );
-    }
-
-    #[test]
-    fn test_create_tx_output_hd_keypaths() {
-        use bitcoin::util::bip32::{DerivationPath, Fingerprint};
-        use std::str::FromStr;
-
-        let (wallet, descriptors, _) = get_funded_wallet("wpkh([d34db33f/44'/0'/0']tpubDEnoLuPdBep9bzw5LoGYpsxUQYheRQ9gcgrJhJEcdKFB9cWQRyYmkCyRoTqeD4tJYiVVgt6A3rN6rWn9RYhR9sBsGxji29LYWHuKKbdb1ev/0/*)");
-        // cache some addresses
-        wallet.get_address(New).unwrap();
-
-        let addr = testutils!(@external descriptors, 5);
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.outputs[0].bip32_derivation.len(), 1);
-        assert_eq!(
-            psbt.outputs[0].bip32_derivation.values().next().unwrap(),
-            &(
-                Fingerprint::from_str("d34db33f").unwrap(),
-                DerivationPath::from_str("m/44'/0'/0'/0/5").unwrap()
-            )
-        );
-    }
-
-    #[test]
-    fn test_create_tx_set_redeem_script_p2sh() {
-        use bitcoin::hashes::hex::FromHex;
-
-        let (wallet, _, _) =
-            get_funded_wallet("sh(pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW))");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(
-            psbt.inputs[0].redeem_script,
-            Some(Script::from(
-                Vec::<u8>::from_hex(
-                    "21032b0558078bec38694a84933d659303e2575dae7e91685911454115bfd64487e3ac"
-                )
-                .unwrap()
-            ))
-        );
-        assert_eq!(psbt.inputs[0].witness_script, None);
-    }
-
-    #[test]
-    fn test_create_tx_set_witness_script_p2wsh() {
-        use bitcoin::hashes::hex::FromHex;
-
-        let (wallet, _, _) =
-            get_funded_wallet("wsh(pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW))");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.inputs[0].redeem_script, None);
-        assert_eq!(
-            psbt.inputs[0].witness_script,
-            Some(Script::from(
-                Vec::<u8>::from_hex(
-                    "21032b0558078bec38694a84933d659303e2575dae7e91685911454115bfd64487e3ac"
-                )
-                .unwrap()
-            ))
-        );
-    }
-
-    #[test]
-    fn test_create_tx_set_redeem_witness_script_p2wsh_p2sh() {
-        use bitcoin::hashes::hex::FromHex;
-
-        let (wallet, _, _) =
-            get_funded_wallet("sh(wsh(pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW)))");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (psbt, _) = builder.finish().unwrap();
-
-        let script = Script::from(
-            Vec::<u8>::from_hex(
-                "21032b0558078bec38694a84933d659303e2575dae7e91685911454115bfd64487e3ac",
-            )
-            .unwrap(),
-        );
-
-        assert_eq!(psbt.inputs[0].redeem_script, Some(script.to_v0_p2wsh()));
-        assert_eq!(psbt.inputs[0].witness_script, Some(script));
-    }
-
-    #[test]
-    fn test_create_tx_non_witness_utxo() {
-        let (wallet, _, _) =
-            get_funded_wallet("sh(pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW))");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert!(psbt.inputs[0].non_witness_utxo.is_some());
-        assert!(psbt.inputs[0].witness_utxo.is_none());
-    }
-
-    #[test]
-    fn test_create_tx_only_witness_utxo() {
-        let (wallet, _, _) =
-            get_funded_wallet("wsh(pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW))");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .only_witness_utxo()
-            .drain_wallet();
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert!(psbt.inputs[0].non_witness_utxo.is_none());
-        assert!(psbt.inputs[0].witness_utxo.is_some());
-    }
-
-    #[test]
-    fn test_create_tx_shwpkh_has_witness_utxo() {
-        let (wallet, _, _) =
-            get_funded_wallet("sh(wpkh(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW))");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert!(psbt.inputs[0].witness_utxo.is_some());
-    }
-
-    #[test]
-    fn test_create_tx_both_non_witness_utxo_and_witness_utxo_default() {
-        let (wallet, _, _) =
-            get_funded_wallet("wsh(pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW))");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert!(psbt.inputs[0].non_witness_utxo.is_some());
-        assert!(psbt.inputs[0].witness_utxo.is_some());
-    }
-
-    #[test]
-    fn test_create_tx_add_utxo() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        let small_output_txid = crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 30_000)
-            .add_utxo(OutPoint {
-                txid: small_output_txid,
-                vout: 0,
-            })
-            .unwrap();
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(
-            psbt.global.unsigned_tx.input.len(),
-            2,
-            "should add an additional input since 25_000 < 30_000"
-        );
-        assert_eq!(details.sent, 75_000, "total should be sum of both inputs");
-    }
-
-    #[test]
-    #[should_panic(expected = "InsufficientFunds")]
-    fn test_create_tx_manually_selected_insufficient() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        let small_output_txid = crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 30_000)
-            .add_utxo(OutPoint {
-                txid: small_output_txid,
-                vout: 0,
-            })
-            .unwrap()
-            .manually_selected_only();
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "SpendingPolicyRequired(External)")]
-    fn test_create_tx_policy_path_required() {
-        let (wallet, _, _) = get_funded_wallet(get_test_a_or_b_plus_csv());
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 30_000);
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_create_tx_policy_path_no_csv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_a_or_b_plus_csv());
-
-        let external_policy = wallet.policies(KeychainKind::External).unwrap().unwrap();
-        let root_id = external_policy.id;
-        // child #0 is just the key "A"
-        let path = vec![(root_id, vec![0])].into_iter().collect();
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 30_000)
-            .policy_path(path, KeychainKind::External);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.input[0].sequence, 0xFFFFFFFF);
-    }
-
-    #[test]
-    fn test_create_tx_policy_path_use_csv() {
-        let (wallet, _, _) = get_funded_wallet(get_test_a_or_b_plus_csv());
-
-        let external_policy = wallet.policies(KeychainKind::External).unwrap().unwrap();
-        let root_id = external_policy.id;
-        // child #1 is or(pk(B),older(144))
-        let path = vec![(root_id, vec![1])].into_iter().collect();
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 30_000)
-            .policy_path(path, KeychainKind::External);
-        let (psbt, _) = builder.finish().unwrap();
-
-        assert_eq!(psbt.global.unsigned_tx.input[0].sequence, 144);
-    }
-
-    #[test]
-    fn test_create_tx_global_xpubs_with_origin() {
-        use bitcoin::hashes::hex::FromHex;
-        use bitcoin::util::base58;
-        use bitcoin::util::psbt::raw::Key;
-
-        let (wallet, _, _) = get_funded_wallet("wpkh([73756c7f/48'/0'/0'/2']tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3/0/*)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .add_global_xpubs();
-        let (psbt, _) = builder.finish().unwrap();
-
-        let type_value = 0x01;
-        let key = base58::from_check("tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3").unwrap();
-
-        let psbt_key = Key { type_value, key };
-
-        // This key has an explicit origin, so it will be encoded here
-        let value_bytes = Vec::<u8>::from_hex("73756c7f30000080000000800000008002000080").unwrap();
-
-        assert_eq!(psbt.global.unknown.len(), 1);
-        assert_eq!(psbt.global.unknown.get(&psbt_key), Some(&value_bytes));
-    }
-
-    #[test]
-    fn test_add_foreign_utxo() {
-        let (wallet1, _, _) = get_funded_wallet(get_test_wpkh());
-        let (wallet2, _, _) =
-            get_funded_wallet("wpkh(cVbZ8ovhye9AoAHFsqobCf7LxbXDAECy9Kb8TZdfsDYMZGBUyCnm)");
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let utxo = wallet2.list_unspent().unwrap().remove(0);
-        let foreign_utxo_satisfaction = wallet2
-            .get_descriptor_for_keychain(KeychainKind::External)
-            .max_satisfaction_weight()
-            .unwrap();
-
-        let psbt_input = psbt::Input {
-            witness_utxo: Some(utxo.txout.clone()),
-            ..Default::default()
-        };
-
-        let mut builder = wallet1.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 60_000)
-            .only_witness_utxo()
-            .add_foreign_utxo(utxo.outpoint, psbt_input, foreign_utxo_satisfaction)
-            .unwrap();
-        let (mut psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(
-            details.sent - details.received,
-            10_000 + details.fee.unwrap_or(0),
-            "we should have only net spent ~10_000"
-        );
-
-        assert!(
-            psbt.global
-                .unsigned_tx
-                .input
-                .iter()
-                .any(|input| input.previous_output == utxo.outpoint),
-            "foreign_utxo should be in there"
-        );
-
-        let finished = wallet1
-            .sign(
-                &mut psbt,
-                SignOptions {
-                    trust_witness_utxo: true,
-                    ..Default::default()
-                },
-            )
-            .unwrap();
-
-        assert!(
-            !finished,
-            "only one of the inputs should have been signed so far"
-        );
-
-        let finished = wallet2
-            .sign(
-                &mut psbt,
-                SignOptions {
-                    trust_witness_utxo: true,
-                    ..Default::default()
-                },
-            )
-            .unwrap();
-        assert!(finished, "all the inputs should have been signed now");
-    }
-
-    #[test]
-    #[should_panic(expected = "Generic(\"Foreign utxo missing witness_utxo or non_witness_utxo\")")]
-    fn test_add_foreign_utxo_invalid_psbt_input() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let mut builder = wallet.build_tx();
-        let outpoint = wallet.list_unspent().unwrap()[0].outpoint;
-        let foreign_utxo_satisfaction = wallet
-            .get_descriptor_for_keychain(KeychainKind::External)
-            .max_satisfaction_weight()
-            .unwrap();
-        builder
-            .add_foreign_utxo(outpoint, psbt::Input::default(), foreign_utxo_satisfaction)
-            .unwrap();
-    }
-
-    #[test]
-    fn test_add_foreign_utxo_where_outpoint_doesnt_match_psbt_input() {
-        let (wallet1, _, txid1) = get_funded_wallet(get_test_wpkh());
-        let (wallet2, _, txid2) =
-            get_funded_wallet("wpkh(cVbZ8ovhye9AoAHFsqobCf7LxbXDAECy9Kb8TZdfsDYMZGBUyCnm)");
-
-        let utxo2 = wallet2.list_unspent().unwrap().remove(0);
-        let tx1 = wallet1
-            .database
-            .borrow()
-            .get_tx(&txid1, true)
-            .unwrap()
-            .unwrap()
-            .transaction
-            .unwrap();
-        let tx2 = wallet2
-            .database
-            .borrow()
-            .get_tx(&txid2, true)
-            .unwrap()
-            .unwrap()
-            .transaction
-            .unwrap();
-
-        let satisfaction_weight = wallet2
-            .get_descriptor_for_keychain(KeychainKind::External)
-            .max_satisfaction_weight()
-            .unwrap();
-
-        let mut builder = wallet1.build_tx();
-        assert!(
-            builder
-                .add_foreign_utxo(
-                    utxo2.outpoint,
-                    psbt::Input {
-                        non_witness_utxo: Some(tx1),
-                        ..Default::default()
-                    },
-                    satisfaction_weight
-                )
-                .is_err(),
-            "should fail when outpoint doesn't match psbt_input"
-        );
-        assert!(
-            builder
-                .add_foreign_utxo(
-                    utxo2.outpoint,
-                    psbt::Input {
-                        non_witness_utxo: Some(tx2),
-                        ..Default::default()
-                    },
-                    satisfaction_weight
-                )
-                .is_ok(),
-            "shoulld be ok when outpoint does match psbt_input"
-        );
-    }
-
-    #[test]
-    fn test_add_foreign_utxo_only_witness_utxo() {
-        let (wallet1, _, _) = get_funded_wallet(get_test_wpkh());
-        let (wallet2, _, txid2) =
-            get_funded_wallet("wpkh(cVbZ8ovhye9AoAHFsqobCf7LxbXDAECy9Kb8TZdfsDYMZGBUyCnm)");
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let utxo2 = wallet2.list_unspent().unwrap().remove(0);
-
-        let satisfaction_weight = wallet2
-            .get_descriptor_for_keychain(KeychainKind::External)
-            .max_satisfaction_weight()
-            .unwrap();
-
-        let mut builder = wallet1.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 60_000);
-
-        {
-            let mut builder = builder.clone();
-            let psbt_input = psbt::Input {
-                witness_utxo: Some(utxo2.txout.clone()),
-                ..Default::default()
-            };
-            builder
-                .add_foreign_utxo(utxo2.outpoint, psbt_input, satisfaction_weight)
-                .unwrap();
-            assert!(
-                builder.finish().is_err(),
-                "psbt_input with witness_utxo should fail with only witness_utxo"
-            );
-        }
-
-        {
-            let mut builder = builder.clone();
-            let psbt_input = psbt::Input {
-                witness_utxo: Some(utxo2.txout.clone()),
-                ..Default::default()
-            };
-            builder
-                .only_witness_utxo()
-                .add_foreign_utxo(utxo2.outpoint, psbt_input, satisfaction_weight)
-                .unwrap();
-            assert!(
-                builder.finish().is_ok(),
-                "psbt_input with just witness_utxo should succeed when `only_witness_utxo` is enabled"
-            );
-        }
-
-        {
-            let mut builder = builder.clone();
-            let tx2 = wallet2
-                .database
-                .borrow()
-                .get_tx(&txid2, true)
-                .unwrap()
-                .unwrap()
-                .transaction
-                .unwrap();
-            let psbt_input = psbt::Input {
-                non_witness_utxo: Some(tx2),
-                ..Default::default()
-            };
-            builder
-                .add_foreign_utxo(utxo2.outpoint, psbt_input, satisfaction_weight)
-                .unwrap();
-            assert!(
-                builder.finish().is_ok(),
-                "psbt_input with non_witness_utxo should succeed by default"
-            );
-        }
-    }
-
-    #[test]
-    fn test_get_psbt_input() {
-        // this should grab a known good utxo and set the input
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        for utxo in wallet.list_unspent().unwrap() {
-            let psbt_input = wallet.get_psbt_input(utxo, None, false).unwrap();
-            assert!(psbt_input.witness_utxo.is_some() || psbt_input.non_witness_utxo.is_some());
-        }
-    }
-
-    #[test]
-    #[should_panic(
-        expected = "MissingKeyOrigin(\"tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3\")"
-    )]
-    fn test_create_tx_global_xpubs_origin_missing() {
-        let (wallet, _, _) = get_funded_wallet("wpkh(tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3/0/*)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .add_global_xpubs();
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_create_tx_global_xpubs_master_without_origin() {
-        use bitcoin::hashes::hex::FromHex;
-        use bitcoin::util::base58;
-        use bitcoin::util::psbt::raw::Key;
-
-        let (wallet, _, _) = get_funded_wallet("wpkh(tpubD6NzVbkrYhZ4Y55A58Gv9RSNF5hy84b5AJqYy7sCcjFrkcLpPre8kmgfit6kY1Zs3BLgeypTDBZJM222guPpdz7Cup5yzaMu62u7mYGbwFL/0/*)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .add_global_xpubs();
-        let (psbt, _) = builder.finish().unwrap();
-
-        let type_value = 0x01;
-        let key = base58::from_check("tpubD6NzVbkrYhZ4Y55A58Gv9RSNF5hy84b5AJqYy7sCcjFrkcLpPre8kmgfit6kY1Zs3BLgeypTDBZJM222guPpdz7Cup5yzaMu62u7mYGbwFL").unwrap();
-
-        let psbt_key = Key { type_value, key };
-
-        // This key doesn't have an explicit origin, but it's a master key (depth = 0). So we encode
-        // its fingerprint directly and an empty path
-        let value_bytes = Vec::<u8>::from_hex("997a323b").unwrap();
-
-        assert_eq!(psbt.global.unknown.len(), 1);
-        assert_eq!(psbt.global.unknown.get(&psbt_key), Some(&value_bytes));
-    }
-
-    #[test]
-    #[should_panic(expected = "IrreplaceableTransaction")]
-    fn test_bump_fee_irreplaceable_tx() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 25_000);
-        let (psbt, mut details) = builder.finish().unwrap();
-
-        let tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the utxos, we know they can't be used anyways
-        details.transaction = Some(tx);
-        wallet.database.borrow_mut().set_tx(&details).unwrap();
-
-        wallet.build_fee_bump(txid).unwrap().finish().unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "TransactionConfirmed")]
-    fn test_bump_fee_confirmed_tx() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 25_000);
-        let (psbt, mut details) = builder.finish().unwrap();
-
-        let tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the utxos, we know they can't be used anyways
-        details.transaction = Some(tx);
-        details.confirmation_time = Some(BlockTime {
-            timestamp: 12345678,
-            height: 42,
-        });
-        wallet.database.borrow_mut().set_tx(&details).unwrap();
-
-        wallet.build_fee_bump(txid).unwrap().finish().unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "FeeRateTooLow")]
-    fn test_bump_fee_low_fee_rate() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .enable_rbf();
-        let (psbt, mut details) = builder.finish().unwrap();
-
-        let tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the utxos, we know they can't be used anyways
-        details.transaction = Some(tx);
-        wallet.database.borrow_mut().set_tx(&details).unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder.fee_rate(FeeRate::from_sat_per_vb(1.0));
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "FeeTooLow")]
-    fn test_bump_fee_low_abs() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .enable_rbf();
-        let (psbt, mut details) = builder.finish().unwrap();
-
-        let tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the utxos, we know they can't be used anyways
-        details.transaction = Some(tx);
-        wallet.database.borrow_mut().set_tx(&details).unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder.fee_absolute(10);
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    #[should_panic(expected = "FeeTooLow")]
-    fn test_bump_fee_zero_abs() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .enable_rbf();
-        let (psbt, mut details) = builder.finish().unwrap();
-
-        let tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the utxos, we know they can't be used anyways
-        details.transaction = Some(tx);
-        wallet.database.borrow_mut().set_tx(&details).unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder.fee_absolute(0);
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_bump_fee_reduce_change() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the new utxos, we know they can't be used anyways
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder.fee_rate(FeeRate::from_sat_per_vb(2.5)).enable_rbf();
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.sent, original_details.sent);
-        assert_eq!(
-            details.received + details.fee.unwrap_or(0),
-            original_details.received + original_details.fee.unwrap_or(0)
-        );
-        assert!(details.fee.unwrap_or(0) > original_details.fee.unwrap_or(0));
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.output.len(), 2);
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey == addr.script_pubkey())
-                .unwrap()
-                .value,
-            25_000
-        );
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey != addr.script_pubkey())
-                .unwrap()
-                .value,
-            details.received
-        );
-
-        assert_fee_rate!(psbt.extract_tx(), details.fee.unwrap_or(0), FeeRate::from_sat_per_vb(2.5), @add_signature);
-    }
-
-    #[test]
-    fn test_bump_fee_absolute_reduce_change() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 25_000)
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the new utxos, we know they can't be used anyways
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder.fee_absolute(200);
-        builder.enable_rbf();
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.sent, original_details.sent);
-        assert_eq!(
-            details.received + details.fee.unwrap_or(0),
-            original_details.received + original_details.fee.unwrap_or(0)
-        );
-        assert!(
-            details.fee.unwrap_or(0) > original_details.fee.unwrap_or(0),
-            "{} > {}",
-            details.fee.unwrap_or(0),
-            original_details.fee.unwrap_or(0)
-        );
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.output.len(), 2);
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey == addr.script_pubkey())
-                .unwrap()
-                .value,
-            25_000
-        );
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey != addr.script_pubkey())
-                .unwrap()
-                .value,
-            details.received
-        );
-
-        assert_eq!(details.fee.unwrap_or(0), 200);
-    }
-
-    #[test]
-    fn test_bump_fee_reduce_single_recipient() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .drain_wallet()
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder
-            .fee_rate(FeeRate::from_sat_per_vb(2.5))
-            .allow_shrinking(addr.script_pubkey())
-            .unwrap();
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.sent, original_details.sent);
-        assert!(details.fee.unwrap_or(0) > original_details.fee.unwrap_or(0));
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.output.len(), 1);
-        assert_eq!(tx.output[0].value + details.fee.unwrap_or(0), details.sent);
-
-        assert_fee_rate!(psbt.extract_tx(), details.fee.unwrap_or(0), FeeRate::from_sat_per_vb(2.5), @add_signature);
-    }
-
-    #[test]
-    fn test_bump_fee_absolute_reduce_single_recipient() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .drain_wallet()
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder
-            .allow_shrinking(addr.script_pubkey())
-            .unwrap()
-            .fee_absolute(300);
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.sent, original_details.sent);
-        assert!(details.fee.unwrap_or(0) > original_details.fee.unwrap_or(0));
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.output.len(), 1);
-        assert_eq!(tx.output[0].value + details.fee.unwrap_or(0), details.sent);
-
-        assert_eq!(details.fee.unwrap_or(0), 300);
-    }
-
-    #[test]
-    fn test_bump_fee_drain_wallet() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        // receive an extra tx so that our wallet has two utxos.
-        let incoming_txid = crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-        let outpoint = OutPoint {
-            txid: incoming_txid,
-            vout: 0,
-        };
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .add_utxo(outpoint)
-            .unwrap()
-            .manually_selected_only()
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-        assert_eq!(original_details.sent, 25_000);
-
-        // for the new feerate, it should be enough to reduce the output, but since we specify
-        // `drain_wallet` we expect to spend everything
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder
-            .drain_wallet()
-            .allow_shrinking(addr.script_pubkey())
-            .unwrap()
-            .fee_rate(FeeRate::from_sat_per_vb(5.0));
-        let (_, details) = builder.finish().unwrap();
-        assert_eq!(details.sent, 75_000);
-    }
-
-    #[test]
-    #[should_panic(expected = "InsufficientFunds")]
-    fn test_bump_fee_remove_output_manually_selected_only() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        // receive an extra tx so that our wallet has two utxos. then we manually pick only one of
-        // them, and make sure that `bump_fee` doesn't try to add more. This fails because we've
-        // told the wallet it's not allowed to add more inputs AND it can't reduce the value of the
-        // existing output. In other words, bump_fee + manually_selected_only is always an error
-        // unless you've also set "allow_shrinking" OR there is a change output.
-        let incoming_txid = crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-        let outpoint = OutPoint {
-            txid: incoming_txid,
-            vout: 0,
-        };
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .add_utxo(outpoint)
-            .unwrap()
-            .manually_selected_only()
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-        assert_eq!(original_details.sent, 25_000);
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder
-            .manually_selected_only()
-            .fee_rate(FeeRate::from_sat_per_vb(255.0));
-        builder.finish().unwrap();
-    }
-
-    #[test]
-    fn test_bump_fee_add_input() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 45_000)
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the new utxos, we know they can't be used anyways
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder.fee_rate(FeeRate::from_sat_per_vb(50.0));
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.sent, original_details.sent + 25_000);
-        assert_eq!(details.fee.unwrap_or(0) + details.received, 30_000);
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.input.len(), 2);
-        assert_eq!(tx.output.len(), 2);
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey == addr.script_pubkey())
-                .unwrap()
-                .value,
-            45_000
-        );
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey != addr.script_pubkey())
-                .unwrap()
-                .value,
-            details.received
-        );
-
-        assert_fee_rate!(psbt.extract_tx(), details.fee.unwrap_or(0), FeeRate::from_sat_per_vb(50.0), @add_signature);
-    }
-
-    #[test]
-    fn test_bump_fee_absolute_add_input() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 45_000)
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the new utxos, we know they can't be used anyways
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder.fee_absolute(6_000);
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.sent, original_details.sent + 25_000);
-        assert_eq!(details.fee.unwrap_or(0) + details.received, 30_000);
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.input.len(), 2);
-        assert_eq!(tx.output.len(), 2);
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey == addr.script_pubkey())
-                .unwrap()
-                .value,
-            45_000
-        );
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey != addr.script_pubkey())
-                .unwrap()
-                .value,
-            details.received
-        );
-
-        assert_eq!(details.fee.unwrap_or(0), 6_000);
-    }
-
-    #[test]
-    fn test_bump_fee_no_change_add_input_and_change() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        let incoming_txid = crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-
-        // initially make a tx without change by using `drain_to`
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .add_utxo(OutPoint {
-                txid: incoming_txid,
-                vout: 0,
-            })
-            .unwrap()
-            .manually_selected_only()
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the new utxos, we know they can't be used anyways
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        // now bump the fees without using `allow_shrinking`. the wallet should add an
-        // extra input and a change output, and leave the original output untouched
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder.fee_rate(FeeRate::from_sat_per_vb(50.0));
-        let (psbt, details) = builder.finish().unwrap();
-
-        let original_send_all_amount = original_details.sent - original_details.fee.unwrap_or(0);
-        assert_eq!(details.sent, original_details.sent + 50_000);
-        assert_eq!(
-            details.received,
-            75_000 - original_send_all_amount - details.fee.unwrap_or(0)
-        );
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.input.len(), 2);
-        assert_eq!(tx.output.len(), 2);
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey == addr.script_pubkey())
-                .unwrap()
-                .value,
-            original_send_all_amount
-        );
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey != addr.script_pubkey())
-                .unwrap()
-                .value,
-            75_000 - original_send_all_amount - details.fee.unwrap_or(0)
-        );
-
-        assert_fee_rate!(psbt.extract_tx(), details.fee.unwrap_or(0), FeeRate::from_sat_per_vb(50.0), @add_signature);
-    }
-
-    #[test]
-    fn test_bump_fee_add_input_change_dust() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 45_000)
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        assert_eq!(tx.input.len(), 1);
-        assert_eq!(tx.output.len(), 2);
-        let txid = tx.txid();
-        // skip saving the new utxos, we know they can't be used anyways
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder.fee_rate(FeeRate::from_sat_per_vb(140.0));
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(
-            original_details.received,
-            5_000 - original_details.fee.unwrap_or(0)
-        );
-
-        assert_eq!(details.sent, original_details.sent + 25_000);
-        assert_eq!(details.fee.unwrap_or(0), 30_000);
-        assert_eq!(details.received, 0);
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.input.len(), 2);
-        assert_eq!(tx.output.len(), 1);
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey == addr.script_pubkey())
-                .unwrap()
-                .value,
-            45_000
-        );
-
-        assert_fee_rate!(psbt.extract_tx(), details.fee.unwrap_or(0), FeeRate::from_sat_per_vb(140.0), @dust_change, @add_signature);
-    }
-
-    #[test]
-    fn test_bump_fee_force_add_input() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        let incoming_txid = crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 45_000)
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the new utxos, we know they can't be used anyways
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        // the new fee_rate is low enough that just reducing the change would be fine, but we force
-        // the addition of an extra input with `add_utxo()`
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder
-            .add_utxo(OutPoint {
-                txid: incoming_txid,
-                vout: 0,
-            })
-            .unwrap()
-            .fee_rate(FeeRate::from_sat_per_vb(5.0));
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.sent, original_details.sent + 25_000);
-        assert_eq!(details.fee.unwrap_or(0) + details.received, 30_000);
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.input.len(), 2);
-        assert_eq!(tx.output.len(), 2);
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey == addr.script_pubkey())
-                .unwrap()
-                .value,
-            45_000
-        );
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey != addr.script_pubkey())
-                .unwrap()
-                .value,
-            details.received
-        );
-
-        assert_fee_rate!(psbt.extract_tx(), details.fee.unwrap_or(0), FeeRate::from_sat_per_vb(5.0), @add_signature);
-    }
-
-    #[test]
-    fn test_bump_fee_absolute_force_add_input() {
-        let (wallet, descriptors, _) = get_funded_wallet(get_test_wpkh());
-        let incoming_txid = crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 45_000)
-            .enable_rbf();
-        let (psbt, mut original_details) = builder.finish().unwrap();
-        let mut tx = psbt.extract_tx();
-        let txid = tx.txid();
-        // skip saving the new utxos, we know they can't be used anyways
-        for txin in &mut tx.input {
-            txin.witness.push([0x00; 108].to_vec()); // fake signature
-            wallet
-                .database
-                .borrow_mut()
-                .del_utxo(&txin.previous_output)
-                .unwrap();
-        }
-        original_details.transaction = Some(tx);
-        wallet
-            .database
-            .borrow_mut()
-            .set_tx(&original_details)
-            .unwrap();
-
-        // the new fee_rate is low enough that just reducing the change would be fine, but we force
-        // the addition of an extra input with `add_utxo()`
-        let mut builder = wallet.build_fee_bump(txid).unwrap();
-        builder
-            .add_utxo(OutPoint {
-                txid: incoming_txid,
-                vout: 0,
-            })
-            .unwrap()
-            .fee_absolute(250);
-        let (psbt, details) = builder.finish().unwrap();
-
-        assert_eq!(details.sent, original_details.sent + 25_000);
-        assert_eq!(details.fee.unwrap_or(0) + details.received, 30_000);
-
-        let tx = &psbt.global.unsigned_tx;
-        assert_eq!(tx.input.len(), 2);
-        assert_eq!(tx.output.len(), 2);
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey == addr.script_pubkey())
-                .unwrap()
-                .value,
-            45_000
-        );
-        assert_eq!(
-            tx.output
-                .iter()
-                .find(|txout| txout.script_pubkey != addr.script_pubkey())
-                .unwrap()
-                .value,
-            details.received
-        );
-
-        assert_eq!(details.fee.unwrap_or(0), 250);
-    }
-
-    #[test]
-    fn test_sign_single_xprv() {
-        let (wallet, _, _) = get_funded_wallet("wpkh(tprv8ZgxMBicQKsPd3EupYiPRhaMooHKUHJxNsTfYuScep13go8QFfHdtkG9nRkFGb7busX4isf6X9dURGCoKgitaApQ6MupRhZMcELAxTBRJgS/*)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (mut psbt, _) = builder.finish().unwrap();
-
-        let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
-        assert!(finalized);
-
-        let extracted = psbt.extract_tx();
-        assert_eq!(extracted.input[0].witness.len(), 2);
-    }
-
-    #[test]
-    fn test_sign_single_xprv_with_master_fingerprint_and_path() {
-        let (wallet, _, _) = get_funded_wallet("wpkh([d34db33f/84h/1h/0h]tprv8ZgxMBicQKsPd3EupYiPRhaMooHKUHJxNsTfYuScep13go8QFfHdtkG9nRkFGb7busX4isf6X9dURGCoKgitaApQ6MupRhZMcELAxTBRJgS/*)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (mut psbt, _) = builder.finish().unwrap();
-
-        let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
-        assert!(finalized);
-
-        let extracted = psbt.extract_tx();
-        assert_eq!(extracted.input[0].witness.len(), 2);
-    }
-
-    #[test]
-    fn test_sign_single_xprv_bip44_path() {
-        let (wallet, _, _) = get_funded_wallet("wpkh(tprv8ZgxMBicQKsPd3EupYiPRhaMooHKUHJxNsTfYuScep13go8QFfHdtkG9nRkFGb7busX4isf6X9dURGCoKgitaApQ6MupRhZMcELAxTBRJgS/44'/0'/0'/0/*)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (mut psbt, _) = builder.finish().unwrap();
-
-        let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
-        assert!(finalized);
-
-        let extracted = psbt.extract_tx();
-        assert_eq!(extracted.input[0].witness.len(), 2);
-    }
-
-    #[test]
-    fn test_sign_single_xprv_sh_wpkh() {
-        let (wallet, _, _) = get_funded_wallet("sh(wpkh(tprv8ZgxMBicQKsPd3EupYiPRhaMooHKUHJxNsTfYuScep13go8QFfHdtkG9nRkFGb7busX4isf6X9dURGCoKgitaApQ6MupRhZMcELAxTBRJgS/*))");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (mut psbt, _) = builder.finish().unwrap();
-
-        let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
-        assert!(finalized);
-
-        let extracted = psbt.extract_tx();
-        assert_eq!(extracted.input[0].witness.len(), 2);
-    }
-
-    #[test]
-    fn test_sign_single_wif() {
-        let (wallet, _, _) =
-            get_funded_wallet("wpkh(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (mut psbt, _) = builder.finish().unwrap();
-
-        let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
-        assert!(finalized);
-
-        let extracted = psbt.extract_tx();
-        assert_eq!(extracted.input[0].witness.len(), 2);
-    }
-
-    #[test]
-    fn test_sign_single_xprv_no_hd_keypaths() {
-        let (wallet, _, _) = get_funded_wallet("wpkh(tprv8ZgxMBicQKsPd3EupYiPRhaMooHKUHJxNsTfYuScep13go8QFfHdtkG9nRkFGb7busX4isf6X9dURGCoKgitaApQ6MupRhZMcELAxTBRJgS/*)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder.drain_to(addr.script_pubkey()).drain_wallet();
-        let (mut psbt, _) = builder.finish().unwrap();
-
-        psbt.inputs[0].bip32_derivation.clear();
-        assert_eq!(psbt.inputs[0].bip32_derivation.len(), 0);
-
-        let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
-        assert!(finalized);
-
-        let extracted = psbt.extract_tx();
-        assert_eq!(extracted.input[0].witness.len(), 2);
-    }
-
-    #[test]
-    fn test_include_output_redeem_witness_script() {
-        let (wallet, _, _) = get_funded_wallet("sh(wsh(multi(1,cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW,cRjo6jqfVNP33HhSS76UhXETZsGTZYx8FMFvR9kpbtCSV1PmdZdu)))");
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 45_000)
-            .include_output_redeem_witness_script();
-        let (psbt, _) = builder.finish().unwrap();
-
-        // p2sh-p2wsh transaction should contain both witness and redeem scripts
-        assert!(psbt
-            .outputs
-            .iter()
-            .any(|output| output.redeem_script.is_some() && output.witness_script.is_some()));
-    }
-
-    #[test]
-    fn test_signing_only_one_of_multiple_inputs() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX").unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .add_recipient(addr.script_pubkey(), 45_000)
-            .include_output_redeem_witness_script();
-        let (mut psbt, _) = builder.finish().unwrap();
-
-        // add another input to the psbt that is at least passable.
-        let dud_input = bitcoin::util::psbt::Input {
-            witness_utxo: Some(TxOut {
-                value: 100_000,
-                script_pubkey: miniscript::Descriptor::<bitcoin::PublicKey>::from_str(
-                    "wpkh(025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357)",
-                )
-                .unwrap()
-                .script_pubkey(),
-            }),
-            ..Default::default()
-        };
-
-        psbt.inputs.push(dud_input);
-        psbt.global.unsigned_tx.input.push(bitcoin::TxIn::default());
-        let is_final = wallet
-            .sign(
-                &mut psbt,
-                SignOptions {
-                    trust_witness_utxo: true,
-                    ..Default::default()
-                },
-            )
-            .unwrap();
-        assert!(
-            !is_final,
-            "shouldn't be final since we can't sign one of the inputs"
-        );
-        assert!(
-            psbt.inputs[0].final_script_witness.is_some(),
-            "should finalized input it signed"
-        )
-    }
-
-    #[test]
-    fn test_sign_nonstandard_sighash() {
-        let sighash = SigHashType::NonePlusAnyoneCanPay;
-
-        let (wallet, _, _) = get_funded_wallet("wpkh(tprv8ZgxMBicQKsPd3EupYiPRhaMooHKUHJxNsTfYuScep13go8QFfHdtkG9nRkFGb7busX4isf6X9dURGCoKgitaApQ6MupRhZMcELAxTBRJgS/*)");
-        let addr = wallet.get_address(New).unwrap();
-        let mut builder = wallet.build_tx();
-        builder
-            .drain_to(addr.script_pubkey())
-            .sighash(sighash)
-            .drain_wallet();
-        let (mut psbt, _) = builder.finish().unwrap();
-
-        let result = wallet.sign(&mut psbt, Default::default());
-        assert!(
-            result.is_err(),
-            "Signing should have failed because the TX uses non-standard sighashes"
-        );
-        assert!(
-            matches!(
-                result.unwrap_err(),
-                Error::Signer(SignerError::NonStandardSighash)
-            ),
-            "Signing failed with the wrong error type"
-        );
-
-        // try again after opting-in
-        let result = wallet.sign(
-            &mut psbt,
-            SignOptions {
-                allow_all_sighashes: true,
-                ..Default::default()
-            },
-        );
-        assert!(result.is_ok(), "Signing should have worked");
-        assert!(
-            result.unwrap(),
-            "Should finalize the input since we can produce signatures"
-        );
-
-        let extracted = psbt.extract_tx();
-        assert_eq!(
-            *extracted.input[0].witness[0].last().unwrap(),
-            sighash.as_u32() as u8,
-            "The signature should have been made with the right sighash"
-        );
-    }
-
-    #[test]
-    fn test_unused_address() {
-        let db = MemoryDatabase::new();
-        let wallet = Wallet::new_offline("wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)",
-                                         None, Network::Testnet, db).unwrap();
-
-        assert_eq!(
-            wallet.get_address(LastUnused).unwrap().to_string(),
-            "tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a"
-        );
-        assert_eq!(
-            wallet.get_address(LastUnused).unwrap().to_string(),
-            "tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a"
-        );
-    }
-
-    #[test]
-    fn test_next_unused_address() {
-        let descriptor = "wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)";
-        let descriptors = testutils!(@descriptors (descriptor));
-        let wallet = Wallet::new_offline(
-            &descriptors.0,
-            None,
-            Network::Testnet,
-            MemoryDatabase::new(),
-        )
-        .unwrap();
-
-        assert_eq!(
-            wallet.get_address(LastUnused).unwrap().to_string(),
-            "tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a"
-        );
-
-        // use the above address
-        crate::populate_test_db!(
-            wallet.database.borrow_mut(),
-            testutils! (@tx ( (@external descriptors, 0) => 25_000 ) (@confirmations 1)),
-            Some(100),
-        );
-
-        assert_eq!(
-            wallet.get_address(LastUnused).unwrap().to_string(),
-            "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7"
-        );
-    }
-
-    #[test]
-    fn test_peek_address_at_index() {
-        let db = MemoryDatabase::new();
-        let wallet = Wallet::new_offline("wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)",
-                                         None, Network::Testnet, db).unwrap();
-
-        assert_eq!(
-            wallet.get_address(Peek(1)).unwrap().to_string(),
-            "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7"
-        );
-
-        assert_eq!(
-            wallet.get_address(Peek(0)).unwrap().to_string(),
-            "tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a"
-        );
-
-        assert_eq!(
-            wallet.get_address(Peek(2)).unwrap().to_string(),
-            "tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2"
-        );
-
-        // current new address is not affected
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a"
-        );
-
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7"
-        );
-    }
-
-    #[test]
-    fn test_peek_address_at_index_not_derivable() {
-        let db = MemoryDatabase::new();
-        let wallet = Wallet::new_offline("wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/1)",
-                                         None, Network::Testnet, db).unwrap();
-
-        assert_eq!(
-            wallet.get_address(Peek(1)).unwrap().to_string(),
-            "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7"
-        );
-
-        assert_eq!(
-            wallet.get_address(Peek(0)).unwrap().to_string(),
-            "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7"
-        );
-
-        assert_eq!(
-            wallet.get_address(Peek(2)).unwrap().to_string(),
-            "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7"
-        );
-    }
-
-    #[test]
-    fn test_reset_address_index() {
-        let db = MemoryDatabase::new();
-        let wallet = Wallet::new_offline("wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)",
-                                         None, Network::Testnet, db).unwrap();
-
-        // new index 0
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a"
-        );
-
-        // new index 1
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7"
-        );
-
-        // new index 2
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2"
-        );
-
-        //  reset index 1 again
-        assert_eq!(
-            wallet.get_address(Reset(1)).unwrap().to_string(),
-            "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7"
-        );
-
-        // new index 2 again
-        assert_eq!(
-            wallet.get_address(New).unwrap().to_string(),
-            "tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2"
-        );
-    }
-
-    #[test]
-    fn test_returns_index_and_address() {
-        let db = MemoryDatabase::new();
-        let wallet = Wallet::new_offline("wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)",
-                                         None, Network::Testnet, db).unwrap();
-
-        // new index 0
-        assert_eq!(
-            wallet.get_address(New).unwrap(),
-            AddressInfo {
-                index: 0,
-                address: Address::from_str("tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a").unwrap(),
-            }
-        );
-
-        // new index 1
-        assert_eq!(
-            wallet.get_address(New).unwrap(),
-            AddressInfo {
-                index: 1,
-                address: Address::from_str("tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7").unwrap()
-            }
-        );
-
-        // peek index 25
-        assert_eq!(
-            wallet.get_address(Peek(25)).unwrap(),
-            AddressInfo {
-                index: 25,
-                address: Address::from_str("tb1qsp7qu0knx3sl6536dzs0703u2w2ag6ppl9d0c2").unwrap()
-            }
-        );
-
-        // new index 2
-        assert_eq!(
-            wallet.get_address(New).unwrap(),
-            AddressInfo {
-                index: 2,
-                address: Address::from_str("tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2").unwrap()
-            }
-        );
-
-        //  reset index 1 again
-        assert_eq!(
-            wallet.get_address(Reset(1)).unwrap(),
-            AddressInfo {
-                index: 1,
-                address: Address::from_str("tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7").unwrap()
-            }
-        );
-
-        // new index 2 again
-        assert_eq!(
-            wallet.get_address(New).unwrap(),
-            AddressInfo {
-                index: 2,
-                address: Address::from_str("tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2").unwrap()
-            }
-        );
-    }
-
-    #[test]
-    fn test_sending_to_bip350_bech32m_address() {
-        let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
-        let addr =
-            Address::from_str("tb1pqqqqp399et2xygdj5xreqhjjvcmzhxw4aywxecjdzew6hylgvsesf3hn0c")
-                .unwrap();
-        let mut builder = wallet.build_tx();
-        builder.add_recipient(addr.script_pubkey(), 45_000);
-        builder.finish().unwrap();
-    }
-}
-
-/// Deterministically generate a unique name given the descriptors defining the wallet
-pub fn wallet_name_from_descriptor<T>(
-    descriptor: T,
-    change_descriptor: Option<T>,
-    network: Network,
-    secp: &SecpCtx,
-) -> Result<String, Error>
-where
-    T: IntoWalletDescriptor,
-{
-    //TODO check descriptors contains only public keys
-    let descriptor = descriptor
-        .into_wallet_descriptor(secp, network)?
-        .0
-        .to_string();
-    let mut wallet_name = get_checksum(&descriptor[..descriptor.find('#').unwrap()])?;
-    if let Some(change_descriptor) = change_descriptor {
-        let change_descriptor = change_descriptor
-            .into_wallet_descriptor(secp, network)?
-            .0
-            .to_string();
-        wallet_name.push_str(
-            get_checksum(&change_descriptor[..change_descriptor.find('#').unwrap()])?.as_str(),
-        );
-    }
-
-    Ok(wallet_name)
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/signer.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/signer.rs.html deleted file mode 100644 index 0791148104..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/signer.rs.html +++ /dev/null @@ -1,1537 +0,0 @@ -signer.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Generalized signers
-//!
-//! This module provides the ability to add customized signers to a [`Wallet`](super::Wallet)
-//! through the [`Wallet::add_signer`](super::Wallet::add_signer) function.
-//!
-//! ```
-//! # use std::sync::Arc;
-//! # use std::str::FromStr;
-//! # use bitcoin::secp256k1::{Secp256k1, All};
-//! # use bitcoin::*;
-//! # use bitcoin::util::psbt;
-//! # use bdk::signer::*;
-//! # use bdk::database::*;
-//! # use bdk::*;
-//! # #[derive(Debug)]
-//! # struct CustomHSM;
-//! # impl CustomHSM {
-//! #     fn sign_input(&self, _psbt: &mut psbt::PartiallySignedTransaction, _input: usize) -> Result<(), SignerError> {
-//! #         Ok(())
-//! #     }
-//! #     fn connect() -> Self {
-//! #         CustomHSM
-//! #     }
-//! #     fn get_id(&self) -> SignerId {
-//! #         SignerId::Dummy(0)
-//! #     }
-//! # }
-//! #[derive(Debug)]
-//! struct CustomSigner {
-//!     device: CustomHSM,
-//! }
-//!
-//! impl CustomSigner {
-//!     fn connect() -> Self {
-//!         CustomSigner { device: CustomHSM::connect() }
-//!     }
-//! }
-//!
-//! impl Signer for CustomSigner {
-//!     fn sign(
-//!         &self,
-//!         psbt: &mut psbt::PartiallySignedTransaction,
-//!         input_index: Option<usize>,
-//!         _secp: &Secp256k1<All>,
-//!     ) -> Result<(), SignerError> {
-//!         let input_index = input_index.ok_or(SignerError::InputIndexOutOfRange)?;
-//!         self.device.sign_input(psbt, input_index)?;
-//!
-//!         Ok(())
-//!     }
-//!
-//!     fn id(&self, _secp: &Secp256k1<All>) -> SignerId {
-//!         self.device.get_id()
-//!     }
-//!
-//!     fn sign_whole_tx(&self) -> bool {
-//!         false
-//!     }
-//! }
-//!
-//! let custom_signer = CustomSigner::connect();
-//!
-//! let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
-//! let mut wallet = Wallet::new_offline(descriptor, None, Network::Testnet, MemoryDatabase::default())?;
-//! wallet.add_signer(
-//!     KeychainKind::External,
-//!     SignerOrdering(200),
-//!     Arc::new(custom_signer)
-//! );
-//!
-//! # Ok::<_, bdk::Error>(())
-//! ```
-
-use std::cmp::Ordering;
-use std::collections::BTreeMap;
-use std::fmt;
-use std::ops::Bound::Included;
-use std::sync::Arc;
-
-use bitcoin::blockdata::opcodes;
-use bitcoin::blockdata::script::Builder as ScriptBuilder;
-use bitcoin::hashes::{hash160, Hash};
-use bitcoin::secp256k1::{Message, Secp256k1};
-use bitcoin::util::bip32::{ChildNumber, DerivationPath, ExtendedPrivKey, Fingerprint};
-use bitcoin::util::{bip143, psbt};
-use bitcoin::{PrivateKey, Script, SigHash, SigHashType};
-
-use miniscript::descriptor::{DescriptorSecretKey, DescriptorSinglePriv, DescriptorXKey, KeyMap};
-use miniscript::{Legacy, MiniscriptKey, Segwitv0};
-
-use super::utils::SecpCtx;
-use crate::descriptor::XKeyUtils;
-
-/// Identifier of a signer in the `SignersContainers`. Used as a key to find the right signer among
-/// multiple of them
-#[derive(Debug, Clone, Ord, PartialOrd, PartialEq, Eq, Hash)]
-pub enum SignerId {
-    /// Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA public key
-    PkHash(hash160::Hash),
-    /// The fingerprint of a BIP32 extended key
-    Fingerprint(Fingerprint),
-    /// Dummy identifier
-    Dummy(u64),
-}
-
-impl From<hash160::Hash> for SignerId {
-    fn from(hash: hash160::Hash) -> SignerId {
-        SignerId::PkHash(hash)
-    }
-}
-
-impl From<Fingerprint> for SignerId {
-    fn from(fing: Fingerprint) -> SignerId {
-        SignerId::Fingerprint(fing)
-    }
-}
-
-/// Signing error
-#[derive(Debug, PartialEq, Eq, Clone)]
-pub enum SignerError {
-    /// The private key is missing for the required public key
-    MissingKey,
-    /// The private key in use has the right fingerprint but derives differently than expected
-    InvalidKey,
-    /// The user canceled the operation
-    UserCanceled,
-    /// Input index is out of range
-    InputIndexOutOfRange,
-    /// The `non_witness_utxo` field of the transaction is required to sign this input
-    MissingNonWitnessUtxo,
-    /// The `non_witness_utxo` specified is invalid
-    InvalidNonWitnessUtxo,
-    /// The `witness_utxo` field of the transaction is required to sign this input
-    MissingWitnessUtxo,
-    /// The `witness_script` field of the transaction is required to sign this input
-    MissingWitnessScript,
-    /// The fingerprint and derivation path are missing from the psbt input
-    MissingHdKeypath,
-    /// The psbt contains a non-`SIGHASH_ALL` sighash in one of its input and the user hasn't
-    /// explicitly allowed them
-    ///
-    /// To enable signing transactions with non-standard sighashes set
-    /// [`SignOptions::allow_all_sighashes`] to `true`.
-    NonStandardSighash,
-}
-
-impl fmt::Display for SignerError {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        write!(f, "{:?}", self)
-    }
-}
-
-impl std::error::Error for SignerError {}
-
-/// Trait for signers
-///
-/// This trait can be implemented to provide customized signers to the wallet. For an example see
-/// [`this module`](crate::wallet::signer)'s documentation.
-pub trait Signer: fmt::Debug + Send + Sync {
-    /// Sign a PSBT
-    ///
-    /// The `input_index` argument is only provided if the wallet doesn't declare to sign the whole
-    /// transaction in one go (see [`Signer::sign_whole_tx`]). Otherwise its value is `None` and
-    /// can be ignored.
-    fn sign(
-        &self,
-        psbt: &mut psbt::PartiallySignedTransaction,
-        input_index: Option<usize>,
-        secp: &SecpCtx,
-    ) -> Result<(), SignerError>;
-
-    /// Return whether or not the signer signs the whole transaction in one go instead of every
-    /// input individually
-    fn sign_whole_tx(&self) -> bool;
-
-    /// Return the [`SignerId`] for this signer
-    ///
-    /// The [`SignerId`] can be used to lookup a signer in the [`Wallet`](crate::Wallet)'s signers map or to
-    /// compare two signers.
-    fn id(&self, secp: &SecpCtx) -> SignerId;
-
-    /// Return the secret key for the signer
-    ///
-    /// This is used internally to reconstruct the original descriptor that may contain secrets.
-    /// External signers that are meant to keep key isolated should just return `None` here (which
-    /// is the default for this method, if not overridden).
-    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey> {
-        None
-    }
-}
-
-impl Signer for DescriptorXKey<ExtendedPrivKey> {
-    fn sign(
-        &self,
-        psbt: &mut psbt::PartiallySignedTransaction,
-        input_index: Option<usize>,
-        secp: &SecpCtx,
-    ) -> Result<(), SignerError> {
-        let input_index = input_index.unwrap();
-        if input_index >= psbt.inputs.len() {
-            return Err(SignerError::InputIndexOutOfRange);
-        }
-
-        if psbt.inputs[input_index].final_script_sig.is_some()
-            || psbt.inputs[input_index].final_script_witness.is_some()
-        {
-            return Ok(());
-        }
-
-        let (public_key, full_path) = match psbt.inputs[input_index]
-            .bip32_derivation
-            .iter()
-            .filter_map(|(pk, &(fingerprint, ref path))| {
-                if self.matches(&(fingerprint, path.clone()), secp).is_some() {
-                    Some((pk, path))
-                } else {
-                    None
-                }
-            })
-            .next()
-        {
-            Some((pk, full_path)) => (pk, full_path.clone()),
-            None => return Ok(()),
-        };
-
-        let derived_key = match self.origin.clone() {
-            Some((_fingerprint, origin_path)) => {
-                let deriv_path = DerivationPath::from(
-                    &full_path.into_iter().cloned().collect::<Vec<ChildNumber>>()
-                        [origin_path.len()..],
-                );
-                self.xkey.derive_priv(secp, &deriv_path).unwrap()
-            }
-            None => self.xkey.derive_priv(secp, &full_path).unwrap(),
-        };
-
-        if &derived_key.private_key.public_key(secp) != public_key {
-            Err(SignerError::InvalidKey)
-        } else {
-            derived_key.private_key.sign(psbt, Some(input_index), secp)
-        }
-    }
-
-    fn sign_whole_tx(&self) -> bool {
-        false
-    }
-
-    fn id(&self, secp: &SecpCtx) -> SignerId {
-        SignerId::from(self.root_fingerprint(secp))
-    }
-
-    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey> {
-        Some(DescriptorSecretKey::XPrv(self.clone()))
-    }
-}
-
-impl Signer for PrivateKey {
-    fn sign(
-        &self,
-        psbt: &mut psbt::PartiallySignedTransaction,
-        input_index: Option<usize>,
-        secp: &SecpCtx,
-    ) -> Result<(), SignerError> {
-        let input_index = input_index.unwrap();
-        if input_index >= psbt.inputs.len() || input_index >= psbt.global.unsigned_tx.input.len() {
-            return Err(SignerError::InputIndexOutOfRange);
-        }
-
-        if psbt.inputs[input_index].final_script_sig.is_some()
-            || psbt.inputs[input_index].final_script_witness.is_some()
-        {
-            return Ok(());
-        }
-
-        let pubkey = self.public_key(secp);
-        if psbt.inputs[input_index].partial_sigs.contains_key(&pubkey) {
-            return Ok(());
-        }
-
-        // FIXME: use the presence of `witness_utxo` as an indication that we should make a bip143
-        // sig. Does this make sense? Should we add an extra argument to explicitly switch between
-        // these? The original idea was to declare sign() as sign<Ctx: ScriptContex>() and use Ctx,
-        // but that violates the rules for trait-objects, so we can't do it.
-        let (hash, sighash) = match psbt.inputs[input_index].witness_utxo {
-            Some(_) => Segwitv0::sighash(psbt, input_index)?,
-            None => Legacy::sighash(psbt, input_index)?,
-        };
-
-        let signature = secp.sign(
-            &Message::from_slice(&hash.into_inner()[..]).unwrap(),
-            &self.key,
-        );
-
-        let mut final_signature = Vec::with_capacity(75);
-        final_signature.extend_from_slice(&signature.serialize_der());
-        final_signature.push(sighash.as_u32() as u8);
-
-        psbt.inputs[input_index]
-            .partial_sigs
-            .insert(pubkey, final_signature);
-
-        Ok(())
-    }
-
-    fn sign_whole_tx(&self) -> bool {
-        false
-    }
-
-    fn id(&self, secp: &SecpCtx) -> SignerId {
-        SignerId::from(self.public_key(secp).to_pubkeyhash())
-    }
-
-    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey> {
-        Some(DescriptorSecretKey::SinglePriv(DescriptorSinglePriv {
-            key: *self,
-            origin: None,
-        }))
-    }
-}
-
-/// Defines the order in which signers are called
-///
-/// The default value is `100`. Signers with an ordering above that will be called later,
-/// and they will thus see the partial signatures added to the transaction once they get to sign
-/// themselves.
-#[derive(Debug, Clone, PartialOrd, PartialEq, Ord, Eq)]
-pub struct SignerOrdering(pub usize);
-
-impl std::default::Default for SignerOrdering {
-    fn default() -> Self {
-        SignerOrdering(100)
-    }
-}
-
-#[derive(Debug, Clone)]
-struct SignersContainerKey {
-    id: SignerId,
-    ordering: SignerOrdering,
-}
-
-impl From<(SignerId, SignerOrdering)> for SignersContainerKey {
-    fn from(tuple: (SignerId, SignerOrdering)) -> Self {
-        SignersContainerKey {
-            id: tuple.0,
-            ordering: tuple.1,
-        }
-    }
-}
-
-/// Container for multiple signers
-#[derive(Debug, Default, Clone)]
-pub struct SignersContainer(BTreeMap<SignersContainerKey, Arc<dyn Signer>>);
-
-impl SignersContainer {
-    /// Create a map of public keys to secret keys
-    pub fn as_key_map(&self, secp: &SecpCtx) -> KeyMap {
-        self.0
-            .values()
-            .filter_map(|signer| signer.descriptor_secret_key())
-            .filter_map(|secret| secret.as_public(secp).ok().map(|public| (public, secret)))
-            .collect()
-    }
-}
-
-impl From<KeyMap> for SignersContainer {
-    fn from(keymap: KeyMap) -> SignersContainer {
-        let secp = Secp256k1::new();
-        let mut container = SignersContainer::new();
-
-        for (_, secret) in keymap {
-            match secret {
-                DescriptorSecretKey::SinglePriv(private_key) => container.add_external(
-                    SignerId::from(private_key.key.public_key(&secp).to_pubkeyhash()),
-                    SignerOrdering::default(),
-                    Arc::new(private_key.key),
-                ),
-                DescriptorSecretKey::XPrv(xprv) => container.add_external(
-                    SignerId::from(xprv.root_fingerprint(&secp)),
-                    SignerOrdering::default(),
-                    Arc::new(xprv),
-                ),
-            };
-        }
-
-        container
-    }
-}
-
-impl SignersContainer {
-    /// Default constructor
-    pub fn new() -> Self {
-        SignersContainer(Default::default())
-    }
-
-    /// Adds an external signer to the container for the specified id. Optionally returns the
-    /// signer that was previously in the container, if any
-    pub fn add_external(
-        &mut self,
-        id: SignerId,
-        ordering: SignerOrdering,
-        signer: Arc<dyn Signer>,
-    ) -> Option<Arc<dyn Signer>> {
-        self.0.insert((id, ordering).into(), signer)
-    }
-
-    /// Removes a signer from the container and returns it
-    pub fn remove(&mut self, id: SignerId, ordering: SignerOrdering) -> Option<Arc<dyn Signer>> {
-        self.0.remove(&(id, ordering).into())
-    }
-
-    /// Returns the list of identifiers of all the signers in the container
-    pub fn ids(&self) -> Vec<&SignerId> {
-        self.0
-            .keys()
-            .map(|SignersContainerKey { id, .. }| id)
-            .collect()
-    }
-
-    /// Returns the list of signers in the container, sorted by lowest to highest `ordering`
-    pub fn signers(&self) -> Vec<&Arc<dyn Signer>> {
-        self.0.values().collect()
-    }
-
-    /// Finds the signer with lowest ordering for a given id in the container.
-    pub fn find(&self, id: SignerId) -> Option<&Arc<dyn Signer>> {
-        self.0
-            .range((
-                Included(&(id.clone(), SignerOrdering(0)).into()),
-                Included(&(id.clone(), SignerOrdering(usize::MAX)).into()),
-            ))
-            .filter(|(k, _)| k.id == id)
-            .map(|(_, v)| v)
-            .next()
-    }
-}
-
-/// Options for a software signer
-///
-/// Adjust the behavior of our software signers and the way a transaction is finalized
-#[derive(Debug, Clone)]
-pub struct SignOptions {
-    /// Whether the signer should trust the `witness_utxo`, if the `non_witness_utxo` hasn't been
-    /// provided
-    ///
-    /// Defaults to `false` to mitigate the "SegWit bug" which chould trick the wallet into
-    /// paying a fee larger than expected.
-    ///
-    /// Some wallets, especially if relatively old, might not provide the `non_witness_utxo` for
-    /// SegWit transactions in the PSBT they generate: in those cases setting this to `true`
-    /// should correctly produce a signature, at the expense of an increased trust in the creator
-    /// of the PSBT.
-    ///
-    /// For more details see: <https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd>
-    pub trust_witness_utxo: bool,
-
-    /// Whether the wallet should assume a specific height has been reached when trying to finalize
-    /// a transaction
-    ///
-    /// The wallet will only "use" a timelock to satisfy the spending policy of an input if the
-    /// timelock height has already been reached. This option allows overriding the "current height" to let the
-    /// wallet use timelocks in the future to spend a coin.
-    pub assume_height: Option<u32>,
-
-    /// Whether the signer should use the `sighash_type` set in the PSBT when signing, no matter
-    /// what its value is
-    ///
-    /// Defaults to `false` which will only allow signing using `SIGHASH_ALL`.
-    pub allow_all_sighashes: bool,
-}
-
-impl Default for SignOptions {
-    fn default() -> Self {
-        SignOptions {
-            trust_witness_utxo: false,
-            assume_height: None,
-            allow_all_sighashes: false,
-        }
-    }
-}
-
-pub(crate) trait ComputeSighash {
-    fn sighash(
-        psbt: &psbt::PartiallySignedTransaction,
-        input_index: usize,
-    ) -> Result<(SigHash, SigHashType), SignerError>;
-}
-
-impl ComputeSighash for Legacy {
-    fn sighash(
-        psbt: &psbt::PartiallySignedTransaction,
-        input_index: usize,
-    ) -> Result<(SigHash, SigHashType), SignerError> {
-        if input_index >= psbt.inputs.len() || input_index >= psbt.global.unsigned_tx.input.len() {
-            return Err(SignerError::InputIndexOutOfRange);
-        }
-
-        let psbt_input = &psbt.inputs[input_index];
-        let tx_input = &psbt.global.unsigned_tx.input[input_index];
-
-        let sighash = psbt_input.sighash_type.unwrap_or(SigHashType::All);
-        let script = match psbt_input.redeem_script {
-            Some(ref redeem_script) => redeem_script.clone(),
-            None => {
-                let non_witness_utxo = psbt_input
-                    .non_witness_utxo
-                    .as_ref()
-                    .ok_or(SignerError::MissingNonWitnessUtxo)?;
-                let prev_out = non_witness_utxo
-                    .output
-                    .get(tx_input.previous_output.vout as usize)
-                    .ok_or(SignerError::InvalidNonWitnessUtxo)?;
-
-                prev_out.script_pubkey.clone()
-            }
-        };
-
-        Ok((
-            psbt.global
-                .unsigned_tx
-                .signature_hash(input_index, &script, sighash.as_u32()),
-            sighash,
-        ))
-    }
-}
-
-fn p2wpkh_script_code(script: &Script) -> Script {
-    ScriptBuilder::new()
-        .push_opcode(opcodes::all::OP_DUP)
-        .push_opcode(opcodes::all::OP_HASH160)
-        .push_slice(&script[2..])
-        .push_opcode(opcodes::all::OP_EQUALVERIFY)
-        .push_opcode(opcodes::all::OP_CHECKSIG)
-        .into_script()
-}
-
-impl ComputeSighash for Segwitv0 {
-    fn sighash(
-        psbt: &psbt::PartiallySignedTransaction,
-        input_index: usize,
-    ) -> Result<(SigHash, SigHashType), SignerError> {
-        if input_index >= psbt.inputs.len() || input_index >= psbt.global.unsigned_tx.input.len() {
-            return Err(SignerError::InputIndexOutOfRange);
-        }
-
-        let psbt_input = &psbt.inputs[input_index];
-        let tx_input = &psbt.global.unsigned_tx.input[input_index];
-
-        let sighash = psbt_input.sighash_type.unwrap_or(SigHashType::All);
-
-        // Always try first with the non-witness utxo
-        let utxo = if let Some(prev_tx) = &psbt_input.non_witness_utxo {
-            // Check the provided prev-tx
-            if prev_tx.txid() != tx_input.previous_output.txid {
-                return Err(SignerError::InvalidNonWitnessUtxo);
-            }
-
-            // The output should be present, if it's missing the `non_witness_utxo` is invalid
-            prev_tx
-                .output
-                .get(tx_input.previous_output.vout as usize)
-                .ok_or(SignerError::InvalidNonWitnessUtxo)?
-        } else if let Some(witness_utxo) = &psbt_input.witness_utxo {
-            // Fallback to the witness_utxo. If we aren't allowed to use it, signing should fail
-            // before we get to this point
-            witness_utxo
-        } else {
-            // Nothing has been provided
-            return Err(SignerError::MissingNonWitnessUtxo);
-        };
-        let value = utxo.value;
-
-        let script = match psbt_input.witness_script {
-            Some(ref witness_script) => witness_script.clone(),
-            None => {
-                if utxo.script_pubkey.is_v0_p2wpkh() {
-                    p2wpkh_script_code(&utxo.script_pubkey)
-                } else if psbt_input
-                    .redeem_script
-                    .as_ref()
-                    .map(Script::is_v0_p2wpkh)
-                    .unwrap_or(false)
-                {
-                    p2wpkh_script_code(psbt_input.redeem_script.as_ref().unwrap())
-                } else {
-                    return Err(SignerError::MissingWitnessScript);
-                }
-            }
-        };
-
-        Ok((
-            bip143::SigHashCache::new(&psbt.global.unsigned_tx).signature_hash(
-                input_index,
-                &script,
-                value,
-                sighash,
-            ),
-            sighash,
-        ))
-    }
-}
-
-impl PartialOrd for SignersContainerKey {
-    fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
-        Some(self.cmp(other))
-    }
-}
-
-impl Ord for SignersContainerKey {
-    fn cmp(&self, other: &Self) -> Ordering {
-        self.ordering
-            .cmp(&other.ordering)
-            .then(self.id.cmp(&other.id))
-    }
-}
-
-impl PartialEq for SignersContainerKey {
-    fn eq(&self, other: &Self) -> bool {
-        self.id == other.id && self.ordering == other.ordering
-    }
-}
-
-impl Eq for SignersContainerKey {}
-
-#[cfg(test)]
-mod signers_container_tests {
-    use super::*;
-    use crate::descriptor;
-    use crate::descriptor::IntoWalletDescriptor;
-    use crate::keys::{DescriptorKey, IntoDescriptorKey};
-    use bitcoin::secp256k1::{All, Secp256k1};
-    use bitcoin::util::bip32;
-    use bitcoin::util::psbt::PartiallySignedTransaction;
-    use bitcoin::Network;
-    use miniscript::ScriptContext;
-    use std::str::FromStr;
-
-    fn is_equal(this: &Arc<dyn Signer>, that: &Arc<DummySigner>) -> bool {
-        let secp = Secp256k1::new();
-        this.id(&secp) == that.id(&secp)
-    }
-
-    // Signers added with the same ordering (like `Ordering::default`) created from `KeyMap`
-    // should be preserved and not overwritten.
-    // This happens usually when a set of signers is created from a descriptor with private keys.
-    #[test]
-    fn signers_with_same_ordering() {
-        let secp = Secp256k1::new();
-
-        let (prvkey1, _, _) = setup_keys(TPRV0_STR);
-        let (prvkey2, _, _) = setup_keys(TPRV1_STR);
-        let desc = descriptor!(sh(multi(2, prvkey1, prvkey2))).unwrap();
-        let (_, keymap) = desc
-            .into_wallet_descriptor(&secp, Network::Testnet)
-            .unwrap();
-
-        let signers = SignersContainer::from(keymap);
-        assert_eq!(signers.ids().len(), 2);
-
-        let signers = signers.signers();
-        assert_eq!(signers.len(), 2);
-    }
-
-    #[test]
-    fn signers_sorted_by_ordering() {
-        let mut signers = SignersContainer::new();
-        let signer1 = Arc::new(DummySigner { number: 1 });
-        let signer2 = Arc::new(DummySigner { number: 2 });
-        let signer3 = Arc::new(DummySigner { number: 3 });
-
-        // Mixed order insertions verifies we are not inserting at head or tail.
-        signers.add_external(SignerId::Dummy(2), SignerOrdering(2), signer2.clone());
-        signers.add_external(SignerId::Dummy(1), SignerOrdering(1), signer1.clone());
-        signers.add_external(SignerId::Dummy(3), SignerOrdering(3), signer3.clone());
-
-        // Check that signers are sorted from lowest to highest ordering
-        let signers = signers.signers();
-
-        assert!(is_equal(signers[0], &signer1));
-        assert!(is_equal(signers[1], &signer2));
-        assert!(is_equal(signers[2], &signer3));
-    }
-
-    #[test]
-    fn find_signer_by_id() {
-        let mut signers = SignersContainer::new();
-        let signer1 = Arc::new(DummySigner { number: 1 });
-        let signer2 = Arc::new(DummySigner { number: 2 });
-        let signer3 = Arc::new(DummySigner { number: 3 });
-        let signer4 = Arc::new(DummySigner { number: 3 }); // Same ID as `signer3` but will use lower ordering.
-
-        let id1 = SignerId::Dummy(1);
-        let id2 = SignerId::Dummy(2);
-        let id3 = SignerId::Dummy(3);
-        let id_nonexistent = SignerId::Dummy(999);
-
-        signers.add_external(id1.clone(), SignerOrdering(1), signer1.clone());
-        signers.add_external(id2.clone(), SignerOrdering(2), signer2.clone());
-        signers.add_external(id3.clone(), SignerOrdering(3), signer3.clone());
-
-        assert!(matches!(signers.find(id1), Some(signer) if is_equal(signer, &signer1)));
-        assert!(matches!(signers.find(id2), Some(signer) if is_equal(signer, &signer2)));
-        assert!(matches!(signers.find(id3.clone()), Some(signer) if is_equal(signer, &signer3)));
-
-        // The `signer4` has the same ID as `signer3` but lower ordering.
-        // It should be found by `id3` instead of `signer3`.
-        signers.add_external(id3.clone(), SignerOrdering(2), signer4.clone());
-        assert!(matches!(signers.find(id3), Some(signer) if is_equal(signer, &signer4)));
-
-        // Can't find anything with ID that doesn't exist
-        assert!(matches!(signers.find(id_nonexistent), None));
-    }
-
-    #[derive(Debug, Clone, Copy)]
-    struct DummySigner {
-        number: u64,
-    }
-
-    impl Signer for DummySigner {
-        fn sign(
-            &self,
-            _psbt: &mut PartiallySignedTransaction,
-            _input_index: Option<usize>,
-            _secp: &SecpCtx,
-        ) -> Result<(), SignerError> {
-            Ok(())
-        }
-
-        fn id(&self, _secp: &SecpCtx) -> SignerId {
-            SignerId::Dummy(self.number)
-        }
-
-        fn sign_whole_tx(&self) -> bool {
-            true
-        }
-    }
-
-    const TPRV0_STR:&str = "tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf";
-    const TPRV1_STR:&str = "tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N";
-
-    const PATH: &str = "m/44'/1'/0'/0";
-
-    fn setup_keys<Ctx: ScriptContext>(
-        tprv: &str,
-    ) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) {
-        let secp: Secp256k1<All> = Secp256k1::new();
-        let path = bip32::DerivationPath::from_str(PATH).unwrap();
-        let tprv = bip32::ExtendedPrivKey::from_str(tprv).unwrap();
-        let tpub = bip32::ExtendedPubKey::from_private(&secp, &tprv);
-        let fingerprint = tprv.fingerprint(&secp);
-        let prvkey = (tprv, path.clone()).into_descriptor_key().unwrap();
-        let pubkey = (tpub, path).into_descriptor_key().unwrap();
-
-        (prvkey, pubkey, fingerprint)
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/time.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/time.rs.html deleted file mode 100644 index 2c9f022554..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/time.rs.html +++ /dev/null @@ -1,151 +0,0 @@ -time.rs - source -
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Cross-platform time
-//!
-//! This module provides a function to get the current timestamp that works on all the platforms
-//! supported by the library.
-//!
-//! It can be useful to compare it with the timestamps found in
-//! [`TransactionDetails`](crate::types::TransactionDetails).
-
-use std::time::Duration;
-
-#[cfg(target_arch = "wasm32")]
-use js_sys::Date;
-#[cfg(not(target_arch = "wasm32"))]
-use std::time::{Instant as SystemInstant, SystemTime, UNIX_EPOCH};
-
-/// Return the current timestamp in seconds
-#[cfg(not(target_arch = "wasm32"))]
-pub fn get_timestamp() -> u64 {
-    SystemTime::now()
-        .duration_since(UNIX_EPOCH)
-        .unwrap()
-        .as_secs()
-}
-/// Return the current timestamp in seconds
-#[cfg(target_arch = "wasm32")]
-pub fn get_timestamp() -> u64 {
-    let millis = Date::now();
-
-    (millis / 1000.0) as u64
-}
-
-#[cfg(not(target_arch = "wasm32"))]
-pub(crate) struct Instant(SystemInstant);
-#[cfg(target_arch = "wasm32")]
-pub(crate) struct Instant(Duration);
-
-impl Instant {
-    #[cfg(not(target_arch = "wasm32"))]
-    pub fn new() -> Self {
-        Instant(SystemInstant::now())
-    }
-    #[cfg(target_arch = "wasm32")]
-    pub fn new() -> Self {
-        let millis = Date::now();
-
-        let secs = millis / 1000.0;
-        let nanos = (millis % 1000.0) * 1e6;
-
-        Instant(Duration::new(secs as u64, nanos as u32))
-    }
-
-    #[cfg(not(target_arch = "wasm32"))]
-    pub fn elapsed(&self) -> Duration {
-        self.0.elapsed()
-    }
-    #[cfg(target_arch = "wasm32")]
-    pub fn elapsed(&self) -> Duration {
-        let now = Instant::new();
-
-        now.0.checked_sub(self.0).unwrap_or(Duration::new(0, 0))
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/tx_builder.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/tx_builder.rs.html deleted file mode 100644 index dbcbf59ee5..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/tx_builder.rs.html +++ /dev/null @@ -1,1791 +0,0 @@ -tx_builder.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-805
-806
-807
-808
-809
-810
-811
-812
-813
-814
-815
-816
-817
-818
-819
-820
-821
-822
-823
-824
-825
-826
-827
-828
-829
-830
-831
-832
-833
-834
-835
-836
-837
-838
-839
-840
-841
-842
-843
-844
-845
-846
-847
-848
-849
-850
-851
-852
-853
-854
-855
-856
-857
-858
-859
-860
-861
-862
-863
-864
-865
-866
-867
-868
-869
-870
-871
-872
-873
-874
-875
-876
-877
-878
-879
-880
-881
-882
-883
-884
-885
-886
-887
-888
-889
-890
-891
-892
-893
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-//! Transaction builder
-//!
-//! ## Example
-//!
-//! ```
-//! # use std::str::FromStr;
-//! # use bitcoin::*;
-//! # use bdk::*;
-//! # use bdk::wallet::tx_builder::CreateTx;
-//! # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-//! # let wallet = doctest_wallet!();
-//! // create a TxBuilder from a wallet
-//! let mut tx_builder = wallet.build_tx();
-//!
-//! tx_builder
-//!     // Create a transaction with one output to `to_address` of 50_000 satoshi
-//!     .add_recipient(to_address.script_pubkey(), 50_000)
-//!     // With a custom fee rate of 5.0 satoshi/vbyte
-//!     .fee_rate(FeeRate::from_sat_per_vb(5.0))
-//!     // Only spend non-change outputs
-//!     .do_not_spend_change()
-//!     // Turn on RBF signaling
-//!     .enable_rbf();
-//! let (psbt, tx_details) = tx_builder.finish()?;
-//! # Ok::<(), bdk::Error>(())
-//! ```
-
-use std::collections::BTreeMap;
-use std::collections::HashSet;
-use std::default::Default;
-use std::marker::PhantomData;
-
-use bitcoin::util::psbt::{self, PartiallySignedTransaction as Psbt};
-use bitcoin::{OutPoint, Script, SigHashType, Transaction};
-
-use miniscript::descriptor::DescriptorTrait;
-
-use super::coin_selection::{CoinSelectionAlgorithm, DefaultCoinSelectionAlgorithm};
-use crate::{database::BatchDatabase, Error, Utxo, Wallet};
-use crate::{
-    types::{FeeRate, KeychainKind, LocalUtxo, WeightedUtxo},
-    TransactionDetails,
-};
-/// Context in which the [`TxBuilder`] is valid
-pub trait TxBuilderContext: std::fmt::Debug + Default + Clone {}
-
-/// Marker type to indicate the [`TxBuilder`] is being used to create a new transaction (as opposed
-/// to bumping the fee of an existing one).
-#[derive(Debug, Default, Clone)]
-pub struct CreateTx;
-impl TxBuilderContext for CreateTx {}
-
-/// Marker type to indicate the [`TxBuilder`] is being used to bump the fee of an existing transaction.
-#[derive(Debug, Default, Clone)]
-pub struct BumpFee;
-impl TxBuilderContext for BumpFee {}
-
-/// A transaction builder
-///
-/// A `TxBuilder` is created by calling [`build_tx`] or [`build_fee_bump`] on a wallet. After
-/// assigning it, you set options on it until finally calling [`finish`] to consume the builder and
-/// generate the transaction.
-///
-/// Each option setting method on `TxBuilder` takes and returns `&mut self` so you can chain calls
-/// as in the following example:
-///
-/// ```
-/// # use bdk::*;
-/// # use bdk::wallet::tx_builder::*;
-/// # use bitcoin::*;
-/// # use core::str::FromStr;
-/// # let wallet = doctest_wallet!();
-/// # let addr1 = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-/// # let addr2 = addr1.clone();
-/// // chaining
-/// let (psbt1, details) = {
-///     let mut builder = wallet.build_tx();
-///     builder
-///         .ordering(TxOrdering::Untouched)
-///         .add_recipient(addr1.script_pubkey(), 50_000)
-///         .add_recipient(addr2.script_pubkey(), 50_000);
-///     builder.finish()?
-/// };
-///
-/// // non-chaining
-/// let (psbt2, details) = {
-///     let mut builder = wallet.build_tx();
-///     builder.ordering(TxOrdering::Untouched);
-///     for addr in &[addr1, addr2] {
-///         builder.add_recipient(addr.script_pubkey(), 50_000);
-///     }
-///     builder.finish()?
-/// };
-///
-/// assert_eq!(
-///     psbt1.global.unsigned_tx.output[..2],
-///     psbt2.global.unsigned_tx.output[..2]
-/// );
-/// # Ok::<(), bdk::Error>(())
-/// ```
-///
-/// At the moment [`coin_selection`] is an exception to the rule as it consumes `self`.
-/// This means it is usually best to call [`coin_selection`] on the return value of `build_tx` before assigning it.
-///
-/// For further examples see [this module](super::tx_builder)'s documentation;
-///
-/// [`build_tx`]: Wallet::build_tx
-/// [`build_fee_bump`]: Wallet::build_fee_bump
-/// [`finish`]: Self::finish
-/// [`coin_selection`]: Self::coin_selection
-#[derive(Debug)]
-pub struct TxBuilder<'a, B, D, Cs, Ctx> {
-    pub(crate) wallet: &'a Wallet<B, D>,
-    pub(crate) params: TxParams,
-    pub(crate) coin_selection: Cs,
-    pub(crate) phantom: PhantomData<Ctx>,
-}
-
-/// The parameters for transaction creation sans coin selection algorithm.
-//TODO: TxParams should eventually be exposed publicly.
-#[derive(Default, Debug, Clone)]
-pub(crate) struct TxParams {
-    pub(crate) recipients: Vec<(Script, u64)>,
-    pub(crate) drain_wallet: bool,
-    pub(crate) drain_to: Option<Script>,
-    pub(crate) fee_policy: Option<FeePolicy>,
-    pub(crate) internal_policy_path: Option<BTreeMap<String, Vec<usize>>>,
-    pub(crate) external_policy_path: Option<BTreeMap<String, Vec<usize>>>,
-    pub(crate) utxos: Vec<WeightedUtxo>,
-    pub(crate) unspendable: HashSet<OutPoint>,
-    pub(crate) manually_selected_only: bool,
-    pub(crate) sighash: Option<SigHashType>,
-    pub(crate) ordering: TxOrdering,
-    pub(crate) locktime: Option<u32>,
-    pub(crate) rbf: Option<RbfValue>,
-    pub(crate) version: Option<Version>,
-    pub(crate) change_policy: ChangeSpendPolicy,
-    pub(crate) only_witness_utxo: bool,
-    pub(crate) add_global_xpubs: bool,
-    pub(crate) include_output_redeem_witness_script: bool,
-    pub(crate) bumping_fee: Option<PreviousFee>,
-}
-
-#[derive(Clone, Copy, Debug)]
-pub(crate) struct PreviousFee {
-    pub absolute: u64,
-    pub rate: f32,
-}
-
-#[derive(Debug, Clone, Copy)]
-pub(crate) enum FeePolicy {
-    FeeRate(FeeRate),
-    FeeAmount(u64),
-}
-
-impl std::default::Default for FeePolicy {
-    fn default() -> Self {
-        FeePolicy::FeeRate(FeeRate::default_min_relay_fee())
-    }
-}
-
-impl<'a, Cs: Clone, Ctx, B, D> Clone for TxBuilder<'a, B, D, Cs, Ctx> {
-    fn clone(&self) -> Self {
-        TxBuilder {
-            wallet: self.wallet,
-            params: self.params.clone(),
-            coin_selection: self.coin_selection.clone(),
-            phantom: PhantomData,
-        }
-    }
-}
-
-// methods supported by both contexts, for any CoinSelectionAlgorithm
-impl<'a, B, D: BatchDatabase, Cs: CoinSelectionAlgorithm<D>, Ctx: TxBuilderContext>
-    TxBuilder<'a, B, D, Cs, Ctx>
-{
-    /// Set a custom fee rate
-    pub fn fee_rate(&mut self, fee_rate: FeeRate) -> &mut Self {
-        self.params.fee_policy = Some(FeePolicy::FeeRate(fee_rate));
-        self
-    }
-
-    /// Set an absolute fee
-    pub fn fee_absolute(&mut self, fee_amount: u64) -> &mut Self {
-        self.params.fee_policy = Some(FeePolicy::FeeAmount(fee_amount));
-        self
-    }
-
-    /// Set the policy path to use while creating the transaction for a given keychain.
-    ///
-    /// This method accepts a map where the key is the policy node id (see
-    /// [`Policy::id`](crate::descriptor::Policy::id)) and the value is the list of the indexes of
-    /// the items that are intended to be satisfied from the policy node (see
-    /// [`SatisfiableItem::Thresh::items`](crate::descriptor::policy::SatisfiableItem::Thresh::items)).
-    ///
-    /// ## Example
-    ///
-    /// An example of when the policy path is needed is the following descriptor:
-    /// `wsh(thresh(2,pk(A),sj:and_v(v:pk(B),n:older(6)),snj:and_v(v:pk(C),after(630000))))`,
-    /// derived from the miniscript policy `thresh(2,pk(A),and(pk(B),older(6)),and(pk(C),after(630000)))`.
-    /// It declares three descriptor fragments, and at the top level it uses `thresh()` to
-    /// ensure that at least two of them are satisfied. The individual fragments are:
-    ///
-    /// 1. `pk(A)`
-    /// 2. `and(pk(B),older(6))`
-    /// 3. `and(pk(C),after(630000))`
-    ///
-    /// When those conditions are combined in pairs, it's clear that the transaction needs to be created
-    /// differently depending on how the user intends to satisfy the policy afterwards:
-    ///
-    /// * If fragments `1` and `2` are used, the transaction will need to use a specific
-    ///   `n_sequence` in order to spend an `OP_CSV` branch.
-    /// * If fragments `1` and `3` are used, the transaction will need to use a specific `locktime`
-    ///   in order to spend an `OP_CLTV` branch.
-    /// * If fragments `2` and `3` are used, the transaction will need both.
-    ///
-    /// When the spending policy is represented as a tree (see
-    /// [`Wallet::policies`](super::Wallet::policies)), every node
-    /// is assigned a unique identifier that can be used in the policy path to specify which of
-    /// the node's children the user intends to satisfy: for instance, assuming the `thresh()`
-    /// root node of this example has an id of `aabbccdd`, the policy path map would look like:
-    ///
-    /// `{ "aabbccdd" => [0, 1] }`
-    ///
-    /// where the key is the node's id, and the value is a list of the children that should be
-    /// used, in no particular order.
-    ///
-    /// If a particularly complex descriptor has multiple ambiguous thresholds in its structure,
-    /// multiple entries can be added to the map, one for each node that requires an explicit path.
-    ///
-    /// ```
-    /// # use std::str::FromStr;
-    /// # use std::collections::BTreeMap;
-    /// # use bitcoin::*;
-    /// # use bdk::*;
-    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-    /// # let wallet = doctest_wallet!();
-    /// let mut path = BTreeMap::new();
-    /// path.insert("aabbccdd".to_string(), vec![0, 1]);
-    ///
-    /// let builder = wallet
-    ///     .build_tx()
-    ///     .add_recipient(to_address.script_pubkey(), 50_000)
-    ///     .policy_path(path, KeychainKind::External);
-    ///
-    /// # Ok::<(), bdk::Error>(())
-    /// ```
-    pub fn policy_path(
-        &mut self,
-        policy_path: BTreeMap<String, Vec<usize>>,
-        keychain: KeychainKind,
-    ) -> &mut Self {
-        let to_update = match keychain {
-            KeychainKind::Internal => &mut self.params.internal_policy_path,
-            KeychainKind::External => &mut self.params.external_policy_path,
-        };
-
-        *to_update = Some(policy_path);
-        self
-    }
-
-    /// Add the list of outpoints to the internal list of UTXOs that **must** be spent.
-    ///
-    /// If an error occurs while adding any of the UTXOs then none of them are added and the error is returned.
-    ///
-    /// These have priority over the "unspendable" utxos, meaning that if a utxo is present both in
-    /// the "utxos" and the "unspendable" list, it will be spent.
-    pub fn add_utxos(&mut self, outpoints: &[OutPoint]) -> Result<&mut Self, Error> {
-        let utxos = outpoints
-            .iter()
-            .map(|outpoint| self.wallet.get_utxo(*outpoint)?.ok_or(Error::UnknownUtxo))
-            .collect::<Result<Vec<_>, _>>()?;
-
-        for utxo in utxos {
-            let descriptor = self.wallet.get_descriptor_for_keychain(utxo.keychain);
-            let satisfaction_weight = descriptor.max_satisfaction_weight().unwrap();
-            self.params.utxos.push(WeightedUtxo {
-                satisfaction_weight,
-                utxo: Utxo::Local(utxo),
-            });
-        }
-
-        Ok(self)
-    }
-
-    /// Add a utxo to the internal list of utxos that **must** be spent
-    ///
-    /// These have priority over the "unspendable" utxos, meaning that if a utxo is present both in
-    /// the "utxos" and the "unspendable" list, it will be spent.
-    pub fn add_utxo(&mut self, outpoint: OutPoint) -> Result<&mut Self, Error> {
-        self.add_utxos(&[outpoint])
-    }
-
-    /// Add a foreign UTXO i.e. a UTXO not owned by this wallet.
-    ///
-    /// At a minimum to add a foreign UTXO we need:
-    ///
-    /// 1. `outpoint`: To add it to the raw transaction.
-    /// 2. `psbt_input`: To know the value.
-    /// 3. `satisfaction_weight`: To know how much weight/vbytes the input will add to the transaction for fee calculation.
-    ///
-    /// There are several security concerns about adding foreign UTXOs that application
-    /// developers should consider. First, how do you know the value of the input is correct? If a
-    /// `non_witness_utxo` is provided in the `psbt_input` then this method implicitly verifies the
-    /// value by checking it against the transaction. If only a `witness_utxo` is provided then this
-    /// method doesn't verify the value but just takes it as a given -- it is up to you to check
-    /// that whoever sent you the `input_psbt` was not lying!
-    ///
-    /// Secondly, you must somehow provide `satisfaction_weight` of the input. Depending on your
-    /// application it may be important that this be known precisely. If not, a malicious
-    /// counterparty may fool you into putting in a value that is too low, giving the transaction a
-    /// lower than expected feerate. They could also fool you into putting a value that is too high
-    /// causing you to pay a fee that is too high. The party who is broadcasting the transaction can
-    /// of course check the real input weight matches the expected weight prior to broadcasting.
-    ///
-    /// To guarantee the `satisfaction_weight` is correct, you can require the party providing the
-    /// `psbt_input` provide a miniscript descriptor for the input so you can check it against the
-    /// `script_pubkey` and then ask it for the [`max_satisfaction_weight`].
-    ///
-    /// This is an **EXPERIMENTAL** feature, API and other major changes are expected.
-    ///
-    /// # Errors
-    ///
-    /// This method returns errors in the following circumstances:
-    ///
-    /// 1. The `psbt_input` does not contain a `witness_utxo` or `non_witness_utxo`.
-    /// 2. The data in `non_witness_utxo` does not match what is in `outpoint`.
-    ///
-    /// Note unless you set [`only_witness_utxo`] any `psbt_input` you pass to this method must
-    /// have `non_witness_utxo` set otherwise you will get an error when [`finish`] is called.
-    ///
-    /// [`only_witness_utxo`]: Self::only_witness_utxo
-    /// [`finish`]: Self::finish
-    /// [`max_satisfaction_weight`]: miniscript::Descriptor::max_satisfaction_weight
-    pub fn add_foreign_utxo(
-        &mut self,
-        outpoint: OutPoint,
-        psbt_input: psbt::Input,
-        satisfaction_weight: usize,
-    ) -> Result<&mut Self, Error> {
-        if psbt_input.witness_utxo.is_none() {
-            match psbt_input.non_witness_utxo.as_ref() {
-                Some(tx) => {
-                    if tx.txid() != outpoint.txid {
-                        return Err(Error::Generic(
-                            "Foreign utxo outpoint does not match PSBT input".into(),
-                        ));
-                    }
-                    if tx.output.len() <= outpoint.vout as usize {
-                        return Err(Error::InvalidOutpoint(outpoint));
-                    }
-                }
-                None => {
-                    return Err(Error::Generic(
-                        "Foreign utxo missing witness_utxo or non_witness_utxo".into(),
-                    ))
-                }
-            }
-        }
-
-        self.params.utxos.push(WeightedUtxo {
-            satisfaction_weight,
-            utxo: Utxo::Foreign {
-                outpoint,
-                psbt_input: Box::new(psbt_input),
-            },
-        });
-
-        Ok(self)
-    }
-
-    /// Only spend utxos added by [`add_utxo`].
-    ///
-    /// The wallet will **not** add additional utxos to the transaction even if they are needed to
-    /// make the transaction valid.
-    ///
-    /// [`add_utxo`]: Self::add_utxo
-    pub fn manually_selected_only(&mut self) -> &mut Self {
-        self.params.manually_selected_only = true;
-        self
-    }
-
-    /// Replace the internal list of unspendable utxos with a new list
-    ///
-    /// It's important to note that the "must-be-spent" utxos added with [`TxBuilder::add_utxo`]
-    /// have priority over these. See the docs of the two linked methods for more details.
-    pub fn unspendable(&mut self, unspendable: Vec<OutPoint>) -> &mut Self {
-        self.params.unspendable = unspendable.into_iter().collect();
-        self
-    }
-
-    /// Add a utxo to the internal list of unspendable utxos
-    ///
-    /// It's important to note that the "must-be-spent" utxos added with [`TxBuilder::add_utxo`]
-    /// have priority over this. See the docs of the two linked methods for more details.
-    pub fn add_unspendable(&mut self, unspendable: OutPoint) -> &mut Self {
-        self.params.unspendable.insert(unspendable);
-        self
-    }
-
-    /// Sign with a specific sig hash
-    ///
-    /// **Use this option very carefully**
-    pub fn sighash(&mut self, sighash: SigHashType) -> &mut Self {
-        self.params.sighash = Some(sighash);
-        self
-    }
-
-    /// Choose the ordering for inputs and outputs of the transaction
-    pub fn ordering(&mut self, ordering: TxOrdering) -> &mut Self {
-        self.params.ordering = ordering;
-        self
-    }
-
-    /// Use a specific nLockTime while creating the transaction
-    ///
-    /// This can cause conflicts if the wallet's descriptors contain an "after" (OP_CLTV) operator.
-    pub fn nlocktime(&mut self, locktime: u32) -> &mut Self {
-        self.params.locktime = Some(locktime);
-        self
-    }
-
-    /// Build a transaction with a specific version
-    ///
-    /// The `version` should always be greater than `0` and greater than `1` if the wallet's
-    /// descriptors contain an "older" (OP_CSV) operator.
-    pub fn version(&mut self, version: i32) -> &mut Self {
-        self.params.version = Some(Version(version));
-        self
-    }
-
-    /// Do not spend change outputs
-    ///
-    /// This effectively adds all the change outputs to the "unspendable" list. See
-    /// [`TxBuilder::unspendable`].
-    pub fn do_not_spend_change(&mut self) -> &mut Self {
-        self.params.change_policy = ChangeSpendPolicy::ChangeForbidden;
-        self
-    }
-
-    /// Only spend change outputs
-    ///
-    /// This effectively adds all the non-change outputs to the "unspendable" list. See
-    /// [`TxBuilder::unspendable`].
-    pub fn only_spend_change(&mut self) -> &mut Self {
-        self.params.change_policy = ChangeSpendPolicy::OnlyChange;
-        self
-    }
-
-    /// Set a specific [`ChangeSpendPolicy`]. See [`TxBuilder::do_not_spend_change`] and
-    /// [`TxBuilder::only_spend_change`] for some shortcuts.
-    pub fn change_policy(&mut self, change_policy: ChangeSpendPolicy) -> &mut Self {
-        self.params.change_policy = change_policy;
-        self
-    }
-
-    /// Only Fill-in the [`psbt::Input::witness_utxo`](bitcoin::util::psbt::Input::witness_utxo) field when spending from
-    /// SegWit descriptors.
-    ///
-    /// This reduces the size of the PSBT, but some signers might reject them due to the lack of
-    /// the `non_witness_utxo`.
-    pub fn only_witness_utxo(&mut self) -> &mut Self {
-        self.params.only_witness_utxo = true;
-        self
-    }
-
-    /// Fill-in the [`psbt::Output::redeem_script`](bitcoin::util::psbt::Output::redeem_script) and
-    /// [`psbt::Output::witness_script`](bitcoin::util::psbt::Output::witness_script) fields.
-    ///
-    /// This is useful for signers which always require it, like ColdCard hardware wallets.
-    pub fn include_output_redeem_witness_script(&mut self) -> &mut Self {
-        self.params.include_output_redeem_witness_script = true;
-        self
-    }
-
-    /// Fill-in the `PSBT_GLOBAL_XPUB` field with the extended keys contained in both the external
-    /// and internal descriptors
-    ///
-    /// This is useful for offline signers that take part to a multisig. Some hardware wallets like
-    /// BitBox and ColdCard are known to require this.
-    pub fn add_global_xpubs(&mut self) -> &mut Self {
-        self.params.add_global_xpubs = true;
-        self
-    }
-
-    /// Spend all the available inputs. This respects filters like [`TxBuilder::unspendable`] and the change policy.
-    pub fn drain_wallet(&mut self) -> &mut Self {
-        self.params.drain_wallet = true;
-        self
-    }
-
-    /// Choose the coin selection algorithm
-    ///
-    /// Overrides the [`DefaultCoinSelectionAlgorithm`](super::coin_selection::DefaultCoinSelectionAlgorithm).
-    ///
-    /// Note that this function consumes the builder and returns it so it is usually best to put this as the first call on the builder.
-    pub fn coin_selection<P: CoinSelectionAlgorithm<D>>(
-        self,
-        coin_selection: P,
-    ) -> TxBuilder<'a, B, D, P, Ctx> {
-        TxBuilder {
-            wallet: self.wallet,
-            params: self.params,
-            coin_selection,
-            phantom: PhantomData,
-        }
-    }
-
-    /// Finish the building the transaction.
-    ///
-    /// Returns the [`BIP174`] "PSBT" and summary details about the transaction.
-    ///
-    /// [`BIP174`]: https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
-    pub fn finish(self) -> Result<(Psbt, TransactionDetails), Error> {
-        self.wallet.create_tx(self.coin_selection, self.params)
-    }
-
-    /// Enable signaling RBF
-    ///
-    /// This will use the default nSequence value of `0xFFFFFFFD`.
-    pub fn enable_rbf(&mut self) -> &mut Self {
-        self.params.rbf = Some(RbfValue::Default);
-        self
-    }
-
-    /// Enable signaling RBF with a specific nSequence value
-    ///
-    /// This can cause conflicts if the wallet's descriptors contain an "older" (OP_CSV) operator
-    /// and the given `nsequence` is lower than the CSV value.
-    ///
-    /// If the `nsequence` is higher than `0xFFFFFFFD` an error will be thrown, since it would not
-    /// be a valid nSequence to signal RBF.
-    pub fn enable_rbf_with_sequence(&mut self, nsequence: u32) -> &mut Self {
-        self.params.rbf = Some(RbfValue::Value(nsequence));
-        self
-    }
-}
-
-impl<'a, B, D: BatchDatabase, Cs: CoinSelectionAlgorithm<D>> TxBuilder<'a, B, D, Cs, CreateTx> {
-    /// Replace the recipients already added with a new list
-    pub fn set_recipients(&mut self, recipients: Vec<(Script, u64)>) -> &mut Self {
-        self.params.recipients = recipients;
-        self
-    }
-
-    /// Add a recipient to the internal list
-    pub fn add_recipient(&mut self, script_pubkey: Script, amount: u64) -> &mut Self {
-        self.params.recipients.push((script_pubkey, amount));
-        self
-    }
-
-    /// Add data as an output, using OP_RETURN
-    pub fn add_data(&mut self, data: &[u8]) -> &mut Self {
-        let script = Script::new_op_return(data);
-        self.add_recipient(script, 0u64);
-        self
-    }
-
-    /// Sets the address to *drain* excess coins to.
-    ///
-    /// Usually, when there are excess coins they are sent to a change address generated by the
-    /// wallet. This option replaces the usual change address with an arbitrary `script_pubkey` of
-    /// your choosing. Just as with a change output, if the drain output is not needed (the excess
-    /// coins are too small) it will not be included in the resulting transaction. The only
-    /// difference is that it is valid to use `drain_to` without setting any ordinary recipients
-    /// with [`add_recipient`] (but it is perfectly fine to add recipients as well).
-    ///
-    /// When bumping the fees of a transaction made with this option, you probably want to
-    /// use [`allow_shrinking`] to allow this output to be reduced to pay for the extra fees.
-    ///
-    /// # Example
-    ///
-    /// `drain_to` is very useful for draining all the coins in a wallet with [`drain_wallet`] to a
-    /// single address.
-    ///
-    /// ```
-    /// # use std::str::FromStr;
-    /// # use bitcoin::*;
-    /// # use bdk::*;
-    /// # use bdk::wallet::tx_builder::CreateTx;
-    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
-    /// # let wallet = doctest_wallet!();
-    /// let mut tx_builder = wallet.build_tx();
-    ///
-    /// tx_builder
-    ///     // Spend all outputs in this wallet.
-    ///     .drain_wallet()
-    ///     // Send the excess (which is all the coins minus the fee) to this address.
-    ///     .drain_to(to_address.script_pubkey())
-    ///     .fee_rate(FeeRate::from_sat_per_vb(5.0))
-    ///     .enable_rbf();
-    /// let (psbt, tx_details) = tx_builder.finish()?;
-    /// # Ok::<(), bdk::Error>(())
-    /// ```
-    ///
-    /// [`allow_shrinking`]: Self::allow_shrinking
-    /// [`add_recipient`]: Self::add_recipient
-    /// [`drain_wallet`]: Self::drain_wallet
-    pub fn drain_to(&mut self, script_pubkey: Script) -> &mut Self {
-        self.params.drain_to = Some(script_pubkey);
-        self
-    }
-}
-
-// methods supported only by bump_fee
-impl<'a, B, D: BatchDatabase> TxBuilder<'a, B, D, DefaultCoinSelectionAlgorithm, BumpFee> {
-    /// Explicitly tells the wallet that it is allowed to reduce the fee of the output matching this
-    /// `script_pubkey` in order to bump the transaction fee. Without specifying this the wallet
-    /// will attempt to find a change output to shrink instead.
-    ///
-    /// **Note** that the output may shrink to below the dust limit and therefore be removed. If it is
-    /// preserved then it is currently not guaranteed to be in the same position as it was
-    /// originally.
-    ///
-    /// Returns an `Err` if `script_pubkey` can't be found among the recipients of the
-    /// transaction we are bumping.
-    pub fn allow_shrinking(&mut self, script_pubkey: Script) -> Result<&mut Self, Error> {
-        match self
-            .params
-            .recipients
-            .iter()
-            .position(|(recipient_script, _)| *recipient_script == script_pubkey)
-        {
-            Some(position) => {
-                self.params.recipients.remove(position);
-                self.params.drain_to = Some(script_pubkey);
-                Ok(self)
-            }
-            None => Err(Error::Generic(format!(
-                "{} was not in the original transaction",
-                script_pubkey
-            ))),
-        }
-    }
-}
-
-/// Ordering of the transaction's inputs and outputs
-#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
-pub enum TxOrdering {
-    /// Randomized (default)
-    Shuffle,
-    /// Unchanged
-    Untouched,
-    /// BIP69 / Lexicographic
-    Bip69Lexicographic,
-}
-
-impl Default for TxOrdering {
-    fn default() -> Self {
-        TxOrdering::Shuffle
-    }
-}
-
-impl TxOrdering {
-    /// Sort transaction inputs and outputs by [`TxOrdering`] variant
-    pub fn sort_tx(&self, tx: &mut Transaction) {
-        match self {
-            TxOrdering::Untouched => {}
-            TxOrdering::Shuffle => {
-                use rand::seq::SliceRandom;
-                #[cfg(test)]
-                use rand::SeedableRng;
-
-                #[cfg(not(test))]
-                let mut rng = rand::thread_rng();
-                #[cfg(test)]
-                let mut rng = rand::rngs::StdRng::seed_from_u64(0);
-
-                tx.output.shuffle(&mut rng);
-            }
-            TxOrdering::Bip69Lexicographic => {
-                tx.input.sort_unstable_by_key(|txin| {
-                    (txin.previous_output.txid, txin.previous_output.vout)
-                });
-                tx.output
-                    .sort_unstable_by_key(|txout| (txout.value, txout.script_pubkey.clone()));
-            }
-        }
-    }
-}
-
-/// Transaction version
-///
-/// Has a default value of `1`
-#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
-pub(crate) struct Version(pub(crate) i32);
-
-impl Default for Version {
-    fn default() -> Self {
-        Version(1)
-    }
-}
-
-/// RBF nSequence value
-///
-/// Has a default value of `0xFFFFFFFD`
-#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
-pub(crate) enum RbfValue {
-    Default,
-    Value(u32),
-}
-
-impl RbfValue {
-    pub(crate) fn get_value(&self) -> u32 {
-        match self {
-            RbfValue::Default => 0xFFFFFFFD,
-            RbfValue::Value(v) => *v,
-        }
-    }
-}
-
-/// Policy regarding the use of change outputs when creating a transaction
-#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
-pub enum ChangeSpendPolicy {
-    /// Use both change and non-change outputs (default)
-    ChangeAllowed,
-    /// Only use change outputs (see [`TxBuilder::only_spend_change`])
-    OnlyChange,
-    /// Only use non-change outputs (see [`TxBuilder::do_not_spend_change`])
-    ChangeForbidden,
-}
-
-impl Default for ChangeSpendPolicy {
-    fn default() -> Self {
-        ChangeSpendPolicy::ChangeAllowed
-    }
-}
-
-impl ChangeSpendPolicy {
-    pub(crate) fn is_satisfied_by(&self, utxo: &LocalUtxo) -> bool {
-        match self {
-            ChangeSpendPolicy::ChangeAllowed => true,
-            ChangeSpendPolicy::OnlyChange => utxo.keychain == KeychainKind::Internal,
-            ChangeSpendPolicy::ChangeForbidden => utxo.keychain == KeychainKind::External,
-        }
-    }
-}
-
-#[cfg(test)]
-mod test {
-    const ORDERING_TEST_TX: &str = "0200000003c26f3eb7932f7acddc5ddd26602b77e7516079b03090a16e2c2f54\
-                                    85d1fd600f0100000000ffffffffc26f3eb7932f7acddc5ddd26602b77e75160\
-                                    79b03090a16e2c2f5485d1fd600f0000000000ffffffff571fb3e02278217852\
-                                    dd5d299947e2b7354a639adc32ec1fa7b82cfb5dec530e0500000000ffffffff\
-                                    03e80300000000000002aaeee80300000000000001aa200300000000000001ff\
-                                    00000000";
-    macro_rules! ordering_test_tx {
-        () => {
-            deserialize::<bitcoin::Transaction>(&Vec::<u8>::from_hex(ORDERING_TEST_TX).unwrap())
-                .unwrap()
-        };
-    }
-
-    use bitcoin::consensus::deserialize;
-    use bitcoin::hashes::hex::FromHex;
-
-    use super::*;
-
-    #[test]
-    fn test_output_ordering_default_shuffle() {
-        assert_eq!(TxOrdering::default(), TxOrdering::Shuffle);
-    }
-
-    #[test]
-    fn test_output_ordering_untouched() {
-        let original_tx = ordering_test_tx!();
-        let mut tx = original_tx.clone();
-
-        TxOrdering::Untouched.sort_tx(&mut tx);
-
-        assert_eq!(original_tx, tx);
-    }
-
-    #[test]
-    fn test_output_ordering_shuffle() {
-        let original_tx = ordering_test_tx!();
-        let mut tx = original_tx.clone();
-
-        TxOrdering::Shuffle.sort_tx(&mut tx);
-
-        assert_eq!(original_tx.input, tx.input);
-        assert_ne!(original_tx.output, tx.output);
-    }
-
-    #[test]
-    fn test_output_ordering_bip69() {
-        use std::str::FromStr;
-
-        let original_tx = ordering_test_tx!();
-        let mut tx = original_tx;
-
-        TxOrdering::Bip69Lexicographic.sort_tx(&mut tx);
-
-        assert_eq!(
-            tx.input[0].previous_output,
-            bitcoin::OutPoint::from_str(
-                "0e53ec5dfb2cb8a71fec32dc9a634a35b7e24799295ddd5278217822e0b31f57:5"
-            )
-            .unwrap()
-        );
-        assert_eq!(
-            tx.input[1].previous_output,
-            bitcoin::OutPoint::from_str(
-                "0f60fdd185542f2c6ea19030b0796051e7772b6026dd5ddccd7a2f93b73e6fc2:0"
-            )
-            .unwrap()
-        );
-        assert_eq!(
-            tx.input[2].previous_output,
-            bitcoin::OutPoint::from_str(
-                "0f60fdd185542f2c6ea19030b0796051e7772b6026dd5ddccd7a2f93b73e6fc2:1"
-            )
-            .unwrap()
-        );
-
-        assert_eq!(tx.output[0].value, 800);
-        assert_eq!(tx.output[1].script_pubkey, From::from(vec![0xAA]));
-        assert_eq!(tx.output[2].script_pubkey, From::from(vec![0xAA, 0xEE]));
-    }
-
-    fn get_test_utxos() -> Vec<LocalUtxo> {
-        vec![
-            LocalUtxo {
-                outpoint: OutPoint {
-                    txid: Default::default(),
-                    vout: 0,
-                },
-                txout: Default::default(),
-                keychain: KeychainKind::External,
-            },
-            LocalUtxo {
-                outpoint: OutPoint {
-                    txid: Default::default(),
-                    vout: 1,
-                },
-                txout: Default::default(),
-                keychain: KeychainKind::Internal,
-            },
-        ]
-    }
-
-    #[test]
-    fn test_change_spend_policy_default() {
-        let change_spend_policy = ChangeSpendPolicy::default();
-        let filtered = get_test_utxos()
-            .into_iter()
-            .filter(|u| change_spend_policy.is_satisfied_by(u))
-            .count();
-
-        assert_eq!(filtered, 2);
-    }
-
-    #[test]
-    fn test_change_spend_policy_no_internal() {
-        let change_spend_policy = ChangeSpendPolicy::ChangeForbidden;
-        let filtered = get_test_utxos()
-            .into_iter()
-            .filter(|u| change_spend_policy.is_satisfied_by(u))
-            .collect::<Vec<_>>();
-
-        assert_eq!(filtered.len(), 1);
-        assert_eq!(filtered[0].keychain, KeychainKind::External);
-    }
-
-    #[test]
-    fn test_change_spend_policy_only_internal() {
-        let change_spend_policy = ChangeSpendPolicy::OnlyChange;
-        let filtered = get_test_utxos()
-            .into_iter()
-            .filter(|u| change_spend_policy.is_satisfied_by(u))
-            .collect::<Vec<_>>();
-
-        assert_eq!(filtered.len(), 1);
-        assert_eq!(filtered[0].keychain, KeychainKind::Internal);
-    }
-
-    #[test]
-    fn test_default_tx_version_1() {
-        let version = Version::default();
-        assert_eq!(version.0, 1);
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/utils.rs.html b/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/utils.rs.html deleted file mode 100644 index 4ec17c1b10..0000000000 --- a/static/docs-rs/bdk/nightly/latest/src/bdk/wallet/utils.rs.html +++ /dev/null @@ -1,469 +0,0 @@ -utils.rs - source -
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-
// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-use bitcoin::secp256k1::{All, Secp256k1};
-
-use miniscript::{MiniscriptKey, Satisfier, ToPublicKey};
-
-// De-facto standard "dust limit" (even though it should change based on the output type)
-pub const DUST_LIMIT_SATOSHI: u64 = 546;
-
-// MSB of the nSequence. If set there's no consensus-constraint, so it must be disabled when
-// spending using CSV in order to enforce CSV rules
-pub(crate) const SEQUENCE_LOCKTIME_DISABLE_FLAG: u32 = 1 << 31;
-// When nSequence is lower than this flag the timelock is interpreted as block-height-based,
-// otherwise it's time-based
-pub(crate) const SEQUENCE_LOCKTIME_TYPE_FLAG: u32 = 1 << 22;
-// Mask for the bits used to express the timelock
-pub(crate) const SEQUENCE_LOCKTIME_MASK: u32 = 0x0000FFFF;
-
-// Threshold for nLockTime to be considered a block-height-based timelock rather than time-based
-pub(crate) const BLOCKS_TIMELOCK_THRESHOLD: u32 = 500000000;
-
-/// Trait to check if a value is below the dust limit
-// we implement this trait to make sure we don't mess up the comparison with off-by-one like a <
-// instead of a <= etc. The constant value for the dust limit is not public on purpose, to
-// encourage the usage of this trait.
-pub trait IsDust {
-    /// Check whether or not a value is below dust limit
-    fn is_dust(&self) -> bool;
-}
-
-impl IsDust for u64 {
-    fn is_dust(&self) -> bool {
-        *self <= DUST_LIMIT_SATOSHI
-    }
-}
-
-pub struct After {
-    pub current_height: Option<u32>,
-    pub assume_height_reached: bool,
-}
-
-impl After {
-    pub(crate) fn new(current_height: Option<u32>, assume_height_reached: bool) -> After {
-        After {
-            current_height,
-            assume_height_reached,
-        }
-    }
-}
-
-pub(crate) fn check_nsequence_rbf(rbf: u32, csv: u32) -> bool {
-    // This flag cannot be set in the nSequence when spending using OP_CSV
-    if rbf & SEQUENCE_LOCKTIME_DISABLE_FLAG != 0 {
-        return false;
-    }
-
-    let mask = SEQUENCE_LOCKTIME_TYPE_FLAG | SEQUENCE_LOCKTIME_MASK;
-    let rbf = rbf & mask;
-    let csv = csv & mask;
-
-    // Both values should be represented in the same unit (either time-based or
-    // block-height based)
-    if (rbf < SEQUENCE_LOCKTIME_TYPE_FLAG) != (csv < SEQUENCE_LOCKTIME_TYPE_FLAG) {
-        return false;
-    }
-
-    // The value should be at least `csv`
-    if rbf < csv {
-        return false;
-    }
-
-    true
-}
-
-pub(crate) fn check_nlocktime(nlocktime: u32, required: u32) -> bool {
-    // Both values should be expressed in the same unit
-    if (nlocktime < BLOCKS_TIMELOCK_THRESHOLD) != (required < BLOCKS_TIMELOCK_THRESHOLD) {
-        return false;
-    }
-
-    // The value should be at least `required`
-    if nlocktime < required {
-        return false;
-    }
-
-    true
-}
-
-impl<Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for After {
-    fn check_after(&self, n: u32) -> bool {
-        if let Some(current_height) = self.current_height {
-            current_height >= n
-        } else {
-            self.assume_height_reached
-        }
-    }
-}
-
-pub struct Older {
-    pub current_height: Option<u32>,
-    pub create_height: Option<u32>,
-    pub assume_height_reached: bool,
-}
-
-impl Older {
-    pub(crate) fn new(
-        current_height: Option<u32>,
-        create_height: Option<u32>,
-        assume_height_reached: bool,
-    ) -> Older {
-        Older {
-            current_height,
-            create_height,
-            assume_height_reached,
-        }
-    }
-}
-
-impl<Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for Older {
-    fn check_older(&self, n: u32) -> bool {
-        if let Some(current_height) = self.current_height {
-            // TODO: test >= / >
-            current_height as u64 >= self.create_height.unwrap_or(0) as u64 + n as u64
-        } else {
-            self.assume_height_reached
-        }
-    }
-}
-
-pub(crate) type SecpCtx = Secp256k1<All>;
-
-#[cfg(test)]
-mod test {
-    use super::{
-        check_nlocktime, check_nsequence_rbf, BLOCKS_TIMELOCK_THRESHOLD,
-        SEQUENCE_LOCKTIME_TYPE_FLAG,
-    };
-    use crate::types::FeeRate;
-
-    #[test]
-    fn test_fee_from_btc_per_kb() {
-        let fee = FeeRate::from_btc_per_kvb(1e-5);
-        assert!((fee.as_sat_vb() - 1.0).abs() < 0.0001);
-    }
-
-    #[test]
-    fn test_fee_from_sats_vbyte() {
-        let fee = FeeRate::from_sat_per_vb(1.0);
-        assert!((fee.as_sat_vb() - 1.0).abs() < 0.0001);
-    }
-
-    #[test]
-    fn test_fee_default_min_relay_fee() {
-        let fee = FeeRate::default_min_relay_fee();
-        assert!((fee.as_sat_vb() - 1.0).abs() < 0.0001);
-    }
-
-    #[test]
-    fn test_check_nsequence_rbf_msb_set() {
-        let result = check_nsequence_rbf(0x80000000, 5000);
-        assert!(!result);
-    }
-
-    #[test]
-    fn test_check_nsequence_rbf_lt_csv() {
-        let result = check_nsequence_rbf(4000, 5000);
-        assert!(!result);
-    }
-
-    #[test]
-    fn test_check_nsequence_rbf_different_unit() {
-        let result = check_nsequence_rbf(SEQUENCE_LOCKTIME_TYPE_FLAG + 5000, 5000);
-        assert!(!result);
-    }
-
-    #[test]
-    fn test_check_nsequence_rbf_mask() {
-        let result = check_nsequence_rbf(0x3f + 10_000, 5000);
-        assert!(result);
-    }
-
-    #[test]
-    fn test_check_nsequence_rbf_same_unit_blocks() {
-        let result = check_nsequence_rbf(10_000, 5000);
-        assert!(result);
-    }
-
-    #[test]
-    fn test_check_nsequence_rbf_same_unit_time() {
-        let result = check_nsequence_rbf(
-            SEQUENCE_LOCKTIME_TYPE_FLAG + 10_000,
-            SEQUENCE_LOCKTIME_TYPE_FLAG + 5000,
-        );
-        assert!(result);
-    }
-
-    #[test]
-    fn test_check_nlocktime_lt_cltv() {
-        let result = check_nlocktime(4000, 5000);
-        assert!(!result);
-    }
-
-    #[test]
-    fn test_check_nlocktime_different_unit() {
-        let result = check_nlocktime(BLOCKS_TIMELOCK_THRESHOLD + 5000, 5000);
-        assert!(!result);
-    }
-
-    #[test]
-    fn test_check_nlocktime_same_unit_blocks() {
-        let result = check_nlocktime(10_000, 5000);
-        assert!(result);
-    }
-
-    #[test]
-    fn test_check_nlocktime_same_unit_time() {
-        let result = check_nlocktime(
-            BLOCKS_TIMELOCK_THRESHOLD + 10_000,
-            BLOCKS_TIMELOCK_THRESHOLD + 5000,
-        );
-        assert!(result);
-    }
-}
-
-
- \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/storage.js b/static/docs-rs/bdk/nightly/latest/storage.js deleted file mode 100644 index dd18db8a72..0000000000 --- a/static/docs-rs/bdk/nightly/latest/storage.js +++ /dev/null @@ -1 +0,0 @@ -var darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");window.mainTheme=document.getElementById("mainThemeStyle");var settingsDataset=(function(){var settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}var dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){var current=getCurrentValue('rustdoc-'+settingName);if(current!==null){return current}if(settingsDataset!==null){var def=settingsDataset[settingName.replace(/-/g,'_')];if(def!==undefined){return def}}return null}var localStoredTheme=getSettingValue("theme");var savedHref=[];function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(!elem||!elem.classList){return}elem.classList.add(className)}function removeClass(elem,className){if(!elem||!elem.classList){return}elem.classList.remove(className)}function onEach(arr,func,reversed){if(arr&&arr.length>0&&func){var length=arr.length;var i;if(reversed){for(i=length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(i=0;i=0){updateLocalStorage("rustdoc-preferred-dark-theme",localStoredTheme)}updateSystemTheme()}else{switchTheme(window.currentTheme,window.mainTheme,getSettingValue("theme")||"light",false)} \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/toggle-minus.svg b/static/docs-rs/bdk/nightly/latest/toggle-minus.svg deleted file mode 100644 index 73154788a0..0000000000 --- a/static/docs-rs/bdk/nightly/latest/toggle-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/toggle-plus.svg b/static/docs-rs/bdk/nightly/latest/toggle-plus.svg deleted file mode 100644 index 08b17033e1..0000000000 --- a/static/docs-rs/bdk/nightly/latest/toggle-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/docs-rs/bdk/nightly/latest/wheel.svg b/static/docs-rs/bdk/nightly/latest/wheel.svg deleted file mode 100644 index 01da3b24c7..0000000000 --- a/static/docs-rs/bdk/nightly/latest/wheel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file -- 2.49.0