From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 10690A0C3F; Mon, 28 Jun 2021 14:58:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9006640692; Mon, 28 Jun 2021 14:58:11 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 97A154068A for ; Mon, 28 Jun 2021 14:58:09 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10028"; a="207983531" X-IronPort-AV: E=Sophos;i="5.83,306,1616482800"; d="scan'208";a="207983531" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2021 05:58:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,306,1616482800"; d="scan'208";a="446554408" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga007.jf.intel.com with ESMTP; 28 Jun 2021 05:58:07 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Mon, 28 Jun 2021 05:58:07 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Mon, 28 Jun 2021 05:58:06 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Mon, 28 Jun 2021 05:58:06 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.173) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Mon, 28 Jun 2021 05:58:06 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H8EgF1Xadg84ufy40rV9YkjNHnzbxT0E5pwc6q/a6JfOd3GYSxTdAruf9AN+N88UKQjScsSWGGhMoH8u0XW/ZOn2FJS53ma+dLPfmH3ClXtSO+KaImsxsDwqYq46piNuIIUz5MZpXhYfCh6XwHSs7ZC51RIcqOE3DDMwnckHygBDSyKw3fVkFKHxuhZS6o7UaRaaMVR7qf3mV2QMMpStkeJelTRZ+8u1HZ5mUeYICAMoF2kqdH4wljPU1y7J0r2Sta+vGpgKdfLY2yueKfoET1OcowaxyO+XO8ZaJ/sCzC/MD7lWg3RfpR29aXuebwX4mr1rOhX+SBEsBzUMrQgGnw== 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=EzczVFQv3CmuWCnQSdhALu5gft8/cbb1PK4EQCGge6o=; b=OUR0Rrdx4CjuSTJ24zkO6uTu5teee6vYYhI0tGUO1nn6SpRUFsBcs7zcb7i7YuXJ9JXAIqIWrx9xUg54E8ADC9ig5sBUzSyz/UHENWEv9CMCjaXDDD/O4AEQIxgen6X1odhht15g0PxW6de8DnULTW4UEFLgpONgbGHkkNxnc8jG3pxvAtJ9QVcf7TwoVhs/i5+g4hqdxfIV6hNCty1mQ4blEtYyfrj56t0+Zx1ki9Lx/YUMscGcT9ej/zgOahC4hsCMM3G4sT5NbayidN9Eq3jOh81SSXTDQPBdHQmkMVqoI0Q+ONDi/xuPz3eJO1k/tigU0Tzi76pecPsp6SXDAw== 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=EzczVFQv3CmuWCnQSdhALu5gft8/cbb1PK4EQCGge6o=; b=OJwA+MkTMOK4jDmG8fLyMDtZ5X5tFot0s+PR/vkyIm81zJbtUkbcXf36v81O5EV5Fq40plIQTcPegpVzRiFc8ZRVFjhRtMdhzSTw61CuGFY5s0gx4tyzZOXJTs8dHgDy6Q8sghrYWGmco3zoFpfsYaVwCdnPaw4NoHrERhqVt24= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4011.namprd11.prod.outlook.com (2603:10b6:5:19d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.23; Mon, 28 Jun 2021 12:58:02 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48%7]) with mapi id 15.20.4264.026; Mon, 28 Jun 2021 12:58:02 +0000 From: "Ananyev, Konstantin" To: "Burakov, Anatoly" , "dev@dpdk.org" , Jerin Jacob , Ruifeng Wang , Jan Viktorin , "David Christensen" , Ray Kinsella , "Neil Horman" , "Richardson, Bruce" CC: "Hunt, David" , "Loftus, Ciara" Thread-Topic: [PATCH v2 3/7] eal: add power monitor for multiple events Thread-Index: AQHXacqAl3nedUSI2kCqojCdgz6KFaspXZEwgAAFVACAAAEZ0A== Date: Mon, 28 Jun 2021 12:58:01 +0000 Message-ID: References: <6c48562add728df4e2f22b3a41170d624c63e233.1624629506.git.anatoly.burakov@intel.com> <6a932db8-1c6c-8400-c274-ea40918ea023@intel.com> In-Reply-To: <6a932db8-1c6c-8400-c274-ea40918ea023@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.255.184.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a7f71246-af2d-449f-4d6b-08d93a345ce2 x-ms-traffictypediagnostic: DM6PR11MB4011: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4941; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OtsCCFn9uvzAAcdrz3c9mkqzQIWCWN7LutI6Yqy5HInFdFLYaGIBCiLPRJha42ERJDqh9Dodi22lkjdZXzPS7bCVj6MMKXWU2YtFZCp3TWVo3QWtrSUU+cJzSrFO0pG5JR8kUbbRMw8M5kfLnFijZJrdl91RzJIKFpCe+u/WcfVzZd1LNV4bt1kh/wzzWuLZunUdmao4TQBdIVH/etbLW4VX///PtR2VT7rod6CQ7AprWx+y/Qik8ffsgfGh/K7KoGI47cNjUaEeTqjIE4yoO/hrzOgHIarX6laPUbP2XOo4q3Nv6nAD0LvswMyO3M5IlcP9wc1CVBrfqDZrjzuzuiuB+1OFkF/VDq2CjO+kurtOnL3c7KRSrJ0a9GfLS72qa7zvBfJJYZopP5/1IegN7Hc2ctuqlwd3Cevfuu9hMpv0K6XeioWgMBSVL4gy9cxCwCEhnpf6L2hzl6L5qTOsNswm1Z4FkuKLSCmaQ3j4MMKr0L/lw9islvVKbV9UpyYO2+yL4LimcuB9KBGgKnr50jcEOCtkzSFCVDkUtlsilfiJzg9ZsWKMbR6cgzUqKlt1DFN6ecGMLGQlL2XjYoHxuWEPOeh8tdtz/fojQtIRV6Nk9abeDsivov1mK9OmirfUcObj+/q2fGoSp7CEUAaPJwWwnmUTlsMPpyFyk8HtQk65WD3kGg1Wwx2GoV/DMeR3fMyv9ZVIV4gvjRYJxUW2Vg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(376002)(136003)(366004)(39860400002)(346002)(55236004)(53546011)(6506007)(71200400001)(186003)(83380400001)(76116006)(8936002)(7696005)(6636002)(26005)(122000001)(478600001)(38100700002)(316002)(66946007)(66476007)(33656002)(2906002)(107886003)(52536014)(8676002)(66556008)(66446008)(64756008)(110136005)(921005)(54906003)(4326008)(9686003)(55016002)(86362001)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NUY4Ui81ck9OVjk4QUdIYldUTzluSDZ3NzBQd1dDNDFQNjZZZU4wZDkxb0li?= =?utf-8?B?TEJaVFd1d0ZyMEo1Y0lXd1IrZDAxYlFZOGVBZ2dXMktabWF2b1JIV0VYdTM0?= =?utf-8?B?ZjJUMVNkanhkY3h2a3h3K0tCZGdVRFZzaVhyNkNsV0FZZ0F2STRQYWN3QjVz?= =?utf-8?B?UW5IUjE1dFJRcFoxM1A2OWtGTjZNQ0ZwSm9XeStPSm1lWm5IUW8xWStjV0sx?= =?utf-8?B?Yk40ek83Q2ZnRHJXMm5LTHgwdzc1NW4xNDJOZFMxeVd3TU1aZlg1dzM3WW1P?= =?utf-8?B?NTdNc2pIenEvWnBhYU9mRjZEN09Cc2JDTkhBTWh4Ykc3YUcxM2FlWThMeHQy?= =?utf-8?B?dkwzUTRFSHJSeFR0SkZFQmkvYzA5WUQ0TVZVREVUK05JRTJVazY4eG5nU1Mw?= =?utf-8?B?bTc3QjVFa252MlNSUTNnUGZOQmloQ1p4blBra04rUktEU0k1MnljT0p1ZC83?= =?utf-8?B?cWdqR3MvTUhZSEltSGNCTWMvOGNoYlRsOEhpcmhiTEF1UUVvdXU2amtmR1RT?= =?utf-8?B?V0RtcGFpZ0lUQzI2QndVVkNkdDJzOTJQUk1PR0lJMVhnZVQrL0hsL3RiRmIr?= =?utf-8?B?eDlHWTRzTEo1RkFpRmViRzZNenBRblg0d1gvSThJYjhYeTZPRmluc1hWdDJL?= =?utf-8?B?MHhaSjdGTVpYeWxha3k2RlNkVmlRYTFFSDFGRXAwVU9rNEJaTEx6ejdsdytW?= =?utf-8?B?eEtFcVFZc00xcjRFMDFPbzVkQW0wZFk5SzFBK3VPTEl0bE9LUitNKzlpcFFG?= =?utf-8?B?V0NQS0FnUk1nalErNmIrbDdNMWNYQ2RYTGgwQ3VRT3FNZW1yekJqdjhTQXl6?= =?utf-8?B?YUJ5aVFFNFRsYlFwVTQrZEdCelQ0cmtUMEhOTE83a3k5SjNOaDYwYVo4amU1?= =?utf-8?B?L1o0ZGY4YWp3Z0pOak5yMUhhU1dyKzBmcXBtaVhPWmgyUndrbzRkMDg0Tmt6?= =?utf-8?B?SytlWTZ1enB1bHl3U1I1UmlVeGdPWXQvMGxZM0syUUEzS24yU2k5bFVwRzFw?= =?utf-8?B?c2pmbSttS0szWldTbEVmbnlSL2hrSG9ZWjlwVFhoaGdRRVhST3VKMFJodk03?= =?utf-8?B?VGZuSk1EZDFqdXVJL1JkRWIzd1EvdldCOUJ3RHVKblVGdk9iOTU2M1ZXdVJr?= =?utf-8?B?R05SWjJaYmx5cFNudEJHbkFhUlhQdUVNOFFTVmRJK3NFcXdtTmpxM0laVHBX?= =?utf-8?B?YzAyOW53TklzQzJsVEJ2dWxxdU55bFg5RjBMdW5KMVl6eXJZSTRKQldyWlRY?= =?utf-8?B?d2p1TlI1V29JWFI5RTMzRXdFOUJ4WldyRlFRQ0J6T0tkRCtobjNEamNWZmdk?= =?utf-8?B?UUthOExwMXUva3lEVlY5RERUNEQzTTgvNEQ4RnZ3aUlObVNXSElDOW91NkFG?= =?utf-8?B?YXl4aW0wL1FSUW91bjZlVUlmbzJiRTNUSFoxd29pQ2FsejRrZUZxeWtYQWhL?= =?utf-8?B?eXpGRldRWENWa2E3b2ZuMXdYWEpOdzB4NHZHQVpxZU5na2EzOWFDa2lUWU5O?= =?utf-8?B?d1VvcTBLZlU3Mm5Fc2t5Q2Y5Mi92UXNoeEtOc0tVWWtXTUFjVEZKMWRvQkM2?= =?utf-8?B?Z2pkb05rMTR0UWs0M0ltRkp4M1JUTFRZbHZJdDl0SFlIemNNbmV4YW1IVnJm?= =?utf-8?B?Mkw5SVdCbkswRG5adjk1OTdqRk4yQUREeEt5eFdnc0xBMTloR3YwSnRHcGd3?= =?utf-8?B?WTdVM0VwaDFpb2JtdGlJeE1HTDRpM3ZET3NKeGd3OWRSQVovdVhWTjlOS2VF?= =?utf-8?Q?NAtzqmrm7E6hxnCVuUO/aH8KHZWpy8Cgul4ikO8?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a7f71246-af2d-449f-4d6b-08d93a345ce2 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jun 2021 12:58:01.9491 (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: jDi/S4o0hFVaNGq9q/22oFal76h11/kI25/mnxQygDVb4pXvBFQ32UDEoAzb1ebSc93YzMrpBrWRKCuIoXAbbL3sGgWVaIx6LTXpPL+GeZE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4011 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 3/7] eal: add power monitor for multiple events X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQo+IE9uIDI4LUp1bi0yMSAxOjM3IFBNLCBBbmFueWV2LCBLb25zdGFudGluIHdyb3RlOg0KPiA+ DQo+ID4+IFVzZSBSVE0gYW5kIFdBSVRQS0cgaW5zdHJ1Y3Rpb25zIHRvIHBlcmZvcm0gYSB3YWl0 LWZvci13cml0ZXMgc2ltaWxhciB0bw0KPiA+PiB3aGF0IFVNV0FJVCBkb2VzLCBidXQgd2l0aG91 dCB0aGUgbGltaXRhdGlvbiBvZiBoYXZpbmcgdG8gbGlzdGVuIGZvcg0KPiA+PiBqdXN0IG9uZSBl dmVudC4gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBvcHRpbWl6ZWQgcG93ZXIgc3RhdGUgdXNlZCBi eSB0aGUNCj4gPj4gVFBBVVNFIGluc3RydWN0aW9uIHdpbGwgY2F1c2UgYSB3YWtlIHVwIG9uIFJU TSB0cmFuc2FjdGlvbiBhYm9ydCwgc28gaWYNCj4gPj4gd2UgYWRkIHRoZSBhZGRyZXNzZXMgd2Un cmUgaW50ZXJlc3RlZCBpbiB0byB0aGUgcmVhZC1zZXQsIGFueSB3cml0ZSB0bw0KPiA+PiB0aG9z ZSBhZGRyZXNzZXMgd2lsbCB3YWtlIHVzIHVwLg0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBL b25zdGFudGluIEFuYW55ZXYgPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+DQo+ID4+IFNp Z25lZC1vZmYtYnk6IEFuYXRvbHkgQnVyYWtvdiA8YW5hdG9seS5idXJha292QGludGVsLmNvbT4N Cj4gPj4gLS0tDQo+ID4+DQo+ID4+IE5vdGVzOg0KPiA+PiAgICAgIHYyOg0KPiA+PiAgICAgIC0g QWRhcHQgdG8gY2FsbGJhY2sgbWVjaGFuaXNtDQo+ID4+DQo+ID4+ICAgZG9jL2d1aWRlcy9yZWxf bm90ZXMvcmVsZWFzZV8yMV8wOC5yc3QgICAgICAgIHwgIDIgKw0KPiA+PiAgIGxpYi9lYWwvYXJt L3J0ZV9wb3dlcl9pbnRyaW5zaWNzLmMgICAgICAgICAgICB8IDExICsrKw0KPiA+PiAgIGxpYi9l YWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9jcHVmbGFncy5oICAgICAgICB8ICAyICsNCj4gPj4gICAu Li4vaW5jbHVkZS9nZW5lcmljL3J0ZV9wb3dlcl9pbnRyaW5zaWNzLmggICAgfCAzNSArKysrKysr KysrDQo+ID4+ICAgbGliL2VhbC9wcGMvcnRlX3Bvd2VyX2ludHJpbnNpY3MuYyAgICAgICAgICAg IHwgMTEgKysrDQo+ID4+ICAgbGliL2VhbC92ZXJzaW9uLm1hcCAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDMgKw0KPiA+PiAgIGxpYi9lYWwveDg2L3J0ZV9jcHVmbGFncy5jICAgICAgICAg ICAgICAgICAgICB8ICAyICsNCj4gPj4gICBsaWIvZWFsL3g4Ni9ydGVfcG93ZXJfaW50cmluc2lj cy5jICAgICAgICAgICAgfCA2OSArKysrKysrKysrKysrKysrKysrDQo+ID4+ICAgOCBmaWxlcyBj aGFuZ2VkLCAxMzUgaW5zZXJ0aW9ucygrKQ0KPiA+Pg0KPiA+IC4uLg0KPiA+DQo+ID4+IGRpZmYg LS1naXQgYS9saWIvZWFsL3g4Ni9ydGVfcG93ZXJfaW50cmluc2ljcy5jIGIvbGliL2VhbC94ODYv cnRlX3Bvd2VyX2ludHJpbnNpY3MuYw0KPiA+PiBpbmRleCAzYzVjOWNlN2FkLi4zZmM2ZjYyZWY1 IDEwMDY0NA0KPiA+PiAtLS0gYS9saWIvZWFsL3g4Ni9ydGVfcG93ZXJfaW50cmluc2ljcy5jDQo+ ID4+ICsrKyBiL2xpYi9lYWwveDg2L3J0ZV9wb3dlcl9pbnRyaW5zaWNzLmMNCj4gPj4gQEAgLTQs NiArNCw3IEBADQo+ID4+DQo+ID4+ICAgI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gPj4gICAj aW5jbHVkZSA8cnRlX2xjb3JlLmg+DQo+ID4+ICsjaW5jbHVkZSA8cnRlX3J0bS5oPg0KPiA+PiAg ICNpbmNsdWRlIDxydGVfc3BpbmxvY2suaD4NCj4gPj4NCj4gPj4gICAjaW5jbHVkZSAicnRlX3Bv d2VyX2ludHJpbnNpY3MuaCINCj4gPj4gQEAgLTI4LDYgKzI5LDcgQEAgX191bXdhaXRfd2FrZXVw KHZvbGF0aWxlIHZvaWQgKmFkZHIpDQo+ID4+ICAgfQ0KPiA+Pg0KPiA+PiAgIHN0YXRpYyBib29s IHdhaXRfc3VwcG9ydGVkOw0KPiA+PiArc3RhdGljIGJvb2wgd2FpdF9tdWx0aV9zdXBwb3J0ZWQ7 DQo+ID4+DQo+ID4+ICAgc3RhdGljIGlubGluZSB1aW50NjRfdA0KPiA+PiAgIF9fZ2V0X3Vtd2Fp dF92YWwoY29uc3Qgdm9sYXRpbGUgdm9pZCAqcCwgY29uc3QgdWludDhfdCBzeikNCj4gPj4gQEAg LTE2NCw2ICsxNjYsOCBAQCBSVEVfSU5JVChydGVfcG93ZXJfaW50cmluc2ljc19pbml0KSB7DQo+ ID4+DQo+ID4+ICAgICAgICBpZiAoaS5wb3dlcl9tb25pdG9yICYmIGkucG93ZXJfcGF1c2UpDQo+ ID4+ICAgICAgICAgICAgICAgIHdhaXRfc3VwcG9ydGVkID0gMTsNCj4gPj4gKyAgICAgaWYgKGku cG93ZXJfbW9uaXRvcl9tdWx0aSkNCj4gPj4gKyAgICAgICAgICAgICB3YWl0X211bHRpX3N1cHBv cnRlZCA9IDE7DQo+ID4+ICAgfQ0KPiA+Pg0KPiA+PiAgIGludA0KPiA+PiBAQCAtMjAyLDYgKzIw Niw5IEBAIHJ0ZV9wb3dlcl9tb25pdG9yX3dha2V1cChjb25zdCB1bnNpZ25lZCBpbnQgbGNvcmVf aWQpDQo+ID4+ICAgICAgICAgKiBJbiB0aGlzIGNhc2UsIHNpbmNlIHdlJ3ZlIGFscmVhZHkgd29r ZW4gdXAsIHRoZSAid2FrZXVwIiB3YXMNCj4gPj4gICAgICAgICAqIHVubmVlZGVkLCBhbmQgc2lu Y2UgVDEgaXMgc3RpbGwgd2FpdGluZyBvbiBUMiByZWxlYXNpbmcgdGhlIGxvY2ssIHRoZQ0KPiA+ PiAgICAgICAgICogd2FrZXVwIGFkZHJlc3MgaXMgc3RpbGwgdmFsaWQgc28gaXQncyBwZXJmZWN0 bHkgc2FmZSB0byB3cml0ZSBpdC4NCj4gPj4gKyAgICAgICoNCj4gPj4gKyAgICAgICogRm9yIG11 bHRpLW1vbml0b3IgY2FzZSwgdGhlIGFjdCBvZiBsb2NraW5nIHdpbGwgaW4gaXRzZWxmIHRyaWdn ZXIgdGhlDQo+ID4+ICsgICAgICAqIHdha2V1cCwgc28gbm8gYWRkaXRpb25hbCB3cml0ZXMgbmVj ZXNzYXJ5Lg0KPiA+PiAgICAgICAgICovDQo+ID4+ICAgICAgICBydGVfc3BpbmxvY2tfbG9jaygm cy0+bG9jayk7DQo+ID4+ICAgICAgICBpZiAocy0+bW9uaXRvcl9hZGRyICE9IE5VTEwpDQo+ID4+ IEBAIC0yMTAsMyArMjE3LDY1IEBAIHJ0ZV9wb3dlcl9tb25pdG9yX3dha2V1cChjb25zdCB1bnNp Z25lZCBpbnQgbGNvcmVfaWQpDQo+ID4+DQo+ID4+ICAgICAgICByZXR1cm4gMDsNCj4gPj4gICB9 DQo+ID4+ICsNCj4gPj4gK2ludA0KPiA+PiArcnRlX3Bvd2VyX21vbml0b3JfbXVsdGkoY29uc3Qg c3RydWN0IHJ0ZV9wb3dlcl9tb25pdG9yX2NvbmQgcG1jW10sDQo+ID4+ICsgICAgICAgICAgICAg Y29uc3QgdWludDMyX3QgbnVtLCBjb25zdCB1aW50NjRfdCB0c2NfdGltZXN0YW1wKQ0KPiA+PiAr ew0KPiA+PiArICAgICBjb25zdCB1bnNpZ25lZCBpbnQgbGNvcmVfaWQgPSBydGVfbGNvcmVfaWQo KTsNCj4gPj4gKyAgICAgc3RydWN0IHBvd2VyX3dhaXRfc3RhdHVzICpzID0gJndhaXRfc3RhdHVz W2xjb3JlX2lkXTsNCj4gPj4gKyAgICAgdWludDMyX3QgaSwgcmM7DQo+ID4+ICsNCj4gPj4gKyAg ICAgLyogY2hlY2sgaWYgc3VwcG9ydGVkICovDQo+ID4+ICsgICAgIGlmICghd2FpdF9tdWx0aV9z dXBwb3J0ZWQpDQo+ID4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9UU1VQOw0KPiA+PiArDQo+ ID4+ICsgICAgIGlmIChwbWMgPT0gTlVMTCB8fCBudW0gPT0gMCkNCj4gPj4gKyAgICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsNCj4gPj4gKw0KPiA+PiArICAgICAvKiB3ZSBhcmUgYWxyZWFkeSBp bnNpZGUgdHJhbnNhY3Rpb24gcmVnaW9uLCByZXR1cm4gKi8NCj4gPj4gKyAgICAgaWYgKHJ0ZV94 dGVzdCgpICE9IDApDQo+ID4+ICsgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4+ICsNCj4gPj4g KyAgICAgLyogc3RhcnQgbmV3IHRyYW5zYWN0aW9uIHJlZ2lvbiAqLw0KPiA+PiArICAgICByYyA9 IHJ0ZV94YmVnaW4oKTsNCj4gPj4gKw0KPiA+PiArICAgICAvKiB0cmFuc2FjdGlvbiBhYm9ydCwg cG9zc2libGUgd3JpdGUgdG8gb25lIG9mIHdhaXQgYWRkcmVzc2VzICovDQo+ID4+ICsgICAgIGlm IChyYyAhPSBSVEVfWEJFR0lOX1NUQVJURUQpDQo+ID4+ICsgICAgICAgICAgICAgcmV0dXJuIDA7 DQo+ID4+ICsNCj4gPj4gKyAgICAgLyoNCj4gPj4gKyAgICAgICogdGhlIG1lcmUgYWN0IG9mIHJl YWRpbmcgdGhlIGxvY2sgc3RhdHVzIGhlcmUgYWRkcyB0aGUgbG9jayB0bw0KPiA+PiArICAgICAg KiB0aGUgcmVhZCBzZXQuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIHdlIHRyaWdnZXIgYSB3YWtldXAg ZnJvbSBhbm90aGVyDQo+ID4+ICsgICAgICAqIHRocmVhZCwgZXZlbiBpZiB3ZSBkb24ndCBoYXZl IGEgZGVmaW5lZCB3YWtldXAgYWRkcmVzcyBhbmQgdGh1cyBkb24ndA0KPiA+PiArICAgICAgKiBh Y3R1YWxseSBjYXVzZSBhbnkgd3JpdGVzLCB0aGUgYWN0IG9mIGxvY2tpbmcgb3VyIGxvY2sgd2ls bCBpdHNlbGYNCj4gPj4gKyAgICAgICogdHJpZ2dlciB0aGUgd2FrZXVwIGFuZCBhYm9ydCB0aGUg dHJhbnNhY3Rpb24uDQo+ID4+ICsgICAgICAqLw0KPiA+PiArICAgICBydGVfc3BpbmxvY2tfaXNf bG9ja2VkKCZzLT5sb2NrKTsNCj4gPj4gKw0KPiA+PiArICAgICAvKg0KPiA+PiArICAgICAgKiBh ZGQgYWxsIGFkZHJlc3NlcyB0byB3YWl0IG9uIGludG8gdHJhbnNhY3Rpb24gcmVhZC1zZXQgYW5k IGNoZWNrIGlmDQo+ID4+ICsgICAgICAqIGFueSBvZiB3YWtldXAgY29uZGl0aW9ucyBhcmUgYWxy ZWFkeSBtZXQuDQo+ID4+ICsgICAgICAqLw0KPiA+PiArICAgICBmb3IgKGkgPSAwOyBpIDwgbnVt OyBpKyspIHsNCj4gPj4gKyAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX3Bvd2VyX21vbml0 b3JfY29uZCAqYyA9ICZwbWNbaV07DQo+ID4+ICsNCj4gPj4gKyAgICAgICAgICAgICBpZiAocG1j LT5mbiA9PSBOVUxMKQ0KPiA+DQo+ID4gU2hvdWxkIGJlIGMtPmZuLCBJIGJlbGlldmUuDQo+IA0K PiBZZXAsIHdpbGwgZml4Lg0KPiANCj4gPg0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgY29u dGludWU7DQo+ID4NCj4gPiBBY3R1YWxseSB0aGF0IHdheSwgaWYgYy0+Zm4gPT0gTlVMTCwgd2Un bGwgbmV2ZXIgYWRkICBvdXIgYy0+YWRkciB0byBtb25pdG9yZWQgYWRkcmVzc2VzLg0KPiA+IElz IHRoYXQgd2hhdCB3ZSByZWFsbHkgd2FudD8NCj4gPiBNeSB0aG91Z2h0IHdhcywgdGhhdCBpZiBj YWxsYmFjayBpcyBub3Qgc2V0LCB3ZSdsbCBqdXN0IGdvIHRvIHBvd2VyLXNhdmUgc3RhdGUgd2l0 aG91dCBleHRyYSBjaGVja2luZywgbm8/DQo+ID4gU29tZXRoaW5nIGxpa2UgdGhhdDoNCj4gPg0K PiA+IGNvbnN0IHN0cnVjdCBydGVfcG93ZXJfbW9uaXRvcl9jb25kICpjID0gJnBtY1tpXTsNCj4g PiBjb25zdCB1aW50NjRfdCB2YWwgPSBfX2dldF91bXdhaXRfdmFsKGMtPmFkZHIsIGMtPnNpemUp Ow0KPiA+DQo+ID4gaWYgKGMtPmZuICYmIGMtPmZuKHZhbCwgYy0+b3BhcXVlKSAhPSAwKQ0KPiA+ ICAgICBicmVhazsNCj4gDQo+IFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHByZXZpb3VzIGJlaGF2 aW9yIG9mIHJ0ZV9wb3dlcl9tb25pdG9yIHdoZXJlIGlmDQo+IG1hc2sgd2Fzbid0IHNldCB3ZSBl bnRlcmVkIHBvd2VyIHNhdmUgbW9kZSB3aXRob3V0IGFueSBjaGVja3MuIElmIHdlIGRvDQo+IGEg YnJlYWssIHRoYXQgbWVhbnMgdGhlIGNoZWNrIGNvbmRpdGlvbiBoYXMgZmFpbGVkIHNvbWV3aGVy ZSBhbmQgd2UgaGF2ZQ0KPiB0byBhYm9ydCB0aGUgc2xlZXAuIENvbnRpbnVlIGtlZXBzIHRoZSBz bGVlcC4NCg0KT2ssIHNvIHdoYXQgaXMgY3VycmVudCBpbnRlbnRpb24/DQpJZiBwbWMtPmZuID09 IE5VTEwgd2hhdCBkb2VzIGl0IG1lYW46DQoxKSBwbWMtPmFkZHIgc2hvdWxkbid0IGJlIG1vbml0 b3JlZCBhdCBhbGw/DQoyKSBwbWMtPmFkZHIgc2hvdWxkIGJlIG1vbml0b3JlZCB1bmNvbmRpdGlv bmFsbHkNCjMpIHBtYy0+Zm4gc2hvdWxkIG5ldmVyIGJlIE5VTEwgYW5kIG1vbml0b3Igc2hvdWxk IHJldHVybiBhbiBlcnJvcg0KMykgc29tZXRoaW5nIGVsc2U/DQoNCkZvciBtZSAxKSBsb29rcyBy ZWFsbHkgc3RyYW5nZSwgaWYgdXNlciBkb2Vzbid0IHdhbnQgdG8gc2xlZXAgb24gdGhhdCBhZGRy ZXNzLA0KaGUgY2FuIGp1c3Qgbm90IGFkZCB0aGlzIGFkZHIgdG8gcG1jW10uDQoNCjIpIGlzIHBy b2JhYmx5IG9rLi4uIGJ1dCBpcyB0aGF0IHJlYWxseSBuZWVkZWQ/DQpVc2VyIGNhbiBqdXN0IHBy b3ZpZGUgTk9QIGFzIGEgY2FsbGJhY2sgYW5kIGl0IHdvdWxkIGJlIHRoZSBzYW1lLg0KDQozKSBz ZWVtcyBsaWtlIGEgbW9zdCBzYW5lIHRvIGJlLg0KDQo+IA0KPiA+DQo+ID4gU2FtZSB0aG91Z2h0 IGZvciBydGVfcG93ZXJfbW9uaXRvcigpLg0KPiA+DQo+ID4+ICsgICAgICAgICAgICAgY29uc3Qg dWludDY0X3QgdmFsID0gX19nZXRfdW13YWl0X3ZhbChwbWMtPmFkZHIsIHBtYy0+c2l6ZSk7DQo+ ID4NCj4gPiBTYW1lIHRoaW5nOiBzL3BtYy0+L2MtPi8NCj4gDQo+IFllcCwgeW91J3JlIHJpZ2h0 Lg0KPiANCj4gPg0KPiA+PiArDQo+ID4+ICsgICAgICAgICAgICAgLyogYWJvcnQgaWYgY2FsbGJh Y2sgaW5kaWNhdGVzIHRoYXQgd2UgbmVlZCB0byBzdG9wICovDQo+ID4+ICsgICAgICAgICAgICAg aWYgKGMtPmZuKHZhbCwgYy0+b3BhcXVlKSAhPSAwKQ0KPiA+PiArICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7DQo+ID4+ICsgICAgIH0NCj4gPj4gKw0KPiA+PiArICAgICAvKiBub25lIG9mIHRo ZSBjb25kaXRpb25zIHdlcmUgbWV0LCBzbGVlcCB1bnRpbCB0aW1lb3V0ICovDQo+ID4+ICsgICAg IGlmIChpID09IG51bSkNCj4gPj4gKyAgICAgICAgICAgICBydGVfcG93ZXJfcGF1c2UodHNjX3Rp bWVzdGFtcCk7DQo+ID4+ICsNCj4gPj4gKyAgICAgLyogZW5kIHRyYW5zYWN0aW9uIHJlZ2lvbiAq Lw0KPiA+PiArICAgICBydGVfeGVuZCgpOw0KPiA+PiArDQo+ID4+ICsgICAgIHJldHVybiAwOw0K PiA+PiArfQ0KPiA+PiAtLQ0KPiA+PiAyLjI1LjENCj4gPg0KPiANCj4gDQo+IC0tDQo+IFRoYW5r cywNCj4gQW5hdG9seQ0K