From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web12.281.1571247535468863244 for ; Wed, 16 Oct 2019 10:38:55 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=PpJzhnYA; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: michael.a.kubacki@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Oct 2019 10:38:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,304,1566889200"; d="scan'208";a="279604889" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga001.jf.intel.com with ESMTP; 16 Oct 2019 10:38:54 -0700 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 16 Oct 2019 10:38:54 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 16 Oct 2019 10:38:53 -0700 Received: from NAM01-BN3-obe.outbound.protection.outlook.com (104.47.33.56) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 16 Oct 2019 10:38:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IFG98i0VxZShTPnS07U8IBAUGJFIpz918lq6JNe78PKJv4GK12o2u8Iy4n9y0aniM7KmE643GKNu6T7Hjau0R2UFqIcRTLfCIcjPr9e992GYD13GRBWRn/Qs2hbD0w8C+WyoCMllHrA8JdFd3ffbwah0W4IskTsiybhPhmb95eYoKF4lFnOsI5UgQbU52DwumaS/6I9nPgOxbXxTn5nGI7tBmArqRNRITjlAUtkif3Np/WhNkI5T9u36GFXjBAr8sZoVbk+iDqhc6YvAsrUwJQBheftebYeql6fv78vBweCXAD7F5vTQ+8nEL8fxPWfjbHrdTTgq2+q2tZxNiVyc2g== 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=6ugHcLb9hhY0ULjkXwa2FGrzLzVen19ZSjWYbGxngfg=; b=OaxyNxgQ2O6EHzQ2JoPfZ3TTnRbUNuCEG+5lXSs/q8QX4jIc4JMyP5SYvIxiTUsUdSrxNVTrGxIBGs1TMiNPYiq3qJxX/LLg+78U/Lk24NaesjgFV/Dz/2Bfuq+dDEHrv9K7y4E3jpctRXEch2ZHKZnYqAY6YCQYAnLc2psqeGbjv1u8tBg/Fe+BZlxfgEQGsdqpnSW7dW/8IwqiEsEnutBfXHQ7DTJm6B9rnEs8Zw2MrY51S9dLiValaauO51XmSvt95MKKVr5j/UFZ+5jHirsXvfjLkWSPYyNRXulE4IY5zjvViii0EZblr+mfAIxDRlMxmPQ9MPd2yQPPKswlrg== 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=6ugHcLb9hhY0ULjkXwa2FGrzLzVen19ZSjWYbGxngfg=; b=PpJzhnYAK+8QtZdTukikRL/LkrYhPtK94ZW0XJTtEVe3TnRJ4piwNcwjrq2MkYPGhwME8Nz8W/ckm/N6kveaqLpuV+r7KZDPbACqelWJHP2aiCbEdxe722zJqfShzagTYJx8RDNIITUCjB9CmNsah9S21F4reGisTTfLlcSWrjc= Received: from DM6PR11MB3834.namprd11.prod.outlook.com (20.179.17.87) by DM6PR11MB2682.namprd11.prod.outlook.com (20.176.97.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.17; Wed, 16 Oct 2019 17:38:50 +0000 Received: from DM6PR11MB3834.namprd11.prod.outlook.com ([fe80::21f7:6d8d:919b:d755]) by DM6PR11MB3834.namprd11.prod.outlook.com ([fe80::21f7:6d8d:919b:d755%6]) with mapi id 15.20.2347.023; Wed, 16 Oct 2019 17:38:50 +0000 From: "Kubacki, Michael A" To: "Ni, Ray" , "devel@edk2.groups.io" CC: "Chaganty, Rangasai V" Subject: Re: [edk2-platforms][PATCH V1 1/1] IntelSiliconPkg/BootMediaLib: Reduce library API Thread-Topic: [edk2-platforms][PATCH V1 1/1] IntelSiliconPkg/BootMediaLib: Reduce library API Thread-Index: AQHVgtYIOTkrtkYpnka2pkFh7v6JB6da6TAggAALuWCAAC6TEIAAv33wgADkFcCAAMPMcA== Date: Wed, 16 Oct 2019 17:38:50 +0000 Message-ID: References: <20191014212616.18376-1-michael.a.kubacki@intel.com> <734D49CCEBEEF84792F5B80ED585239D5C322E81@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C32317E@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C3249F2@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5C3249F2@SHSMSX104.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMjZhYmI1NDQtNDk5My00YzZjLWIwMTMtZGNlOThkOTM3YzhiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiOE94ME1yRDA1UDg5RmtZVFg3cTYwVnB0K0VWSm9FUTNLVDZLaEk4bTIrcnJkYTBHV043WklFWVdLbkpBUXNvRiJ9 dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: spf=none (sender IP is ) smtp.mailfrom=michael.a.kubacki@intel.com; x-originating-ip: [134.134.136.217] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5b7b2d81-3ee0-48bb-9568-08d7525fb4aa x-ms-traffictypediagnostic: DM6PR11MB2682: 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:10000; x-forefront-prvs: 0192E812EC x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(39860400002)(136003)(376002)(346002)(366004)(13464003)(189003)(199004)(52536014)(8936002)(25786009)(446003)(8676002)(11346002)(81166006)(71200400001)(71190400001)(99286004)(14454004)(66066001)(55016002)(486006)(4326008)(2501003)(229853002)(256004)(14444005)(476003)(86362001)(110136005)(107886003)(81156014)(316002)(9686003)(478600001)(6436002)(26005)(66946007)(2906002)(102836004)(6506007)(5660300002)(305945005)(3846002)(64756008)(66476007)(186003)(6116002)(6246003)(30864003)(7696005)(53546011)(66446008)(33656002)(7736002)(66556008)(76116006)(74316002)(76176011);DIR:OUT;SFP:1102;SCL:1;SRVR:DM6PR11MB2682;H:DM6PR11MB3834.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Cg7+weWlJ1IJ98L0J2vf8eDkUjCzqc9GBFPG6zAZ4vjKdTQYKFPxpQa+xAtLxEY13y7m5klTZNnfVCmE3/NBlKz3WMEM8pEJ8cj3zQMGU8BukzG6Y9JnKebTM1BJr3RULEBxVZ3N0v7j+m88bOdUP4mBP2TJyvhBtvFal62x5/RJJuWTnYPwSmdRfTKi1F8FFHYmHvmFP7EnDyXzQDy50LrMdcJBuhU7LF1PvownEC0eoYcMP+B6I4fleQYfbE18BqAVMsNVK/U6QS0/SmX+nnrCrgbqWe21/SpBaGf0AMFqttpnNgijFFmGDLmxmsLCY7kjGVbAGupGhqjo4NMtDREwqc5JwR2Ayo6GiKa3Wuf77RTY0eA4dbPRrqXYRbOaVlbPYZpFcBHz8P18zFHjAWlEI3AXXQZL5ZThyVWey6c= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 5b7b2d81-3ee0-48bb-9568-08d7525fb4aa X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Oct 2019 17:38:50.1973 (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: 8p6iZB+iWD8/3j3+J+eO5tglAjqUIeCwC8QJhs/kKkfuXre2lu//ErOKjXoQXuaLTAaNC1SVZURrSyxBnX0wNSgS0xaiLLJR6Tk+7zyrJ5M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2682 Return-Path: michael.a.kubacki@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIFJheSwgdGhpcyB3YXMgYSBnb29kIGRpc2N1c3Npb24uIEkgd2lsbCBsZWF2ZSB0aGUg bGlicmFyeSBpbnN0YW5jZXMgYXMtaXMgZm9yIG5vdy4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPg0KPiBTZW50OiBUdWVz ZGF5LCBPY3RvYmVyIDE1LCAyMDE5IDExOjMwIFBNDQo+IFRvOiBLdWJhY2tpLCBNaWNoYWVsIEEg PG1pY2hhZWwuYS5rdWJhY2tpQGludGVsLmNvbT47DQo+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ IENjOiBDaGFnYW50eSwgUmFuZ2FzYWkgViA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+ DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1wbGF0Zm9ybXNdW1BBVENIIFYxIDEvMV0gSW50ZWxTaWxp Y29uUGtnL0Jvb3RNZWRpYUxpYjoNCj4gUmVkdWNlIGxpYnJhcnkgQVBJDQo+IA0KPiA+IE15IGNv bmNlcm5zIHdpdGggdGhhdCBhcHByb2FjaDoNCj4gPg0KPiA+IDEuIEluIGdlbmVyYWwsIEkgYmVs aWV2ZSBpdCBpcyBiZXR0ZXIgaWYgdGhlIGxpYnJhcnkgcmVhZHMgdGhlIHZhbHVlDQo+ID4gb25j ZSBhbmQgY2FjaGVzIGl0LiBUaGUgZmlybXdhcmUgYm9vdCBtZWRpYSBpcyBmaXhlZCBhZnRlciBw b3dlci1vbiBieQ0KPiA+IG5hdHVyZSBhbmQgaW4gc29tZSBwbGF0Zm9ybXMsIGJvb3QgbWVkaWEg aW5mb3JtYXRpb24gbWF5IGJlIHByb3ZpZGVkDQo+ID4gdG8gdGhlIElCQiBpbiBhIHRlbXBvcmFy eSBTUkFNIChvciBvdGhlciB2b2xhdGlsZSBtZW1vcnkpIGVhcmx5IGluIHRoZQ0KPiA+IGJvb3Qg ZmxvdyB0aGF0IGlzIHRlbXBvcmFyeSAoZS5nLiBub3QgYWNjZXNzaWJsZSBhZnRlciBtYWluIG1l bW9yeQ0KPiA+IGluaXRpYWxpemF0aW9uKS4gSGVyZSB0aGUgSE9CIHRvIGdsb2JhbCB2YXJpYWJs ZSB0cmFuc2l0aW9uIGluIERYRSwNCj4gPiBSdW50aW1lIERYRSwgU01NIGlzIGEgdHJhbnNwYXJl bnQgbWVjaGFuaXNtIHRvIHRoZSBsaWJyYXJ5IGNvbnN1bWVycw0KPiA+IHRvIGdldCB0aGUgYm9v dCBtZWRpYSBpbmZvcm1hdGlvbiByZWdhcmRsZXNzIG9mIGVhcmx5IGJvb3QgbWVtb3J5DQo+IHBy b3BlcnRpZXMuDQo+IA0KPiBJIGp1c3QgZmVlbCB0aGF0IGhhdmluZyB0d28gbGlicmFyeSBpbnN0 YW5jZXMgaW5jcmVhc2VzIHRoZSBjb21wbGV4aXR5Lg0KPiBUaGVyZSB3ZXJlIGFscmVhZHkgYXJn dW1lbnRzIGFyb3VuZCBFREtJSSBsaWtlIHRoZXJlIGFyZSBzbyBtYW55IGluc3RhbmNlcw0KPiBm b3IgYSBsaWJyYXJ5IGNsYXNzIGFuZCBwZW9wbGUgZG9uJ3Qga25vdyB3aGljaCBvbmUgaXMgYmVp bmcgdXNlZC4NCj4gQnV0IGlmIHlvdSBpbnNpc3QsIEkgYW0gb2sgd2l0aCB0aGF0LiBSZW1vdmlu ZyB1bm5lY2Vzc2FyeSBBUElzIHJlc29sdmVkIG1vc3QNCj4gb2YgbXkgY29uY2VybnMuDQo+IA0K PiA+DQo+ID4gMi4gRm9yY2luZyBsaWJyYXJ5IGNvbnN1bWVycyB0byBjYWNoZSBwdXRzIHVubmVj ZXNzYXJ5IGJ1cmRlbiBvbiBhDQo+ID4gbGFyZ2UgbnVtYmVyIG9mIGxpYnJhcnkgY29uc3VtZXJz IHRvOg0KPiA+ICAgMS5hLiBVbmRlcnN0YW5kIHRoZSBsaWJyYXJ5IGltcGxlbWVudGF0aW9uIChs YWNrIG9mIGVuY2Fwc3VsYXRpb24pLg0KPiANCj4gSW4gZmFjdCB0aGUgdmFsdWUgb2Ygc2luZ2xl IGxpYnJhcnkgaW5zdGFuY2UgSSBjYW4gc2VlIGlzIGNhbGxlciBkb2Vzbid0IG5lZWQgdG8NCj4g ZGlnIGludG8gdGhlIGRldGFpbHMgb2YgdGhlIGxpYnJhcnkgaW1wbGVtZW50YXRpb24uIEFsbCB0 aGV5IG5lZWQgdG8ga25vdyBpcw0KPiB0aGUgbGlicmFyeSBnZXRzIHRoZSBpbmZvIGZyb20gSE9C IGV2ZXJ5IHRpbWUgdGhlIEFQSSBpcyBjYWxsZWQuDQo+IFdpdGggdGhlIHR3byBsaWIgaW5zdGFu Y2VzLCBjb25zdW1lcnMgbmVlZCB0byBiZSBhd2FyZSBvZiB0aGUgZGlmZmVyZW50DQo+IGltcGxl bWVudGF0aW9ucy4NCj4gSSBhbSBub3QgdXNpbmcgdGhpcyB0byBzdXBwb3J0IG15IHBvaW50LiBK dXN0IHByb3ZpZGluZyBteSB0aG91Z2h0Lg0KPiANCj4gPiAgIDEuYi4gVW5kZXJzdGFuZCB0aGUg bnVhbmNlcyBvZiB0aGVpciBkcml2ZXIgdHlwZSBpbiByZWxhdGlvbiB0byB0aGUNCj4gPiBsaWJy YXJ5IGltcGxlbWVudGF0aW9uLg0KPiANCj4gSSB0aGluayBoYXZpbmcgYSBzaW5nbGUgaW5zdGFu Y2UgYXZvaWRzIERTQyB3cml0ZXJzIHRvIHN1cHBseSB0d28gaW5zdGFuY2VzIGZvcg0KPiBkaWZm ZXJlbnQgbW9kdWxlcy4gTWlnaHQgYmUgZGlmZmVyZW50IGZyb20gd2hhdCB5b3UgdGhpbmvwn5iK DQo+IA0KPiANCj4gPiAgIDEuYy4gUGVyZm9ybSB0aGlzIGV2YWx1YXRpb24gZXZlcnkgdGltZSB0 aGUgbGlicmFyeSBpcyB1c2VkLg0KPiANCj4gQWdyZWUuDQo+IA0KPiA+ICAgMS5kLiBJbXBsZW1l bnQgb3ZlcmhlYWQgdG8gbWFuYWdlIHRoZSBkYXRhIGluIGEgZ2xvYmFsIHZhcmlhYmxlIHdoZW4N Cj4gPiB0aGlzIGNvdWxkIGF1dG9tYXRpY2FsbHkgYmUgbGlua2VkIGJ5IHRoZSBsaWJyYXJ5Lg0K PiBTb21lIGNhbGxlcnMgbWF5IG5vdCBiZSBhd2FyZSBvZiB0aGUgbGliIGltcGxlbWVudGF0aW9u IGRldGFpbHMuIFNvIHRoZXkNCj4gbWF5IHN0aWxsIGNob29zZSB0byBjYWNoZSB0byBnbG9iYWwg dmFyaWFibGVzLg0KPiBTb21lIGNhbGxlcnMgbWF5IHVzZSBpdCBvbmx5IG9uY2UuIEhhdmluZyBh IGxpYiBnbG9iYWwgdmFyaWFibGUgaXMgYWxzbyBhIHdhc3RlLg0KPiANCj4gPg0KPiA+IDMuIElm IHRoZSBIT0IgaXMgdXNlZCwgaXQgYmx1cnMgdGhlIGltcGxlbWVudGF0aW9uIGJldHdlZW4gdGhl IEhPQg0KPiA+IHByb2R1Y2VyIHBoYXNlIChQRUkpIGFuZCBIT0IgY29uc3VtZXIgcGhhc2UgKERY RSkuDQo+IA0KPiBEb24ndCB1bmRlcnN0YW5kLg0KPiANCj4gPg0KPiA+IFdlIGhhdmUgbWFueSBs aWJyYXJpZXMgd2l0aCBwaGFzZS1zcGVjaWZpYyBpbnN0YW5jZXMuIFdoZW4gaXQgcmVkdWNlcw0K PiA+IHByb2dyYW1taW5nIG1pc3Rha2VzIGFuZCBlYXNlcyBpbnRlZ3JhdGlvbiBJIGJlbGlldmUg dGhpcyBpcw0KPiA+IGJlbmVmaWNpYWwuIEluIHRoaXMgY2FzZSwgSSBmZWVsIHRoZSBuZXQgcmVz dWx0IGZvciBsaWJyYXJ5IGNvbnN1bWVycw0KPiA+IGlzIGJldHRlciBpZiB0aGV5IHNpbXBseSBt YW5hZ2UgdGhlIGluc3RhbmNlIGluIHRoZSBEU0MgYXMgb3Bwb3NlZCB0bw0KPiA+IG1vZGlmeWlu ZyBzb3VyY2UgaW4gZHJpdmVycyBvbiBhIGNhc2UtYnktY2FzZSBiYXNpcyBkZXBlbmRlbnQgb24g dGhlDQo+IGxpYnJhcnkgaW1wbGVtZW50YXRpb24uDQo+IA0KPiBJZiBhIHNpbmdsZSBpbnN0YW5j ZSBjYW4gc3VwcG9ydCB0aGUgcmVhbCBuZWVkcyBJIHRlbmQgdG8gdXNlIHNpbmdsZSBpbnN0YW5j ZXMuDQo+IEl0IG1ha2VzIHRoZSBjb2RlIGxvZ2ljIGVhc3kgdG8gdHJhY2UuIEkgbGlrZSB0aGUg bXVsdGlwbGUgaW5zdGFuY2VzIGlkZWEgYnV0DQo+IHdhbnQgdG8gYXZvaWQgb3Zlci11c2luZyB0 aGVtLg0KPiANCj4gQWdhaW4gSSBhbSBqdXN0IHByb3ZpZGluZyB3aGF0IEkgdGhpbmsuIFRoZXkg YXJlIG5vdCBoZXJlIHRvIHN1cHBvcnQgbXkgcG9pbnQuDQo+IEkgYW0gb2sgd2l0aCBjdXJyZW50 IGltcGxlbWVudGF0aW9uLiDwn5iKDQo+IA0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IE1pY2hhZWwN Cj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IE5pLCBS YXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiBTZW50OiBNb25kYXksIE9jdG9iZXIgMTQsIDIw MTkgOTo1OSBQTQ0KPiA+ID4gVG86IEt1YmFja2ksIE1pY2hhZWwgQSA8bWljaGFlbC5hLmt1YmFj a2lAaW50ZWwuY29tPjsNCj4gPiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogQ2hh Z2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPg0KPiA+ID4g U3ViamVjdDogUkU6IFtlZGsyLXBsYXRmb3Jtc11bUEFUQ0ggVjEgMS8xXQ0KPiBJbnRlbFNpbGlj b25Qa2cvQm9vdE1lZGlhTGliOg0KPiA+ID4gUmVkdWNlIGxpYnJhcnkgQVBJDQo+ID4gPg0KPiA+ ID4gTWlrZSwNCj4gPiA+IEkgZG9uJ3QgdGhpbmsgdGhlIGxpYnJhcnkgbmVlZHMgdG8gY2FjaGUg dGhlIGJvb3QgbWVkaWEgdHlwZSBmb3IgUlQNCj4gPiA+IGFuZA0KPiA+IFNNTS4NCj4gPiA+IFJU IGFuZCBTTU0gbW9kdWxlcyBjYW4gaGF2ZSBhIG1vZHVsZSBsb2NhbCB2YXJpYWJsZSB0byBjYWNo ZSB0aGUNCj4gPiA+IGJvb3QgbWVkaWEgdHlwZS4NCj4gPiA+IEl0IHNpbXBsaWZpZXMgdGhlIGlt cGxlbWVudGF0aW9uIG9mIHRoaXMgbGlicmFyeSBhbmQgYWxzbyB0aGUNCj4gPiA+IHBsYXRmb3Jt IERTQyBiZWNhdXNlIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2hvb3NlIGRpZmZlcmVudCBsaWJyYXJ5 DQo+ID4gPiBpbnN0YW5jZXMgZm9yIGRpZmZlcmVudCBtb2R1bGVzLg0KPiA+ID4NCj4gPiA+IElu IGFub3RoZXIgd29yZCwgSSB0aGluayB5b3UgY2FuIGtlZXAgdGhlIFBFSSB2ZXJzaW9uIGFzIGEg YmFzZQ0KPiA+ID4gbGlicmFyeSBpbnN0YW5jZXMgYW5kIGFsbCBtb2R1bGVzIGNhbiB1c2UgdGhh dCBpbnN0YW5jZS4NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPiBSYXkNCj4gPiA+DQo+ID4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IEt1YmFja2ksIE1p Y2hhZWwgQSA8bWljaGFlbC5hLmt1YmFja2lAaW50ZWwuY29tPg0KPiA+ID4gPiBTZW50OiBUdWVz ZGF5LCBPY3RvYmVyIDE1LCAyMDE5IDEwOjIyIEFNDQo+ID4gPiA+IFRvOiBOaSwgUmF5IDxyYXku bmlAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gQ2M6IENoYWdhbnR5 LCBSYW5nYXNhaSBWIDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gPiA+ID4gU3Vi amVjdDogUkU6IFtlZGsyLXBsYXRmb3Jtc11bUEFUQ0ggVjEgMS8xXQ0KPiA+IEludGVsU2lsaWNv blBrZy9Cb290TWVkaWFMaWI6DQo+ID4gPiA+IFJlZHVjZSBsaWJyYXJ5IEFQSQ0KPiA+ID4gPg0K PiA+ID4gPiBUaGUgdHdvIGxpYnJhcnkgaW5zdGFuY2VzIHdvcmsgd2l0aGluIHRoZSBjb25zdHJh aW50cyBvZiBQRUksIERYRSwNCj4gPiA+ID4gUnVudGltZSBEWEUsIGFuZCBTTU0uDQo+ID4gPiA+ DQo+ID4gPiA+IEkgY2Fubm90IGZpbmQgaG93IGEgc2luZ2xlIGluc3RhbmNlIGNhbiBzdXBwb3J0 IGFsbCB0aGVzZQ0KPiA+ID4gPiBlbnZpcm9ubWVudHMgKGluIGFzIGNsZWFuIGEgbWFubmVyKSBh cyBpcyBkb25lIHdpdGggdGhlIHR3byBpbnN0YW5jZXMuDQo+ID4gPiA+DQo+ID4gPiA+IFJlbGV2 YW50IGNvbnN0cmFpbnRzOg0KPiA+ID4gPiAqIFBFSTogQ2Fubm90IHdyaXRlIHRvIGdsb2JhbCB2 YXJpYWJsZQ0KPiA+ID4gPiAqIFJ1bnRpbWUgRFhFIC8gU01NOiBCb290IFNlcnZpY2VzIGFyZSBu b3QgYXZhaWxhYmxlIG91dHNpZGUNCj4gPiA+ID4gbW9kdWxlIGVudHJ5IHBvaW50DQo+ID4gPiA+ DQo+ID4gPiA+IFNvbHV0aW9uOg0KPiA+ID4gPiAqIFBFSSBpbnN0YW5jZTogQWx3YXlzIHJldHJp ZXZlIHRoZSB2YWx1ZSBmcm9tIGEgSE9CICh1c2UgaGVhcCBmb3INCj4gUi9XKS4NCj4gPiA+ID4g KiBEWEUsIFJ1bnRpbWUgRFhFLCBTTU0gaW5zdGFuY2U6IFJldHJpZXZlIHRoZSB2YWx1ZSBmcm9t IHRoZSBIT0INCj4gPiA+ID4gaW4gdGhlIGVudHJ5IHBvaW50DQo+ID4gPiA+IChjb25zdHJ1Y3Rv cikgd2hlbiB0aGUgZHJpdmVyIGlzIGRpc3BhdGNoZWQgYW5kIEJvb3QgU2VydmljZXMgYXJlDQo+ ID4gPiA+IGF2YWlsYWJsZSBhbmQgc3RvcmUgdGhlIHZhbHVlIGluIGEgZ2xvYmFsIHZhcmlhYmxl IHNvIGl0IGNhbiBiZQ0KPiA+ID4gPiBhY2Nlc3NlZCBpbiBSdW50aW1lIERYRSBhbmQgU01NLg0K PiA+ID4gPg0KPiA+ID4gPiBUd28gc2VwYXJhdGUgaW5zdGFuY2VzIHJlc29sdmUgdGhlc2UgcmVx dWlyZW1lbnRzIHF1aXRlIG5hdHVyYWxseS4NCj4gPiA+ID4NCj4gPiA+ID4gSG93IHdvdWxkIHlv dSBwcm9wb3NlIG1lZXRpbmcgdGhlIHNhbWUgbGV2ZWwgb2Ygc3VwcG9ydCB3aXRoIG9uZQ0KPiA+ ID4gPiBpbnN0YW5jZT8NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiBNaWNoYWVs DQo+ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4g PiBGcm9tOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ID4gPiA+IFNlbnQ6IE1vbmRh eSwgT2N0b2JlciAxNCwgMjAxOSA2OjMwIFBNDQo+ID4gPiA+ID4gVG86IEt1YmFja2ksIE1pY2hh ZWwgQSA8bWljaGFlbC5hLmt1YmFja2lAaW50ZWwuY29tPjsNCj4gPiA+ID4gPiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbw0KPiA+ID4gPiA+IENjOiBDaGFnYW50eSwgUmFuZ2FzYWkgViA8cmFuZ2FzYWku di5jaGFnYW50eUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyLXBsYXRm b3Jtc11bUEFUQ0ggVjEgMS8xXQ0KPiA+ID4gSW50ZWxTaWxpY29uUGtnL0Jvb3RNZWRpYUxpYjoN Cj4gPiA+ID4gPiBSZWR1Y2UgbGlicmFyeSBBUEkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFJldmll d2VkLWJ5OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBN aWtlLA0KPiA+ID4gPiA+IFRoYW5rcyBmb3IgcmVkdWNpbmcgdGhlIEFQSS4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IEZvciB0aGUgb3RoZXIgY29tbWVudHMgSSByYWlzZWQgKHNpbmdsZSBsaWJyYXJ5 IGluc3RhbmNlIHVzYWJsZQ0KPiA+ID4gPiA+IGZvciBQRUkgYW5kIERYRSksIGRvIHlvdSBoYXZl IGFueSBjb21tZW50cz8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gRnJvbTogS3ViYWNraSwgTWljaGFlbCBB IDxtaWNoYWVsLmEua3ViYWNraUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBTZW50OiBUdWVzZGF5 LCBPY3RvYmVyIDE1LCAyMDE5IDU6MjYgQU0NCj4gPiA+ID4gPiA+IFRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbw0KPiA+ID4gPiA+ID4gQ2M6IENoYWdhbnR5LCBSYW5nYXNhaSBWIDxyYW5nYXNhaS52 LmNoYWdhbnR5QGludGVsLmNvbT47IE5pLA0KPiA+ID4gPiA+ID4gUmF5IDxyYXkubmlAaW50ZWwu Y29tPg0KPiA+ID4gPiA+ID4gU3ViamVjdDogW2VkazItcGxhdGZvcm1zXVtQQVRDSCBWMSAxLzFd DQo+ID4gSW50ZWxTaWxpY29uUGtnL0Jvb3RNZWRpYUxpYjoNCj4gPiA+ID4gPiA+IFJlZHVjZSBs aWJyYXJ5IEFQSQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFJlbW92ZXMgdGhlIGZvbGxvd2lu ZyBmdW5jdGlvbnMgZnJvbSBGaXJtd2FyZUJvb3RNZWRpYUxpYi5oOg0KPiA+ID4gPiA+ID4gICog RmlybXdhcmVCb290TWVkaWFJc1NwaSAoKQ0KPiA+ID4gPiA+ID4gICogRmlybXdhcmVCb290TWVk aWFJc1VmcyAoKQ0KPiA+ID4gPiA+ID4gICogRmlybXdhcmVCb290TWVkaWFJc0VtbWMgKCkNCj4g PiA+ID4gPiA+ICAqIEZpcm13YXJlQm9vdE1lZGlhSXNOdm1lICgpDQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gSXQgaXMgcHJlZmVycmVkIHRvIGhhdmUgYSBzaW5nbGUgbWV0aG9kIHRvIHJldHJp ZXZlIHRoZQ0KPiA+ID4gPiA+ID4gZmlybXdhcmUgYm9vdA0KPiA+ID4gPiA+IG1lZGlhLg0KPiA+ ID4gPiA+ID4gVG8gcmVkdWNlIG92ZXJhbGwgbWFpbnRlbmFuY2UgZWZmb3J0IG92ZXIgdGltZSwg dGhlDQo+ID4gPiA+ID4gPiBGaXJtd2FyZUJvb3RNZWRpYUlzWHh4ICgpIHBhdHRlcm4gaXMgcmVt b3ZlZCBpbiBmYXZvciBvZg0KPiA+ID4gPiA+ID4gcmV0dXJuaW5nIHRoZSBmaXJtd2FyZSBib290 IG1lZGlhIHR5cGUgdmlhDQo+ID4gR2V0RmlybXdhcmVCb290TWVkaWFUeXBlICgpLg0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+IENjOiBTYWkgQ2hhZ2FudHkgPHJhbmdhc2FpLnYuY2hhZ2FudHlA aW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4g PiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgS3ViYWNraSA8bWljaGFlbC5hLmt1YmFj a2lAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4gPg0KPiBTaWxpY29uL0ludGVsL0ludGVsU2ls aWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxpYi9EeGVTbW1GaXJtDQo+ID4gPiA+ ID4gPiB3YXJlQm9vdE1lZGlhTGliLmluZiB8ICAgMSAtDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4 ZVNtbUJvb3RNZWRpYUxpYi9QZWlGDQo+ID4gPiA+ID4gaXINCj4gPiA+ID4gPiBtdw0KPiA+ID4g PiA+IGFyDQo+ID4gPiA+ID4gZUINCj4gPiA+ID4gPiA+IG9vdE1lZGlhTGliLmluZiAgICB8ICAg MSAtDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Q a2cvSW5jbHVkZS9MaWJyYXJ5L0Zpcm13YXJlQm9vdE1lZGkNCj4gPiA+ID4gPiA+IGFMDQo+ID4g PiA+ID4gPiBpYg0KPiA+ID4gPiA+ID4gLmgNCj4gPiA+ID4gPiA+IHwgIDQ4IC0tLS0tLS0tLQ0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gU2lsaWNvbi9JbnRlbC9JbnRlbFNp bGljb25Qa2cvTGlicmFyeS9QZWlEeGVTbW1Cb290TWVkaWFMaWIvRmlybQ0KPiA+ID4gPiA+IHdh DQo+ID4gPiA+ID4gcmUNCj4gPiA+ID4gPiBCbw0KPiA+ID4gPiA+IG8NCj4gPiA+ID4gPiA+IHRN ZWRpYUxpYi5jICAgICAgICAgfCAxMDkgLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4gPiA+ ICA0IGZpbGVzIGNoYW5nZWQsIDE1OSBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPg0K PiA+DQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvTGlicmFyeS9QZWlEeGVTbW1C b290TWVkaWFMaWIvRHhlU21tRmkNCj4gPiA+ID4gPiA+IHINCj4gPiA+ID4gPiA+IG13YXJlQm9v dE1lZGlhTGliLmluZg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4g Pg0KPiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0xpYnJhcnkvUGVpRHhlU21tQm9v dE1lZGlhTGliL0R4ZVNtbUZpDQo+ID4gPiA+ID4gPiByDQo+ID4gPiA+ID4gPiBtd2FyZUJvb3RN ZWRpYUxpYi5pbmYNCj4gPiA+ID4gPiA+IGluZGV4IDgzZWQ1ZjA0YWYuLjdlMTBiNWY3YTcgMTAw NjQ0DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4g PiA+DQo+ID4NCj4gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4 ZVNtbUJvb3RNZWRpYUxpYi9EeGVTbW1GaQ0KPiA+ID4gPiA+ID4gcg0KPiA+ID4gPiA+ID4gbXdh cmVCb290TWVkaWFMaWIuaW5mDQo+ID4gPiA+ID4gPiArKysNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJv b3RNZWRpYUxpYi9EeGVTbW0NCj4gPiA+ID4gPiA+ICsrKyBGaXJtd2FyZUJvb3RNZWRpYUxpYi5p bmYNCj4gPiA+ID4gPiA+IEBAIC0yNyw3ICsyNyw2IEBADQo+ID4gPiA+ID4gPiAgIw0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ICBbU291cmNlc10NCj4gPiA+ID4gPiA+IC0gIEZpcm13YXJlQm9v dE1lZGlhTGliLmMNCj4gPiA+ID4gPiA+ICAgIER4ZVNtbUZpcm13YXJlQm9vdE1lZGlhTGliLmMN Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgW1BhY2thZ2VzXQ0KPiA+ID4gPiA+ID4gZGlmZiAt LWdpdA0KPiA+ID4gPiA+ID4gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5 L1BlaUR4ZVNtbUJvb3RNZWRpYUxpYi8NCj4gPiA+ID4gPiA+IFBlDQo+ID4gPiA+ID4gPiBpRg0K PiA+ID4gPiA+ID4gaXINCj4gPiA+ID4gPiA+IG13DQo+ID4gPiA+ID4gPiBhcg0KPiA+ID4gPiA+ ID4gZUJvb3RNZWRpYUxpYi5pbmYNCj4gPiA+ID4gPiA+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNp bGljb25Qa2cvTGlicmFyeS9QZWlEeGVTbW1Cb290TWVkaWFMaWIvDQo+ID4gPiA+ID4gPiBQZQ0K PiA+ID4gPiA+ID4gaUYNCj4gPiA+ID4gPiA+IGlyDQo+ID4gPiA+ID4gPiBtdw0KPiA+ID4gPiA+ ID4gYXINCj4gPiA+ID4gPiA+IGVCb290TWVkaWFMaWIuaW5mDQo+ID4gPiA+ID4gPiBpbmRleCAw NjNjNDAyN2QzLi5mZjFkYTMxMzg3IDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4g PiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1l ZGlhTGliLw0KPiA+ID4gPiA+ID4gUGUNCj4gPiA+ID4gPiA+IGlGDQo+ID4gPiA+ID4gPiBpcg0K PiA+ID4gPiA+ID4gbXcNCj4gPiA+ID4gPiA+IGFyDQo+ID4gPiA+ID4gPiBlQm9vdE1lZGlhTGli LmluZg0KPiA+ID4gPiA+ID4gKysrIGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvTGli cmFyeS9QZWlEeGVTbW1Cb290TWVkaWENCj4gPiA+ID4gPiA+ICsrKyBMaQ0KPiA+ID4gPiA+ID4g KysrIGIvDQo+ID4gPiA+ID4gPiArKysgUGUNCj4gPiA+ID4gPiA+ICsrKyBpRg0KPiA+ID4gPiA+ ID4gKysrIGlyDQo+ID4gPiA+ID4gPiArKysgbXdhcmVCb290TWVkaWFMaWIuaW5mDQo+ID4gPiA+ ID4gPiBAQCAtMjIsNyArMjIsNiBAQA0KPiA+ID4gPiA+ID4gICAgTElCUkFSWV9DTEFTUyAgICAg ICAgPSBGaXJtd2FyZUJvb3RNZWRpYUxpYg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICBbU291 cmNlc10NCj4gPiA+ID4gPiA+IC0gIEZpcm13YXJlQm9vdE1lZGlhTGliLmMNCj4gPiA+ID4gPiA+ ICAgIFBlaUZpcm13YXJlQm9vdE1lZGlhTGliLmMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAg W1BhY2thZ2VzXQ0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPiA+ID4gYS9TaWxpY29u L0ludGVsL0ludGVsU2lsaWNvblBrZy9JbmNsdWRlL0xpYnJhcnkvRmlybXdhcmVCb290TWUNCj4g PiA+ID4gPiA+IGRpDQo+ID4gPiA+ID4gPiBhTA0KPiA+ID4gPiA+ID4gaWINCj4gPiA+ID4gPiA+ IC5oDQo+ID4gPiA+ID4gPiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0luY2x1ZGUv TGlicmFyeS9GaXJtd2FyZUJvb3RNZQ0KPiA+ID4gPiA+ID4gZGkNCj4gPiA+ID4gPiA+IGFMDQo+ ID4gPiA+ID4gPiBpYg0KPiA+ID4gPiA+ID4gLmgNCj4gPiA+ID4gPiA+IGluZGV4IGFjYTk1OTNh ODQuLmIzNmViYWNmMzAgMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+IGEvU2ls aWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvSW5jbHVkZS9MaWJyYXJ5L0Zpcm13YXJlQm9vdE1l DQo+ID4gPiA+ID4gPiBkaQ0KPiA+ID4gPiA+ID4gYUwNCj4gPiA+ID4gPiA+IGliDQo+ID4gPiA+ ID4gPiAuaA0KPiA+ID4gPiA+ID4gKysrIGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cv SW5jbHVkZS9MaWJyYXJ5L0Zpcm13YXJlQm8NCj4gPiA+ID4gPiA+ICsrKyBvdA0KPiA+ID4gPiA+ ID4gKysrIE1lDQo+ID4gPiA+ID4gPiArKysgZGkNCj4gPiA+ID4gPiA+ICsrKyBhTA0KPiA+ID4g PiA+ID4gKysrIGliDQo+ID4gPiA+ID4gPiArKysgLmgNCj4gPiA+ID4gPiA+IEBAIC01NSw1MiAr NTUsNCBAQCBGaXJtd2FyZUJvb3RNZWRpYUlzS25vd24gKA0KPiA+ID4gPiA+ID4gICAgVk9JRA0K PiA+ID4gPiA+ID4gICAgKTsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAtLyoqDQo+ID4gPiA+ ID4gPiAtICBEZXRlcm1pbmVzIGlmIHRoZSBwbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZy b20gU1BJLg0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gLSAgQHJldHZhbCBUUlVFICAgICAg ICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gU1BJDQo+ID4gPiA+ID4gPiAtICBA cmV0dmFsIEZBTFNFICAgICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBhIG5v bi1TUEkNCj4gPiBkZXZpY2UNCj4gPiA+IG9yDQo+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiBi b290IG1lZGlhIGlzIHVua25vd24NCj4gPiA+ID4gPiA+IC0qKi8NCj4gPiA+ID4gPiA+IC1CT09M RUFODQo+ID4gPiA+ID4gPiAtRUZJQVBJDQo+ID4gPiA+ID4gPiAtRmlybXdhcmVCb290TWVkaWFJ c1NwaSAoDQo+ID4gPiA+ID4gPiAtICBWT0lEDQo+ID4gPiA+ID4gPiAtICApOw0KPiA+ID4gPiA+ ID4gLQ0KPiA+ID4gPiA+ID4gLS8qKg0KPiA+ID4gPiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUg cGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIFVGUy4NCj4gPiA+ID4gPiA+IC0NCj4g PiA+ID4gPiA+IC0gIEByZXR2YWwgVFJVRSAgICAgICAgUGxhdGZvcm0gZmlybXdhcmUgaXMgYm9v dGluZyBmcm9tIFVGUw0KPiA+ID4gPiA+ID4gLSAgQHJldHZhbCBGQUxTRSAgICAgICBQbGF0Zm9y bSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gYSBub24tVUZTDQo+ID4gZGV2aWNlDQo+ID4gPiA+ IG9yDQo+ID4gPiA+ID4gPiB0aGUgYm9vdCBtZWRpYSBpcyB1bmtub3duDQo+ID4gPiA+ID4gPiAt KiovDQo+ID4gPiA+ID4gPiAtQk9PTEVBTg0KPiA+ID4gPiA+ID4gLUVGSUFQSQ0KPiA+ID4gPiA+ ID4gLUZpcm13YXJlQm9vdE1lZGlhSXNVZnMgKA0KPiA+ID4gPiA+ID4gLSAgVk9JRA0KPiA+ID4g PiA+ID4gLSAgKTsNCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0vKioNCj4gPiA+ID4gPiA+ IC0gIERldGVybWluZXMgaWYgdGhlIHBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBl TU1DLg0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gLSAgQHJldHZhbCBUUlVFICAgICAgICBQ bGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gZU1NQw0KPiA+ID4gPiA+ID4gLSAgQHJl dHZhbCBGQUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gYSBub24t ZU1NQw0KPiA+ID4gPiBkZXZpY2UNCj4gPiA+ID4gPiBvcg0KPiA+ID4gPiA+ID4gdGhlIGJvb3Qg bWVkaWEgaXMgdW5rbm93bg0KPiA+ID4gPiA+ID4gLSoqLw0KPiA+ID4gPiA+ID4gLUJPT0xFQU4N Cj4gPiA+ID4gPiA+IC1FRklBUEkNCj4gPiA+ID4gPiA+IC1GaXJtd2FyZUJvb3RNZWRpYUlzRW1t YyAoDQo+ID4gPiA+ID4gPiAtICBWT0lEDQo+ID4gPiA+ID4gPiAtICApOw0KPiA+ID4gPiA+ID4g LQ0KPiA+ID4gPiA+ID4gLS8qKg0KPiA+ID4gPiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxh dGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIE5WTWUuDQo+ID4gPiA+ID4gPiAtDQo+ID4g PiA+ID4gPiAtICBAcmV0dmFsIFRSVUUgICAgICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3Rp bmcgZnJvbSBOVk1lLg0KPiA+ID4gPiA+ID4gLSAgQHJldHZhbCBGQUxTRSAgICAgICBQbGF0Zm9y bSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gYSBub24tTlZNZQ0KPiA+ID4gPiBkZXZpY2UNCj4g PiA+ID4gPiBvcg0KPiA+ID4gPiA+ID4gdGhlIGJvb3QgbWVkaWEgaXMgdW5rbm93bg0KPiA+ID4g PiA+ID4gLSoqLw0KPiA+ID4gPiA+ID4gLUJPT0xFQU4NCj4gPiA+ID4gPiA+IC1FRklBUEkNCj4g PiA+ID4gPiA+IC1GaXJtd2FyZUJvb3RNZWRpYUlzTnZtZSAoDQo+ID4gPiA+ID4gPiAtICBWT0lE DQo+ID4gPiA+ID4gPiAtICApOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gICNlbmRpZg0K PiA+ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPiA+ID4gYS9TaWxpY29uL0ludGVsL0ludGVs U2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxpYi8NCj4gPiA+ID4gPiA+IEZp DQo+ID4gPiA+ID4gPiBybQ0KPiA+ID4gPiA+ID4gd2ENCj4gPiA+ID4gPiA+IHJlDQo+ID4gPiA+ ID4gPiBCDQo+ID4gPiA+ID4gPiBvb3RNZWRpYUxpYi5jDQo+ID4gPiA+ID4gPiBiL1NpbGljb24v SW50ZWwvSW50ZWxTaWxpY29uUGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGliLw0KPiA+ ID4gPiA+ID4gRmkNCj4gPiA+ID4gPiA+IHJtDQo+ID4gPiA+ID4gPiB3YQ0KPiA+ID4gPiA+ID4g cmUNCj4gPiA+ID4gPiA+IEINCj4gPiA+ID4gPiA+IG9vdE1lZGlhTGliLmMNCj4gPiA+ID4gPiA+ IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ID4gaW5kZXggMTFhMTRkMTcyZC4u MDAwMDAwMDAwMA0KPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiBhL1NpbGljb24vSW50ZWwv SW50ZWxTaWxpY29uUGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGliLw0KPiA+ID4gPiA+ ID4gRmkNCj4gPiA+ID4gPiA+IHJtDQo+ID4gPiA+ID4gPiB3YQ0KPiA+ID4gPiA+ID4gcmUNCj4g PiA+ID4gPiA+IEINCj4gPiA+ID4gPiA+IG9vdE1lZGlhTGliLmMNCj4gPiA+ID4gPiA+ICsrKyAv ZGV2L251bGwNCj4gPiA+ID4gPiA+IEBAIC0xLDEwOSArMCwwIEBADQo+ID4gPiA+ID4gPiAtLyoq IEBmaWxlDQo+ID4gPiA+ID4gPiAtICBUaGlzIGxpYnJhcnkgaWRlbnRpZmllcyB0aGUgZmlybXdh cmUgYm9vdCBtZWRpYSBkZXZpY2UuDQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtICBUaGUg ZmlybXdhcmUgYm9vdCBtZWRpYSBkZXZpY2UgaXMgdXNlZCB0byBtYWtlIHN5c3RlbQ0KPiA+ID4g PiA+ID4gaW5pdGlhbGl6YXRpb24gZGVjaXNpb25zIGluIHRoZSBib290IGZsb3cgZGVwZW5kZW50 DQo+ID4gPiA+ID4gPiAtICB1cG9uIGZpcm13YXJlIGJvb3QgbWVkaWEuIE5vdGUgdGhhdCB0aGUg ZmlybXdhcmUgYm9vdCBtZWRpYQ0KPiA+ID4gPiA+ID4gaXMgdGhlIHN0b3JhZ2UgbWVkaWEgdGhh dCB0aGUgYm9vdCBmaXJtd2FyZSBpcyBzdG9yZWQgb24uDQo+ID4gPiA+ID4gPiAtICBJdCBpcyBu b3QgdGhlIE9TIHN0b3JhZ2UgbWVkaWEgd2hpY2ggbWF5IGJlIHN0b3JlZCB1cG9uIGENCj4gPiA+ ID4gPiA+IGRpZmZlcmVudA0KPiA+ID4gPiA+ID4gbm9uLSB2b2xhdGlsZSBzdG9yYWdlIGRldmlj ZS4NCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0gIFRoaXMgZmlsZSBjb250YWlucyBsaWJy YXJ5IGltcGxlbWVudGF0aW9uIGNvbW1vbiB0byBhbGwgYm9vdA0KPiBwaGFzZXMuDQo+ID4gPiA+ ID4gPiAtDQo+ID4gPiA+ID4gPiAtQ29weXJpZ2h0IChjKSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cw0KPiA+ID4gPiA+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPiA+ID4gLVNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPiA+ID4gPiAt DQo+ID4gPiA+ID4gPiAtKiovDQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtI2luY2x1ZGUg PExpYnJhcnkvQmFzZUxpYi5oPg0KPiA+ID4gPiA+ID4gLSNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVn TGliLmg+IC0jaW5jbHVkZQ0KPiA+ID4gPiA+ID4gPExpYnJhcnkvRmlybXdhcmVCb290TWVkaWFM aWIuaD4NCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0vKioNCj4gPiA+ID4gPiA+IC0gIERl dGVybWluZXMgaWYgdGhlIHBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBTUEkuDQo+ ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtICBAcmV0dmFsIFRSVUUgICAgICAgIFBsYXRmb3Jt IGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBTUEkNCj4gPiA+ID4gPiA+IC0gIEByZXR2YWwgRkFM U0UgICAgICAgUGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIGEgbm9uLVNQSQ0KPiA+ IGRldmljZQ0KPiA+ID4gb3INCj4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+IGJvb3QgbWVkaWEg aXMgdW5rbm93bg0KPiA+ID4gPiA+ID4gLSoqLw0KPiA+ID4gPiA+ID4gLUJPT0xFQU4NCj4gPiA+ ID4gPiA+IC1FRklBUEkNCj4gPiA+ID4gPiA+IC1GaXJtd2FyZUJvb3RNZWRpYUlzU3BpICgNCj4g PiA+ID4gPiA+IC0gIFZPSUQNCj4gPiA+ID4gPiA+IC0gICkNCj4gPiA+ID4gPiA+IC17DQo+ID4g PiA+ID4gPiAtICBFRklfU1RBVFVTICAgICAgICAgIFN0YXR1czsNCj4gPiA+ID4gPiA+IC0gIEZX X0JPT1RfTUVESUFfVFlQRSAgQm9vdE1lZGlhOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4g LSAgU3RhdHVzID0gR2V0RmlybXdhcmVCb290TWVkaWFUeXBlICgmQm9vdE1lZGlhKTsNCj4gPiA+ ID4gPiA+IC0gIGlmIChFRklfRVJST1IgKFN0YXR1cykgfHwgQm9vdE1lZGlhICE9IEZ3Qm9vdE1l ZGlhU3BpKSB7DQo+ID4gPiA+ID4gPiAtICAgIHJldHVybiBGQUxTRTsNCj4gPiA+ID4gPiA+IC0g IH0gZWxzZSB7DQo+ID4gPiA+ID4gPiAtICAgIHJldHVybiBUUlVFOw0KPiA+ID4gPiA+ID4gLSAg fQ0KPiA+ID4gPiA+ID4gLX0NCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0vKioNCj4gPiA+ ID4gPiA+IC0gIERldGVybWluZXMgaWYgdGhlIHBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3Rpbmcg ZnJvbSBVRlMuDQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtICBAcmV0dmFsIFRSVUUgICAg ICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBVRlMNCj4gPiA+ID4gPiA+IC0g IEByZXR2YWwgRkFMU0UgICAgICAgUGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIGEg bm9uLVVGUw0KPiA+IGRldmljZQ0KPiA+ID4gPiBvcg0KPiA+ID4gPiA+ID4gdGhlIGJvb3QgbWVk aWEgaXMgdW5rbm93bg0KPiA+ID4gPiA+ID4gLSoqLw0KPiA+ID4gPiA+ID4gLUJPT0xFQU4NCj4g PiA+ID4gPiA+IC1FRklBUEkNCj4gPiA+ID4gPiA+IC1GaXJtd2FyZUJvb3RNZWRpYUlzVWZzICgN Cj4gPiA+ID4gPiA+IC0gIFZPSUQNCj4gPiA+ID4gPiA+IC0gICkNCj4gPiA+ID4gPiA+IC17DQo+ ID4gPiA+ID4gPiAtICBFRklfU1RBVFVTICAgICAgICAgIFN0YXR1czsNCj4gPiA+ID4gPiA+IC0g IEZXX0JPT1RfTUVESUFfVFlQRSAgQm9vdE1lZGlhOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ ID4gLSAgU3RhdHVzID0gR2V0RmlybXdhcmVCb290TWVkaWFUeXBlICgmQm9vdE1lZGlhKTsNCj4g PiA+ID4gPiA+IC0gIGlmIChFRklfRVJST1IgKFN0YXR1cykgfHwgQm9vdE1lZGlhICE9IEZ3Qm9v dE1lZGlhVWZzKSB7DQo+ID4gPiA+ID4gPiAtICAgIHJldHVybiBGQUxTRTsNCj4gPiA+ID4gPiA+ IC0gIH0gZWxzZSB7DQo+ID4gPiA+ID4gPiAtICAgIHJldHVybiBUUlVFOw0KPiA+ID4gPiA+ID4g LSAgfQ0KPiA+ID4gPiA+ID4gLX0NCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0vKioNCj4g PiA+ID4gPiA+IC0gIERldGVybWluZXMgaWYgdGhlIHBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3Rp bmcgZnJvbSBlTU1DLg0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gLSAgQHJldHZhbCBUUlVF ICAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gZU1NQw0KPiA+ID4gPiA+ ID4gLSAgQHJldHZhbCBGQUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZy b20gYSBub24tZU1NQw0KPiA+ID4gPiBkZXZpY2UNCj4gPiA+ID4gPiBvcg0KPiA+ID4gPiA+ID4g dGhlIGJvb3QgbWVkaWEgaXMgdW5rbm93bg0KPiA+ID4gPiA+ID4gLSoqLw0KPiA+ID4gPiA+ID4g LUJPT0xFQU4NCj4gPiA+ID4gPiA+IC1FRklBUEkNCj4gPiA+ID4gPiA+IC1GaXJtd2FyZUJvb3RN ZWRpYUlzRW1tYyAoDQo+ID4gPiA+ID4gPiAtICBWT0lEDQo+ID4gPiA+ID4gPiAtICApDQo+ID4g PiA+ID4gPiAtew0KPiA+ID4gPiA+ID4gLSAgRUZJX1NUQVRVUyAgICAgICAgICBTdGF0dXM7DQo+ ID4gPiA+ID4gPiAtICBGV19CT09UX01FRElBX1RZUEUgIEJvb3RNZWRpYTsNCj4gPiA+ID4gPiA+ IC0NCj4gPiA+ID4gPiA+IC0gIFN0YXR1cyA9IEdldEZpcm13YXJlQm9vdE1lZGlhVHlwZSAoJkJv b3RNZWRpYSk7DQo+ID4gPiA+ID4gPiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpIHx8IEJvb3RN ZWRpYSAhPSBGd0Jvb3RNZWRpYUVtbWMpIHsNCj4gPiA+ID4gPiA+IC0gICAgcmV0dXJuIEZBTFNF Ow0KPiA+ID4gPiA+ID4gLSAgfSBlbHNlIHsNCj4gPiA+ID4gPiA+IC0gICAgcmV0dXJuIFRSVUU7 DQo+ID4gPiA+ID4gPiAtICB9DQo+ID4gPiA+ID4gPiAtfQ0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4g PiA+ID4gLS8qKg0KPiA+ID4gPiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxhdGZvcm0gZmly bXdhcmUgaXMgYm9vdGluZyBmcm9tIE5WTWUuDQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAt ICBAcmV0dmFsIFRSVUUgICAgICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBO Vk1lLg0KPiA+ID4gPiA+ID4gLSAgQHJldHZhbCBGQUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2Fy ZSBpcyBib290aW5nIGZyb20gYSBub24tTlZNZQ0KPiA+ID4gPiBkZXZpY2UNCj4gPiA+ID4gPiBv cg0KPiA+ID4gPiA+ID4gdGhlIGJvb3QgbWVkaWEgaXMgdW5rbm93bg0KPiA+ID4gPiA+ID4gLSoq Lw0KPiA+ID4gPiA+ID4gLUJPT0xFQU4NCj4gPiA+ID4gPiA+IC1FRklBUEkNCj4gPiA+ID4gPiA+ IC1GaXJtd2FyZUJvb3RNZWRpYUlzTnZtZSAoDQo+ID4gPiA+ID4gPiAtICBWT0lEDQo+ID4gPiA+ ID4gPiAtICApDQo+ID4gPiA+ID4gPiAtew0KPiA+ID4gPiA+ID4gLSAgRUZJX1NUQVRVUyAgICAg ICAgICBTdGF0dXM7DQo+ID4gPiA+ID4gPiAtICBGV19CT09UX01FRElBX1RZUEUgIEJvb3RNZWRp YTsNCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0gIFN0YXR1cyA9IEdldEZpcm13YXJlQm9v dE1lZGlhVHlwZSAoJkJvb3RNZWRpYSk7DQo+ID4gPiA+ID4gPiAtICBpZiAoRUZJX0VSUk9SIChT dGF0dXMpIHx8IEJvb3RNZWRpYSAhPSBGd0Jvb3RNZWRpYU52bWUpIHsNCj4gPiA+ID4gPiA+IC0g ICAgcmV0dXJuIEZBTFNFOw0KPiA+ID4gPiA+ID4gLSAgfSBlbHNlIHsNCj4gPiA+ID4gPiA+IC0g ICAgcmV0dXJuIFRSVUU7DQo+ID4gPiA+ID4gPiAtICB9DQo+ID4gPiA+ID4gPiAtfQ0KPiA+ID4g PiA+ID4gLS0NCj4gPiA+ID4gPiA+IDIuMTYuMi53aW5kb3dzLjENCj4gPiA+ID4gPg0KPiA+ID4g Pg0KPiA+ID4NCj4gPg0KPiANCg0K