From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id C9B0C740038 for ; Thu, 7 Sep 2023 07:48:37 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=IHU9tDDD+kUqQ598neXclNJnmjrGqJv6MyAGlKxWPnA=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1694072916; v=1; b=C/43j39zkkjz9Hati9RKxfuluDCZdUGcj9oFWCsIo88k0xcFuJPcgYoN006rtDGPVg13yj6r ohXDGQmz8xo56hEbmR99MxXZMKQix0aasIhko/Do/QjRLRiTWUWRxCbDIccdc1cxbfgH1sYq85p Y5mINjIjoFAnMnUanUnPUkW4= X-Received: by 127.0.0.2 with SMTP id 33YLYY7687511xjy8cR3fAJu; Thu, 07 Sep 2023 00:48:36 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.8160.1694072915418369118 for ; Thu, 07 Sep 2023 00:48:35 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10825"; a="463665347" X-IronPort-AV: E=Sophos;i="6.02,234,1688454000"; d="scan'208";a="463665347" X-Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2023 00:48:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10825"; a="691677027" X-IronPort-AV: E=Sophos;i="6.02,234,1688454000"; d="scan'208";a="691677027" X-Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 07 Sep 2023 00:48:34 -0700 X-Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.2507.32; Thu, 7 Sep 2023 00:48:33 -0700 X-Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Thu, 7 Sep 2023 00:48:33 -0700 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.108) 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.2507.27; Thu, 7 Sep 2023 00:48:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DmCQ+yeCm0+LObfKUvgDPLm+Mahppiw7q3ONaWacxeCHukC2LfMN75890aE3/WBFxc2zTcJRawuyhYf+EAxfcmAkQIeWFCl2toAR8KfgnT6AXzzeanmlYVWCEr2P9sBQS9o+T7axGF0oQ77/cSEy52unfhwtsA/VVzLawMOjONiRwbTF7mrTEnf+zSQ8seAy1n153eC/im6ocEiqK+BcHL7ma2o4Lngli1jRVNG274jAtZS20L/ZmEjf0t477q1v62tEQ2Ui+BRYOWXwo5s/KEReaMGnbsAxBfvnNe9VCsZ1noLPUxpC6oURp9zxdeRMd0pFWrjGUdjeGPWM26kmoQ== 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=8oE8uMjVp7zF/KmcX9HoWOMDA6Ue7iRPj0A6UtVVHCU=; b=GDKVz3lAv3sMS3ATDJ64qVpEHLdnon5j+iSjwqk8XovICEUaF3f8ypPerMn3lxDMKo/4BbDj8KmA/zjIeeOt0BUs9eb+qOxygjuLxqnQnb1U+PSb2j1HRwFG8Yaot05Ou3Tu07rQlcUh9z8eHtMedNG97Th94B4SAMVPRcGP7bFgMp+tjTtnuPSA1VW0DLMouAxHBDFrm3iXnFJ40IgeKBcDn0lF1BCyN84MQtwpsWkaYV16dqsjm2d4cVjJ8BmDGF8u7/noDnqwObfPDtP/Rb6dn8eyqlbcjW7Gii16Q2YESHrSSNKXQaJNgiTRjj03UkzyKN8ztxWoG1Cim5qbnA== 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 X-Received: from DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by PH7PR11MB5885.namprd11.prod.outlook.com (2603:10b6:510:134::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.34; Thu, 7 Sep 2023 07:48:29 +0000 X-Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::38c3:ed7c:3562:2e18]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::38c3:ed7c:3562:2e18%4]) with mapi id 15.20.6745.035; Thu, 7 Sep 2023 07:48:29 +0000 From: "Wu, Hao A" To: Mike Maslenkin , "devel@edk2.groups.io" CC: "Henz, Patrick" Subject: Re: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Topic: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Index: AQHZzseBJIO8HXAamkWgXd40zbxjr7AOZHvggABS3cCAAGb9AIAAAivQ Date: Thu, 7 Sep 2023 07:48:29 +0000 Message-ID: References: <177B4AD1F8C3A6A2.8497@groups.io> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB4025:EE_|PH7PR11MB5885:EE_ x-ms-office365-filtering-correlation-id: 19f1af61-d322-4d30-d41c-08dbaf76d372 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: WaviWO0Pe/7Sj51AwEQWfZ3kAV9zyj75aKzhgIXwhJMd+edUox+3usVkJLQWcNjJv61eYZOKlL36i7gwf05orUsaLPmexxL5yFw+aUcrz/pJXhbHT+Thcxi3c3fsZJk71hEsY0q3FYGHRee+UsYvs1l13o6tEgh1wpQf0697nGCEyDm4G3jRMDZd1Uc+Rl7d+ByOvFlSE+stJHmRilZM/qhxHu+40DV2BXTIH4VQd0BmJYcRbn0vpPDN348quOooHpXajb8cW/Z3lrSJcuHYvPtw3Qr6lyRFp99B/MxH/PiBnCpMgxUSQxyCxJSpOvUwNGiavB0PipOsW6ZQsSWr3pdPq3lvnhkYX4cBcBzpW8CUD4fRI9VQrdjls7AdkA4GNHq6jDFUb8Q7GqF2jLMm4NAaV/TCHpyl2PyO4HH9qxUeiOHS87r49TsVVKr2eesC+uyoqctDUKI+8VmN8QK9jzbBfF2TKdG8vxRzmJf1//C/ffuxmSlRqGU+Odtd7Ruofwg+7WyFcCY0Jk0h+MwixMugiRbbgdEzhcR30oqlmfV1I2TfU9dsg9yXMDzsBlnPijZf9QX3G9pPE10LgT3kPdJZMoz4l6AHyju3KR6XRTm0TEHw3Nh5t1YzY4C+b23qbOq5ojehvAbV8Az7/Oabog== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a04xZXI1bWdaTlBpT0RkeXhnREltNlR4SXUyYUhWS0hRQnRCUjdsZ2VqTVFz?= =?utf-8?B?cWlEU0d0NUlybDFmeGxja21kSy91TGNSWXRTSDRRWDhEeHEzd216aW1JOElB?= =?utf-8?B?c0hYTk5PTW1lSG1ZYkE2M3IyVmQzZHJQWCtuamFkL2YzWFZnRzNCblpUTkJV?= =?utf-8?B?emt2NUpYbEtKTFhOb2xXc0RoYzcxVFFWdGVMeHlzZGJad21YcGpMZ2pZckIy?= =?utf-8?B?RC9mbHV5VGZJd1FYazRoaUk4MzFRS0J5czlZTG9sWHJZOUlJMVVQdDRZWTY3?= =?utf-8?B?aFRHM2NtT1luU3I3d2lwNi9TZUV0VWlwZkZxMkM4b2NaenZ0L1dJRE1LSWs5?= =?utf-8?B?SnkvWllkbzE4TGd3QW5ja3Nza2lXR2tHNXNFUUsxU1kydmYvREpSTzc5ZFZv?= =?utf-8?B?RkpROTBwakdYMDFlUXlEYnMvZHRRR3l5bDdWcXdVQW9kQWl0M3RxV0RXZEZi?= =?utf-8?B?bnd0QkJFZjRKaUo4VUF5VXBpeXc1RFo0U3FHUzBHeVFLVGQvMFNDVE53ZFI1?= =?utf-8?B?YWlhTVhzNGE3aWc2amV4Mno1ZlhvYUNKZFhURHZ3OE81QWpCNDI5ZkE0RnZH?= =?utf-8?B?akU5NjRxd1dyekpPNGhnMFdmWVpGeTcvSGYvWks1N1gvZXJlU09uemp4cG83?= =?utf-8?B?Wk41cCtrN3Q2bGhNQW5YVHNYZ2RoOFpiTytEOElEMUZLRzBUa3NBa05MYjRG?= =?utf-8?B?SVNFa2dqeDY0TnQ4NVM3NUUxSklsMEkyejljU1NraTRqR1FFMnJVY3IwN0RV?= =?utf-8?B?MXpCRjQxZmhDeXhGS215ZDdISzI4VzVsYVQ5RmNiQlV2dVdSenc5b05RQjUy?= =?utf-8?B?MWRaVGdTdXp4OTJvd25GYktrSUJMaU5CYytOWkpBdTR4K0E5NFA0YlNOblRF?= =?utf-8?B?SmZ5V3lGaHIvK0J6eDFpbFZNSC9BQlVxdTZZZExNbjU4c3hhT1FvcWNIZkFw?= =?utf-8?B?YWxuRmszNVI2L2V2d211WHJSZjFjWGM5M3dVYW4rYXNieTRCdG5jRDV6b3Yv?= =?utf-8?B?blFyYzRzVGlCOXNMZlN3a0lvNldPV0hsczgwSktEaXpYVXBxanFmRkN1Rys2?= =?utf-8?B?QTVud0I5MzRqaWUyQUhGVGEvN3VKbXMvSXgvaGhSbU1GV2wzWWFzaVM2d1d3?= =?utf-8?B?RTREZTgyWTdiWnVyeVlrNmpYMENSd3RqRVhSUXdNRzRQMURkY0FHVGowTFFO?= =?utf-8?B?TGVnb2lDQWdqak0rVGtTNzdBNm9zMTV4Z2wzc2RjVk9SUVBsNDdXeW8vVytt?= =?utf-8?B?Y2hvTUFlUjNJM1gvZzdKREpDTmtmWjh5cVkvWUNTeHJKZ29mekk4ek1ia1NO?= =?utf-8?B?eW92Q1FENldIZXZWcDBHeGU1R3pRWCtKcVFtN09QODVHTXZGcVdDS0VsdUlN?= =?utf-8?B?cHZRQkdqNVZlYmo5RHhDUkxwM0ZvY1pRV2RXaXBVZFNhYnl6WUUrWmlrbzNV?= =?utf-8?B?VzNFYWkzNHR0QXllV1F6VU9xT3hrc0xLYVFQaEVSdFRpN2Y1ZXBjRjR6OFhQ?= =?utf-8?B?RnRsS295VTNUTVZ2aWRJNHBzbFc3QUM3c2thUGpGZjFRWjdLLy9lNG52VFFF?= =?utf-8?B?RThUUW5yYk15a0wzWXR6MS9aSXR5Zmw4R0Z3TDFzV0VkOEMxRWk3dVFiMmVP?= =?utf-8?B?UFkrdzdSbnY2RHF4bmNvNkpUVzdhQ2FKa3dTcEwrZmhybGdDWWdWSk01RGEv?= =?utf-8?B?aFB2NnNOWkFJV0JKV003QVZVTExLbmNhYnNIbWxpMTNSNmphYURZQUsvaUNF?= =?utf-8?B?SCtYU2NoN09LUXVsUENibG4xQ2dQd3BEZ25wbkxHTVFjWklxTE1UK3FZNkpu?= =?utf-8?B?Z1FzVko5Z0NUbWlPajg4OXB6dEZVNEpscnJ3djJiUjI3Skd2ZWJvbFNiaDhV?= =?utf-8?B?ZFpQQUZxVXFoTFpmdWhHT2p6UC9EREVMc2F2N2tJeDMxalE5c201TWNjREdX?= =?utf-8?B?RENsUXhiTDZQWER5djJLZ3lpTGVpRmY2eFdMUnhidjQvMXdMclFEMXM1M1Iv?= =?utf-8?B?cEkxbXhiZGhKbnR5alg0RmxGZk93aDgrT2Q5eldTK0ZpV0pWRFl5OGk5cXdN?= =?utf-8?B?dWRQbncwVlg2Vm9XNFQwbjNmQjE1VGwxOVF3Zz09?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19f1af61-d322-4d30-d41c-08dbaf76d372 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2023 07:48:29.1487 (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: ltgcp2st1G5zroAYGm6sReox4fYQEkq/+ZSzdKWkEjT07aaSt0wzV0NspXhZzFrxVgF53FRN5YWMHpPW/zfuBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5885 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,hao.a.wu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: ghfiJjIYfHAu6QUKvwGo0Ugax7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b="C/43j39z"; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") SSBkbyBub3QgaGF2ZSBzdHJvbmcgb3BpbmlvbiBvbiB0aGlzIGNvbnNpZGVyaW5nIGl0IGlzIGFu IElPIGRyaXZlci4NClRoZSBjYWxsIG9mIEdldFRpbWVJbk5hbm9TZWNvbmQoKSBpcyBhbHNvIGxp a2VseSB0byBpbnZva2UgR2V0UGVyZm9ybWFuY2VDb3VudGVyUHJvcGVydGllcygpIGNhbGwuDQoN Ckkgd2lsbCBsZXQgdGhlIHBhdGNoIG93bmVyIHRvIGRlY2lkZSBvbiB0aGUgb3BlbiByYWlzZWQg YmVsb3cuDQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IE1pa2UgTWFzbGVua2luIDxtaWtlLm1hc2xlbmtpbkBnbWFpbC5jb20+ DQo+IFNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgNywgMjAyMyAzOjM2IFBNDQo+IFRvOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+DQo+IENjOiBI ZW56LCBQYXRyaWNrIDxwYXRyaWNrLmhlbnpAaHBlLmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsy LWRldmVsXSBbUEFUQ0ggdjJdIE1kZU1vZHVsZVBrZy9YaGNpRHhlOiBVc2UNCj4gUGVyZm9ybWFu Y2UgVGltZXIgZm9yIFhIQ0kgVGltZW91dHMNCj4gDQo+IEhlbGxvIEhhbyBXdSwNCj4gDQo+IElz bid0IEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgKCZTdGFydFZhbHVlLCAmRW5kVmFs dWUpIGNhbGwgdG9vDQo+ICJoZWF2eSIgZm9yIFhIQ0kgcGF0aHM/DQo+IE1heSBiZSBpdCdzIGJl dHRlciB0byBjYWNoZSB0aW1lciBkaXJlY3Rpb24gb25jZT8NCj4gSSdtIGFza2luZyBpbiBhIGNv bnRleHQgb2YgUGNBdENoaXBzZXRQa2cvTGlicmFyeS9BY3BpVGltZXJMaWINCj4gaW5zdGFuY2Ug dXNlZCBieSBhIG51bWJlciBvZiBJbnRlbCdzIHBsYXRmb3JtIGluIGVkay1wbGF0Zm9ybXMuDQo+ IEZvciB0aGlzICBsaWJyYXJ5IEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgZmluYWxs eSBjYWxscw0KPiBJbnRlcm5hbENhbGN1bGF0ZVRzY0ZyZXF1ZW5jeSwgdGhhdCBpc24ndCBzaW1w bGUuDQo+IA0KPiBSZWdhcmRzLA0KPiBNaWtlDQo+IA0KPiBPbiBUaHUsIFNlcCA3LCAyMDIzIGF0 IDQ6MjfigK9BTSBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT4gd3JvdGU6DQo+ID4NCj4g PiBTb3JyeSBmb3IgdGhlIGxhdGUgcmVzcG9uc2UuDQo+ID4gUmV2aWV3ZWQtYnk6IEhhbyBBIFd1 IDxoYW8uYS53dUBpbnRlbC5jb20+DQo+ID4NCj4gPiBCZXN0IFJlZ2FyZHMsDQo+ID4gSGFvIFd1 DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBIZW56 LA0KPiA+ID4gUGF0cmljaw0KPiA+ID4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAyMDIz IDQ6MzcgQU0NCj4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gU3ViamVjdDog UmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjJdIE1kZU1vZHVsZVBrZy9YaGNpRHhlOiBVc2UNCj4g PiA+IFBlcmZvcm1hbmNlIFRpbWVyIGZvciBYSENJIFRpbWVvdXRzDQo+ID4gPg0KPiA+ID4gSSBz ZW50IHRoaXMgcGF0Y2ggb3V0IGEgZmV3IHdlZWtzIGFnbyBub3cgYnV0IGhhdmVuJ3Qgc2VlbiBh IHJlcGx5LA0KPiA+ID4ganVzdCBjaGVja2luZyBpbiB0byBtYWtlIHN1cmUgaXQgZGlkbid0IGdl dCBtaXNzZWQuDQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0KPiA+ID4gUGF0cmljayBIZW56DQo+ID4g Pg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IGRldmVsQGVk azIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIEhlbnosDQo+ ID4gPiBQYXRyaWNrDQo+ID4gPiBTZW50OiBNb25kYXksIEF1Z3VzdCAxNCwgMjAyMyAxMDo1MiBB TQ0KPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogSGVueiwgUGF0cmlj ayA8cGF0cmljay5oZW56QGhwZS5jb20+DQo+ID4gPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BB VENIIHYyXSBNZGVNb2R1bGVQa2cvWGhjaUR4ZTogVXNlDQo+ID4gPiBQZXJmb3JtYW5jZSBUaW1l ciBmb3IgWEhDSSBUaW1lb3V0cw0KPiA+ID4NCj4gPiA+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRp YW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTI5NDgNCj4gPiA+DQo+ID4gPiBYaGNpRHhlIHVz ZXMgdGhlIHRpbWVyIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGJvb3Qgc2VydmljZXMN Cj4gPiA+IHRhYmxlIHRvIGRldGVjdCB0aW1lb3V0IGNvbmRpdGlvbnMuIFRoaXMgYnJlYWtzIHRo ZSBkcml2ZXIncw0KPiA+ID4gRXhpdEJvb3RTZXJ2aWNlcyBjYWxsIGJhY2ssIGFzIENvcmVFeGl0 Qm9vdFNlcnZpY2VzIGhhbHRzIHRoZSB0aW1lcg0KPiA+ID4gYmVmb3JlIHNpZ25hbGluZyB0aGUg RXhpdEJvb3RTZXJ2aWNlcyBldmVudC4gSWYgdGhlIGhvc3QgY29udHJvbGxlcg0KPiA+ID4gZmFp bHMgdG8gaGFsdCBpbiB0aGUgY2FsbCBiYWNrLCB0aGUgdGltZW91dCBjb25kaXRpb24gd2lsbCBu ZXZlcg0KPiA+ID4gb2NjdXIgYW5kIHRoZSBib290IGdldHMgc3R1Y2sgaW4gYW4gaW5kZWZpbml0 ZSBzcGluIGxvb3AuIFVzZSB0aGUNCj4gPiA+IGZyZWUgcnVubmluZyB0aW1lciBwcm92aWRlZCBi eSBUaW1lckxpYiB0byBjYWxjdWxhdGUgdGltZW91dHMsIGF2b2lkaW5nDQo+IHRoZSBwb3RlbnRp YWwgaGFuZy4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYXRyaWNrIEhlbnogPHBhdHJp Y2suaGVuekBocGUuY29tPg0KPiA+ID4gUmV2aWV3ZWQtYnk6DQo+ID4gPiAtLS0NCj4gPiA+ICBN ZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuYyAgICAgIHwgNTYgKysrKysrKysrKysr KysrKysrKw0KPiA+ID4gIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5oICAgICAg fCAyMiArKysrKysrKw0KPiA+ID4gIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaUR4 ZS5pbmYgfCAgMiArDQo+ID4gPiAgTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVn LmMgICB8IDY3ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tDQo+ID4gPiAgTWRlTW9kdWxlUGtnL0J1 cy9QY2kvWGhjaUR4ZS9YaGNpU2NoZWQuYyB8IDY4DQo+ID4gPiArKysrKysrKystLS0tLS0tLS0t LS0tLS0NCj4gPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCspLCA4NiBkZWxl dGlvbnMoLSkNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kv WGhjaUR4ZS9YaGNpLmMNCj4gPiA+IGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNp LmMNCj4gPiA+IGluZGV4IDYyNjgyZGQyN2MuLjFkY2JlMjA1MTIgMTAwNjQ0DQo+ID4gPiAtLS0g YS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuYw0KPiA+ID4gKysrIGIvTWRlTW9k dWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmMNCj4gPiA+IEBAIC0xLDYgKzEsNyBAQA0KPiA+ ID4gIC8qKiBAZmlsZQ0KPiA+ID4gICAgVGhlIFhIQ0kgY29udHJvbGxlciBkcml2ZXIuDQo+ID4g Pg0KPiA+ID4gKyhDKSBDb3B5cmlnaHQgMjAyMyBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBE ZXZlbG9wbWVudCBMUDxCUj4NCj4gPiA+ICBDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDIyLCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPg0KPiA+ID4g QEAgLTIyOTQsMyArMjI5NSw1OCBAQCBYaGNEcml2ZXJCaW5kaW5nU3RvcCAoDQo+ID4gPg0KPiA+ ID4gICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4gIH0NCj4gPiA+ICsNCj4gPiA+ICsvKioN Cj4gPiA+ICsgIENvbXB1dGVzIGFuZCByZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUgaW4gbmFub3Nl Y29uZHMgc2luY2UNCj4gPiA+ICsgIFByZXZpb3VzVGljay4gVGhlIHZhbHVlIG9mIFByZXZpb3Vz VGljayBpcyBvdmVyd3JpdHRlbiB3aXRoIHRoZQ0KPiA+ID4gKyAgY3VycmVudCBwZXJmb3JtYW5j ZSBjb3VudGVyIHZhbHVlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtICBQcmV2aW91c1RpY2sg ICAgUG9pbnRlciB0byBQcmV2aW91c1RpY2sgY291bnQuDQo+ID4gPiArICBAcmV0dXJuIFRoZSBl bGFwc2VkIHRpbWUgaW4gbmFub3NlY29uZHMgc2luY2UgUHJldmlvdXNDb3VudC4NCj4gPiA+ICsg ICAgICAgICAgUHJldmlvdXNDb3VudCBpcyBvdmVyd3JpdHRlbiB3aXRoIHRoZSBjdXJyZW50IHBl cmZvcm1hbmNlDQo+ID4gPiArICAgICAgICAgIGNvdW50ZXIgdmFsdWUuDQo+ID4gPiArKiovDQo+ ID4gPiArVUlOVDY0DQo+ID4gPiArWGhjR2V0RWxhcHNlZFRpbWUgKA0KPiA+ID4gKyAgSU4gT1VU IFVJTlQ2NCAgKlByZXZpb3VzVGljaw0KPiA+ID4gKyAgKQ0KPiA+ID4gK3sNCj4gPiA+ICsgIFVJ TlQ2NCAgU3RhcnRWYWx1ZTsNCj4gPiA+ICsgIFVJTlQ2NCAgRW5kVmFsdWU7DQo+ID4gPiArICBV SU5UNjQgIEN1cnJlbnRUaWNrOw0KPiA+ID4gKyAgVUlOVDY0ICBEZWx0YTsNCj4gPiA+ICsNCj4g PiA+ICsgIEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgKCZTdGFydFZhbHVlLCAmRW5k VmFsdWUpOw0KPiA+ID4gKw0KPiA+ID4gKyAgQ3VycmVudFRpY2sgPSBHZXRQZXJmb3JtYW5jZUNv dW50ZXIgKCk7DQo+ID4gPiArDQo+ID4gPiArICAvLw0KPiA+ID4gKyAgLy8gRGV0ZXJtaW5lIGlm IHRoZSBjb3VudGVyIGlzIGNvdW50aW5nIHVwIG9yIGRvd24gIC8vICBpZg0KPiA+ID4gKyAoU3Rh cnRWYWx1ZSA8IEVuZFZhbHVlKSB7DQo+ID4gPiArICAgIC8vDQo+ID4gPiArICAgIC8vIENvdW50 ZXIgY291bnRzIHVwd2FyZHMsIGNoZWNrIGZvciBhbiBvdmVyZmxvdyBjb25kaXRpb24NCj4gPiA+ ICsgICAgLy8NCj4gPiA+ICsgICAgaWYgKCpQcmV2aW91c1RpY2sgPiBDdXJyZW50VGljaykgew0K PiA+ID4gKyAgICAgIERlbHRhID0gKEVuZFZhbHVlIC0gKlByZXZpb3VzVGljaykgKyBDdXJyZW50 VGljazsNCj4gPiA+ICsgICAgfSBlbHNlIHsNCj4gPiA+ICsgICAgICBEZWx0YSA9IEN1cnJlbnRU aWNrIC0gKlByZXZpb3VzVGljazsNCj4gPiA+ICsgICAgfQ0KPiA+ID4gKyAgfSBlbHNlIHsNCj4g PiA+ICsgICAgLy8NCj4gPiA+ICsgICAgLy8gQ291bnRlciBjb3VudHMgZG93bndhcmRzLCBjaGVj ayBmb3IgYW4gdW5kZXJmbG93IGNvbmRpdGlvbg0KPiA+ID4gKyAgICAvLw0KPiA+ID4gKyAgICBp ZiAoKlByZXZpb3VzVGljayA8IEN1cnJlbnRUaWNrKSB7DQo+ID4gPiArICAgICAgRGVsdGEgPSAo U3RhcnRWYWx1ZSAtIEN1cnJlbnRUaWNrKSArICpQcmV2aW91c1RpY2s7DQo+ID4gPiArICAgIH0g ZWxzZSB7DQo+ID4gPiArICAgICAgRGVsdGEgPSAqUHJldmlvdXNUaWNrIC0gQ3VycmVudFRpY2s7 DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICsgIC8vDQo+ID4gPiAr ICAvLyBTZXQgUHJldmlvdXNUaWNrIHRvIEN1cnJlbnRUaWNrICAvLyAgKlByZXZpb3VzVGljayA9 DQo+ID4gPiArIEN1cnJlbnRUaWNrOw0KPiA+ID4gKw0KPiA+ID4gKyAgcmV0dXJuIEdldFRpbWVJ bk5hbm9TZWNvbmQgKERlbHRhKTsgfQ0KPiA+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9C dXMvUGNpL1hoY2lEeGUvWGhjaS5oDQo+ID4gPiBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lE eGUvWGhjaS5oDQo+ID4gPiBpbmRleCBjYTIyM2JkMjBjLi43N2ZlYjY2NjQ3IDEwMDY0NA0KPiA+ ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmgNCj4gPiA+ICsrKyBi L01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5oDQo+ID4gPiBAQCAtMiw2ICsyLDcg QEANCj4gPiA+DQo+ID4gPiAgICBQcm92aWRlcyBzb21lIGRhdGEgc3RydWN0dXJlIGRlZmluaXRp b25zIHVzZWQgYnkgdGhlIFhIQ0kgaG9zdA0KPiA+ID4gY29udHJvbGxlciBkcml2ZXIuDQo+ID4g Pg0KPiA+ID4gKyhDKSBDb3B5cmlnaHQgMjAyMyBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBE ZXZlbG9wbWVudCBMUDxCUj4NCj4gPiA+ICBDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDE3LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gcmVzZXJ2ZWQuPEJSPiBDb3B5cmlnaHQg KGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi48QlI+DQo+ID4gPiAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgQEAgLTI2LDYgKzI3LDcgQEANCj4gPiA+IFNQRFgt DQo+ID4gPiBMaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgICNpbmNsdWRl DQo+ID4gPiA8TGlicmFyeS9VZWZpTGliLmg+ICAjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5o PiAgI2luY2x1ZGUNCj4gPiA+IDxMaWJyYXJ5L1JlcG9ydFN0YXR1c0NvZGVMaWIuaD4NCj4gPiA+ ICsjaW5jbHVkZSA8TGlicmFyeS9UaW1lckxpYi5oPg0KPiA+ID4NCj4gPiA+ICAjaW5jbHVkZSA8 SW5kdXN0cnlTdGFuZGFyZC9QY2kuaD4NCj4gPiA+DQo+ID4gPiBAQCAtMzcsNiArMzksMTAgQEAg dHlwZWRlZiBzdHJ1Y3QgX1VTQl9ERVZfQ09OVEVYVA0KPiBVU0JfREVWX0NPTlRFWFQ7DQo+ID4g PiAjaW5jbHVkZSAiQ29tcG9uZW50TmFtZS5oIg0KPiA+ID4gICNpbmNsdWRlICJVc2JIY01lbS5o Ig0KPiA+ID4NCj4gPiA+ICsvLw0KPiA+ID4gKy8vIENvbnZlcnRzIGEgY291bnQgZnJvbSBtaWNy b3NlY29uZHMgdG8gbmFub3NlY29uZHMgLy8gI2RlZmluZQ0KPiA+ID4gK1hIQ19NSUNST1NFQ09O RF9UT19OQU5PU0VDT05EKFRpbWUpICAoKFVJTlQ2NCkoVGltZSkgKiAxMDAwKQ0KPiA+ID4gIC8v DQo+ID4gPiAgLy8gVGhlIHVuaXQgaXMgbWljcm9zZWNvbmQsIHNldHRpbmcgaXQgYXMgMXVzLg0K PiA+ID4gIC8vDQo+ID4gPiBAQCAtNzIwLDQgKzcyNiwyMCBAQCBYaGNBc3luY0lzb2Nocm9ub3Vz VHJhbnNmZXIgKA0KPiA+ID4gICAgSU4gICAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICpDb250ZXh0DQo+ID4gPiAgICApOw0KPiA+ID4NCj4gPiA+ICsvKioNCj4gPiA+ICsg IENvbXB1dGVzIGFuZCByZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUgaW4gbmFub3NlY29uZHMgc2lu Y2UNCj4gPiA+ICsgIFByZXZpb3VzVGljay4gVGhlIHZhbHVlIG9mIFByZXZpb3VzVGljayBpcyBv dmVyd3JpdHRlbiB3aXRoIHRoZQ0KPiA+ID4gKyAgY3VycmVudCBwZXJmb3JtYW5jZSBjb3VudGVy IHZhbHVlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtICBQcmV2aW91c1RpY2sgICAgUG9pbnRl ciB0byBQcmV2aW91c1RpY2sgY291bnQuDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLg0KPiA+ID4gKyAgQHJldHVybiBUaGUgZWxh cHNlZCB0aW1lIGluIG5hbm9zZWNvbmRzIHNpbmNlIFByZXZpb3VzQ291bnQuDQo+ID4gPiArICAg ICAgICAgIFByZXZpb3VzQ291bnQgaXMgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgY3VycmVudCBwZXJm b3JtYW5jZQ0KPiA+ID4gKyAgICAgICAgICBjb3VudGVyIHZhbHVlLg0KPiA+ID4gKyoqLw0KPiA+ ID4gK1VJTlQ2NA0KPiA+ID4gK1hoY0dldEVsYXBzZWRUaW1lICgNCj4gPiA+ICsgIElOIE9VVCBV SU5UNjQgICpQcmV2aW91c1RpY2sNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiAgI2VuZGlm DQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhl LmluZg0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lEeGUuaW5mDQo+ ID4gPiBpbmRleCA1ODY1ZDg2ODIyLi4xOGVmODc5MTZhIDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRl TW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZg0KPiA+ID4gKysrIGIvTWRlTW9k dWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZg0KPiA+ID4gQEAgLTMsNiArMyw3IEBA DQo+ID4gPiAgIyAgSXQgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlcyBvZiBtb25pdG9yaW5nIHRo ZSBzdGF0dXMgb2YgYWxsDQo+ID4gPiBwb3J0cyBhbmQgdHJhbnNmZXJyaW5nICAjICBDb250cm9s LCBCdWxrLCBJbnRlcnJ1cHQgYW5kIElzb2Nocm9ub3VzDQo+ID4gPiByZXF1ZXN0cyB0byB0aG9z ZSBhdHRhY2hlZCB1c2IgTFMvRlMvSFMvU1MgZGV2aWNlcy4NCj4gPiA+ICAjDQo+ID4gPiArIyAg KEMpIENvcHlyaWdodCAyMDIzIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50 IExQPEJSPg0KPiA+ID4gICMgIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMTgsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gPiByZXNlcnZlZC48QlI+ICAjICAjDQo+ID4gPiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCBAQCAtNTQsNiArNTUsNyBA QA0KPiA+ID4gICAgQmFzZU1lbW9yeUxpYg0KPiA+ID4gICAgRGVidWdMaWINCj4gPiA+ICAgIFJl cG9ydFN0YXR1c0NvZGVMaWINCj4gPiA+ICsgIFRpbWVyTGliDQo+ID4gPg0KPiA+ID4gIFtHdWlk c10NCj4gPiA+ICAgIGdFZmlFdmVudEV4aXRCb290U2VydmljZXNHdWlkICAgICAgICAgICAgICAg ICAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMNCj4gPiA+IEV2ZW50DQo+ID4gPiBkaWZmIC0tZ2l0 IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4gPiA+IGIvTWRlTW9k dWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4gPiA+IGluZGV4IDU3MDBmYzVmYjgu LjA3ZTU3NzcyYjYgMTAwNjQ0DQo+ID4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNp RHhlL1hoY2lSZWcuYw0KPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9Y aGNpUmVnLmMNCj4gPiA+IEBAIC0yLDYgKzIsNyBAQA0KPiA+ID4NCj4gPiA+ICAgIFRoZSBYSENJ IHJlZ2lzdGVyIG9wZXJhdGlvbiByb3V0aW5lcy4NCj4gPiA+DQo+ID4gPiArKEMpIENvcHlyaWdo dCAyMDIzIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiA+ ID4gIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzDQo+ID4gPiByZXNlcnZlZC48QlI+DQo+ID4gPiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+DQo+ID4gPiBAQCAtNDE3LDE1ICs0MTgsMTQgQEAg WGhjQ2xlYXJPcFJlZ0JpdCAoDQo+ID4gPiAgICBXYWl0IHRoZSBvcGVyYXRpb24gcmVnaXN0ZXIn cyBiaXQgYXMgc3BlY2lmaWVkIGJ5IEJpdA0KPiA+ID4gICAgdG8gYmVjb21lIHNldCAob3IgY2xl YXIpLg0KPiA+ID4NCj4gPiA+IC0gIEBwYXJhbSAgWGhjICAgICAgICAgICAgICAgICAgICBUaGUg WEhDSSBJbnN0YW5jZS4NCj4gPiA+IC0gIEBwYXJhbSAgT2Zmc2V0ICAgICAgICAgICAgICAgICBU aGUgb2Zmc2V0IG9mIHRoZSBvcGVyYXRpb24gcmVnaXN0ZXIuDQo+ID4gPiAtICBAcGFyYW0gIEJp dCAgICAgICAgICAgICAgICAgICAgVGhlIGJpdCBvZiB0aGUgcmVnaXN0ZXIgdG8gd2FpdCBmb3Iu DQo+ID4gPiAtICBAcGFyYW0gIFdhaXRUb1NldCAgICAgICAgICAgICAgV2FpdCB0aGUgYml0IHRv IHNldCBvciBjbGVhci4NCj4gPiA+IC0gIEBwYXJhbSAgVGltZW91dCAgICAgICAgICAgICAgICBU aGUgdGltZSB0byB3YWl0IGJlZm9yZSBhYm9ydCAoaW4gbWlsbGlzZWNvbmQsDQo+ID4gPiBtcyku DQo+ID4gPiArICBAcGFyYW0gIFhoYyAgICAgICAgICBUaGUgWEhDSSBJbnN0YW5jZS4NCj4gPiA+ ICsgIEBwYXJhbSAgT2Zmc2V0ICAgICAgIFRoZSBvZmZzZXQgb2YgdGhlIG9wZXJhdGlvbiByZWdp c3Rlci4NCj4gPiA+ICsgIEBwYXJhbSAgQml0ICAgICAgICAgIFRoZSBiaXQgb2YgdGhlIHJlZ2lz dGVyIHRvIHdhaXQgZm9yLg0KPiA+ID4gKyAgQHBhcmFtICBXYWl0VG9TZXQgICAgV2FpdCB0aGUg Yml0IHRvIHNldCBvciBjbGVhci4NCj4gPiA+ICsgIEBwYXJhbSAgVGltZW91dCAgICAgIFRoZSB0 aW1lIHRvIHdhaXQgYmVmb3JlIGFib3J0IChpbiBtaWxsaXNlY29uZCwgbXMpLg0KPiA+ID4NCj4g PiA+IC0gIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgYml0IHN1Y2Nlc3NmdWxs eSBjaGFuZ2VkIGJ5IGhvc3QNCj4gY29udHJvbGxlci4NCj4gPiA+IC0gIEByZXR2YWwgRUZJX1RJ TUVPVVQgICAgICAgICAgICBUaGUgdGltZSBvdXQgb2NjdXJyZWQuDQo+ID4gPiAtICBAcmV0dmFs IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgTWVtb3J5IGZvciB0aGUgdGltZXIgZXZlbnQgY291bGQN Cj4gbm90DQo+ID4gPiBiZSBhbGxvY2F0ZWQuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9TVUNDRVNT ICBUaGUgYml0IHN1Y2Nlc3NmdWxseSBjaGFuZ2VkIGJ5IGhvc3QgY29udHJvbGxlci4NCj4gPiA+ ICsgIEByZXR2YWwgRUZJX1RJTUVPVVQgIFRoZSB0aW1lIG91dCBvY2N1cnJlZC4NCj4gPiA+DQo+ ID4gPiAgKiovDQo+ID4gPiAgRUZJX1NUQVRVUw0KPiA+ID4gQEAgLTQzNyw1NCArNDM3LDM1IEBA IFhoY1dhaXRPcFJlZ0JpdCAoDQo+ID4gPiAgICBJTiBVSU5UMzIgICAgICAgICAgICAgVGltZW91 dA0KPiA+ID4gICAgKQ0KPiA+ID4gIHsNCj4gPiA+IC0gIEVGSV9TVEFUVVMgIFN0YXR1czsNCj4g PiA+IC0gIEVGSV9FVkVOVCAgIFRpbWVvdXRFdmVudDsNCj4gPiA+IC0NCj4gPiA+IC0gIFRpbWVv dXRFdmVudCA9IE5VTEw7DQo+ID4gPiArICBVSU5UNjQgIFRpbWVvdXRUaW1lOw0KPiA+ID4gKyAg VUlOVDY0ICBFbGFwc2VkVGltZTsNCj4gPiA+ICsgIFVJTlQ2NCAgVGltZURlbHRhOw0KPiA+ID4g KyAgVUlOVDY0ICBDdXJyZW50VGljazsNCj4gPiA+DQo+ID4gPiAgICBpZiAoVGltZW91dCA9PSAw KSB7DQo+ID4gPiAgICAgIHJldHVybiBFRklfVElNRU9VVDsNCj4gPiA+ICAgIH0NCj4gPiA+DQo+ ID4gPiAtICBTdGF0dXMgPSBnQlMtPkNyZWF0ZUV2ZW50ICgNCj4gPiA+IC0gICAgICAgICAgICAg ICAgICBFVlRfVElNRVIsDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgVFBMX0NBTExCQUNLLA0K PiA+ID4gLSAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gPiAtICAgICAgICAgICAgICAgICAg TlVMTCwNCj4gPiA+IC0gICAgICAgICAgICAgICAgICAmVGltZW91dEV2ZW50DQo+ID4gPiAtICAg ICAgICAgICAgICAgICAgKTsNCj4gPiA+IC0NCj4gPiA+IC0gIGlmIChFRklfRVJST1IgKFN0YXR1 cykpIHsNCj4gPiA+IC0gICAgZ290byBET05FOw0KPiA+ID4gLSAgfQ0KPiA+ID4gLQ0KPiA+ID4g LSAgU3RhdHVzID0gZ0JTLT5TZXRUaW1lciAoDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgVGlt ZW91dEV2ZW50LA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgIFRpbWVyUmVsYXRpdmUsDQo+ID4g PiAtICAgICAgICAgICAgICAgICAgRUZJX1RJTUVSX1BFUklPRF9NSUxMSVNFQ09ORFMgKFRpbWVv dXQpDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgKTsNCj4gPiA+IC0NCj4gPiA+IC0gIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+IC0gICAgZ290byBET05FOw0KPiA+ID4gLSAgfQ0K PiA+ID4gKyAgVGltZW91dFRpbWUgPSBYSENfTUlDUk9TRUNPTkRfVE9fTkFOT1NFQ09ORA0KPiAo KFVJTlQ2NClUaW1lb3V0DQo+ID4gPiAqDQo+ID4gPiArIFhIQ18xX01JTExJU0VDT05EKTsgIEVs YXBzZWRUaW1lID0gMDsgIEN1cnJlbnRUaWNrID0NCj4gPiA+ICsgR2V0UGVyZm9ybWFuY2VDb3Vu dGVyICgpOw0KPiA+ID4NCj4gPiA+ICAgIGRvIHsNCj4gPiA+ICAgICAgaWYgKFhIQ19SRUdfQklU X0lTX1NFVCAoWGhjLCBPZmZzZXQsIEJpdCkgPT0gV2FpdFRvU2V0KSB7DQo+ID4gPiAtICAgICAg U3RhdHVzID0gRUZJX1NVQ0NFU1M7DQo+ID4gPiAtICAgICAgZ290byBET05FOw0KPiA+ID4gKyAg ICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gPiA+ICAgICAgfQ0KPiA+ID4NCj4gPiA+ICAgICAg Z0JTLT5TdGFsbCAoWEhDXzFfTUlDUk9TRUNPTkQpOw0KPiA+ID4gLSAgfSB3aGlsZSAoRUZJX0VS Uk9SIChnQlMtPkNoZWNrRXZlbnQgKFRpbWVvdXRFdmVudCkpKTsNCj4gPiA+IC0NCj4gPiA+IC0g IFN0YXR1cyA9IEVGSV9USU1FT1VUOw0KPiA+ID4gKyAgICBUaW1lRGVsdGEgPSBYaGNHZXRFbGFw c2VkVGltZSAoJkN1cnJlbnRUaWNrKTsNCj4gPiA+ICsgICAgLy8gRW5zdXJlIHRoYXQgRWxhcHNl ZFRpbWUgaXMgYWx3YXlzIGluY3JlbWVudGVkIHRvIGF2b2lkDQo+ID4gPiArIGluZGVmaW5pdGUN Cj4gPiA+IGhhbmdzDQo+ID4gPiArICAgIGlmIChUaW1lRGVsdGEgPT0gMCkgew0KPiA+ID4gKyAg ICAgIFRpbWVEZWx0YSA9IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05EDQo+ID4gPiAoWEhD XzFfTUlDUk9TRUNPTkQpOw0KPiA+ID4gKyAgICB9DQo+ID4gPg0KPiA+ID4gLURPTkU6DQo+ID4g PiAtICBpZiAoVGltZW91dEV2ZW50ICE9IE5VTEwpIHsNCj4gPiA+IC0gICAgZ0JTLT5DbG9zZUV2 ZW50IChUaW1lb3V0RXZlbnQpOw0KPiA+ID4gLSAgfQ0KPiA+ID4gKyAgICBFbGFwc2VkVGltZSAr PSBUaW1lRGVsdGE7DQo+ID4gPiArICB9IHdoaWxlIChFbGFwc2VkVGltZSA8IFRpbWVvdXRUaW1l KTsNCj4gPiA+DQo+ID4gPiAtICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gKyAgcmV0dXJuIEVGSV9U SU1FT1VUOw0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAgLyoqDQo+ID4gPiBkaWZmIC0tZ2l0IGEv TWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2NoZWQuYw0KPiA+ID4gYi9NZGVNb2R1 bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lTY2hlZC5jDQo+ID4gPiBpbmRleCA1MzQyMWU2NGE4 Li43ZDRiN2E3NjlkIDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhj aUR4ZS9YaGNpU2NoZWQuYw0KPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4 ZS9YaGNpU2NoZWQuYw0KPiA+ID4gQEAgLTIsNiArMiw3IEBADQo+ID4gPg0KPiA+ID4gICAgWEhD SSB0cmFuc2ZlciBzY2hlZHVsaW5nIHJvdXRpbmVzLg0KPiA+ID4NCj4gPiA+ICsoQykgQ29weXJp Z2h0IDIwMjMgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8QlI+DQo+ ID4gPiAgQ29weXJpZ2h0IChjKSAyMDExIC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMNCj4gPiA+IHJlc2VydmVkLjxCUj4gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9y YXRpb24uPEJSPiAgQ29weXJpZ2h0DQo+ID4gPiAoQykgMjAyMiBBZHZhbmNlZCBNaWNybyBEZXZp Y2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiBAQCAtDQo+IDEyNzYsMTUgKzEyNzcs MTQgQEAgRVhJVDoNCj4gPiA+ICAvKioNCj4gPiA+ICAgIEV4ZWN1dGUgdGhlIHRyYW5zZmVyIGJ5 IHBvbGxpbmcgdGhlIFVSQi4gVGhpcyBpcyBhIHN5bmNocm9ub3VzIG9wZXJhdGlvbi4NCj4gPiA+ DQo+ID4gPiAtICBAcGFyYW0gIFhoYyAgICAgICAgICAgICAgICAgICAgVGhlIFhIQ0kgSW5zdGFu Y2UuDQo+ID4gPiAtICBAcGFyYW0gIENtZFRyYW5zZmVyICAgICAgICAgICAgVGhlIGV4ZWN1dGVk IFVSQiBpcyBmb3IgY21kIHRyYW5zZmVyIG9yDQo+IG5vdC4NCj4gPiA+IC0gIEBwYXJhbSAgVXJi ICAgICAgICAgICAgICAgICAgICBUaGUgVVJCIHRvIGV4ZWN1dGUuDQo+ID4gPiAtICBAcGFyYW0g IFRpbWVvdXQgICAgICAgICAgICAgICAgVGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgYWJvcnQsIGlu IG1pbGxpc2Vjb25kLg0KPiA+ID4gKyAgQHBhcmFtICBYaGMgICAgICAgICAgICAgICBUaGUgWEhD SSBJbnN0YW5jZS4NCj4gPiA+ICsgIEBwYXJhbSAgQ21kVHJhbnNmZXIgICAgICAgVGhlIGV4ZWN1 dGVkIFVSQiBpcyBmb3IgY21kIHRyYW5zZmVyIG9yIG5vdC4NCj4gPiA+ICsgIEBwYXJhbSAgVXJi ICAgICAgICAgICAgICAgVGhlIFVSQiB0byBleGVjdXRlLg0KPiA+ID4gKyAgQHBhcmFtICBUaW1l b3V0ICAgICAgICAgICBUaGUgdGltZSB0byB3YWl0IGJlZm9yZSBhYm9ydCwgaW4gbWlsbGlzZWNv bmQuDQo+ID4gPg0KPiA+ID4gLSAgQHJldHVybiBFRklfREVWSUNFX0VSUk9SICAgICAgIFRoZSB0 cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRyYW5zZmVyIGVycm9yLg0KPiA+ID4gLSAgQHJldHVybiBF RklfVElNRU9VVCAgICAgICAgICAgIFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRpbWUgb3V0 Lg0KPiA+ID4gLSAgQHJldHVybiBFRklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSB0cmFuc2ZlciBm aW5pc2hlZCBPSy4NCj4gPiA+IC0gIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICBNZW1v cnkgZm9yIHRoZSB0aW1lciBldmVudCBjb3VsZA0KPiBub3QNCj4gPiA+IGJlIGFsbG9jYXRlZC4N Cj4gPiA+ICsgIEByZXR1cm4gRUZJX0RFVklDRV9FUlJPUiAgVGhlIHRyYW5zZmVyIGZhaWxlZCBk dWUgdG8gdHJhbnNmZXIgZXJyb3IuDQo+ID4gPiArICBAcmV0dXJuIEVGSV9USU1FT1VUICAgICAg IFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRpbWUgb3V0Lg0KPiA+ID4gKyAgQHJldHVybiBF RklfU1VDQ0VTUyAgICAgICBUaGUgdHJhbnNmZXIgZmluaXNoZWQgT0suDQo+ID4gPg0KPiA+ID4g ICoqLw0KPiA+ID4gIEVGSV9TVEFUVVMNCj4gPiA+IEBAIC0xMjk5LDEyICsxMjk5LDE0IEBAIFho Y0V4ZWNUcmFuc2ZlciAoDQo+ID4gPiAgICBVSU5UOCAgICAgICBTbG90SWQ7DQo+ID4gPiAgICBV SU5UOCAgICAgICBEY2k7DQo+ID4gPiAgICBCT09MRUFOICAgICBGaW5pc2hlZDsNCj4gPiA+IC0g IEVGSV9FVkVOVCAgIFRpbWVvdXRFdmVudDsNCj4gPiA+ICsgIFVJTlQ2NCAgICAgIFRpbWVvdXRU aW1lOw0KPiA+ID4gKyAgVUlOVDY0ICAgICAgRWxhcHNlZFRpbWU7DQo+ID4gPiArICBVSU5UNjQg ICAgICBUaW1lRGVsdGE7DQo+ID4gPiArICBVSU5UNjQgICAgICBDdXJyZW50VGljazsNCj4gPiA+ ICAgIEJPT0xFQU4gICAgIEluZGVmaW5pdGVUaW1lb3V0Ow0KPiA+ID4NCj4gPiA+ICAgIFN0YXR1 cyAgICAgICAgICAgID0gRUZJX1NVQ0NFU1M7DQo+ID4gPiAgICBGaW5pc2hlZCAgICAgICAgICA9 IEZBTFNFOw0KPiA+ID4gLSAgVGltZW91dEV2ZW50ICAgICAgPSBOVUxMOw0KPiA+ID4gICAgSW5k ZWZpbml0ZVRpbWVvdXQgPSBGQUxTRTsNCj4gPiA+DQo+ID4gPiAgICBpZiAoQ21kVHJhbnNmZXIp IHsNCj4gPiA+IEBAIC0xMzIyLDM0ICsxMzI0LDE0IEBAIFhoY0V4ZWNUcmFuc2ZlciAoDQo+ID4g Pg0KPiA+ID4gICAgaWYgKFRpbWVvdXQgPT0gMCkgew0KPiA+ID4gICAgICBJbmRlZmluaXRlVGlt ZW91dCA9IFRSVUU7DQo+ID4gPiAtICAgIGdvdG8gUklOR0RPT1JCRUxMOw0KPiA+ID4gLSAgfQ0K PiA+ID4gLQ0KPiA+ID4gLSAgU3RhdHVzID0gZ0JTLT5DcmVhdGVFdmVudCAoDQo+ID4gPiAtICAg ICAgICAgICAgICAgICAgRVZUX1RJTUVSLA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgIFRQTF9D QUxMQkFDSywNCj4gPiA+IC0gICAgICAgICAgICAgICAgICBOVUxMLA0KPiA+ID4gLSAgICAgICAg ICAgICAgICAgIE5VTEwsDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgJlRpbWVvdXRFdmVudA0K PiA+ID4gLSAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiAtDQo+ID4gPiAtICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQo+ID4gPiAtICAgIGdvdG8gRE9ORTsNCj4gPiA+ICAgIH0NCj4gPiA+ DQo+ID4gPiAtICBTdGF0dXMgPSBnQlMtPlNldFRpbWVyICgNCj4gPiA+IC0gICAgICAgICAgICAg ICAgICBUaW1lb3V0RXZlbnQsDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgVGltZXJSZWxhdGl2 ZSwNCj4gPiA+IC0gICAgICAgICAgICAgICAgICBFRklfVElNRVJfUEVSSU9EX01JTExJU0VDT05E UyAoVGltZW91dCkNCj4gPiA+IC0gICAgICAgICAgICAgICAgICApOw0KPiA+ID4gLQ0KPiA+ID4g LSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gLSAgICBnb3RvIERPTkU7DQo+ID4g PiAtICB9DQo+ID4gPiAtDQo+ID4gPiAtUklOR0RPT1JCRUxMOg0KPiA+ID4gICAgWGhjUmluZ0Rv b3JCZWxsIChYaGMsIFNsb3RJZCwgRGNpKTsNCj4gPiA+DQo+ID4gPiArICBUaW1lb3V0VGltZSA9 IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05EDQo+ICgoVUlOVDY0KVRpbWVvdXQNCj4gPiA+ ICoNCj4gPiA+ICsgWEhDXzFfTUlMTElTRUNPTkQpOyAgRWxhcHNlZFRpbWUgPSAwOyAgQ3VycmVu dFRpY2sgPQ0KPiA+ID4gKyBHZXRQZXJmb3JtYW5jZUNvdW50ZXIgKCk7DQo+ID4gPiArDQo+ID4g PiAgICBkbyB7DQo+ID4gPiAgICAgIEZpbmlzaGVkID0gWGhjQ2hlY2tVcmJSZXN1bHQgKFhoYywg VXJiKTsNCj4gPiA+ICAgICAgaWYgKEZpbmlzaGVkKSB7DQo+ID4gPiBAQCAtMTM1NywyMiArMTMz OSwyMiBAQCBSSU5HRE9PUkJFTEw6DQo+ID4gPiAgICAgIH0NCj4gPiA+DQo+ID4gPiAgICAgIGdC Uy0+U3RhbGwgKFhIQ18xX01JQ1JPU0VDT05EKTsNCj4gPiA+IC0gIH0gd2hpbGUgKEluZGVmaW5p dGVUaW1lb3V0IHx8IEVGSV9FUlJPUiAoZ0JTLT5DaGVja0V2ZW50DQo+ID4gPiAoVGltZW91dEV2 ZW50KSkpOw0KPiA+ID4gKyAgICBUaW1lRGVsdGEgPSBYaGNHZXRFbGFwc2VkVGltZSAoJkN1cnJl bnRUaWNrKTsNCj4gPiA+ICsgICAgLy8gRW5zdXJlIHRoYXQgRWxhcHNlZFRpbWUgaXMgYWx3YXlz IGluY3JlbWVudGVkIHRvIGF2b2lkDQo+ID4gPiArIGluZGVmaW5pdGUNCj4gPiA+IGhhbmdzDQo+ ID4gPiArICAgIGlmIChUaW1lRGVsdGEgPT0gMCkgew0KPiA+ID4gKyAgICAgIFRpbWVEZWx0YSA9 IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05EDQo+ID4gPiAoWEhDXzFfTUlDUk9TRUNPTkQp Ow0KPiA+ID4gKyAgICB9DQo+ID4gPg0KPiA+ID4gLURPTkU6DQo+ID4gPiAtICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQo+ID4gPiAtICAgIFVyYi0+UmVzdWx0ID0gRUZJX1VTQl9FUlJfTk9U RVhFQ1VURTsNCj4gPiA+IC0gIH0gZWxzZSBpZiAoIUZpbmlzaGVkKSB7DQo+ID4gPiArICAgIEVs YXBzZWRUaW1lICs9IFRpbWVEZWx0YTsNCj4gPiA+ICsgIH0gd2hpbGUgKEluZGVmaW5pdGVUaW1l b3V0IHx8IEVsYXBzZWRUaW1lIDwgVGltZW91dFRpbWUpOw0KPiA+ID4gKw0KPiA+ID4gKyAgaWYg KCFGaW5pc2hlZCkgew0KPiA+ID4gICAgICBVcmItPlJlc3VsdCA9IEVGSV9VU0JfRVJSX1RJTUVP VVQ7DQo+ID4gPiAgICAgIFN0YXR1cyAgICAgID0gRUZJX1RJTUVPVVQ7DQo+ID4gPiAgICB9IGVs c2UgaWYgKFVyYi0+UmVzdWx0ICE9IEVGSV9VU0JfTk9FUlJPUikgew0KPiA+ID4gICAgICBTdGF0 dXMgPSBFRklfREVWSUNFX0VSUk9SOw0KPiA+ID4gICAgfQ0KPiA+ID4NCj4gPiA+IC0gIGlmIChU aW1lb3V0RXZlbnQgIT0gTlVMTCkgew0KPiA+ID4gLSAgICBnQlMtPkNsb3NlRXZlbnQgKFRpbWVv dXRFdmVudCk7DQo+ID4gPiAtICB9DQo+ID4gPiAtDQo+ID4gPiAgICByZXR1cm4gU3RhdHVzOw0K PiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAtLQ0KPiA+ID4gMi4zNC4xDQo+ID4gPg0KPiA+ID4NCj4g PiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ DQo+ID4NCj4gPg0KPiA+IA0KPiA+DQo+ID4NCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdy b3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91 cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMDgzNjMpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cv ZGV2ZWwvbWVzc2FnZS8xMDgzNjMKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9t dC8xMDA3Mzk1MDgvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMu aW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmVi ZWNjYUBvcGVuZncuaW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==