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.web10.29427.1613960125859527550 for ; Sun, 21 Feb 2021 18:15:26 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=zqlaRxRz; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: w.sheng@intel.com) IronPort-SDR: 5T0YCgXZktZSb8e0k36fbFWCVuSwMTM3MRjlFQsfs0jfQOF9vKpYpcRTRv1ozSkJ7yr6H1TGPi M6rid5SxaWrg== X-IronPort-AV: E=McAfee;i="6000,8403,9902"; a="184373186" X-IronPort-AV: E=Sophos;i="5.81,195,1610438400"; d="scan'208";a="184373186" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Feb 2021 18:15:25 -0800 IronPort-SDR: tgKe7TKQ75HW+askOnwot+OrDDdbY6/5bxuzTRP8L1qmOYTv6s5uWug/eZUrlazha2Kxca9zcz T2B+lEuaH7Rg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,195,1610438400"; d="scan'208";a="429904610" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by FMSMGA003.fm.intel.com with ESMTP; 21 Feb 2021 18:15:25 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) 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.2106.2; Sun, 21 Feb 2021 18:15:24 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Sun, 21 Feb 2021 18:15:24 -0800 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.42) 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.2106.2; Sun, 21 Feb 2021 18:15:24 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PWoL3+eCnUEV+8g1DxAu0sK/3YBbYXviNXNuh9TqHQw636Zeq7sx7CKfq1q9HZt+KlvTgJX7FWw9fBkUQYTxfs7sKtmXACEb2UPGJeHlSvj9Uths+AhioSUcFD6xVbbvhxPFQsAMHIjchxgC6MAZhoDTxTj9xS5rDmZLuGRCN55jMZ2bnf4sxPjszzNz4SxttiBL3dazvUeAyBnGb6YFC4aTCa3JpEG5oGJkfGzzUjDJDzDHs+aDOfst+7wANg9achr0FCUQt1y+Ga8k5j2QgSlC4q9C0y4fWwv0jjF448CVE1l60h7CPEgXr5o8g81gSolgGgWw9+ObJo8DAj+saw== 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=h9AOfx8ucWRnrwP869oMA6hsIjKBRNK3ZtsjpxiYBlA=; b=HB1kmwbwJeFtNp7SNzFvOzjkb72o5dglT+cjsmPvkwLJBzVjsq+mwIoi4RSxLYfDEAtAWLcX1QsAQBNYnu5FiZuT2qj0zl0eaqi8Z3LgbZPfFexYAF/ngqLUSefm1uCS0Ts9SVJUN+AdHANvWvKBh6BqG+e3KcIXWPMwc5T08qo1PFHpZ343z9dgpNjhoRTLHUfnt+i44Xov5Ayh+9hzyrLu469mN+e3QO/uvrlDK7Fi/R9MKdyIBwdf/AMOYM2cQgP8ChnEpuYTRTeEGq9oxCPhwB0YVQkLSKA/BeQiJAVpzFLEI1hw/uqV02hlx3F9jSnOV9hohGjMCP2ov9hP2g== 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=h9AOfx8ucWRnrwP869oMA6hsIjKBRNK3ZtsjpxiYBlA=; b=zqlaRxRzjA5va+4tnU9mI33u584pJYbIF7LWgs/7kA4Crdh2enuxYkONqBrho52Z3YxsAQALoPUz2snC2NjPWycIo+XeaA1Uw2vEk2SsCwwovWq9lacd5xVqCTfdvSzSHUaepWrd12SCbYSA1vbb/YmmAB0YFaMMr7L1nQM9ikk= Received: from CY4PR11MB1928.namprd11.prod.outlook.com (2603:10b6:903:11e::18) by CY4PR11MB0024.namprd11.prod.outlook.com (2603:10b6:910:76::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.26; Mon, 22 Feb 2021 02:15:21 +0000 Received: from CY4PR11MB1928.namprd11.prod.outlook.com ([fe80::d957:78ec:3ce:43da]) by CY4PR11MB1928.namprd11.prod.outlook.com ([fe80::d957:78ec:3ce:43da%12]) with mapi id 15.20.3868.031; Mon, 22 Feb 2021 02:15:21 +0000 From: "Sheng Wei" To: "devel@edk2.groups.io" , "Sheng, W" CC: "Dong, Eric" , "Ni, Ray" , "Laszlo Ersek" , "Kumar, Rahul1" , "Yao, Jiewen" , "Feng, Roger" Subject: Re: [edk2-devel] [PATCH v5 2/2] UefiCpuPkg/CpuExceptionHandlerLib: Clear CET shadow stack token busy bit Thread-Topic: [edk2-devel] [PATCH v5 2/2] UefiCpuPkg/CpuExceptionHandlerLib: Clear CET shadow stack token busy bit Thread-Index: AQHXBzautDo4PpneEE+acZHjdCHMCKpjcmVA Date: Mon, 22 Feb 2021 02:15:21 +0000 Message-ID: References: <20210220031501.24284-1-w.sheng@intel.com> <1665564E9CEC9D4A.5517@groups.io> In-Reply-To: <1665564E9CEC9D4A.5517@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3da815f0-b88d-4580-2370-08d8d6d7b502 x-ms-traffictypediagnostic: CY4PR11MB0024: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XF6YoEI6THFW9RSuU2es+qvBGpeeA/6pAc/oyNrS6F7YsXQPHdHUUIIsk5RBYS8H5xeknoYJ5BtdWpo0fa0pC7dj/7k95Z7c+ItYHKZ/DNpB1qaVSpBOSKrWbzJdGWX5OyU8aK7BCUTCRUlltLtsnGQjy3ZUPVvTxf8+bi/p+WQ/dwpPU/eYvURKmyMLgEav6LLyKoc2N0dOyA2R42viPpODje8W+qF/2nxEESXfzD8OZzR7dSXSH0N4z8MGwGZX40YMnRTjkdh1dE3L4fphURpunLCBEwpSfqRdkvJFiZuRcxMJ70j6nbJ1/GMM5DNpjf/01x6VwpCC/F+bHRM6vNUssyMtiDtWqPdDS1C1OtezJ50CmoRibHWDd7caSTDwCVJcNEyIC5f3etkBsQ/hMczKL7YkYBsCjHRuNW+CaFjZIg6yI4CxDs5R4HtK112xRlQCmzn6De90nX84ZFfZ5Kr9khiKs7VXgoq0g7dYzHflyqq59BHQlzvuW6pZbuDKvnBFWLi4DzCPet/aEDkxu5YVr0qZSec05n3StJyjaaCiwcpyBdgX3chFWVnVchFppqQmOiN2wHM5rDjdcndSiAoEJGSIXF+Q37H0irq+OJ0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1928.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(396003)(39860400002)(366004)(136003)(346002)(55016002)(66946007)(64756008)(86362001)(8676002)(66476007)(316002)(76116006)(19627235002)(66446008)(107886003)(66556008)(52536014)(33656002)(7696005)(71200400001)(5660300002)(83380400001)(186003)(966005)(6506007)(4326008)(8936002)(2906002)(26005)(110136005)(9686003)(478600001)(53546011)(54906003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?gb2312?B?MDF6V3JiQjIvVmhmS2Jzd25VRm5Bblg1aWxkREp6MjlyWi9MQ3gvdTBNN0du?= =?gb2312?B?K3FrdTlMRXF2NUtaNm5odXZzUWVyNjBqNzJuSmZJSFlaS1E1UlNnSVdYVUxo?= =?gb2312?B?dnNSYkRLeWJEcnRPUXFaSzl1RU4wMEJ4bnBJYmlvN1VzNERiNzhIUDJLU3ZD?= =?gb2312?B?OGxPTTdtYVBQT0lqajJiMW1IdHZOeDFTQUphQWpnZTdrRFZzc005QVM1UjZy?= =?gb2312?B?WXUrOW8xQWpQeldVMW1CYmFUek5UYmlOWXIyNkhtaTlJUlgvdmN5NzY1cFF1?= =?gb2312?B?Y2N3SXJvRVpaZlh1VzQ2WFBBZDlHT3U4SHZqYWN5MUNaNG5Ec0dheWlTK3d2?= =?gb2312?B?L2t4M3d5b1htUEJ5QnJCS0thYVNXS1dYNzBYRkVPVzFYZFdIa2VPN1hXTzY5?= =?gb2312?B?cW5sS3ZDTENNaGtVbFZvSWQ0MXRUZkRWYWYyd3lGMlNpNlB2K0RER2FJSHk4?= =?gb2312?B?blptc0pXZlIvZVVpZ2NRMlB4TWlsZWE5VXF1eS9tcVQ1SlJtUnFmSFJVcTJB?= =?gb2312?B?SUJEcHF1MDV6S1BoYTVOWndlRzNjOFNPUGpWUnd5KytQSlFKZzNZRThrUjVs?= =?gb2312?B?S0pHZC9URE9qRlovOU0zdW5qbWNLcWcxeWR5VHJ4QkVJSG1WamhIUjJYbFR1?= =?gb2312?B?aFBVT2RvMzdWZnZ0eUFnOEFEVTVGWldNcUVjQnlzZEhsUFNHZjBoS1BWSnRM?= =?gb2312?B?S3lvM0phR044aGJIa3JmZkJvdjdoaTR4a0FtR2hoVkJRR09TczA4ZHc0ZEFq?= =?gb2312?B?NGQ2OGtldXN6ZWE3RzZHWkkvZUQvenhXaGVVUFp1K1ZYdTUyTk1LVUpNMVNO?= =?gb2312?B?cy9MU0Q1TllYWlZaMmpaTE43RW1uSGMwTXp1ZXF2ZFJEZnFNM1poSjJZdFVD?= =?gb2312?B?Y0JxWFQrL0JXZlF6YzdlelFieXhjWFlGNklXdlU5OXZTVkZHQS9DbHhCOUVq?= =?gb2312?B?SFNGSHhJZ3lmWnorMFh2YjY2bUwzVWM0UnRZSzVHSTVqK1ZWMmI4eEJSbzRQ?= =?gb2312?B?a2dlR2ZMRGlLa0IxekpLK2lXYW5VRjZMYVBnaktndktaUU1renIraGdLTXla?= =?gb2312?B?QUs4TW1rcjVBL2ZoakVlRkVVM1lydlczazBHajZUeG1UTk1ueEVUcUpra09Z?= =?gb2312?B?M2FZN0dIS1NzTWdYUFA3ekw5UCszT1BzT01IK25UQ2dXSjFNMk0xMFlML2tq?= =?gb2312?B?V2tRQUJhNFNDc25DQ3Q0ZGIwN21vZHEyWC9RaGpySkNhcnU1NU45NExkbG96?= =?gb2312?B?MFlRYlMveGZpTFdvZFNQNWNhcTgvcE5aRUVzakhKeW91b2RwbHRmWkoxMDdW?= =?gb2312?B?dzBLU1BPWmNYRFE5L1FmRm40ZGlVdEhSb1ZTWEZIYzMydFBoM1pIWVBYUHUx?= =?gb2312?B?eHRjNlAzQ2xGZWpLQ2pZWWI0cVhRM0pQNGdINEZSbjQwakxTU01OY2RwWk5E?= =?gb2312?B?YXZ5YVdHOFA1MUtEWXFrZTl3SGt2TGl3c1pQSmZVdWRhQkExMU5OejBoVjRC?= =?gb2312?B?dWwxdVRodDJBeGN3VDI4a2xVNzVLMkU2Ukd2M1NycDhWT1h5azJiR3cyVVpJ?= =?gb2312?B?Y0o2QjFWbVhaUnRMRnViWjUvOHFzUlVpR3loN0l5a1BtTnROT1pwbGVBYUNX?= =?gb2312?B?KzFocGRWY3hGZERYUW1oUzRHbmQ3WnB4MkxIcnZFYWlWcW1LaUVQYTdxemJD?= =?gb2312?B?RGEzL0FVKzh5aHYwbjRhMXdvZldTamhCZkZPL0RhWXVMSll0ZFM5NXJ6S3Rz?= =?gb2312?Q?4BQsfdrSLg0SHlIjYFJFLj1nK7PymAJCfFskHmi?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1928.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3da815f0-b88d-4580-2370-08d8d6d7b502 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Feb 2021 02:15:21.4214 (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: I5QuoPc4kKlOCiwpS3NqR5zf+P59Fq1zzhQg3lYpeJWMjGeyTEGg1kxW2CJDH3KgSBswjcDeIC5xAKbqrJy7Lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB0024 Return-Path: w.sheng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgSmlld2VuLA0KVGhhbmsgeW91IGZvciByZXZpZXcgdGhlIHBhdGNoLg0KQ291bGQgeW91IGdp dmUgcmV2aWV3LWJ5IG9uIHRoaXMgcGF0Y2g/DQpUaGFuayB5b3UuDQpCUg0KU2hlbmcgV2VpDQoN Cg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBTaGVuZw0KPiBXZWkNCj4g U2VudDogMjAyMcTqMtTCMjDI1SAxMToxNQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g Q2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50 ZWwuY29tPjsgTGFzemxvDQo+IEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEt1bWFyLCBSYWh1 bDEgPHJhaHVsMS5rdW1hckBpbnRlbC5jb20+OyBZYW8sDQo+IEppZXdlbiA8amlld2VuLnlhb0Bp bnRlbC5jb20+OyBGZW5nLCBSb2dlciA8cm9nZXIuZmVuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6 IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjUgMi8yXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWI6DQo+IENsZWFyIENFVCBzaGFkb3cgc3RhY2sgdG9rZW4gYnVzeSBiaXQNCj4gDQo+IElm IENFVCBzaGFkb3dzIHN0YWNrIGZlYXR1cmUgZW5hYmxlZCBpbiBTTU0gYW5kIHN0YWNrIHN3aXRj aCBpcyBlbmFibGVkLg0KPiBXaGVuIGNvZGUgZXhlY3V0ZSBmcm9tIFNNTSBoYW5kbGVyIHRvIFNN TSBleGNlcHRpb24sIENQVSB3aWxsIGNoZWNrDQo+IFNNTSBleGNlcHRpb24gc2hhZG93IHN0YWNr IHRva2VuIGJ1c3kgYml0IGlmIGl0IGlzIGNsZWFyZWQgb3Igbm90Lg0KPiBJZiBpdCBpcyBzZXQs IGl0IHdpbGwgdHJpZ2dlciAjREYgZXhjZXB0aW9uLg0KPiBJZiBpdCBpcyBub3Qgc2V0LCBDUFUg d2lsbCBzZXQgdGhlIGJ1c3kgYml0IHdoZW4gZW50ZXIgU01NIGV4Y2VwdGlvbi4NCj4gU28sIHRo ZSBidXN5IGJpdCBzaG91bGQgYmUgY2xlYXJlZCB3aGVuIHJldHVybiBiYWNrIGZvcm0gU01NIGV4 Y2VwdGlvbiB0bw0KPiBTTU0gaGFuZGxlci4gT3RoZXJ3aXNlLCBrZWVwaW5nIGJ1c3kgYml0IDEg d2lsbCBjYXVzZSB0byB0cmlnZ2VyICNERg0KPiBleGNlcHRpb24gd2hlbiBlbnRlciBTTU0gZXhj ZXB0aW9uIG5leHQgdGltZS4NCj4gU28sIHdlIHVzZSBpbnN0cnVjdGlvbiBTQVZFUFJFVlNTUCwg Q0xSU1NCU1kgYW5kIFJTVE9SU1NQIHRvIGNsZWFyIHRoZQ0KPiBzaGFkb3cgc3RhY2sgdG9rZW4g YnVzeSBiaXQgYmVmb3JlIFJFVEYgaW5zdHJ1Y3Rpb24gaW4gU01NIGV4Y2VwdGlvbi4NCj4gDQo+ IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTky DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBTaGVuZyBXZWkgPHcuc2hlbmdAaW50ZWwuY29tPg0KPiBD YzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiBDYzogUmF5IE5pIDxyYXkubmlA aW50ZWwuY29tPg0KPiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gQ2M6 IFJhaHVsIEt1bWFyIDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPg0KPiBDYzogSmlld2VuIFlhbyA8 amlld2VuLnlhb0BpbnRlbC5jb20+DQo+IENjOiBSb2dlciBGZW5nIDxyb2dlci5mZW5nQGludGVs LmNvbT4NCj4gLS0tDQo+ICAuLi4vRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAg ICAgICAgICAgICB8ICAzICsrDQo+ICAuLi4vUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYg ICAgICAgICAgICAgICAgICB8ICAzICsrDQo+ICAuLi4vU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi5pbmYgICAgICAgICAgICAgICB8ICA0ICsrDQo+ICAuLi4vU21tQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi5pbmYgICAgICAgICAgICAgICAgICB8ICAzICsrDQo+ICAuLi4vWDY0L1hjb2RlNUV4 Y2VwdGlvbkhhbmRsZXJBc20ubmFzbSAgICAgICAgICAgICB8IDQ2DQo+ICsrKysrKysrKysrKysr KysrKysrKy0NCj4gIC4uLi9YY29kZTVTZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAg ICAgICAgIHwgIDQgKysNCj4gIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1NtbUZ1bmNz QXJjaC5jICAgICAgIHwgMTUgKysrKysrLQ0KPiAgNyBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdA0KPiBhL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIu DQo+IGluZg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4 ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWINCj4gLmluZg0KPiBpbmRleCAwN2IzNGM5MmE4Li5lN2E4 MWJlYmRiIDEwMDY0NA0KPiAtLS0NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiBpbmYNCj4gKysrDQo+IGIv VWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9u SGFuZGxlckxpDQo+ICsrKyBiLmluZg0KPiBAQCAtNDMsNiArNDMsOSBAQA0KPiAgICBnVWVmaUNw dVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVN0YWNrU3dpdGNoRXhjZXB0aW9uTGlzdA0KPiAgICBn VWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdUtub3duR29vZFN0YWNrU2l6ZQ0KPiANCj4g K1tGZWF0dXJlUGNkXQ0KPiArICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVNtbVN0 YWNrR3VhcmQgICAgICAgICAgICAgICAgICAgICMjDQo+IENPTlNVTUVTDQo+ICsNCj4gIFtQYWNr YWdlc10NCj4gICAgTWRlUGtnL01kZVBrZy5kZWMNCj4gICAgTWRlTW9kdWxlUGtnL01kZU1vZHVs ZVBrZy5kZWMNCj4gZGlmZiAtLWdpdA0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaQ0KPiBuZg0KPiBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIuaQ0KPiBuZg0KPiBpbmRleCBmZWFlN2IzZTA2Li5jZjViZmU0MDgzIDEwMDY0NA0KPiAt LS0NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVF eGNlcHRpb25IYW5kbGVyTGliLmkNCj4gbmYNCj4gKysrDQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5 L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpDQo+ICsrKyBi LmluZg0KPiBAQCAtNTcsMyArNTcsNiBAQA0KPiAgW1BjZF0NCj4gICAgZ0VmaU1kZU1vZHVsZVBr Z1Rva2VuU3BhY2VHdWlkLlBjZENwdVN0YWNrR3VhcmQgICAgIyBDT05TVU1FUw0KPiANCj4gK1tG ZWF0dXJlUGNkXQ0KPiArICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVNtbVN0YWNr R3VhcmQgICAgICAgICAgICAgICAgICAgICMjDQo+IENPTlNVTUVTDQo+ICsNCj4gZGlmZiAtLWdp dA0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNw dUV4Y2VwdGlvbkhhbmRsZXINCj4gTGliLmluZg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXINCj4gTGliLmluZg0K PiBpbmRleCA5NjdjYjYxYmE2Li44YWU0ZmVhZTYyIDEwMDY0NA0KPiAtLS0NCj4gYS9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5k bGVyDQo+IExpYi5pbmYNCj4gKysrDQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlDQo+ICsrKyByTGliLmluZg0KPiBA QCAtNDksMyArNDksNyBAQA0KPiAgICBMb2NhbEFwaWNMaWINCj4gICAgUGVDb2ZmR2V0RW50cnlQ b2ludExpYg0KPiAgICBWbWdFeGl0TGliDQo+ICsNCj4gK1tGZWF0dXJlUGNkXQ0KPiArICBnVWVm aUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVNtbVN0YWNrR3VhcmQgICAgICAgICAgICAgICAg ICAgICMjDQo+IENPTlNVTUVTDQo+ICsNCj4gZGlmZiAtLWdpdA0KPiBhL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaQ0KPiBi LmluZg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNw dUV4Y2VwdGlvbkhhbmRsZXJMaQ0KPiBiLmluZg0KPiBpbmRleCBlYTViMTBiNWM4Li5jOWYyMGRh MDU4IDEwMDY0NA0KPiAtLS0NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGkNCj4gYi5pbmYNCj4gKysrDQo+IGIvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFu ZGxlckxpDQo+ICsrKyBiLmluZg0KPiBAQCAtNTMsMyArNTMsNiBAQA0KPiAgICBEZWJ1Z0xpYg0K PiAgICBWbWdFeGl0TGliDQo+IA0KPiArW0ZlYXR1cmVQY2RdDQo+ICsgIGdVZWZpQ3B1UGtnVG9r ZW5TcGFjZUd1aWQuUGNkQ3B1U21tU3RhY2tHdWFyZCAgICAgICAgICAgICAgICAgICAgIyMNCj4g Q09OU1VNRVMNCj4gKw0KPiBkaWZmIC0tZ2l0DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L1hjb2RlNUV4Y2VwdGlvbkhhbmRsZQ0KPiByQXNtLm5hc20N Cj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvWGNvZGU1 RXhjZXB0aW9uSGFuZGxlDQo+IHJBc20ubmFzbQ0KPiBpbmRleCAyNmNhZTU2Y2M1Li5lYmUwZWVj ODc0IDEwMDY0NA0KPiAtLS0NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9YNjQvWGNvZGU1RXhjZXB0aW9uSGFuZGxlDQo+IHJBc20ubmFzbQ0KPiArKysNCj4g Yi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvWGNvZGU1RXhj ZXB0aW9uSGFuZGwNCj4gKysrIGVyQXNtLm5hc20NCj4gQEAgLTEzLDYgKzEzLDcgQEANCj4gIDsg Tm90ZXM6DQo+ICA7DQo+ICA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICslaW5jbHVkZSAiTmFz bS5pbmMiDQo+IA0KPiAgOw0KPiAgOyBDb21tb25FeGNlcHRpb25IYW5kbGVyKCkNCj4gQEAgLTIz LDYgKzI0LDcgQEANCj4gIGV4dGVybiBBU01fUEZYKG1FcnJvckNvZGVGbGFnKSAgICA7IEVycm9y IGNvZGUgZmxhZ3MgZm9yIGV4Y2VwdGlvbnMNCj4gIGV4dGVybiBBU01fUEZYKG1Eb0ZhclJldHVy bkZsYWcpICA7IERvIGZhciByZXR1cm4gZmxhZyAgZXh0ZXJuDQo+IEFTTV9QRlgoQ29tbW9uRXhj ZXB0aW9uSGFuZGxlcikNCj4gK2V4dGVybiBBU01fUEZYKEZlYXR1cmVQY2RHZXQgKFBjZENwdVNt bVN0YWNrR3VhcmQpKQ0KPiANCj4gIFNFQ1RJT04gLmRhdGENCj4gDQo+IEBAIC0zNzEsOCArMzcz LDQ4IEBAIERvUmV0dXJuOg0KPiAgICAgIHB1c2ggICAgcXdvcmQgW3JheCArIDB4MThdICAgICAg IDsgc2F2ZSBFRkxBR1MgaW4gbmV3IGxvY2F0aW9uDQo+ICAgICAgbW92ICAgICByYXgsIFtyYXhd ICAgICAgICA7IHJlc3RvcmUgcmF4DQo+ICAgICAgcG9wZnEgICAgICAgICAgICAgICAgICAgICA7 IHJlc3RvcmUgRUZMQUdTDQo+IC0gICAgREIgICAgICAweDQ4ICAgICAgICAgICAgICAgOyBwcmVm aXggdG8gY29tcG9zaXRlICJyZXRxIiB3aXRoIG5leHQgInJldGYiDQo+IC0gICAgcmV0ZiAgICAg ICAgICAgICAgICAgICAgICA7IGZhciByZXR1cm4NCj4gKw0KPiArICAgIDsgVGhlIGZvbGxvdyBh bGdvcml0aG0gaXMgdXNlZCBmb3IgY2xlYXIgc2hhZG93IHN0YWNrIHRva2VuIGJ1c3kgYml0Lg0K PiArICAgIDsgVGhlIGNvbW1lbnQgaXMgYmFzZWQgb24gdGhlIHNhbXBsZSBzaGFkb3cgc3RhY2su DQo+ICsgICAgOyBUaGUgc2FtcGxlIHNoYWRvdyBzdGFjayBsYXlvdXQgOg0KPiArICAgIDsgQWRk cmVzcyB8IENvbnRleHQNCj4gKyAgICA7ICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rDQo+ICsgICAgOyAgMHhGRDAgIHwgICBGUkVFICAgICAgICAgICAgICAgICAgfCBpdCBpcyAw eEZEOHwweDAyfChMTUEgJiBDUy5MKSwgYWZ0ZXINCj4gU0FWRVBSRVZTU1AuDQo+ICsgICAgOyAg ICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArICAgIDsgIDB4RkQ4ICB8ICBQ cmV2IFNTUCAgICAgICAgICAgICAgIHwNCj4gKyAgICA7ICAgICAgICAgKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rDQo+ICsgICAgOyAgMHhGRTAgIHwgICBSSVAgICAgICAgICAgICAgICAgICAg fA0KPiArICAgIDsgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICA7 ICAweEZFOCAgfCAgIENTICAgICAgICAgICAgICAgICAgICB8DQo+ICsgICAgOyAgICAgICAgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArICAgIDsgIDB4RkYwICB8ICAweEZGMCB8IEJV U1kgICAgICAgICAgIHwgQlVTWSBmbGFnIGNsZWFyZWQgYWZ0ZXIgQ0xSU1NCU1kNCj4gKyAgICA7 ICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgICAgOyAgMHhGRjggIHwg MHhGRDh8MHgwMnwoTE1BICYgQ1MuTCkgfA0KPiArICAgIDsgICAgICAgICArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsNCj4gKyAgICA7IEluc3RydWN0aW9ucyBmb3IgSW50ZWwgQ29udHJvbCBG bG93IEVuZm9yY2VtZW50IFRlY2hub2xvZ3kgKENFVCkgYXJlDQo+IHN1cHBvcnRlZCBzaW5jZSBO QVNNIHZlcnNpb24gMi4xNS4wMS4NCj4gKyAgICBwdXNoICAgICByYXggICAgICAgICAgICAgICAg OyBTU1Agc2hvdWxkIGJlIDB4RkQ4IGF0IHRoaXMgcG9pbnQNCj4gKyAgICBjbXAgICAgICBieXRl IFtkd29yZCBBU01fUEZYKEZlYXR1cmVQY2RHZXQNCj4gKFBjZENwdVNtbVN0YWNrR3VhcmQpKV0s IDANCj4gKyAgICBqeiAgICAgICBDZXREb25lDQo+ICsgICAgbW92ICAgICAgcmF4LCBjcjQNCj4g KyAgICBhbmQgICAgICByYXgsIDB4ODAwMDAwICAgICAgOyBjaGVjayBpZiBDRVQgaXMgZW5hYmxl ZA0KPiArICAgIGp6ICAgICAgIENldERvbmUNCj4gKyAgICBtb3YgICAgICByYXgsIDB4MDQgICAg ICAgICAgOyBhZHZhbmNlIHBhc3QgY3M6bGlwOnByZXZzc3A7c3VwZXJ2aXNvciBzaGFkb3cNCj4g c3RhY2sgdG9rZW4NCj4gKyAgICBJTkNTU1BfUkFYICAgICAgICAgICAgICAgICAgOyBBZnRlciB0 aGlzIFNTUCBzaG91bGQgYmUgMHhGRjgNCj4gKyAgICBTQVZFUFJFVlNTUCAgICAgICAgICAgICAg ICAgOyBub3cgdGhlIHNoYWRvdyBzdGFjayByZXN0b3JlIHRva2VuIHdpbGwgYmUNCj4gY3JlYXRl ZCBhdCAweEZEMA0KPiArICAgIFJFQURTU1BfUkFYICAgICAgICAgICAgICAgICA7IFJlYWQgbmV3 IFNTUCwgU1NQIHNob3VsZCBiZSAweDEwMDANCj4gKyAgICBwdXNoICAgICByYXgNCj4gKyAgICBz dWIgICAgICByYXgsIDB4MTANCj4gKyAgICBDTFJTU0JTWV9SQVggICAgICAgICAgICAgICAgOyBD bGVhciB0b2tlbiBhdCAweEZGMCwgU1NQIHNob3VsZCBiZSAwIGFmdGVyIHRoaXMNCj4gKyAgICBz dWIgICAgICByYXgsIDB4MjANCj4gKyAgICBSU1RPUlNTUF9SQVggICAgICAgICAgICAgICAgOyBS ZXN0b3JlIHRvIHRva2VuIGF0IDB4RkQwLCBuZXcgU1NQIHdpbGwgYmUgMHhGRDANCj4gKyAgICBw b3AgICAgICByYXgNCj4gKyAgICBtb3YgICAgICByYXgsIDB4MDEgICAgICAgICAgOyBQb3Agb2Zm IHRoZSBuZXcgc2F2ZSB0b2tlbiBjcmVhdGVkDQo+ICsgICAgSU5DU1NQX1JBWCAgICAgICAgICAg ICAgICAgIDsgU1NQIHNob3VsZCBiZSAweEZEOCBub3cNCj4gK0NldERvbmU6DQo+ICsgICAgcG9w ICAgICAgcmF4ICAgICAgICAgICAgICAgIDsgcmVzdG9yZSByYXgNCj4gKw0KPiArICAgIERCICAg ICAgIDB4NDggICAgICAgICAgICAgICA7IHByZWZpeCB0byBjb21wb3NpdGUgInJldHEiIHdpdGgg bmV4dCAicmV0ZiINCj4gKyAgICByZXRmICAgICAgICAgICAgICAgICAgICAgICAgOyBmYXIgcmV0 dXJuDQo+ICBEb0lyZXQ6DQo+ICAgICAgaXJldHENCj4gDQo+IGRpZmYgLS1naXQNCj4gYS9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YY29kZTVTZWNQZWlDcHVFeGNl cHRpb24NCj4gSGFuZGxlckxpYi5pbmYNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9YY29kZTVTZWNQZWlDcHVFeGNlcHRpb24NCj4gSGFuZGxlckxpYi5pbmYN Cj4gaW5kZXggNzQzYzJhYTc2Ni4uYTE1ZjEyNWQ1YiAxMDA2NDQNCj4gLS0tDQo+IGEvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWGNvZGU1U2VjUGVpQ3B1RXhjZXB0 aW9uDQo+IEhhbmRsZXJMaWIuaW5mDQo+ICsrKw0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1hjb2RlNVNlY1BlaUNwdUV4Y2VwdGlvbg0KPiArKysgSGFuZGxl ckxpYi5pbmYNCj4gQEAgLTU0LDMgKzU0LDcgQEANCj4gICAgTG9jYWxBcGljTGliDQo+ICAgIFBl Q29mZkdldEVudHJ5UG9pbnRMaWINCj4gICAgVm1nRXhpdExpYg0KPiArDQo+ICtbRmVhdHVyZVBj ZF0NCj4gKyAgZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RDcHVTbW1TdGFja0d1YXJkICAg ICAgICAgICAgICAgICAgICAjIw0KPiBDT05TVU1FUw0KPiArDQo+IGRpZmYgLS1naXQgYS9VZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tL1g2NC9TbW1GdW5jc0FyY2guYw0KPiBiL1VlZmlDcHVQa2cv UGlTbW1DcHVEeGVTbW0vWDY0L1NtbUZ1bmNzQXJjaC5jDQo+IGluZGV4IDI4ZjhlOGUxMzMuLjdl ZjNiMWQ0ODggMTAwNjQ0DQo+IC0tLSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1Nt bUZ1bmNzQXJjaC5jDQo+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1NtbUZ1 bmNzQXJjaC5jDQo+IEBAIC0xNzMsNiArMTczLDcgQEAgSW5pdFNoYWRvd1N0YWNrICgNCj4gIHsN Cj4gICAgVUlOVE4gICAgICAgU21tU2hhZG93U3RhY2tTaXplOw0KPiAgICBVSU5UNjQgICAgICAq SW50ZXJydXB0U3NwVGFibGU7DQo+ICsgIFVJTlQzMiAgICAgIEludGVycnVwdFNzcDsNCj4gDQo+ ICAgIGlmICgoUGNkR2V0MzIgKFBjZENvbnRyb2xGbG93RW5mb3JjZW1lbnRQcm9wZXJ0eU1hc2sp ICE9IDApICYmDQo+IG1DZXRTdXBwb3J0ZWQpIHsNCj4gICAgICBTbW1TaGFkb3dTdGFja1NpemUg PSBFRklfUEFHRVNfVE9fU0laRSAoRUZJX1NJWkVfVE9fUEFHRVMNCj4gKFBjZEdldDMyIChQY2RD cHVTbW1TaGFkb3dTdGFja1NpemUpKSk7IEBAIC0xOTEsNyArMTkyLDE5IEBADQo+IEluaXRTaGFk b3dTdGFjayAoDQo+ICAgICAgICAgIEFTU0VSVCAobVNtbUludGVycnVwdFNzcFRhYmxlcyAhPSAw KTsNCj4gICAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAibVNtbUludGVycnVwdFNzcFRhYmxl cyAtIDB4JXhcbiIsDQo+IG1TbW1JbnRlcnJ1cHRTc3BUYWJsZXMpKTsNCj4gICAgICAgIH0NCj4g LSAgICAgIG1DZXRJbnRlcnJ1cHRTc3AgPSAoVUlOVDMyKSgoVUlOVE4pU2hhZG93U3RhY2sgKw0K PiBFRklfUEFHRVNfVE9fU0laRSgxKSAtIHNpemVvZihVSU5UNjQpKTsNCj4gKw0KPiArICAgICAg Ly8NCj4gKyAgICAgIC8vIFRoZSBoaWdoZXN0IGFkZHJlc3Mgb24gdGhlIHN0YWNrICgweEZGOCkg aXMgYSBzYXZlLXByZXZpb3VzLXNzcCB0b2tlbg0KPiBwb2ludGluZyB0byBhIGxvY2F0aW9uIHRo YXQgaXMgNDAgYnl0ZXMgYXdheSAtIDB4RkQwLg0KPiArICAgICAgLy8gVGhlIHN1cGVydmlzb3Ig c2hhZG93IHN0YWNrIHRva2VuIGlzIGp1c3QgYWJvdmUgaXQgYXQgYWRkcmVzcyAweEZGMC4NCj4g VGhpcyBpcyB3aGVyZSB0aGUgaW50ZXJydXB0IFNTUCB0YWJsZSBwb2ludHMuDQo+ICsgICAgICAv LyBTbyB3aGVuIGFuIGludGVycnVwdCBvZiBleGNlcHRpb24gb2NjdXJzLCB3ZSBjYW4gdXNlDQo+ IFNBVkVTU1AvUkVTVE9SRVNTUC9DTEVBUlNTQlVTWSBmb3IgdGhlIHN1cGVydmlzb3Igc2hhZG93 IHN0YWNrLA0KPiArICAgICAgLy8gZHVlIHRvIHRoZSByZWFzb24gdGhlIFJFVEYgaW4gU01NIGV4 Y2VwdGlvbiBoYW5kbGVyIGNhbm5vdCBjbGVhcg0KPiB0aGUgQlVTWSBmbGFnIHdpdGggc2FtZSBD UEwuDQo+ICsgICAgICAvLyAob25seSBJUkVUIG9yIFJFVEYgd2l0aCBkaWZmZXJlbnQgQ1BMIGNh biBjbGVhciBCVVNZIGZsYWcpDQo+ICsgICAgICAvLyBQbGVhc2UgcmVmZXIgdG8gVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0IGZvcg0KPiB0aGUgZnVsbCBzdGFj ayBmcmFtZSBhdCBydW50aW1lLg0KPiArICAgICAgLy8NCj4gKyAgICAgIEludGVycnVwdFNzcCA9 IChVSU5UMzIpKChVSU5UTilTaGFkb3dTdGFjayArIEVGSV9QQUdFU19UT19TSVpFKDEpDQo+IC0g c2l6ZW9mKFVJTlQ2NCkpOw0KPiArICAgICAgKihVSU5UMzIgKikoVUlOVE4pSW50ZXJydXB0U3Nw ID0gKEludGVycnVwdFNzcCAtIHNpemVvZihVSU5UNjQpICogNCkgfA0KPiAweDI7DQo+ICsgICAg ICBtQ2V0SW50ZXJydXB0U3NwID0gSW50ZXJydXB0U3NwIC0gc2l6ZW9mKFVJTlQ2NCk7DQo+ICsN Cj4gICAgICAgIG1DZXRJbnRlcnJ1cHRTc3BUYWJsZSA9IChVSU5UMzIpKFVJTlROKShtU21tSW50 ZXJydXB0U3NwVGFibGVzICsNCj4gc2l6ZW9mKFVJTlQ2NCkgKiA4ICogQ3B1SW5kZXgpOw0KPiAg ICAgICAgSW50ZXJydXB0U3NwVGFibGUgPSAoVUlOVDY0ICopKFVJTlROKW1DZXRJbnRlcnJ1cHRT c3BUYWJsZTsNCj4gICAgICAgIEludGVycnVwdFNzcFRhYmxlWzFdID0gbUNldEludGVycnVwdFNz cDsNCj4gLS0NCj4gMi4xNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IA0KPiANCj4gDQoNCg==