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.web09.1966.1632942440076360089 for ; Wed, 29 Sep 2021 12:07:20 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=NEt24N4i; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: guo.dong@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10122"; a="223130865" X-IronPort-AV: E=Sophos;i="5.85,334,1624345200"; d="scan'208";a="223130865" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2021 12:07:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,334,1624345200"; d="scan'208";a="519976344" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga008.fm.intel.com with ESMTP; 29 Sep 2021 12:07:03 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Wed, 29 Sep 2021 12:07:03 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Wed, 29 Sep 2021 12:07:03 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.49) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Wed, 29 Sep 2021 12:07:02 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hg7jlF0VCwQGc/nh+EZamtP7kWl8qnnSUtA7uHtkPfzCskRO2aIU0YnN6U9O7tAbQ2JQmIEISrwS1DMD1nLw6KpaBsSPzhTbiZZqwmzH51xuet+dYLkMvQMOdi7pCSoe5/sGdumlq9rTB9jlXpVeTHv/Zf0PXF0lNhhzf9b8H00XXEKonHTxwwQ/NbVJ9KRlpPN+oYqYT7KaYoFGEXKYY4a0GUxYFTNstxatmylzQdMkUSDzmI6FYM2rNelQ883MC9il82CB90lA0/klyEiURekvkCA3QJYNTjlig0qcL/zvlPLRXOUKepsdApOKWZ+QuAWU7KNBGtPg2/PA0f39XQ== 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; bh=atf8WOapmXT9tBamZBejlAKtgg+Ej5dV97zEYlJMdfw=; b=PAAe+2qBgAhMoQgqukRK3/+YsV7wdhbiZ2F1qODqwFqtBRw72MV4ZuOMhAOUModteL5L60xWJMfkz7w0yCTOkBwRgjpvQ3EGu7ekqhBruXvhyghT1ifQ+fkvW4TRG6iVWqgRg63dKRy9AQ5Sbe0wMzOf+fdAaCBipBT4ZWbAXxI6uxAtUEuphnauLraKsZcDR8hAP2IbjZ+2Geq0QHVIWLFfO8jI9Y2pj7Rkry9dCWxa5/cfciVNmSVPFflmIu3tu9Gx2+gRNnv1/f35iwS/iCfECtcDMiS3DxKtUSlr1eKItQK/X2IXVhbAWiTXiMf+8Re2dmDp1cbe/wUqqL9P8A== 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=atf8WOapmXT9tBamZBejlAKtgg+Ej5dV97zEYlJMdfw=; b=NEt24N4iOg7mfXgB25ZY3EQpPw9SAztLzqBhbe+gWOIwH8qbLbDftHCgHrhVrAVnQEp+2Qb286XJ7m5MjiCMSpmndwQ2mKQwpKkT2oJnDHIAiwG2pnwpvUgA0FWeECmOx4F2HtzmIP8PxX6wgkXWKE0CTWgJkACIjVDh588YRS0= Received: from DM6PR11MB3627.namprd11.prod.outlook.com (2603:10b6:5:13b::11) by DM6PR11MB2634.namprd11.prod.outlook.com (2603:10b6:5:c6::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.13; Wed, 29 Sep 2021 19:07:01 +0000 Received: from DM6PR11MB3627.namprd11.prod.outlook.com ([fe80::7120:62a2:72b9:e929]) by DM6PR11MB3627.namprd11.prod.outlook.com ([fe80::7120:62a2:72b9:e929%6]) with mapi id 15.20.4544.021; Wed, 29 Sep 2021 19:07:01 +0000 From: "Guo Dong" To: "Ni, Ray" , Cheng-Chieh Huang , "devel@edk2.groups.io" CC: "Schaefer, Daniel" , Trammell Hudson , "Ma, Maurice" , "You, Benjamin" Subject: Re: [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Thread-Topic: [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Thread-Index: AQHXl+jVtPx3PD3/sUKFAn0nB/D2YauDYlQAgDg31wA= Date: Wed, 29 Sep 2021 19:07:01 +0000 Message-ID: References: <20210823063312.2323801-1-chengchieh@google.com> <20210823063312.2323801-2-chengchieh@google.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a2621f4b-fbf7-4646-253e-08d9837c5161 x-ms-traffictypediagnostic: DM6PR11MB2634: 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:3631; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ArBBbQ14g9/JALL40Hg0s+AJv5177glmtgymWrVlKX7x5JBsr4ifVwS/GmWwNb0aGG73nggx2jaNM6uvayUxb6GyRk5+PftHbaa+tVVo4CB9naUiRg65hsZfYgbchjPZ7rYRpHnTAiNJo1MLi/cl9viIzZw0S0aDyWrbyz5JpUz9dQFRVSLJbX+IhErO57Wsy91hTs8MyIgIXG4qf6OO5FXB2QtUXuQqzSsXuq6F9kZMW7XtjabVdpeVBk3iGYZOA9GumBzpMobiPlw2J9mG0OKzm/3xs8ct/IbWcGLjpgtpPFXUDZi4wgC/6wnmXlLJUMdiT240iL4itrENcoRaQ7mfWJ/s+pH8/AG7tdwuWGnwVSt8Ye58aL3XLtGCD9J1bDZUNgiIHXmEG1zR0rDtZHowB9uUBkSGJwLXtJekQgFD096RvML2DRZeamMEGT0tdBxK0WGEJ25XPyBkB4BWFA+a01hZRX8d+LYyHSI2Tf2LxKxWhp5FWlKY0hhY+ZWo1V9ywAC4h36MpqBQzfOMUrQZ2dkTXdbbicdRLYkaibLpPZplGe2y/MMxJfKrRK/lbiAPhdTM83iXVM7mVUQ+bIZaEs/1zsUD9Duf+JAOlBQObINCAyR/CJiDESmF6GN7UJyA1ha3uri2eb8gYEZDWleFO5GrDWnmh+ITLnkTBkDSiuZW1I7cLKIPKZj/YzF/kJxUp4CxPhd9DiukA7QyIQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3627.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(107886003)(66556008)(64756008)(186003)(4326008)(7696005)(33656002)(9686003)(508600001)(2906002)(66476007)(71200400001)(66446008)(30864003)(86362001)(66946007)(52536014)(54906003)(83380400001)(53546011)(122000001)(8676002)(110136005)(38070700005)(38100700002)(5660300002)(316002)(6506007)(55016002)(8936002)(76116006)(26005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bmtyTjRQdjU1Vld4SzdPazQrcTlTaFB4bm9hWWlCU3hUNXM1VnRJNkZZU00y?= =?utf-8?B?YTJVS1k5Z0RuRGxPOUNvQ2lkZnNaUjRuSVphR2NjM3JQd1MvMDU0MXpSRXRR?= =?utf-8?B?a3NkYWhPTHEwRnJTbTlaRWZwT2xLTEd3ZHNIVW5WdkxkL2hPOFdBUjhUdWIz?= =?utf-8?B?NGxRaW1LUnMyeWlOd2ltcnhjbGlFS1dQQ3VCNTkrUC9NVy9OZEZnZzNuTUtw?= =?utf-8?B?MFk1WFhmeENnNTFNc2VuUlRWQUIvSUFybUtOUDg3TWRZTVFZckxVQm8rR0Y2?= =?utf-8?B?WXIyRHZERks5bmZRTnQ2bmNuc29CQjhwUDc3eHh2OFlBWGt2Tk52OS94eWZl?= =?utf-8?B?VmluV3V1bU9VeDRDMWlHWDBIY2hYalp4UHNhRzk2RnV2ZllTVmFLMVM0WkZK?= =?utf-8?B?NmFWRGhsUVF4QUNjQ0RSMXBIUFlLaFBkWXhPa2x3ZzVKbG1IalRjWFl2OEZa?= =?utf-8?B?d0tTRXBXVEdYWUlscmpCT3FPMDFoSHdCRkgxSlpjbUh1VE5tMlU3ZVh2YTdq?= =?utf-8?B?Uk42UkJ6NFE1bDArN3pVMEs3S1locEM2NjdwRElvbjNVdDluUU93N0RHM3pD?= =?utf-8?B?aldDT0g2UlRwOHBQOFdpdUk4TUxNdnErZjl5TXJGV2YybktYL3cxV0hzalBF?= =?utf-8?B?UUlhaDZHTk9hakpkMFRWTkMyUTU2SkNRUTdJUlhEWGMvMTNHZ2lIaXhUNGNK?= =?utf-8?B?YnVmUXREZi9rWFFObzlJWVpPMS8yN1NFaFczWHFyaUF2M280bUswNkVSRVEy?= =?utf-8?B?Um9yNS8vZXczUG9qclNCTFh2Ny9QQzJCV1kyN3NDTmVMMUFueU5WaDd4d3Ez?= =?utf-8?B?T0RnSmR4Q3FmWHdncllpYVVBV01EcUFrVmE3VldHRUtsdW5heEJUZ3h6ekF6?= =?utf-8?B?NXVZNHVOL0MvYTE5T1p2S3RrRzhTb0F2Z2xldDg3dldodlpld3IzZE0rSEEy?= =?utf-8?B?WFFiY2ZpQlFQenFFYUdjQVRPMHE4Qjk1VDExN1JQRjJwa3FxbzlPaURLOUdP?= =?utf-8?B?dzNVMFN1MG95OGVMZ1V5di9tRVRHVjVVV1g2b3IzYkFGb3F5UEtyVWtWQmdx?= =?utf-8?B?ZGV1TkpOcVFxdnA4ZkwwbHhUWWVUUEVaNStnWnpvcldSU3lZU2xCZnlYb2tR?= =?utf-8?B?WmV2b2NVSE9RRTZZOWs1MnpPZFFjWkFONnpCRzVGN0phbW9oOHNVbXZFdEwr?= =?utf-8?B?T3RSZW1za05nMWJ4L282cU5tT2pJS2N1c0kzeS9hbExkbHc5QVFFWW8wSk5K?= =?utf-8?B?TUhOTm16WVBYV2dKRStqYnNhYVpweUlENGlKT2NhS0gzVXBmQ2NZRXRFMm1j?= =?utf-8?B?dUJJQTJQQ1RDbFhQREZBd3Z5VUg5ZUlxRVlRelF2ZHhCNEFEQng3YTFWNXN6?= =?utf-8?B?OFhKYVh2bWZveFd4Y20xQlBnWU1EN2lTeWM0ZmxmQy9VbytycDYvcVozWnFE?= =?utf-8?B?bS93VktsRU5zSTl6UzN6L3BXa1lWTjQwR1lCSjA1b3cvRERUdVRGdjJSWFdh?= =?utf-8?B?dUFHQnNHMEx4YWc1a0RYYWRodDEvNkhCRHF2OUF1K0RuSnJxWE1PRklxa0M5?= =?utf-8?B?WEhRVzlReUFmZ3ZVV2Y1NkY3WjRGeks4S2M1UWZjaXRMeUszUHpjSitiTGQ5?= =?utf-8?B?OVFCcmp5OFVuSktmc3p3VzNGcEtGTURBV1M2Nm40Wnh5RVo0bkc1UG93M0RV?= =?utf-8?B?ZDgyUkM0MkZoWFpML0JFTHFaaGpCUnpVamVqZTFYYWhwZnlGQjlqRHpuZmxm?= =?utf-8?Q?VyqCertCGJc5VQiIPUr4L2Ntq3ZRuH9aPeTRcB8?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3627.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a2621f4b-fbf7-4646-253e-08d9837c5161 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2021 19:07:01.2481 (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: 447S7QTlXBQ7g83FfEfRRcHJZQWJobqOUBdBZMT+xb5/FzES5e4BnXoNM9urWG66pI5NynWljWVGbqreVAbjmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2634 Return-Path: guo.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpIaSBSYXksDQoNCkkgaGFkIHVwZGF0ZWQgdGhlIHBhdGNoIHRvIHVwZGF0ZSB0aGUgY29tbWl0 IG1lc3NhZ2UgYW5kIGZpeCBzb21lIGNvZGluZyBzdHlsZS4NClBsZWFzZSBoZWxwIHJldmlldyBW NCBwYXRjaC4NCg0KVGhhbmtzLA0KR3VvDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpG cm9tOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPiANClNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAy NCwgMjAyMSA1OjM1IFBNDQpUbzogQ2hlbmctQ2hpZWggSHVhbmcgPGNoZW5nY2hpZWhAZ29vZ2xl LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpDYzogU2NoYWVmZXIsIERhbmllbCA8ZGFuaWVs LnNjaGFlZmVyQGhwZS5jb20+OyBUcmFtbWVsbCBIdWRzb24gPGh1ZHNvbkB0cm1tLm5ldD47IE1h LCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT47IERvbmcsIEd1byA8Z3VvLmRvbmdAaW50 ZWwuY29tPjsgWW91LCBCZW5qYW1pbiA8YmVuamFtaW4ueW91QGludGVsLmNvbT4NClN1YmplY3Q6 IFJFOiBbUEFUQ0ggdjMgMS80XSBVZWZpUGF5bG9hZFBrZzogQWRkIExJTlVYQk9PVCBwYXlsb2Fk IHRhcmdldA0KDQpDYW4geW91IGRlc2NyaWJlIGhvdyBMSU5VWEJPT1QgcGF5bG9hZCBpcyBzdXBw b3J0ZWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlPw0KT25lIGxpbmUgY29tbWl0IG1lc3NhZ2UgaXMg dG9vIHNpbXBsZSBmb3Igc3VjaCBhIGJpZyBmZWF0dXJl8J+Yig0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IENoZW5nLUNoaWVoIEh1YW5nIDxjaGVuZ2NoaWVoQGdvb2ds ZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDIzLCAyMDIxIDI6MzMgUE0NCj4gVG86IGRl dmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBDaGVuZy1DaGllaCBIdWFuZyA8Y2hlbmdjaGllaEBn b29nbGUuY29tPjsgU2NoYWVmZXIsIERhbmllbCANCj4gPGRhbmllbC5zY2hhZWZlckBocGUuY29t PjsgVHJhbW1lbGwgSHVkc29uIDxodWRzb25AdHJtbS5uZXQ+OyBNYSwgDQo+IE1hdXJpY2UgPG1h dXJpY2UubWFAaW50ZWwuY29tPjsgRG9uZywgR3VvIDxndW8uZG9uZ0BpbnRlbC5jb20+OyBZb3Us IA0KPiBCZW5qYW1pbiA8YmVuamFtaW4ueW91QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCB2MyAxLzRdIFVlZmlQYXlsb2FkUGtnOiBBZGQg TElOVVhCT09UIHBheWxvYWQgdGFyZ2V0DQo+IA0KPiBJbml0aWFsIGNvbW1pdCB0byBzdXBwb3J0 IGxpbnV4Ym9vdCBwYXlsb2FkLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQ2hlbmctQ2hpZWggSHVh bmcgPGNoZW5nY2hpZWhAZ29vZ2xlLmNvbT4NCj4gQ2M6IENoZW5nLUNoaWVoIEh1YW5nIDxjaGVu Z2NoaWVoQGdvb2dsZS5jb20+DQo+IENjOiBEYW5pZWwgU2NoYWVmZXIgPGRhbmllbC5zY2hhZWZl ckBocGUuY29tPg0KPiBDYzogVHJhbW1lbGwgSHVkc29uIDxodWRzb25AdHJtbS5uZXQ+DQo+IENj OiBNYXVyaWNlIE1hIDxtYXVyaWNlLm1hQGludGVsLmNvbT4NCj4gQ2M6IEd1byBEb25nIDxndW8u ZG9uZ0BpbnRlbC5jb20+DQo+IENjOiBCZW5qYW1pbiBZb3UgPGJlbmphbWluLnlvdUBpbnRlbC5j b20+DQo+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgVWVmaVBheWxv YWRQa2cvVWVmaVBheWxvYWRQa2cuZHNjICAgICAgICAgICAgIHwgIDE2ICstDQo+ICAuLi4vTGli cmFyeS9MYlBhcnNlTGliL0xiUGFyc2VMaWIuaW5mICAgICAgICAgfCAgMzkgKysrKw0KPiAgVWVm aVBheWxvYWRQa2cvTGlicmFyeS9MYlBhcnNlTGliL0xpbnV4Ym9vdC5oIHwgIDQ3ICsrKysrDQo+ ICAuLi4vTGlicmFyeS9MYlBhcnNlTGliL0xiUGFyc2VMaWIuYyAgICAgICAgICAgfCAxODcgKysr KysrKysrKysrKysrKysrDQo+ICAuLi4vUGNpSG9zdEJyaWRnZUxpYi9QY2lIb3N0QnJpZGdlU3Vw cG9ydC5jICAgfCAgIDYgKy0NCj4gIDUgZmlsZXMgY2hhbmdlZCwgMjg4IGluc2VydGlvbnMoKyks IDcgZGVsZXRpb25zKC0pICBjcmVhdGUgbW9kZSANCj4gMTAwNjQ0IFVlZmlQYXlsb2FkUGtnL0xp YnJhcnkvTGJQYXJzZUxpYi9MYlBhcnNlTGliLmluZg0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFVl ZmlQYXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9MaW51eGJvb3QuaA0KPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IFVlZmlQYXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9MYlBhcnNlTGliLmMN Cj4gDQo+IGRpZmYgLS1naXQgYS9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5kc2MgDQo+ IGIvVWVmaVBheWxvYWRQa2cvVWVmaVBheWxvYWRQa2cuZHNjDQo+IGluZGV4IGJjZWRmMWM3NDZi NC4uNTQ1NzZiYTQ4NWI3IDEwMDY0NA0KPiAtLS0gYS9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9h ZFBrZy5kc2MNCj4gKysrIGIvVWVmaVBheWxvYWRQa2cvVWVmaVBheWxvYWRQa2cuZHNjDQo+IEBA IC0zMyw2ICszMyw3IEBAIFtEZWZpbmVzXQ0KPiAgICAjDQo+ICAgICMgU0JMOiAgICAgIFVFRkkg cGF5bG9hZCBmb3IgU2xpbSBCb290bG9hZGVyDQo+ICAgICMgQ09SRUJPT1Q6IFVFRkkgcGF5bG9h ZCBmb3IgY29yZWJvb3QNCj4gKyAgIyBMSU5VWEJPT1Q6IFVFRkkgcGF5bG9hZCBmb3IgbGludXhi b290DQo+ICAgICMNCj4gICAgREVGSU5FICAgQk9PVExPQURFUiA9IFNCTA0KPiANCj4gQEAgLTkz LDYgKzk0LDkgQEAgW0RlZmluZXNdDQo+IA0KPiAgW0J1aWxkT3B0aW9uc10NCj4gICAgKl8qXypf Q0NfRkxBR1MgICAgICAgICAgICAgICAgID0gLUQgRElTQUJMRV9ORVdfREVQUkVDQVRFRF9JTlRF UkZBQ0VTDQo+ICshaWYgJChCT09UTE9BREVSKSA9PSAiTElOVVhCT09UIg0KPiArICAqXypfKl9D Q19GTEFHUyAgICAgICAgICAgICAgICAgPSAtRCBMSU5VWEJPT1RfUEFZTE9BRA0KPiArIWVuZGlm DQo+ICAgIEdDQzoqX1VOSVhHQ0NfKl9DQ19GTEFHUyAgICAgICA9IC1ETURFUEtHX05ERUJVRw0K PiAgICBHQ0M6UkVMRUFTRV8qXypfQ0NfRkxBR1MgICAgICAgPSAtRE1ERVBLR19OREVCVUcNCj4g ICAgSU5URUw6UkVMRUFTRV8qXypfQ0NfRkxBR1MgICAgID0gL0QgTURFUEtHX05ERUJVRw0KPiBA QCAtMjIyLDExICsyMjYsMTMgQEAgW0xpYnJhcnlDbGFzc2VzXSAgIWVuZGlmDQo+ICAgIA0KPiBQ bGF0Zm9ybVN1cHBvcnRMaWJ8VWVmaVBheWxvYWRQa2cvTGlicmFyeS9QbGF0Zm9ybVN1cHBvcnRM aWJOdWxsL1BsYXRmDQo+IG9ybVN1cHBvcnRMaWJOdWxsLmluZg0KPiAgIWlmICQoVU5JVkVSU0FM X1BBWUxPQUQpID09IEZBTFNFDQo+IC0gICFpZiAkKEJPT1RMT0FERVIpID09ICJDT1JFQk9PVCIN Cj4gLSAgICBCbFBhcnNlTGlifFVlZmlQYXlsb2FkUGtnL0xpYnJhcnkvQ2JQYXJzZUxpYi9DYlBh cnNlTGliLmluZg0KPiAtICAhZWxzZQ0KPiAtICAgIEJsUGFyc2VMaWJ8VWVmaVBheWxvYWRQa2cv TGlicmFyeS9TYmxQYXJzZUxpYi9TYmxQYXJzZUxpYi5pbmYNCj4gLSAgIWVuZGlmDQo+ICsgIWlm ICQoQk9PVExPQURFUikgPT0gIkNPUkVCT09UIg0KPiArICAgQmxQYXJzZUxpYnxVZWZpUGF5bG9h ZFBrZy9MaWJyYXJ5L0NiUGFyc2VMaWIvQ2JQYXJzZUxpYi5pbmYNCj4gKyAhZWxzZWlmICQoQk9P VExPQURFUikgPT0gIkxJTlVYQk9PVCINCj4gKyAgIEJsUGFyc2VMaWJ8VWVmaVBheWxvYWRQa2cv TGlicmFyeS9MYlBhcnNlTGliL0xiUGFyc2VMaWIuaW5mDQo+ICsgIWVsc2UNCj4gKyAgIEJsUGFy c2VMaWJ8VWVmaVBheWxvYWRQa2cvTGlicmFyeS9TYmxQYXJzZUxpYi9TYmxQYXJzZUxpYi5pbmYN Cj4gKyAhZW5kaWYNCj4gICFlbmRpZg0KPiANCj4gICAgDQo+IERlYnVnTGlifE1kZVBrZy9MaWJy YXJ5L0Jhc2VEZWJ1Z0xpYlNlcmlhbFBvcnQvQmFzZURlYnVnTGliU2VyaWFsUG9ydC4NCj4gaW5m IGRpZmYgLS1naXQgYS9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L0xiUGFyc2VMaWIvTGJQYXJzZUxp Yi5pbmYgDQo+IGIvVWVmaVBheWxvYWRQa2cvTGlicmFyeS9MYlBhcnNlTGliL0xiUGFyc2VMaWIu aW5mDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZDc1YmE4 ZGI4Y2YzDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvVWVmaVBheWxvYWRQa2cvTGlicmFyeS9M YlBhcnNlTGliL0xiUGFyc2VMaWIuaW5mDQo+IEBAIC0wLDAgKzEsMzkgQEANCj4gKyMjIEBmaWxl DQo+ICsjICBMaW51eGJvb3QgVGFibGUgUGFyc2UgTGlicmFyeS4NCj4gKyMNCj4gKyMgIENvcHly aWdodCAoYykgMjAyMSwgdGhlIHUtcm9vdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4gIyAgDQo+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCAj ICMjDQo+ICsNCj4gK1tEZWZpbmVzXQ0KPiArICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAg ICAgPSAweDAwMDEwMDA1DQo+ICsgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9IExi UGFyc2VMaWINCj4gKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gREJBMTVFMUUt NEMxNi00N0RGLTkzQzAtQUI1ODg4RUQxNEMzDQo+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAg ICAgICAgICA9IEJBU0UNCj4gKyAgVkVSU0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4w DQo+ICsgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9IEJsUGFyc2VMaWINCj4gKw0K PiArIw0KPiArIyBUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlzIGZvciByZWZlcmVuY2Ugb25s eSBhbmQgbm90IHJlcXVpcmVkIGJ5IHRoZSBidWlsZCB0b29scy4NCj4gKyMNCj4gKyMgIFZBTElE X0FSQ0hJVEVDVFVSRVMgICAgICAgICAgID0gSUEzMiBYNjQNCj4gKyMNCj4gKw0KPiArW1NvdXJj ZXNdDQo+ICsgIExiUGFyc2VMaWIuYw0KPiArDQo+ICtbUGFja2FnZXNdDQo+ICsgIE1kZVBrZy9N ZGVQa2cuZGVjDQo+ICsgIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ICsgIFVlZmlQ YXlsb2FkUGtnL1VlZmlQYXlsb2FkUGtnLmRlYw0KPiArDQo+ICtbTGlicmFyeUNsYXNzZXNdDQo+ ICsgIEJhc2VMaWINCj4gKyAgQmFzZU1lbW9yeUxpYg0KPiArICBJb0xpYg0KPiArICBEZWJ1Z0xp Yg0KPiArICBQY2RMaWINCj4gKw0KPiArW1BjZF0NCj4gKyAgZ1VlZmlQYXlsb2FkUGtnVG9rZW5T cGFjZUd1aWQuUGNkUGF5bG9hZEZkTWVtQmFzZQ0KPiBkaWZmIC0tZ2l0IGEvVWVmaVBheWxvYWRQ a2cvTGlicmFyeS9MYlBhcnNlTGliL0xpbnV4Ym9vdC5oIA0KPiBiL1VlZmlQYXlsb2FkUGtnL0xp YnJhcnkvTGJQYXJzZUxpYi9MaW51eGJvb3QuaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBp bmRleCAwMDAwMDAwMDAwMDAuLmIzYjdlNzBhN2NjYg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi L1VlZmlQYXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9MaW51eGJvb3QuaA0KPiBAQCAtMCww ICsxLDQ3IEBADQo+ICsvKiogQGZpbGUNCj4gKyAgTGludXhCb290IFBFSSBtb2R1bGUgaW5jbHVk ZSBmaWxlLg0KPiArKiovDQo+ICsjaWZuZGVmIF9fTElOVVhCT09UX1BFSV9IX0lOQ0xVREVEX18N Cj4gKyNkZWZpbmUgX19MSU5VWEJPT1RfUEVJX0hfSU5DTFVERURfXw0KPiArDQo+ICsjaWYgZGVm aW5lZChfTVNDX1ZFUikNCj4gKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDIwMCkNCj4gKyNl bmRpZg0KPiArDQo+ICsjcHJhZ21hIHBhY2soMSkNCj4gK3R5cGVkZWYgc3RydWN0IFNlcmlhbFBv cnRDb25maWdTdHJ1Y3Qgew0KPiArICBVSU5UMzIgVHlwZTsNCj4gKyAgVUlOVDMyIEJhc2VBZGRy Ow0KPiArICBVSU5UMzIgQmF1ZDsNCj4gKyAgVUlOVDMyIFJlZ1dpZHRoOw0KPiArICBVSU5UMzIg SW5wdXRIZXJ0ejsNCj4gKyAgVUlOVDMyIFVhcnRQY2lBZGRyOw0KPiArfSBTZXJpYWxQb3J0Q29u ZmlnOw0KPiArDQo+ICt0eXBlZGVmIHN0cnVjdCBNZW1vcnlNYXBFbnRyeVN0cnVjdCB7DQo+ICsg IFVJTlQ2NCBTdGFydDsNCj4gKyAgVUlOVDY0IEVuZDsNCj4gKyAgVUlOVDMyIFR5cGU7DQo+ICt9 IE1lbW9yeU1hcEVudHJ5Ow0KPiArDQo+ICt0eXBlZGVmIHN0cnVjdCBVZWZpUGF5bG9hZENvbmZp Z1N0cnVjdCB7DQo+ICsgIFVJTlQ2NCBWZXJzaW9uOw0KPiArICBVSU5UNjQgQWNwaUJhc2U7DQo+ ICsgIFVJTlQ2NCBBY3BpU2l6ZTsNCj4gKyAgVUlOVDY0IFNtYmlvc0Jhc2U7DQo+ICsgIFVJTlQ2 NCBTbWJpb3NTaXplOw0KPiArICBTZXJpYWxQb3J0Q29uZmlnIFNlcmlhbENvbmZpZzsNCj4gKyAg VUlOVDMyIE51bU1lbW9yeU1hcEVudHJpZXM7DQo+ICsgIE1lbW9yeU1hcEVudHJ5IE1lbW9yeU1h cEVudHJpZXNbMF07IH0gVWVmaVBheWxvYWRDb25maWc7ICNwcmFnbWEgDQo+ICtwYWNrKCkNCj4g Kw0KPiArI2RlZmluZSBVRUZJX1BBWUxPQURfQ09ORklHX1ZFUlNJT04gMQ0KPiArDQo+ICsjZGVm aW5lIExJTlVYQk9PVF9NRU1fUkFNIDENCj4gKyNkZWZpbmUgTElOVVhCT09UX01FTV9ERUZBVUxU IDINCj4gKyNkZWZpbmUgTElOVVhCT09UX01FTV9BQ1BJIDMNCj4gKyNkZWZpbmUgTElOVVhCT09U X01FTV9OVlMgNA0KPiArI2RlZmluZSBMSU5VWEJPT1RfTUVNX1JFU0VSVkVEIDUNCj4gKw0KPiAr I2VuZGlmICAvLyBfX0xJTlVYQk9PVF9QRUlfSF9JTkNMVURFRF9fDQo+IGRpZmYgLS1naXQgYS9V ZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L0xiUGFyc2VMaWIvTGJQYXJzZUxpYi5jIA0KPiBiL1VlZmlQ YXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9MYlBhcnNlTGliLmMNCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi40OGQxNzRkZmMwNzgNCj4gLS0tIC9kZXYv bnVsbA0KPiArKysgYi9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L0xiUGFyc2VMaWIvTGJQYXJzZUxp Yi5jDQo+IEBAIC0wLDAgKzEsMTg3IEBADQo+ICsvKiogQGZpbGUNCj4gKyAgVGhpcyBsaWJyYXJ5 IHdpbGwgcGFyc2UgdGhlIGxpbnV4Ym9vdCB0YWJsZSBpbiBtZW1vcnkgYW5kIGV4dHJhY3QgDQo+ ICt0aG9zZSByZXF1aXJlZA0KPiArICBpbmZvcm1hdGlvbi4NCj4gKw0KPiArICBDb3B5cmlnaHQg KGMpIDIwMjEsIHRoZSB1LXJvb3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsNCj4g KyoqLw0KPiArDQo+ICsNCj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL0FjcGkuaD4NCj4g KyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1NtQmlvcy5oPg0KPiArI2luY2x1ZGUgPExpYnJh cnkvQmFzZUxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5oPg0KPiAr I2luY2x1ZGUgPExpYnJhcnkvQmxQYXJzZUxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvRGVi dWdMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0lvTGliLmg+DQo+ICsjaW5jbHVkZSA8TGli cmFyeS9QY2RMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaW51eGJvb3QuaD4NCj4gKyNpbmNsdWRlIDxV ZWZpL1VlZmlCYXNlVHlwZS5oPg0KPiArDQo+ICsvLyBSZXRyaWV2ZSBVZWZpUGF5bG9hZENvbmZp ZyBmcm9tIExpbnV4Ym9vdCdzIHVlZmlib290DQo+ICtVZWZpUGF5bG9hZENvbmZpZyoNCj4gK0dl dFVlZmlQYXlMb2FkQ29uZmlnKCkNCj4gK3sNCj4gKyAgVWVmaVBheWxvYWRDb25maWcgKkNvbmZp ZzsNCj4gKyAgQ29uZmlnID0gKFVlZmlQYXlsb2FkQ29uZmlnKikoVUlOVE4pKFBjZEdldDMyKFBj ZFBheWxvYWRGZE1lbUJhc2UpIA0KPiArLSBTSVpFXzY0S0IpOw0KPiArICBpZiAoQ29uZmlnLT5W ZXJzaW9uICE9IFVFRklfUEFZTE9BRF9DT05GSUdfVkVSU0lPTikgew0KPiArICAgIERFQlVHKChE RUJVR19FUlJPUiwgIkV4cGVjdCBwYXlsb2FkIENvbmZpZyB2ZXJzaW9uOiAlZCwgYnV0IGdldCAl ZFxuIiwNCj4gKyAgICAgICAgICAgVUVGSV9QQVlMT0FEX0NPTkZJR19WRVJTSU9OLCBDb25maWct PlZlcnNpb24pKTsNCj4gKyAgICBDcHVEZWFkTG9vcCAoKTsNCj4gKyAgfQ0KPiArICByZXR1cm4g Q29uZmlnOw0KPiArfQ0KPiArDQo+ICsvLyBBbGlnbiB0aGUgYWRkcmVzcyBhbmQgYWRkIG1lbW9y eSByYW5nIHRvIE1lbUluZm9DYWxsYmFjayBWT0lEIA0KPiArQWRkTWVtb3J5UmFuZ2UgKA0KPiAr ICBJTiBCTF9NRU1fSU5GT19DQUxMQkFDSyBNZW1JbmZvQ2FsbGJhY2ssDQo+ICsgIElOIFVJTlRO IHN0YXJ0LA0KPiArICBJTiBVSU5UTiBlbmQsDQo+ICsgIElOIGludCB0eXBlDQo+ICsgICkgew0K PiArICBNRU1ST1lfTUFQX0VOVFJZIE1lbW9yeU1hcDsNCj4gKyAgVUlOVE4gQWxpZ25lZFN0YXJ0 Ow0KPiArICBVSU5UTiBBbGlnbmVkRW5kOw0KPiArICBBbGlnbmVkU3RhcnQgPSBBTElHTl9WQUxV RShzdGFydCwgU0laRV80S0IpOw0KPiArICBBbGlnbmVkRW5kID0gQUxJR05fVkFMVUUoZW5kLCBT SVpFXzRLQik7DQo+ICsgIC8vIENvbnNlcnZhdGl2ZSBhZGp1c3RtZW50IG9uIE1lbW9yeSBtYXAu IFRoaXMgc2hvdWxkIGhhcHBlbiB3aGVuIA0KPiArYm9vdGluZyBmcm9tDQo+ICsgIC8vIG5vbiBV RUZJIGJpb3MgYW5kIGl0IG1heSByZXBvcnQgYSBtZW1vcnkgcmVnaW9uIGxlc3MgdGhhbiA0S0Iu DQo+ICsgIGlmIChBbGlnbmVkU3RhcnQgPiBzdGFydCAmJiB0eXBlICE9IExJTlVYQk9PVF9NRU1f UkFNKSB7DQo+ICsgICAgQWxpZ25lZFN0YXJ0IC09IFNJWkVfNEtCOw0KPiArICB9DQo+ICsgIGlm IChBbGlnbmVkRW5kID4gZW5kICsgMSAmJiB0eXBlID09IExJTlVYQk9PVF9NRU1fUkFNKSB7DQo+ ICsgICAgQWxpZ25lZEVuZCAtPSBTSVpFXzRLQjsNCj4gKyAgfQ0KPiArICBNZW1vcnlNYXAuQmFz ZSA9IEFsaWduZWRTdGFydDsNCj4gKyAgTWVtb3J5TWFwLlNpemUgPSBBbGlnbmVkRW5kIC0gQWxp Z25lZFN0YXJ0Ow0KPiArICBNZW1vcnlNYXAuVHlwZSA9IHR5cGU7DQo+ICsgIE1lbW9yeU1hcC5G bGFnID0gMDsNCj4gKyAgTWVtSW5mb0NhbGxiYWNrKCZNZW1vcnlNYXAsIE5VTEwpOw0KPiArfQ0K PiArDQo+ICsvKioNCj4gKyAgQWNxdWlyZSB0aGUgbWVtb3J5IGluZm9ybWF0aW9uIGZyb20gdGhl IGxpbnV4Ym9vdCB0YWJsZSBpbiBtZW1vcnkuDQo+ICsNCj4gKyAgQHBhcmFtICBNZW1JbmZvQ2Fs bGJhY2sgICAgIFRoZSBjYWxsYmFjayByb3V0aW5lDQo+ICsgIEBwYXJhbSAgUGFyYW1zICAgICAg ICAgICAgICBQb2ludGVyIHRvIHRoZSBjYWxsYmFjayByb3V0aW5lIHBhcmFtZXRlcg0KPiArDQo+ ICsgIEByZXR2YWwgUkVUVVJOX1NVQ0NFU1MgICAgIFN1Y2Nlc3NmdWxseSBmaW5kIG91dCB0aGUg bWVtb3J5IGluZm9ybWF0aW9uLg0KPiArICBAcmV0dmFsIFJFVFVSTl9OT1RfRk9VTkQgICBGYWls ZWQgdG8gZmluZCB0aGUgbWVtb3J5IGluZm9ybWF0aW9uLg0KPiArDQo+ICsqKi8NCj4gK1JFVFVS Tl9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArUGFyc2VNZW1vcnlJbmZvICgNCj4gKyAgSU4gQkxfTUVN X0lORk9fQ0FMTEJBQ0sgTWVtSW5mb0NhbGxiYWNrLA0KPiArICBJTiBWT0lEKiBQYXJhbXMNCj4g KyAgKSB7DQo+ICsgIFVlZmlQYXlsb2FkQ29uZmlnICpDb25maWc7DQo+ICsgIE1lbW9yeU1hcEVu dHJ5KiBlbnRyeTsNCj4gKyAgaW50IEluZGV4Ow0KPiArDQo+ICsgIENvbmZpZyA9IEdldFVlZmlQ YXlMb2FkQ29uZmlnKCk7DQo+ICsNCj4gKyAgREVCVUcoKERFQlVHX0lORk8sICJNZW1vcnlNYXAg I2VudHJpZXM6ICVkXG4iLCANCj4gKyBDb25maWctPk51bU1lbW9yeU1hcEVudHJpZXMpKTsNCj4g Kw0KPiArICBlbnRyeSA9ICZDb25maWctPk1lbW9yeU1hcEVudHJpZXNbMF07DQo+ICsgIGZvciAo SW5kZXggPSAwOyBJbmRleCA8IENvbmZpZy0+TnVtTWVtb3J5TWFwRW50cmllczsgSW5kZXgrKykg ew0KPiArICAgIERFQlVHKChERUJVR19JTkZPLCAiU3RhcnQ6IDB4JWx4IEVuZDogMHglbHggVHlw ZTolZFxuIiwgZW50cnktPlN0YXJ0LA0KPiArICAgICAgICAgICBlbnRyeS0+RW5kLCBlbnRyeS0+ VHlwZSkpOw0KPiArICAgIEFkZE1lbW9yeVJhbmdlKE1lbUluZm9DYWxsYmFjaywgZW50cnktPlN0 YXJ0LCBlbnRyeS0+RW5kLCBlbnRyeS0+VHlwZSk7DQo+ICsgICAgZW50cnkrKzsNCj4gKyAgfQ0K PiArICByZXR1cm4gUkVUVVJOX1NVQ0NFU1M7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBBY3F1 aXJlIGFjcGkgdGFibGUgYW5kIHNtYmlvcyB0YWJsZSBmcm9tIGxpbnV4Ym9vdA0KPiArDQo+ICsg IEBwYXJhbSAgU3lzdGVtVGFibGVJbmZvICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIHN5c3RlbSB0 YWJsZSBpbmZvDQo+ICsNCj4gKyAgQHJldHZhbCBSRVRVUk5fU1VDQ0VTUyAgICAgICAgICAgIFN1 Y2Nlc3NmdWxseSBmaW5kIG91dCB0aGUgdGFibGVzLg0KPiArICBAcmV0dmFsIFJFVFVSTl9OT1Rf Rk9VTkQgICAgICAgICAgRmFpbGVkIHRvIGZpbmQgdGhlIHRhYmxlcy4NCj4gKw0KPiArKiovDQo+ ICtSRVRVUk5fU1RBVFVTDQo+ICtFRklBUEkNCj4gK1BhcnNlU3lzdGVtVGFibGUgKA0KPiArICBP VVQgU1lTVEVNX1RBQkxFX0lORk8qIFN5c3RlbVRhYmxlSW5mbw0KPiArICApIHsNCj4gKyAgVWVm aVBheWxvYWRDb25maWcgKkNvbmZpZzsNCj4gKw0KPiArICBDb25maWcgPSBHZXRVZWZpUGF5TG9h ZENvbmZpZygpOw0KPiArICBTeXN0ZW1UYWJsZUluZm8tPkFjcGlUYWJsZUJhc2UgPSBDb25maWct PkFjcGlCYXNlOyAgDQo+ICsgU3lzdGVtVGFibGVJbmZvLT5BY3BpVGFibGVTaXplID0gQ29uZmln LT5BY3BpU2l6ZTsNCj4gKw0KPiArICBTeXN0ZW1UYWJsZUluZm8tPlNtYmlvc1RhYmxlQmFzZSA9 IENvbmZpZy0+U21iaW9zQmFzZTsgIA0KPiArIFN5c3RlbVRhYmxlSW5mby0+U21iaW9zVGFibGVT aXplID0gQ29uZmlnLT5TbWJpb3NTaXplOw0KPiArDQo+ICsgIHJldHVybiBSRVRVUk5fU1VDQ0VT UzsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgIEZpbmQgdGhlIHNlcmlhbCBwb3J0IGluZm9ybWF0 aW9uDQo+ICsNCj4gKyAgQHBhcmFtICBTRVJJQUxfUE9SVF9JTkZPICAgUG9pbnRlciB0byBzZXJp YWwgcG9ydCBpbmZvIHN0cnVjdHVyZQ0KPiArDQo+ICsgIEByZXR2YWwgUkVUVVJOX1NVQ0NFU1Mg ICAgIFN1Y2Nlc3NmdWxseSBmaW5kIHRoZSBzZXJpYWwgcG9ydCBpbmZvcm1hdGlvbi4NCj4gKyAg QHJldHZhbCBSRVRVUk5fTk9UX0ZPVU5EICAgRmFpbGVkIHRvIGZpbmQgdGhlIHNlcmlhbCBwb3J0 IGluZm9ybWF0aW9uIC4NCj4gKw0KPiArKiovDQo+ICtSRVRVUk5fU1RBVFVTDQo+ICtFRklBUEkN Cj4gK1BhcnNlU2VyaWFsSW5mbyAoDQo+ICsgIE9VVCBTRVJJQUxfUE9SVF9JTkZPKiBTZXJpYWxQ b3J0SW5mbw0KPiArICApIHsNCj4gKyAgVWVmaVBheWxvYWRDb25maWcgKkNvbmZpZzsNCj4gKyAg Q29uZmlnID0gR2V0VWVmaVBheUxvYWRDb25maWcoKTsNCj4gKw0KPiArICBTZXJpYWxQb3J0SW5m by0+QmFzZUFkZHIgPSBDb25maWctPlNlcmlhbENvbmZpZy5CYXNlQWRkcjsgIA0KPiArIFNlcmlh bFBvcnRJbmZvLT5SZWdXaWR0aCA9IENvbmZpZy0+U2VyaWFsQ29uZmlnLlJlZ1dpZHRoOyAgDQo+ ICsgU2VyaWFsUG9ydEluZm8tPlR5cGUgPSBDb25maWctPlNlcmlhbENvbmZpZy5UeXBlOyAgDQo+ ICsgU2VyaWFsUG9ydEluZm8tPkJhdWQgPSBDb25maWctPlNlcmlhbENvbmZpZy5CYXVkOyAgDQo+ ICsgU2VyaWFsUG9ydEluZm8tPklucHV0SGVydHogPSBDb25maWctPlNlcmlhbENvbmZpZy5JbnB1 dEhlcnR6OyAgDQo+ICsgU2VyaWFsUG9ydEluZm8tPlVhcnRQY2lBZGRyID0gQ29uZmlnLT5TZXJp YWxDb25maWcuVWFydFBjaUFkZHI7DQo+ICsNCj4gKyAgcmV0dXJuIFJFVFVSTl9TVUNDRVNTOw0K PiArfQ0KPiArDQo+ICsvKioNCj4gKyAgRmluZCB0aGUgdmlkZW8gZnJhbWUgYnVmZmVyIGluZm9y bWF0aW9uDQo+ICsNCj4gKyAgQHBhcmFtICBHZnhJbmZvICAgICAgICAgICAgIFBvaW50ZXIgdG8g dGhlIEVGSV9QRUlfR1JBUEhJQ1NfSU5GT19IT0Igc3RydWN0dXJlDQo+ICsNCj4gKyAgQHJldHZh bCBSRVRVUk5fU1VDQ0VTUyAgICAgU3VjY2Vzc2Z1bGx5IGZpbmQgdGhlIHZpZGVvIGZyYW1lIGJ1 ZmZlcg0KPiAraW5mb3JtYXRpb24uDQo+ICsgIEByZXR2YWwgUkVUVVJOX05PVF9GT1VORCAgIEZh aWxlZCB0byBmaW5kIHRoZSB2aWRlbyBmcmFtZSBidWZmZXIgaW5mb3JtYXRpb24gLg0KPiArDQo+ ICsqKi8NCj4gK1JFVFVSTl9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArUGFyc2VHZnhJbmZvICgNCj4g KyAgT1VUIEVGSV9QRUlfR1JBUEhJQ1NfSU5GT19IT0IqIEdmeEluZm8NCj4gKyAgKSB7DQo+ICsg IC8vIE5vdCBzdXBwb3J0ZWQNCj4gKyAgcmV0dXJuIFJFVFVSTl9OT1RfRk9VTkQ7DQo+ICt9DQo+ ICsNCj4gKy8qKg0KPiArICBGaW5kIHRoZSB2aWRlbyBmcmFtZSBidWZmZXIgZGV2aWNlIGluZm9y bWF0aW9uDQo+ICsNCj4gKyAgQHBhcmFtICBHZnhEZXZpY2VJbmZvICAgICAgUG9pbnRlciB0byB0 aGUgRUZJX1BFSV9HUkFQSElDU19ERVZJQ0VfSU5GT19IT0INCj4gK3N0cnVjdHVyZQ0KPiArDQo+ ICsgIEByZXR2YWwgUkVUVVJOX1NVQ0NFU1MgICAgIFN1Y2Nlc3NmdWxseSBmaW5kIHRoZSB2aWRl byBmcmFtZSBidWZmZXINCj4gK2luZm9ybWF0aW9uLg0KPiArICBAcmV0dmFsIFJFVFVSTl9OT1Rf Rk9VTkQgICBGYWlsZWQgdG8gZmluZCB0aGUgdmlkZW8gZnJhbWUgYnVmZmVyIGluZm9ybWF0aW9u Lg0KPiArDQo+ICsqKi8NCj4gK1JFVFVSTl9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArUGFyc2VHZnhE ZXZpY2VJbmZvICgNCj4gKyAgT1VUIEVGSV9QRUlfR1JBUEhJQ1NfREVWSUNFX0lORk9fSE9CKiBH ZnhEZXZpY2VJbmZvDQo+ICsgICkgew0KPiArICByZXR1cm4gUkVUVVJOX05PVF9GT1VORDsNCj4g K30NCj4gZGlmZiAtLWdpdCANCj4gYS9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L1BjaUhvc3RCcmlk Z2VMaWIvUGNpSG9zdEJyaWRnZVN1cHBvcnQuYw0KPiBiL1VlZmlQYXlsb2FkUGtnL0xpYnJhcnkv UGNpSG9zdEJyaWRnZUxpYi9QY2lIb3N0QnJpZGdlU3VwcG9ydC5jDQo+IGluZGV4IGIwMjY4ZjA1 MDY5Yy4uYTRmNzE0Zjc2NWVhIDEwMDY0NA0KPiAtLS0gYS9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5 L1BjaUhvc3RCcmlkZ2VMaWIvUGNpSG9zdEJyaWRnZVN1cHBvcnQuYw0KPiArKysgYi9VZWZpUGF5 bG9hZFBrZy9MaWJyYXJ5L1BjaUhvc3RCcmlkZ2VMaWIvUGNpSG9zdEJyaWRnZVN1cHBvcnQuYw0K PiBAQCAtNDAsOCArNDAsOSBAQCBBZGp1c3RSb290QnJpZGdlUmVzb3VyY2UgKA0KPiAgICBJTiAg UENJX1JPT1RfQlJJREdFX0FQRVJUVVJFICpQTWVtQWJvdmU0Rw0KPiAgKQ0KPiAgew0KPiArI2lm bmRlZiBMSU5VWEJPT1RfUEFZTE9BRA0KPiAgICBVSU5UNjQgIE1hc2s7DQo+IC0NCj4gKyNlbmRp Zg0KPiAgICAvLw0KPiAgICAvLyBGb3Igbm93IHRyeSB0byBkb3duZ3JhZGUgZXZlcnl0aGluZyBp bnRvIE1FTTMyIHNpbmNlDQo+ICAgIC8vIC0gY29yZWJvb3QgZG9lcyBub3QgYXNzaWduIHJlc291 cmNlIGFib3ZlIDRHQiBAQCAtODAsNyArODEsNyBAQCANCj4gQWRqdXN0Um9vdEJyaWRnZVJlc291 cmNlICgNCj4gICAgICBQTWVtQWJvdmU0Ry0+QmFzZSAgPSBNQVhfVUlOVDY0Ow0KPiAgICAgIFBN ZW1BYm92ZTRHLT5MaW1pdCA9IDA7DQo+ICAgIH0NCj4gLQ0KPiArI2lmbmRlZiBMSU5VWEJPT1Rf UEFZTE9BRA0KPiAgICAvLw0KPiAgICAvLyBBbGlnbiBJTyAgcmVzb3VyY2UgYXQgNEsgIGJvdW5k YXJ5DQo+ICAgIC8vDQo+IEBAIC05OCw2ICs5OSw3IEBAIEFkanVzdFJvb3RCcmlkZ2VSZXNvdXJj ZSAoDQo+ICAgIGlmIChNZW0tPkJhc2UgIT0gTUFYX1VJTlQ2NCkgew0KPiAgICAgIE1lbS0+QmFz ZSAmPSB+TWFzazsNCj4gICAgfQ0KPiArI2VuZGlmDQo+ICB9DQo+IA0KPiAgLyoqDQo+IC0tDQo+ IDIuMzMuMC5yYzIuMjUwLmdlZDVmYTY0N2NkLWdvb2cNCg0K