From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web10.6107.1646124493051930082 for ; Tue, 01 Mar 2022 00:48:13 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=hg/rLZzH; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646124493; x=1677660493; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=dMslstHxSAD3iVVw7dhl9ycCM/fZl5rNr8ALnIeceT0=; b=hg/rLZzHAFDHemvoZe8//WZ0rt6/fILTWc0wbr00DkevFNWewjJiEG0Q MQ9tX3lGQl2oUxguM1+vDXAKUQcshPTcADb1GdesPDrZlo4+JgG32gZ0F omlsxRueuALTHhvzwt5fuZX9Cc7T1sdkF3HwS3ij9U65M1jSnE9QkmoKk hzCynkkoWqz8RTGEs+/fib08aTJc+DALcXRXlMq+8oDpgK7Aco8fEmrz1 sqDCxPqGr8wV27waAcCea7SnbWFTE3Jog+iEilvhnGN4gZWvGKrsUbUST K7b0GlfNW+YITwxm94oyCUjmBRIt2lZRuau77Q2EV1aTP16ao91mYlml+ w==; X-IronPort-AV: E=McAfee;i="6200,9189,10272"; a="240502521" X-IronPort-AV: E=Sophos;i="5.90,145,1643702400"; d="scan'208";a="240502521" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Mar 2022 00:48:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,145,1643702400"; d="scan'208";a="534812281" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga007.jf.intel.com with ESMTP; 01 Mar 2022 00:48:12 -0800 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Tue, 1 Mar 2022 00:48:11 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21 via Frontend Transport; Tue, 1 Mar 2022 00:48:11 -0800 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.47) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 1 Mar 2022 00:48:10 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R/0IWPOrr26h6VHQbixjkFz15B/4gwQ93ODU8I5xDXWsBfgaM8VEyUdgWct4IeGjaTP5Y/P9IS3slF8J4b1FMoGVTyLTSC3wJqOFJGF/KPAcKQsI5K/fGjlp3U2SRC83qjqGZTkPmafCB54nEgIHXgbJiEXRq/Pk928hQ/oCwGHAzMLrjA3L0Hpok94ESaUqCfjgu6u4rPFOxJwus7j7E5oCfWBNCPvcWP/RZassXjSyoH60CRZcVy5TniQM+BWNHxpgCDYdz40osE+JHr/DOv+XURnM7ttHvbLrK8M+fGMg+rseGpF0hKBopW3z4k3eUkxKTvROHla7sFU1zQw4qQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dMslstHxSAD3iVVw7dhl9ycCM/fZl5rNr8ALnIeceT0=; b=UHpuCcZPU6RHuECFteN919rqNJWHrbV/9HZiun4UoiFHKrZQSJnReWvbQujJz7yOb2iPPYsyrBiPgyFJC6F76SgOtAqdhKo01009Pcs4wzyIKO1nI247bHP4iymhD/4QBGsU9SFDWopSTuNxSY/buSyczy0TK6E1JYdlLceKuBarSlNRCIWdACmPwTIG1J7f71uGWMfE4CMHN0DlHZ7XQyiBi7MZcdIoFJ55iQWmNyY6mEfc7LQMKpm3PiF6A/Jeln2vV/LkJh4/cEdLMvpenuM7psge5NePCrvcmnN5Og9pJTCOvw8TTH8HDVz2w9hAsgP7W18b6d9eoYt+9RR9xQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MWHPR11MB1631.namprd11.prod.outlook.com (2603:10b6:301:10::10) by BN9PR11MB5306.namprd11.prod.outlook.com (2603:10b6:408:137::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.22; Tue, 1 Mar 2022 08:48:03 +0000 Received: from MWHPR11MB1631.namprd11.prod.outlook.com ([fe80::99b6:d326:2925:4d2f]) by MWHPR11MB1631.namprd11.prod.outlook.com ([fe80::99b6:d326:2925:4d2f%3]) with mapi id 15.20.5017.027; Tue, 1 Mar 2022 08:48:02 +0000 From: "Ni, Ray" To: "Li, Zhihao" , "devel@edk2.groups.io" CC: "Dong, Eric" , "Kumar, Rahul1" , "Fu, Siyuan" Subject: Re: [edk2-devel] [PATCH v4 1/1] UefiCpuPkg: Extend SMM CPU Service with rendezvous support. Thread-Topic: [edk2-devel] [PATCH v4 1/1] UefiCpuPkg: Extend SMM CPU Service with rendezvous support. Thread-Index: AQHYKLUtr9XCImVCWkOmeui2BbadN6yqL3CAgAAAHrCAABCb0A== Date: Tue, 1 Mar 2022 08:48:02 +0000 Message-ID: References: <20220223125902.3649-1-zhihao.li@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: be97cd73-d731-4556-80f8-08d9fb6031eb x-ms-traffictypediagnostic: BN9PR11MB5306:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DCNR3NLXChTkYCpBGeMJTND/DnZJ924jRZ+AXBwOF70i8xxbCVustees5/Cgp+4xFQ84v0TBHLKEB8Kwb8QhnZF6tIddiFmGl4JVzLJW+awFtsfFDleL7dGcmGBYHgItv2cnuybkmirFn1zwrriOeIJiplnr31IhRqp1exsMkSvqIzNQbLLI+F4I2nY9Sk7Gqcg3YRevRftDuvIEyJhAX4ooLk6Tn3golXpqmFb4O3EJKkShfsVyfTs/ffFO/OVGRy5YYLJaVjYZrLgGY/Mwk+zbBFpH6ON5XUJAP4z6eoJp5F9ZZW4JlP2IXRsV7XaS4KUQzIEEFiHmU+EeBAW/KcoGPqhBkFz3e3QLr2UT2q66pfduR53YsHRflhycXmoEotWYYbZQoCXf4Q4YxwLtrarKYTcxuepGzZwrNJPMGnzJ0w509QnpxKpNdgNvbPfmIAfAqSj/6tqh2i2xCR5vF1wKM71WYZlgilLavoEwREYJ3oSmOgueloqmIfM8DCLHE/0JFE+fCVttM9INGIevhakoF1Xso0UtSB324aRe8thttiGUf4hBhpgTFFi3SV9ge/RsRb0ZzqqLLL5mYLpuCjcVKHpIQzxK39mbqWMX5ym5m/SrqqlUV8HNkGtTz3MGUtiUdKKt7vdElVSstpoVqJJxhw+k0f4twMdZZe1P/SNwOfVgT74HQIUk0GMiR3REVgSWdO3aQDV0TRLqYj5Pe7o6AetjibO/Qk9ERoY4phP6HqHPTiDiNosbijWdp7z06Hyq5tVOaCeBaU6eQ3e0m3+3m4mw7MXG1dqC4JdFJ4tePt/A11bIZ/wZJr8q7eHvvKNRg3q4A/v1S3/JB+QWHg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1631.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(2906002)(64756008)(8676002)(110136005)(76116006)(4326008)(66946007)(508600001)(66556008)(66476007)(66446008)(71200400001)(107886003)(8936002)(30864003)(55016003)(5660300002)(52536014)(19627235002)(53546011)(54906003)(316002)(6506007)(7696005)(9686003)(38100700002)(966005)(122000001)(33656002)(186003)(83380400001)(82960400001)(26005)(38070700005)(86362001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QWp0NUlnbkc3QVpyUUxLbW9IaEZuUXg2WWk4R2daNDhoRVBMNlJteTlWckJI?= =?utf-8?B?emJ2Z09kL1FDdjQ2UXBPNUR1UytaVUtud0FmWHcvbFR4cnBkTFVtMHBIZHNz?= =?utf-8?B?TmMvQ0xRNTVmQTFmbUxBZmhxU2tleCtVekF3VUtZMWN5ejRQV1k4TFVNbzV5?= =?utf-8?B?elhkT1NvdGs1enpBdEZwVys5VVpwYmJNZi9NNytDZC9oTDlNUVVvUzNhQ1kz?= =?utf-8?B?d080NHUreGdVeDMyYzg0NkZ6WUhsTGVXa2Z0S1JJNEhHK1JsWkFiLzRiT29r?= =?utf-8?B?ZHI4RDNHZTJ2WDlpVFV4bTQweG4yMnNvM1dEaEhpc1NPSVAxdDUyNDNWYU13?= =?utf-8?B?UEpoRnRCcGZDR1VGeklOb2wzYVlSL2UxR1NYb0FWVEFhZkZacU5OeXdaMnFJ?= =?utf-8?B?cm5YMnZpL05zYTN0NVdIdXppRHNRclNvdVFhbjhIa09OTHI4OVNTWlpsV041?= =?utf-8?B?eDNBaS8rSitob0lybThtY1d0YjBKTzlVazBwZEovRXRjcUpEWTBQNzRYdDZ0?= =?utf-8?B?cFN1Uk4xc1R2enNyYUZtN1QwQ0JKdTRpVVdxdXhjbm12OXNSdVJFVG9nY1VV?= =?utf-8?B?TTFqZ3BMeXovb1pJYzh6a0JzZHBxTnRuVitVOG1KanpkaGNoZ1MyMk53Yk85?= =?utf-8?B?L3lVOVJoRmdWM0pnUGdZWm1BbDZ3WWRySzR4Z0dja1U2K254OFNuTUEydUhW?= =?utf-8?B?a09sUS9KM3Y5NnN4elpLd3NFQVhucWhHcWJ6MW15SS9NZmxKWUU0aFU1c0kx?= =?utf-8?B?VERtSFhaQWdvdkRQenR6SFIyV2wrWEV4Y2VJbC9UMlVZaFEwUzh2YlR0dVN1?= =?utf-8?B?NTMyZmhqUDF1ZzQ2UmZrcUFXaDNqRzMyVkx0RkpBb1lNWHJ2NW1mTXFvTWRH?= =?utf-8?B?cnQyZFJzWHhLSTZUUG5oaFN5c29wVTV4VHQ3QXhZUkVweDhPZFFURTBXd3l5?= =?utf-8?B?WDZaV2JiaGFTMXhwc2lydi9lT2RyQzcrQXFmTS9pait3VTV0WEd1ejRHeFpZ?= =?utf-8?B?L0p5WWlpYWdpVXdxelpqTDJONXEwR2hJRHR5d2dIN1ZyN0lMTm9XZVZ6NW5v?= =?utf-8?B?TEZLM29ZSnVpaEJLOXQzRUhkTmExZGJ2TVlMcUVvdktneU5pNFdON0JrQncr?= =?utf-8?B?SnhpMnFFYnBqb09USEQ3ajBzL25qZCtuZmtGQ0J4YjBSaThvUG9SOURHQlp6?= =?utf-8?B?dXlQa214WGpJZ3dkdFlLWGRSdk1xbFo3MWIzNk1VbElVYzNSN0hnN2NpeUxC?= =?utf-8?B?U2pmcDQ0bHJXaDdTS2drdXh2QlQ0bm11NDhyS3MwQlE5NGY2aVRib1ZxNkE2?= =?utf-8?B?SXR5a0ZiYUU0cGpCUjhpL0hzRURSUmtET3VNUmNlbFR0aXh4S2ltYXdJRVRY?= =?utf-8?B?ajNFOHltLzdyUTN1R0Q0VnZSSVdNQ3hhcVd0b09VTmd2Rmlsa2JQQnNzR1Fp?= =?utf-8?B?QXJhRDRuVEE0MUtSSEp0NFVkZExBRzYwdVNrdjJRMW9FbU1zZzBVRVY4TVZJ?= =?utf-8?B?THBlcTd0Mjk3N3BES3JreU9xTW1iMFN2T0JwZUJPV0h2eFJ4WjZVNTJVek8v?= =?utf-8?B?VWlDMUhJdmsvQ09LOGpVbWJqM1JTZ3FOR2FQaDlzUXVPV1huL29Jd0Zpdmdv?= =?utf-8?B?MTVjSUh5bE1GQUYyU1Zqb0I2bmNTNTkyMlhrcm5uaE5zQklrMXNDVDBHWmtG?= =?utf-8?B?a0xkdWgzc2FSUENMNEx1b3JzSUlpRmkrcG5IWmtzZ0xCVXdEa2hjbkxIVWVW?= =?utf-8?B?ZkZVL0xtTEJXb1pMSHNaRHljSE1CUkVSZmZLcDNKYU1zNnZNNUhxaStjUG9t?= =?utf-8?B?bS9ITGxnMTkwcEJSMUJCZjZHenRvWXA5REh6WERrcnRGSEo0NWUrYzVydTB2?= =?utf-8?B?QndjbFJlR2V2aVltS05wQ1JLVU5vSTlmREp5ZFN2d2R5bXFoRnRKV3NBWlA4?= =?utf-8?B?emtzd1A0VENWOHRjSHpmUzFpVUxoSjhLaCtNM0Y2UHV5bW1vZ1MzeDQ1Sy9s?= =?utf-8?B?SzEybllVMS9md0NRTWhLVTVpTzZ1V0pOYjExWko2TnlVcjRBWWZLVHlzZ3hL?= =?utf-8?B?R2lDWW51Q2tVVXEzY1hzQUpBMmJ6YldSUjU2dFkvWXVxNjZJZFIvMVh6aFlh?= =?utf-8?B?ZzF5Z0hvUksvamR5NlovYldmblh6Q2U3aE5rR1dueGJwNGlQc0RBU0Mxb21x?= =?utf-8?Q?IoDBRk25KRFpa87npzRio1U=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1631.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: be97cd73-d731-4556-80f8-08d9fb6031eb X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2022 08:48:02.0710 (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: Iz+Go0Ga4RxDYKAIfzBoSDOLQxNk9/PQ/3j3fG6DjK67/G58vlZc865Ii1Hj3x+1+cE3E0ZpLZOkSjiO4NZ45g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5306 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UGxlYXNlIGRvIG5vdCBjaGFuZ2UgdGhlIGxpYiBBUEkgbmFtZS4gWW91IGNhbiBjaG9vc2UgYSBk aWZmZXJlbnQgbmFtZSBmb3IgZHJpdmVyIGludGVybmFsIGZ1bmN0aW9uLg0KDQotLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogTGksIFpoaWhhbyA8emhpaGFvLmxpQGludGVsLmNvbT4g DQpTZW50OiBUdWVzZGF5LCBNYXJjaCAxLCAyMDIyIDQ6MTAgUE0NClRvOiBOaSwgUmF5IDxyYXku bmlAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCkNjOiBEb25nLCBFcmljIDxlcmlj LmRvbmdAaW50ZWwuY29tPjsgS3VtYXIsIFJhaHVsMSA8cmFodWwxLmt1bWFyQGludGVsLmNvbT47 IEZ1LCBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+DQpTdWJqZWN0OiBGVzogW2VkazItZGV2 ZWxdIFtQQVRDSCB2NCAxLzFdIFVlZmlDcHVQa2c6IEV4dGVuZCBTTU0gQ1BVIFNlcnZpY2Ugd2l0 aCByZW5kZXp2b3VzIHN1cHBvcnQuDQoNCjEuIEluaXRpYWxpemVTbW1DcHVTZXJ2aWNlcygpOiBw bGVhc2Uga2VlcCB0aGUgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKSBmb3IgQ3B1U2VydmljZSBw cm90b2NvbCBpbnN0YWxsYXRpb24uDQpXaWxsIGFkZCBhc3NlcnQuDQoyLiBTbW1XYWl0Rm9yQXBB cnJpdmFsICgpOiBDYW4geW91IHJlbW92ZSB0aGUgQmxvY2tpbmdNb2RlIHBhcmFtZXRlciBiZWNh dXNlIEkgY2Fubm90IGZpbmQgYW55IGludm9jYXRpb24gdXNpbmcgRkFMU0UgYXMgcGFyYW1ldGVy Lg0KSGF2ZSByZW1vdmVkIGluIHBhdGNodjQuDQozLiBtU21tTXBTeW5jRGF0YS0+QWxsQXBBcnJp dmVkV2l0aEV4Y2VwdGlvbjogd2hlcmUgaXMgdGhpcyB2YXJpYWJsZSBhc3NpZ25lZCB0byBUUlVF Pw0KSGF2ZSBhZGRlZCBpbiBwYXRjaHY0Lg0KNC4gU21tQ3B1UmVuZGV6dm91c1Byb3RvY29sTm90 aWZ5KCk6IEZ1bmN0aW9uIGhlYWRlciBpcyBpbmNvcnJlY3QgKEkgc2F3ICJSZXBvcnQgU3RhdHVz IENvZGUiKS4gQ2FuIHlvdSBhZGQgY29tbWVudHMgdG8gZXhwbGFpbiB3aHkgcHJvdG9jb2wgbm90 aWZpY2F0aW9uIGlzIG5lZWRlZCBpbnN0ZWFkIG9mIHVzaW5nIGxpYnJhcnkgY29uc3RydWN0b3Ig dG8gbG9jYXRlIHRoZSBwcm90b2NvbD8NCkZlYXR1cmUgbmVlZCB0byBzdXBwb3J0IE1NX1NUQU5E QUxPTkUgYW5kIERYRV9TTU1fRFJJVkVSIGRyaXZlci4gVGhleSBoYXZlIGRpZmZlcmVudCBlbnRy eSBmdW5jdGlvbiBwYXJhbWV0ZXIuIFdpbGwgYWRkIGNvbW1lbnQgaW4gZnVuY3Rpb24gaGVhZGVy Lg0KNS4gTGliOiBTbW1XYWl0Rm9yQWxsUHJvY2Vzc29yKCk6IENhbiB5b3UgYWRkIGNvbW1lbnRz IHRvIGV4cGxhaW4gd2h5IChtU21tQ3B1UmVuZGV6dm91cyA9PSBOVUxMKSBpcyBhIHN1Y2Nlc3M/ IEFuZCB0aGlzIEFQSSBpcyB0aGUgc2FtZSBhcyB0aGUgaW50ZXJuYWwgZnVuY3Rpb24gbmFtZSBp biBQaVNtbUNwdUR4ZSBkcml2ZXIuIEl0IG1heSBjYXVzZSBjb25mdXNpbmcuIENhbiB5b3UgY2hh bmdlIHRoYXQgaW50ZXJuYWwgZnVuY3Rpb24gdG8gdXNlIGEgZGlmZmVyZW50IG5hbWU/DQoxKSBJ ZiBTbW1DcHVSZW5kZXp2b3VzIHNlcnZpY2UgZG8gbm90IGxvY2F0ZSwgaXQgbWVhbnMgdGhlIHBs YXRmb3JtIGhhdmUgbm90IHNldHVwIGFuZCBpbmZsdWVuY2UgY3B1IHJlbmRlenZvdXMuIFdpbGwg YWRkIGNvbW1lbnQgaW4gZnVuY3Rpb24gaGVhZGVyLg0KMikgRm9yIHRoaXMsIEkgcGxhbiB0byBt b2RpZmllZCBuYW1lIG9mIFNtbVdhaXRGb3JBbGxQcm9jZXNzb3IgaW4gU21tQ3B1UmVuZGV6dm91 c0xpYiB0byBiZSBTbW1DcHVSZW5kZXp2b3VzKCkgYW5kIGtlZXAgUGlTbW1DcHVEeGUgZHJpdmVy IHRoZSBzYW1lLg0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBGdSwgU2l5 dWFuIDxzaXl1YW4uZnVAaW50ZWwuY29tPiANClNlbnQ6IFR1ZXNkYXksIE1hcmNoIDEsIDIwMjIg Mzo0NiBQTQ0KVG86IExpLCBaaGloYW8gPHpoaWhhby5saUBpbnRlbC5jb20+DQpTdWJqZWN0OiBG VzogW2VkazItZGV2ZWxdIFtQQVRDSCB2NCAxLzFdIFVlZmlDcHVQa2c6IEV4dGVuZCBTTU0gQ1BV IFNlcnZpY2Ugd2l0aCByZW5kZXp2b3VzIHN1cHBvcnQuDQoNCg0KDQpCZXN0IFJlZ2FyZHMNClNp eXVhbiANCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGRldmVsQGVkazIuZ3Jv dXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExpLCBaaGloYW8NClNl bnQ6IDIwMjLlubQy5pyIMjPml6UgMjA6NTkNClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KQ2M6 IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwu Y29tPjsgS3VtYXIsIFJhaHVsMSA8cmFodWwxLmt1bWFyQGludGVsLmNvbT47IEZ1LCBTaXl1YW4g PHNpeXVhbi5mdUBpbnRlbC5jb20+DQpTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0IDEv MV0gVWVmaUNwdVBrZzogRXh0ZW5kIFNNTSBDUFUgU2VydmljZSB3aXRoIHJlbmRlenZvdXMgc3Vw cG9ydC4NCg0KUkVG77yaIGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9MzgxNQ0KDQpUaGlzIHBhdGNoIGRlZmluZSBhIG5ldyBQcm90b2NvbCB3aXRoIHRoZSBu ZXcgc2VydmljZXMgU21tV2FpdEZvckFsbFByb2Nlc3NvcigpLCB3aGljaCBjYW4gYmUgdXNlZCBi eSBTTUkgaGFuZGxlciB0byBvcHRpb25hbGx5IHdhaXQgZm9yIG90aGVyIEFQcyB0byBjb21wbGV0 ZSBTTU0gcmVuZGV6dm91cyBpbiByZWxheGVkIEFQIG1vZGUuDQoNCkEgbmV3IGxpYnJhcnkgU21t Q3B1UmVuZGV6dm91c0xpYiBpcyBwcm92aWRlZCB0byBhYnN0cmFjdCB0aGUgc2VydmljZSBpbnRv IGxpYnJhcnkgQVBJIHRvIHNpbXBsZSBTTUkgaGFuZGxlciBjb2RlLg0KDQpQYXRjaF92MyBtb2Rp ZmllZCB0byBwYXNzIENJIHRlc3QuICgxKUFkZCBTbW1DcHVSZW5kZXp2b3VzTGliLmluZiBpbnRv IFVlZmlDcHVQa2cuZHNjIDxMaWJyYXJ5Q2xhc3Nlcz4vPENvbXBvbmVudD4gKDIpQWRkIFNtbUNw dVJlbmRlenZvdXNMaWIuaCBpbiBVZWZpQ3B1UGtnLmRlYyBbTGlicmFyeWNsYXNzZXMuSUEzMiwg TGlicmFyeWNsYXNzZXMueDY0XSAoMykgU29tZSBVbmNydXN0aWZ5Q2hlY2sgbW9kaWZpY2F0aW9u cy4NCg0KQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCkNjOiBSYXkgTmkgPHJh eS5uaUBpbnRlbC5jb20+DQpDYzogUmFodWwgS3VtYXIgPHJhaHVsMS5rdW1hckBpbnRlbC5jb20+ DQpDYzogU2l5dWFuIEZ1IDxzaXl1YW4uZnVAaW50ZWwuY29tPg0KDQpTaWduZWQtb2ZmLWJ5OiBa aGloYW8gTGkgPHpoaWhhby5saUBpbnRlbC5jb20+DQotLS0NCiBVZWZpQ3B1UGtnL0xpYnJhcnkv U21tQ3B1UmVuZGV6dm91c0xpYi9TbW1DcHVSZW5kZXp2b3VzTGliLmMgICB8IDk4ICsrKysrKysr KysrKysrKysrKysrDQogVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9DcHVTZXJ2aWNlLmMgICAg ICAgICAgICAgICAgICAgICAgICAgfCA2OCArKysrKysrKysrKysrLQ0KIFVlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vTXBTZXJ2aWNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgKysr LQ0KIFVlZmlDcHVQa2cvSW5jbHVkZS9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIuaCAgICAg ICAgICAgICAgIHwgMjcgKysrKysrDQogVWVmaUNwdVBrZy9JbmNsdWRlL1Byb3RvY29sL1NtbUNw dVNlcnZpY2UuaCAgICAgICAgICAgICAgICAgICAgfCAzNiArKysrKystDQogVWVmaUNwdVBrZy9M aWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIvU21tQ3B1UmVuZGV6dm91c0xpYi5pbmYgfCAzNSAr KysrKysrDQogVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5oICAgICAg ICAgICAgICAgICAgICAgfCAyOSArKysrKy0NCiBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1Bp U21tQ3B1RHhlU21tLmluZiAgICAgICAgICAgICAgICAgICB8ICA1ICstDQogVWVmaUNwdVBrZy9V ZWZpQ3B1UGtnLmRlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCAr LQ0KIFVlZmlDcHVQa2cvVWVmaUNwdVBrZy5kc2MgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKw0KIDEwIGZpbGVzIGNoYW5nZWQsIDMxNiBpbnNlcnRpb25zKCspLCAx MiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVS ZW5kZXp2b3VzTGliL1NtbUNwdVJlbmRlenZvdXNMaWIuYyBiL1VlZmlDcHVQa2cvTGlicmFyeS9T bW1DcHVSZW5kZXp2b3VzTGliL1NtbUNwdVJlbmRlenZvdXNMaWIuYw0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uMjJmNjk0Yjc3ZDUxDQotLS0gL2Rldi9udWxsDQor KysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xpYi9TbW1DcHVSZW5kZXp2 b3VzTGliLmMNCkBAIC0wLDAgKzEsOTggQEANCisvKiogQGZpbGUNCg0KKyAgU01NIENQVSBSZW5k ZXp2b3VzIHNldmljZSBpbXBsZW1lbnQuDQoNCisNCg0KKyAgQ29weXJpZ2h0IChjKSAyMDIyLCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisgIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisNCg0KKyoqLw0KDQorDQoN CisjaW5jbHVkZSA8QmFzZS5oPg0KDQorI2luY2x1ZGUgPFVlZmkuaD4NCg0KKyNpbmNsdWRlIDxM aWJyYXJ5L0Jhc2VMaWIuaD4NCg0KKyNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQoNCisj aW5jbHVkZSA8TGlicmFyeS9NbVNlcnZpY2VzVGFibGVMaWIuaD4NCg0KKyNpbmNsdWRlIDxQcm90 b2NvbC9TbW1DcHVTZXJ2aWNlLmg+DQoNCisjaW5jbHVkZSA8TGlicmFyeS9TbW1DcHVSZW5kZXp2 b3VzTGliLmg+DQoNCisNCg0KK1NUQVRJQyBFREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNfUFJPVE9D T0wgICptU21tQ3B1UmVuZGV6dm91cyA9IE5VTEw7DQoNCitTVEFUSUMgVk9JRCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqbVJlZ2lzdHJhdGlvbiAgICAgPSBOVUxMOw0KDQorDQoNCisv KioNCg0KKyAgUmVnaXN0ZXIgc3RhdHVzIGNvZGUgY2FsbGJhY2sgZnVuY3Rpb24gb25seSB3aGVu IFJlcG9ydCBTdGF0dXMgQ29kZSANCisgcHJvdG9jb2wNCg0KKyAgaXMgaW5zdGFsbGVkLg0KDQor DQoNCisgIEBwYXJhbVtpbl0gUHJvdG9jb2wgICBQb2ludHMgdG8gdGhlIHByb3RvY29sJ3MgdW5p cXVlIGlkZW50aWZpZXIuDQoNCisgIEBwYXJhbVtpbl0gSW50ZXJmYWNlICBQb2ludHMgdG8gdGhl IGludGVyZmFjZSBpbnN0YW5jZS4NCg0KKyAgQHBhcmFtW2luXSBIYW5kbGUgICAgIFRoZSBoYW5k bGUgb24gd2hpY2ggdGhlIGludGVyZmFjZSB3YXMgaW5zdGFsbGVkLg0KDQorDQoNCisgIEByZXR2 YWwgRUZJX1NVQ0NFU1MgIE5vdGlmaWNhdGlvbiBydW5zIHN1Y2Nlc3NmdWxseS4NCg0KKw0KDQor KiovDQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK1NtbUNwdVJlbmRlenZvdXNQcm90b2Nv bE5vdGlmeSAoDQoNCisgIElOIENPTlNUIEVGSV9HVUlEICAgICpQcm90b2NvbCwNCg0KKyAgSU4g ICAgICAgVk9JRCAgICAgICAgKkludGVyZmFjZSwNCg0KKyAgSU4gICAgICAgRUZJX0hBTkRMRSAg SGFuZGxlDQoNCisgICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KDQorDQoNCisg IFN0YXR1cyA9IGdNbXN0LT5NbUxvY2F0ZVByb3RvY29sICgNCg0KKyAgICAgICAgICAgICAgICAg ICAgJmdFZGtpaVNtbUNwdVJlbmRlenZvdXNQcm90b2NvbEd1aWQsDQoNCisgICAgICAgICAgICAg ICAgICAgIE5VTEwsDQoNCisgICAgICAgICAgICAgICAgICAgIChWT0lEICoqKSZtU21tQ3B1UmVu ZGV6dm91cw0KDQorICAgICAgICAgICAgICAgICAgICApOw0KDQorICBBU1NFUlRfRUZJX0VSUk9S IChTdGF0dXMpOw0KDQorDQoNCisgIHJldHVybiBFRklfU1VDQ0VTUzsNCg0KK30NCg0KKw0KDQor LyoqDQoNCisgIFRoaXMgcm91dGluZSB3YWl0IGZvciBhbGwgQVAgcHJvY2Vzc29ycyB0byBhcnJp dmUgaW4gU01NLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gQmxvY2tpbmdNb2RlICBCbG9ja2luZyBt b2RlIG9yIG5vbi1ibG9ja2luZyBtb2RlLg0KDQorDQoNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1Mg IEFsbCBhdmFpYWJsZSBBUHMgYXJyaXZlZC4NCg0KKyAgQHJldHZhbCBFRklfVElNRU9VVCAgV2Fp dCBmb3IgYWxsIEFQcyB1bnRpbCB0aW1lb3V0Lg0KDQorICBAcmV0dmFsIE9USEVSICAgICAgICBG YWlsIHRvIHJlZ2lzdGVyIFNNTSBDUFUgUmVuZGV6dm91cyBzZXJ2aWNlIFByb3RvY29sLg0KDQor KiovDQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK1NtbVdhaXRGb3JBbGxQcm9jZXNzb3Ig KA0KDQorICBJTiBCT09MRUFOICBCbG9ja2luZ01vZGUNCg0KKyAgKQ0KDQorew0KDQorICBFRklf U1RBVFVTICBTdGF0dXM7DQoNCisNCg0KKyAgaWYgKChtUmVnaXN0cmF0aW9uID09IE5VTEwpICYm IChtU21tQ3B1UmVuZGV6dm91cyA9PSBOVUxMKSkgew0KDQorICAgIC8vDQoNCisgICAgLy8gTG9j YXRlIFNNTSBjcHUgcmVuZGV6dm91cyBwcm90b2NvbCBmb3IgdGhlIGZpcnN0IHRpbWUgZXhlY3V0 ZSB0aGUgZnVuY3Rpb24uDQoNCisgICAgLy8NCg0KKyAgICBTdGF0dXMgPSBnTW1zdC0+TW1Mb2Nh dGVQcm90b2NvbCAoDQoNCisgICAgICAgICAgICAgICAgICAgICAgJmdFZGtpaVNtbUNwdVJlbmRl enZvdXNQcm90b2NvbEd1aWQsDQoNCisgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCg0KKyAg ICAgICAgICAgICAgICAgICAgICAoVk9JRCAqKikmbVNtbUNwdVJlbmRlenZvdXMNCg0KKyAgICAg ICAgICAgICAgICAgICAgICApOw0KDQorICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCg0K KyAgICAgIFN0YXR1cyA9IGdNbXN0LT5NbVJlZ2lzdGVyUHJvdG9jb2xOb3RpZnkgKA0KDQorICAg ICAgICAgICAgICAgICAgICAgICAgJmdFZGtpaVNtbUNwdVJlbmRlenZvdXNQcm90b2NvbEd1aWQs DQoNCisgICAgICAgICAgICAgICAgICAgICAgICBTbW1DcHVSZW5kZXp2b3VzUHJvdG9jb2xOb3Rp ZnksDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAmbVJlZ2lzdHJhdGlvbg0KDQorICAgICAg ICAgICAgICAgICAgICAgICAgKTsNCg0KKyAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsN Cg0KKyAgICAgICAgcmV0dXJuIFN0YXR1czsNCg0KKyAgICAgIH0NCg0KKyAgICB9DQoNCisgIH0N Cg0KKw0KDQorICBpZiAobVNtbUNwdVJlbmRlenZvdXMgPT0gTlVMTCkgew0KDQorICAgIHJldHVy biBFRklfU1VDQ0VTUzsNCg0KKyAgfQ0KDQorDQoNCisgIFN0YXR1cyA9IG1TbW1DcHVSZW5kZXp2 b3VzLT5XYWl0Rm9yQWxsUHJvY2Vzc29yICgNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbVNtbUNwdVJlbmRlenZvdXMsDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJsb2NraW5nTW9kZQ0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0K DQorICByZXR1cm4gU3RhdHVzOw0KDQorfQ0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9QaVNt bUNwdUR4ZVNtbS9DcHVTZXJ2aWNlLmMgYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVNl cnZpY2UuYw0KaW5kZXggNWQ2MjRmOGU5ZWQ2Li5lMDk2OTcwYWM2MmUgMTAwNjQ0DQotLS0gYS9V ZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVNlcnZpY2UuYw0KKysrIGIvVWVmaUNwdVBrZy9Q aVNtbUNwdUR4ZVNtbS9DcHVTZXJ2aWNlLmMNCkBAIC0xLDcgKzEsNyBAQA0KIC8qKiBAZmlsZQ0K DQogSW1wbGVtZW50YXRpb24gb2YgU01NIENQVSBTZXJ2aWNlcyBQcm90b2NvbC4NCg0KIA0KDQot Q29weXJpZ2h0IChjKSAyMDExIC0gMjAxNSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KDQorQ29weXJpZ2h0IChjKSAyMDExIC0gMjAyMiwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQogU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KIA0KDQogKiovDQoNCkBAIC0yMCw2ICsyMCwxMyBA QCBFRklfU01NX0NQVV9TRVJWSUNFX1BST1RPQ09MICBtU21tQ3B1U2VydmljZSA9IHsNCiAgIFNt bVJlZ2lzdGVyRXhjZXB0aW9uSGFuZGxlcg0KDQogfTsNCg0KIA0KDQorLy8NCg0KKy8vIEVES0lJ IFNNTSBDUFUgUmVuZGV6dm91cyBTZXJ2aWNlIFByb3RvY29sIGluc3RhbmNlDQoNCisvLw0KDQor RURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MICBtU21tQ3B1UmVuZGV6dm91c1NlcnZp Y2UgPSB7DQoNCisgIFNtbVdhaXRGb3JBbGxQcm9jZXNzb3INCg0KK307DQoNCisNCg0KIC8qKg0K DQogICBHZXRzIHByb2Nlc3NvciBpbmZvcm1hdGlvbiBvbiB0aGUgcmVxdWVzdGVkIHByb2Nlc3Nv ciBhdCB0aGUgaW5zdGFudCB0aGlzIGNhbGwgaXMgbWFkZS4NCg0KIA0KDQpAQCAtMzUwLDYgKzM1 Nyw3IEBAIFNtbVJlZ2lzdGVyRXhjZXB0aW9uSGFuZGxlciAoDQogICBAcGFyYW0gSW1hZ2VIYW5k bGUgVGhlIGZpcm13YXJlIGFsbG9jYXRlZCBoYW5kbGUgZm9yIHRoZSBFRkkgaW1hZ2UuDQoNCiAN Cg0KICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICBFRkkgU01NIENQVSBTZXJ2aWNlcyBQcm90b2Nv bCB3YXMgaW5zdGFsbGVkIHN1Y2Nlc3NmdWxseS4NCg0KKyAgQHJldHZhbCBPVEhFUiAgICAgICAg ICBGYWlsIHRvIGluc3RhbGwgUHJvdG9jb2wuDQoNCiAqKi8NCg0KIEVGSV9TVEFUVVMNCg0KIElu aXRpYWxpemVTbW1DcHVTZXJ2aWNlcyAoDQoNCkBAIC0zNjQsNiArMzcyLDY0IEBAIEluaXRpYWxp emVTbW1DcHVTZXJ2aWNlcyAoDQogICAgICAgICAgICAgICAgICAgICBFRklfTkFUSVZFX0lOVEVS RkFDRSwNCg0KICAgICAgICAgICAgICAgICAgICAgJm1TbW1DcHVTZXJ2aWNlDQoNCiAgICAgICAg ICAgICAgICAgICAgICk7DQoNCisgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICBy ZXR1cm4gU3RhdHVzOw0KDQorICB9DQoNCisNCg0KKyAgU3RhdHVzID0gZ1Ntc3QtPlNtbUluc3Rh bGxQcm90b2NvbEludGVyZmFjZSAoDQoNCisgICAgICAgICAgICAgICAgICAgICZIYW5kbGUsDQoN CisgICAgICAgICAgICAgICAgICAgICZnRWRraWlTbW1DcHVSZW5kZXp2b3VzUHJvdG9jb2xHdWlk LA0KDQorICAgICAgICAgICAgICAgICAgICBFRklfTkFUSVZFX0lOVEVSRkFDRSwNCg0KKyAgICAg ICAgICAgICAgICAgICAgJm1TbW1DcHVSZW5kZXp2b3VzU2VydmljZQ0KDQorICAgICAgICAgICAg ICAgICAgICApOw0KDQogICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KDQogICByZXR1cm4g U3RhdHVzOw0KDQogfQ0KDQorDQoNCisvKioNCg0KKyAgV2FpdCBmb3IgYWxsIHByb2Nlc3NvcnMg ZW50ZXJyaW5nIFNNTSB1bnRpbCBhbGwgQ1BVcyBhcmUgYWxyZWFkeSBzeW5jaHJvbml6ZWQgb3Ig bm90Lg0KDQorDQoNCisgIElmIEJsb2NraW5nTW9kZSBpcyBGYWxzZSwgdGltZW91dCB2YWx1ZSBp cyB6ZXJvLg0KDQorDQoNCisgIEBwYXJhbSBUaGlzICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUg RURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MIGluc3RhbmNlLg0KDQorICBAcGFyYW0g QmxvY2tpbmdNb2RlICBCbG9ja2luZyBtb2RlIG9yIG5vbi1ibG9ja2luZyBtb2RlLg0KDQorDQoN CisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgIEFsbCBhdmFpYWJsZSBBUHMgYXJyaXZlZC4NCg0KKyAg QHJldHZhbCBFRklfVElNRU9VVCAgV2FpdCBmb3IgYWxsIEFQcyB1bnRpbCB0aW1lb3V0Lg0KDQor DQoNCisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VGSUFQSQ0KDQorU21tV2FpdEZvckFsbFByb2Nl c3NvciAoDQoNCisgIElOIEVES0lJX1NNTV9DUFVfUkVOREVaVk9VU19QUk9UT0NPTCAgKlRoaXMs DQoNCisgIElOIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2tpbmdNb2Rl DQoNCisgICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KDQorDQoNCisgIC8vDQoN CisgIC8vIFJldHVybiBzdWNjZXNzIGltbWVkaWF0ZWx5IGlmIGFsbCBDUFVzIGFyZSBhbHJlYWR5 IHN5bmNocm9uaXplZC4NCg0KKyAgLy8NCg0KKyAgaWYgKG1TbW1NcFN5bmNEYXRhLT5BbGxBcEFy cml2ZWRXaXRoRXhjZXB0aW9uKSB7DQoNCisgICAgU3RhdHVzID0gRUZJX1NVQ0NFU1M7DQoNCisg ICAgZ290byBPTl9FWElUOw0KDQorICB9DQoNCisNCg0KKyAgaWYgKCFCbG9ja2luZ01vZGUpIHsN Cg0KKyAgICBTdGF0dXMgPSBFRklfVElNRU9VVDsNCg0KKyAgICBnb3RvIE9OX0VYSVQ7DQoNCisg IH0NCg0KKw0KDQorICAvLw0KDQorICAvLyBUaGVyZSBhcmUgc29tZSBBUHMgb3V0c2lkZSBTTU0s IFdhaXQgZm9yIGFsbCBhdmFpYWJsZSBBUHMgdG8gYXJyaXZlLg0KDQorICAvLw0KDQorICBTbW1X YWl0Rm9yQXBBcnJpdmFsICgpOw0KDQorICBTdGF0dXMgPSBtU21tTXBTeW5jRGF0YS0+QWxsQXBB cnJpdmVkV2l0aEV4Y2VwdGlvbiA/IEVGSV9TVUNDRVNTIDogDQorIEVGSV9USU1FT1VUOw0KDQor DQoNCitPTl9FWElUOg0KDQorICBpZiAoIW1TbW1NcFN5bmNEYXRhLT5BbGxBcEFycml2ZWRXaXRo RXhjZXB0aW9uKSB7DQoNCisgICAgREVCVUcgKChERUJVR19JTkZPLCAiRWRraWlTbW1XYWl0Rm9y QWxsQXBBcnJpdmFsOiBUaW1lb3V0IHRvIHdhaXQgDQorIGFsbCBBUHMgYXJyaXZhbFxuIikpOw0K DQorICB9DQoNCisNCg0KKyAgcmV0dXJuIFN0YXR1czsNCg0KK30NCg0KZGlmZiAtLWdpdCBhL1Vl ZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2aWNlLmMgYi9VZWZpQ3B1UGtnL1BpU21tQ3B1 RHhlU21tL01wU2VydmljZS5jDQppbmRleCA4ODJkZWU0ZmUyNDYuLjEzYzJjYjhkYTRjMyAxMDA2 NDQNCi0tLSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2aWNlLmMNCisrKyBiL1Vl ZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2aWNlLmMNCkBAIC0xLDcgKzEsNyBAQA0KIC8q KiBAZmlsZQ0KDQogU01NIE1QIHNlcnZpY2UgaW1wbGVtZW50YXRpb24NCg0KIA0KDQotQ29weXJp Z2h0IChjKSAyMDA5IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KDQorQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQogQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5j b3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KIA0KDQogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KQEAgLTI5MywxMCArMjkzLDE0IEBA IFNtbVdhaXRGb3JBcEFycml2YWwgKA0KICAgLy8gU3luYyB3aXRoIEFQcyAxc3QgdGltZW91dA0K DQogICAvLw0KDQogICBmb3IgKFRpbWVyID0gU3RhcnRTeW5jVGltZXIgKCk7DQoNCi0gICAgICAg IUlzU3luY1RpbWVyVGltZW91dCAoVGltZXIpICYmICEoTG1jZUVuICYmIExtY2VTaWduYWwpICYm DQoNCi0gICAgICAgIUFsbENwdXNJblNtbVdpdGhFeGNlcHRpb25zIChBUlJJVkFMX0VYQ0VQVElP Tl9CTE9DS0VEIHwgQVJSSVZBTF9FWENFUFRJT05fU01JX0RJU0FCTEVEKTsNCg0KKyAgICAgICAh SXNTeW5jVGltZXJUaW1lb3V0IChUaW1lcikgJiYgIShMbWNlRW4gJiYgTG1jZVNpZ25hbCk7DQoN CiAgICAgICAgKQ0KDQogICB7DQoNCisgICAgbVNtbU1wU3luY0RhdGEtPkFsbEFwQXJyaXZlZFdp dGhFeGNlcHRpb24gPSANCisgQWxsQ3B1c0luU21tV2l0aEV4Y2VwdGlvbnMgKEFSUklWQUxfRVhD RVBUSU9OX0JMT0NLRUQgfCANCisgQVJSSVZBTF9FWENFUFRJT05fU01JX0RJU0FCTEVEKTsNCg0K KyAgICBpZiAobVNtbU1wU3luY0RhdGEtPkFsbEFwQXJyaXZlZFdpdGhFeGNlcHRpb24pIHsNCg0K KyAgICAgIGJyZWFrOw0KDQorICAgIH0NCg0KKw0KDQogICAgIENwdVBhdXNlICgpOw0KDQogICB9 DQoNCiANCg0KQEAgLTMzMCwxMCArMzM0LDE0IEBAIFNtbVdhaXRGb3JBcEFycml2YWwgKA0KICAg ICAvLyBTeW5jIHdpdGggQVBzIDJuZCB0aW1lb3V0Lg0KDQogICAgIC8vDQoNCiAgICAgZm9yIChU aW1lciA9IFN0YXJ0U3luY1RpbWVyICgpOw0KDQotICAgICAgICAgIUlzU3luY1RpbWVyVGltZW91 dCAoVGltZXIpICYmDQoNCi0gICAgICAgICAhQWxsQ3B1c0luU21tV2l0aEV4Y2VwdGlvbnMgKEFS UklWQUxfRVhDRVBUSU9OX0JMT0NLRUQgfCBBUlJJVkFMX0VYQ0VQVElPTl9TTUlfRElTQUJMRUQp Ow0KDQorICAgICAgICAgIUlzU3luY1RpbWVyVGltZW91dCAoVGltZXIpOw0KDQogICAgICAgICAg KQ0KDQogICAgIHsNCg0KKyAgICAgIG1TbW1NcFN5bmNEYXRhLT5BbGxBcEFycml2ZWRXaXRoRXhj ZXB0aW9uID0gDQorIEFsbENwdXNJblNtbVdpdGhFeGNlcHRpb25zIChBUlJJVkFMX0VYQ0VQVElP Tl9CTE9DS0VEIHwgDQorIEFSUklWQUxfRVhDRVBUSU9OX1NNSV9ESVNBQkxFRCk7DQoNCisgICAg ICBpZiAobVNtbU1wU3luY0RhdGEtPkFsbEFwQXJyaXZlZFdpdGhFeGNlcHRpb24pIHsNCg0KKyAg ICAgICAgYnJlYWs7DQoNCisgICAgICB9DQoNCisNCg0KICAgICAgIENwdVBhdXNlICgpOw0KDQog ICAgIH0NCg0KICAgfQ0KDQpAQCAtMTg4Nyw2ICsxODk1LDggQEAgSW5pdGlhbGl6ZU1wU3luY0Rh dGEgKA0KICAgICAqbVNtbU1wU3luY0RhdGEtPkluc2lkZVNtbSAgICAgPSBGQUxTRTsNCg0KICAg ICAqbVNtbU1wU3luY0RhdGEtPkFsbENwdXNJblN5bmMgPSBGQUxTRTsNCg0KIA0KDQorICAgIG1T bW1NcFN5bmNEYXRhLT5BbGxBcEFycml2ZWRXaXRoRXhjZXB0aW9uID0gRkFMU0U7DQoNCisNCg0K ICAgICBmb3IgKENwdUluZGV4ID0gMDsgQ3B1SW5kZXggPCBnU21tQ3B1UHJpdmF0ZS0+U21tQ29y ZUVudHJ5Q29udGV4dC5OdW1iZXJPZkNwdXM7IENwdUluZGV4KyspIHsNCg0KICAgICAgIG1TbW1N cFN5bmNEYXRhLT5DcHVEYXRhW0NwdUluZGV4XS5CdXN5ID0NCg0KICAgICAgICAgKFNQSU5fTE9D SyAqKSgoVUlOVE4pbVNtbUNwdVNlbWFwaG9yZXMuU2VtYXBob3JlQ3B1LkJ1c3kgKyBtU2VtYXBo b3JlU2l6ZSAqIENwdUluZGV4KTsNCg0KZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvSW5jbHVkZS9M aWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIuaCBiL1VlZmlDcHVQa2cvSW5jbHVkZS9MaWJyYXJ5 L1NtbUNwdVJlbmRlenZvdXNMaWIuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwMC4uODJlNDU5ZTkxMDZlDQotLS0gL2Rldi9udWxsDQorKysgYi9VZWZpQ3B1UGtnL0lu Y2x1ZGUvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliLmgNCkBAIC0wLDAgKzEsMjcgQEANCisv KiogQGZpbGUNCg0KKyAgU01NIENQVSBSZW5kZXp2b3VzIGxpYnJhcnkgaGVhZGVyIGZpbGUuDQoN CisNCg0KKyAgQ29weXJpZ2h0IChjKSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQoNCisgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQoNCisNCg0KKyoqLw0KDQorDQoNCisjaWZuZGVmIFNNTV9DUFVfUkVOREVaVk9V U19IXw0KDQorI2RlZmluZSBTTU1fQ1BVX1JFTkRFWlZPVVNfSF8NCg0KKw0KDQorLyoqDQoNCisg IFRoaXMgcm91dGluZSB3YWl0IGZvciBhbGwgQVAgcHJvY2Vzc29ycyB0byBhcnJpdmUgaW4gU01N Lg0KDQorDQoNCisgIEBwYXJhbVtpbl0gIEJsb2NraW5nTW9kZSAgQmxvY2tpbmcgbW9kZSBvciBu b24tYmxvY2tpbmcgbW9kZS4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgIEFs bCBwcm9jZXNzb3JzIGNoZWNrZWQgaW4gdG8gU01NLg0KDQorICBAcmV0dmFsIEVGSV9USU1FT1VU ICAgICAgIFdhaXQgZm9yIGFsbCBBUHMgdW50aWwgdGltZW91dC4NCg0KKw0KDQorKiovDQoNCitF RklfU1RBVFVTDQoNCitFRklBUEkNCg0KK1NtbVdhaXRGb3JBbGxQcm9jZXNzb3IgKA0KDQorICBJ TiAgQk9PTEVBTiAgQmxvY2tpbmdNb2RlDQoNCisgICk7DQoNCisNCg0KKyNlbmRpZg0KDQpkaWZm IC0tZ2l0IGEvVWVmaUNwdVBrZy9JbmNsdWRlL1Byb3RvY29sL1NtbUNwdVNlcnZpY2UuaCBiL1Vl ZmlDcHVQa2cvSW5jbHVkZS9Qcm90b2NvbC9TbW1DcHVTZXJ2aWNlLmgNCmluZGV4IDk1Mjc2N2Fm Y2U3NS4uM2Q5M2QyNDM0MDljIDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBrZy9JbmNsdWRlL1Byb3Rv Y29sL1NtbUNwdVNlcnZpY2UuaA0KKysrIGIvVWVmaUNwdVBrZy9JbmNsdWRlL1Byb3RvY29sL1Nt bUNwdVNlcnZpY2UuaA0KQEAgLTEsNyArMSw3IEBADQogLyoqIEBmaWxlDQoNCiBTTU0gQ1BVIFNl cnZpY2UgcHJvdG9jb2wgZGVmaW5pdGlvbi4NCg0KIA0KDQotQ29weXJpZ2h0IChjKSAyMDEzIC0g MjAxNSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQorQ29w eXJpZ2h0IChjKSAyMDEzIC0gMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KDQogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCg0KIA0KDQogKiovDQoNCkBAIC0yMDAsNCArMjAwLDM4IEBAIHN0cnVjdCBfRUZJX1NNTV9D UFVfU0VSVklDRV9QUk9UT0NPTCB7DQogDQoNCiBleHRlcm4gRUZJX0dVSUQgIGdFZmlTbW1DcHVT ZXJ2aWNlUHJvdG9jb2xHdWlkOw0KDQogDQoNCisvLw0KDQorLy8gIEVES0lJX1NNTV9DUFVfUkVO REVaVk9VU19QUk9UT0NPTCBwcm92aWRlIFNNTSBDUFUNCg0KKy8vICByZW5kZXp2b3VzIHNlcnZp Y2Ugc3VwcG9ydC4NCg0KKy8vDQoNCisjZGVmaW5lIEVES0lJX1NNTV9DUFVfUkVOREVaVk9VU19Q Uk9UT0NPTF9HVUlEIFwNCg0KKyAgeyBcDQoNCisgICAgMHhhYTAwZDUwYiwgMHg0OTExLCAweDQy OGYsIHsgMHhiOSwgMHgxYSwgMHhhNSwgMHg5ZCwgMHhkYiwgMHgxMywgDQorIDB4ZTIsIDB4NGMg fSBcDQoNCisgIH0NCg0KKw0KDQordHlwZWRlZiBzdHJ1Y3QgX0VES0lJX1NNTV9DUFVfUkVOREVa Vk9VU19QUk9UT0NPTCANCitFREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNfUFJPVE9DT0w7DQoNCisN Cg0KKy8qKg0KDQorICBXYWl0IGZvciBhbGwgQVBzIHRvIGFycml2ZSBTTU0gbW9kZSBpbiBnaXZl biB0aW1lb3V0IGNvbnN0cmFpbnQuDQoNCisNCg0KKyAgQHBhcmFtW2luXSAgVGhpcyAgICAgICAg ICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUgRURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RP Q09MIGluc3RhbmNlLg0KDQorICBAcGFyYW1baW5dICBCbG9ja2luZ01vZGUgICAgICAgICAgQmxv Y2sgb3Igbm9uLWJsb2NrIG1vZGUuDQoNCisNCg0KKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAg ICAgICAgICAgIEFsbCBBUHMgaGF2ZSBhcnJpdmVkIFNNTSBtb2RlIGV4Y2VwdCBTTUkgZGlzYWJs ZWQgQVBzLg0KDQorICBAcmV0dmFsIEVGSV9USU1FT1VUICAgICAgICAgICAgICAgVGhlcmUgYXJl IEFQcyBub3QgaW4gU01NIG1vZGUgaW4gZ2l2ZW4gdGltZW91dCBjb25zdHJhaW50Lg0KDQorDQoN CisqKi8NCg0KK3R5cGVkZWYNCg0KK0VGSV9TVEFUVVMNCg0KKyhFRklBUEkgKkVES0lJX1dBSVRf Rk9SX0FMTF9QUk9DRVNTT1IpKA0KDQorICBJTiAgRURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BS T1RPQ09MICAqVGhpcywNCg0KKyAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgQmxvY2tpbmdNb2RlDQoNCisgICk7DQoNCisNCg0KK3N0cnVjdCBfRURLSUlfU01NX0NQVV9S RU5ERVpWT1VTX1BST1RPQ09MIHsNCg0KKyAgRURLSUlfV0FJVF9GT1JfQUxMX1BST0NFU1NPUiAg ICBXYWl0Rm9yQWxsUHJvY2Vzc29yOw0KDQorfTsNCg0KKw0KDQorZXh0ZXJuIEVGSV9HVUlEICBn RWRraWlTbW1DcHVSZW5kZXp2b3VzUHJvdG9jb2xHdWlkOw0KDQorDQoNCiAjZW5kaWYNCg0KZGlm ZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliL1NtbUNwdVJl bmRlenZvdXNMaWIuaW5mIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIv U21tQ3B1UmVuZGV6dm91c0xpYi5pbmYNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwMDAwMDAuLjUyMzc0YmY2ZTliNA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvVWVmaUNwdVBrZy9M aWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIvU21tQ3B1UmVuZGV6dm91c0xpYi5pbmYNCkBAIC0w LDAgKzEsMzUgQEANCisjIyBAZmlsZQ0KDQorIyBTTU0gQ1BVIFJlbmRlenZvdXMgc2VydmljZSBs aWIuDQoNCisjDQoNCisjIFRoaXMgaXMgU01NIENQVSByZW5kZXp2b3VzIHNlcnZpY2UgbGliIHRo YXQgd2FpdCBmb3IgYWxsDQoNCisjIEFQcyB0byBlbnRlciBTTU0gbW9kZS4NCg0KKyMNCg0KKyMg Q29weXJpZ2h0IChjKSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQoNCisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQoNCisjDQoNCisjIw0KDQorDQoNCitbRGVmaW5lc10NCg0KKyAgSU5GX1ZFUlNJT04gICAgICAg ICAgICAgICAgICAgID0gMHgwMDAxMDAwNQ0KDQorICBCQVNFX05BTUUgICAgICAgICAgICAgICAg ICAgICAgPSBTbW1DcHVSZW5kZXp2b3VzTGliDQoNCisgIEZJTEVfR1VJRCAgICAgICAgICAgICAg ICAgICAgICA9IDE1MDlCYjM2LTlCYTQtNDM4Qi1CMTk1LUFjNTkxNERiMTRFMg0KDQorICBNT0RV TEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBEWEVfU01NX0RSSVZFUg0KDQorICBMSUJSQVJZ X0NMQVNTICAgICAgICAgICAgICAgICAgPSBTbW1DcHVSZW5kZXp2b3VzTGlifE1NX1NUQU5EQUxP TkUgRFhFX1NNTV9EUklWRVINCg0KKw0KDQorW1NvdXJjZXNdDQoNCisgIFNtbUNwdVJlbmRlenZv dXNMaWIuYw0KDQorDQoNCitbUGFja2FnZXNdDQoNCisgIE1kZVBrZy9NZGVQa2cuZGVjDQoNCisg IFVlZmlDcHVQa2cvVWVmaUNwdVBrZy5kZWMNCg0KKw0KDQorW0xpYnJhcnlDbGFzc2VzXQ0KDQor ICBCYXNlTGliDQoNCisgIERlYnVnTGliDQoNCisgIE1tU2VydmljZXNUYWJsZUxpYg0KDQorDQoN CitbUGNkXQ0KDQorICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVNtbUFwU3luY1Rp bWVvdXQgICAgICAgICAgICAgICAgICMjIENPTlNVTUVTDQoNCisNCg0KK1tQcm90b2NvbHNdDQoN CisgIGdFZGtpaVNtbUNwdVJlbmRlenZvdXNQcm90b2NvbEd1aWQNCg0KZGlmZiAtLWdpdCBhL1Vl ZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaCBiL1VlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0KaW5kZXggMjZkMDdjNWI1ZWEwLi5jN2Y0N2Ex ZDJmZTUgMTAwNjQ0DQotLS0gYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhl U21tLmgNCisrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0K QEAgLTEsNyArMSw3IEBADQogLyoqIEBmaWxlDQoNCiBBZ2VudCBNb2R1bGUgdG8gbG9hZCBvdGhl ciBtb2R1bGVzIHRvIGRlcGxveSBTTU0gRW50cnkgVmVjdG9yIGZvciBYODYgQ1BVLg0KDQogDQoN Ci1Db3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQoNCitDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIyLCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCiBDb3B5cmlnaHQgKGMpIDIwMTcs IEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQogDQoNCiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQpAQCAtNDI4LDYgKzQy OCw3IEBAIHR5cGVkZWYgc3RydWN0IHsNCiAgIHZvbGF0aWxlIFNNTV9DUFVfU1lOQ19NT0RFICAg IEVmZmVjdGl2ZVN5bmNNb2RlOw0KDQogICB2b2xhdGlsZSBCT09MRUFOICAgICAgICAgICAgICBT d2l0Y2hCc3A7DQoNCiAgIHZvbGF0aWxlIEJPT0xFQU4gICAgICAgICAgICAgICpDYW5kaWRhdGVC c3A7DQoNCisgIHZvbGF0aWxlIEJPT0xFQU4gICAgICAgICAgICAgIEFsbEFwQXJyaXZlZFdpdGhF eGNlcHRpb247DQoNCiAgIEVGSV9BUF9QUk9DRURVUkUgICAgICAgICAgICAgIFN0YXJ0dXBQcm9j ZWR1cmU7DQoNCiAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAgICpTdGFydHVwUHJvY0Fy Z3M7DQoNCiB9IFNNTV9ESVNQQVRDSEVSX01QX1NZTkNfREFUQTsNCg0KQEAgLTE0ODgsNCArMTQ4 OSwzMCBAQCBJc1Jlc3RyaWN0ZWRNZW1vcnlBY2Nlc3MgKA0KICAgVk9JRA0KDQogICApOw0KDQog DQoNCisvKioNCg0KKyAgQ2hvb3NlIGJsb2NraW5nIG9yIG5vbi1ibG9ja2luZyBtb2RlIHRvIFdh aXQgZm9yIGFsbCBBUHMuDQoNCisNCg0KKyAgQHBhcmFtW2luXSAgVGhpcyAgICAgICAgICAgICAg ICAgIEEgcG9pbnRlciB0byB0aGUgRURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MIGlu c3RhbmNlLg0KDQorICBAcGFyYW1baW5dICBCbG9ja2luZ01vZGUgICAgICAgICAgQmxvY2tpbmcg b3Igbm9uLWJsb2NraW5nIG1vZGUuDQoNCisNCg0KKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAg ICAgICAgICAgIEFsbCBBUHMgaGF2ZSBhcnJpdmVkIFNNTSBtb2RlIGV4Y2VwdCBTTUkgZGlzYWJs ZWQgQVBzLg0KDQorICBAcmV0dmFsIEVGSV9USU1FT1VUICAgICAgICAgICAgICAgVGhlcmUgYXJl IEFQcyBub3QgaW4gU01NIG1vZGUgaW4gZ2l2ZW4gdGltZW91dCBjb25zdHJhaW50Lg0KDQorDQoN CisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VGSUFQSQ0KDQorU21tV2FpdEZvckFsbFByb2Nlc3Nv ciAoDQoNCisgIElOICBFREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNfUFJPVE9DT0wgICpUaGlzLA0K DQorICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCbG9ja2luZ01vZGUN Cg0KKyAgKTsNCg0KKw0KDQorLyoqDQoNCisgIEluc3VyZSB3aGVuIHRoaXMgZnVuY3Rpb24gcmV0 dXJucywgbm8gQVAgd2lsbCBleGVjdXRlIG5vcm1hbCBtb2RlIGNvZGUgYmVmb3JlIGVudGVyaW5n IFNNTSwgZXhjZXB0IFNNSSBkaXNhYmxlZCBBUHMuDQoNCisNCg0KKyoqLw0KDQorVk9JRA0KDQor U21tV2FpdEZvckFwQXJyaXZhbCAoDQoNCisgIFZPSUQNCg0KKyAgKTsNCg0KKw0KDQogI2VuZGlm DQoNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21t LmluZiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5mDQppbmRl eCAwZTg4MDcxYzcwNzkuLmRlZWYwMGY5YzZlOSAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5mDQorKysgYi9VZWZpQ3B1UGtnL1BpU21tQ3B1 RHhlU21tL1BpU21tQ3B1RHhlU21tLmluZg0KQEAgLTQsNyArNCw3IEBADQogIyBUaGlzIFNNTSBk cml2ZXIgcGVyZm9ybXMgU01NIGluaXRpYWxpemF0aW9uLCBkZXBsb3kgU01NIEVudHJ5IFZlY3Rv ciwNCg0KICMgcHJvdmlkZXMgQ1BVIHNwZWNpZmljIHNlcnZpY2VzIGluIFNNTS4NCg0KICMNCg0K LSMgQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KDQorIyBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIyLCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCityZXNlcnZlZC48QlI+DQoNCiAjIENvcHlyaWdodCAo YykgMjAxNywgQU1EIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCiAj DQoNCiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCkBA IC0xMDcsNyArMTA3LDggQEANCiAgIGdFZmlTbW1SZWFkeVRvTG9ja1Byb3RvY29sR3VpZCAgICAg ICAgICAgIyMgTk9USUZZDQoNCiAgIGdFZmlTbW1DcHVTZXJ2aWNlUHJvdG9jb2xHdWlkICAgICAg ICAgICAgIyMgUFJPRFVDRVMNCg0KICAgZ0Vka2lpU21tTWVtb3J5QXR0cmlidXRlUHJvdG9jb2xH dWlkICAgICAjIyBQUk9EVUNFUw0KDQotICBnRWZpTW1NcFByb3RvY29sR3VpZCAgICAgICAgICAg ICAgICAgICAgIyMgUFJPRFVDRVMNCg0KKyAgZ0VmaU1tTXBQcm90b2NvbEd1aWQgICAgICAgICAg ICAgICAgICAgICAjIyBQUk9EVUNFUw0KDQorICBnRWRraWlTbW1DcHVSZW5kZXp2b3VzUHJvdG9j b2xHdWlkICAgICAgICMjIFBST0RVQ0VTDQoNCiANCg0KIFtHdWlkc10NCg0KICAgZ0VmaUFjcGlW YXJpYWJsZUd1aWQgICAgICAgICAgICAgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMg SE9CICMgaXQgaXMgdXNlZCBmb3IgUzMgYm9vdC4NCg0KZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cv VWVmaUNwdVBrZy5kZWMgYi9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjIGluZGV4IDdkZTY2ZmRl Njc0Yy4uNTI1Y2RlNDYzNDM1IDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRl Yw0KKysrIGIvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRlYw0KQEAgLTEsNyArMSw3IEBADQogIyMg QGZpbGUgIFVlZmlDcHVQa2cuZGVjDQoNCiAjIFRoaXMgUGFja2FnZSBwcm92aWRlcyBVRUZJIGNv bXBhdGlibGUgQ1BVIG1vZHVsZXMgYW5kIGxpYnJhcmllcy4NCg0KICMNCg0KLSMgQ29weXJpZ2h0 IChjKSAyMDA3IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KDQorIyBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyANCityZXNlcnZlZC48QlI+DQoNCiAjDQoNCiAjIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCiAjDQoNCkBAIC02Miw2ICs2Miw5IEBADQog ICAjIyAgQGxpYnJhcnljbGFzcyAgUHJvdmlkZXMgZnVuY3Rpb24gZm9yIGxvYWRpbmcgbWljcm9j b2RlLg0KDQogICBNaWNyb2NvZGVMaWJ8SW5jbHVkZS9MaWJyYXJ5L01pY3JvY29kZUxpYi5oDQoN CiANCg0KKyAgIyMgQGxpYnJhcnljbGFzcyAgUHJvdmlkZXMgZnVuY3Rpb24gZm9yIFNNTSBDUFUg UmVuZGV6dm91cyBMaWJyYXJ5Lg0KDQorICBTbW1DcHVSZW5kZXp2b3VzTGlifEluY2x1ZGUvTGli cmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliLmgNCg0KKw0KDQogW0d1aWRzXQ0KDQogICBnVWVmaUNw dVBrZ1Rva2VuU3BhY2VHdWlkICAgICAgPSB7IDB4YWMwNWJmMzMsIDB4OTk1YSwgMHg0ZWQ0LCB7 IDB4YWEsIDB4YjgsIDB4ZWYsIDB4N2EsIDB4ZTgsIDB4ZiwgMHg1YywgMHhiMCB9fQ0KDQogICBn TXNlZ1NtcmFtR3VpZCAgICAgICAgICAgICAgICAgPSB7IDB4NTgwMmJjZTQsIDB4ZWVlZSwgMHg0 ZTMzLCB7IDB4YTEsIDB4MzAsIDB4ZWIsIDB4YWQsIDB4MjcsIDB4ZjAsIDB4ZTQsIDB4MzkgfX0N Cg0KQEAgLTc3LDcgKzgwLDggQEANCiANCg0KIFtQcm90b2NvbHNdDQoNCiAgICMjIEluY2x1ZGUv UHJvdG9jb2wvU21tQ3B1U2VydmljZS5oDQoNCi0gIGdFZmlTbW1DcHVTZXJ2aWNlUHJvdG9jb2xH dWlkICA9IHsgMHgxZDIwMmNhYiwgMHhjOGFiLCAweDRkNWMsIHsgMHg5NCwgMHhmNywgMHgzYywg MHhmYywgMHhjMCwgMHhkMywgMHhkMywgMHgzNSB9fQ0KDQorICBnRWZpU21tQ3B1U2VydmljZVBy b3RvY29sR3VpZCAgID0geyAweDFkMjAyY2FiLCAweGM4YWIsIDB4NGQ1YywgeyAweDk0LCAweGY3 LCAweDNjLCAweGZjLCAweGMwLCAweGQzLCAweGQzLCAweDM1IH19DQoNCisgIGdFZGtpaVNtbUNw dVJlbmRlenZvdXNQcm90b2NvbEd1aWQgPSB7IDB4YWEwMGQ1MGIsIDB4NDkxMSwgMHg0MjhmLCB7 IA0KKyAweGI5LCAweDFhLCAweGE1LCAweDlkLCAweGRiLCAweDEzLCAweGUyLCAweDRjIH19DQoN CiANCg0KICAgIyMgSW5jbHVkZS9Qcm90b2NvbC9TbU1vbml0b3JJbml0LmgNCg0KICAgZ0VmaVNt TW9uaXRvckluaXRQcm90b2NvbEd1aWQgID0geyAweDIyOGYzNDRkLCAweGIzZGUsIDB4NDNiYiwg eyAweGE0LCAweGQ3LCAweGVhLCAweDIwLCAweGIsIDB4MWIsIDB4MTQsIDB4ODIgfX0NCg0KZGlm ZiAtLWdpdCBhL1VlZmlDcHVQa2cvVWVmaUNwdVBrZy5kc2MgYi9VZWZpQ3B1UGtnL1VlZmlDcHVQ a2cuZHNjIGluZGV4IGQxZDYxZGQ2YTAzYi4uYTBiYmRlOTk4NWQzIDEwMDY0NA0KLS0tIGEvVWVm aUNwdVBrZy9VZWZpQ3B1UGtnLmRzYw0KKysrIGIvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRzYw0K QEAgLTYxLDYgKzYxLDcgQEANCiAgIFRwbU1lYXN1cmVtZW50TGlifE1kZU1vZHVsZVBrZy9MaWJy YXJ5L1RwbU1lYXN1cmVtZW50TGliTnVsbC9UcG1NZWFzdXJlbWVudExpYk51bGwuaW5mDQoNCiAg IFZtZ0V4aXRMaWJ8VWVmaUNwdVBrZy9MaWJyYXJ5L1ZtZ0V4aXRMaWJOdWxsL1ZtZ0V4aXRMaWJO dWxsLmluZg0KDQogICBNaWNyb2NvZGVMaWJ8VWVmaUNwdVBrZy9MaWJyYXJ5L01pY3JvY29kZUxp Yi9NaWNyb2NvZGVMaWIuaW5mDQoNCisgIA0KKyBTbW1DcHVSZW5kZXp2b3VzTGlifFVlZmlDcHVQ a2cvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliL1NtbUNwdVJlbmRlDQorIHp2b3VzTGliLmlu Zg0KDQogDQoNCiBbTGlicmFyeUNsYXNzZXMuY29tbW9uLlNFQ10NCg0KICAgUGxhdGZvcm1TZWNM aWJ8VWVmaUNwdVBrZy9MaWJyYXJ5L1BsYXRmb3JtU2VjTGliTnVsbC9QbGF0Zm9ybVNlY0xpYk51 bGwuaW5mDQoNCkBAIC0xNzMsNiArMTc0LDcgQEANCiAgIH0NCg0KICAgVWVmaUNwdVBrZy9Vbml2 ZXJzYWwvQWNwaS9TM1Jlc3VtZTJQZWkvUzNSZXN1bWUyUGVpLmluZg0KDQogICBVZWZpQ3B1UGtn L1Jlc2V0VmVjdG9yL1Z0ZjAvQmluL1Jlc2V0VmVjdG9yLmluZg0KDQorICBVZWZpQ3B1UGtnL0xp YnJhcnkvU21tQ3B1UmVuZGV6dm91c0xpYi9TbW1DcHVSZW5kZXp2b3VzTGliLmluZg0KDQogDQoN CiBbQnVpbGRPcHRpb25zXQ0KDQogICAqXypfKl9DQ19GTEFHUyA9IC1EIERJU0FCTEVfTkVXX0RF UFJFQ0FURURfSU5URVJGQUNFUw0KDQotLQ0KMi4yNi4yLndpbmRvd3MuMQ0KDQoNCg0KDQoNCg0K