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 60CCF4285E; Wed, 29 Mar 2023 08:42:08 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D9AA940F18; Wed, 29 Mar 2023 08:42:07 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 4EABC40EE7; Wed, 29 Mar 2023 08:42:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680072125; x=1711608125; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=JWvKaZjjVXah6Qa6raQn+NunWdYOaYjc+NeSfNHraQ0=; b=fuJT018SFFaVUqn6PkWx/p/KP3VkPLS207A/Gnng9CSoHif8+q4qZ8OK okm/OWSznjlzrLQ9oNl+ESzy2ZHlLcmUm7BeJwbKwgKi/VVU5yRNxalgo Kvh7ZVTRIUbb9mjprU/QwmlSPC7NpPk4qtz+WXvMB3ZgjzhFE47WqsH3O Py0Ptpme4qG6Cm+PlW6fqp+WnJu63RVzSj17R55KF1c2HMv/3eEWPt9UU uVu0/C7RkXIC9NihW17xZCqXqPatbtgIqUd2I/v6L7OXHs8a/i1+cVc5D pNg3Ta2W2g0uT2kl+u/5LfU7Xv4elcHUTCACSNZiZHuXhemfvEi3CFbHk A==; X-IronPort-AV: E=McAfee;i="6600,9927,10663"; a="343210434" X-IronPort-AV: E=Sophos;i="5.98,300,1673942400"; d="scan'208";a="343210434" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Mar 2023 23:41:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10663"; a="773440893" X-IronPort-AV: E=Sophos;i="5.98,300,1673942400"; d="scan'208";a="773440893" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by FMSMGA003.fm.intel.com with ESMTP; 28 Mar 2023 23:41:58 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 28 Mar 2023 23:41:58 -0700 Received: from orsedg603.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_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Tue, 28 Mar 2023 23:41:57 -0700 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.42) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Tue, 28 Mar 2023 23:41:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Le0u3XibOHxcu/v+KtApRXbOj3XWvxgpy9N0EZKb2nHnE2UJ3xrzv0pXOdYdeGCZ9blQf7m9+aoTCWaPJ9WunBCGjRUG9tDJYDukb3c+Oejm1TGUBBBozuut8wZgRrYWkD9R+NEEP8w74icYglzHaRbyY+5WCZxXAtJ3x6H+U9n3d2IqNeaq9RIFPdCwT1n+yXyk+mHqQRBfrd69U4HToogPs4q5f4AAzA4tdWmvJwNh5reTsYQNByW0f6KFYVWeoKwlQ6St3LnpC14G/91H43pX3/IcBUw/NQ2EMMO0hhQ3J+vTdZrod9HXAzu8ge1EyTjyZiK1YAVTZMF7/IUNNQ== 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=JWvKaZjjVXah6Qa6raQn+NunWdYOaYjc+NeSfNHraQ0=; b=fXAui9Zzc5hDMzbTfdNf/SvPb2x1RMOMEBD6YQ9L1SQ77Wce0HGKjXiUJHfU8iHIvoLvZ9T9XkVCTGHq3q4N5+f+9aZsYWr4+MkjLmquQ8fZpIlXmkgLPceT1oecZfPyrXk5UZSyw9F2rXGxGIltrAUi4iHkvR2w1D6t/vRBEyz3Jg4V+ZH7sZ2k1tEGGdK/3QFTLghDKbO9uemidamDDNqwOM9WPrlJIlDBl70mC27glh5+CqT3ts46mxWyKDT2a4l1OI1txoRRVLtWZ8yiVGbjHcpnViUZzwsLQbCGczhOhxN9mpGUJEMo1ZlGPbLkC7dvTATNFEaSNw5ZG/+o8w== 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 BYAPR11MB2903.namprd11.prod.outlook.com (2603:10b6:a03:89::31) by MW4PR11MB6910.namprd11.prod.outlook.com (2603:10b6:303:225::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.28; Wed, 29 Mar 2023 06:41:53 +0000 Received: from BYAPR11MB2903.namprd11.prod.outlook.com ([fe80::d569:e02f:a24d:4705]) by BYAPR11MB2903.namprd11.prod.outlook.com ([fe80::d569:e02f:a24d:4705%4]) with mapi id 15.20.6222.033; Wed, 29 Mar 2023 06:41:53 +0000 From: "Deng, KaiwenX" To: Ferruh Yigit , "dev@dpdk.org" CC: "stable@dpdk.org" , "Yang, Qiming" , "Zhou, YidingX" , "Chas Williams" , "Min Hu (Connor)" , "Wu, Jingjing" , "Xing, Beilei" , Mike Pattrick , "Zhang, Qi Z" , "Doherty, Declan" , "Mrzyglod, Daniel T" , Dapeng Yu Subject: RE: [PATCH v3] net/iavf: fix iavf query stats in intr thread Thread-Topic: [PATCH v3] net/iavf: fix iavf query stats in intr thread Thread-Index: AQHZXJQHR5SkzTBC30aFA7rxtJ2YFa8IghcAgAWdr2CAAHdFgIACwpKQ Date: Wed, 29 Mar 2023 06:41:52 +0000 Message-ID: References: <20230307025533.1950861-1-kaiwenx.deng@intel.com> <20230322072615.179196-1-kaiwenx.deng@intel.com> <0f1ae3b9-f378-9a75-65f7-fcd6e2630414@amd.com> In-Reply-To: Accept-Language: en-US Content-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-traffictypediagnostic: BYAPR11MB2903:EE_|MW4PR11MB6910:EE_ x-ms-office365-filtering-correlation-id: 0c0bbe39-5c01-4aa7-77bf-08db3020ae99 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uE3BEG5iMTHVq4tRXZoV4eIuvS5MUGZ1j/pJhqnGFxTl/ZSAL4lex+eHC445TBKILDvOAZtYhrqdfdY9sDsgu5gElFlSHksOSQwts7jgr3RDyv3PNI3t38QK379LA2UaXalXZ5FXFWZlsMAAFHSo4lEDnbRd5r3IVWuHKQDQazrKyIG7YgGQvP76VCZNvwzFNO55Hy0lMRX/YyoCpxDbmONuKgmukLkHd+CqsvlbTr0ko4QCQfciTmYzLvXqSEHmmdkeIkKUq1U5TLvQ3bg8Syj9fOm8okVRG1xikf3YYzgXEIFnccho4Lge3P0lX3X8dU0n2dNT3vV0ZuVarTUyPy4/oCFLK3nKZYrXMStWisg60RGQYEmdbfJP2VFrqtAqUHz2hUgre8nraSZWh4x40z7+1QalYZiLoW7J/eN6WMBk1bbgwtvXSC2QZGLyn5XWK9U7bcmuQwx5sskNsGB+M8Mwkbz+qMDVC/i646uS+MTaJnlDumKbyFDw2NCmXbpE2Fm7qPBkeA9E/jtrpSXSrS0RUWPlAnVKxiU0gGw+4jhqX8Z9OkiSkL0wx4RV0qiMfxfgEasFSzFkIPEeRkDL8eX9rt7HJOAPSviHVY5pAG+Lqn8531uNn6a/nJsOuPqt x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB2903.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(396003)(376002)(366004)(346002)(39860400002)(451199021)(2906002)(83380400001)(64756008)(8676002)(66946007)(4326008)(66476007)(66556008)(478600001)(7696005)(76116006)(71200400001)(54906003)(38070700005)(110136005)(53546011)(9686003)(316002)(107886003)(55016003)(6506007)(30864003)(186003)(52536014)(38100700002)(86362001)(41300700001)(122000001)(5660300002)(82960400001)(33656002)(66446008)(8936002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YXRrMVJiK1JzWmRmQlpxcE5VRmJtZkRmZURsNE50NzVCYzJaMGxHZGNqUDZM?= =?utf-8?B?QmZGQlpYZFBvcFBlZUkzMmhZejg0RUd6bEFmU0F3T25NS3ZrWE16d3pWazFB?= =?utf-8?B?RGw0OUcxRHg3NlEyWW9NV2NIM0x0WmlQMHJSNXovcFErVDNXYzZ2NUpPaUNZ?= =?utf-8?B?MkVrL0tnazladHZUaDVrQ2ZwcnRoZys0MmF4TnFwZnRpRTczWStyc2k0L3JN?= =?utf-8?B?OHg5V0hER2lhRG1NMUkxOCsxLzhaUXdva1JYQjRCamQ4WHlLN2oxOEF1NS80?= =?utf-8?B?a01sSFlKVGxHN0dZTmhsa3lmdjVobXRYdjhHZWZjOE1GdjNnYzhHUmZwUEJJ?= =?utf-8?B?eTZ4NjdTRDc2RC9tOGszcHhzMUY3Vk90QnduWGhLbE84OEhPSUxtZzN6bmRT?= =?utf-8?B?N05EZGlxUk9PaTArdlFpcFhMVWZvckxCdklEcnJza0FzUjZHQ21VSmttZFN1?= =?utf-8?B?cmdoM3ZPZTN1WnJoOWZpN0hGUFBmTFc3Sy9KWVQ0cUhyKzlKYXBDcnBIL2Jo?= =?utf-8?B?OVNCVDZ6YS9PRFMvUjJUY1RBTVBlcTIzYXVrUXNlWkowSUJBdlVvbGFuZnJD?= =?utf-8?B?ckNxMDFCQ1Q1cDRjVjh2KzdhY1RSbHUybHo2amFCUXJDd2VpTlBNdU9JQS9s?= =?utf-8?B?QTg0MmFIQTk4bDRDN3pGUU8zUWRnTG1lZ1dISlhNdjlFN1RNRi9sQ0lYOExa?= =?utf-8?B?V1hDWXNab3FUQUxFZno4T1p1Ly9BMWtYQTlPVGM3RlQybXBoV0xaU0Ric1Zh?= =?utf-8?B?dmZOUDNZbFJKc2xxT2pUeDdZQkduSzArZ2RjNmhERHhWTEpCMEVlUGRpVjJj?= =?utf-8?B?VnlHMTQxRWpUN2lqZmpXb1FiSUlhdEw1dXVHcld2VFNXOXVFMXI4NVdmQ3k2?= =?utf-8?B?bG9qanVEcEY4MmFBYXdTTll6MkdZYjF4VnhxdDdjQ0ovYVpybjluMjVkSW5n?= =?utf-8?B?MTVhUGN1Z2VBMzY5ZmM5NS9WQ0o3Q2pReDl4WTlqbThQYlQ5Tno1M1IxcE85?= =?utf-8?B?ZHR6bnVqSllYSmozWXBraTcwMnI5ZTdxT0ZDNWM1YVR5VFpSSjRjOGJ2ZE9t?= =?utf-8?B?TlpxRGJzMkozSmZuSzZIdlZFU05IM3Q2SURXN3hKRDhOS29rVittamM4TVds?= =?utf-8?B?SjlPS3B5cVRwdFlncmpmNFVjN3JNS1FuMTFsaklsaUZ4YWFwR0hXRzUva3da?= =?utf-8?B?bi8vb2NaU1BLOE1PZXNZN3RPR3M5UU9XMDBGRHFZUTFwbXhXaHdnaFFMSjFr?= =?utf-8?B?Nk0veS9obEtSOUlwTFdVeTRTM2hhK3d4STV3YUdMdDJ0MFpFWGN2Y3lWMU53?= =?utf-8?B?RHQ1Y2NIQWwwNzMrZG15N0tRbHNRSnB2dEJDR0JObGpOUmtzUno1b285L1g5?= =?utf-8?B?Q0dLQ0I3TTJiaG9wanRwelBjSGc2Yzh1Sk91RDkxdUo1V01MYWdvQ1BsaEZo?= =?utf-8?B?OWI0cyswcFJkN1A5T2lLZHdYRWlkQVJnSWhHaG5xZDhsb2VheitLWEJaMlFQ?= =?utf-8?B?VWVtYU1lS2pFN3BpakZuVEJsUkJvYklLN3lzZExVOVJ6Rm1YdE9UWWt0QTgz?= =?utf-8?B?M1R4TnREOVFKcGtkZ3U1bnUrTHV2SHg1VlhmNHpkV0RPRVhMOFc1T2h6Z3lK?= =?utf-8?B?bjhOd1V5Tm9mTHZLZ1JyVmF0TmdSdkk4bDU3U2xpNHlvUml4SGYrN3FBbnRJ?= =?utf-8?B?WWlSa056VmVhVE5SdEc1c1hjTXBWTjd0UGF4SUIrMUhCa3gzbzYwRGMwV1RL?= =?utf-8?B?T1BNa1FkU2RQUklXREgyRHZvaWhIUzRVbWRiL1FEZDkrSU1DWFJ0WUhMK1ZZ?= =?utf-8?B?YTRjSmt2TGRab2ovU0JoTkFBTExuME52WUlFY09FL24vNFZ3VVp2ZVc0ZFZi?= =?utf-8?B?cER6YytPRU5HS3lsQzE3bGQ1RS9CeTQ1dnQxNk9CTVlUaWpkSkJjWEMyOEcx?= =?utf-8?B?b3FjZGkrMjU5ZndQZ0NxY0VwZGlZdk1pMXUySlBmT2xHNmxkVXB0bDY3M280?= =?utf-8?B?VUdHS0tHbjczRzFVM3hkWC9ObW81enpFMU9GNjZMOFIrdHB0Y21Zb1RWYit1?= =?utf-8?B?cXFsMWh5aUlPWitveGV5bGRGamRRQXRtZEtOb3FTQ0JCREoyS0pYTi9aY0Vo?= =?utf-8?Q?tVgs=3D?= 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: BYAPR11MB2903.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c0bbe39-5c01-4aa7-77bf-08db3020ae99 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2023 06:41:52.8834 (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: 6bYoOY1srju2KjgixWNoKHgzKXVkRSFKaktoIR3F01B3OxmWOZdkPxH00Q758QkX+txXPdvq69SVnb8s+gHVLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB6910 X-OriginatorOrg: intel.com 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gU2VudDogTW9uZGF5LCBNYXJjaCAyNywgMjAyMyA4OjMy IFBNDQo+IFRvOiBEZW5nLCBLYWl3ZW5YIDxrYWl3ZW54LmRlbmdAaW50ZWwuY29tPjsgZGV2QGRw ZGsub3JnDQo+IENjOiBzdGFibGVAZHBkay5vcmc7IFlhbmcsIFFpbWluZyA8cWltaW5nLnlhbmdA aW50ZWwuY29tPjsgWmhvdSwgWWlkaW5nWA0KPiA8eWlkaW5neC56aG91QGludGVsLmNvbT47IENo YXMgV2lsbGlhbXMgPGNoYXMzQGF0dC5jb20+OyBNaW4gSHUgKENvbm5vcikNCj4gPGh1bWluMjlA aHVhd2VpLmNvbT47IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsgWGluZywg QmVpbGVpDQo+IDxiZWlsZWkueGluZ0BpbnRlbC5jb20+OyBNaWtlIFBhdHRyaWNrIDxta3BAcmVk aGF0LmNvbT47IFpoYW5nLCBRaSBaDQo+IDxxaS56LnpoYW5nQGludGVsLmNvbT47IERvaGVydHks IERlY2xhbiA8ZGVjbGFuLmRvaGVydHlAaW50ZWwuY29tPjsNCj4gTXJ6eWdsb2QsIERhbmllbCBU IDxkYW5pZWwudC5tcnp5Z2xvZEBpbnRlbC5jb20+OyBEYXBlbmcgWXUNCj4gPGRhcGVuZ3gueXVA aW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzXSBuZXQvaWF2ZjogZml4IGlhdmYg cXVlcnkgc3RhdHMgaW4gaW50ciB0aHJlYWQNCj4gDQo+IE9uIDMvMjcvMjAyMyA2OjMxIEFNLCBE ZW5nLCBLYWl3ZW5YIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAYW1kLmNvbT4NCj4g Pj4gU2VudDogVGh1cnNkYXksIE1hcmNoIDIzLCAyMDIzIDExOjM5IFBNDQo+ID4+IFRvOiBEZW5n LCBLYWl3ZW5YIDxrYWl3ZW54LmRlbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+IENj OiBzdGFibGVAZHBkay5vcmc7IFlhbmcsIFFpbWluZyA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsg WmhvdSwNCj4gPj4gWWlkaW5nWCA8eWlkaW5neC56aG91QGludGVsLmNvbT47IENoYXMgV2lsbGlh bXMgPGNoYXMzQGF0dC5jb20+OyBNaW4NCj4gPj4gSHUgKENvbm5vcikgPGh1bWluMjlAaHVhd2Vp LmNvbT47IFd1LCBKaW5namluZw0KPiA+PiA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsgWGluZywg QmVpbGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+OyBNaWtlDQo+ID4+IFBhdHRyaWNrIDxta3BA cmVkaGF0LmNvbT47IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47DQo+ID4+IERv aGVydHksIERlY2xhbiA8ZGVjbGFuLmRvaGVydHlAaW50ZWwuY29tPjsgTXJ6eWdsb2QsIERhbmll bCBUDQo+ID4+IDxkYW5pZWwudC5tcnp5Z2xvZEBpbnRlbC5jb20+OyBEYXBlbmcgWXUgPGRhcGVu Z3gueXVAaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYzXSBuZXQvaWF2Zjog Zml4IGlhdmYgcXVlcnkgc3RhdHMgaW4gaW50ciB0aHJlYWQNCj4gPj4NCj4gPj4gT24gMy8yMi8y MDIzIDc6MjYgQU0sIEthaXdlbiBEZW5nIHdyb3RlOg0KPiA+Pj4gV2hlbiBpYXZmIHNlbmQgcXVl cnktc3RhdHMgY29tbWFuZCBpbiBlYWwtaW50ci10aHJlYWQgdGhyb3VnaA0KPiA+Pj4gdmlydHVh bCBjaGFubmVsLCB0aGVyZSB3aWxsIGJlIG5vIHJlc3BvbnNlIHJlY2VpdmVkIGZyb20NCj4gPj4+ IGlhdmZfZGV2X3ZpcnRjaG5sX2hhbmRsZXIgZm9yIHRoaXMgY29tbWFuZCBkdXJpbmcgYmxvY2sg YW5kIHdhaXQuDQo+ID4+PiBCZWNhdXNlIGlhdmZfZGV2X3ZpcnRjaG5sX2hhbmRsZXIgaXMgYWxz byByZWdpc3RlcmVkIGluIGVhbC1pbnRyLXRocmVhZC4NCj4gPj4+DQo+ID4+PiBXaGVuIHZmIGRl dmljZSBpcyBib25kZWQgYXMgQk9ORElOR19NT0RFX1RMQiBtb2RlLCB0aGUgc2xhdmUNCj4gZGV2 aWNlDQo+ID4+PiB1cGRhdGUgY2FsbGJhY2sgd2lsbCByZWdpc3RlcmVkIGluIGFsYXJtIGFuZCBj YWxsZWQgYnkNCj4gPj4+IGVhbC1pbnRyLXRocmVhZCwgaXQgd291bGQgYWxzbyByYWlzZSB0aGUg YWJvdmUgaXNzdWUuDQo+ID4+Pg0KPiA+Pj4gVGhpcyBjb21taXQgYWRkIHRvIHBvbGwgdGhlIHJl c3BvbnNlIGZvciBWSVJUQ0hOTF9PUF9HRVRfU1RBVFMNCj4gd2hlbg0KPiA+PiBpdA0KPiA+Pj4g aXMgY2FsbGVkIGJ5IGVhbC1pbnRyLXRocmVhZCB0byBmaXggdGhpcyBpc3N1ZS4NCj4gPj4+DQo+ ID4+PiBGaXhlczogOTFiZjM3ZDI1MGFhICgibmV0L2lhdmY6IGFkZCBsb2NrIGZvciBWRiBjb21t YW5kcyIpDQo+ID4+PiBGaXhlczogMjJiMTIzYTM2ZDA3ICgibmV0L2F2ZjogaW5pdGlhbGl6ZSBQ TUQiKQ0KPiA+Pj4gRml4ZXM6IDdjNzZhNzQ3ZTY4YyAoImJvbmQ6IGFkZCBtb2RlIDUiKQ0KPiA+ Pj4gRml4ZXM6IDQzNWQ1MjMxMTJjYyAoIm5ldC9pYXZmOiBmaXggbXVsdGktcHJvY2VzcyBzaGFy ZWQgZGF0YSIpDQo+ID4+PiBGaXhlczogY2I1YzFiOTFmNzZmICgibmV0L2lhdmY6IGFkZCB0aHJl YWQgZm9yIGV2ZW50IGNhbGxiYWNrcyIpDQo+ID4+DQo+ID4+DQo+ID4+IEhpIEthaXdlbiwNCj4g Pj4NCj4gPj4gQWJvdmUgY29tbWl0IGFscmVhZHkgc2VlbXMgdHJ5aW5nIHRvIGFkZHJlc3Mgc2Ft ZSBpc3N1ZSwgaXQgY3JlYXRlcw0KPiA+PiAiaWF2Zi0gZXZlbnQtdGhyZWFkIiBjb250cm9sIHRo cmVhZCB0byBhc3luY3JvbmlvdXNseSBoYW5kbGUgdGhlDQo+ID4+IGludGVycnVwdHMsIGluIG5v bi0gaW50ZXJydXB0IGNvbnRleHQsIHdoeSBpdCBpcyBub3Qgd29ya2luZz8NCj4gPj4NCj4gPj4g SW5zdGVhZCBvZiBhZGRpbmcgJ3J0ZV90aHJlYWRfaXNfaW50cigpJyBjaGVja3MsIGNhbid0IHlv dSBtYWtlIHN1cmUNCj4gPj4gYWxsIGludGVycnVwdHMgaGFuZGxlZCBpbiBjb250cm9sIHRyZWFk Pw0KPiA+Pg0KPiA+PiBBbmQgY2FuIHlvdSBwbGVhc2UgcHJvdmlkZSBhIHN0YWNrIHRyYWNlIGlu IGNvbW1pdCBsb2csIHRvIGRlc2NyaWJlDQo+ID4+IHRoZSBpc3N1ZSBiZXR0ZXI/DQo+ID4gSGkg RmVycnUsDQo+ID4gU29ycnkgZm9yIG15IGxhdGUgcmVwbHksIEFuZCB0aGFua3MgZm9yIHlvdXIg cmV2aWV3Lg0KPiA+DQo+ID4gVGhlIGFib3ZlIGNvbW1pdCBkb2VzIG5vdCBmaXggdGhpcyBpc3N1 ZSB3aGVuIHdlIG5lZWQgdG8gZ2V0IHRoZQ0KPiByZXR1cm5lZCBkYXRhLg0KPiA+IElmIHdlIGNh bGwgaWF2Zl9xdWVyeV9zdGF0cyBhbmQgd2FpdCBmb3IgcmVzcG9uc2Ugc3RhdGlzdGljcyBpbiB0 aGUgaW50ci10aHJlYWQuDQo+ID4gaWF2Zl9oYW5kbGVfdmlydGNobmxfbXNnIGlzIGFsc28gcmVn aXN0ZXJlZCBpbiB0aGUgaW50cl90aHJlYWQgYW5kDQo+ID4gd2lsbCBub3QgYmUgZXhlY3V0ZWQg d2hpbGUgd2FpdGluZy4NCj4gPg0KPiANCj4gR290IGl0LCBzaW5jZSByZXR1cm4gdmFsdWUgaXMg cmVxdWlyZWQsIEFQSSBjYW4ndCBiZSBjYWxsZWQgYXN5bmNyb25pb3VzbHkuDQo+IA0KPiANCj4g DQo+IEkgdGhpbmsgJ3J0ZV90aHJlYWRfaXNfaW50cigpJyBjaGVja3MgbWF5IGNhdXNlIG1vcmUg dHJvdWJsZSBmb3IgeW91IGluIGxvbmcNCj4gdGVybSwNCj4gDQo+IC0gd2h5ICdpYXZmX3F1ZXJ5 X3N0YXRzKCknIGlzIGNhbGxlZCBpbiB0aGUgaXRlcnJ1cHQgdGhyZWFkLCBjYW4gaXQgYmUgcHJl dmVudGVkPw0KPiANCj4gLSBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gYWxsd2F5cyBwb2xsIG1lc3Nh Z2VzIGZyb20gUEYgKGZvciBzaW1wbGlmaWNhdGlvbik/DQo+IA0KVmlydHVhbCBjaGFubmVsIGNv bW1hbmRzIHNvbWV0aW1lcyBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgdG8gYWxhcm0gDQpzbyB0aGF0 IHRoZXkgY2FuIGJlIGNhbGxlZCBwZXJpb2RpY2FsbHksIGFuZCBhbGFybSBpcyByZWdpc3RlcmVk ICB0byBiZSANCmNhbGxlZCBpbiBpbnRlcnJ1cHQgdGhyZWFkcy4NCg0KRm9yIHNvbWUgY29tbWFu ZHMgdGhhdCBkbyBub3QgcmVxdWlyZSBhIHJldHVybiB2YWx1ZSwgSXQgY2Fubm90IA0Kc3VwcG9y dCBhc3luY2hyb25vdXMgaWYgYWxsd2F5cyBwb2xsIG1lc3NhZ2VzIGZyb20gUEYuDQo+IA0KPiBJ ZiBhbnN3ZXIgdG8gYm90aCBhcmUgJ05vJywgSSBhbSBPSyB0byBjb250aW51ZSB3aXRoIGN1cnJl bnQgcHJvcG9zYWwgaWYgeW91DQo+IGFyZSBoYXBweSB3aXRoIGl0Lg0KPiANCj4gDQo+ID4gVGhp cyBjb21taXQgSSBjaGFuZ2VkIGl0IHRvIHBvbGxpbmcgZm9yIHJlcGxpZXMgdG8gY29tbWFuZHMg ZXhlY3V0ZWQgaW4gdGhlDQo+IGludGVycnVwdCB0aHJlYWQuDQo+ID4NCj4gPiBtYWluIHRocmVh ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVycnVwdA0KPiB0aHJl YWQNCj4gPiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ ID4gaWF2Zl9xdWVyeV9zdGF0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfA0KPiA+IGlhdmZfZXhlY3V0ZV92Zl9jbWQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwNCj4gPiBpYXZmX2FxX3NlbmRfbXNnX3RvX3BmICBhbmQgd2FpdCBo YW5kbGUgY29tcGxldGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ ID4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiAtLS0tLT58DQo+ID4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICAgICAgfA0K PiBpYXZmX2hhbmRsZV92aXJ0Y2hubF9tc2cNCj4gPiAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiAg ICAgIHw8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0tfA0KPiA+ICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfA0KPiA+IGlhdmZfZXhlY3V0ZV92Zl9jbWQgZ2V0IHJlc3BvbnNlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwNCj4gPiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPg0KPiA+IFRoZSBhYm92ZSBpcyB0 aGUgc3RhY2sgdHJhY2UgZm9yIHRoZSBub3JtYWwgZXhlY3V0aW9uIG9mDQo+ID4gaWF2Zl9xdWVy eV9zdGF0cyBpbiB0aGUgbWFpbiB0aHJlYWQuDQo+ID4NCj4gPiAgaW50ZXJydXB0IHRocmVhZA0K PiA+ICAgICAgfA0KPiA+ICAgICAgfA0KPiA+IGlhdmZfcXVlcnlfc3RhdHMNCj4gPiBpYXZmX2V4 ZWN1dGVfdmZfY21kDQo+ID4gaWF2Zl9hcV9zZW5kX21zZ190b19wZiB3YWl0IGhhbmRsZSBjb21w bGV0ZSgxIHNlYykNCj4gaWF2Zl9leGVjdXRlX3ZmX2NtZA0KPiA+IHRpbWVvdXQNCj4gPiAgICAg IHwNCj4gPiAgICAgIHwNCj4gPiBpYXZmX2hhbmRsZV92aXJ0Y2hubF9tc2cNCj4gPiAgICAgIHwN Cj4gPg0KPiA+IFRoZSBhYm92ZSBpcyB0aGUgc3RhY2sgdHJhY2UgZm9yIHRoZSBhYm5vcm1hbCBl eGVjdXRpb24gb2YNCj4gPiBpYXZmX3F1ZXJ5X3N0YXRzIGluIHRoZSBpbnRlcnJ1cHQgdGhyZWFk Lg0KPiA+Pg0KPiA+Pj4gQ2M6IHN0YWJsZUBkcGRrLm9yZw0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1v ZmYtYnk6IEthaXdlbiBEZW5nIDxrYWl3ZW54LmRlbmdAaW50ZWwuY29tPg0KPiA+Pj4gLS0tDQo+ ID4+PiBDaGFuZ2VzIHNpbmNlIHYyOg0KPiA+Pj4gLSBBZGQgdG8gcG9sbCB0aGUgcmVzcG9uc2Ug Zm9yIFZJUlRDSE5MX09QX0dFVF9TVEFUUy4NCj4gPj4+DQo+ID4+PiBDaGFuZ2VzIHNpbmNlIHYx Og0KPiA+Pj4gLSBBZGQgbG9jayB0byBhdm9pZCByYWNlIGNvbmRpdGlvbi4NCj4gPj4+IC0tLQ0K PiA+Pj4gLS0tDQo+ID4+PiAgZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfcG1kLmMg fCAgNyArKy0NCj4gPj4+ICBkcml2ZXJzL25ldC9pYXZmL2lhdmZfZXRoZGV2LmMgICAgICAgICB8 ICA1ICstDQo+ID4+PiAgZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3ZjaG5sLmMgICAgICAgICAgfCA3 MSArKysrKysrKysrKysrKysrKystLS0tLS0tLQ0KPiA+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgNTgg aW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pDQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kX3BtZC5jDQo+ID4+PiBiL2RyaXZlcnMv bmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kX3BtZC5jDQo+ID4+PiBpbmRleCBmMGM0ZjdkMjZiLi5l ZGNlNjIxNDk2IDEwMDY0NA0KPiA+Pj4gLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRo X2JvbmRfcG1kLmMNCj4gPj4+ICsrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25k X3BtZC5jDQo+ID4+PiBAQCAtODk0LDYgKzg5NCw3IEBAIGJvbmRfZXRoZGV2X3VwZGF0ZV90bGJf c2xhdmVfY2Iodm9pZCAqYXJnKQ0KPiA+Pj4gIAl1aW50OF90IHVwZGF0ZV9zdGF0cyA9IDA7DQo+ ID4+PiAgCXVpbnQxNl90IHNsYXZlX2lkOw0KPiA+Pj4gIAl1aW50MTZfdCBpOw0KPiA+Pj4gKwlp bnQgcmV0Ow0KPiA+Pj4NCj4gPj4+ICAJaW50ZXJuYWxzLT5zbGF2ZV91cGRhdGVfaWR4Kys7DQo+ ID4+Pg0KPiA+Pj4gQEAgLTkwMyw3ICs5MDQsMTAgQEAgYm9uZF9ldGhkZXZfdXBkYXRlX3RsYl9z bGF2ZV9jYih2b2lkICphcmcpDQo+ID4+Pg0KPiA+Pj4gIAlmb3IgKGkgPSAwOyBpIDwgaW50ZXJu YWxzLT5hY3RpdmVfc2xhdmVfY291bnQ7IGkrKykgew0KPiA+Pj4gIAkJc2xhdmVfaWQgPSBpbnRl cm5hbHMtPmFjdGl2ZV9zbGF2ZXNbaV07DQo+ID4+PiAtCQlydGVfZXRoX3N0YXRzX2dldChzbGF2 ZV9pZCwgJnNsYXZlX3N0YXRzKTsNCj4gPj4+ICsJCXJldCA9IHJ0ZV9ldGhfc3RhdHNfZ2V0KHNs YXZlX2lkLCAmc2xhdmVfc3RhdHMpOw0KPiA+Pj4gKwkJaWYgKHJldCkNCj4gPj4+ICsJCQlnb3Rv IE9VVDsNCj4gPj4+ICsNCj4gPj4+ICAJCXR4X2J5dGVzID0gc2xhdmVfc3RhdHMub2J5dGVzIC0g dGxiX2xhc3Rfb2J5dGV0c1tzbGF2ZV9pZF07DQo+ID4+PiAgCQliYW5kd2lkdGhfbGVmdChzbGF2 ZV9pZCwgdHhfYnl0ZXMsDQo+ID4+PiAgCQkJCWludGVybmFscy0+c2xhdmVfdXBkYXRlX2lkeCwg JmJ3Z19hcnJheVtpXSk7DQo+ID4+IEBAIC05MjIsNiArOTI2LDcgQEANCj4gPj4+IGJvbmRfZXRo ZGV2X3VwZGF0ZV90bGJfc2xhdmVfY2Iodm9pZCAqYXJnKQ0KPiA+Pj4gIAlmb3IgKGkgPSAwOyBp IDwgc2xhdmVfY291bnQ7IGkrKykNCj4gPj4+ICAJCWludGVybmFscy0+dGxiX3NsYXZlc19vcmRl cltpXSA9IGJ3Z19hcnJheVtpXS5zbGF2ZTsNCj4gPj4+DQo+ID4+PiArT1VUOg0KPiA+Pj4gIAly dGVfZWFsX2FsYXJtX3NldChSRU9SREVSX1BFUklPRF9NUyAqIDEwMDAsDQo+ID4+IGJvbmRfZXRo ZGV2X3VwZGF0ZV90bGJfc2xhdmVfY2IsDQo+ID4+PiAgCQkJKHN0cnVjdCBib25kX2Rldl9wcml2 YXRlICopaW50ZXJuYWxzKTsgIH0gZGlmZiAtLWdpdA0KPiA+Pj4gYS9kcml2ZXJzL25ldC9pYXZm L2lhdmZfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfZXRoZGV2LmMNCj4gPj4+IGlu ZGV4IDMxOTYyMTBmMmMuLmQ2ZTFmMWE3ZjQgMTAwNjQ0DQo+ID4+PiAtLS0gYS9kcml2ZXJzL25l dC9pYXZmL2lhdmZfZXRoZGV2LmMNCj4gPj4+ICsrKyBiL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9l dGhkZXYuYw0KPiA+Pj4gQEAgLTI2MDcsNiArMjYwNyw5IEBAIGlhdmZfZGV2X2luaXQoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KPiA+Pj4gIAlhZGFwdGVyLT5kZXZfZGF0YSA9IGV0aF9k ZXYtPmRhdGE7DQo+ID4+PiAgCWFkYXB0ZXItPnN0b3BwZWQgPSAxOw0KPiA+Pj4NCj4gPj4+ICsJ aWYgKGlhdmZfZGV2X2V2ZW50X2hhbmRsZXJfaW5pdCgpKQ0KPiA+Pj4gKwkJZ290byBpbml0X3Zm X2VycjsNCj4gPj4+ICsNCj4gPj4+ICAJaWYgKGlhdmZfaW5pdF92ZihldGhfZGV2KSAhPSAwKSB7 DQo+ID4+PiAgCQlQTURfSU5JVF9MT0coRVJSLCAiSW5pdCB2ZiBmYWlsZWQiKTsNCj4gPj4+ICAJ CXJldHVybiAtMTsNCj4gPj4+IEBAIC0yNjM0LDggKzI2MzcsNiBAQCBpYXZmX2Rldl9pbml0KHN0 cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldikNCj4gPj4+ICAJcnRlX2V0aGVyX2FkZHJfY29weSgo c3RydWN0IHJ0ZV9ldGhlcl9hZGRyICopaHctPm1hYy5hZGRyLA0KPiA+Pj4gIAkJCSZldGhfZGV2 LT5kYXRhLT5tYWNfYWRkcnNbMF0pOw0KPiA+Pj4NCj4gPj4+IC0JaWYgKGlhdmZfZGV2X2V2ZW50 X2hhbmRsZXJfaW5pdCgpKQ0KPiA+Pj4gLQkJZ290byBpbml0X3ZmX2VycjsNCj4gPj4+DQo+ID4+ PiAgCWlmICh2Zi0+dmZfcmVzLT52Zl9jYXBfZmxhZ3MgJiBWSVJUQ0hOTF9WRl9PRkZMT0FEX1dC X09OX0lUUikNCj4gPj4gew0KPiA+Pj4gIAkJLyogcmVnaXN0ZXIgY2FsbGJhY2sgZnVuYyB0byBl YWwgbGliICovIGRpZmYgLS1naXQNCj4gPj4+IGEvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3ZjaG5s LmMgYi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfdmNobmwuYw0KPiA+Pj4gaW5kZXggOWFkYWFkYjE3 My4uYWVmZmIwN2NjYSAxMDA2NDQNCj4gPj4+IC0tLSBhL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl92 Y2hubC5jDQo+ID4+PiArKysgYi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfdmNobmwuYw0KPiA+Pj4g QEAgLTI1Niw2ICsyNTYsNyBAQCBpYXZmX3JlYWRfbXNnX2Zyb21fcGYoc3RydWN0IGlhdmZfYWRh cHRlcg0KPiA+PiAqYWRhcHRlciwgdWludDE2X3QgYnVmX2xlbiwNCj4gPj4+ICAJCQkJdmYtPmxp bmtfc3BlZWQgPQ0KPiA+PiBpYXZmX2NvbnZlcnRfbGlua19zcGVlZChzcGVlZCk7DQo+ID4+PiAg CQkJfQ0KPiA+Pj4gIAkJCWlhdmZfZGV2X2xpbmtfdXBkYXRlKHZmLT5ldGhfZGV2LCAwKTsNCj4g Pj4+ICsJCQlpYXZmX2Rldl9ldmVudF9wb3N0KHZmLT5ldGhfZGV2LA0KPiA+PiBSVEVfRVRIX0VW RU5UX0lOVFJfTFNDLCBOVUxMLCAwKTsNCj4gPj4+ICAJCQlQTURfRFJWX0xPRyhJTkZPLCAiTGlu ayBzdGF0dXMgdXBkYXRlOiVzIiwNCj4gPj4+ICAJCQkJCXZmLT5saW5rX3VwID8gInVwIiA6ICJk b3duIik7DQo+ID4+PiAgCQkJYnJlYWs7DQo+ID4+PiBAQCAtMzY4LDI4ICszNjksNDggQEAgaWF2 Zl9leGVjdXRlX3ZmX2NtZChzdHJ1Y3QgaWF2Zl9hZGFwdGVyDQo+ID4+ICphZGFwdGVyLCBzdHJ1 Y3QgaWF2Zl9jbWRfaW5mbyAqYXJncywNCj4gPj4+ICAJCV9jbGVhcl9jbWQodmYpOw0KPiA+Pj4g IAkJYnJlYWs7DQo+ID4+PiAgCWRlZmF1bHQ6DQo+ID4+PiAtCQkvKiBGb3Igb3RoZXIgdmlydGNo bmwgb3BzIGluIHJ1bm5pbmcgdGltZSwNCj4gPj4+IC0JCSAqIHdhaXQgZm9yIHRoZSBjbWQgZG9u ZSBmbGFnLg0KPiA+Pj4gLQkJICovDQo+ID4+PiAtCQlkbyB7DQo+ID4+PiAtCQkJaWYgKHZmLT5w ZW5kX2NtZCA9PSBWSVJUQ0hOTF9PUF9VTktOT1dOKQ0KPiA+Pj4gLQkJCQlicmVhazsNCj4gPj4+ IC0JCQlpYXZmX21zZWNfZGVsYXkoQVNRX0RFTEFZX01TKTsNCj4gPj4+IC0JCQkvKiBJZiBkb24n dCByZWFkIG1zZyBvciByZWFkIHN5cyBldmVudCwgY29udGludWUgKi8NCj4gPj4+IC0JCX0gd2hp bGUgKGkrKyA8IE1BWF9UUllfVElNRVMpOw0KPiA+Pj4gLQ0KPiA+Pj4gLQkJaWYgKGkgPj0gTUFY X1RSWV9USU1FUykgew0KPiA+Pj4gLQkJCVBNRF9EUlZfTE9HKEVSUiwgIk5vIHJlc3BvbnNlIGZv ciBjbWQgJWQiLA0KPiA+PiBhcmdzLT5vcHMpOw0KPiA+Pj4gKwkJaWYgKHJ0ZV90aHJlYWRfaXNf aW50cigpKSB7DQo+ID4+PiArCQkJLyogRm9yIHZpcnRjaG5sIG9wcyB3ZXJlIGV4ZWN1dGVkIGlu IGVhbF9pbnRyX3RocmVhZCwNCj4gPj4+ICsJCQkgKiBuZWVkIHRvIHBvbGwgdGhlIHJlc3BvbnNl Lg0KPiA+Pj4gKwkJCSAqLw0KPiA+Pj4gKwkJCWRvIHsNCj4gPj4+ICsJCQkJcmVzdWx0ID0gaWF2 Zl9yZWFkX21zZ19mcm9tX3BmKGFkYXB0ZXIsDQo+ID4+IGFyZ3MtPm91dF9zaXplLA0KPiA+Pj4g KwkJCQkJCQlhcmdzLT5vdXRfYnVmZmVyKTsNCj4gPj4+ICsJCQkJaWYgKHJlc3VsdCA9PSBJQVZG X01TR19DTUQpDQo+ID4+PiArCQkJCQlicmVhazsNCj4gPj4+ICsJCQkJaWF2Zl9tc2VjX2RlbGF5 KEFTUV9ERUxBWV9NUyk7DQo+ID4+PiArCQkJfSB3aGlsZSAoaSsrIDwgTUFYX1RSWV9USU1FUyk7 DQo+ID4+PiArCQkJaWYgKGkgPj0gTUFYX1RSWV9USU1FUyB8fA0KPiA+Pj4gKwkJCQl2Zi0+Y21k X3JldHZhbCAhPQ0KPiA+PiBWSVJUQ0hOTF9TVEFUVVNfU1VDQ0VTUykgew0KPiA+Pj4gKwkJCQll cnIgPSAtMTsNCj4gPj4+ICsJCQkJUE1EX0RSVl9MT0coRVJSLCAiTm8gcmVzcG9uc2Ugb3IgcmV0 dXJuDQo+ID4+IGZhaWx1cmUgKCVkKSINCj4gPj4+ICsJCQkJCQkiIGZvciBjbWQgJWQiLCB2Zi0N Cj4gPj4+IGNtZF9yZXR2YWwsIGFyZ3MtPm9wcyk7DQo+ID4+PiArCQkJfQ0KPiA+Pj4gIAkJCV9j bGVhcl9jbWQodmYpOw0KPiA+Pj4gLQkJCWVyciA9IC1FSU87DQo+ID4+PiAtCQl9IGVsc2UgaWYg KHZmLT5jbWRfcmV0dmFsID09DQo+ID4+PiAtCQkJICAgVklSVENITkxfU1RBVFVTX0VSUl9OT1Rf U1VQUE9SVEVEKSB7DQo+ID4+PiAtCQkJUE1EX0RSVl9MT0coRVJSLCAiQ21kICVkIG5vdCBzdXBw b3J0ZWQiLCBhcmdzLQ0KPiA+Pj4gb3BzKTsNCj4gPj4+IC0JCQllcnIgPSAtRU5PVFNVUDsNCj4g Pj4+IC0JCX0gZWxzZSBpZiAodmYtPmNtZF9yZXR2YWwgIT0gVklSVENITkxfU1RBVFVTX1NVQ0NF U1MpIHsNCj4gPj4+IC0JCQlQTURfRFJWX0xPRyhFUlIsICJSZXR1cm4gZmFpbHVyZSAlZCBmb3Ig Y21kICVkIiwNCj4gPj4+IC0JCQkJICAgIHZmLT5jbWRfcmV0dmFsLCBhcmdzLT5vcHMpOw0KPiA+ Pj4gLQkJCWVyciA9IC1FSU5WQUw7DQo+ID4+PiArCQl9IGVsc2Ugew0KPiA+Pj4gKwkJCS8qIEZv ciBvdGhlciB2aXJ0Y2hubCBvcHMgaW4gcnVubmluZyB0aW1lLA0KPiA+Pj4gKwkJCSAqIHdhaXQg Zm9yIHRoZSBjbWQgZG9uZSBmbGFnLg0KPiA+Pj4gKwkJCSAqLw0KPiA+Pj4gKwkJCWRvIHsNCj4g Pj4+ICsJCQkJaWYgKHZmLT5wZW5kX2NtZCA9PQ0KPiA+PiBWSVJUQ0hOTF9PUF9VTktOT1dOKQ0K PiA+Pj4gKwkJCQkJYnJlYWs7DQo+ID4+PiArCQkJCWlhdmZfbXNlY19kZWxheShBU1FfREVMQVlf TVMpOw0KPiA+Pj4gKwkJCQkvKiBJZiBkb24ndCByZWFkIG1zZyBvciByZWFkIHN5cyBldmVudCwN Cj4gPj4gY29udGludWUgKi8NCj4gPj4+ICsJCQl9IHdoaWxlIChpKysgPCBNQVhfVFJZX1RJTUVT KTsNCj4gPj4+ICsNCj4gPj4+ICsJCQlpZiAoaSA+PSBNQVhfVFJZX1RJTUVTKSB7DQo+ID4+PiAr CQkJCVBNRF9EUlZfTE9HKEVSUiwgIk5vIHJlc3BvbnNlIGZvcg0KPiA+PiBjbWQgJWQiLCBhcmdz LT5vcHMpOw0KPiA+Pj4gKwkJCQlfY2xlYXJfY21kKHZmKTsNCj4gPj4+ICsJCQkJZXJyID0gLUVJ TzsNCj4gPj4+ICsJCQl9IGVsc2UgaWYgKHZmLT5jbWRfcmV0dmFsID09DQo+ID4+PiArCQkJCVZJ UlRDSE5MX1NUQVRVU19FUlJfTk9UX1NVUFBPUlRFRCkgew0KPiA+Pj4gKwkJCQlQTURfRFJWX0xP RyhFUlIsICJDbWQgJWQgbm90DQo+ID4+IHN1cHBvcnRlZCIsIGFyZ3MtPm9wcyk7DQo+ID4+PiAr CQkJCWVyciA9IC1FTk9UU1VQOw0KPiA+Pj4gKwkJCX0gZWxzZSBpZiAodmYtPmNtZF9yZXR2YWwg IT0NCj4gPj4gVklSVENITkxfU1RBVFVTX1NVQ0NFU1MpIHsNCj4gPj4+ICsJCQkJUE1EX0RSVl9M T0coRVJSLCAiUmV0dXJuIGZhaWx1cmUgJWQgZm9yDQo+ID4+IGNtZCAlZCIsDQo+ID4+PiArCQkJ CQkJdmYtPmNtZF9yZXR2YWwsIGFyZ3MtPm9wcyk7DQo+ID4+PiArCQkJCWVyciA9IC1FSU5WQUw7 DQo+ID4+PiArCQkJfQ0KPiA+Pj4gIAkJfQ0KPiA+Pj4gIAkJYnJlYWs7DQo+ID4+PiAgCX0NCj4g Pj4+IEBAIC00MDMsOCArNDI0LDE0IEBAIGlhdmZfZXhlY3V0ZV92Zl9jbWRfc2FmZShzdHJ1Y3Qg aWF2Zl9hZGFwdGVyDQo+ID4+PiAqYWRhcHRlciwgIHsNCj4gPj4+ICAJc3RydWN0IGlhdmZfaW5m byAqdmYgPSBJQVZGX0RFVl9QUklWQVRFX1RPX1ZGKGFkYXB0ZXIpOw0KPiA+Pj4gIAlpbnQgcmV0 Ow0KPiA+Pj4gKwlpbnQgaXNfaW50cl90aHJlYWQgPSBydGVfdGhyZWFkX2lzX2ludHIoKTsNCj4g Pj4+DQo+ID4+PiAtCXJ0ZV9zcGlubG9ja19sb2NrKCZ2Zi0+YXFfbG9jayk7DQo+ID4+PiArCWlm IChpc19pbnRyX3RocmVhZCkgew0KPiA+Pj4gKwkJaWYgKCFydGVfc3BpbmxvY2tfdHJ5bG9jaygm dmYtPmFxX2xvY2spKQ0KPiA+Pj4gKwkJCXJldHVybiAtRUlPOw0KPiA+Pj4gKwl9IGVsc2Ugew0K PiA+Pj4gKwkJcnRlX3NwaW5sb2NrX2xvY2soJnZmLT5hcV9sb2NrKTsNCj4gPj4+ICsJfQ0KPiA+ Pj4gIAlyZXQgPSBpYXZmX2V4ZWN1dGVfdmZfY21kKGFkYXB0ZXIsIGFyZ3MsIGFzeW5jKTsNCj4g Pj4+ICAJcnRlX3NwaW5sb2NrX3VubG9jaygmdmYtPmFxX2xvY2spOw0KPiA+Pj4NCj4gPg0KDQo=