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 1otJlM-00026A-03 for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Nov 2022 02:27:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1otJlK-0006Jn-SC for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Nov 2022 02:27:22 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1otJlK-0006IK-Fo for pgsql-hackers@lists.postgresql.org; Fri, 11 Nov 2022 02:27:22 +0000 Received: from esa19.fujitsucc.c3s2.iphmx.com ([216.71.158.62]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1otJlH-0002eE-L6 for pgsql-hackers@lists.postgresql.org; Fri, 11 Nov 2022 02:27:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1668133640; x=1699669640; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=NMx+6ogJ2MsdHPY52u6ZWfAma5ndxo6xVHP8W+Byaio=; b=YqS4PJvbhZ39AhJt7Tfo1Z/+Z1Unk2kE55esOnQlzSLv+i+oBOIO7Xxg MOB13wbYemhEU+207jBFj5zwPBnB9Ati7danraW2Vja4LH9xMmb+Txskv Bs2F9oGd5S6CgZUAtQ03jz3acfCXdnxKSeCUoS6foFoS8CxI0TKAN0T09 643rRoMG1b/dFiZWusywyeAxSBd5HvwpLfqc9aYNusS/lOpFjyr+ZyVgk ntUfnC/dIH1pFniAdcSN5xFN7nUN5ojDmcphG9HpNcaEEayKyZiItBYVt CHM/d5J18caalilCSodXlagNK+QSaY4noLoFNVRZzzc2sJBmD64muOX15 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10527"; a="69349970" X-IronPort-AV: E=Sophos;i="5.96,155,1665414000"; d="scan'208";a="69349970" Received: from mail-os0jpn01lp2108.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.108]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2022 11:27:17 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bRMdaQRe4YaLWtZ02aTtsYYTnEvsTGMunlCzXX98BMqvaNvbOR42DiSq+A+hUyfioJJll6wJSXDhptQ+yir/QH9Z0+0LWPfwKrph5IM8/H2TgtMn/RL7t1q/rfCviokMaa5coXZf9y5uavgbGXy0MjTmg0Rs0Xmjw1BgsLX1A3RNNiSE5W8bRGjnj9x8tXLaYF1pSK+SI73c3Zj1kxA3mQiKXiuCRxmyzW/xzCBOHp+f5O9qk22MO1H35m0jxicQGUWeccV/KpU+Emp6Ogs9o24uEDrwUJIShLR4YQtnxIlF+NUhwr8Jph2vNw2SQEi0Vgz/CdRKDSzEai3p/2JpIw== 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=NMx+6ogJ2MsdHPY52u6ZWfAma5ndxo6xVHP8W+Byaio=; b=Wuv1gfode1b0Pu5islbZSgOTIZ4QsapY7rfY1gwfw3fSRcMTTwdD3kBvXkigSp03sKlcj0vStC/AcjC+YmckrNeT9wdqV1n3IAzzPqccq4yRPgOnOcOwuVkxGWIfTXRzQvjgSryFtpCszdXfcZgLNK+IGn8/wS1B52qOaoNXLTx0fo1TbpA1NDp6k7Lml+nB9IaWL/4CnKGi0DMDPE1qiCSN3ze4VdWLTvlMIxVF6Il8TmiNqsAjhgsMKYVQVyQ5B4eMxNW9lGP5+b/mk8FIWlyH+OgWIcFj8tqFHuupv8JXpztYNlGvmCXtjokeNfvxJ0vrkw+8G4OrValnq3/C4A== 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 OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by TYWPR01MB9742.jpnprd01.prod.outlook.com (2603:1096:400:234::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13; Fri, 11 Nov 2022 02:27:13 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::38a6:cf5c:b4ee:89dd]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::38a6:cf5c:b4ee:89dd%6]) with mapi id 15.20.5813.013; Fri, 11 Nov 2022 02:27:13 +0000 From: "houzj.fnst@fujitsu.com" To: Masahiko Sawada CC: Amit Kapila , "wangw.fnst@fujitsu.com" , Peter Smith , Dilip Kumar , "shiy.fnst@fujitsu.com" , PostgreSQL Hackers 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: AQHYSXX5ZKpBKXxeUU2FhEhnmXQum6zlu9SQgAkSooCACBQ0gIABsTcwgAA1vECAAqHFgIAE/jVwgAXct9CAADkRgIALO/aAgAsRZICAB606AIAS+CyAgAAufICAAWQLgIABHxKAgAA3o4CAAeE3gIAJPr0AgAkxzACAAiJoAIAC0hUAgARvDICABQA2gIAAFvcAgAeBmICABO9ggIAJO+YAgABu1YCACQzpAIAJSy6AgAS+zICABq7mgIABSJUAgAAOtoCAACghoIAB8TqAgAqL+oCADJWRgIAGVm0AgAGAQICAAerMgIABYRWAgAgnZ+CAAXRdgIAGBUSQgAGFeoCAAFYagIABb5aggAGsWiCAATu3gIAEyyEAgABeLHCABFBngIAK5WIAgABrY4CABb89gIADiS0AgAEu2oCAAHBpgIADPWcAgAS/1gCADeB2AIAAPUnQgAEERACAABzggIAF+30AgAHyDYCAEzpGgIANkEmAgAI7xKCABhztAIAFv4zg Date: Fri, 11 Nov 2022 02:27:13 +0000 Message-ID: References: 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?NTBfQWN0aW9uSWQ9YmM3YzgzNDItZDg1Ni00ZmMzLTg1ZGEtOTllZjA2YjM1?= =?utf-8?B?NTFiO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZWNlMDUwX1NldERhdGU9MjAyMi0xMS0xMVQwMjowNDoyNFo7TVNJUF9MYWJl?= =?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-traffictypediagnostic: OS0PR01MB5716:EE_|TYWPR01MB9742:EE_ x-ms-office365-filtering-correlation-id: 280d3fe3-897e-435b-d86a-08dac38c3e83 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rBCSqWLrmJ0i30ANJnoTQ0kD177t12cH+xIz0lW1weoKshmrKGxnNSZ7YsQ6bgmQuQivMEPDQAr3C4QBNJNcSm49rt8t4XM0gxeaaRCOdFSPTZ8SlNM5VnWabz1pKf7D/WyjgI7XDM6Kxme2a+QOHz0ky91uxG9Jdl2VdTCQsd3OuF5jo3WZwikuHRVsn2xn2BhW+UeaZ5hthHpdgO7Du/aYyKFe8QNZXPn9LnIoNKTzuSAzA2XnyKeZ0CbqusWwPLgh8yv0Kjb1ZRhQCx0luSSmremKU/M/pHR38DSuChc1XEkpaPzUroYTyiXyYA+STE48XlcQrpYK6zVWk8i3UQJ9VV+TxpmfTexk2flMtJUdSnoFC8PaSTRXIDu4AYavMXVef8a+flCIIrVFikqeEoYOxmUyHeN0ne6kaA4IlFbHknTYGRMtSG6N+XaThHFeKCGY6Y+IXTSVtHxmVuuug6fT7STd9aFUS6U/hT6B7oZkSgM0+7DK9fJrlDbzICKnVMLYoy/nskMetmkU0owdG6vXM7RIWJyRXua2XgDptSexsmnHDR9udqVXFunjbV6LBMWYAWBTVYC3knv4By6UtsNrMq3uGBWtTD86jH123T+rGyO00+JRjN1f9UdXkUgWS14feVNi0WRXPGHDcuEQVL9vWtEI0k2Rqbo8pK/2dG3bNkA6hdPka42X2wWvXNZz4nWPd0f2vyUwfnLS1rVOUXdqGBCmf/5B8Prsy00X3sXUPs/dIFul+M+ZnI5fPdxJ2b7e5KpY+4++P9njY/s6Bl1EVClvzpL+Kl/CD1UesOI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(136003)(376002)(366004)(396003)(39860400002)(1590799012)(451199015)(85182001)(86362001)(38070700005)(71200400001)(6916009)(54906003)(478600001)(82960400001)(7696005)(122000001)(38100700002)(33656002)(66556008)(2906002)(6506007)(53546011)(9686003)(26005)(1580799009)(186003)(66446008)(52536014)(8936002)(76116006)(316002)(8676002)(4326008)(41300700001)(64756008)(66476007)(83380400001)(66946007)(5660300002)(55016003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?emlFVlpsclZJZm9jL25yNzkvZmc3M3N1VjdTT2ZPWUtBSTdQWXRxTThNMjFv?= =?utf-8?B?Y3JSWG4xU0xYVnhGbERiLyt2eVUxSGhFTFVsd01rZWJrSGwyeGo2ZFZPL3VS?= =?utf-8?B?TC9XcmFyd0hUY0JpS2x5WFFjUnl0SHJDTFl4Y2Vtd2xVdmJBa3A1TFNoL2NI?= =?utf-8?B?MjI2V0QwcTlZZURHeTVxQWl3K0t2TGJoNTAvWTlrNk8vN2x1RmpTT21zcjZt?= =?utf-8?B?NE1wSFhUNFJacUVCcXVNa1JnVG5FUFJWY0dkUGp1Z2Z5cWFXVUtBUHFzdTJj?= =?utf-8?B?Q3FleWIyNHhITmdaeUFobmd4c0RwM1R3U3FnN2YyMllqQXRIbWJrcitXVjEx?= =?utf-8?B?TE9ic1djbGRkSVp4VnB3RTBwNGF1QVM1UlJnbjdnNnZ5MnBJT3pJQWxEdU9Z?= =?utf-8?B?OTZDNndnU3JvQUZNNDhLRkNuRUJMdlJZbnEzWkxzWHJUd1FvSmM1WG42ZFFy?= =?utf-8?B?ak1PaENiTlZyZkVyWGRDalNzK1duem1mc3J0bC92Z0dSOUljdno5eWpoSitN?= =?utf-8?B?dVUwSTh6Zk9mRnR4VVZNZHFMY292U25nYzNTMVBRZmxOVXBMYUdISVM3cFJI?= =?utf-8?B?NXN3OU94SkRyTmt5NklYRVVpWi9DNzQzZDV6eUI0eGt6eU1kSGswdHc1Y0lZ?= =?utf-8?B?cGNSNzhTOHNHck9uZ3hiMWNqeFpqVXhsdG1RVk1zRlBZYzlzVUNtMWRDZ1Va?= =?utf-8?B?OEQ5ZVJZRXBqbVJMVEx6ck1uMnc3TEFiNlFtWGtPc3JERU15Uk9heGdvbStE?= =?utf-8?B?RElmOVM0TG0xdG9PMUxFOThhZEI0Z1V2VnJMeGoyUy82VGhVcXZaWW9rb2RX?= =?utf-8?B?RU83ZXA3THNHU3dFS1VNVG1OL1p4SmpFMmNBN0M2RUVvM1crcExRak9MSFRr?= =?utf-8?B?RGFLSlVIbXlTOVZuUzNvZnJFd1ZHb20yc2dGZnBvdmM0cTNUMlA1UnpOa01O?= =?utf-8?B?UGFFZ1pLYjVtOW9aZExLbUxlUktkRlVtd1g4aEV0LzdsY0hFUnZoMGVyay80?= =?utf-8?B?b0RNQ3l6VERMU3M5VHVoaFhORm5OVXV5UWcvTEYwYWc5ZndmWmFDbWtEZUw0?= =?utf-8?B?dnczYjFUQTNYZUIxdm80U2F4eXBGTytzN3prdENOa1l1bmJMaEtqVEdOdTVC?= =?utf-8?B?dE0vRkd3MGJIcTFyMk4wSDVHd21XUTBFZEtiSkFJS1JmMkxxd0tNZzdzTTE2?= =?utf-8?B?TzBRcDZ4c3RxMkVLemYrQi8zSTYvN05Ma3hDZUlaSy9vZXB5RG8reGJMelFY?= =?utf-8?B?ai9WZllWbHNBcmFvTE1sVVZMQXc4N3FvWTdGTjZwc1R0UXZsMDNLdkRCdnUy?= =?utf-8?B?amJoSkl2eDBYc1N1Z2VhMEtOYVQ1YnNFaGV3NVovT1d4YXlzK3hmSGUrZ29J?= =?utf-8?B?T1ZRZGlFaGhKeTRGeTB6bE5iY3F2R1pSVU0xOXkrVnBkVWlIQ1lnQytrUCtY?= =?utf-8?B?M01LZVY0Q0REVGxmOTh0RUJMek50a0h3Tm1ybXovR2VQdjcvSXM4bEJSallI?= =?utf-8?B?ZFNnWVNZRkJUbDYzOXd6NytFVk5lNjgzbytjVy9QaEZqcncrZll2Q2FxMjJU?= =?utf-8?B?K29ROE11bHBzcldXakF5Q05rVm1HYVE3TlJ0UGJnOE0vaUE3aXc2MDNodTdu?= =?utf-8?B?eTVWeExucnAweDNIWHV0LzVFYlB3YTM3aHN4Q2NDUTdEYmxlbFlnZ3dwYU9h?= =?utf-8?B?QnZNUmtTakNWY1JBRnlkSm94NGE0N0lUNEJtR0o5cWY5UzNZdjRiMmVNQjV4?= =?utf-8?B?SWNPQ0w5blpJS3JEOWt5dTBqcTM0WWtha1BrSmk1QzRxc21MM0pUTG4yRCtV?= =?utf-8?B?cm82YjJQWUg0TEpRTHRkSVZZUThrbW11dm41NlBPMDZwUWJuVzczY1QwY3ZE?= =?utf-8?B?QXZzUThvYmU3VllmV0NkbURRVmlLL01UbUEra2s2NXk5UUNITWc5d0F4WmU2?= =?utf-8?B?cWdkN09GUm9VNG55V3doeHRYcFU1dms3MHdnK0hqaWFmYmpEeE5JWmMvcVRI?= =?utf-8?B?VWtuSEo3LzNMcnBremZBZ0EwdS96THhkTzFsLzR1SUhjaEdDR2xqNjl1aEov?= =?utf-8?B?RmlLZjRtWm1TdHNUZGFOSVhTNFFoTXFxU05Ic0NIZDRVUW9WcXI4U0tJclZQ?= =?utf-8?Q?yfpX3yiUmPJ4JrI9wvVuhWHZR?= 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: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 280d3fe3-897e-435b-d86a-08dac38c3e83 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2022 02:27:13.7856 (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: 1aFjNgoSAmRQ9DGnUW9Db8Bsyu59rmAOo7GNCO/lMlwKV45xjL0m39C+ellqILCQ06kSLiYPTSz7JvDJa1B/Tg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB9742 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gTW9uZGF5LCBOb3ZlbWJlciA3LCAyMDIyIDY6MTggUE0gTWFzYWhpa28gU2F3YWRhIDxzYXdh ZGEubXNoa0BnbWFpbC5jb20+IHdyb3RlOg0KPiANCj4gT24gVGh1LCBOb3YgMywgMjAyMiBhdCAx MDowNiBQTSBob3V6ai5mbnN0QGZ1aml0c3UuY29tDQo+IDxob3V6ai5mbnN0QGZ1aml0c3UuY29t PiB3cm90ZToNCj4gPg0KPiA+IE9uIFdlZG5lc2RheSwgTm92ZW1iZXIgMiwgMjAyMiAxMDo1MCBB TSBNYXNhaGlrbyBTYXdhZGENCj4gPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4gd3JvdGU6DQo+ID4g Pg0KPiA+ID4gT24gTW9uLCBPY3QgMjQsIDIwMjIgYXQgODo0MiBQTSBNYXNhaGlrbyBTYXdhZGEN Cj4gPiA+IDxzYXdhZGEubXNoa0BnbWFpbC5jb20+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPiBP biBXZWQsIE9jdCAxMiwgMjAyMiBhdCAzOjA0IFBNIEFtaXQgS2FwaWxhDQo+IDxhbWl0LmthcGls YTE2QGdtYWlsLmNvbT4NCj4gPiA+IHdyb3RlOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT24gVHVl LCBPY3QgMTEsIDIwMjIgYXQgNTo1MiBBTSBNYXNhaGlrbyBTYXdhZGENCj4gPiA+IDxzYXdhZGEu bXNoa0BnbWFpbC5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE9uIEZyaSwg T2N0IDcsIDIwMjIgYXQgMjowMCBQTSBBbWl0IEthcGlsYQ0KPiA8YW1pdC5rYXBpbGExNkBnbWFp bC5jb20+DQo+ID4gPiB3cm90ZToNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQWJvdXQg eW91ciBwb2ludCB0aGF0IGhhdmluZyBkaWZmZXJlbnQgcGFydGl0aW9uIHN0cnVjdHVyZXMgZm9y DQo+ID4gPiA+ID4gPiA+IHB1Ymxpc2hlciBhbmQgc3Vic2NyaWJlciwgSSBkb24ndCBrbm93IGhv dyBjb21tb24gaXQgd2lsbCBiZSBvbmNlDQo+IHdlDQo+ID4gPiA+ID4gPiA+IGhhdmUgRERMIHJl cGxpY2F0aW9uLiBBbHNvLCB0aGUgZGVmYXVsdCB2YWx1ZSBvZg0KPiA+ID4gPiA+ID4gPiBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCBpcyBmYWxzZSB3aGljaCBkb2Vzbid0IHNlZW0gdG8gaW5k aWNhdGUNCj4gPiA+ID4gPiA+ID4gdGhhdCB0aGlzIGlzIGEgcXVpdGUgY29tbW9uIGNhc2UuDQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gU28gaG93IGNhbiB3ZSBjb25zaWRlciB0aGVzZSBjb25j dXJyZW50IGlzc3VlcyB0aGF0IGNvdWxkIGhhcHBlbg0KPiBvbmx5DQo+ID4gPiA+ID4gPiB3aGVu IHN0cmVhbWluZyA9ICdwYXJhbGxlbCc/IENhbiB3ZSByZXN0cmljdCBzb21lIHVzZSBjYXNlcyB0 byBhdm9pZA0KPiA+ID4gPiA+ID4gdGhlIHByb2JsZW0gb3IgY2FuIHdlIGhhdmUgYSBzYWZlZ3Vh cmQgYWdhaW5zdCB0aGVzZSBjb25mbGljdHM/DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gWWVhaCwgcmlnaHQgbm93IHRoZSBzdHJhdGVneSBpcyB0byBkaXNhbGxvdyBwYXJhbGxl bCBhcHBseSBmb3Igc3VjaA0KPiA+ID4gPiA+IGNhc2VzIGFzIHlvdSBjYW4gc2VlIGluICowMDAz KiBwYXRjaC4NCj4gPiA+ID4NCj4gPiA+ID4gVGlnaHRlbmluZyB0aGUgcmVzdHJpY3Rpb25zIGNv dWxkIHdvcmsgaW4gc29tZSBjYXNlcyBidXQgdGhlcmUgbWlnaHQNCj4gPiA+ID4gc3RpbGwgYmUg Y29uZXIgY2FzZXMgYW5kIGl0IGNvdWxkIHJlZHVjZSB0aGUgdXNhYmlsaXR5LiBJJ20gbm90IHJl YWxseQ0KPiA+ID4gPiBzdXJlIHRoYXQgd2UgY2FuIGVuc3VyZSBzdWNoIGEgZGVhZGxvY2sgd29u J3QgaGFwcGVuIHdpdGggdGhlIGN1cnJlbnQNCj4gPiA+ID4gcmVzdHJpY3Rpb25zLiBJIHRoaW5r IHdlIG5lZWQgc29tZXRoaW5nIHNhZmVndWFyZCBqdXN0IGluIGNhc2UuIEZvcg0KPiA+ID4gPiBl eGFtcGxlLCBpZiB0aGUgbGVhZGVyIGFwcGx5IHdvcmtlciBpcyB3YWl0aW5nIGZvciBhIGxvY2sg YWNxdWlyZWQgYnkNCj4gPiA+ID4gaXRzIHBhcmFsbGVsIHdvcmtlciwgaXQgY2FuY2VscyB0aGUg cGFyYWxsZWwgd29ya2VyJ3MgdHJhbnNhY3Rpb24sDQo+ID4gPiA+IGNvbW1pdHMgaXRzIHRyYW5z YWN0aW9uLCBhbmQgcmVzdGFydHMgbG9naWNhbCByZXBsaWNhdGlvbi4gT3IgdGhlDQo+ID4gPiA+ IGxlYWRlciBjYW4gbG9nIHRoZSBkZWFkbG9jayB0byBsZXQgdGhlIHVzZXIga25vdy4NCj4gPiA+ ID4NCj4gPiA+DQo+ID4gPiBBcyBhbm90aGVyIGRpcmVjdGlvbiwgd2UgY291bGQgbWFrZSB0aGUg cGFyYWxsZWwgYXBwbHkgZmVhdHVyZSByb2J1c3QNCj4gPiA+IGlmIHdlIGNhbiBkZXRlY3QgZGVh ZGxvY2tzIHRoYXQgaGFwcGVuIGFtb25nIHRoZSBsZWFkZXIgd29ya2VyIGFuZA0KPiA+ID4gcGFy YWxsZWwgd29ya2Vycy4gSSdkIGxpa2UgdG8gc3VtbWFyaXplIHRoZSBpZGVhIGRpc2N1c3NlZCBv ZmYtbGlzdA0KPiA+ID4gKHdpdGggQW1pdCwgSG91LVNhbiwgYW5kIEt1cm9kYS1TYW4pIGZvciBk aXNjdXNzaW9uLiBUaGUgYmFzaWMgaWRlYSBpcw0KPiA+ID4gdGhhdCB3aGVuIHRoZSBsZWFkZXIg d29ya2VyIG9yIHBhcmFsbGVsIHdvcmtlciBuZWVkcyB0byB3YWl0IGZvcg0KPiA+ID4gc29tZXRo aW5nIChlZy4gdHJhbnNhY3Rpb24gY29tcGxldGlvbiwgbWVzc2FnZXMpIHdlIHVzZSBsbWdyDQo+ ID4gPiBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgd2UgY2FuIGNyZWF0ZSB3YWl0LWZvciBlZGdlcyBh bmQgZGV0ZWN0DQo+ID4gPiBkZWFkbG9ja3MgaW4gbG1nci4NCj4gPiA+DQo+ID4gPiBGb3IgZXhh bXBsZSwgYSBzY2VuYXJpbyB3aGVyZSBhIGRlYWRsb2NrIG9jY3VycyBpcyB0aGUgZm9sbG93aW5n Og0KPiA+ID4NCj4gPiA+IFtQdWJsaXNoZXJdDQo+ID4gPiBjcmVhdGUgdGFibGUgdGFiMShhIGlu dCk7DQo+ID4gPiBjcmVhdGUgcHVibGljYXRpb24gcHViIGZvciB0YWJsZSB0YWIxOw0KPiA+ID4N Cj4gPiA+IFtTdWJjcmliZXJdDQo+ID4gPiBjcmVhdCB0YWJsZSB0YWIxKGEgaW50IHByaW1hcnkg a2V5KTsNCj4gPiA+IGNyZWF0ZSBzdWJzY3JpcHRpb24gc3ViIGNvbm5lY3Rpb24gJ3BvcnQ9MTAw MDAgZGJuYW1lPXBvc3RncmVzJw0KPiA+ID4gcHVibGljYXRpb24gcHViIHdpdGggKHN0cmVhbWlu ZyA9IHBhcmFsbGVsKTsNCj4gPiA+DQo+ID4gPiBUWDE6DQo+ID4gPiBCRUdJTjsNCj4gPiA+IElO U0VSVCBJTlRPIHRhYjEgU0VMRUNUIGkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwMCkgcyhp KTsgLS0gc3RyZWFtZWQNCj4gPiA+ICAgICBUeDI6DQo+ID4gPiAgICAgQkVHSU47DQo+ID4gPiAg ICAgSU5TRVJUIElOVE8gdGFiMSBTRUxFQ1QgaSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDAw KSBzKGkpOyAtLQ0KPiBzdHJlYW1lZA0KPiA+ID4gICAgIENPTU1JVDsNCj4gPiA+IENPTU1JVDsN Cj4gPiA+DQo+ID4gPiBTdXBwb3NlIGEgcGFyYWxsZWwgYXBwbHkgd29ya2VyIChQQS0xKSBpcyBl eGVjdXRpbmcgVFgtMSBhbmQgdGhlDQo+ID4gPiBsZWFkZXIgYXBwbHkgd29ya2VyIChMQSkgaXMg ZXhlY3V0aW5nIFRYLTIgY29uY3VycmVudGx5IG9uIHRoZQ0KPiA+ID4gc3Vic2NyaWJlci4gTm93 LCBMQSBpcyB3YWl0aW5nIGZvciBQQS0xIGJlY2F1c2Ugb2YgdGhlIHVuaXF1ZSBrZXkgb2YNCj4g PiA+IHRhYjEgd2hpbGUgUEEtMSBpcyB3YWl0aW5nIGZvciBMQSB0byBzZW5kIGZ1cnRoZXIgbWVz c2FnZXMuIFRoZXJlIGlzIGENCj4gPiA+IGRlYWRsb2NrIGJldHdlZW4gUEEtMSBhbmQgTEEgYnV0 IGxtZ3IgY2Fubm90IGRldGVjdCBpdC4NCj4gPiA+DQo+ID4gPiBPbmUgaWRlYSB0byByZXNvbHZl IHRoaXMgaXNzdWUgaXMgdGhhdCB3ZSBoYXZlIExBIGFjcXVpcmUgYSBzZXNzaW9uDQo+ID4gPiBs b2NrIG9uIGEgc2hhcmVkIG9iamVjdCAoYnkgTG9ja1NoYXJlZE9iamVjdEZvclNlc3Npb24oKSkg YW5kIGhhdmUNCj4gPiA+IFBBLTEgd2FpdCBvbiB0aGUgbG9jayBiZWZvcmUgdHJ5aW5nIHRvIHJl Y2VpdmUgbWVzc2FnZXMuIElPVywgIExBDQo+ID4gPiBhY3F1aXJlcyB0aGUgbG9jayBiZWZvcmUg c2VuZGluZyBTVFJFQU1fU1RPUCBhbmQgcmVsZWFzZXMgaXQgaWYNCj4gPiA+IGFscmVhZHkgYWNx dWlyZWQgYmVmb3JlIHNlbmRpbmcgU1RSRUFNX1NUQVJULCBTVFJFQU1fUFJFUEFSRSBhbmQNCj4g PiA+IFNUUkVBTV9DT01NSVQuIEZvciBQQS0xLCBpdCBhbHdheXMgbmVlZHMgdG8gYWNxdWlyZSB0 aGUgbG9jayBhZnRlcg0KPiA+ID4gcHJvY2Vzc2luZyBTVFJFQU1fU1RPUCBhbmQgdGhlbiByZWxl YXNlIGltbWVkaWF0ZWx5IGFmdGVyIGFjcXVpcmluZw0KPiA+ID4gaXQuIFRoYXQgd2F5LCB3aGVu IFBBLTEgaXMgd2FpdGluZyBmb3IgTEEsIHdlIGNhbiBoYXZlIGEgd2FpdC1lZGdlDQo+ID4gPiBm cm9tIFBBLTEgdG8gTEEgaW4gbG1nciwgd2hpY2ggd2lsbCBtYWtlIGEgZGVhZGxvY2sgaW4gbG1n ciBsaWtlOg0KPiA+ID4NCj4gPiA+IExBICh3YWl0aW5nIHRvIGFjcXVpcmUgbG9jaykgLT4gUEEt MSAod2FpdGluZyB0byBhY3F1aXJlIHRoZSBzaGFyZWQNCj4gPiA+IG9iamVjdCkgLT4gTEENCj4g PiA+DQo+ID4gPiBXZSB3b3VsZCBuZWVkIHRoZSBzaGFyZWQgb2JqZWN0cyBwZXIgcGFyYWxsZWwg YXBwbHkgd29ya2VyLg0KPiA+ID4NCj4gPiA+IEFmdGVyIGRldGVjdGluZyBhIGRlYWRsb2NrLCB3 ZSBjYW4gcmVzdGFydCBsb2dpY2FsIHJlcGxpY2F0aW9uIHdpdGgNCj4gPiA+IHRlbXBvcmFyaWx5 IGRpc2FibGluZyB0aGUgcGFyYWxsZWwgYXBwbHksIHdoaWNoIGlzIGRvbmUgYnkgMDAwNSBwYXRj aC4NCj4gPiA+DQo+ID4gPiBBbm90aGVyIHNjZW5hcmlvIGlzIHNpbWlsYXIgdG8gdGhlIHByZXZp b3VzIGNhc2UgYnV0IFRYLTEgYW5kIFRYLTIgYXJlDQo+ID4gPiBleGVjdXRlZCBieSB0d28gcGFy YWxsZWwgYXBwbHkgd29ya2VycyAoUEEtMSBhbmQgUEEtMiByZXNwZWN0aXZlbHkpLg0KPiA+ID4g SW4gdGhpcyBzY2VuYXJpbywgUEEtMiBpcyB3YWl0aW5nIGZvciBQQS0xIHRvIGNvbXBsZXRlIGl0 cyB0cmFuc2FjdGlvbg0KPiA+ID4gd2hpbGUgUEEtMSBpcyB3YWl0aW5nIGZvciBzdWJzZXF1ZW50 IGlucHV0IGZyb20gTEEuIEFsc28sIExBIGlzDQo+ID4gPiB3YWl0aW5nIGZvciBQQS0yIHRvIGNv bXBsZXRlIGl0cyB0cmFuc2FjdGlvbiBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUNCj4gPiA+IGNv bW1pdCBvcmRlci4gVGhlcmUgaXMgYSBkZWFkbG9jayBhbW9uZyB0aHJlZSBwcm9jZXNzZXMgYnV0 IGl0IGNhbm5vdA0KPiA+ID4gYmUgZGV0ZWN0ZWQgaW4gbG1nciBiZWNhdXNlIHRoZSBmYWN0IHRo YXQgTEEgaXMgd2FpdGluZyBmb3IgUEEtMiB0bw0KPiA+ID4gY29tcGxldGUgaXRzIHRyYW5zYWN0 aW9uIGRvZXNuJ3QgYXBwZWFyIGluIGxtZ3IgKHNlZQ0KPiA+ID4gcGFyYWxsZWxfYXBwbHlfd2Fp dF9mb3JfeGFjdF9maW5pc2goKSkuIFRvIGZpeCBpdCwgd2UgY2FuIHVzZQ0KPiA+ID4gWGFjdExv Y2tUYWJsZVdhaXQoKSBpbnN0ZWFkLg0KPiA+ID4NCj4gPiA+IEhvd2V2ZXIsIHNpbmNlIFhhY3RM b2NrVGFibGVXYWl0KCkgY29uc2lkZXJzIFBSRVBBUkVEIFRSQU5TQUNUSU9ODQo+IGFzDQo+ID4g PiBzdGlsbCBpbiBwcm9ncmVzcywgcHJvYmFibHkgd2UgbmVlZCBhIHNpbWlsYXIgdHJpY2sgYXMg YWJvdmUgaW4gY2FzZQ0KPiA+ID4gd2hlcmUgYSB0cmFuc2FjdGlvbiBpcyBwcmVwYXJlZC4gRm9y IGV4YW1wbGUsIHN1cHBvc2UgdGhhdCBUWC0yIHdhcw0KPiA+ID4gcHJlcGFyZWQgaW5zdGVhZCBv ZiBjb21taXR0ZWQgaW4gdGhlIGFib3ZlIHNjZW5hcmlvLCBQQS0yIGFjcXVpcmVzDQo+ID4gPiBh bm90aGVyIHNoYXJlZCBsb2NrIGF0IFNUQVJUX1NUUkVBTSBhbmQgcmVsZWFzZXMgaXQgYXQNCj4g PiA+IFNUUkVBTV9DT01NSVQvUFJFUEFSRS4gTEEgY2FuIHdhaXQgb24gdGhlIGxvY2suDQo+ID4g Pg0KPiA+ID4gWWV0IGFub3RoZXIgc2NlbmFyaW8gd2hlcmUgTEEgaGFzIHRvIHdhaXQgaXMgdGhl IGNhc2Ugd2hlcmUgdGhlIHNobV9tcQ0KPiA+ID4gYnVmZmVyIGlzIGZ1bGwuIEluIHRoZSBhYm92 ZSBzY2VuYXJpbyAoaWUuIFBBLTEgYW5kIFBBLTIgYXJlIGV4ZWN1dGluZw0KPiA+ID4gdHJhbnNh Y3Rpb25zIGNvbmN1cnJlbnRseSksIGlmICB0aGUgc2htX21xIGJ1ZmZlciBiZXR3ZWVuIExBIGFu ZCBQQS0yDQo+ID4gPiBpcyBmdWxsLCBMQSBoYXMgdG8gd2FpdCB0byBzZW5kIG1lc3NhZ2VzLCBh bmQgdGhpcyB3YWl0IGRvZXNuJ3QgYXBwZWFyDQo+ID4gPiBpbiBsbWdyLiBUbyBmaXggaXQsIHBy b2JhYmx5IHdlIGhhdmUgdG8gdXNlIG5vbi1ibG9ja2luZyB3cml0ZSBhbmQNCj4gPiA+IHdhaXQg d2l0aCBhIHRpbWVvdXQuIElmIHRpbWVvdXQgaXMgZXhjZWVkZWQsIHRoZSBMQSB3aWxsIHdyaXRl IHRvIGZpbGUNCj4gPiA+IGFuZCBpbmRpY2F0ZSBQQS0yIHRoYXQgaXQgbmVlZHMgdG8gcmVhZCBm aWxlIGZvciByZW1haW5pbmcgbWVzc2FnZXMuDQo+ID4gPiBUaGVuIExBIHdpbGwgc3RhcnQgd2Fp dGluZyBmb3IgY29tbWl0IHdoaWNoIHdpbGwgZGV0ZWN0IGRlYWRsb2NrIGlmDQo+ID4gPiBhbnku DQo+ID4gPg0KPiA+ID4gSWYgd2UgY2FuIGRldGVjdCBkZWFkbG9ja3MgYnkgaGF2aW5nIHN1Y2gg YSBmdW5jdGlvbmFsaXR5IG9yIHNvbWUNCj4gPiA+IG90aGVyIHdheSB0aGVuIHdlIGRvbid0IG5l ZWQgdG8gdGlnaHRlbiB0aGUgcmVzdHJpY3Rpb25zIG9mIHN1YnNjcmliZWQNCj4gPiA+IHRhYmxl cycgc2NoZW1hcyBldGMuDQo+ID4NCj4gPiBUaGFua3MgZm9yIHRoZSBhbmFseXNpcyBhbmQgc3Vt bWFyeSAhDQo+ID4NCj4gPiBJIHRyaWVkIHRvIGltcGxlbWVudCB0aGUgYWJvdmUgaWRlYSBhbmQg aGVyZSBpcyB0aGUgcGF0Y2ggc2V0LiBJIGhhdmUgZG9uZQ0KPiBzb21lDQo+ID4gYmFzaWMgdGVz dHMgZm9yIHRoZSBuZXcgY29kZXMgYW5kIGl0IHdvcmsgZmluZS4NCj4gDQo+IFRoYW5rIHlvdSBm b3IgdXBkYXRpbmcgdGhlIHBhdGNoZXMhDQo+IA0KPiBIZXJlIGFyZSBjb21tZW50cyBvbiB2NDIt MDAwMToNCj4gDQo+IFdlIGhhdmUgdGhlIGZvbGxvd2luZyB0aHJlZSBzaW1pbGFyIG5hbWUgZnVu Y3Rpb25zIHJlZ2FyZGluZyB0bw0KPiBzdGFydGluZyBhIG5ldyBwYXJhbGxlbCBhcHBseSB3b3Jr ZXI6DQo+IC0tLQ0KPiAgICAgICAgICAvKg0KPiAgICAgICAgICAgKiBFeGl0IGlmIGFueSBwYXJh bWV0ZXIgdGhhdCBhZmZlY3RzIHRoZSByZW1vdGUgY29ubmVjdGlvbg0KPiB3YXMgY2hhbmdlZC4N Cj4gLSAgICAgICAgICogVGhlIGxhdW5jaGVyIHdpbGwgc3RhcnQgYSBuZXcgd29ya2VyLg0KPiAr ICAgICAgICAgKiBUaGUgbGF1bmNoZXIgd2lsbCBzdGFydCBhIG5ldyB3b3JrZXIsIGJ1dCBub3Rl IHRoYXQgdGhlDQo+IHBhcmFsbGVsIGFwcGx5DQo+ICsgICAgICAgICAqIHdvcmtlciBtYXkgb3Ig bWF5IG5vdCByZXN0YXJ0IGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YNCj4gdGhlIHN0cmVhbWlu Zw0KPiArICAgICAgICAgKiBvcHRpb24gYW5kIHdoZXRoZXIgdGhlcmUgd2lsbCBiZSBhIHN0cmVh bWluZyB0cmFuc2FjdGlvbi4NCj4gDQo+IEluIHdoaWNoIGNhc2UgZG9lcyB0aGUgcGFyYWxsZWwg YXBwbHkgd29ya2VyIGRvbid0IHJlc3RhcnQgZXZlbiBpZiB0aGUNCj4gc3RyZWFtaW5nIG9wdGlv biBoYXMgYmVlbiBjaGFuZ2VkPw0KDQpTb3JyeSwgSSBmb3Jnb3QgdG8gcmVwbHkgdG8gdGhpcyBj b21tZW50LiBJZiB1c2VyIGNoYW5nZSB0aGUgc3RyZWFtaW5nIG9wdGlvbiBmcm9tDQoncGFyYWxs ZWwnIHRvICdvbicgb3IgJ29mZicsIHRoZSBwYXJhbGxlbCBhcHBseSB3b3JrZXJzIHdvbid0IGJl IHJlc3RhcnRlZC4NCg0KQmVzdCByZWdhcmRzLA0KSG91IHpqDQo=