Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w5xgg-003ny5-0F for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 03:16:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5xgd-007Cjn-0f for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 03:16:39 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w5xgc-007Cjd-2G for pgsql-hackers@lists.postgresql.org; Fri, 27 Mar 2026 03:16:39 +0000 Received: from mail-japaneastazon11010066.outbound.protection.outlook.com ([52.101.229.66] helo=TY3P286CU002.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w5xga-00000001P7r-1ZKH for pgsql-hackers@lists.postgresql.org; Fri, 27 Mar 2026 03:16:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g+3zZ3E3fKJDAkhsebf+v4t5A1KmjfzRGGuWdcZumSOxOVyyG1uqoClqangBZtrMizbTJcKwHuIbNeqm35mP9RYyhe7K7a0ziQltVizu+sw4TdyScqNyL8LJNRBbLcBRL/EJjv1qpcWh/5a43PaQGseTJsoMZ6gibZ3D8Sz8jm35cUCKXx1HT6KA/1MmJHq3R/IZlBWRGQabGhbFzSzInOfU1t+S5njQZBIv8oGfUQjKA8tDp+nLNyf3ttgfiSGL7sNy5uY4AF9SBBFoNr33PCHvB0QLJ+CrDoFMrkoEmBjuMY1u1pMlqqmauhxYFbGlJfmjg5u1g3DSEBh4xTK9lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=uaU/J1nq786kviL2zCiwXT1bN3ryJ+jY9lzYA+zpgv0=; b=bE5crYkK/pc/dNaNG+UTiSlgWz4KJUKmRXAVdhEjrKZ/jEOyuEB3yY9QxzNc5X1BdTVJPPjLK5cdgqoQgor/Niqrt3SzKystZBgDBPFHD5tGT9emGNWpHebj8Q3gzkCAc5K3hMHdlDqjQZnS/y51KzO5RSpK+NnPDf1zD6QEqrrodPhxPM0rEeLlSzHXI5KxyHybhAJRNZUuwseNGO9yvTQr6gqQDrjNkdmoYsFE65IsNxpqEAfU/PX4H0tHLTqu2ZWGKkr/ZU0bRQfEN3+hMVcPoF8jNKG7iDrEUgQ6BEnUH5YlYyyJmXtmvsSyyVWoU4lAG9tVrFd0sgtkXhQ3zA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uaU/J1nq786kviL2zCiwXT1bN3ryJ+jY9lzYA+zpgv0=; b=pix6Vw+IPdLQIwZKbG3rNBuma4wMLygSl0OxTmxhOv7XcIFzGOZpL/2BPGqna9J3PJuORfa8p7e1h0Jx1SyEb16ir7pcAIMfjPQacgnpus8TrpiBJqIhnT+Am7UquoqCHO/VpFaEvOpzHdtHbtz8WsBexy25Pt8jRRreuvHllLiPUvakrVkvZPe7+prBjujtLv2XVHBD14A6mUiZA0n3E7QUfcGyPupZCNnpGXVJVNQ0kMGFw6suejDaZARNKYKT1RwGFXJnGmdfEpIeQWgemV1BnQ4SG81hdlrpQSdIh9C63+R+kH79BxLvzwmlRCfA/DTTASFw16hbBZqzydChVw== Received: from OS9PR01MB12149.jpnprd01.prod.outlook.com (2603:1096:604:2e5::8) by TYWPR01MB11076.jpnprd01.prod.outlook.com (2603:1096:400:38f::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.23; Fri, 27 Mar 2026 03:16:30 +0000 Received: from OS9PR01MB12149.jpnprd01.prod.outlook.com ([fe80::8943:2365:dd16:e893]) by OS9PR01MB12149.jpnprd01.prod.outlook.com ([fe80::8943:2365:dd16:e893%5]) with mapi id 15.20.9745.023; Fri, 27 Mar 2026 03:16:30 +0000 From: "Hayato Kuroda (Fujitsu)" To: 'Masahiko Sawada' , Amit Kapila CC: Jan Wieck , "pgsql-hackers@lists.postgresql.org" Subject: RE: Initial COPY of Logical Replication is too slow Thread-Topic: Initial COPY of Logical Replication is too slow Thread-Index: AQHcZqqSU4dRo4LUx0GK65NhMesVCLUp2xSAgDAuDwCACy6hgIAvDagAgAN0IYCABWhkgIAKM5EAgA2bGwCAAC8cAIAAOcIAgAAnEYCAABAqAIAImQ6AgACJHwCAAKosAIAB8HgAgADcAACAADfO4A== Date: Fri, 27 Mar 2026 03:16:29 +0000 Message-ID: References: <0c28fbd1-3320-4e9b-815c-6d62753aa063@wi3ck.info> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9MmNmNDc1ZDYtZTM1YS00ZGI0LWFkODQtMjRmZDEwYmZi?= =?utf-8?B?MDU2O01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFROKAiztNU0lQ?= =?utf-8?B?X0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9T?= =?utf-8?B?ZXREYXRlPTIwMjYtMDMtMjdUMDM6MTA6NTdaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?B?ZC04MWUxLTQ4NTgtYTlkOC03MzZlMjY3ZmQ0Yzc7TVNJUF9MYWJlbF9hNzI5?= =?utf-8?B?NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfVGFnPTEwLCAzLCAw?= =?utf-8?Q?,_1;?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OS9PR01MB12149:EE_|TYWPR01MB11076:EE_ x-ms-office365-filtering-correlation-id: c0a665c0-3d0b-47a8-1f24-08de8baf3d89 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021|56012099003|22082099003|18002099003|1580799027; x-microsoft-antispam-message-info: XQxY8TiccF1DqtHd55qTLlAQ44jSxw6F9YMIw8ufQjgTzK6dnp30DUYLKzyZexQ/kZK7wGEnK4G9+UAHjCIHJv5OJIlQUPBpuiypU9BjioWDn7XIBbbR6LSgx7BUTQrumuyhe3gIRlWD8ZS2N+nMQKyQBmydlNbw+T/qFaSZx+gHGq8Gw9ZC/IsQjV3wuoAJDbhaWsiFqBv5ZsviFgqCM6aH2zWGx8estw2+eBrAed4WdQaKzC3zxn7JJo5BwgbjtJlU5sx8fZwii3x4TIlTAcgaub63nJEk2oQ90fCUZS2UcIdPdipM1ifg7WJ/T1xl2xarCVEV29i/ONrB6ZxEwTjYJ4Tifap7MyvYHGn+szxSHALOgfVMem4DjnHn4jSf4aaQFC0Qmw2yFpf5vftQYMwDW7KYLZnbQ5HPS0KBJyDZgdYMZe9ogra5PKWCDyhaujNuw2X0UGSOM3MXYeY0+D31TYfpOl5ZkUdFBVFVARDQfc8bFJWWD49g1c4QG9PO8wno5jES7uhzU52+7/nGuSH/BKsdbJ1IaADmuw13n79pZrzkYtNBOJQRtoQExdam+Uuzi4fChQexRKS0DOrVQMXj8GR8g7WZDDWwJbKBKeuEumStmmuX2irTYVryqEPM1v3QQlrhoj6nUmYB4TeE/bUiys7zXewc6mE++Lt1XW0qIquUmcEb380hpsbWj5R/IafEOOWKraKDhXMYkHp+4mLe08HwLfBSkAimfOUfWekTqIe4RXix9ZTRG6/kUUcQW4zloziJ7oVfyOfwwDY+hlx9jmRhmIHCFPvFs5tzWoKwlW11eAUP/DiJoohLOFx1 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB12149.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021)(56012099003)(22082099003)(18002099003)(1580799027);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Rk8yejZNM3ZjdVlQZE1lcHlqNFlVV2Yrem51V2VKVkUzZjJ4VGNpMTVjYkUz?= =?utf-8?B?WGRDcFpQNUlyYS9HYWQyMFBLK1Y5eWxFR3FrT2l5VGh4alVsdEFiOXZRWjJO?= =?utf-8?B?aXpBOEQ2T0hWZUJHSFpKYXkwQ001NEw5RlZGTkZRTTJYNWQ4dVBLVFg5blBv?= =?utf-8?B?MmNETk5oakphUUhGVzk1dys4cmJoakNERGJyd3Q0U1VrYjU2ZXIxNU9RaHRW?= =?utf-8?B?RmhEdFZ2ZUthKytOUytoOXR5UUE1VEFrb2NabDdNRVZ0YVZsWGpOdkU1NjNk?= =?utf-8?B?WkpWV1BPdmNaYzdGbkNUSFhNd08ySlJZWEJQZ08yUG5jTGZwSFJKMGxLcDA2?= =?utf-8?B?elJlY1V4cjZDNUErT01ZOGo4TXRQcEpwd04yU0JZSXlOcUVNR2RrS0N6dFkz?= =?utf-8?B?R2ZPL2pxSis0RUFXRkEwK011TGZ5MnR6MDdRdy9tMHNOOW5nN1E2bTNFMUE4?= =?utf-8?B?d3dxenZQSXRTeGdFQ2FlbTNFS0F5cFQ2UXJtZHAwbjlranE0MlcvUXlZQjFK?= =?utf-8?B?L2VLODlHT0lHK1FXRmRlYU1qMnZmS3N3aUFQNVJxRzZsRlJzRTkxYllvVGR5?= =?utf-8?B?R0pBajZDU1J1VmpXeE5EbjZiUVZGR0pMTUZKNEFWaHNHaURXeEQ4WXZVM2U3?= =?utf-8?B?ZlBWT2dpYkN4WDNDQXVoamZEQmZCdFFGWStFODNNVmZ0V1lIMUdwUnlDSlJ1?= =?utf-8?B?WHpPRXAySDVUaUdGa3JHMmtMaFcxOGsrWnA0aXh1NmtvdGFCRWFPYk9mby9m?= =?utf-8?B?RGNibkNTaDMxVU5LUmZWc25CQUk5MGpsbW40WEpIajRyV25UdG5kZDhXQUdS?= =?utf-8?B?ZUhpMVd6SEVVREhIT21EWmFTUzdaUXhzMmhhcFNOc0lmNGs2Z2FSZEZvQzVJ?= =?utf-8?B?MnI4dFEwaUdVQzZZbFhabXlnbGhVM0UzSGFLOHp1M0dpclRoNTlOVGVNek9x?= =?utf-8?B?Y3RGZERGdktWNklEaWZ1SUxXZ3ZWbzVaVEhaUDZ0NEFjOWFDN1BpaVBFa0tJ?= =?utf-8?B?bWEwVUovYlFpaFpSK2RWQmtEdjJ0SDdCeHRCVU0ya3hWcnNnSVNjQ29IbUt5?= =?utf-8?B?bGR4cHhXVkV1MFdNVXorUVZCa2xGaGRQekUrZmV4WWw5T1lkWHdIMnZ2ZlNh?= =?utf-8?B?UDRJamxuTVRITUtmcEpUbm9RQ0dRU1BPVXVzVGhMT0hpR1cyd2pFU3NaS3F3?= =?utf-8?B?eGxFTHVyTHNYYVRkWXNLOGQ0WG9STXkvenVabURVT0JDYWlDeHJrMG9CK0pv?= =?utf-8?B?SWJyV3pQbnBWTE4xRXp1MlZiNElJMDNjZmp2dUFUWVZTSXBXMVBZWjBYVE9j?= =?utf-8?B?WDdUcHhBWm9hVHgrVHJVZUJOOFQrdGdzejl0RTFqZHl4OUd4eUxaUXRiczJn?= =?utf-8?B?enZNeEpDL1FEbHBSZ1pIcVZGQndiYUlKbzdMQXBOeW0wOU1pSmJKTjJvNmpU?= =?utf-8?B?V1ZXb3FhRHViSlZ0R1RxaVZqN29QZDJWOXhlTEVteGhFaTNRVUJnQkV1ZTk2?= =?utf-8?B?ZWJxWng2UEVKSWNXQXVyWmtMaHRtVjV4MGkyRTQxTklCa3VEcEZjQ0hNZnpS?= =?utf-8?B?bGh5Nk9IS0NzK3FPV3hFTmI5dkovK2xuWDFsRWNOZkxYOE5zMUxOS3FGS2E2?= =?utf-8?B?ZTdCNVB3b2E1ckcxbkJRTDROV1FaV3RjSVdXcmR4TGd4Zm9USTYrenNPRVRh?= =?utf-8?B?RUdGWkQybU5aRW1BZ3BYaSsrY3M2aGRkMXpWSG9uVjVBTXk0S3RWM01FY1FI?= =?utf-8?B?VXl3aEVPVlNmeVF6WnMwdktGbFErNCs3byszSlpFbzBKTFJnSWtlcTQvZGdn?= =?utf-8?B?bER0blpuVzFaRkpjZk1makdsdVpBYjhGUzI2WTVRL3MvcVhjNzdiVkxSM2cv?= =?utf-8?B?T00wOC9DVld4MUxxY0h6ZEJmMmN6N0ZTVTgyN0ZUMi9pN3lucGN4Sm9zTndi?= =?utf-8?B?b2VUWWFLQituV2dtNE56R0dRSkQ1eFNWMitabzRjUERvc2pNek1nTHNUU2Z3?= =?utf-8?B?N3JhRlVzclIzejFPa24ySEd1VlF6TUJtQUtneEJvS1Nvb1NEanM2dDNwaTI5?= =?utf-8?B?Z3NWbDRjNDVzbFBERlRjOWdqTk1pUkZCVDk1M3ZoUXdtc3JocG1hNWNzeVoy?= =?utf-8?B?VWJSaHQyYWtCTUpGdWNvUXpmQ09BVUpTZXpjV2VHK1ZGWndKajV1V1RmVHY3?= =?utf-8?B?TVpyVFFQcVpzczU3clpxTWd0L3FjejVsZFRlT0Yra080dmMwVER4ODBHRElz?= =?utf-8?B?N1dCS2szZTVuYmNLVG16WmFPWFIyTTlYZkZUN0treEVUNVFXWGNpTUVrWE53?= =?utf-8?B?djNBZVc0WjVHKzVORGFJSzNwV1d1NGJQM3Q0ZTc2WUZDZkRvbDdzVXBORGdr?= =?utf-8?Q?JmyY+Ait0AxdhbwQ=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: jhAgCHBA1GK9q+c0acwxhiWcY9P3PJ+iiUMZhfzfZB2sKYiPpKfziIPMewYjNt6qwlLzGxyVILvWTTe9sAVRjXmdRjUhi0a9/n0PLbr0IWaZPOBMRxUWHN9u3q8dLZuLnm6NMpqvcp+E5KhxQ8rhFVZ3Lucv9whRJ7bc3ULdudI6j8Zp72MVdDEB8SWZVCd6h0/7qRyoAcfYemXtf4UyEii9QnV5IhjTJ+Z2/b83Gh7ax1rAWa4/WG2dcdLpDyLNkvaF/mlhryY7ija1dor34/hL8xxPy19fazDVmze64QhoRgKNmHJ+P2X+L+qJgV5IGEq260UaI7ZKn91Pg0O92A== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB12149.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0a665c0-3d0b-47a8-1f24-08de8baf3d89 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2026 03:16:30.0529 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: riVg6JAQQ5JLmPfu8MDk0FSsTGROzLOufnOjygqLZTBlcBrTJq0bqhDSxDPlDE+fnS/jvMMn+qqPOKHA5KW1M3q0ZO8LjsR3TXzPMhMEarM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB11076 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk RGVhciBTYXdhZGEtc2FuLA0KDQo+IFdoZW4gcGFzc2luZyBhIG5vbi1leGlzdGVudCBwdWJsaWNh dGlvbiBuYW1lLCB0aGUgY3VycmVudCBiZWhhdmlvcg0KPiByYWlzZXMgYW4gZXJyb3Igd2hpbGUg dGhlIG5ldyBiZWhhdmlvciBkb2VzIG5vdGhpbmcgKGkuZS4sIHRoZQ0KPiBkaWZmZXJlbmNlIGlz IGNhbGxpbmcgR2V0UHVibGljYXRpb25CeU5hbWUoKSB3aXRoIG1pc3Npbmdfb2sgPSB0cnVlIG9y DQo+IGZhbHNlKS4NCg0KVG8gY29uZmlybTsgSXQncyBiZWNhdXNlIGluIFBHMTgtLCBwLnB1Ym5h bWUgd2FzIGNob3NlbiBmcm9tIHRoZSBwZ19wdWJsaWNhdGlvbg0KaW4gdGhlIHB1Ymxpc2hlciwg YnV0IHRoaXMgcGF0Y2ggdGhlIG5hbWUgbGlzdCBpcyB0YWtlbiBmcm9tIHRoZSBzdWJzY3JpYmVy LCByaWdodD8NCklmIHNvbWUgcHVibGljYXRpb25zIGFyZSBkcm9wcGVkIG9uIHRoZSBwdWJsaXNo ZXIsIHRoZSBFUlJPUiBjb3VsZCBiZSByYWlzZWQuDQoNCkZvciB0aGUgYmFja3dhcmQgY29tcGF0 aWJpbGl0eSBJIHN1Z2dlc3Qgc3dpdGNoaW5nIHRoZSBwb2xpY3kgYmFzZWQgb24gdGhlIEFQSQ0K dmVyc2lvbi4gRS5nLiwNCg0KYGBgDQogc3RhdGljIERhdHVtDQogcGdfZ2V0X3B1YmxpY2F0aW9u X3RhYmxlcyhGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgQXJyYXlUeXBlICpwdWJuYW1lcywNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2lkIHRhcmdl dF9yZWxpZCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2lkIHRhcmdldF9yZWxpZCwgYm9vbCBtaXNzaW5nX29rKQ0KLi4uDQpAQCAtMTYzMSw3ICsx NjMxLDcgQEAgRGF0dW0NCiBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzX2EoUEdfRlVOQ1RJT05f QVJHUykNCiB7DQogICAgICAgIC8qIEdldCB0aGUgaW5mb3JtYXRpb24gb2YgdGhlIHRhYmxlcyBp biB0aGUgZ2l2ZW4gcHVibGljYXRpb25zICovDQotICAgICAgIHJldHVybiBwZ19nZXRfcHVibGlj YXRpb25fdGFibGVzKGZjaW5mbywgUEdfR0VUQVJHX0FSUkFZVFlQRV9QKDApLCBJbnZhbGlkT2lk KTsNCisgICAgICAgcmV0dXJuIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoZmNpbmZvLCBQR19H RVRBUkdfQVJSQVlUWVBFX1AoMCksIEludmFsaWRPaWQsIGZhbHNlKTsNCmBgYA0KDQpBbm90aGVy IGNvbW1lbnQgZm9yIHB1YmxpY2F0aW9uLnNxbC4NCg0KYGBgDQotLSBDbGVhbiB1cA0KRFJPUCBG VU5DVElPTiB0ZXN0X2dwdCh0ZXh0LCB0ZXh0KTsNCmBgYA0KDQpJdCBzaG91bGQgYmUgdGVzdF9n cHQodGV4dFtdLCB0ZXh0KTsNCg0KQmVzdCByZWdhcmRzLA0KSGF5YXRvIEt1cm9kYQ0KRlVKSVRT VSBMSU1JVEVEDQoNCg==