From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136]) by mail.toke.dk (Postfix) with ESMTPS id 099A0A3399A for ; Fri, 20 Oct 2023 16:31:39 +0200 (CEST) Authentication-Results: mail.toke.dk; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=U49jzfy3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697812300; x=1729348300; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=xQhCIVpnxdEsOV+vxARHyJRTa2hwBFTTRYJbVgqOPCo=; b=U49jzfy3wElaGHu0dzmsYEwDWYpFAGHF1pNfNMIQsnh/iVz+td7tV1Eq ToXMewJsfFBllrBV4/CcVfIPGPNeW4ZXycL7cWXf136zj4zzGFj1q+quB 48TwbGbTlIitNQjdgyVKJDOfTY+ELForjCoIal6cGeudj21UY8Oz0LJON W/SKIbgmae8sPhTHY7OEcVDGGOEeBqq8nLkpfRT3Xbikmdkww32TTHexB yf6LcBPjebzDBgPBFlVu16endLAAMIVf6WvWnzJTVtBXodJ2oi+1omgmn w0/JjABMw3aGw80P+BS8t7JOpNXngWPyetlLBkWcQaeTcoxRSmpn6+x4n w==; X-IronPort-AV: E=McAfee;i="6600,9927,10869"; a="365845389" X-IronPort-AV: E=Sophos;i="6.03,239,1694761200"; d="scan'208";a="365845389" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Oct 2023 07:31:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10869"; a="733980486" X-IronPort-AV: E=Sophos;i="6.03,239,1694761200"; d="scan'208";a="733980486" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga006.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 20 Oct 2023 07:31:37 -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.32; Fri, 20 Oct 2023 07:31:36 -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.32 via Frontend Transport; Fri, 20 Oct 2023 07:31:36 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.168) 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.32; Fri, 20 Oct 2023 07:31:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dBnsoOmdr5M/ri6/A3O0HCRngA2c7Fmi7um1uq9S5WVqq/Jgi6uYsg9tYX7OqTYCBA3vMsSVxVm01FtCdON5M+IuvYQSCXu18Aj+reWq37JRjixE7JjNyU3vxcnFugG47aSq+7qVmr9yDqfu6aDebUkts7DjK/FaeIEb0Fv/oDi+HxX9dF1jeb6gB/AeRI8iYZtJjh8gTZBJPIImuf4k3xv9JRWAG2ZgMzdXyi4hHkC2Dadg4fuK8pKVQIOPpDS7J9WqgClwVh91J3TEZE9f8q1pxWMZf4lxa0Sz29uShFLQxu5iQi76RgdRSG8zk5U1/EmkoEOwV0/I/5i6EHl5CQ== 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=xQhCIVpnxdEsOV+vxARHyJRTa2hwBFTTRYJbVgqOPCo=; b=NfLfoB6RpIue2gRJMRwg3h2PtKcqohIEAU8L3cH9VifKnFCLOxni4kakhvtuyUkLWGVDnHmfC8/RC95n56ExuEgF1MBtM+0bu+LmLulGP6cxuJY6InYs/xTk3EBhuonThM5mQta1MvlOYimz51IIvNnzss/2JZpiucxQI6oxtdTs3R4wOr2aW8DC+NZhwY4I+eKzM+oAghKT5HzUyhWaOpVsvCCEFskq648SJWBm8X2E0Z0rVksaG0qA1oeA0+RLV/D6qMszqoaWggnoMMrsGy8Dkhf+qD5P1na81r3tiz8Yb3/mxUpNIOFOkRSFnvVJFXat1Ov+D+t90u+rZvFHiA== 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 PH0PR11MB5830.namprd11.prod.outlook.com (2603:10b6:510:129::20) by SA1PR11MB6733.namprd11.prod.outlook.com (2603:10b6:806:25c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.26; Fri, 20 Oct 2023 14:31:31 +0000 Received: from PH0PR11MB5830.namprd11.prod.outlook.com ([fe80::c17:89e4:bb3d:d825]) by PH0PR11MB5830.namprd11.prod.outlook.com ([fe80::c17:89e4:bb3d:d825%5]) with mapi id 15.20.6907.025; Fri, 20 Oct 2023 14:31:31 +0000 From: "Song, Yoong Siang" To: Stanislav Fomichev , "bpf@vger.kernel.org" Thread-Topic: [PATCH bpf-next v4 02/11] xsk: Add TX timestamp and TX checksum offload support Thread-Index: AQHaArSxvwWPNusNZk+PgQa6W9Zqq7BSvmnQ Date: Fri, 20 Oct 2023 14:31:31 +0000 Message-ID: References: <20231019174944.3376335-1-sdf@google.com> <20231019174944.3376335-3-sdf@google.com> In-Reply-To: <20231019174944.3376335-3-sdf@google.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: PH0PR11MB5830:EE_|SA1PR11MB6733:EE_ x-ms-office365-filtering-correlation-id: 003dedaa-5dfd-47d0-2284-08dbd1794104 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0L3gd3LEBtdJTlmpghtatZ2Cbyg64ist9WaxB2uL9WyvV1iaaH5IQljOsCPAeZr3ZIHSZ/FZB5gUvuWaUHsnp+3Fll+r13F2lbwjIs24UtuJjQv8z8/3/cL0O8VQy7HFiIudH/mj+Pbwlb2lwAXkH3XmazSZfKnFnPF4zshtCnLH5ninLWnS9NCAtVw7nvCcjNdSkjSSqnTFeN9JHVH9rEWa07A3NCgwDolJbPWznuZT1Nb5luVV3LGdRn8rn1oqjYlXvAACTNXgJU8kKXJCtGg1InlfvkpfbYET0aiV2TLIS+GMcrILbstTaCpbRd997BHWguA3AQMrbsIXPHttqioAP07S7BgZ6ztDqRBDb7GA0FmpKayMmwqfzw12JnBkjTMEBwOn2zT4IoNIiKq+L4+F/JFJv4YhBaSPdhHG1rbCffnC395nKx47w68wgc/wYa63mUcxY6rylPuSTzsa1AdeXg4hJ6RJIgfZn3WzXnmQzcaTHzPpU6N4Pg68INta676xlpB8+bm6mGuqcNAlYoxj6DoIPEcB1dS5KkxOT0yx/Ks0JZGmxUg7csp9KIhE7bwqDTy1i0etC5hJpQ1o10tmYhyeRni5bsK+vXBMaPho2vbsry+eaI9M29zbs9JzQwqcTfb8jkcEDYa+KvnSfg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5830.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(396003)(366004)(39860400002)(136003)(346002)(230922051799003)(64100799003)(186009)(1800799009)(451199024)(83380400001)(53546011)(26005)(9686003)(6506007)(7696005)(71200400001)(38070700009)(33656002)(86362001)(122000001)(82960400001)(38100700002)(41300700001)(4326008)(8936002)(8676002)(52536014)(478600001)(5660300002)(2906002)(7416002)(30864003)(66946007)(64756008)(66556008)(54906003)(66476007)(66446008)(76116006)(110136005)(55016003)(316002)(21314003)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OFNDTGVCbkFiVzZnMWlUZ2ZKbmhuYVpjNGxhWk8xVkhDL3hxeUcxTStBcnRa?= =?utf-8?B?S3ZxRHFyTmVQYXlDbGgyelMvRHB6amFjNkwxbVVianc2NG4xMHo3eFRMT2N3?= =?utf-8?B?YVBSdXhmczNvSnY1Zm94bTNuclo4VWJGL1drL2N6Qjk3Y2JWWlBYSUp1RGFm?= =?utf-8?B?ZjlDUldzUjhXQXRvY0hSdjVYZlJQZGJEcEphaTdXS1lRUWJZMTY5Znd3RXFQ?= =?utf-8?B?Q0daY25reC9qRkkxejYxMFlKQzVhNjdKLzFkbFo3RkxGd1k0QTdJWlNDZlVF?= =?utf-8?B?RXZ1WEl2K01xN2psemRyYldQZFEwZ01LbEIveVdrcjJ1RjJabVY2bk1RejRy?= =?utf-8?B?a1VpY0xKb1VadFFqTk1qZWNKaDV1OTIyUzZRWEhCRkp2RXJoRFEwN0NiQ00v?= =?utf-8?B?VTJNcitVbjFMcnFFSWdwVUtBOE9zWVNXVTlhMzM3Qmx6a2phcS95Nkd1V3JI?= =?utf-8?B?WWNXU2lyNTc5UmxVWHd4V2tObVRTdXgvMUViY2lXcWFMOHAvTmNpbDZDQk5Y?= =?utf-8?B?cTRISXpZeitWZGVLbUFUYU1YMzh4UldlNFpCUzJzVWljQnVlUm1WaDh4cGI5?= =?utf-8?B?b291R3J6ZXJ6YjJ0WEN1aGlybXIrYmJJcUZ6a01kYktja0F5MkMzNGJhQVhB?= =?utf-8?B?RmsvbnpxYVB6NW9EZ0VCbmJRVHE0R1ordWpvWWdhVzY2UFcwdStST3l0Wmwv?= =?utf-8?B?NWFZM3ArRW1ycGFYWnJ1ZithUWZNUUVBckF0VUlZT20rM0x4T3NOZmxPQXND?= =?utf-8?B?N2hhSWZETHZaMnFxMHoveXluRnJJc21VNVJOY3pRbkwrUVRLWHozVnp4aFVv?= =?utf-8?B?VVNsMVd3L21uQklZTEVmZlNKbzlDcms4aXhUaGdqODVSK2JYSGN1VjlhSWJ2?= =?utf-8?B?eW83MS95Q0VCajNaQUtqb3Z4SW1YMU8rZW1nRG1yb3ltOVdDZUh6VUJQTklq?= =?utf-8?B?QWFjZzB6MDNoSUxzNFlON05leUN5czgvdUJwcVFLcHBOeFh5dGhyL3ZnN2RP?= =?utf-8?B?d2w3M3htbzZMMUhKaVBTby9zQzJ0RTBwdkkvcU1peTIyaVNwT0IwMTY2NEM2?= =?utf-8?B?aE1KcDVZNzhQUUpvRkNUZEMxRmRoMXJxOFFHWWZzdHJzbGREbXdYclEydktO?= =?utf-8?B?dlZhWW1aSEdKWFVEbU1iZHVwRys2WTFla1JzYTZ6NHlpazhtVURITndEL3dn?= =?utf-8?B?QUNHa2ZXOU1ielRXbUhLc2pOU2h5K010MzBMb3lNYWloZzA0OHFLSTQ3N3Nh?= =?utf-8?B?NFFvMTdhRnRFakNweXBVU2VuT3l6eXZjMnFJNmdReHdSbFA3MlBJSnBIZ2Fy?= =?utf-8?B?M1R2VnlPUVJlZDJMOE1FcGkvWUt4cXp2T1JPTU9LaVVmV3JQMGU3a0FmN0Vi?= =?utf-8?B?QzhEb3R2TTB0VnY3ZjIrQlg1YUxTSUdxbm5WUkUyT1Nvd240RFd6bE14T1NI?= =?utf-8?B?NGpVamczaHo2T3BzeFloTnZjSzZRc3dkOEpjcnc3bmFaS2RSRUd0WUl0a1Y2?= =?utf-8?B?cU81QnFyQ3hpcFB6ZllHd1hkaGwzTTNYMUo3eTRpVHNBM1FSendwc2ZkRTBY?= =?utf-8?B?MTk1UTlZMFpDc3ZTdzNWRzNVMFlxNDVMeVk5SU1XZTVvNmRmRjhmS1ZsT0RS?= =?utf-8?B?MDd6VWpOZ3Q4VktZOUZGM0RFa3dpMWh3V0RVRTV3czNpNGdzM1UrR2NWWTNk?= =?utf-8?B?S2NCTzlNZXJOcDZxemtua1VOUHFnNVp2dWE4WjlYVzVTWjV1SmJTWGt6a2sx?= =?utf-8?B?Wm1ySWJmby8wKzdYYXhyc05QWEZCN1FKc3BubkFlVGtjZCt3YlZqcEpWOHdO?= =?utf-8?B?TWJONW1rSDZJcytyR3pwSHRSbUpCTmlNdVBlZUhodlhreW1xNzNGaU1UVTR6?= =?utf-8?B?eHVEV083M2RuTlE4YXBKNFVjdEYrejZsMUo3S2JyMFo5NWlEc0JQTG9zM2NW?= =?utf-8?B?Z0NOQ3RuMkFDMmpMSndPNGFJQW92UktQa2dtOUhKemxWSjFuNllpOXNFWExy?= =?utf-8?B?SkRrT0VqQUJ6cGIweGo2MGFyNU5Pd1RrNVVqZ1lCSW0wcTRPYXo0SjdTeUgr?= =?utf-8?B?c3g2M1NKWG5SZjBBcWNQMXJDQ2lJUVdPU3NTZEdlUGVIOG9mcTdRMWZ5VS9w?= =?utf-8?B?UW5USGlQeGIydFpVNXcwTnhva3ltc2JLbzJVSDkzWDR2ZGFkRjYrUEhqUWEr?= =?utf-8?B?cXc9PQ==?= 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: PH0PR11MB5830.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 003dedaa-5dfd-47d0-2284-08dbd1794104 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Oct 2023 14:31:31.4760 (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: 7q60f5J950lW/2FFRPIatKKxRCZNDV9Pn83Vqm8zjjxoMLRVsGcKRRnlBttQAPCnsHryWLO/jBtDnjLtTDhG4/MuRKlAxiHhOrvp1hQzXto= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB6733 X-OriginatorOrg: intel.com Message-ID-Hash: ILPZT22LXTQISWL4EVMCMQ77UFL5XKUE X-Message-ID-Hash: ILPZT22LXTQISWL4EVMCMQ77UFL5XKUE X-MailFrom: yoong.siang.song@intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: "ast@kernel.org" , "daniel@iogearbox.net" , "andrii@kernel.org" , "martin.lau@linux.dev" , "song@kernel.org" , "yhs@fb.com" , "john.fastabend@gmail.com" , "kpsingh@kernel.org" , "haoluo@google.com" , "jolsa@kernel.org" , "kuba@kernel.org" , "toke@kernel.org" , "willemb@google.com" , "dsahern@kernel.org" , "Karlsson, Magnus" , "bjorn@kernel.org" , "Fijalkowski, Maciej" , "hawk@kernel.org" , "netdev@vger.kernel.org" , "xdp-hints@xdp-project.net" X-Mailman-Version: 3.3.8 Precedence: list Subject: [xdp-hints] Re: [PATCH bpf-next v4 02/11] xsk: Add TX timestamp and TX checksum offload support List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gRnJpZGF5LCBPY3RvYmVyIDIwLCAyMDIzIDE6NTAgQU0gU3RhbmlzbGF2IEZvbWljaGV2IDxz ZGZAZ29vZ2xlLmNvbT4gd3JvdGU6DQo+VGhpcyBjaGFuZ2UgYWN0dWFsbHkgZGVmaW5lcyB0aGUg KGluaXRpYWwpIG1ldGFkYXRhIGxheW91dA0KPnRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgQUZfWERQ IHVzZXJzcGFjZSAoeHNrX3R4X21ldGFkYXRhKS4NCj5UaGUgZmlyc3QgZmllbGQgaXMgZmxhZ3Mg d2hpY2ggcmVxdWVzdHMgYXBwcm9wcmlhdGUgb2ZmbG9hZHMsDQo+Zm9sbG93ZWQgYnkgdGhlIG9m ZmxvYWQtc3BlY2lmaWMgZmllbGRzLiBUaGUgc3VwcG9ydGVkIHBlci1kZXZpY2UNCj5vZmZsb2Fk cyBhcmUgZXhwb3J0ZWQgdmlhIG5ldGxpbmsgKG5ldyB4c2stZmxhZ3MpLg0KPg0KPlRoZSBvZmZs b2FkcyB0aGVtc2VsdmVzIGFyZSBzdGlsbCBpbXBsZW1lbnRlZCBpbiBhIGJpdCBvZiBhDQo+ZnJh bWV3b3JrLXkgZmFzaGlvbiB0aGF0J3MgbGVmdCBmcm9tIG15IGluaXRpYWwga2Z1bmMgYXR0ZW1w dC4NCj5JJ20gaW50cm9kdWNpbmcgbmV3IHhza190eF9tZXRhZGF0YV9vcHMgd2hpY2ggZHJpdmVy cyBhcmUNCj5zdXBwb3NlZCB0byBpbXBsZW1lbnQuIFRoZSBkcml2ZXJzIGFyZSBhbHNvIHN1cHBv c2VkDQo+dG8gY2FsbCB4c2tfdHhfbWV0YWRhdGFfcmVxdWVzdC94c2tfdHhfbWV0YWRhdGFfY29t cGxldGUgaW4NCj50aGUgcmlnaHQgcGxhY2VzLiBTaW5jZSB4c2tfdHhfbWV0YWRhdGFfe3JlcXVl c3QsX2NvbXBsZXRlfQ0KPmFyZSBzdGF0aWMgaW5saW5lLCB3ZSBkb24ndCBpbmN1ciBhbnkgZXh0 cmEgb3ZlcmhlYWQgZG9pbmcNCj5pbmRpcmVjdCBjYWxscy4NCj4NCj5UaGUgYmVuZWZpdCBvZiB0 aGlzIHNjaGVtZSBpcyBhcyBmb2xsb3dzOg0KPi0ga2VlcHMgYWxsIG1ldGFkYXRhIGxheW91dCBw YXJzaW5nIGF3YXkgZnJvbSBkcml2ZXIgY29kZQ0KPi0gbWFrZXMgaXQgZWFzeSB0byBncmVwIGFu ZCBzZWUgd2hpY2ggZHJpdmVycyBpbXBsZW1lbnQgd2hhdA0KPi0gZG9uJ3QgbmVlZCBhbnkgZXh0 cmEgZmxhZ3MgdG8gbWFpbnRhaW4gdG8ga2VlcCB0cmFjayBvZiB3aGF0DQo+ICBvZmZsb2FkcyBh cmUgaW1wbGVtZW50ZWQ7IGlmIHRoZSBjYWxsYmFjayBpcyBpbXBsZW1lbnRlZCAtIHRoZSBvZmZs b2FkDQo+ICBpcyBzdXBwb3J0ZWQgKHVzZWQgYnkgbmV0bGluayByZXBvcnRpbmcgY29kZSkNCj4N Cj5Ud28gb2ZmbG9hZHMgYXJlIGRlZmluZWQgcmlnaHQgbm93Og0KPjEuIFhEUF9UWF9NRVRBREFU QV9DSEVDS1NVTTogc2tiLXN0eWxlIGNzdW1fc3RhcnQrY3N1bV9vZmZzZXQNCj4yLiBYRFBfVFhf TUVUQURBVEFfVElNRVNUQU1QOiB3cml0ZXMgVFggdGltZXN0YW1wIGJhY2sgaW50byBtZXRhZGF0 YQ0KPiAgIGFyZWEgdXBvbiBjb21wbGV0aW9uICh0eF90aW1lc3RhbXAgZmllbGQpDQo+DQo+VGhl IG9mZmxvYWRzIGFyZSBhbHNvIGltcGxlbWVudGVkIGZvciBjb3B5IG1vZGU6DQo+MS4gRXh0cmEg WERQX1RYX01FVEFEQVRBX0NIRUNLU1VNX1NXIHRvIHRyaWdnZXIgc2tiX2NoZWNrc3VtX2hlbHA7 IHRoaXMNCj4gICBtaWdodCBiZSB1c2VmdWwgYXMgYSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24g YW5kIGZvciB0ZXN0aW5nDQo+Mi4gWERQX1RYX01FVEFEQVRBX1RJTUVTVEFNUCB3cml0ZXMgU1cg dGltZXN0YW1wIGZyb20gdGhlIHNrYg0KPiAgIGRlc3RydWN0b3IgKG5vdGUgSSdtIHJldXNpbmcg aHd0c3RhbXBzIHRvIHBhc3MgbWV0YWRhdGEgcG9pbnRlcikNCj4NCj5UaGUgc3RydWN0IGlzIGZv cndhcmQtY29tcGF0aWJsZSBhbmQgY2FuIGJlIGV4dGVuZGVkIGluIHRoZSBmdXR1cmUNCj5ieSBh cHBlbmRpbmcgbW9yZSBmaWVsZHMuDQo+DQo+U2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IEZvbWlj aGV2IDxzZGZAZ29vZ2xlLmNvbT4NCg0KTEdUTS4NClJldmlld2VkLWJ5OiBTb25nIFlvb25nIFNp YW5nIDx5b29uZy5zaWFuZy5zb25nQGludGVsLmNvbT4NCg0KPi0tLQ0KPiBEb2N1bWVudGF0aW9u L25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgfCAxOSArKysrKysNCj4gaW5jbHVkZS9saW51eC9u ZXRkZXZpY2UuaCAgICAgICAgICAgICAgIHwgMjcgKysrKysrKysNCj4gaW5jbHVkZS9saW51eC9z a2J1ZmYuaCAgICAgICAgICAgICAgICAgIHwgMTQgKysrLQ0KPiBpbmNsdWRlL25ldC94ZHBfc29j ay5oICAgICAgICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKysrKysrKysrKysrDQo+IGlu Y2x1ZGUvbmV0L3hkcF9zb2NrX2Rydi5oICAgICAgICAgICAgICB8IDEzICsrKysNCj4gaW5jbHVk ZS9uZXQveHNrX2J1ZmZfcG9vbC5oICAgICAgICAgICAgIHwgIDYgKysNCj4gaW5jbHVkZS91YXBp L2xpbnV4L2lmX3hkcC5oICAgICAgICAgICAgIHwgNDAgKysrKysrKysrKysrDQo+IGluY2x1ZGUv dWFwaS9saW51eC9uZXRkZXYuaCAgICAgICAgICAgICB8IDE2ICsrKysrDQo+IG5ldC9jb3JlL25l dGRldi1nZW5sLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKy0NCj4gbmV0L3hkcC94c2suYyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrDQo+IG5ldC94ZHAveHNr X3F1ZXVlLmggICAgICAgICAgICAgICAgICAgICB8ICAyICstDQo+IHRvb2xzL2luY2x1ZGUvdWFw aS9saW51eC9pZl94ZHAuaCAgICAgICB8IDU0ICsrKysrKysrKysrKysrLS0NCj4gdG9vbHMvaW5j bHVkZS91YXBpL2xpbnV4L25ldGRldi5oICAgICAgIHwgMTYgKysrKysNCj4gdG9vbHMvbmV0L3lu bC9nZW5lcmF0ZWQvbmV0ZGV2LXVzZXIuYyAgIHwgMTkgKysrKysrDQo+IHRvb2xzL25ldC95bmwv Z2VuZXJhdGVkL25ldGRldi11c2VyLmggICB8ICAzICsNCj4gMTUgZmlsZXMgY2hhbmdlZCwgMzU3 IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQo+DQo+ZGlmZiAtLWdpdCBhL0RvY3VtZW50 YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbA0KPmIvRG9jdW1lbnRhdGlvbi9uZXRsaW5r L3NwZWNzL25ldGRldi55YW1sDQo+aW5kZXggMTQ1MTFiMTNmMzA1Li4yMmQyNjQ5YTM0ZWUgMTAw NjQ0DQo+LS0tIGEvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sDQo+Kysr IGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sDQo+QEAgLTU1LDYgKzU1 LDE5IEBAIG5hbWU6IG5ldGRldg0KPiAgICAgICAgIG5hbWU6IGhhc2gNCj4gICAgICAgICBkb2M6 DQo+ICAgICAgICAgICBEZXZpY2UgaXMgY2FwYWJsZSBvZiBleHBvc2luZyByZWNlaXZlIHBhY2tl dCBoYXNoIHZpYQ0KPmJwZl94ZHBfbWV0YWRhdGFfcnhfaGFzaCgpLg0KPisgIC0NCj4rICAgIHR5 cGU6IGZsYWdzDQo+KyAgICBuYW1lOiB4c2stZmxhZ3MNCj4rICAgIHJlbmRlci1tYXg6IHRydWUN Cj4rICAgIGVudHJpZXM6DQo+KyAgICAgIC0NCj4rICAgICAgICBuYW1lOiB0eC10aW1lc3RhbXAN Cj4rICAgICAgICBkb2M6DQo+KyAgICAgICAgICBIVyB0aW1lc3RhbXBpbmcgZWdyZXNzIHBhY2tl dHMgaXMgc3VwcG9ydGVkIGJ5IHRoZSBkcml2ZXIuDQo+KyAgICAgIC0NCj4rICAgICAgICBuYW1l OiB0eC1jaGVja3N1bQ0KPisgICAgICAgIGRvYzoNCj4rICAgICAgICAgIEwzIGNoZWNrc3VtIEhX IG9mZmxvYWQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBkcml2ZXIuDQo+DQo+IGF0dHJpYnV0ZS1zZXRz Og0KPiAgIC0NCj5AQCAtODYsNiArOTksMTEgQEAgbmFtZTogbmV0ZGV2DQo+ICAgICAgICAgICAg ICBTZWUgRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hkcC1yeC1tZXRhZGF0YS5yc3QgZm9yIG1v cmUgZGV0YWlscy4NCj4gICAgICAgICB0eXBlOiB1NjQNCj4gICAgICAgICBlbnVtOiB4ZHAtcngt bWV0YWRhdGENCj4rICAgICAgLQ0KPisgICAgICAgIG5hbWU6IHhzay1mZWF0dXJlcw0KPisgICAg ICAgIGRvYzogQml0bWFzayBvZiBlbmFibGVkIEFGX1hEUCBmZWF0dXJlcy4NCj4rICAgICAgICB0 eXBlOiB1NjQNCj4rICAgICAgICBlbnVtOiB4c2stZmxhZ3MNCj4NCj4gb3BlcmF0aW9uczoNCj4g ICBsaXN0Og0KPkBAIC0xMDMsNiArMTIxLDcgQEAgbmFtZTogbmV0ZGV2DQo+ICAgICAgICAgICAg IC0geGRwLWZlYXR1cmVzDQo+ICAgICAgICAgICAgIC0geGRwLXpjLW1heC1zZWdzDQo+ICAgICAg ICAgICAgIC0geGRwLXJ4LW1ldGFkYXRhLWZlYXR1cmVzDQo+KyAgICAgICAgICAgIC0geHNrLWZl YXR1cmVzDQo+ICAgICAgIGR1bXA6DQo+ICAgICAgICAgcmVwbHk6ICpkZXYtYWxsDQo+ICAgICAt DQo+ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4 L25ldGRldmljZS5oDQo+aW5kZXggMWM3NjgxMjYzZDMwLi5mMDkwM2ExYWM3OTEgMTAwNjQ0DQo+ LS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaA0KPisrKyBiL2luY2x1ZGUvbGludXgvbmV0 ZGV2aWNlLmgNCj5AQCAtMTY0Myw2ICsxNjQzLDMxIEBAIHN0cnVjdCBuZXRfZGV2aWNlX29wcyB7 DQo+IAkJCQkJCSAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spOw0KPiB9Ow0KPg0K PisvKg0KPisgKiBUaGlzIHN0cnVjdHVyZSBkZWZpbmVzIHRoZSBBRl9YRFAgVFggbWV0YWRhdGEg aG9va3MgZm9yIG5ldHdvcmsgZGV2aWNlcy4NCj4rICogVGhlIGZvbGxvd2luZyBob29rcyBjYW4g YmUgZGVmaW5lZDsgdW5sZXNzIG5vdGVkIG90aGVyd2lzZSwgdGhleSBhcmUNCj4rICogb3B0aW9u YWwgYW5kIGNhbiBiZSBmaWxsZWQgd2l0aCBhIG51bGwgcG9pbnRlci4NCj4rICoNCj4rICogdm9p ZCAoKnRtb19yZXF1ZXN0X3RpbWVzdGFtcCkodm9pZCAqcHJpdikNCj4rICogICAgIFRoaXMgZnVu Y3Rpb24gaXMgY2FsbGVkIHdoZW4gQUZfWERQIGZyYW1lIHJlcXVlc3RlZCBlZ3Jlc3MgdGltZXN0 YW1wLg0KPisgKg0KPisgKiB1NjQgKCp0bW9fZmlsbF90aW1lc3RhbXApKHZvaWQgKnByaXYpDQo+ KyAqICAgICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIEFGX1hEUCBmcmFtZSwgdGhhdCBo YWQgcmVxdWVzdGVkDQo+KyAqICAgICBlZ3Jlc3MgdGltZXN0YW1wLCByZWNlaXZlZCBhIGNvbXBs ZXRpb24uIFRoZSBob29rIG5lZWRzIHRvIHJldHVybg0KPisgKiAgICAgdGhlIGFjdHVhbCBIVyB0 aW1lc3RhbXAuDQo+KyAqDQo+KyAqIHZvaWQgKCp0bW9fcmVxdWVzdF9jaGVja3N1bSkodTE2IGNz dW1fc3RhcnQsIHUxNiBjc3VtX29mZnNldCwgdm9pZCAqcHJpdikNCj4rICogICAgIFRoaXMgZnVu Y3Rpb24gaXMgY2FsbGVkIHdoZW4gQUZfWERQIGZyYW1lIHJlcXVlc3RlZCBIVyBjaGVja3N1bQ0K PisgKiAgICAgb2ZmbG9hZC4gY3N1bV9zdGFydCBpbmRpY2F0ZXMgcG9zaXRpb24gd2hlcmUgY2hl Y2tzdW1taW5nIHNob3VsZCBzdGFydC4NCj4rICogICAgIGNzdW1fb2Zmc2V0IGluZGljYXRlcyBw b3NpdGlvbiB3aGVyZSBjaGVja3N1bSBzaG91bGQgYmUgc3RvcmVkLg0KPisgKg0KPisgKi8NCj4r c3RydWN0IHhza190eF9tZXRhZGF0YV9vcHMgew0KPisJdm9pZAkoKnRtb19yZXF1ZXN0X3RpbWVz dGFtcCkodm9pZCAqcHJpdik7DQo+Kwl1NjQJKCp0bW9fZmlsbF90aW1lc3RhbXApKHZvaWQgKnBy aXYpOw0KPisJdm9pZAkoKnRtb19yZXF1ZXN0X2NoZWNrc3VtKSh1MTYgY3N1bV9zdGFydCwgdTE2 IGNzdW1fb2Zmc2V0LCB2b2lkDQo+KnByaXYpOw0KPit9Ow0KPisNCj4gLyoqDQo+ICAqIGVudW0g bmV0ZGV2X3ByaXZfZmxhZ3MgLSAmc3RydWN0IG5ldF9kZXZpY2UgcHJpdl9mbGFncw0KPiAgKg0K PkBAIC0xODMxLDYgKzE4NTYsNyBAQCBlbnVtIG5ldGRldl9tbF9wcml2X3R5cGUgew0KPiAgKglA bmV0ZGV2X29wczoJSW5jbHVkZXMgc2V2ZXJhbCBwb2ludGVycyB0byBjYWxsYmFja3MsDQo+ICAq CQkJaWYgb25lIHdhbnRzIHRvIG92ZXJyaWRlIHRoZSBuZG9fKigpIGZ1bmN0aW9ucw0KPiAgKglA eGRwX21ldGFkYXRhX29wczoJSW5jbHVkZXMgcG9pbnRlcnMgdG8gWERQIG1ldGFkYXRhIGNhbGxi YWNrcy4NCj4rICoJQHhza190eF9tZXRhZGF0YV9vcHM6CUluY2x1ZGVzIHBvaW50ZXJzIHRvIEFG X1hEUCBUWCBtZXRhZGF0YQ0KPmNhbGxiYWNrcy4NCj4gICoJQGV0aHRvb2xfb3BzOglNYW5hZ2Vt ZW50IG9wZXJhdGlvbnMNCj4gICoJQGwzbWRldl9vcHM6CUxheWVyIDMgbWFzdGVyIGRldmljZSBv cGVyYXRpb25zDQo+ICAqCUBuZGlzY19vcHM6CUluY2x1ZGVzIGNhbGxiYWNrcyBmb3IgZGlmZmVy ZW50IElQdjYgbmVpZ2hib3VyDQo+QEAgLTIwOTAsNiArMjExNiw3IEBAIHN0cnVjdCBuZXRfZGV2 aWNlIHsNCj4gCXVuc2lnbmVkIGxvbmcgbG9uZwlwcml2X2ZsYWdzOw0KPiAJY29uc3Qgc3RydWN0 IG5ldF9kZXZpY2Vfb3BzICpuZXRkZXZfb3BzOw0KPiAJY29uc3Qgc3RydWN0IHhkcF9tZXRhZGF0 YV9vcHMgKnhkcF9tZXRhZGF0YV9vcHM7DQo+Kwljb25zdCBzdHJ1Y3QgeHNrX3R4X21ldGFkYXRh X29wcyAqeHNrX3R4X21ldGFkYXRhX29wczsNCj4gCWludAkJCWlmaW5kZXg7DQo+IAl1bnNpZ25l ZCBzaG9ydAkJZ2ZsYWdzOw0KPiAJdW5zaWduZWQgc2hvcnQJCWhhcmRfaGVhZGVyX2xlbjsNCj5k aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaCBiL2luY2x1ZGUvbGludXgvc2tidWZm LmgNCj5pbmRleCA5N2JmZWYwNzEyNTUuLjViNzlkN2ZlOWY5YyAxMDA2NDQNCj4tLS0gYS9pbmNs dWRlL2xpbnV4L3NrYnVmZi5oDQo+KysrIGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaA0KPkBAIC01 NjYsNiArNTY2LDE1IEBAIHN0cnVjdCB1YnVmX2luZm9fbXNnemMgew0KPiBpbnQgbW1fYWNjb3Vu dF9waW5uZWRfcGFnZXMoc3RydWN0IG1tcGluICptbXAsIHNpemVfdCBzaXplKTsNCj4gdm9pZCBt bV91bmFjY291bnRfcGlubmVkX3BhZ2VzKHN0cnVjdCBtbXBpbiAqbW1wKTsNCj4NCj4rLyogUHJl c2VydmUgc29tZSBkYXRhIGFjcm9zcyBUWCBzdWJtaXNzaW9uIGFuZCBjb21wbGV0aW9uLg0KPisg Kg0KPisgKiBOb3RlLCB0aGlzIHN0YXRlIGlzIHN0b3JlZCBpbiB0aGUgZHJpdmVyLiBFeHRlbmRp bmcgdGhlIGxheW91dA0KPisgKiBtaWdodCBuZWVkIHNvbWUgc3BlY2lhbCBjYXJlLg0KPisgKi8N Cj4rc3RydWN0IHhza190eF9tZXRhZGF0YV9jb21wbCB7DQo+KwlfX3U2NCAqdHhfdGltZXN0YW1w Ow0KPit9Ow0KPisNCj4gLyogVGhpcyBkYXRhIGlzIGludmFyaWFudCBhY3Jvc3MgY2xvbmVzIGFu ZCBsaXZlcyBhdA0KPiAgKiB0aGUgZW5kIG9mIHRoZSBoZWFkZXIgZGF0YSwgaWUuIGF0IHNrYi0+ ZW5kLg0KPiAgKi8NCj5AQCAtNTc4LDcgKzU4NywxMCBAQCBzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZv IHsNCj4gCS8qIFdhcm5pbmc6IHRoaXMgZmllbGQgaXMgbm90IGFsd2F5cyBmaWxsZWQgaW4gKFVG TykhICovDQo+IAl1bnNpZ25lZCBzaG9ydAlnc29fc2VnczsNCj4gCXN0cnVjdCBza19idWZmCSpm cmFnX2xpc3Q7DQo+LQlzdHJ1Y3Qgc2tiX3NoYXJlZF9od3RzdGFtcHMgaHd0c3RhbXBzOw0KPisJ dW5pb24gew0KPisJCXN0cnVjdCBza2Jfc2hhcmVkX2h3dHN0YW1wcyBod3RzdGFtcHM7DQo+KwkJ c3RydWN0IHhza190eF9tZXRhZGF0YV9jb21wbCB4c2tfbWV0YTsNCj4rCX07DQo+IAl1bnNpZ25l ZCBpbnQJZ3NvX3R5cGU7DQo+IAl1MzIJCXRza2V5Ow0KPg0KPmRpZmYgLS1naXQgYS9pbmNsdWRl L25ldC94ZHBfc29jay5oIGIvaW5jbHVkZS9uZXQveGRwX3NvY2suaA0KPmluZGV4IDVhZTg4YTAw ZjM0YS4uOWYwOWVlNDdiNDM0IDEwMDY0NA0KPi0tLSBhL2luY2x1ZGUvbmV0L3hkcF9zb2NrLmgN Cj4rKysgYi9pbmNsdWRlL25ldC94ZHBfc29jay5oDQo+QEAgLTkyLDYgKzkyLDc0IEBAIGludCB4 c2tfZ2VuZXJpY19yY3Yoc3RydWN0IHhkcF9zb2NrICp4cywgc3RydWN0IHhkcF9idWZmICp4ZHAp Ow0KPiBpbnQgX194c2tfbWFwX3JlZGlyZWN0KHN0cnVjdCB4ZHBfc29jayAqeHMsIHN0cnVjdCB4 ZHBfYnVmZiAqeGRwKTsNCj4gdm9pZCBfX3hza19tYXBfZmx1c2godm9pZCk7DQo+DQo+Ky8qKg0K PisgKiAgeHNrX3R4X21ldGFkYXRhX3RvX2NvbXBsIC0gU2F2ZSBlbm91Z2ggcmVsZXZhbnQgbWV0 YWRhdGEgaW5mb3JtYXRpb24NCj4rICogIHRvIHBlcmZvcm0gdHggY29tcGxldGlvbiBpbiB0aGUg ZnV0dXJlLg0KPisgKiAgQG1ldGE6IHBvaW50ZXIgdG8gQUZfWERQIG1ldGFkYXRhIGFyZWENCj4r ICogIEBjb21wbDogcG9pbnRlciB0byBvdXRwdXQgc3RydWN0IHhza190eF9tZXRhZGF0YV90b19j b21wbA0KPisgKg0KPisgKiAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGJ5IHRoZSBu ZXR3b3JraW5nIGRldmljZSB3aGVuDQo+KyAqICBpdCBwcmVwYXJlcyBBRl9YRFAgZWdyZXNzIHBh Y2tldC4gVGhlIHZhbHVlIG9mIEBjb21wbCBzaG91bGQgYmUgc3RvcmVkDQo+KyAqICBhbmQgcGFz c2VkIHRvIHhza190eF9tZXRhZGF0YV9jb21wbGV0ZSB1cG9uIFRYIGNvbXBsZXRpb24uDQo+KyAq Lw0KPitzdGF0aWMgaW5saW5lIHZvaWQgeHNrX3R4X21ldGFkYXRhX3RvX2NvbXBsKHN0cnVjdCB4 c2tfdHhfbWV0YWRhdGEgKm1ldGEsDQo+KwkJCQkJICAgIHN0cnVjdCB4c2tfdHhfbWV0YWRhdGFf Y29tcGwgKmNvbXBsKQ0KPit7DQo+KwlpZiAoIW1ldGEpDQo+KwkJcmV0dXJuOw0KPisNCj4rCWlm IChtZXRhLT5mbGFncyAmIFhEUF9UWF9NRVRBREFUQV9USU1FU1RBTVApDQo+KwkJY29tcGwtPnR4 X3RpbWVzdGFtcCA9ICZtZXRhLT5jb21wbGV0aW9uLnR4X3RpbWVzdGFtcDsNCj4rCWVsc2UNCj4r CQljb21wbC0+dHhfdGltZXN0YW1wID0gTlVMTDsNCj4rfQ0KPisNCj4rLyoqDQo+KyAqICB4c2tf dHhfbWV0YWRhdGFfcmVxdWVzdCAtIEV2YWx1YXRlIEFGX1hEUCBUWCBtZXRhZGF0YSBhdCBzdWJt aXNzaW9uDQo+KyAqICBhbmQgY2FsbCBhcHByb3ByaWF0ZSB4c2tfdHhfbWV0YWRhdGFfb3BzIG9w ZXJhdGlvbi4NCj4rICogIEBtZXRhOiBwb2ludGVyIHRvIEFGX1hEUCBtZXRhZGF0YSBhcmVhDQo+ KyAqICBAb3BzOiBwb2ludGVyIHRvIHN0cnVjdCB4c2tfdHhfbWV0YWRhdGFfb3BzDQo+KyAqICBA cHJpdjogcG9pbnRlciB0byBkcml2ZXItcHJpdmF0ZSBhcmVhZA0KPisgKg0KPisgKiAgVGhpcyBm dW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGJ5IHRoZSBuZXR3b3JraW5nIGRldmljZSB3aGVuDQo+ KyAqICBpdCBwcmVwYXJlcyBBRl9YRFAgZWdyZXNzIHBhY2tldC4NCj4rICovDQo+K3N0YXRpYyBp bmxpbmUgdm9pZCB4c2tfdHhfbWV0YWRhdGFfcmVxdWVzdChjb25zdCBzdHJ1Y3QgeHNrX3R4X21l dGFkYXRhICptZXRhLA0KPisJCQkJCSAgIGNvbnN0IHN0cnVjdCB4c2tfdHhfbWV0YWRhdGFfb3Bz ICpvcHMsDQo+KwkJCQkJICAgdm9pZCAqcHJpdikNCj4rew0KPisJaWYgKCFtZXRhKQ0KPisJCXJl dHVybjsNCj4rDQo+KwlpZiAob3BzLT50bW9fcmVxdWVzdF90aW1lc3RhbXApDQo+KwkJaWYgKG1l dGEtPmZsYWdzICYgWERQX1RYX01FVEFEQVRBX1RJTUVTVEFNUCkNCj4rCQkJb3BzLT50bW9fcmVx dWVzdF90aW1lc3RhbXAocHJpdik7DQo+Kw0KPisJaWYgKG9wcy0+dG1vX3JlcXVlc3RfY2hlY2tz dW0pDQo+KwkJaWYgKG1ldGEtPmZsYWdzICYgWERQX1RYX01FVEFEQVRBX0NIRUNLU1VNKQ0KPisJ CQlvcHMtPnRtb19yZXF1ZXN0X2NoZWNrc3VtKG1ldGEtPmNzdW1fc3RhcnQsIG1ldGEtDQo+PmNz dW1fb2Zmc2V0LCBwcml2KTsNCj4rfQ0KPisNCj4rLyoqDQo+KyAqICB4c2tfdHhfbWV0YWRhdGFf Y29tcGxldGUgLSBFdmFsdWF0ZSBBRl9YRFAgVFggbWV0YWRhdGEgYXQgY29tcGxldGlvbg0KPisg KiAgYW5kIGNhbGwgYXBwcm9wcmlhdGUgeHNrX3R4X21ldGFkYXRhX29wcyBvcGVyYXRpb24uDQo+ KyAqICBAY29tcGw6IHBvaW50ZXIgdG8gY29tcGxldGlvbiBtZXRhZGF0YSBwcm9kdWNlZCBmcm9t DQo+eHNrX3R4X21ldGFkYXRhX3RvX2NvbXBsDQo+KyAqICBAb3BzOiBwb2ludGVyIHRvIHN0cnVj dCB4c2tfdHhfbWV0YWRhdGFfb3BzDQo+KyAqICBAcHJpdjogcG9pbnRlciB0byBkcml2ZXItcHJp dmF0ZSBhcmVhZA0KPisgKg0KPisgKiAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGJ5 IHRoZSBuZXR3b3JraW5nIGRldmljZSB1cG9uDQo+KyAqICBBRl9YRFAgZWdyZXNzIGNvbXBsZXRp b24uDQo+KyAqLw0KPitzdGF0aWMgaW5saW5lIHZvaWQgeHNrX3R4X21ldGFkYXRhX2NvbXBsZXRl KHN0cnVjdCB4c2tfdHhfbWV0YWRhdGFfY29tcGwgKmNvbXBsLA0KPisJCQkJCSAgICBjb25zdCBz dHJ1Y3QgeHNrX3R4X21ldGFkYXRhX29wcyAqb3BzLA0KPisJCQkJCSAgICB2b2lkICpwcml2KQ0K Pit7DQo+KwlpZiAoIWNvbXBsKQ0KPisJCXJldHVybjsNCj4rDQo+KwkqY29tcGwtPnR4X3RpbWVz dGFtcCA9IG9wcy0+dG1vX2ZpbGxfdGltZXN0YW1wKHByaXYpOw0KPit9DQo+Kw0KPiAjZWxzZQ0K Pg0KPiBzdGF0aWMgaW5saW5lIGludCB4c2tfZ2VuZXJpY19yY3Yoc3RydWN0IHhkcF9zb2NrICp4 cywgc3RydWN0IHhkcF9idWZmICp4ZHApDQo+QEAgLTEwOCw2ICsxNzYsMjMgQEAgc3RhdGljIGlu bGluZSB2b2lkIF9feHNrX21hcF9mbHVzaCh2b2lkKQ0KPiB7DQo+IH0NCj4NCj4rc3RhdGljIGlu bGluZSB2b2lkIHhza190eF9tZXRhZGF0YV90b19jb21wbChzdHJ1Y3QgeHNrX3R4X21ldGFkYXRh ICptZXRhLA0KPisJCQkJCSAgICBzdHJ1Y3QgeHNrX3R4X21ldGFkYXRhX2NvbXBsICpjb21wbCkN Cj4rew0KPit9DQo+Kw0KPitzdGF0aWMgaW5saW5lIHZvaWQgeHNrX3R4X21ldGFkYXRhX3JlcXVl c3Qoc3RydWN0IHhza190eF9tZXRhZGF0YSAqbWV0YSwNCj4rCQkJCQkgICBjb25zdCBzdHJ1Y3Qg eHNrX3R4X21ldGFkYXRhX29wcyAqb3BzLA0KPisJCQkJCSAgIHZvaWQgKnByaXYpDQo+K3sNCj4r fQ0KPisNCj4rc3RhdGljIGlubGluZSB2b2lkIHhza190eF9tZXRhZGF0YV9jb21wbGV0ZShzdHJ1 Y3QgeHNrX3R4X21ldGFkYXRhX2NvbXBsICpjb21wbCwNCj4rCQkJCQkgICAgY29uc3Qgc3RydWN0 IHhza190eF9tZXRhZGF0YV9vcHMgKm9wcywNCj4rCQkJCQkgICAgdm9pZCAqcHJpdikNCj4rew0K Pit9DQo+Kw0KPiAjZW5kaWYgLyogQ09ORklHX1hEUF9TT0NLRVRTICovDQo+DQo+ICNpZiBkZWZp bmVkKENPTkZJR19YRFBfU09DS0VUUykgJiYgZGVmaW5lZChDT05GSUdfREVCVUdfTkVUKQ0KPmRp ZmYgLS1naXQgYS9pbmNsdWRlL25ldC94ZHBfc29ja19kcnYuaCBiL2luY2x1ZGUvbmV0L3hkcF9z b2NrX2Rydi5oDQo+aW5kZXggMWY2ZmM4YzdhODRjLi5lMjU1OGFjM2UxOTUgMTAwNjQ0DQo+LS0t IGEvaW5jbHVkZS9uZXQveGRwX3NvY2tfZHJ2LmgNCj4rKysgYi9pbmNsdWRlL25ldC94ZHBfc29j a19kcnYuaA0KPkBAIC0xNjUsNiArMTY1LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqeHNrX2J1 ZmZfcmF3X2dldF9kYXRhKHN0cnVjdA0KPnhza19idWZmX3Bvb2wgKnBvb2wsIHU2NCBhZGRyKQ0K PiAJcmV0dXJuIHhwX3Jhd19nZXRfZGF0YShwb29sLCBhZGRyKTsNCj4gfQ0KPg0KPitzdGF0aWMg aW5saW5lIHN0cnVjdCB4c2tfdHhfbWV0YWRhdGEgKnhza19idWZmX2dldF9tZXRhZGF0YShzdHJ1 Y3QgeHNrX2J1ZmZfcG9vbA0KPipwb29sLCB1NjQgYWRkcikNCj4rew0KPisJaWYgKCFwb29sLT50 eF9tZXRhZGF0YV9sZW4pDQo+KwkJcmV0dXJuIE5VTEw7DQo+Kw0KPisJcmV0dXJuIHhwX3Jhd19n ZXRfZGF0YShwb29sLCBhZGRyKSAtIHBvb2wtPnR4X21ldGFkYXRhX2xlbjsNCj4rfQ0KPisNCj4g c3RhdGljIGlubGluZSB2b2lkIHhza19idWZmX2RtYV9zeW5jX2Zvcl9jcHUoc3RydWN0IHhkcF9i dWZmICp4ZHAsIHN0cnVjdA0KPnhza19idWZmX3Bvb2wgKnBvb2wpDQo+IHsNCj4gCXN0cnVjdCB4 ZHBfYnVmZl94c2sgKnhza2IgPSBjb250YWluZXJfb2YoeGRwLCBzdHJ1Y3QgeGRwX2J1ZmZfeHNr LCB4ZHApOw0KPkBAIC0zMjQsNiArMzMyLDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqeHNrX2J1 ZmZfcmF3X2dldF9kYXRhKHN0cnVjdA0KPnhza19idWZmX3Bvb2wgKnBvb2wsIHU2NCBhZGRyKQ0K PiAJcmV0dXJuIE5VTEw7DQo+IH0NCj4NCj4rc3RhdGljIGlubGluZSBzdHJ1Y3QgeHNrX3R4X21l dGFkYXRhICp4c2tfYnVmZl9nZXRfbWV0YWRhdGEoc3RydWN0IHhza19idWZmX3Bvb2wNCj4qcG9v bCwgdTY0IGFkZHIpDQo+K3sNCj4rCXJldHVybiBOVUxMOw0KPit9DQo+Kw0KPiBzdGF0aWMgaW5s aW5lIHZvaWQgeHNrX2J1ZmZfZG1hX3N5bmNfZm9yX2NwdShzdHJ1Y3QgeGRwX2J1ZmYgKnhkcCwg c3RydWN0DQo+eHNrX2J1ZmZfcG9vbCAqcG9vbCkNCj4gew0KPiB9DQo+ZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbmV0L3hza19idWZmX3Bvb2wuaCBiL2luY2x1ZGUvbmV0L3hza19idWZmX3Bvb2wuaA0K PmluZGV4IDE5ODVmZmFmOWIwYy4uOTdmNWNjMTBkNzllIDEwMDY0NA0KPi0tLSBhL2luY2x1ZGUv bmV0L3hza19idWZmX3Bvb2wuaA0KPisrKyBiL2luY2x1ZGUvbmV0L3hza19idWZmX3Bvb2wuaA0K PkBAIC0zMyw2ICszMyw3IEBAIHN0cnVjdCB4ZHBfYnVmZl94c2sgew0KPiB9Ow0KPg0KPiAjZGVm aW5lIFhTS19DSEVDS19QUklWX1RZUEUodCkgQlVJTERfQlVHX09OKHNpemVvZih0KSA+IG9mZnNl dG9mZW5kKHN0cnVjdA0KPnhkcF9idWZmX3hzaywgY2IpKQ0KPisjZGVmaW5lIFhTS19UWF9DT01Q TF9GSVRTKHQpIEJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0DQo+eHNrX3R4X21ldGFkYXRhX2Nv bXBsKSA+IHNpemVvZih0KSkNCj4NCj4gc3RydWN0IHhza19kbWFfbWFwIHsNCj4gCWRtYV9hZGRy X3QgKmRtYV9wYWdlczsNCj5AQCAtMjM0LDQgKzIzNSw5IEBAIHN0YXRpYyBpbmxpbmUgdTY0IHhw X2dldF9oYW5kbGUoc3RydWN0IHhkcF9idWZmX3hzayAqeHNrYikNCj4gCXJldHVybiB4c2tiLT5v cmlnX2FkZHIgKyAob2Zmc2V0IDw8IFhTS19VTkFMSUdORURfQlVGX09GRlNFVF9TSElGVCk7DQo+ IH0NCj4NCj4rc3RhdGljIGlubGluZSBib29sIHhwX3R4X21ldGFkYXRhX2VuYWJsZWQoY29uc3Qg c3RydWN0IHhza19idWZmX3Bvb2wgKnBvb2wpDQo+K3sNCj4rCXJldHVybiBwb29sLT50eF9tZXRh ZGF0YV9sZW4gPiAwOw0KPit9DQo+Kw0KPiAjZW5kaWYgLyogWFNLX0JVRkZfUE9PTF9IXyAqLw0K PmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfeGRwLmggYi9pbmNsdWRlL3VhcGkv bGludXgvaWZfeGRwLmgNCj5pbmRleCAyZWNmNzkyODJjMjYuLmVjZmQ2Nzk4ODI4MyAxMDA2NDQN Cj4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfeGRwLmgNCj4rKysgYi9pbmNsdWRlL3VhcGkv bGludXgvaWZfeGRwLmgNCj5AQCAtMTA2LDYgKzEwNiw0MyBAQCBzdHJ1Y3QgeGRwX29wdGlvbnMg ew0KPiAjZGVmaW5lIFhTS19VTkFMSUdORURfQlVGX0FERFJfTUFTSyBcDQo+IAkoKDFVTEwgPDwg WFNLX1VOQUxJR05FRF9CVUZfT0ZGU0VUX1NISUZUKSAtIDEpDQo+DQo+Ky8qIFJlcXVlc3QgdHJh bnNtaXQgdGltZXN0YW1wLiBVcG9uIGNvbXBsZXRpb24sIHB1dCBpdCBpbnRvIHR4X3RpbWVzdGFt cA0KPisgKiBmaWVsZCBvZiBzdHJ1Y3QgeHNrX3R4X21ldGFkYXRhLg0KPisgKi8NCj4rI2RlZmlu ZSBYRFBfVFhfTUVUQURBVEFfVElNRVNUQU1QCQkoMSA8PCAwKQ0KPisNCj4rLyogUmVxdWVzdCB0 cmFuc21pdCBjaGVja3N1bSBvZmZsb2FkLiBDaGVja3N1bSBzdGFydCBwb3NpdGlvbiBhbmQgb2Zm c2V0DQo+KyAqIGFyZSBjb21tdW5pY2F0ZWQgdmlhIGNzdW1fc3RhcnQgYW5kIGNzdW1fb2Zmc2V0 IGZpZWxkcyBvZiBzdHJ1Y3QNCj4rICogeHNrX3R4X21ldGFkYXRhLg0KPisgKi8NCj4rI2RlZmlu ZSBYRFBfVFhfTUVUQURBVEFfQ0hFQ0tTVU0JCSgxIDw8IDEpDQo+Kw0KPisvKiBGb3JjZSBjaGVj a3N1bSBjYWxjdWxhdGlvbiBpbiBzb2Z0d2FyZS4gQ2FuIGJlIHVzZWQgZm9yIHRlc3Rpbmcgb3IN Cj4rICogd29ya2luZyBhcm91bmQgcG90ZW50aWFsIEhXIGlzc3Vlcy4gVGhpcyBvcHRpb24gY2F1 c2VzIHBlcmZvcm1hbmNlDQo+KyAqIGRlZ3JhZGF0aW9uIGFuZCBvbmx5IHdvcmtzIGluIFhEUF9D T1BZIG1vZGUuDQo+KyAqLw0KPisjZGVmaW5lIFhEUF9UWF9NRVRBREFUQV9DSEVDS1NVTV9TVwkJ KDEgPDwgMikNCj4rDQo+K3N0cnVjdCB4c2tfdHhfbWV0YWRhdGEgew0KPisJdW5pb24gew0KPisJ CXN0cnVjdCB7DQo+KwkJCV9fdTMyIGZsYWdzOw0KPisNCj4rCQkJLyogWERQX1RYX01FVEFEQVRB X0NIRUNLU1VNICovDQo+Kw0KPisJCQkvKiBPZmZzZXQgZnJvbSBkZXNjLT5hZGRyIHdoZXJlIGNo ZWNrc3VtbWluZyBzaG91bGQgc3RhcnQuDQo+Ki8NCj4rCQkJX191MTYgY3N1bV9zdGFydDsNCj4r CQkJLyogT2Zmc2V0IGZyb20gY3N1bV9zdGFydCB3aGVyZSBjaGVja3N1bSBzaG91bGQgYmUgc3Rv cmVkLg0KPiovDQo+KwkJCV9fdTE2IGNzdW1fb2Zmc2V0Ow0KPisJCX07DQo+Kw0KPisJCXN0cnVj dCB7DQo+KwkJCS8qIFhEUF9UWF9NRVRBREFUQV9USU1FU1RBTVAgKi8NCj4rCQkJX191NjQgdHhf dGltZXN0YW1wOw0KPisJCX0gY29tcGxldGlvbjsNCj4rCX07DQo+K307DQo+Kw0KPiAvKiBSeC9U eCBkZXNjcmlwdG9yICovDQo+IHN0cnVjdCB4ZHBfZGVzYyB7DQo+IAlfX3U2NCBhZGRyOw0KPkBA IC0xMjIsNCArMTU5LDcgQEAgc3RydWN0IHhkcF9kZXNjIHsNCj4gICovDQo+ICNkZWZpbmUgWERQ X1BLVF9DT05URCAoMSA8PCAwKQ0KPg0KPisvKiBUWCBwYWNrZXQgY2FycmllcyB2YWxpZCBtZXRh ZGF0YS4gKi8NCj4rI2RlZmluZSBYRFBfVFhfTUVUQURBVEEgKDEgPDwgMSkNCj4rDQo+ICNlbmRp ZiAvKiBfTElOVVhfSUZfWERQX0ggKi8NCj5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4 L25ldGRldi5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oDQo+aW5kZXggMjk0M2ExNTFk NGYxLi40OGQ1NDc3YTY2OGMgMTAwNjQ0DQo+LS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldGRl di5oDQo+KysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oDQo+QEAgLTUzLDEyICs1Mywy OCBAQCBlbnVtIG5ldGRldl94ZHBfcnhfbWV0YWRhdGEgew0KPiAJTkVUREVWX1hEUF9SWF9NRVRB REFUQV9NQVNLID0gMywNCj4gfTsNCj4NCj4rLyoqDQo+KyAqIGVudW0gbmV0ZGV2X3hza19mbGFn cw0KPisgKiBATkVUREVWX1hTS19GTEFHU19UWF9USU1FU1RBTVA6IEhXIHRpbWVzdGFtcGluZyBl Z3Jlc3MgcGFja2V0cyBpcw0KPnN1cHBvcnRlZA0KPisgKiAgIGJ5IHRoZSBkcml2ZXIuDQo+KyAq IEBORVRERVZfWFNLX0ZMQUdTX1RYX0NIRUNLU1VNOiBMMyBjaGVja3N1bSBIVyBvZmZsb2FkIGlz IHN1cHBvcnRlZCBieQ0KPnRoZQ0KPisgKiAgIGRyaXZlci4NCj4rICovDQo+K2VudW0gbmV0ZGV2 X3hza19mbGFncyB7DQo+KwlORVRERVZfWFNLX0ZMQUdTX1RYX1RJTUVTVEFNUCA9IDEsDQo+KwlO RVRERVZfWFNLX0ZMQUdTX1RYX0NIRUNLU1VNID0gMiwNCj4rDQo+KwkvKiBwcml2YXRlOiAqLw0K PisJTkVUREVWX1hTS19GTEFHU19NQVNLID0gMywNCj4rfTsNCj4rDQo+IGVudW0gew0KPiAJTkVU REVWX0FfREVWX0lGSU5ERVggPSAxLA0KPiAJTkVUREVWX0FfREVWX1BBRCwNCj4gCU5FVERFVl9B X0RFVl9YRFBfRkVBVFVSRVMsDQo+IAlORVRERVZfQV9ERVZfWERQX1pDX01BWF9TRUdTLA0KPiAJ TkVUREVWX0FfREVWX1hEUF9SWF9NRVRBREFUQV9GRUFUVVJFUywNCj4rCU5FVERFVl9BX0RFVl9Y U0tfRkVBVFVSRVMsDQo+DQo+IAlfX05FVERFVl9BX0RFVl9NQVgsDQo+IAlORVRERVZfQV9ERVZf TUFYID0gKF9fTkVUREVWX0FfREVWX01BWCAtIDEpDQo+ZGlmZiAtLWdpdCBhL25ldC9jb3JlL25l dGRldi1nZW5sLmMgYi9uZXQvY29yZS9uZXRkZXYtZ2VubC5jDQo+aW5kZXggZmU2MWY4NWJjZjMz Li41ZDg4OWMyNDI1ZmQgMTAwNjQ0DQo+LS0tIGEvbmV0L2NvcmUvbmV0ZGV2LWdlbmwuYw0KPisr KyBiL25ldC9jb3JlL25ldGRldi1nZW5sLmMNCj5AQCAtMTQsNiArMTQsNyBAQCBuZXRkZXZfbmxf ZGV2X2ZpbGwoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IHNrX2J1ZmYNCj4qcnNw LA0KPiAJCSAgIGNvbnN0IHN0cnVjdCBnZW5sX2luZm8gKmluZm8pDQo+IHsNCj4gCXU2NCB4ZHBf cnhfbWV0YSA9IDA7DQo+Kwl1NjQgeHNrX2ZlYXR1cmVzID0gMDsNCj4gCXZvaWQgKmhkcjsNCj4N Cj4gCWhkciA9IGdlbmxtc2dfaXB1dChyc3AsIGluZm8pOw0KPkBAIC0yNiwxMSArMjcsMjAgQEAg bmV0ZGV2X25sX2Rldl9maWxsKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBza19i dWZmDQo+KnJzcCwNCj4gWERQX01FVEFEQVRBX0tGVU5DX3h4eA0KPiAjdW5kZWYgWERQX01FVEFE QVRBX0tGVU5DDQo+DQo+KwlpZiAobmV0ZGV2LT54c2tfdHhfbWV0YWRhdGFfb3BzKSB7DQo+KwkJ aWYgKG5ldGRldi0+eHNrX3R4X21ldGFkYXRhX29wcy0+dG1vX2ZpbGxfdGltZXN0YW1wKQ0KPisJ CQl4c2tfZmVhdHVyZXMgfD0gTkVUREVWX1hTS19GTEFHU19UWF9USU1FU1RBTVA7DQo+KwkJaWYg KG5ldGRldi0+eHNrX3R4X21ldGFkYXRhX29wcy0+dG1vX3JlcXVlc3RfY2hlY2tzdW0pDQo+KwkJ CXhza19mZWF0dXJlcyB8PSBORVRERVZfWFNLX0ZMQUdTX1RYX0NIRUNLU1VNOw0KPisJfQ0KPisN Cj4gCWlmIChubGFfcHV0X3UzMihyc3AsIE5FVERFVl9BX0RFVl9JRklOREVYLCBuZXRkZXYtPmlm aW5kZXgpIHx8DQo+IAkgICAgbmxhX3B1dF91NjRfNjRiaXQocnNwLCBORVRERVZfQV9ERVZfWERQ X0ZFQVRVUkVTLA0KPiAJCQkgICAgICBuZXRkZXYtPnhkcF9mZWF0dXJlcywgTkVUREVWX0FfREVW X1BBRCkgfHwNCj4gCSAgICBubGFfcHV0X3U2NF82NGJpdChyc3AsIE5FVERFVl9BX0RFVl9YRFBf UlhfTUVUQURBVEFfRkVBVFVSRVMsDQo+LQkJCSAgICAgIHhkcF9yeF9tZXRhLCBORVRERVZfQV9E RVZfUEFEKSkgew0KPisJCQkgICAgICB4ZHBfcnhfbWV0YSwgTkVUREVWX0FfREVWX1BBRCkgfHwN Cj4rCSAgICBubGFfcHV0X3U2NF82NGJpdChyc3AsIE5FVERFVl9BX0RFVl9YU0tfRkVBVFVSRVMs DQo+KwkJCSAgICAgIHhza19mZWF0dXJlcywgTkVUREVWX0FfREVWX1BBRCkpIHsNCj4gCQlnZW5s bXNnX2NhbmNlbChyc3AsIGhkcik7DQo+IAkJcmV0dXJuIC1FSU5WQUw7DQo+IAl9DQo+ZGlmZiAt LWdpdCBhL25ldC94ZHAveHNrLmMgYi9uZXQveGRwL3hzay5jDQo+aW5kZXggYmE0Yzc3YTI0YTgz Li5jNDQxYTllYWRiZDUgMTAwNjQ0DQo+LS0tIGEvbmV0L3hkcC94c2suYw0KPisrKyBiL25ldC94 ZHAveHNrLmMNCj5AQCAtNTUzLDYgKzU1MywxMyBAQCBzdGF0aWMgdTMyIHhza19nZXRfbnVtX2Rl c2Moc3RydWN0IHNrX2J1ZmYgKnNrYikNCj4NCj4gc3RhdGljIHZvaWQgeHNrX2Rlc3RydWN0X3Nr YihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPiB7DQo+KwlzdHJ1Y3QgeHNrX3R4X21ldGFkYXRhX2Nv bXBsICpjb21wbCA9ICZza2Jfc2hpbmZvKHNrYiktPnhza19tZXRhOw0KPisNCj4rCWlmIChjb21w bC0+dHhfdGltZXN0YW1wKSB7DQo+KwkJLyogc3cgY29tcGxldGlvbiB0aW1lc3RhbXAsIG5vdCBh IHJlYWwgb25lICovDQo+KwkJKmNvbXBsLT50eF90aW1lc3RhbXAgPSBrdGltZV9nZXRfdGFpX2Zh c3RfbnMoKTsNCj4rCX0NCj4rDQo+IAl4c2tfY3Ffc3VibWl0X2xvY2tlZCh4ZHBfc2soc2tiLT5z ayksIHhza19nZXRfbnVtX2Rlc2Moc2tiKSk7DQo+IAlzb2NrX3dmcmVlKHNrYik7DQo+IH0NCj5A QCAtNjM3LDggKzY0NCwxMCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnhza19idWlsZF9za2Jf emVyb2NvcHkoc3RydWN0DQo+eGRwX3NvY2sgKnhzLA0KPiBzdGF0aWMgc3RydWN0IHNrX2J1ZmYg Knhza19idWlsZF9za2Ioc3RydWN0IHhkcF9zb2NrICp4cywNCj4gCQkJCSAgICAgc3RydWN0IHhk cF9kZXNjICpkZXNjKQ0KPiB7DQo+KwlzdHJ1Y3QgeHNrX3R4X21ldGFkYXRhICptZXRhID0gTlVM TDsNCj4gCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSB4cy0+ZGV2Ow0KPiAJc3RydWN0IHNrX2J1 ZmYgKnNrYiA9IHhzLT5za2I7DQo+Kwlib29sIGZpcnN0X2ZyYWcgPSBmYWxzZTsNCj4gCWludCBl cnI7DQo+DQo+IAlpZiAoZGV2LT5wcml2X2ZsYWdzICYgSUZGX1RYX1NLQl9OT19MSU5FQVIpIHsN Cj5AQCAtNjY5LDYgKzY3OCw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqeHNrX2J1aWxkX3Nr YihzdHJ1Y3QgeGRwX3NvY2sgKnhzLA0KPiAJCQkJa2ZyZWVfc2tiKHNrYik7DQo+IAkJCQlnb3Rv IGZyZWVfZXJyOw0KPiAJCQl9DQo+Kw0KPisJCQlmaXJzdF9mcmFnID0gdHJ1ZTsNCj4gCQl9IGVs c2Ugew0KPiAJCQlpbnQgbnJfZnJhZ3MgPSBza2Jfc2hpbmZvKHNrYiktPm5yX2ZyYWdzOw0KPiAJ CQlzdHJ1Y3QgcGFnZSAqcGFnZTsNCj5AQCAtNjkxLDEyICs3MDIsNDAgQEAgc3RhdGljIHN0cnVj dCBza19idWZmICp4c2tfYnVpbGRfc2tiKHN0cnVjdCB4ZHBfc29jayAqeHMsDQo+DQo+IAkJCXNr Yl9hZGRfcnhfZnJhZyhza2IsIG5yX2ZyYWdzLCBwYWdlLCAwLCBsZW4sIDApOw0KPiAJCX0NCj4r DQo+KwkJaWYgKGZpcnN0X2ZyYWcgJiYgZGVzYy0+b3B0aW9ucyAmIFhEUF9UWF9NRVRBREFUQSkg ew0KPisJCQlpZiAodW5saWtlbHkoeHMtPnBvb2wtPnR4X21ldGFkYXRhX2xlbiA9PSAwKSkgew0K PisJCQkJZXJyID0gLUVJTlZBTDsNCj4rCQkJCWdvdG8gZnJlZV9lcnI7DQo+KwkJCX0NCj4rDQo+ KwkJCW1ldGEgPSBidWZmZXIgLSB4cy0+cG9vbC0+dHhfbWV0YWRhdGFfbGVuOw0KPisNCj4rCQkJ aWYgKG1ldGEtPmZsYWdzICYgWERQX1RYX01FVEFEQVRBX0NIRUNLU1VNKSB7DQo+KwkJCQlpZiAo dW5saWtlbHkobWV0YS0+Y3N1bV9zdGFydCArIG1ldGEtPmNzdW1fb2Zmc2V0ICsNCj4rCQkJCQkg ICAgIHNpemVvZihfX3N1bTE2KSA+IGxlbikpIHsNCj4rCQkJCQllcnIgPSAtRUlOVkFMOw0KPisJ CQkJCWdvdG8gZnJlZV9lcnI7DQo+KwkJCQl9DQo+Kw0KPisJCQkJc2tiLT5jc3VtX3N0YXJ0ID0g aHIgKyBtZXRhLT5jc3VtX3N0YXJ0Ow0KPisJCQkJc2tiLT5jc3VtX29mZnNldCA9IG1ldGEtPmNz dW1fb2Zmc2V0Ow0KPisJCQkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9QQVJUSUFMOw0KPisN Cj4rCQkJCWlmICh1bmxpa2VseShtZXRhLT5mbGFncyAmDQo+WERQX1RYX01FVEFEQVRBX0NIRUNL U1VNX1NXKSkgew0KPisJCQkJCWVyciA9IHNrYl9jaGVja3N1bV9oZWxwKHNrYik7DQo+KwkJCQkJ aWYgKGVycikNCj4rCQkJCQkJZ290byBmcmVlX2VycjsNCj4rCQkJCX0NCj4rCQkJfQ0KPisJCX0N Cj4gCX0NCj4NCj4gCXNrYi0+ZGV2ID0gZGV2Ow0KPiAJc2tiLT5wcmlvcml0eSA9IFJFQURfT05D RSh4cy0+c2suc2tfcHJpb3JpdHkpOw0KPiAJc2tiLT5tYXJrID0gUkVBRF9PTkNFKHhzLT5zay5z a19tYXJrKTsNCj4gCXNrYi0+ZGVzdHJ1Y3RvciA9IHhza19kZXN0cnVjdF9za2I7DQo+Kwl4c2tf dHhfbWV0YWRhdGFfdG9fY29tcGwobWV0YSwgJnNrYl9zaGluZm8oc2tiKS0+eHNrX21ldGEpOw0K PiAJeHNrX3NldF9kZXN0cnVjdG9yX2FyZyhza2IpOw0KPg0KPiAJcmV0dXJuIHNrYjsNCj5kaWZm IC0tZ2l0IGEvbmV0L3hkcC94c2tfcXVldWUuaCBiL25ldC94ZHAveHNrX3F1ZXVlLmgNCj5pbmRl eCBjNzRhMTM3MmJjYjkuLjZmMmQxNjIxYzk5MiAxMDA2NDQNCj4tLS0gYS9uZXQveGRwL3hza19x dWV1ZS5oDQo+KysrIGIvbmV0L3hkcC94c2tfcXVldWUuaA0KPkBAIC0xMzcsNyArMTM3LDcgQEAg c3RhdGljIGlubGluZSBib29sIHhza3FfY29uc19yZWFkX2FkZHJfdW5jaGVja2VkKHN0cnVjdA0K Pnhza19xdWV1ZSAqcSwgdTY0ICphZGRyKQ0KPg0KPiBzdGF0aWMgaW5saW5lIGJvb2wgeHBfdW51 c2VkX29wdGlvbnNfc2V0KHUzMiBvcHRpb25zKQ0KPiB7DQo+LQlyZXR1cm4gb3B0aW9ucyAmIH5Y RFBfUEtUX0NPTlREOw0KPisJcmV0dXJuIG9wdGlvbnMgJiB+KFhEUF9QS1RfQ09OVEQgfCBYRFBf VFhfTUVUQURBVEEpOw0KPiB9DQo+DQo+IHN0YXRpYyBpbmxpbmUgYm9vbCB4cF9hbGlnbmVkX3Zh bGlkYXRlX2Rlc2Moc3RydWN0IHhza19idWZmX3Bvb2wgKnBvb2wsDQo+ZGlmZiAtLWdpdCBhL3Rv b2xzL2luY2x1ZGUvdWFwaS9saW51eC9pZl94ZHAuaCBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51 eC9pZl94ZHAuaA0KPmluZGV4IDM0NDExYTJlNWI2Yy4uNTNjZWFhZTEwZGQxIDEwMDY0NA0KPi0t LSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pZl94ZHAuaA0KPisrKyBiL3Rvb2xzL2luY2x1 ZGUvdWFwaS9saW51eC9pZl94ZHAuaA0KPkBAIC0yNiwxMSArMjYsMTEgQEANCj4gICovDQo+ICNk ZWZpbmUgWERQX1VTRV9ORUVEX1dBS0VVUCAoMSA8PCAzKQ0KPiAvKiBCeSBzZXR0aW5nIHRoaXMg b3B0aW9uLCB1c2Vyc3BhY2UgYXBwbGljYXRpb24gaW5kaWNhdGVzIHRoYXQgaXQgY2FuDQo+LSAq IGhhbmRsZSBtdWx0aXBsZSBkZXNjcmlwdG9ycyBwZXIgcGFja2V0IHRodXMgZW5hYmxpbmcgeHNr IGNvcmUgdG8gc3BsaXQNCj4rICogaGFuZGxlIG11bHRpcGxlIGRlc2NyaXB0b3JzIHBlciBwYWNr ZXQgdGh1cyBlbmFibGluZyBBRl9YRFAgdG8gc3BsaXQNCj4gICogbXVsdGktYnVmZmVyIFhEUCBm cmFtZXMgaW50byBtdWx0aXBsZSBSeCBkZXNjcmlwdG9ycy4gV2l0aG91dCB0aGlzIHNldA0KPi0g KiBzdWNoIGZyYW1lcyB3aWxsIGJlIGRyb3BwZWQgYnkgeHNrLg0KPisgKiBzdWNoIGZyYW1lcyB3 aWxsIGJlIGRyb3BwZWQuDQo+ICAqLw0KPi0jZGVmaW5lIFhEUF9VU0VfU0cgICAgICgxIDw8IDQp DQo+KyNkZWZpbmUgWERQX1VTRV9TRwkoMSA8PCA0KQ0KPg0KPiAvKiBGbGFncyBmb3IgeHNrX3Vt ZW1fY29uZmlnIGZsYWdzICovDQo+ICNkZWZpbmUgWERQX1VNRU1fVU5BTElHTkVEX0NIVU5LX0ZM QUcgKDEgPDwgMCkNCj5AQCAtMTA2LDYgKzEwNiw0MyBAQCBzdHJ1Y3QgeGRwX29wdGlvbnMgew0K PiAjZGVmaW5lIFhTS19VTkFMSUdORURfQlVGX0FERFJfTUFTSyBcDQo+IAkoKDFVTEwgPDwgWFNL X1VOQUxJR05FRF9CVUZfT0ZGU0VUX1NISUZUKSAtIDEpDQo+DQo+Ky8qIFJlcXVlc3QgdHJhbnNt aXQgdGltZXN0YW1wLiBVcG9uIGNvbXBsZXRpb24sIHB1dCBpdCBpbnRvIHR4X3RpbWVzdGFtcA0K PisgKiBmaWVsZCBvZiB1bmlvbiB4c2tfdHhfbWV0YWRhdGEuDQo+KyAqLw0KPisjZGVmaW5lIFhE UF9UWF9NRVRBREFUQV9USU1FU1RBTVAJCSgxIDw8IDApDQo+Kw0KPisvKiBSZXF1ZXN0IHRyYW5z bWl0IGNoZWNrc3VtIG9mZmxvYWQuIENoZWNrc3VtIHN0YXJ0IHBvc2l0aW9uIGFuZCBvZmZzZXQN Cj4rICogYXJlIGNvbW11bmljYXRlZCB2aWEgY3N1bV9zdGFydCBhbmQgY3N1bV9vZmZzZXQgZmll bGRzIG9mIHVuaW9uDQo+KyAqIHhza190eF9tZXRhZGF0YS4NCj4rICovDQo+KyNkZWZpbmUgWERQ X1RYX01FVEFEQVRBX0NIRUNLU1VNCQkoMSA8PCAxKQ0KPisNCj4rLyogRm9yY2UgY2hlY2tzdW0g Y2FsY3VsYXRpb24gaW4gc29mdHdhcmUuIENhbiBiZSB1c2VkIGZvciB0ZXN0aW5nIG9yDQo+KyAq IHdvcmtpbmcgYXJvdW5kIHBvdGVudGlhbCBIVyBpc3N1ZXMuIFRoaXMgb3B0aW9uIGNhdXNlcyBw ZXJmb3JtYW5jZQ0KPisgKiBkZWdyYWRhdGlvbiBhbmQgb25seSB3b3JrcyBpbiBYRFBfQ09QWSBt b2RlLg0KPisgKi8NCj4rI2RlZmluZSBYRFBfVFhfTUVUQURBVEFfQ0hFQ0tTVU1fU1cJCSgxIDw8 IDIpDQo+Kw0KPitzdHJ1Y3QgeHNrX3R4X21ldGFkYXRhIHsNCj4rCXVuaW9uIHsNCj4rCQlzdHJ1 Y3Qgew0KPisJCQlfX3UzMiBmbGFnczsNCj4rDQo+KwkJCS8qIFhEUF9UWF9NRVRBREFUQV9DSEVD S1NVTSAqLw0KPisNCj4rCQkJLyogT2Zmc2V0IGZyb20gZGVzYy0+YWRkciB3aGVyZSBjaGVja3N1 bW1pbmcgc2hvdWxkIHN0YXJ0Lg0KPiovDQo+KwkJCV9fdTE2IGNzdW1fc3RhcnQ7DQo+KwkJCS8q IE9mZnNldCBmcm9tIGNzdW1fc3RhcnQgd2hlcmUgY2hlY2tzdW0gc2hvdWxkIGJlIHN0b3JlZC4N Cj4qLw0KPisJCQlfX3UxNiBjc3VtX29mZnNldDsNCj4rCQl9Ow0KPisNCj4rCQlzdHJ1Y3Qgew0K PisJCQkvKiBYRFBfVFhfTUVUQURBVEFfVElNRVNUQU1QICovDQo+KwkJCV9fdTY0IHR4X3RpbWVz dGFtcDsNCj4rCQl9IGNvbXBsZXRpb247DQo+Kwl9Ow0KPit9Ow0KPisNCj4gLyogUngvVHggZGVz Y3JpcHRvciAqLw0KPiBzdHJ1Y3QgeGRwX2Rlc2Mgew0KPiAJX191NjQgYWRkcjsNCj5AQCAtMTEz LDkgKzE1MCwxNiBAQCBzdHJ1Y3QgeGRwX2Rlc2Mgew0KPiAJX191MzIgb3B0aW9uczsNCj4gfTsN Cj4NCj4tLyogRmxhZyBpbmRpY2F0aW5nIHBhY2tldCBjb25zdGl0dXRlcyBvZiBtdWx0aXBsZSBi dWZmZXJzKi8NCj4rLyogVU1FTSBkZXNjcmlwdG9yIGlzIF9fdTY0ICovDQo+Kw0KPisvKiBGbGFn IGluZGljYXRpbmcgdGhhdCB0aGUgcGFja2V0IGNvbnRpbnVlcyB3aXRoIHRoZSBidWZmZXIgcG9p bnRlZCBvdXQgYnkgdGhlDQo+KyAqIG5leHQgZnJhbWUgaW4gdGhlIHJpbmcuIFRoZSBlbmQgb2Yg dGhlIHBhY2tldCBpcyBzaWduYWxsZWQgYnkgc2V0dGluZyB0aGlzDQo+KyAqIGJpdCB0byB6ZXJv LiBGb3Igc2luZ2xlIGJ1ZmZlciBwYWNrZXRzLCBldmVyeSBkZXNjcmlwdG9yIGhhcyAnb3B0aW9u cycgc2V0DQo+KyAqIHRvIDAgYW5kIHRoaXMgbWFpbnRhaW5zIGJhY2t3YXJkIGNvbXBhdGliaWxp dHkuDQo+KyAqLw0KPiAjZGVmaW5lIFhEUF9QS1RfQ09OVEQgKDEgPDwgMCkNCj4NCj4tLyogVU1F TSBkZXNjcmlwdG9yIGlzIF9fdTY0ICovDQo+Ky8qIFRYIHBhY2tldCBjYXJyaWVzIHZhbGlkIG1l dGFkYXRhLiAqLw0KPisjZGVmaW5lIFhEUF9UWF9NRVRBREFUQSAoMSA8PCAxKQ0KPg0KPiAjZW5k aWYgLyogX0xJTlVYX0lGX1hEUF9IICovDQo+ZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFw aS9saW51eC9uZXRkZXYuaCBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9uZXRkZXYuaA0KPmlu ZGV4IDI5NDNhMTUxZDRmMS4uNDhkNTQ3N2E2NjhjIDEwMDY0NA0KPi0tLSBhL3Rvb2xzL2luY2x1 ZGUvdWFwaS9saW51eC9uZXRkZXYuaA0KPisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9u ZXRkZXYuaA0KPkBAIC01MywxMiArNTMsMjggQEAgZW51bSBuZXRkZXZfeGRwX3J4X21ldGFkYXRh IHsNCj4gCU5FVERFVl9YRFBfUlhfTUVUQURBVEFfTUFTSyA9IDMsDQo+IH07DQo+DQo+Ky8qKg0K PisgKiBlbnVtIG5ldGRldl94c2tfZmxhZ3MNCj4rICogQE5FVERFVl9YU0tfRkxBR1NfVFhfVElN RVNUQU1QOiBIVyB0aW1lc3RhbXBpbmcgZWdyZXNzIHBhY2tldHMgaXMNCj5zdXBwb3J0ZWQNCj4r ICogICBieSB0aGUgZHJpdmVyLg0KPisgKiBATkVUREVWX1hTS19GTEFHU19UWF9DSEVDS1NVTTog TDMgY2hlY2tzdW0gSFcgb2ZmbG9hZCBpcyBzdXBwb3J0ZWQgYnkNCj50aGUNCj4rICogICBkcml2 ZXIuDQo+KyAqLw0KPitlbnVtIG5ldGRldl94c2tfZmxhZ3Mgew0KPisJTkVUREVWX1hTS19GTEFH U19UWF9USU1FU1RBTVAgPSAxLA0KPisJTkVUREVWX1hTS19GTEFHU19UWF9DSEVDS1NVTSA9IDIs DQo+Kw0KPisJLyogcHJpdmF0ZTogKi8NCj4rCU5FVERFVl9YU0tfRkxBR1NfTUFTSyA9IDMsDQo+ K307DQo+Kw0KPiBlbnVtIHsNCj4gCU5FVERFVl9BX0RFVl9JRklOREVYID0gMSwNCj4gCU5FVERF Vl9BX0RFVl9QQUQsDQo+IAlORVRERVZfQV9ERVZfWERQX0ZFQVRVUkVTLA0KPiAJTkVUREVWX0Ff REVWX1hEUF9aQ19NQVhfU0VHUywNCj4gCU5FVERFVl9BX0RFVl9YRFBfUlhfTUVUQURBVEFfRkVB VFVSRVMsDQo+KwlORVRERVZfQV9ERVZfWFNLX0ZFQVRVUkVTLA0KPg0KPiAJX19ORVRERVZfQV9E RVZfTUFYLA0KPiAJTkVUREVWX0FfREVWX01BWCA9IChfX05FVERFVl9BX0RFVl9NQVggLSAxKQ0K PmRpZmYgLS1naXQgYS90b29scy9uZXQveW5sL2dlbmVyYXRlZC9uZXRkZXYtdXNlci5jIGIvdG9v bHMvbmV0L3lubC9nZW5lcmF0ZWQvbmV0ZGV2LQ0KPnVzZXIuYw0KPmluZGV4IGI1ZmZlOGNkMTE0 NC4uNjI4M2Q4N2RhZDM3IDEwMDY0NA0KPi0tLSBhL3Rvb2xzL25ldC95bmwvZ2VuZXJhdGVkL25l dGRldi11c2VyLmMNCj4rKysgYi90b29scy9uZXQveW5sL2dlbmVyYXRlZC9uZXRkZXYtdXNlci5j DQo+QEAgLTU4LDYgKzU4LDE5IEBAIGNvbnN0IGNoYXIgKm5ldGRldl94ZHBfcnhfbWV0YWRhdGFf c3RyKGVudW0NCj5uZXRkZXZfeGRwX3J4X21ldGFkYXRhIHZhbHVlKQ0KPiAJcmV0dXJuIG5ldGRl dl94ZHBfcnhfbWV0YWRhdGFfc3RybWFwW3ZhbHVlXTsNCj4gfQ0KPg0KPitzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IG5ldGRldl94c2tfZmxhZ3Nfc3RybWFwW10gPSB7DQo+KwlbMF0gPSAidHgt dGltZXN0YW1wIiwNCj4rCVsxXSA9ICJ0eC1jaGVja3N1bSIsDQo+K307DQo+Kw0KPitjb25zdCBj aGFyICpuZXRkZXZfeHNrX2ZsYWdzX3N0cihlbnVtIG5ldGRldl94c2tfZmxhZ3MgdmFsdWUpDQo+ K3sNCj4rCXZhbHVlID0gZmZzKHZhbHVlKSAtIDE7DQo+KwlpZiAodmFsdWUgPCAwIHx8IHZhbHVl ID49IChpbnQpTU5MX0FSUkFZX1NJWkUobmV0ZGV2X3hza19mbGFnc19zdHJtYXApKQ0KPisJCXJl dHVybiBOVUxMOw0KPisJcmV0dXJuIG5ldGRldl94c2tfZmxhZ3Nfc3RybWFwW3ZhbHVlXTsNCj4r fQ0KPisNCj4gLyogUG9saWNpZXMgKi8NCj4gc3RydWN0IHlubF9wb2xpY3lfYXR0ciBuZXRkZXZf ZGV2X3BvbGljeVtORVRERVZfQV9ERVZfTUFYICsgMV0gPSB7DQo+IAlbTkVUREVWX0FfREVWX0lG SU5ERVhdID0geyAubmFtZSA9ICJpZmluZGV4IiwgLnR5cGUgPSBZTkxfUFRfVTMyLCB9LA0KPkBA IC02NSw2ICs3OCw3IEBAIHN0cnVjdCB5bmxfcG9saWN5X2F0dHIgbmV0ZGV2X2Rldl9wb2xpY3lb TkVUREVWX0FfREVWX01BWA0KPisgMV0gPSB7DQo+IAlbTkVUREVWX0FfREVWX1hEUF9GRUFUVVJF U10gPSB7IC5uYW1lID0gInhkcC1mZWF0dXJlcyIsIC50eXBlID0NCj5ZTkxfUFRfVTY0LCB9LA0K PiAJW05FVERFVl9BX0RFVl9YRFBfWkNfTUFYX1NFR1NdID0geyAubmFtZSA9ICJ4ZHAtemMtbWF4 LXNlZ3MiLCAudHlwZSA9DQo+WU5MX1BUX1UzMiwgfSwNCj4gCVtORVRERVZfQV9ERVZfWERQX1JY X01FVEFEQVRBX0ZFQVRVUkVTXSA9IHsgLm5hbWUgPSAieGRwLXJ4LQ0KPm1ldGFkYXRhLWZlYXR1 cmVzIiwgLnR5cGUgPSBZTkxfUFRfVTY0LCB9LA0KPisJW05FVERFVl9BX0RFVl9YU0tfRkVBVFVS RVNdID0geyAubmFtZSA9ICJ4c2stZmVhdHVyZXMiLCAudHlwZSA9DQo+WU5MX1BUX1U2NCwgfSwN Cj4gfTsNCj4NCj4gc3RydWN0IHlubF9wb2xpY3lfbmVzdCBuZXRkZXZfZGV2X25lc3QgPSB7DQo+ QEAgLTExNiw2ICsxMzAsMTEgQEAgaW50IG5ldGRldl9kZXZfZ2V0X3JzcF9wYXJzZShjb25zdCBz dHJ1Y3Qgbmxtc2doZHIgKm5saCwNCj52b2lkICpkYXRhKQ0KPiAJCQkJcmV0dXJuIE1OTF9DQl9F UlJPUjsNCj4gCQkJZHN0LT5fcHJlc2VudC54ZHBfcnhfbWV0YWRhdGFfZmVhdHVyZXMgPSAxOw0K PiAJCQlkc3QtPnhkcF9yeF9tZXRhZGF0YV9mZWF0dXJlcyA9IG1ubF9hdHRyX2dldF91NjQoYXR0 cik7DQo+KwkJfSBlbHNlIGlmICh0eXBlID09IE5FVERFVl9BX0RFVl9YU0tfRkVBVFVSRVMpIHsN Cj4rCQkJaWYgKHlubF9hdHRyX3ZhbGlkYXRlKHlhcmcsIGF0dHIpKQ0KPisJCQkJcmV0dXJuIE1O TF9DQl9FUlJPUjsNCj4rCQkJZHN0LT5fcHJlc2VudC54c2tfZmVhdHVyZXMgPSAxOw0KPisJCQlk c3QtPnhza19mZWF0dXJlcyA9IG1ubF9hdHRyX2dldF91NjQoYXR0cik7DQo+IAkJfQ0KPiAJfQ0K Pg0KPmRpZmYgLS1naXQgYS90b29scy9uZXQveW5sL2dlbmVyYXRlZC9uZXRkZXYtdXNlci5oIGIv dG9vbHMvbmV0L3lubC9nZW5lcmF0ZWQvbmV0ZGV2LQ0KPnVzZXIuaA0KPmluZGV4IGI0MzUxZmYz NDU5NS4uYmRiZDE3NjZjZTQ2IDEwMDY0NA0KPi0tLSBhL3Rvb2xzL25ldC95bmwvZ2VuZXJhdGVk L25ldGRldi11c2VyLmgNCj4rKysgYi90b29scy9uZXQveW5sL2dlbmVyYXRlZC9uZXRkZXYtdXNl ci5oDQo+QEAgLTE5LDYgKzE5LDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCB5bmxfZmFtaWx5IHlu bF9uZXRkZXZfZmFtaWx5Ow0KPiBjb25zdCBjaGFyICpuZXRkZXZfb3Bfc3RyKGludCBvcCk7DQo+ IGNvbnN0IGNoYXIgKm5ldGRldl94ZHBfYWN0X3N0cihlbnVtIG5ldGRldl94ZHBfYWN0IHZhbHVl KTsNCj4gY29uc3QgY2hhciAqbmV0ZGV2X3hkcF9yeF9tZXRhZGF0YV9zdHIoZW51bSBuZXRkZXZf eGRwX3J4X21ldGFkYXRhIHZhbHVlKTsNCj4rY29uc3QgY2hhciAqbmV0ZGV2X3hza19mbGFnc19z dHIoZW51bSBuZXRkZXZfeHNrX2ZsYWdzIHZhbHVlKTsNCj4NCj4gLyogQ29tbW9uIG5lc3RlZCB0 eXBlcyAqLw0KPiAvKiA9PT09PT09PT09PT09PSBORVRERVZfQ01EX0RFVl9HRVQgPT09PT09PT09 PT09PT0gKi8NCj5AQCAtNTAsMTIgKzUxLDE0IEBAIHN0cnVjdCBuZXRkZXZfZGV2X2dldF9yc3Ag ew0KPiAJCV9fdTMyIHhkcF9mZWF0dXJlczoxOw0KPiAJCV9fdTMyIHhkcF96Y19tYXhfc2Vnczox Ow0KPiAJCV9fdTMyIHhkcF9yeF9tZXRhZGF0YV9mZWF0dXJlczoxOw0KPisJCV9fdTMyIHhza19m ZWF0dXJlczoxOw0KPiAJfSBfcHJlc2VudDsNCj4NCj4gCV9fdTMyIGlmaW5kZXg7DQo+IAlfX3U2 NCB4ZHBfZmVhdHVyZXM7DQo+IAlfX3UzMiB4ZHBfemNfbWF4X3NlZ3M7DQo+IAlfX3U2NCB4ZHBf cnhfbWV0YWRhdGFfZmVhdHVyZXM7DQo+KwlfX3U2NCB4c2tfZmVhdHVyZXM7DQo+IH07DQo+DQo+ IHZvaWQgbmV0ZGV2X2Rldl9nZXRfcnNwX2ZyZWUoc3RydWN0IG5ldGRldl9kZXZfZ2V0X3JzcCAq cnNwKTsNCj4tLQ0KPjIuNDIuMC42NTUuZzQyMWYxMmMyODQtZ29vZw0KDQo=