Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oJUUW-0007ZL-G1 for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Aug 2022 06:37:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oJUUV-0006m6-CI for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Aug 2022 06:37:55 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oJUUU-0006go-QS for pgsql-hackers@lists.postgresql.org; Thu, 04 Aug 2022 06:37:55 +0000 Received: from esa12.fujitsucc.c3s2.iphmx.com ([216.71.156.125]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oJUUR-0000qj-I7 for pgsql-hackers@lists.postgresql.org; Thu, 04 Aug 2022 06:37:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1659595072; x=1691131072; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=E0IAcLHZh+JqsyxMpYgdmYp9PP9g+6AMEcIuC+23ohg=; b=dxp3djyUMcwICWAxXwE86ZWoYlT/e7oYWgcqe2H9pU/Tt9c5z64bpLEW HmDfnX11izAck3+I2xUdMRoGrrUby98qMXeZ2f3xIlJdrRGnHzN38kpbi kceGZMqs1Gk0RO5ec10JKnmGscAjQNLo76mQjnoBXkN7L4FWlrLswEr2T CvH32Hutnv8XwveSbJd7SpXu3+WbPIlV+rlVR77d51c3BKMzoxSSP7dcJ T6CLEgPII3+BZJOohXz5E5y3jI0ihM99iiKQjko0Wl5rVCWHnkD1yiTny eXrpfn/CexBsQd9nRxOfLlJ4cfrMp6mPvl8QXBS7CWTaRQS+LVs2GoyBS A==; X-IronPort-AV: E=McAfee;i="6400,9594,10428"; a="62199387" X-IronPort-AV: E=Sophos;i="5.93,215,1654527600"; d="scan'208";a="62199387" Received: from mail-tycjpn01lp2171.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.171]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2022 15:37:46 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BBSKex7FdQEAqL1gpXDSnRqYWEiSnOFP+KSPLK0iliiX93emy5WBgVIYN/i1kNjTytU+UutW47cvEJO695vXpGF8BkpAThes1H+69eyQULTepvmZtsXZs7xnT893b1lodd7hBm+vkF1Sw+7s2wXzgs/9LrMLbM1Y9iRQDTjE282bGBbICukFX84F6g07RNJsZXMY7pDh1yclnbUy8QC1RS7UNaXzaqGCxa+4bM4Q+c6ypN7bTRab/ApnWfY1LIsSpTW7SBdvTaOU1AinOIanzMRSJL1b1/HiWgLeWESkFQeV3zUTWm/EY63/t2E2BigQ2H58LIKw9qXPtdujhqSRSQ== 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=E0IAcLHZh+JqsyxMpYgdmYp9PP9g+6AMEcIuC+23ohg=; b=cpfIM0wgHeIF/wwkaRiRqfmHSyW9vmBKVxvznzofy4C4JGY1yfqe7fz/c0sHLpgAJ9ic7fklwzBI+5mLijMroUDzXwbQuuPzvMOTvUpV5akn2gDH/FheVCKYXoG3xEEyPhOP8XxvjzVDbRl2fsl8sejORvtipflMK0yk/UvOr4bXKwRLmfi2AazazFBZR4cs99ECYjW7TTFi96QAY+xTMYetGtqUhDKuT9uPbRD6R4gVgD8ZljrWBza37ZoZ/Kupomd+ZN89be8Um/4vYo/Xi05PeTJkI07pB6BuJAnI9NoEbci/+rYd8EW2sa+CfWSN+QR2yDljKMQ4ebBHgTJPQw== 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 OS3PR01MB6275.jpnprd01.prod.outlook.com (2603:1096:604:f1::8) by TYAPR01MB4463.jpnprd01.prod.outlook.com (2603:1096:404:12b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.10; Thu, 4 Aug 2022 06:37:42 +0000 Received: from OS3PR01MB6275.jpnprd01.prod.outlook.com ([fe80::b7:3975:8c62:f5d1]) by OS3PR01MB6275.jpnprd01.prod.outlook.com ([fe80::b7:3975:8c62:f5d1%4]) with mapi id 15.20.5504.014; Thu, 4 Aug 2022 06:37:42 +0000 From: "wangw.fnst@fujitsu.com" To: "kuroda.hayato@fujitsu.com" CC: Amit Kapila , Masahiko Sawada , "shiy.fnst@fujitsu.com" , "houzj.fnst@fujitsu.com" , PostgreSQL Hackers , Peter Smith Subject: RE: Perform streaming logical transactions by background workers and parallel apply Thread-Topic: Perform streaming logical transactions by background workers and parallel apply Thread-Index: AQHYSXX4/KZEbPJKjUy7J1pJS8eGYazlvxQAgAkRYICACBI2gIABs50AgAA5UwCAApvIgIAFAGuAgAXc1wCAADa7gIALO/aAgAsRZICAB606AIAS9tXQgAAv04CAAWQLgIABHxKAgAA3o4CAAd7v0IAJQDLggAkyO+CAAiLMAIAC0M5ggARwU4CABP8UAIAAGBkAgAd/49CABPEVgIAJO7xggABuopCACQ1GAIAJSjQggAS+3MCACIAKgIABFusAgAsV+KA= Date: Thu, 4 Aug 2022 06:37:42 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9ODY2ZTJkY2EtZTFmYy00OGIzLWEwNDMtYTBhMGM3MDZm?= =?utf-8?B?MDIwO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFRO+/ou++gA==?= =?utf-8?B?776LO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX1NldERhdGU9MjAyMi0wNy0xOVQwMjoyNToxM1o7TVNJUF9MYWJl?= =?utf-8?B?bF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfU2l0ZUlk?= =?utf-8?Q?=3Da19f121d-81e1-4858-a9d8-736e267fd4c7;?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9a918f08-8ae5-47fc-90d3-08da75e3d576 x-ms-traffictypediagnostic: TYAPR01MB4463:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dedCbv+hOnvtt3lquLhghQZJ49NeHV7Qg0/YC8S70bCc7CWPcZr5sCmp3UPpFTdejCoJ219GU98C2yPDNdSSBks17O+WRTcUodpXb411zOAOfiRWZvX2Pfn0dfutpT8g1HYj4dAGW/NxaOrxutqgc7BWLIFR1xpg82NlMBZG6P9O2FBBNZ996qeqJcPybWqMtvbMj8q7CUDJQNkcqDI1hghryRxK9gnp8Km2EtrA81XGFxAu0TsdAzkM8mfBVBCtCCs0sKE2QOfwHW12pofwKs1co12oolB7WleJftKTYEfy9WA1QOvRRRBDv4ok78zJoz98p4BFRQSt0ctGXlQM/60J5N9DpLu8CkU5encbnZhKOygQoynAsAAQq07RwakQ9bcVA2Pu2MHBBo8XsttYmNpJUkVyTJOUSMtD1HV1sBrsPtR3xcG0tx8/kGdJAhEHvS2fbtYcIXDEx6+mo+TkSnvQKkK98ENnwBDPlVPZS9Nj61vU+t9rs5uy8wlucfM5/2+m1z9xhErBfQi9HIBcmnp5XASMWcrEFo3OsQODp0IV3vh6XSY8eO2TWJzR1W6lHapLstVSPr0vOowlgSZ33pVm9TnWjC/njq4Mf2PsOdvDwWJjQiVCOp5JgKqvD1R6FjcclC8/I79yupa9hdhPUMV0YPqe7gq+veAwmEsVaBvI/satMmDAlHBrbfvbsM5LcDz0BITUqZU8aTGjWfmrCDSqPBcTL++QHO117zy1F0degiHbv3KtD47bfw749vczCm5u6T7V5u1dgyDvXJ6dUUbBDLDQgdLmGXDe05quieB1YafvY841sdXAM3OjXHGzTyhOCGBV0A/tcZktjikSJQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS3PR01MB6275.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(366004)(376002)(136003)(396003)(346002)(39860400002)(55016003)(45080400002)(71200400001)(83380400001)(66446008)(8936002)(6862004)(85182001)(8676002)(66476007)(6636002)(76116006)(4326008)(478600001)(66946007)(966005)(64756008)(66556008)(52536014)(86362001)(26005)(186003)(41300700001)(2906002)(5660300002)(33656002)(54906003)(38070700005)(316002)(9686003)(82960400001)(38100700002)(122000001)(6506007)(7696005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UTVJdzhFNjNGcU1ra0dHTDErMlhRNXV4VVRJRlgxOWVaMkZhN08zcWpBME9i?= =?utf-8?B?Q3ZOR08vU0lpNUpyUVM0ai9Za2pHejJIZnJmWEIvRzEyZTdhVmQwSm00MGJX?= =?utf-8?B?dXpSMkJhZTBaUUFCOXcxV3BGbk14TGE5ZE1sVGlnMUZ1NitNNWJzQ2RLTWN5?= =?utf-8?B?WWpnSitmZ3VQRmhhMjNJSENtUW9LOFNsTzhkbGxhaGpMRCtRbWZnZi9tbUQx?= =?utf-8?B?QjN6L3hIYnNHWXpubVJqT1JKSXJnYWYyaHkySzFUOW1PelFVMXVRZDBoT3Bl?= =?utf-8?B?b21BSW9rMUJoL2pxWDl1MHFEK08wR1p3Rk5aampTZVlndWYrRUlKOFBkUEVP?= =?utf-8?B?TzZ0dVZwQ29qZ24xanVtY1YyRkdtVVE3M2pIdkNLcjZHZ1JBVExJcGZ6ZUM2?= =?utf-8?B?bWZ4aHNzT2MxUmRWaGdBRnlDYUZJYU1RbGlBNVdzYXhRWEhwMTNPUmVHeVZD?= =?utf-8?B?THlicjRwOVhOTmZud1lIZ3RzOXBGVldlWmNocVBuaXkzNmdWdDhOak9DUE5D?= =?utf-8?B?ZktERUpubnNOdVZsTEpHTjYwU0dVSzlSUGxQL1JsRDdjMW80Si9qTG9OVkpx?= =?utf-8?B?YXJMb0xoa29oZTNlSVV3MU5mc2VVcS81U1pXUWJlTFUrc3FySTlEaFJ1Y0ZS?= =?utf-8?B?ZTU0eG1LaHROODl0dUdtTHZwOG10dlVTbFFVbW9lSEV2cWExMk8wQ1JsYzR0?= =?utf-8?B?Ui9rRDZUa0w4ZVdNTVRtQTEva3NMUVByYU1DMlFGY2oxRnFqY29xZTRrNFdl?= =?utf-8?B?SFRPMXc4MjR5ZnY2bEh6VzJESFZySnlpZFcyY3pKeHdvSlAvM3JjMVBSTG50?= =?utf-8?B?dzM2MmdkSnEwYlhORUxqcnVkK2tIcjEwa3F6QnZSa2lKUThPbktqWGFwN1Zn?= =?utf-8?B?cU0vdENqcWxTcmxXM25SV2xuVEFBMVoycEhCV3FsRytEUGtVRmNVTXFobHpO?= =?utf-8?B?MitPelVuR0dWK25nTXpqWkNCSEVVT0l4czlEc0hwM0g4TTZZSHlnNlFYNkxw?= =?utf-8?B?UVRWaEFnWHZITytnQVowV3JPVlVVbldhQlJVWldscHhORmVqSVpWVjVMK0N1?= =?utf-8?B?SnA0VlVTL3JQakNtc0lQZVVFbEViNjdCL0xWN0hMazJFU0JpcEcwQnBqYTNS?= =?utf-8?B?MWJDVEVvb0loTmordW9temNPMGdzai96VDJtamp6QXNsUXhIb2c4Z1p4TUlO?= =?utf-8?B?a3YxcDJ0VVlRL1Vremxobk1iUVk4RDc4ZHA2ZUJmejhESlpHRlpkRTkxODFQ?= =?utf-8?B?WXkrTUJvTzNOQ1dzUWVKN29VTXNqcTlGczV5RjFnekRXem9DU1dmKzNNMkRN?= =?utf-8?B?R0pNbmNKOXNhY0dzUGgrYmJocDRwVzh2Z3h6R1NySDJablYvdXpOUG1wYWdz?= =?utf-8?B?eDR0YlBLYkZDcnRENTNkODZIVjdQY1R3UjVBM1RSSEJ1UWkyeWRYZExNelZN?= =?utf-8?B?UWlJMUplZXFxbXhCay93N0pqNTh1SmNpaGg4OVRvQ1orTUo1akNGQy9CbXg1?= =?utf-8?B?akY3QUx5M3NOYktiNnhsckJaTVBmckRHcDNuNFBUTGZ1cVN2NGVScVpFMExp?= =?utf-8?B?bjR1WnJmdkJpYktMclUyVGZUcDR3N0xPVCt1dW5wc0xLZzVMNjBsZEhBb3Bt?= =?utf-8?B?WUl5QXJGbWJkTExjV0VUd3pFRG5iYjMvaC9maGRkTFFzL1paNlVNK3BsYVA4?= =?utf-8?B?YlVBYjFZNGZCdC9NeVJLckUydTIzQ1VQMUNhdU5FTk1Zc01aaTIxejQwYWs1?= =?utf-8?B?T2VLeTd4aGlGd0ZGemNuUmZHZmxvQTF0SENHYlpXeGJ4QVRXMUZaV1I0RDNk?= =?utf-8?B?di96aUNRRWtPZzZvSGNsSS9MaWJIOUVDanNGWmkyNm5jays4NllHNEpNWDZC?= =?utf-8?B?UkR0RE1QT3liUHdvckdlZThNRUY4R1Ria01LQ1c4MUluUE5mc3BGNWtDaVdU?= =?utf-8?B?cFV4YjJNamtscmRBWFl6Wm1OL2pCVEZQSHdBNVFEekp6ZXRHV3lZZlRKQ21z?= =?utf-8?B?aHBpd3FWc1dSZ3JQaXBhY0FHYUx5dm1iM2lkaDBkajJ2TE0wQ0VlTjU4K2cz?= =?utf-8?B?THB4ZDdaQ0dRNW5YUVpxczhIS0hWK042bmJKSzJJbUdRNU1rSFN2MXpHem5u?= =?utf-8?Q?Iw2dp7fevOjGq6RSivI3nFgxW?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS3PR01MB6275.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a918f08-8ae5-47fc-90d3-08da75e3d576 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2022 06:37:42.5377 (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: M5/9xgo1Q7iY6imMJttomDCrRYFs5nO+qDCOX4V20zne9Dk7uQhhtatNEUrX82aWk941SJIURl7hZq85SHHzGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB4463 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gVGh1cnMsIEp1bCAyOCwgMjAyMiBhdCAxMzoyMCBQTSBLdXJvZGEsIEhheWF0by/pu5LnlLAg 6Zq85Lq6IDxrdXJvZGEuaGF5YXRvQGZ1aml0c3UuY29tPiB3cm90ZToNCj4NCj4gRGVhciBXYW5n LXNhbiwNCj4gDQo+IEhpLCBJJ20gYWxzbyBpbnRlcmVzdGVkIGluIHRoZSBwYXRjaCBhbmQgSSBz dGFydGVkIHRvIHJldmlldyB0aGlzLg0KPiBGb2xsb3dpbmdzIGFyZSBjb21tZW50cyBhYm91dCAw MDAxLg0KDQpUaGFua3MgZm9yIHlvdXIga2luZGx5IHJldmlldyBhbmQgY29tbWVudHMuDQpUbyBh dm9pZCBtYWtpbmcgdGhpcyB0aHJlYWQgdG9vIGxvbmcsIEkgd2lsbCByZXBseSB0byBhbGwgb2Yg eW91ciBjb21tZW50cw0KKCMxfiMxMykgaW4gdGhpcyBlbWFpbC4NCg0KPiAxLiB0ZXJtaW5vbG9n eQ0KPiANCj4gSW4geW91ciBwYXRjaCBhIG5ldyB3b3JrZXIgImFwcGx5IGJhY2tncm91bmQgd29y a2VyIiBoYXMgYmVlbiBpbnRyb2R1Y2VkLA0KPiBidXQgSSB0aG91Z2h0IGl0IG1pZ2h0IGJlIGNv bmZ1c2VkIGJlY2F1c2UgUG9zdGdyZVNRTCBoYXMgYWxyZWFkeSB0aGUgd29ya2VyDQo+ICJiYWNr Z3JvdW5kIHdvcmtlciIuDQo+IEJvdGggb2YgYXBwbHkgd29ya2VyIGFuZCBhcHBseSBid29ya2Vy IGFyZSBjYXRlZ29saXplZCBhcyBiZ3dvcmtlci4NCj4gRG8geW91IGhhdmUgYW55IHJlYXNvbnMg bm90IHRvIHVzZSAiYXBwbHkgcGFyYWxsZWwgd29ya2VyIiBvciAiYXBwbHkgc3RyZWFtaW5nDQo+ IHdvcmtlciI/DQo+IChOb3RlIHRoYXQgSSdtIG5vdCBuYXRpdmUgRW5nbGlzaCBzcGVha2VyKQ0K DQpTaW5jZSB3ZSB3aWxsIGxhdGVyIGNvbnNpZGVyIGFwcGx5aW5nIG5vbi1zdHJlYW1lZCB0cmFu c2FjdGlvbnMgaW4gcGFyYWxsZWwsIEkNCnRoaW5rICJhcHBseSBzdHJlYW1pbmcgd29ya2VyIiBt aWdodCBub3QgYmUgdmVyeSBzdWl0YWJsZS4gSSB0aGluayBQb3N0Z3JlU1FMDQphbHNvIGhhcyB0 aGUgd29ya2VyICJwYXJhbGxlbCB3b3JrZXIiLCBzbyBmb3IgImFwcGx5IHBhcmFsbGVsIHdvcmtl ciIgYW5kDQoiYXBwbHkgYmFja2dyb3VuZCB3b3JrZXIiLCBJIGZlZWwgdGhhdCAiYXBwbHkgYmFj a2dyb3VuZCB3b3JrZXIiIHdpbGwgbWFrZSB0aGUNCnJlbGF0aW9uc2hpcCBiZXR3ZWVuIHdvcmtl cnMgbW9yZSBjbGVhci4gKCJbbWFpbl0gYXBwbHkgd29ya2VyIiBhbmQgImFwcGx5DQpiYWNrZ3Jv dW5kIHdvcmtlciIpDQoNCj4gMi4gbG9naWNhbHJlcF93b3JrZXJfc3RvcCgpDQo+IA0KPiBgYGAN Cj4gLSAgICAgICAvKiBObyB3b3JrZXIsIG5vdGhpbmcgdG8gZG8uICovDQo+IC0gICAgICAgaWYg KCF3b3JrZXIpDQo+IC0gICAgICAgew0KPiAtICAgICAgICAgICAgICAgTFdMb2NrUmVsZWFzZShM b2dpY2FsUmVwV29ya2VyTG9jayk7DQo+IC0gICAgICAgICAgICAgICByZXR1cm47DQo+IC0gICAg ICAgfQ0KPiArICAgICAgIGlmICh3b3JrZXIpDQo+ICsgICAgICAgICAgICAgICBsb2dpY2FscmVw X3dvcmtlcl9zdG9wX2ludGVybmFsKHdvcmtlcik7DQo+ICsNCj4gKyAgICAgICBMV0xvY2tSZWxl YXNlKExvZ2ljYWxSZXBXb3JrZXJMb2NrKTsNCj4gK30NCj4gYGBgDQo+IA0KPiBJIHRob3VnaHQg eW91IGNvdWxkIGFkZCBhIGNvbW1lbnQgdGhlIG1lYW5pbmcgb2YgaWYtc3RhdGVtZW50LCBsaWtl ICJObyBtYWluDQo+IGFwcGx5IHdvcmtlciwgbm90aGluZyB0byBkbyINCg0KU2luY2UgdGhlIHBy b2Nlc3NpbmcgaW4gdGhlIGlmIHN0YXRlbWVudCBpcyByZXZlcnNlZCBmcm9tIGJlZm9yZSwgSSBh ZGRlZCB0aGUNCmZvbGxvd2luZyBjb21tZW50IGJhc2VkIG9uIHlvdXIgc3VnZ2VzdGlvbjoNCmBg YA0KRm91bmQgdGhlIG1haW4gd29ya2VyLCB0aGVuIHRyeSB0byBzdG9wIGl0Lg0KYGBgDQoNCj4g My4gbG9naWNhbHJlcF93b3JrZXJzX2ZpbmQoKQ0KPiANCj4gSSB0aG91Z2h0IHlvdSBjb3VsZCBh ZGQgYSBkZXNjcmlwdGlvbiBhYm91dCBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBhbmQNCj4gbG9n aWNhbHJlcF93b3JrZXJfZmluZCgpIGF0IHRoZSB0b3Agb2YgdGhlIGZ1bmN0aW9uLg0KPiBJSVVD IGxvZ2ljYWxyZXBfd29ya2Vyc19maW5kKCkgY291bnRzIHN1YndvcmtlciwgYnV0IGxvZ2ljYWxy ZXBfd29ya2VyX2ZpbmQoKQ0KPiBkb2VzIG5vdCBmb2N1cyBzdWNoIHR5cGUgb2Ygd29ya2Vycy4N Cg0KSSB0aGluayBpdCBpcyBmaW5lIHRvIGtlZXAgdGhlIGNvbW1lbnQgYmVjYXVzZSB0aGUgY29t bWVudCBzYXlzICJyZXR1cm5zIGxpc3QNCm9mICphbGwgd29ya2VycyogZm9yIHRoZSBzdWJzY3Jp cHRpb24iLg0KQWxzbywgd2UgaGF2ZSBhZGRlZCB0aGUgY29tbWVudCAiV2UgYXJlIG9ubHkgaW50 ZXJlc3RlZCBpbiB0aGUgbWFpbiBhcHBseQ0Kd29ya2VyIG9yIHRhYmxlIHN5bmMgd29ya2VyIGhl cmUiIGluIHRoZSBmdW5jdGlvbiBsb2dpY2FscmVwX3dvcmtlcl9maW5kLg0KDQo+IDUuIGFwcGx5 Ymd3b3JrZXIuYw0KPiANCj4gYGBgDQo+ICsvKiBBcHBseSBiYWNrZ3JvdW5kIHdvcmtlcnMgaGFz aCB0YWJsZSAoaW5pdGlhbGl6ZWQgb24gZmlyc3QgdXNlKSAqLw0KPiArc3RhdGljIEhUQUIgKkFw cGx5V29ya2Vyc0hhc2ggPSBOVUxMOw0KPiArc3RhdGljIExpc3QgKkFwcGx5V29ya2Vyc0ZyZWVM aXN0ID0gTklMOw0KPiArc3RhdGljIExpc3QgKkFwcGx5V29ya2Vyc0xpc3QgPSBOSUw7DQo+IGBg YA0KPiANCj4gSSB0aG91Z2h0IHRoZXkgc2hvdWxkIGJlIEFwcGx5QmdXb3JrZXJzWFhYLCBiZWNh dXNlIHRoZXkgc3RvcmVzIGluZm9ybWF0aW9uDQo+IG9ubHkgcmVsYXRlZCB3aXRoIGFwcGx5IGJn d29ya2Vycy4NCg0KSSBpbXByb3ZlZCB0aGVtIHRvIEFwcGx5Qmd3b3JrZXJzWFhYIGp1c3QgZm9y IHRoZSBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIG5hbWVzLg0KDQo+IDYuIEFwcGx5Qmd3b3JrZXJT aGFyZWQNCj4gDQo+IGBgYA0KPiArICAgICAgIFRyYW5zYWN0aW9uSWQgICBzdHJlYW1feGlkOw0K PiArICAgICAgIHVpbnQzMiAgbjsgICAgICAvKiBpZCBvZiBhcHBseSBiYWNrZ3JvdW5kIHdvcmtl ciAqLw0KPiArfSBBcHBseUJnd29ya2VyU2hhcmVkOw0KPiBgYGANCj4gDQo+IEkgdGhvdWdodCB0 aGUgZmllbGQgIm4iIGlzIHRvbyBnZW5lcmFsLCBob3cgYWJvdXQgInByb2NfaWQiIG9yICJ3b3Jr ZXJfaWQiPw0KDQpJIHRoaW5rICJ3b3JrZXJfaWQiIHNlZW1zIGJldHRlciwgc28gSSBpbXByb3Zl ZCAibiIgdG8gIndvcmtlcl9pZCIuDQoNCj4gMTAuIHdhaXRfZXZlbnQuaA0KPiANCj4gYGBgDQo+ ICAgICAgICAgV0FJVF9FVkVOVF9IQVNIX0dST1dfQlVDS0VUU19SRUlOU0VSVCwNCj4gKyAgICAg ICBXQUlUX0VWRU5UX0xPR0lDQUxfQVBQTFlfV09SS0VSX1NUQVRFX0NIQU5HRSwNCj4gICAgICAg ICBXQUlUX0VWRU5UX0xPR0lDQUxfU1lOQ19EQVRBLA0KPiBgYGANCj4gDQo+IEkgdGhvdWdodCB0 aGUgZXZlbnQgc2hvdWxkIGJlDQo+IFdBSVRfRVZFTlRfTE9HSUNBTF9BUFBMWV9CR19XT1JLRVJf U1RBVEVfQ0hBTkdFLA0KPiBiZWNhdXNlIHRoaXMgaXMgdXNlZCB3aGVuIGFwcGx5IHdvcmtlciB3 YWl0cyB1bnRpbCB0aGUgc3RhdHVzIG9mIGJnd29ya2VyDQo+IGNoYW5nZXMuDQoNCkkgaW1wcm92 ZWQgdGhlbSB0byAiV0FJVF9FVkVOVF9MT0dJQ0FMX0FQUExZX0JHV09SS0VSX1NUQVRFX0NIQU5H RSIganVzdCBmb3INCnRoZSBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIG5hbWVzLg0KDQo+IDEzLiAw MTVfc3RyZWFtLnBsDQo+IA0KPiBJIGNvdWxkIG5vdCBmaW5kIHRlc3QgYWJvdXQgVFJVTkNBVEUu IElJVUMgYXBwbHkgYmd3b3JrZXIgd29ya3Mgd2VsbA0KPiBldmVuIGlmIGl0IGdldHMgTE9HSUNB TF9SRVBfTVNHX1RSVU5DQVRFIG1lc3NhZ2UgZnJvbSBtYWluIHdvcmtlci4NCj4gQ2FuIHlvdSBh ZGQgdGhlIGNhc2U/DQoNCkkgbW9kaWZpZWQgdGhlIHRlc3QgY2FzZXMgaW4gIjAzMl9zdHJlYW1p bmdfYXBwbHkucGwiIHRoaXMgdGltZSwgdGhlIHVzZSBjYXNlDQp5b3UgbWVudGlvbmVkIGlzIGNv dmVyZWQgbm93Lg0KDQpUaGUgcmVzdCBvZiB0aGUgY29tbWVudHMgYXJlIGltcHJvdmVkIGFzIHN1 Z2dlc3RlZC4NClRoZSBuZXcgcGF0Y2hlcyB3ZXJlIGF0dGFjaGVkIGluIFsxXS4NCg0KWzFdIC0g aHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9PUzNQUjAxTUI2Mjc1RDY0QkU3 NzI2QjAyMjFCMTVGMzg5RTlGOSU0ME9TM1BSMDFNQjYyNzUuanBucHJkMDEucHJvZC5vdXRsb29r LmNvbQ0KDQpSZWdhcmRzLA0KV2FuZyB3ZWkNCg==