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.web12.16077.1594229454253217706 for ; Wed, 08 Jul 2020 10:30:54 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=ZQAMnZfn; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: 6gVQvxjVw5uVVTxx0qWpgTxcaIE9iwVTJ9nZamOcnj0MGL5GKK/1C2lUA/yq8KOKFFwyYqhNOQ sScKWol0edhQ== X-IronPort-AV: E=McAfee;i="6000,8403,9676"; a="136109050" X-IronPort-AV: E=Sophos;i="5.75,328,1589266800"; d="scan'208";a="136109050" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jul 2020 10:30:52 -0700 IronPort-SDR: p+oiN76JXXmXC/PGYgDYo4bybdWB6jFdxlR9BHSnMszluVjpW4557qxqFQRLdD1j4Z0Ba9z8E5 xq0GfvfvLzQQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,328,1589266800"; d="scan'208";a="268523584" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga008.fm.intel.com with ESMTP; 08 Jul 2020 10:30:52 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) 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.1713.5; Wed, 8 Jul 2020 10:30:51 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 8 Jul 2020 10:30:51 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.177) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 8 Jul 2020 10:30:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bpnxwZVNNcQKiS38mLxWbGccklm1jDWo2EUKooc1QCafhKC1nP/tG4mr3ATBo9W7Xbw8IWInmAbAp9Byr/IlgWx5KXdUA+y9IOZH1L5UvXyJY06jQNRvJqSll1JoG9zmLpSifciiPREIS+ybSZC/yhnldci+r+9laTEK3gnvFqPNoJ5CCr6+TIXE9Q6labQLxFQuHiZ65ZlwgutGGkrXhJjqxeuLtdK9Cql4N5+GGOX4dOqzdz3aliIteEehImFmSwsLJRMNx2xx9IoymB1nuQLRRYO8umMg/H1h66PlXzGy6eOlERa4DGjVcTq37RQkS/ICO6Jb2g/YM7acizAU/A== 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=NIV1xR8QFqeIKJm+E5U0MOeymkSeimNRvskB12ThoD0=; b=ZF250I+RWltrA4rnUt7JHbgARASIcGtWvZBk/RIx0zuE5WPVgVWPkGby6QYXZz0uv9HSZqQ65gZ6rRP+uKIm/JWUhejlb/cn+ihSoAjp50X5jihgcUayLSwACVsCG1sZ+nu9AhGOAy1Rytsv7DBAxiR88C17jMOdrmvQrAJbo/X02ksoucxnUWG1n1ns9WXgPgk1SdA3DUqLC5HltNIY/Vu3dhvPo+JYBn3c/JG9EMLwPTFRMUw+dfYrjtm0Yy+KNH2agem6f0chMBONiqB6YeW44B/w0p7HJ+pDQfjfB5Azi8bjKFQ8JojVxLkup3fr8SF+/OV+RfFfGLZBZK7XTg== 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=NIV1xR8QFqeIKJm+E5U0MOeymkSeimNRvskB12ThoD0=; b=ZQAMnZfnCk5E+ujj1aV5FfDImw04v0Kcv70Slbun/tNMFN+0FscBMpV6NXFhcquQaNZDoE8M7+va+LkgYQX5UGiS4mH+ka6lWDCi7TkAqgZxfh0zb/S4IPZLjAD8oMirPpdLu4+/nR7e1yOgHyh0DnVa6eR8/5QgHpH0unyKux8= Received: from MN2PR11MB4461.namprd11.prod.outlook.com (2603:10b6:208:192::29) by MN2PR11MB4695.namprd11.prod.outlook.com (2603:10b6:208:260::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.22; Wed, 8 Jul 2020 17:30:10 +0000 Received: from MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1]) by MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1%3]) with mapi id 15.20.3174.021; Wed, 8 Jul 2020 17:30:09 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "matthewfcarlson@gmail.com" , "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH v1 1/3] UnitTestFrameworkPkg : BaseTimerLib: Adds a host-based timer Lib Thread-Topic: [edk2-devel] [PATCH v1 1/3] UnitTestFrameworkPkg : BaseTimerLib: Adds a host-based timer Lib Thread-Index: AQHWVUIllA2oqqj01k6Z+4XOVV8tu6j978mw Date: Wed, 8 Jul 2020 17:30:09 +0000 Message-ID: References: <20200708013122.1301-1-matthewfcarlson@gmail.com> <20200708013122.1301-2-matthewfcarlson@gmail.com> In-Reply-To: <20200708013122.1301-2-matthewfcarlson@gmail.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 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: [134.134.136.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7b85f25a-3a03-4add-46f1-08d823649067 x-ms-traffictypediagnostic: MN2PR11MB4695: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hhBQX2OyII98uFKWbUmX2RfspRPAMkwpgvjWjHW3W9J/fwbKROuMtDCCRNVY7i4R6vey1MnADu+erhk0/IcRBxbG6c1nBpNyJUZWDjOifSfDbrRRFJoFClx+TrhmLLw0C4VW1Y8HCf96i1WhZjAelumC2AUvBrpV+534MapmZoKl7+cFwOSDbgh3z7P1ud8H+Ueb56ZaJsyh5ShuXHMqtLhCdI1luTrF+BaeFBSV5tzbmeiW7wAizEWZlDaaNLsoWcR4RyulhGpOvEN8t0EAW/PHKV8ZMwrlRJiax/d2gArrNqYww8xo95Ypuwa/Zz1dzgNTPFol2ra5NaDw+zthafVPoB8kliHPO/Fl2Ml19aOEeyCnt8sXctTNQCNLXq8Ny7Hv8pSzdZ8fB4LBS2js5g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4461.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(346002)(376002)(396003)(136003)(39860400002)(366004)(66946007)(33656002)(8936002)(2906002)(55016002)(9686003)(26005)(71200400001)(186003)(53546011)(6506007)(86362001)(316002)(110136005)(5660300002)(52536014)(66446008)(66476007)(76116006)(8676002)(66556008)(478600001)(966005)(64756008)(7696005)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: /Dm5liYRy23fPam7RrRvFwcNf72qO3HVY1+CSnhBqRR+iLFbn+gv+puamsz3pk6/zKYUgXEr5Cubnup+j2PgjFcNrZe1aL7JxLWdKUMUBMrjjHDD/dOQE7kKgDIjHQkqbGvT3oCp87CPbUMJS/ejdjmatMPJLUO8w+G6StS/dtlSO2ocX+FMWveE9gGlfNBZ2JpajVInw42VJkEYRn3euCe681wyxNsZ1fAU/+AJDPKGoZIxmFKEvhuzxZeGcGNUYBzq8XI8Azyf3rBTNSQrRy4j0gY1LhnlyFcQgJzSQH5J13pcveizHpRHnpdPkxQQ+mMXv14jY8s9dfFccqkdENGISDhTz7T9mJ54TaaHOvNQnXA9YvffZCLfZBMYgHofiCF5wzMs1XOu6nePOQ36l94sD9IUzLw276XdZX5jE2aBsQBkj7YvIuqHZdh0H77icDcmhUXkD8KEy8MkIT+iRtNPIsJ6NaPRU0PMVxMktpj+/eBfBUJu7J+TIfonMXng MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4461.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b85f25a-3a03-4add-46f1-08d823649067 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jul 2020 17:30:09.8255 (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: DyKjAHH8tCPXItq5q3IJoKpKy73FPJXbjpS5CMbkvqQAs9CdqpVpeYSsYYtQYCHhmBzNRrrM3m034NCBP3SotU+TxZ6gW2tFgsuX221Tsck= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4695 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWF0dCwNCg0KSSB0aGluayB0aGUgZm9sbG93aW5nIHNlY3Rpb24gaW4gdGhlIG5ldyBUaW1l ckxpYiBpbnN0YW5jZSBJTkYNCmlzIHJlZHVuZGFudCBhbmQgY2FuIGJlIHJlbW92ZWQgLiAgVGhp cyBzZXR0aW5nIGlzIGFscmVhZHkgaW4gDQpVbml0VGVzdEZyYW1ld29ya1BrZy9Vbml0VGVzdEZy YW1ld29ya1BrZ0hvc3QuZHNjLmluYyBhbmQgYXBwbGllcw0KdG8gYWxsIGNvbXBvbmVudHMgd2hl biBidWlsZGluZyBhIGhvc3QgYmFzZWQgdW5pdCB0ZXN0IGFwcC4NCg0KW0J1aWxkT3B0aW9uc10N CiAgR0NDOipfKl8qX0NDX0ZMQUdTID0gLWZuby1waWUNCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsy Lmdyb3Vwcy5pbz4gT24NCj4gQmVoYWxmIE9mIG1hdHRoZXdmY2FybHNvbkBnbWFpbC5jb20NCj4g U2VudDogVHVlc2RheSwgSnVseSA3LCAyMDIwIDY6MzEgUE0NCj4gVG86IGRldmVsQGVkazIuZ3Jv dXBzLmlvDQo+IENjOiBNYXR0aGV3IENhcmxzb24gPG1hdHRoZXdmY2FybHNvbkBnbWFpbC5jb20+ DQo+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjEgMS8zXQ0KPiBVbml0VGVzdEZyYW1l d29ya1BrZyA6IEJhc2VUaW1lckxpYjogQWRkcyBhIGhvc3QtYmFzZWQNCj4gdGltZXIgTGliDQo+ IA0KPiBGcm9tOiBNYXR0aGV3IENhcmxzb24gPG1hY2FybEBtaWNyb3NvZnQuY29tPg0KPiANCj4g VGhpcyBhZGRzIGEgaG9zdCBiYXNlZCBCYXNlVGltZXJMaWIgdGhhdCB3b24ndCBhc3NlcnQuDQo+ IA0KPiBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IENhcmxzb24NCj4gPG1hdHRoZXdmY2FybHNvbkBn bWFpbC5jb20+DQo+IC0tLQ0KPiANCj4gVW5pdFRlc3RGcmFtZXdvcmtQa2cvTGlicmFyeS9Ib3N0 L0Jhc2VUaW1lckxpYkhvc3QvVGltZXINCj4gTGliSG9zdC5jICAgICAgIHwgMTM3ICsrKysrKysr KysrKysrKysrKysrDQo+IA0KPiBVbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0hvc3QvQmFz ZVRpbWVyTGliSG9zdC9CYXNlVA0KPiBpbWVyTGliSG9zdC5pbmYgfCAgNDAgKysrKysrDQo+IA0K PiBVbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0hvc3QvQmFzZVRpbWVyTGliSG9zdC9CYXNl VA0KPiBpbWVyTGliSG9zdC51bmkgfCAgMTkgKysrDQo+ICBVbml0VGVzdEZyYW1ld29ya1BrZy9V bml0VGVzdEZyYW1ld29ya1BrZ0hvc3QuZHNjLmluYw0KPiB8ICAgMSArDQo+ICA0IGZpbGVzIGNo YW5nZWQsIDE5NyBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0DQo+IGEvVW5pdFRlc3RG cmFtZXdvcmtQa2cvTGlicmFyeS9Ib3N0L0Jhc2VUaW1lckxpYkhvc3QvVGltDQo+IGVyTGliSG9z dC5jDQo+IGIvVW5pdFRlc3RGcmFtZXdvcmtQa2cvTGlicmFyeS9Ib3N0L0Jhc2VUaW1lckxpYkhv c3QvVGltDQo+IGVyTGliSG9zdC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAw MDAwMDAwMDAwMC4uNjEzMDRlNjZmNTRmDQo+IC0tLSAvZGV2L251bGwNCj4gKysrDQo+IGIvVW5p dFRlc3RGcmFtZXdvcmtQa2cvTGlicmFyeS9Ib3N0L0Jhc2VUaW1lckxpYkhvc3QvVGltDQo+IGVy TGliSG9zdC5jDQo+IEBAIC0wLDAgKzEsMTM3IEBADQo+ICsvKiogQGZpbGUNCj4gDQo+ICsgIEEg bm9uLWZ1bmN0aW9uYWwgaW5zdGFuY2Ugb2YgdGhlIFRpbWVyIExpYnJhcnkuDQo+IA0KPiArDQo+ IA0KPiArICBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDExLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs DQo+IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IA0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gKw0KPiANCj4gKyoqLw0KPiANCj4gKw0KPiAN Cj4gKyNpbmNsdWRlIDxCYXNlLmg+DQo+IA0KPiArI2luY2x1ZGUgPExpYnJhcnkvVGltZXJMaWIu aD4NCj4gDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiANCj4gKyNpbmNsdWRl IDxzdGRpby5oPg0KPiANCj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4NCj4gDQo+ICsjaW5jbHVkZSA8 dGltZS5oPg0KPiANCj4gKw0KPiANCj4gKy8qKg0KPiANCj4gKyAgU3RhbGxzIHRoZSBDUFUgZm9y IGF0IGxlYXN0IHRoZSBnaXZlbiBudW1iZXIgb2YNCj4gbWljcm9zZWNvbmRzLg0KPiANCj4gKw0K PiANCj4gKyAgU3RhbGxzIHRoZSBDUFUgZm9yIHRoZSBudW1iZXIgb2YgbWljcm9zZWNvbmRzDQo+ IHNwZWNpZmllZCBieSBNaWNyb1NlY29uZHMuDQo+IA0KPiArDQo+IA0KPiArICBAcGFyYW0gIE1p Y3JvU2Vjb25kcyAgVGhlIG1pbmltdW0gbnVtYmVyIG9mDQo+IG1pY3Jvc2Vjb25kcyB0byBkZWxh eS4NCj4gDQo+ICsNCj4gDQo+ICsgIEByZXR1cm4gVGhlIHZhbHVlIG9mIE1pY3JvU2Vjb25kcyBp bnB1dHRlZC4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtVSU5UTg0KPiANCj4gK0VGSUFQ SQ0KPiANCj4gK01pY3JvU2Vjb25kRGVsYXkgKA0KPiANCj4gKyAgSU4gICAgICBVSU5UTiAgICAg ICAgICAgICAgICAgICAgIE1pY3JvU2Vjb25kcw0KPiANCj4gKyAgKQ0KPiANCj4gK3sNCj4gDQo+ ICsgIHJldHVybiBOYW5vU2Vjb25kRGVsYXkoTWljcm9TZWNvbmRzICogMTAwMDAwMCkgLw0KPiAx MDAwMDAwOw0KPiANCj4gK30NCj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsgIFN0YWxscyB0 aGUgQ1BVIGZvciBhdCBsZWFzdCB0aGUgZ2l2ZW4gbnVtYmVyIG9mDQo+IG5hbm9zZWNvbmRzLg0K PiANCj4gKw0KPiANCj4gKyAgU3RhbGxzIHRoZSBDUFUgZm9yIHRoZSBudW1iZXIgb2YgbmFub3Nl Y29uZHMNCj4gc3BlY2lmaWVkIGJ5IE5hbm9TZWNvbmRzLg0KPiANCj4gKw0KPiANCj4gKyAgQHBh cmFtICBOYW5vU2Vjb25kcyBUaGUgbWluaW11bSBudW1iZXIgb2YgbmFub3NlY29uZHMNCj4gdG8g ZGVsYXkuDQo+IA0KPiArDQo+IA0KPiArICBAcmV0dXJuIFRoZSB2YWx1ZSBvZiBOYW5vU2Vjb25k cyBpbnB1dHRlZC4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtVSU5UTg0KPiANCj4gK0VG SUFQSQ0KPiANCj4gK05hbm9TZWNvbmREZWxheSAoDQo+IA0KPiArICBJTiAgICAgIFVJTlROICAg ICAgICAgICAgICAgICAgICAgTmFub1NlY29uZHMNCj4gDQo+ICsgICkNCj4gDQo+ICt7DQo+IA0K PiArICAvKlVJTlQ2NCBzdGFydCA9IEdldFBlcmZvcm1hbmNlQ291bnRlcigpOw0KPiANCj4gKyAg VUlOVDY0IGdvYWwgPSBzdGFydCArIE5hbm9TZWNvbmRzOw0KPiANCj4gKyAgREVCVUcoKCBERUJV R19FUlJPUiwgIkRlbGF5aW5nIGZvciAlZCBucy4gU3RhcnQ6ICVkDQo+IHRvICVkXG4iLCBOYW5v U2Vjb25kcywgc3RhcnQsIGdvYWwpKTsNCj4gDQo+ICsgIC8vIGNoZWNrIGlmIHdlIG5lZWQgdG8g d2FpdCBmb3IgdGhlIGNvdW50ZXIgdG8gcm9sbA0KPiBvdmVyDQo+IA0KPiArICBpZiAoc3RhcnQg PiBnb2FsKSB7DQo+IA0KPiArICAgIERFQlVHKCggREVCVUdfRVJST1IsICJTdGFydCBpcyBtb3Jl IHRoYW4gZ29hbFxuIikpOw0KPiANCj4gKyAgICB3aGlsZSAoR2V0UGVyZm9ybWFuY2VDb3VudGVy KCkgPiBnb2FsKTsNCj4gDQo+ICsgIH0NCj4gDQo+ICsgIHdoaWxlIChHZXRQZXJmb3JtYW5jZUNv dW50ZXIoKSA8IGdvYWwpOw0KPiANCj4gKyAgcmV0dXJuIE5hbm9TZWNvbmRzOyovDQo+IA0KPiAr ICByZXR1cm4gMDsNCj4gDQo+ICt9DQo+IA0KPiArDQo+IA0KPiArLyoqDQo+IA0KPiArICBSZXRy aWV2ZXMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYSA2NC1iaXQgZnJlZSBydW5uaW5nDQo+IHBlcmZv cm1hbmNlIGNvdW50ZXIuDQo+IA0KPiArDQo+IA0KPiArICBUaGUgY291bnRlciBjYW4gZWl0aGVy IGNvdW50IHVwIGJ5IDEgb3IgY291bnQgZG93biBieQ0KPiAxLiBJZiB0aGUgcGh5c2ljYWwNCj4g DQo+ICsgIHBlcmZvcm1hbmNlIGNvdW50ZXIgY291bnRzIGJ5IGEgbGFyZ2VyIGluY3JlbWVudCwN Cj4gdGhlbiB0aGUgY291bnRlciB2YWx1ZXMNCj4gDQo+ICsgIG11c3QgYmUgdHJhbnNsYXRlZC4g VGhlIHByb3BlcnRpZXMgb2YgdGhlIGNvdW50ZXIgY2FuDQo+IGJlIHJldHJpZXZlZCBmcm9tDQo+ IA0KPiArICBHZXRQZXJmb3JtYW5jZUNvdW50ZXJQcm9wZXJ0aWVzKCkuDQo+IA0KPiArDQo+IA0K PiArICBAcmV0dXJuIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBmcmVlIHJ1bm5pbmcNCj4gcGVy Zm9ybWFuY2UgY291bnRlci4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtVSU5UNjQNCj4g DQo+ICtFRklBUEkNCj4gDQo+ICtHZXRQZXJmb3JtYW5jZUNvdW50ZXIgKA0KPiANCj4gKyAgVk9J RA0KPiANCj4gKyAgKQ0KPiANCj4gK3sNCj4gDQo+ICsgIHN0cnVjdCB0aW1lc3BlYyB0czsNCj4g DQo+ICsgIHRpbWVzcGVjX2dldCgmdHMsIFRJTUVfVVRDKTsNCj4gDQo+ICsgIHJldHVybiB0cy50 dl9uc2VjOw0KPiANCj4gK30NCj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsgIFJldHJpZXZl cyB0aGUgNjQtYml0IGZyZXF1ZW5jeSBpbiBIeiBhbmQgdGhlIHJhbmdlIG9mDQo+IHBlcmZvcm1h bmNlIGNvdW50ZXINCj4gDQo+ICsgIHZhbHVlcy4NCj4gDQo+ICsNCj4gDQo+ICsgIElmIFN0YXJ0 VmFsdWUgaXMgbm90IE5VTEwsIHRoZW4gdGhlIHZhbHVlIHRoYXQgdGhlDQo+IHBlcmZvcm1hbmNl IGNvdW50ZXIgc3RhcnRzDQo+IA0KPiArICB3aXRoIGltbWVkaWF0ZWx5IGFmdGVyIGlzIGl0IHJv bGxzIG92ZXIgaXMgcmV0dXJuZWQNCj4gaW4gU3RhcnRWYWx1ZS4gSWYNCj4gDQo+ICsgIEVuZFZh bHVlIGlzIG5vdCBOVUxMLCB0aGVuIHRoZSB2YWx1ZSB0aGF0IHRoZQ0KPiBwZXJmb3JtYW5jZSBj b3VudGVyIGVuZCB3aXRoDQo+IA0KPiArICBpbW1lZGlhdGVseSBiZWZvcmUgaXQgcm9sbHMgb3Zl ciBpcyByZXR1cm5lZCBpbg0KPiBFbmRWYWx1ZS4gVGhlIDY0LWJpdA0KPiANCj4gKyAgZnJlcXVl bmN5IG9mIHRoZSBwZXJmb3JtYW5jZSBjb3VudGVyIGluIEh6IGlzIGFsd2F5cw0KPiByZXR1cm5l ZC4gSWYgU3RhcnRWYWx1ZQ0KPiANCj4gKyAgaXMgbGVzcyB0aGFuIEVuZFZhbHVlLCB0aGVuIHRo ZSBwZXJmb3JtYW5jZSBjb3VudGVyDQo+IGNvdW50cyB1cC4gSWYgU3RhcnRWYWx1ZQ0KPiANCj4g KyAgaXMgZ3JlYXRlciB0aGFuIEVuZFZhbHVlLCB0aGVuIHRoZSBwZXJmb3JtYW5jZQ0KPiBjb3Vu dGVyIGNvdW50cyBkb3duLiBGb3INCj4gDQo+ICsgIGV4YW1wbGUsIGEgNjQtYml0IGZyZWUgcnVu bmluZyBjb3VudGVyIHRoYXQgY291bnRzIHVwDQo+IHdvdWxkIGhhdmUgYSBTdGFydFZhbHVlDQo+ IA0KPiArICBvZiAwIGFuZCBhbiBFbmRWYWx1ZSBvZiAweEZGRkZGRkZGRkZGRkZGRkYuIEEgMjQt Yml0DQo+IGZyZWUgcnVubmluZyBjb3VudGVyDQo+IA0KPiArICB0aGF0IGNvdW50cyBkb3duIHdv dWxkIGhhdmUgYSBTdGFydFZhbHVlIG9mIDB4RkZGRkZGDQo+IGFuZCBhbiBFbmRWYWx1ZSBvZiAw Lg0KPiANCj4gKw0KPiANCj4gKyAgQHBhcmFtICBTdGFydFZhbHVlICBUaGUgdmFsdWUgdGhlIHBl cmZvcm1hbmNlIGNvdW50ZXINCj4gc3RhcnRzIHdpdGggd2hlbiBpdA0KPiANCj4gKyAgICAgICAg ICAgICAgICAgICAgICByb2xscyBvdmVyLg0KPiANCj4gKyAgQHBhcmFtICBFbmRWYWx1ZSAgICBU aGUgdmFsdWUgdGhhdCB0aGUgcGVyZm9ybWFuY2UNCj4gY291bnRlciBlbmRzIHdpdGggYmVmb3Jl DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgIGl0IHJvbGxzIG92ZXIuDQo+IA0KPiArDQo+ IA0KPiArICBAcmV0dXJuIFRoZSBmcmVxdWVuY3kgaW4gSHouDQo+IA0KPiArDQo+IA0KPiArKiov DQo+IA0KPiArVUlOVDY0DQo+IA0KPiArRUZJQVBJDQo+IA0KPiArR2V0UGVyZm9ybWFuY2VDb3Vu dGVyUHJvcGVydGllcyAoDQo+IA0KPiArICBPVVQgICAgICBVSU5UNjQgICAgICAgICAgICAgICAg ICAgICpTdGFydFZhbHVlLA0KPiBPUFRJT05BTA0KPiANCj4gKyAgT1VUICAgICAgVUlOVDY0ICAg ICAgICAgICAgICAgICAgICAqRW5kVmFsdWUNCj4gT1BUSU9OQUwNCj4gDQo+ICsgICkNCj4gDQo+ ICt7DQo+IA0KPiArICByZXR1cm4gKFVJTlQ2NCkoLTEpOw0KPiANCj4gK30NCj4gDQo+ICsNCj4g DQo+ICsvKioNCj4gDQo+ICsgIENvbnZlcnRzIGVsYXBzZWQgdGlja3Mgb2YgcGVyZm9ybWFuY2Ug Y291bnRlciB0byB0aW1lDQo+IGluIG5hbm9zZWNvbmRzLg0KPiANCj4gKw0KPiANCj4gKyAgVGhp cyBmdW5jdGlvbiBjb252ZXJ0cyB0aGUgZWxhcHNlZCB0aWNrcyBvZiBydW5uaW5nDQo+IHBlcmZv cm1hbmNlIGNvdW50ZXIgdG8NCj4gDQo+ICsgIHRpbWUgdmFsdWUgaW4gdW5pdCBvZiBuYW5vc2Vj b25kcy4NCj4gDQo+ICsNCj4gDQo+ICsgIEBwYXJhbSAgVGlja3MgICAgIFRoZSBudW1iZXIgb2Yg ZWxhcHNlZCB0aWNrcyBvZg0KPiBydW5uaW5nIHBlcmZvcm1hbmNlIGNvdW50ZXIuDQo+IA0KPiAr DQo+IA0KPiArICBAcmV0dXJuIFRoZSBlbGFwc2VkIHRpbWUgaW4gbmFub3NlY29uZHMuDQo+IA0K PiArDQo+IA0KPiArKiovDQo+IA0KPiArVUlOVDY0DQo+IA0KPiArRUZJQVBJDQo+IA0KPiArR2V0 VGltZUluTmFub1NlY29uZCAoDQo+IA0KPiArICBJTiAgICAgIFVJTlQ2NCAgICAgICAgICAgICAg ICAgICAgIFRpY2tzDQo+IA0KPiArICApDQo+IA0KPiArew0KPiANCj4gKyAgcmV0dXJuIFRpY2tz Ow0KPiANCj4gK30NCj4gDQo+IGRpZmYgLS1naXQNCj4gYS9Vbml0VGVzdEZyYW1ld29ya1BrZy9M aWJyYXJ5L0hvc3QvQmFzZVRpbWVyTGliSG9zdC9CYXMNCj4gZVRpbWVyTGliSG9zdC5pbmYNCj4g Yi9Vbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0hvc3QvQmFzZVRpbWVyTGliSG9zdC9CYXMN Cj4gZVRpbWVyTGliSG9zdC5pbmYNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw MDAwMDAwMDAwLi5hYzA5MWNkMTBhZjENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysNCj4gYi9Vbml0 VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0hvc3QvQmFzZVRpbWVyTGliSG9zdC9CYXMNCj4gZVRp bWVyTGliSG9zdC5pbmYNCj4gQEAgLTAsMCArMSw0MCBAQA0KPiArIyMgQGZpbGUNCj4gDQo+ICsj ICBOVUxMIGluc3RhbmNlIG9mIFRpbWVyIExpYnJhcnkgYXMgYSB0ZW1wbGF0ZS4NCj4gDQo+ICsj DQo+IA0KPiArIyAgQSBub24tZnVuY3Rpb25hbCBpbnN0YW5jZSBvZiB0aGUgVGltZXIgTGlicmFy eSB0aGF0DQo+IGNhbiBiZSB1c2VkIGFzIGEgdGVtcGxhdGUNCj4gDQo+ICsjICBmb3IgdGhlIGlt cGxlbWVudGF0aW9uIG9mIGEgZnVuY3Rpb25hbCB0aW1lciBsaWJyYXJ5DQo+IGluc3RhbmNlLiBU aGlzIGxpYnJhcnkgaW5zdGFuY2UgY2FuDQo+IA0KPiArIyAgYWxzbyBiZSB1c2VkIHRvIHRlc3Qg YnVpbGQgRFhFLCBSdW50aW1lLCBEWEUgU0FMLA0KPiBhbmQgRFhFIFNNTSBtb2R1bGVzIHRoYXQg cmVxdWlyZSB0aW1lcg0KPiANCj4gKyMgIHNlcnZpY2VzIGFzIHdlbGwgYXMgRUJDIG1vZHVsZXMg dGhhdCByZXF1aXJlIHRpbWVyDQo+IHNlcnZpY2VzLg0KPiANCj4gKyMNCj4gDQo+ICsjICBDb3B5 cmlnaHQgKGMpIDIwMDcgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsDQo+IHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQo+IA0KPiArIw0KPiANCj4gKyMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiArIw0KPiANCj4gKyMNCj4gDQo+ICsjIw0KPiAN Cj4gKw0KPiANCj4gK1tEZWZpbmVzXQ0KPiANCj4gKyAgSU5GX1ZFUlNJT04gICAgICAgICAgICAg ICAgICAgID0gMHgwMDAxMDAwNQ0KPiANCj4gKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAg ICAgID0gQmFzZVRpbWVyTGliSG9zdA0KPiANCj4gKyAgTU9EVUxFX1VOSV9GSUxFICAgICAgICAg ICAgICAgID0gQmFzZVRpbWVyTGliSG9zdC51bmkNCj4gDQo+ICsgIEZJTEVfR1VJRCAgICAgICAg ICAgICAgICAgICAgICA9IGEyYTQxM2I4LTQzYzMtNDBjYy0NCj4gYTI5OC1iZTdhMjE0ZDM1NjQN Cj4gDQo+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IEJBU0UNCj4gDQo+ICsg IFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAgICA9IDEuMA0KPiANCj4gKyAgTElCUkFSWV9D TEFTUyAgICAgICAgICAgICAgICAgID0gVGltZXJMaWINCj4gDQo+ICsNCj4gDQo+ICsNCj4gDQo+ ICsjDQo+IA0KPiArIyAgVkFMSURfQVJDSElURUNUVVJFUyAgICAgICAgICAgPSBJQTMyIFg2NCBF QkMgQUFSQ0gNCj4gDQo+ICsjDQo+IA0KPiArDQo+IA0KPiArW1NvdXJjZXNdDQo+IA0KPiArICBU aW1lckxpYkhvc3QuYw0KPiANCj4gKw0KPiANCj4gKw0KPiANCj4gK1tQYWNrYWdlc10NCj4gDQo+ ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+IA0KPiArDQo+IA0KPiArDQo+IA0KPiArW0xpYnJhcnlD bGFzc2VzXQ0KPiANCj4gKyAgRGVidWdMaWINCj4gDQo+ICsNCj4gDQo+IGRpZmYgLS1naXQNCj4g YS9Vbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0hvc3QvQmFzZVRpbWVyTGliSG9zdC9CYXMN Cj4gZVRpbWVyTGliSG9zdC51bmkNCj4gYi9Vbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0hv c3QvQmFzZVRpbWVyTGliSG9zdC9CYXMNCj4gZVRpbWVyTGliSG9zdC51bmkNCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi42ZTEwMGJkMzgzZDINCj4gLS0tIC9k ZXYvbnVsbA0KPiArKysNCj4gYi9Vbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0hvc3QvQmFz ZVRpbWVyTGliSG9zdC9CYXMNCj4gZVRpbWVyTGliSG9zdC51bmkNCj4gQEAgLTAsMCArMSwxOSBA QA0KPiArLy8gLyoqIEBmaWxlDQo+IA0KPiArLy8gTlVMTCBpbnN0YW5jZSBvZiBUaW1lciBMaWJy YXJ5IGFzIGEgdGVtcGxhdGUuDQo+IA0KPiArLy8NCj4gDQo+ICsvLyBBIG5vbi1mdW5jdGlvbmFs IGluc3RhbmNlIG9mIHRoZSBUaW1lciBMaWJyYXJ5IHRoYXQNCj4gY2FuIGJlIHVzZWQgYXMgYSB0 ZW1wbGF0ZQ0KPiANCj4gKy8vIGZvciB0aGUgaW1wbGVtZW50YXRpb24gb2YgYSBmdW5jdGlvbmFs IHRpbWVyIGxpYnJhcnkNCj4gaW5zdGFuY2UuIFRoaXMgbGlicmFyeSBpbnN0YW5jZSBjYW4NCj4g DQo+ICsvLyBhbHNvIGJlIHVzZWQgdG8gdGVzdCBidWlsZCBEWEUsIFJ1bnRpbWUsIERYRSBTQUws DQo+IGFuZCBEWEUgU01NIG1vZHVsZXMgdGhhdCByZXF1aXJlIHRpbWVyDQo+IA0KPiArLy8gc2Vy dmljZXMgYXMgd2VsbCBhcyBFQkMgbW9kdWxlcyB0aGF0IHJlcXVpcmUgdGltZXINCj4gc2Vydmlj ZXMuDQo+IA0KPiArLy8NCj4gDQo+ICsvLyBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDE0LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsDQo+IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IA0KPiArLy8NCj4g DQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAN Cj4gKy8vDQo+IA0KPiArLy8gKiovDQo+IA0KPiArDQo+IA0KPiArDQo+IA0KPiArI3N0cmluZyBT VFJfTU9EVUxFX0FCU1RSQUNUICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUw0KPiAiSG9zdCBp bnN0YW5jZSBvZiBUaW1lciBMaWJyYXJ5Ig0KPiANCj4gKw0KPiANCj4gKyNzdHJpbmcgU1RSX01P RFVMRV9ERVNDUklQVElPTiAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMNCj4gIkFuIGluc3RhbmNl IG9mIHRoZSBUaW1lciBMaWJyYXJ5IHRoYXQgY2FuIGJlIHVzZWQgZm9yDQo+IGhvc3QgYmFzZWQg dW5pdCB0ZXN0cy4iDQo+IA0KPiArDQo+IA0KPiBkaWZmIC0tZ2l0DQo+IGEvVW5pdFRlc3RGcmFt ZXdvcmtQa2cvVW5pdFRlc3RGcmFtZXdvcmtQa2dIb3N0LmRzYy5pbmMNCj4gYi9Vbml0VGVzdEZy YW1ld29ya1BrZy9Vbml0VGVzdEZyYW1ld29ya1BrZ0hvc3QuZHNjLmluYw0KPiBpbmRleCBlOTU0 OTY4ZWZjNTIuLmJjN2I3YWZhMTcyOSAxMDA2NDQNCj4gLS0tDQo+IGEvVW5pdFRlc3RGcmFtZXdv cmtQa2cvVW5pdFRlc3RGcmFtZXdvcmtQa2dIb3N0LmRzYy5pbmMNCj4gKysrDQo+IGIvVW5pdFRl c3RGcmFtZXdvcmtQa2cvVW5pdFRlc3RGcmFtZXdvcmtQa2dIb3N0LmRzYy5pbmMNCj4gQEAgLTEz LDYgKzEzLDcgQEANCj4gDQo+IFVuaXRUZXN0TGlifFVuaXRUZXN0RnJhbWV3b3JrUGtnL0xpYnJh cnkvVW5pdFRlc3RMaWIvVW5pDQo+IHRUZXN0TGliQ21vY2thLmluZg0KPiANCj4gDQo+IERlYnVn TGlifFVuaXRUZXN0RnJhbWV3b3JrUGtnL0xpYnJhcnkvUG9zaXgvRGVidWdMaWJQb3NpDQo+IHgv RGVidWdMaWJQb3NpeC5pbmYNCj4gDQo+IA0KPiBNZW1vcnlBbGxvY2F0aW9uTGlifFVuaXRUZXN0 RnJhbWV3b3JrUGtnL0xpYnJhcnkvUG9zaXgvTQ0KPiBlbW9yeUFsbG9jYXRpb25MaWJQb3NpeC9N ZW1vcnlBbGxvY2F0aW9uTGliUG9zaXguaW5mDQo+IA0KPiArDQo+IFRpbWVyTGlifFVuaXRUZXN0 RnJhbWV3b3JrUGtnL0xpYnJhcnkvSG9zdC9CYXNlVGltZXJMaWJIDQo+IG9zdC9CYXNlVGltZXJM aWJIb3N0LmluZg0KPiANCj4gDQo+IA0KPiAgW0J1aWxkT3B0aW9uc10NCj4gDQo+ICAgIEdDQzoq XypfKl9DQ19GTEFHUyA9IC1mbm8tcGllDQo+IA0KPiAtLQ0KPiAyLjI1LjEudmZzLjEuMQ0KPiAN Cj4gDQo+IC09LT0tPS09LT0tPQ0KPiBHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBt ZXNzYWdlcyBzZW50IHRvIHRoaXMNCj4gZ3JvdXAuDQo+IA0KPiBWaWV3L1JlcGx5IE9ubGluZSAo IzYyMjQ3KToNCj4gaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvNjIyNDcN Cj4gTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC83NTM3OTY3OC8xNjQzNDk2 DQo+IEdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbw0KPiBVbnN1YnNjcmli ZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViDQo+IFttaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbV0NCj4gLT0tPS09LT0tPS09DQoNCg==