From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web11.11671.1655155875883737611 for ; Mon, 13 Jun 2022 14:31:16 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=edvFFDuZ; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: nathaniel.l.desimone@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1655155875; x=1686691875; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Dn7nFlMF/Cg2CElORtumPhzZNxMF34JHUSWEP9bAFaA=; b=edvFFDuZXwPI2mLN67wv5z8a2vYEW46BTaKwB086zyNCV7gy0am2Diyi I2eR34P6/cjE1ShWSdfuDd4Xk05M9Bel9RWOAhHHbOO5hd0NP0AiXPrJv NXdH1nGttN9ktidB8M/YhQBH+zApxZyhjJ62RE7m6WHkSCvIulhdmPgn6 FQ+bVK/Knpxhtyn4Q3xX1oratoRWM3aRFq++NlJXsxgwYeXc/YRiPan/5 MZEFxtWyti2JCDnJn7l1wcXhTjy+q8EGakKadCTmCVpnoZQbP2p/SdeeO itLStOiW9Gc6kIkjU8bD3GBajG7UfomFA1qlUas8r+jmf0cCgEYxAAkDv A==; X-IronPort-AV: E=McAfee;i="6400,9594,10377"; a="277194768" X-IronPort-AV: E=Sophos;i="5.91,298,1647327600"; d="scan'208";a="277194768" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jun 2022 14:31:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,298,1647327600"; d="scan'208";a="686272655" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga002.fm.intel.com with ESMTP; 13 Jun 2022 14:31:15 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 13 Jun 2022 14:31:14 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 13 Jun 2022 14:31:14 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Mon, 13 Jun 2022 14:31:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NpkDusW43u6kUElTw45QLTYhmLwIcHHg8sdQ0d05037nillyImXnvE6Hii7jrZ8s3reae2uDIScTB0yIdS+JzYAVgFiV/YAFzKpmwMTYzVwrGxd+1O+F64P6hz3yivaCMR0PL/ZSmrFQzOu+QggJgPqgXCvNByPkMnqwPj9rbuM702uQWMPEZ56IEdCh7V97dLkktyC910yBf2PQZ19cBno4EL2islakkBwNDNbHQffKpKKaMVXoDKa3rktVUQ0wGlQlVAvW04lMDUsKLygFc2RXczYPPwvY6QEOZHsNMdggiMkn0sw4YOilL9NuvRmVhWGNUNLeKWxRCCtqE99EOw== 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=Dn7nFlMF/Cg2CElORtumPhzZNxMF34JHUSWEP9bAFaA=; b=NYn5gYmwSesKiusLfmBeLMumx3KLnSSCnR4MaVZXlBtn99DMFUQ/xBUcyqmPEVahKGe0BwPQJzxUU7RDqszEifVrGeiZ9dSJUbo5OAyWAm+eNpQPX45FyFOSjmljfAVttt/GHFCG01zetUH1ZHY4xbe65N54thqJrb4CLp+XO+8GYJ0yKntf1BWREtcfyo1k6h1ZHjYam6KirKvgW/MvheFbXZuTi0xvLaQKOx2bxV0Gmz71QJQp8Ne54FUbVe9PiZ7YoGDnlwOz1TbJwW7nqtQgpQbDcU+4rZYLNH2MMO5ZVqZo+aa/nfJt8Wle9CHdGcnRpALStBQxDhoqhgOJIw== 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 Received: from MW4PR11MB5821.namprd11.prod.outlook.com (2603:10b6:303:184::5) by CY5PR11MB6283.namprd11.prod.outlook.com (2603:10b6:930:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.20; Mon, 13 Jun 2022 21:31:11 +0000 Received: from MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::99d5:18e7:7ea9:c971]) by MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::99d5:18e7:7ea9:c971%2]) with mapi id 15.20.5332.016; Mon, 13 Jun 2022 21:31:11 +0000 From: "Nate DeSimone" To: "Yao, Jiewen" , "devel@edk2.groups.io" , "michael.kubacki@outlook.com" CC: "Wang, Jian J" , "Gao, Liming" , "Kinney, Michael D" , "Oram, Isaac W" , "Chiu, Chasel" , "Cheng, Gao" , "Zhang, Di" , "Bu, Daocheng" , "Kubacki, Michael" Subject: Re: [edk2-devel] [PATCH V1 1/1] MdeModulePkg: Add Definition of EDKII_PEI_VARIABLE_PPI Thread-Topic: [edk2-devel] [PATCH V1 1/1] MdeModulePkg: Add Definition of EDKII_PEI_VARIABLE_PPI Thread-Index: AQHYfG3G6oH9WSus0UyI18wws9EkS61I3RcAgABKC0CAAD+/AIAEd5Ww Date: Mon, 13 Jun 2022 21:31:11 +0000 Message-ID: References: <20220610011705.5148-1-nathaniel.l.desimone@intel.com> <20220610011705.5148-2-nathaniel.l.desimone@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 07ba5fcb-9935-4fa8-9157-08da4d840963 x-ms-traffictypediagnostic: CY5PR11MB6283:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XWHJly2rNKXJYJNZN8uDs4zCWBSq7+616hICjObOQxuaU71d3XiFnzC1iACPxy08T4n7h1++UjGV9aUg14W0b6FxKkZcB/FPwww3TsO5BYxbZtqYJTXyBnLBjLYXaYK/bYlCk6LhKi+PAVusRnkJlXejCCQ2ILvQm+zPUXbKsJWeWoD6A8P50YJOE7Id43AOYvRYewVhxnx1lkrKkcD/K4yw5cgQx3iPL+A3Z9WBAcz0q8ptfFRy6s9No4x86HPCTUh1un5XLKmCPPUVjETAO+TuGrZzoaAmbahlYQw37fWjAJnVR+TCYQMxDXxG+SyaRyEJBYCMgHBbhrIEa4MOh/GbJpVmgfJhJelLsBlo4xSOvucbhT2YkyZbFbqsZjAeLQo2D8Ru4pvFmJWnnqDKGAmBHApHyp8xnoP/hDKN5hwza5Ppf1Wi4llHjMU8kKaH9HDu5MjN+d1Oq8VVt3wcJjQ/J7x9nZpgt3EBFyPUyLddSPBSKmSzSwAJUHX49tUghZjookXsX+Ojk5wNbpyICNwNHmBh7te7m8MYzOz3+GkOjbHMpxnO7BX7FRx4mZxr8haAvIo+X6S6GEEwe5HNgrfnPLWSm5yba9chDpD/O5GnNOVvrpacGSatKjWLFR+8m1Qq3YyiJYzqFWdT4rYWvH+b4pKHdLA5TU6Mpcz26A9BC7cB4/5XBlSFJVTJ+S8N5LOhxDUsgF9jmlxZhrnDhKOyYkDIyKQ4X8UEHT3PBOBpN0UBL23IboDy4ZMQgwq/H2aD9QoDt6DJQHEsVxrSGfQf9BG1sbhwBYG+qhu+Q2PfMLyWjG3LBOymhjFV1Fy4ITg2VPnWLh3ywGWIsCwmqg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5821.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(966005)(45080400002)(38100700002)(71200400001)(8936002)(26005)(30864003)(5660300002)(9686003)(86362001)(52536014)(316002)(33656002)(19627235002)(6506007)(66556008)(55016003)(8676002)(508600001)(4326008)(82960400001)(122000001)(186003)(76116006)(7696005)(2906002)(53546011)(38070700005)(83380400001)(54906003)(110136005)(66446008)(66476007)(64756008)(66946007)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UmplSjk1U3dnOTc0cGhsdnNXUW94TUt6SjJMR2JBTVdWYW53OStlUDVnSjBS?= =?utf-8?B?V1dSL2kvdzROUWRUOThlL0x2RnpVTG8xdkhpWEFaZ2tFRVp0UWtSaUpVb3B4?= =?utf-8?B?aXp4Rk9raEFZalBLaEhEZ2d3dW9TTWhGRklOSHM0VnF3UEJ1bnp3a3ArM2hw?= =?utf-8?B?bGMya011QTV4TWlhMGVCS3pyaWRtSkNneUJ1TjRhRTNyaGxHZHhWaGd1VXdO?= =?utf-8?B?RXVUUUZRRjhNQjEvMldoZjZnbmd0WjNScTRKaERzYjUwWWI2eFVMQ3ZGMlZ1?= =?utf-8?B?K3I3N0J1ZVRRVFZTM2E1WkEydkk4MDZYUmFsTW40QVNGREoxUys0OTNTMlhI?= =?utf-8?B?UFZTU3FtQmJXTU9Xd3N1a2NOdlFrQ21hT1RuemJwQTdzNUl1RjUrQlVYRjk3?= =?utf-8?B?YlJaUGx3dlhlbFFRNnQxSUliZitLRmxFcmptbVd3c1JFbVcvb3o5UDVOWTY2?= =?utf-8?B?c1g0b3lhMGpIOG1jZlVSd3V0ZlIyOFVMWE9wMmRDMytpdC82MXhuY215aFA2?= =?utf-8?B?Vldxb2FjVkFIR0d5TGtlRjN2eDdWbDZpeDVubkVxQTNsYnpadlFsZ3dDNDlX?= =?utf-8?B?WHNIdGNrT3I2QURURUt1clZuUVZqWnBrVnZmNC9HcURoZlI0SGpwNWtjREEz?= =?utf-8?B?UW5vc0pRNUx5M20zYVhwNjBuZWFncmprQlFzYmpYZ1NxMTZybmJTUXhndnZ1?= =?utf-8?B?ak96OEE2WXlGam5JSGIvS25sL0dpMG4zUm5WQlFPSWtGMnl0YjZlL2crdXpE?= =?utf-8?B?eTUvaFFoZkNEYlgwMlJyRUI1Y25idFJmdDVqbXpZamN0dmN4MHZqcHROenNh?= =?utf-8?B?NWlEOGQzaWU0NWszQS85VExVdjJyYjRSeFZVYnJGaTlzbnFEK1VJT0xLYU5u?= =?utf-8?B?RDRjNG5BWGdMS1d5aExVVDB0WHBaMG9zU0lUZGY1YXhqZWIzcnpzM2huSE5X?= =?utf-8?B?SW9OTHBXSDcvQjB0NFUwNEZZWXBqNGxlYllUdW1aRmM0NVU0b0JVdklJWDZG?= =?utf-8?B?Z042dUNlYXVqUjZjRzFMenR2cUZVNXVWOVlYaEk2eDhXeW0xRjkyY1BCRjFa?= =?utf-8?B?blNoZ3lPVXM5THZpYnFReUZCZTIwamQ4dGorSmlpRVIvaFZJblRtWU42U1ZU?= =?utf-8?B?clhXNjE4alo1NUFKanQxajAvQS96TnRHb3RqR1Q1UFFTd0dQMnpyTGUrNFdU?= =?utf-8?B?UTlmWStHYmdXZFpVYS95aDdHZlJySktnck42bnRHSitmRGZIcjVxaHpacER3?= =?utf-8?B?bmRDbXAvWGZxWFpOUkJ5QU5sOU5JTS94R25EY25EUHVrRVZZTEJSWTFyU1RK?= =?utf-8?B?Nk44Y2p1aEFaRG5ScURrNk5VQUx1RGVlNUU5ZHdYa25DZXJUYkcyMVNSWDRh?= =?utf-8?B?T0h5QmhNZ3JVZUhTLzkwUDhmNW9OckZqRXNROU5DVHRqbkdYOU9aenFadXJm?= =?utf-8?B?Z212TWJjM1BqLy96SWtYZlRBNUNEc0poYW5DdWQ4Ym1oemIyZlZnSmplMVBv?= =?utf-8?B?THFiRFUzUW5GOUJPOW1FbWFBdjh0L0c2UjVEUWYvdmFKVkxBTDVKK1hpN3hN?= =?utf-8?B?U0V6bmh4RVBNcnVWWFJIcndMNlZTZUlKRnI1aFc4UVpMbnpyb0Q0Q3VqdnhO?= =?utf-8?B?VEsxaURvZE5wNjhLWVdsaUkwSUU1NGo1a3poa2VTNHd3ZDM4anM0MksvZGpB?= =?utf-8?B?dU9JOE1MMTJrMFp2eXBjazBGVm1wak8yVllraVhqL0hucU9WNklHTTMxa3No?= =?utf-8?B?dVo2b0QyeVFhbXM4aENCNmNZR0NNWW5kSkpkemFnZXpVZ29aL2FSVDlTTXc5?= =?utf-8?B?LzZtdFF6QWQzWEE2NWl5ZGFjSEc2cloxcWxOUzIxQTU5NWlnc3dqdWQwbUds?= =?utf-8?B?OTZLdE5jSjV1MFd1NUI4Z0NmbmNpcm00cXBHbmM1RzdHZ2N5MGJOMStpRnlq?= =?utf-8?B?bnBicm5iSll5S1FkQ09xa0NVSmNlK2QzTnBXaE5DcTc1bGZ0N3dnOVNDS09N?= =?utf-8?B?MzVWdE1vRUptbU1hWU9JbjVaRndJZy8yUlIxM2Rmb1dKR2NLNXVsa0NZcjZC?= =?utf-8?B?SzhJcndTWmpkckx3RENwZS8zWWdqOHZwaE1VRWRBTkFYZzUzeG1qZE5YMUh4?= =?utf-8?B?amdPb2FHU0tzN3dXSExXdjJxRWtqUkJVNlBIQ1pZWkMvVmhGYjJQWDQrZFJK?= =?utf-8?B?L2ZBZEtGQ0xwVTVHQTNHZm9tK1pvNnlYRkNGakpnUzJ4MEZoT09sK0Rudmh5?= =?utf-8?B?cjFOYlhLNmFSVm1JcHJrVWlxWGoxS3pFVkxDbmI4bHpJbFB0dndiSjl2QkxR?= =?utf-8?B?TG1JeG40K3FWZ1hFQUxPNGNodUF0bE9PaVBpaU01TExaU3lVekNNRWpqUXQy?= =?utf-8?Q?ks+GkSoE3DHYGwc0=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5821.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07ba5fcb-9935-4fa8-9157-08da4d840963 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jun 2022 21:31:11.4733 (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: IOx9f4qQ7t17ZvCMdMTNNANn+sU5BnJSD+wG1PrGY6Q6zITsGTS8XK+Ek0GO76J5A+s58ey6Oorl78IAXL3DZij7HvPAYigefklA0WupdQ0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6283 Return-Path: nathaniel.l.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgSmlld2VuLA0KDQpJIGFtIGZpbmUgd2l0aCBkZWZlcnJpbmcgdGhlIHN1Ym1pc3Npb24gb2Yg dGhpcyB0byBlZGsyIHVudGlsIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyByZWFkeSBmb3IgcmV2aWV3 LiBJIGp1c3Qgd2FudGVkIHRvIGdldCBmZWVkYmFjayBvbiB0aGUgQVBJIHNvIHRoYXQgb25jZSB0 aGUgaW1wbGVtZW50YXRpb24gcGF0Y2ggc2VyaWVzIGFycml2ZXMgd2Ugd2lsbCBhdCBsZWFzdCB0 aGF0IHRoYXQgcGllY2Ugb2YgdGhlIHJldmlldyBkb25lLiBJIHdvdWxkIHNheSB0aGlzIHRocmVh ZCBhY2hpZXZlZCB0aGF0IGdvYWwuIFRoYW5rIHlvdSBmb3IgdGhlIHBvaW50ZXIgdG8gdGhlIHBy b3RlY3RlZCB2YXJpYWJsZSBjb2RlLCB3ZSB3aWxsIHJldmlldyBpdCBhbmQgbWFrZSBzdXJlIHRo YXQgbm8gaXNzdWVzIHdvdWxkIGFyaXNlIGZyb20gdGhlIHByZS1tZW1vcnkgUEVJIGltcGxlbWVu dGF0aW9uLg0KDQpUaGFua3MsDQpOYXRlDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpG cm9tOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+IA0KU2VudDogRnJpZGF5LCBK dW5lIDEwLCAyMDIyIDY6MDkgUE0NClRvOiBEZXNpbW9uZSwgTmF0aGFuaWVsIEwgPG5hdGhhbmll bC5sLmRlc2ltb25lQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBtaWNoYWVsLmt1 YmFja2lAb3V0bG9vay5jb20NCkNjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNv bT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBPcmFtLCBJc2FhYyBXIDxpc2FhYy53 Lm9yYW1AaW50ZWwuY29tPjsgQ2hpdSwgQ2hhc2VsIDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+OyBD aGVuZywgR2FvIDxnYW8uY2hlbmdAaW50ZWwuY29tPjsgWmhhbmcsIERpIDxkaS56aGFuZ0BpbnRl bC5jb20+OyBCdSwgRGFvY2hlbmcgPGRhb2NoZW5nLmJ1QGludGVsLmNvbT47IEt1YmFja2ksIE1p Y2hhZWwgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KU3ViamVjdDogUkU6IFtlZGsy LWRldmVsXSBbUEFUQ0ggVjEgMS8xXSBNZGVNb2R1bGVQa2c6IEFkZCBEZWZpbml0aW9uIG9mIEVE S0lJX1BFSV9WQVJJQUJMRV9QUEkNCg0KVGhhbmtzIGZvciB0aGUgcmVzcG9uc2UuDQoNCjEpIFdo eSB3ZSBuZWVkICJlbmFibGUgVUVGSSB2YXJpYWJsZSB3cml0ZSBiZWZvcmUgcGVybWFuZW50IG1l bW9yeSBpcyBhdmFpbGFibGUiPw0KDQoyKSBJZiB0aGUgaW1wbGVtZW50YXRpb24gaXMgbm90IHJl YWR5LCBJIGRvIGhhdmUgY29uY2VybiB0byBhZGQgaXQgc28gZWFybHkgaW4gRURLSUkuDQpJZiBJ IGRvbuKAmXQgaGF2ZSBhIGJpZyBwaWN0dXJlLCBJIGFtIG5vdCBzdXJlIGhvdyB0byByZXZpZXcg dGhlIGNvbXBsZXRlbmVzcy4NCg0KQ2FuIHdlIHB1dCBpdCB0byBFREtJSS1zdGFnaW5nIChodHRw czovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItc3RhZ2luZykgZm9yIGEgbW9tZW50Pw0KSSBk b27igJl0IHNlZSB0aGUgbmVlZCB0byBhZGQgdGhlIGludGVyZmFjZSBub3cgZm9yIHdvcmstaW4t cHJvZ3Jlc3MgZmVhdHVyZSwgc2luY2UgdGhlcmUgaXMgbm8gY29uc3VtZXIgYW5kIG5vIHByb2R1 Y2VyLg0KDQpBbm90aGVyIHJlYXNvbiBpcyB0aGF0IEkgaGFwcGVuIHRvIGtub3cgb3RoZXIgZmVh dHVyZSAoaW4gRURLSUkgc3RhZ2UpIGlzIGltcGFjdGluZyB2YXJpYWJsZSBkcml2ZXIuDQpodHRw czovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItc3RhZ2luZy90cmVlL1Byb3RlY3RlZFZhcmlh YmxlL2xpYnMNCg0KUGxlYXNlIGRvIGNvbnNpZGVyIHRoYXQgYXMgd2VsbCAtIGhvdyB0byB3cml0 ZSBhIHByb3RlY3RlZCB2YXJpYWJsZSBpbiBQRUkgcGhhc2UuDQoNClRoYW5rIHlvdQ0KWWFvIEpp ZXdlbg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IERlc2ltb25lLCBO YXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KPiBTZW50OiBTYXR1 cmRheSwgSnVuZSAxMSwgMjAyMiA1OjQ5IEFNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlh b0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgDQo+IG1pY2hhZWwua3ViYWNraUBv dXRsb29rLmNvbQ0KPiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBH YW8sIExpbWluZyANCj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEtpbm5leSwgTWljaGFl bCBEIA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBPcmFtLCBJc2FhYyBXIDxpc2Fh Yy53Lm9yYW1AaW50ZWwuY29tPjsgDQo+IENoaXUsIENoYXNlbCA8Y2hhc2VsLmNoaXVAaW50ZWwu Y29tPjsgQ2hlbmcsIEdhbyANCj4gPGdhby5jaGVuZ0BpbnRlbC5jb20+OyBaaGFuZywgRGkgPGRp LnpoYW5nQGludGVsLmNvbT47IEJ1LCBEYW9jaGVuZyANCj4gPGRhb2NoZW5nLmJ1QGludGVsLmNv bT47IEt1YmFja2ksIE1pY2hhZWwgDQo+IDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0LmNvbT4N Cj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjEgMS8xXSBNZGVNb2R1bGVQa2c6 IEFkZCBEZWZpbml0aW9uIA0KPiBvZiBFREtJSV9QRUlfVkFSSUFCTEVfUFBJDQo+IA0KPiBIaSBK aWV3ZW4sDQo+IA0KPiBUaGFua3MgZm9yIHRoZSBmZWVkYmFjaywgcGVyIHlvdXIgcXVlc3Rpb25z Og0KPiANCj4gMS4gVGhlIHByaW1hcnkgdXNlIGNhc2UgZm9yIHRoaXMgaXMgdG8gZW5hYmxlIFVF RkkgdmFyaWFibGUgd3JpdGVzIA0KPiBiZWZvcmUgcGVybWFuZW50IG1lbW9yeSBpcyBhdmFpbGFi bGUuDQo+IDIuIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhIHdvcmsgaW4gcHJvZ3Jlc3MuIFdlIHdp bGwgcHJvdmlkZSBpdCANCj4gc2hvcnRseS4gQXMgdGhpcyB3aWxsIGJlIGEgcmF0aGVyIGxhcmdl IHBhdGNoIHNldCwgSSB3b3VsZCBsaWtlIHRvIGdldCANCj4gdGhpcyBwaWVjZSBpbiBwbGFjZSBi ZWZvcmVoYW5kIHNvIHRoYXQgdGhlIHJldmlld2VycyBjYW4gZm9jdXMgb24gdGhlIA0KPiBpbXBs ZW1lbnRhdGlvbiBzZXBhcmF0ZSBmcm9tIHRoZSBBUEkgZGVmaW5pdGlvbi4NCj4gMy4gTm8gaW1w YWN0IHRvIHNlY3VyZSBib290LiBXZSBhcmUgbm90IGdvaW5nIHRvIHN1cHBvcnQgd3JpdGluZyB0 byANCj4gYXV0aGVudGljYXRlZCB2YXJpYWJsZXMgaW4gUEVJLiBBcyBtZW50aW9uZWQgaW4gdGhl IGNvbW1lbnRzLCBpZiBhIA0KPiBQRUlNIHdpc2hlcyB0byB1cGRhdGUgYW55IG9mIHRoZSBhdXRo ZW50aWNhdGVkIHZhcmlhYmxlcyBpdCBtdXN0IHVzZSANCj4gdGhlIGV4aXN0aW5nIEhPQiBtZWNo YW5pc20gdG8gaGF2ZSBhIGxhdGVyIERYRSBwaGFzZSBwZXJmb3JtIHRoZSB1cGRhdGUuDQo+IDQu IFdpdGggcmVnYXJkIHRvIGF0b21pY2l0eSwgd2UgaGF2ZSBhIGNvbXBsZXRlIGltcGxlbWVudGF0 aW9uIG9mIHRoZSANCj4gZmF1bHQgdG9sZXJhbnQgd3JpdGUgc2VydmljZXMgb3BlcmF0aW9uYWwg aW4gUHJlLU1lbW9yeSBQRUkuDQo+IDUuIEdvb2QgcG9pbnQgb24gdGhlIFMzIHJlc3VtZSwgd2Ug d2lsbCBuZWVkIHRvIGFkZCBhbiBTTUkgdG8gaGF2ZSB0aGUgDQo+IHZhcmlhYmxlIHNlcnZpY2Vz IHJlLWluaXRpYWxpemUgdGhlIG1OdlZhcmlhYmxlQ2FjaGUuDQo+IA0KPiBIb3BlIHRoYXQgaGVs cHMsDQo+IE5hdGUNCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlh bywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBKdW5lIDEw LCAyMDIyIDk6NTYgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBtaWNoYWVsLmt1YmFj a2lAb3V0bG9vay5jb207IERlc2ltb25lLCANCj4gTmF0aGFuaWVsIEwgPG5hdGhhbmllbC5sLmRl c2ltb25lQGludGVsLmNvbT4NCj4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwu Y29tPjsgR2FvLCBMaW1pbmcgDQo+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBLaW5uZXks IE1pY2hhZWwgRCANCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgT3JhbSwgSXNhYWMg VyA8aXNhYWMudy5vcmFtQGludGVsLmNvbT47IA0KPiBDaGl1LCBDaGFzZWwgPGNoYXNlbC5jaGl1 QGludGVsLmNvbT47IENoZW5nLCBHYW8gDQo+IDxnYW8uY2hlbmdAaW50ZWwuY29tPjsgWmhhbmcs IERpIDxkaS56aGFuZ0BpbnRlbC5jb20+OyBCdSwgRGFvY2hlbmcgDQo+IDxkYW9jaGVuZy5idUBp bnRlbC5jb20+OyBLdWJhY2tpLCBNaWNoYWVsIA0KPiA8bWljaGFlbC5rdWJhY2tpQG1pY3Jvc29m dC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIFYxIDEvMV0gTWRlTW9k dWxlUGtnOiBBZGQgRGVmaW5pdGlvbiANCj4gb2YgRURLSUlfUEVJX1ZBUklBQkxFX1BQSQ0KPiAN Cj4gSGkNCj4gDQo+IEkgYW0gY3VyaW91cyB3aHkgd2UgbmVlZCB0aGlzIGludGVyZmFjZS4gV2h5 IHdlIG5lZWQgd3JpdGUgdmFyaWFibGUgDQo+IGNhcGFiaWxpdHkgaW4gUEVJIHBoYXNlPw0KPiAN Cj4gV2hlcmUgaXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXM/IEkgcHJlZmVyIHRvIHNlZSBh biBpbXBsZW1lbnRhdGlvbiANCj4gc3VibWl0dGVkIHRvZ2V0aGVyIHdpdGggaGVhZGVyIGZpbGUu DQo+IEZvciBleGFtcGxlLCB3aGF0IGlzIHRoZSBpbXBhY3QgdG8gc2VjdXJlIGJvb3QgcmVsYXRl ZCBmZWF0dXJlLCBob3cgdG8gDQo+IHdyaXRlIGF1dGggdmFyaWFibGUgaW4gUEVJLCBob3cgUEVJ IHdyaXRlIHZhcmlhYmxlIGNvd29yayB3aXRoIFNNTSANCj4gdmVyc2lvbiBpbiBTMyByZXN1bWUg cGhhc2UsIGhvdyB0byBzdXBwb3J0IHZhcmlhYmxlIGF0b21pY2l0eSwgZXRjLg0KPiANCj4gVGhh bmsgeW91DQo+IFlhbyBKaWV3ZW4NCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlv PiBPbiBCZWhhbGYgT2YgDQo+ID4gTWljaGFlbCBLdWJhY2tpDQo+ID4gU2VudDogRnJpZGF5LCBK dW5lIDEwLCAyMDIyIDEwOjAwIEFNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBEZXNp bW9uZSwgTmF0aGFuaWVsIEwgDQo+ID4gPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT4N Cj4gPiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBHYW8sIExpbWlu ZyANCj4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgS2lubmV5LCBNaWNoYWVsIEQgDQo+ ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgT3JhbSwgSXNhYWMgVyANCj4gPiA8aXNh YWMudy5vcmFtQGludGVsLmNvbT47IENoaXUsIENoYXNlbCA8Y2hhc2VsLmNoaXVAaW50ZWwuY29t PjsgDQo+ID4gQ2hlbmcsIEdhbyA8Z2FvLmNoZW5nQGludGVsLmNvbT47IFpoYW5nLCBEaSA8ZGku emhhbmdAaW50ZWwuY29tPjsgDQo+ID4gQnUsIERhb2NoZW5nIDxkYW9jaGVuZy5idUBpbnRlbC5j b20+OyBLdWJhY2tpLCBNaWNoYWVsIA0KPiA+IDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0LmNv bT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBWMSAxLzFdIE1kZU1vZHVs ZVBrZzogQWRkIA0KPiA+IERlZmluaXRpb24gb2YgRURLSUlfUEVJX1ZBUklBQkxFX1BQSQ0KPiA+ DQo+ID4gSXMgdGhpcyBjaGFuZ2UganVzdCBhZGRpbmcgdGhlIGludGVyZmFjZSB0byBUaWFub2Nv cmUgb3IgaXMgdGhlcmUgDQo+ID4gYWRkaXRpb25hbCBpbXBsZW1lbnRhdGlvbiBwbGFubmVkIGFz IHdlbGw/DQo+ID4NCj4gPiAtLS0NCj4gPg0KPiA+IEkgdGhvdWdodCB3ZSB3ZXJlIGZvbGxvd2lu ZyB0aGlzIGNvbnZlbnRpb24gbm93Og0KPiA+DQo+ID4gIiNpZm5kZWYgX19QRUlfVkFSSUFCTEVf UFBJX0hfIiAtPiAiI2lmbmRlZiBQRUlfVkFSSUFCTEVfUFBJX0hfIg0KPiA+DQo+ID4gU29tZSBv dGhlciBjb21tZW50cyBhcmUgaW5saW5lLg0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPiBNaWNoYWVs DQo+ID4NCj4gPiBPbiA2LzkvMjAyMiA5OjE3IFBNLCBOYXRlIERlU2ltb25lIHdyb3RlOg0KPiA+ ID4gQWRkcyBkZWZpbml0aW9uIG9mIEVES0lJX1BFSV9WQVJJQUJMRV9QUEksIGEgcHJlLWN1cnNv ciB0byANCj4gPiA+IGVuYWJsaW5nIHZhcmlhYmxlIHdyaXRlcyBpbiB0aGUgUEVJIGVudmlyb25t ZW50Lg0KPiA+ID4NCj4gPiA+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29t Pg0KPiA+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiA+ IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ IENjOiBJc2FhYyBPcmFtIDxpc2FhYy53Lm9yYW1AaW50ZWwuY29tPg0KPiA+ID4gQ2M6IENoYXNl bCBDaGl1IDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+DQo+ID4gPiBDYzogR2FvIENoZW5nIDxnYW8u Y2hlbmdAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IERpIFpoYW5nIDxkaS56aGFuZ0BpbnRlbC5jb20+ DQo+ID4gPiBDYzogRGFvY2hlbmcgQnUgPGRhb2NoZW5nLmJ1QGludGVsLmNvbT4NCj4gPiA+IENj OiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiA+ID4g U2lnbmVkLW9mZi1ieTogTmF0ZSBEZVNpbW9uZSA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwu Y29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgIE1kZU1vZHVsZVBrZy9JbmNsdWRlL1BwaS9WYXJpYWJs ZS5oIHwgMTg5DQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gICBNZGVN b2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYyAgICAgICB8ICAgMyArDQo+ID4gPiAgIDIgZmlsZXMg Y2hhbmdlZCwgMTkyIGluc2VydGlvbnMoKykNCj4gPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1k ZU1vZHVsZVBrZy9JbmNsdWRlL1BwaS9WYXJpYWJsZS5oDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdp dCBhL01kZU1vZHVsZVBrZy9JbmNsdWRlL1BwaS9WYXJpYWJsZS5oDQo+ID4gYi9NZGVNb2R1bGVQ a2cvSW5jbHVkZS9QcGkvVmFyaWFibGUuaA0KPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g PiA+IGluZGV4IDAwMDAwMDAwMDAuLjk3ZGM3Y2VlZmENCj4gPiA+IC0tLSAvZGV2L251bGwNCj4g PiA+ICsrKyBiL01kZU1vZHVsZVBrZy9JbmNsdWRlL1BwaS9WYXJpYWJsZS5oDQo+ID4gPiBAQCAt MCwwICsxLDE4OSBAQA0KPiA+ID4gKy8qKiBAZmlsZQ0KPiA+ID4gKyAgRURLSUkgUEVJIFZhcmlh YmxlIFByb3RvY29sIHByb3ZpZGVzIGFuIGltcGxlbWVudGF0aW9uIG9mIA0KPiA+ID4gK3Zhcmlh Ymxlcw0KPiA+DQo+ID4gW01LXSBXYXMgIkVES0lJIFBFSSBWYXJpYWJsZSBQUEkiIGludGVuZGVk Pw0KPiA+DQo+ID4gPiArICBpbnRlbmRlZCBmb3IgdXNlIGFzIGEgbWVhbnMgdG8gc3RvcmUgZGF0 YSBpbiB0aGUgUEVJIGVudmlyb25tZW50Lg0KPiA+ID4gKw0KPiA+ID4gKyAgQ29weXJpZ2h0IChj KSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4g PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4g Kw0KPiA+ID4gKyoqLw0KPiA+ID4gKw0KPiA+ID4gKyNpZm5kZWYgX19QRUlfVkFSSUFCTEVfUFBJ X0hfDQo+ID4gPiArI2RlZmluZSBfX1BFSV9WQVJJQUJMRV9QUElfSF8NCj4gPiA+ICsNCj4gPiA+ ICsjZGVmaW5lIEVES0lJX1BFSV9WQVJJQUJMRV9QUElfR1VJRCBcDQo+ID4gPiArICB7IFwNCj4g PiA+ICsgICAgMHhlN2IyY2QwNCwgMHg0YjE0LCAweDQ0YzIsIHsgMHhiNywgMHg0OCwgMHhjZSwg MHhhZiwgMHgyYiwgDQo+ID4gPiArMHg2NiwgMHg0YSwNCj4gPiAweGIwIH0gXA0KPiA+ID4gKyAg fQ0KPiA+ID4gKw0KPiA+ID4gK3R5cGVkZWYgc3RydWN0IF9FREtJSV9QRUlfVkFSSUFCTEVfUFBJ IEVES0lJX1BFSV9WQVJJQUJMRV9QUEk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBU aGlzIHNlcnZpY2UgcmV0cmlldmVzIGEgdmFyaWFibGUncyB2YWx1ZSB1c2luZyBpdHMgbmFtZSBh bmQgR1VJRC4NCj4gPiA+ICsNCj4gPiA+ICsgIFJlYWQgdGhlIHNwZWNpZmllZCB2YXJpYWJsZSBm cm9tIHRoZSBVRUZJIHZhcmlhYmxlIHN0b3JlLiBJZiANCj4gPiA+ICsgdGhlIERhdGEgIGJ1ZmZl ciBpcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgY29udGVudHMgb2YgdGhlIA0KPiA+ID4gKyB2YXJp YWJsZSwgdGhlIGVycm9yIEVGSV9CVUZGRVJfVE9PX1NNQUxMIGlzIHJldHVybmVkIGFuZCANCj4g PiA+ICsgRGF0YVNpemUgaXMgc2V0IHRvIHRoZSAgcmVxdWlyZWQgYnVmZmVyIHNpemUgdG8gb2J0 YWluIHRoZSBkYXRhLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtW2luXSAgICAgICAgVGhpcyAg ICAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoaXMgaW5zdGFuY2Ugb2YgdGhlDQo+ID4gRURLSUlf UEVJX1ZBUklBQkxFX1BQSS4NCj4gPiA+ICsgIEBwYXJhbVtpbl0gICAgICAgIFZhcmlhYmxlTmFt ZSAgICAgIEEgcG9pbnRlciB0byBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcgdGhhdA0KPiA+IGlz IHRoZSB2YXJpYWJsZSdzIG5hbWUuDQo+ID4gPiArICBAcGFyYW1baW5dICAgICAgICBWYXJpYWJs ZUd1aWQgICAgICBBIHBvaW50ZXIgdG8gYW4gRUZJX0dVSUQgdGhhdCBpcyB0aGUNCj4gPiB2YXJp YWJsZSdzIEdVSUQuIFRoZSBjb21iaW5hdGlvbiBvZg0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVHdWlkIGFuZCBWYXJpYWJsZU5hbWUgbXVzdCBi ZSB1bmlxdWUuDQo+ID4gPiArICBAcGFyYW1bb3V0XSAgICAgICBBdHRyaWJ1dGVzICAgICAgICBJ ZiBub24tTlVMTCwgb24gcmV0dXJuLCBwb2ludHMgdG8gdGhlDQo+ID4gdmFyaWFibGUncyBhdHRy aWJ1dGVzLg0KPiA+ID4gKyAgQHBhcmFtW2luLCBvdXRdICAgRGF0YVNpemUgICAgICAgICAgT24g ZW50cnksIHBvaW50cyB0byB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUNCj4gPiBEYXRhIGJ1ZmZl ci4NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uIHJldHVy biwgcG9pbnRzIHRvIHRoZSANCj4gPiA+ICsgc2l6ZSBvZiB0aGUgZGF0YSByZXR1cm5lZCBpbg0K PiBEYXRhLg0KPiA+ID4gKyAgQHBhcmFtW291dF0gICAgICAgRGF0YSAgICAgICAgICAgICAgUG9p bnRzIHRvIHRoZSBidWZmZXIgd2hpY2ggd2lsbCBob2xkIHRoZQ0KPiA+IHJldHVybmVkIHZhcmlh YmxlIHZhbHVlLg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TWF5IGJlIE5VTEwgd2l0aCBhIHplcm8gDQo+ID4gPiArIERhdGFTaXplIGluIG9yZGVyIHRvIGRl dGVybWluZQ0KPiA+IHRoZSBzaXplIG9mIHRoZQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnVmZmVyIG5lZWRlZC4NCj4gPiA+ICsNCj4gPiA+ICsgIEByZXR2 YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgICAgIFRoZSB2YXJpYWJsZSB3YXMgcmVhZCBzdWNj ZXNzZnVsbHkuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICAgICAgICBU aGUgdmFyaWFibGUgd2FzIG5vdCBmb3VuZC4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX0JVRkZFUl9U T09fU01BTEwgICAgICAgIFRoZSBEYXRhU2l6ZSBpcyB0b28gc21hbGwgZm9yIHRoZQ0KPiA+IHJl c3VsdGluZyBkYXRhLg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRGF0YVNpemUgaXMgdXBkYXRlZCB3aXRoIHRoZSBzaXplIHJlcXVpcmVkIGZvcg0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNwZWNpZmllZCB2YXJp YWJsZS4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgICAgIFZhcmlh YmxlTmFtZSwgVmFyaWFibGVHdWlkLA0KPiA+IERhdGFTaXplIG9yIERhdGEgaXMgTlVMTC4NCj4g PiA+ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgICAgICAgIFRoZSB2YXJpYWJsZSBj b3VsZCBub3QgYmUgcmV0cmlldmVkDQo+ID4gYmVjYXVzZSBvZiBhIGRldmljZSBlcnJvci4NCj4g PiA+ICsNCj4gPiA+ICsqKi8NCj4gPiA+ICt0eXBlZGVmDQo+ID4gPiArRUZJX1NUQVRVUw0KPiA+ ID4gKyhFRklBUEkgKkVES0lJX1BFSV9HRVRfVkFSSUFCTEUpKA0KPiA+ID4gKyAgSU4gQ09OU1Qg IEVES0lJX1BFSV9WQVJJQUJMRV9QUEkgICAgKlRoaXMsDQo+ID4gPiArICBJTiBDT05TVCAgQ0hB UjE2ICAgICAgICAgICAgICAgICAgICAqVmFyaWFibGVOYW1lLA0KPiA+ID4gKyAgSU4gQ09OU1Qg IEVGSV9HVUlEICAgICAgICAgICAgICAgICAgKlZhcmlhYmxlR3VpZCwNCj4gPiA+ICsgIE9VVCAg ICAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICpBdHRyaWJ1dGVzLA0KPiA+DQo+ID4gW01L XSBCYXNlZCBvbiB0aGUgZGVzY3JpcHRpb24sIEF0dHJpYnV0ZXMgc2hvdWxkIGJlIG1hcmtlZCAi T1BUSU9OQUwiLg0KPiA+DQo+ID4gPiArICBJTiBPVVQgICAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAqRGF0YVNpemUsDQo+ID4gPiArICBPVVQgICAgICAgVk9JRCAgICAgICAgICAgICAgICAg ICAgICAqRGF0YSBPUFRJT05BTA0KPiA+ID4gKyAgKTsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4g PiA+ICsgIFJldHVybiB0aGUgbmV4dCB2YXJpYWJsZSBuYW1lIGFuZCBHVUlELg0KPiA+ID4gKw0K PiA+ID4gKyAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gcmV0cmll dmUgdGhlIA0KPiA+ID4gKyBWYXJpYWJsZU5hbWUgIGFuZCBWYXJpYWJsZUd1aWQgb2YgYWxsIHZh cmlhYmxlcyBjdXJyZW50bHkgDQo+ID4gPiArIGF2YWlsYWJsZSBpbiB0aGUNCj4gc3lzdGVtLg0K PiA+ID4gKyAgT24gZWFjaCBjYWxsLCB0aGUgcHJldmlvdXMgcmVzdWx0cyBhcmUgcGFzc2VkIGlu dG8gdGhlIA0KPiA+ID4gKyBpbnRlcmZhY2UsIGFuZCwgb24gcmV0dXJuLCB0aGUgaW50ZXJmYWNl IHJldHVybnMgdGhlIGRhdGEgZm9yIA0KPiA+ID4gKyB0aGUgbmV4dCBpbnRlcmZhY2UuIFdoZW4g dGhlIGVudGlyZSB2YXJpYWJsZSBsaXN0IGhhcyBiZWVuIA0KPiA+ID4gKyByZXR1cm5lZCwgRUZJ X05PVF9GT1VORCBpcyByZXR1cm5lZC4NCj4gPiA+ICsNCj4gPg0KPiA+IFtNS10gSSBrbm93IG90 aGVyIGRlc2NyaXB0aW9ucyBkb24ndCB1c3VhbGx5IGhhdmUgaXQgYnV0IGl0IHdvdWxkIGJlIA0K PiA+IG5pY2UgdG8gZGVzY3JpYmUgdGhlIGluaXRpYWwgY2FsbGluZyB2YWx1ZXMgZXhwZWN0ZWQu DQo+ID4NCj4gPiA+ICsgIEBwYXJhbVtpbl0gICAgICAgIFRoaXMgICAgICAgICAgICAgIEEgcG9p bnRlciB0byB0aGlzIGluc3RhbmNlIG9mIHRoZQ0KPiA+IEVES0lJX1BFSV9WQVJJQUJMRV9QUEku DQo+ID4gPiArICBAcGFyYW1baW4sIG91dF0gICBWYXJpYWJsZU5hbWVTaXplICBPbiBlbnRyeSwg cG9pbnRzIHRvIHRoZSBzaXplIG9mIHRoZQ0KPiA+IGJ1ZmZlciBwb2ludGVkIHRvIGJ5IFZhcmlh YmxlTmFtZS4NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9u IHJldHVybiwgdGhlIHNpemUgb2YgdGhlIHZhcmlhYmxlIG5hbWUgYnVmZmVyLg0KPiA+ID4gKyAg QHBhcmFtW2luLCBvdXRdICAgVmFyaWFibGVOYW1lICAgICAgT24gZW50cnksIGEgcG9pbnRlciB0 byBhIG51bGwtDQo+IHRlcm1pbmF0ZWQNCj4gPiBzdHJpbmcgdGhhdCBpcyB0aGUgdmFyaWFibGUn cyBuYW1lLg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT24g cmV0dXJuLCBwb2ludHMgdG8gdGhlIA0KPiA+ID4gKyBuZXh0IHZhcmlhYmxlJ3MgbnVsbC10ZXJt aW5hdGVkDQo+ID4gbmFtZSBzdHJpbmcuDQo+ID4gPiArICBAcGFyYW1baW4sIG91dF0gICBWYXJp YWJsZUd1aWQgICAgICBPbiBlbnRyeSwgYSBwb2ludGVyIHRvIGFuIEVGSV9HVUlEIHRoYXQNCj4g aXMNCj4gPiB0aGUgdmFyaWFibGUncyBHVUlELg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT24gcmV0dXJuLCBhIHBvaW50ZXIgdG8gdGhlIG5leHQgdmFyaWFi bGUncyBHVUlELg0KPiA+ID4gKw0KPiA+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAg ICAgICAgICAgVGhlIHZhcmlhYmxlIHdhcyByZWFkIHN1Y2Nlc3NmdWxseS4NCj4gPiA+ICsgIEBy ZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgICAgICAgIFRoZSB2YXJpYWJsZSBjb3VsZCBub3Qg YmUgZm91bmQuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9CVUZGRVJfVE9PX1NNQUxMICAgICAgICBU aGUgVmFyaWFibGVOYW1lU2l6ZSBpcyB0b28gc21hbGwNCj4gZm9yDQo+ID4gdGhlIHJlc3VsdGlu Zw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS4gVmFy aWFibGVOYW1lU2l6ZSBpcyB1cGRhdGVkIHdpdGggdGhlIHNpemUNCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIGZvciB0aGUgc3BlY2lmaWVkIHZh cmlhYmxlLg0KPiA+ID4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICAgICAgVmFy aWFibGVOYW1lLCBWYXJpYWJsZUd1aWQgb3INCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFZhcmlhYmxlTmFtZVNpemUgaXMgTlVMTC4NCj4gPiA+ICsgIEByZXR2 YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgICAgICAgIFRoZSB2YXJpYWJsZSBjb3VsZCBub3QgYmUg cmV0cmlldmVkDQo+ID4gYmVjYXVzZSBvZiBhIGRldmljZSBlcnJvci4NCj4gPiA+ICsNCj4gPiA+ ICsqKi8NCj4gPiA+ICt0eXBlZGVmDQo+ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gKyhFRklBUEkg KkVES0lJX1BFSV9HRVRfTkVYVF9WQVJJQUJMRV9OQU1FKSgNCj4gPiA+ICsgIElOIENPTlNUICBF REtJSV9QRUlfVkFSSUFCTEVfUFBJICAgICpUaGlzLA0KPiA+ID4gKyAgSU4gT1VUICAgIFVJTlRO ICAgICAgICAgICAgICAgICAgICAgKlZhcmlhYmxlTmFtZVNpemUsDQo+ID4gPiArICBJTiBPVVQg ICAgQ0hBUjE2ICAgICAgICAgICAgICAgICAgICAqVmFyaWFibGVOYW1lLA0KPiA+ID4gKyAgSU4g T1VUICAgIEVGSV9HVUlEICAgICAgICAgICAgICAgICAgKlZhcmlhYmxlR3VpZA0KPiA+ID4gKyAg KTsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIFNldHMgdGhlIHZhbHVlIG9mIGEgdmFy aWFibGUuDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1baW5dICAgICAgICBUaGlzICAgICAgICAg ICAgICBBIHBvaW50ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUNCj4gPiBFREtJSV9QRUlfVkFS SUFCTEVfUFBJLg0KPiA+ID4gKyAgQHBhcmFtW2luXSAgICAgICAgVmFyaWFibGVOYW1lICAgICAg QSBOdWxsLXRlcm1pbmF0ZWQgc3RyaW5nIHRoYXQgaXMgdGhlIG5hbWUNCj4gPiBvZiB0aGUgdmVu ZG9yJ3MgdmFyaWFibGUuDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFYWNoIFZhcmlhYmxlTmFtZSBpcyB1bmlxdWUgZm9yIGVhY2ggVmVuZG9yR3VpZC4NCj4g PiBWYXJpYWJsZU5hbWUgbXVzdA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGFpbiAxIG9yIG1vcmUgY2hhcmFjdGVycy4NCj4gPiA+ICsgSWYgVmFyaWFi bGVOYW1lIGlzIGFuDQo+ID4gZW1wdHkgc3RyaW5nLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGhlbiBFRklfSU5WQUxJRF9QQVJBTUVURVIgaXMgcmV0dXJu ZWQuDQo+ID4gPiArICBAcGFyYW1baW5dICAgICAgICBWZW5kb3JHdWlkICAgICAgICBBIHVuaXF1 ZSBpZGVudGlmaWVyIGZvciB0aGUgdmVuZG9yLg0KPiA+ID4gKyAgQHBhcmFtW2luXSAgICAgICAg QXR0cmlidXRlcyAgICAgICAgQXR0cmlidXRlcyBiaXRtYXNrIHRvIHNldCBmb3IgdGhlIHZhcmlh YmxlLg0KPiA+ID4gKyAgQHBhcmFtW2luXSAgICAgICAgRGF0YVNpemUgICAgICAgICAgVGhlIHNp emUgaW4gYnl0ZXMgb2YgdGhlIERhdGEgYnVmZmVyLiBVbmxlc3MNCj4gPiB0aGUgRUZJX1ZBUklB QkxFX0FQUEVORF9XUklURQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXR0cmlidXRlIGlzIHNldCwgYSBzaXplIG9mIA0KPiA+ID4gKyB6ZXJvIGNhdXNlcyB0 aGUgdmFyaWFibGUgdG8gYmUNCj4gPiBkZWxldGVkLiBXaGVuIHRoZQ0KPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1ZBUklBQkxFX0FQUEVORF9XUklURSAN Cj4gPiA+ICsgYXR0cmlidXRlIGlzIHNldCwgdGhlbiBhDQo+ID4gU2V0VmFyaWFibGUoKSBjYWxs IHdpdGggYQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0 YVNpemUgb2YgemVybyB3aWxsIG5vdCANCj4gPiA+ICsgY2F1c2UgYW55IGNoYW5nZSB0byB0aGUN Cj4gPiB2YXJpYWJsZSB2YWx1ZS4NCj4gPiA+ICsgIEBwYXJhbVtpbl0gICAgICAgIERhdGEgICAg ICAgICAgICAgIFRoZSBjb250ZW50cyBmb3IgdGhlIHZhcmlhYmxlLg0KPiA+ID4gKw0KPiA+ID4g KyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICAgICAgVGhlIGZpcm13YXJlIGhhcyBz dWNjZXNzZnVsbHkgc3RvcmVkIHRoZQ0KPiA+IHZhcmlhYmxlIGFuZCBpdHMgZGF0YSBhcw0KPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUg QXR0cmlidXRlcy4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgICAg IEFuIGludmFsaWQgY29tYmluYXRpb24gb2YgYXR0cmlidXRlDQo+ID4gYml0cywgbmFtZSwgYW5k IEdVSUQgd2FzIHN1cHBsaWVkLCBvciB0aGUNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERhdGFTaXplIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dlZC4NCj4g PiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgICAgIFZhcmlhYmxlTmFtZSBp cyBhbiBlbXB0eSBzdHJpbmcuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VT ICAgICAgICBOb3QgZW5vdWdoIHN0b3JhZ2UgaXMgYXZhaWxhYmxlIHRvDQo+ID4gaG9sZCB0aGUg dmFyaWFibGUgYW5kIGl0cyBkYXRhLg0KPiA+ID4gKyAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9S ICAgICAgICAgICAgVGhlIHZhcmlhYmxlIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQgZHVlDQo+ID4g dG8gYSBoYXJkd2FyZSBlcnJvci4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX1dSSVRFX1BST1RFQ1RF RCAgICAgICAgIFRoZSB2YXJpYWJsZSBpbiBxdWVzdGlvbiBpcyByZWFkLW9ubHkuDQo+ID4gPiAr ICBAcmV0dmFsIEVGSV9XUklURV9QUk9URUNURUQgICAgICAgICBUaGUgdmFyaWFibGUgaW4gcXVl c3Rpb24gY2Fubm90IGJlDQo+ID4gZGVsZXRlZC4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX1NFQ1VS SVRZX1ZJT0xBVElPTiAgICAgIFRoZSB2YXJpYWJsZSBjb3VsZCBub3QgYmUgd3JpdHRlbg0KPiBk dWUNCj4gPiB0byBFRklfVkFSSUFCTEVfQVVUSEVOVElDQVRFRF9XUklURV9BQ0NFU1MsDQo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcg0KPiA+IEVGSV9WQVJJ QUJMRV9USU1FX0JBU0VEX0FVVEhFTlRJQ0FURURfV1JJVEVfQUNDRVNTLCBvcg0KPiA+ID4gKw0K PiA+ID4gKyBFRklfVkFSSUFCTEVfRU5IQU5DRURfQVVUSEVOVElDQVRFRF9BQ0NFU1MNCj4gPiBi ZWluZyBzZXQuIFdyaXRpbmcgdG8gYXV0aGVudGljYXRlZA0KPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhl IFBFSSBlbnZpcm9ubWVudC4NCj4gPiBVcGRhdGVzIHRvIGF1dGhlbnRpY2F0ZWQNCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlcyBjYW4gYmUgcmVx dWVzdGVkIA0KPiA+ID4gKyBkdXJpbmcgUEVJIHZpYSB0aGUNCj4gPiBFRklfQVVUSEVOVElDQVRF RF9WQVJJQUJMRV9IT0IsIGJ1dA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhlc2UgdXBkYXRlcyB3b24ndCBiZSANCj4gPiA+ICsgd3JpdHRlbiB0byBub24t dm9sYXRpbGUgc3RvcmFnZQ0KPiA+IHVudGlsIGxhdGVyIGluIERYRS4gU2VlDQo+ID4gPiArDQo+ ID4gPiArIE1kZU1vZHVsZVBrZy9JbmNsdWRlL0d1aWQvVmFyaWFibGVGb3JtYXQuaCBmb3INCj4g PiBtb3JlIGRldGFpbHMgb24NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVGSV9BVVRIRU5USUNBVEVEX1ZBUklBQkxFX0hPQi4NCj4gPg0KPiA+IFtNS10gSSBk aWRuJ3Qgc2VlICJFRklfQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IT0IiIG1lbnRpb25lZCBpbiAN Cj4gPiBWYXJpYWJsZUZvcm1hdC5oLg0KPiA+DQo+ID4gW01LXSBJdCBzZWVtcyB0aGF0IGlmIGEg Y29udHJhY3QgZm9yIHByb2R1Y2luZyBhbmQgdGhlbiBjb25zdW1pbmcgDQo+ID4gdGhpcyBIT0Ig aXMgZ29pbmcgdG8gYmUgZGVmaW5lZCBiZXR3ZWVuIHRoZSBIT0IgcHJvZHVjZXIgYW5kIA0KPiA+ IGNvbnN1bWVyIHBoYXNlLCBpdCBzaG91bGQgYmUgZGVzY3JpYmVkIGluIHNvbWV0aGluZyBsaWtl IHRoZSBQSSBTcGVjLg0KPiA+DQo+ID4gPiArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAg ICAgICAgICBUaGUgdmFyaWFibGUgdHJ5aW5nIHRvIGJlIHVwZGF0ZWQgb3INCj4gPiBkZWxldGVk IHdhcyBub3QgZm91bmQuDQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArdHlwZWRlZg0KPiA+ ID4gK0VGSV9TVEFUVVMNCj4gPiA+ICsoRUZJQVBJICpFREtJSV9QRUlfU0VUX1ZBUklBQkxFKSgN Cj4gPiA+ICsgIElOIENPTlNUICBFREtJSV9QRUlfVkFSSUFCTEVfUFBJICAgICpUaGlzLA0KPiA+ ID4gKyAgSU4gICAgICAgIENIQVIxNiAgICAgICAgICAgICAgICAgICAgKlZhcmlhYmxlTmFtZSwN Cj4gPiA+ICsgIElOICAgICAgICBFRklfR1VJRCAgICAgICAgICAgICAgICAgICpWZW5kb3JHdWlk LA0KPiA+ID4gKyAgSU4gICAgICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRl cywNCj4gPiA+ICsgIElOICAgICAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIERhdGFTaXpl LA0KPiA+ID4gKyAgSU4gICAgICAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAgKkRhdGENCj4g PiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBSZXR1cm5zIGluZm9ybWF0 aW9uIGFib3V0IHRoZSBVRUZJIHZhcmlhYmxlcy4NCj4gPiA+ICsNCj4gPiA+ICsgIEBwYXJhbVtp bl0gICAgICAgIFRoaXMgICAgICAgICAgICAgICAgICAgICAgICAgIEEgcG9pbnRlciB0byB0aGlz IGluc3RhbmNlIG9mIHRoZQ0KPiA+IEVES0lJX1BFSV9WQVJJQUJMRV9QUEkuDQo+ID4gPiArICBA cGFyYW1baW5dICAgICAgICBBdHRyaWJ1dGVzICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVz IGJpdG1hc2sgdG8gc3BlY2lmeSB0aGUgdHlwZQ0KPiA+IG9mIHZhcmlhYmxlcyBvbg0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2gg dG8gcmV0dXJuIGluZm9ybWF0aW9uLg0KPiA+ID4gKyAgQHBhcmFtW291dF0gICAgICAgTWF4aW11 bVZhcmlhYmxlU3RvcmFnZVNpemUgICAgT24gb3V0cHV0IHRoZSBtYXhpbXVtDQo+ID4gc2l6ZSBv ZiB0aGUgc3RvcmFnZSBzcGFjZQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlIGZvciANCj4gPiA+ICsgdGhlIEVGSSB2YXJp YWJsZXMgYXNzb2NpYXRlZCB3aXRoDQo+IHRoZQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyBzcGVjaWZpZWQuDQo+ID4g PiArICBAcGFyYW1bb3V0XSAgICAgICBSZW1haW5pbmdWYXJpYWJsZVN0b3JhZ2VTaXplICBSZXR1 cm5zIHRoZSByZW1haW5pbmcNCj4gc2l6ZQ0KPiA+IG9mIHRoZSBzdG9yYWdlIHNwYWNlDQo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFp bGFibGUgZm9yIA0KPiA+ID4gKyB0aGUgRUZJIHZhcmlhYmxlcyBhc3NvY2lhdGVkIHdpdGgNCj4g dGhlDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhdHRyaWJ1dGVzIHNwZWNpZmllZC4NCj4gPiA+ICsgIEBwYXJhbVtvdXRdICAgICAgIE1h eGltdW1WYXJpYWJsZVNpemUgICAgICAgICAgIFJldHVybnMgdGhlIG1heGltdW0gc2l6ZSBvZg0K PiA+IHRoZSBpbmRpdmlkdWFsIEVGSQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzIA0KPiA+ID4gKyBhc3NvY2lhdGVkIHdp dGggdGhlIGF0dHJpYnV0ZXMNCj4gc3BlY2lmaWVkLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHJldHZh bCBFRklfU1VDQ0VTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWQgYW5zd2VyIHJl dHVybmVkLg0KPiA+ID4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICAgICAgICAg ICAgICAgICAgQW4gaW52YWxpZCBjb21iaW5hdGlvbiBvZg0KPiA+IGF0dHJpYnV0ZSBiaXRzIHdh cyBzdXBwbGllZA0KPiA+ID4gKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAgICAgICAgICAg ICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBpcyBub3Qgc3VwcG9ydGVkDQo+IG9uDQo+ID4gdGhp cyBwbGF0Zm9ybSwgYW5kIHRoZQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgDQo+ID4gPiArIE1heGltdW1WYXJpYWJsZVN0b3JhZ2VTaXpl LA0KPiA+ID4gKw0KPiA+ID4gKyBSZW1haW5pbmdWYXJpYWJsZVN0b3JhZ2VTaXplLA0KPiA+IE1h eGltdW1WYXJpYWJsZVNpemUNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFyZSB1bmRlZmluZWQuDQo+ID4gPiArDQo+ID4gPiArKiovDQo+ ID4gPiArdHlwZWRlZg0KPiA+ID4gK0VGSV9TVEFUVVMNCj4gPiA+ICsoRUZJQVBJICpFREtJSV9Q RUlfUVVFUllfVkFSSUFCTEVfSU5GTykoDQo+ID4gPiArICBJTiBDT05TVCAgRURLSUlfUEVJX1ZB UklBQkxFX1BQSSAgICAqVGhpcywNCj4gPiA+ICsgIElOICAgICAgICBVSU5UMzIgICAgICAgICAg ICAgICAgICAgIEF0dHJpYnV0ZXMsDQo+ID4gPiArICBPVVQgICAgICAgVUlOVDY0ICAgICAgICAg ICAgICAgICAgICAqTWF4aW11bVZhcmlhYmxlU3RvcmFnZVNpemUsDQo+ID4gPiArICBPVVQgICAg ICAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAqUmVtYWluaW5nVmFyaWFibGVTdG9yYWdlU2l6 ZSwNCj4gPiA+ICsgIE9VVCAgICAgICBVSU5UNjQgICAgICAgICAgICAgICAgICAgICpNYXhpbXVt VmFyaWFibGVTaXplDQo+ID4gPiArICApOw0KPiA+ID4gKw0KPiA+ID4gKy8vLw0KPiA+ID4gKy8v LyBQRUkgVmFyaWFibGUgUHJvdG9jb2wgaXMgaW50ZW5kZWQgZm9yIHVzZSBhcyBhIG1lYW5zDQo+ ID4NCj4gPiBbTUtdIFdhcyAiUEVJIFZhcmlhYmxlIFBQSSIgaW50ZW5kZWQ/DQo+ID4NCj4gPiA+ ICsvLy8gdG8gc3RvcmUgZGF0YSBpbiB0aGUgUEVJIGVudmlyb25tZW50Lg0KPiA+ID4gKy8vLw0K PiA+ID4gK3N0cnVjdCBfRURLSUlfUEVJX1ZBUklBQkxFX1BQSSB7DQo+ID4gPiArICBFREtJSV9Q RUlfR0VUX1ZBUklBQkxFICAgICAgICAgICAgR2V0VmFyaWFibGU7DQo+ID4gPiArICBFREtJSV9Q RUlfR0VUX05FWFRfVkFSSUFCTEVfTkFNRSAgR2V0TmV4dFZhcmlhYmxlTmFtZTsNCj4gPiA+ICsg IEVES0lJX1BFSV9TRVRfVkFSSUFCTEUgICAgICAgICAgICBTZXRWYXJpYWJsZTsNCj4gPiA+ICsg IEVES0lJX1BFSV9RVUVSWV9WQVJJQUJMRV9JTkZPICAgICBRdWVyeVZhcmlhYmxlSW5mbzsNCj4g PiA+ICt9Ow0KPiA+ID4gKw0KPiA+ID4gK2V4dGVybiBFRklfR1VJRCAgZ0Vka2lpUGVpVmFyaWFi bGVQcGlHdWlkOw0KPiA+ID4gKw0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gZGlmZiAtLWdpdCBhL01k ZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4gYi9NZGVNb2R1bGVQa2cvTWRlTW9kdWxl UGtnLmRlYw0KPiA+ID4gaW5kZXggMmJjYjlmOTQ1My4uNGY0YzQ4YjgxZiAxMDA2NDQNCj4gPiA+ IC0tLSBhL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4gPiArKysgYi9NZGVNb2R1 bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ID4gQEAgLTUxMyw2ICs1MTMsOSBAQA0KPiA+ID4g ICAgIGdFZGtpaVBlaUNhcHN1bGVPbkRpc2tQcGlHdWlkICAgICAgICAgICAgID0geyAweDcxYTll YTYxLCAweDVhMzUsIDB4NGE1ZCwNCj4gPiB7IDB4YWMsIDB4ZWYsIDB4OWMsIDB4ZjgsIDB4NmQs IDB4NmQsIDB4NjcsIDB4ZTAgfSB9DQo+ID4gPiAgICAgZ0Vka2lpUGVpQm9vdEluQ2Fwc3VsZU9u RGlza01vZGVQcGlHdWlkICAgPSB7IDB4YjA4YTExZTQsIDB4ZTJiNywNCj4gPiAweDRiNzUsIHsg MHhiNSwgMHgxNSwgMHhhZiwgMHg2MSwgMHg2LCAweDY4LCAweGJmLCAweGQxICB9IH0NCj4gPiA+ DQo+ID4gPiArICAjIyBJbmNsdWRlL1BwaS9WYXJpYWJsZS5oDQo+ID4gPiArICBnRWRraWlQZWlW YXJpYWJsZVBwaUd1aWQgICAgICAgICAgICAgICAgICA9IHsgMHhlN2IyY2QwNCwgMHg0YjE0LCAw eDQ0YzIsIHsgMHhiNywNCj4gPiAweDQ4LCAweGNlLCAweGFmLCAweDJiLCAweDY2LCAweDRhLCAw eGIwIH0gfQ0KPiA+ID4gKw0KPiA+ID4gICBbUHJvdG9jb2xzXQ0KPiA+ID4gICAgICMjIExvYWQg RmlsZSBwcm90b2NvbCBwcm92aWRlcyBjYXBhYmlsaXR5IHRvIGxvYWQgYW5kIHVubG9hZCANCj4g PiA+IEVGSSBpbWFnZSBpbnRvDQo+ID4gbWVtb3J5IGFuZCBleGVjdXRlIGl0Lg0KPiA+ID4gICAg ICMgIEluY2x1ZGUvUHJvdG9jb2wvTG9hZFBlMzJJbWFnZS5oDQo+ID4NCj4gPg0KPiA+IA0KPiA+ DQoNCg==