From 0e8112269dd0c20792bccb222ec4a38bed4f2af9 Mon Sep 17 00:00:00 2001 From: Dakoda Greaves Date: Fri, 22 Jul 2022 14:25:53 -0700 Subject: [PATCH] transaction: remove all refs to segwit and bech32 dogecoin does not currently implement segregated witness otherwise known as segwit, therefore i've removed all references to segwit and bech32 address encoding. --- CMakeLists.txt | 2 - Makefile.am | 2 - doc/tools.md | 3 - doc/transaction.md | 5 +- doc/transaction_extended.md | 227 ++++----------- include/dogecoin/base58.h | 1 - include/dogecoin/key.h | 2 - include/dogecoin/protocol.h | 8 - include/dogecoin/script.h | 6 - include/dogecoin/segwit_addr.h | 84 ------ include/dogecoin/tool.h | 2 +- include/dogecoin/tx.h | 7 +- src/base58.c | 5 - src/chainparams.c | 4 - src/cli/sendtx.c | 2 +- src/cli/such.c | 32 +-- src/cli/tool.c | 13 +- src/key.c | 23 -- src/script.c | 85 +----- src/segwit_addr.c | 211 -------------- src/transaction.c | 14 +- src/tx.c | 498 ++++----------------------------- test/net_tests.c | 2 +- test/tool_tests.c | 6 +- test/transaction_tests.c | 4 +- test/tx_tests.c | 369 ++++++++---------------- 26 files changed, 261 insertions(+), 1356 deletions(-) delete mode 100644 include/dogecoin/segwit_addr.h delete mode 100644 src/segwit_addr.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 076acf249..bfc29f01f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,7 +65,6 @@ INSTALL(FILES include/dogecoin/random.h include/dogecoin/rmd160.h include/dogecoin/script.h - include/dogecoin/segwit_addr.h include/dogecoin/serialize.h include/dogecoin/sha2.h include/dogecoin/tool.h @@ -94,7 +93,6 @@ TARGET_SOURCES(${LIBDOGECOIN_NAME} PRIVATE src/random.c src/rmd160.c src/script.c - src/segwit_addr.c src/serialize.c src/sha2.c src/cli/tool.c diff --git a/Makefile.am b/Makefile.am index c8aa3b6fa..1edb13301 100644 --- a/Makefile.am +++ b/Makefile.am @@ -33,7 +33,6 @@ libdogecoininclude_HEADERS = \ include/dogecoin/random.h \ include/dogecoin/rmd160.h \ include/dogecoin/script.h \ - include/dogecoin/segwit_addr.h \ include/dogecoin/serialize.h \ include/dogecoin/sha2.h \ include/dogecoin/tool.h \ @@ -64,7 +63,6 @@ libdogecoin_la_SOURCES = \ src/random.c \ src/rmd160.c \ src/script.c \ - src/segwit_addr.c \ src/serialize.c \ src/sha2.c \ src/cli/tool.c \ diff --git a/doc/tools.md b/doc/tools.md index b716b6893..9b1b476fd 100644 --- a/doc/tools.md +++ b/doc/tools.md @@ -74,14 +74,11 @@ Below are some examples on how to use the `such` tool in practice. ./such -c generate_public_key -p QSPDnjzvrSPAeiM7N2jCkzv2dqsi7fxoHipgpPfz2zdE3ZpYp74j > pubkey: 02cf2c99c2db4b3d72d4289aa23bdaf5f3ccf4867ec8e5f8223ea716a7a3de10bc > p2pkh address: D62RKK6AGkzX6fM8RzoVM8fjPx2nzrdvKU - > p2sh-p2wpkh address: 9zXbecoxo4aDsG8Ng1osUhGN9URrF1P9JZ ##### Generate the P2PKH address from a hex encoded compact public key ./such -c generate_public_key -pubkey 02cf2c99c2db4b3d72d4289aa23bdaf5f3ccf4867ec8e5f8223ea716a7a3de10bc > p2pkh address: D62RKK6AGkzX6fM8RzoVM8fjPx2nzrdvKU - > p2sh-p2wpkh address: 9zXbecoxo4aDsG8Ng1osUhGN9URrF1P9JZ - > p2wpkh (doge / bech32) address: doge1qpx6wxh9xv780a7uj675vl0c88zd3fg4v26vlsn ##### Generate new BIP32 master key diff --git a/doc/transaction.md b/doc/transaction.md index 4dee0e667..d76882a0c 100644 --- a/doc/transaction.md +++ b/doc/transaction.md @@ -22,8 +22,7 @@ ## Introduction -The high level 'essential' API provided by libdogecoin for working with simple -transactions revolve around a structure defined as a `working_transaction` which is comprised of an index as an integer meant for retrieval, a dogecoin_tx 'transaction' structure as seen above, and finally a UT_hash_handle which stores our working_transaction struct in a hash table (using Troy D. Hanson's uthash library: see ./contrib/uthash/uthash.h and visit https://troydhanson.github.io/uthash/ for more information) to allow us to generate multiple transactions per "session". This `working_transaction` structure is defined as such: +The high level 'essential' API provided by libdogecoin for working with simple transactions revolve around a structure defined as a `working_transaction` which is comprised of an index as an integer meant for retrieval, a dogecoin_tx 'transaction' structure as seen above, and finally a UT_hash_handle which stores our working_transaction struct in a hash table (using Troy D. Hanson's uthash library: see ./contrib/uthash/uthash.h and visit https://troydhanson.github.io/uthash/ for more information) which allow us to generate multiple transactions per "session". This `working_transaction` structure is defined as such: ```C typedef struct working_transaction { int index; @@ -32,7 +31,7 @@ typedef struct working_transaction { } working_transaction; ``` -The functions that have been built around this `working_transaction` structure and flow of operation are comprised of 4 macros, which are explained further in the following section describing the [working transaction API](#working-transaction-api). used to interact with uthash. +The functions that have been built around this `working_transaction` structure and flow of operation are comprised of 4 macros, which are explained further in the following section describing the [working transaction API](#working-transaction-api). used to interact with uthash. For more detailed technical information about the `dogecoin_tx` structure and Dogecoin transactions in general, please refer to the [extended transaction documentation](./transaction_extended.md). The [Libdogecoin Essential API](#essential-api) itself is a higher level interface that contains all the necessary operations for building Dogecoin transactions from scratch. The generic process for building a transaction is as follows: - Create an empty transaction. diff --git a/doc/transaction_extended.md b/doc/transaction_extended.md index 5d9db69c8..d3a0b6473 100644 --- a/doc/transaction_extended.md +++ b/doc/transaction_extended.md @@ -1,20 +1,18 @@ -# Extended Transaction Information -## Dogecoin Transaction Object -The dogecoin_tx object describes a dogecoin transaction in reply to getdata. When a bloom filter is applied tx objects are sent automatically for matching transactions following the merkleblock. It is composed of the following fields: +### Dogecoin Transaction Overview + +The `dogecoin_tx` structure describes a dogecoin transaction in reply to getdata. When a bloom filter is applied tx objects are sent automatically for matching transactions following the merkleblock. It is composed of the following fields: | Field Size | Description | Data type | Comments | | ----------- | ----------- | - | - | | 4 | version | uint32_t | Transaction data format version | -| 0 or 2 | flag | optional uint8_t[2] | If present, always 0001, and indicates the presence of witness data | | 1+ | tx_in count | var_int | Number of Transaction inputs (never zero) | | 41+ | tx_in | tx_in[] | A list of 1 or more transaction inputs or sources for coins | | 1+ | tx_out count | var_int | Number of Transaction outputs | | 9+ | tx_out | tx_out[] | A list of 1 or more transaction outputs or destinations for coins | -| 0+ | tx_witnesses | tx_witness[] | A list of witnesses, one for each input; omitted if flag is omitted above | | 4 | lock_time | uint32_t | The block number or timestamp at which this transaction is unlocked: 0 == not locked, < 500000000 == Block number at which this transaction is unlocked, >= 500000000 == UNIX timestamp at which this transaction is unlocked. If all TxIn have final (0xffffffff) sequence numbers then lock_time is irrelevant. Otherwise, the transaction may not be added to a block until after lock_time (see NLockTime). | -Structure definition as found in tx.h: +`include/dogecoin/tx.h`: ``` typedef struct dogecoin_tx_ { int32_t version; @@ -24,10 +22,10 @@ typedef struct dogecoin_tx_ { } dogecoin_tx; ``` -## Dogecoin Transaction Inputs and Outputs -Every transaction is composed of inputs and outputs, which specify where the funds came from and where they will go. These are represented by the dogecoin_tx_in object and dogecoin_tx_out object. +Every transaction is composed of inputs and outputs, which specify where the funds came from and where they will go. These are represented by the `dogecoin_tx_in` and `dogecoin_tx_out` structs below. -The dogecoin_tx_in object consists of the following fields: +### Dogecoin Transaction Input +The `dogecoin_tx_in` structure consists of the following fields: | Field Size | Description | Data type | Comments | | ----------- | ----------- | - | - | | 36 | previous_output | outpoint | The previous output transaction reference, as an Outpoint structure | @@ -35,23 +33,22 @@ The dogecoin_tx_in object consists of the following fields: | ? | signature_script | uchar[] | Computational Script for confirming transaction authorization | | 4 | sequence | uint32_t | Transaction version as defined by the sender. Intended for "replacement" of transactions when information is updated before inclusion into a block. | -Structure definition as found in tx.h: +`include/dogecoin/tx.h`: ``` typedef struct dogecoin_tx_in_ { dogecoin_tx_outpoint prevout; cstring* script_sig; uint32_t sequence; - vector* witness_stack; } dogecoin_tx_in; ``` -The dogecoin_tx_out object consists of the following fields: +The `dogecoin_tx_outpoint` structure represented above as `prevout` consists of the following fields: | Field Size | Description | Data type | Comments | | ----------- | ----------- | - | - | | 32 | hash | char[32] | The hash of the referenced transaction | | 4 | index | uint32_t | The index of the specific output in the transaction. The first output is 0, etc. | -Structure definition as found in tx.h: +`include/dogecoin/tx.h`: ``` typedef struct dogecoin_tx_outpoint_ { uint256 hash; @@ -59,182 +56,56 @@ typedef struct dogecoin_tx_outpoint_ { } dogecoin_tx_outpoint; ``` -The script structure consists of a series of pieces of information and operations related to the value of the transaction. When notating scripts, data to be pushed to the stack is generally enclosed in angle brackets and data push commands are omitted. Non-bracketed words are opcodes. These examples include the "OP_" prefix, but it is permissible to omit it. Thus “ OP_2 OP_CHECKMULTISIG” may be abbreviated to “ 2 CHECKMULTISIG”. Note that there is a small number of standard script forms that are relayed from node to node; non-standard scripts are accepted if they are in a block, but nodes will not relay them. - - -## Transaction Generation Tutorial (Using Core) - -Below is an adapted tutorial of bitcoin developers transaction tutorial that will demonstrate how to generate a raw transaction with the goal of spending a dogecoin UTXO. It will describe how to use Dogecoin Core's RPC (remote procedure call) interface in addition to how that's been implemented within libdogecoin. Regardless of the application you use to interact with Dogecoin, the data described (variables, concepts, etc) should remain applicable and relevant. - -In order to get hands on experience while learning below you will need to setup a Dogecoin Core node and create a regtest (regression test mode) environment with 50 DOGE in your test wallet. - -Let's look at our new nodes wallet: -``` -> dogecoin-cli getwalletinfo -{ - "walletversion": 130000, - "balance": 0.00000000, - "unconfirmed_balance": 0.00000000, - "immature_balance": 0.00000000, - "txcount": 0, - "keypoololdest": 1647826693, - "keypoolsize": 100, - "paytxfee": 0.01000000, - "hdmasterkeyid": "0d8dec29341145b8c949dbb26bc2c16831588bfe" -} -``` -Our wallet is not funded so let's create some blocks to fund our tutorial. Normally these will be mined on mainnet, testnet but because we are using regtest we can push the boundaries so to speak. Let's take a look at the address already assigned to our wallet: -``` -> dogecoin-cli getaddressesbyaccount "" -[ - "mmJgQnPvME6L1CZs9uSAb8EkZ4GkeaPzUd" -] -``` - -Generate some blocks to our address above: -``` -> dogecoin-cli generatetoaddress 50 "mmJgQnPvME6L1CZs9uSAb8EkZ4GkeaPzUd" -[ - "1ac3cf987db5f99f8e1637e4d6c9f8932b300bd2df5ce42f18d26a0e39dc0329", - "9780e7e1ea21081cd2d76ca3b37fab7341c0b27f6751ee83009483b94f8fca4c", - "558a5b69479da43eb76ad734f91bebd1b77dce84669d0296b37e1d7cd4627477", - "3d0a0355d29510041bba00c75ae7749868c7957ef2acb1c0cb115518cfd3cfba", - "3420b6bf38083c8b6d0addda8df30fd01ef6a2018bb23a85f3fb1e14579fa6ef", - "4b360617bb5dc1b362effb750863356e87fd49e477023fa0c947dc4aa684c373", - "c3a4cbd1187e01be22ced93417319e73ae7068ec390e1f5b0c7a14db6e94ff35", - "2569ccc31db2fd40c6698f5d38733e4d853727d4d9743582a56d0c448101ff68", - "24d187b1aa230668fd4b2fb8768de6fae090267cae4b8879c1339de0f560d4e5", - "e60e237247007c660b27a5833350ec33588679fe678c9520f8603e1c9e004f36", - "46dfaecaf4a5d9cca928b541713fdd323154eceeb486a183406b475e180e777b", - "60bd30d112578d779ed7a84bb020f8af75e873474e390c32165991c53aede511", - "9cf6055aa0db5d8d86a3c4f878498dfbef01593e54858c4515efd911b8f691d3", - "35204404f6c98339729b65aff9823324f9c4bd646238cb9a383115a9511262c0", - "511b66e4449395d82d12d70d4b44a2eefa5c8562dc1e9f69d9f5902bb313361c", - "000d301804a90d589b28d76ef2b08b039da604c85e6d42db50997f5edcc7729c", - "838a018ac3c4bdb31621912710e5ef1c3e7a869cf1f427beb4963d2c0c752785", - "1e09d0556d218618a1e418a3806f869b8ba2240ff66e73074ed71ce474118afe", - "dfcfb06f907402885a15bd50f6fa05773d487139f1640e0a030054e6ad18631e", - "e1c84aa8f5059d486de8f7089ddc25a2b9dfc98512971f36d4383f4b25b3e860", - "a1fdb3eac0868b64bf77263e37ea7f1212742fc563ef08f1b3d365266231ed9e", - "d6e747c6250b47d89187c6d0bf9b55e0bcec6630328c40c23de8274a69223e8d", - "2676066b94306108f7c88879f67c17148b482b7ad0d87671e7b075c14e6d7498", - "a606543d7ff3c9363127b5dae707187bf9a87ce1148926f937319bc0ea690299", - "d23d8d430b8bc6203f67f06494420d8d7f6f9efe56a7142b7d883aaa4c34765d", - "87d6f4b8c0f1a41a362de973f4d47fc0fc0f8bbb41e3a8d858d83702fbefbb57", - "46aeee39f1d4e6affa1f10bd1376179da3b0c6cfd5d2426c3582752397f8e8cb", - "f98c52e258232cfe61944dd940cdc903f2167dfbdc6a39e18cf924f1fcfdc8ec", - "5c7e022a445c5d32a971985e74f1d5cc5cd3a8e416636f3df9eb8d71ca46d518", - "8936fc612098cb13060c75791d671825d492f509286da0dd59af9e99018d1a58", - "6c1f90c855e94321eb9c4ce9da52f7a93dffc3631b012db599742d06fedf6d6a", - "fef55cbe038a0d8d8ef1dd55bc9764e59571d612feaec927fa77037f1d59d30e", - "52b54ca22aef9acc0bebc4e02a63ddbfcfdf6d825c31515fe50346b8fbb219ef", - "88f312b935558519ef3d11c8cee15a941f3194a79f8eea3c6fb60dbd9f508493", - "2eae39807f458e6c2c51d9ce76fb0f7919b3b134874dd85b4eef27e0ef10458a", - "0a7320c0947b6364a1cfad9e15f69837341284dca5c8a59957c7fe8b877df012", - "c8d1a2c9324a99741acc682a55a34014c7cbca344cae8898db523b0df1cbe527", - "0ef3bbada02c8292bb59a84c46dd9a6e3e1f61da16116828b5b1c8ebc90033bd", - "e00523629d361d7389116eac890a2611d442c78e4a31b27115cf7ac651640139", - "5873478cc035a71026a515f2122c0e50d398c0a0eb6579ccc91e111b3801e00a", - "3b74243f820a4b0df921d5ec745cc99b87b7873e05b80b3cc310580bbadca6a1", - "ab1b1b31d74c448bdbcca975c1e4d7f174d5ed6d3ef540ee12001c63f792fb3c", - "965725e1938e11feab69e1c390ec2f27f6ee8173b390e20cba39e6b3bf03cccf", - "680e6c992a7c4a8b4eddc5aec324ded0db25973091eeabb5583c278accbc721f", - "6190a3371cba42acb785f6f156ec240c176cff5279797097d15467cb09eb611b", - "74a096554aca8b6714d22d019d5ab5a71356530b237809c5f2b2996691c37443", - "f0881f66feb2852a7034aec1f54ef90dc2bfd93f075c1ab54d22f484645dbfaf", - "14fe35ab6a90e75b85dd841d0fc68581c046003ef9767dabb3d1aa255afa3de7", - "2f3a6fc6ae4e629e8c2e74fcebd5b98b07a1d02f1cb57c02b9f480d046319d7a", - "df8c313ee75eea1c75da42b21437e9f45b2c872d0b367ce0e92e6bb7d8d7c232" -] -``` - -Generate a new Dogecoin address and save it into a shell variable named $NEW_ADDRESS. -``` -> dogecoin-cli getnewaddress -n2TsAYRs1VxnQc4CxFxizaT296D9s3Tzvk - -NEW_ADDRESS=n2TsAYRs1VxnQc4CxFxizaT296D9s3Tzvk -``` -Send 10 dogecoins to the address using the "sendtoaddress" RPC. The returned hex string is the transaction identifer (txid). -``` -> dogecoin-cli -regtest sendtoaddress $NEW_ADDRESS 10.00 -5f2f3dbf4f554efe02a0fc940c2713bc67efb265377fa4d824c502f45ebf0630 -``` - -This is what that command looks like as outputted on the dogecoin debug.log: -``` -2022-03-21 01:27:26 ThreadRPCServer method=sendtoaddress -2022-03-21 01:27:26 keypool added key 105, size=101 -2022-03-21 01:27:26 keypool reserve 5 -2022-03-21 01:27:26 CommitTransaction: -CTransaction(hash=5f2f3dbf4f, ver=1, vin.size=1, vout.size=2, nLockTime=110) - CTxIn(COutPoint(e7865afcdd, 0), scriptSig=483045022100edfcadbea209, nSequence=4294967294) - CScriptWitness() - CTxOut(nValue=499989.99808000, scriptPubKey=76a9148a0fa51c7264761a2be477ff) - CTxOut(nValue=10.00000000, scriptPubKey=76a9145dd0b9e3a738367abddf2648) -2022-03-21 01:27:26 keypool keep 5 -2022-03-21 01:27:26 AddToWallet 5f2f3dbf4f554efe02a0fc940c2713bc67efb265377fa4d824c502f45ebf0630 new -2022-03-21 01:27:26 AddToWallet 5f2f3dbf4f554efe02a0fc940c2713bc67efb265377fa4d824c502f45ebf0630 -2022-03-21 01:27:26 Relaying wtx 5f2f3dbf4f554efe02a0fc940c2713bc67efb265377fa4d824c502f45ebf0630 -``` +### Dogecoin Transaction Output +The `dogecoin_tx_out` structure consists of the following fields: +| Field Size | Description | Data type | Comments | +| ----------- | ----------- | - | - | +| 8 | value | int64_t | Transaction value | +| 1+ | pk_script length | var_int | Length of the pk_script | +| ? | pk_script | uchar[] | Usually contains the public key as a dogecoin script setting up conditions to claim this output. | -Now let's check our available balance again: +`include/dogecoin/tx.h`: ``` -> dogecoin-cli getbalance -20000000.00000000 +typedef struct dogecoin_tx_out_ { + int64_t value; + cstring* script_pubkey; +} dogecoin_tx_out; ``` -The "sendtoaddress" RPC command automatically selects an unspent transaction (UTXO) from which to spend the koinus. To spend a speicific UTXO, we will next be using the `sendfrom` RPC instead. +#### Standard Transaction to Dogecoin Address (pay-to-pubkey-hash) +The `dogecoin_script` structure consists of a series of pieces of information and operations related to the value of the transaction. When notating scripts, data to be pushed to the stack is generally enclosed in angle brackets and data push commands are omitted. Non-bracketed words are opcodes. These examples include the "OP_" prefix, but it is permissible to omit it. Thus " OP_2 OP_CHECKMULTISIG" may be abbreviated to " 2 CHECKMULTISIG". Note that there is a small number of standard script forms that are relayed from node to node; non-standard scripts are accepted if they are in a block, but nodes will not relay them. ``` -> dogecoin-cli sendtoaddress "mtfFqt3cv5QsJse2ZGPqCjZnB5pXp5jdpp" 10 -7a0af647402cae13f220b26897656d5e6ad474f183c9aa7e5b18853a0af630ff +scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG +scriptSig: ``` - -Now let's build a raw transaction by selecting a UTXO: +To demonstrate how scripts look on the wire, here is a raw scriptPubKey: ``` -> dogecoin-cli -regtest listunspent -[ - { - "txid": "48ebc6b886297ab00eb04e21bfb7caf5323844f854a3e6efdcce5620982a5208", - "vout": 0, - "address": "mmJgQnPvME6L1CZs9uSAb8EkZ4GkeaPzUd", - "account": "", - "scriptPubKey": "76a9143f7e80febb561287622d235cfb2841fe5fe2788488ac", - "amount": 500000.00000000, - "confirmations": 69, - "spendable": true, - "solvable": true - }, - ... -] + 76 A9 14 +OP_DUP OP_HASH160 Bytes to push +89 AB CD EF AB BA AB BA AB BA AB BA AB BA AB BA AB BA AB BA 88 AC + Data to push OP_EQUALVERIFY OP_CHECKSIG ``` +##### **Note: scriptSig is in the input of the spending transaction and scriptPubKey is in the output of the previously unspent i.e. "available" transaction.** -There are a lot more listed than that but for brevitys sake we're only showing 1. Le's build our transaction using this UTXO: -``` -> UTXO_TXID=48ebc6b886297ab00eb04e21bfb7caf5323844f854a3e6efdcce5620982a5208 -> UTXO_VOUT=0 - -``` +Here is how each word is processed: +| Stack | Script | Description | +| ----------- | ----------- | - | +| Empty | ` ` OP_DUP OP_HASH160 `` OP_EQUALVERIFY OP_CHECKSIG | scriptSig and scriptPubKey are combined. | +| ` ` | OP_DUP OP_HASH160 `` OP_EQUALVERIFY OP_CHECKSIG | Constants are added to the stack. | +| ` ` | OP_HASH160 `` OP_EQUALVERIFY OP_CHECKSIG | Top stack item is duplicated. | +| ` ` | `` OP_EQUALVERIFY OP_CHECKSIG | Top stack item is hashed. | +| ` ` | OP_EQUALVERIFY OP_CHECKSIG | Constant added. | +| ` ` | OP_CHECKSIG | Equality is checked between the top two stack items. | +| true | Empty | Signature is checked for top two stack items. | -Now we will build our transaction using te shell variables we just set for UTXO_TXID and UTXO_VOUT: +`include/dogecoin/tx.h`: ``` -## Outputs - inputs = transaction fee, so always double-check your math! -> dogecoin-cli createrawtransaction ''' - [ - { - "txid": "'$UTXO_TXID'", - "vout": '$UTXO_VOUT' - } - ] - ''' ''' - { - "'$NEW_ADDRESS'": 49.9999 - }''' -010000000108522a982056cedcefe6a354f8443832f5cab7bf214eb00eb07a2986b8c6eb480000000000ffffffff01f0ca052a010000001976a914902b9ca11c428ea9c18a7231e11e5d4249edeba188ac00000000 - -> RAW_TX=010000000108522a982056cedcefe6a354f8443832f5cab7bf214eb00eb07a2986b8c6eb480000000000ffffffff01f0ca052a010000001976a914902b9ca11c428ea9c18a7231e11e5d4249edeba188ac00000000 +typedef struct dogecoin_script_ { + int* data; + size_t limit; // Total size of the vector + size_t current; //Number of vectors in it at present +} dogecoin_script; ``` -We provided 2 arguments to the "createrawtransaction" RPC interface to create our raw transaction. The first argument is a JSON array holding a reference to the transaction identifier (txid) and the index number of the output from the UTXO we want to spend. The second argument is a JSON object which contains the address we want to send to (public key hash) and the number of dogecoins we want to send that address. We then save the ouputted raw hexadecimal formatted transaction in a shell variable we can easily access in the next step. -An important note to emphasize is that "createrawtransaction" does not automatically create change outputs, so one can easily make an accident paying a large transaction fee from the remainder left over (input amount - amount we're sending to the public key hash). +##### * *The examples above were derived from https://en.bitcoin.it* diff --git a/include/dogecoin/base58.h b/include/dogecoin/base58.h index 97e919acd..c8e2b458f 100644 --- a/include/dogecoin/base58.h +++ b/include/dogecoin/base58.h @@ -41,7 +41,6 @@ LIBDOGECOIN_API int dogecoin_base58_decode(void* bin, size_t* binszp, const char LIBDOGECOIN_API dogecoin_bool dogecoin_p2pkh_addr_from_hash160(const uint160 hashin, const dogecoin_chainparams* chain, char *addrout, int len); LIBDOGECOIN_API dogecoin_bool dogecoin_p2sh_addr_from_hash160(const uint160 hashin, const dogecoin_chainparams* chain, char* addrout, int len); -LIBDOGECOIN_API dogecoin_bool dogecoin_p2wpkh_addr_from_hash160(const uint160 hashin, const dogecoin_chainparams* chain, char *addrout); LIBDOGECOIN_END_DECL diff --git a/include/dogecoin/key.h b/include/dogecoin/key.h index ed6f3811e..d0343f549 100644 --- a/include/dogecoin/key.h +++ b/include/dogecoin/key.h @@ -82,9 +82,7 @@ LIBDOGECOIN_API dogecoin_bool dogecoin_key_sign_recover_pubkey(const unsigned ch //verifies a DER encoded signature with given pubkey and return true if valid LIBDOGECOIN_API dogecoin_bool dogecoin_pubkey_verify_sig(const dogecoin_pubkey* pubkey, const uint256 hash, unsigned char* sigder, int len); -LIBDOGECOIN_API dogecoin_bool dogecoin_pubkey_getaddr_p2sh_p2wpkh(const dogecoin_pubkey* pubkey, const dogecoin_chainparams* chain, char* addrout); LIBDOGECOIN_API dogecoin_bool dogecoin_pubkey_getaddr_p2pkh(const dogecoin_pubkey* pubkey, const dogecoin_chainparams* chain, char* addrout); -LIBDOGECOIN_API dogecoin_bool dogecoin_pubkey_getaddr_p2wpkh(const dogecoin_pubkey* pubkey, const dogecoin_chainparams* chain, char* addrout); LIBDOGECOIN_END_DECL diff --git a/include/dogecoin/protocol.h b/include/dogecoin/protocol.h index 4e9a4236e..da3d132c4 100644 --- a/include/dogecoin/protocol.h +++ b/include/dogecoin/protocol.h @@ -71,9 +71,6 @@ enum service_bits { // Bitcoin Core nodes used to support this by default, without advertising this bit, // but no longer do as of protocol version 70011 (= NO_BLOOM_VERSION) DOGECOIN_NODE_BLOOM = (1 << 2), - // NODE_WITNESS indicates that a node can be asked for blocks and transactions including - // witness data. - DOGECOIN_NODE_WITNESS = (1 << 3), // NODE_XTHIN means the node supports Xtreme Thinblocks // If this is turned off then the node will not service nor make xthin requests DOGECOIN_NODE_XTHIN = (1 << 4), @@ -146,14 +143,9 @@ enum GetDataMsg { MSG_TX = 1, MSG_BLOCK = 2, - // ORed into other flags to add witness - MSG_WITNESS_FLAG = 1 << 30, // The following can only occur in getdata. Invs always use TX or BLOCK. MSG_FILTERED_BLOCK = 3, //!< Defined in BIP37 MSG_CMPCT_BLOCK = 4, //!< Defined in BIP152 - MSG_WITNESS_BLOCK = MSG_BLOCK | MSG_WITNESS_FLAG, //!< Defined in BIP144 - MSG_WITNESS_TX = MSG_TX | MSG_WITNESS_FLAG, //!< Defined in BIP144 - MSG_FILTERED_WITNESS_BLOCK = MSG_FILTERED_BLOCK | MSG_WITNESS_FLAG, }; /* =================================== */ diff --git a/include/dogecoin/script.h b/include/dogecoin/script.h index 3a2b168b0..e6ee30af5 100644 --- a/include/dogecoin/script.h +++ b/include/dogecoin/script.h @@ -40,7 +40,6 @@ LIBDOGECOIN_BEGIN_DECL /** Sighash version types */ enum dogecoin_sig_version { SIGVERSION_BASE = 0, - SIGVERSION_WITNESS_V0 = 1, }; /** Signature hash types/flags */ @@ -203,8 +202,6 @@ enum dogecoin_tx_out_type { DOGECOIN_TX_PUBKEYHASH, DOGECOIN_TX_SCRIPTHASH, DOGECOIN_TX_MULTISIG, - DOGECOIN_TX_WITNESS_V0_PUBKEYHASH, - DOGECOIN_TX_WITNESS_V0_SCRIPTHASH, }; typedef struct dogecoin_script_op_ { @@ -233,14 +230,11 @@ LIBDOGECOIN_API void dogecoin_script_append_pushdata(cstring* script_in, const u LIBDOGECOIN_API dogecoin_bool dogecoin_script_build_multisig(cstring* script_in, const unsigned int required_signatures, const vector* pubkeys_chars); LIBDOGECOIN_API dogecoin_bool dogecoin_script_build_p2pkh(cstring* script, const uint160 hash160); -LIBDOGECOIN_API dogecoin_bool dogecoin_script_build_p2wpkh(cstring* script, const uint160 hash160); LIBDOGECOIN_API dogecoin_bool dogecoin_script_build_p2sh(cstring* script_in, const uint160 hash160); LIBDOGECOIN_API dogecoin_bool dogecoin_script_get_scripthash(const cstring* script_in, uint160 scripthash); LIBDOGECOIN_API const char* dogecoin_tx_out_type_to_str(const enum dogecoin_tx_out_type type); -LIBDOGECOIN_API dogecoin_bool dogecoin_script_is_witnessprogram(const cstring* script, uint8_t* version_out, uint8_t* program_out, int* programm_len_out); - LIBDOGECOIN_END_DECL #endif // __LIBDOGECOIN_SCRIPT_H__ diff --git a/include/dogecoin/segwit_addr.h b/include/dogecoin/segwit_addr.h deleted file mode 100644 index f412945dd..000000000 --- a/include/dogecoin/segwit_addr.h +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (c) 2017 Pieter Wuille - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#ifndef __LIBDOGECOIN_SEGWIT_ADDR_H__ -#define __LIBDOGECOIN_SEGWIT_ADDR_H__ -#define _SEGWIT_ADDR_H_ 0 - -#include - -#include - -LIBDOGECOIN_BEGIN_DECL - -/** Encode a SegWit address - * - * Out: output: Pointer to a buffer of size 73 + strlen(hrp) that will be - * updated to contain the null-terminated address. - * In: hrp: Pointer to the null-terminated human readable part to use - * (chain/network specific). - * ver: Version of the witness program (between 0 and 16 inclusive). - * prog: Data bytes for the witness program (between 2 and 40 bytes). - * prog_len: Number of data bytes in prog. - * Returns 1 if successful. - */ -LIBDOGECOIN_API int segwit_addr_encode(char* output, const char* hrp, int ver, const uint8_t* prog, size_t prog_len); - -/** Decode a SegWit address - * - * Out: ver: Pointer to an int that will be updated to contain the witness - * program version (between 0 and 16 inclusive). - * prog: Pointer to a buffer of size 40 that will be updated to - * contain the witness program bytes. - * prog_len: Pointer to a size_t that will be updated to contain the - * length of bytes in prog. hrp: Pointer to the null-terminated human - * readable part that is expected (chain/network specific). addr: Pointer to - * the null-terminated address. Returns 1 if successful. - */ -LIBDOGECOIN_API int segwit_addr_decode(int* ver, uint8_t* prog, size_t* prog_len, const char* hrp, const char* addr); - -/** Encode a Bech32 string - * - * Out: output: Pointer to a buffer of size strlen(hrp) + data_len + 8 that - * will be updated to contain the null-terminated Bech32 string. - * In: hrp : Pointer to the null-terminated human readable part. - * data : Pointer to an array of 5-bit values. - * data_len: Length of the data array. - * Returns 1 if successful. - */ -LIBDOGECOIN_API int bech32_encode(char* output, const char* hrp, const uint8_t* data, size_t data_len); - -/** Decode a Bech32 string - * - * Out: hrp: Pointer to a buffer of size strlen(input) - 6. Will be - * updated to contain the null-terminated human readable part. - * data: Pointer to a buffer of size strlen(input) - 8 that will - * hold the encoded 5-bit data values. - * data_len: Pointer to a size_t that will be updated to be the number - * of entries in data. - * In: input: Pointer to a null-terminated Bech32 string. - * Returns 1 if succesful. - */ -LIBDOGECOIN_API int bech32_decode(char* hrp, uint8_t* data, size_t* data_len, const char* input); - -LIBDOGECOIN_END_DECL - -#endif // __LIBDOGECOIN_SEGWIT_ADDR_H__ diff --git a/include/dogecoin/tool.h b/include/dogecoin/tool.h index 8bb3a38f2..303d4a4ca 100644 --- a/include/dogecoin/tool.h +++ b/include/dogecoin/tool.h @@ -34,7 +34,7 @@ LIBDOGECOIN_BEGIN_DECL /* generate the p2pkh address from a given hex pubkey */ -LIBDOGECOIN_API dogecoin_bool addresses_from_pubkey(const dogecoin_chainparams* chain, const char* pubkey_hex, char* p2pkh_address, char* p2sh_p2wpkh_address, char* p2wpkh_address); +LIBDOGECOIN_API dogecoin_bool addresses_from_pubkey(const dogecoin_chainparams* chain, const char* pubkey_hex, char* p2pkh_address); /* generate the hex publickey from a given hex private key */ LIBDOGECOIN_API dogecoin_bool pubkey_from_privatekey(const dogecoin_chainparams* chain, const char* privkey_hex, char* pubkey_hex, size_t* sizeout); diff --git a/include/dogecoin/tx.h b/include/dogecoin/tx.h index 63700805b..763bb403c 100644 --- a/include/dogecoin/tx.h +++ b/include/dogecoin/tx.h @@ -61,7 +61,6 @@ typedef struct dogecoin_tx_in_ { dogecoin_tx_outpoint prevout; cstring* script_sig; uint32_t sequence; - vector* witness_stack; } dogecoin_tx_in; typedef struct dogecoin_tx_out_ { @@ -119,10 +118,10 @@ LIBDOGECOIN_API void dogecoin_tx_free(dogecoin_tx* tx); LIBDOGECOIN_API void dogecoin_tx_copy(dogecoin_tx* dest, const dogecoin_tx* src); //!deserialize/parse a p2p serialized dogecoin transaction -LIBDOGECOIN_API int dogecoin_tx_deserialize(const unsigned char* tx_serialized, size_t inlen, dogecoin_tx* tx, size_t* consumed_length, dogecoin_bool allow_witness); +LIBDOGECOIN_API int dogecoin_tx_deserialize(const unsigned char* tx_serialized, size_t inlen, dogecoin_tx* tx, size_t* consumed_length); //!serialize a dogecoin data structure into a p2p serialized buffer -LIBDOGECOIN_API void dogecoin_tx_serialize(cstring* s, const dogecoin_tx* tx, dogecoin_bool allow_witness); +LIBDOGECOIN_API void dogecoin_tx_serialize(cstring* s, const dogecoin_tx* tx); LIBDOGECOIN_API void dogecoin_tx_hash(const dogecoin_tx* tx, uint8_t* hashout); @@ -139,8 +138,6 @@ LIBDOGECOIN_API dogecoin_bool dogecoin_tx_add_puzzle_out(dogecoin_tx* tx, const LIBDOGECOIN_API dogecoin_bool dogecoin_tx_outpoint_is_null(dogecoin_tx_outpoint* tx); LIBDOGECOIN_API dogecoin_bool dogecoin_tx_is_coinbase(dogecoin_tx* tx); -LIBDOGECOIN_API dogecoin_bool dogecoin_tx_has_witness(const dogecoin_tx* tx); - enum dogecoin_tx_sign_result { DOGECOIN_SIGN_UNKNOWN = 0, DOGECOIN_SIGN_INVALID_KEY = -2, diff --git a/src/base58.c b/src/base58.c index 6df94d8cf..dd29cd2a7 100644 --- a/src/base58.c +++ b/src/base58.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #include @@ -249,7 +248,3 @@ dogecoin_bool dogecoin_p2sh_addr_from_hash160(const uint160 hashin, const dogeco return (dogecoin_base58_encode_check(hash160, sizeof(uint160) + 1, addrout, len) > 0); } - -dogecoin_bool dogecoin_p2wpkh_addr_from_hash160(const uint160 hashin, const dogecoin_chainparams* chain, char *addrout) { - return segwit_addr_encode(addrout, chain->bech32_hrp, 0, hashin, sizeof(uint160)); -} diff --git a/src/chainparams.c b/src/chainparams.c index 2f2bc088f..27f61a505 100644 --- a/src/chainparams.c +++ b/src/chainparams.c @@ -32,8 +32,6 @@ const dogecoin_chainparams dogecoin_chainparams_main = { "main", 0x1e, // 30, starts with D 0x16, // 22, starts with 9 or A - // Human-readable part for Bech32 encoded segwit addresses, as defined in - // BIP 173. "doge", // bech32_hrp planned for 0.21 0x9e, // 158, starts with 6 (uncompressed) or Q (compressed) 0x02fac398, // starts with dgpv @@ -48,8 +46,6 @@ const dogecoin_chainparams dogecoin_chainparams_test = { "testnet3", 0x71, // 113 starts with n 0xc4, // 196 starts with 2 - // Human-readable part for Bech32 encoded segwit addresses, as defined in - // BIP 173. "tdge", // bech32_hrp 0.21 0xf1, // 241 starts with 9 (uncompressed) or c (compressed) 0x04358394, // starts with tprv diff --git a/src/cli/sendtx.c b/src/cli/sendtx.c index c7d275337..32569ac20 100644 --- a/src/cli/sendtx.c +++ b/src/cli/sendtx.c @@ -140,7 +140,7 @@ int main(int argc, char* argv[]) { dogecoin_tx* tx = dogecoin_tx_new(); /* Deserializing the transaction and broadcasting it to the network. */ - if (dogecoin_tx_deserialize(data_bin, outlen, tx, NULL, true)) { + if (dogecoin_tx_deserialize(data_bin, outlen, tx, NULL)) { broadcast_tx(chain, tx, ips, maxnodes, timeout, debug); } else { diff --git a/src/cli/such.c b/src/cli/such.c index 58f4477dd..5ddbe40e4 100644 --- a/src/cli/such.c +++ b/src/cli/such.c @@ -80,7 +80,7 @@ void broadcasting_menu(int txindex, int is_testnet) { utils_hex_to_bin(raw_hexadecimal_tx, data_bin, sizeof(&raw_hexadecimal_tx), &outlen); /* Deserializing the transaction and broadcasting it to the network. */ - if (dogecoin_tx_deserialize(data_bin, outlen, tx->transaction, NULL, true)) { + if (dogecoin_tx_deserialize(data_bin, outlen, tx->transaction, NULL)) { broadcast_tx(chain, tx->transaction, 0, 10, 15, 0); } else { @@ -711,35 +711,24 @@ int main(int argc, char* argv[]) /* give out p2pkh address */ char address_p2pkh[sizeout]; - char address_p2sh_p2wpkh[sizeout]; - char address_p2wpkh[sizeout]; - addresses_from_pubkey(chain, pubkey_hex, address_p2pkh, address_p2sh_p2wpkh, address_p2wpkh); + addresses_from_pubkey(chain, pubkey_hex, address_p2pkh); printf("p2pkh address: %s\n", address_p2pkh); - printf("p2sh-p2wpkh address: %s\n", address_p2sh_p2wpkh); /* clean memory */ dogecoin_mem_zero(pubkey_hex, strlen(pubkey_hex)); dogecoin_mem_zero(address_p2pkh, strlen(address_p2pkh)); - dogecoin_mem_zero(address_p2sh_p2wpkh, strlen(address_p2sh_p2wpkh)); /* Creating a new address from a public key. */ } else if (strcmp(cmd, "p2pkh") == 0) { - /* get p2pkh address from pubkey */ - size_t sizeout = 128; char address_p2pkh[sizeout]; - char address_p2sh_p2wpkh[sizeout]; - char address_p2wpkh[sizeout]; if (!pubkey) return showError("Missing public key (use -k)"); - if (!addresses_from_pubkey(chain, pubkey, address_p2pkh, address_p2sh_p2wpkh, address_p2wpkh)) + if (!addresses_from_pubkey(chain, pubkey, address_p2pkh)) return showError("Operation failed, invalid pubkey"); printf("p2pkh address: %s\n", address_p2pkh); - printf("p2sh-p2wpkh address: %s\n", address_p2sh_p2wpkh); - printf("p2wpkh (doge / bech32) address: %s\n", address_p2wpkh); dogecoin_mem_zero(pubkey, strlen(pubkey)); dogecoin_mem_zero(address_p2pkh, strlen(address_p2pkh)); - dogecoin_mem_zero(address_p2sh_p2wpkh, strlen(address_p2sh_p2wpkh)); /* Generating a new private key and printing it out. */ } else if (strcmp(cmd, "generate_private_key") == 0) { size_t sizeout = 128; @@ -761,7 +750,6 @@ int main(int argc, char* argv[]) hd_gen_master(chain, masterkey, sizeout); printf("bip32 extended master key: %s\n", masterkey); dogecoin_mem_zero(masterkey, strlen(masterkey)); - /* Printing the node keys. */ } else if (strcmp(cmd, "print_keys") == 0) { if (!pkey) return showError("no extended key (-p)"); @@ -832,7 +820,6 @@ int main(int argc, char* argv[]) memcpy_safe(keypathnew+posanum-1, index, strlen(index)); memcpy_safe(keypathnew+posanum-1+strlen(index), &derived_path[end], strlen(derived_path)-end); - if (!hd_derive(chain, pkey, keypathnew, newextkey, sizeout)) return showError("Deriving child key failed\n"); else @@ -860,11 +847,12 @@ int main(int argc, char* argv[]) uint8_t* data_bin = dogecoin_malloc(strlen(txhex) / 2 + 1); int outlen = 0; utils_hex_to_bin(txhex, data_bin, strlen(txhex), &outlen); - if (!dogecoin_tx_deserialize(data_bin, outlen, tx, NULL, true)) { + if (!dogecoin_tx_deserialize(data_bin, outlen, tx, NULL)) { dogecoin_free(data_bin); dogecoin_tx_free(tx); return showError("Invalid tx hex"); } + dogecoin_free(data_bin); if ((size_t)inputindex >= tx->vin->len) { @@ -901,19 +889,17 @@ int main(int argc, char* argv[]) dogecoin_privkey_init(&key); if (dogecoin_privkey_decode_wif(pkey, chain, &key)) { sign = true; - } - else { + } else { if (pkey) { if (strlen(pkey) > 50) { dogecoin_tx_free(tx); cstr_free(script, true); return showError("Invalid wif privkey\n"); } - } - else { + } else { printf("No private key provided, signing will not happen\n"); - } } + } if (sign) { uint8_t sigcompact[64] = { 0 }; int sigderlen = 74 + 1; //&hashtype @@ -937,7 +923,7 @@ int main(int argc, char* argv[]) printf("signature DER (+hashtype): %s\n", sigderhex); cstring* signed_tx = cstr_new_sz(1024); - dogecoin_tx_serialize(signed_tx, tx, true); + dogecoin_tx_serialize(signed_tx, tx); char signed_tx_hex[signed_tx->len * 2 + 1]; utils_bin_to_hex((unsigned char*)signed_tx->str, signed_tx->len, signed_tx_hex); diff --git a/src/cli/tool.c b/src/cli/tool.c index 1a121f5b2..385adb97d 100644 --- a/src/cli/tool.c +++ b/src/cli/tool.c @@ -51,13 +51,10 @@ * @param chain The chainparams struct for the chain you want to generate addresses for. * @param pubkey_hex The hexadecimal representation of the public key. * @param p2pkh_address The address in legacy format (DRnwTww6YB2zw1TTjiPfeFkfuabojfyaB8) - * @param p2sh_p2wpkh_address The address that the user will send funds to in order to fund the - * p2sh_p2wpkh address. - * @param p2wpkh_address The address that the pubkey will be converted to. * * @return dogecoin_bool (uint8_t) */ -dogecoin_bool addresses_from_pubkey(const dogecoin_chainparams* chain, const char* pubkey_hex, char* p2pkh_address, char* p2sh_p2wpkh_address, char* p2wpkh_address) +dogecoin_bool addresses_from_pubkey(const dogecoin_chainparams* chain, const char* pubkey_hex, char* p2pkh_address) { if (!pubkey_hex) return false; @@ -70,8 +67,6 @@ dogecoin_bool addresses_from_pubkey(const dogecoin_chainparams* chain, const cha utils_hex_to_bin(pubkey_hex, pubkey.pubkey, strlen(pubkey_hex), (int*)&outlen); assert(dogecoin_pubkey_is_valid(&pubkey) == 1); dogecoin_pubkey_getaddr_p2pkh(&pubkey, chain, p2pkh_address); - dogecoin_pubkey_getaddr_p2sh_p2wpkh(&pubkey, chain, p2sh_p2wpkh_address); - dogecoin_pubkey_getaddr_p2wpkh(&pubkey, chain, p2wpkh_address); return true; } @@ -188,12 +183,8 @@ dogecoin_bool hd_print_node(const dogecoin_chainparams* chain, const char* nodes printf("depth: %d\n", node.depth); printf("child index: %d\n", node.child_num); char addr[34]; - char addr_p2sh_p2wpkh[34]; - char addr_p2wpkh[31]; - addresses_from_pubkey(&dogecoin_chainparams_main, str, addr, addr_p2sh_p2wpkh, addr_p2wpkh); + addresses_from_pubkey(&dogecoin_chainparams_main, str, addr); printf("p2pkh address: %s\n", addr); - printf("p2sh-p2wpkh address: %s\n", addr_p2sh_p2wpkh); - printf("p2wpkh address: %s\n", addr_p2wpkh); return true; } diff --git a/src/key.c b/src/key.c index 9b00a5153..f5137b0b4 100644 --- a/src/key.c +++ b/src/key.c @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include @@ -208,20 +207,6 @@ dogecoin_bool dogecoin_pubkey_verify_sig(const dogecoin_pubkey* pubkey, const ui return dogecoin_ecc_verify_sig(pubkey->pubkey, pubkey->compressed, hash, sigder, len); } -dogecoin_bool dogecoin_pubkey_getaddr_p2sh_p2wpkh(const dogecoin_pubkey* pubkey, const dogecoin_chainparams* chain, char* addrout) -{ - cstring* p2wphk_script = cstr_new_sz(22); - uint160 keyhash; - dogecoin_pubkey_get_hash160(pubkey, keyhash); - dogecoin_script_build_p2wpkh(p2wphk_script, keyhash); - uint8_t hash160[sizeof(uint160) + 1]; - hash160[0] = chain->b58prefix_script_address; - dogecoin_script_get_scripthash(p2wphk_script, hash160 + 1); - cstr_free(p2wphk_script, true); - dogecoin_base58_encode_check(hash160, sizeof(hash160), addrout, 100); - return true; -} - dogecoin_bool dogecoin_pubkey_getaddr_p2pkh(const dogecoin_pubkey* pubkey, const dogecoin_chainparams* chain, char* addrout) { uint8_t hash160[sizeof(uint160) + 1]; @@ -230,11 +215,3 @@ dogecoin_bool dogecoin_pubkey_getaddr_p2pkh(const dogecoin_pubkey* pubkey, const dogecoin_base58_encode_check(hash160, sizeof(hash160), addrout, 100); return true; } - -dogecoin_bool dogecoin_pubkey_getaddr_p2wpkh(const dogecoin_pubkey* pubkey, const dogecoin_chainparams* chain, char* addrout) -{ - uint160 hash160; - dogecoin_pubkey_get_hash160(pubkey, hash160); - segwit_addr_encode(addrout, chain->bech32_hrp, 0, hash160, sizeof(hash160)); - return true; -} diff --git a/src/script.c b/src/script.c index dd0e72b18..f6da31642 100644 --- a/src/script.c +++ b/src/script.c @@ -464,9 +464,7 @@ enum dogecoin_tx_out_type dogecoin_script_classify_ops(const vector* ops) * @brief This function takes a cstring representation of * a script, classifies it as one of the four script types * and loads the script data into data_out if it is not a - * multisig script. If the script is a witness program, - * determine whether it is for a pubkey hash or a script - * hash, and then copy the witness data to data_out. + * multisig script. * * @param script The pointer to the cstring script to be parsed and classified. * @param data_out The pointer to the vector that will contain the parsed scripts. @@ -490,27 +488,8 @@ enum dogecoin_tx_out_type dogecoin_script_classify(const cstring* script, vector tx_out_type = DOGECOIN_TX_PUBKEY; if (dogecoin_script_is_multisig(ops)) tx_out_type = DOGECOIN_TX_MULTISIG; + uint8_t version = 0; - uint8_t witness_program[40] = {0}; - int witness_program_len = 0; - if (dogecoin_script_is_witnessprogram(script, &version, witness_program, &witness_program_len)) { - if (version == 0 && witness_program_len == 20) { - tx_out_type = DOGECOIN_TX_WITNESS_V0_PUBKEYHASH; - if (data_out) { - uint8_t* witness_program_cpy = dogecoin_calloc(1, witness_program_len); - memcpy_safe(witness_program_cpy, witness_program, witness_program_len); - vector_add(data_out, witness_program_cpy); - } - } - if (version == 0 && witness_program_len == 32) { - tx_out_type = DOGECOIN_TX_WITNESS_V0_SCRIPTHASH; - if (data_out) { - uint8_t* witness_program_cpy = dogecoin_calloc(1, witness_program_len); - memcpy_safe(witness_program_cpy, witness_program, witness_program_len); - vector_add(data_out, witness_program_cpy); - } - } - } vector_free(ops, true); return tx_out_type; } @@ -643,28 +622,6 @@ dogecoin_bool dogecoin_script_build_p2pkh(cstring* script_in, const uint160 hash } -/** - * @brief This function builds a pay-to-witness-public-key-hash - * script which pushes an empty array of bytes to the stack and - * and then subsequently pushes the pubkey hash160 to the stack. - * This script is then loaded into the cstring script_in. - * - * @param script_in The pointer to the cstring where the p2wpkh script will be built. - * @param hash160 The hash160 of a public key. - * - * @return 1 if the p2wpkh script was built successfully. - */ -dogecoin_bool dogecoin_script_build_p2wpkh(cstring* script_in, const uint160 hash160) -{ - cstr_resize(script_in, 0); //clear script - - dogecoin_script_append_op(script_in, OP_0); - dogecoin_script_append_pushdata(script_in, (unsigned char*)hash160, sizeof(uint160)); - - return true; -} - - /** * @brief This function builds a pay-to-script-hash script * which hashes the value on the top of the stack (script @@ -749,41 +706,3 @@ static uint8_t dogecoin_decode_op_n(enum opcodetype op) assert(op >= OP_1 && op <= OP_16); return (uint8_t)op - (uint8_t)(OP_1 - 1); } - - -/** - * @brief This function checks whether the script is a witness - * program, which is true if the script consists of a 1-byte - * push opcode followed by a data push between 2 and 40 bytes. - * Script data is passed in through cstring format, and script - * data is passed back out through an unsigned byte array. - * - * @param script The pointer to the script to be checked and parsed. - * @param version_out The pointer to the byte that will store the script version. - * @param program_out The pointer to the byte array that will store the script data. - * @param programm_len_out The pointer to the int that will store the length of the script. - * - * @return 1 if the script is a witness program, 0 otherwise. - */ -dogecoin_bool dogecoin_script_is_witnessprogram(const cstring* script, uint8_t* version_out, uint8_t* program_out, int* programm_len_out) -{ - if (!version_out || !program_out) { - return false; - } - if (script->len < 4 || script->len > 42) { - return false; - } - if (script->str[0] != OP_0 && (script->str[0] < OP_1 || script->str[0] > OP_16)) { - return false; - } - if ((size_t)(script->str[1] + 2) == script->len) { - *version_out = dogecoin_decode_op_n((enum opcodetype)script->str[0]); - if (program_out) { - assert(script->len - 2 <= 40); - memcpy_safe(program_out, script->str + 2, script->len - 2); - *programm_len_out = script->len - 2; - } - return true; - } - return false; -} diff --git a/src/segwit_addr.c b/src/segwit_addr.c deleted file mode 100644 index 7069e6c1d..000000000 --- a/src/segwit_addr.c +++ /dev/null @@ -1,211 +0,0 @@ -/* Copyright (c) 2017 Pieter Wuille - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include -#include -#include - -#include - -uint32_t bech32_polymod_step(uint32_t pre) -{ - uint8_t b = pre >> 25; - return ((pre & 0x1FFFFFF) << 5) ^ - (-((b >> 0) & 1) & 0x3b6a57b2UL) ^ - (-((b >> 1) & 1) & 0x26508e6dUL) ^ - (-((b >> 2) & 1) & 0x1ea119faUL) ^ - (-((b >> 3) & 1) & 0x3d4233ddUL) ^ - (-((b >> 4) & 1) & 0x2a1462b3UL); -} - -static const char* charset = "qpzry9x8gf2tvdw0s3jn54khce6mua7l"; - -static const int8_t charset_rev[128] = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 15, -1, 10, 17, 21, 20, 26, 30, 7, 5, -1, -1, -1, -1, -1, -1, - -1, 29, -1, 24, 13, 25, 9, 8, 23, -1, 18, 22, 31, 27, 19, -1, - 1, 0, 3, 16, 11, 28, 12, 14, 6, 4, 2, -1, -1, -1, -1, -1, - -1, 29, -1, 24, 13, 25, 9, 8, 23, -1, 18, 22, 31, 27, 19, -1, - 1, 0, 3, 16, 11, 28, 12, 14, 6, 4, 2, -1, -1, -1, -1, -1}; - -int bech32_encode(char* output, const char* hrp, const uint8_t* data, size_t data_len) -{ - uint32_t chk = 1; - size_t i = 0; - while (hrp[i] != 0) { - int ch = hrp[i]; - if (ch < 33 || ch > 126) { - return 0; - } - - if (ch >= 'A' && ch <= 'Z') - return 0; - chk = bech32_polymod_step(chk) ^ (ch >> 5); - ++i; - } - if (i + 7 + data_len > 90) - return 0; - chk = bech32_polymod_step(chk); - while (*hrp != 0) { - chk = bech32_polymod_step(chk) ^ (*hrp & 0x1f); - *(output++) = *(hrp++); - } - *(output++) = '1'; - for (i = 0; i < data_len; ++i) { - if (*data >> 5) - return 0; - chk = bech32_polymod_step(chk) ^ (*data); - *(output++) = charset[*(data++)]; - } - for (i = 0; i < 6; ++i) { - chk = bech32_polymod_step(chk); - } - chk ^= 1; - for (i = 0; i < 6; ++i) { - *(output++) = charset[(chk >> ((5 - i) * 5)) & 0x1f]; - } - *output = 0; - return 1; -} - -int bech32_decode(char* hrp, uint8_t* data, size_t* data_len, const char* input) -{ - uint32_t chk = 1; - size_t i = 0; - size_t input_len = strlen(input); - size_t hrp_len = 0; - int have_lower = 0, have_upper = 0; - if (input_len < 8 || input_len > 90) { - return 0; - } - *data_len = 0; - while (*data_len < input_len && input[(input_len - 1) - *data_len] != '1') { - ++(*data_len); - } - hrp_len = input_len - (1 + *data_len); - if (1 + *data_len >= input_len || *data_len < 6) { - return 0; - } - *(data_len) -= 6; - for (i = 0; i < hrp_len; ++i) { - int ch = input[i]; - if (ch < 33 || ch > 126) { - return 0; - } - if (ch >= 'a' && ch <= 'z') { - have_lower = 1; - } else if (ch >= 'A' && ch <= 'Z') { - have_upper = 1; - ch = (ch - 'A') + 'a'; - } - hrp[i] = ch; - chk = bech32_polymod_step(chk) ^ (ch >> 5); - } - hrp[i] = 0; - chk = bech32_polymod_step(chk); - for (i = 0; i < hrp_len; ++i) { - chk = bech32_polymod_step(chk) ^ (input[i] & 0x1f); - } - ++i; - while (i < input_len) { - int v = (input[i] & 0x80) ? -1 : charset_rev[(int)input[i]]; - if (input[i] >= 'a' && input[i] <= 'z') - have_lower = 1; - if (input[i] >= 'A' && input[i] <= 'Z') - have_upper = 1; - if (v == -1) { - return 0; - } - chk = bech32_polymod_step(chk) ^ v; - if (i + 6 < input_len) { - data[i - (1 + hrp_len)] = v; - } - ++i; - } - if (have_lower && have_upper) { - return 0; - } - return chk == 1; -} - -static int convert_bits(uint8_t* out, size_t* outlen, int outbits, const uint8_t* in, size_t inlen, int inbits, int pad) -{ - uint32_t val = 0; - int bits = 0; - uint32_t maxv = (((uint32_t)1) << outbits) - 1; - while (inlen--) { - val = (val << inbits) | *(in++); - bits += inbits; - while (bits >= outbits) { - bits -= outbits; - out[(*outlen)++] = (val >> bits) & maxv; - } - } - if (pad) { - if (bits) { - out[(*outlen)++] = (val << (outbits - bits)) & maxv; - } - } else if (((val << (outbits - bits)) & maxv) || bits >= inbits) { - return 0; - } - return 1; -} - -int segwit_addr_encode(char* output, const char* hrp, int witver, const uint8_t* witprog, size_t witprog_len) -{ - uint8_t data[65] = {0}; - size_t datalen = 0; - if (witver > 16) - return 0; - if (witver == 0 && witprog_len != 20 && witprog_len != 32) - return 0; - if (witprog_len < 2 || witprog_len > 40) - return 0; - data[0] = witver; - convert_bits(data + 1, &datalen, 5, witprog, witprog_len, 8, 1); - ++datalen; - return bech32_encode(output, hrp, data, datalen); -} - -int segwit_addr_decode(int* witver, uint8_t* witdata, size_t* witdata_len, const char* hrp, const char* addr) -{ - uint8_t data[84] = {0}; - char hrp_actual[84] = {0}; - size_t data_len = 0; - if (!bech32_decode(hrp_actual, data, &data_len, addr)) - return 0; - if (data_len == 0 || data_len > 65) - return 0; - if (strncmp(hrp, hrp_actual, 84) != 0) - return 0; - if (data[0] > 16) - return 0; - *witdata_len = 0; - if (!convert_bits(witdata, witdata_len, 8, data + 1, data_len - 1, 5, 0)) - return 0; - if (*witdata_len < 2 || *witdata_len > 40) - return 0; - if (data[0] == 0 && *witdata_len != 20 && *witdata_len != 32) - return 0; - *witver = data[0]; - return 1; -} diff --git a/src/transaction.c b/src/transaction.c index 771a4291b..223f706e5 100644 --- a/src/transaction.c +++ b/src/transaction.c @@ -254,7 +254,7 @@ int save_raw_transaction(int txindex, const char* hexadecimal_transaction) { int outlength = 0; // convert incomingrawtx to byte array to dogecoin_tx and if it fails free from memory utils_hex_to_bin(hexadecimal_transaction, data_bin, strlen(hexadecimal_transaction), &outlength); - if (!dogecoin_tx_deserialize(data_bin, outlength, txtmp, NULL, true)) { + if (!dogecoin_tx_deserialize(data_bin, outlength, txtmp, NULL)) { // free byte array dogecoin_free(data_bin); // free dogecoin_tx @@ -439,8 +439,8 @@ char* get_raw_transaction(int txindex) { // new allocated cstring to store hexadeicmal buffer string: cstring* serialized_transaction = cstr_new_sz(1024); - // serialize transaction object to new cstring and ignore witness: - dogecoin_tx_serialize(serialized_transaction, tx->transaction, false); + // serialize transaction object to new cstring: + dogecoin_tx_serialize(serialized_transaction, tx->transaction); char* hexadecimal_buffer = utils_uint8_to_hex((unsigned char*)serialized_transaction->str, serialized_transaction->len); @@ -494,7 +494,7 @@ int sign_raw_transaction(int inputindex, char* incomingrawtx, char* scripthex, i // convert incomingrawtx to byte array to dogecoin_tx and if it fails free from memory utils_hex_to_bin(incomingrawtx, data_bin, strlen(incomingrawtx), &outlength); - if (!dogecoin_tx_deserialize(data_bin, outlength, txtmp, NULL, false)) { + if (!dogecoin_tx_deserialize(data_bin, outlength, txtmp, NULL)) { // free byte array dogecoin_free(data_bin); // free dogecoin_tx @@ -571,7 +571,7 @@ int sign_raw_transaction(int inputindex, char* incomingrawtx, char* scripthex, i printf("signature DER (+hashtype): %s\n", sigderhex); cstring* signed_tx = cstr_new_sz(1024); - dogecoin_tx_serialize(signed_tx, txtmp, false); + dogecoin_tx_serialize(signed_tx, txtmp); char signed_tx_hex[signed_tx->len*2+1]; utils_bin_to_hex((unsigned char *)signed_tx->str, signed_tx->len, signed_tx_hex); @@ -629,7 +629,7 @@ int sign_transaction(int txindex, long double amounts[], char* script_pubkey, ch int outlength = 0; // convert incomingrawtx to byte array to dogecoin_tx and if it fails free from memory utils_hex_to_bin(raw_hexadecimal_transaction, data_bin, strlen(raw_hexadecimal_transaction), &outlength); - if (!dogecoin_tx_deserialize(data_bin, outlength, txtmp, NULL, false)) { + if (!dogecoin_tx_deserialize(data_bin, outlength, txtmp, NULL)) { // free byte array dogecoin_free(data_bin); // free dogecoin_tx @@ -673,7 +673,7 @@ int store_raw_transaction(char* incomingrawtx) { int outlength = 0; // convert incomingrawtx to byte array to dogecoin_tx and if it fails free from memory utils_hex_to_bin(incomingrawtx, data_bin, strlen(incomingrawtx), &outlength); - if (!dogecoin_tx_deserialize(data_bin, outlength, txtmp, NULL, true)) { + if (!dogecoin_tx_deserialize(data_bin, outlength, txtmp, NULL)) { // free byte array dogecoin_free(data_bin); // free dogecoin_tx diff --git a/src/tx.c b/src/tx.c index 43b2f6374..b9d66623e 100644 --- a/src/tx.c +++ b/src/tx.c @@ -35,7 +35,6 @@ #include #include -#include #include #include #include @@ -190,7 +189,7 @@ void broadcast_post_cmd(struct dogecoin_node_* node, dogecoin_p2p_msg_hdr* hdr, /* send the tx */ cstring* tx_ser = cstr_new_sz(1024); - dogecoin_tx_serialize(tx_ser, ctx->tx, true); + dogecoin_tx_serialize(tx_ser, ctx->tx); cstring* p2p_msg = dogecoin_p2p_message_new(node->nodegroup->chainparams->netmagic, DOGECOIN_MSG_TX, tx_ser->str, tx_ser->len); cstr_free(tx_ser, true); dogecoin_node_send(node, p2p_msg); @@ -302,11 +301,6 @@ void dogecoin_tx_in_free(dogecoin_tx_in* tx_in) tx_in->script_sig = NULL; } - if (tx_in->witness_stack) { - vector_free(tx_in->witness_stack, true); - tx_in->witness_stack = NULL; - } - dogecoin_mem_zero(tx_in, sizeof(*tx_in)); dogecoin_free(tx_in); } @@ -332,25 +326,6 @@ void dogecoin_tx_in_free_cb(void* data) } -/** - * @brief This function casts data from a channel buffer to - * a cstring object and then frees it by calling cstr_free(). - * - * @param data The pointer to the data to be freed - * - * @return Nothing. - */ -void dogecoin_tx_in_witness_stack_free_cb(void* data) -{ - if (!data) { - return; - } - - cstring* stack_item = data; - cstr_free(stack_item, true); -} - - /** * @brief This function creates a new dogecoin transaction * input object and initializes it to all zeroes. @@ -363,7 +338,6 @@ dogecoin_tx_in* dogecoin_tx_in_new() tx_in = dogecoin_calloc(1, sizeof(*tx_in)); dogecoin_mem_zero(&tx_in->prevout, sizeof(tx_in->prevout)); tx_in->sequence = UINT32_MAX; - tx_in->witness_stack = vector_new(8, dogecoin_tx_in_witness_stack_free_cb); return tx_in; } @@ -674,11 +648,10 @@ dogecoin_bool dogecoin_tx_out_deserialize(dogecoin_tx_out* tx_out, struct const_ * @param inlen The length of the string to be read. * @param tx The pointer to the transaction object to be deserialized into. * @param consumed_length The pointer to the total number of characters successfully deserialized. - * @param allow_witness The flag denoting whether witnesses are allowed for this transaction. * * @return 1 if deserialized successfully, 0 otherwise. */ -int dogecoin_tx_deserialize(const unsigned char* tx_serialized, size_t inlen, dogecoin_tx* tx, size_t* consumed_length, dogecoin_bool allow_witness) +int dogecoin_tx_deserialize(const unsigned char* tx_serialized, size_t inlen, dogecoin_tx* tx, size_t* consumed_length) { struct const_buffer buf = {tx_serialized, inlen}; if (consumed_length) { @@ -693,18 +666,6 @@ int dogecoin_tx_deserialize(const unsigned char* tx_serialized, size_t inlen, do return false; } - uint8_t flags = 0; - if (vlen == 0 && allow_witness) { - /* We read a dummy or an empty vin. */ - deser_bytes(&flags, &buf, 1); - if (flags != 0) { - // contains witness, deser the vin len - if (!deser_varlen(&vlen, &buf)) { - return false; - } - } - } - unsigned int i; for (i = 0; i < vlen; i++) { dogecoin_tx_in* tx_in = dogecoin_tx_in_new(); @@ -730,28 +691,6 @@ int dogecoin_tx_deserialize(const unsigned char* tx_serialized, size_t inlen, do } } - if ((flags & 1) && allow_witness) { - /* The witness flag is present, and we support witnesses. */ - flags ^= 1; - for (i = 0; i < tx->vin->len; i++) { - dogecoin_tx_in* tx_in = vector_idx(tx->vin, i); - if (!deser_varlen(&vlen, &buf)) - return false; - for (size_t j = 0; j < vlen; j++) { - cstring* witness_item = cstr_new_sz(1024); - if (!deser_varstr(&witness_item, &buf)) { - cstr_free(witness_item, true); - return false; - } - vector_add(tx_in->witness_stack, witness_item); //vector is responsible for freeing the items memory - } - } - } - if (flags) { - /* Unknown flag in the serialization */ - return false; - } - if (!deser_u32(&tx->locktime, &buf)) { return false; } @@ -796,52 +735,16 @@ void dogecoin_tx_out_serialize(cstring* s, const dogecoin_tx_out* tx_out) /** - * @brief This function checks if the transaction contains - * any input with witness data. - * - * @param tx The pointer to the transaction to check. - * - * @return 1 if the transaction has a witness, 0 otherwise. - */ -dogecoin_bool dogecoin_tx_has_witness(const dogecoin_tx* tx) -{ - for (size_t i = 0; i < tx->vin->len; i++) { - dogecoin_tx_in* tx_in = vector_idx(tx->vin, i); - if (tx_in->witness_stack != NULL && tx_in->witness_stack->len > 0) { - return true; - } - } - return false; -} - - -/** - * @brief This function serializes a full transaction, - * serializing witnesses as necessary. + * @brief This function serializes a full transaction. * * @param s The pointer to the cstring to serialize the data into. * @param tx The pointer to the transaction to serialize. - * @param allow_witness The flag denoting whether witnesses are allowed for this transaction. * * @return Nothing. */ -void dogecoin_tx_serialize(cstring* s, const dogecoin_tx* tx, dogecoin_bool allow_witness) +void dogecoin_tx_serialize(cstring* s, const dogecoin_tx* tx) { ser_s32(s, tx->version); - uint8_t flags = 0; - // Consistency check - if (allow_witness) { - /* Check whether witnesses need to be serialized. */ - if (dogecoin_tx_has_witness(tx)) { - flags |= 1; - } - } - if (flags) { - /* Use extended format in case witnesses are to be serialized. */ - uint8_t dummy = 0; - ser_bytes(s, &dummy, 1); - ser_bytes(s, &flags, 1); - } ser_varlen(s, tx->vin ? tx->vin->len : 0); @@ -866,22 +769,6 @@ void dogecoin_tx_serialize(cstring* s, const dogecoin_tx* tx, dogecoin_bool allo } } - if (flags & 1) { - // serialize the witness stack - if (tx->vin) { - for (i = 0; i < tx->vin->len; i++) { - dogecoin_tx_in* tx_in; - tx_in = vector_idx(tx->vin, i); - if (tx_in->witness_stack) { - ser_varlen(s, tx_in->witness_stack->len); - for (unsigned int j = 0; j < tx_in->witness_stack->len; j++) { - cstring* item = vector_idx(tx_in->witness_stack, j); - ser_varstr(s, item); - } - } - } - } - } ser_u32(s, tx->locktime); } @@ -898,7 +785,7 @@ void dogecoin_tx_serialize(cstring* s, const dogecoin_tx* tx, dogecoin_bool allo void dogecoin_tx_hash(const dogecoin_tx* tx, uint256 hashout) { cstring* txser = cstr_new_sz(1024); - dogecoin_tx_serialize(txser, tx, false); + dogecoin_tx_serialize(txser, tx); sha256_raw((const uint8_t*)txser->str, txser->len, hashout); sha256_raw(hashout, DOGECOIN_HASH_LENGTH, hashout); cstr_free(txser, true); @@ -927,17 +814,6 @@ void dogecoin_tx_in_copy(dogecoin_tx_in* dest, const dogecoin_tx_in* src) src->script_sig->str, src->script_sig->len); } - - if (!src->witness_stack) { - dest->witness_stack = NULL; - } else { - dest->witness_stack = vector_new(src->witness_stack->len, dogecoin_tx_in_witness_stack_free_cb); - for (unsigned int i = 0; i < src->witness_stack->len; i++) { - cstring* witness_item = vector_idx(src->witness_stack, i); - cstring* item_cpy = cstr_new_cstr(witness_item); - vector_add(dest->witness_stack, item_cpy); - } - } } @@ -1010,7 +886,6 @@ void dogecoin_tx_copy(dogecoin_tx* dest, const dogecoin_tx* src) dest->vout = vector_new(src->vout->len, dogecoin_tx_out_free_cb); - /* Copying the tx_out from the source transaction to the destination transaction. */ for (i = 0; i < src->vout->len; i++) { dogecoin_tx_out *tx_out_old, *tx_out_new; tx_out_old = vector_idx(src->vout, i); @@ -1111,204 +986,86 @@ void dogecoin_tx_outputs_hash(const dogecoin_tx* tx, uint256 hash) */ dogecoin_bool dogecoin_tx_sighash(const dogecoin_tx* tx_to, const cstring* fromPubKey, unsigned int in_num, int hashtype, const uint64_t amount, const enum dogecoin_sig_version sigversion, uint256 hash) { - /* Checking if the input number is greater than the number of inputs. */ if (in_num >= tx_to->vin->len || !tx_to->vout) { return false; } dogecoin_bool ret = true; - /* Creating a new transaction object. */ dogecoin_tx* tx_tmp = dogecoin_tx_new(); - /* Copying the transaction to a temporary variable. */ dogecoin_tx_copy(tx_tmp, tx_to); + + // standard sighash (SIGVERSION_BASE) + cstring* new_script = cstr_new_sz(fromPubKey->len); + dogecoin_script_copy_without_op_codeseperator(fromPubKey, new_script); - // segwit - if (sigversion == SIGVERSION_WITNESS_V0) { - uint256 hash_prevouts; - /* This code is clearing the hash_prevouts array. */ - dogecoin_hash_clear(hash_prevouts); - uint256 hash_sequence; - /* This code is clearing the hash_sequence. */ - dogecoin_hash_clear(hash_sequence); - uint256 hash_outputs; - /* This code is clearing the hash_outputs variable. */ - dogecoin_hash_clear(hash_outputs); - - if (!(hashtype & SIGHASH_ANYONECANPAY)) { - /* This code is calculating the hash of the previous outputs. */ - dogecoin_tx_prevout_hash(tx_tmp, hash_prevouts); - dogecoin_tx_outputs_hash(tx_tmp, hash_outputs); + unsigned int i; + dogecoin_tx_in* tx_in; + for (i = 0; i < tx_tmp->vin->len; i++) { + tx_in = vector_idx(tx_tmp->vin, i); + cstr_resize(tx_in->script_sig, 0); + if (i == in_num) { + cstr_append_buf(tx_in->script_sig, + new_script->str, + new_script->len); } - if (!(hashtype & SIGHASH_ANYONECANPAY) && (hashtype & 0x1f) != SIGHASH_SINGLE && (hashtype & 0x1f) != SIGHASH_NONE) { - /* This code is calculating the hash of the sequence of the transaction. */ - dogecoin_tx_sequence_hash(tx_tmp, hash_sequence); + } + cstr_free(new_script, true); + if ((hashtype & 0x1f) == SIGHASH_NONE) { + if (tx_tmp->vout) { + vector_free(tx_tmp->vout, true); } - if ((hashtype & 0x1f) != SIGHASH_SINGLE && (hashtype & 0x1f) != SIGHASH_NONE) { - /* This code is calculating the hash of the outputs of the transaction. */ - dogecoin_tx_outputs_hash(tx_tmp, hash_outputs); - } else if ((hashtype & 0x1f) == SIGHASH_SINGLE && in_num < tx_tmp->vout->len) { - cstring* s1 = cstr_new_sz(512); - /* Creating a new transaction output from the transaction output vector. */ - dogecoin_tx_out* tx_out = vector_idx(tx_tmp->vout, in_num); - /* Serializing the transaction output. */ - dogecoin_tx_out_serialize(s1, tx_out); - /* Hashing the string s1 using the dogecoin_hash function. */ - dogecoin_hash((const uint8_t*)s1->str, s1->len, hash); - /* Freeing the memory allocated to the string s1. */ - cstr_free(s1, true); - } - cstring* s = cstr_new_sz(512); - /* Serializing the transaction version. */ - ser_u32(s, tx_tmp->version); // Version - - // Input prevouts/nSequence (none/all, depending on flags) - /* Hashing the previous outputs of the transaction. */ - ser_u256(s, hash_prevouts); - /* Serializing the hash of the sequence number. */ - ser_u256(s, hash_sequence); - - // The input being signed (replacing the scriptSig with scriptCode + amount) - // The prevout may already be contained in hashPrevout, and the nSequence - // may already be contain in hashSequence. - /* Creating a new transaction input from the transaction input at index in_num in the - transaction tx_tmp. */ - dogecoin_tx_in* tx_in = vector_idx(tx_tmp->vin, in_num); - /* Serializing the transaction hash of the previous transaction. */ - ser_u256(s, tx_in->prevout.hash); - /* The code below is serializing the prevout.n field of the transaction input. */ - ser_u32(s, tx_in->prevout.n); + tx_tmp->vout = vector_new(1, dogecoin_tx_out_free_cb); - /* Serializing the script code. */ - ser_varstr(s, (cstring*)fromPubKey); // script code - - /* Serializing the amount field of the transaction. */ - ser_u64(s, amount); - /* Serializing the sequence number of the input. */ - ser_u32(s, tx_in->sequence); - /* Serializing the outputs of the transaction. */ - ser_u256(s, hash_outputs); // Outputs (none/one/all, depending on flags) - /* Serializing the transaction. */ - ser_u32(s, tx_tmp->locktime); // Locktime - /* Writing the hashtype to the stream. */ - ser_s32(s, hashtype); // Sighash type - /* Hashing the string s using the dogecoin_hash function. */ - dogecoin_hash((const uint8_t*)s->str, s->len, hash); - /* Free the transaction string */ - cstr_free(s, true); - } else { - // standard (non witness) sighash (SIGVERSION_BASE) - cstring* new_script = cstr_new_sz(fromPubKey->len); - dogecoin_script_copy_without_op_codeseperator(fromPubKey, new_script); - - unsigned int i; - dogecoin_tx_in* tx_in; - /* Checking if the transaction has any inputs. */ for (i = 0; i < tx_tmp->vin->len; i++) { - /* Checking if the transaction has a previous transaction. If it does, it is adding the - previous transaction to the list of transactions. */ tx_in = vector_idx(tx_tmp->vin, i); - /* The code below is removing the scriptSig from the transaction. */ - cstr_resize(tx_in->script_sig, 0); - - /* Checking if the current index is equal to the number of inputs. */ - if (i == in_num) { - cstr_append_buf(tx_in->script_sig, - new_script->str, - new_script->len); + if (i != in_num) { + tx_in->sequence = 0; } } - cstr_free(new_script, true); - /* Blank out some of the outputs */ - if ((hashtype & 0x1f) == SIGHASH_NONE) { - /* Wildcard payee */ - if (tx_tmp->vout) { - vector_free(tx_tmp->vout, true); - } - - tx_tmp->vout = vector_new(1, dogecoin_tx_out_free_cb); - - /* Let the others update at will */ - for (i = 0; i < tx_tmp->vin->len; i++) { - tx_in = vector_idx(tx_tmp->vin, i); - if (i != in_num) { - tx_in->sequence = 0; - } - } + } else if ((hashtype & 0x1f) == SIGHASH_SINGLE) { + unsigned int n_out = in_num; + if (n_out >= tx_tmp->vout->len) { + //TODO: set error code + ret = false; + goto out; } - /** - * If the SIGHASH_SINGLE flag is set, then only the output at the same index as the input being - * signed will be signed - * - * @param hashtype - (1 << 8) - */ - else if ((hashtype & 0x1f) == SIGHASH_SINGLE) { - /* Only lock-in the txout payee at same index as txin */ - unsigned int n_out = in_num; - /* Checking if the number of outputs is greater than the length of the vector of outputs. */ - if (n_out >= tx_tmp->vout->len) { - //TODO: set error code - ret = false; - goto out; - } + vector_resize(tx_tmp->vout, n_out + 1); - /* Adding a new output to the transaction. */ - vector_resize(tx_tmp->vout, n_out + 1); - - /* Creating a new array of the same size as the input array. */ - for (i = 0; i < n_out; i++) { - dogecoin_tx_out* tx_out; - - /* Checking if the transaction has a certain output. */ - tx_out = vector_idx(tx_tmp->vout, i); - tx_out->value = -1; - if (tx_out->script_pubkey) { - /* Freeing the memory allocated to the script_pubkey field of the transaction - output. */ - cstr_free(tx_out->script_pubkey, true); - /* Creating a new output with the given amount and script_pubkey. */ - tx_out->script_pubkey = NULL; - } - } + for (i = 0; i < n_out; i++) { + dogecoin_tx_out* tx_out; - /* Let the others update at will */ - /* Checking if the transaction has any inputs. */ - for (i = 0; i < tx_tmp->vin->len; i++) { - /* This is a simple loop that iterates over the vin vector of the transaction. */ - tx_in = vector_idx(tx_tmp->vin, i); - /* Checking if the current index is not equal to the number of inputs. */ - if (i != in_num) { - /* Setting the sequence number of the input to 0. */ - tx_in->sequence = 0; - } + tx_out = vector_idx(tx_tmp->vout, i); + tx_out->value = -1; + if (tx_out->script_pubkey) { + cstr_free(tx_out->script_pubkey, true); + tx_out->script_pubkey = NULL; } } - /* Blank out other inputs completely; - not recommended for open transactions */ - if (hashtype & SIGHASH_ANYONECANPAY) { - if (in_num > 0) { - /* The code below is removing the first in_num elements from the vector tx_tmp->vin. */ - vector_remove_range(tx_tmp->vin, 0, in_num); + for (i = 0; i < tx_tmp->vin->len; i++) { + tx_in = vector_idx(tx_tmp->vin, i); + if (i != in_num) { + tx_in->sequence = 0; } - /* Adding a new input to the transaction. */ - vector_resize(tx_tmp->vin, 1); } + } - /* Creating a string of 512 bytes. */ - cstring* s = cstr_new_sz(512); - /* Serializing the transaction into a string. */ - dogecoin_tx_serialize(s, tx_tmp, false); - /* Writing the hashtype to the stream. */ - ser_s32(s, hashtype); - /* Hashing the string s using the dogecoin_hash function. */ - dogecoin_hash((const uint8_t*)s->str, s->len, hash); - /* Free the transaction string. */ - cstr_free(s, true); + if (hashtype & SIGHASH_ANYONECANPAY) { + if (in_num > 0) { + vector_remove_range(tx_tmp->vin, 0, in_num); + } + vector_resize(tx_tmp->vin, 1); } + cstring* s = cstr_new_sz(512); + dogecoin_tx_serialize(s, tx_tmp); + ser_s32(s, hashtype); + dogecoin_hash((const uint8_t*)s->str, s->len, hash); + cstr_free(s, true); + out: dogecoin_tx_free(tx_tmp); return ret; @@ -1332,20 +1089,11 @@ dogecoin_bool dogecoin_tx_add_data_out(dogecoin_tx* tx, const int64_t amount, co return false; } - /* Creating a new transaction output. */ dogecoin_tx_out* tx_out = dogecoin_tx_out_new(); - - /* Creating a new string of size 1024. */ tx_out->script_pubkey = cstr_new_sz(1024); - /* This code is appending the OP_RETURN operation to the script_pubkey of the transaction output. */ dogecoin_script_append_op(tx_out->script_pubkey, OP_RETURN); - /* This is adding the data to the script_pubkey. */ dogecoin_script_append_pushdata(tx_out->script_pubkey, (unsigned char*)data, datalen); - - /* The code below is creating a new transaction output. */ tx_out->value = amount; - - /* Adding a new output to the transaction. */ vector_add(tx->vout, tx_out); return true; @@ -1370,23 +1118,13 @@ dogecoin_bool dogecoin_tx_add_puzzle_out(dogecoin_tx* tx, const int64_t amount, return false; } - /* Creating a new transaction output. */ dogecoin_tx_out* tx_out = dogecoin_tx_out_new(); - - /* Creating a new string of size 1024. */ tx_out->script_pubkey = cstr_new_sz(1024); - /* This is adding the OP_HASH256 operation to the script. */ dogecoin_script_append_op(tx_out->script_pubkey, OP_HASH256); - /* Appending the puzzle to the script_pubkey. */ dogecoin_script_append_pushdata(tx_out->script_pubkey, (unsigned char*)puzzle, puzzlelen); - /* This is adding the OP_EQUAL to the script_pubkey. */ dogecoin_script_append_op(tx_out->script_pubkey, OP_EQUAL); - /* Creating a new transaction with the given amount. */ tx_out->value = amount; - - /* Adding a new output to the transaction. */ vector_add(tx->vout, tx_out); - return true; } @@ -1406,40 +1144,12 @@ dogecoin_bool dogecoin_tx_add_puzzle_out(dogecoin_tx* tx, const int64_t amount, dogecoin_bool dogecoin_tx_add_address_out(dogecoin_tx* tx, const dogecoin_chainparams* chain, int64_t amount, const char* address) { const size_t buflen = sizeof(uint8_t) * strlen(address) * 2; - /* Allocating memory for the buffer. */ uint8_t* buf = dogecoin_calloc(1, buflen); - /* Decoding the address into a buffer. */ int r = dogecoin_base58_decode_check(address, buf, buflen); if (r > 0 && buf[0] == chain->b58prefix_pubkey_address) { - /* Adding a new output to the transaction. */ dogecoin_tx_add_p2pkh_hash160_out(tx, amount, &buf[1]); } else if (r > 0 && buf[0] == chain->b58prefix_script_address) { - /* Adding a P2SH output to the transaction. */ dogecoin_tx_add_p2sh_hash160_out(tx, amount, &buf[1]); - } else { - // check for bech32 - int version = 0; - unsigned char programm[40] = {0}; - size_t programmlen = 0; - /* Checking if the address is a valid segwit address. */ - if(segwit_addr_decode(&version, programm, &programmlen, chain->bech32_hrp, address) == 1) { - if (programmlen == 20) { - /* Creating a new transaction output. */ - dogecoin_tx_out* tx_out = dogecoin_tx_out_new(); - /* Creating a new string of size 1024. */ - tx_out->script_pubkey = cstr_new_sz(1024); - - /* This code is building a scriptPubKey for the output. */ - dogecoin_script_build_p2wpkh(tx_out->script_pubkey, (const uint8_t *)programm); - - /* The code below is creating a new transaction output. */ - tx_out->value = amount; - /* Adding a new output to the transaction. */ - vector_add(tx->vout, tx_out); - } - } - dogecoin_free(buf); - return false; } dogecoin_free(buf); @@ -1459,20 +1169,11 @@ dogecoin_bool dogecoin_tx_add_address_out(dogecoin_tx* tx, const dogecoin_chainp */ dogecoin_bool dogecoin_tx_add_p2pkh_hash160_out(dogecoin_tx* tx, int64_t amount, uint160 hash160) { - /* Creating a new transaction output. */ dogecoin_tx_out* tx_out = dogecoin_tx_out_new(); - - /* Creating a new string of size 1024. */ tx_out->script_pubkey = cstr_new_sz(1024); - /* Building a scriptPubKey for the output. */ dogecoin_script_build_p2pkh(tx_out->script_pubkey, hash160); - - /* The code below is creating a new transaction output. */ tx_out->value = amount; - - /* Adding a new output to the transaction. */ vector_add(tx->vout, tx_out); - return true; } @@ -1489,20 +1190,11 @@ dogecoin_bool dogecoin_tx_add_p2pkh_hash160_out(dogecoin_tx* tx, int64_t amount, */ dogecoin_bool dogecoin_tx_add_p2sh_hash160_out(dogecoin_tx* tx, int64_t amount, uint160 hash160) { - /* Creating a new transaction output. */ dogecoin_tx_out* tx_out = dogecoin_tx_out_new(); - - /* Creating a new string of size 1024. */ tx_out->script_pubkey = cstr_new_sz(1024); - /* Building a scriptPubKey for the output. */ dogecoin_script_build_p2sh(tx_out->script_pubkey, hash160); - - /* The code below is creating a new transaction output. */ tx_out->value = amount; - - /* Adding a new output to the transaction. */ vector_add(tx->vout, tx_out); - return true; } @@ -1521,9 +1213,7 @@ dogecoin_bool dogecoin_tx_add_p2sh_hash160_out(dogecoin_tx* tx, int64_t amount, dogecoin_bool dogecoin_tx_add_p2pkh_out(dogecoin_tx* tx, int64_t amount, const dogecoin_pubkey* pubkey) { uint160 hash160; - /* Taking the public key and hashing it to get the hash160. */ dogecoin_pubkey_get_hash160(pubkey, hash160); - /* Adding a new output to the transaction. */ return dogecoin_tx_add_p2pkh_hash160_out(tx, amount, hash160); } @@ -1554,13 +1244,8 @@ dogecoin_bool dogecoin_tx_outpoint_is_null(dogecoin_tx_outpoint* tx) */ dogecoin_bool dogecoin_tx_is_coinbase(dogecoin_tx* tx) { - /* Checking if the transaction has only one input. */ if (tx->vin->len == 1) { - /* Checking if the transaction has a coinbase input. */ dogecoin_tx_in* vin = vector_idx(tx->vin, 0); - - /* Checking if the previous transaction hash is empty and if the previous transaction index is - UINT32_MAX. */ if (dogecoin_hash_is_empty(vin->prevout.hash) && vin->prevout.n == UINT32_MAX) { return true; } @@ -1616,23 +1301,22 @@ const char* dogecoin_tx_sign_result_to_str(const enum dogecoin_tx_sign_result re */ enum dogecoin_tx_sign_result dogecoin_tx_sign_input(dogecoin_tx* tx_in_out, const cstring* script, uint64_t amount, const dogecoin_key* privkey, int inputindex, int sighashtype, uint8_t* sigcompact_out, uint8_t* sigder_out, int* sigder_len_out) { - /* Checking if the transaction or script is valid. */ if (!tx_in_out || !script) { return DOGECOIN_SIGN_INVALID_TX_OR_SCRIPT; } - /* The code below is checking if the input index is out of range. */ + if ((size_t)inputindex >= tx_in_out->vin->len) { return DOGECOIN_SIGN_INPUTINDEX_OUT_OF_RANGE; } - /* Checking if the private key is valid. */ + if (!dogecoin_privkey_is_valid(privkey)) { return DOGECOIN_SIGN_INVALID_KEY; } + // calculate pubkey dogecoin_pubkey pubkey; dogecoin_pubkey_init(&pubkey); dogecoin_pubkey_from_key(privkey, &pubkey); - /* Checking if the public key is valid. */ if (!dogecoin_pubkey_is_valid(&pubkey)) { return DOGECOIN_SIGN_INVALID_KEY; } @@ -1642,34 +1326,9 @@ enum dogecoin_tx_sign_result dogecoin_tx_sign_input(dogecoin_tx* tx_in_out, cons dogecoin_tx_in* tx_in = vector_idx(tx_in_out->vin, inputindex); vector* script_pushes = vector_new(1, free); - /* This code is checking the script type and then setting the witness_set_scriptsig to the correct - script. */ - cstring* witness_set_scriptsig = NULL; //required in order to set the P2SH-P2WPKH scriptSig - /* Classifying the script into a type. */ enum dogecoin_tx_out_type type = dogecoin_script_classify(script, script_pushes); - /* The code below is checking the version of the signature. */ enum dogecoin_sig_version sig_version = SIGVERSION_BASE; - /* This code is setting the script_pushes vector to the correct value for the type of transaction. */ - if (type == DOGECOIN_TX_SCRIPTHASH) { - // p2sh script, need the redeem script - // for now, pretend to be a p2sh-p2wpkh - vector_free(script_pushes, true); - script_pushes = vector_new(1, free); - type = DOGECOIN_TX_WITNESS_V0_PUBKEYHASH; - uint8_t* hash160 = dogecoin_calloc(1, 20); - dogecoin_pubkey_get_hash160(&pubkey, hash160); - vector_add(script_pushes, hash160); - - // set the script sig - witness_set_scriptsig = cstr_new_sz(22); - uint8_t version = 0; - ser_varlen(witness_set_scriptsig, 22); - ser_bytes(witness_set_scriptsig, &version, 1); - ser_varlen(witness_set_scriptsig, 20); - ser_bytes(witness_set_scriptsig, hash160, 20); - } if (type == DOGECOIN_TX_PUBKEYHASH && script_pushes->len == 1) { - /* Checking if the private key matches the script. */ // check if given private key matches the script uint160 hash160; dogecoin_pubkey_get_hash160(&pubkey, hash160); @@ -1677,32 +1336,15 @@ enum dogecoin_tx_sign_result dogecoin_tx_sign_input(dogecoin_tx* tx_in_out, cons if (memcmp(hash160_in_script, hash160, sizeof(hash160)) != 0) { res = DOGECOIN_SIGN_NO_KEY_MATCH; //sign anyways } - } else if (type == DOGECOIN_TX_WITNESS_V0_PUBKEYHASH && script_pushes->len == 1) { - /* Building a script that will be used to sign the transaction. */ - uint160* hash160_in_script = vector_idx(script_pushes, 0); - sig_version = SIGVERSION_WITNESS_V0; - - // check if given private key matches the script - uint160 hash160; - dogecoin_pubkey_get_hash160(&pubkey, hash160); - if (memcmp(hash160_in_script, hash160, sizeof(hash160)) != 0) { - res = DOGECOIN_SIGN_NO_KEY_MATCH; //sign anyways - } - - cstr_resize(script_sign, 0); - dogecoin_script_build_p2pkh(script_sign, *hash160_in_script); } else { // unknown script, however, still try to create a signature (don't apply though) res = DOGECOIN_SIGN_UNKNOWN_SCRIPT_TYPE; } vector_free(script_pushes, true); - /* Signing the transaction. */ uint256 sighash; dogecoin_mem_zero(sighash, sizeof(sighash)); - /* Checking if the signature is valid. */ if (!dogecoin_tx_sighash(tx_in_out, script_sign, inputindex, sighashtype, amount, sig_version, sighash)) { - cstr_free(witness_set_scriptsig, true); cstr_free(script_sign, true); return DOGECOIN_SIGN_SIGHASH_FAILED; } @@ -1717,26 +1359,20 @@ enum dogecoin_tx_sign_result dogecoin_tx_sign_input(dogecoin_tx* tx_in_out, cons } // form normalized DER signature & hashtype - /* The code below is converting the signature into a DER format, and adding the sighashtype to the end - of the signature. */ unsigned char sigder_plus_hashtype[74 + 1]; size_t sigderlen = 75; dogecoin_ecc_compact_to_der_normalized(sig, sigder_plus_hashtype, &sigderlen); assert(sigderlen <= 74 && sigderlen >= 70); sigder_plus_hashtype[sigderlen] = sighashtype; sigderlen += 1; //+hashtype - /* Copying the signature and hashtype into the sigder_out buffer. */ if (sigcompact_out) { memcpy_safe(sigder_out, sigder_plus_hashtype, sigderlen); } - /* Checking if the sigder_len_out is not null, and if it is not null, it is setting the value of - sigderlen to the value of sigder_len_out. */ if (sigder_len_out) { *sigder_len_out = sigderlen; } // apply signature depending on script type - /* Serializing the signature and the public key. */ if (type == DOGECOIN_TX_PUBKEYHASH) { // apply DER sig ser_varlen(tx_in->script_sig, sigderlen); @@ -1745,22 +1381,6 @@ enum dogecoin_tx_sign_result dogecoin_tx_sign_input(dogecoin_tx* tx_in_out, cons // apply pubkey ser_varlen(tx_in->script_sig, pubkey.compressed ? DOGECOIN_ECKEY_COMPRESSED_LENGTH : DOGECOIN_ECKEY_UNCOMPRESSED_LENGTH); ser_bytes(tx_in->script_sig, pubkey.pubkey, pubkey.compressed ? DOGECOIN_ECKEY_COMPRESSED_LENGTH : DOGECOIN_ECKEY_UNCOMPRESSED_LENGTH); - } else if (type == DOGECOIN_TX_WITNESS_V0_PUBKEYHASH) { - /* This is the code that is used to create the witness stack for a P2WPKH transaction. */ - // signal witness by emtpying script sig (may be already empty) - cstr_resize(tx_in->script_sig, 0); - if (witness_set_scriptsig) { - // append the script sig in case of P2SH-P2WPKH - cstr_append_cstr(tx_in->script_sig, witness_set_scriptsig); - cstr_free(witness_set_scriptsig, true); - } - - // fill witness stack (DER sig, pubkey) - cstring* witness_item = cstr_new_buf(sigder_plus_hashtype, sigderlen); - vector_add(tx_in->witness_stack, witness_item); - - witness_item = cstr_new_buf(pubkey.pubkey, pubkey.compressed ? DOGECOIN_ECKEY_COMPRESSED_LENGTH : DOGECOIN_ECKEY_UNCOMPRESSED_LENGTH); - vector_add(tx_in->witness_stack, witness_item); } else { // append nothing res = DOGECOIN_SIGN_UNKNOWN_SCRIPT_TYPE; diff --git a/test/net_tests.c b/test/net_tests.c index febe7c25a..f61d00ad9 100644 --- a/test/net_tests.c +++ b/test/net_tests.c @@ -83,7 +83,7 @@ void postcmd(struct dogecoin_node_ *node, dogecoin_p2p_msg_hdr *hdr, struct cons for (i = 0; i < vsize; i++) { dogecoin_tx *tx = dogecoin_tx_new(); //needs to be on the heep - dogecoin_tx_deserialize(buf->p, buf->len, tx, NULL, true); + dogecoin_tx_deserialize(buf->p, buf->len, tx, NULL); dogecoin_tx_free(tx); } diff --git a/test/tool_tests.c b/test/tool_tests.c index d37aa5d46..59342b822 100644 --- a/test/tool_tests.c +++ b/test/tool_tests.c @@ -16,12 +16,8 @@ void test_tool() { char addr[100]; - char addr_p2sh_p2wpkh[100]; - char addr_p2wpkh[100]; - u_assert_int_eq(addresses_from_pubkey(&dogecoin_chainparams_main, "039ca1fdedbe160cb7b14df2a798c8fed41ad4ed30b06a85ad23e03abe43c413b2", addr, addr_p2sh_p2wpkh, addr_p2wpkh), true); + u_assert_int_eq(addresses_from_pubkey(&dogecoin_chainparams_main, "039ca1fdedbe160cb7b14df2a798c8fed41ad4ed30b06a85ad23e03abe43c413b2", addr), true); u_assert_str_eq(addr, "DTwqVfB7tbwca2PzwBvPV1g1xDB2YPrCYh"); - u_assert_str_eq(addr_p2sh_p2wpkh, "A6JS4r6BucWmrMXeTuuxbVCrS9iHPckeBf"); - u_assert_str_eq(addr_p2wpkh, "doge1qlg5uydlgue7ywqcnt6rumf8743pm5usr5rlvmd"); size_t pubkeylen = 100; char pubkey[pubkeylen]; diff --git a/test/transaction_tests.c b/test/transaction_tests.c index bb1e4b3bf..26804bf02 100644 --- a/test/transaction_tests.c +++ b/test/transaction_tests.c @@ -53,7 +53,7 @@ void test_transaction() // convert raw_hexadecimal_transaction_from_tx_worth_2_dogecoin to byte array to dogecoin_tx and if it fails free from memory utils_hex_to_bin(raw_hexadecimal_transaction_from_tx_worth_2_dogecoin, data_bin_2, strlen(raw_hexadecimal_transaction_from_tx_worth_2_dogecoin), &outlength_2); - if (!dogecoin_tx_deserialize(data_bin_2, outlength_2, tx_worth_2, NULL, false)) { + if (!dogecoin_tx_deserialize(data_bin_2, outlength_2, tx_worth_2, NULL)) { // free dogecoin_tx printf("deserializing tx_worth_2 failed\n"); dogecoin_tx_free(tx_worth_2); @@ -149,7 +149,7 @@ void test_transaction() // convert incomingrawtx to byte array to dogecoin_tx and if it fails free from memory utils_hex_to_bin(raw_hexadecimal_transaction_from_tx_worth_10_dogecoin, data_bin_10, strlen(raw_hexadecimal_transaction_from_tx_worth_10_dogecoin), &outlength_10); - if (!dogecoin_tx_deserialize(data_bin_10, outlength_10, tx_worth_10, NULL, false)) { + if (!dogecoin_tx_deserialize(data_bin_10, outlength_10, tx_worth_10, NULL)) { // free dogecoin_tx dogecoin_tx_free(tx_worth_10); } diff --git a/test/tx_tests.c b/test/tx_tests.c index ee034d5d5..2429395f3 100644 --- a/test/tx_tests.c +++ b/test/tx_tests.c @@ -26,9 +26,8 @@ struct txtest_sighash { char sertx[10048]; // serialized transaction char script[1024]; // scriptPubKey int i; // input index - uint64_t amount; // amount (SegWit) + uint64_t amount; // amount char sighash[32 * 2 + 1]; // the expected sighash - int witness; // bool; used witness transaction digest algorithm (SIGVERSION_WITNESS_V0) }; struct txtest_input { @@ -46,180 +45,109 @@ struct txtest { /* this are the tx_valid test vectors from Bitcoin Core 0.15, run through Bitcoin Core's SignatureHash function */ static const struct txtest_sighash txvalid_sighash[] = { - {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000490047304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25", 0}, - {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba260000000004a0048304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2bab01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25", 0}, - {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba260000000004a01ff47304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25", 0}, - {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000495147304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25", 0}, - {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000494f47304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25", 0}, - {"01000000010276b76b07f4935c70acf54fbf1f438a4c397a9fb7e633873c4dd3bc062b6b40000000001976a914dc44b1164188067c3a32d4780f5996fa14a4f2d988ac000000000100093d00000000001976a9149a7b0f3b80c6baaeedce0a0842553800f832ba1f88ac0000000001000000", "01000000010276b76b07f4935c70acf54fbf1f438a4c397a9fb7e633873c4dd3bc062b6b40000000008c493046022100d23459d03ed7e9511a47d13292d3430a04627de6235b6e51a40f9cd386f2abe3022100e7d25b080f0bb8d8d5f878bba7d54ad2fda650ea8d158a33ee3cbd11768191fd004104b0e2c879e4daf7b9ab68350228c159766676a14f5815084ba166432aab46198d4cca98fa3e9981d0a90b2effc514b76279476550ba3663fdcaff94c38420e9d5000000000100093d00000000001976a9149a7b0f3b80c6baaeedce0a0842553800f832ba1f88ac00000000", "76a914dc44b1164188067c3a32d4780f5996fa14a4f2d988ac", 0, 0, "fa97d64d2b3b3cb86ee6776b211c658cede54d6488b4fa0c8591b491b4fd5638", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000001a76a9145b6462475454710f3c22f5fdf0b40704c92f25c388ad51ffffffff01000000000000000001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000", "76a9145b6462475454710f3c22f5fdf0b40704c92f25c388ad51", 0, 0, "d173b431d7786bf0b8c92f3aae4d27d3e6b16f64b05a84644570a60ad0a19b58", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000006276a9145b6462475454710f3c22f5fdf0b40704c92f25c388ad51473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01ffffffff01000000000000000001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000", "76a9145b6462475454710f3c22f5fdf0b40704c92f25c388ad51473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01", 0, 0, "0657f30ac19bd609d59212b82589373d2954f421acbc8d00618992b3af0ffd74", 0}, - {"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000001976a914bef80ecf3a44500fda1bc92176e442891662aed288acffffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b70100000000ffffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac0000000001000000", "01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000", "76a914bef80ecf3a44500fda1bc92176e442891662aed288ac", 0, 0, "dcd0f937ba3b2b8d3542d2eaa7aeecaa039f4c5ec32d450497fccd5484b76008", 0}, - {"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b40000000000ffffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000001976a914bef80ecf3a44500fda1bc92176e442891662aed288acffffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac0000000001000000", "01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000", "76a914bef80ecf3a44500fda1bc92176e442891662aed288ac", 1, 0, "8182430dba1b422cd25fdeb6bf6c0375ebe52093fed2cd1cab5d53be43b45bfe", 0}, - {"01000000020002000000000000000000000000000000000000000000000000000000000000000000000151ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01000000000000000001510000000001000000", "01000000020002000000000000000000000000000000000000000000000000000000000000000000000151ffffffff0001000000000000000000000000000000000000000000000000000000000000000000006b483045022100c9cdd08798a28af9d1baf44a6c77bcc7e279f47dc487c8c899911bc48feaffcc0220503c5c50ae3998a733263c5c0f7061b483e2b56c4c41b456e7d2f5a78a74c077032102d5c25adb51b61339d2b05315791e21bbe80ea470a49db0135720983c905aace0ffffffff010000000000000000015100000000", "51", 0, 0, "b384078aea34dcc7c902801a5f143f8c1879cd47c6b334c89bcc125afb83d2bc", 0}, - {"010000000200020000000000000000000000000000000000000000000000000000000000000000000000ffffffff0001000000000000000000000000000000000000000000000000000000000000000000001976a914e52b482f2faa8ecbf0db344f93c84ac908557f3388acffffffff01000000000000000001510000000001000000", "01000000020002000000000000000000000000000000000000000000000000000000000000000000000151ffffffff0001000000000000000000000000000000000000000000000000000000000000000000006b483045022100c9cdd08798a28af9d1baf44a6c77bcc7e279f47dc487c8c899911bc48feaffcc0220503c5c50ae3998a733263c5c0f7061b483e2b56c4c41b456e7d2f5a78a74c077032102d5c25adb51b61339d2b05315791e21bbe80ea470a49db0135720983c905aace0ffffffff010000000000000000015100000000", "76a914e52b482f2faa8ecbf0db344f93c84ac908557f3388ac", 1, 0, "f4232faa0bcb82b2b0c148caccdd46a83bd42a94c692a53c4b46dcbe618fd7dd", 0}, - {"010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a43010000001976a914383fb81cb0a3fc724b5e08cf8bbd404336d711f688acffffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d0100000000ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c70100000000ffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac0000000001000000", "010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a43010000006b483045022100f40815ae3c81a0dd851cc8d376d6fd226c88416671346a9033468cca2cdcc6c202204f764623903e6c4bed1b734b75d82c40f1725e4471a55ad4f51218f86130ac038321033d710ab45bb54ac99618ad23b3c1da661631aa25f23bfe9d22b41876f1d46e4effffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d010000006a4730440220598d263c107004008e9e26baa1e770be30fd31ee55ded1898f7c00da05a75977022045536bead322ca246779698b9c3df3003377090f41afeca7fb2ce9e328ec4af2832102b738b531def73020bd637f32935924cc88549c8206976226d968edd3a42fc2d7ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c7010000006b483045022100c5b90a777a9fdc90c208dbef7290d1fc1be651f47151ee4ccff646872a454cf90220640cfbc4550446968fbbe9d12528f3adf7d87b31541569c59e790db8a220482583210391332546e22bbe8fe3af54addfad6f8b83d05fa4f5e047593d4c07ae938795beffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac00000000", "76a914383fb81cb0a3fc724b5e08cf8bbd404336d711f688ac", 0, 0, "e20e77e4773a5f39e01cd69d276dc20e231d88ec9fc337456bbbe59f83cdf230", 0}, - {"010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a430100000000ffffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d010000001976a914275ec2a233e5b23d43fa19e7bf9beb0cb399611788acffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c70100000000ffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac0000000001000000", "010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a43010000006b483045022100f40815ae3c81a0dd851cc8d376d6fd226c88416671346a9033468cca2cdcc6c202204f764623903e6c4bed1b734b75d82c40f1725e4471a55ad4f51218f86130ac038321033d710ab45bb54ac99618ad23b3c1da661631aa25f23bfe9d22b41876f1d46e4effffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d010000006a4730440220598d263c107004008e9e26baa1e770be30fd31ee55ded1898f7c00da05a75977022045536bead322ca246779698b9c3df3003377090f41afeca7fb2ce9e328ec4af2832102b738b531def73020bd637f32935924cc88549c8206976226d968edd3a42fc2d7ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c7010000006b483045022100c5b90a777a9fdc90c208dbef7290d1fc1be651f47151ee4ccff646872a454cf90220640cfbc4550446968fbbe9d12528f3adf7d87b31541569c59e790db8a220482583210391332546e22bbe8fe3af54addfad6f8b83d05fa4f5e047593d4c07ae938795beffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac00000000", "76a914275ec2a233e5b23d43fa19e7bf9beb0cb399611788ac", 1, 0, "ef6469919a352b43d24bf82427c28a431bd8fbb3cced5a911434a9e7365874d5", 0}, - {"010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a430100000000ffffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d0100000000ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c7010000001976a91434fea2c5a75414fd945273ae2d029ce1f28dafcf88acffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac0000000001000000", "010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a43010000006b483045022100f40815ae3c81a0dd851cc8d376d6fd226c88416671346a9033468cca2cdcc6c202204f764623903e6c4bed1b734b75d82c40f1725e4471a55ad4f51218f86130ac038321033d710ab45bb54ac99618ad23b3c1da661631aa25f23bfe9d22b41876f1d46e4effffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d010000006a4730440220598d263c107004008e9e26baa1e770be30fd31ee55ded1898f7c00da05a75977022045536bead322ca246779698b9c3df3003377090f41afeca7fb2ce9e328ec4af2832102b738b531def73020bd637f32935924cc88549c8206976226d968edd3a42fc2d7ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c7010000006b483045022100c5b90a777a9fdc90c208dbef7290d1fc1be651f47151ee4ccff646872a454cf90220640cfbc4550446968fbbe9d12528f3adf7d87b31541569c59e790db8a220482583210391332546e22bbe8fe3af54addfad6f8b83d05fa4f5e047593d4c07ae938795beffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac00000000", "76a91434fea2c5a75414fd945273ae2d029ce1f28dafcf88ac", 2, 0, "3147850f099c747971e26460122086b516bc3f2de474519a51323984e909e31b", 0}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a9147a052c840ba73af26755de42cf01cc9e0a49fef087ffffffff01000000000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000", "a9147a052c840ba73af26755de42cf01cc9e0a49fef087", 0, 0, "ffaa609cad18ced17c1e8cecc479b7a955879e601fa9a1e3e19d88e7c9855cc4", 0}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a9148febbed40483661de6958d957412f82deed8e2f787ffffffff01000000000000000001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100c66c9cdf4c43609586d15424c54707156e316d88b0a1534c9e6b0d4f311406310221009c0fe51dbc9c4ab7cc25d3fdbeccf6679fe6827f08edf2b4a9f16ee3eb0e438a0123210338e8034509af564c62644c07691942e0c056752008a173c89f60ab2a88ac2ebfacffffffff010000000000000000015100000000", "a9148febbed40483661de6958d957412f82deed8e2f787", 0, 0, "3c269ecef9a86532ea00a1d62a9075d18bdaa2b7c12c6abe7e859f220b897c40", 0}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a91432afac281462b822adbec5094b8d4d337dd5bd6a87ffffffff010040075af075070001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100e1eadba00d9296c743cb6ecc703fd9ddc9b3cd12906176a226ae4c18d6b00796022100a71aef7d2874deff681ba6080f1b278bac7bb99c61b08a85f4311970ffe7f63f012321030c0588dc44d92bdcbf8e72093466766fdc265ead8db64517b0c542275b70fffbacffffffff010040075af0750700015100000000", "a91432afac281462b822adbec5094b8d4d337dd5bd6a87", 0, 0, "d4e366729d81ed5bffa99a4df94dd5e095044f80c89955231e16d2dc1e58a284", 0}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a914b558cbf4930954aa6a344363a15668d7477ae71687ffffffff020040075af07507000151000000000000000001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022027deccc14aa6668e78a8c9da3484fbcd4f9dcc9bb7d1b85146314b21b9ae4d86022100d0b43dece8cfb07348de0ca8bc5b86276fa88f7f2138381128b7c36ab2e42264012321029bb13463ddd5d2cc05da6e84e37536cb9525703cfd8f43afdb414988987a92f6acffffffff020040075af075070001510000000000000000015100000000", "a914b558cbf4930954aa6a344363a15668d7477ae71687", 0, 0, "5d32a6c90084090c2ed7d0ba08eaa912d0019d54efc7f00b801158341324bf75", 0}, - {"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0151ffffffff01000000000000000001510000000001000000", "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff025151ffffffff010000000000000000015100000000", "51", 0, 0, "020b0855f1da9bd6e8530aa3d7b38bf14d231604716397d5ebc86789de637577", 0}, - {"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0151ffffffff01000000000000000001510000000001000000", "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff6451515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151ffffffff010000000000000000015100000000", "51", 0, 0, "020b0855f1da9bd6e8530aa3d7b38bf14d231604716397d5ebc86789de637577", 0}, - {"01000000020001000000000000000000000000000000000000000000000000000000000000000000002321035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcacffffffff00020000000000000000000000000000000000000000000000000000000000000000000000ffffffff01010000000000000001510000000001000000", "010000000200010000000000000000000000000000000000000000000000000000000000000000000049483045022100d180fd2eb9140aeb4210c9204d3f358766eb53842b2a9473db687fa24b12a3cc022079781799cd4f038b85135bbe49ec2b57f306b2bb17101b17f71f000fcab2b6fb01ffffffff0002000000000000000000000000000000000000000000000000000000000000000000004847304402205f7530653eea9b38699e476320ab135b74771e1c48b81a5d041e2ca84b9be7a802200ac8d1f40fb026674fe5a5edd3dea715c27baa9baca51ed45ea750ac9dc0a55e81ffffffff010100000000000000015100000000", "21035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac", 0, 0, "cc2562dd136abb3494d151d8483a7984aa6d61f4fa1e7086f8e62e5d9c639bf6", 0}, - {"010000000200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0002000000000000000000000000000000000000000000000000000000000000000000002321035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcacffffffff01010000000000000001510000000001000000", "010000000200010000000000000000000000000000000000000000000000000000000000000000000049483045022100d180fd2eb9140aeb4210c9204d3f358766eb53842b2a9473db687fa24b12a3cc022079781799cd4f038b85135bbe49ec2b57f306b2bb17101b17f71f000fcab2b6fb01ffffffff0002000000000000000000000000000000000000000000000000000000000000000000004847304402205f7530653eea9b38699e476320ab135b74771e1c48b81a5d041e2ca84b9be7a802200ac8d1f40fb026674fe5a5edd3dea715c27baa9baca51ed45ea750ac9dc0a55e81ffffffff010100000000000000015100000000", "21035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac", 1, 0, "3622359ca6c0cf7d95226467c403e9eecdb896603b137fa093f78e4ecb5b7b00", 0}, - {"01000000020001000000000000000000000000000000000000000000000000000000000000000000002321035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac0100000000020000000000000000000000000000000000000000000000000000000000000000000000ffffffff01010000000000000001510000000001000000", "01000000020001000000000000000000000000000000000000000000000000000000000000000000004948304502203a0f5f0e1f2bdbcd04db3061d18f3af70e07f4f467cbc1b8116f267025f5360b022100c792b6e215afc5afc721a351ec413e714305cb749aae3d7fee76621313418df101010000000002000000000000000000000000000000000000000000000000000000000000000000004847304402205f7530653eea9b38699e476320ab135b74771e1c48b81a5d041e2ca84b9be7a802200ac8d1f40fb026674fe5a5edd3dea715c27baa9baca51ed45ea750ac9dc0a55e81ffffffff010100000000000000015100000000", "21035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac", 0, 0, "8634e5a9ec43f3b8ae46ad3cef55c61d14c709abf83d03d278dc3fb02a39ad64", 0}, - {"010000000200010000000000000000000000000000000000000000000000000000000000000000000000010000000002000000000000000000000000000000000000000000000000000000000000000000002321035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcacffffffff01010000000000000001510000000001000000", "01000000020001000000000000000000000000000000000000000000000000000000000000000000004948304502203a0f5f0e1f2bdbcd04db3061d18f3af70e07f4f467cbc1b8116f267025f5360b022100c792b6e215afc5afc721a351ec413e714305cb749aae3d7fee76621313418df101010000000002000000000000000000000000000000000000000000000000000000000000000000004847304402205f7530653eea9b38699e476320ab135b74771e1c48b81a5d041e2ca84b9be7a802200ac8d1f40fb026674fe5a5edd3dea715c27baa9baca51ed45ea750ac9dc0a55e81ffffffff010100000000000000015100000000", "21035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac", 1, 0, "355be40d833aa6bb0bf73e44bb1e66e8468d501b5010b344cec2b0fa0342c66e", 0}, - {"010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf63000000001976a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88acffffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e8040100000000ffffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee0100000000ffffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac0000000001000000", "010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf63000000006a4730440220360d20baff382059040ba9be98947fd678fb08aab2bb0c172efa996fd8ece9b702201b4fb0de67f015c90e7ac8a193aeab486a1f587e0f54d0fb9552ef7f5ce6caec032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e804010000006b483045022100c714310be1e3a9ff1c5f7cacc65c2d8e781fc3a88ceb063c6153bf950650802102200b2d0979c76e12bb480da635f192cc8dc6f905380dd4ac1ff35a4f68f462fffd032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee010000006c493046022100b663499ef73273a3788dea342717c2640ac43c5a1cf862c9e09b206fcb3f6bb8022100b09972e75972d9148f2bdd462e5cb69b57c1214b88fc55ca638676c07cfc10d8032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac00000000", "76a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88ac", 0, 0, "0387d5e3b6ccad57c9a05b8945d2e76c3a57a01d79cbded56983e36671a51efb", 0}, - {"010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf630000000000ffffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e804010000001976a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88acffffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee0100000000ffffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac0000000001000000", "010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf63000000006a4730440220360d20baff382059040ba9be98947fd678fb08aab2bb0c172efa996fd8ece9b702201b4fb0de67f015c90e7ac8a193aeab486a1f587e0f54d0fb9552ef7f5ce6caec032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e804010000006b483045022100c714310be1e3a9ff1c5f7cacc65c2d8e781fc3a88ceb063c6153bf950650802102200b2d0979c76e12bb480da635f192cc8dc6f905380dd4ac1ff35a4f68f462fffd032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee010000006c493046022100b663499ef73273a3788dea342717c2640ac43c5a1cf862c9e09b206fcb3f6bb8022100b09972e75972d9148f2bdd462e5cb69b57c1214b88fc55ca638676c07cfc10d8032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac00000000", "76a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88ac", 1, 0, "3c4ec475118e74f02fe89562b4b6a2e6fe8d51b6c3534b87dcbb4f52730c38b3", 0}, - {"010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf630000000000ffffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e8040100000000ffffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee010000001976a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88acffffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac0000000001000000", "010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf63000000006a4730440220360d20baff382059040ba9be98947fd678fb08aab2bb0c172efa996fd8ece9b702201b4fb0de67f015c90e7ac8a193aeab486a1f587e0f54d0fb9552ef7f5ce6caec032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e804010000006b483045022100c714310be1e3a9ff1c5f7cacc65c2d8e781fc3a88ceb063c6153bf950650802102200b2d0979c76e12bb480da635f192cc8dc6f905380dd4ac1ff35a4f68f462fffd032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee010000006c493046022100b663499ef73273a3788dea342717c2640ac43c5a1cf862c9e09b206fcb3f6bb8022100b09972e75972d9148f2bdd462e5cb69b57c1214b88fc55ca638676c07cfc10d8032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac00000000", "76a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88ac", 2, 0, "7c88e71dd479bfee1fe6e5b19cde850c33a52da61a08b686c72a6e78012ac33b", 0}, - {"0100000001482f7a028730a233ac9b48411a8edfb107b749e61faf7531f4257ad95d0a51c500000000ca4cae606563686f2022553246736447566b58312b5a536e587574356542793066794778625456415675534a6c376a6a334878416945325364667657734f53474f36633338584d7439435c6e543249584967306a486956304f376e775236644546673d3d22203e20743b206f70656e73736c20656e63202d7061737320706173733a5b314a564d7751432d707269766b65792d6865785d202d64202d6165732d3235362d636263202d61202d696e2074607576a914bfd7436b6265aa9de506f8a994f881ff08cc287288acffffffff0180969800000000001976a914e336d0017a9d28de99d16472f6ca6d5a3a8ebc9988ac0000000001000000", "0100000001482f7a028730a233ac9b48411a8edfb107b749e61faf7531f4257ad95d0a51c5000000008b483045022100bf0bbae9bde51ad2b222e87fbf67530fbafc25c903519a1e5dcc52a32ff5844e022028c4d9ad49b006dd59974372a54291d5764be541574bb0c4dc208ec51f80b7190141049dd4aad62741dc27d5f267f7b70682eee22e7e9c1923b9c0957bdae0b96374569b460eb8d5b40d972e8c7c0ad441de3d94c4a29864b212d56050acb980b72b2bffffffff0180969800000000001976a914e336d0017a9d28de99d16472f6ca6d5a3a8ebc9988ac00000000", "4cae606563686f2022553246736447566b58312b5a536e587574356542793066794778625456415675534a6c376a6a334878416945325364667657734f53474f36633338584d7439435c6e543249584967306a486956304f376e775236644546673d3d22203e20743b206f70656e73736c20656e63202d7061737320706173733a5b314a564d7751432d707269766b65792d6865785d202d64202d6165732d3235362d636263202d61202d696e2074607576a914bfd7436b6265aa9de506f8a994f881ff08cc287288ac", 0, 0, "d1e6ea4ecf6cf7cfdeda9ae912ec519a79fcf2fea96ace34a10e0b77264e2ea4", 0}, - {"01000000012312503f2491a2a97fcd775f11e108a540a5528b5d4dee7a3c68ae4add01dab30000000017a914b1ce99298d5f07364b57b1e5c9cc00be0b04a95487ffffffff0180380100000000001976a914c9b99cddf847d10685a4fabaa0baf505f7c3dfab88ac0000000001000000", "01000000012312503f2491a2a97fcd775f11e108a540a5528b5d4dee7a3c68ae4add01dab300000000fdfe0000483045022100f6649b0eddfdfd4ad55426663385090d51ee86c3481bdc6b0c18ea6c0ece2c0b0220561c315b07cffa6f7dd9df96dbae9200c2dee09bf93cc35ca05e6cdf613340aa0148304502207aacee820e08b0b174e248abd8d7a34ed63b5da3abedb99934df9fddd65c05c4022100dfe87896ab5ee3df476c2655f9fbe5bd089dccbef3e4ea05b5d121169fe7f5f4014c695221031d11db38972b712a9fe1fc023577c7ae3ddb4a3004187d41c45121eecfdbb5b7210207ec36911b6ad2382860d32989c7b8728e9489d7bbc94a6b5509ef0029be128821024ea9fac06f666a4adc3fc1357b7bec1fd0bdece2b9d08579226a8ebde53058e453aeffffffff0180380100000000001976a914c9b99cddf847d10685a4fabaa0baf505f7c3dfab88ac00000000", "a914b1ce99298d5f07364b57b1e5c9cc00be0b04a95487", 0, 0, "5ca48999d397072753891d3ccb8770f88bed457b66206570ed3817e7955bc962", 0}, - {"0100000001f709fa82596e4f908ee331cb5e0ed46ab331d7dcfaf697fe95891e73dac4ebcb00000000b52102085c6600657566acc2d6382a47bc3f324008d2aa10940dd7705a48aa2a5a5e33ac7c2103f5d0fb955f95dd6be6115ce85661db412ec6a08abcbfce7da0ba8297c6cc0ec4ac7c5379a820d68df9e32a147cffa36193c6f7c43a1c8c69cda530e1c6db354bfabdcfefaf3c875379a820f531f3041d3136701ea09067c53e7159c8f9b2746a56c3d82966c54bbc553226879a5479827701200122a59a5379827701200122a59a6353798277537982778779679a68ffffffff01c075790000000000232103611f9a45c18f28f06f19076ad571c344c82ce8fcfe34464cf8085217a2d294a6ac0000000001000000", "0100000001f709fa82596e4f908ee331cb5e0ed46ab331d7dcfaf697fe95891e73dac4ebcb000000008c20ca42095840735e89283fec298e62ac2ddea9b5f34a8cbb7097ad965b87568100201b1b01dc829177da4a14551d2fc96a9db00c6501edfa12f22cd9cefd335c227f483045022100a9df60536df5733dd0de6bc921fab0b3eee6426501b43a228afa2c90072eb5ca02201c78b74266fac7d1db5deff080d8a403743203f109fbcabf6d5a760bf87386d20100ffffffff01c075790000000000232103611f9a45c18f28f06f19076ad571c344c82ce8fcfe34464cf8085217a2d294a6ac00000000", "2102085c6600657566acc2d6382a47bc3f324008d2aa10940dd7705a48aa2a5a5e33ac7c2103f5d0fb955f95dd6be6115ce85661db412ec6a08abcbfce7da0ba8297c6cc0ec4ac7c5379a820d68df9e32a147cffa36193c6f7c43a1c8c69cda530e1c6db354bfabdcfefaf3c875379a820f531f3041d3136701ea09067c53e7159c8f9b2746a56c3d82966c54bbc553226879a5479827701200122a59a5379827701200122a59a6353798277537982778779679a68", 0, 0, "6388c00bf863571ee96a0d119937fdb058d34f9e27cf70269f67ec7664d19347", 0}, - {"01000000012c651178faca83be0b81c8c1375c4b0ad38d53c8fe1b1c4255f5e795c2579222000000000300ac91ffffffff010100000000000000232102c2410f8891ae918cab4ffc4bb4a3b0881be67c7a1e7faa8b5acf9ab8932ec30cac0000000001000000", "01000000012c651178faca83be0b81c8c1375c4b0ad38d53c8fe1b1c4255f5e795c25792220000000049483045022100d6044562284ac76c985018fc4a90127847708c9edb280996c507b28babdc4b2a02203d74eca3f1a4d1eea7ff77b528fde6d5dc324ec2dbfdb964ba885f643b9704cd01ffffffff010100000000000000232102c2410f8891ae918cab4ffc4bb4a3b0881be67c7a1e7faa8b5acf9ab8932ec30cac00000000", "00ac91", 0, 0, "b27e976e5b9fe49e036506f4530ad0d46bbb35ea626be591972ca61a322daee4", 0}, - {"0100000001f725ea148d92096a79b1709611e06e94c63c4ef61cbae2d9b906388efd3ca99c000000002421028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac91ffffffff0101000000000000002321028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac0000000001000000", "0100000001f725ea148d92096a79b1709611e06e94c63c4ef61cbae2d9b906388efd3ca99c000000000100ffffffff0101000000000000002321028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac00000000", "21028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac91", 0, 0, "12c120e38f8a55fb4345be84efbc9d99c54d06702372d426c5e9b53a3d8df3b4", 0}, - {"0100000001be599efaa4148474053c2fa031c7262398913f1dc1d9ec201fd44078ed004e44000000002651002102136b04758b0b6e363e7a6fbe83aaf527a153db2b060d36cc29f7f8309ba6e45852aeffffffff010100000000000000232103ac4bba7e7ca3e873eea49e08132ad30c7f03640b6539e9b59903cf14fd016bbbac0000000001000000", "0100000001be599efaa4148474053c2fa031c7262398913f1dc1d9ec201fd44078ed004e44000000004900473044022022b29706cb2ed9ef0cb3c97b72677ca2dfd7b4160f7b4beb3ba806aa856c401502202d1e52582412eba2ed474f1f437a427640306fd3838725fab173ade7fe4eae4a01ffffffff010100000000000000232103ac4bba7e7ca3e873eea49e08132ad30c7f03640b6539e9b59903cf14fd016bbbac00000000", "51002102136b04758b0b6e363e7a6fbe83aaf527a153db2b060d36cc29f7f8309ba6e45852ae", 0, 0, "9dedb5ccf676e65436ef680208e9cb6e47b1d747f05a036f836d200b252d308e", 0}, - {"010000000112b66d5e8c7d224059e946749508efea9d66bf8d0c83630f080cf30be8bb6ae10000000026512103905380c7013e36e6e19d305311c1b81fce6581f5ee1c86ef0627c68c9362fc9f0052aeffffffff010100000000000000232103905380c7013e36e6e19d305311c1b81fce6581f5ee1c86ef0627c68c9362fc9fac0000000001000000", "010000000112b66d5e8c7d224059e946749508efea9d66bf8d0c83630f080cf30be8bb6ae100000000490047304402206ffe3f14caf38ad5c1544428e99da76ffa5455675ec8d9780fac215ca17953520220779502985e194d84baa36b9bd40a0dbd981163fa191eb884ae83fc5bd1c86b1101ffffffff010100000000000000232103905380c7013e36e6e19d305311c1b81fce6581f5ee1c86ef0627c68c9362fc9fac00000000", "512103905380c7013e36e6e19d305311c1b81fce6581f5ee1c86ef0627c68c9362fc9f0052ae", 0, 0, "630463341c94f250d8bb345984da8e390208a3f989b25382a9a962b58678e788", 0}, - {"0100000001b0ef70cc644e0d37407e387e73bfad598d852a5aa6d691d72b2913cebff4bceb00000000485221033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af041942103a88b326f8767f4f192ce252afe33c94d25ab1d24f27f159b3cb3aa691ffe142352ae91ffffffff0101000000000000002321033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af04194ac0000000001000000", "0100000001b0ef70cc644e0d37407e387e73bfad598d852a5aa6d691d72b2913cebff4bceb000000004a00473044022068cd4851fc7f9a892ab910df7a24e616f293bcb5c5fbdfbc304a194b26b60fba022078e6da13d8cb881a22939b952c24f88b97afd06b4c47a47d7f804c9a352a6d6d0100ffffffff0101000000000000002321033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af04194ac00000000", "5221033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af041942103a88b326f8767f4f192ce252afe33c94d25ab1d24f27f159b3cb3aa691ffe142352ae91", 0, 0, "519417300901d4221c197d60ca7952530e3dd11e8b11c611deca30d71bdcf811", 0}, - {"0100000001c188aa82f268fcf08ba18950f263654a3ea6931dabc8bf3ed1d4d42aaed74cba00000000485221037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe12102edc823cd634f2c4033d94f5755207cb6b60c4b1f1f056ad7471c47de5f2e4d5052ae91ffffffff0101000000000000002321037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe1ac0000000001000000", "0100000001c188aa82f268fcf08ba18950f263654a3ea6931dabc8bf3ed1d4d42aaed74cba000000004b0000483045022100940378576e069aca261a6b26fb38344e4497ca6751bb10905c76bb689f4222b002204833806b014c26fd801727b792b1260003c55710f87c5adbd7a9cb57446dbc9801ffffffff0101000000000000002321037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe1ac00000000", "5221037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe12102edc823cd634f2c4033d94f5755207cb6b60c4b1f1f056ad7471c47de5f2e4d5052ae91", 0, 0, "66f6496afcc050eb10b2d0d45f605ed2083fd5e60380408fcbcbe1927fda81ac", 0}, - {"01000000012432b60dc72cebc1a27ce0969c0989c895bdd9e62e8234839117f8fc32d17fbc000000002321038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041acffffffff010000000000000000016a0000000001000000", "01000000012432b60dc72cebc1a27ce0969c0989c895bdd9e62e8234839117f8fc32d17fbc000000004a493046022100a576b52051962c25e642c0fd3d77ee6c92487048e5d90818bcf5b51abaccd7900221008204f8fb121be4ec3b24483b1f92d89b1b0548513a134e345c5442e86e8617a501ffffffff010000000000000000016a00000000", "ab21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac", 0, 0, "2820037610ca45e1d691606b928cdb864b05e0f5214b3b474068a43be6846fd7", 0}, - {"01000000014710b0e7cf9f8930de259bdc4b84aa5dfb9437b665a3e3a21ff26e0bf994e183000000002321038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041acffffffff010000000000000000016a0000000001000000", "01000000014710b0e7cf9f8930de259bdc4b84aa5dfb9437b665a3e3a21ff26e0bf994e183000000004a493046022100a166121a61b4eeb19d8f922b978ff6ab58ead8a5a5552bf9be73dc9c156873ea02210092ad9bc43ee647da4f6652c320800debcf08ec20a094a0aaf085f63ecb37a17201ffffffff010000000000000000016a00000000", "abab21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac", 0, 0, "e03b1bb5cff4e465c1e446ce0ff172307b976a1dcfef1005c3b5d62870c6ce6c", 0}, - {"01000000015ebaa001d8e4ec7a88703a3bcf69d98c874bca6299cca0f191512bf2a7826832000000002321038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041acffffffff010000000000000000016a0000000001000000", "01000000015ebaa001d8e4ec7a88703a3bcf69d98c874bca6299cca0f191512bf2a7826832000000004948304502203bf754d1c6732fbf87c5dcd81258aefd30f2060d7bd8ac4a5696f7927091dad1022100f5bcb726c4cf5ed0ed34cc13dadeedf628ae1045b7cb34421bc60b89f4cecae701ffffffff010000000000000000016a00000000", "21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041abac", 0, 0, "a6b4f388729dbb317ba3418bb99db80e75e38f3b60bacc0a202f1d5397b4baf1", 0}, - {"010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a9000000004721038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ad21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ad51ffffffff010000000000000000016a0000000001000000", "010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a900000000924830450221009c0a27f886a1d8cb87f6f595fbc3163d28f7a81ec3c4b252ee7f3ac77fd13ffa02203caa8dfa09713c8c4d7ef575c75ed97812072405d932bd11e6a1593a98b679370148304502201e3861ef39a526406bad1e20ecad06be7375ad40ddb582c9be42d26c3a0d7b240221009d0a3985e96522e59635d19cc4448547477396ce0ef17a58e7d74c3ef464292301ffffffff010000000000000000016a00000000", "21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041adab21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041adab51", 0, 0, "8596bf48192c07b08069259f2a30eb73a17aa2286642aa84ea9e00a61281f93d", 0}, - {"010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a900000000266368210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71ad51ffffffff010000000000000000016a0000000001000000", "010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a9000000004a48304502207a6974a77c591fa13dff60cabbb85a0de9e025c09c65a4b2285e47ce8e22f761022100f0efaac9ff8ac36b10721e0aae1fb975c90500b50c56e8a0cc52b0403f0425dd0100ffffffff010000000000000000016a00000000", "63ab68210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71adab51", 0, 0, "1a3285b12207936ff9043c78e96771193f9cc80a8dc028cca27b610413084852", 0}, - {"010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a900000000266368210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71ad51ffffffff010000000000000000016a0000000001000000", "010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a9000000004a483045022100fa4a74ba9fd59c59f46c3960cf90cbe0d2b743c471d24a3d5d6db6002af5eebb02204d70ec490fd0f7055a7c45f86514336e3a7f03503dacecabb247fc23f15c83510151ffffffff010000000000000000016a00000000", "63ab68210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71adab51", 0, 0, "1a3285b12207936ff9043c78e96771193f9cc80a8dc028cca27b610413084852", 0}, - {"0100000001e0be9e32f1f89c3d916c4f21e55cdcd096741b895cc76ac353e6023a05f4f7cc000000001976a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88acffffffff010000000000000000016a0000000001000000", "0100000001e0be9e32f1f89c3d916c4f21e55cdcd096741b895cc76ac353e6023a05f4f7cc00000000d86149304602210086e5f736a2c3622ebb62bd9d93d8e5d76508b98be922b97160edc3dcca6d8c47022100b23c312ac232a4473f19d2aeb95ab7bdf2b65518911a0d72d50e38b5dd31dc820121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac4730440220508fa761865c8abd81244a168392876ee1d94e8ed83897066b5e2df2400dad24022043f5ee7538e87e9c6aef7ef55133d3e51da7cc522830a9c4d736977a76ef755c0121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ffffffff010000000000000000016a00000000", "76a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88ac", 0, 0, "7c16006be7e0a534fdbee124da43446aff225d6ac62513e0da8e7756b87ec467", 0}, - {"01000000013c6f30f99a5161e75a2ce4bca488300ca0c6112bde67f0807fe983feeff0c910010000001976a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88acffffffff010000000000000000016a0000000001000000", "01000000013c6f30f99a5161e75a2ce4bca488300ca0c6112bde67f0807fe983feeff0c91001000000e608646561646265656675ab61493046022100ce18d384221a731c993939015e3d1bcebafb16e8c0b5b5d14097ec8177ae6f28022100bcab227af90bab33c3fe0a9abfee03ba976ee25dc6ce542526e9b2e56e14b7f10121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac493046022100c3b93edcc0fd6250eb32f2dd8a0bba1754b0f6c3be8ed4100ed582f3db73eba2022100bf75b5bd2eff4d6bf2bda2e34a40fcc07d4aa3cf862ceaa77b47b81eff829f9a01ab21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ffffffff010000000000000000016a00000000", "76a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88ac", 0, 0, "f1a86fd8723956f88142d57b5aa2bed3107a539f9faa88046418b3192d88ccd4", 0}, - {"01000000016f3dbe2ca96fa217e94b1017860be49f20820dea5c91bdcb103b0049d5eb5660000000001976a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88acffffffff010000000000000000016a0000000001000000", "01000000016f3dbe2ca96fa217e94b1017860be49f20820dea5c91bdcb103b0049d5eb566000000000fd1d0147304402203989ac8f9ad36b5d0919d97fa0a7f70c5272abee3b14477dc646288a8b976df5022027d19da84a066af9053ad3d1d7459d171b7e3a80bc6c4ef7a330677a6be548140147304402203989ac8f9ad36b5d0919d97fa0a7f70c5272abee3b14477dc646288a8b976df5022027d19da84a066af9053ad3d1d7459d171b7e3a80bc6c4ef7a330677a6be548140121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac47304402203757e937ba807e4a5da8534c17f9d121176056406a6465054bdd260457515c1a02200f02eccf1bec0f3a0d65df37889143c2e88ab7acec61a7b6f5aa264139141a2b0121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ffffffff010000000000000000016a00000000", "76a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88ac", 0, 0, "75ed6124bc473c381bc23522e4891bdfc71ecc17daabe3b716b182feeae8ba39", 0}, - {"01000000012139c555ccb81ee5b1e87477840991ef7b386bc3ab946b6b682a04a621006b5a010000001976a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88acffffffff010000000000000000016a0000000001000000", "01000000012139c555ccb81ee5b1e87477840991ef7b386bc3ab946b6b682a04a621006b5a01000000fdb40148304502201723e692e5f409a7151db386291b63524c5eb2030df652b1f53022fd8207349f022100b90d9bbf2f3366ce176e5e780a00433da67d9e5c79312c6388312a296a5800390148304502201723e692e5f409a7151db386291b63524c5eb2030df652b1f53022fd8207349f022100b90d9bbf2f3366ce176e5e780a00433da67d9e5c79312c6388312a296a5800390121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f2204148304502201723e692e5f409a7151db386291b63524c5eb2030df652b1f53022fd8207349f022100b90d9bbf2f3366ce176e5e780a00433da67d9e5c79312c6388312a296a5800390175ac4830450220646b72c35beeec51f4d5bc1cbae01863825750d7f490864af354e6ea4f625e9c022100f04b98432df3a9641719dbced53393022e7249fb59db993af1118539830aab870148304502201723e692e5f409a7151db386291b63524c5eb2030df652b1f53022fd8207349f022100b90d9bbf2f3366ce176e5e780a00433da67d9e5c79312c6388312a296a580039017521038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ffffffff010000000000000000016a00000000", "76a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88ac", 0, 0, "82bd02352411f56497d22a0c4c39543aa90790aea66a6ae9e8273f98b62c9125", 0}, - {"0100000002f9cbafc519425637ba4227f8d0a0b7160b4e65168193d5af39747891de98b5b5000000001976a914f6f365c40f0739b61de827a44751e5e99032ed8f88acffffffff42e7988254800876b69f24676b3e0205b77be476512ca4d970707dd5c60598ab0000000000ffffffff01a08601000000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e6870000000001000000", "0100000002f9cbafc519425637ba4227f8d0a0b7160b4e65168193d5af39747891de98b5b5000000006b4830450221008dd619c563e527c47d9bd53534a770b102e40faa87f61433580e04e271ef2f960220029886434e18122b53d5decd25f1f4acb2480659fea20aabd856987ba3c3907e0121022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01ffffffff42e7988254800876b69f24676b3e0205b77be476512ca4d970707dd5c60598ab00000000fd260100483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a53034930460221008431bdfa72bc67f9d41fe72e94c88fb8f359ffa30b33c72c121c5a877d922e1002210089ef5fc22dd8bfc6bf9ffdb01a9862d27687d424d1fefbab9e9c7176844a187a014c9052483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c7153aeffffffff01a08601000000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e68700000000", "76a914f6f365c40f0739b61de827a44751e5e99032ed8f88ac", 0, 0, "542f9a298626b650f7e7f5111b2d3bb831c3efc58de294ea65e0331ef1245944", 0}, - {"0100000002f9cbafc519425637ba4227f8d0a0b7160b4e65168193d5af39747891de98b5b50000000000ffffffff42e7988254800876b69f24676b3e0205b77be476512ca4d970707dd5c60598ab0000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e687ffffffff01a08601000000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e6870000000001000000", "0100000002f9cbafc519425637ba4227f8d0a0b7160b4e65168193d5af39747891de98b5b5000000006b4830450221008dd619c563e527c47d9bd53534a770b102e40faa87f61433580e04e271ef2f960220029886434e18122b53d5decd25f1f4acb2480659fea20aabd856987ba3c3907e0121022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01ffffffff42e7988254800876b69f24676b3e0205b77be476512ca4d970707dd5c60598ab00000000fd260100483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a53034930460221008431bdfa72bc67f9d41fe72e94c88fb8f359ffa30b33c72c121c5a877d922e1002210089ef5fc22dd8bfc6bf9ffdb01a9862d27687d424d1fefbab9e9c7176844a187a014c9052483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c7153aeffffffff01a08601000000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e68700000000", "a914d8dacdadb7462ae15cd906f1878706d0da8660e687", 1, 0, "1b43cb521a15b4e26e2ea8ba6a6eae30806a63a2eaaf77f6856b60289e8b8cb2", 0}, - {"0100000002dbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce000000001976a914f6f365c40f0739b61de827a44751e5e99032ed8f88acffffffffdbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce0100000000ffffffff01a0860100000000001976a9149bc0bbdd3024da4d0c38ed1aecf5c68dd1d3fa1288ac0000000001000000", "0100000002dbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce000000006b4830450221009627444320dc5ef8d7f68f35010b4c050a6ed0d96b67a84db99fda9c9de58b1e02203e4b4aaa019e012e65d69b487fdf8719df72f488fa91506a80c49a33929f1fd50121022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01ffffffffdbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce010000009300483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303ffffffff01a0860100000000001976a9149bc0bbdd3024da4d0c38ed1aecf5c68dd1d3fa1288ac00000000", "76a914f6f365c40f0739b61de827a44751e5e99032ed8f88ac", 0, 0, "cb4f4adc3da0a54f5892c1e40ec0bac834d37102f733a55c72d2de3a548f7665", 0}, - {"0100000002dbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce0000000000ffffffffdbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce010000009052483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c7153aeffffffff01a0860100000000001976a9149bc0bbdd3024da4d0c38ed1aecf5c68dd1d3fa1288ac0000000001000000", "0100000002dbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce000000006b4830450221009627444320dc5ef8d7f68f35010b4c050a6ed0d96b67a84db99fda9c9de58b1e02203e4b4aaa019e012e65d69b487fdf8719df72f488fa91506a80c49a33929f1fd50121022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01ffffffffdbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce010000009300483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303ffffffff01a0860100000000001976a9149bc0bbdd3024da4d0c38ed1aecf5c68dd1d3fa1288ac00000000", "52483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c7153ae", 1, 0, "51af5bd4718c186561b35016ddccbaee302f9b814ccdfb7780f1b0f6748deeb1", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000300b15100000000010000000000000000000000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "00b151", 0, 0, "9521b84cdd30997504fd5fb7d6d7af65fe9614be1e7e0b89e8522145dcea70fc", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000704ff64cd1db1510000000001000000000000000000ff64cd1d01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "04ff64cd1db151", 0, 0, "dd8bdcd78c05914a57c6033d335ba6ca1df2f4cc8b5172dd4cf0b432be1bd24c", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000300b1510000000001000000000000000000ff64cd1d01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "00b151", 0, 0, "05751dd868560a451b6b402d84993393347104de1a077dff19ca24ecd7d7eedd", 0}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000007040065cd1db15100000000010000000000000000000065cd1d01000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "040065cd1db151", 0, 0, "5cc399a83be43c43474229b3f89f34510d4ce8d55eb3313a9c6b44ee774f3068", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b1510000000001000000000000000000ffffffff01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "05ffffffff00b151", 0, 0, "c2d81b118c2ebd4a3a4727c7ba801f15fac4a84bdeb6bc1c8cd907d8713b4044", 0}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000007040065cd1db1510000000001000000000000000000ffffffff01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "040065cd1db151", 0, 0, "4e3e0bffe85f5eadd14444510dded1f6ff373b9cdf3166ed01dccbb217f0c120", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000300b151feffffff010000000000000000000000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000", "00b151", 0, 0, "55d7b5a152aa91b3b559b3964bf909ef838bd824cdcd4231d19b703240b092d8", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000804ff64cd1d8bb15100000000010000000000000000000065cd1d01000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "04ff64cd1d8bb151", 0, 0, "22fb197022c0d0e4d8a937261b087becbac1c4436fba1b360e4f7e00beade9b5", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000d04ffffff7f04ffffff7f93b1510000000001000000000000000000feffffff01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000feffffff", "04ffffff7f04ffffff7f93b151", 0, 0, "7e7e7e67a115af7894aa0ba899a47d641b9cc217339bb72498a7c26be6fc803a", 0}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000008050000000000b15100000000010000000000000000000000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "050000000000b151", 0, 0, "0351e800af82b27f6e1fd2eed93b09f328ed5af4ffdf61ad9c3c6100ec00d330", 0}, - {"0100000001000100000000000000000000000000000000000000000000000000000000000000000000015100000000010000000000000000000100000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b1000000000100000000000000000001000000", "51", 0, 0, "c08f4c420d047a687241fc169a1cfdb4787ed1be282ec64908d5431292601eac", 0}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a914c5b93064159b3b2d6ab506a41b1f50463771b9888700000000010000000000000000000100000001000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000030251b1000000000100000000000000000001000000", "a914c5b93064159b3b2d6ab506a41b1f50463771b98887", 0, 0, "53b2ee008a6442fef371f32274e5e4bd3078b92d31436cd816645af7acdf7880", 0}, - {"010000000132211bdd0d568506804eef0d8cc3db68c3d766ab9306cdfcc0a9c89616c8dbb1000000001976a9144b3bd7eba3bc0284fd3007be7f3be275e94f582688acffffffff0100000000000000001976a914f1b3ed2eda9a2ebe5a9374f692877cdf87c0f95b88ac0000000001000000", "010000000132211bdd0d568506804eef0d8cc3db68c3d766ab9306cdfcc0a9c89616c8dbb1000000006c493045022100c7bb0faea0522e74ff220c20c022d2cb6033f8d167fb89e75a50e237a35fd6d202203064713491b1f8ad5f79e623d0219ad32510bfaa1009ab30cbee77b59317d6e30001210237af13eb2d84e4545af287b919c2282019c9691cc509e78e196a9d8274ed1be0ffffffff0100000000000000001976a914f1b3ed2eda9a2ebe5a9374f692877cdf87c0f95b88ac00000000", "76a9144b3bd7eba3bc0284fd3007be7f3be275e94f582688ac", 0, 0, "b81d5bb751e20792b4d3dd61a3d38f0b84a249d978a874cf4d55c71984dfaea6", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000300b25100000000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "00b251", 0, 0, "6b077d438b7793cc4d1d2486a34152d07d5061332332979a1e3f30ba89d9a058", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603ffff00b251ffff0000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffff00000100000000000000000000000000", "03ffff00b251", 0, 0, "8ee809453c60181e6c7355a1484e4427046ebe4fa2a24ca1bcd73a2603a3b556", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603ffff00b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "03ffff00b251", 0, 0, "651e985fe8ace5cf67dcdbe65d936a337b70f7356f9238be1801f5794822c9e9", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000300b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "00b251", 0, 0, "d7695df7e237a42441630f433e6e28dcb261bc42226cceb94e7b75e5f1f7d3f3", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603000040b25100004000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000040000100000000000000000000000000", "03000040b251", 0, 0, "d7816b5928a222a38915ab76d25947e3041b1aa38f94611ff81e0061869ba6e7", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603ffff40b251ffff4000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffff40000100000000000000000000000000", "03ffff40b251", 0, 0, "2fec97e97ffb45f622e0e1b2ce2d368ef04ac39d34b6623b3a5259d35326706d", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603ffff40b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "03ffff40b251", 0, 0, "26a649ca2b9aa2d0492db558a011a541d79609ac0be7d2072cd7f980654c0937", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603000040b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "03000040b251", 0, 0, "1d4b6d93ef9acfa62bcaec312758f7b084c26916187e87d2e6c17f36fe7d2fce", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b25100000080010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000800100000000000000000000000000", "050000008000b251", 0, 0, "b28cbdbec32dad2702bd294f95bf1e78ebce5547bde739581402681b15e3b345", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b25100000080010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000800100000000000000000000000000", "05ffffffff00b251", 0, 0, "b3edb073db12dfd66a5b3fc7b5ca77d38c453b3a3e9b3dcc876abeb0c2401d52", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251feffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000", "050000008000b251", 0, 0, "d2b179286ee2476e1d818653fe854cff642795d3145536189d2c8b0281146430", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251feffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000", "05ffffffff00b251", 0, 0, "9cb1f1b00514f17897da4102c204d5f15efb49a28ad2e88b23c33b8612e1324a", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "050000008000b251", 0, 0, "9e0283aca3d968911bff6b765cd04b0808bc10c5714e4a263efeb2c53870e70b", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "05ffffffff00b251", 0, 0, "51ed42f2942a4d080099a41ab999c5197ec956b9c175854df8556b7ff30e1d3e", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "050000008000b251", 0, 0, "d8a4a39155ad2672212bd685a9662bb5edc7ead5f78c2a6bfa77919e54af114d", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "050000008000b251", 0, 0, "7ce267a3adfabdb52658645280bcb76b3c739e2041a21f938acd16b53132f9cb", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "050000008000b251", 0, 0, "9e0283aca3d968911bff6b765cd04b0808bc10c5714e4a263efeb2c53870e70b", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "05ffffffff00b251", 0, 0, "2129be03c4ee5418480f634e78d11c24e45600fbb95939191ab448aa8d68bb0d", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "05ffffffff00b251", 0, 0, "5ed98bd48b85874c8a9494c9200652c58ba1416256116b20597a4d373ae978f8", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "05ffffffff00b251", 0, 0, "51ed42f2942a4d080099a41ab999c5197ec956b9c175854df8556b7ff30e1d3e", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008001b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "050000008001b251", 0, 0, "56ef179ac6d5cba99c9e29df1fdf0f1abfff9cfc17fd11003a509c4dde7e0856", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008001b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "050000008001b251", 0, 0, "8d143c8c0e37169b19c192203a4fdefed960875cc2efd9f11cef926d42a0911a", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008001b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "050000008001b251", 0, 0, "dadcedb44965f11466d232912932c370d7e02ed3e76db2ef6f0b22edeb1681cc", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000000000b25100000000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "050000000000b251", 0, 0, "c6812f7cab7a7e0e791d05a6526e43ba873fac30b4d587c15f6cc1ae4878c9e5", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000703ffff3f8bb25100004000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000040000100000000000000000000000000", "03ffff3f8bb251", 0, 0, "d95e733825c5f1104a5730e72f403b109cb49b9fb0541ed58a4dc0ebf16c5146", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000007030000408cb251ffff0000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffff00000100000000000000000000000000", "030000408cb251", 0, 0, "4a6cf74076204e618507d50d7f111a2feae171011a26736ce7e4423429ac07ff", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000b04ffffff7f03000001b25100000000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "04ffffff7f03000001b251", 0, 0, "f1b6a4bfe5d78daa4542e35bf90782f06d92e27d7be3cafbb0bbc13a5eb67d85", 0}, - {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000c04ffffff7f0300004193b25100004000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000040000100000000000000000000000000", "04ffffff7f0300004193b251", 0, 0, "d5dc4b1dd96c5acf547a16f0aa8bf95c068f26c653de8111c111fe45900a3cd6", 0}, - {"0200000001000100000000000000000000000000000000000000000000000000000000000000000000015101000000010000000000000000000000000001000000", "02000000010001000000000000000000000000000000000000000000000000000000000000000000000251b2010000000100000000000000000000000000", "51", 0, 0, "fc402c5ce4bd16c7e3c1bff7c44ddad843527e5f8866b2a89418c6a8282e970f", 0}, - {"020000000100010000000000000000000000000000000000000000000000000000000000000000000017a9147c17aff532f22beb54069942f9bf567a66133eaf8701000000010000000000000000000000000001000000", "0200000001000100000000000000000000000000000000000000000000000000000000000000000000030251b2010000000100000000000000000000000000", "a9147c17aff532f22beb54069942f9bf567a66133eaf87", 0, 0, "1b927f5991e23fa6504eee83b749f9788ed40b7eb0f8833e87f60631e472eb9e", 0}, - {"010000007495d50732e62d65f11068892370d8b68a2cbd2e0c80be8c67e099a1ef0d7bee3bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e706650440001000000000000000000000000000000000000000000000000000000000000000000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fe803000000000000ffffffff0000000001000000", "0100000000010100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e8030000000000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac02483045022100cfb07164b36ba64c1b1e8c7720a56ad64d96f6ef332d3d37f9cb3c96477dc44502200a464cd7a9cf94cd70f66ce4f4f0625ef650052c7afcfe29d7d7e01830ff91ed012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 0, 1000, "fa6153bdac89f1cfbe5f64b1d7097ee011f81342b6b3772648d16eeda4362654", 1}, - {"010000007495d50732e62d65f11068892370d8b68a2cbd2e0c80be8c67e099a1ef0d7bee3bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e70665044000100000000000000000000000000000000000000000000000000000000000000000000220020ff25429251b5a84f452230a3c75fd886b7fc5a7865ce4a7bb7a9d7c5be6da3dbe803000000000000ffffffff0000000001000000", "0100000000010100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e8030000000000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac02483045022100aa5d8aa40a90f23ce2c3d11bc845ca4a12acd99cbea37de6b9f6d86edebba8cb022022dedc2aa0a255f74d04c0b76ece2d7c691f9dd11a64a8ac49f62a99c3a05f9d01232103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ac00000000", "0020ff25429251b5a84f452230a3c75fd886b7fc5a7865ce4a7bb7a9d7c5be6da3db", 0, 1000, "b3b24add62af002c288c50df90c9e1871a5c54f3b247278887728bd9ecf22419", 1}, - {"010000007495d50732e62d65f11068892370d8b68a2cbd2e0c80be8c67e099a1ef0d7bee3bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e7066504400010000000000000000000000000000000000000000000000000000000000000000000017a914fe9c7dacc9fcfbf7e3b7d5ad06aa2b28c5a7b7e387e803000000000000ffffffff0000000001000000", "01000000000101000100000000000000000000000000000000000000000000000000000000000000000000171600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fffffffff01e8030000000000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac02483045022100cfb07164b36ba64c1b1e8c7720a56ad64d96f6ef332d3d37f9cb3c96477dc44502200a464cd7a9cf94cd70f66ce4f4f0625ef650052c7afcfe29d7d7e01830ff91ed012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000", "a914fe9c7dacc9fcfbf7e3b7d5ad06aa2b28c5a7b7e387", 0, 1000, "85ba2a27852d86bdc2e36403759d8c2fe0c6eb3eb253861d300941c7fe03ca83", 1}, - {"010000007495d50732e62d65f11068892370d8b68a2cbd2e0c80be8c67e099a1ef0d7bee3bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e7066504400010000000000000000000000000000000000000000000000000000000000000000000017a9142135ab4f0981830311e35600eebc7376dce3a91487e803000000000000ffffffff0000000001000000", "0100000000010100010000000000000000000000000000000000000000000000000000000000000000000023220020ff25429251b5a84f452230a3c75fd886b7fc5a7865ce4a7bb7a9d7c5be6da3dbffffffff01e8030000000000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac02483045022100aa5d8aa40a90f23ce2c3d11bc845ca4a12acd99cbea37de6b9f6d86edebba8cb022022dedc2aa0a255f74d04c0b76ece2d7c691f9dd11a64a8ac49f62a99c3a05f9d01232103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ac00000000", "a9142135ab4f0981830311e35600eebc7376dce3a91487", 0, 1000, "418e514d1a3710a18590cd45d821792663943b0172aaaa33241f180ee7284405", 1}, - {"010000000e186640d1ce42f53f6ccf3c9d0427da056178e500ba6a26ff4b57bee73e329603bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca0800010000000000000000000000000000000000000000000000000000000000000200000001511c0c000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff05540b0000000000000151d0070000000000000151840300000000000001513c0f00000000000001512c010000000000000151000248304502210092f4777a0f17bf5aeb8ae768dec5f2c14feabf9d1fe2c89c78dfed0f13fdb86902206da90a86042e252bcd1e80a168c719e4a1ddcc3cebea24b9812c5453c79107e9832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71000000000000", "51", 0, 3100, "1d27752811bb71ce44897df3f0c30c763c358633be796cc1581f695227448ab1", 1}, - {"010000000e186640d1ce42f53f6ccf3c9d0427da056178e500ba6a26ff4b57bee73e329603bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca080001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff05540b0000000000000151d0070000000000000151840300000000000001513c0f00000000000001512c010000000000000151000248304502210092f4777a0f17bf5aeb8ae768dec5f2c14feabf9d1fe2c89c78dfed0f13fdb86902206da90a86042e252bcd1e80a168c719e4a1ddcc3cebea24b9812c5453c79107e9832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71000000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "3db35e83ec3444037cf7105c3fa400f9dfa43c778a6a12ea7de8bed73d490577", 1}, - {"010000000e186640d1ce42f53f6ccf3c9d0427da056178e500ba6a26ff4b57bee73e329603bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca0800010000000000000000000000000000000000000000000000000000000000000000000001514c04000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff05540b0000000000000151d0070000000000000151840300000000000001513c0f00000000000001512c010000000000000151000248304502210092f4777a0f17bf5aeb8ae768dec5f2c14feabf9d1fe2c89c78dfed0f13fdb86902206da90a86042e252bcd1e80a168c719e4a1ddcc3cebea24b9812c5453c79107e9832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71000000000000", "51", 2, 1100, "88243fca671fc3651d4e18017ab5b4685f3c2d7fd693cf00fac2a620b4e98beb", 1}, - {"010000000e186640d1ce42f53f6ccf3c9d0427da056178e500ba6a26ff4b57bee73e329603bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca0800010000000000000000000000000000000000000000000000000000000000000300000001510410000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff05540b0000000000000151d0070000000000000151840300000000000001513c0f00000000000001512c010000000000000151000248304502210092f4777a0f17bf5aeb8ae768dec5f2c14feabf9d1fe2c89c78dfed0f13fdb86902206da90a86042e252bcd1e80a168c719e4a1ddcc3cebea24b9812c5453c79107e9832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71000000000000", "51", 3, 4100, "8ff90af8ceb022a084374aa2ff68908195603479edd5a3fbb5451393cccedc39", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000248304502210092f4777a0f17bf5aeb8ae768dec5f2c14feabf9d1fe2c89c78dfed0f13fdb86902206da90a86042e252bcd1e80a168c719e4a1ddcc3cebea24b9812c5453c79107e9832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 1000, "64db9f88d32107a925741be9d11c52eacf113ac54ca9ee34651415830dfabbcb", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000248304502210092f4777a0f17bf5aeb8ae768dec5f2c14feabf9d1fe2c89c78dfed0f13fdb86902206da90a86042e252bcd1e80a168c719e4a1ddcc3cebea24b9812c5453c79107e9832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "5487d90163ba4c05f3e5b63aa1f0473adf739f9d1f28734e99a80a9e0b9329d1", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000020000000151b80b000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000248304502210092f4777a0f17bf5aeb8ae768dec5f2c14feabf9d1fe2c89c78dfed0f13fdb86902206da90a86042e252bcd1e80a168c719e4a1ddcc3cebea24b9812c5453c79107e9832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 2, 3000, "511e72d552487d66a764efadfd32bf9549beacfa559d57e9c80776730134a7e5", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff0484030000000000000151d0070000000000000151540b0000000000000151c800000000000000015100024730440220699e6b0cfe015b64ca3283e6551440a34f901ba62dd4c72fe1cb815afb2e6761022021cc5e84db498b1479de14efda49093219441adc6c543e5534979605e273d80b032103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 1000, "a0ac55ae4093ab01853472425b2695763fb1613f8243350c4ff0faef5371b1f0", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff0484030000000000000151d0070000000000000151540b0000000000000151c800000000000000015100024730440220699e6b0cfe015b64ca3283e6551440a34f901ba62dd4c72fe1cb815afb2e6761022021cc5e84db498b1479de14efda49093219441adc6c543e5534979605e273d80b032103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "d1c720dc79814699f3e47adcc4620863056a2b4abbc245471c91ac3a590c8d21", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000020000000151b80b000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff0484030000000000000151d0070000000000000151540b0000000000000151c800000000000000015100024730440220699e6b0cfe015b64ca3283e6551440a34f901ba62dd4c72fe1cb815afb2e6761022021cc5e84db498b1479de14efda49093219441adc6c543e5534979605e273d80b032103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 2, 3000, "e8acecd5fb8fdfa4a64d9c55e51549e3909b2c782014fec9ff36b52cd01296b0", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b000000000000015100024730440220699e6b0cfe015b64ca3283e6551440a34f901ba62dd4c72fe1cb815afb2e6761022021cc5e84db498b1479de14efda49093219441adc6c543e5534979605e273d80b032103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 1000, "64db9f88d32107a925741be9d11c52eacf113ac54ca9ee34651415830dfabbcb", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b000000000000015100024730440220699e6b0cfe015b64ca3283e6551440a34f901ba62dd4c72fe1cb815afb2e6761022021cc5e84db498b1479de14efda49093219441adc6c543e5534979605e273d80b032103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "5487d90163ba4c05f3e5b63aa1f0473adf739f9d1f28734e99a80a9e0b9329d1", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000020000000151b80b000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b000000000000015100024730440220699e6b0cfe015b64ca3283e6551440a34f901ba62dd4c72fe1cb815afb2e6761022021cc5e84db498b1479de14efda49093219441adc6c543e5534979605e273d80b032103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 2, 3000, "511e72d552487d66a764efadfd32bf9549beacfa559d57e9c80776730134a7e5", 1}, - {"010000008e02751544b73592f8800af5cbe898fdc9bdba198b2f3de46ccde46727706f1e03bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca0800010000000000000000000000000000000000000000000000000000000000000200000001511c0c000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff04b60300000000000001519e070000000000000151860b00000000000001009600000000000000015100000248304502210091b32274295c2a3fa02f5bce92fb2789e3fc6ea947fbe1a76e52ea3f4ef2381a022079ad72aefa3837a2e0c033a8652a59731da05fa4a813f4fc48e87c075037256b822103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 3100, "d14441cb5ac7700c65b7660059e50c6c9655467ba90ac20174a449526469e157", 1}, - {"010000008e02751544b73592f8800af5cbe898fdc9bdba198b2f3de46ccde46727706f1e03bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca0800010000000000000000000000000000000000000000000000000000000000000000000001514c04000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff04b60300000000000001519e070000000000000151860b00000000000001009600000000000000015100000248304502210091b32274295c2a3fa02f5bce92fb2789e3fc6ea947fbe1a76e52ea3f4ef2381a022079ad72aefa3837a2e0c033a8652a59731da05fa4a813f4fc48e87c075037256b822103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 1, 1100, "f6a9df6916d7a376c680553692d4fd9f3931758aa0ba9d0f3a442c830ce21837", 1}, - {"010000008e02751544b73592f8800af5cbe898fdc9bdba198b2f3de46ccde46727706f1e03bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca080001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff04b60300000000000001519e070000000000000151860b00000000000001009600000000000000015100000248304502210091b32274295c2a3fa02f5bce92fb2789e3fc6ea947fbe1a76e52ea3f4ef2381a022079ad72aefa3837a2e0c033a8652a59731da05fa4a813f4fc48e87c075037256b822103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 2, 2000, "d333eecf9028701327e5c9615937462318edd118d3fc058b95b4d15e71d1ebbb", 1}, - {"010000008e02751544b73592f8800af5cbe898fdc9bdba198b2f3de46ccde46727706f1e03bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca0800010000000000000000000000000000000000000000000000000000000000000300000001510410000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff04b60300000000000001519e070000000000000151860b00000000000001009600000000000000015100000248304502210091b32274295c2a3fa02f5bce92fb2789e3fc6ea947fbe1a76e52ea3f4ef2381a022079ad72aefa3837a2e0c033a8652a59731da05fa4a813f4fc48e87c075037256b822103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 3, 4100, "25acf3e4c6c41b9dd160adffc781cc28ae6759f74a8beaf713210e7f08e296df", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000248304502210091b32274295c2a3fa02f5bce92fb2789e3fc6ea947fbe1a76e52ea3f4ef2381a022079ad72aefa3837a2e0c033a8652a59731da05fa4a813f4fc48e87c075037256b822103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 1000, "64db9f88d32107a925741be9d11c52eacf113ac54ca9ee34651415830dfabbcb", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000248304502210091b32274295c2a3fa02f5bce92fb2789e3fc6ea947fbe1a76e52ea3f4ef2381a022079ad72aefa3837a2e0c033a8652a59731da05fa4a813f4fc48e87c075037256b822103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "5487d90163ba4c05f3e5b63aa1f0473adf739f9d1f28734e99a80a9e0b9329d1", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000020000000151b80b000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000248304502210091b32274295c2a3fa02f5bce92fb2789e3fc6ea947fbe1a76e52ea3f4ef2381a022079ad72aefa3837a2e0c033a8652a59731da05fa4a813f4fc48e87c075037256b822103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 2, 3000, "511e72d552487d66a764efadfd32bf9549beacfa559d57e9c80776730134a7e5", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff04b60300000000000001519e070000000000000151860b0000000000000100960000000000000001510002473044022022fceb54f62f8feea77faac7083c3b56c4676a78f93745adc8a35800bc36adfa022026927df9abcf0a8777829bcfcce3ff0a385fa54c3f9df577405e3ef24ee56479022103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 1000, "1662226f119e2aff44bf34e2386effd820df2cecccd85cd82120eb45dc83e7f3", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff04b60300000000000001519e070000000000000151860b0000000000000100960000000000000001510002473044022022fceb54f62f8feea77faac7083c3b56c4676a78f93745adc8a35800bc36adfa022026927df9abcf0a8777829bcfcce3ff0a385fa54c3f9df577405e3ef24ee56479022103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "84bd4f937b63d04bb874f6809b63020bf488c1f4e1abb442fbaf19d16c454de3", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000020000000151b80b000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff04b60300000000000001519e070000000000000151860b0000000000000100960000000000000001510002473044022022fceb54f62f8feea77faac7083c3b56c4676a78f93745adc8a35800bc36adfa022026927df9abcf0a8777829bcfcce3ff0a385fa54c3f9df577405e3ef24ee56479022103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 2, 3000, "0382df8917ac89086a063faa1a29089ce75e7f73b76c03edfd80a94b81191c59", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b00000000000001510002473044022022fceb54f62f8feea77faac7083c3b56c4676a78f93745adc8a35800bc36adfa022026927df9abcf0a8777829bcfcce3ff0a385fa54c3f9df577405e3ef24ee56479022103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 1000, "64db9f88d32107a925741be9d11c52eacf113ac54ca9ee34651415830dfabbcb", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b00000000000001510002473044022022fceb54f62f8feea77faac7083c3b56c4676a78f93745adc8a35800bc36adfa022026927df9abcf0a8777829bcfcce3ff0a385fa54c3f9df577405e3ef24ee56479022103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "5487d90163ba4c05f3e5b63aa1f0473adf739f9d1f28734e99a80a9e0b9329d1", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000020000000151b80b000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b00000000000001510002473044022022fceb54f62f8feea77faac7083c3b56c4676a78f93745adc8a35800bc36adfa022026927df9abcf0a8777829bcfcce3ff0a385fa54c3f9df577405e3ef24ee56479022103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 2, 3000, "511e72d552487d66a764efadfd32bf9549beacfa559d57e9c80776730134a7e5", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e9488429d66cf637c769bb3a29d2f834aa7f37c53dea9a8471cd3066c4a4dcd360c7290a0001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000020000000000000001000000", "01000000000103000100000000000000000000000000000000000000000000000000000000000000000000000200000000010000000000000000000000000000000000000000000000000000000000000100000000ffffffff000100000000000000000000000000000000000000000000000000000000000002000000000200000003e8030000000000000151d0070000000000000151b80b00000000000001510002473044022022fceb54f62f8feea77faac7083c3b56c4676a78f93745adc8a35800bc36adfa022026927df9abcf0a8777829bcfcce3ff0a385fa54c3f9df577405e3ef24ee56479022103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 1000, "13d0733df87d3991adc04eac0c1075cbe368efdbc2705332f0fc8cb3da9e9453", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e9488429d66cf637c769bb3a29d2f834aa7f37c53dea9a8471cd3066c4a4dcd360c7290a0001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "01000000000103000100000000000000000000000000000000000000000000000000000000000000000000000200000000010000000000000000000000000000000000000000000000000000000000000100000000ffffffff000100000000000000000000000000000000000000000000000000000000000002000000000200000003e8030000000000000151d0070000000000000151b80b00000000000001510002473044022022fceb54f62f8feea77faac7083c3b56c4676a78f93745adc8a35800bc36adfa022026927df9abcf0a8777829bcfcce3ff0a385fa54c3f9df577405e3ef24ee56479022103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "5bb0fbb7deb357774834052371e25da193e3cb080067dc89007f57342730de07", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e9488429d66cf637c769bb3a29d2f834aa7f37c53dea9a8471cd3066c4a4dcd360c7290a0001000000000000000000000000000000000000000000000000000000000000020000000151b80b000000000000020000000000000001000000", "01000000000103000100000000000000000000000000000000000000000000000000000000000000000000000200000000010000000000000000000000000000000000000000000000000000000000000100000000ffffffff000100000000000000000000000000000000000000000000000000000000000002000000000200000003e8030000000000000151d0070000000000000151b80b00000000000001510002473044022022fceb54f62f8feea77faac7083c3b56c4676a78f93745adc8a35800bc36adfa022026927df9abcf0a8777829bcfcce3ff0a385fa54c3f9df577405e3ef24ee56479022103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 2, 3000, "d93aabe917329ffad69ba0eb71cdf6c899eb0e020eb2629d49af49e7a7d706a9", 1}, - {"010000008e02751544b73592f8800af5cbe898fdc9bdba198b2f3de46ccde46727706f1e03bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca0800010000000000000000000000000000000000000000000000000000000000000200000001511c0c000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000002483045022100a3cec69b52cba2d2de623eeef89e0ba1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 3100, "caed95ecc8f84e2e518721cb89df965a23d6cbd2c478e06f6b598f45d361685b", 1}, - {"010000008e02751544b73592f8800af5cbe898fdc9bdba198b2f3de46ccde46727706f1e03bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca0800010000000000000000000000000000000000000000000000000000000000000000000001514c04000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000002483045022100a3cec69b52cba2d2de623eeef89e0ba1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 1, 1100, "bc997cbb05bab26e787c749ed2803f9cc8f4fb38d8bfae7681d1545aba9ec8e4", 1}, - {"010000008e02751544b73592f8800af5cbe898fdc9bdba198b2f3de46ccde46727706f1e03bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca080001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000002483045022100a3cec69b52cba2d2de623eeef89e0ba1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 2, 2000, "e2ccf717f0c4ca0cca28740466b35d36581c82a9c1869b4a0e24c19cfb4c97ce", 1}, - {"010000008e02751544b73592f8800af5cbe898fdc9bdba198b2f3de46ccde46727706f1e03bae88710f05ebf15c1c34f7ea4c1ad55ee8c5d7d6ee2b6f9ecd26cf663ca0800010000000000000000000000000000000000000000000000000000000000000300000001510410000000000000ffffffff0000000001000000", "0100000000010400010000000000000000000000000000000000000000000000000000000000000200000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000300000000ffffffff03e8030000000000000151d0070000000000000151b80b0000000000000151000002483045022100a3cec69b52cba2d2de623eeef89e0ba1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 3, 4100, "cd0edb19abe92874abc0571c10029feaeebce21fdfd7d7406783de6580de8d00", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b00000000000001510002483045022100a3cec69b52cba2d2de623eeef89e0ba1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 1000, "64db9f88d32107a925741be9d11c52eacf113ac54ca9ee34651415830dfabbcb", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b00000000000001510002483045022100a3cec69b52cba2d2de623eeef89e0ba1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "5487d90163ba4c05f3e5b63aa1f0473adf739f9d1f28734e99a80a9e0b9329d1", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000020000000151b80b000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b00000000000001510002483045022100a3cec69b52cba2d2de623eeef89e0ba1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 2, 3000, "511e72d552487d66a764efadfd32bf9549beacfa559d57e9c80776730134a7e5", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b00000000000001510002483045022100a3cec69b52cba2d2de623ffffffffff1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 0, 1000, "64db9f88d32107a925741be9d11c52eacf113ac54ca9ee34651415830dfabbcb", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000010000001660144c9c3dfac4207d5d8cb89df5722cb3d712385e3fd007000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b00000000000001510002483045022100a3cec69b52cba2d2de623ffffffffff1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "60144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 2000, "aa1eb4d257e447bd63a7b684a2e12019b95482dbd4a064b7df3d6b20149729f6", 1}, - {"0100000067ad88be284d8327089d02444717906c1d6dd220e9ceae917d97a9f6e948842982a7d5bb59fc957ff7f737ca0b8be713c705d6173783ad5edb067819bed70be80001000000000000000000000000000000000000000000000000000000000000020000000151b80b000000000000ffffffff0000000001000000", "0100000000010300010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000200000000ffffffff03e8030000000000000151d0070000000000000151b80b00000000000001510002483045022100a3cec69b52cba2d2de623ffffffffff1606184ea55476c0f8189fda231bc9cbb022003181ad597f7c380a7d1c740286b1d022b8b04ded028b833282e055e03b8efef812103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "51", 2, 3000, "511e72d552487d66a764efadfd32bf9549beacfa559d57e9c80776730134a7e5", 1}, - {"010000007495d50732e62d65f11068892370d8b68a2cbd2e0c80be8c67e099a1ef0d7bee3bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e7066504400010000000000000000000000000000000000000000000000000000000000000000000022002033198a9bfef674ebddb9ffaa52928017b8472791e54c609cb95f278ac6b1e349e803000000000000ffffffff0000000001000000", "0100000000010100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff010000000000000000015102fd08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002755100000000", "002033198a9bfef674ebddb9ffaa52928017b8472791e54c609cb95f278ac6b1e349", 0, 1000, "58d3a7be8abbcee7ee66069c23d9fd537cc27106a363119377771dbd617d6f3e", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000000000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fe803000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 0, 1000, "f79eaa7c339cacac6282debba686a90faee99a8f43614000e0a0353519d302ca", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fe903000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 1001, "815613b832ca9ee834633974fed624de30121f9df90cda0d9c25410bcb353a86", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000020000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88acea03000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "76a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac", 2, 1002, "fb992261e24602e73c7c64bc8d2796eaecbfcdf4636bd893f5cfd5731ba98502", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000030000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88aceb03000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "76a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac", 3, 1003, "c860cc1c9d72a0f92cd37a4cbb7c88964be8434d67a8cfa15b16b8b29326b1bf", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000040000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88acec03000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "76a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac", 4, 1004, "1fc97f377e9105fd031b031ea6570916c0d7e4de21da3e4530957f67eabe1738", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000050000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88aced03000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "76a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac", 5, 1005, "7eeb16881410e2412ac103b8e44df673df25fab04d64da2e8eb7cf4f937f9860", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000060000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88acee03000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "76a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac", 6, 1006, "29257738985d6819763287f06039feed5c31ebb9851eb8205a4977f88d1e6755", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000070000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fef03000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 7, 1007, "d24edb1bf2186a169ab021dc2b5dc781a72be5ec1006bda95b3c2c1bf06dc71d", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000080000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3ff003000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 8, 1008, "1b067ef11ec9bc35bc925b9790974ccdec6276101eb337b6321eda2c72eed8cb", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce5049830001000000000000000000000000000000000000000000000000000000000000090000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3ff103000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 9, 1009, "4fa849a1e73000617192f5bce3f328d1848e9029d5a598a1f2b07157a7132120", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce50498300010000000000000000000000000000000000000000000000000000000000000a0000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3ff203000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 10, 1010, "022da6ce7b51de3964e59e4e9a6e66a1e87a6d7a32d4cc100e793deb39bb6611", 1}, - {"01000000e0f98ad94ad3210a543e7af8dd9f61cefc035dc6bf378ae3827315fa425281ebc0cbc41638b87e0f44ba232e0c48d8e6afadd74e1f762aae84e8cfa0ce50498300010000000000000000000000000000000000000000000000000000000000000b0000001976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88acf303000000000000ffffffff0000000001000000", "0100000000010c00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff0001000000000000000000000000000000000000000000000000000000000000020000006a473044022026c2e65b33fcd03b2a3b0f25030f0244bd23cc45ae4dec0f48ae62255b1998a00220463aa3982b718d593a6b9e0044513fd67a5009c2fdccc59992cffc2b167889f4012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000030000006a4730440220008bd8382911218dcb4c9f2e75bf5c5c3635f2f2df49b36994fde85b0be21a1a02205a539ef10fb4c778b522c1be852352ea06c67ab74200977c722b0bc68972575a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000040000006b483045022100d9436c32ff065127d71e1a20e319e4fe0a103ba0272743dbd8580be4659ab5d302203fd62571ee1fe790b182d078ecfd092a509eac112bea558d122974ef9cc012c7012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000050000006a47304402200e2c149b114ec546015c13b2b464bbcb0cdc5872e6775787527af6cbc4830b6c02207e9396c6979fb15a9a2b96ca08a633866eaf20dc0ff3c03e512c1d5a1654f148012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0001000000000000000000000000000000000000000000000000000000000000060000006b483045022100b20e70d897dc15420bccb5e0d3e208d27bdd676af109abbd3f88dbdb7721e6d6022005836e663173fbdfe069f54cde3c2decd3d0ea84378092a5d9d85ec8642e8a41012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff00010000000000000000000000000000000000000000000000000000000000000700000000ffffffff00010000000000000000000000000000000000000000000000000000000000000800000000ffffffff00010000000000000000000000000000000000000000000000000000000000000900000000ffffffff00010000000000000000000000000000000000000000000000000000000000000a00000000ffffffff00010000000000000000000000000000000000000000000000000000000000000b0000006a47304402206639c6e05e3b9d2675a7f3876286bdf7584fe2bbd15e0ce52dd4e02c0092cdc60220757d60b0a61fc95ada79d23746744c72bac1545a75ff6c2c7cdb6ae04e7e9592012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ffffffff0ce8030000000000000151e9030000000000000151ea030000000000000151eb030000000000000151ec030000000000000151ed030000000000000151ee030000000000000151ef030000000000000151f0030000000000000151f1030000000000000151f2030000000000000151f30300000000000001510248304502210082219a54f61bf126bfc3fa068c6e33831222d1d7138c6faa9d33ca87fd4202d6022063f9902519624254d7c2c8ea7ba2d66ae975e4e229ae38043973ec707d5d4a83012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022017fb58502475848c1b09f162cb1688d0920ff7f142bed0ef904da2ccc88b168f02201798afa61850c65e77889cbcd648a5703b487895517c88f85cdd18b021ee246a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000000247304402202830b7926e488da75782c81a54cd281720890d1af064629ebf2e31bf9f5435f30220089afaa8b455bbeb7d9b9c3fe1ed37d07685ade8455c76472cda424d93e4074a012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7102473044022026326fcdae9207b596c2b05921dbac11d81040c4d40378513670f19d9f4af893022034ecd7a282c0163b89aaa62c22ec202cef4736c58cd251649bad0d8139bcbf55012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71024730440220214978daeb2f38cd426ee6e2f44131a33d6b191af1c216247f1dd7d74c16d84a02205fdc05529b0bc0c430b4d5987264d9d075351c4f4484c16e91662e90a72aab24012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402204a6e9f199dc9672cf2ff8094aaa784363be1eb62b679f7ff2df361124f1dca3302205eeb11f70fab5355c9c8ad1a0700ea355d315e334822fa182227e9815308ee8f012103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710000000000", "76a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac", 11, 1011, "a3712ef6f6dd8a8fb324e81b4cd593055acb39ef96e7daa4d7c883aa07ac0cfa", 1}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000001660144c9c3dfac4207d5d8cb89df5722cb3d712385e3fffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "60144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 0, 1000, "181a02887447e1f618df3d607299a66d0416a4d5d333e7fa7baa89d941cc2769", 0}, - {"0100000071dbcb97997570a86397faebd5d73c333193297feb8626e48b518526ce9db527752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ad0001000000000000000000000000000000000000000000000000000000000000000000000151e803000000000000ffffffff0000000001000000", "0100000000010200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff01d00700000000000001510003483045022100e078de4e96a0e05dcdc0a414124dd8475782b5f3f0ed3f607919e9a5eeeb22bf02201de309b3a3109adb3de8074b3610d4cf454c49b61247a2779a0bcbf31c889333032103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc711976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac00000000", "51", 0, 1000, "a022bcfdbc9dab2a073e0acf192039e788b30de49024720381e977d31b0ee031", 1}, - {"0100000071dbcb97997570a86397faebd5d73c333193297feb8626e48b518526ce9db527752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ad0001000000000000000000000000000000000000000000000000000000000000010000002200204d6c2a32c87821d68fc016fca70797abdb80df6cd84651d40a9300c6bad79e62e803000000000000ffffffff0000000001000000", "0100000000010200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff01d00700000000000001510003483045022100e078de4e96a0e05dcdc0a414124dd8475782b5f3f0ed3f607919e9a5eeeb22bf02201de309b3a3109adb3de8074b3610d4cf454c49b61247a2779a0bcbf31c889333032103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc711976a9144c9c3dfac4207d5d8cb89df5722cb3d712385e3f88ac00000000", "00204d6c2a32c87821d68fc016fca70797abdb80df6cd84651d40a9300c6bad79e62", 1, 1000, "d078b5978f8d96476e32875a2c611d29e01ae917ba621c9c6eb2e2811531af90", 1}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000003600101ffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "600101", 0, 1000, "113b7af2ef783b71ac109cb62388a66333b5ae4b293e141f95b3f670767cce45", 0}, - {"01000000010001000000000000000000000000000000000000000000000000000000000000000000002b6029ff25429251b5a84f452230a3c75fd886b7fc5a7865ce4a7bb7a9d7c5be6da3dbff0000000000000000ffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "6029ff25429251b5a84f452230a3c75fd886b7fc5a7865ce4a7bb7a9d7c5be6da3dbff0000000000000000", 0, 1000, "ed759a8f58294c7db3f8bb9565d375045d520ff56bb50678084649dfc9311f9f", 0}, - {"0100000001000100000000000000000000000000000000000000000000000000000000000000000000050110020001ffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "0110020001", 0, 1000, "b94fe19666c3c32c06e5cf0bb276b4f5d021da3d8e51926c95b69a2db0c3f9c7", 0}, - {"010000000100010000000000000000000000000000000000000000000000000000000000000000000005604c020001ffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "604c020001", 0, 1000, "90d8dee6903b8072df9cb77a18985b302c928b582d28e81d5482c66145301062", 0}, - {"0100000071dbcb97997570a86397faebd5d73c333193297feb8626e48b518526ce9db527752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ad0001000000000000000000000000000000000000000000000000000000000000000000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fe803000000000000ffffffff0000000001000000", "0100000000010200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff02e8030000000000000151e90300000000000001510247304402206d59682663faab5e4cb733c562e22cdae59294895929ec38d7c016621ff90da0022063ef0af5f970afe8a45ea836e3509b8847ed39463253106ac17d19c437d3d56b832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710248304502210085001a820bfcbc9f9de0298af714493f8a37b3b354bfd21a7097c3e009f2018c022050a8b4dbc8155d4d04da2f5cdd575dcf8dd0108de8bec759bd897ea01ecb3af7832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 0, 1000, "1447e4e80fb49e2ce28bf8b2b64814ed40a72583eeb27b2fcd4afa8694c66d9b", 1}, - {"0100000071dbcb97997570a86397faebd5d73c333193297feb8626e48b518526ce9db527752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ad0001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fe903000000000000ffffffff0000000001000000", "0100000000010200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff02e8030000000000000151e90300000000000001510247304402206d59682663faab5e4cb733c562e22cdae59294895929ec38d7c016621ff90da0022063ef0af5f970afe8a45ea836e3509b8847ed39463253106ac17d19c437d3d56b832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710248304502210085001a820bfcbc9f9de0298af714493f8a37b3b354bfd21a7097c3e009f2018c022050a8b4dbc8155d4d04da2f5cdd575dcf8dd0108de8bec759bd897ea01ecb3af7832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 1001, "f1d29240a18ecf01c547a4279e08863268fe7bbf76a420777aee6de5391696ad", 1}, - {"010000000dbf707e65dfbbcd7cbc59af9ebb710ad71d5e889b36f1e3d25538c7757b6848752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ad0001000000000000000000000000000000000000000000000000000000000000010000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fe903000000000000ffffffff0000000001000000", "0100000000010200010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff02e9030000000000000151e80300000000000001510248304502210085001a820bfcbc9f9de0298af714493f8a37b3b354bfd21a7097c3e009f2018c022050a8b4dbc8155d4d04da2f5cdd575dcf8dd0108de8bec759bd897ea01ecb3af7832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402206d59682663faab5e4cb733c562e22cdae59294895929ec38d7c016621ff90da0022063ef0af5f970afe8a45ea836e3509b8847ed39463253106ac17d19c437d3d56b832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 0, 1001, "4b9654c559e6038288eb37c71bd5d5037c20eafeeab88c9b07c0620f88de2e8a", 1}, - {"010000000dbf707e65dfbbcd7cbc59af9ebb710ad71d5e889b36f1e3d25538c7757b6848752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ad0001000000000000000000000000000000000000000000000000000000000000000000001600144c9c3dfac4207d5d8cb89df5722cb3d712385e3fe803000000000000ffffffff0000000001000000", "0100000000010200010000000000000000000000000000000000000000000000000000000000000100000000ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff02e9030000000000000151e80300000000000001510248304502210085001a820bfcbc9f9de0298af714493f8a37b3b354bfd21a7097c3e009f2018c022050a8b4dbc8155d4d04da2f5cdd575dcf8dd0108de8bec759bd897ea01ecb3af7832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc710247304402206d59682663faab5e4cb733c562e22cdae59294895929ec38d7c016621ff90da0022063ef0af5f970afe8a45ea836e3509b8847ed39463253106ac17d19c437d3d56b832103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc7100000000", "00144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 1, 1000, "c8d2788f5a0addd3f81df9a4c1ecf67329e09e5e951309a78486e439669ccb13", 1}, - {"0100000002000100000000000000000000000000000000000000000000000000000000000000000000232103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71acffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff02e8030000000000000151e90300000000000001510000000001000000", "01000000020001000000000000000000000000000000000000000000000000000000000000000000004847304402202a0b4b1294d70540235ae033d78e64b4897ec859c7b6f1b2b1d8a02e1d46006702201445e756d2254b0f1dfda9ab8e1e1bc26df9668077403204f32d16a49a36eb6983ffffffff00010000000000000000000000000000000000000000000000000000000000000100000049483045022100acb96cfdbda6dc94b489fd06f2d720983b5f350e31ba906cdbd800773e80b21c02200d74ea5bdf114212b4bbe9ed82c36d2e369e302dff57cb60d01c428f0bd3daab83ffffffff02e8030000000000000151e903000000000000015100000000", "2103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ac", 0, 1000, "01a08aa0be7f65ed023ea5b75dccc07190f3ad690c9c381de2fe76be7e54a626", 0}, - {"010000000200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff000100000000000000000000000000000000000000000000000000000000000001000000232103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71acffffffff02e8030000000000000151e90300000000000001510000000001000000", "01000000020001000000000000000000000000000000000000000000000000000000000000000000004847304402202a0b4b1294d70540235ae033d78e64b4897ec859c7b6f1b2b1d8a02e1d46006702201445e756d2254b0f1dfda9ab8e1e1bc26df9668077403204f32d16a49a36eb6983ffffffff00010000000000000000000000000000000000000000000000000000000000000100000049483045022100acb96cfdbda6dc94b489fd06f2d720983b5f350e31ba906cdbd800773e80b21c02200d74ea5bdf114212b4bbe9ed82c36d2e369e302dff57cb60d01c428f0bd3daab83ffffffff02e8030000000000000151e903000000000000015100000000", "2103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ac", 1, 1001, "19a29d34cfa3a3f7b6e2b4aa3148c361ed3303802f576d6a9619b1447a3ec94d", 0}, - {"01000000ef546acf4a020de3898d1b8956176bb507e6211b5ed3619cd08b6ea7e2a09d41752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632adfe3dc9208094f3ffd12645477b3dc56f60ec4fa8e6f5d67c565d1c6b9216b36e000000002321036d5c20fa14fb2f635474c1dc4ef5909d4568e5569b79fc94d3448486e14685f8ac902f500900000000ffffffff0000000001000000", "01000000000102fe3dc9208094f3ffd12645477b3dc56f60ec4fa8e6f5d67c565d1c6b9216b36e000000004847304402200af4e47c9b9629dbecc21f73af989bdaa911f7e6f6c2e9394588a3aa68f81e9902204f3fcf6ade7e5abb1295b6774c8e0abd94ae62217367096bc02ee5e435b67da201ffffffff0815cf020f013ed6cf91d29f4202e8a58726b1ac6c79da47c23d1bee0a6925f80000000000ffffffff0100f2052a010000001976a914a30741f8145e5acadf23f751864167f32e0963f788ac000347304402200de66acf4527789bfda55fc5459e214fa6083f936b430a762c629656216805ac0220396f550692cd347171cbc1ef1f51e15282e837bb2b30860dc77c8f78bc8501e503473044022027dc95ad6b740fe5129e7e62a75dd00f291a2aeb1200b84b09d9e3789406b6c002201a9ecd315dd6a0e632ab20bbb98948bc0c6fb204f2c286963bb48517a7058e27034721026dccc749adc2a9d0d89497ac511f760f45c47dc5ed9cf352a58ac706453880aeadab210255a9626aebf5e29c0e6538428ba0d1dcf6ca98ffdf086aa8ced5e0d0215ea465ac00000000", "21036d5c20fa14fb2f635474c1dc4ef5909d4568e5569b79fc94d3448486e14685f8ac", 0, 156250000, "ff478a5f7e83f21fa83c53683d3434e9e75b48c432b0f351c4bd7cb19b33717d", 1}, - {"01000000ef546acf4a020de3898d1b8956176bb507e6211b5ed3619cd08b6ea7e2a09d41752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ad0815cf020f013ed6cf91d29f4202e8a58726b1ac6c79da47c23d1bee0a6925f8000000002200205d1b56b63d714eebe542309525f484b7e9d6f686b3781b6f61ef925d66d6f6a00011102401000000ffffffff0000000001000000", "01000000000102fe3dc9208094f3ffd12645477b3dc56f60ec4fa8e6f5d67c565d1c6b9216b36e000000004847304402200af4e47c9b9629dbecc21f73af989bdaa911f7e6f6c2e9394588a3aa68f81e9902204f3fcf6ade7e5abb1295b6774c8e0abd94ae62217367096bc02ee5e435b67da201ffffffff0815cf020f013ed6cf91d29f4202e8a58726b1ac6c79da47c23d1bee0a6925f80000000000ffffffff0100f2052a010000001976a914a30741f8145e5acadf23f751864167f32e0963f788ac000347304402200de66acf4527789bfda55fc5459e214fa6083f936b430a762c629656216805ac0220396f550692cd347171cbc1ef1f51e15282e837bb2b30860dc77c8f78bc8501e503473044022027dc95ad6b740fe5129e7e62a75dd00f291a2aeb1200b84b09d9e3789406b6c002201a9ecd315dd6a0e632ab20bbb98948bc0c6fb204f2c286963bb48517a7058e27034721026dccc749adc2a9d0d89497ac511f760f45c47dc5ed9cf352a58ac706453880aeadab210255a9626aebf5e29c0e6538428ba0d1dcf6ca98ffdf086aa8ced5e0d0215ea465ac00000000", "00205d1b56b63d714eebe542309525f484b7e9d6f686b3781b6f61ef925d66d6f6a0", 1, 4900000000, "2e91ec69ff86a50adfe5a9d3f150b72f919005e32c193be04a02e03dfa82f7f2", 1}, - {"01000000e08b54f3f059d43954e867282174e84f4d58f4a47ddab0576645277c2c857189752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ade9b542c5176808107ff1df906f46bb1f2583b16112b95ee5380665ba7fcfc00100000000220020ba468eea561b26301e4cf69fa34bde4ad60c81e70f059f045ca9a79931004a4dffffff0000000000ffffffff0000000001000000", "01000000000102e9b542c5176808107ff1df906f46bb1f2583b16112b95ee5380665ba7fcfc0010000000000ffffffff80e68831516392fcd100d186b3c2c7b95c80b53c77e77c35ba03a66b429a2a1b0000000000ffffffff0280969800000000001976a914de4b231626ef508c9a74a8517e6783c0546d6b2888ac80969800000000001976a9146648a8cd4531e1ec47f35916de8e259237294d1e88ac02483045022100f6a10b8604e6dc910194b79ccfc93e1bc0ec7c03453caaa8987f7d6c3413566002206216229ede9b4d6ec2d325be245c5b508ff0339bf1794078e20bfe0babc7ffe683270063ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac024730440220032521802a76ad7bf74d0e2c218b72cf0cbc867066e2e53db905ba37f130397e02207709e2188ed7f08f4c952d9d13986da504502b8c3be59617e043552f506c46ff83275163ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac00000000", "0020ba468eea561b26301e4cf69fa34bde4ad60c81e70f059f045ca9a79931004a4d", 0, 16777215, "542910875137129694fca0e14909e2c3c96fa10d05ff9a33a78daf7b7cac75eb", 1}, - {"01000000e08b54f3f059d43954e867282174e84f4d58f4a47ddab0576645277c2c857189752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ad80e68831516392fcd100d186b3c2c7b95c80b53c77e77c35ba03a66b429a2a1b00000000220020d9bbfbe56af7c4b7f960a70d7ea107156913d9e5a26b0a71429df5e097ca6537ffffff0000000000ffffffff0000000001000000", "01000000000102e9b542c5176808107ff1df906f46bb1f2583b16112b95ee5380665ba7fcfc0010000000000ffffffff80e68831516392fcd100d186b3c2c7b95c80b53c77e77c35ba03a66b429a2a1b0000000000ffffffff0280969800000000001976a914de4b231626ef508c9a74a8517e6783c0546d6b2888ac80969800000000001976a9146648a8cd4531e1ec47f35916de8e259237294d1e88ac02483045022100f6a10b8604e6dc910194b79ccfc93e1bc0ec7c03453caaa8987f7d6c3413566002206216229ede9b4d6ec2d325be245c5b508ff0339bf1794078e20bfe0babc7ffe683270063ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac024730440220032521802a76ad7bf74d0e2c218b72cf0cbc867066e2e53db905ba37f130397e02207709e2188ed7f08f4c952d9d13986da504502b8c3be59617e043552f506c46ff83275163ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac00000000", "0020d9bbfbe56af7c4b7f960a70d7ea107156913d9e5a26b0a71429df5e097ca6537", 1, 16777215, "f14f4a27aae2e318926fa4fd8326f89932623c6bb4a409c0d46bb3ca2da03409", 1}, - {"01000000fd779c3e82f678209763aae112a9cfd96dd993287745210b556d21b7ce0df897752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ad80e68831516392fcd100d186b3c2c7b95c80b53c77e77c35ba03a66b429a2a1b00000000220020d9bbfbe56af7c4b7f960a70d7ea107156913d9e5a26b0a71429df5e097ca6537ffffff0000000000ffffffff0000000001000000", "0100000000010280e68831516392fcd100d186b3c2c7b95c80b53c77e77c35ba03a66b429a2a1b0000000000ffffffffe9b542c5176808107ff1df906f46bb1f2583b16112b95ee5380665ba7fcfc0010000000000ffffffff0280969800000000001976a9146648a8cd4531e1ec47f35916de8e259237294d1e88ac80969800000000001976a914de4b231626ef508c9a74a8517e6783c0546d6b2888ac024730440220032521802a76ad7bf74d0e2c218b72cf0cbc867066e2e53db905ba37f130397e02207709e2188ed7f08f4c952d9d13986da504502b8c3be59617e043552f506c46ff83275163ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac02483045022100f6a10b8604e6dc910194b79ccfc93e1bc0ec7c03453caaa8987f7d6c3413566002206216229ede9b4d6ec2d325be245c5b508ff0339bf1794078e20bfe0babc7ffe683270063ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac00000000", "0020d9bbfbe56af7c4b7f960a70d7ea107156913d9e5a26b0a71429df5e097ca6537", 0, 16777215, "8db8ee3b94be67a071807601d38691a7cc7239bc1bf5d976870b5e48492cc0dc", 1}, - {"01000000fd779c3e82f678209763aae112a9cfd96dd993287745210b556d21b7ce0df897752adad0a7b9ceca853768aebb6965eca126a62965f698a0c1bc43d83db632ade9b542c5176808107ff1df906f46bb1f2583b16112b95ee5380665ba7fcfc00100000000220020ba468eea561b26301e4cf69fa34bde4ad60c81e70f059f045ca9a79931004a4dffffff0000000000ffffffff0000000001000000", "0100000000010280e68831516392fcd100d186b3c2c7b95c80b53c77e77c35ba03a66b429a2a1b0000000000ffffffffe9b542c5176808107ff1df906f46bb1f2583b16112b95ee5380665ba7fcfc0010000000000ffffffff0280969800000000001976a9146648a8cd4531e1ec47f35916de8e259237294d1e88ac80969800000000001976a914de4b231626ef508c9a74a8517e6783c0546d6b2888ac024730440220032521802a76ad7bf74d0e2c218b72cf0cbc867066e2e53db905ba37f130397e02207709e2188ed7f08f4c952d9d13986da504502b8c3be59617e043552f506c46ff83275163ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac02483045022100f6a10b8604e6dc910194b79ccfc93e1bc0ec7c03453caaa8987f7d6c3413566002206216229ede9b4d6ec2d325be245c5b508ff0339bf1794078e20bfe0babc7ffe683270063ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac00000000", "0020ba468eea561b26301e4cf69fa34bde4ad60c81e70f059f045ca9a79931004a4d", 1, 16777215, "0c2a2777e9fdd7b9ccd3b5abb681b8e53e9e38799dd700d8a64b37a65c213dbb", 1}, - {"0100000074afdc312af5183c4198a40ca3c1a275b485496dd3929bca388c4b5e31f7aaa03bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e7066504436641869ca081e70f394c6948e8af409e18b619df2ed74aa106c1ca29787b96e0100000017a9149993a429037b5d912407a71c252019287b8d27a587b168de3a00000000ffffffff0000000001000000", "0100000000010136641869ca081e70f394c6948e8af409e18b619df2ed74aa106c1ca29787b96e0100000023220020a16b5755f7f6f96dbd65f5f0d6ab9418b89af4b1f14a1bb8a09062c35f0dcb54ffffffff0200e9a435000000001976a914389ffce9cd9ae88dcc0631e88a821ffdbe9bfe2688acc0832f05000000001976a9147480a33f950689af511e6e84c138dbbd3c3ee41588ac080047304402206ac44d672dac41f9b00e28f4df20c52eeb087207e8d758d76d92c6fab3b73e2b0220367750dbbe19290069cba53d096f44530e4f98acaa594810388cf7409a1870ce01473044022068c7946a43232757cbdf9176f009a928e1cd9a1a8c212f15c1e11ac9f2925d9002205b75f937ff2f9f3c1246e547e54f62e027f64eefa2695578cc6432cdabce271502473044022059ebf56d98010a932cf8ecfec54c48e6139ed6adb0728c09cbe1e4fa0915302e022007cd986c8fa870ff5d2b3a89139c9fe7e499259875357e20fcbb15571c76795403483045022100fbefd94bd0a488d50b79102b5dad4ab6ced30c4069f1eaa69a4b5a763414067e02203156c6a5c9cf88f91265f5a942e96213afae16d83321c8b31bb342142a14d16381483045022100a5263ea0553ba89221984bd7f0b13613db16e7a70c549a86de0cc0444141a407022005c360ef0ae5a5d4f9f2f87a56c1546cc8268cab08c73501d6b3be2e1e1a8a08824730440220525406a1482936d5a21888260dc165497a90a15669636d8edca6b9fe490d309c022032af0c646a34a44d1f4576bf6a4a74b67940f8faa84c7df9abe12a01a11e2b4783cf56210307b8ae49ac90a048e9b53357a2354b3334e9c8bee813ecb98e99a7e07e8c3ba32103b28f0c28bfab54554ae8c658ac5c3e0ce6e79ad336331f78c428dd43eea8449b21034b8113d703413d57761b8b9781957b8c0ac1dfe69f492580ca4195f50376ba4a21033400f6afecb833092a9a21cfdf1ed1376e58c5d1f47de74683123987e967a8f42103a6d48b1131e94ba04d9737d61acdaa1322008af9602b3b14862c07a1789aac162102d8b661b0b3302ee2f162b09e07a55ad5dfbe673a9f01d9f0c19617681024306b56ae00000000", "a9149993a429037b5d912407a71c252019287b8d27a587", 0, 987654321, "656651a8affc36f0949454b98ad907efe11a1ef37b076fe8fa6d38d32bd59921", 1}, - {"010000000169c12106097dc2e0526493ef67f21269fe888ef05c7a3a5dacab38e1ac8387f1581b000017a9140c746489e2d83cdbb5b90b432773342ba809c13487ffffffff010100000000000000000000000001000000", "010000000169c12106097dc2e0526493ef67f21269fe888ef05c7a3a5dacab38e1ac8387f1581b0000b64830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0121037a3fb04bcdb09eba90f69961ba1692a3528e45e67c85b200df820212d7594d334aad4830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e01ffffffff0101000000000000000000000000", "a9140c746489e2d83cdbb5b90b432773342ba809c13487", 0, 200000, "7807ff331d93240d9f48629f6b5ab45a7dd9f4e5bd5d038be14893f590893bd2", 0}, - {"01000000b67c76d200c6ce72962d919dc107884b9d5d0e26f2aea7474b46a1904c53359f3bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e7066504469c12106097dc2e0526493ef67f21269fe888ef05c7a3a5dacab38e1ac8387f14c1d00002200209e1be07558ea5cc8e02ed1d80c0911048afad949affa36d5c3951e3159dbea19400d030000000000ffffffff0000000001000000", "0100000000010169c12106097dc2e0526493ef67f21269fe888ef05c7a3a5dacab38e1ac8387f14c1d000000ffffffff01010000000000000000034830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e012102a9781d66b61fb5a7ef00ac5ad5bc6ffc78be7b44a566e3c87870e1079368df4c4aad4830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0100000000", "00209e1be07558ea5cc8e02ed1d80c0911048afad949affa36d5c3951e3159dbea19", 0, 200000, "eb9db740ca641347aca552f086bb0c3d3a61541a35bbf1bddd1e46ef8de3bdcf", 1}, - {"01000000019275cb8d4a485ce95741c013f7c0d28722160008021bb469a11982d47a662896581b000017a9145748407f5ca5cdca53ba30b79040260770c9ee1b87ffffffff010100000000000000000000000001000000", "01000000019275cb8d4a485ce95741c013f7c0d28722160008021bb469a11982d47a662896581b0000fd6f01004830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0148304502205286f726690b2e9b0207f0345711e63fa7012045b9eb0f19c2458ce1db90cf43022100e89f17f86abc5b149eba4115d4f128bcf45d77fb3ecdd34f594091340c03959601522102cd74a2809ffeeed0092bc124fd79836706e41f048db3f6ae9df8708cefb83a1c2102e615999372426e46fd107b76eaf007156a507584aa2cc21de9eee3bdbd26d36c4c9552af4830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0148304502205286f726690b2e9b0207f0345711e63fa7012045b9eb0f19c2458ce1db90cf43022100e89f17f86abc5b149eba4115d4f128bcf45d77fb3ecdd34f594091340c0395960175ffffffff0101000000000000000000000000", "a9145748407f5ca5cdca53ba30b79040260770c9ee1b87", 0, 200000, "373cffc5f4b7707e1c8b463b18c9c95aae192677ad3618b9f958aa269e749b2b", 0}, - {"0100000039283953eb1e26994dde57b7f9362a79a8c523e2f8deba943c27e826a005f1e63bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e706650449275cb8d4a485ce95741c013f7c0d28722160008021bb469a11982d47a6628964c1d00002200209b66c15b4e0b4eb49fa877982cafded24859fe5b0e2dbfbe4f0df1de7743fd52400d030000000000ffffffff0000000001000000", "010000000001019275cb8d4a485ce95741c013f7c0d28722160008021bb469a11982d47a6628964c1d000000ffffffff0101000000000000000007004830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0148304502205286f726690b2e9b0207f0345711e63fa7012045b9eb0f19c2458ce1db90cf43022100e89f17f86abc5b149eba4115d4f128bcf45d77fb3ecdd34f594091340c0395960101022102966f109c54e85d3aee8321301136cedeb9fc710fdef58a9de8a73942f8e567c021034ffc99dd9a79dd3cb31e2ab3e0b09e0e67db41ac068c625cd1f491576016c84e9552af4830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0148304502205286f726690b2e9b0207f0345711e63fa7012045b9eb0f19c2458ce1db90cf43022100e89f17f86abc5b149eba4115d4f128bcf45d77fb3ecdd34f594091340c039596017500000000", "00209b66c15b4e0b4eb49fa877982cafded24859fe5b0e2dbfbe4f0df1de7743fd52", 0, 200000, "77753c03a5aa29406c9beb35d845caf94e79c997d5e7f2557a89de0a7223e39d", 1}, + {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000490047304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25"}, + {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba260000000004a0048304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2bab01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25"}, + {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba260000000004a01ff47304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25"}, + {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000495147304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25"}, + {"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba2600000000087514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52aeffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac0000000001000000", "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000494f47304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "514104cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4410461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af52ae", 0, 0, "c21469f396d266507fd339292bd8ff0a6d4b29538b914265387a4d17e4839d25"}, + {"01000000010276b76b07f4935c70acf54fbf1f438a4c397a9fb7e633873c4dd3bc062b6b40000000001976a914dc44b1164188067c3a32d4780f5996fa14a4f2d988ac000000000100093d00000000001976a9149a7b0f3b80c6baaeedce0a0842553800f832ba1f88ac0000000001000000", "01000000010276b76b07f4935c70acf54fbf1f438a4c397a9fb7e633873c4dd3bc062b6b40000000008c493046022100d23459d03ed7e9511a47d13292d3430a04627de6235b6e51a40f9cd386f2abe3022100e7d25b080f0bb8d8d5f878bba7d54ad2fda650ea8d158a33ee3cbd11768191fd004104b0e2c879e4daf7b9ab68350228c159766676a14f5815084ba166432aab46198d4cca98fa3e9981d0a90b2effc514b76279476550ba3663fdcaff94c38420e9d5000000000100093d00000000001976a9149a7b0f3b80c6baaeedce0a0842553800f832ba1f88ac00000000", "76a914dc44b1164188067c3a32d4780f5996fa14a4f2d988ac", 0, 0, "fa97d64d2b3b3cb86ee6776b211c658cede54d6488b4fa0c8591b491b4fd5638"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000001a76a9145b6462475454710f3c22f5fdf0b40704c92f25c388ad51ffffffff01000000000000000001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000", "76a9145b6462475454710f3c22f5fdf0b40704c92f25c388ad51", 0, 0, "d173b431d7786bf0b8c92f3aae4d27d3e6b16f64b05a84644570a60ad0a19b58"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000006276a9145b6462475454710f3c22f5fdf0b40704c92f25c388ad51473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01ffffffff01000000000000000001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000", "76a9145b6462475454710f3c22f5fdf0b40704c92f25c388ad51473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01", 0, 0, "0657f30ac19bd609d59212b82589373d2954f421acbc8d00618992b3af0ffd74"}, + {"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000001976a914bef80ecf3a44500fda1bc92176e442891662aed288acffffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b70100000000ffffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac0000000001000000", "01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000", "76a914bef80ecf3a44500fda1bc92176e442891662aed288ac", 0, 0, "dcd0f937ba3b2b8d3542d2eaa7aeecaa039f4c5ec32d450497fccd5484b76008"}, + {"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b40000000000ffffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000001976a914bef80ecf3a44500fda1bc92176e442891662aed288acffffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac0000000001000000", "01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000", "76a914bef80ecf3a44500fda1bc92176e442891662aed288ac", 1, 0, "8182430dba1b422cd25fdeb6bf6c0375ebe52093fed2cd1cab5d53be43b45bfe"}, + {"01000000020002000000000000000000000000000000000000000000000000000000000000000000000151ffffffff00010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01000000000000000001510000000001000000", "01000000020002000000000000000000000000000000000000000000000000000000000000000000000151ffffffff0001000000000000000000000000000000000000000000000000000000000000000000006b483045022100c9cdd08798a28af9d1baf44a6c77bcc7e279f47dc487c8c899911bc48feaffcc0220503c5c50ae3998a733263c5c0f7061b483e2b56c4c41b456e7d2f5a78a74c077032102d5c25adb51b61339d2b05315791e21bbe80ea470a49db0135720983c905aace0ffffffff010000000000000000015100000000", "51", 0, 0, "b384078aea34dcc7c902801a5f143f8c1879cd47c6b334c89bcc125afb83d2bc"}, + {"010000000200020000000000000000000000000000000000000000000000000000000000000000000000ffffffff0001000000000000000000000000000000000000000000000000000000000000000000001976a914e52b482f2faa8ecbf0db344f93c84ac908557f3388acffffffff01000000000000000001510000000001000000", "01000000020002000000000000000000000000000000000000000000000000000000000000000000000151ffffffff0001000000000000000000000000000000000000000000000000000000000000000000006b483045022100c9cdd08798a28af9d1baf44a6c77bcc7e279f47dc487c8c899911bc48feaffcc0220503c5c50ae3998a733263c5c0f7061b483e2b56c4c41b456e7d2f5a78a74c077032102d5c25adb51b61339d2b05315791e21bbe80ea470a49db0135720983c905aace0ffffffff010000000000000000015100000000", "76a914e52b482f2faa8ecbf0db344f93c84ac908557f3388ac", 1, 0, "f4232faa0bcb82b2b0c148caccdd46a83bd42a94c692a53c4b46dcbe618fd7dd"}, + {"010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a43010000001976a914383fb81cb0a3fc724b5e08cf8bbd404336d711f688acffffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d0100000000ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c70100000000ffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac0000000001000000", "010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a43010000006b483045022100f40815ae3c81a0dd851cc8d376d6fd226c88416671346a9033468cca2cdcc6c202204f764623903e6c4bed1b734b75d82c40f1725e4471a55ad4f51218f86130ac038321033d710ab45bb54ac99618ad23b3c1da661631aa25f23bfe9d22b41876f1d46e4effffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d010000006a4730440220598d263c107004008e9e26baa1e770be30fd31ee55ded1898f7c00da05a75977022045536bead322ca246779698b9c3df3003377090f41afeca7fb2ce9e328ec4af2832102b738b531def73020bd637f32935924cc88549c8206976226d968edd3a42fc2d7ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c7010000006b483045022100c5b90a777a9fdc90c208dbef7290d1fc1be651f47151ee4ccff646872a454cf90220640cfbc4550446968fbbe9d12528f3adf7d87b31541569c59e790db8a220482583210391332546e22bbe8fe3af54addfad6f8b83d05fa4f5e047593d4c07ae938795beffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac00000000", "76a914383fb81cb0a3fc724b5e08cf8bbd404336d711f688ac", 0, 0, "e20e77e4773a5f39e01cd69d276dc20e231d88ec9fc337456bbbe59f83cdf230"}, + {"010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a430100000000ffffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d010000001976a914275ec2a233e5b23d43fa19e7bf9beb0cb399611788acffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c70100000000ffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac0000000001000000", "010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a43010000006b483045022100f40815ae3c81a0dd851cc8d376d6fd226c88416671346a9033468cca2cdcc6c202204f764623903e6c4bed1b734b75d82c40f1725e4471a55ad4f51218f86130ac038321033d710ab45bb54ac99618ad23b3c1da661631aa25f23bfe9d22b41876f1d46e4effffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d010000006a4730440220598d263c107004008e9e26baa1e770be30fd31ee55ded1898f7c00da05a75977022045536bead322ca246779698b9c3df3003377090f41afeca7fb2ce9e328ec4af2832102b738b531def73020bd637f32935924cc88549c8206976226d968edd3a42fc2d7ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c7010000006b483045022100c5b90a777a9fdc90c208dbef7290d1fc1be651f47151ee4ccff646872a454cf90220640cfbc4550446968fbbe9d12528f3adf7d87b31541569c59e790db8a220482583210391332546e22bbe8fe3af54addfad6f8b83d05fa4f5e047593d4c07ae938795beffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac00000000", "76a914275ec2a233e5b23d43fa19e7bf9beb0cb399611788ac", 1, 0, "ef6469919a352b43d24bf82427c28a431bd8fbb3cced5a911434a9e7365874d5"}, + {"010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a430100000000ffffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d0100000000ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c7010000001976a91434fea2c5a75414fd945273ae2d029ce1f28dafcf88acffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac0000000001000000", "010000000390d31c6107013d754529d8818eff285fe40a3e7635f6930fec5d12eb02107a43010000006b483045022100f40815ae3c81a0dd851cc8d376d6fd226c88416671346a9033468cca2cdcc6c202204f764623903e6c4bed1b734b75d82c40f1725e4471a55ad4f51218f86130ac038321033d710ab45bb54ac99618ad23b3c1da661631aa25f23bfe9d22b41876f1d46e4effffffff3ff04a68e22bdd52e7c8cb848156d2d158bd5515b3c50adabc87d0ca2cd3482d010000006a4730440220598d263c107004008e9e26baa1e770be30fd31ee55ded1898f7c00da05a75977022045536bead322ca246779698b9c3df3003377090f41afeca7fb2ce9e328ec4af2832102b738b531def73020bd637f32935924cc88549c8206976226d968edd3a42fc2d7ffffffff46a8dc8970eb96622f27a516adcf40e0fcec5731e7556e174f2a271aef6861c7010000006b483045022100c5b90a777a9fdc90c208dbef7290d1fc1be651f47151ee4ccff646872a454cf90220640cfbc4550446968fbbe9d12528f3adf7d87b31541569c59e790db8a220482583210391332546e22bbe8fe3af54addfad6f8b83d05fa4f5e047593d4c07ae938795beffffffff028036be26000000001976a914ddfb29efad43a667465ac59ff14dc6442a1adfca88ac3d5cba01000000001976a914b64dde7a505a13ca986c40e86e984a8dc81368b688ac00000000", "76a91434fea2c5a75414fd945273ae2d029ce1f28dafcf88ac", 2, 0, "3147850f099c747971e26460122086b516bc3f2de474519a51323984e909e31b"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a9147a052c840ba73af26755de42cf01cc9e0a49fef087ffffffff01000000000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000", "a9147a052c840ba73af26755de42cf01cc9e0a49fef087", 0, 0, "ffaa609cad18ced17c1e8cecc479b7a955879e601fa9a1e3e19d88e7c9855cc4"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a9148febbed40483661de6958d957412f82deed8e2f787ffffffff01000000000000000001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100c66c9cdf4c43609586d15424c54707156e316d88b0a1534c9e6b0d4f311406310221009c0fe51dbc9c4ab7cc25d3fdbeccf6679fe6827f08edf2b4a9f16ee3eb0e438a0123210338e8034509af564c62644c07691942e0c056752008a173c89f60ab2a88ac2ebfacffffffff010000000000000000015100000000", "a9148febbed40483661de6958d957412f82deed8e2f787", 0, 0, "3c269ecef9a86532ea00a1d62a9075d18bdaa2b7c12c6abe7e859f220b897c40"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a91432afac281462b822adbec5094b8d4d337dd5bd6a87ffffffff010040075af075070001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100e1eadba00d9296c743cb6ecc703fd9ddc9b3cd12906176a226ae4c18d6b00796022100a71aef7d2874deff681ba6080f1b278bac7bb99c61b08a85f4311970ffe7f63f012321030c0588dc44d92bdcbf8e72093466766fdc265ead8db64517b0c542275b70fffbacffffffff010040075af0750700015100000000", "a91432afac281462b822adbec5094b8d4d337dd5bd6a87", 0, 0, "d4e366729d81ed5bffa99a4df94dd5e095044f80c89955231e16d2dc1e58a284"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a914b558cbf4930954aa6a344363a15668d7477ae71687ffffffff020040075af07507000151000000000000000001510000000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022027deccc14aa6668e78a8c9da3484fbcd4f9dcc9bb7d1b85146314b21b9ae4d86022100d0b43dece8cfb07348de0ca8bc5b86276fa88f7f2138381128b7c36ab2e42264012321029bb13463ddd5d2cc05da6e84e37536cb9525703cfd8f43afdb414988987a92f6acffffffff020040075af075070001510000000000000000015100000000", "a914b558cbf4930954aa6a344363a15668d7477ae71687", 0, 0, "5d32a6c90084090c2ed7d0ba08eaa912d0019d54efc7f00b801158341324bf75"}, + {"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0151ffffffff01000000000000000001510000000001000000", "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff025151ffffffff010000000000000000015100000000", "51", 0, 0, "020b0855f1da9bd6e8530aa3d7b38bf14d231604716397d5ebc86789de637577"}, + {"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0151ffffffff01000000000000000001510000000001000000", "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff6451515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151ffffffff010000000000000000015100000000", "51", 0, 0, "020b0855f1da9bd6e8530aa3d7b38bf14d231604716397d5ebc86789de637577"}, + {"01000000020001000000000000000000000000000000000000000000000000000000000000000000002321035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcacffffffff00020000000000000000000000000000000000000000000000000000000000000000000000ffffffff01010000000000000001510000000001000000", "010000000200010000000000000000000000000000000000000000000000000000000000000000000049483045022100d180fd2eb9140aeb4210c9204d3f358766eb53842b2a9473db687fa24b12a3cc022079781799cd4f038b85135bbe49ec2b57f306b2bb17101b17f71f000fcab2b6fb01ffffffff0002000000000000000000000000000000000000000000000000000000000000000000004847304402205f7530653eea9b38699e476320ab135b74771e1c48b81a5d041e2ca84b9be7a802200ac8d1f40fb026674fe5a5edd3dea715c27baa9baca51ed45ea750ac9dc0a55e81ffffffff010100000000000000015100000000", "21035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac", 0, 0, "cc2562dd136abb3494d151d8483a7984aa6d61f4fa1e7086f8e62e5d9c639bf6"}, + {"010000000200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0002000000000000000000000000000000000000000000000000000000000000000000002321035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcacffffffff01010000000000000001510000000001000000", "010000000200010000000000000000000000000000000000000000000000000000000000000000000049483045022100d180fd2eb9140aeb4210c9204d3f358766eb53842b2a9473db687fa24b12a3cc022079781799cd4f038b85135bbe49ec2b57f306b2bb17101b17f71f000fcab2b6fb01ffffffff0002000000000000000000000000000000000000000000000000000000000000000000004847304402205f7530653eea9b38699e476320ab135b74771e1c48b81a5d041e2ca84b9be7a802200ac8d1f40fb026674fe5a5edd3dea715c27baa9baca51ed45ea750ac9dc0a55e81ffffffff010100000000000000015100000000", "21035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac", 1, 0, "3622359ca6c0cf7d95226467c403e9eecdb896603b137fa093f78e4ecb5b7b00"}, + {"01000000020001000000000000000000000000000000000000000000000000000000000000000000002321035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac0100000000020000000000000000000000000000000000000000000000000000000000000000000000ffffffff01010000000000000001510000000001000000", "01000000020001000000000000000000000000000000000000000000000000000000000000000000004948304502203a0f5f0e1f2bdbcd04db3061d18f3af70e07f4f467cbc1b8116f267025f5360b022100c792b6e215afc5afc721a351ec413e714305cb749aae3d7fee76621313418df101010000000002000000000000000000000000000000000000000000000000000000000000000000004847304402205f7530653eea9b38699e476320ab135b74771e1c48b81a5d041e2ca84b9be7a802200ac8d1f40fb026674fe5a5edd3dea715c27baa9baca51ed45ea750ac9dc0a55e81ffffffff010100000000000000015100000000", "21035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac", 0, 0, "8634e5a9ec43f3b8ae46ad3cef55c61d14c709abf83d03d278dc3fb02a39ad64"}, + {"010000000200010000000000000000000000000000000000000000000000000000000000000000000000010000000002000000000000000000000000000000000000000000000000000000000000000000002321035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcacffffffff01010000000000000001510000000001000000", "01000000020001000000000000000000000000000000000000000000000000000000000000000000004948304502203a0f5f0e1f2bdbcd04db3061d18f3af70e07f4f467cbc1b8116f267025f5360b022100c792b6e215afc5afc721a351ec413e714305cb749aae3d7fee76621313418df101010000000002000000000000000000000000000000000000000000000000000000000000000000004847304402205f7530653eea9b38699e476320ab135b74771e1c48b81a5d041e2ca84b9be7a802200ac8d1f40fb026674fe5a5edd3dea715c27baa9baca51ed45ea750ac9dc0a55e81ffffffff010100000000000000015100000000", "21035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efcac", 1, 0, "355be40d833aa6bb0bf73e44bb1e66e8468d501b5010b344cec2b0fa0342c66e"}, + {"010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf63000000001976a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88acffffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e8040100000000ffffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee0100000000ffffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac0000000001000000", "010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf63000000006a4730440220360d20baff382059040ba9be98947fd678fb08aab2bb0c172efa996fd8ece9b702201b4fb0de67f015c90e7ac8a193aeab486a1f587e0f54d0fb9552ef7f5ce6caec032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e804010000006b483045022100c714310be1e3a9ff1c5f7cacc65c2d8e781fc3a88ceb063c6153bf950650802102200b2d0979c76e12bb480da635f192cc8dc6f905380dd4ac1ff35a4f68f462fffd032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee010000006c493046022100b663499ef73273a3788dea342717c2640ac43c5a1cf862c9e09b206fcb3f6bb8022100b09972e75972d9148f2bdd462e5cb69b57c1214b88fc55ca638676c07cfc10d8032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac00000000", "76a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88ac", 0, 0, "0387d5e3b6ccad57c9a05b8945d2e76c3a57a01d79cbded56983e36671a51efb"}, + {"010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf630000000000ffffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e804010000001976a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88acffffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee0100000000ffffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac0000000001000000", "010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf63000000006a4730440220360d20baff382059040ba9be98947fd678fb08aab2bb0c172efa996fd8ece9b702201b4fb0de67f015c90e7ac8a193aeab486a1f587e0f54d0fb9552ef7f5ce6caec032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e804010000006b483045022100c714310be1e3a9ff1c5f7cacc65c2d8e781fc3a88ceb063c6153bf950650802102200b2d0979c76e12bb480da635f192cc8dc6f905380dd4ac1ff35a4f68f462fffd032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee010000006c493046022100b663499ef73273a3788dea342717c2640ac43c5a1cf862c9e09b206fcb3f6bb8022100b09972e75972d9148f2bdd462e5cb69b57c1214b88fc55ca638676c07cfc10d8032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac00000000", "76a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88ac", 1, 0, "3c4ec475118e74f02fe89562b4b6a2e6fe8d51b6c3534b87dcbb4f52730c38b3"}, + {"010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf630000000000ffffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e8040100000000ffffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee010000001976a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88acffffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac0000000001000000", "010000000370ac0a1ae588aaf284c308d67ca92c69a39e2db81337e563bf40c59da0a5cf63000000006a4730440220360d20baff382059040ba9be98947fd678fb08aab2bb0c172efa996fd8ece9b702201b4fb0de67f015c90e7ac8a193aeab486a1f587e0f54d0fb9552ef7f5ce6caec032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff7d815b6447e35fbea097e00e028fb7dfbad4f3f0987b4734676c84f3fcd0e804010000006b483045022100c714310be1e3a9ff1c5f7cacc65c2d8e781fc3a88ceb063c6153bf950650802102200b2d0979c76e12bb480da635f192cc8dc6f905380dd4ac1ff35a4f68f462fffd032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff3f1f097333e4d46d51f5e77b53264db8f7f5d2e18217e1099957d0f5af7713ee010000006c493046022100b663499ef73273a3788dea342717c2640ac43c5a1cf862c9e09b206fcb3f6bb8022100b09972e75972d9148f2bdd462e5cb69b57c1214b88fc55ca638676c07cfc10d8032103579ca2e6d107522f012cd00b52b9a65fb46f0c57b9b8b6e377c48f526a44741affffffff0380841e00000000001976a914bfb282c70c4191f45b5a6665cad1682f2c9cfdfb88ac80841e00000000001976a9149857cc07bed33a5cf12b9c5e0500b675d500c81188ace0fd1c00000000001976a91443c52850606c872403c0601e69fa34b26f62db4a88ac00000000", "76a914dcf72c4fd02f5a987cf9b02f2fabfcac3341a87d88ac", 2, 0, "7c88e71dd479bfee1fe6e5b19cde850c33a52da61a08b686c72a6e78012ac33b"}, + {"0100000001482f7a028730a233ac9b48411a8edfb107b749e61faf7531f4257ad95d0a51c500000000ca4cae606563686f2022553246736447566b58312b5a536e587574356542793066794778625456415675534a6c376a6a334878416945325364667657734f53474f36633338584d7439435c6e543249584967306a486956304f376e775236644546673d3d22203e20743b206f70656e73736c20656e63202d7061737320706173733a5b314a564d7751432d707269766b65792d6865785d202d64202d6165732d3235362d636263202d61202d696e2074607576a914bfd7436b6265aa9de506f8a994f881ff08cc287288acffffffff0180969800000000001976a914e336d0017a9d28de99d16472f6ca6d5a3a8ebc9988ac0000000001000000", "0100000001482f7a028730a233ac9b48411a8edfb107b749e61faf7531f4257ad95d0a51c5000000008b483045022100bf0bbae9bde51ad2b222e87fbf67530fbafc25c903519a1e5dcc52a32ff5844e022028c4d9ad49b006dd59974372a54291d5764be541574bb0c4dc208ec51f80b7190141049dd4aad62741dc27d5f267f7b70682eee22e7e9c1923b9c0957bdae0b96374569b460eb8d5b40d972e8c7c0ad441de3d94c4a29864b212d56050acb980b72b2bffffffff0180969800000000001976a914e336d0017a9d28de99d16472f6ca6d5a3a8ebc9988ac00000000", "4cae606563686f2022553246736447566b58312b5a536e587574356542793066794778625456415675534a6c376a6a334878416945325364667657734f53474f36633338584d7439435c6e543249584967306a486956304f376e775236644546673d3d22203e20743b206f70656e73736c20656e63202d7061737320706173733a5b314a564d7751432d707269766b65792d6865785d202d64202d6165732d3235362d636263202d61202d696e2074607576a914bfd7436b6265aa9de506f8a994f881ff08cc287288ac", 0, 0, "d1e6ea4ecf6cf7cfdeda9ae912ec519a79fcf2fea96ace34a10e0b77264e2ea4"}, + {"01000000012312503f2491a2a97fcd775f11e108a540a5528b5d4dee7a3c68ae4add01dab30000000017a914b1ce99298d5f07364b57b1e5c9cc00be0b04a95487ffffffff0180380100000000001976a914c9b99cddf847d10685a4fabaa0baf505f7c3dfab88ac0000000001000000", "01000000012312503f2491a2a97fcd775f11e108a540a5528b5d4dee7a3c68ae4add01dab300000000fdfe0000483045022100f6649b0eddfdfd4ad55426663385090d51ee86c3481bdc6b0c18ea6c0ece2c0b0220561c315b07cffa6f7dd9df96dbae9200c2dee09bf93cc35ca05e6cdf613340aa0148304502207aacee820e08b0b174e248abd8d7a34ed63b5da3abedb99934df9fddd65c05c4022100dfe87896ab5ee3df476c2655f9fbe5bd089dccbef3e4ea05b5d121169fe7f5f4014c695221031d11db38972b712a9fe1fc023577c7ae3ddb4a3004187d41c45121eecfdbb5b7210207ec36911b6ad2382860d32989c7b8728e9489d7bbc94a6b5509ef0029be128821024ea9fac06f666a4adc3fc1357b7bec1fd0bdece2b9d08579226a8ebde53058e453aeffffffff0180380100000000001976a914c9b99cddf847d10685a4fabaa0baf505f7c3dfab88ac00000000", "a914b1ce99298d5f07364b57b1e5c9cc00be0b04a95487", 0, 0, "5ca48999d397072753891d3ccb8770f88bed457b66206570ed3817e7955bc962"}, + {"0100000001f709fa82596e4f908ee331cb5e0ed46ab331d7dcfaf697fe95891e73dac4ebcb00000000b52102085c6600657566acc2d6382a47bc3f324008d2aa10940dd7705a48aa2a5a5e33ac7c2103f5d0fb955f95dd6be6115ce85661db412ec6a08abcbfce7da0ba8297c6cc0ec4ac7c5379a820d68df9e32a147cffa36193c6f7c43a1c8c69cda530e1c6db354bfabdcfefaf3c875379a820f531f3041d3136701ea09067c53e7159c8f9b2746a56c3d82966c54bbc553226879a5479827701200122a59a5379827701200122a59a6353798277537982778779679a68ffffffff01c075790000000000232103611f9a45c18f28f06f19076ad571c344c82ce8fcfe34464cf8085217a2d294a6ac0000000001000000", "0100000001f709fa82596e4f908ee331cb5e0ed46ab331d7dcfaf697fe95891e73dac4ebcb000000008c20ca42095840735e89283fec298e62ac2ddea9b5f34a8cbb7097ad965b87568100201b1b01dc829177da4a14551d2fc96a9db00c6501edfa12f22cd9cefd335c227f483045022100a9df60536df5733dd0de6bc921fab0b3eee6426501b43a228afa2c90072eb5ca02201c78b74266fac7d1db5deff080d8a403743203f109fbcabf6d5a760bf87386d20100ffffffff01c075790000000000232103611f9a45c18f28f06f19076ad571c344c82ce8fcfe34464cf8085217a2d294a6ac00000000", "2102085c6600657566acc2d6382a47bc3f324008d2aa10940dd7705a48aa2a5a5e33ac7c2103f5d0fb955f95dd6be6115ce85661db412ec6a08abcbfce7da0ba8297c6cc0ec4ac7c5379a820d68df9e32a147cffa36193c6f7c43a1c8c69cda530e1c6db354bfabdcfefaf3c875379a820f531f3041d3136701ea09067c53e7159c8f9b2746a56c3d82966c54bbc553226879a5479827701200122a59a5379827701200122a59a6353798277537982778779679a68", 0, 0, "6388c00bf863571ee96a0d119937fdb058d34f9e27cf70269f67ec7664d19347"}, + {"01000000012c651178faca83be0b81c8c1375c4b0ad38d53c8fe1b1c4255f5e795c2579222000000000300ac91ffffffff010100000000000000232102c2410f8891ae918cab4ffc4bb4a3b0881be67c7a1e7faa8b5acf9ab8932ec30cac0000000001000000", "01000000012c651178faca83be0b81c8c1375c4b0ad38d53c8fe1b1c4255f5e795c25792220000000049483045022100d6044562284ac76c985018fc4a90127847708c9edb280996c507b28babdc4b2a02203d74eca3f1a4d1eea7ff77b528fde6d5dc324ec2dbfdb964ba885f643b9704cd01ffffffff010100000000000000232102c2410f8891ae918cab4ffc4bb4a3b0881be67c7a1e7faa8b5acf9ab8932ec30cac00000000", "00ac91", 0, 0, "b27e976e5b9fe49e036506f4530ad0d46bbb35ea626be591972ca61a322daee4"}, + {"0100000001f725ea148d92096a79b1709611e06e94c63c4ef61cbae2d9b906388efd3ca99c000000002421028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac91ffffffff0101000000000000002321028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac0000000001000000", "0100000001f725ea148d92096a79b1709611e06e94c63c4ef61cbae2d9b906388efd3ca99c000000000100ffffffff0101000000000000002321028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac00000000", "21028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac91", 0, 0, "12c120e38f8a55fb4345be84efbc9d99c54d06702372d426c5e9b53a3d8df3b4"}, + {"0100000001be599efaa4148474053c2fa031c7262398913f1dc1d9ec201fd44078ed004e44000000002651002102136b04758b0b6e363e7a6fbe83aaf527a153db2b060d36cc29f7f8309ba6e45852aeffffffff010100000000000000232103ac4bba7e7ca3e873eea49e08132ad30c7f03640b6539e9b59903cf14fd016bbbac0000000001000000", "0100000001be599efaa4148474053c2fa031c7262398913f1dc1d9ec201fd44078ed004e44000000004900473044022022b29706cb2ed9ef0cb3c97b72677ca2dfd7b4160f7b4beb3ba806aa856c401502202d1e52582412eba2ed474f1f437a427640306fd3838725fab173ade7fe4eae4a01ffffffff010100000000000000232103ac4bba7e7ca3e873eea49e08132ad30c7f03640b6539e9b59903cf14fd016bbbac00000000", "51002102136b04758b0b6e363e7a6fbe83aaf527a153db2b060d36cc29f7f8309ba6e45852ae", 0, 0, "9dedb5ccf676e65436ef680208e9cb6e47b1d747f05a036f836d200b252d308e"}, + {"010000000112b66d5e8c7d224059e946749508efea9d66bf8d0c83630f080cf30be8bb6ae10000000026512103905380c7013e36e6e19d305311c1b81fce6581f5ee1c86ef0627c68c9362fc9f0052aeffffffff010100000000000000232103905380c7013e36e6e19d305311c1b81fce6581f5ee1c86ef0627c68c9362fc9fac0000000001000000", "010000000112b66d5e8c7d224059e946749508efea9d66bf8d0c83630f080cf30be8bb6ae100000000490047304402206ffe3f14caf38ad5c1544428e99da76ffa5455675ec8d9780fac215ca17953520220779502985e194d84baa36b9bd40a0dbd981163fa191eb884ae83fc5bd1c86b1101ffffffff010100000000000000232103905380c7013e36e6e19d305311c1b81fce6581f5ee1c86ef0627c68c9362fc9fac00000000", "512103905380c7013e36e6e19d305311c1b81fce6581f5ee1c86ef0627c68c9362fc9f0052ae", 0, 0, "630463341c94f250d8bb345984da8e390208a3f989b25382a9a962b58678e788"}, + {"0100000001b0ef70cc644e0d37407e387e73bfad598d852a5aa6d691d72b2913cebff4bceb00000000485221033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af041942103a88b326f8767f4f192ce252afe33c94d25ab1d24f27f159b3cb3aa691ffe142352ae91ffffffff0101000000000000002321033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af04194ac0000000001000000", "0100000001b0ef70cc644e0d37407e387e73bfad598d852a5aa6d691d72b2913cebff4bceb000000004a00473044022068cd4851fc7f9a892ab910df7a24e616f293bcb5c5fbdfbc304a194b26b60fba022078e6da13d8cb881a22939b952c24f88b97afd06b4c47a47d7f804c9a352a6d6d0100ffffffff0101000000000000002321033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af04194ac00000000", "5221033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af041942103a88b326f8767f4f192ce252afe33c94d25ab1d24f27f159b3cb3aa691ffe142352ae91", 0, 0, "519417300901d4221c197d60ca7952530e3dd11e8b11c611deca30d71bdcf811"}, + {"0100000001c188aa82f268fcf08ba18950f263654a3ea6931dabc8bf3ed1d4d42aaed74cba00000000485221037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe12102edc823cd634f2c4033d94f5755207cb6b60c4b1f1f056ad7471c47de5f2e4d5052ae91ffffffff0101000000000000002321037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe1ac0000000001000000", "0100000001c188aa82f268fcf08ba18950f263654a3ea6931dabc8bf3ed1d4d42aaed74cba000000004b0000483045022100940378576e069aca261a6b26fb38344e4497ca6751bb10905c76bb689f4222b002204833806b014c26fd801727b792b1260003c55710f87c5adbd7a9cb57446dbc9801ffffffff0101000000000000002321037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe1ac00000000", "5221037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe12102edc823cd634f2c4033d94f5755207cb6b60c4b1f1f056ad7471c47de5f2e4d5052ae91", 0, 0, "66f6496afcc050eb10b2d0d45f605ed2083fd5e60380408fcbcbe1927fda81ac"}, + {"01000000012432b60dc72cebc1a27ce0969c0989c895bdd9e62e8234839117f8fc32d17fbc000000002321038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041acffffffff010000000000000000016a0000000001000000", "01000000012432b60dc72cebc1a27ce0969c0989c895bdd9e62e8234839117f8fc32d17fbc000000004a493046022100a576b52051962c25e642c0fd3d77ee6c92487048e5d90818bcf5b51abaccd7900221008204f8fb121be4ec3b24483b1f92d89b1b0548513a134e345c5442e86e8617a501ffffffff010000000000000000016a00000000", "ab21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac", 0, 0, "2820037610ca45e1d691606b928cdb864b05e0f5214b3b474068a43be6846fd7"}, + {"01000000014710b0e7cf9f8930de259bdc4b84aa5dfb9437b665a3e3a21ff26e0bf994e183000000002321038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041acffffffff010000000000000000016a0000000001000000", "01000000014710b0e7cf9f8930de259bdc4b84aa5dfb9437b665a3e3a21ff26e0bf994e183000000004a493046022100a166121a61b4eeb19d8f922b978ff6ab58ead8a5a5552bf9be73dc9c156873ea02210092ad9bc43ee647da4f6652c320800debcf08ec20a094a0aaf085f63ecb37a17201ffffffff010000000000000000016a00000000", "abab21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac", 0, 0, "e03b1bb5cff4e465c1e446ce0ff172307b976a1dcfef1005c3b5d62870c6ce6c"}, + {"01000000015ebaa001d8e4ec7a88703a3bcf69d98c874bca6299cca0f191512bf2a7826832000000002321038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041acffffffff010000000000000000016a0000000001000000", "01000000015ebaa001d8e4ec7a88703a3bcf69d98c874bca6299cca0f191512bf2a7826832000000004948304502203bf754d1c6732fbf87c5dcd81258aefd30f2060d7bd8ac4a5696f7927091dad1022100f5bcb726c4cf5ed0ed34cc13dadeedf628ae1045b7cb34421bc60b89f4cecae701ffffffff010000000000000000016a00000000", "21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041abac", 0, 0, "a6b4f388729dbb317ba3418bb99db80e75e38f3b60bacc0a202f1d5397b4baf1"}, + {"010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a9000000004721038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ad21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ad51ffffffff010000000000000000016a0000000001000000", "010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a900000000924830450221009c0a27f886a1d8cb87f6f595fbc3163d28f7a81ec3c4b252ee7f3ac77fd13ffa02203caa8dfa09713c8c4d7ef575c75ed97812072405d932bd11e6a1593a98b679370148304502201e3861ef39a526406bad1e20ecad06be7375ad40ddb582c9be42d26c3a0d7b240221009d0a3985e96522e59635d19cc4448547477396ce0ef17a58e7d74c3ef464292301ffffffff010000000000000000016a00000000", "21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041adab21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041adab51", 0, 0, "8596bf48192c07b08069259f2a30eb73a17aa2286642aa84ea9e00a61281f93d"}, + {"010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a900000000266368210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71ad51ffffffff010000000000000000016a0000000001000000", "010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a9000000004a48304502207a6974a77c591fa13dff60cabbb85a0de9e025c09c65a4b2285e47ce8e22f761022100f0efaac9ff8ac36b10721e0aae1fb975c90500b50c56e8a0cc52b0403f0425dd0100ffffffff010000000000000000016a00000000", "63ab68210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71adab51", 0, 0, "1a3285b12207936ff9043c78e96771193f9cc80a8dc028cca27b610413084852"}, + {"010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a900000000266368210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71ad51ffffffff010000000000000000016a0000000001000000", "010000000144490eda355be7480f2ec828dcc1b9903793a8008fad8cfe9b0c6b4d2f0355a9000000004a483045022100fa4a74ba9fd59c59f46c3960cf90cbe0d2b743c471d24a3d5d6db6002af5eebb02204d70ec490fd0f7055a7c45f86514336e3a7f03503dacecabb247fc23f15c83510151ffffffff010000000000000000016a00000000", "63ab68210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71adab51", 0, 0, "1a3285b12207936ff9043c78e96771193f9cc80a8dc028cca27b610413084852"}, + {"0100000001e0be9e32f1f89c3d916c4f21e55cdcd096741b895cc76ac353e6023a05f4f7cc000000001976a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88acffffffff010000000000000000016a0000000001000000", "0100000001e0be9e32f1f89c3d916c4f21e55cdcd096741b895cc76ac353e6023a05f4f7cc00000000d86149304602210086e5f736a2c3622ebb62bd9d93d8e5d76508b98be922b97160edc3dcca6d8c47022100b23c312ac232a4473f19d2aeb95ab7bdf2b65518911a0d72d50e38b5dd31dc820121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac4730440220508fa761865c8abd81244a168392876ee1d94e8ed83897066b5e2df2400dad24022043f5ee7538e87e9c6aef7ef55133d3e51da7cc522830a9c4d736977a76ef755c0121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ffffffff010000000000000000016a00000000", "76a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88ac", 0, 0, "7c16006be7e0a534fdbee124da43446aff225d6ac62513e0da8e7756b87ec467"}, + {"01000000013c6f30f99a5161e75a2ce4bca488300ca0c6112bde67f0807fe983feeff0c910010000001976a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88acffffffff010000000000000000016a0000000001000000", "01000000013c6f30f99a5161e75a2ce4bca488300ca0c6112bde67f0807fe983feeff0c91001000000e608646561646265656675ab61493046022100ce18d384221a731c993939015e3d1bcebafb16e8c0b5b5d14097ec8177ae6f28022100bcab227af90bab33c3fe0a9abfee03ba976ee25dc6ce542526e9b2e56e14b7f10121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac493046022100c3b93edcc0fd6250eb32f2dd8a0bba1754b0f6c3be8ed4100ed582f3db73eba2022100bf75b5bd2eff4d6bf2bda2e34a40fcc07d4aa3cf862ceaa77b47b81eff829f9a01ab21038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ffffffff010000000000000000016a00000000", "76a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88ac", 0, 0, "f1a86fd8723956f88142d57b5aa2bed3107a539f9faa88046418b3192d88ccd4"}, + {"01000000016f3dbe2ca96fa217e94b1017860be49f20820dea5c91bdcb103b0049d5eb5660000000001976a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88acffffffff010000000000000000016a0000000001000000", "01000000016f3dbe2ca96fa217e94b1017860be49f20820dea5c91bdcb103b0049d5eb566000000000fd1d0147304402203989ac8f9ad36b5d0919d97fa0a7f70c5272abee3b14477dc646288a8b976df5022027d19da84a066af9053ad3d1d7459d171b7e3a80bc6c4ef7a330677a6be548140147304402203989ac8f9ad36b5d0919d97fa0a7f70c5272abee3b14477dc646288a8b976df5022027d19da84a066af9053ad3d1d7459d171b7e3a80bc6c4ef7a330677a6be548140121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ac47304402203757e937ba807e4a5da8534c17f9d121176056406a6465054bdd260457515c1a02200f02eccf1bec0f3a0d65df37889143c2e88ab7acec61a7b6f5aa264139141a2b0121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ffffffff010000000000000000016a00000000", "76a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88ac", 0, 0, "75ed6124bc473c381bc23522e4891bdfc71ecc17daabe3b716b182feeae8ba39"}, + {"01000000012139c555ccb81ee5b1e87477840991ef7b386bc3ab946b6b682a04a621006b5a010000001976a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88acffffffff010000000000000000016a0000000001000000", "01000000012139c555ccb81ee5b1e87477840991ef7b386bc3ab946b6b682a04a621006b5a01000000fdb40148304502201723e692e5f409a7151db386291b63524c5eb2030df652b1f53022fd8207349f022100b90d9bbf2f3366ce176e5e780a00433da67d9e5c79312c6388312a296a5800390148304502201723e692e5f409a7151db386291b63524c5eb2030df652b1f53022fd8207349f022100b90d9bbf2f3366ce176e5e780a00433da67d9e5c79312c6388312a296a5800390121038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f2204148304502201723e692e5f409a7151db386291b63524c5eb2030df652b1f53022fd8207349f022100b90d9bbf2f3366ce176e5e780a00433da67d9e5c79312c6388312a296a5800390175ac4830450220646b72c35beeec51f4d5bc1cbae01863825750d7f490864af354e6ea4f625e9c022100f04b98432df3a9641719dbced53393022e7249fb59db993af1118539830aab870148304502201723e692e5f409a7151db386291b63524c5eb2030df652b1f53022fd8207349f022100b90d9bbf2f3366ce176e5e780a00433da67d9e5c79312c6388312a296a580039017521038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041ffffffff010000000000000000016a00000000", "76a914ee5a6aa40facefb2655ac23c0c28c57c65c41f9b88ac", 0, 0, "82bd02352411f56497d22a0c4c39543aa90790aea66a6ae9e8273f98b62c9125"}, + {"0100000002f9cbafc519425637ba4227f8d0a0b7160b4e65168193d5af39747891de98b5b5000000001976a914f6f365c40f0739b61de827a44751e5e99032ed8f88acffffffff42e7988254800876b69f24676b3e0205b77be476512ca4d970707dd5c60598ab0000000000ffffffff01a08601000000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e6870000000001000000", "0100000002f9cbafc519425637ba4227f8d0a0b7160b4e65168193d5af39747891de98b5b5000000006b4830450221008dd619c563e527c47d9bd53534a770b102e40faa87f61433580e04e271ef2f960220029886434e18122b53d5decd25f1f4acb2480659fea20aabd856987ba3c3907e0121022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01ffffffff42e7988254800876b69f24676b3e0205b77be476512ca4d970707dd5c60598ab00000000fd260100483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a53034930460221008431bdfa72bc67f9d41fe72e94c88fb8f359ffa30b33c72c121c5a877d922e1002210089ef5fc22dd8bfc6bf9ffdb01a9862d27687d424d1fefbab9e9c7176844a187a014c9052483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c7153aeffffffff01a08601000000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e68700000000", "76a914f6f365c40f0739b61de827a44751e5e99032ed8f88ac", 0, 0, "542f9a298626b650f7e7f5111b2d3bb831c3efc58de294ea65e0331ef1245944"}, + {"0100000002f9cbafc519425637ba4227f8d0a0b7160b4e65168193d5af39747891de98b5b50000000000ffffffff42e7988254800876b69f24676b3e0205b77be476512ca4d970707dd5c60598ab0000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e687ffffffff01a08601000000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e6870000000001000000", "0100000002f9cbafc519425637ba4227f8d0a0b7160b4e65168193d5af39747891de98b5b5000000006b4830450221008dd619c563e527c47d9bd53534a770b102e40faa87f61433580e04e271ef2f960220029886434e18122b53d5decd25f1f4acb2480659fea20aabd856987ba3c3907e0121022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01ffffffff42e7988254800876b69f24676b3e0205b77be476512ca4d970707dd5c60598ab00000000fd260100483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a53034930460221008431bdfa72bc67f9d41fe72e94c88fb8f359ffa30b33c72c121c5a877d922e1002210089ef5fc22dd8bfc6bf9ffdb01a9862d27687d424d1fefbab9e9c7176844a187a014c9052483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c7153aeffffffff01a08601000000000017a914d8dacdadb7462ae15cd906f1878706d0da8660e68700000000", "a914d8dacdadb7462ae15cd906f1878706d0da8660e687", 1, 0, "1b43cb521a15b4e26e2ea8ba6a6eae30806a63a2eaaf77f6856b60289e8b8cb2"}, + {"0100000002dbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce000000001976a914f6f365c40f0739b61de827a44751e5e99032ed8f88acffffffffdbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce0100000000ffffffff01a0860100000000001976a9149bc0bbdd3024da4d0c38ed1aecf5c68dd1d3fa1288ac0000000001000000", "0100000002dbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce000000006b4830450221009627444320dc5ef8d7f68f35010b4c050a6ed0d96b67a84db99fda9c9de58b1e02203e4b4aaa019e012e65d69b487fdf8719df72f488fa91506a80c49a33929f1fd50121022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01ffffffffdbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce010000009300483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303ffffffff01a0860100000000001976a9149bc0bbdd3024da4d0c38ed1aecf5c68dd1d3fa1288ac00000000", "76a914f6f365c40f0739b61de827a44751e5e99032ed8f88ac", 0, 0, "cb4f4adc3da0a54f5892c1e40ec0bac834d37102f733a55c72d2de3a548f7665"}, + {"0100000002dbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce0000000000ffffffffdbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce010000009052483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c7153aeffffffff01a0860100000000001976a9149bc0bbdd3024da4d0c38ed1aecf5c68dd1d3fa1288ac0000000001000000", "0100000002dbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce000000006b4830450221009627444320dc5ef8d7f68f35010b4c050a6ed0d96b67a84db99fda9c9de58b1e02203e4b4aaa019e012e65d69b487fdf8719df72f488fa91506a80c49a33929f1fd50121022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01ffffffffdbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce010000009300483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303ffffffff01a0860100000000001976a9149bc0bbdd3024da4d0c38ed1aecf5c68dd1d3fa1288ac00000000", "52483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c7153ae", 1, 0, "51af5bd4718c186561b35016ddccbaee302f9b814ccdfb7780f1b0f6748deeb1"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000300b15100000000010000000000000000000000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "00b151", 0, 0, "9521b84cdd30997504fd5fb7d6d7af65fe9614be1e7e0b89e8522145dcea70fc"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000704ff64cd1db1510000000001000000000000000000ff64cd1d01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "04ff64cd1db151", 0, 0, "dd8bdcd78c05914a57c6033d335ba6ca1df2f4cc8b5172dd4cf0b432be1bd24c"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000300b1510000000001000000000000000000ff64cd1d01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "00b151", 0, 0, "05751dd868560a451b6b402d84993393347104de1a077dff19ca24ecd7d7eedd"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000007040065cd1db15100000000010000000000000000000065cd1d01000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "040065cd1db151", 0, 0, "5cc399a83be43c43474229b3f89f34510d4ce8d55eb3313a9c6b44ee774f3068"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b1510000000001000000000000000000ffffffff01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "05ffffffff00b151", 0, 0, "c2d81b118c2ebd4a3a4727c7ba801f15fac4a84bdeb6bc1c8cd907d8713b4044"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000007040065cd1db1510000000001000000000000000000ffffffff01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "040065cd1db151", 0, 0, "4e3e0bffe85f5eadd14444510dded1f6ff373b9cdf3166ed01dccbb217f0c120"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000300b151feffffff010000000000000000000000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000", "00b151", 0, 0, "55d7b5a152aa91b3b559b3964bf909ef838bd824cdcd4231d19b703240b092d8"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000804ff64cd1d8bb15100000000010000000000000000000065cd1d01000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "04ff64cd1d8bb151", 0, 0, "22fb197022c0d0e4d8a937261b087becbac1c4436fba1b360e4f7e00beade9b5"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000000d04ffffff7f04ffffff7f93b1510000000001000000000000000000feffffff01000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000feffffff", "04ffffff7f04ffffff7f93b151", 0, 0, "7e7e7e67a115af7894aa0ba899a47d641b9cc217339bb72498a7c26be6fc803a"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000008050000000000b15100000000010000000000000000000000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "050000000000b151", 0, 0, "0351e800af82b27f6e1fd2eed93b09f328ed5af4ffdf61ad9c3c6100ec00d330"}, + {"0100000001000100000000000000000000000000000000000000000000000000000000000000000000015100000000010000000000000000000100000001000000", "01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b1000000000100000000000000000001000000", "51", 0, 0, "c08f4c420d047a687241fc169a1cfdb4787ed1be282ec64908d5431292601eac"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000017a914c5b93064159b3b2d6ab506a41b1f50463771b9888700000000010000000000000000000100000001000000", "0100000001000100000000000000000000000000000000000000000000000000000000000000000000030251b1000000000100000000000000000001000000", "a914c5b93064159b3b2d6ab506a41b1f50463771b98887", 0, 0, "53b2ee008a6442fef371f32274e5e4bd3078b92d31436cd816645af7acdf7880"}, + {"010000000132211bdd0d568506804eef0d8cc3db68c3d766ab9306cdfcc0a9c89616c8dbb1000000001976a9144b3bd7eba3bc0284fd3007be7f3be275e94f582688acffffffff0100000000000000001976a914f1b3ed2eda9a2ebe5a9374f692877cdf87c0f95b88ac0000000001000000", "010000000132211bdd0d568506804eef0d8cc3db68c3d766ab9306cdfcc0a9c89616c8dbb1000000006c493045022100c7bb0faea0522e74ff220c20c022d2cb6033f8d167fb89e75a50e237a35fd6d202203064713491b1f8ad5f79e623d0219ad32510bfaa1009ab30cbee77b59317d6e30001210237af13eb2d84e4545af287b919c2282019c9691cc509e78e196a9d8274ed1be0ffffffff0100000000000000001976a914f1b3ed2eda9a2ebe5a9374f692877cdf87c0f95b88ac00000000", "76a9144b3bd7eba3bc0284fd3007be7f3be275e94f582688ac", 0, 0, "b81d5bb751e20792b4d3dd61a3d38f0b84a249d978a874cf4d55c71984dfaea6"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000300b25100000000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "00b251", 0, 0, "6b077d438b7793cc4d1d2486a34152d07d5061332332979a1e3f30ba89d9a058"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603ffff00b251ffff0000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffff00000100000000000000000000000000", "03ffff00b251", 0, 0, "8ee809453c60181e6c7355a1484e4427046ebe4fa2a24ca1bcd73a2603a3b556"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603ffff00b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "03ffff00b251", 0, 0, "651e985fe8ace5cf67dcdbe65d936a337b70f7356f9238be1801f5794822c9e9"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000300b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "00b251", 0, 0, "d7695df7e237a42441630f433e6e28dcb261bc42226cceb94e7b75e5f1f7d3f3"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603000040b25100004000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000040000100000000000000000000000000", "03000040b251", 0, 0, "d7816b5928a222a38915ab76d25947e3041b1aa38f94611ff81e0061869ba6e7"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603ffff40b251ffff4000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffff40000100000000000000000000000000", "03ffff40b251", 0, 0, "2fec97e97ffb45f622e0e1b2ce2d368ef04ac39d34b6623b3a5259d35326706d"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603ffff40b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "03ffff40b251", 0, 0, "26a649ca2b9aa2d0492db558a011a541d79609ac0be7d2072cd7f980654c0937"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000603000040b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "03000040b251", 0, 0, "1d4b6d93ef9acfa62bcaec312758f7b084c26916187e87d2e6c17f36fe7d2fce"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b25100000080010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000800100000000000000000000000000", "050000008000b251", 0, 0, "b28cbdbec32dad2702bd294f95bf1e78ebce5547bde739581402681b15e3b345"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b25100000080010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000800100000000000000000000000000", "05ffffffff00b251", 0, 0, "b3edb073db12dfd66a5b3fc7b5ca77d38c453b3a3e9b3dcc876abeb0c2401d52"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251feffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000", "050000008000b251", 0, 0, "d2b179286ee2476e1d818653fe854cff642795d3145536189d2c8b0281146430"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251feffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000", "05ffffffff00b251", 0, 0, "9cb1f1b00514f17897da4102c204d5f15efb49a28ad2e88b23c33b8612e1324a"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "050000008000b251", 0, 0, "9e0283aca3d968911bff6b765cd04b0808bc10c5714e4a263efeb2c53870e70b"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "05ffffffff00b251", 0, 0, "51ed42f2942a4d080099a41ab999c5197ec956b9c175854df8556b7ff30e1d3e"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "050000008000b251", 0, 0, "d8a4a39155ad2672212bd685a9662bb5edc7ead5f78c2a6bfa77919e54af114d"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "050000008000b251", 0, 0, "7ce267a3adfabdb52658645280bcb76b3c739e2041a21f938acd16b53132f9cb"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008000b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "050000008000b251", 0, 0, "9e0283aca3d968911bff6b765cd04b0808bc10c5714e4a263efeb2c53870e70b"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "05ffffffff00b251", 0, 0, "2129be03c4ee5418480f634e78d11c24e45600fbb95939191ab448aa8d68bb0d"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "05ffffffff00b251", 0, 0, "5ed98bd48b85874c8a9494c9200652c58ba1416256116b20597a4d373ae978f8"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000805ffffffff00b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "05ffffffff00b251", 0, 0, "51ed42f2942a4d080099a41ab999c5197ec956b9c175854df8556b7ff30e1d3e"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008001b251ffffbf7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffbf7f0100000000000000000000000000", "050000008001b251", 0, 0, "56ef179ac6d5cba99c9e29df1fdf0f1abfff9cfc17fd11003a509c4dde7e0856"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008001b251ffffff7f010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0100000000000000000000000000", "050000008001b251", 0, 0, "8d143c8c0e37169b19c192203a4fdefed960875cc2efd9f11cef926d42a0911a"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000008001b251ffffffff010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "050000008001b251", 0, 0, "dadcedb44965f11466d232912932c370d7e02ed3e76db2ef6f0b22edeb1681cc"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000008050000000000b25100000000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "050000000000b251", 0, 0, "c6812f7cab7a7e0e791d05a6526e43ba873fac30b4d587c15f6cc1ae4878c9e5"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000703ffff3f8bb25100004000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000040000100000000000000000000000000", "03ffff3f8bb251", 0, 0, "d95e733825c5f1104a5730e72f403b109cb49b9fb0541ed58a4dc0ebf16c5146"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000007030000408cb251ffff0000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000ffff00000100000000000000000000000000", "030000408cb251", 0, 0, "4a6cf74076204e618507d50d7f111a2feae171011a26736ce7e4423429ac07ff"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000b04ffffff7f03000001b25100000000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "04ffffff7f03000001b251", 0, 0, "f1b6a4bfe5d78daa4542e35bf90782f06d92e27d7be3cafbb0bbc13a5eb67d85"}, + {"02000000010001000000000000000000000000000000000000000000000000000000000000000000000c04ffffff7f0300004193b25100004000010000000000000000000000000001000000", "020000000100010000000000000000000000000000000000000000000000000000000000000000000000000040000100000000000000000000000000", "04ffffff7f0300004193b251", 0, 0, "d5dc4b1dd96c5acf547a16f0aa8bf95c068f26c653de8111c111fe45900a3cd6"}, + {"0200000001000100000000000000000000000000000000000000000000000000000000000000000000015101000000010000000000000000000000000001000000", "02000000010001000000000000000000000000000000000000000000000000000000000000000000000251b2010000000100000000000000000000000000", "51", 0, 0, "fc402c5ce4bd16c7e3c1bff7c44ddad843527e5f8866b2a89418c6a8282e970f"}, + {"020000000100010000000000000000000000000000000000000000000000000000000000000000000017a9147c17aff532f22beb54069942f9bf567a66133eaf8701000000010000000000000000000000000001000000", "0200000001000100000000000000000000000000000000000000000000000000000000000000000000030251b2010000000100000000000000000000000000", "a9147c17aff532f22beb54069942f9bf567a66133eaf87", 0, 0, "1b927f5991e23fa6504eee83b749f9788ed40b7eb0f8833e87f60631e472eb9e"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000001660144c9c3dfac4207d5d8cb89df5722cb3d712385e3fffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "60144c9c3dfac4207d5d8cb89df5722cb3d712385e3f", 0, 1000, "181a02887447e1f618df3d607299a66d0416a4d5d333e7fa7baa89d941cc2769"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000003600101ffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "600101", 0, 1000, "113b7af2ef783b71ac109cb62388a66333b5ae4b293e141f95b3f670767cce45"}, + {"01000000010001000000000000000000000000000000000000000000000000000000000000000000002b6029ff25429251b5a84f452230a3c75fd886b7fc5a7865ce4a7bb7a9d7c5be6da3dbff0000000000000000ffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "6029ff25429251b5a84f452230a3c75fd886b7fc5a7865ce4a7bb7a9d7c5be6da3dbff0000000000000000", 0, 1000, "ed759a8f58294c7db3f8bb9565d375045d520ff56bb50678084649dfc9311f9f"}, + {"0100000001000100000000000000000000000000000000000000000000000000000000000000000000050110020001ffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "0110020001", 0, 1000, "b94fe19666c3c32c06e5cf0bb276b4f5d021da3d8e51926c95b69a2db0c3f9c7"}, + {"010000000100010000000000000000000000000000000000000000000000000000000000000000000005604c020001ffffffff01e80300000000000001510000000001000000", "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01e803000000000000015100000000", "604c020001", 0, 1000, "90d8dee6903b8072df9cb77a18985b302c928b582d28e81d5482c66145301062"}, + {"0100000002000100000000000000000000000000000000000000000000000000000000000000000000232103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71acffffffff00010000000000000000000000000000000000000000000000000000000000000100000000ffffffff02e8030000000000000151e90300000000000001510000000001000000", "01000000020001000000000000000000000000000000000000000000000000000000000000000000004847304402202a0b4b1294d70540235ae033d78e64b4897ec859c7b6f1b2b1d8a02e1d46006702201445e756d2254b0f1dfda9ab8e1e1bc26df9668077403204f32d16a49a36eb6983ffffffff00010000000000000000000000000000000000000000000000000000000000000100000049483045022100acb96cfdbda6dc94b489fd06f2d720983b5f350e31ba906cdbd800773e80b21c02200d74ea5bdf114212b4bbe9ed82c36d2e369e302dff57cb60d01c428f0bd3daab83ffffffff02e8030000000000000151e903000000000000015100000000", "2103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ac", 0, 1000, "01a08aa0be7f65ed023ea5b75dccc07190f3ad690c9c381de2fe76be7e54a626"}, + {"010000000200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff000100000000000000000000000000000000000000000000000000000000000001000000232103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71acffffffff02e8030000000000000151e90300000000000001510000000001000000", "01000000020001000000000000000000000000000000000000000000000000000000000000000000004847304402202a0b4b1294d70540235ae033d78e64b4897ec859c7b6f1b2b1d8a02e1d46006702201445e756d2254b0f1dfda9ab8e1e1bc26df9668077403204f32d16a49a36eb6983ffffffff00010000000000000000000000000000000000000000000000000000000000000100000049483045022100acb96cfdbda6dc94b489fd06f2d720983b5f350e31ba906cdbd800773e80b21c02200d74ea5bdf114212b4bbe9ed82c36d2e369e302dff57cb60d01c428f0bd3daab83ffffffff02e8030000000000000151e903000000000000015100000000", "2103596d3451025c19dbbdeb932d6bf8bfb4ad499b95b6f88db8899efac102e5fc71ac", 1, 1001, "19a29d34cfa3a3f7b6e2b4aa3148c361ed3303802f576d6a9619b1447a3ec94d"}, + {"010000000169c12106097dc2e0526493ef67f21269fe888ef05c7a3a5dacab38e1ac8387f1581b000017a9140c746489e2d83cdbb5b90b432773342ba809c13487ffffffff010100000000000000000000000001000000", "010000000169c12106097dc2e0526493ef67f21269fe888ef05c7a3a5dacab38e1ac8387f1581b0000b64830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0121037a3fb04bcdb09eba90f69961ba1692a3528e45e67c85b200df820212d7594d334aad4830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e01ffffffff0101000000000000000000000000", "a9140c746489e2d83cdbb5b90b432773342ba809c13487", 0, 200000, "7807ff331d93240d9f48629f6b5ab45a7dd9f4e5bd5d038be14893f590893bd2"}, + {"01000000019275cb8d4a485ce95741c013f7c0d28722160008021bb469a11982d47a662896581b000017a9145748407f5ca5cdca53ba30b79040260770c9ee1b87ffffffff010100000000000000000000000001000000", "01000000019275cb8d4a485ce95741c013f7c0d28722160008021bb469a11982d47a662896581b0000fd6f01004830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0148304502205286f726690b2e9b0207f0345711e63fa7012045b9eb0f19c2458ce1db90cf43022100e89f17f86abc5b149eba4115d4f128bcf45d77fb3ecdd34f594091340c03959601522102cd74a2809ffeeed0092bc124fd79836706e41f048db3f6ae9df8708cefb83a1c2102e615999372426e46fd107b76eaf007156a507584aa2cc21de9eee3bdbd26d36c4c9552af4830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0148304502205286f726690b2e9b0207f0345711e63fa7012045b9eb0f19c2458ce1db90cf43022100e89f17f86abc5b149eba4115d4f128bcf45d77fb3ecdd34f594091340c0395960175ffffffff0101000000000000000000000000", "a9145748407f5ca5cdca53ba30b79040260770c9ee1b87", 0, 200000, "373cffc5f4b7707e1c8b463b18c9c95aae192677ad3618b9f958aa269e749b2b"}, }; static const struct txtest txvalid[] = @@ -852,7 +780,7 @@ void test_tx_serialization() utils_hex_to_bin(one_test->hextx, tx_data, strlen(one_test->hextx), &outlen); dogecoin_tx* tx = dogecoin_tx_new(); - dogecoin_tx_deserialize(tx_data, outlen, tx, NULL, false); + dogecoin_tx_deserialize(tx_data, outlen, tx, NULL); dogecoin_tx* tx_copy = dogecoin_tx_new(); dogecoin_tx_copy(tx_copy, tx); @@ -869,10 +797,10 @@ void test_tx_serialization() } cstring* str = cstr_new_sz(strlen(one_test->hextx) + 100); - dogecoin_tx_serialize(str, tx, true); + dogecoin_tx_serialize(str, tx); cstring* str2 = cstr_new_sz(strlen(one_test->hextx) + 100); - dogecoin_tx_serialize(str2, tx_copy, true); + dogecoin_tx_serialize(str2, tx_copy); assert(memcmp(str->str, str2->str, str->len) == 0); @@ -897,13 +825,13 @@ void test_tx_sighash_ext() uint8_t tx_data_sighash[strlen(txvalid_sighash[i].sertx) / 2]; utils_hex_to_bin(txvalid_sighash[i].sertx, tx_data_sighash, strlen(txvalid_sighash[i].sertx), &outlen_sighash); dogecoin_tx* tx_sighash = dogecoin_tx_new(); - dogecoin_tx_deserialize(tx_data_sighash, outlen_sighash, tx_sighash, NULL, true); + dogecoin_tx_deserialize(tx_data_sighash, outlen_sighash, tx_sighash, NULL); uint8_t script_data[strlen(txvalid_sighash[i].script) / 2]; utils_hex_to_bin(txvalid_sighash[i].script, script_data, strlen(txvalid_sighash[i].script), &outlen_sighash); cstring* str = cstr_new_buf(script_data, outlen_sighash); uint256 hash; - dogecoin_tx_sighash(tx_sighash, str, txvalid_sighash[i].i, SIGHASH_ALL, txvalid_sighash[i].amount, txvalid_sighash[i].witness ? SIGVERSION_WITNESS_V0 : SIGVERSION_BASE, hash); + dogecoin_tx_sighash(tx_sighash, str, txvalid_sighash[i].i, SIGHASH_ALL, txvalid_sighash[i].amount, SIGVERSION_BASE, hash); dogecoin_tx_free(tx_sighash); cstr_free(str, true); @@ -928,7 +856,7 @@ void test_tx_sighash() utils_hex_to_bin(test->txhex, tx_data, strlen(test->txhex), &outlen); dogecoin_tx* tx = dogecoin_tx_new(); - dogecoin_tx_deserialize(tx_data, outlen, tx, NULL, true); + dogecoin_tx_deserialize(tx_data, outlen, tx, NULL); uint8_t script_data[strlen(test->script) / 2]; utils_hex_to_bin(test->script, script_data, strlen(test->script), &outlen); @@ -968,7 +896,7 @@ void test_tx_negative_version() utils_hex_to_bin(txhex, tx_data, strlen(txhex), &outlen); dogecoin_tx* tx = dogecoin_tx_new(); - dogecoin_tx_deserialize(tx_data, outlen, tx, NULL, true); + dogecoin_tx_deserialize(tx_data, outlen, tx, NULL); u_assert_int_eq(versionGoal, tx->version); dogecoin_tx_free(tx); @@ -1065,7 +993,7 @@ void test_script_parse() dogecoin_tx_add_p2pkh_out(tx, 1000000000, &pubkeytx); cstring* txser = cstr_new_sz(1024); - dogecoin_tx_serialize(txser, tx, false); + dogecoin_tx_serialize(txser, tx); char hexbuf[txser->len * 2 + 1]; utils_bin_to_hex((unsigned char*)txser->str, txser->len, hexbuf); @@ -1086,7 +1014,7 @@ void test_script_parse() txser = cstr_new_sz(1024); - dogecoin_tx_serialize(txser, tx, false); + dogecoin_tx_serialize(txser, tx); char hexbuf2[txser->len * 2 + 1]; utils_bin_to_hex((unsigned char*)txser->str, txser->len, hexbuf2); u_assert_str_eq(hexbuf2, "01000000000200ca9a3b000000001976a91457b78cc8347175aee968eaa91846e840ef36ff9288ac4e61bc00000000001976a914dcba7ad8b58f35ea9a7ffa2102dcfb2612b6ba9088ac00000000"); @@ -1102,7 +1030,7 @@ void test_script_parse() dogecoin_tx_add_address_out(tx, &dogecoin_chainparams_regtest, 876543210, "2NFoJeWNrABZQ3YCWdbX9wGEnRge7kDeGzQ"); txser = cstr_new_sz(1024); - dogecoin_tx_serialize(txser, tx, false); + dogecoin_tx_serialize(txser, tx); char hexbuf3[txser->len * 2 + 1]; utils_bin_to_hex((unsigned char*)txser->str, txser->len, hexbuf3); u_assert_str_eq(hexbuf3, "01000000000300ca9a3b000000001976a91457b78cc8347175aee968eaa91846e840ef36ff9288ac4e61bc00000000001976a914dcba7ad8b58f35ea9a7ffa2102dcfb2612b6ba9088aceafc3e340000000017a914f763f798ede75a6ebf4e061b9e68ddb6df0442928700000000"); @@ -1111,7 +1039,7 @@ void test_script_parse() dogecoin_tx_add_address_out(tx, &dogecoin_chainparams_regtest, 100000000, "dcrt1qfupfj4yx83dz8vhcpcahhxyg4sfqr8pvx8l6l2"); txser = cstr_new_sz(1024); - dogecoin_tx_serialize(txser, tx, false); + dogecoin_tx_serialize(txser, tx); char hexbuf4[txser->len * 2 + 1]; utils_bin_to_hex((unsigned char*)txser->str, txser->len, hexbuf4); u_assert_str_eq(hexbuf4, "01000000000300ca9a3b000000001976a91457b78cc8347175aee968eaa91846e840ef36ff9288ac4e61bc00000000001976a914dcba7ad8b58f35ea9a7ffa2102dcfb2612b6ba9088aceafc3e340000000017a914f763f798ede75a6ebf4e061b9e68ddb6df0442928700000000"); @@ -1133,6 +1061,7 @@ void test_script_parse() dogecoin_hash(node.private_key, DOGECOIN_ECKEY_PKEY_LENGTH, rev_code); uint8_t sigdata[38] = {0x42, 0x49, 0x50, 0x00, 0x00, 0x00, 0x00}; + dogecoin_hash(rev_code, DOGECOIN_HASH_LENGTH, &sigdata[7]); dogecoin_hash(sigdata, sizeof(sigdata), sig_hash); @@ -1154,7 +1083,7 @@ void test_script_parse() dogecoin_tx_add_p2pkh_out(tx, 10000, &pubkeytx_rev); txser = cstr_new_sz(1024); - dogecoin_tx_serialize(txser, tx, false); + dogecoin_tx_serialize(txser, tx); char hexbuf5[txser->len * 2 + 1]; utils_bin_to_hex((unsigned char*)txser->str, txser->len, hexbuf5); // TODO: test @@ -1191,7 +1120,7 @@ void test_invalid_tx_deser() utils_hex_to_bin(txstr, tx_data_txstr, strlen(txstr), &outlen); dogecoin_tx* tx = dogecoin_tx_new(); - u_assert_int_eq(dogecoin_tx_deserialize(tx_data_txstr, outlen, tx, NULL, true), false); + u_assert_int_eq(dogecoin_tx_deserialize(tx_data_txstr, outlen, tx, NULL), false); dogecoin_tx_free(tx); char failed_output[] = "02000000000101bb3ee7f13f00b58a65f3789ff9917ae2eb2f360957ca86d4ec8068deae16f94c0000000017160014d7d7d2e56512a14b41f2b412eb33f9a2c464e407ffffffff01c0878b3b0000000017a914b1"; @@ -1199,62 +1128,10 @@ void test_invalid_tx_deser() utils_hex_to_bin(failed_output, tx_data_fo, strlen(failed_output), &outlen); dogecoin_tx* tx_o = dogecoin_tx_new(); - u_assert_int_eq(dogecoin_tx_deserialize(tx_data_fo, outlen, tx_o, NULL, true), false); + u_assert_int_eq(dogecoin_tx_deserialize(tx_data_fo, outlen, tx_o, NULL), false); dogecoin_tx_free(tx_o); } -void test_tx_sign_p2sh_p2wpkh() -{ - const char* tx_hex = "0200000001bb3ee7f13f00b58a65f3789ff9917ae2eb2f360957ca86d4ec8068deae16f94c0000000000ffffffff01c0878b3b0000000017a914b1c1b08a898e07095e72a50cdf889bcdb1530a358700000000"; - const char* script_hex = "a9148824655b15edc6291e08b814744b2dc521d6c41687"; - const char* pkey_wif = "cRMBVuEydsdQdYCe8gFgu6HV8rFywrY6thdpumxzrrHC56BgBpEp"; - const char* expected_sigder = "30440220685849941f583fe4a54b77fbe7963a2f7fdb9fefc661f9e43d9c6c213f6a4c9c02207da98e43af69d2c616c489eb22657e62a1360eeb5a86d8a31bd8a33dd9de21f101"; - const char* expected_sigcomp = "685849941f583fe4a54b77fbe7963a2f7fdb9fefc661f9e43d9c6c213f6a4c9c7da98e43af69d2c616c489eb22657e62a1360eeb5a86d8a31bd8a33dd9de21f1"; - const char* expected_tx_signed = "02000000000101bb3ee7f13f00b58a65f3789ff9917ae2eb2f360957ca86d4ec8068deae16f94c0000000017160014d7d7d2e56512a14b41f2b412eb33f9a2c464e407ffffffff01c0878b3b0000000017a914b1c1b08a898e07095e72a50cdf889bcdb1530a3587024730440220685849941f583fe4a54b77fbe7963a2f7fdb9fefc661f9e43d9c6c213f6a4c9c02207da98e43af69d2c616c489eb22657e62a1360eeb5a86d8a31bd8a33dd9de21f10121022d0e577424abfbbb5e321d3e2c700122a0c004305f57725810988cee6c4c278d00000000"; - uint64_t amount = 1000000000; - int sighashtype = SIGHASH_ALL; - int inputindex = 0; - - int outlen; - uint8_t tx_data[strlen(tx_hex) / 2]; - utils_hex_to_bin(tx_hex, tx_data, strlen(tx_hex), &outlen); - uint8_t script_data[strlen(script_hex) / 2]; - utils_hex_to_bin(script_hex, script_data, strlen(script_hex), &outlen); - cstring* script = cstr_new_buf(script_data, outlen); - uint8_t expected_sigder_data[strlen(expected_sigder) / 2]; - utils_hex_to_bin(expected_sigder, expected_sigder_data, strlen(expected_sigder), &outlen); - uint8_t expected_sigcomp_data[strlen(expected_sigcomp) / 2]; - utils_hex_to_bin(expected_sigcomp, expected_sigcomp_data, strlen(expected_sigcomp), &outlen); - uint8_t expected_tx_signed_data[strlen(expected_tx_signed) / 2]; - utils_hex_to_bin(expected_tx_signed, expected_tx_signed_data, strlen(expected_tx_signed), &outlen); - - dogecoin_key pkey; - dogecoin_privkey_init(&pkey); - dogecoin_privkey_decode_wif(pkey_wif, &dogecoin_chainparams_regtest, &pkey); - - dogecoin_tx* tx = dogecoin_tx_new(); - dogecoin_tx_deserialize(tx_data, outlen, tx, NULL, true); - - - uint8_t sigcomp[64] = {0}; - uint8_t sigder[76] = {0}; - int sigder_len = 0; - dogecoin_tx_sign_input(tx, script, amount, &pkey, inputindex, sighashtype, sigcomp, sigder, &sigder_len); - u_assert_mem_eq(sigcomp, expected_sigcomp_data, 64); - u_assert_mem_eq(sigder, expected_sigder_data, sigder_len); - - cstring* tx_ser = cstr_new_sz(1024); - dogecoin_tx_serialize(tx_ser, tx, true); - - char hexbuf[tx_ser->len * 2 + 1]; - utils_bin_to_hex((unsigned char*)tx_ser->str, tx_ser->len, hexbuf); - u_assert_str_eq(hexbuf, expected_tx_signed); - - dogecoin_tx_free(tx); - cstr_free(tx_ser, true); - cstr_free(script, true); -} - void test_tx_sign_p2pkh(dogecoin_tx* tx) { const char* tx_hex = "02000000027409797c31feecc4e69b51c58b477b72c53355743a6f6124f9d78221672df3700100000000ffffffff6e1709c1e2bdd85aed24dccfd48293993617f249d4d4381296a9c914be3e85e60100000000ffffffff01c07fdc0b0000000017a914ba277fd56b69177464fcb6a27a530f03740345ed8700000000"; @@ -1281,7 +1158,7 @@ void test_tx_sign_p2pkh(dogecoin_tx* tx) dogecoin_privkey_init(&pkey); dogecoin_privkey_decode_wif(pkey_wif, &dogecoin_chainparams_regtest, &pkey); - dogecoin_tx_deserialize(tx_data, outlen, tx, NULL, true); + dogecoin_tx_deserialize(tx_data, outlen, tx, NULL); uint8_t sigcomp[64] = {0}; @@ -1291,7 +1168,7 @@ void test_tx_sign_p2pkh(dogecoin_tx* tx) u_assert_mem_eq(sigder, expected_sigder_data, sigder_len); cstring* tx_ser = cstr_new_sz(1024); - dogecoin_tx_serialize(tx_ser, tx, true); + dogecoin_tx_serialize(tx_ser, tx); char hexbuf[tx_ser->len * 2 + 1]; utils_bin_to_hex((unsigned char*)tx_ser->str, tx_ser->len, hexbuf); @@ -1300,6 +1177,7 @@ void test_tx_sign_p2pkh(dogecoin_tx* tx) cstr_free(tx_ser, true); cstr_free(script, true); } + void test_tx_sign_p2pkh_i2(dogecoin_tx* tx) { const char* tx_hex = "02000000027409797c31feecc4e69b51c58b477b72c53355743a6f6124f9d78221672df3700100000000ffffffff6e1709c1e2bdd85aed24dccfd48293993617f249d4d4381296a9c914be3e85e60100000000ffffffff01c07fdc0b0000000017a914ba277fd56b69177464fcb6a27a530f03740345ed8700000000"; @@ -1343,7 +1221,7 @@ void test_tx_sign_p2pkh_i2(dogecoin_tx* tx) u_assert_mem_eq(sigder, expected_sigder_data, sigder_len); cstring* tx_ser = cstr_new_sz(1024); - dogecoin_tx_serialize(tx_ser, tx, true); + dogecoin_tx_serialize(tx_ser, tx); char hexbuf[tx_ser->len * 2 + 1]; utils_bin_to_hex((unsigned char*)tx_ser->str, tx_ser->len, hexbuf); @@ -1356,7 +1234,6 @@ void test_tx_sign_p2pkh_i2(dogecoin_tx* tx) void test_tx_sign() { - test_tx_sign_p2sh_p2wpkh(); dogecoin_tx* tx = dogecoin_tx_new(); test_tx_sign_p2pkh(tx); test_tx_sign_p2pkh_i2(tx);