From ce9d16f479b012b960b0a856100773d85a07c142 Mon Sep 17 00:00:00 2001
From: hunicus <93150691+hunicus@users.noreply.github.com>
Date: Tue, 13 May 2025 18:25:39 -0400
Subject: [PATCH 01/17] Add get-block-v1 doc
---
.../src/app/docs/api-docs/api-docs-data.ts | 348 +++++++++++++++---
.../docs/api-docs/api-docs-nav.component.html | 2 +-
.../docs/api-docs/api-docs-nav.component.ts | 2 +
.../app/docs/api-docs/api-docs.component.html | 2 +-
.../app/docs/api-docs/api-docs.component.ts | 2 +
5 files changed, 305 insertions(+), 51 deletions(-)
diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts
index 5e9608bdf9..876def7181 100644
--- a/frontend/src/app/docs/api-docs/api-docs-data.ts
+++ b/frontend/src/app/docs/api-docs/api-docs-data.ts
@@ -3740,6 +3740,7 @@ export const restApiDocsData = [
showConditions: bitcoinNetworks.concat(liquidNetworks)
},
{
+ options: { electrsOnly: true },
type: "endpoint",
category: "blocks",
httpRequestMethod: "GET",
@@ -3747,7 +3748,6 @@ export const restApiDocsData = [
title: "GET Block",
description: {
default: "Returns details about a block.",
- liquid: "Returns details about a block. Available fields: id, height, version, timestamp, bits, nonce, merkle_root, tx_count, size, weight,proof, and previousblockhash."
},
urlString: "/block/:hash",
showConditions: bitcoinNetworks.concat(liquidNetworks),
@@ -3777,54 +3777,19 @@ export const restApiDocsData = [
commonJS: ['000000000000000015dc777b3ff2611091336355d3f0ee9766a2cf3be8e4b1ce'],
curl: ['000000000000000015dc777b3ff2611091336355d3f0ee9766a2cf3be8e4b1ce'],
response: `{
- "extras": {
- "reward": 638307429,
- "coinbaseTx": {
- "vin": [
- {
- "scriptsig": "03ad3e0b2cfabe6d6df8fb5429a5de5fc2bd1bafffbc90d33c77eb73307d51931d247f21d7bccde51710000000f09f909f092f4632506f6f6c2f6b0000000000000000000000000000000000000000000000000000000000000000000000050086411100"
- }
- ],
- "vout": [
- {
- "scriptpubkey_address": "1KFHE7w8BhaENAswwryaoccDb6qcT6DbYY",
- "value": 638307429
- }
- ]
- },
- "coinbaseRaw": "03ad3e0b2cfabe6d6df8fb5429a5de5fc2bd1bafffbc90d33c77eb73307d51931d247f21d7bccde51710000000f09f909f092f4632506f6f6c2f6b0000000000000000000000000000000000000000000000000000000000000000000000050086411100",
- "medianFee": 10,
- "feeRange": [
- 1,
- 8,
- 9,
- 10,
- 15,
- 21,
- 348
- ],
- "totalFees": 13307429,
- "avgFee": 5591,
- "avgFeeRate": 13,
- "pool": {
- "id": 36,
- "name": "F2Pool",
- "slug": "f2pool"
- },
- "matchRate": 93
- },
- "id": "00000000000000000007566f8f035a1dc38b351e6f54778b311fe6dbabd79b46",
- "height": 736941,
- "version": 536870916,
- "timestamp": 1652891466,
- "bits": 386466234,
- "nonce": 3514220842,
- "difficulty": 31251101365711.12,
- "merkle_root": "4a3072f98f60cbb639bb7f46180b8843d17c7502627ffb633db0ed86610cdd71",
- "tx_count": 2381,
- "size": 1709571,
- "weight": 3997770,
- "previousblockhash": "00000000000000000005ef14db0b4befcbbe1e9b8676eec67fcf810a899c4d5e"
+ "id": "000000000000000015dc777b3ff2611091336355d3f0ee9766a2cf3be8e4b1ce",
+ "height": 363366,
+ "version": 2,
+ "timestamp": 1435766771,
+ "tx_count": 494,
+ "size": 286494,
+ "weight": 1145976,
+ "merkle_root": "9d3cb87bf05ebae366b4262ed5f768ce8c62fc385c3886c9cb097647b04b686c",
+ "previousblockhash": "000000000000000010c545b6fa3ef1f7cf45a2a8760b1ee9f2e89673218207ce",
+ "mediantime": 1435763435,
+ "nonce": 2892644888,
+ "bits": 404111758,
+ "difficulty": 49402014931.2275
}`
},
codeSampleTestnet: {
@@ -3904,6 +3869,291 @@ export const restApiDocsData = [
previousblockhash: "2745fd72a5bd2b256c9d2044631032d2cd872f1f0001c3db52e26604a6423526",
mediantime: 1641153964,
ext: {...}
+}`,
+ },
+ }
+ }
+ },
+ {
+ type: "endpoint",
+ category: "blocks",
+ httpRequestMethod: "GET",
+ fragment: "get-block-v1",
+ title: "GET Block (v1)",
+ description: {
+ default: "Returns details about a block using Mempool's Node.js backend.",
+ },
+ urlString: "/v1/block/:hash",
+ showConditions: bitcoinNetworks.concat(liquidNetworks),
+ showJsExamples: showJsExamplesDefault,
+ codeExample: {
+ default: {
+ codeTemplate: {
+ curl: `/api/v1/block/%{1}`,
+ commonJS: `
+ const { %{0}: { blocks } } = mempoolJS();
+
+ const hash = '%{1}';
+ const block = await blocks.getBlock({ hash });
+
+ document.getElementById("result").textContent = JSON.stringify(block, undefined, 2);
+ `,
+ esModule: `
+ const { %{0}: { blocks } } = mempoolJS();
+
+ const hash = '%{1}';
+ const block = await blocks.getBlock({ hash });
+ console.log(block);
+ `,
+ },
+ codeSampleMainnet: {
+ esModule: ['000000000000000015dc777b3ff2611091336355d3f0ee9766a2cf3be8e4b1ce'],
+ commonJS: ['000000000000000015dc777b3ff2611091336355d3f0ee9766a2cf3be8e4b1ce'],
+ curl: ['000000000000000015dc777b3ff2611091336355d3f0ee9766a2cf3be8e4b1ce'],
+ response: `{
+ "id": "000000000000000015dc777b3ff2611091336355d3f0ee9766a2cf3be8e4b1ce",
+ "height": 363366,
+ "version": 2,
+ "timestamp": 1435766771,
+ "bits": 404111758,
+ "nonce": 2892644888,
+ "difficulty": 49402014931.22746,
+ "merkle_root": "9d3cb87bf05ebae366b4262ed5f768ce8c62fc385c3886c9cb097647b04b686c",
+ "tx_count": 494,
+ "size": 286494,
+ "weight": 1145976,
+ "previousblockhash": "000000000000000010c545b6fa3ef1f7cf45a2a8760b1ee9f2e89673218207ce",
+ "mediantime": 1435763435,
+ "extras": {
+ "totalFees": 5949764,
+ "medianFee": 14,
+ "feeRange": [
+ 0,
+ 0,
+ 1,
+ 14,
+ 38,
+ 48,
+ 261
+ ],
+ "reward": 2505949764,
+ "pool": {
+ "id": 0,
+ "name": "Unknown",
+ "slug": "unknown",
+ "minerNames": null
+ },
+ "avgFee": 12068,
+ "avgFeeRate": 20,
+ "coinbaseRaw": "03668b050455940ee2ebbc03100000046d",
+ "coinbaseAddress": "17JJ3oZyF4ShQMGukDjpMWhmooCjEvoVVB",
+ "coinbaseAddresses": [
+ "17JJ3oZyF4ShQMGukDjpMWhmooCjEvoVVB"
+ ],
+ "coinbaseSignature": "OP_DUP OP_HASH160 OP_PUSHBYTES_20 45160ea9d45f6edefef3977ac0b2cdcc29aa594a OP_EQUALVERIFY OP_CHECKSIG",
+ "coinbaseSignatureAscii": "...",
+ "avgTxSize": 579.57,
+ "totalInputs": 1424,
+ "totalOutputs": 1764,
+ "totalOutputAmt": 531126071491,
+ "medianFeeAmt": 10000,
+ "feePercentiles": [
+ 0,
+ 735,
+ 10000,
+ 10000,
+ 10000,
+ 20000,
+ 300000
+ ],
+ "segwitTotalTxs": 0,
+ "segwitTotalSize": 0,
+ "segwitTotalWeight": 0,
+ "header": "02000000ce0782217396e8f2e91e0b76a8a245cff7f13efab645c51000000000000000006c684bb0477609cbc986385c38fc628cce68f7d52e26b466e3ba5ef07bb83c9df30f94558e41161818426aac",
+ "utxoSetChange": 340,
+ "utxoSetSize": 21180314,
+ "totalInputAmt": 531132021255,
+ "virtualSize": 286494,
+ "firstSeen": null,
+ "orphans": [],
+ "matchRate": null,
+ "expectedFees": null,
+ "expectedWeight": null
+ }
+}`
+ },
+ codeSampleTestnet: {
+ esModule: ['000000000000009c08dc77c3f224d9f5bbe335a78b996ec1e0701e065537ca81'],
+ commonJS: ['000000000000009c08dc77c3f224d9f5bbe335a78b996ec1e0701e065537ca81'],
+ curl: ['000000000000009c08dc77c3f224d9f5bbe335a78b996ec1e0701e065537ca81'],
+ response: `{
+ "id": "000000000000009c08dc77c3f224d9f5bbe335a78b996ec1e0701e065537ca81",
+ "height": 2091140,
+ "version": 543162372,
+ "timestamp": 1630625150,
+ "bits": 436273151,
+ "nonce": 1600805744,
+ "difficulty": 16777216,
+ "merkle_root": "5d10d8d158bb8eb217d01fecc435bd10eda028043a913dc2bfe0ccf536a51cc9",
+ "tx_count": 2,
+ "size": 575,
+ "weight": 1865,
+ "previousblockhash": "0000000000000073f95d1fc0a93d449f82a754410c635e46264ec6c7c4d5741e",
+ "mediantime": 1630621997,
+ "extras": {
+ "totalFees": 877,
+ "medianFee": 5,
+ "feeRange": [
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5
+ ],
+ "reward": 9766502,
+ "pool": {
+ "id": 0,
+ "name": "Unknown",
+ "slug": "unknown",
+ "minerNames": null
+ },
+ "avgFee": 877,
+ "avgFeeRate": 5,
+ "coinbaseRaw": "0384e81f047e5d3161425443506f6f6cfabe6d6dfc481b6989a49bad403c75b0abfcdb7796b42489514a8c2d2294d7e5b2c93c05020000007296cd10010022583d1d000000000000",
+ "coinbaseAddress": "2N4YXTxKEso3yeYXNn5h42Vqu3FzTTQ8Lq5",
+ "coinbaseAddresses": [
+ "2N4YXTxKEso3yeYXNn5h42Vqu3FzTTQ8Lq5"
+ ],
+ "coinbaseSignature": "OP_HASH160 OP_PUSHBYTES_20 7bef0b4a4dafa77b2ec52b81659cbcf0d9a91487 OP_EQUAL",
+ "coinbaseSignatureAscii": "...",
+ "avgTxSize": 128,
+ "totalInputs": 1,
+ "totalOutputs": 5,
+ "totalOutputAmt": 4728937,
+ "medianFeeAmt": null,
+ "feePercentiles": null,
+ "segwitTotalTxs": 1,
+ "segwitTotalSize": 256,
+ "segwitTotalWeight": 697,
+ "header": "040060201e74d5c4c7c64e26465e630c4154a7829f443da9c01f5df97300000000000000c91ca536f5cce0bfc23d913a0428a0ed10bd35c4ec1fd017b28ebb58d1d8105d7e5d3161ffff001a705b6a5f",
+ "utxoSetChange": 4,
+ "utxoSetSize": 26144301,
+ "totalInputAmt": 4729814,
+ "virtualSize": 466.25,
+ "firstSeen": null,
+ "orphans": [],
+ "matchRate": null,
+ "expectedFees": null,
+ "expectedWeight": null
+ }
+}`
+ },
+ codeSampleSignet: {
+ esModule: ['000000ca66fab8083d4f0370d499c3d602e78af5fa69b2427cda15a3f0d96152'],
+ commonJS: ['000000ca66fab8083d4f0370d499c3d602e78af5fa69b2427cda15a3f0d96152'],
+ curl: ['000000ca66fab8083d4f0370d499c3d602e78af5fa69b2427cda15a3f0d96152'],
+ response: `{
+ "id": "000000ca66fab8083d4f0370d499c3d602e78af5fa69b2427cda15a3f0d96152",
+ "height": 53745,
+ "version": 536870912,
+ "timestamp": 1630624390,
+ "bits": 503404179,
+ "nonce": 19642021,
+ "difficulty": 0.002919030932507782,
+ "merkle_root": "2c1984132841b9f98270274012b22beb7d4ade778cf058e9a44d38de5a111362",
+ "tx_count": 1,
+ "size": 343,
+ "weight": 1264,
+ "previousblockhash": "000001497bffdc2347656847647f343afc0eee441a849259335b8a1d79b6aa4a",
+ "mediantime": 1630621400,
+ "extras": {
+ "totalFees": 0,
+ "medianFee": 0,
+ "feeRange": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "reward": 5000000000,
+ "pool": {
+ "id": 0,
+ "name": "Unknown",
+ "slug": "unknown",
+ "minerNames": null
+ },
+ "avgFee": 0,
+ "avgFeeRate": 0,
+ "coinbaseRaw": "03f1d100",
+ "coinbaseAddress": "tb1pqk4mdqzp8kpu2g6nrahwd9j0muacyjfadk99tvmpf5vqya8rt5fq2dxx99",
+ "coinbaseAddresses": [
+ "tb1pqk4mdqzp8kpu2g6nrahwd9j0muacyjfadk99tvmpf5vqya8rt5fq2dxx99"
+ ],
+ "coinbaseSignature": "OP_PUSHNUM_1 OP_PUSHBYTES_32 05abb680413d83c523531f6ee6964fdf3b82493d6d8a55b3614d180274e35d12",
+ "coinbaseSignatureAscii": "...",
+ "avgTxSize": 0,
+ "totalInputs": 0,
+ "totalOutputs": 2,
+ "totalOutputAmt": 0,
+ "medianFeeAmt": null,
+ "feePercentiles": null,
+ "segwitTotalTxs": 0,
+ "segwitTotalSize": 0,
+ "segwitTotalWeight": 0,
+ "header": "000000204aaab6791d8a5b335992841a44ee0efc3a347f644768654723dcff7b490100006213115ade384da4e958f08c77de4a7deb2bb21240277082f9b941281384192c865a31619356011ea5b62b01",
+ "utxoSetChange": 2,
+ "utxoSetSize": 302621,
+ "totalInputAmt": 0,
+ "virtualSize": 316,
+ "firstSeen": null,
+ "orphans": [],
+ "matchRate": null,
+ "expectedFees": null,
+ "expectedWeight": null
+ }
+}`
+ },
+ codeSampleLiquid: {
+ esModule: [`86aefdd3cf7be8e5781f783fe5d80513e8b3f52f2f1ef61e8e056b7faffc4b78`],
+ commonJS: [`86aefdd3cf7be8e5781f783fe5d80513e8b3f52f2f1ef61e8e056b7faffc4b78`],
+ curl: [`86aefdd3cf7be8e5781f783fe5d80513e8b3f52f2f1ef61e8e056b7faffc4b78`],
+ response: `{
+ "id": "86aefdd3cf7be8e5781f783fe5d80513e8b3f52f2f1ef61e8e056b7faffc4b78",
+ "height": 1471971,
+ "version": 570425344,
+ "timestamp": 1630625518,
+ "bits": null,
+ "merkle_root": "7e40735e103d6015c90d285d09b535498c0a26df9ca8118b1b4d68aaf80ccf48",
+ "tx_count": 2,
+ "size": 10841,
+ "weight": 16913,
+ "previousblockhash": "944fa8ffd906b3531af95f3d9b052dfdef0b60657c3c8def2c3591384f083424",
+ "mediantime": 1630625218,
+ "stale": false
+}`,
+ },
+ codeSampleLiquidTestnet: {
+ esModule: [`8f7cb70f32e2069724212c986f34462fc40180eabf189b44486faf6989824f9a`],
+ commonJS: [`8f7cb70f32e2069724212c986f34462fc40180eabf189b44486faf6989824f9a`],
+ curl: [`8f7cb70f32e2069724212c986f34462fc40180eabf189b44486faf6989824f9a`],
+ response: `{
+ "id": "8f7cb70f32e2069724212c986f34462fc40180eabf189b44486faf6989824f9a",
+ "height": 154705,
+ "version": 536870912,
+ "timestamp": 1641154264,
+ "bits": null,
+ "merkle_root": "e7cc1145b3b074be73a84119485a504de77967aabe415240caca0e2c41a8b9b4",
+ "tx_count": 2,
+ "size": 5137,
+ "weight": 7012,
+ "previousblockhash": "2745fd72a5bd2b256c9d2044631032d2cd872f1f0001c3db52e26604a6423526",
+ "mediantime": 1641153964,
+ "stale": false
}`,
},
}
diff --git a/frontend/src/app/docs/api-docs/api-docs-nav.component.html b/frontend/src/app/docs/api-docs/api-docs-nav.component.html
index 13b7cbe809..3dab114cf8 100644
--- a/frontend/src/app/docs/api-docs/api-docs-nav.component.html
+++ b/frontend/src/app/docs/api-docs/api-docs-nav.component.html
@@ -4,5 +4,5 @@
-1 ) && ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ))">{{ item.title }}
- -1 ) && ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ) || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled ) )" (click)="navLinkClick($event, item.fragment)">{{ item.title }} + -1 ) && ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ) || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled ) || ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('electrsOnly') && item.options.electrsOnly && runningElectrs) ) )" (click)="navLinkClick($event, item.fragment)">{{ item.title }}Note that we enforce rate limits. If you exceed these limits, you will get an HTTP 429 error. If you repeatedly exceed the limits, you may be banned from accessing the service altogether. Consider an enterprise sponsorship if you need higher API limits.
extras field. If :startHeight is specified, the past 15 blocks before (and including) :startHeight are returned."
+ default: "Returns details on the past 10 blocks. If :startHeight is specified, the 10 blocks before (and including) :startHeight are returned."
},
- urlString: "/v1/blocks[/:startHeight]",
+ urlString: "/blocks[/:startHeight]",
showConditions: bitcoinNetworks,
showJsExamples: showJsExamplesDefault,
codeExample: {
default: {
codeTemplate: {
- curl: `/api/v1/blocks/%{1}`,
+ curl: `/api/blocks/%{1}`,
commonJS: `
const { %{0}: { blocks } } = mempoolJS();
@@ -4967,74 +4968,206 @@ export const restApiDocsData = [
response: `[
{
"id": "0000000000000000000384f28cb3b9cf4377a39cfd6c29ae9466951de38c0529",
- "timestamp": 1648829449,
"height": 730000,
"version": 536870912,
- "bits": 386521239,
- "nonce": 3580664066,
- "difficulty": 28587155782195.14,
- "merkle_root": "efa344bcd6c0607f93b709515dd6dc5496178112d680338ebea459e3de7b4fbc",
+ "timestamp": 1648829449,
"tx_count": 1627,
"size": 1210916,
"weight": 3993515,
+ "merkle_root": "efa344bcd6c0607f93b709515dd6dc5496178112d680338ebea459e3de7b4fbc",
"previousblockhash": "00000000000000000008b6f6fb83f8d74512ef1e0af29e642dd20daddd7d318f",
- "extras": {
- "coinbaseRaw": "0390230b1362696e616e63652f383038e0006f02cd583765fabe6d6d686355577affaad03015e732428a927a5d2d842471b350394139616bcb4401d804000000000000001a750000c9ad0000",
- "medianFee": 11,
- "feeRange": [
- 1,
- 11,
- 11,
- 11,
- 18,
- 21,
- 660
- ],
- "reward": 641321983,
- "totalFees": 16321983,
- "avgFee": 10038,
- "avgFeeRate": 16,
- "pool": {
- "id": 105,
- "name": "Binance Pool",
- "slug": "binancepool"
- }
- }
+ "mediantime": 1648827418,
+ "nonce": 3580664066,
+ "bits": 386521239,
+ "difficulty": 28587155782195.1
},
{
"id": "00000000000000000008b6f6fb83f8d74512ef1e0af29e642dd20daddd7d318f",
- "timestamp": 1648828946,
"height": 729999,
"version": 793796608,
- "bits": 386521239,
- "nonce": 3477019455,
- "difficulty": 28587155782195.14,
- "merkle_root": "d84f9cc1823bd069c505061b1f6faabd809d67ab5354e9f6234312dc4bdb1ecf",
+ "timestamp": 1648828946,
"tx_count": 2574,
"size": 1481957,
"weight": 3993485,
+ "merkle_root": "d84f9cc1823bd069c505061b1f6faabd809d67ab5354e9f6234312dc4bdb1ecf",
"previousblockhash": "000000000000000000071e6c86c2175aa86817cae2a77acd95372b55c1103d89",
+ "mediantime": 1648827210,
+ "nonce": 3477019455,
+ "bits": 386521239,
+ "difficulty": 28587155782195.1
+ },
+ ...
+]`,
+ },
+ codeSampleTestnet: {
+ esModule: ['2091187'],
+ commonJS: ['2091187'],
+ curl: ['2091187'],
+ response: `[
+ {
+ "id": "00000000000000533f63df886281a9fd74da163e84a21445153ff480e5f57970",
+ "height": 2091187,
+ "version": 545259520,
+ "timestamp": 1630641890,
+ "tx_count": 26,
+ "size": 8390,
+ "weight": 22985,
+ "merkle_root": "4d6df12a4af11bb928c7b2930e0a4d2c3e268c6dc6a07462943ad1c4b6b96468",
+ "previousblockhash": "0000000000000079103da7d296e1480295df795b7379e7dffd27743e214b0b32",
+ "mediantime": 1630639627,
+ "nonce": 309403673,
+ "bits": 436273151,
+ "difficulty": 16777216
+ },
+ {
+ "id": "0000000000000079103da7d296e1480295df795b7379e7dffd27743e214b0b32",
+ "height": 2091186,
+ "version": 541065216,
+ "timestamp": 1630641655,
+ "tx_count": 43,
+ "size": 11427,
+ "weight": 32472,
+ "merkle_root": "c70fa944f2863dc0828ee93ec0407bb8473e3b9bb94854ffd3fa1ccb9855d76a",
+ "previousblockhash": "00000000000000f015cb6ce3c007b56a053c4b3c3c86a36130e63310da787a30",
+ "mediantime": 1630639598,
+ "nonce": 2671302918,
+ "bits": 436273151,
+ "difficulty": 16777216
+ },
+ ...
+]`
+ },
+ codeSampleSignet: {
+ esModule: ['53783'],
+ commonJS: ['53783'],
+ curl: ['53783'],
+ response: `[
+ {
+ "id": "0000010eeacb878340bae34af4e13551413d76a172ec302f7e50b62cb45374f2",
+ "height": 53783,
+ "version": 536870912,
+ "timestamp": 1630641504,
+ "tx_count": 1,
+ "size": 343,
+ "weight": 1264,
+ "merkle_root": "3063ff3802c920eea68bdc9303957f3e7bfd0a03c93547fd7dad14b77a07d4e8",
+ "previousblockhash": "00000109a7ea774fcc2d173f9a1da9595a47ff401dac67ca9edea149954210fa",
+ "mediantime": 1630638966,
+ "nonce": 11753379,
+ "bits": 503404179,
+ "difficulty": 0.00291903093250778
+ },
+ {
+ "id": "00000109a7ea774fcc2d173f9a1da9595a47ff401dac67ca9edea149954210fa",
+ "height": 53782,
+ "version": 536870912,
+ "timestamp": 1630640959,
+ "tx_count": 10,
+ "size": 1837,
+ "weight": 5545,
+ "merkle_root": "888cf13ad83ba4c9d44dee7984a1dafee6c78d329178c51bf0ffe61d98df40f3",
+ "previousblockhash": "000001508377eba43e83abb169ee1454daed14697267b9baf970b3fd556191e3",
+ "mediantime": 1630638721,
+ "nonce": 1074604,
+ "bits": 503404179,
+ "difficulty": 0.00291903093250778
+ },
+ ...
+]`
+ },
+ codeSampleLiquid: emptyCodeSample,
+ codeSampleLiquidTestnet: emptyCodeSample,
+ }
+ }
+ },
+ {
+ type: "endpoint",
+ category: "blocks",
+ httpRequestMethod: "GET",
+ fragment: "get-blocks-v1",
+ title: "GET Blocks (v1)",
+ description: {
+ default: "Returns details on the past 15 blocks from Mempool's Node.js backend. Includes fee and mining details in an extras field. If :startHeight is specified, the past 15 blocks before (and including) :startHeight are returned."
+ },
+ urlString: "/v1/blocks[/:startHeight]",
+ showConditions: bitcoinNetworks,
+ showJsExamples: showJsExamplesDefault,
+ codeExample: {
+ default: {
+ codeTemplate: {
+ curl: `/api/v1/blocks/%{1}`,
+ commonJS: `
+ const { %{0}: { blocks } } = mempoolJS();
+
+ const getBlocks = await blocks.getBlocks({ startHeight: %{1} });
+
+ document.getElementById("result").textContent = JSON.stringify(getBlocks, undefined, 2);
+ `,
+ esModule: `
+ const { %{0}: { blocks } } = mempoolJS();
+
+ const getBlocks = await blocks.getBlocks({ startHeight: %{1} });
+ console.log(getBlocks);
+ `,
+ },
+ codeSampleMainnet: {
+ esModule: ['730000'],
+ commonJS: ['730000'],
+ curl: ['730000'],
+ response: `[
+ {
+ "id": "0000000000000000000384f28cb3b9cf4377a39cfd6c29ae9466951de38c0529",
+ "height": 730000,
+ "version": 536870912,
+ "timestamp": 1648829449,
+ "bits": 386521239,
+ "nonce": 3580664066,
+ "difficulty": 28587155782195.1,
+ "merkle_root": "efa344bcd6c0607f93b709515dd6dc5496178112d680338ebea459e3de7b4fbc",
+ "tx_count": 1627,
+ "size": 1210916,
+ "weight": 3993515,
+ "previousblockhash": "00000000000000000008b6f6fb83f8d74512ef1e0af29e642dd20daddd7d318f",
+ "mediantime": 1648827418,
"extras": {
- "coinbaseRaw": "038f230b1362696e616e63652f373739d8002900ca5de7a9fabe6d6dda31112c36c10a523154eae76847579755cd4ae558ee2e6f9f200b05dd32a0bf04000000000000006372000000020000",
- "medianFee": 17,
- "feeRange": [
- 2,
- 11,
- 14,
- 17,
- 19,
- 28,
- 502
- ],
- "reward": 649090210,
- "totalFees": 24090210,
- "avgFee": 9362,
- "avgFeeRate": 24,
+ "totalFees": 16321983,
+ "medianFee": 11,
+ "feeRange": [1, 11, 11, 11, 18, 21, 660],
+ "reward": 641321983,
"pool": {
"id": 105,
"name": "Binance Pool",
- "slug": "binancepool"
- }
+ "slug": "binancepool",
+ "minerNames": null
+ },
+ "avgFee": 10038,
+ "avgFeeRate": 16,
+ "coinbaseRaw": "0390230b1362696e616e63652f383038e0006f02cd583765fabe6d6d686355577affaad03015e732428a927a5d2d842471b350394139616bcb4401d804000000000000001a750000c9ad0000",
+ "coinbaseAddress": "1JvXhnHCi6XqcanvrZJ5s2Qiv4tsmm2UMy",
+ "coinbaseAddresses": [
+ "1JvXhnHCi6XqcanvrZJ5s2Qiv4tsmm2UMy"
+ ],
+ "coinbaseSignature": "OP_DUP OP_HASH160 OP_PUSHBYTES_20 c499d0604392cc2051d7476056647d1c1bfc3f38 OP_EQUALVERIFY OP_CHECKSIG",
+ "coinbaseSignatureAscii": "...",
+ "avgTxSize": 744,
+ "totalInputs": 6249,
+ "totalOutputs": 6768,
+ "totalOutputAmt": 1314305994870,
+ "medianFeeAmt": 3182,
+ "feePercentiles": [313, 2086, 2538, 3182, 5625, 14136, 990660],
+ "segwitTotalTxs": 1314,
+ "segwitTotalSize": 1031785,
+ "segwitTotalWeight": 3277099,
+ "header": "000000208f317dddad0dd22d649ef20a1eef1245d7f883fbf6b608000000000000000000bc4f7bdee359a4be8e3380d61281179654dcd65d5109b7937f60c0d6bc44a3ef0924476297d8091702996cd5",
+ "utxoSetChange": 519,
+ "utxoSetSize": 80390138,
+ "totalInputAmt": 1314322316853,
+ "virtualSize": 998378.75,
+ "firstSeen": null,
+ "orphans": [],
+ "matchRate": null,
+ "expectedFees": null,
+ "expectedWeight": null
}
},
...
@@ -5045,11 +5178,11 @@ export const restApiDocsData = [
commonJS: ['2091187'],
curl: ['2091187'],
response: `[
- {
+ {
"id": "00000000000000533f63df886281a9fd74da163e84a21445153ff480e5f57970",
- "timestamp": 1630641890,
"height": 2091187,
"version": 545259520,
+ "timestamp": 1630641890,
"bits": 436273151,
"nonce": 309403673,
"difficulty": 16777216,
@@ -5058,27 +5191,46 @@ export const restApiDocsData = [
"size": 8390,
"weight": 22985,
"previousblockhash": "0000000000000079103da7d296e1480295df795b7379e7dffd27743e214b0b32",
+ "mediantime": 1630639627,
"extras": {
- "coinbaseRaw": "03b3e81f3a205468697320626c6f636b20776173206d696e65642077697468206120636172626f6e206e6567617469766520706f77657220736f75726365201209687a2009092009020de601d7986a040000",
+ "totalFees": 781942,
"medianFee": 1,
- "feeRange": [
- 1,
- 1,
- 1,
- 1,
- 5,
- 56,
- 5053
- ],
+ "feeRange": [1, 1, 1, 1, 5, 56, 5053],
"reward": 10547567,
- "totalFees": 781942,
- "avgFee": 31277,
- "avgFeeRate": 143,
"pool": {
- "id": 137,
+ "id": 0,
"name": "Unknown",
- "slug": "unknown"
- }
+ "slug": "unknown",
+ "minerNames": null
+ },
+ "avgFee": 31277,
+ "avgFeeRate": 143,
+ "coinbaseRaw": "03b3e81f3a205468697320626c6f636b20776173206d696e65642077697468206120636172626f6e206e6567617469766520706f77657220736f75726365201209687a2009092009020de601d7986a040000",
+ "coinbaseAddress": "2MtzNEqm2D9jcbPJ5mW7Z3AUNwqt3afZH66",
+ "coinbaseAddresses": [
+ "2MtzNEqm2D9jcbPJ5mW7Z3AUNwqt3afZH66"
+ ],
+ "coinbaseSignature": "OP_HASH160 OP_PUSHBYTES_20 1320e6542e2146ea486700f4091aa793e7360788 OP_EQUAL",
+ "coinbaseSignatureAscii": "...",
+ "avgTxSize": 310.04,
+ "totalInputs": 33,
+ "totalOutputs": 64,
+ "totalOutputAmt": 30223143847,
+ "medianFeeAmt": null,
+ "feePercentiles": null,
+ "segwitTotalTxs": 24,
+ "segwitTotalSize": 7709,
+ "segwitTotalWeight": 20369,
+ "header": "00008020320b4b213e7427fddfe779735b79df950248e196d2a73d1079000000000000006864b9b6c4d13a946274a0c66d8c263e2c4d0a0e93b2c728b91bf14a2af16d4de29e3161ffff001a19207112",
+ "utxoSetChange": 31,
+ "utxoSetSize": 26145554,
+ "totalInputAmt": 30223925789,
+ "virtualSize": 5746.25,
+ "firstSeen": null,
+ "orphans": [],
+ "matchRate": null,
+ "expectedFees": null,
+ "expectedWeight": null
}
},
...
@@ -5091,38 +5243,57 @@ export const restApiDocsData = [
response: `[
{
"id": "0000010eeacb878340bae34af4e13551413d76a172ec302f7e50b62cb45374f2",
- "timestamp": 1630641504,
"height": 53783,
"version": 536870912,
+ "timestamp": 1630641504,
"bits": 503404179,
"nonce": 11753379,
- "difficulty": 0.002919030932507782,
+ "difficulty": 0.00291903093250778,
"merkle_root": "3063ff3802c920eea68bdc9303957f3e7bfd0a03c93547fd7dad14b77a07d4e8",
"tx_count": 1,
"size": 343,
"weight": 1264,
"previousblockhash": "00000109a7ea774fcc2d173f9a1da9595a47ff401dac67ca9edea149954210fa",
+ "mediantime": 1630638966,
"extras": {
- "coinbaseRaw": "0317d200",
+ "totalFees": 0,
"medianFee": 0,
- "feeRange": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
+ "feeRange": [0, 0, 0, 0, 0, 0, 0],
"reward": 5000000000,
- "totalFees": 0,
- "avgFee": 0,
- "avgFeeRate": 0,
"pool": {
- "id": 137,
+ "id": 0,
"name": "Unknown",
- "slug": "unknown"
- }
+ "slug": "unknown",
+ "minerNames": null
+ },
+ "avgFee": 0,
+ "avgFeeRate": 0,
+ "coinbaseRaw": "0317d200",
+ "coinbaseAddress": "tb1p95clr67qe8s3l27nd2cry22fdhmque3fgze08urhc099pml0rwmqddz08l",
+ "coinbaseAddresses": [
+ "tb1p95clr67qe8s3l27nd2cry22fdhmque3fgze08urhc099pml0rwmqddz08l"
+ ],
+ "coinbaseSignature": "OP_PUSHNUM_1 OP_PUSHBYTES_32 2d31f1ebc0c9e11fabd36ab03229496df60e662940b2f3f077c3ca50efef1bb6",
+ "coinbaseSignatureAscii": "...",
+ "avgTxSize": 0,
+ "totalInputs": 0,
+ "totalOutputs": 2,
+ "totalOutputAmt": 0,
+ "medianFeeAmt": null,
+ "feePercentiles": null,
+ "segwitTotalTxs": 0,
+ "segwitTotalSize": 0,
+ "segwitTotalWeight": 0,
+ "header": "00000020fa10429549a1de9eca67ac1d40ff475a59a91d9a3f172dcc4f77eaa709010000e8d4077ab714ad7dfd4735c9030afd7b3e7f950393dc8ba6ee20c90238ff6330609d31619356011ea357b300",
+ "utxoSetChange": 2,
+ "utxoSetSize": 303088,
+ "totalInputAmt": 0,
+ "virtualSize": 316,
+ "firstSeen": null,
+ "orphans": [],
+ "matchRate": null,
+ "expectedFees": null,
+ "expectedWeight": null
}
},
...
From 7fd006d113f9a102502044919d9d810858caf3ff Mon Sep 17 00:00:00 2001
From: hunicus <93150691+hunicus@users.noreply.github.com>
Date: Wed, 14 May 2025 01:51:04 -0400
Subject: [PATCH 04/17] Add get-blocks-v1 doc for liquid
---
.../src/app/docs/api-docs/api-docs-data.ts | 163 +++++++++++++++---
1 file changed, 143 insertions(+), 20 deletions(-)
diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts
index f91850bbb6..06756063f2 100644
--- a/frontend/src/app/docs/api-docs/api-docs-data.ts
+++ b/frontend/src/app/docs/api-docs/api-docs-data.ts
@@ -5555,16 +5555,120 @@ export const restApiDocsData = [
curl: ['1472246'],
response: `[
{
- id: "0bd348c08101fef863b7263b2b44b2f6575f707f1e397da95cfe2afdd5e9ccdb",
- height: 1472246,
- version: 570425344,
- timestamp: 1630642018,
- tx_count: 2,
- size: 10838,
- weight: 16901,
- merkle_root: "a8cdc1ba96d1f862ca7c9aec4133a6efd14138f54c17efdbc968632a6b9cb8c8",
- previousblockhash: "a06c327cdd76301de57ba0cf86c5ae8b1fd8a785945065ac9e2128322bd01f31",
- mediantime: 1630641718
+ "id": "0bd348c08101fef863b7263b2b44b2f6575f707f1e397da95cfe2afdd5e9ccdb",
+ "height": 1472246,
+ "version": 570425344,
+ "timestamp": 1630642018,
+ "tx_count": 2,
+ "size": 10838,
+ "weight": 16901,
+ "merkle_root": "a8cdc1ba96d1f862ca7c9aec4133a6efd14138f54c17efdbc968632a6b9cb8c8",
+ "previousblockhash": "a06c327cdd76301de57ba0cf86c5ae8b1fd8a785945065ac9e2128322bd01f31",
+ "mediantime": 1630641718
+ },
+ {
+ "id": "a06c327cdd76301de57ba0cf86c5ae8b1fd8a785945065ac9e2128322bd01f31",
+ "height": 1472245,
+ "version": 570425344,
+ "timestamp": 1630641958,
+ "tx_count": 2,
+ "size": 10838,
+ "weight": 16901,
+ "merkle_root": "d3c370aabe96147b59f2e40511b0d8b7ee56eeb08d45816af6c4cae710643ce7",
+ "previousblockhash": "2ec34bb6f0730aa19d7c72346d6e3382620509de048a3b03658af7db19355240",
+ "mediantime": 1630641658
+ },
+ ...
+]`
+ },
+ codeSampleLiquidTestnet: {
+ esModule: ['150000'],
+ commonJS: ['150000'],
+ curl: ['150000'],
+ response: `[
+ {
+ "id": "67d5eb1aee63c6c2058a088985503ff0626fd3f7f8022bdc74fab36a359164db",
+ "height": 150000,
+ "version": 536870912,
+ "timestamp": 1640871913,
+ "tx_count": 2,
+ "size": 3527,
+ "weight": 7430,
+ "merkle_root": "40538ff1fcac07c65e36fcc230fc60f58e3a885ce9898e41bc27bcf28227e5ff",
+ "previousblockhash": "2d8c28042b03219e7e9bc6853cc3ae536e36be5639869c545a0f3dbd1309e2a5",
+ "mediantime": 1640871614
+ },
+ {
+ "id": "2d8c28042b03219e7e9bc6853cc3ae536e36be5639869c545a0f3dbd1309e2a5",
+ "height": 149999,
+ "version": 536870912,
+ "timestamp": 1640871853,
+ "tx_count": 3,
+ "size": 4380,
+ "weight": 8097,
+ "merkle_root": "38495212acd5e3ad4fdce7cce29c8c892b20c3ffacbcd73ecb2b234c6aca67c2",
+ "previousblockhash": "7bd9ed9ff823d4605a476a12554c75087ab7f55fa6273a1b4b1115b09bb9586e",
+ "mediantime": 1640871554
+ },
+ ...
+]`
+ },
+ }
+ }
+ },
+ {
+ type: "endpoint",
+ category: "blocks",
+ httpRequestMethod: "GET",
+ fragment: "get-blocks-v1",
+ title: "GET Blocks (v1)",
+ description: {
+ default: "Returns details on the past 15 blocks from Mempool's Node.js backend. If :startHeight is specified, the past 15 blocks before (and including) :startHeight are returned."
+ },
+ urlString: "/v1/blocks[/:startHeight]",
+ showConditions: liquidNetworks,
+ showJsExamples: showJsExamplesDefault,
+ codeExample: {
+ default: {
+ codeTemplate: {
+ curl: `/api/v1/blocks/%{1}`,
+ commonJS: `
+ const { %{0}: { blocks } } = mempoolJS();
+
+ const getBlocks = await blocks.getBlocks({ startHeight: %{1} });
+
+ document.getElementById("result").textContent = JSON.stringify(getBlocks, undefined, 2);
+ `,
+ esModule: `
+ const { %{0}: { blocks } } = mempoolJS();
+
+ const getBlocks = await blocks.getBlocks({ startHeight: %{1} });
+ console.log(getBlocks);
+ `,
+ },
+ codeSampleMainnet: emptyCodeSample,
+ codeSampleTestnet: emptyCodeSample,
+ codeSampleSignet: emptyCodeSample,
+ codeSampleLiquid: {
+ esModule: ['1472246'],
+ commonJS: ['1472246'],
+ curl: ['1472246'],
+ response: `[
+ {
+ "id": "0bd348c08101fef863b7263b2b44b2f6575f707f1e397da95cfe2afdd5e9ccdb",
+ "height": 1472246,
+ "version": 570425344,
+ "timestamp": 1630642018,
+ "tx_count": 2,
+ "size": 10838,
+ "weight": 16901,
+ "merkle_root": "a8cdc1ba96d1f862ca7c9aec4133a6efd14138f54c17efdbc968632a6b9cb8c8",
+ "previousblockhash": "a06c327cdd76301de57ba0cf86c5ae8b1fd8a785945065ac9e2128322bd01f31",
+ "mediantime": 1630641718,
+ "ext": {
+ "challenge": "5b21026a2a106ec32c8a1e8052e5d02a7b0a150423dbd9b116fc48d46630ff6e6a05b92102791646a8b49c2740352b4495c118d876347bf47d0551c01c4332fdc2df526f1a2102888bda53a424466b0451627df22090143bbf7c060e9eacb1e38426f6b07f2ae12102aee8967150dee220f613de3b239320355a498808084a93eaf39a34dcd62024852102d46e9259d0a0bb2bcbc461a3e68f34adca27b8d08fbe985853992b4b104e27412102e9944e35e5750ab621e098145b8e6cf373c273b7c04747d1aa020be0af40ccd62102f9a9d4b10a6d6c56d8c955c547330c589bb45e774551d46d415e51cd9ad5116321033b421566c124dfde4db9defe4084b7aa4e7f36744758d92806b8f72c2e943309210353dcc6b4cf6ad28aceb7f7b2db92a4bf07ac42d357adf756f3eca790664314b621037f55980af0455e4fb55aad9b85a55068bb6dc4740ea87276dc693f4598db45fa210384001daa88dabd23db878dbb1ce5b4c2a5fa72c3113e3514bf602325d0c37b8e21039056d089f2fe72dbc0a14780b4635b0dc8a1b40b7a59106325dd1bc45cc70493210397ab8ea7b0bf85bc7fc56bb27bf85e75502e94e76a6781c409f3f2ec3d1122192103b00e3b5b77884bf3cae204c4b4eac003601da75f96982ffcb3dcb29c5ee419b92103c1f3c0874cfe34b8131af34699589aacec4093399739ae352e8a46f80a6f68375fae",
+ "solution": "0046304402206263bb35516e8ad806f3626d228dec7929e89202522b219257e7e5eedb64e8ff022036c5bfd2b16e43c5162d35fbc64041630e98f4574775ce3ebe8fc135c84234a646304402200450dabc776fe95cdecef09171141f56c26a0f4a9c5f9256f1d8e67aedb956a40220048d27e08acf5f002d823b2359a58b7b7df57b2121b5c64460dbc0f7807b31f6473045022100b763029e99a6debe765f640128eeaeb7bf721f5fd0a90d72457dffe6b6d97db5022015d492f8bbec838d7b90f5fbe4a0041766ca797e1b61069eef213dd064ede42146304402200a6342eeee2be815c3bf68321692b8f0cbe605cd0d626784f61def9e733164d202200f67b624626e25077db19b098543681e064f45f9eb8ae6888eb78de5af1bb621473045022100c1101245ccf45308d6cf92af9a43c34073aa9be59c6f78c86df8ef7f3a5c5fe0022056098b793ca730cc8e623bd7f9cbd2ba548cb10ba6976e56fcee5ab37e59ad9046304402205d74c5fd7037fe653045d57622bd69b10da7a5de9526996e065b6a6a7c5814f802207a0f6169c85e89a0cb18f908440ec67a63367327e0e3ea45adfa7a3e81f6bb1c473045022100808f8cd8a45b734c6c49afcbdfba8abac16ba4884f201b21a2e146f5ba1b90570220267a207cf36c98c844a353dfd4760053bc132c1271eb52a95219b5075e006c5d473045022100a90a1a40f8dce2085503adc845902db7400dfcfc201cd12cdde8c29694ddd8c40220505f562d7325abbebd263823fd96380fbe000aac3f821de4842a880477cf8e22473045022100b330af409638f2480b3cb931449a513014b9345875ec6e6407187a2beddb522a022069f3b65961c8e920f7ae07be0eb249ef9e7d0a173c7ab3eb236d0e52863f8dfd463044022012149a50dff010d49d1aaa9d25c187dc8c42a713fde49e4e705de9210acd6f1102202a7e63ac3ea01e4a36f0c15044ee2e8b6614c568a442d89cdb0d65c33795ab7d46304402200e7fe3f26c3579b376401f2f650482bd435e0c3cea436041c5a7b8add31543190220368a35ef33d44a6d3dbd97c68cd19042f041c9204e858c42a20014827f0762a7"
+ }
},
...
]`
@@ -5575,16 +5679,35 @@ export const restApiDocsData = [
curl: ['150000'],
response: `[
{
- id: "67d5eb1aee63c6c2058a088985503ff0626fd3f7f8022bdc74fab36a359164db",
- height: 150000,
- version: 536870912,
- timestamp: 1640871913,
- tx_count: 2,
- size: 3527,
- weight: 7430,
- merkle_root: "40538ff1fcac07c65e36fcc230fc60f58e3a885ce9898e41bc27bcf28227e5ff",
- previousblockhash: "2d8c28042b03219e7e9bc6853cc3ae536e36be5639869c545a0f3dbd1309e2a5",
- mediantime: 1640871614
+ "id": "67d5eb1aee63c6c2058a088985503ff0626fd3f7f8022bdc74fab36a359164db",
+ "height": 150000,
+ "version": 536870912,
+ "timestamp": 1640871913,
+ "tx_count": 2,
+ "size": 3527,
+ "weight": 7430,
+ "merkle_root": "40538ff1fcac07c65e36fcc230fc60f58e3a885ce9898e41bc27bcf28227e5ff",
+ "previousblockhash": "2d8c28042b03219e7e9bc6853cc3ae536e36be5639869c545a0f3dbd1309e2a5",
+ "mediantime": 1640871614,
+ "ext": {
+ "current": {
+ "extension_space": [
+ "02fcba7ecf41bc7e1be4ee122d9d22e3333671eb0a3a87b5cdf099d59874e1940f02fcba7ecf41bc7e1be4ee122d9d22e3333671eb0a3a87b5cdf099d59874e1940f"
+ ],
+ "fedpeg_program": "a91472c44f957fc011d97e3406667dca5b1c930c402687",
+ "fedpegscript": "51",
+ "signblock_witness_limit": 150,
+ "signblockscript": "0020e9e4117540f7f23b3edd7c2cad660a17fb33c7959b8c37cf61d92b189133929a"
+ },
+ "proposed": {
+
+ },
+ "signblock_witness": [
+ [],
+ [48, 68, 2, 32, 19, 152, 101, 5, 73, 58, 8, 11, 11, 62, 1, 201, 143, 107, 66, 185, 6, 95, 214, 77, 245, 159, 76, 23, 142, 153, 237, 165, 123, 120, 81, 38, 2, 32, 69, 126, 115, 140, 254, 188, 41, 52, 195, 99, 228, 176, 248, 113, 234, 84, 23, 134, 83, 245, 153, 218, 242, 16, 184, 101, 163, 30, 221, 28, 216, 195, 1],
+ [81, 33, 2, 23, 228, 3, 221, 177, 129, 135, 44, 50, 160, 205, 70, 140, 113, 0, 64, 178, 245, 61, 140, 172, 105, 241, 141, 173, 7, 152, 94, 227, 126, 154, 113, 81, 174]
+ ]
+ }
},
...
]`
From 5a53368e15f6574d70bc6a5dfd8d24882ee142d3 Mon Sep 17 00:00:00 2001
From: nymkappa <1612910616@pm.me>
Date: Sat, 17 May 2025 19:37:38 +0200
Subject: [PATCH 05/17] fix copy, add missing error string
---
.../accelerate-checkout/accelerate-checkout.component.html | 2 +-
.../shared/components/mempool-error/mempool-error.component.ts | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.html b/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.html
index 652d991f2e..c9a0f54cf8 100644
--- a/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.html
+++ b/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.html
@@ -591,7 +591,7 @@ _~tXv%h}==HDG?VGFnUj)63>D;qYmhW!<@!Epq7E zEXK{ J NT*;aeI2akMr2(MVi=psO2| znHOJW*qQZxAwWDOMKkrTTq>h7g4F@s-J^ijc0L<<#g4ed(+_oP&&4+-c}r4`yG#O2 z@Mhb_SG!MR02kL1g}p)tFbeb3!*8U1sFR3bqHBOIBW9OpkOK;Fdbnu^x^Q~)5k7pE zND+=)XxH3sy`WL-E=>nqEydjpV6!h(b(V!5aQjGd9=2U|2{kS=y{2(#|I1w@S{fP8 zFE $d4|p>ORv1| zbA{lYvi-5!E7P1OW%n&Aj3XK2-zI!ikRx1?%P5t 5IMy9L=Kpykzq`d1oCpL40V kKc-`OI|v9V`=3Tlz&O-CXPVZO!A58Qs(42pdaZjKXsB8c(SsJTEAqI z#^(y+d!lEHXHNJgKPc?0Kg&M$Ncol&j7GCd5!VX=l-)gE#5kZDYDi^dR4)edsp;sV zbax9N){%6KL{6B`*eW&V6|A`ABu7;ATdC}ai#~Z+VR|I%W%DTna~9f}AYc;q>zneh zMpj=>i+zqPdFn%e+eqZ>yqJNfv-1xa3?F8>qj#Ke|GUSkdB&BKX}U65r?_J!Z``mB zTloMaKhG13qgrq1+J>$VIsqP42)~q1Mx$#*6AU-n!rw5b%I7DgKO^I3oU`BA>HD|y zK&*GxzPIbnd~tJgb#tR-WLU)a`C0qRU!sVc7!wp7d%qg$t5DyIeHxIEkVVv11WO80 zx0qtdqkysL+00C{tl#}Ci@`u6|3u|U@8{@t#xpDSeAi| 3xm=`bJeIGQv%uh4Kb 5{!{#ehqyw4Qwe!syCBcSNrSN^Z)n~%#AJ~j~(Q`lS=ZjUa| zHPN_M*grqau2~o|bIRH%wK4cn!c|{i4}oy{%lfMG*EkLla0^XD2b<=wwwZ3c#@c!f zTRNJwz>uxsvIt58>0(OD hFG0}x zKJ_IfJ#~_hSV=S(#pH3yj3{|EgDd`mo32lnqWw6}o=K4bZBK|mWGqe_{0 tb-4E)*F^gB3O@k^$lqQBvFEn!H0R$7Vg=!Ap?VRp*7nhhLww>5&s!J+Ui9|@9 zfslG4fVL32011&9W~M_Qc^x|>f}9J<4y@{QZaX_5OBAQWO>Lrfd-#aoHgu|d=bcH5tOdIAG!3J zenjNdN~}(zA~>@aE)gD)NWS{{&FsdJ?4YS);CaeeG?vu|+>tg(+FS?X)wi+t|33m( z;K^}cW>e>M3P){ST`aoy{xWmUCgM*kr{?yb8ZuooRh_*(Ez>;ni?vCV6gJppd8&x| zy5L^uOk`s&jy;)_i40}|g`9<=ikNsl|Tsbgp}4KvoNu9TvQ)^WZMc> z7xqbQ<4J7WbU?7Vn3RLVUEk`6*2$FyfkmZ+i*>|hSj%REUF6FPOiM*#_InFo;=R^8 ze^MfQ0fSeK5@eUw##jO*(^%!bKW+WW)3vvC1ZUTRu?z9WZnuvY3Uqu-EsgLW9`4uJ zwNlbjXCf7jIX1(XX**r&KktIin=t{d*Qq53p{|C%o;SUHJP&z-qg#GcUc-uagZ3Z ztm2LUWnl_Fr&HLQ8J)sVelBBqg}R{)p-S8Kk5AKEh(9%;xAOv2PD3%d$5VP#6ciOH z{#&fSdNshEfj^w*uvK@eshrk!+NvL)aY=^goVo{C! $bGgFWgQ7vSIVcnB+l^X7+nIn^{v3?xH?!{ddTTd zNMQB?2wDPl+9M9_BsbOpaB{D`?G>#0*z>KMc9+t7LN)plK^dX@EF3w6Mt8PA4*N%E z9}1Kj%EOWUU7JQSL?XL`S2aj35^MVc7<=E4>EAoT2*ArEY3@xH0@h~9HJCRNRkfLq z_{Y0C>;DD^(9f)l`M0!MGq+K;?Sx`Oj4fZf`*O!4#Vi6q_w|`n8R@1!f>2C60heBe zrao~>F;?&h1%bmh7xor#B0Fn2HXrKi)T~I5?fGu~HjeS2>4aFJfJ*r>YW+gb59}L7 zB#RWd&yLGU)V(4r42Ns*p5!RsvTEMk{PAkWK$$&C*<0*+CZ;pv<0x!?s}wdvSCmuA zVo%temCz?wzOwVkQH3C5uhenUM#>quqD{cH(4en-a|%|1S6FY8Q)<8owE(iUGGrhO zI__ONCq08{R}bYHuQBueF-q4z`Hd2`mIdTY=Aw8saT$uT;``}8Q4?N(`2H{ysN>Y# zB~&bKi4-QD6@Va(5VE-uT(VQ_)kRvOy6iM5&`B+1Y=7a!`u8|#Rlq=xJ+ZKFBpTon z)|`Zy0XH*8LK*3oBVDIf>>VCpVonM)flPQ5#@C8pXh&R~7ES33R{!KI&+L`!-(&1R zP0G!wYfNCM=dBvcx}2}>-y9N#pbL)I_S{OMdnghYigF^_PU1sQLaEj>Ce?4GB`(ob z{`_2aYZsN02J}Q;?pTL?i7dZfU}XRsx6<9ITp(O@dM0{q-v c zK~&~n#URrJuum=GNWeLm;C%?-R}C2&X#DvJ7Kj 01{T6M1#b+-=IH8RGB)r4C3L`=xp5 5?0I#N!&<-f=RYF}d{8&FXmU9E9Ec3nc@Z{GLQo4 AWP7n1{{Ha6SiATLZdy7@wSKOs~5uZrts_;p{MgFa}&Ts5c}>9vvb z+MkL$BEeevq6fW5k~WZaFm{wV=c5nyVl~#WIM WSUE=iZnyG+W z>R|G(?vw~Xqv#iiL8)6_7g;h2tv2%=!vgW^%*a**uvX>|9(0vB%9PinX(|Xt?%;f@ z_ko5mJT#=b)b~Pl%y7c`+GyD#@dzCK#3XWm*TS=LK^#i5=zXMcW0;Gif!VG{k`kbb z+!X)cMrSLOseBT_;{hr*%&%<=@%JxV!zk06W!9*LO(G*~b8JpP0J=AFBX7THb~d3? z*mnsif`HLioP1Gs3v+KVo^tNEB28KEsr(nuD~d_W$GcC{KWQ1f3AKQ#>=JM0i5MI? zl-(X@Vi~?M3~pk2s%CLVYe_>&>*|d3jZMnv#TwPIz_d2KY5eS&C~9bEsA0L8(!95d zHUKeA^OSW-=4>Uv=u)HXvp@LG_8yCETm3|AJeFHCxQv+N`CBk%_d3darawp2_mrts ztL*-E6Q_hOqv-UNj~{P9gF7Ee=SbRg`4NQ^wl@|>G0R`>k&~^C9Inu{AIgqw#?vaB zr_4<$CmQ&q%w;_Ye*A9|PL}HzspZJUwtf}cL;=}I4sOBGkrDAZXTLAsR=RYSvt+{; zhl)#$%d3bEugA*OZZon8c7Bcw^KI+U=hgs2oXZL&zdLr8gNFf;F>SXmD~QKX9X&RI zY7NHbcOP%I#KOUv%)~_C^cAyb?_W16_TMAC^(u$9%EkWXR2W|NvMN%Ar#*DXfysm` z)U&8}H+$efv8Gd8;J}n&)GU*MDf4?E_wWfhl+ql6FFs5h>aC)YkWii?!Sd|+QoI^K zAw-}~&f3y3fN(l%6-bia?WL+c&TxK|?oU%>&2(zoGzB5h3w;@K0hr;t8gKp(QYD+~ zD9uXj$(Y-*Le6qgy1uTyzn&aJ9ckN~7fYlB(6Ru10ai)_!&PioHm&Q5%5FBe4&OkM zl&O%GhSeTPjuZ1xjCowMDkfx1vF&ysW3Mz)ZD9jX0kr4UVAjh0vZ9|>$9te_&7_K* zowSwdPR*5>vqnZNzc)|IPuga=S2S=hDygVv$0P`hM=W3Evr%4IwBg+I ;M42IbHIY;7F??HiRpr*AgSn?)sg zg!cBrpC-XR>-*qeh66fU1e?k4Gd}gPtdU*RHrcRA0Qes(!0Px=hD{Cx<^fpq0$_DG z;EtiwR)Ijg$we8?@W9Po_;?r*K)cV3jTu{ n-zCOk71h9VZdSmymABmbf4w7GLY@CgGKimC0WE$nZ}vVx=q$# zZ|dY<3o*6(; mI-r;RRORKAa7)rTK3&`~Jf09@KU8zEHFu03q>gq7dN|K&1 za|8p>HvpH_srPzg9~tv{vmsMJ2|OOWtq+KJOFy28^}@^YYhTXzGBev48JdxUREQP8 zX=}zkZ5{+Wh(j4xyEu9*pz8o3xWfmx@NNcb-v@tx&{SOjqC5b#VQTf=Ov*wBMNw%c zFx8!HyXB_o`mC7En)I4%LvyHwyu2c77JpVG!a0V-xG5 _DCzPtdA(dJ7Mi=lkiW z3StK_fQ-OC@C`8;3ed>x3&5YNBW^0A$Pe=s&d0I$zSxY1_GeKi?_9y2;f5w&G#&JK zSn(TY&?3K*(S4jxhGA$0#cY|D7g%)Pzu)Nm>)kOE%iGo!?y4Rfo$WtaHT|<$K~stN zGV)Uk3&`UPx1WXBmFz=Xo0|=F6CUJ+N_c&TxPIm~5S!t6o65aLHqfr|f#FLh{SD>> z613f1^A8KHdVKcq(?&FX)z}>-1rYVDbv1S6W}rU;Z<2%OM1UFnx#B|!9FlJV*oYc# zBgaD);;uTZgF4TfuxAVSYye<$4+wG_7C*7L;;Q#DaQ($|?F=d8aFeyj{UrQqP3|j_ zFmm~J@ahZ@5i)JFyrSrmWv O}h-e+QFbJ5zHX(P2d0Cfi z`Vl!YU%jX>a?rGYj?4wF=rxtKK~8>0zz=CpvJy$GWPJMi-6H|;ZT^}In(WU9536~W zTy^lesF(xruXBjmj1P&JpywRs*G$O-!s0sOU-5|hzfWx7bO?^>>hi&Pg55rMyd$w? zogPRQR(|>NCK-8WWZDNflgo2qbQu6MgwSOY<~uIH_n8jzo;9y~%yfbhJ7i&d->kuF z<=fqRQ&soDx;>*F>8HiCn|2mUCo63Z2THCfM73D<1xzLCXJ~|e0!}Vo2!@uwv>v$A z5P|FPE=oYsN1&3w$eAiBCIPl?E^)vqFChH)hrL@ExtfRoMn+bj;*iqL9vO%}awPg? zSaxT{@Mx^{%5iI~KjqiL#!AEW+(wF?BV2g)Rsg(_c>nvbk;1~0k|KVFInL5;zU9v^ z$+@h+Y$JbSfthb^ioOw}xaVWrbaE>)m_-l~^c~9MF@P0IgI!!o04MKBrVxE_2H-A0 zTNZK~DHl-pdI;vzJIP@Qc%(q$gbAeSq)rYq@$D0Um$DHn0&=8&RPgsdOt@U-r7UQ0 z9{{TbZRPFyHJ%V(a?=B+Oz#drZqKTC-9Lw`RuNvaTuP5ufix9WZvcmd&T%~wm K)VI>i(n$V%7L8CV^wXNA$071DFb(l? ;z9A|)!h2T*kf}FH||zk2keq0;k459 z_Y&pAW6{}; &uamZP}p-LkSq9&g#~{bV4T%a1Z8C zhQdE!;4hn9MN{eji7owa)@mFOrAHzT6ld;A>~HS@=?}I$!>KLsB6<7_ZJ15c*HIUS z(JkbBXXC+ 3TufipgV zK(3ieJ$Q1w{QfYcuCRZ9rqhlRLbHP4JVv>&r3-%8vqzPbl(Hh(2w);}wBXYekH13p zj*^Pw@(4;`Pp%_qRzxh~mQ$
pl+fc%QG=u8|89NSG$LHhV8|NBmsKZjZYn#Mn)_Reqf N;cCEq=F960!W Zn|tod1~=C~oP$fr|{OFD`cZGm-n@eu;+bh&5!{#2~KF^{%jx6yb`M9~|t_ z{=Ge}8MO=tpelpKrdecd*>QE(T5=m)P7a>Wja_bFWjmnLOpHbzD=F40{wFtg=*@16 z3 kJiWAacc^JuF&YrDD=* zx;1+n=K|U?)pHDr){5da=yiBUBO_xa1tpF{&6d(BPrj~|Nj&-L1;nIzo$Li1Tm5PT zKN^oKHa_u?p3z-LRSK-!A77R`i~}&{tH0=$@1`&)EJ# Iqi`c^LDbZu&bTVYG)M<<2aQ2 zLe_&uUEnPn8=JH7V&uD3aPL^9zaZ0ZLkPXZf&!oC+E!MY0E?8`3OTfzaP7jF@S#9o zP+i{iq8fk>W~mTX&p0x#bK_a4!@#$me$a03t&b+-1AC4C4_R*+7iHUZ4~ulCfTYq5 zQqm0q(jc9ZA~Aq;cZZ~Ohopc=w}^C$zyL#+4Bhn}Uf2EH&-4Gi^M#MhoX4^EUVH7e z*U6r7do^G#?(vYM%cicWNo&$AQ@0OB%XbG(om@gB4Ex&yh7L<@o`9-RtF+S0!mkPa z0I1V*3#B;YH%7IGLu1))wD_-Y5FOq_$&MR)tXvG8`cnM;b~r&u2>gLd 11Yjztr1Y zj=D|T0i7Pa1C>g@&SLJ|0kgyT$4;l=SC1XgJ9VEspnWU7dw9QW$|bN@<^IiGI)D;A z@a7kO)59_jbn3GV6H&`*6e~ybx=*jwhf#O9ZvI!+?Dfo%RE9&>7K$Sejq7h}Tvnq# zwyS(eKy|LJIaR6#!D}MdhB-W$nkBgX7EYbv+4o?6AOb67>JaESyDnxV+R>=wMJ{^D z9F>hTDLLKAq}Vu4g!Dw+3pabb=w%8HjYiQ0mA+TA;o`Y}YZBWFD82i@#{{lr+#e%L ze})&*8`Bn-+kAO0S)(lI2gQ##^7H4xv%r5UB>eGtiLjBzjT ukaIUb7tg>Jma30nd{y;IHDT>=#?I^%;xvtYj|+sD!snNg3#Px1s4%UhI9XbP#j8 zCTWw8ba#Cu!Tb)t$*6OGj?V)+#bK!qi}Dk_iGRBndyR2>6v6kx?|g@Rj~Ta_`w|$j z5D=J|2NLOGs4w;zsV@{%8)VdJu8C>V#UG$Nu%tjRd}Y@xF*LLjDee=5z97Xy3GODs zi7J70SkGEzjx5!>aC*$M*%&w@4skEXU6rdIIAD`^x~;5k1o5Mu1WYmBw> rw7grQDho{g&$!))!cgs4j$aK1g^>a0RzNPcj(H5g$pGKOf$?Qi3+X zsJo45n6@S8p9<9a-i#jftBSa68h+L&hA&2U2MIst^xI3MLpbjmZ_ZjR2ptN?C0EcS z`*>}`|-Gq<(ou21QTB~GZ@$OlS(W8fteC8`coyH|S> zlxo=7>+XSY*)q`9n5}DxFpobFc2LiDnt=VM?mAwd zy}+TUMEQ@yag@U1H>c5H35vEmdzwoZ(r?NIo~$MlQ%2BDXa9K$v(fIdzpCr*q_EiY z+Psk?Y@&sw{kym?>YZk+Y)#@~Z5mq}?3vo#E-E8w RC}9prs(+TCu02`}jChG2m?{Lci=yd=*YYf`xh z7IceGY__inhPZ>C&D-%u9;T_4h1((`#&V>6wcW@7J U@+ zana$giC $AcGdH7Z=rTz6rbXt&ROi24CZW?iGaIbl_xcw%K(rb QW1hxQ-F#sJo0S+!O$|f09w^YOX>dST&@3H$DrzMq zX%NCpYNd4Z**yHhl-71*{sEixc$;i@9G)FX_@iyMW1;gQ$Lm9tDc2PWF|-~P6E152 zVWbnZ@&tk`>2REhT^qX69*NQt0V!!jbiIaTRkfNiQU~0%4c5erIystOHOrursR25I zm$H*ED_uyqefT1dN)Qc{{-bfN&qzYI$x+riXLq~qi#4F=z($cyO=cU%WjAQ^TwSgY zdKPFV4|#Ba{-# Mk)jVA>d;C3;5Mpd9qR4 %=KYL)M5E VdJ~7P?P@C*f0{0uwQ_7-8cyhc3f;R>bRY9 zsy!l*HtVJg221CpO8I#<81UJeEG#sx!u|R!jt|?@d-r#rg7^l=Vf@$qk>;)LdqrX4 zrrmc(`94>5-tP7<$Tn^>U%aS2BX3YqROGNJ Qwx8WdoJcDIoW@k4Ah0N)U4JAtJKiPB%r`$9bTW z{m_D>K-ZvOHL`gLv_vl*pdLp(^cf}gZs1O&MA4B_hUF*oZvNR+7Dn;o=cN}MF=4hO z<1M>iaO{)}FU_p_2|t{I<7M!_^V?Z<4Vz$MzA++LAv@am!YTHEgi%_WJutpqW7w?G z>BqW(@#M@)ln64A4k YRCDn=;e>yLpkw)Dog3vmB{NA0$D(56)P5h*7SS# ztEl?5N?UKi0RqWZ(5POkRWD4kx1jJqt4!^M7ze_CBLeepMEIUm))BoCDpkp~U(WA0 z&oMx8AnuQ&ny7J%ALcZF3yx!@wbsP{)XecKHZEx{4#hX0zKkF~^rVNj<%Zsxq$v}J zM=vjz1D><$+?_|vlW|{8tw^Kx$Z2ReSIjOLw|m{;^M!P; x5G^J8 zhFAp$jp#xclVvsO6<%oLLvg7tw|eh$m)Z%X$L~FR^Bk8|Kz`IZ8OWoT%il78oAmck zgoRL4Od@sNn*{c(5mA*c{n#Y&Y(0yb4XS?4H)PV&(FK@y$;NUIbg47VFEV-~X{7!k z=X3btv-5bAd7GD)0P3lbCoe=#UuE8}a&tk6fsXDXbeWfzH)V~})rd!0IQsNih2O2y z=JaPxLPElPEZtCy%gXy9!3}h9B<)@^?==0Z?vA4ipyEYEY{D>zkbL63{r->c;IPG3 z_f8*AJxD*Z<=-*^3NSG!z {D2Ev@WtlJWKSVUu~c)`-pyk zl~Nb%FEk!}JD5J1EM|=_W5;5k?)tZE{KSNF ZQ zpgNcVK15_JbHoYoUesy`>U_iG<{Xi{v91UQtlF^GN%sUX#r6$ity(t}YI3o&jXjhF}>x`A^)%M!` zRH-sUa;V12Dm^#z0lR)1IVB|}3CXKOx+uu2pw^be@-#>yTVbQ^;@e*_CRuKydFI(1 zDivl%k6(SnGQ^=2`XF*T`!OP7mA|5G_#iYoJYVpuL r<^rRaGnLRK01Td{48K)fV$_nN Garxq=b(l&@Y?CR-_2X5Uv%}N z#Ei q}=MuOEGkf+2(B=!K`5x0_ z1hyt?Tw-YSH<$xPOq0`@VpU56*mQYw7FufmPUY|cmM8H#W5zDAeh} =p6^7@oW2J2;#cEuC^7&%%BoBBD^1q<$OH$_DZ3Y^gZ0)N)0 zy|Q1~7>S_+F-*=(h@HD1T7XZ(Xtppaa!L?YFvsHsn~W6AO0*!pk?M)&PL8}9Q#1kD zB|g$K2y=Jd-q|%KiAq;QS3_1-mSLsti%X)&10E~395LVPtCKCTO+VUgreZB2@krNM z_?pHmC{WWh`L)RlRsGKUi(2!3pr0MkC>{)GWuRx=b!89;S)+8=SD&0dWZI7@Uu5-W zd;a|S`(KrxjoXFlkk~!R2s4TBsoLE3Hv &BQjd&IXVVgAi}?WW84B4eu7Q{a@T%f!XFR+;Z&lrsKv Uo0mvO zI-QGBNTnYcAJ6%w+@eq}mWI~4pjP_gY8(Rt c}V! ~l+88zp5H~AHv&=2N0VTS<@JuK|{e4qQn_ILuG zi)}gkGd1IWc|k=)Mqa;L)v1yZc_pRfDQbnHzPF(`rxvP;ii!|`*olOQ*aBAqjANr) z^+1;dw(aWxpp;?gUfg-Sl@BW*<#QeeCKV|IxK~nNTqubDrxn7;Ve6(8xE-riG4d)c z(LbJ|Qnesli1W~e;9_Dk>(zOfnwr|!L>Sj-UQ7|$b7u})5uT~p_=|BJ^_%cKTq~t0 zI(D9U-DiFj9Zw?XcNpmlR24V!JE$H>*Fl!}&Pc~^GkvYT&KzVNS<0G>8;^#Gqv*e9 zSThwG7P@H(p~SJ)(BSSL3PQHiWqUVUz1-$6{$n=nBM)LBmU*^$EuufAn8)FPVdL>9 zwGPAdJMTu(KPa$AkZiH2cWt@;WV3~!P6#_LMfu&u;>3S=vTca_{_eVlw@e4s{v;@X zh6!CTLPIKoV4fy9US^|LiMk>)q=@KQ(dqIe?y%OOI5M5WhgRyRj}VhL42U`$UnetZ zw@hntW#HqRrFZ)Au>t&4H1+Oo;$sIsbuO2<^Sk@T%v{rMQSUD> D#<4fd)OJ( zMnb;Ao0*T2*czhSBwl=-u}vE~{9dW&@*_SMa lajHr(Tq(&{s}yfFpeL<%v68wnod}RLI3;JxYt$ zt_XKPy?``(1b5>R5hW(>-dC%_Hq2L6Lp#|n;EM{%%C zqwLns*(qmscpk0F{zh*+RqNVt2G*W76(-AY0Nk-LxSg};A}D+qyPk7NaKv4EPI3bN zw#{iRRmGag;2WEQ8fc;UN$ZzVi!S2n0_hJ4s~t$+{+9b}r 0D$cOc0r3*+@{#TnJiJq=%LW+7YZd;$l##P$-gp<8cYoB&yX8DGUiIfoZ)l>goiI%_%((qJ`n?W2 z&LEx{HMJBii^cufextDom!rPq)3r!!^2T%cjRFVGaGRkmahSiL6}(N>vwjG>KOW9* zQ1W%T!k5(JOS8|_Zm#e}wSGJNIOYA}v-PPJuEC|@%G<-W8od$=4BA{DsN?W9zJvJn zpOcl>X;sJG(VBkgzZ+iPgkR)}y62m3ErDaY@Q#i!#NGSyJQthtc#gJ?Wmd#z#ofDe zjZ@s;MD5&Tb+vEkjO-hW4J#G 2w~7EWVWVaL;Rvj^k3vi p zV%kKYN2F>W&AnsfrTe{K8ZS>P?7gc7IPY6yd;TUv!w;wX%9)L08H78&!}m$FP4#Rp z$CrU``)Htk*AY |}5| zf=O-B*WbC00t@jD2$fFZi>-iJ08i8KtIfpyUHJM>uXf|oslZp=D{7HL8&aMsUtrZ3 z@Iy^KBmO(*Od %{9gCk7OF=;a2)F01&-{Dvx?tt|J=ly|QXiqfW@e$mJ5%kKGcu~2 zAe6pO`u=+FCzxs9F3h{axDXHm52vP(V%q*x4 DHJ@N@^ z?78kXG-3YW_6I5~DA?B-OQ0G6yYGy@j-x!W{NIc7Pd%$IE7ec5iLyD-kB%3={o)tg zf^{o(tmvy{Ynw4Z^a$l(&es%(BW`dh0`Z?KOxp49eGtmo`Ut}jUYsYS_U||4)h^fi z48$~GDTYa#O(rp7*>B-;Ce6H{uyExN1~Ua+?MIYiLco50{HP(P6|kgTE#R3OoupkE zks;`^`O!b_BON6X(RVIqHxkwJuASYp>+jz^s^a!1i-#WWFPt_8pV;$f&L#Uz;qZ5z zp`ASdgbmhK>UHUOk!;u!j)8w{R@^i|=im wtzTs>?B_O>W6?Q~LB1>p6RrQfl)YV0!h**VR?2AIqc3q?C z`RM4NRWA W!jRq5Ih<^-jrvWv |8XNfYIm8O;7`ec6ZEd{&xPR|R~7iU+GL@@W~ykYfY;mhrr(vyjdGLZ28 z9=-} zq1sA<(b-U@Bm5~svV{+akw|Ca|!>oac z!ThOXsQB9Q{v06z9QiN*ElHl28_ST*1o2{DEY+z|6~Ccl<3&P;7tlF#1e)<4k}&e| z?O)asx@>ZYd7u9Qc14C9B+$$JOu4V8#RlF{X=tE*^#bB5Ao08z=6N!q(wd#g$K%`^ zhTR`WDZN)xz{|(v2D%iPFc=5ZUR+*>Y&w+QvzvUV+Nkv<5Q}Zs^g21A6ZJj&I3FzQ z19ppnErdbCJSGrm%Egj#_EfJYufrq+y@eIAWfIqc*HWocdYx(a 9=Ah zx|@Qr)g)l{K*0A0kdVM>OG*lHocGabai1;E(+!x@cH>m(*zM8HC}1>}TU>`$V2k>} zlYJ1#eUMt4#}RNja|csbm28rA*b$aFOp~k2l#7m$5tmHl?L~DvIy$ A@JuYu4n-2?1 z;7Q=$Jxm}oYkDscAaXdK&;~0{RFyjt^*YZ&1{%2Qtz24^_BMI8-;dyq{F$1S+W+VF zOn}?7`RD4}e(RQjn0u4Logeh)Qv1?{oIN8I0hFAtvhnSl2;au)nzZ^8D639&)6H1y zoV$mQ6b)9AztQ$!-&%LKq+cZ$iD8FNgTWYXJ?@gf6w(FD8 $`=mHwe= p$^*wIl{JRXGU)%BqhgoGnQYK6vI=chQ#R;Pl z8L{JMO*N=7YW;O~XRK3W2-KDc2$G->B@;~NCcce~;4*6V+UO%O&f?yfWl$zBa_>M| zX8iD0gT{j-%0*SVp+>jk7#OK7w_fCxJ`eT_bEBo90kUy+uAOviMONV{m!HqFRB*7z zZx+4m7rwE-cz*P`bkK&k<>ulbiH?$hAn3oyCX~?#f_g9L+@_hf#LWCTev}FciW7J1 zwf&0v{9NOoJCn)#x8*lXc0H;sD8qn@Kk!z+x)>EC-kW`>U;br3SY_nU Iku2cO?21Z_@4@nwZ=OQA-^UW^Q&@= zrigxG+ 6-i04U60b0 zQ1rh^Qk5i6CqL4B7Sl0fD+-DMND^RB;|-!SIhiQcQdT|W_=|dhOe9#z=L1wZ__Km9 zDU`ir%B4mZ%-usv7b&mk3>FVv!NNX(!rN2?3e~!hG 2iYCaHbY(YHH?pWjcNXa~X@iC`&U&Xk-c-es#&g ztL95SMT)MUAI%RITTwfl)_!0^aBYZu9{nJZt5?Yu`ny`TKi@Es*k&^y_9iZ<203+R ze9)_+LdQNPCgyf4cg 0BfbPesKK8g7A+$Y}tl?6UDlh6L^hk>j=wDy=G zG|WxX;wA#_bkDl(c6HMQz5Xo!s%ez2*}e`X*HKL$f$L-sTA#y((Xuz0)i0BtHTABY zrfd3#B5h@@YypxNbW6vD A>%FNzQR3m5HnflgnMI`d+}-kwX~8EO zrhsvqUWX5JvsJ~Dj3Ek_V1k}JS;eG8jl`s+3H>InIz2y1F`l=8XZG-cTxC#S8%%8FVvt7OctupDLs5xIp8d$B&sZdL$jui;8p;6BF|a z)iB7mle#2$E~%nEze2;P4095o1h86wN%tu-zSle8N=CwI2+GxePoEg@e4|&GY4hI> zs0ayfnEnjN{)<}L^a_ikw`_SkM7_5VWi=p Jl$4d*t(GG|pX zmE` IKgDbzB_vhJ-8dZzJsVr6SEzA0RaJFs^m@s zK!p^R6x!qsnj}qvSh+%#3a8)MHrT4EmNVm4#W7iobkQ$F#&~wpRhZJE!@bra=89sw z>z^xltcG>ly&6WWFwxNi?_fGyt4u#BG2sN4Z5i}(iM p;ye;Ig0h`8>41sS
l{)D~M82x8p@@2)+s)Oz(|AjB$~Y*-$?S0wgIF3soD*26=BYoLDqSFm zzCDRe{w<*O{;Gd8A>pmV`>r72e_Gv7JyQ5Y&<6dH#cj-HfkO~=_QD^=obu&O0?7x_ z*Iu3N&dumFWP8X%9FJ_1z*(Aii@IOZHTAaNY{sfL7+3FDUY(JDJH3Nx`pdq2wJd-b z|I+U>%K;rdedEFO)cyylk0emNRPgO)Uh`FW>-jC5i!U84Et^z%r@uC`9Q-=B_T%CE zi4@g>QLUZd5V5igo3;lsU^9f2b9g)cA1EsOPA&Os9SXx|x+g0d8X7EGOj9kcd%#w3 zy6lRgTn~?~i5E*q^keNOM&+qPLfMi`C5Gf-%7LR}uZ+R=@R3v$cN~3tuL9gJ-`@t( zQb>pSwR>N{L4`y`M$R|nwb@YB0@DQKCE3KU1!O}7AQd|e3=E8k>Y$4xsKHm>%w? 0 L8nX)Ti(4Lp6J2z8*DAewaG1~CVXrPY`&{pDgQMd7UI!=&3Ii~d+FB>S zcZ)-YyDWzS!aG~ EdLCVM!AHd`ySI4Ozn&- zezF-E{{7qg35&>L`I~59!PW?FKbdlioPy>t7sRl|E~D6$=ug%La4@A;D9U1yp`pMr zJKJqo2&5DS xQ=>%A yMzKbN?aa0R_^SbY>Yym6tdJ#FQ@$mfn8eR=7JM1Me;4`RUs+H6U W3FGb@fi;n*G+ABO?KrQ2@uKzDcd%F6TfU&2qijFhdi7rg4U zE1p>^1Yzb_)|hlYebV4Ouxbf%`-IIY*jCX}jOx1!{2y{cQ=Ta(NEoWR91GSjdO3|+ zj*V{|F5p+sb6Y7E?(epZMO)TY{sDak-)veuR_xfCws3NhF7$X98XYgbsh;^C?~FfD zfA7;cgx% IqoVAVDxKo`Flt~+`FE{6rK&9d_lQ;Suui#doo07FFd+&I_NpWn zjaX@h-CywoPffq7jruX| !O3KkC^q@1I!)^n{opqJPG9Ag5csy<%PXwhvs2 zdnai7ndQVV=o1k70~FP?pN5$MHcKlxr#CyH&%pr>^#r6lyK&oP^5>-2DJ+)!rCS%$ zf$J#2ODhRAil+_;A3ru3>XGqQjQi|Prvtv5&A9INxVQpjf$r{ntiq35A~G~0BGAOt z-Saj>74$dAcl}>@FHwHmai^2LEY~Sjp*&1rc|!$t?zO}wVe9X9?ajB_`B^wFSl$sx zK$tJhVbbhr`d|X;Ge|t{LPq)dX8N&z5_s4A9?1lz&bX PG|<0 z%YfP&jB+-kK%E(Du1nB&UttuoG^tko7-0@wu6$tIQFd9_>vY?(v+BmTKiA2r*2)D> zv3czsv&VlsL^jjzMQrOaBb(X$S5&=PE1QnPWh>ODd+G20$?D+?gR&p%K|L34BY^_1 zuPdH#-`E%8F6TaLCHBsi`r2@)P?{xk`D5$xgc=eK{Txf{31VnB!f1}r`bc?mdb8WU zT$PTqN&p szF_9`@Az*-bD+@;8pN*4CodxN z2R#m+sw5_ToLW4T!m8P5oDG_K(G#VV!IVMk%CPbeX#~4Ce0gk3xC?;j?ys{`tlKzT z@&9Hw=e9kbf7v7>I1w(FdS(VucZQV7C>O*cyB8Or1__g13~^3%UhlFd((Sb!JA;q} zFUioZ&}QFGr`WGu*f0)-hx)}uMhXIt9v~C{YfgJ+`}LSV7(os-1^@)!ksfT|>f~Y& z&on-0h*r~vm0w#_Tv9~WUCT=k_Va52sR4Y2P h@mJ|f1@ z3A7hrNDQoPUStMG4KX`}G&KoSjrR72eh(5YTkc9S%9^rz9W2Vse3Zia#vxA)j3@!K zfr>&_*Z3-%UaAOuN=i5)3_;fy4q$|hf-)u+7CH_Na=22xuBcJ`e*;|iZ-9RcPv&MJ z;V^bs=(xGNX^wFTCx-)h*Xf@nLC$|OcN>Ji*TRTx&kVlQ?pWL8|MWyXL6*_>*VhSm z^Ugt8QJ|bUF8S1#=ym}YHDO(D@P3%3?K~;5sOC{=`&F_i{wi*3wTsPzxv8I#j^R6F z9x2Tesk@`)zBZW7Rk}i4JZ-FVhEA0#L)D%A6e_jVj0TwgFXb-^^H|?zMI&bN`=3nj z)O)@(ol9)4GT<9qtPKwLska%xP-WJuw;m~%RnFuEJc2RO#okMY<}4L;^bSppmBD$! zTQwObOM{901csF7Dg)Go`%10FF)*otJ3j>x&(+~XOIDsn{Ndp?v=rXr?N2d;BK{!EFFK2iO?P8frrz9vrMB_f7qUSDCU2J3T-e4?)1DQ zFgCFxjg|ZT4Y>A&v-0vz+i(M>p|5X|QK4L8qZDu_hMmUjkTB3x%F4*#MVYcxR1ZE* z3E`Gvg6Lu!i#e@McO!-auO5&--tlg${n%JVk3xExApPl`5FH&7zZwwV|2b4`fpPqF zu43>#Q;*bb`LF@(VFlw}D@6q#1D4wdNWtm(Nx& z20YgV6gW^Hz-A8*50i<6WB9OS0D(JU%A#HQX%QaN;mb<*y_cpqF|LS?en9N=?E7pE zL33{ji2!;&s%lM}ufUq&ud^IrT)_1mO!eJe@soZB>C!{nSi&9M_*G@l>b4IwKWD(4 z!t`r*|6|19{DqAnMU_jAJs8I*ydxJmcEB#+Ex!Soq4GF|K;oQTTy%RZ0bwBL8!*UM zNMfkzxMuOF9H`V;9>{ybWC`A-ltTnP1`%dD0KBSjDTR`)T)Po5hivj|OrHU%YNCAC zRf(RH;?w^OUdY*+yw`{4PWFXPBch`(&LmPT<>H6m|Jz-(yg326stq6NeQ{^e`=iR! zPW0i(8Rnyiv&MSpb9QsSZ0vDAXGqcNH1*Bc_dd;?94?o8A&2*{(r@B_`A$*0*2u49 z;43R3EWMJ3mhAKzmXMb*Q-MP|-udBkY1@mPKh2mU#=fjW Z!eeg1e!ih2lD5Tl&=;#Q%2cQ)k-rdcGV4U<|Ud?&%94HT*nk86S$Qfc< ziN5cvO*(O`mYbYFMd2n9x{ifJ_Cr!D5P=k)H#plf)F)cQCjCl$8)* z(tz_BNC@7m-_dh--G66;mdTW-Ne>*Q?QAu+^dqD1M;uLvf%O3nk+HGhTCkiFU IxYi#o_9K)0null8Zt{juc)Q{h$JYi%d{+4 z&G|rL1JG|IT5;Ogp)N=_ix_Z`Eekz%qJ)E1y0_ %IG(H~bJs0l0*9u_y zfn^R*iU-{>B%x;`lj71MivyqobXC|Y$elfbYMB{9%cUpBNcvAx)F{wx!(3!`B8A-H zSR4o)2*IQj6j&t%egW#iDgwojlTGF5J{nZxFCD(=7Qv+_yG!lDh95SFOcAdUb`JhB z0QU&yfbBqUPfkt_aUQ=Bf YykwDQVfMHA@y|VL-uz?~IVT zxP>6C)IA|BBWd6$LZ+o})*6g=Wx9(rcXvzh@FgV$M?XouosA9CZ3xb*=fgHukB8k@ zBwm=LrAjux&r4d70UEE{5c}W3+zS#@hpf6d#^E6_wpAB$qW%CD97jV>6?X9c{m zDXo|ol?rM`*rr-jfND_dGj3bPyp`bcu8&|4l}|SviGqfcY@!Jf>h0}aVX~pjkh_oh zu~?ck*deZPRg9o8l7Lec@CJ;0WUs~a2_$^a5ZGh}g@xRiu#ofGI+y&
a(;u0RUq{bY zdgWqrUiv#x**AIL1fAzI?uQ>mSHCp7E%WpBUe{$~ADORpsp-U}9%-vb!-OaK-Bw%2 zb2N+jOm82Qj(o~|MXt@3xm+hZ)i(VIx7ha@`}ffeM{eBw;X)k>_U`8Y?=BemS}G14 z$P|*g6&bQBsMr)`KcAZiu3mO<7h`X5FAS=*%ka<(A#O}Jf|CdnyM?xJOp7qpvtZA1 zQe`GvfkC@a=a^?B_ HLG#Ac>n*!HlURt#8ZkZasvOIUf}4%w(ldC~ QrXQR`%2)2)HC6x2- zw#j6u^Y0~%*2C-j{)RD1@DU~Ge}~8zgUU3wCFPlSW_TpxLsb2hK zw1A~4JPavU@a(0?lg*Yeu!u1G`J%k$Sdq9OmD2_gD{a#fOx^CHUcRSWqwP!N!N~57 zAa)P_6Tg&}yWn*_KhYLtO*ADXCHXV42l^F>k5B2IH>+`Z=7bM6=(A5s $?xz&pL3tggUE!#t25kz$ir%BM5V}F> zfS%fqC{Z6Q5@{0h()FlcrN8khH^Dx9WrQF;WAbq_ieS6~<8uum6_a%|%ZrLB+(SZz zLzysWJOd*dH7!(@d2u5_DTdb_jK#{#HbW-&%Zx}#=niP8CE^hJtp@tiNVG~vL=b{o z@cCj@G%5McN`>+QYVQ7^tKOp+rS(x+5bV;QiK5KVnJn8q+A@2hrh_+lLNZ8Qtipo# zlu^av6y<*d%)Lgybyo=l7y&_&$P-gND`?~LDIlpjKN9Ie+=nt6$Z!0457kM>fdU-x zR~xm7jZ6E^hp=VO&(Fn?FV6Rua`?=h %_h%1mlh;`%^7ZFk;?LOpjlVVKj(ce(UI{7;o< zI@Q%6R+YnG%P;d_@)poQdE ryov<@l5e@VixAG6rf^ZF9unphc~6 EhM-Irie+`jP_umPoaY^?VsEr^(_ zQYWL Iu&H4nz(}$n^-ehRezk9Q) z)i5-i(Nyzs$SWJ+-N&-R>9&_dcQ9>!m*lTCJ@f>5JdA?sgjE(eJ`CJmle6~&6eHQ5 zm*Wx7kSXkGBZ(Du#blc*)+#zwA9=^fnQy*)G~I{?E6_wXN$#R-kAT%gIG;(WZIP<^ z2hHs!D_P}A64Ir+dTMo<#IxieT?{ijaI02qpIr~1AlRZ_&x`NM1YIKsl?OQu{6X0* zis-zi{tph($uaB}C3%?*1U~PUU%bz1mFxAp*nipX?RNH=KW=TsPoUp)zz`D-1fA_3 zM|EW~Zt};JRmUEwenZ#~gzLV8*$&q^G4VyGZ*d*QdHi&852&<0oLHS!Z7(e4y2gR_ zug36fp+6Vv+`KiyN|{`iJvX;?Lxab>VV;c7^X>=mh9x imuJ=9koN3F4VTvg^ zOP$u_hTMXwY=$_w|L8eEuu|U7m(%2xC+DMCzM ZFAUob96n17Ez4S6E&SA<^4TAwT}`NoG1N%{@5 CeVRH-Ay9e#hKhE42JJ|xG3~7t@~_#WCp-n4kq>f%(Sxn{wkV`8Xd~MIIi~>G zLKYfI# `!mu&=JcC|0Z5@WoAH zGcoieJeNWF&hPE$oP1mV>u%A1SH@QR-S8_4Xfj{E|C3f8hC?n0PNf=mj2bB4aQyGz z8Q!=#dTU-@#~Rdp^8s2U`jb&G`y0!?+w(r?*hwqzxZZ5lt0!5%hCE=vLkgN3JuBA0 zTjlFHzqy|53N@Gv)_wzh)s^(JAL1|j->WtAEN{HLmf=-P7U!J*_avFaG=8k+h7_pN zD5%f)7ssUFx_snDzW?zYS m`pP3K5r2?tCaqV!jTPSG2I$$MYR)h(*C?kyOs}x&HDh z))!? &RMo-V%uPN zB9gFl!F@OV)2E_|FKhj=f9BewYijpRd{6Axdn`eHssLp4c__6@x9>40PY3x!5;g0o z2E^pwUiP}y=$VMfpVP?BHguD-Fu-oi*pG9Q;9H|{B3}ffK8Rh;n&sMtl`aH4;*p** zGkgAqMTf =F}B?RR^%%SV3u#-K0i$@%_VhGTP16y4{zo3{4vU8*Io z4RsZ5Gvri%XF11I!Q{P*_M@me)|sd~^JNEp6|o0{Q|S}o4|yK8X{Agq0Ss(P@43}0 zvpxnD$)wVeMtz{Z+S^gZDpvSf)UvuJSRuPA5S1tY#W2xB3i2>w#XC(9S@Dpg>$f@V zRuwkBtE`e1J&wl~PeT5kh|(h`+>tzOsJpIGdx*oJ1B`paAgJG69uG}^X6Bd8DBT<} zxIHN{SzTR)U9;LG{kwGx *7jHBH;a|Z)xPMf>F>+o z@qR*(-#S3WbGG@uqkNzG?jRb7lY3l_O>W$Y+`4_i9L)TO%Bgv%F$R1nwI=NT!o0N$ zCW$DAbpwrm; jN^T|GBMQM@rXfC;<@vs zPuMTap!V-1xuZ1S!KR6_W8QvNtmRj$Y{#06t0=~~-?K_T62sA)CZ!PxR-SJJg 0TxGwWx`J;EFf;JEo!(mSO^0U@9~%UUl+t zb)&F9HA|p2-BKoY)W%&vo?W38V!>3h9iZ_ 7Luo8z!b)HIQh-J5dbTK(z!-!|;=cY2)(*-iTvYjdnZ!77qY zoyC#i_ivmLhEc}*Y>$I(PM@C0#ZevfW3&@N(>M&y=C*q8eph$?8W 9|L&q>v zmJ5 p#fgEK1Y z>=F%Lza`^$b=K%tIsUra_b9P!4Apn1-)-5mbp$%sx#^odJp6nAoMB|S&AG3FXRv2+ z`{Z8Va)^^c(5nrI=z$(d@0{dC_ua@#eNIEJ-cDBr26{f5Q+;@<%2}N^7+-1ROL>}f z68{}hp56I5kci%!-w0hQ4%deDn?N4k9_mCB*Bt8D|7TUj%Xjoe{67y}K{~Q}vR6EJ zNTb*uXNfc~MaO2^MsTn2u8_eK4=O5K;$7X}kLHfc%q)`Pj`r;l4>^${c`TiB6b+|5 zjdWCujKN~+#p%n}L))6{Qi=tp4T(YD6NnTh66FUKETKKN%&jNKfx#}g)W)ynRWfGs z(cCFVtKylZx*C;JleuHbUlzRUNwh`B;uWS0(q{F?mzCqlJ-ovO3M8Vng?aS sg=x>9HOd(HAfC0nfDsvh?#Z`bV8!X(Bqu @F0xK8uDx9hqiTlC!SemyH~KVl zKiswty{@g3E;V*F`FwWO72nS6!+PzO-7;dtap8DpEqxlxv$XAX)tl3f+H!U|ZdEUO ztFBG}t?0PCg=c5Bv0*tp91qP1yV~t3uMDNtbZB(Sawr|wdHY|vZeF5`EsX*5`X;O?%2ySqzpcM>23AKYC71a}Ya?iwVx zdtewKxDFZ|{@H8q^_`3J+|Sk9(_LL%UHu<2I&MVlHRS1nU4ACFZPlzrr(E4}W_k)t zOTmnbZbo@w_zjp!^ypn2!Di8hEL1c-CQN8Jq6mm@Hc^X7@iF|kWFbl}H6&VEjkWRC z@OP1I=C{fhKE^2COxh$|T1i!av_kW8=*0n`1XV?FUbCavaxP0wfm)f1M-mwxkWd(z z1Nm6L;eAvmef^(c$7Yi&^6WHDi7U+MRpl_}h-Vj>v1>7;Z9j3#f*MONSJ1Fy tZx;Q7mSi?*+4 zM4S9ih@HljleD3F2IX`YQ+;X_C_}p$_oOk{2sK?gT`H=ot2y29te3BgXGue>;yQnI zwOFc@l?1*WpEy}heY??f0B%Emcl^%oLk}O=Mu7)YV%Kuf^y-)Ym@sq*0T;Up<9I ze;uK5Sdk7Apt>j2S5rPu^;Nr_CD&~9Vww@mVT|nRm*7ZYX;)Sc9daSZS6T9ECo<;^ zqgzVNp )(K{j@y+274q} zevAEPV&2L@J@tw*B|_-=_+st*l)^*Vm^7$#b!Hn#OE13mP2#_^7s8Ko`(t<@yY9tN zhu1&QU$MpI=rk5n`~ivnYNc_ZYUj6C=eK?EW5+Srg@g9vepg58&_71amRR7Wx_C(= zbUGDa&2Ff+z0ozDxpeUcqoQqogPzNUHWTmRf 3%% z<6H`3SxVy9EOUhUJtNVSAy+s1>cP*6Jk=VMv;>gZuY_ZRo`Q-*r+<|Z(I*9c?)lTU z+=)XswhM@0KVA$PJYZo|ZQ3%bCeYqz)Ag${!f)=T7;EktTu~tjhDYJ$XkgN56v}!F zMI dRMY zM&EWHXge5eB2?a(i}aP1;GdZyO|A{=MP6`I(QXz7v%1Ki`mLH1)T wDXaBe&^-$>OY8PuEc*LGy?L)pLjnJ|uqic;?+;ll6T{J?FLtO99|@)gf0 zl#mP`k-9`W7msSB$TZ+q&3$b~&ECJ7dLuI=A!U>Fg_Xsc#Xwcznhn!YQ1X1&v9dsg zY}h;-ZIWWo+&{?4q0XZslq+@sH}r3+)rMk=9^3Da&{@~@jm>vropiRWGpnuZ!He#T zxwl^ZzE3d>ExDsLTjVW%uRF;bzW?3!KKutUA50nu{5fd|u$h}MH#NUbBNO!vj3w8S z4hh9L-z3MvI-d$I8u^$Z
!iT7M|mf4w_4CSS|~JUX}I-^fG|B3!U!TlUP=0Chp~vyD+_J5WPJhvrPv z-k+Dy&T*$V|K@u4=(Vy2T7-q)RtX6S6D-C?Hn&ke=l~g-@v5V@&Kt{Y84Z7ibcGCc zOn%{`jN&6EM>?k+Qwp02>53`av9RpVog 10M4jn$qJmh0Z~g1fb%?$+GRJ36~5b2znUJzIGaF_d#y zHJr+3Rc2Q>7txeFZ>R#Df#KAzlL&Q;164LTiS`0p&C3U80Ehha2NM4Gn4HC^l*Q#5 z^cz0B`QAA-gDZTb_a8#>X4~Kisa=u|lgzWPSjUHcDPLK_HOGv4&4n!?&sJQez+!~5 z^^3d3IC2ps&>dn*ZtY@vf%gDbIRERR-tVA6tMBXQTOa5^Y^GFVFv2~ZHSc5!+uI-r zu}#CGH(%IEgU?o2gBJeopH -y)~|fL}`?rV+@vvXZz0lECqKLAp6w$^O9ZC(^r|f@CDq5Rb0} zB}fo#QkrphTZ7~X4otT9uf|ujBUq}c&D^>Ml4&g#kNs+b18Zr;i}F+s=|6ZICsj05 z`}2N}B9 !k(rUOkhbW&TY5+Abs9%=o-=%RTPzz*2ozSFlcmVy1 z5`Bqb@he4$z6z$1`{J+MY}9pV$O$0HOGy_uK^jdSH7ru9%aFqq_`CxDiK6o4kXh77 zh5mY^ZpN9?pWY3qisMoutaqZn2Gk6|42PEMCf+`wDb{5Ax+rCX&N&mmnusYF$p4F( z%{ekY{s%RqEFEujrRQ#`?lR?fEgV62q}ll#z }$zb0DeF656r`nAtF7}1T zsMUIB=I3iYhrRJM@WaS(LBUT_WwB{=v!Cj^rqvu@+gaL;a=Xb(QlR!^?+dBh5fSF! z7s<>~_u~|^AT$-m1FRCZ$VpBVlvDMW8L?f$go~_1O2*5+4Y0PCX|NG1t~R!-a5ok* zDVMN~gtBMGD%d_SsJSLdAh{$o<)}o^6UmKn4*2TR=vtuT%SO_!$_&sa!Nz`<7`WgF z8!TPQ0BAt!p_3UF<-}^1KPL-Qw5cfo7e}1p>Bz7{?=Z#!8RkZGR>jzI&uq <5| zM`;E$8C_9q_Dn|eZt6X`cGM~t7}dfQE-Heev9Ve2^5St+Rl9JeVn$UOX<0p^jI%`r zbsF%$BhihAQmeiH+F~!aPeI6iLCK0rt3QQuzM}eXmu23)4TY2Wb%uA)KQd{|QpL;s zI9?)n_lyp=#sBa^14?uKrH|t!2=RsXxxt)Zr1PGqfIspjfXxd{AhaZ$kIro#G}P43 zCP3{Wyfg9TOxSb~$ie8R>#rYGX`)tpEe@c!FfPP8AD%M@O^Nr}|3bu@JvN4+U=Z9z zu+x((D*=oQh;T+lyJTXW90VwB&H2sLPR)oK{mLF(so4bGg{t+mv9gB fm*+Lo!RF9*hu#RLm=Ysb{E=ifw%ArZ6 zvk4v!>5AP=a&1R^KQBiY*~JLu54X;%wixG=Vv2Sw$kMdGEsY9-1i}5bqH^s`n%nrG zig%IEzvv=ml(E$`v8Az^lah_n1q(=E`qqAvunc}RfK$#^kdj71JxJ2ZP>+4e*-%{@ zQ=mmdymk@8PNzlYVbbX~fsTrqri=%-H9Z$}%48y$ZK57g3#Nq^tmy{j>tPeo@f$Q6fs?pS_Aj zV~=uSBhm=MHjG$~37cvQ_`k5>`VZ4R)2q(F$2Xn5_8%VgYyTwa4hVYB9FZcR*L@vg zdYlSH#AX%OSC!@A`oMfX|LJm0oU7I45sKRfk4Zgn%14zJ9>=wP-J3I(C*kHmPw0|; zw}H*VmnL4vwBD^s{v6>K&xX%fg7{s~F<4zC-N>bG6))@52l{VGDQRgQ*ZXHsk0USc zhZ_!P5JA>TUZ9ZIM~jP!v%)kq?efwf6$u!cxv+7#fdRJxzFFe$@eCD#PBxOP0)GDy z R*3$>!=kd#efZjvE#qq+B}T2SH!c%~%(g}a6k&~u9c|2+ z!gC_nK^}%VyHJe=+5qN$BC|!z9X8YVuu0UR%-7RLENkLgs6@FUlQOKzj05IX)4#d{ zZ9LLN7a0SqL~;f<^!jsGI%yNBtu{Xa6i1STqUVF&!WOQ0elWF{)v+;0Up}LK10ttL zW9D>=SQnIh<(4Lq0f5UsjqOjtDHSp*4r2R6@EkJYC=)S8qjQhryer(rF5vfyT(CLt zVz6g$(UVPLPz+w;s$Tw>=rdiiZQLAjs{$l&&k {q&^q(D5cqy+tY`FYjNN0|SPMc;>x4MBS>@oT@cb^#{}Cfgok z=&6s6-wLcAUH-EPPSAGhz~2pc4u6-*Oszt15tj;GCh|YN5iGi9X{P}74NlzOuo`*Z zoWAr$;$(%2OVF9_2M`I_??MS-)3yDQEz_+|Q)o%@eC_?=b4$ l1%fG* zg?{mE^-i{d&v>4Qg$%##mN bEm&XPA|kTi5EVkbeb4%Su&@c z2qT6%{!~`Z9e$56ZvqTiA}yVS>`rpil8t8AtH%7oPq&X(Yy`(B_Tu3La*tuBmx`wc z1iUSQWYy|uy~eHbu`TBj!w^zf@Qr(A%sbRwGbQ}n DjhU`VIeyEKY%zFz&NLqB(71p}zqvBCzDWRM#vik0DpPRC$LR z<~^LnVn&E}|DKy<%vf6Uy|%Jc7Vp@eOOEo>$o8YS?*WXtybjxzRvD<(Q@Pd2LrW1u z5vk`ro;Lh#Z~?BYI{e83L+>3+IaHtUPFB(<^4$+ kQQF=F0^C+jF4xw2cO(d^xp@RuU3AUh@+_22_Rlzb7i-7yg8` zQwkxj?j(U8SN7Q4Xv4kHJ#yQJT5cZf>6t?GWQSmo?kwW+_^y9+!EOf(nmNAiwe)Se zc7Zc_oS&=M#WzNVt^JP0@!5>EFO>Tp_ta{ihxMN3$4ZA;M{+MXhkeGdp6aUgh58yB zKgUm@x37?#4!pEml!;$24*J`7XQQ6-o4$3S^tqXu3E9}# 4*0!!i-o}fJN z9)I7{wIi{%c8d7lQBnVj&^2~+`R&(%9si0iezR=%aMQH|xds5T&-leDV?`MxPm}{a zM(uErO_*Jv{2NP_(lyrk#z0RS*J=bQXy7FWu##!WLQag$Z#M|t-+3pf4mNuAqJl?q zKVXH~XlZB~$fiz!V@0-J+Mo91Z=K#;Y-|^8sSz;Nseh9x6Sca}Ec^a&eBY=g^ f^S(hR6-%U9yB<;!DXD=sdrtk ?I zOto10rY~hpyMsCoqjN{@Ajo&z!~WvXtBur4CBw4 @a?4l0yW@IUbUFVufK8oUVPZavNBc 6D}k-)SyxxK ph91eQ zAw3UYKMvyBjoA;QlFXl(Szh+OCq9eAvl0nOK(lNNL(MgQ*`pz0tBldE>Q *biVNOrFn)Z%i9VU9i~g^U~5zq_HU(GZo`E@5KDxUnKIT zry+jm&Rb4n$Ug|>mG;$`*K8_P$f|!|Ef2WI*E$5!p=AeG0I<_Jq;ly2FjQH!4@
mcKnOwJ3Nhm!Vhk(zLX?)ROhI%iEG17h!Uy|yhgO4{upH?s3a+k zVe!#q i;r$6OH0tWkMF`92bgRhpkBc!fN7fG_~ zUj4_;b5R2|3ZE~y2GBDjWXyf#CmLB@bz8-LQ*XN5(x0cOQ&;c@d||?RA1#rTDv-Ma z2t_Sx9&*kmvr|T{$kq>dXundXU*YvSSP=$B8JpETwHZ8 5J6st)o3FDKGXTkIkVO@4PR2)pcFAVRtv z?k^&GQ5)GwBL-f6{cd{HoVwpKzCeT%nkl*6)_XZM3lm;+XN288Utk3(Tkw2=MSTN+ zKCut j_bY<+Of1`gV;IQ#brFKu)ELfT|bVu9u;Bjwyoq4%u4b-4e zNQ;9_J;=d>pufC~^5KqtzT5n_!<5OjEz?Lm@l`l9D5y7tnUU#u*mT5H+S|mP+K? =WMKbuT-~{R5%E$$4=IQA(dscTK?d;`0W96KyNflV?joc6}=^J=kdB zYWQ&|Bo6fDqcpJ ZSi3)C+I;o@Fv6}+V&74jb zT(Qr{z9p+Z?4H}PnEA~;th^oZ`ya6;kL7t?Wg4|PY+6k8i1lcde$2WZ?P<^#UqHC= z?u%>%*45MmTs|0t7Pb#aDz^dquClsPO(B+`a>-o3u&xi(plgnEl)J`mpnSq!36)NQ zxsHDOU8@=D71lXfFOb0ysWNw9 7e?Y!YXv*McM&2_{+sN4@2foWnZE^GnTd zp2$Hybkd-dPf~>qmQ0%J?QMy&*=>9uDs)oS7|~X;N3#{TR?j}%OX=>FunpiQVGJ+q z1qNN`GeK^ge}=Qt>9G|0)^SKgc3DZUgHqSOINADgC)&lz*adBV^rjifz^?YC5a1g$ zOpBU-oVTDy74^4#;9R=I5|ZlRp@|+pufKHMK97uF*MtfnpgQ^==SJwg{(lc7Ge40@ z)p-&yB_GemU+rhcecXwua r`klWT#uZV3m)I|~(*Ur9bDgU=OhVwY zRPEWOHCK_)htSs3zgFKNb?e=>{*RwvlCX>MhLFM%2LhM~6KIMj_i~9B?RMnVDj(vV zb;|U@A`e$p=!K}zKVjZt2)$7%+`%F0Pl%svsr6j+9^8A9rD!X0{7Q&E3DYE7#k4>6 z@txb3U*?~2IJW1Zjy}#&W;B48g!8ukXhn&nX^sH@zjvBBsMj7(C|Xj*ELi`_%rws4 zaUb$Tk g9Knk`1$W-r8ysya3g~jIM^ir4F zl$oZnh?Aq4a@pUxA%p>cGifC6>z0E@eWjZt>o0+OReEQ=DmprQpp~b`RT&Cb>a&=m z+OPOQPahB9MU&*97*11%eyC_r YOl4X$h=i!o8-7UDrw=3L~IUs1&=n z^SS#NOv{<#PxEp!P|}nwjGw8&7F2J7s6~L2*HnZM-i5OUTB_C1CyJ32cQbC6z~+yf zjDmE15|i&}Ys|cuuFhW`2@BIKeo$0>9-_~Id&9#fTzq2E2791c2DkK{{kmHL^?97w zaXDf}cW+7 zv{8?Q!lQ&8Rgtz|2yd5(El}&-R4#9vc@N@hgu2+)Fe4;7BsgaGJT$SF-BgMmDiSCU z4AGSVhQ-}2*)x}a+z;G~J_VY$?!_bS4Zij4)CXrfyW)G2XFQ#yEM>Tn(CurZXjz(< zW4dUKeROX2@OqfDV4fBz^pn$R$L#>yNywE(wUP6*yS~0uzUK= 9CW|FX(nE8Ldxqfjxr;@JTmOB*oH>c{WRU@|EOhsQ!==` z+&ZSE=C(2LcUL;CTfD8c)hE7(3|PnS75>C2uLeCvEC0B9Z>Q(yxxC}c*bsx+c@mfX z*pAxj {om8O`%2w?t{ z^M#9)`rEf=K>#C2k sJ#F0riorF!4e(P$0)sRMbqX)p0d zr=#4Iz5+YvC?;HL_E5o)aAJ+evfIX2M)+nVh1H5BBWtHMp+M88ova8 $ujbA21TDXmJTLj>-=7M%ZgmEJ{bl-7R zTw#+uggTRPP6~W+dr_1}e>1i!mfU+c0~=y8*qn*KL)t!&{j>R(;lkh6>C@8cr9`~e zB>2#JNhJ$89T8oUc-@G}jEXD8C4? 7;l+GJLL6`oYLc<1flf2tPk}q%;*xfK!}3+o7i{9pQR8;(d}S zxNV~?Zhti}EzC~(3Hhd7)2rDK-%QhlzSf(Wyd~phZ-Np{D}P}v7ag%}tN3g1>pB3Vu7^>XC=WQXw4#TLKs?Td-S6nU2r6j&sD@N^=ADvMdI^PGLmh@HTV?vI?@ zKFsNB$wg&q{;$7#(^N(8P|N~uTlhUUzig^NzA=z{9-IZT0@%)1s>BA~UiRYyAFoyZ zNz?v+o8r-;|9n7X)!*kbgyvw+u&(p6l;0SFAYWFtH8qXiw#TFIxq={Z+;f*8taGpQ z!it>Va*%=CaVV%jz>zh)E$-x2BfQ; Hf`p+T_*#O;+pV za&;=ad1Ok!nri{(Ffm *ZRDX*y7;Awlu!Tnzt)sLE73zlKp z0-8w^Hnlq~E138O=>)jv39!NkD4q(bF^0|MaX@D-gtV5;>?yjnWFwrTsUwiCo`*tC zc+}u2(gNzpfEC?#XX9acbfIGEubrL5@{dj$Ot7-Z(*y=qA1p!W>kdy7M(OP=%-Zj9 zR%WDVsNjjI *>XiOFsSrBQfE#^))m}>E?v-e+;18ng8 z&}>cRRM193l#pYbJSd?ejBsat%zVtp0Fdh%2=U1T)d%nJ!T>(9_7qYlDmghAH1zm; z`}(+BJ1Vc)dgzZ+*`?Adgz;*V@>T96X8locA7v5pSZw>Y$Sd3I$Ei~R4`%>l!k=c? z>HK$KD!y%B*Y$1gU9{jFB^zg &ZKIY~>p{damn+UU)6dQK;Xpd@2( z8hADload@(Y*bSmVI?DPh1Jwbt80c`!})zRWsUuWkQkHtM@kGH1{G?LYeQ;}XyD$C za+~-`m~cT{6A@JI7B@sH>|Veg9`x^%{JG5xB9Z&3RL1@EiKB;;WBc`R(31e~*Wc9# zC >R<75_AUu zXZoCcCwSCnYk^$ugl*}W1$+Um(mc+4{XI=*d%VKy!f@I2TtK0E23gN^J~#yqwATln zp!7Z7QoQ=TZ2C9~Hi!GVyYHP^Q;^_x LWCQCwT57fm2w{yB9w$(7ux-<%*aZ@t|DXirp2pEsPK$XA@ek_+h(rXR zz_O9aQ1Uj{IIQd1`v*v`=PZN9Qx3 pX+7f}A5y)&!YtIsmoyK?t`yr5bt+mswe~#XI_-@;WAR@#a6H^Y`@{H;3nzhpz%1 zZx;PeHX+FEzPD|BP6iv`-{nMcj @I26VK7@ zbcEJHpq9=KR|6v-9qN^g#`SQ^?Lu|20kVB3eqaBSlw&aYh>RM!sq@-lv|7q>>S`T} zEldH-w;qb`4vjl6X^3FsHw7)*o-c&N{i=M>_5724j>JySy)|$ab;&QZTlXUN^7V)8 zq&GN(hnV@9QJO{k`vAL<&f)#GHadLzGl$wy4umkNthpaoXbHuHw#0mlyvWOO tEIv6 zz~n6su~}VOZ1CIoo8IO&eNxZ2>otBQy Ks$ zBhylZGKtHGIKBej;`V$EJKL%YWOx!5r5K9`sbKVptsn=^3-A9+^7zmO(^TB=Gkx*~ zM(ELZDAx?oq8H`6&g(_G^CakfgY2e5*v)#LjeJY;#Xj7bxEkCf+67+jRMmD@$A4cq zn#^iBAzfFrZj5W{>Z_wpyjTPz$HeUTA1$98TjbxLj_cTYEPR>sbwaJF+OW_=1fAT@ zAwe%gItH#S^= u022^jl|}Mvv(Qt{5;G@R+A;#-<~8=Cu|YI zo_g7`g!IFFJ?9ql1VQ2BWhqCp?RRN^zUXaF|323oKl}_t@?>t>yXVx)6SxYTu&HUY z 5?u44SC0q |B(FEws@wKO}HxC1ir>Y{SxpHN74``Gt)Ksv9(a2LIz^NYjZr29DhhgKp|NeKo5 zWYrPeD1-B03O?2}kmol&PwT7`VCP1-g&GKcmm}ks2Jn1jP5!K#hFT}?a-7JJ^TU7B z>gS(aQp1G9jFcch+ib-2XO_f`**w#neG*#ta&oC++#p7eZnLy@Gqxo=NSRXu)rBtc zK~16}jhe8>WIA!QYH{tfeE|_ADFVs5;ikdc;Xuuu=YS4REHaXfNHyG9k_82O+!0ox z@ OIG`Ed9O`@9nI!8Hhs9AS3@k3ZV`XJ_ YZll?!Uz&NIDDJ z&tj1Aab}BJhCc DjLh+3zDW zfSWU?ub1dyv%=SA +LZ6_rjDy8@byw_oN%!A@t5d$b(^cl5G8(7fogyMo;wEN09FGB zfK`eU2Q#D30=^t}s4e*=SbZ^b`x~y>I+*!o)&`XbUW!SxzDG)^J_}#O_aJG-dYCs| zeKytO28d<33>K*FdH;n>emP(#MdMAYB%O=kaGSK)(3)UN<7&T>WZ$8)SIZtf(>;QP zp*CF7`hzQEmU9tv@du?Q<=9IZpngtSDZw=9@_?3=5!CQ|X}R!Mv@{R;zLVD%@Z);c z86H3wE5hF=`dnHr-Gs}1sAA#RI)U_~r{y3gTKHFAh9auY-j`p3F## hCOD7X`2Zih474bRdwgHbObFwd-Sj-`9WPl!i=>6H$BpPD@VoD_; zgYt{%syX8O8b`U9q<<=S{^i6_4?p!Qv@CLUx8 z>36s