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 1476145C75; Mon, 4 Nov 2024 10:30:52 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E04BB402AF; Mon, 4 Nov 2024 10:30:51 +0100 (CET) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) by mails.dpdk.org (Postfix) with ESMTP id 766744021F for ; Mon, 4 Nov 2024 10:30:49 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1730712649; x=1762248649; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=5xZJutkJD32XcSwcgpaQGaBMdbp21keiykITArMpII0=; b=aAh+rOM5yxNokUo4TmGhPi4fvjkphTVa0jYXx9T+pJKTtBC7AT73VyTR 32UTb7eBzt2x+NXmYu8K0CDPrDs8SHXPjDzxba0O1B4vopEXj0d2VDsWK wXWR+xImIREGOIrJyM2MysDDYSIDoaChVytciEqt12++CwO1+gYOJO++o D9xNJFZmV42cIP+hO4mb5L7txDwrijn7qxsZkhcOKsy9Qi8HDgbPhUX+X D6Md15Ao3nm2+VRV5xu8qTpGMy+VQkABoBJlgk31GXp1nSMvBnTCLzW66 nh1O8ItjRkmUOfF9hhudcP0lMcDU+Xfn2MkCm4ZTT6UQcbVcIlXuAjupN Q==; X-CSE-ConnectionGUID: CGjja0ruQ56knDiQdYn2nA== X-CSE-MsgGUID: lWPdRhFrTAazie/PFAb4lA== X-IronPort-AV: E=McAfee;i="6700,10204,11222"; a="52961612" X-IronPort-AV: E=Sophos;i="6.11,199,1725346800"; d="scan'208";a="52961612" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2024 01:30:40 -0800 X-CSE-ConnectionGUID: ldifTg8MRXSijDvi3MlvDQ== X-CSE-MsgGUID: OXFJkJShQpyT1Yzfgo+TPg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,256,1725346800"; d="scan'208";a="88174689" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmviesa004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 04 Nov 2024 01:30:40 -0800 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 4 Nov 2024 01:30:39 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.39 via Frontend Transport; Mon, 4 Nov 2024 01:30:39 -0800 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.40) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Mon, 4 Nov 2024 01:30:39 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ExYdK6VS5hCLQ+oc7tL9eq730VwiEWKLw86PMIcxl+mVLTCn/NOV4O5JuddYzglWFx3oD86VRzHbEn2Ch63RmvCSQGDRFH6q0CwgK6XHJT6UBTfJnjumLwdm8wzeVGT+K1f5/n+jJJRir0psa26k0nHrn1uJMvdl6HpkDhP1bmOe2Ohe7BV4cyKIF1LJBLvW3FVdMhKx583ggsEbUgFM+5OLWzhTNDPbmFzzOWW5no68gg/cxdndzRIMLW8nDQ1dx3sEiZWm1i8jJCR3tOzWpnUunH/6ZK4pQ76rMxJyh6muO0I/+oSuURWYm8kFegZ17jq3akpFWMNhqKJdOTQN0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=5xZJutkJD32XcSwcgpaQGaBMdbp21keiykITArMpII0=; b=C/9eWYFePjLu+dDY3mIpp4GvTjKPY1psU+klx9+DVt4ExE6u6ppca9B1bbAaEkPTlQKehPs0gLTyQhb1j+Zbl7CE4QNCmvmDYt9g1Pb8dIJ6PbjbTm0zMGbecFl8a78y3UZAhuoPpxoqKvKypfinkiRrw1UVrKxkojfFRe2rbDaifPpo/DJV9Q+tyRv4K+1tInXFk7MjbX4B/fC+YaghtQ2T/f3jKlgtJpt/2GmGiUiCwaNieEuDjPa7ih1uxIJ3ptIpXmnG3ed3of7DHFTzdOJZJtReJpG/wAVsnVIjQHNpWt96WlfdTOljlfhSg2uUqF/3DT6/4M3R0zydN32l0w== 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 DM6PR11MB2873.namprd11.prod.outlook.com (2603:10b6:5:bd::13) by SA1PR11MB6688.namprd11.prod.outlook.com (2603:10b6:806:25b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Mon, 4 Nov 2024 09:30:36 +0000 Received: from DM6PR11MB2873.namprd11.prod.outlook.com ([fe80::61f3:4a41:b17e:2ab8]) by DM6PR11MB2873.namprd11.prod.outlook.com ([fe80::61f3:4a41:b17e:2ab8%5]) with mapi id 15.20.8114.015; Mon, 4 Nov 2024 09:30:36 +0000 From: "Rybalchenko, Kirill" To: "Ye, MingjinX" , "dev@dpdk.org" CC: "Su, Simei" , Wenjun Wu Subject: RE: [PATCH v7] examples/ptpclient: add frequency adjustment Thread-Topic: [PATCH v7] examples/ptpclient: add frequency adjustment Thread-Index: AQHbHt6w3HrF1/bC1EGNG/pERuJwQrKm98qQ Date: Mon, 4 Nov 2024 09:30:36 +0000 Message-ID: References: <20241011063407.1427421-4-mingjinx.ye@intel.com> <20241015082201.1554637-1-mingjinx.ye@intel.com> In-Reply-To: <20241015082201.1554637-1-mingjinx.ye@intel.com> 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: DM6PR11MB2873:EE_|SA1PR11MB6688:EE_ x-ms-office365-filtering-correlation-id: ca9f8a3f-1894-4e24-4105-08dcfcb35693 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?ZWIzd3BLVVJCM1B0SlNHL1JPZXZMM0FqUkoyS3BqeHVsdjg0TXlyVGpOa0ZQ?= =?utf-8?B?TVA0dW5pM1NXc0lCTDZXOStqYlU1U2lrN3dBZGovNkR5N2xKakRqRUFQQjlv?= =?utf-8?B?N0F3ME11bHVrUEVwRE5LQWpXUUFnOTJyQ2tTcXlOR3J6NTd6SVdvc29wY09X?= =?utf-8?B?RENsQnBwS0ZtcTJDS2xEaUxHaEJtaDdXTVNPc09SSGJpdVlVUVNVUnFDcWNn?= =?utf-8?B?U0xkYnY2dUZ5UVV0OW04Snc3TmhrTkZSMWxGZ3ptUGdJMWg1SHZhbERVRzZO?= =?utf-8?B?RWx5Nzg1RlNCbDNsK0lyN3cwUHp3c1BBTHpMUFdDWUk3eDcrcCtlWTh2V2Fi?= =?utf-8?B?QVpKeWZxZlp2VnU1QWtOZWp4dzRHWldrWGJJaW1XYThzckJoOEIxSkI5dHV3?= =?utf-8?B?WlNOVFVWdS9UZ1lOOUhadm5NUUtZcHFWd29xZ3lPajVGeGU2bk4zZHNKSjlq?= =?utf-8?B?eUdlTXZINDdBMzJOd2pQczNld1ZyQWJTZEl6NkZyMEdjWEdSdFNPZjFzSFhx?= =?utf-8?B?OEwzNU1pTXRqMjJXd09HR2d5UjYyazM3cHVDMFkrZmNFQ25mMExMKzZaYXdi?= =?utf-8?B?VDZ1UkJENHNuZnYwbXRYVkowRFI1dDZiWmc0MUVqN1R1dFQ5OXNPOXdYbTZp?= =?utf-8?B?aXFnSms3cWhnWWxwUUZPNDNMeDZLaUhaZE1wVzVVclNCY2lCbDJUTjdOUUl4?= =?utf-8?B?WFZsS2xabDg5TWRTd1R1ZFNZai93SXpHb0liS3NwVHllZ0x5SGk1SStlMmpn?= =?utf-8?B?Vi90UXlsWno2YmE1OTgxZDhBc04rUjRPd2NEVUh6UkFLR09pY0k2VXU2enoy?= =?utf-8?B?eDBkVVliOEs4T1Rqd1VYRXlZejVqZVVzVS9nZEZINVh4M2dTU29tbGxTNVJS?= =?utf-8?B?UGo5di93Q3F0WWpEODI3eVpERVVUZEhmODhOQVBDZUhRVktTT085ek1BYUhZ?= =?utf-8?B?N21qNWJkK0VGcURONlVqRktOOEpuWWhDeGtTRU50L2RXM3BONTloVG4walUy?= =?utf-8?B?ZlRFVHJsR3NadGdnd0h5VkV1MHBJZFhtUzNIejR5ZGVNSEZPenJJc0NmMUpp?= =?utf-8?B?dE9WOWQweHBYUVdrbTRud2tHM0orbStUVGgrMXNaNW1hOG4yc1FPQm9SYXhj?= =?utf-8?B?N0RxNkUrRkdCUklQYzRlTTBvTHlEa0lmUGpBU3NGNzB5ai9NaVg1b3RONHZ5?= =?utf-8?B?dXNGdmZYaStweEM0R0trL2ZxNjlOczVzZ05WSmtUVVhFaXZJTGs5Qm1vbSsx?= =?utf-8?B?MlE1MDBvVFdNOGNKU2VGVDlkRWZSNXh3OUpycDNYRUpwTm80WUxTUGw1MEV2?= =?utf-8?B?NFlRVldSZ1dWbFpLVHY2cTY0S0xjNUYvcUJwdDRWVVNXMGtnTXRmWlBXSThj?= =?utf-8?B?MHM3bnFSYjBXR2tyNkpNUjJOVnpjUkNGYk5oVWJQMklRb0hNL0F1b0RZTXZ4?= =?utf-8?B?OWFIOWVjS3h2cFhoU3VBQlZCdk9uZTR4VEZoWFpXY3AwT0tTM01TQ3ZmWUJT?= =?utf-8?B?aEdnTFUvd1VHSGhhMG5zaU04aHN4N0ZDbkdpeXlNRk1NVGpobHlDcUp1bVBV?= =?utf-8?B?YWVXK2p2K0hsNytQYUErbi9lNTdPdWZCMTlCSmY3c01YNXIwMG83bjhUNENE?= =?utf-8?B?MzJVeFYzejlDd1RNZzJUYUJ5V1pXWmN3U2s3OVF3ZktxWHNOMkJBeHZ6bWR1?= =?utf-8?B?Zy9MNU1yeExkN0RSUUJKKzNmMjdMczVDdFIvV285LzM5NGliWisrTTBIcWpS?= =?utf-8?B?ZkN6YkNTQXBSUFlqMTNLZUxPd25YanJGZ2FpTkgxeC9JazhndURZdkNiNjhs?= =?utf-8?Q?tikzFkm3qpbjatAR/N9IYfUOB60f7j0Uh4Ni4=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB2873.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YjVMUjhvYWVLUWRieGtpQXNKRmFUNS9helhvNlE0U2RTc21oREhNVDg2QjdM?= =?utf-8?B?STc1NWRDVHkwMnRIRkhEY285REU1NnhZZlNkR3h4ZnU3b1Z5ajg2dmRDYU50?= =?utf-8?B?djR6TS9jczNGVVZuTFc3QW5ndHZVZmpXckVFT09vSXJHbVVYbDRzNDd6UCtJ?= =?utf-8?B?Y0oyUVZKaEczSjI4VUlRK0lkbnVjUkdtb3RiT0MwVGtzV1ZzeWFITUJWOGxr?= =?utf-8?B?M1JnZGxzWUJpNDdzMzFPblRUL3hBQVNnUDl1VlZkbWJRNHU3UGFFZ2ZhSzcv?= =?utf-8?B?RERhT1Z3R0hSaGk3VGpoT0YxWnc0RXNjSmtFUkl3YWJYS2JmOHpENjRPNm1M?= =?utf-8?B?dTU4MWpHWVVKTnZISDNRQ205TXd1RWxQNlZiai85UVIxVmNGenJZUFhmd2xI?= =?utf-8?B?M2lSWjRLbVFnSFZleGRrbU52Z1VubkpVa0Yrd2lHTUp1RkFGell1TnVvd3Rh?= =?utf-8?B?YzY2Z2o4SkNneWhGQnJKd1lHcGhJSXhCbEJzODllNlBOeWwrRjNzUzNDdzJw?= =?utf-8?B?QWE5aTdyQjhXcjFKV2syNC8xOFRUSzRKUjduWVk5V0c5d3Qyeng4TnRwT2dS?= =?utf-8?B?UTZBVmpKZDFRTSs1cEp1R3hZc25md1dnUEFCaUVkVG5CQWVib2hxVUtQRHVN?= =?utf-8?B?SnVxc2lMQm9qeFo1OWcrSGxYNW1vMk1TZTR0eGNCdmt0cmhDcmUrZ2N5dWxr?= =?utf-8?B?TDlCWWVtVzBhTHN0R2k2S1pDUEdJek1pVGVzVUM1MkxpNjVmeGkyN3lSeUE0?= =?utf-8?B?WjRKOXYwVjFDVk1FRTQ4UkVJaWNsT3BiVHNjQU95U1NvWlNacHdKUW8ramlW?= =?utf-8?B?ZGl5YklDelVXWG1pU0NGQy96L2Z1M0NRbTRESVY2S3ZHQjdjamk2eUVUbDBY?= =?utf-8?B?SE9GU0ZwSlJXVCtySVZQUDJtVG5SbDVuc1JlZDRKQUVUaTVSakNtYm45enhk?= =?utf-8?B?RGtRbWtPU1BsUlNwWis4dUdpQk9QVDc1cm40ejdTaURtS25PM3dsYXpZZ0RI?= =?utf-8?B?aG5BMHo1RHp4WjVVOHZ0RGxvQk5NZDdFd0E0THlabjUyYm5jeHZqWVp1WDVN?= =?utf-8?B?allteWpTQkhiakNBNStiMG1VVGJDNFNqQVBrS0JIcFB0aFN6L0pUNWgzZlor?= =?utf-8?B?aWRWZitCeGhjVmxPL0JxZ3hjeTh0OVZpYmE4a0IwWlJpTXdyak90K3ZFTDY5?= =?utf-8?B?WUgrMWU1OFNmbkxiT2xTV2RvL1EyZHEvYmhZazlyUFZ1TS9YSjUrQU9sTDNo?= =?utf-8?B?aFBCRUEvNzMwMWxuSWg5SWh5Qnh1cktIM2ZqWWlidGFveW1adGFVUUhZQTAx?= =?utf-8?B?VkFacWhZV1hzTjNEbWlJbHZmZ3QvSGhHS3phc2hrTUo1a0JpTWhmYlhKSWNE?= =?utf-8?B?ckRIcUJTL1NZRjlkSUxUSzFmNzVPL1VpVkh2SFRJVVVlMHFhaVk2U3ByRTI4?= =?utf-8?B?YmhVRHExTHlOclYwMkZmeXJSc3h3dWtXb0tQOFJPek1Cc2pmSDhjRW05TTAy?= =?utf-8?B?M2pjNVR6bWs5OWI5MkhWRVZsckdyRUxmdU0zMGU2emRIMGx4S3NhSnBWMmUy?= =?utf-8?B?TGdoTngxZlhjVUJnMGUyZ3A2aVEyRE5NT0x4SkZLN1I3S0k5ZnlEUzNteHUz?= =?utf-8?B?VDR2REJWK3hXSHVELytpM0c5YlBsK2crMmc0Y3gybHpLNnVZU0JWT0ovSkRt?= =?utf-8?B?VmtYcmhtaFJRMDFEWHVhRjI0cFZERVNLaG5aOG5VbW52bldBa1htR0xJM2hS?= =?utf-8?B?OXp1ZFVSL05xWGphMEdIcExIOEcrakpqc1d1ZWptWjRMREEwTjRJdzJ5dzYw?= =?utf-8?B?RXNxNmpOUnFwRGRnNndBeXFtWnBYZUo1SEoyQnRvdWgwWVAzRFBJQUEva3lz?= =?utf-8?B?L2U0SXBqNk41blM3WmIxMFNzTnY0WG8rczU5SG8rOXovVUJJaGpjeFZZaXgz?= =?utf-8?B?OXhaNFAvQnp2VnNpV2V2RHZCWnNCTUcveGh0NFNENVZJWXZpc2N3Um9EaVh5?= =?utf-8?B?b3FFMXJYL2pTMmxzclgyQkdBUStRRitKT0pFOUNFS2wwTElVQmp0aWFpNVZv?= =?utf-8?B?TjlLNUFNa283M1BJbFcxb2NBYnhxaTFjT2VNeWZ0RzdJeDlRQ1N3KzdYWWdB?= =?utf-8?B?aHB6cnh1K1dtL2FaTXJPbDBiN2lyVnlJN2VweExXY1pMaFY4dmRQUVVETENK?= =?utf-8?B?elE9PQ==?= 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: DM6PR11MB2873.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca9f8a3f-1894-4e24-4105-08dcfcb35693 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2024 09:30:36.1475 (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: 7xnZEl7fNcsELI0G+bKn9Gblszk9aZ9fufAMEoKwBGbLlEEAEtFvnVAPjOXClJjkWswfj9G2KtPAAgnIugQWYyfhPMiyoX7x1C0t42E2nig= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB6688 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWWUsIE1pbmdqaW5YIDxt aW5namlueC55ZUBpbnRlbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXkgMTUgT2N0b2JlciAyMDI0IDA5 OjIyDQo+IFRvOiBkZXZAZHBkay5vcmcNCj4gQ2M6IFllLCBNaW5namluWCA8bWluZ2ppbngueWVA aW50ZWwuY29tPjsgU3UsIFNpbWVpIDxzaW1laS5zdUBpbnRlbC5jb20+Ow0KPiBXZW5qdW4gV3Ug PHdlbmp1bjEud3VAaW50ZWwuY29tPjsgUnliYWxjaGVua28sIEtpcmlsbA0KPiA8a2lyaWxsLnJ5 YmFsY2hlbmtvQGludGVsLmNvbT4NCj4gU3ViamVjdDogW1BBVENIIHY3XSBleGFtcGxlcy9wdHBj bGllbnQ6IGFkZCBmcmVxdWVuY3kgYWRqdXN0bWVudA0KPiANCj4gVGhpcyBwYXRjaCBhZGRzIFBJ IHNlcnZvIGNvbnRyb2xsZXIgdG8gc3VwcG9ydCBmcmVxdWVuY3kNCj4gYWRqdXN0bWVudCBBUEkg Zm9yIElFRUUxNTg4IFBUUC4NCj4gDQo+IEZvciBleGFtcGxlLCB0aGUgY29tbWFuZCBmb3Igc3Rh cnRpbmcgcHRwY2xpZW50IHdpdGggUEkgY29udHJvbGxlciBpczoNCj4gZHBkay1wdHBjbGllbnQg LWEgMDAwMDo4MTowMC4wIC1jIDEgLW4gMyAtLSAtVCAwIC1wIDB4MSAtYyAxDQo+IA0KPiBTaWdu ZWQtb2ZmLWJ5OiBTaW1laSBTdSA8c2ltZWkuc3VAaW50ZWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5 OiBXZW5qdW4gV3UgPHdlbmp1bjEud3VAaW50ZWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBNaW5n amluIFllIDxtaW5namlueC55ZUBpbnRlbC5jb20+DQpBY2tlZC1ieTogS2lyaWxsIFJ5YmFsY2hl bmtvIDxraXJpbGwucnliYWxjaGVua29AaW50ZWwuY29tPg0KDQo+IC0tLQ0KPiB2MjogQWRkIGRv Yy4NCj4gLS0tDQo+IHYzOiBFbmFibGUgVGhlIHNlcnZvIGNvbnRyb2xsZXIgbmVlZHMgdG8gc3Vw cG9ydCBmcmVxdWVuY3kgYWRqdXN0bWVudC4NCj4gLS0tDQo+IHYyOiBFbmFibGUgc2Vydm8gY29u dHJvbGxlciwgUE1EIG11c3QNCj4gCQkJCXN1cHBvcnQg4oCYcnRlX2V0aF90aW1lc3luY19hZGp1 c3RfZnJlcSgp4oCZDQo+IEFQSS4NCj4gLS0tDQo+ICBkb2MvZ3VpZGVzL3NhbXBsZV9hcHBfdWcv cHRwY2xpZW50LnJzdCB8ICAxNSArLQ0KPiAgZXhhbXBsZXMvcHRwY2xpZW50L3B0cGNsaWVudC5j ICAgICAgICAgfCAyOTcgKysrKysrKysrKysrKysrKysrKysrKystLQ0KPiAgMiBmaWxlcyBjaGFu Z2VkLCAyODkgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0 IGEvZG9jL2d1aWRlcy9zYW1wbGVfYXBwX3VnL3B0cGNsaWVudC5yc3QNCj4gYi9kb2MvZ3VpZGVz L3NhbXBsZV9hcHBfdWcvcHRwY2xpZW50LnJzdA0KPiBpbmRleCBkNDdlOTQyNzM4Li4wMTRkNWY0 NzdjIDEwMDY0NA0KPiAtLS0gYS9kb2MvZ3VpZGVzL3NhbXBsZV9hcHBfdWcvcHRwY2xpZW50LnJz dA0KPiArKysgYi9kb2MvZ3VpZGVzL3NhbXBsZV9hcHBfdWcvcHRwY2xpZW50LnJzdA0KPiBAQCAt NTAsNiArNTAsMTAgQEAgVGhlIGFkanVzdG1lbnQgZm9yIHNsYXZlIGNhbiBiZSByZXByZXNlbnRl ZCBhczoNCj4gIElmIHRoZSBjb21tYW5kIGxpbmUgcGFyYW1ldGVyIGBgLVQgMWBgIGlzIHVzZWQg dGhlIGFwcGxpY2F0aW9uIGFsc28NCj4gIHN5bmNocm9uaXplcyB0aGUgUFRQIFBIQyBjbG9jayB3 aXRoIHRoZSBMaW51eCBrZXJuZWwgY2xvY2suDQo+IA0KPiArSWYgdGhlIGNvbW1hbmQgbGluZSBw YXJhbWV0ZXIgYGAtYyAxYGAgaXMgdXNlZCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgYWxzbw0KPiAr dXNlIHRoZSBzZXJ2byBvZiB0aGUgbG9jYWwgY2xvY2suIE9ubHkgb25lIHR5cGUgb2Ygc2Vydm8g aXMgY3VycmVudGx5DQo+ICtpbXBsZW1lbnRlZCwgdGhlIFBJIGNvbnRyb2xsZXIuIERlZmF1bHQg MCAobm90IHVzZWQpLg0KPiArDQo+ICBDb21waWxpbmcgdGhlIEFwcGxpY2F0aW9uDQo+ICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IA0KPiBAQCAtNjUsNyArNjksNyBAQCBUbyBydW4gdGhl IGV4YW1wbGUgaW4gYSBgYGxpbnV4YGAgZW52aXJvbm1lbnQ6DQo+IA0KPiAgLi4gY29kZS1ibG9j azo6IGNvbnNvbGUNCj4gDQo+IC0gICAgLi88YnVpbGRfZGlyPi9leGFtcGxlcy9kcGRrLXB0cGNs aWVudCAtbCAxIC1uIDQgLS0gLXAgMHgxIC1UIDANCj4gKyAgICAuLzxidWlsZF9kaXI+L2V4YW1w bGVzL2RwZGstcHRwY2xpZW50IC1sIDEgLW4gNCAtLSAtcCAweDEgLVQgMCAtYyAxDQo+IA0KPiAg UmVmZXIgdG8gKkRQREsgR2V0dGluZyBTdGFydGVkIEd1aWRlKiBmb3IgZ2VuZXJhbCBpbmZvcm1h dGlvbiBvbiBydW5uaW5nDQo+ICBhcHBsaWNhdGlvbnMgYW5kIHRoZSBFbnZpcm9ubWVudCBBYnN0 cmFjdGlvbiBMYXllciAoRUFMKSBvcHRpb25zLg0KPiBAQCAtNzMsNyArNzcsMTQgQEAgYXBwbGlj YXRpb25zIGFuZCB0aGUgRW52aXJvbm1lbnQgQWJzdHJhY3Rpb24gTGF5ZXINCj4gKEVBTCkgb3B0 aW9ucy4NCj4gICogYGAtcCBwb3J0bWFza2BgOiBIZXhhZGVjaW1hbCBwb3J0bWFzay4NCj4gICog YGAtVCAwYGA6IFVwZGF0ZSBvbmx5IHRoZSBQVFAgc2xhdmUgY2xvY2suDQo+ICAqIGBgLVQgMWBg OiBVcGRhdGUgdGhlIFBUUCBzbGF2ZSBjbG9jayBhbmQgc3luY2hyb25pemUgdGhlIExpbnV4IEtl cm5lbCB0byB0aGUNCj4gUFRQIGNsb2NrLg0KPiAtDQo+ICsqIGBgLWMgMGBgOiBOb3QgdXNlZCBj bG9jayBzZXJ2byBjb250cm9sbGVyLg0KPiArKiBgYC1jIDFgYDogVGhlIGNsb2NrIHNlcnZvIFBJ IGNvbnRyb2xsZXIgaXMgdXNlZCBhbmQgdGhlIGxvZyB3aWxsIHByaW50DQo+IGluZm9ybWF0aW9u DQo+ICsgICAgICAgICAgICBhYm91dCAibWFzdGVyIG9mZnNldCIuIE5vdGUgdGhhdCB0aGUgUE1E IG5lZWRzIHRvIHN1cHBvcnQNCj4gKyAgICAgICAgICAgIHRoZSBgYHJ0ZV9ldGhfdGltZXN5bmNf YWRqdXN0X2ZyZXEoKWBgIEFQSSB0byBlbmFibGUgdGhlIHNlcnZvDQo+IGNvbnRyb2xsZXIuDQo+ ICsNCj4gK0Fsc28sIGJ5IGFkZGluZyBgYC1UIDFgYCBhbmQgYGAtYyAxYGAgLCB0aGUgYGBtYXN0 ZXIgb2Zmc2V0YGAgdmFsdWUgcHJpbnRlZCBpbiB0aGUNCj4gK2xvZyB3aWxsIHNsb3dseSBjb252 ZXJnZSBhbmQgZXZlbnR1YWxseSBzdGFiaWxpc2UgYXQgdGhlIG5hbm9zZWNvbmQgbGV2ZWwuIFRo ZQ0KPiArc3luY2hyb25pc2F0aW9uIGFjY3VyYWN5IGlzIG11Y2ggaGlnaGVyIGNvbXBhcmVkIHRv IG5vdCB1c2luZyBhIHNlcnZvDQo+IGNvbnRyb2xsZXIuDQo+IA0KPiAgQ29kZSBFeHBsYW5hdGlv bg0KPiAgLS0tLS0tLS0tLS0tLS0tLQ0KPiBkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvcHRwY2xpZW50 L3B0cGNsaWVudC5jIGIvZXhhbXBsZXMvcHRwY2xpZW50L3B0cGNsaWVudC5jDQo+IGluZGV4IGFm YjYxYmJhNTEuLmU4ZjZmOTVmMTggMTAwNjQ0DQo+IC0tLSBhL2V4YW1wbGVzL3B0cGNsaWVudC9w dHBjbGllbnQuYw0KPiArKysgYi9leGFtcGxlcy9wdHBjbGllbnQvcHRwY2xpZW50LmMNCj4gQEAg LTQ2LDYgKzQ2LDM1IEBAIHN0YXRpYyB2b2xhdGlsZSBib29sIGZvcmNlX3F1aXQ7DQo+ICAjZGVm aW5lIEtFUk5FTF9USU1FX0FESlVTVF9MSU1JVCAgMjAwMDANCj4gICNkZWZpbmUgUFRQX1BST1RP Q09MICAgICAgICAgICAgIDB4ODhGNw0KPiANCj4gKyNkZWZpbmUgS1AgMC43DQo+ICsjZGVmaW5l IEtJIDAuMw0KPiArI2RlZmluZSBGUkVRX0VTVF9NQVJHSU4gMC4wMDENCj4gKw0KPiArZW51bSBz ZXJ2b19zdGF0ZSB7DQo+ICsJU0VSVk9fVU5MT0NLRUQsDQo+ICsJU0VSVk9fSlVNUCwNCj4gKwlT RVJWT19MT0NLRUQsDQo+ICt9Ow0KPiArDQo+ICtzdHJ1Y3QgcGlfc2Vydm8gew0KPiArCWRvdWJs ZSBvZmZzZXRbMl07DQo+ICsJZG91YmxlIGxvY2FsWzJdOw0KPiArCWRvdWJsZSBkcmlmdDsNCj4g Kwlkb3VibGUgbGFzdF9mcmVxOw0KPiArCWludCBjb3VudDsNCj4gKw0KPiArCWRvdWJsZSBtYXhf ZnJlcXVlbmN5Ow0KPiArCWRvdWJsZSBzdGVwX3RocmVzaG9sZDsNCj4gKwlkb3VibGUgZmlyc3Rf c3RlcF90aHJlc2hvbGQ7DQo+ICsJaW50IGZpcnN0X3VwZGF0ZTsNCj4gK307DQo+ICsNCj4gK2Vu dW0gY29udHJvbGxlcl9tb2RlIHsNCj4gKwlNT0RFX05PTkUsDQo+ICsJTU9ERV9QSSwNCj4gKwlN QVhfQUxMDQo+ICt9IG1vZGUgPSBNT0RFX05PTkU7DQo+ICsNCj4gIHN0cnVjdCBydGVfbWVtcG9v bCAqbWJ1Zl9wb29sOw0KPiAgdWludDMyX3QgcHRwX2VuYWJsZWRfcG9ydF9tYXNrOw0KPiAgdWlu dDhfdCBwdHBfZW5hYmxlZF9wb3J0X25iOw0KPiBAQCAtMTM1LDYgKzE2NCw5IEBAIHN0cnVjdCBw dHB2Ml9kYXRhX3NsYXZlX29yZGluYXJ5IHsNCj4gIAl1aW50OF90IHB0cHNldDsNCj4gIAl1aW50 OF90IGtlcm5lbF90aW1lX3NldDsNCj4gIAl1aW50MTZfdCBjdXJyZW50X3B0cF9wb3J0Ow0KPiAr CWludDY0X3QgbWFzdGVyX29mZnNldDsNCj4gKwlpbnQ2NF90IHBhdGhfZGVsYXk7DQo+ICsJc3Ry dWN0IHBpX3NlcnZvICpzZXJ2bzsNCj4gIH07DQo+IA0KPiAgc3RhdGljIHN0cnVjdCBwdHB2Ml9k YXRhX3NsYXZlX29yZGluYXJ5IHB0cF9kYXRhOw0KPiBAQCAtMjYyLDYgKzI5NCwxOSBAQCBwb3J0 X2luaXQodWludDE2X3QgcG9ydCwgc3RydWN0IHJ0ZV9tZW1wb29sDQo+ICptYnVmX3Bvb2wpDQo+ ICAJCXJldHVybiByZXR2YWw7DQo+ICAJfQ0KPiANCj4gKwkvKg0KPiArCSAqIElmIHRoZSBjbG9j ayBzZXJ2byBjb250cm9sbGVyIGlzIGVuYWJsZWQsIHRoZSBQTUQgbXVzdCBzdXBwb3J0DQo+ICsJ ICogYWRqdXN0bWVudCBvZiB0aGUgY2xvY2sgZnJlcXVlbmN5Lg0KPiArCSAqLw0KPiArCWlmICht b2RlICE9IE1PREVfTk9ORSkgew0KPiArCQlyZXR2YWwgPSBydGVfZXRoX3RpbWVzeW5jX2FkanVz dF9mcmVxKHBvcnQsIDApOw0KPiArCQlpZiAocmV0dmFsID09IC1FTk9UU1VQKSB7DQo+ICsJCQlw cmludGYoIlRoZSBzZXJ2byBjb250cm9sbGVyIGNhbm5vdCB3b3JrIG9uIGRldmljZXMNCj4gdGhh dCINCj4gKwkJCQkJIiBkbyBub3Qgc3VwcG9ydCBmcmVxdWVuY3kNCj4gYWRqdXN0bWVudC5cbiIp Ow0KPiArCQkJcmV0dXJuIHJldHZhbDsNCj4gKwkJfQ0KPiArCX0NCj4gKw0KPiAgCXJldHVybiAw Ow0KPiAgfQ0KPiANCj4gQEAgLTI5MywzNiArMzM4LDQ0IEBAIHByaW50X2Nsb2NrX2luZm8oc3Ry dWN0IHB0cHYyX2RhdGFfc2xhdmVfb3JkaW5hcnkNCj4gKnB0cF9kYXRhKQ0KPiAgCQkJcHRwX2Rh dGEtPnRzdGFtcDMudHZfc2VjLA0KPiAgCQkJKHB0cF9kYXRhLT50c3RhbXAzLnR2X25zZWMpKTsN Cj4gDQo+IC0JcHJpbnRmKCJcblQ0IC0gTWFzdGVyIENsb2NrLiAgJWxkcyAlbGRucyAiLA0KPiAr CXByaW50ZigiXG5UNCAtIE1hc3RlciBDbG9jay4gICVsZHMgJWxkbnNcbiIsDQo+ICAJCQlwdHBf ZGF0YS0+dHN0YW1wNC50dl9zZWMsDQo+ICAJCQkocHRwX2RhdGEtPnRzdGFtcDQudHZfbnNlYykp Ow0KPiANCj4gLQlwcmludGYoIlxuRGVsdGEgYmV0d2VlbiBtYXN0ZXIgYW5kIHNsYXZlIGNsb2Nr czolIlBSSWQ2NCJuc1xuIiwNCj4gKwlpZiAobW9kZSA9PSBNT0RFX05PTkUpIHsNCj4gKwkJcHJp bnRmKCJcbkRlbHRhIGJldHdlZW4gbWFzdGVyIGFuZCBzbGF2ZQ0KPiBjbG9ja3M6JSJQUklkNjQi bnNcbiIsDQo+ICAJCQlwdHBfZGF0YS0+ZGVsdGEpOw0KPiANCj4gLQljbG9ja19nZXR0aW1lKENM T0NLX1JFQUxUSU1FLCAmc3lzX3RpbWUpOw0KPiAtCXJ0ZV9ldGhfdGltZXN5bmNfcmVhZF90aW1l KHB0cF9kYXRhLT5jdXJyZW50X3B0cF9wb3J0LA0KPiAmbmV0X3RpbWUpOw0KPiArCQljbG9ja19n ZXR0aW1lKENMT0NLX1JFQUxUSU1FLCAmc3lzX3RpbWUpOw0KPiArCQlydGVfZXRoX3RpbWVzeW5j X3JlYWRfdGltZShwdHBfZGF0YS0+Y3VycmVudF9wdHBfcG9ydCwNCj4gKwkJCQkJICAgJm5ldF90 aW1lKTsNCj4gDQo+IC0JdGltZV90IHRzID0gbmV0X3RpbWUudHZfc2VjOw0KPiArCQl0aW1lX3Qg dHMgPSBuZXRfdGltZS50dl9zZWM7DQo+IA0KPiAtCXByaW50ZigiXG5cbkNvbXBhcmlzb24gYmV0 d2VlbiBMaW51eCBrZXJuZWwgVGltZSBhbmQgUFRQOiIpOw0KPiArCQlwcmludGYoIlxuXG5Db21w YXJpc29uIGJldHdlZW4gTGludXgga2VybmVsIFRpbWUgYW5kDQo+IFBUUDoiKTsNCj4gDQo+IC0J cHJpbnRmKCJcbkN1cnJlbnQgUFRQIFRpbWU6ICUuMjRzICUuOWxkIG5zIiwNCj4gKwkJcHJpbnRm KCJcbkN1cnJlbnQgUFRQIFRpbWU6ICUuMjRzICUuOWxkIG5zIiwNCj4gIAkJCWN0aW1lKCZ0cyks IG5ldF90aW1lLnR2X25zZWMpOw0KPiANCj4gLQluc2VjID0gKGludDY0X3QpdGltZXNwZWM2NF90 b19ucygmbmV0X3RpbWUpIC0NCj4gKwkJbnNlYyA9IChpbnQ2NF90KXRpbWVzcGVjNjRfdG9fbnMo Jm5ldF90aW1lKSAtDQo+ICAJCQkoaW50NjRfdCl0aW1lc3BlYzY0X3RvX25zKCZzeXNfdGltZSk7 DQo+IC0JcHRwX2RhdGEtPm5ld19hZGogPSBuc190b190aW1ldmFsKG5zZWMpOw0KPiArCQlwdHBf ZGF0YS0+bmV3X2FkaiA9IG5zX3RvX3RpbWV2YWwobnNlYyk7DQo+IA0KPiAtCWdldHRpbWVvZmRh eSgmcHRwX2RhdGEtPm5ld19hZGosIE5VTEwpOw0KPiArCQlnZXR0aW1lb2ZkYXkoJnB0cF9kYXRh LT5uZXdfYWRqLCBOVUxMKTsNCj4gDQo+IC0JdGltZV90IHRwID0gcHRwX2RhdGEtPm5ld19hZGou dHZfc2VjOw0KPiArCQl0aW1lX3QgdHAgPSBwdHBfZGF0YS0+bmV3X2Fkai50dl9zZWM7DQo+IA0K PiAtCXByaW50ZigiXG5DdXJyZW50IFNZUyBUaW1lOiAlLjI0cyAlLjZsZCBucyIsDQo+IC0JCQkJ Y3RpbWUoJnRwKSwgcHRwX2RhdGEtPm5ld19hZGoudHZfdXNlYyk7DQo+ICsJCXByaW50ZigiXG5D dXJyZW50IFNZUyBUaW1lOiAlLjI0cyAlLjZsZCBucyIsDQo+ICsJCQljdGltZSgmdHApLCBwdHBf ZGF0YS0+bmV3X2Fkai50dl91c2VjKTsNCj4gDQo+IC0JcHJpbnRmKCJcbkRlbHRhIGJldHdlZW4g UFRQIGFuZCBMaW51eCBLZXJuZWwgdGltZTolIlBSSWQ2NCJuc1xuIiwNCj4gLQkJCQluc2VjKTsN Cj4gKwkJcHJpbnRmKCJcbkRlbHRhIGJldHdlZW4gUFRQIGFuZCBMaW51eCBLZXJuZWwNCj4gdGlt ZTolIlBSSWQ2NCJuc1xuIiwNCj4gKwkJCW5zZWMpOw0KPiArCX0NCj4gKw0KPiArCWlmIChtb2Rl ID09IE1PREVfUEkpIHsNCj4gKwkJcHJpbnRmKCJwYXRoIGRlbGF5OiAlIlBSSWQ2NCJuc1xuIiwg cHRwX2RhdGEtPnBhdGhfZGVsYXkpOw0KPiArCQlwcmludGYoIm1hc3RlciBvZmZzZXQ6ICUiUFJJ ZDY0Im5zXG4iLCBwdHBfZGF0YS0NCj4gPm1hc3Rlcl9vZmZzZXQpOw0KPiArCX0NCj4gDQo+ICAJ cHJpbnRmKCJbQ3RybCtDIHRvIHF1aXRdXG4iKTsNCj4gDQo+IEBAIC01MjksNiArNTgyLDE0OSBA QCB1cGRhdGVfa2VybmVsX3RpbWUodm9pZCkNCj4gDQo+ICB9DQo+IA0KPiArc3RhdGljIHZvaWQN Cj4gK2Nsb2NrX3BhdGhfZGVsYXkoc3RydWN0IHB0cHYyX2RhdGFfc2xhdmVfb3JkaW5hcnkgKnB0 cF9kYXRhKQ0KPiArew0KPiArCXVpbnQ2NF90IHQxX25zLCB0Ml9ucywgdDNfbnMsIHQ0X25zOw0K PiArCWludDY0X3QgcGQsIGRpZmY7DQo+ICsNCj4gKwl0MV9ucyA9IHRpbWVzcGVjNjRfdG9fbnMo JnB0cF9kYXRhLT50c3RhbXAxKTsNCj4gKwl0Ml9ucyA9IHRpbWVzcGVjNjRfdG9fbnMoJnB0cF9k YXRhLT50c3RhbXAyKTsNCj4gKwl0M19ucyA9IHRpbWVzcGVjNjRfdG9fbnMoJnB0cF9kYXRhLT50 c3RhbXAzKTsNCj4gKwl0NF9ucyA9IHRpbWVzcGVjNjRfdG9fbnMoJnB0cF9kYXRhLT50c3RhbXA0 KTsNCj4gKw0KPiArCXBkID0gKHQyX25zIC0gdDNfbnMpICsgKHQ0X25zIC0gdDFfbnMpOw0KPiAr CWRpZmYgPSB0M19ucyAtIHQyX25zOw0KPiArCWlmIChkaWZmIDw9IElOVDMyX01BWCAmJiBkaWZm ID49IElOVDMyX01JTikNCj4gKwkJcHRwX2RhdGEtPnBhdGhfZGVsYXkgPSBwZCAvIDI7DQo+ICsJ ZWxzZQ0KPiArCQlwdHBfZGF0YS0+cGF0aF9kZWxheSA9IDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyBkb3VibGUNCj4gK3BpX3NhbXBsZShzdHJ1Y3QgcGlfc2Vydm8gKnMsIGludDY0X3Qgb2Zmc2V0 LCBkb3VibGUgbG9jYWxfdHMsDQo+ICsJICBlbnVtIHNlcnZvX3N0YXRlICpzdGF0ZSkNCj4gK3sN Cj4gKwlkb3VibGUga2lfdGVybSwgcHBiID0gcy0+bGFzdF9mcmVxOw0KPiArCWRvdWJsZSBmcmVx X2VzdF9pbnRlcnZhbCwgbG9jYWxkaWZmOw0KPiArDQo+ICsJc3dpdGNoIChzLT5jb3VudCkgew0K PiArCWNhc2UgMDoNCj4gKwkJcy0+b2Zmc2V0WzBdID0gb2Zmc2V0Ow0KPiArCQlzLT5sb2NhbFsw XSA9IGxvY2FsX3RzOw0KPiArCQkqc3RhdGUgPSBTRVJWT19VTkxPQ0tFRDsNCj4gKwkJcy0+Y291 bnQgPSAxOw0KPiArCQlicmVhazsNCj4gKwljYXNlIDE6DQo+ICsJCXMtPm9mZnNldFsxXSA9IG9m ZnNldDsNCj4gKwkJcy0+bG9jYWxbMV0gPSBsb2NhbF90czsNCj4gKw0KPiArCQkvKiBNYWtlIHN1 cmUgdGhlIGZpcnN0IHNhbXBsZSBpcyBvbGRlciB0aGFuIHRoZSBzZWNvbmQuICovDQo+ICsJCWlm IChzLT5sb2NhbFswXSA+PSBzLT5sb2NhbFsxXSkgew0KPiArCQkJKnN0YXRlID0gU0VSVk9fVU5M T0NLRUQ7DQo+ICsJCQlzLT5jb3VudCA9IDA7DQo+ICsJCQlicmVhazsNCj4gKwkJfQ0KPiArDQo+ ICsJCS8qIFdhaXQgbG9uZyBlbm91Z2ggYmVmb3JlIGVzdGltYXRpbmcgdGhlIGZyZXF1ZW5jeSBv ZmZzZXQuDQo+ICovDQo+ICsJCWxvY2FsZGlmZiA9IChzLT5sb2NhbFsxXSAtIHMtPmxvY2FsWzBd KSAvIDFlOTsNCj4gKwkJbG9jYWxkaWZmICs9IGxvY2FsZGlmZiAqIEZSRVFfRVNUX01BUkdJTjsN Cj4gKwkJZnJlcV9lc3RfaW50ZXJ2YWwgPSAwLjAxNiAvIEtJOw0KPiArCQlpZiAoZnJlcV9lc3Rf aW50ZXJ2YWwgPiAxMDAwLjApDQo+ICsJCQlmcmVxX2VzdF9pbnRlcnZhbCA9IDEwMDAuMDsNCj4g Kw0KPiArCQlpZiAobG9jYWxkaWZmIDwgZnJlcV9lc3RfaW50ZXJ2YWwpIHsNCj4gKwkJCSpzdGF0 ZSA9IFNFUlZPX1VOTE9DS0VEOw0KPiArCQkJYnJlYWs7DQo+ICsJCX0NCj4gKw0KPiArCQkvKiBB ZGp1c3QgZHJpZnQgYnkgdGhlIG1lYXN1cmVkIGZyZXF1ZW5jeSBvZmZzZXQuICovDQo+ICsJCXMt PmRyaWZ0ICs9ICgxZTkgLSBzLT5kcmlmdCkgKiAocy0+b2Zmc2V0WzFdIC0gcy0+b2Zmc2V0WzBd KSAvDQo+ICsJCQkJCQkocy0+bG9jYWxbMV0gLSBzLT5sb2NhbFswXSk7DQo+ICsNCj4gKwkJaWYg KHMtPmRyaWZ0IDwgLXMtPm1heF9mcmVxdWVuY3kpDQo+ICsJCQlzLT5kcmlmdCA9IC1zLT5tYXhf ZnJlcXVlbmN5Ow0KPiArCQllbHNlIGlmIChzLT5kcmlmdCA+IHMtPm1heF9mcmVxdWVuY3kpDQo+ ICsJCQlzLT5kcmlmdCA9IHMtPm1heF9mcmVxdWVuY3k7DQo+ICsNCj4gKwkJaWYgKChzLT5maXJz dF91cGRhdGUgJiYNCj4gKwkJICAgICBzLT5maXJzdF9zdGVwX3RocmVzaG9sZCAmJg0KPiArCQkg ICAgIHMtPmZpcnN0X3N0ZXBfdGhyZXNob2xkIDwgbGxhYnMob2Zmc2V0KSkgfHwNCj4gKwkJICAg IChzLT5zdGVwX3RocmVzaG9sZCAmJg0KPiArCQkgICAgIHMtPnN0ZXBfdGhyZXNob2xkIDwgbGxh YnMob2Zmc2V0KSkpDQo+ICsJCQkqc3RhdGUgPSBTRVJWT19KVU1QOw0KPiArCQllbHNlDQo+ICsJ CQkqc3RhdGUgPSBTRVJWT19MT0NLRUQ7DQo+ICsNCj4gKwkJcHBiID0gcy0+ZHJpZnQ7DQo+ICsJ CXMtPmNvdW50ID0gMjsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSAyOg0KPiArCQkvKg0KPiArCQkg KiByZXNldCB0aGUgY2xvY2sgc2Vydm8gd2hlbiBvZmZzZXQgaXMgZ3JlYXRlciB0aGFuIHRoZSBt YXgNCj4gKwkJICogb2Zmc2V0IHZhbHVlLiBOb3RlIHRoYXQgdGhlIGNsb2NrIGp1bXAgd2lsbCBi ZSBwZXJmb3JtZWQgaW4NCj4gKwkJICogc3RlcCAxLCBzbyBpdCBpcyBub3QgbmVjZXNzYXJ5IHRv IGhhdmUgY2xvY2sganVtcA0KPiArCQkgKiBpbW1lZGlhdGVseS4gVGhpcyBhbGxvd3MgcmUtY2Fs Y3VsYXRpbmcgZHJpZnQgYXMgaW4gaW5pdGlhbA0KPiArCQkgKiBjbG9jayBzdGFydHVwLg0KPiAr CQkgKi8NCj4gKwkJaWYgKHMtPnN0ZXBfdGhyZXNob2xkICYmDQo+ICsJCSAgICBzLT5zdGVwX3Ro cmVzaG9sZCA8IGxsYWJzKG9mZnNldCkpIHsNCj4gKwkJCSpzdGF0ZSA9IFNFUlZPX1VOTE9DS0VE Ow0KPiArCQkJcy0+Y291bnQgPSAwOw0KPiArCQkJYnJlYWs7DQo+ICsJCX0NCj4gKw0KPiArCQlr aV90ZXJtID0gS0kgKiBvZmZzZXQ7DQo+ICsJCXBwYiA9IEtQICogb2Zmc2V0ICsgcy0+ZHJpZnQg KyBraV90ZXJtOw0KPiArCQlpZiAocHBiIDwgLXMtPm1heF9mcmVxdWVuY3kpDQo+ICsJCQlwcGIg PSAtcy0+bWF4X2ZyZXF1ZW5jeTsNCj4gKwkJZWxzZSBpZiAocHBiID4gcy0+bWF4X2ZyZXF1ZW5j eSkNCj4gKwkJCXBwYiA9IHMtPm1heF9mcmVxdWVuY3k7DQo+ICsJCWVsc2UNCj4gKwkJCXMtPmRy aWZ0ICs9IGtpX3Rlcm07DQo+ICsNCj4gKwkJKnN0YXRlID0gU0VSVk9fTE9DS0VEOw0KPiArCQli cmVhazsNCj4gKwl9DQo+ICsNCj4gKwlzLT5sYXN0X2ZyZXEgPSBwcGI7DQo+ICsJcmV0dXJuIHBw YjsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK3B0cF9hZGp1c3Rfc2Vydm8oc3RydWN0 IHB0cHYyX2RhdGFfc2xhdmVfb3JkaW5hcnkgKnB0cF9kYXRhKQ0KPiArew0KPiArCXVpbnQ2NF90 IHQxX25zLCB0Ml9uczsNCj4gKwlkb3VibGUgYWRqX2ZyZXE7DQo+ICsJZW51bSBzZXJ2b19zdGF0 ZSBzdGF0ZSA9IFNFUlZPX1VOTE9DS0VEOw0KPiArDQo+ICsJdDFfbnMgPSB0aW1lc3BlYzY0X3Rv X25zKCZwdHBfZGF0YS0+dHN0YW1wMSk7DQo+ICsJdDJfbnMgPSB0aW1lc3BlYzY0X3RvX25zKCZw dHBfZGF0YS0+dHN0YW1wMik7DQo+ICsJcHRwX2RhdGEtPm1hc3Rlcl9vZmZzZXQgPSB0Ml9ucyAt IHQxX25zIC0gcHRwX2RhdGEtPnBhdGhfZGVsYXk7DQo+ICsJaWYgKCFwdHBfZGF0YS0+cGF0aF9k ZWxheSkNCj4gKwkJcmV0dXJuOw0KPiArDQo+ICsJYWRqX2ZyZXEgPSBwaV9zYW1wbGUocHRwX2Rh dGEtPnNlcnZvLCBwdHBfZGF0YS0+bWFzdGVyX29mZnNldCwNCj4gdDJfbnMsDQo+ICsJCSAgICAg JnN0YXRlKTsNCj4gKw0KPiArCXN3aXRjaCAoc3RhdGUpIHsNCj4gKwljYXNlIFNFUlZPX1VOTE9D S0VEOg0KPiArCQlicmVhazsNCj4gKwljYXNlIFNFUlZPX0pVTVA6DQo+ICsJCXB0cF9kYXRhLT5z ZXJ2by0+Zmlyc3RfdXBkYXRlID0gMDsNCj4gKwkJcnRlX2V0aF90aW1lc3luY19hZGp1c3RfZnJl cShwdHBfZGF0YS0+cG9ydGlkLA0KPiArCQkJCQkJLShsb25nKShhZGpfZnJlcSAqIDY1LjUzNikp Ow0KPiArCQlydGVfZXRoX3RpbWVzeW5jX2FkanVzdF90aW1lKHB0cF9kYXRhLT5wb3J0aWQsDQo+ ICsJCQkJCSAgICAgLXB0cF9kYXRhLT5tYXN0ZXJfb2Zmc2V0KTsNCj4gKwkJYnJlYWs7DQo+ICsJ Y2FzZSBTRVJWT19MT0NLRUQ6DQo+ICsJCXB0cF9kYXRhLT5zZXJ2by0+Zmlyc3RfdXBkYXRlID0g MDsNCj4gKwkJcnRlX2V0aF90aW1lc3luY19hZGp1c3RfZnJlcShwdHBfZGF0YS0+cG9ydGlkLA0K PiArCQkJCQkgICAgIC0obG9uZykoYWRqX2ZyZXEgKiA2NS41MzYpKTsNCj4gKwkJYnJlYWs7DQo+ ICsJfQ0KPiArfQ0KPiArDQo+ICAvKg0KPiAgICogUGFyc2UgdGhlIERFTEFZX1JFU1AgbWVzc2Fn ZS4NCj4gICAqLw0KPiBAQCAtNTUzLDExICs3NDksMTYgQEAgcGFyc2VfZHJzcChzdHJ1Y3QgcHRw djJfZGF0YV9zbGF2ZV9vcmRpbmFyeQ0KPiAqcHRwX2RhdGEpDQo+ICAJCQkJKCh1aW50NjRfdClu dG9obChyeF90c3RhbXAtPnNlY19sc2IpKSB8DQo+ICAJCQkJKCgodWludDY0X3QpbnRvaHMocnhf dHN0YW1wLT5zZWNfbXNiKSkgPDwNCj4gMzIpOw0KPiANCj4gLQkJCS8qIEV2YWx1YXRlIHRoZSBk ZWx0YSBmb3IgYWRqdXN0bWVudC4gKi8NCj4gLQkJCXB0cF9kYXRhLT5kZWx0YSA9IGRlbHRhX2V2 YWwocHRwX2RhdGEpOw0KPiArCQkJaWYgKG1vZGUgPT0gTU9ERV9QSSkgew0KPiArCQkJCWNsb2Nr X3BhdGhfZGVsYXkocHRwX2RhdGEpOw0KPiArCQkJCXB0cF9hZGp1c3Rfc2Vydm8ocHRwX2RhdGEp Ow0KPiArCQkJfSBlbHNlIHsNCj4gKwkJCQkvKiBFdmFsdWF0ZSB0aGUgZGVsdGEgZm9yIGFkanVz dG1lbnQuICovDQo+ICsJCQkJcHRwX2RhdGEtPmRlbHRhID0gZGVsdGFfZXZhbChwdHBfZGF0YSk7 DQo+IA0KPiAtCQkJcnRlX2V0aF90aW1lc3luY19hZGp1c3RfdGltZShwdHBfZGF0YS0+cG9ydGlk LA0KPiAtCQkJCQkJICAgICBwdHBfZGF0YS0+ZGVsdGEpOw0KPiArCQkJCXJ0ZV9ldGhfdGltZXN5 bmNfYWRqdXN0X3RpbWUocHRwX2RhdGEtDQo+ID5wb3J0aWQsDQo+ICsJCQkJCQkJCXB0cF9kYXRh LQ0KPiA+ZGVsdGEpOw0KPiArCQkJfQ0KPiANCj4gIAkJCXB0cF9kYXRhLT5jdXJyZW50X3B0cF9w b3J0ID0gcHRwX2RhdGEtPnBvcnRpZDsNCj4gDQo+IEBAIC02NTIsNyArODUzLDkgQEAgcHJpbnRf dXNhZ2UoY29uc3QgY2hhciAqcHJnbmFtZSkNCj4gIAlwcmludGYoIiVzIFtFQUwgb3B0aW9uc10g LS0gLXAgUE9SVE1BU0sgLVQgVkFMVUVcbiINCj4gIAkJIiAtVCBWQUxVRTogMCAtIERpc2FibGUs IDEgLSBFbmFibGUgTGludXggQ2xvY2siDQo+ICAJCSIgU3luY2hyb25pemF0aW9uICgwIGRlZmF1 bHQpXG4iDQo+IC0JCSIgLXAgUE9SVE1BU0s6IGhleGFkZWNpbWFsIGJpdG1hc2sgb2YgcG9ydHMg dG8NCj4gY29uZmlndXJlXG4iLA0KPiArCQkiIC1wIFBPUlRNQVNLOiBoZXhhZGVjaW1hbCBiaXRt YXNrIG9mIHBvcnRzIHRvIGNvbmZpZ3VyZVxuIg0KPiArCQkiIC1jIENPTlRST0xMRVI6IDAgLSBO b3QgdXNlZCwgMSAtIFBJLiBUaGUgc2Vydm8gd2hpY2ggaXMiDQo+ICsJCSIgdXNlZCB0byBzeW5j aHJvbml6ZSB0aGUgbG9jYWwgY2xvY2suICgwIGRlZmF1bHQpXG4iLA0KPiAgCQlwcmduYW1lKTsN Cj4gIH0NCj4gDQo+IEBAIC02ODgsNiArODkxLDM2IEBAIHBhcnNlX3B0cF9rZXJuZWwoY29uc3Qg Y2hhciAqcGFyYW0pDQo+ICAJcmV0dXJuIDE7DQo+ICB9DQo+IA0KPiArc3RhdGljIGludA0KPiAr cGFyc2VfcHRwX3NlcnZvX21vZGUoY29uc3QgY2hhciAqcGFyYW0pDQo+ICt7DQo+ICsJY2hhciAq ZW5kID0gTlVMTDsNCj4gKwl1bnNpZ25lZCBsb25nIHBtOw0KPiArDQo+ICsJLyogUGFyc2UgdGhl IGhleGFkZWNpbWFsIHN0cmluZy4gKi8NCj4gKwlwbSA9IHN0cnRvdWwocGFyYW0sICZlbmQsIDEw KTsNCj4gKw0KPiArCWlmICgocGFyYW1bMF0gPT0gJ1wwJykgfHwgKGVuZCA9PSBOVUxMKSB8fCAo KmVuZCAhPSAnXDAnKSkNCj4gKwkJcmV0dXJuIC0xOw0KPiArDQo+ICsJcmV0dXJuIHBtOw0KPiAr fQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArc2Vydm9faW5pdChzdHJ1Y3QgcGlfc2Vydm8gKnNl cnZvKQ0KPiArew0KPiArCW1lbXNldChzZXJ2bywgMHgwMCwgc2l6ZW9mKCpzZXJ2bykpOw0KPiAr DQo+ICsJc2Vydm8tPmRyaWZ0ID0gMTAwMDAwMDAwOw0KPiArCXNlcnZvLT5sYXN0X2ZyZXEgPSAx MDAwMDAwMDA7DQo+ICsJc2Vydm8tPmNvdW50ID0gMDsNCj4gKw0KPiArCXNlcnZvLT5tYXhfZnJl cXVlbmN5ID0gMTAwMDAwMDAwOw0KPiArCXNlcnZvLT5zdGVwX3RocmVzaG9sZCA9IDAuMSAqIE5T RUNfUEVSX1NFQzsNCj4gKwlzZXJ2by0+Zmlyc3Rfc3RlcF90aHJlc2hvbGQgPSAwLjAwMDAyICog TlNFQ19QRVJfU0VDOw0KPiArCXNlcnZvLT5maXJzdF91cGRhdGUgPSAxOw0KPiArfQ0KPiArDQo+ ICAvKiBQYXJzZSB0aGUgY29tbWFuZGxpbmUgYXJndW1lbnRzLiAqLw0KPiAgc3RhdGljIGludA0K PiAgcHRwX3BhcnNlX2FyZ3MoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiBAQCAtNzAwLDcgKzkz Myw3IEBAIHB0cF9wYXJzZV9hcmdzKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gDQo+ICAJYXJn dm9wdCA9IGFyZ3Y7DQo+IA0KPiAtCXdoaWxlICgob3B0ID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJn dm9wdCwgInA6VDoiLA0KPiArCXdoaWxlICgob3B0ID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndm9w dCwgInA6VDpjOiIsDQo+ICAJCQkJICBsZ29wdHMsICZvcHRpb25faW5kZXgpKSAhPSBFT0YpIHsN Cj4gDQo+ICAJCXN3aXRjaCAob3B0KSB7DQo+IEBAIC03MjQsNiArOTU3LDE3IEBAIHB0cF9wYXJz ZV9hcmdzKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gDQo+ICAJCQlwdHBfZGF0YS5rZXJuZWxf dGltZV9zZXQgPSByZXQ7DQo+ICAJCQlicmVhazsNCj4gKwkJY2FzZSAnYyc6DQo+ICsJCQlyZXQg PSBwYXJzZV9wdHBfc2Vydm9fbW9kZShvcHRhcmcpOw0KPiArCQkJaWYgKHJldCA9PSAwKSB7DQo+ ICsJCQkJbW9kZSA9IE1PREVfTk9ORTsNCj4gKwkJCX0gZWxzZSBpZiAocmV0ID09IDEpIHsNCj4g KwkJCQltb2RlID0gTU9ERV9QSTsNCj4gKwkJCX0gZWxzZSB7DQo+ICsJCQkJcHJpbnRfdXNhZ2Uo cHJnbmFtZSk7DQo+ICsJCQkJcmV0dXJuIC0xOw0KPiArCQkJfQ0KPiArCQkJYnJlYWs7DQo+IA0K PiAgCQlkZWZhdWx0Og0KPiAgCQkJcHJpbnRfdXNhZ2UocHJnbmFtZSk7DQo+IEBAIC03NzgsNiAr MTAyMiwxNCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQo+ICAJCXJ0ZV9leGl0KEVY SVRfRkFJTFVSRSwgIkVycm9yIHdpdGggUFRQIGluaXRpYWxpemF0aW9uXG4iKTsNCj4gIAkvKiA+ OCBFbmQgb2YgcGFyc2luZyBzcGVjaWZpYyBhcmd1bWVudHMuICovDQo+IA0KPiArCWlmIChtb2Rl ID09IE1PREVfUEkpIHsNCj4gKwkJcHRwX2RhdGEuc2Vydm8gPSBtYWxsb2Moc2l6ZW9mKCoocHRw X2RhdGEuc2Vydm8pKSk7DQo+ICsJCWlmICghcHRwX2RhdGEuc2Vydm8pDQo+ICsJCQlydGVfZXhp dChFWElUX0ZBSUxVUkUsICJubyBtZW1vcnkgZm9yIHNlcnZvXG4iKTsNCj4gKw0KPiArCQlzZXJ2 b19pbml0KHB0cF9kYXRhLnNlcnZvKTsNCj4gKwl9DQo+ICsNCj4gIAkvKiBDaGVjayB0aGF0IHRo ZXJlIGlzIGFuIGV2ZW4gbnVtYmVyIG9mIHBvcnRzIHRvIHNlbmQvcmVjZWl2ZSBvbi4gKi8NCj4g IAluYl9wb3J0cyA9IHJ0ZV9ldGhfZGV2X2NvdW50X2F2YWlsKCk7DQo+IA0KPiBAQCAtODMxLDYg KzEwODMsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQo+ICAJCXJ0ZV9ldGhfZGV2 X2Nsb3NlKHBvcnRpZCk7DQo+ICAJfQ0KPiANCj4gKwlpZiAobW9kZSA9PSBNT0RFX1BJKQ0KPiAr CQlmcmVlKHB0cF9kYXRhLnNlcnZvKTsNCj4gKw0KPiAgCS8qIGNsZWFuIHVwIHRoZSBFQUwgKi8N Cj4gIAlydGVfZWFsX2NsZWFudXAoKTsNCj4gDQo+IC0tDQo+IDIuMjUuMQ0KDQo=