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.94.2) (envelope-from ) id 1rmRUp-007sEw-An for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Mar 2024 04:54:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rmRUn-009XGl-1n for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Mar 2024 04:54:41 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rmRUm-009XGZ-K4 for pgsql-hackers@lists.postgresql.org; Tue, 19 Mar 2024 04:54:41 +0000 Received: from esa6.fujitsucc.c3s2.iphmx.com ([68.232.159.83]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rmRUd-005GAI-Bo for pgsql-hackers@lists.postgresql.org; Tue, 19 Mar 2024 04:54:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1710824073; x=1742360073; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=OqAtoDJtTdyiUpiBNXCCZiSaZFJSSuqa4iVyZq8AQZo=; b=HU6/+ujPBYIUPehLgvKwJCI9eEz1jNo1YZ9mVJdzWp5S2no7C+3imFt1 VfH8lkCShOrb/sOPm9CHb6hnjeAxWhjc/90bWHRwZ09jR2vsmeUbASOYx cilboJXwUXDV/GteZ0tnQ3Jw25seX69T5U/TPyY2lCrzKZtXipPTZ6JHR Z1mPX0UgaDGuba3yLhdYYpRTxvW9phedAxHItzAPToNCzq4ljAue6eULj My44TYR1sf25v57GpnTEEHJnLQ4jdDrD20EL5s89tKJCVAEnIMwEV4dAQ hGKgDrfpZvTRJxZMoBS6WecNvAMjSu8tjXvpozfN+hh7yOwnrCD/ipsid A==; X-IronPort-AV: E=McAfee;i="6600,9927,11017"; a="114405221" X-IronPort-AV: E=Sophos;i="6.07,135,1708354800"; d="scan'208";a="114405221" Received: from mail-os0jpn01lp2105.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.105]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Mar 2024 13:54:27 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M9Xi/z6ZWYlH+znTEXbVrl6h4ztDQNajdOstqyBnWmlJOLf9pBORHtcfLT+jColUS5K1WanS7t6bCIqN6uAnVfj5xAdoqo6Il1Lgs48ToBnTLoO6TUXgBr51KXU7pxsHzfYs+hg8Gvp8wHkA3nzjnhhsaOytq6VBZD1rUj6h4OvtkuybepPm7B1CoSKAiw1HyLQx6SZgoReFpumNzIhf/rJ9UtCCJTbHTLwZeMiXw7tfAlVlxUSB7YO27NVokoPubyIVI0fRTw2hkFgdtJa2FSmB6hk+B7d8q5YHzinQthoJAtBpBHEHg45l4Ui7xhLorrZQmGHOBdCHz82XnsYRjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=OqAtoDJtTdyiUpiBNXCCZiSaZFJSSuqa4iVyZq8AQZo=; b=PO76qwcFX8p42c3D6rwrVgb1giczVpUj+xyqNZdEmdE8qcQ8RQM7ow/i05rv7TVJyFa/A22LCQP7gw+0Vj+nVMEycJWjqlYL0LNCItGnZI1KolZpkGvBnRqomiTaKzbvFJsMGy8kt66JI6k6FTvmXtGgfuLCoIPTIYUPYPBfQKctQgsgFzXWi6g+p+9dUEo9OrCyFC2+C+15k9deUlBJJ+jvLrRCFkXWk7AEdOgDARpYZCPLirVNP8PD5Hwbg7m1sIePBNMZvbkPxPxobw3+qz/F8c0gGaO4m66J0Od3H5pOr2zrGk9+u0FLsYarLRfQtmqJqO05y7TVHb9xInKPYg== 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 Received: from TYCPR01MB12077.jpnprd01.prod.outlook.com (2603:1096:400:439::5) by OSZPR01MB7746.jpnprd01.prod.outlook.com (2603:1096:604:1b2::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.27; Tue, 19 Mar 2024 04:54:23 +0000 Received: from TYCPR01MB12077.jpnprd01.prod.outlook.com ([fe80::7e1a:6993:fe9e:5317]) by TYCPR01MB12077.jpnprd01.prod.outlook.com ([fe80::7e1a:6993:fe9e:5317%3]) with mapi id 15.20.7386.025; Tue, 19 Mar 2024 04:54:23 +0000 From: "Hayato Kuroda (Fujitsu)" To: 'Peter Eisentraut' , 'Euler Taveira' , Amit Kapila CC: Shlok Kyal , Tomas Vondra , "pgsql-hackers@lists.postgresql.org" , Michael Paquier , Andres Freund , Ashutosh Bapat , =?utf-8?B?RmFicsOtemlvIGRlIFJveWVzIE1lbGxv?= , vignesh C Subject: RE: speed up a logical replica setup Thread-Topic: speed up a logical replica setup Thread-Index: AQHYJxwqCwVDEK8rxk6UuFJmWEa5OLBaerWAgBix/4CAACTuAIACleiAgACOjoCAKWVqAIApDNiAgARDvICAAC3UgIAADN4AgABJ6wCAAUerAIAHtdWAgAFvhACAAEZbgIAAWW2AgACrngCAAM0jQIAPei1wgAAshICAAp5LgIADBLQAgACKXLCABEd0gIABoIwAgAB7ucCAAcm90IAAHJgAgAACwICAAAXhgIAAC7MAgAAh+gCAAIfpEIAAGb3AgACYWmCAAOVegIAAfuxAgAeMDoCAAAXdAIABBpmAgABeF2CACXUbgIAATP9AgAHL3uCAARDPAIAAoFUwgAQywWCAAeMXAIADek5ggAz2jwCABVnHcIADBCkAgADUOwCAANs88IAH2USAgAB1EYCAAojjAIAALVOAgAIrrICAAnzvcIAAXPgAgAElAgA= Date: Tue, 19 Mar 2024 04:54:23 +0000 Message-ID: References: <9a9c7e65-c47b-4400-a63e-ac6169c0860e@app.fastmail.com> <40595e73-c7e1-463a-b8be-49792e870007@app.fastmail.com> <6423dfeb-a729-45d3-b71e-7bf1b3adb0c9@enterprisedb.com> <2f0b73f3-e7c0-4e95-9712-1993442a6b64@app.fastmail.com> <34637e7f-0330-420d-8f45-1d022962d2fe@app.fastmail.com> <085203c4-580d-4c50-90e3-e47249e14585@eisentraut.org> In-Reply-To: <085203c4-580d-4c50-90e3-e47249e14585@eisentraut.org> 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?NTBfQWN0aW9uSWQ9ZDFjZjhjMTEtMTc1OC00MzU2LWFkZDUtMmVjMjYxMjVh?= =?utf-8?B?Mjg3O01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZXREYXRlPTIwMjQtMDMtMTlUMDQ6NDM6NTlaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?Q?d-81e1-4858-a9d8-736e267fd4c7;?= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYCPR01MB12077:EE_|OSZPR01MB7746:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IwXbkUE7NjgFerH6JUsirrQTekXGJgd+WV73qkHGbHnmw/+uvMj7vugWRXM2iJMC2MIKecs1b15r+lApk1j/vrXVMtFFFCgkfqvX/4fC+dP3pEcIYIfSAZmNx1VpjPbDs35Vdoc6wHlj+gvMGjhu6M0XEZGL29Ci8uS3BMhNh9kSYKLbaGbNMU6hXxjbWdjPcbWVywizz7tpl5X0GJcUCQg46WslPNoXkRPzsHi54eJ429U/CK3HqCHLe58VQjM45Tz10LMe4bYZ9RL9lzZV4xm12FKPPAi+sz+ZMSqUjklYZwwXyD1x/TCctfK/eV8Y82q0Wy+TPBTd7kOv/8BeQMkjXSk0xhuZ8CT1TDLq9Omlqlo7bM+86VDwEZCio82M4qex46hRycb0IvlgtabhVW+7IuzUKoKO23hwPb6CZ9/w1kHkqwnWeMfkMq6CKtP3AJPjKD8j3qo6hnBeGDgcBVnPTbFiSgx0v/2jrdLz7rOX+dzyk91QKjPW54ejgAJsIuyvjpi3QD3jL29fvEy8w1buYAfyZBXM15H/Qqms/RvXjSpASAtUOJEmutHKWEvjXKQ+lcJ6HmFq+nrCSxr/Z2a7KsYPeExq8Yuu6piOb9osHm1N1mTM+HYQQ5fsVzBYcGWOQPvNBD4OgZXTqwndsgXA7EsY/xr23VYpeSdC4Xw= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB12077.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(1800799015)(376005)(7416005)(366007)(1580799018);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L3ZsREphSWVLc3BEcyt3L2E1a3JSWVhLWnBCV1JqUWg5STBCUnNlY2MwMVZw?= =?utf-8?B?aVEyTDFoTkhjVm44bm1qWXoxV21HUmRmRmMrcDNtZS8wV1YwVkFHZklydEsr?= =?utf-8?B?WXdmZGVxSTIxSUk2NVY0WklJbm50U2I1YVh2ekVsNmR1WXdZcC9MaXhMWTJ0?= =?utf-8?B?QitTMStJOE5WQnAzdlRGZ2J6anE1YlNhZndKTWk1bTFvWVVyQWIxVmJxRmJK?= =?utf-8?B?ZG5WTGpZUThSL2pyQVh5VXR4VitBM1NVQVJVK21sL2ZhaHRVOWxpc3ZmYTdT?= =?utf-8?B?aS9oTE9hUlZpdzhTNXhudHZxbFh4VGhwS3pBTFdTWXFXcCtMNU0xWXZnQmRR?= =?utf-8?B?OWRNaXNvRHpmWEJGTGVaUkhpN1dJeW11NFFRRzQ1UVd3eHpvaGRFYVNBREZn?= =?utf-8?B?MGlCRzZyQ3FsR2JOQkNGYlRmdTBHTVhRSlhCNlZyUEJOL0kyTmh4aHdUTmtV?= =?utf-8?B?Tm50U2wyNUR3YW5XWjZydW51ZFViWUxtRFFpSE9SdUg4TjB2RWVxUm1oWTBm?= =?utf-8?B?ODdnYTFQMnFuNGFQZ08xWUhyOUVCeFVuZk9TWXEzTEdOLzhCT3pjejVnc2tK?= =?utf-8?B?OXFTdVh5Wlc3Q3FuZUNUc2lTdi9sSU1QYkY3V2RzNnFoVCtvUlJueDAwN1hy?= =?utf-8?B?R0ljNno5YWZyazlvdnhlNmxkeXI1VnZYcWNLVTZMWnpGRXEzTnpBdFJhZld3?= =?utf-8?B?MTRZNzRkNkQ2OGNEOEtUeGsyUFFOS2pMSHhOd1pkZ3AydHdwYzFoTUx3ajYr?= =?utf-8?B?OTRUZnZoR0FuSnFmblpBV1FqeHpza0VPTk0wcE5kcE1qL2pUVWJ2UFg4NzFm?= =?utf-8?B?VVQvZkV4YUdoWnFqVHA2OGxDYjd3cjhYN0p4SityMzlMM20yalVxek9qdytt?= =?utf-8?B?VzFsR25zaEpnZ3FjVG9VUlZpS2dqRXpSbmwxVm1SZytEakVJTTNiY2R0UHc4?= =?utf-8?B?czFId2hhOVFMV3UrZkxCRS9kenNMYUJaRkpidDYzanVGd1pBRmVuTFg1M2dE?= =?utf-8?B?MFh6Y0hpaGRlaVgvWVFHWGxJeFdEU3RlSDFuQ21DWTJxOFE5aWQvaWFOWWcw?= =?utf-8?B?MU93cmoxR29JdzR1Nlp2TzNSclQ4U2FsMC96blM2T3NUa1A2a0s5RS9ScUhV?= =?utf-8?B?cG5Tb1lDZnk2MGJCOTdJQVhDdDF5SlR3bVFmUUUzeE9HMmxKNCt1dS9lcTh2?= =?utf-8?B?bHhweUY3R1JEbXhoT0l2SXhIa2hPY3BTNmpneUo1cmY5T3pmRFdyVmtTVmlQ?= =?utf-8?B?NUl2Y0diY1NOclgyY1VTbnN3MVF6YklrazJoaFFTNHQzWGhRaXZQeWd5ODZi?= =?utf-8?B?SGVuZlFBRGhyMHBmeVE3NUN5MFZETkNPK3ArMkVTQ2N0dW9WdnNnSUwySEtQ?= =?utf-8?B?dHJUQ2g1S0V6UlFmeDBRd3NhS2NzY0xab01uRm5zV1A3TDVYZUVRLzdWOXpH?= =?utf-8?B?bi9NdlJRZTFvZ3crd01KTGFvaFNtVmhXYzdLVDlQVk55SFUzVjlRN0pDVmFj?= =?utf-8?B?WUNoWXN6Zm5VeE9qdXBwcnN3eEZNZkxaTmQ4U1FNeTk0OHpOUi9jU2NiWG5n?= =?utf-8?B?WnJFdHcvS3BZMGdvbHdRd1FZQTJpOFgvMGJjbWtDRTdRNk03T2RrKzdtbG1S?= =?utf-8?B?SWpSOHhuWHN3dnFwcy9jdm1mNk1tb3V0d2lvd2NOZndPVWRLWTdxbXRBL2tI?= =?utf-8?B?VW4vc0FGMEVqdjVhSUVGNzFLNGwwTUFtVUNlalRVbGswejVDWndQd0pIbUVr?= =?utf-8?B?SGZab0JERDZ0MXF4R2xTakp0Y2JLN0NONmRUcTB1R3hQbXMrMXd5cTVRRklv?= =?utf-8?B?WTBQSVh1bEFSOHlYamhPN2F2YUw3aGhxcGtaNG5FaGk4SUFNcThBM0F0ZHpx?= =?utf-8?B?cVkwbE1qT1JwKzRFZ0R1Z29pM3lrc0k5aW1wUjJ1R0pHemNzb3QyNlFYRXJ4?= =?utf-8?B?amJzd0RmV0ZXNGNBSXlqYUtEU3N2NDNyMHh0ZWVVazZReVZmY3Z6alVCSW1X?= =?utf-8?B?THV4LzFFdUxNRVJyU0NJaUF6Rlg3bHBoWVpYNWdKTEkvQVhnOC9RWThTbmEw?= =?utf-8?B?emg0eUZmMXVTNFluR0FqYk9hOWcweDNqRDdTNVJ3R2VUYUJUTlg0MGtvK3Jj?= =?utf-8?Q?e3NuhYgaZcvcNZiSEX/ksomM1?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: O2v6fJd5/BXUvs2HoVLicOtj1zsKWngNNxEwYRA3bL6WkOP3XZDlcuHJJtoi2xVFSFis405p+HUUM0PYXgMdxcKQZtUPuMgxLj+uD9CCLzinP7MsX7MtMxN4eV7mb4fAZUs5XXHCBpFcSLDOQDR05p1SedJEK/TX0OHlIufIUY6oA9l/RU6f5K9/VPY6ya4Tn1QpaGSs3rOH4AI8UdlIGJDEmuTw28ayxv4Zy/zZdxwTG96r/JUX0q18V0TIMFMfyqxunE1xXDFalnmV0G62URBWz0ve0WUMm5n8kyYKRNlvBEXbB0nty3vVVI93SS+yAbnPagzYTZCDRPUuV3AvUy4FSrFxTqusjptK6sjR59/QQwn0yIRqtU8FqM+B+Hnj1QmNcHC8ETx3jAysjeiDRVwQhx4plUVUZoNUaEYOy83a8mAtH8dIp20WhrwUfOtiwpSNgeIdlLxwKyNBblz6LwM8DAMvI3ZFbAmNXfpg3NlpG3On4vjO2vFPWxzbeej5Mec6EWCYqO5iPOfG6w0s4jHX6DOhrbclhUyETTgML1MpQ+ZvHce1iT1kw26U3aKJX24rodpZ5xRV/29TyoWmaZvCXalkbcMd/HRJRut/6yBlmb0Gr+MawWDLIJZC6ES3 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB12077.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a5dbfa73-ef3e-421c-d0c2-08dc47d0a57d X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2024 04:54:23.4534 (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: lVq/Tp5+dNICqfKbPJvdnPEdqpizNRmvmgioSiLZtWffJ9jP9198p3/VRy6WXq5du+ddauu0Uz+oD1qpUU7iuspKGV277FelprSITpNju5Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7746 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk RGVhciBQZXRlciwNCg0KVGhhbmtzIGZvciBnaXZpbmcgY29tbWVudHMuIEkgd2FudCB0byByZXBs eSBzb21lIG9mIHRoZW0uDQoNCj4gPiAxNy4NCj4gPg0KPiA+ICJzcGVjaWZpZXMgcHJvbW90ZSIN Cj4gPg0KPiA+IFdlIGNhbiBkbyBkb3VibGUtcXVvdGUgZm9yIHRoZSB3b3JkIHByb21vdGUuDQo+ IA0KPiBUaGUgdjMwIHBhdGNoIGhhcyA8bGl0ZXJhbD5wcm9tb3RlPC9saXRlcmFsPiwgd2hpY2gg SSB0aGluayBpcyBhZGVxdWF0ZS4NCg0KT3Bwcy4gQWN0dWFsbHkgSSBkaWQgbG9vayB2MjkgcGF0 Y2ggd2hpbGUgZmlyc3RseSByZXZpZXdpbmcuIFNvcnJ5IGZvciBub2lzZS4NCg0KPiANCj4gPiAy MC4NCj4gPg0KPiA+IE5ldyBvcHRpb25zIG11c3QgYmUgYWxzbyBkb2N1bWVudGVkIGFzIHdlbGwu IFRoaXMgaGVscHMgbm90IG9ubHkgdXNlcnMgYnV0DQo+IGFsc28NCj4gPiByZXZpZXdlcnMuDQo+ ID4gKFNvbWV0aW1lcyB3ZSBjYW5ub3QgaWRlbnRpZnkgdGhhdCB0aGUgaW1wbGVtZW50YXRpb24g aXMgaW50ZW50aW5hbCBvciBub3QuKQ0KPiANCj4gV2hpY2ggb25lcyBhcmUgbWlzc2luZz8NCg0K SW4gdjI5LCBuZXdseSBhZGRlZCBvcHRpb25zIChwdWJsaWNhdGlvbi9zdWJzY3JpcHRpb24vcmVw bGljYXRpb24tc2xvdCkgd2FzIG5vdCBhZGRlZC4NClNpbmNlIHRoZXkgaGF2ZSBiZWVuIGFkZGVk LCBwbGVhc2UgaWdub3JlLg0KDQo+ID4gMjEuDQo+ID4NCj4gPiBBbHNvLCBub3Qgc3VyZSB0aGUg c3BlY2lmaWNhdGlvbiBpcyBnb29kLiBJIHByZWZlcnJlZCB0byBzcGVjaWZ5IHRoZW0gYnkgZm9y bWF0DQo+ID4gc3RyaW5nLiBCZWNhdXNlIGl0IGNhbiByZWR1Y2UgdGhlIG51bWJlciBvZiBhcmd1 bWVudHMgYW5kIEkgY2Fubm90IGZpbmQgdXNlDQo+IGNhc2VzDQo+ID4gd2hpY2ggdXNlciB3YW50 IHRvIGNvbnRyb2wgdGhlIG5hbWUgb2Ygb2JqZWN0cy4NCj4gPg0KPiA+IEhvd2V2ZXIsIHlvdXIg YXBwcm9hY2ggaGFzIGEgYmVuZWZpdCB3aGljaCB1c2VycyBjYW4gZWFzaWx5IGlkZW50aWZ5IHRo ZQ0KPiBnZW5lcmF0ZWQNCj4gPiBvYmplY3RzIGJ5IHBnX2NyZWF0ZXN1YnNjcmliZXIuIEhvdyBk byBvdGhlciB0aGluaz8NCj4gDQo+IEkgdGhpbmsgbGlzdGluZyB0aGVtIGV4cGxpY2l0bHkgaXMg YmV0dGVyIGZvciB0aGUgZmlyc3QgdmVyc2lvbi4gIEl0J3MNCj4gc2ltcGxlciB0byBpbXBsZW1l bnQgYW5kIG1vcmUgZmxleGlibGUuDQoNCk9LLg0KDQo+ID4gMjIuDQo+ID4NCj4gPiBgYGANCj4g PiAjZGVmaW5lCUJBU0VfT1VUUFVUX0RJUg0KPiAJInBnX2NyZWF0ZXN1YnNjcmliZXJfb3V0cHV0 LmQiDQo+ID4gYGBgDQo+ID4NCj4gPiBObyBvbmUgcmVmZXJzIHRoZSBkZWZpbmUuDQo+IA0KPiBU aGlzIGlzIGdvbmUgaW4gdjMwLg0KDQpJIHdyb3RlIGR1ZSB0byB0aGUgYWJvdmUgcmVhc29uLiBQ bGVhc2UgaWdub3JlLi4uDQoNCj4gDQo+ID4gMzEuDQo+ID4NCj4gPiBgYGANCj4gPiAJCS8qIENy ZWF0ZSByZXBsaWNhdGlvbiBzbG90IG9uIHB1Ymxpc2hlciAqLw0KPiA+IAkJaWYgKGxzbikNCj4g PiAJCQlwZ19mcmVlKGxzbik7DQo+ID4gYGBgDQo+ID4NCj4gPiBJIHRoaW5rIGFsbG9jYXRpbmcv ZnJlZWluZyBtZW1vcnkgaXMgbm90IHNvIGVmZmljaWVudC4NCj4gPiBDYW4gd2UgYWRkIGEgZmxh ZyB0byBjcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCkgZm9yIGNvbnRyb2xsaW5nIHRo ZQ0KPiA+IHJldHVybmluZyB2YWx1ZSAoTlVMTCBvciBkdXBsaWNhdGVkIHN0cmluZyk/IFdlIGNh biB1c2UgdGhlIGNvbmRpdGlvbiAoaSA9PQ0KPiBudW1fZGJzLTEpDQo+ID4gYXMgZmxhZy4NCj4g DQo+IE5vdGhpbmcgaXMgZXZlbiB1c2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mDQo+IGNyZWF0ZV9s b2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoKS4gIEkgdGhpbmsgdGhpcyBjYW4gYmUgcmVtb3ZlZCBh bHRvZ2V0aGVyLg0KDQo+ID4gMzcuDQo+ID4NCj4gPiBgYGANCj4gPiAJLyogUmVnaXN0ZXIgYSBm dW5jdGlvbiB0byBjbGVhbiB1cCBvYmplY3RzIGluIGNhc2Ugb2YgZmFpbHVyZSAqLw0KPiA+IAlh dGV4aXQoY2xlYW51cF9vYmplY3RzX2F0ZXhpdCk7DQo+ID4gYGBgDQo+ID4NCj4gPiBTb3JyeSBp ZiB3ZSBoYXZlIGFscmVhZHkgZGlzY3Vzc2VkLiBJIHRoaW5rIHRoZSByZWdpc3RyYXRpb24gY2Fu IGJlIG1vdmVkIGp1c3QNCj4gPiBiZWZvcmUgdGhlIGJvb3Qgb2YgdGhlIHN0YW5kYnkuIEJlZm9y ZSB0aGF0LCB0aGUgY2FsbGJhY2sgd2lsbCBiZSBuby1vcC4NCj4gDQo+IEJ1dCBpdCBjYW4gYWxz byBzdGF5IHdoZXJlIGl0IGlzLiAgV2hhdCBpcyB0aGUgYWR2YW50YWdlIG9mIG1vdmluZyBpdCBs YXRlcj8NCg0KSSB0aG91Z2h0IHdlIGNvdWxkIHJlZHVjZSB0aGUgcmlzayBvZiBidWdzLiBQcmV2 aW91c2x5IHNvbWUgYnVncyB3ZXJlIHJlcG9ydGVkDQpiZWNhdXNlIHRoZSByZWdpc3RyYXRpb24g aXMgdG9vIGVhcmx5LiBIb3dldmVyLCB0aGlzIGlzIG5vdCBhIHN0cm9uZyBvcGluaW9uLg0KDQpC ZXN0IFJlZ2FyZHMsDQpIYXlhdG8gS3Vyb2RhDQpGVUpJVFNVIExJTUlURUQNCmh0dHBzOi8vd3d3 LmZ1aml0c3UuY29tLyANCg0K