From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BC63EA04B1; Tue, 24 Nov 2020 13:17:54 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3FF43C910; Tue, 24 Nov 2020 13:17:52 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 855BFC902 for ; Tue, 24 Nov 2020 13:17:50 +0100 (CET) IronPort-SDR: QxL/B1YLO9I+bYwWxN8YwyaqPa9OXDPpSZQStI83e1X/Xi1RWq6+EYKla4zm6Rx178HRUxqmYZ zjc/Q72Gwpbw== X-IronPort-AV: E=McAfee;i="6000,8403,9814"; a="172030974" X-IronPort-AV: E=Sophos;i="5.78,366,1599548400"; d="scan'208";a="172030974" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Nov 2020 04:17:48 -0800 IronPort-SDR: Ck0X7PqsHk2mFnEkoKgUomW8fVeI+qNCSKPZtekWHrjYqJ9a4WH0kaPHj/v57NfoxYsevoYePm o7nwgO6YV2ig== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,366,1599548400"; d="scan'208";a="364994517" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by fmsmga002.fm.intel.com with ESMTP; 24 Nov 2020 04:17:47 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 24 Nov 2020 04:17:46 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 24 Nov 2020 04:17:46 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 24 Nov 2020 04:17:46 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 24 Nov 2020 04:17:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P1sRM5qZ0VjzYXvppVh+/xOXddCSQx6zbwELQL8afiFPZRU2Zi3KXkHfpMuH2ngEnpe5MBZWIHckddHYUPYFS3scfmHE7YJrUgGiAN1kFPposQ2fOSoxnr0ZRs+NMJGF6ZZSEW9MJXk8EcqAa7hLDV2bjy1ZsvR/5E6K9RMw7rD0ve7EkUnGJ4ABlwVnjdm8Ca0RIhTvS2kbKo6+3xOXiX1guTZZfPxjN7Rsc7vUCNkuLSxIdFjJH4tV88+AhXVo2gUzMVleEuNfZHLm2CF3fTIFHZ7aqbne+JLZGgPkCV2pAxOPie+7WJjzrjMu5hSQbXyOk1lSIUuQBhnE4P5sIQ== 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-SenderADCheck; bh=sCp69klJJob3Ghb8HZUf+DQStpOOPn+F+11Y64KzPxI=; b=Zpvkv9Tqg5H0J7RI1isG4TluAfxsyM6YfENiMWW9lWQVrXb8g6S4jsHnj+RG/bRpH6coNkax2+Ivetjsj7hiiN5KAlE5x6oWZj07k1zCpwHDme3rMhPPKxYImL0rfoBdw2vHeBUCWv/Z9JgJ+9ZSscSi6VrpT8hX4o4wfF8NjXiDCy+UnCJfIomMd3wPFzFbvb+VEveAn3wq840gqmA2cxeQ7qjVpO6Xze0VyY/o1DPJEHICKUaXXnFuYVSYVBzwCqmPrwFZjNPz134TAYSm9vkv3ohgMmFlM3W5VffNQUtK6OHJDXmtoLpBQtr/MNX5yPxlH4x6/tHssdqe1w2MHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sCp69klJJob3Ghb8HZUf+DQStpOOPn+F+11Y64KzPxI=; b=di80SqiJCrORO/xtNJ2dB3vODaFCd52NO+7jOMXZ/OxAE0Fg0vTSBrEf6iF05hRHTY4+A9w4qQiAAZTVDmcBnImlblBauLZmP+B6DxkoTeM2sCsPY79jOoHS9I7Kcre3Ns2/PQKL8LCoqJsmw6dpSUxcQAwZWJdl5cEbwMqpjqY= Received: from DM6PR11MB3131.namprd11.prod.outlook.com (2603:10b6:5:6d::32) by DM5PR11MB1754.namprd11.prod.outlook.com (2603:10b6:3:10a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Tue, 24 Nov 2020 12:17:38 +0000 Received: from DM6PR11MB3131.namprd11.prod.outlook.com ([fe80::7c3d:89ea:62cb:2bbf]) by DM6PR11MB3131.namprd11.prod.outlook.com ([fe80::7c3d:89ea:62cb:2bbf%6]) with mapi id 15.20.3589.030; Tue, 24 Nov 2020 12:17:38 +0000 From: "Zhang, Tianfei" To: "Yigit, Ferruh" , Jerin Jacob , "Dumitrescu, Cristian" , Hemant Agrawal , Sachin Saxena , Ray Kinsella , Neil Horman , "Xu, Rosen" , "Wu, Jingjing" , "Xing, Beilei" , "Nithin Dabilpuram" , Ajit Khaparde , Raveendra Padasalagi , Vikas Gupta , Gagandeep Singh , Somalapuram Amaranath , Akhil Goyal , Jay Zhou , "McDaniel, Timothy" , "Ma, Liang J" , "Mccarthy, Peter" , "Shepard Siegel" , Ed Czeck , John Miller , Igor Russkikh , Pavel Belous , Rasesh Mody , Shahed Shaikh , Somnath Kotur , Chas Williams , "Min Hu (Connor)" , Rahul Lakkireddy , "Guo, Jia" , "Wang, Haiyue" , Marcin Wojtas , "Michal Krawczyk" , Guy Tzalik , "Evgeny Schemeilin" , Igor Chauskin , "Zhang, Qi Z" , "Wang, Xiao W" , "Yang, Qiming" , Alfredo Cardigliano , Matan Azrad , Shahaf Shuler , Viacheslav Ovsiienko , Zyta Szpak , Liron Himi , Stephen Hemminger , "K. Y. Srinivasan" , Haiyang Zhang , Long Li , Heinrich Kuhn , Harman Kalra , "Kiran Kumar K" , Andrew Rybchenko , "Singh, Jasvinder" , Jiawen Wu , Jian Wang , Ori Kam , Guy Kaneti , "Burakov, Anatoly" , "Maxime Coquelin" , "Xia, Chenbo" CC: "dev@dpdk.org" Thread-Topic: [RFC] remove unused functions Thread-Index: AQHWviePsUEVtEDC0UK9YeaTcvq6hKnVB3hggAB6J4CAAZKc8IAAB+AAgAAG6rCAAAtFgIAAC43g Date: Tue, 24 Nov 2020 12:17:38 +0000 Message-ID: References: <20201119035238.3653702-1-ferruh.yigit@intel.com> <692cbe0f-618e-ad65-427a-0309c49bc424@intel.com> <4613b0c1-c7fe-0f89-7cf6-a9acd3a3cd84@intel.com> In-Reply-To: <4613b0c1-c7fe-0f89-7cf6-a9acd3a3cd84@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.5.1.3 dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 283ae9d9-8b38-4f89-e300-08d89072ef27 x-ms-traffictypediagnostic: DM5PR11MB1754: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: J82gSxfva/ftMg9Zx1dEAw+qArUqZLncwqoYPn+JPmbmj+Xukefsg8ap7dkIhuAv6oYnldyF65kn2KLtp1zqBi7+b/QRdYpilO2QK2LJP+alyyxGZQEd2CaI6bGp15HfcZOlFEY5sXvloo1oXwccgj1HbLL0Ot1XyTM9gYrWj1kaJ2Ww2XYwXpAGdPCnuh5EhXoUTvoPhbpvf9s/CWF/d9LLKx3Z8Fylw7a8evHlLfpWkofsnlcoWGTzkhtUnmZe2dUs5fNP++r3yw7EcYim6B+765wSSyWkI4H06KO3lIMSSNusuZx3fJJSkaO6FyMvenQrRPggfJTrRLOgIo588WtnpUQkK4Sk17KTfi849VAVAuu4hWQ0gt6uo6hPAmen x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3131.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(136003)(39860400002)(396003)(366004)(8676002)(478600001)(8936002)(71200400001)(7406005)(83380400001)(33656002)(66556008)(53546011)(64756008)(6506007)(66476007)(52536014)(66446008)(186003)(7416002)(2906002)(76116006)(4326008)(86362001)(9686003)(110136005)(55016002)(7696005)(921005)(26005)(5660300002)(316002)(66946007)(1191002)(6636002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: WTdsfq9ndwnu7F4sLZpkGMItwDkpRpI+vhjkWqdYcuioDDDZ/9v1UQhYKFqgp7JDTKU+0IcI8l23ymDIKCbiC0wJom60yMMc/DVqI/TYsjMVGhostCIpd4N7owkt64tfG0bSh6KynmOPbrS9xKFU1lzU5t3P3MJYhuUMe9i5h0H+PxkF5hKEd/b1JbRehXSh+jioXy5JblnR2NpdWTqJMMZqaZNj2xkLDFJEAaFMTgVAdu8JBAyxZttQoGO3oZ20cieEL4zEBncvA3Vhm1TWX3whWpYHDKDkwakegd0pPh7uH3tbwrDSurdgxy7HjG0PrKw7If+DnuZ+cglMp/4QxV4y9We+LTPvpEYKOYqAwLcC9WK3HPVoVPIvzN381A0PC8NmF4oKlJ6rdhp8ewxm3MbMWFm9DdJpi3fPK4zBZVy7ZGeV+6ecPMF9At0RlzRdd56rkJlFTSXPgHP5YDttOfOK/odvud1ndloLICqPUi79b8AJkums7Pfx2rhDJADoFNew7mBtpzAj4i6J6Ni5F7/n2p6Ucr+GIy4QXYJVOCKhX8l9VDSYCCi2+YsOP2tNi34mz2bn2vgehRjc6zjvDciqNODZSMVj+czAq/t7JWLjZ5m+a2syzHN67oWmgLvgqh5CTWNPVeBjlAA2ut6vge/TMRzMZBeG9uGlcloBD6GTL9L6iaN+uWGRcfTqQ79M0u4C35FPqilRBJjHPL/H7+0tUoCrjB02OR065Ekwt+5BHSPfkOgNjexCS9v/gi2HrZXvMZRKBJkycQMASIClKK+r9wddBS7gUfAEgZrqGAk/JRznt1ibvk2K4bfzcEpnQ1STc0SAzRC9gvWRAIAfPj5/ZAShCT59qft98cpyGt8IVuAmvcx8OqZYhFaGKFUK2eI0xoNtuj5LxO00dBUvnA== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3131.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 283ae9d9-8b38-4f89-e300-08d89072ef27 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2020 12:17:38.4376 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NfZTVOPoQIPyQX6MEjo08iALwXjDpt3IPtEDb4O5tGBwt2fIFhugwSKo8vgO4IgJeDecw4OrLPv2XPPIYQN46Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1754 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [RFC] remove unused functions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiAyMDIw5bm0MTHmnIgyNOaXpSAxOTozMQ0K PiBUbzogWmhhbmcsIFRpYW5mZWkgPHRpYW5mZWkuemhhbmdAaW50ZWwuY29tPjsgSmVyaW4gSmFj b2INCj4gPGplcmluakBtYXJ2ZWxsLmNvbT47IER1bWl0cmVzY3UsIENyaXN0aWFuIDxjcmlzdGlh bi5kdW1pdHJlc2N1QGludGVsLmNvbT47DQo+IEhlbWFudCBBZ3Jhd2FsIDxoZW1hbnQuYWdyYXdh bEBueHAuY29tPjsgU2FjaGluIFNheGVuYQ0KPiA8c2FjaGluLnNheGVuYUBvc3MubnhwLmNvbT47 IFJheSBLaW5zZWxsYSA8bWRyQGFzaHJvZS5ldT47IE5laWwgSG9ybWFuDQo+IDxuaG9ybWFuQHR1 eGRyaXZlci5jb20+OyBYdSwgUm9zZW4gPHJvc2VuLnh1QGludGVsLmNvbT47IFd1LCBKaW5namlu Zw0KPiA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsgWGluZywgQmVpbGVpIDxiZWlsZWkueGluZ0Bp bnRlbC5jb20+OyBOaXRoaW4NCj4gRGFiaWxwdXJhbSA8bmRhYmlscHVyYW1AbWFydmVsbC5jb20+ OyBBaml0IEtoYXBhcmRlDQo+IDxhaml0LmtoYXBhcmRlQGJyb2FkY29tLmNvbT47IFJhdmVlbmRy YSBQYWRhc2FsYWdpDQo+IDxyYXZlZW5kcmEucGFkYXNhbGFnaUBicm9hZGNvbS5jb20+OyBWaWth cyBHdXB0YQ0KPiA8dmlrYXMuZ3VwdGFAYnJvYWRjb20uY29tPjsgR2FnYW5kZWVwIFNpbmdoIDxn LnNpbmdoQG54cC5jb20+Ow0KPiBTb21hbGFwdXJhbSBBbWFyYW5hdGggPGFzb21hbGFwQGFtZC5j b20+OyBBa2hpbCBHb3lhbA0KPiA8YWtoaWwuZ295YWxAbnhwLmNvbT47IEpheSBaaG91IDxqaWFu amF5Lnpob3VAaHVhd2VpLmNvbT47IE1jRGFuaWVsLA0KPiBUaW1vdGh5IDx0aW1vdGh5Lm1jZGFu aWVsQGludGVsLmNvbT47IE1hLCBMaWFuZyBKIDxsaWFuZy5qLm1hQGludGVsLmNvbT47DQo+IE1j Y2FydGh5LCBQZXRlciA8cGV0ZXIubWNjYXJ0aHlAaW50ZWwuY29tPjsgU2hlcGFyZCBTaWVnZWwN Cj4gPHNoZXBhcmQuc2llZ2VsQGF0b21pY3J1bGVzLmNvbT47IEVkIEN6ZWNrIDxlZC5jemVja0Bh dG9taWNydWxlcy5jb20+Ow0KPiBKb2huIE1pbGxlciA8am9obi5taWxsZXJAYXRvbWljcnVsZXMu Y29tPjsgSWdvciBSdXNza2lraA0KPiA8aWdvci5ydXNza2lraEBhcXVhbnRpYS5jb20+OyBQYXZl bCBCZWxvdXMgPHBhdmVsLmJlbG91c0BhcXVhbnRpYS5jb20+Ow0KPiBSYXNlc2ggTW9keSA8cm1v ZHlAbWFydmVsbC5jb20+OyBTaGFoZWQgU2hhaWtoDQo+IDxzaHNoYWlraEBtYXJ2ZWxsLmNvbT47 IFNvbW5hdGggS290dXIgPHNvbW5hdGgua290dXJAYnJvYWRjb20uY29tPjsNCj4gQ2hhcyBXaWxs aWFtcyA8Y2hhczNAYXR0LmNvbT47IE1pbiBIdSAoQ29ubm9yKSA8aHVtaW4yOUBodWF3ZWkuY29t PjsNCj4gUmFodWwgTGFra2lyZWRkeSA8cmFodWwubGFra2lyZWRkeUBjaGVsc2lvLmNvbT47IEd1 bywgSmlhDQo+IDxqaWEuZ3VvQGludGVsLmNvbT47IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdA aW50ZWwuY29tPjsgTWFyY2luDQo+IFdvanRhcyA8bXdAc2VtaWhhbGYuY29tPjsgTWljaGFsIEty YXdjenlrIDxta0BzZW1paGFsZi5jb20+OyBHdXkNCj4gVHphbGlrIDxndHphbGlrQGFtYXpvbi5j b20+OyBFdmdlbnkgU2NoZW1laWxpbiA8ZXZnZW55c0BhbWF6b24uY29tPjsNCj4gSWdvciBDaGF1 c2tpbiA8aWdvcmNoQGFtYXpvbi5jb20+OyBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5j b20+Ow0KPiBXYW5nLCBYaWFvIFcgPHhpYW8udy53YW5nQGludGVsLmNvbT47IFlhbmcsIFFpbWlu Zw0KPiA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgQWxmcmVkbyBDYXJkaWdsaWFubyA8Y2FyZGln bGlhbm9AbnRvcC5vcmc+Ow0KPiBNYXRhbiBBenJhZCA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhh ZiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlhLmNvbT47DQo+IFZpYWNoZXNsYXYgT3ZzaWllbmtvIDx2 aWFjaGVzbGF2b0BudmlkaWEuY29tPjsgWnl0YSBTenBhaw0KPiA8enJAc2VtaWhhbGYuY29tPjsg TGlyb24gSGltaSA8bGlyb25oQG1hcnZlbGwuY29tPjsgU3RlcGhlbiBIZW1taW5nZXINCj4gPHN0 aGVtbWluQG1pY3Jvc29mdC5jb20+OyBLLiBZLiBTcmluaXZhc2FuIDxreXNAbWljcm9zb2Z0LmNv bT47IEhhaXlhbmcNCj4gWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+OyBMb25nIExpIDxs b25nbGlAbWljcm9zb2Z0LmNvbT47IEhlaW5yaWNoDQo+IEt1aG4gPGhlaW5yaWNoLmt1aG5AbmV0 cm9ub21lLmNvbT47IEhhcm1hbiBLYWxyYQ0KPiA8aGthbHJhQG1hcnZlbGwuY29tPjsgS2lyYW4g S3VtYXIgSyA8a2lyYW5rdW1hcmtAbWFydmVsbC5jb20+OyBBbmRyZXcNCj4gUnliY2hlbmtvIDxh bmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT47IFNpbmdoLCBKYXN2aW5kZXINCj4gPGphc3Zp bmRlci5zaW5naEBpbnRlbC5jb20+OyBKaWF3ZW4gV3UgPGppYXdlbnd1QHRydXN0bmV0aWMuY29t PjsgSmlhbg0KPiBXYW5nIDxqaWFud2FuZ0B0cnVzdG5ldGljLmNvbT47IE9yaSBLYW0gPG9yaWth QG52aWRpYS5jb20+OyBHdXkgS2FuZXRpDQo+IDxndXlrQG1hcnZlbGwuY29tPjsgQnVyYWtvdiwg QW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT47DQo+IE1heGltZSBDb3F1ZWxpbiA8 bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+OyBYaWEsIENoZW5ibw0KPiA8Y2hlbmJvLnhpYUBp bnRlbC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtSRkNdIHJlbW92 ZSB1bnVzZWQgZnVuY3Rpb25zDQo+IA0KPiBPbiAxMS8yNC8yMDIwIDExOjAxIEFNLCBaaGFuZywg VGlhbmZlaSB3cm90ZToNCj4gPg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4+IEZyb206IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gPj4g U2VudDogMjAyMOW5tDEx5pyIMjTml6UgMTg6MjYNCj4gPj4gVG86IFpoYW5nLCBUaWFuZmVpIDx0 aWFuZmVpLnpoYW5nQGludGVsLmNvbT47IEplcmluIEphY29iDQo+ID4+IDxqZXJpbmpAbWFydmVs bC5jb20+OyBEdW1pdHJlc2N1LCBDcmlzdGlhbg0KPiA+PiA8Y3Jpc3RpYW4uZHVtaXRyZXNjdUBp bnRlbC5jb20+OyBIZW1hbnQgQWdyYXdhbA0KPiA+PiA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT47 IFNhY2hpbiBTYXhlbmENCj4gPHNhY2hpbi5zYXhlbmFAb3NzLm54cC5jb20+Ow0KPiA+PiBSYXkg S2luc2VsbGEgPG1kckBhc2hyb2UuZXU+OyBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIu Y29tPjsNCj4gPj4gWHUsIFJvc2VuIDxyb3Nlbi54dUBpbnRlbC5jb20+OyBXdSwgSmluZ2ppbmcg PGppbmdqaW5nLnd1QGludGVsLmNvbT47DQo+ID4+IFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdA aW50ZWwuY29tPjsgTml0aGluIERhYmlscHVyYW0NCj4gPj4gPG5kYWJpbHB1cmFtQG1hcnZlbGwu Y29tPjsgQWppdCBLaGFwYXJkZQ0KPiA+PiA8YWppdC5raGFwYXJkZUBicm9hZGNvbS5jb20+OyBS YXZlZW5kcmEgUGFkYXNhbGFnaQ0KPiA+PiA8cmF2ZWVuZHJhLnBhZGFzYWxhZ2lAYnJvYWRjb20u Y29tPjsgVmlrYXMgR3VwdGENCj4gPj4gPHZpa2FzLmd1cHRhQGJyb2FkY29tLmNvbT47IEdhZ2Fu ZGVlcCBTaW5naCA8Zy5zaW5naEBueHAuY29tPjsNCj4gPj4gU29tYWxhcHVyYW0gQW1hcmFuYXRo IDxhc29tYWxhcEBhbWQuY29tPjsgQWtoaWwgR295YWwNCj4gPj4gPGFraGlsLmdveWFsQG54cC5j b20+OyBKYXkgWmhvdSA8amlhbmpheS56aG91QGh1YXdlaS5jb20+OyBNY0RhbmllbCwNCj4gPj4g VGltb3RoeSA8dGltb3RoeS5tY2RhbmllbEBpbnRlbC5jb20+OyBNYSwgTGlhbmcgSg0KPiA+PiA8 bGlhbmcuai5tYUBpbnRlbC5jb20+OyBNY2NhcnRoeSwgUGV0ZXIgPHBldGVyLm1jY2FydGh5QGlu dGVsLmNvbT47DQo+ID4+IFNoZXBhcmQgU2llZ2VsIDxzaGVwYXJkLnNpZWdlbEBhdG9taWNydWxl cy5jb20+OyBFZCBDemVjaw0KPiA+PiA8ZWQuY3plY2tAYXRvbWljcnVsZXMuY29tPjsgSm9obiBN aWxsZXINCj4gPj4gPGpvaG4ubWlsbGVyQGF0b21pY3J1bGVzLmNvbT47IElnb3IgUnVzc2tpa2gN Cj4gPj4gPGlnb3IucnVzc2tpa2hAYXF1YW50aWEuY29tPjsgUGF2ZWwgQmVsb3VzDQo+ID4+IDxw YXZlbC5iZWxvdXNAYXF1YW50aWEuY29tPjsgUmFzZXNoIE1vZHkgPHJtb2R5QG1hcnZlbGwuY29t PjsNCj4gU2hhaGVkDQo+ID4+IFNoYWlraCA8c2hzaGFpa2hAbWFydmVsbC5jb20+OyBTb21uYXRo IEtvdHVyDQo+ID4+IDxzb21uYXRoLmtvdHVyQGJyb2FkY29tLmNvbT47IENoYXMgV2lsbGlhbXMg PGNoYXMzQGF0dC5jb20+OyBNaW4NCj4gSHUNCj4gPj4gKENvbm5vcikgPGh1bWluMjlAaHVhd2Vp LmNvbT47IFJhaHVsIExha2tpcmVkZHkNCj4gPj4gPHJhaHVsLmxha2tpcmVkZHlAY2hlbHNpby5j b20+OyBHdW8sIEppYSA8amlhLmd1b0BpbnRlbC5jb20+OyBXYW5nLA0KPiA+PiBIYWl5dWUgPGhh aXl1ZS53YW5nQGludGVsLmNvbT47IE1hcmNpbiBXb2p0YXMgPG13QHNlbWloYWxmLmNvbT47DQo+ ID4+IE1pY2hhbCBLcmF3Y3p5ayA8bWtAc2VtaWhhbGYuY29tPjsgR3V5IFR6YWxpayA8Z3R6YWxp a0BhbWF6b24uY29tPjsNCj4gPj4gRXZnZW55IFNjaGVtZWlsaW4gPGV2Z2VueXNAYW1hem9uLmNv bT47IElnb3IgQ2hhdXNraW4NCj4gPj4gPGlnb3JjaEBhbWF6b24uY29tPjsgWmhhbmcsIFFpIFog PHFpLnouemhhbmdAaW50ZWwuY29tPjsgV2FuZywgWGlhbw0KPiBXDQo+ID4+IDx4aWFvLncud2Fu Z0BpbnRlbC5jb20+OyBZYW5nLCBRaW1pbmcgPHFpbWluZy55YW5nQGludGVsLmNvbT47DQo+ID4+ IEFsZnJlZG8gQ2FyZGlnbGlhbm8gPGNhcmRpZ2xpYW5vQG50b3Aub3JnPjsgTWF0YW4gQXpyYWQN Cj4gPj4gPG1hdGFuQG52aWRpYS5jb20+OyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG52aWRpYS5j b20+OyBWaWFjaGVzbGF2DQo+ID4+IE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47 IFp5dGEgU3pwYWsgPHpyQHNlbWloYWxmLmNvbT47DQo+ID4+IExpcm9uIEhpbWkgPGxpcm9uaEBt YXJ2ZWxsLmNvbT47IFN0ZXBoZW4gSGVtbWluZ2VyDQo+ID4+IDxzdGhlbW1pbkBtaWNyb3NvZnQu Y29tPjsgSy4gWS4gU3Jpbml2YXNhbiA8a3lzQG1pY3Jvc29mdC5jb20+Ow0KPiA+PiBIYWl5YW5n IFpoYW5nIDxoYWl5YW5nekBtaWNyb3NvZnQuY29tPjsgTG9uZyBMaQ0KPiA+PiA8bG9uZ2xpQG1p Y3Jvc29mdC5jb20+OyBIZWlucmljaCBLdWhuDQo+IDxoZWlucmljaC5rdWhuQG5ldHJvbm9tZS5j b20+Ow0KPiA+PiBIYXJtYW4gS2FscmEgPGhrYWxyYUBtYXJ2ZWxsLmNvbT47IEtpcmFuIEt1bWFy IEsNCj4gPj4gPGtpcmFua3VtYXJrQG1hcnZlbGwuY29tPjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+ PiA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+OyBTaW5naCwgSmFzdmluZGVyDQo+ID4+ IDxqYXN2aW5kZXIuc2luZ2hAaW50ZWwuY29tPjsgSmlhd2VuIFd1IDxqaWF3ZW53dUB0cnVzdG5l dGljLmNvbT47DQo+ID4+IEppYW4gV2FuZyA8amlhbndhbmdAdHJ1c3RuZXRpYy5jb20+OyBPcmkg S2FtIDxvcmlrYUBudmlkaWEuY29tPjsgR3V5DQo+ID4+IEthbmV0aSA8Z3V5a0BtYXJ2ZWxsLmNv bT47IEJ1cmFrb3YsIEFuYXRvbHkNCj4gPj4gPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+OyBN YXhpbWUgQ29xdWVsaW4NCj4gPj4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPjsgWGlhLCBD aGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPg0KPiA+PiBDYzogZGV2QGRwZGsub3JnDQo+ID4+ IFN1YmplY3Q6IFJlOiBbUkZDXSByZW1vdmUgdW51c2VkIGZ1bmN0aW9ucw0KPiA+Pg0KPiA+PiBP biAxMS8yNC8yMDIwIDEwOjAwIEFNLCBaaGFuZywgVGlhbmZlaSB3cm90ZToNCj4gPj4+DQo+ID4+ Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogRmVycnVo IFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiA+Pj4+IFNlbnQ6IDIwMjDlubQxMeac iDIz5pelIDE3OjU3DQo+ID4+Pj4gVG86IFpoYW5nLCBUaWFuZmVpIDx0aWFuZmVpLnpoYW5nQGlu dGVsLmNvbT47IEplcmluIEphY29iDQo+ID4+Pj4gPGplcmluakBtYXJ2ZWxsLmNvbT47IER1bWl0 cmVzY3UsIENyaXN0aWFuDQo+ID4+Pj4gPGNyaXN0aWFuLmR1bWl0cmVzY3VAaW50ZWwuY29tPjsg SGVtYW50IEFncmF3YWwNCj4gPj4+PiA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT47IFNhY2hpbiBT YXhlbmENCj4gPj4gPHNhY2hpbi5zYXhlbmFAb3NzLm54cC5jb20+Ow0KPiA+Pj4+IFJheSBLaW5z ZWxsYSA8bWRyQGFzaHJvZS5ldT47IE5laWwgSG9ybWFuDQo+IDxuaG9ybWFuQHR1eGRyaXZlci5j b20+Ow0KPiA+Pj4+IFh1LCBSb3NlbiA8cm9zZW4ueHVAaW50ZWwuY29tPjsgV3UsIEppbmdqaW5n DQo+ID4+Pj4gPGppbmdqaW5nLnd1QGludGVsLmNvbT47IFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhp bmdAaW50ZWwuY29tPjsNCj4gPj4+PiBOaXRoaW4gRGFiaWxwdXJhbSA8bmRhYmlscHVyYW1AbWFy dmVsbC5jb20+OyBBaml0IEtoYXBhcmRlDQo+ID4+Pj4gPGFqaXQua2hhcGFyZGVAYnJvYWRjb20u Y29tPjsgUmF2ZWVuZHJhIFBhZGFzYWxhZ2kNCj4gPj4+PiA8cmF2ZWVuZHJhLnBhZGFzYWxhZ2lA YnJvYWRjb20uY29tPjsgVmlrYXMgR3VwdGENCj4gPj4+PiA8dmlrYXMuZ3VwdGFAYnJvYWRjb20u Y29tPjsgR2FnYW5kZWVwIFNpbmdoIDxnLnNpbmdoQG54cC5jb20+Ow0KPiA+Pj4+IFNvbWFsYXB1 cmFtIEFtYXJhbmF0aCA8YXNvbWFsYXBAYW1kLmNvbT47IEFraGlsIEdveWFsDQo+ID4+Pj4gPGFr aGlsLmdveWFsQG54cC5jb20+OyBKYXkgWmhvdSA8amlhbmpheS56aG91QGh1YXdlaS5jb20+Ow0K PiA+Pj4+IE1jRGFuaWVsLCBUaW1vdGh5IDx0aW1vdGh5Lm1jZGFuaWVsQGludGVsLmNvbT47IE1h LCBMaWFuZyBKDQo+ID4+Pj4gPGxpYW5nLmoubWFAaW50ZWwuY29tPjsgTWNjYXJ0aHksIFBldGVy IDxwZXRlci5tY2NhcnRoeUBpbnRlbC5jb20+Ow0KPiA+Pj4+IFNoZXBhcmQgU2llZ2VsIDxzaGVw YXJkLnNpZWdlbEBhdG9taWNydWxlcy5jb20+OyBFZCBDemVjaw0KPiA+Pj4+IDxlZC5jemVja0Bh dG9taWNydWxlcy5jb20+OyBKb2huIE1pbGxlcg0KPiA+Pj4+IDxqb2huLm1pbGxlckBhdG9taWNy dWxlcy5jb20+OyBJZ29yIFJ1c3NraWtoDQo+ID4+Pj4gPGlnb3IucnVzc2tpa2hAYXF1YW50aWEu Y29tPjsgUGF2ZWwgQmVsb3VzDQo+ID4+Pj4gPHBhdmVsLmJlbG91c0BhcXVhbnRpYS5jb20+OyBS YXNlc2ggTW9keSA8cm1vZHlAbWFydmVsbC5jb20+Ow0KPiA+PiBTaGFoZWQNCj4gPj4+PiBTaGFp a2ggPHNoc2hhaWtoQG1hcnZlbGwuY29tPjsgU29tbmF0aCBLb3R1cg0KPiA+Pj4+IDxzb21uYXRo LmtvdHVyQGJyb2FkY29tLmNvbT47IENoYXMgV2lsbGlhbXMgPGNoYXMzQGF0dC5jb20+Ow0KPiBN aW4NCj4gPj4gSHUNCj4gPj4+PiAoQ29ubm9yKSA8aHVtaW4yOUBodWF3ZWkuY29tPjsgUmFodWwg TGFra2lyZWRkeQ0KPiA+Pj4+IDxyYWh1bC5sYWtraXJlZGR5QGNoZWxzaW8uY29tPjsgR3VvLCBK aWEgPGppYS5ndW9AaW50ZWwuY29tPjsgV2FuZywNCj4gPj4+PiBIYWl5dWUgPGhhaXl1ZS53YW5n QGludGVsLmNvbT47IE1hcmNpbiBXb2p0YXMNCj4gPG13QHNlbWloYWxmLmNvbT47DQo+ID4+Pj4g TWljaGFsIEtyYXdjenlrIDxta0BzZW1paGFsZi5jb20+OyBHdXkgVHphbGlrDQo+IDxndHphbGlr QGFtYXpvbi5jb20+Ow0KPiA+Pj4+IEV2Z2VueSBTY2hlbWVpbGluIDxldmdlbnlzQGFtYXpvbi5j b20+OyBJZ29yIENoYXVza2luDQo+ID4+Pj4gPGlnb3JjaEBhbWF6b24uY29tPjsgWmhhbmcsIFFp IFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgV2FuZywNCj4gWGlhbw0KPiA+PiBXDQo+ID4+Pj4g PHhpYW8udy53YW5nQGludGVsLmNvbT47IFlhbmcsIFFpbWluZyA8cWltaW5nLnlhbmdAaW50ZWwu Y29tPjsNCj4gPj4+PiBBbGZyZWRvIENhcmRpZ2xpYW5vIDxjYXJkaWdsaWFub0BudG9wLm9yZz47 IE1hdGFuIEF6cmFkDQo+ID4+Pj4gPG1hdGFuQG52aWRpYS5jb20+OyBTaGFoYWYgU2h1bGVyIDxz aGFoYWZzQG52aWRpYS5jb20+OyBWaWFjaGVzbGF2DQo+ID4+Pj4gT3ZzaWllbmtvIDx2aWFjaGVz bGF2b0BudmlkaWEuY29tPjsgWnl0YSBTenBhayA8enJAc2VtaWhhbGYuY29tPjsNCj4gPj4+PiBM aXJvbiBIaW1pIDxsaXJvbmhAbWFydmVsbC5jb20+OyBTdGVwaGVuIEhlbW1pbmdlcg0KPiA+Pj4+ IDxzdGhlbW1pbkBtaWNyb3NvZnQuY29tPjsgSy4gWS4gU3Jpbml2YXNhbiA8a3lzQG1pY3Jvc29m dC5jb20+Ow0KPiA+Pj4+IEhhaXlhbmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+OyBM b25nIExpDQo+ID4+Pj4gPGxvbmdsaUBtaWNyb3NvZnQuY29tPjsgSGVpbnJpY2ggS3Vobg0KPiA+ PiA8aGVpbnJpY2gua3VobkBuZXRyb25vbWUuY29tPjsNCj4gPj4+PiBIYXJtYW4gS2FscmEgPGhr YWxyYUBtYXJ2ZWxsLmNvbT47IEtpcmFuIEt1bWFyIEsNCj4gPj4+PiA8a2lyYW5rdW1hcmtAbWFy dmVsbC5jb20+OyBBbmRyZXcgUnliY2hlbmtvDQo+ID4+Pj4gPGFuZHJldy5yeWJjaGVua29Ab2t0 ZXRsYWJzLnJ1PjsgU2luZ2gsIEphc3ZpbmRlcg0KPiA+Pj4+IDxqYXN2aW5kZXIuc2luZ2hAaW50 ZWwuY29tPjsgSmlhd2VuIFd1IDxqaWF3ZW53dUB0cnVzdG5ldGljLmNvbT47DQo+ID4+Pj4gSmlh biBXYW5nIDxqaWFud2FuZ0B0cnVzdG5ldGljLmNvbT47IE9yaSBLYW0gPG9yaWthQG52aWRpYS5j b20+Ow0KPiA+Pj4+IEd1eSBLYW5ldGkgPGd1eWtAbWFydmVsbC5jb20+OyBCdXJha292LCBBbmF0 b2x5DQo+ID4+Pj4gPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+OyBNYXhpbWUgQ29xdWVsaW4N Cj4gPj4+PiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+OyBYaWEsIENoZW5ibyA8Y2hlbmJv LnhpYUBpbnRlbC5jb20+DQo+ID4+Pj4gQ2M6IGRldkBkcGRrLm9yZw0KPiA+Pj4+IFN1YmplY3Q6 IFJlOiBbUkZDXSByZW1vdmUgdW51c2VkIGZ1bmN0aW9ucw0KPiA+Pj4+DQo+ID4+Pj4gT24gMTEv MjMvMjAyMCAyOjU1IEFNLCBaaGFuZywgVGlhbmZlaSB3cm90ZToNCj4gPj4+Pj4+ICAgICBkcml2 ZXJzL3Jhdy9pZnBnYS9iYXNlL29wYWVfZXRoX2dyb3VwLmMgICAgICAgfCAgIDI1IC0NCj4gPj4+ Pj4+ICAgICBkcml2ZXJzL3Jhdy9pZnBnYS9iYXNlL29wYWVfZXRoX2dyb3VwLmggICAgICAgfCAg ICAxIC0NCj4gPg0KPiA+IEZvciB0aG9zZSB1bnVzZWQgZnVuY3Rpb25zIG9uIG9wYWVfZXRoX2dy b3VwLmMgYXJlIHJlbGVhc2UgZnVuY3Rpb25zLA0KPiA+IGxpa2UgZXRoX2dyb3VwX3JlbGVhc2Uo KSwgaXQgc2hvdWxkIGJlIGNhbGxlZCBieSBmbWVfZXRoX2dyb3VwX3Vpbml0KCksIEkgd2lsbA0K PiBzZW5kIGEgcGF0Y2ggdG8gZml4IGl0Lg0KPiA+DQo+ID4+Pj4+PiAgICAgZHJpdmVycy9yYXcv aWZwZ2EvYmFzZS9vcGFlX2h3X2FwaS5jICAgICAgICAgIHwgIDIxMiAtLQ0KPiA+Pj4+Pj4gICAg IGRyaXZlcnMvcmF3L2lmcGdhL2Jhc2Uvb3BhZV9od19hcGkuaCAgICAgICAgICB8ICAgMzYgLQ0K PiA+Pj4+Pj4gICAgIGRyaXZlcnMvcmF3L2lmcGdhL2Jhc2Uvb3BhZV9pMmMuYyAgICAgICAgICAg ICB8ICAgMTIgLQ0KPiA+Pj4+Pj4gICAgIGRyaXZlcnMvcmF3L2lmcGdhL2Jhc2Uvb3BhZV9pMmMu aCAgICAgICAgICAgICB8ICAgIDQgLQ0KPiA+Pj4+Pj4gICAgIGRyaXZlcnMvcmF3L2lmcGdhL2Jh c2Uvb3BhZV9pZnBnYV9od19hcGkuYyAgICB8ICAgOTkgLQ0KPiA+Pj4+Pj4gICAgIGRyaXZlcnMv cmF3L2lmcGdhL2Jhc2Uvb3BhZV9pZnBnYV9od19hcGkuaCAgICB8ICAgMTUgLQ0KPiA+Pj4+Pg0K PiA+Pj4+PiBUaGUgaWZwZ2EgYmFzZSBjb2RlIGlzIHdhbnQgdG8gcHJvdmlkZSBmdWxseSBmdW5j dGlvbmFsaXR5IGxvdw0KPiA+Pj4+PiBsZXZlbCBoYXJkd2FyZQ0KPiA+Pj4+IHN1cHBvcnQgZm9y IEludGVsIEZQR0EgY2FyZCBsaWtlIE4zMDAwLCBldmVuIHRob3VnaCBzb21lIEFQSXMgYXJlDQo+ ID4+Pj4gbm90IHVzZWQgYnkgRFBESyBmcmFtZXdvcmsgbm9377yMYnV0IGl0IHdpbGwgdXNlZnVs IGZvciBlbmQtdXNlcnMgb3INCj4gPj4+PiBvdGhlciBjdXN0b21lcnMgZGV2ZWxvcGluZyB0aGVp ciBvd24gcHJvZHVjdGlvbnMgLCBteSBvcGluaW9uIGlzDQo+ID4+Pj4ga2VlcGluZyB0aG9zZSBB UElzIG9mIGlmcGdhIGJhc2UgY29kZSBpbiBEUERLLg0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4g VGhlIGNvZGUgaXMgaGlkZGVuIGJlaGluZCB0aGUgZHJpdmVyIGNvZGUsIGl0IGlzIG5vdCBhY2Nl c3NpYmxlIHRvDQo+ID4+Pj4gdXNlcg0KPiA+PiBkaXJlY3RseS4NCj4gPj4+Pg0KPiA+Pj4+IElm IHRoZSBpZGVhIGlzIHRoZSBjb2RlIGNhbiBiZSB1c2VkIGxhdGVyLCBpdCBjYW4gYmUgYWRkZWQg d2hlbiBuZWVkZWQuDQo+ID4+Pg0KPiA+Pj4gU291bmQgZ29vZCENCj4gPj4+Pg0KPiA+Pj4+IElm IHRoZSBpZGVhIGlzIHRoZSBjb2RlIGNhbiBiZSBuZWVkZWQgaW4gdGhlIGZpZWxkIGJ5IHVzZXJz LCBjYW4NCj4gPj4+PiB5b3UgcGxlYXNlIGdpdmUgZXhhbXBsZSBvbiB0aGUgdXNlIGNhc2U/DQo+ ID4+Pg0KPiA+Pj4gRG8geW91IG1lYW4gd3JpdGUgc29tZSB0ZXN0IGNhc2VzIGluIGV4YW1wbGVz IGZvbGRlcj8NCj4gPj4+DQo+ID4+DQo+ID4+IFlvdSBtZW50aW9uZWQgZW5kIHVzZXIgbWF5IG5l ZWQgc29tZSBvZiB0aGUgcmVtb3ZlZCBmdW5jdGlvbnMsIGNhbg0KPiA+PiB5b3UgZ2l2ZSBhbiBl eGFtcGxlIGhvdyBhbiBlbmQgdXNlciBtYXkgbmVlZCB0aGVtPw0KPiA+DQo+ID4gQ3VycmVudGx5 LCB0aGVyZSBpcyBvbmx5IG9uZSBEUERLIFBNRCBkcml2ZXIgdXNpbmcgdGhlIGlmcGdhIGJhc2Ug Y29kZSwgaXQgaXMNCj4gY2FsbGVkIGlwbjNrZSwgd2hpY2ggaXMgdGFyZ2V0IGZvciBWQk5HIGFw cGxpY2F0aW9ucy4NCj4gPiBUaGUgaXBuM2tlIGlzIG5vdCB1c2luZyBhbGwgb2Ygb3VyIEFQSXMg d2hpY2ggcHJvdmlkZWQgYnkgaWZwZ2EgYmFzZQ0KPiA+IGNvZGUuIEkgYW0gYWdyZWUgcmVtb3Zl IHRoZSB1bnVzZWQgZnVuY3Rpb25zIGZpcnN0bHkuIEFuZCBJIHBsYW4gdG8gd3JpdGUgYW4NCj4g dGVzdCBhcHBsaWNhdGlvbiB0byB0ZXN0IGFsbCBvZiBBUElzICggaW5jbHVkaW5nIHRob3NlIHVu dXNlZCBmdW5jdGlvbnMgKSBhbmQgYWRkDQo+IHRob3NlIGZ1bmN0aW9ucyBiYWNrIGluIGZ1dHVy ZSwgYW5kIEkgdGhpbmsgdGhlIHRlc3QgYXBwbGljYXRpb25zIHNob3VsZCBiZSBhDQo+IGdvb2Qg ZXhhbXBsZSBmb3IgdGhlIGVuZC11c2VyIGhvdyB0byB1c2UgdGhvc2UgQVBJcy4NCj4gPg0KPiAN Cj4gSSBhbSBub3QgY2xlYXIgaG93IGEgdGVzdCBhcHBsaWNhdGlvbiBjYW4gaGVscCB0byB0ZXN0 IGRyaXZlciBiYXNlIGNvZGUNCj4gZnVuY3Rpb25zLg0KPiANCj4gRHJpdmVyIHNob3VsZCBjYWxs IHRoZW0gdG8gY29uZmlndXJlIHRoZSBIVywgaWYgdGhlcmUgaXMgbm8gRFBESyBBUEkgdG8gcmVx dWVzdA0KPiB0aGF0IGNvbmZpZ3VyYXRpb24sIG9yIGN1cnJlbnQgZGV2aWNlIGRvZXNuJ3Qgc3Vw cG9ydCBpdCwgd2hhdCBhcHBsaWNhdGlvbiBjYW4NCj4gZG8/DQoNCk15IHRob3VnaCBpcyB3cml0 ZSBhIHRlc3QgcmF3ZGV2IFBNRCBkcml2ZXIgYW5kIGNvcnJlc3BvbmRpbmcgYXBwbGljYXRpb24g d2hpY2ggYXJlIG9ubHkgZm9yIHRoZSBpZnBnYSBBUElzIHRlc3RpbmcgcHVycG9zZSwgSSBhbSBu b3Qgc3VyZSBpcyBpdCB3b3JrYWJsZT8NCg==