From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web11.499.1623937923793266821 for ; Thu, 17 Jun 2021 06:52:03 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=wNhf2nhz; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: maurice.ma@intel.com) IronPort-SDR: 3H+QURBQPgmX5xUhz5YmqWZaQFfOCFlbohNQ5qEFjZvo8BnDSg0ZXva7yp2tud6jSKOZ4lIoPS G7xNWy2h/t/Q== X-IronPort-AV: E=McAfee;i="6200,9189,10017"; a="267518969" X-IronPort-AV: E=Sophos;i="5.83,280,1616482800"; d="scan'208";a="267518969" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jun 2021 06:52:03 -0700 IronPort-SDR: whMiSQQDFAhSxjP7cHXBNqX1cmmK670pcWY4Bo8YlGBQ4FJI8eKJ1rv4GOKdIQ3FpdZQ0sVwHY tLOWuVppIefQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,280,1616482800"; d="scan'208";a="555207297" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 17 Jun 2021 06:52:02 -0700 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Thu, 17 Jun 2021 06:52:02 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Thu, 17 Jun 2021 06:52:02 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.47) 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.2242.4; Thu, 17 Jun 2021 06:52:01 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O0E2TBXJPsGINhJhNjaPXbqLGlYOPw5SaaA0jDlQuTk6veEVqyl5ejNUOH72QnijK3/e8PMF/3UWRoVwX9DBisuiU7F4LnlP6lvINn3VasZJPH9Y/GkAwC0Ean9++ciZleXlnSHSz+bDUeIMcCALzp0IRJdQzNm2zu4TkTb/LVWWhDOBHcfrKxmvY0rTL2ukjGBOagPDCUvBr9iXQ5Aw0v7HSbnyhkznuZCd8AupnjfpfZo0rha4Oafk6vbZDhwKS+WQn9rESzt+YwG4gnB0VmPJuHDM7OmSlCfRaFO8lGU6KXJx1B1eO3uSVcm6ZLt/DCGj6U1hqzWvcaQOQKdVJA== 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=S5wpPFTY9YZU5+nqUYt+dofWRXtQSUNLPX/vpu9mlRc=; b=HA7ApxMYKzkYwW6TXQMdxkdx93LdPM6LY0kin+M25TAynL4yP9je14J8G9WVSjbm219j07CNbtOfWROg1Q196lqoq7fQpcxYtu4Z12GKpa3Vhj1UHuKLm+CqCEsWSKyN7nTZ8+CHIBfQkFEKn59JpB1+c1W5H/GuNKbZS94kpwRI/Z0eUFncuq7NRSYfAfzbKgf+7CXVtmJKsiTXxi1ozzPhQQ455b9DQCMC2nepX4vpXxA1vGGoCsmyRPPliDyQBGj8LbbYOavRG3ZMpA7xxwPqrzl1SbAkQnJuNPoLDJ8EO3QBl+XQpVtSzA3RNOtoj3fOVOlDhdFPof5SBNRDDw== 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=S5wpPFTY9YZU5+nqUYt+dofWRXtQSUNLPX/vpu9mlRc=; b=wNhf2nhzlN43KPZO0lRlK704mIXBqfahcWjyPIjV4qIqVZz/pSWrl8uRRctJUlp0fEBv4oOdBivXc9Sea6Fud4xFweP7wetahOSywArqt1RSwT0oIbhnQ2XornVchfbt8wQfPaMoBjUNkPRs6Rzoa+dFfB/Kw7s5LFs6pc8ClbU= Received: from CO1PR11MB4945.namprd11.prod.outlook.com (2603:10b6:303:9c::8) by CO1PR11MB5073.namprd11.prod.outlook.com (2603:10b6:303:92::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.24; Thu, 17 Jun 2021 13:52:00 +0000 Received: from CO1PR11MB4945.namprd11.prod.outlook.com ([fe80::74c3:dd4a:c4aa:6c8d]) by CO1PR11MB4945.namprd11.prod.outlook.com ([fe80::74c3:dd4a:c4aa:6c8d%7]) with mapi id 15.20.4242.021; Thu, 17 Jun 2021 13:52:00 +0000 From: "Ma, Maurice" To: Patrick Rudolph CC: "devel@edk2.groups.io" , "Dong, Guo" , "You, Benjamin" Subject: Re: [PATCH] UefiPayloadPkg/UefiPayloadEntry: Improve bootloader memrange parsing Thread-Topic: [PATCH] UefiPayloadPkg/UefiPayloadEntry: Improve bootloader memrange parsing Thread-Index: AQHXYemYBCNsyShcbkae8mwspl+3D6sXO+yggAD3dgCAAAfPIA== Date: Thu, 17 Jun 2021 13:51:59 +0000 Message-ID: References: <20210615132254.3364910-1-patrick.rudolph@9elements.com> In-Reply-To: Accept-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: 9elements.com; dkim=none (message not signed) header.d=none;9elements.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [104.153.200.60] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a2fce730-83c6-4b2a-eeb0-08d931971485 x-ms-traffictypediagnostic: CO1PR11MB5073: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nDE1I6TjnN9Q2962zK6KeSHQQSlvgSh4leN02nywAHiyikuMRxRMkDfRrHfFZQUIaKSTe+h9j4zpbLFh810yIDgQGqmOv+sdXn1Y5zCZgTQX4ID8Nsrvjn574TUCIJn17qmd9bdaTiR7SrK2oHqDgsXAj0n2DNZszhHJbhOEV7olRy39OxpHG9kBcewPeIfouobCZw7r1swlYOoUmSI0sx6/hT517Idlp4uQ2kCt/z0kOVXFPRKIQz0klTfhfjsKbhrN3FpxPxakFaz/jEZvVXmZHElwhCAqNXmQbyNAZGu2+R/eQNbRALEoBbjnI3HBXH2VDfPnG+jYY/leJYAdhwT4eRG6ig1BsW3obfIyGnhwsEuFqrFqrFsGkVLUqx6Xpmf4mIie9VtUuEEqHmYjaX4r5X1rajyslsiuEjtTN5axF58dVphjVbAzfe/LtZtxZK+VwqwiQc2w9yVpfVZQd60i3HsK6o6F0Oh8I8pW7YnLZhAi1Wbfq1p6IIv5QqkN4MRHABgDSuBNWMHyci4N0vH/+OsmqVz6uxh4tC2Gs3aeCGA2JiqHmMeFxcU6f4L2vOMRd0xt1rLEKZJvtdEVjsOSAkVnGVrt1goo45tvMdA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4945.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(136003)(346002)(396003)(39860400002)(366004)(71200400001)(76116006)(8676002)(66556008)(6916009)(5660300002)(4326008)(26005)(54906003)(9686003)(6506007)(2906002)(53546011)(7696005)(55016002)(107886003)(33656002)(86362001)(186003)(478600001)(66446008)(30864003)(52536014)(38100700002)(66476007)(64756008)(122000001)(8936002)(316002)(66946007)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SXQvTmZIU2dRSjdTVnhEVzNrdFNSUXVOTVkzTlpHTDhFOWZ3UCtUWGk0QTZC?= =?utf-8?B?OTRadWNJUTY5UURFbmJLK0M3VWRzdkNLb0pwbm1DYnU3andYUjVZOUt5bFMw?= =?utf-8?B?SzNTby9iRXNWbjlGQnpBQkhzMEQwNys1elJuc01sUVVrbE0wZkVZTmcwMy9H?= =?utf-8?B?eGliYlpQbGhxSUZpRi9SK0hSbEF0RC95NkFiZ2JWY01waWJNK3JUc0lxWmFv?= =?utf-8?B?czAvNEFZcjVEWEtzT2tIVHlsZG5KYlJJQUwzQnVNMm1jdXBkYUtzakUxM1lp?= =?utf-8?B?S0UvNmRKcW1FbmtoT0JXYXVEcmJCVThWaWZKempOeUxucEdXY0JvalZHTjZL?= =?utf-8?B?UFFVQXNEOWpYTUJKWnlnL3NWa0tCZ0lNSU1lcHdjaU9TZGY2dmF3aHVXNjc1?= =?utf-8?B?RHA4NkREUWxrdkx5RDBKbkRFUG9FMkhnSGhYNDh6c1VmbGFFNjUzMGxvRVRi?= =?utf-8?B?YThBL3g4WHRKR20wOUJqMlJKVnd4WlUwL2ZHVmVobFRVVHBtRmRWS0hwNFU4?= =?utf-8?B?WW1yVXI5VWtQaldmS1V1T3o4c3U0czRLZXFsUjM2ZzB2enFWeTFxSGxhUmxy?= =?utf-8?B?c04yQlZ6eWFKclZOSERBTGJodWNNdXpwSVpxc3I2QTNoNDdqZW1vZjVseGNv?= =?utf-8?B?UjhpWHExNXNoajRlVVN6anlaejJYWGg5UnZEdk40Yks1RlJRT244V0NNTzF5?= =?utf-8?B?ZmpJc0RGRDFXazB2S0NmVXZ0MWZvK0tLaUtUWnB0MzV2cXFHbEhxQXhhdzdn?= =?utf-8?B?cTB5WHN0R09nc2h3dlBzcmFsVUYxMTI2bVJpaDlLQVlVMFNVR2FicndlM052?= =?utf-8?B?S29xdGZFMFVZRDVISklwcG5PbmFtYjFLVlVKSnNhcW1VdmlmeHArT0N5dG5r?= =?utf-8?B?ZU5OajdOOVZoOHRnT2lUUThGaXNDZ21SRWl5TzBSYW4xWDg1bDlTa0hNOUhx?= =?utf-8?B?SHJhZ3hpUHA4cS9Gc0dlN3JrVmRCL2t5UTJ4RTMyRTdoOUlVQS9HdFlwa2d5?= =?utf-8?B?MFZBS2ltL0Q4ZWdVenhmZzFkY1U0WmZnT0tGQXFpa3NoSHBIQm04Zm53cTdH?= =?utf-8?B?dlJlanNRT3hPY2cxZGk0dkZhZllDYUtqUmJET0wrbjNVdVFqUzAyRFY5ZXVo?= =?utf-8?B?MzBLYVcvd05TOFZlTWx6SVJwWER0elRZOWYrODE1dXBUUGJvYTd6T0U2bXpQ?= =?utf-8?B?ZVg4Qzh4cHZIakVsZ3NvQzhBUGVGUXhRTk5tTVp5d1dxY1I2K3BQa2xhV1BU?= =?utf-8?B?bHdVUU5qYU5ZN0F1NjFHb25UbUlHbTdZSXd3RklTT3hZblEwd1VVbDU4V09Z?= =?utf-8?B?RWRpY1hTaHREMGVsUndtNlFPakt2d3d5MUNDaVBZbFRoR0ozODYrR3lPRkEx?= =?utf-8?B?YmdMY2k4cG94NHdNRGU0OFFKN25TcmJSanhocDllV0g0b3hrajA0L1luNExP?= =?utf-8?B?UDdFUUFFNHJhZWc2S3BCY2lYU0pNejE2ZWthcGFQYjEyTjV6SjA2UFA1STBz?= =?utf-8?B?NStNKzY1a254YmJidm9xeldBR2Ixam14R2lMMjVGVkNNR0I2Mlg3eGgvOEZ3?= =?utf-8?B?NmR6U052ZGw3aTNvbWJRbHJRZW92Wmkyd3F0dkVzcE9la045NkFPaXd4RGEy?= =?utf-8?B?ZHVnc25vR2dNQWVIZ0VHNjVTMTRhQlRmN0dQOVV1NjFzbUtUbjAyMW03Rnhv?= =?utf-8?B?VzVJcjk2K2FTeXIvZE5OWWlTWG5uTklDQllCSDQyYks0MDBjK0c5ZXFtalhu?= =?utf-8?Q?53AhqRxQS7c+ygoX9j0X6QP76pNOnlWNnJQUPFX?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4945.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a2fce730-83c6-4b2a-eeb0-08d931971485 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jun 2021 13:51:59.7935 (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: bZrIidx3qq/vCTy/5pglLkEtII66hVubfkAyRy2dCcksNUEVIA6ob+UmVBFrIYG+93NVrE6Ypiz6oLH0zMjhSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5073 Return-Path: maurice.ma@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIFBhdHJpY2ssDQoNClRoYW5rIHlvdSwgIEkgd2lsbCB0YWtlIGEgbG9vayBvbiB0aGUgbmV3 IHBhdGNoIQ0KDQpSZWdhcmRzDQpNYXVyaWNlDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+IEZyb206IFBhdHJpY2sgUnVkb2xwaCA8cGF0cmljay5ydWRvbHBoQDllbGVtZW50cy5jb20+ DQo+IFNlbnQ6IFRodXJzZGF5LCBKdW5lIDE3LCAyMDIxIDY6MjENCj4gVG86IE1hLCBNYXVyaWNl IDxtYXVyaWNlLm1hQGludGVsLmNvbT4NCj4gQ2M6IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBEb25n LCBHdW8gPGd1by5kb25nQGludGVsLmNvbT47IFlvdSwNCj4gQmVuamFtaW4gPGJlbmphbWluLnlv dUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIFVlZmlQYXlsb2FkUGtnL1VlZmlQ YXlsb2FkRW50cnk6IEltcHJvdmUgYm9vdGxvYWRlcg0KPiBtZW1yYW5nZSBwYXJzaW5nDQo+IA0K PiBIaSBNYXVyaWNlLA0KPiBJJ3ZlIGltcGxlbWVudGVkIHRoZSByZXF1ZXN0ZWQgY2hhbmdlcy4g SXQgbm93IGFsc28gYWNjZXB0cyBBQ1BJX05WUyBhcw0KPiB1c2FibGUgRFJBTS4NCj4gDQo+IFRo YW5rcywNCj4gUGF0cmljaw0KPiANCj4gT24gVGh1LCBKdW4gMTcsIDIwMjEgYXQgMjozMyBBTSBN YSwgTWF1cmljZSA8bWF1cmljZS5tYUBpbnRlbC5jb20+DQo+IHdyb3RlOg0KPiA+DQo+ID4gSGks IFJ1ZG9scGgsDQo+ID4NCj4gPiBUaGFuayB5b3UgZm9yIHN1Ym1pdHRpbmcgdGhlIHBhdGNoLiAg IEluIGdlbmVyYWwgdGhlIGFwcHJvYWNoIGxvb2tzIGdvb2QgdG8NCj4gbWUuDQo+ID4gSGVyZSBJ IGhhdmUgc2V2ZXJhbCBtaW5vciBjb21tZW50cyBvbiB5b3VyIHBhdGNoIGFzIGxpc3RlZCBiZWxv dzoNCj4gPg0KPiA+IDEuICBGb3IgZ2xvYmFsIHZhcmlhYmxlIGluIG1vZHVsZSwgY291bGQgd2Ug YWRkICJtIiBwcmVmaXggPyAgIEVYOiAgQ2hhbmdlDQo+ICJUb3BPZkxvd2VyVXNhYmxlRHJhbSIg dG8gIm1Ub3BPZkxvd2VyVXNhYmxlRHJhbSIgPw0KPiA+DQo+ID4gMi4gIFBsZWFzZSByZW5hbWUg Ik1lbUluZm9DYWxsYmFja01NSU8iIHRvICJNZW1JbmZvQ2FsbGJhY2tNbWlvIg0KPiB0byBmb2xs b3cgbmFtaW5nIGNvbnZlbnRpb24uDQo+ID4NCj4gPiAzLiAgTWF5YmUgd2UgY2FuIGFkZCBwYXJl bnRoZXNlcyBmb3Igc29tZSBjb25kaXRpb24gZXhwcmVzc2lvbnMgdG8gbWFrZQ0KPiBpdCBlYXNp ZXIgdG8gcmVhZC4NCj4gPiAgICAgIEVYOiAgQ2hhbmdlOg0KPiA+ICAgICAgICAgICAgKE1lbW9y eU1hcEVudHJ5LT5CYXNlIDwgMHgxMDAwMDAwMDBVTEwgJiYgIE1lbW9yeU1hcEVudHJ5LQ0KPiA+ QmFzZSA+PSBUb3BPZkxvd2VyVXNhYmxlRHJhbSkNCj4gPiAgICAgICAgICAgICAgVG86DQo+ID4g ICAgICAgICAgICAoKE1lbW9yeU1hcEVudHJ5LT5CYXNlIDwgMHgxMDAwMDAwMDBVTEwpICYmDQo+ ID4gKE1lbW9yeU1hcEVudHJ5LT5CYXNlID49IFRvcE9mTG93ZXJVc2FibGVEcmFtKSkNCj4gPg0K PiA+IDQuICBJZiB3ZSB1c2UgIkVGSV9TVEFUVVMiIGZvciBmdW5jdGlvbiBzdGF0dXMsIHRoZW4g ZnVuY3Rpb24gcmV0dXJuIHR5cGUNCj4gc2hvdWxkIG1hdGNoIHRoYXQuDQo+ID4gICAgICBFWDog IFVzZSAiRUZJX1NVQ0NFU1MiIGluc3RlYWQgb2YgIlJFVFVSTl9TVUNDRVNTICIuDQo+ID4NCj4g PiA1LiAgSSB0aGluayB0aGUgbmV3IEZpbmRUb2x1ZENhbGxiYWNrKCkgZnVuY3Rpb24gd2lsbCBm aW5kIHRoZSBjb3JyZWN0IFRPTFVEDQo+IGlmIEFDUEkgTlZTIG1lbW9yeSByZWdpb24gaXMgYmVs b3cgQUNQSSBSRUNMQUlNIG1lbW9yeS4NCj4gPiAgICAgIEhvd2V2ZXIsIGlmIGl0IGlzIHRoZSBv dGhlciB3YXkgYXJvdW5kLCB0aGUgVE9MVUQgY2FsY3VsYXRpb24gbWlnaHQgYmUNCj4gaW5jb3Jy ZWN0LiAgU2hvdWxkIHdlIGNvbnNpZGVyIGJvdGggY2FzZXM/DQo+ID4gICAgICBGb3IgZXhhbXBs ZSwgZ2l2ZW4gdGhlIG1lbW9yeSBtYXAgYmVsb3csICB5b3VyIHBhdGNoIHdpbGwgZ2V0IFRPTFVN DQo+ID0gMHgxRUI2QzAwMC4gIEJ1dCB0aGUgYWN0dWFsIFRPTFVNIHNob3VsZCBiZSAweDIwMDAw MDAwLg0KPiA+ICAgICAgICAgICAgICAgICAgQmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgIEU4MjAgVHlwZQ0KPiA+ICAgICAgTUVN OiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwQTAwMDAgIDENCj4gPiAgICAgIE1FTTogMDAw MDAwMDAwMDBBMDAwMCAwMDAwMDAwMDAwMDYwMDAwICAyDQo+ID4gICAgICBNRU06IDAwMDAwMDAw MDAxMDAwMDAgMDAwMDAwMDAxRUEwMDAwMCAgMQ0KPiA+ICAgICAgTUVNOiAwMDAwMDAwMDFFQjAw MDAwIDAwMDAwMDAwMDAwMDQwMDAgIDINCj4gPiAgICAgIE1FTTogMDAwMDAwMDAxRUIwNDAwMCAw MDAwMDAwMDAwMDY4MDAwICAzIChBQ1BJIFJlY2xhaW0pDQo+ID4gICAgICBNRU06IDAwMDAwMDAw MUVCNkMwMDAgMDAwMDAwMDAwMDAwODAwMCAgNCAoQUNQSSBOVlMpDQo+ID4gICAgICBNRU06IDAw MDAwMDAwMUVCNzQwMDAgMDAwMDAwMDAwMDM4QzAwMCAgMg0KPiA+ICAgICAgTUVNOiAwMDAwMDAw MDFFRjAwMDAwIDAwMDAwMDAwMDAxMDAwMDAgIDINCj4gPiAgICAgIE1FTTogMDAwMDAwMDAxRjAw MDAwMCAwMDAwMDAwMDAxMDAwMDAwICAyDQo+ID4NCj4gPiBUaGFua3MNCj4gPiBNYXVyaWNlDQo+ ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBQYXRyaWNr IFJ1ZG9scGggPHBhdHJpY2sucnVkb2xwaEA5ZWxlbWVudHMuY29tPg0KPiA+ID4gU2VudDogVHVl c2RheSwgSnVuZSAxNSwgMjAyMSA2OjIzDQo+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8N Cj4gPiA+IENjOiBNYSwgTWF1cmljZSA8bWF1cmljZS5tYUBpbnRlbC5jb20+OyBEb25nLCBHdW8N Cj4gPiA+IDxndW8uZG9uZ0BpbnRlbC5jb20+OyBZb3UsIEJlbmphbWluIDxiZW5qYW1pbi55b3VA aW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogW1BBVENIXSBVZWZpUGF5bG9hZFBrZy9VZWZpUGF5 bG9hZEVudHJ5OiBJbXByb3ZlIGJvb3Rsb2FkZXINCj4gPiA+IG1lbXJhbmdlIHBhcnNpbmcNCj4g PiA+DQo+ID4gPiBDdXJyZW50bHkgc2V2ZXJhbCBEWEUgY3Jhc2ggZHVlIHRvIGludmFsaWQgbWVt b3J5IHJlc291cmNlIHNldHRpbmdzLg0KPiA+ID4gY29yZWJvb3QgYW5kIHNsaW1ib290bG9hZGVy IHByb3ZpZGUgYW4gZTgyMCBjb21wYXRpYmxlIG1lbW9yeSBtYXAsDQo+ID4gPiB3aGljaCBkb2Vz bid0IHdvcmsgd2VsbCB3aXRoIEVESzIgYXMgdGhlIGU4MjAgc3BlYyBpcyBtaXNzaW5nIE1NSU8N Cj4gcmVnaW9ucy4NCj4gPiA+IEluIGU4MjAgJ3Jlc2VydmVkJyBjb3VsZCBlaXRoZXIgbWVhbiAi RFJBTSB1c2VkIGJ5IGJvb3QgZmlybXdhcmUiIG9yDQo+ID4gPiAiTU1JTyBpbiB1c2UgYW5kIG5v dCBkZXRlY3RhYmxlIGJ5IE9TIi4NCj4gPiA+DQo+ID4gPiBHdWVzcyBUb3Agb2YgbG93ZXIgdXNh YmxlIERSQU0gKFRPTFVEKSBieSB3YWxraW5nIG1lbW9yeSByYW5nZXMNCj4gYW5kDQo+ID4gPiB0 aGVuIG1hcmsgZXZlcnl0aGluZyByZXNlcnZlZCBiZWxvdyBUT0xVRCBhcyBEUkFNIGFuZCBldmVy eXRoaW5nDQo+ID4gPiByZXNlcnZlZCBhYm92ZSBUT0xVRCBhcyBNTUlPLg0KPiA+ID4NCj4gPiA+ IFRoaXMgZml4ZXMgc2V2ZXJhbCBhc3NlcnRpb25zIHNlZW4gaW4gUGNpSG9zdEJyaWRnZUR4ZS4N Cj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYXRyaWNrIFJ1ZG9scGggPHBhdHJpY2sucnVk b2xwaEA5ZWxlbWVudHMuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgLi4uL1VlZmlQYXlsb2FkRW50 cnkvVWVmaVBheWxvYWRFbnRyeS5jICAgICAgIHwgMTg3ICsrKysrKysrKysrKysrKysrLQ0KPiA+ ID4gIC4uLi9VZWZpUGF5bG9hZEVudHJ5L1VlZmlQYXlsb2FkRW50cnkuaCAgICAgICB8ICAxMCAr DQo+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxOTQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvVWVmaVBheWxvYWRQa2cvVWVmaVBheWxvYWRF bnRyeS9VZWZpUGF5bG9hZEVudHJ5LmMNCj4gPiA+IGIvVWVmaVBheWxvYWRQa2cvVWVmaVBheWxv YWRFbnRyeS9VZWZpUGF5bG9hZEVudHJ5LmMNCj4gPiA+IGluZGV4IDgwNWY1NDQ4ZDkuLmQyMGUx YTA4NjIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZEVudHJ5 L1VlZmlQYXlsb2FkRW50cnkuYw0KPiA+ID4gKysrIGIvVWVmaVBheWxvYWRQa2cvVWVmaVBheWxv YWRFbnRyeS9VZWZpUGF5bG9hZEVudHJ5LmMNCj4gPiA+IEBAIC03LDEwICs3LDE2MiBAQA0KPiA+ ID4gICAjaW5jbHVkZSAiVWVmaVBheWxvYWRFbnRyeS5oIiArU1RBVElDIFVJTlQzMiBUb3BPZkxv d2VyVXNhYmxlRHJhbQ0KPiA9DQo+ID4gPiAwOysgLyoqICAgIENhbGxiYWNrIGZ1bmN0aW9uIHRv IGJ1aWxkIHJlc291cmNlIGRlc2NyaXB0b3IgSE9CICAgICBUaGlzDQo+IGZ1bmN0aW9uDQo+ID4g PiBidWlsZCBhIEhPQiBiYXNlZCBvbiB0aGUgbWVtb3J5IG1hcCBlbnRyeSBpbmZvLisgICBJdCBj cmVhdGVzIG9ubHkNCj4gPiA+IEVGSV9SRVNPVVJDRV9NRU1PUllfTUFQUEVEX0lPIGFuZA0KPiA+ ID4gRUZJX1JFU09VUkNFX01FTU9SWV9SRVNFUlZFRCsgICByZXNvdXJjZXMuKysgICBAcGFyYW0N Cj4gPiA+IE1lbW9yeU1hcEVudHJ5ICAgICAgICAgTWVtb3J5IG1hcCBlbnRyeSBpbmZvIGdvdCBm cm9tIGJvb3Rsb2FkZXIuKw0KPiA+ID4gQHBhcmFtIFBhcmFtcyAgICAgICAgICAgICAgICAgQSBw b2ludGVyIHRvIEFDUElfQk9BUkRfSU5GTy4rKyAgQHJldHZhbA0KPiA+ID4gUkVUVVJOX1NVQ0NF U1MgICAgICAgICBTdWNjZXNzZnVsbHkgYnVpbGQgYSBIT0IuKyAgQHJldHZhbA0KPiA+ID4gRUZJ X0lOVkFMSURfUEFSQU1FVEVSICBJbnZhbGlkIHBhcmFtZXRlcg0KPiA+ID4gcHJvdmlkZWQuKyoq LytFRklfU1RBVFVTK01lbUluZm9DYWxsYmFja01NSU8gKCsgIElODQo+ID4gPiBNRU1ST1lfTUFQ X0VOVFJZICAgICAgICAgICpNZW1vcnlNYXBFbnRyeSwrICBJTiBWT0lEDQo+ID4gPiAqUGFyYW1z KyAgKSt7KyAgRUZJX1BIWVNJQ0FMX0FERFJFU1MgICAgICAgICBCYXNlOysNCj4gRUZJX1JFU09V UkNFX1RZUEUNCj4gPiA+IFR5cGU7KyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICBTaXpl OysgIEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfVFlQRQ0KPiA+ID4gQXR0cmlidWU7KyAgQUNQSV9C T0FSRF9JTkZPICAgICAgICAgICAgICAqQWNwaUJvYXJkSW5mbzsrKyAgQWNwaUJvYXJkSW5mbw0K PiA9DQo+ID4gPiAoQUNQSV9CT0FSRF9JTkZPICopUGFyYW1zOysgIGlmIChBY3BpQm9hcmRJbmZv ID09IE5VTEwpIHsrICAgIHJldHVybg0KPiA+ID4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOysgIH0r KyAgLy8rICAvLyBTa2lwIHR5cGVzIGFscmVhZHkgaGFuZGxlZCBpbg0KPiA+ID4gTWVtSW5mb0Nh bGxiYWNrKyAgLy8rICBpZiAoTWVtb3J5TWFwRW50cnktPlR5cGUgPT0gRTgyMF9SQU0gfHwNCj4g PiA+IE1lbW9yeU1hcEVudHJ5LT5UeXBlID09IEU4MjBfQUNQSSkgeysgICAgcmV0dXJuDQo+IFJF VFVSTl9TVUNDRVNTOysgIH0rKw0KPiA+ID4gaWYgKE1lbW9yeU1hcEVudHJ5LT5CYXNlID09IEFj cGlCb2FyZEluZm8tPlBjaWVCYXNlQWRkcmVzcykgeysNCj4gLy8rDQo+ID4gPiAvLyBNTUNPTkYg aXMgYWx3YXlzIE1NSU8rICAgIC8vKyAgICBUeXBlID0NCj4gPiA+IEVGSV9SRVNPVVJDRV9NRU1P UllfTUFQUEVEX0lPOysgIH0gZWxzZSBpZiAoTWVtb3J5TWFwRW50cnktDQo+ID5CYXNlDQo+ID4g PiA8IFRvcE9mTG93ZXJVc2FibGVEcmFtKSB7KyAgICAvLysgICAgLy8gSXQncyBpbiBEUkFNIGFu ZCB0aHVzIG11c3QgYmUNCj4gPiA+IHJlc2VydmVkKyAgICAvLysgICAgVHlwZSA9IEVGSV9SRVNP VVJDRV9NRU1PUllfUkVTRVJWRUQ7KyAgfSBlbHNlIGlmDQo+ID4gPiAoTWVtb3J5TWFwRW50cnkt PkJhc2UgPCAweDEwMDAwMDAwMFVMTCAmJisgICAgTWVtb3J5TWFwRW50cnktDQo+ID4gPiA+QmFz ZSA+PSBUb3BPZkxvd2VyVXNhYmxlRHJhbSkgeysgICAgLy8rICAgIC8vIEl0J3Mgbm90IGluIERS QU0sIG11c3QgYmUNCj4gPiA+IE1NSU8rICAgIC8vKyAgICBUeXBlID0gRUZJX1JFU09VUkNFX01F TU9SWV9NQVBQRURfSU87KyAgfSBlbHNlIHsrDQo+ID4gPiBUeXBlID0gRUZJX1JFU09VUkNFX01F TU9SWV9SRVNFUlZFRDsrICB9KysgIEJhc2UgICAgPQ0KPiA+ID4gTWVtb3J5TWFwRW50cnktPkJh c2U7KyAgU2l6ZSAgICA9IE1lbW9yeU1hcEVudHJ5LT5TaXplOysrICBBdHRyaWJ1ZQ0KPiA9DQo+ ID4gPiBFRklfUkVTT1VSQ0VfQVRUUklCVVRFX1BSRVNFTlQgfCsNCj4gPiA+IEVGSV9SRVNPVVJD RV9BVFRSSUJVVEVfSU5JVElBTElaRUQgfCsNCj4gRUZJX1JFU09VUkNFX0FUVFJJQlVURV9URVNU RUQNCj4gPiA+IHwrIEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfVU5DQUNIRUFCTEUgfCsNCj4gPiA+ IEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfV1JJVEVfQ09NQklORUFCTEUgfCsNCj4gPiA+IEVGSV9S RVNPVVJDRV9BVFRSSUJVVEVfV1JJVEVfVEhST1VHSF9DQUNIRUFCTEUgfCsNCj4gPiA+IEVGSV9S RVNPVVJDRV9BVFRSSUJVVEVfV1JJVEVfQkFDS19DQUNIRUFCTEU7KysNCj4gPiA+IEJ1aWxkUmVz b3VyY2VEZXNjcmlwdG9ySG9iIChUeXBlLCBBdHRyaWJ1ZSwNCj4gPiA+IChFRklfUEhZU0lDQUxf QUREUkVTUylCYXNlLCBTaXplKTsrICBERUJVRyAoKERFQlVHX0lORk8gLA0KPiAiYnVpbGRob2I6 DQo+ID4gPiBiYXNlID0gMHglbHgsIHNpemUgPSAweCVseCwgdHlwZSA9IDB4JXhcbiIsIEJhc2Us IFNpemUsIFR5cGUpKTsrKw0KPiA+ID4gaWYgKE1lbW9yeU1hcEVudHJ5LT5UeXBlID09IEU4MjBf TlZTKSB7KyBCdWlsZE1lbW9yeUFsbG9jYXRpb25Ib2INCj4gKEJhc2UsIFNpemUsIEVmaUFDUElN ZW1vcnlOVlMpOysgIH0gZWxzZSBpZg0KPiA+ID4gKE1lbW9yeU1hcEVudHJ5LT5UeXBlID09IEU4 MjBfVU5VU0FCTEUgfHwrICAgIE1lbW9yeU1hcEVudHJ5LQ0KPiA+ID4gPlR5cGUgPT0gRTgyMF9E SVNBQkxFRCkgeysgICAgQnVpbGRNZW1vcnlBbGxvY2F0aW9uSG9iIChCYXNlLCBTaXplLA0KPiA+ ID4gRWZpVW51c2FibGVNZW1vcnkpOysgIH0gZWxzZSBpZiAoTWVtb3J5TWFwRW50cnktPlR5cGUg PT0NCj4gRTgyMF9QTUVNKQ0KPiA+ID4geysgICAgQnVpbGRNZW1vcnlBbGxvY2F0aW9uSG9iIChC YXNlLCBTaXplLCBFZmlQZXJzaXN0ZW50TWVtb3J5KTsrICB9KysNCj4gPiA+IHJldHVybiBSRVRV Uk5fU1VDQ0VTUzsrfSsrKy8qKisgICBDYWxsYmFjayBmdW5jdGlvbiB0byBmaW5kIFRPTFVEDQo+ IChUb3ANCj4gPiA+IG9mIExvd2VyIFVzYWJsZSBEUkFNKSsrICAgRXN0aW1hdGUgd2hlcmUgVE9M VUQgKFRvcCBvZiBMb3dlciBVc2FibGUNCj4gPiA+IERSQU0pIHJlc2lkZXMuIFRoZSBleGFjdCBw b3NpdGlvbisgICB3b3VsZCByZXF1aXJlIHBsYXRmb3JtIHNwZWNpZmljDQo+IGNvZGUuKysNCj4g PiA+IEBwYXJhbSBNZW1vcnlNYXBFbnRyeSAgICAgICAgIE1lbW9yeSBtYXAgZW50cnkgaW5mbyBn b3QgZnJvbQ0KPiA+ID4gYm9vdGxvYWRlci4rICAgQHBhcmFtIFBhcmFtcyAgICAgICAgICAgICAg ICAgTm90IHVzZWQgZm9yIG5vdy4rKyAgQHJldHZhbA0KPiA+ID4gUkVUVVJOX1NVQ0NFU1MgICAg ICAgICBTdWNjZXNzZnVsbHkgdXBkYXRlZA0KPiA+ID4gVG9wT2ZMb3dlclVzYWJsZURyYW0uKyoq LytFRklfU1RBVFVTK0ZpbmRUb2x1ZENhbGxiYWNrICgrICBJTg0KPiA+ID4gTUVNUk9ZX01BUF9F TlRSWSAgICAgICAgICAqTWVtb3J5TWFwRW50cnksKyAgSU4gVk9JRA0KPiA+ID4gKlBhcmFtcysg ICkreysgIC8vKyAgLy8gVGhpcyBjb2RlIGFzc3VtZXMgdGhhdCB0aGUgbWVtb3J5IG1hcCBvbg0K PiA+ID4gdGhpcyB4ODYgbWFjaGluZSBiZWxvdyA0R2lCIGlzIGNvbnRpbm91cysgIC8vIHVudGls IFRPTFVELiBJbg0KPiA+ID4gYWRkaXRpb24gaXQgYXNzdW1lcyB0aGF0IHRoZSBib290bG9hZGVy IHByb3ZpZGVkIG1lbW9yeSB0YWJsZXMgaGF2ZSsNCj4gPiA+IC8vIG5vICJob2xlcyIgYW5kIHRo dXMgdGhlIGZpcnN0IG1lbW9yeSByYW5nZSBub3QgY292ZXJlZCBieSBlODIwIG1hcmtzDQo+IHRo ZSBlbmQgb2YrICAvLyB1c2FibGUgRFJBTS4NCj4gPiA+IEluIGFkZGl0aW9uIGl0J3MgYXNzdW1l ZCB0aGF0IGV2ZXJ5IHJlc2VydmVkIG1lbW9yeSByZWdpb24gdG91Y2hpbmcrDQo+ID4gPiAvLyB1 c2FibGUgUkFNIGlzIGFsc28gY292ZXJpbmcgRFJBTSwgZXZlcnl0aGluZyBlbHNlIHRoYXQgaXMg bWFya2VkDQo+ID4gPiByZXNlcnZlZCB0aHVzIG11c3QgYmUrICAvLyBNTUlPIG5vdCBkZXRlY3Rh YmxlIGJ5IGJvb3Rsb2FkZXIvT1MrDQo+ID4gPiAvLysrICAvLysgIC8vIFNraXAgbWVtb3J5IHR5 cGVzIG5vdCBSQU0gb3IgcmVzZXJ2ZWQrICAvLysgIGlmDQo+ID4gPiAoTWVtb3J5TWFwRW50cnkt PlR5cGUgPT0gRTgyMF9OVlMgfHwgTWVtb3J5TWFwRW50cnktPlR5cGUgPT0NCj4gPiA+IEU4MjBf VU5VU0FCTEUgfHwrDQo+ID4gPiBNZW1vcnlNYXBFbnRyeS0+VHlwZSA9PSBFODIwX0RJU0FCTEVE IHx8IE1lbW9yeU1hcEVudHJ5LQ0KPiA+VHlwZSA9PQ0KPiA+ID4gRTgyMF9QTUVNKSB7KyAgICBy ZXR1cm4gUkVUVVJOX1NVQ0NFU1M7KyAgfSsrICAvLysgIC8vIFNraXAgcmVzb3VyY2VzDQo+ID4g PiBhYm92ZSA0R2lCKyAgLy8rICBpZiAoTWVtb3J5TWFwRW50cnktPkJhc2UgPj0gMHgxMDAwMDAw MDBVTEwpIHsrDQo+ID4gPiByZXR1cm4gUkVUVVJOX1NVQ0NFU1M7KyAgfSsrICBpZiAoKE1lbW9y eU1hcEVudHJ5LT5UeXBlID09DQo+IEU4MjBfUkFNKQ0KPiA+ID4gfHwrICAgIChNZW1vcnlNYXBF bnRyeS0+VHlwZSA9PSBFODIwX0FDUEkpKSB7KyAgICAvLysgICAgLy8gSXQncyB1c2FibGUNCj4g RFJBTS4NCj4gPiA+IFVwZGF0ZSBUT0xVRC4rICAgIC8vKyAgICBpZiAoVG9wT2ZMb3dlclVzYWJs ZURyYW0gPA0KPiAoTWVtb3J5TWFwRW50cnktDQo+ID4gPiA+QmFzZSArIE1lbW9yeU1hcEVudHJ5 LT5TaXplKSkgeysgICAgICBUb3BPZkxvd2VyVXNhYmxlRHJhbSA9DQo+ID4gPiBNZW1vcnlNYXBF bnRyeS0+QmFzZSArIE1lbW9yeU1hcEVudHJ5LT5TaXplOysgICAgfSsgIH0gZWxzZSB7KyAgICAv LysNCj4gLy8NCj4gPiA+IEl0IG1pZ2h0IGJlIHJlc2VydmVkIERSQU0gb3IgTU1JTy4rICAgIC8v KyAgICAvLyBJZiBpdCB0b3VjaGVzIHVzYWJsZQ0KPiBEUkFNIGF0DQo+ID4gPiBCYXNlIGFzc3Vt ZSBpdCdzIERSQU0gYXMgd2VsbCwrICAgIC8vIGFzIGl0IGNvdWxkIGJlIGJvb3Rsb2FkZXIgaW5z dGFsbGVkDQo+IHRhYmxlcywNCj4gPiA+IFRTRUcsIEdUVCwgLi4uKyAgICAvLysgICAgaWYgKFRv cE9mTG93ZXJVc2FibGVEcmFtID09IE1lbW9yeU1hcEVudHJ5LQ0KPiA+ID4gPkJhc2UpIHsrICAg ICAgVG9wT2ZMb3dlclVzYWJsZURyYW0gPSBNZW1vcnlNYXBFbnRyeS0+QmFzZSArDQo+ID4gPiBN ZW1vcnlNYXBFbnRyeS0+U2l6ZTsrICAgIH0rICB9KysgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsr fSsrKy8qKisNCj4gPiA+IENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJ1aWxkIHJlc291cmNlIGRlc2Ny aXB0b3IgSE9CKysgICBUaGlzIGZ1bmN0aW9uIGJ1aWxkDQo+IGENCj4gPiA+IEhPQiBiYXNlZCBv biB0aGUgbWVtb3J5IG1hcCBlbnRyeSBpbmZvLisgICBPbmx5IGFkZA0KPiA+ID4gRUZJX1JFU09V UkNFX1NZU1RFTV9NRU1PUlkuICAgICBAcGFyYW0gTWVtb3J5TWFwRW50cnkNCj4gPiA+IE1lbW9y eSBtYXAgZW50cnkgaW5mbyBnb3QgZnJvbSBib290bG9hZGVyLiAgICBAcGFyYW0gUGFyYW1zDQo+ IE5vdA0KPiA+ID4gdXNlZCBmb3Igbm93LkBAIC0yOCw3ICsxODAsMTUgQEAgTWVtSW5mb0NhbGxi YWNrICgNCj4gPiA+ICAgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgU2l6ZTsgICBFRklf UkVTT1VSQ0VfQVRUUklCVVRFX1RZUEUgIEF0dHJpYnVlOyAtDQo+IFR5cGUNCj4gPiA+ID0gKE1l bW9yeU1hcEVudHJ5LT5UeXBlID09IDEpID8gRUZJX1JFU09VUkNFX1NZU1RFTV9NRU1PUlkgOg0K PiA+ID4gRUZJX1JFU09VUkNFX01FTU9SWV9SRVNFUlZFRDsrICAvLysgIC8vIFNraXAgZXZlcnl0 aGluZyBub3QNCj4ga25vd24gdG8NCj4gPiA+IGJlIHVzYWJsZSBEUkFNLisgIC8vIEl0IHdpbGwg YmUgYWRkZWQgbGF0ZXIuKyAgLy8rICBpZg0KPiA+ID4gKE1lbW9yeU1hcEVudHJ5LQ0KPiA+ID4g PlR5cGUgIT0gRTgyMF9SQU0gJiYgTWVtb3J5TWFwRW50cnktPlR5cGUgIT0gRTgyMF9BQ1BJKSB7 Kw0KPiByZXR1cm4NCj4gPiA+IFJFVFVSTl9TVUNDRVNTOysgIH0rKyAgVHlwZSAgICA9IEVGSV9S RVNPVVJDRV9TWVNURU1fTUVNT1JZOw0KPiBCYXNlDQo+ID4gPiA9IE1lbW9yeU1hcEVudHJ5LT5C YXNlOyAgIFNpemUgICAgPSBNZW1vcnlNYXBFbnRyeS0+U2l6ZTsgQEAgLTQwLDcNCj4gPiA+ICsy MDAsNyBAQCBNZW1JbmZvQ2FsbGJhY2sgKA0KPiA+ID4gICAgICAgICAgICAgICBFRklfUkVTT1VS Q0VfQVRUUklCVVRFX1dSSVRFX1RIUk9VR0hfQ0FDSEVBQkxFIHwNCj4gPiA+IEVGSV9SRVNPVVJD RV9BVFRSSUJVVEVfV1JJVEVfQkFDS19DQUNIRUFCTEU7IC0gIGlmIChCYXNlID49DQo+ID4gPiBC QVNFXzRHQiApIHsrICBpZiAoQmFzZSA+PSBCQVNFXzRHQikgeyAgICAgLy8gUmVtb3ZlIHRlc3Rl ZCBhdHRyaWJ1dGUgdG8NCj4gPiA+IGF2b2lkIERYRSBjb3JlIHRvIGRpc3BhdGNoIGRyaXZlciB0 byBtZW1vcnkgYWJvdmUgNEdCICAgICBBdHRyaWJ1ZSAmPQ0KPiA+ID4gfkVGSV9SRVNPVVJDRV9B VFRSSUJVVEVfVEVTVEVEOyAgIH1AQCAtNDgsNiArMjA4LDEwIEBADQo+ID4gPiBNZW1JbmZvQ2Fs bGJhY2sgKA0KPiA+ID4gICAgQnVpbGRSZXNvdXJjZURlc2NyaXB0b3JIb2IgKFR5cGUsIEF0dHJp YnVlLA0KPiA+ID4gKEVGSV9QSFlTSUNBTF9BRERSRVNTKUJhc2UsIFNpemUpOyAgIERFQlVHICgo REVCVUdfSU5GTyAsICJidWlsZGhvYjoNCj4gPiA+IGJhc2UgPSAweCVseCwgc2l6ZSA9IDB4JWx4 LCB0eXBlID0gMHgleFxuIiwgQmFzZSwgU2l6ZSwgVHlwZSkpOyArICBpZg0KPiA+ID4gKE1lbW9y eU1hcEVudHJ5LT5UeXBlID09IEU4MjBfQUNQSSkgeysNCj4gQnVpbGRNZW1vcnlBbGxvY2F0aW9u SG9iDQo+ID4gPiAoQmFzZSwgU2l6ZSwgRWZpQUNQSVJlY2xhaW1NZW1vcnkpOysgIH0rICAgcmV0 dXJuIFJFVFVSTl9TVUNDRVNTOyB9DQo+IEBAIC0NCj4gPiA+IDIzNiw3ICs0MDAsMTYgQEAgQnVp bGRIb2JGcm9tQmwgKA0KPiA+ID4gICAgRUZJX1BFSV9HUkFQSElDU19ERVZJQ0VfSU5GT19IT0Ig Kk5ld0dmeERldmljZUluZm87ICAgIC8vLSAgLy8NCj4gUGFyc2UNCj4gPiA+IG1lbW9yeSBpbmZv IGFuZCBidWlsZCBtZW1vcnkgSE9CcysgIC8vIEZpcnN0IGZpbmQgVE9MVUQrICAvLysNCj4gPiA+ IFN0YXR1cyA9IFBhcnNlTWVtb3J5SW5mbyAoRmluZFRvbHVkQ2FsbGJhY2ssIE5VTEwpOysgIGlm DQo+ID4gPiAoRUZJX0VSUk9SKFN0YXR1cykpIHsrIHJldHVybiBTdGF0dXM7KyAgfSsgIERFQlVH ICgoREVCVUdfSU5GTyAsDQo+ID4gPiAiQXNzdW1pbmcgVE9MVUQgPSAweCV4XG4iLCBUb3BPZkxv d2VyVXNhYmxlRHJhbSkpOysrICAvLysgIC8vIFBhcnNlDQo+IG1lbW9yeSBpbmZvIGFuZCBidWls ZCBtZW1vcnkNCj4gPiA+IEhPQnMgZm9yIFVzYWJsZSBSQU0gICAvLyAgIFN0YXR1cyA9IFBhcnNl TWVtb3J5SW5mbyAoTWVtSW5mb0NhbGxiYWNrLA0KPiA+ID4gTlVMTCk7ICAgaWYgKEVGSV9FUlJP UihTdGF0dXMpKSB7QEAgLTI4OSw2ICs0NjIsMTQgQEAgQnVpbGRIb2JGcm9tQmwgKA0KPiA+ID4g ICAgICBERUJVRyAoKERFQlVHX0lORk8sICJDcmVhdGUgYWNwaSBib2FyZCBpbmZvIGd1aWQgaG9i XG4iKSk7ICAgfSArICAvLysNCj4gLy8NCj4gPiA+IFBhcnNlIG1lbW9yeSBpbmZvIGFuZCBidWls ZCBtZW1vcnkgSE9CcyBmb3IgcmVzZXJ2ZWQgRFJBTSBhbmQNCj4gTU1JTysNCj4gPiA+IC8vKyAg U3RhdHVzID0gUGFyc2VNZW1vcnlJbmZvIChNZW1JbmZvQ2FsbGJhY2tNTUlPLA0KPiAmQWNwaUJv YXJkSW5mbyk7Kw0KPiA+ID4gaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7KyAgICByZXR1cm4gU3Rh dHVzOysgIH0rICAgLy8gICAvLyBQYXJzZSBwbGF0Zm9ybQ0KPiBzcGVjaWZpYw0KPiA+ID4gaW5m b3JtYXRpb24uICAgLy9kaWZmIC0tZ2l0DQo+ID4gPiBhL1VlZmlQYXlsb2FkUGtnL1VlZmlQYXls b2FkRW50cnkvVWVmaVBheWxvYWRFbnRyeS5oDQo+ID4gPiBiL1VlZmlQYXlsb2FkUGtnL1VlZmlQ YXlsb2FkRW50cnkvVWVmaVBheWxvYWRFbnRyeS5oDQo+ID4gPiBpbmRleCAyYzg0ZDZlZDUzLi4z NWVhMjNkMjAyIDEwMDY0NA0KPiA+ID4gLS0tIGEvVWVmaVBheWxvYWRQa2cvVWVmaVBheWxvYWRF bnRyeS9VZWZpUGF5bG9hZEVudHJ5LmgNCj4gPiA+ICsrKyBiL1VlZmlQYXlsb2FkUGtnL1VlZmlQ YXlsb2FkRW50cnkvVWVmaVBheWxvYWRFbnRyeS5oDQo+ID4gPiBAQCAtMzgsNiArMzgsMTYgQEAN Cj4gPiA+ICAjZGVmaW5lIEdFVF9PQ0NVUElFRF9TSVpFKEFjdHVhbFNpemUsIEFsaWdubWVudCkg XCAgICgoQWN0dWFsU2l6ZSkgKw0KPiA+ID4gKCgoQWxpZ25tZW50KSAtICgoQWN0dWFsU2l6ZSkg JiAoKEFsaWdubWVudCkgLSAxKSkpICYgKChBbGlnbm1lbnQpIC0NCj4gPiA+IDEpKSkNCj4gPiA+ ICsrI2RlZmluZSBFODIwX1JBTSAgICAgICAgMSsjZGVmaW5lIEU4MjBfUkVTRVJWRUQgICAyKyNk ZWZpbmUNCj4gRTgyMF9BQ1BJDQo+ID4gPiAzKyNkZWZpbmUgRTgyMF9OVlMgICAgICAgIDQrI2Rl ZmluZSBFODIwX1VOVVNBQkxFICAgNSsjZGVmaW5lDQo+ID4gPiBFODIwX0RJU0FCTEVEICAgNisj ZGVmaW5lIEU4MjBfUE1FTSAgICAgICA3KyNkZWZpbmUgRTgyMF9VTkRFRklORUQNCj4gOCsNCj4g PiA+IC8qKiAgIEF1dG8tZ2VuZXJhdGVkIGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlIGxpYnJhcnkg Y29uc3RydWN0b3JzIGZvciBhbGwgb2YNCj4gdGhlDQo+ID4gPiBtb2R1bGUncyAgIGRlcGVuZGVu dCBsaWJyYXJpZXMuLS0NCj4gPiA+IDIuMzAuMg0KPiA+DQo=