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 869B941BAE; Thu, 2 Feb 2023 14:56:47 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7241042FC4; Thu, 2 Feb 2023 14:56:47 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2081.outbound.protection.outlook.com [40.107.244.81]) by mails.dpdk.org (Postfix) with ESMTP id AB8C742F96 for ; Thu, 2 Feb 2023 14:56:44 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B6OhIF/xlXqyrnufIvUCtVc5c9n8M/IIYZgHZWQ/CwKPST7oKkIaym1I7ZvZKw7o09ilKwDunYKjTFzFjhvrKhANMI+L904LL0RjQlH85cArq8PwB5+929qjfL/SqrIkUjXr39Y42NyZTKP/0g6v7k5Pauq0/uxvJHUGljQeyKZsiPsOT5a1PSYOcF8q5EmSvzyOuYcRjrSA0p2wG2L2TcpQK+qAQVsLXRF+ZuVPR3U3jmjsTT6EbcBcfdmlGuvjPofMi25J1a3TWqtOGPAstA9jJQ/PwK56Zpzjf3Aq00DoCZwjGvhC4Vq5+cyhZ5ticw1EKHkMCvkbVRsDqWCYvw== 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=vHm1gtMNAyMwILS8IyrdjHVpeuIV/P/r5Zg6xz+DyFY=; b=KDJzDSpf56tZulA0Ihg5DgdwNdpeiGIb/gE3oP1U7ZBfrX0gHPfM6YbgEVqcXHT47AMLPY6zbIKAU0Cqh/Mh9UiP7hVfp+pcsVoD94y6TwYIrvhF83mL//o+ssGK3pBmJaeWukFbA/MXBrOmTPbf3JpDTbcifwYzPyGqFXZgn2M3AeIVRp2fN4ppY9qpCn4gULAcqu6tGSn1E4Jyz58+C8omINUg61yyfEpcSzJSjBY4wsFSIrDieyq9U0H+IUpS4i4CKs0ze6REDqnrqLSaOCmIdRY9pU+wQC82T9mLsLkcFMKrast/EOfoiLk711CX0s/kyOvi4Yek9FMdkIft9Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vHm1gtMNAyMwILS8IyrdjHVpeuIV/P/r5Zg6xz+DyFY=; b=XW3vBzY+pUy+Pvy6FR8EvcB9ACcWrCfiS0uY9HzHpsOrFXS4xJGipSefGSkOe2qmoVgpyuFXSs4xSZxJtyhzsgtMEkyO4QcXMfUj+/E475hA3+LTCCsO/sGtihcLtjgP0Pv49zPbN4ZTparLm/u1RVNiyz4bRAyPHVxDKFgRc01DGmQ1290DAjUkaHvEAyOr8KlBaeBbUfTzMmLdUe6RlW/F+JHaa6E6p2FdYUm/jx2lDP/eaVhoQr0UHy+2sr3eU8rUDYUR/Tb0WeFyhay81dI0wH3vxH39L6uMufYkgC39DHCWg1Jnq+oEBAEEIf4XkFWmjO43wLzOwfdw3lWzmg== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by PH8PR12MB6890.namprd12.prod.outlook.com (2603:10b6:510:1ca::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.25; Thu, 2 Feb 2023 13:56:41 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::6ba4:b9e8:d439:59e4]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::6ba4:b9e8:d439:59e4%4]) with mapi id 15.20.6043.036; Thu, 2 Feb 2023 13:56:41 +0000 From: Ori Kam To: Ori Kam , Ankur Dwivedi , "dev@dpdk.org" CC: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "david.marchand@redhat.com" , "mdr@ashroe.eu" , "ferruh.yigit@amd.com" , "chas3@att.com" , "humin29@huawei.com" , "linville@tuxdriver.com" , "ciara.loftus@intel.com" , "qi.z.zhang@intel.com" , "mw@semihalf.com" , "mk@semihalf.com" , "shaibran@amazon.com" , "evgenys@amazon.com" , "igorch@amazon.com" , "chandu@amd.com" , "irusskikh@marvell.com" , "shepard.siegel@atomicrules.com" , "ed.czeck@atomicrules.com" , "john.miller@atomicrules.com" , "ajit.khaparde@broadcom.com" , "somnath.kotur@broadcom.com" , "jerinj@marvell.com" , "mczekaj@marvell.com" , "sthotton@marvell.com" , "srinivasan@marvell.com" , "hkalra@marvell.com" , "rahul.lakkireddy@chelsio.com" , "johndale@cisco.com" , "hyonkim@cisco.com" , "liudongdong3@huawei.com" , "yisen.zhuang@huawei.com" , "xuanziyang2@huawei.com" , "cloud.wangxiaoyun@huawei.com" , "zhouguoyang@huawei.com" , "simei.su@intel.com" , "wenjun1.wu@intel.com" , "qiming.yang@intel.com" , "Yuying.Zhang@intel.com" , "beilei.xing@intel.com" , "xiao.w.wang@intel.com" , "jingjing.wu@intel.com" , "junfeng.guo@intel.com" , "rosen.xu@intel.com" , "ndabilpuram@marvell.com" , "kirankumark@marvell.com" , "skori@marvell.com" , "skoteshwar@marvell.com" , "lironh@marvell.com" , "zr@semihalf.com" , "radhac@marvell.com" , "vburru@marvell.com" , "sedara@marvell.com" , Matan Azrad , Slava Ovsiienko , "NBU-Contact-longli (EXTERNAL)" , "spinler@cesnet.cz" , "chaoyong.he@corigine.com" , "niklas.soderlund@corigine.com" , "hemant.agrawal@nxp.com" , "sachin.saxena@oss.nxp.com" , "g.singh@nxp.com" , "apeksha.gupta@nxp.com" , "sachin.saxena@nxp.com" , "aboyer@pensando.io" , "rmody@marvell.com" , "shshaikh@marvell.com" , "dsinghrawat@marvell.com" , "andrew.rybchenko@oktetlabs.ru" , "jiawenwu@trustnetic.com" , "jianwang@trustnetic.com" , "jbehrens@vmware.com" , "maxime.coquelin@redhat.com" , "chenbo.xia@intel.com" , "steven.webster@windriver.com" , "matt.peters@windriver.com" , "bruce.richardson@intel.com" , "mtetsuyah@gmail.com" , "grive@u256.net" , "jasvinder.singh@intel.com" , "cristian.dumitrescu@intel.com" , "jgrajcia@cisco.com" , "mb@smartsharesystems.com" Subject: RE: [PATCH v7 4/6] ethdev: add trace points for flow Thread-Topic: [PATCH v7 4/6] ethdev: add trace points for flow Thread-Index: AQHZLwnFelUh/qfC2UKhrj6KyChPtK67ff3ggAA/MXA= Date: Thu, 2 Feb 2023 13:56:40 +0000 Message-ID: References: <20230120084059.2926575-1-adwivedi@marvell.com> <20230123090229.3392071-1-adwivedi@marvell.com> <20230123090229.3392071-5-adwivedi@marvell.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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW2PR12MB4666:EE_|PH8PR12MB6890:EE_ x-ms-office365-filtering-correlation-id: 45f81e39-a306-48d4-ac07-08db05254f94 x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: a8DlA9PF9kuPdMSrnrZmDP3YUhhnxW1ipvkuVviJc3Di9YgPmsPa58z4AZFJDb6OvdbgaBVz+xnKl7rxhNpsbB/Ycv92RCE9Y1aR5HSnhJ2kMmPRgTedh0XhVKf1OIwkOuJ5bTBq0pHY8T8KQsNZCRTaiYndbD/51FBLmQlW5tl/GeKL5Wvpz2CVp13Nu5cP5EaxBca3BiPu112ooqmickf0I8IEOhzAG5GdiA6HA3ESPSeEfsIdQ6X2SlZ9lYj6y7muOVkTDybrRd9o2msO5I6YSWFsTy37MXjU1H06U6u/EfW5qgmIqsNC1fq9xy6uGhb1aHnrOKCG0J77LXp34GbENg2dpTHB3nCMJiGn8c3JGC4M+MjOGLM9Ksv1Umb0df477fsKesEdHKI/g+1SBmqNFxUEJYKtKBSL6bQ+d3EDcrppH/3T6RyD+wssYKuIBvZArOI+7Jz9rJuvTJYcagJqiMOdU5lnKOcOq6M8Lte5eGQ2S1oevZJAiAzR4vN2xcPvdUqdDQfPEq61w5PikGA9xXe5KjlIeuzqQNgE1YyZX8S4tP1KvPQoZgdw9cpjoXvWnSV0aetGLUuI89Jb3ddVE1wxePUo+dwuW5852n4eurIYWNOZmu5f7PCX2QSt/UKvxIxPlc8ehAj5Ppl4yn4t3aGRW4jPM+/8amjWXga2Ef8iMWu/2HOuqTtwfEtuFck97aiFcgfgbwtMeMw+Ow== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(346002)(136003)(396003)(39860400002)(366004)(376002)(451199018)(33656002)(26005)(7696005)(71200400001)(54906003)(110136005)(76116006)(6506007)(316002)(478600001)(30864003)(7416002)(64756008)(4326008)(8936002)(66556008)(7406005)(2906002)(8676002)(122000001)(66946007)(41300700001)(52536014)(66476007)(5660300002)(7366002)(7336002)(66446008)(38100700002)(55016003)(86362001)(38070700005)(2940100002)(9686003)(186003)(83380400001)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TTNaVWdXcC9JRlBPNHZKOHFYVzF2ZlNCUGJ0TkxxUWRldWFKUDNMeVNXTE5P?= =?utf-8?B?Sm1jelRFaEQ3T0hiYjJLcmE0aDhueU00TVRFSnlyRTNzNG1WVUlUNWRVV3Rs?= =?utf-8?B?UXZBZUxQZi9rQnpXUytlT1M5MWlLbEpwMFBrWFpZTW1uTVJ6Y0pHd3dDOHFD?= =?utf-8?B?clFjNGVlTlBLMDgrd0JzelZTd1pqL1FrL3hxeDF2STlrcmpSQlFJYlRQNEwz?= =?utf-8?B?TkhXRTkwVzdkNjduTGd4UEZrNEFWVlBFOE5jMEt4RHJMbHZEanZJWjF2eEJZ?= =?utf-8?B?VWs2R2U3MTFaRU5CRGl2VWlsSDJFY2NnODhYeG5Yb2o5ZzU1MlcrdjB6eXlP?= =?utf-8?B?R2ZaM3JKUFlNSUhBU0RHbHUwSzJ5amlhM0czR3NjMGRsWHRqTmdsd21Vbk1G?= =?utf-8?B?OGhtcXYrUDBQVmlGSDdISlJWcERMaUZKT1lLcW92VWNCZVBQK2NHNmFyb2J5?= =?utf-8?B?TTJocCtUQlI1aEMzdFF4ak93TTkvVGpEcHlZSkRDczBkbml2WUcvWXBQZnV1?= =?utf-8?B?ZWFqOXZHUzFaQjFYcDEvYVNEYkJpTndUQkE1WUdYbGtMdFUzalJCVHFMYjNv?= =?utf-8?B?OFIwQy9BTGlWN3dMTnVhZFZnNkFMaDVVS213U1pCbUpNaHI0Wm5VbHJiUnp2?= =?utf-8?B?dFFlcjJabmNjMDEvNm51VFAxY3drY0JuU09CelYyOUdqUStPejE5T2M2Vmh4?= =?utf-8?B?TnZyME8wNFRjVGZYTkRTZ3dIVWx4eVdXUmp2dUV6Vk9WQWZ1YzJ1TjhsMStN?= =?utf-8?B?NUVkMHduTVFvd0ZvYzQxcjNDWFNqa3dKSUFDYTZheU93T3VTRXFpdVV5VHZx?= =?utf-8?B?bUtGL3YwbFhSSkFOUUh3VEZOOFBVQTVyZUpzQTM2UHNPaVhwRUFNZHZrTmlv?= =?utf-8?B?MkpCdzNRZkJxaWoxSjZaMmpWQ3dHTUZmamdxQlhXQmc0eDlXNkJzbjhwaWZP?= =?utf-8?B?K2NKS3UvWVBwRU9vbm96ZW1GaVFzOVBOZ05XV25EKzYzQnBCSVZxcGFBaWNU?= =?utf-8?B?aU9DUkV2bTQzUjJzKzliMFFOY0Fhb0dCaE92QkZnNXp6eGR3ZTRLejd2cnNV?= =?utf-8?B?SncrZnBqVEJLSkVXVURiRnVSaXBlUGhpRThoUzRoMm5DcnNXbWpGYVlGS0sr?= =?utf-8?B?Y3dZRG54WDVNbVV6TUk0TnpqeGNqS1RwZDlnN2swMllod3MxYTRvS25XZm9Q?= =?utf-8?B?Z250andod293U2wvY1FqNEc0VXNJdzNhZ3VaOU9PVlowd09oRFYyeW90enJo?= =?utf-8?B?ZXdZMEtOVUgwTWZLbUF4VEo3NnIrb2lybi9iMGZTaXRkOEN5eFhHajJEeDlB?= =?utf-8?B?UDNvS3FqYzVCVEJvL2hYR25VZndqdXRJc2h3TWVMeGc3c0lOd1NLZUlBd0tU?= =?utf-8?B?OGphcXJpMC84WHMyY0ttMXhYK1YxNTdZUTVicXdPbWVLdnlBNVl4YkhCRVRG?= =?utf-8?B?S24yY0diMFQ3b2tjaHdJNVBTVVF5WURsQi9MeFV3MndtcHhJQVEvRVFRWkVu?= =?utf-8?B?YWdTV3JmdzVLNENvYjl0S2NmbG1GOVBwR09laWpEZ2s5TTRYbEZBV0d5YVJ5?= =?utf-8?B?OUdIMkFUMFlUb21kWHRxOVhlT3FVeG9uWUd3cFlrOFBUblR5WHJoUXZPY2lV?= =?utf-8?B?NTl3QmVtbituOFlVaVhvbE40dzVIVWtBZWgzOUhQT0srRklNYTg1ejdZbVFD?= =?utf-8?B?OUlUdEg5MUI4ME1xK0VMU3ZvRjhnY0FWa09XQ0RaY2lLT0RnVDRkK25CZTl3?= =?utf-8?B?VXJhVmFveTdIUTFaUHRqMDJjN0d4aUlJWEw1V2txZTZub1g1ZngvTCtGaFRE?= =?utf-8?B?eDVyUEd1NG4xcEwyQ2xORTFQN2xhazdUZ0FvemhiN3NtcVlPODB0cE4rbzQ1?= =?utf-8?B?VWQ3S1daSFBEbGh1RlNwYUUvWFdxMmpNODRFdjFWYThuMFhHdzU1M2h0RG1p?= =?utf-8?B?b1Zub05UTWJPYkhZLzRNTm9ra2R4QmhYNDFjUjQrQnkrL3RBb0VmZ0ExUFFn?= =?utf-8?B?NmtETUJZQWlOU1cwM2NOUlAreVRELzdVVnFObEpXTzhlQ1VZRjJRbnpzQ2Ev?= =?utf-8?B?SWNqNTR1YjJBSHJjSVVVRllNdDlRRllFUjlEeXBZUE1NQjU1VVVHclN5NEds?= =?utf-8?Q?PcfH/y8DiFOsvsMrT1sPgFug4?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 45f81e39-a306-48d4-ac07-08db05254f94 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2023 13:56:40.9816 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tamQxF93KqNGCs3dQXYNPopDQJIn5iiz4ApgwQWhoNjtb+iVijO8QZpMgVi8SCcwVGDTEF9F+8nGEROxwrC7NQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6890 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 U29ycnkgc2VudCBiZWZvcmUgYWxsIGNvbW1lbnRzLA0KQWRkaW5nIG1pc3NpbmcgY29tbWVudHMN Cg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBPcmkgS2FtIDxvcmlrYUBu dmlkaWEuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgMiBGZWJydWFyeSAyMDIzIDE1OjUyDQo+IA0K PiBIaSBBbmt1ciwNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9t OiBBbmt1ciBEd2l2ZWRpIDxhZHdpdmVkaUBtYXJ2ZWxsLmNvbT4NCj4gPiBTZW50OiBNb25kYXks IDIzIEphbnVhcnkgMjAyMyAxMTowMg0KPiA+DQo+ID4gQWRkcyB0cmFjZSBwb2ludHMgZm9yIHJ0 ZV9mbG93IHNwZWNpZmljIGZ1bmN0aW9ucyBpbiBldGhkZXYgbGliLg0KPiA+DQo+ID4gU2lnbmVk LW9mZi1ieTogQW5rdXIgRHdpdmVkaSA8YWR3aXZlZGlAbWFydmVsbC5jb20+DQo+ID4gLS0tDQo+ ID4gIGxpYi9ldGhkZXYvZXRoZGV2X3RyYWNlX3BvaW50cy5jIHwgMTE3ICsrKysrKysrKysNCj4g PiAgbGliL2V0aGRldi9ydGVfZXRoZGV2X3RyYWNlLmggICAgfCAzODMNCj4gPiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGxpYi9ldGhkZXYvcnRlX2V0aGRldl90cmFjZV9m cC5oIHwgMTEzICsrKysrKysrKw0KPiA+ICBsaWIvZXRoZGV2L3J0ZV9mbG93LmMgICAgICAgICAg ICB8IDMxNCArKysrKysrKysrKysrKysrKysrLS0tLS0tDQo+ID4gIGxpYi9ldGhkZXYvdmVyc2lv bi5tYXAgICAgICAgICAgIHwgIDM3ICsrKw0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDg5OCBpbnNl cnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIvZXRo ZGV2L2V0aGRldl90cmFjZV9wb2ludHMuYw0KPiA+IGIvbGliL2V0aGRldi9ldGhkZXZfdHJhY2Vf cG9pbnRzLmMNCj4gPiBpbmRleCAxMDJhMThmY2MxLi4xOTUzZDkwYTVhIDEwMDY0NA0KPiA+IC0t LSBhL2xpYi9ldGhkZXYvZXRoZGV2X3RyYWNlX3BvaW50cy5jDQo+ID4gKysrIGIvbGliL2V0aGRl di9ldGhkZXZfdHJhY2VfcG9pbnRzLmMNCj4gPiBAQCAtNDc0LDMgKzQ3NCwxMjAgQEANCj4gPiBS VEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2V0aF90cmFjZV9jbWFuX2NvbmZpZ19zZXQsDQo+ ID4NCj4gPiAgUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9ldGhfdHJhY2VfY21hbl9jb25m aWdfZ2V0LA0KPiA+ICAJbGliLmV0aGRldi5jbWFuX2NvbmZpZ19nZXQpDQo+ID4gKw0KPiA+ICtS VEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfY29weSwNCj4gPiArCWxpYi5l dGhkZXYuZmxvdy5jb3B5KQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0 ZV9mbG93X3RyYWNlX2NyZWF0ZSwNCj4gPiArCWxpYi5ldGhkZXYuZmxvdy5jcmVhdGUpDQo+ID4g Kw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfZGVzdHJveSwN Cj4gPiArCWxpYi5ldGhkZXYuZmxvdy5kZXN0cm95KQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BP SU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2ZsdXNoLA0KPiA+ICsJbGliLmV0aGRldi5mbG93 LmZsdXNoKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3Ry YWNlX2lzb2xhdGUsDQo+ID4gKwlsaWIuZXRoZGV2LmZsb3cuaXNvbGF0ZSkNCj4gPiArDQo+ID4g K1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9xdWVyeSwNCj4gPiArCWxp Yi5ldGhkZXYuZmxvdy5xdWVyeSkNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RF UihydGVfZmxvd190cmFjZV92YWxpZGF0ZSwNCj4gPiArCWxpYi5ldGhkZXYuZmxvdy52YWxpZGF0 ZSkNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9j b252LA0KPiA+ICsJbGliLmV0aGRldi5mbG93LmNvbnYpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0Vf UE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfZHluZl9tZXRhZGF0YV9yZWdpc3RlciwNCj4g PiArCWxpYi5ldGhkZXYuZHluZl9tZXRhZGF0YV9yZWdpc3RlcikNCj4gPiArDQo+ID4gK1JURV9U UkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9nZXRfYWdlZF9mbG93cywNCj4gPiAr CWxpYi5ldGhkZXYuZmxvdy5nZXRfYWdlZF9mbG93cykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9Q T0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9nZXRfcV9hZ2VkX2Zsb3dzLA0KPiA+ICsJbGli LmV0aGRldi5mbG93LmdldF9xX2FnZWRfZmxvd3MpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9J TlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfdHVubmVsX2RlY2FwX3NldCwNCj4gPiArCWxpYi5l dGhkZXYuZmxvdy50dW5uZWxfZGVjYXBfc2V0KQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5U X1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX3R1bm5lbF9tYXRjaCwNCj4gPiArCWxpYi5ldGhkZXYu Zmxvdy50dW5uZWxfbWF0Y2gpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIo cnRlX2Zsb3dfdHJhY2VfZ2V0X3Jlc3RvcmVfaW5mbywNCj4gPiArCWxpYi5ldGhkZXYuZmxvdy5n ZXRfcmVzdG9yZV9pbmZvKQ0KPiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVS KHJ0ZV9mbG93X3RyYWNlX3R1bm5lbF9hY3Rpb25fZGVjYXBfcmVsZWFzDQo+ID4gZSwNCj4gPiAr CWxpYi5ldGhkZXYuZmxvdy50dW5uZWxfYWN0aW9uX2RlY2FwX3JlbGVhc2UpDQo+ID4gKw0KPiA+ ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfdHVubmVsX2l0ZW1fcmVs ZWFzZSwNCj4gPiArCWxpYi5ldGhkZXYuZmxvdy50dW5uZWxfaXRlbV9yZWxlYXNlKQ0KPiA+ICsN Cj4gPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5k bGVfY3JlYXRlLA0KPiA+ICsJbGliLmV0aGRldi5mbG93LmFjdGlvbl9oYW5kbGVfY3JlYXRlKQ0K PiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2FjdGlv bl9oYW5kbGVfZGVzdHJveSwNCj4gPiArCWxpYi5ldGhkZXYuZmxvdy5hY3Rpb25faGFuZGxlX2Rl c3Ryb3kpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJh Y2VfYWN0aW9uX2hhbmRsZV91cGRhdGUsDQo+ID4gKwlsaWIuZXRoZGV2LmZsb3cuYWN0aW9uX2hh bmRsZV91cGRhdGUpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zs b3dfdHJhY2VfYWN0aW9uX2hhbmRsZV9xdWVyeSwNCj4gPiArCWxpYi5ldGhkZXYuZmxvdy5hY3Rp b25faGFuZGxlX3F1ZXJ5KQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0 ZV9mbG93X3RyYWNlX2ZsZXhfaXRlbV9jcmVhdGUsDQo+ID4gKwlsaWIuZXRoZGV2LmZsb3cuZmxl eF9pdGVtX2NyZWF0ZSkNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVf Zmxvd190cmFjZV9mbGV4X2l0ZW1fcmVsZWFzZSwNCj4gPiArCWxpYi5ldGhkZXYuZmxvdy5mbGV4 X2l0ZW1fcmVsZWFzZSkNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVf Zmxvd190cmFjZV9waWNrX3RyYW5zZmVyX3Byb3h5LA0KPiA+ICsJbGliLmV0aGRldi5mbG93LnBp Y2tfdHJhbnNmZXJfcHJveHkpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIo cnRlX2Zsb3dfdHJhY2VfaW5mb19nZXQsDQo+ID4gKwlsaWIuZXRoZGV2LmZsb3cuaW5mb19nZXQp DQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfY29u ZmlndXJlLA0KPiA+ICsJbGliLmV0aGRldi5mbG93LmNvbmZpZ3VyZSkNCj4gPiArDQo+ID4gK1JU RV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9wYXR0ZXJuX3RlbXBsYXRlX2Ny ZWF0ZSwNCj4gPiArCWxpYi5ldGhkZXYuZmxvdy5wYXR0ZXJuX3RlbXBsYXRlX2NyZWF0ZSkNCj4g PiArDQo+ID4NCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9wYXR0 ZXJuX3RlbXBsYXRlX2Rlc3Ryb3ksDQo+ID4gKwlsaWIuZXRoZGV2LmZsb3cucGF0dGVybl90ZW1w bGF0ZV9kZXN0cm95KQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9m bG93X3RyYWNlX2FjdGlvbnNfdGVtcGxhdGVfY3JlYXRlLA0KPiA+ICsJbGliLmV0aGRldi5mbG93 LmFjdGlvbnNfdGVtcGxhdGVfY3JlYXRlKQ0KPiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5U X1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2FjdGlvbnNfdGVtcGxhdGVfZGVzdHJveSwNCj4gPiAr CWxpYi5ldGhkZXYuZmxvdy5hY3Rpb25zX3RlbXBsYXRlX2Rlc3Ryb3kpDQo+ID4gKw0KPiA+ICtS VEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfdGVtcGxhdGVfdGFibGVfY3Jl YXRlLA0KPiA+ICsJbGliLmV0aGRldi5mbG93LnRlbXBsYXRlX3RhYmxlX2NyZWF0ZSkNCj4gPiAr DQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV90ZW1wbGF0ZV90 YWJsZV9kZXN0cm95LA0KPiA+ICsJbGliLmV0aGRldi5mbG93LnRlbXBsYXRlX3RhYmxlX2Rlc3Ry b3kpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2Vf YXN5bmNfY3JlYXRlLA0KPiA+ICsJbGliLmV0aGRldi5mbG93LmFzeW5jX2NyZWF0ZSkNCj4gPiAr DQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9hc3luY19kZXN0 cm95LA0KPiA+ICsJbGliLmV0aGRldi5mbG93LmFzeW5jX2Rlc3Ryb3kpDQo+ID4gKw0KPiA+ICtS VEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfcHVzaCwNCj4gPiArCWxpYi5l dGhkZXYuZmxvdy5wdXNoKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0 ZV9mbG93X3RyYWNlX3B1bGwsDQo+ID4gKwlsaWIuZXRoZGV2LmZsb3cucHVsbCkNCj4gPiArDQo+ ID4NCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9hc3luY19hY3Rp b25faGFuZGxlX2NyZWF0DQo+ID4gZSwNCj4gPiArCWxpYi5ldGhkZXYuZmxvdy5hc3luY19hY3Rp b25faGFuZGxlX2NyZWF0ZSkNCj4gPiArDQo+ID4NCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RF UihydGVfZmxvd190cmFjZV9hc3luY19hY3Rpb25faGFuZGxlX2Rlc3RyDQo+ID4gb3ksDQo+ID4g KwlsaWIuZXRoZGV2LmZsb3cuYXN5bmNfYWN0aW9uX2hhbmRsZV9kZXN0cm95KQ0KPiA+ICsNCj4g Pg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2FzeW5jX2FjdGlv bl9oYW5kbGVfdXBkYXQNCj4gPiBlLA0KPiA+ICsJbGliLmV0aGRldi5mbG93LmFzeW5jX2FjdGlv bl9oYW5kbGVfdXBkYXRlKQ0KPiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVS KHJ0ZV9mbG93X3RyYWNlX2FzeW5jX2FjdGlvbl9oYW5kbGVfcXVlcnkNCj4gPiAsDQo+ID4gKwls aWIuZXRoZGV2LmZsb3cuYXN5bmMuYWN0aW9uLmhhbmRsZS5xdWVyeSkNCj4gPiBkaWZmIC0tZ2l0 IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2X3RyYWNlLmgNCj4gYi9saWIvZXRoZGV2L3J0ZV9ldGhk ZXZfdHJhY2UuaA0KPiA+IGluZGV4IGZhMTk1YzVjZGUuLmZkNGZiYWY2ZGUgMTAwNjQ0DQo+ID4g LS0tIGEvbGliL2V0aGRldi9ydGVfZXRoZGV2X3RyYWNlLmgNCj4gPiArKysgYi9saWIvZXRoZGV2 L3J0ZV9ldGhkZXZfdHJhY2UuaA0KPiA+IEBAIC05MDIsNiArOTAyLDM4OSBAQCBSVEVfVFJBQ0Vf UE9JTlQoDQo+ID4gIAlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gPiAgKQ0KPiA+ DQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2NvcHksDQo+ID4g KwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyhzdHJ1Y3QgcnRlX2Zsb3dfZGVzYyAqZmQsIHNpemVfdCBs ZW4sDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2F0dHIgKmF0dHIsDQo+ID4gKwkJY29u c3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW0gKml0ZW1zLA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVf Zmxvd19hY3Rpb24gKmFjdGlvbnMsIGludCByZXQpLA0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfcHRyKGZkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3NpemVfdChsZW4pOw0KPiA+ ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKGF0dHItPmdyb3VwKTsNCj4gPiArCXJ0ZV90cmFj ZV9wb2ludF9lbWl0X3UzMihhdHRyLT5wcmlvcml0eSk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRf ZW1pdF9wdHIoaXRlbXMpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KGl0ZW1zLT50 eXBlKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25zKTsNCj4gPiArCXJ0 ZV90cmFjZV9wb2ludF9lbWl0X2ludChhY3Rpb25zLT50eXBlKTsNCj4gPiArCXJ0ZV90cmFjZV9w b2ludF9lbWl0X2ludChyZXQpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQo DQo+IA0KPiBQYXJ0IG9mIHRoZSBkYXRhcGF0aCBzaG91bGQgYmUgX0ZQDQo+IA0KPiA+ICsJcnRl X2Zsb3dfdHJhY2VfY3JlYXRlLA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3Qg cG9ydF9pZCwgY29uc3Qgc3RydWN0DQo+ID4gcnRlX2Zsb3dfYXR0ciAqYXR0ciwNCj4gPiArCQlj b25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSAqcGF0dGVybiwNCj4gPiArCQljb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uICphY3Rpb25zLCBzdHJ1Y3QgcnRlX2Zsb3cgKmZsb3cpLA0KPiA+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50 X2VtaXRfdTMyKGF0dHItPmdyb3VwKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihh dHRyLT5wcmlvcml0eSk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIocGF0dGVybik7 DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoYWN0aW9ucyk7DQo+ID4gKwlydGVfdHJh Y2VfcG9pbnRfZW1pdF9wdHIoZmxvdyk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9Q T0lOVCgNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2Rlc3Ryb3ksDQo+IA0KPiBQYXJ0IG9mIHRoZSBk YXRhcGF0aCBzaG91bGQgYmUgX0ZQDQo+IA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWlu dDE2X3QgcG9ydF9pZCwgc3RydWN0IHJ0ZV9mbG93ICpmbG93LCBpbnQNCj4gPiByZXQpLA0KPiA+ ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNlX3Bv aW50X2VtaXRfcHRyKGZsb3cpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7 DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArCXJ0ZV9mbG93X3Ry YWNlX2ZsdXNoLA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwg aW50IHJldCksDQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ID4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRF X1RSQUNFX1BPSU5UKA0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfdmFsaWRhdGUsDQo+ID4gKwlSVEVf VFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBy dGVfZmxvd19hdHRyICphdHRyLA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICpw YXR0ZXJuLA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnMsIGlu dCByZXQpLA0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiA+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKGF0dHItPmdyb3VwKTsNCj4gPiArCXJ0ZV90cmFjZV9w b2ludF9lbWl0X3UzMihhdHRyLT5wcmlvcml0eSk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1p dF9wdHIocGF0dGVybik7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoYWN0aW9ucyk7 DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gPiArKQ0KPiA+ICsNCj4g PiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfY29udiwNCj4gPiArCVJU RV9UUkFDRV9QT0lOVF9BUkdTKGVudW0gcnRlX2Zsb3dfY29udl9vcCBvcCwgdm9pZCAqZHN0LA0K PiA+ICsJCXNpemVfdCBzaXplLCBjb25zdCB2b2lkICpzcmMpLA0KPiA+ICsJcnRlX3RyYWNlX3Bv aW50X2VtaXRfaW50KG9wKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihkc3QpOw0K PiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfc2l6ZV90KHNpemUpOw0KPiA+ICsJcnRlX3RyYWNl X3BvaW50X2VtaXRfcHRyKHNyYyk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lO VCgNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2R5bmZfbWV0YWRhdGFfcmVnaXN0ZXIsDQo+ID4gKwlS VEVfVFJBQ0VfUE9JTlRfQVJHUyhpbnQgb2Zmc2V0LCB1aW50NjRfdCBmbGFnKSwNCj4gPiArCXJ0 ZV90cmFjZV9wb2ludF9lbWl0X2ludChvZmZzZXQpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfdTY0KGZsYWcpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4g KwlydGVfZmxvd190cmFjZV90dW5uZWxfZGVjYXBfc2V0LA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5U X0FSR1ModWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zsb3dfdHVubmVsICp0 dW5uZWwsDQo+ID4gKwkJc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqKmFjdGlvbnMsDQo+ID4gKwkJ dWludDMyX3QgKm51bV9vZl9hY3Rpb25zLCBpbnQgcmV0KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2lu dF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cih0dW5u ZWwpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGFjdGlvbnMpOw0KPiA+ICsJcnRl X3RyYWNlX3BvaW50X2VtaXRfcHRyKG51bV9vZl9hY3Rpb25zKTsNCj4gPiArCXJ0ZV90cmFjZV9w b2ludF9lbWl0X2ludChyZXQpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQo DQo+ID4gKwlydGVfZmxvd190cmFjZV90dW5uZWxfbWF0Y2gsDQo+ID4gKwlSVEVfVFJBQ0VfUE9J TlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCXN0cnVjdCBydGVfZmxvd190dW5uZWwg KnR1bm5lbCwNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSAqKml0ZW1zLA0KPiA+ICsJCXVp bnQzMl90ICpudW1fb2ZfaXRlbXMsIGludCByZXQpLA0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfdTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKHR1bm5lbCk7 DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoaXRlbXMpOw0KPiA+ICsJcnRlX3RyYWNl X3BvaW50X2VtaXRfcHRyKG51bV9vZl9pdGVtcyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1p dF9pbnQocmV0KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsJ cnRlX2Zsb3dfdHJhY2VfdHVubmVsX2FjdGlvbl9kZWNhcF9yZWxlYXNlLA0KPiA+ICsJUlRFX1RS QUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uICphY3Rpb25zLA0KPiA+ICsJCXVpbnQzMl90IG51bV9vZl9hY3Rpb25zLCBpbnQgcmV0 KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90 cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25zKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UzMihudW1fb2ZfYWN0aW9ucyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0 KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsJcnRlX2Zsb3df dHJhY2VfdHVubmVsX2l0ZW1fcmVsZWFzZSwNCj4gPiArCVJURV9UUkFDRV9QT0lOVF9BUkdTKHVp bnQxNl90IHBvcnRfaWQsDQo+ID4gKwkJc3RydWN0IHJ0ZV9mbG93X2l0ZW0gKml0ZW1zLA0KPiA+ ICsJCXVpbnQzMl90IG51bV9vZl9pdGVtcywgaW50IHJldCksDQo+ID4gKwlydGVfdHJhY2VfcG9p bnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoaXRl bXMpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKG51bV9vZl9pdGVtcyk7DQo+ID4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRF X1RSQUNFX1BPSU5UKA0KPiANCj4gUGFydCBvZiB0aGUgZGF0YXBhdGggc2hvdWxkIGJlIF9GUA0K PiANCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5kbGVfY3JlYXRlLA0KPiA+ICsJUlRF X1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQljb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfaW5kaXJfYWN0aW9uX2NvbmYgKmNvbmYsDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbiAqYWN0aW9uLA0KPiA+ICsJCXN0cnVjdCBydGVfZmxvd19hY3Rpb25faGFu ZGxlICpoYW5kbGUpLA0KPiA+ICsJdWludDMyX3QgaW5ncmVzcyA9IGNvbmYtPmluZ3Jlc3M7DQo+ ID4gKwl1aW50MzJfdCBlZ3Jlc3MgPSBjb25mLT5lZ3Jlc3M7DQo+ID4gKwl1aW50MzJfdCB0cmFu c2ZlciA9IGNvbmYtPnRyYW5zZmVyOw0KPiA+ICsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihjb25mKTsNCj4g PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihpbmdyZXNzKTsNCj4gPiArCXJ0ZV90cmFjZV9w b2ludF9lbWl0X3UzMihlZ3Jlc3MpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHRy YW5zZmVyKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb24pOw0KPiA+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KGFjdGlvbi0+dHlwZSk7DQo+ID4gKwlydGVfdHJhY2Vf cG9pbnRfZW1pdF9wdHIoaGFuZGxlKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BP SU5UKA0KPiANCj4gUGFydCBvZiB0aGUgZGF0YXBhdGggc2hvdWxkIGJlIF9GUA0KPiA+ICsJcnRl X2Zsb3dfdHJhY2VfYWN0aW9uX2hhbmRsZV9kZXN0cm95LA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5U X0FSR1ModWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2hh bmRsZSAqaGFuZGxlLCBpbnQgcmV0KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihw b3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihoYW5kbGUpOw0KPiA+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9U UkFDRV9QT0lOVCgNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2ZsZXhfaXRlbV9jcmVhdGUsDQo+ID4g KwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCWNvbnN0IHN0 cnVjdCBydGVfZmxvd19pdGVtX2ZsZXhfY29uZiAqY29uZiwNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zs b3dfaXRlbV9mbGV4X2hhbmRsZSAqaGFuZGxlKSwNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihjb25mKTsNCj4g PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChjb25mLT50dW5uZWwpOw0KPiA+ICsJcnRlX3Ry YWNlX3BvaW50X2VtaXRfaW50KGNvbmYtPm5iX3NhbXBsZXMpOw0KPiA+ICsJcnRlX3RyYWNlX3Bv aW50X2VtaXRfaW50KGNvbmYtPm5iX2lucHV0cyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1p dF9pbnQoY29uZi0+bmJfb3V0cHV0cyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIo aGFuZGxlKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsJcnRl X2Zsb3dfdHJhY2VfZmxleF9pdGVtX3JlbGVhc2UsDQo+ID4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJH Uyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX2Zs ZXhfaGFuZGxlICpoYW5kbGUsIGludCByZXQpLA0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRf dTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGhhbmRsZSk7DQo+ ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiAr UlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfaW5mb19nZXQsDQo+ID4gKwlS VEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCXN0cnVjdCBydGVf Zmxvd19wb3J0X2luZm8gKnBvcnRfaW5mbywNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zsb3dfcXVldWVf aW5mbyAqcXVldWVfaW5mbywgaW50IHJldCksDQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91 MTYocG9ydF9pZCk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIocG9ydF9pbmZvKTsN Cj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihwb3J0X2luZm8tPm1heF9uYl9xdWV1ZXMp Ow0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHBvcnRfaW5mby0+bWF4X25iX2NvdW50 ZXJzKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihwb3J0X2luZm8tPm1heF9uYl9h Z2luZ19vYmplY3RzKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihwb3J0X2luZm8t Pm1heF9uYl9tZXRlcnMpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHBvcnRfaW5m by0+bWF4X25iX2Nvbm5fdHJhY2tzKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihw b3J0X2luZm8tPnN1cHBvcnRlZF9mbGFncyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9w dHIocXVldWVfaW5mbyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4g PiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsJcnRlX2Zsb3dfdHJhY2Vf Y29uZmlndXJlLA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwN Cj4gPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfcG9ydF9hdHRyICpwb3J0X2F0dHIsDQo+ID4g KwkJdWludDE2X3QgbmJfcXVldWUsDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X3F1ZXVl X2F0dHIgKipxdWV1ZV9hdHRyLCBpbnQgcmV0KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihwb3J0X2F0dHIp Ow0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHBvcnRfYXR0ci0+bmJfY291bnRlcnMp Ow0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHBvcnRfYXR0ci0+bmJfYWdpbmdfb2Jq ZWN0cyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIocG9ydF9hdHRyLT5uYl9tZXRl cnMpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHBvcnRfYXR0ci0+bmJfY29ubl90 cmFja3MpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHBvcnRfYXR0ci0+ZmxhZ3Mp Ow0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KG5iX3F1ZXVlKTsNCj4gPiArCXJ0ZV90 cmFjZV9wb2ludF9lbWl0X3B0cihxdWV1ZV9hdHRyKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X2ludChyZXQpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4g KwlydGVfZmxvd190cmFjZV9wYXR0ZXJuX3RlbXBsYXRlX2NyZWF0ZSwNCj4gPiArCVJURV9UUkFD RV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9m bG93X3BhdHRlcm5fdGVtcGxhdGVfYXR0cg0KPiA+ICp0ZW1wbGF0ZV9hdHRyLA0KPiA+ICsJCWNv bnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICpwYXR0ZXJuLA0KPiA+ICsJCXZvaWQgKnRtcGxhdGUp LA0KPiA+ICsJdWludDMyX3QgcmVsYXhlZF9tYXRjaGluZyA9IHRlbXBsYXRlX2F0dHItPnJlbGF4 ZWRfbWF0Y2hpbmc7DQo+ID4gKwl1aW50MzJfdCBpbmdyZXNzID0gdGVtcGxhdGVfYXR0ci0+aW5n cmVzczsNCj4gPiArCXVpbnQzMl90IGVncmVzcyA9IHRlbXBsYXRlX2F0dHItPmVncmVzczsNCj4g PiArCXVpbnQzMl90IHRyYW5zZmVyID0gdGVtcGxhdGVfYXR0ci0+dHJhbnNmZXI7DQo+ID4gKw0K PiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNl X3BvaW50X2VtaXRfcHRyKHRlbXBsYXRlX2F0dHIpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfdTMyKHJlbGF4ZWRfbWF0Y2hpbmcpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMy KGluZ3Jlc3MpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKGVncmVzcyk7DQo+ID4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIodHJhbnNmZXIpOw0KPiA+ICsJcnRlX3RyYWNlX3Bv aW50X2VtaXRfcHRyKHBhdHRlcm4pOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKHRt cGxhdGUpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKwlydGVf Zmxvd190cmFjZV9wYXR0ZXJuX3RlbXBsYXRlX2Rlc3Ryb3ksDQo+ID4gKwlSVEVfVFJBQ0VfUE9J TlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCXN0cnVjdCBydGVfZmxvd19wYXR0ZXJu X3RlbXBsYXRlICpwYXR0ZXJuX3RlbXBsYXRlLCBpbnQNCj4gPiByZXQpLA0KPiA+ICsJcnRlX3Ry YWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRf cHRyKHBhdHRlcm5fdGVtcGxhdGUpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJl dCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArCXJ0ZV9mbG93 X3RyYWNlX2FjdGlvbnNfdGVtcGxhdGVfY3JlYXRlLA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5UX0FS R1ModWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u c190ZW1wbGF0ZV9hdHRyICp0ZW1wbGF0ZV9hdHRyLA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVf Zmxvd19hY3Rpb24gKmFjdGlvbnMsDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlv biAqbWFza3MsDQo+ID4gKwkJdm9pZCAqdG1wbGF0ZSksDQo+ID4gKwl1aW50MzJfdCBpbmdyZXNz ID0gdGVtcGxhdGVfYXR0ci0+aW5ncmVzczsNCj4gPiArCXVpbnQzMl90IGVncmVzcyA9IHRlbXBs YXRlX2F0dHItPmVncmVzczsNCj4gPiArCXVpbnQzMl90IHRyYW5zZmVyID0gdGVtcGxhdGVfYXR0 ci0+dHJhbnNmZXI7DQo+ID4gKw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRf aWQpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKHRlbXBsYXRlX2F0dHIpOw0KPiA+ ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKGluZ3Jlc3MpOw0KPiA+ICsJcnRlX3RyYWNlX3Bv aW50X2VtaXRfdTMyKGVncmVzcyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIodHJh bnNmZXIpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGFjdGlvbnMpOw0KPiA+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKG1hc2tzKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X3B0cih0bXBsYXRlKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0K PiA+ICsJcnRlX2Zsb3dfdHJhY2VfYWN0aW9uc190ZW1wbGF0ZV9kZXN0cm95LA0KPiA+ICsJUlRF X1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zs b3dfYWN0aW9uc190ZW1wbGF0ZSAqYWN0aW9uc190ZW1wbGF0ZSwgaW50DQo+ID4gcmV0KSwNCj4g PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9w b2ludF9lbWl0X3B0cihhY3Rpb25zX3RlbXBsYXRlKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X2ludChyZXQpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4g KwlydGVfZmxvd190cmFjZV90ZW1wbGF0ZV90YWJsZV9jcmVhdGUsDQo+ID4gKwlSVEVfVFJBQ0Vf UE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxv d190ZW1wbGF0ZV90YWJsZV9hdHRyICp0YWJsZV9hdHRyLA0KPiA+ICsJCXN0cnVjdCBydGVfZmxv d19wYXR0ZXJuX3RlbXBsYXRlICoqcGF0dGVybl90ZW1wbGF0ZXMsDQo+ID4gKwkJdWludDhfdCBu Yl9wYXR0ZXJuX3RlbXBsYXRlcywNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uc190ZW1w bGF0ZSAqKmFjdGlvbnNfdGVtcGxhdGVzLA0KPiA+ICsJCXVpbnQ4X3QgbmJfYWN0aW9uc190ZW1w bGF0ZXMsDQo+ID4gKwkJc3RydWN0IHJ0ZV9mbG93X3RlbXBsYXRlX3RhYmxlICp0YWJsZSksDQo+ ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ID4gKwlydGVfdHJhY2Vf cG9pbnRfZW1pdF9wdHIodGFibGVfYXR0cik7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91 MzIodGFibGVfYXR0ci0+bmJfZmxvd3MpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRy KHBhdHRlcm5fdGVtcGxhdGVzKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KG5iX3Bh dHRlcm5fdGVtcGxhdGVzKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25z X3RlbXBsYXRlcyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91OChuYl9hY3Rpb25zX3Rl bXBsYXRlcyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIodGFibGUpOw0KPiA+ICsp DQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKwlydGVfZmxvd190cmFjZV90ZW1w bGF0ZV90YWJsZV9kZXN0cm95LA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3Qg cG9ydF9pZCwNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zsb3dfdGVtcGxhdGVfdGFibGUgKnRlbXBsYXRl X3RhYmxlLCBpbnQgcmV0KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lk KTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cih0ZW1wbGF0ZV90YWJsZSk7DQo+ID4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRF X1RSQUNFX1BPSU5UKA0KDQpQYXJ0IG9mIHRoZSBkYXRhcGF0aCBzaG91bGQgYmUgX0ZQDQoNCj4g PiArCXJ0ZV9mbG93X3RyYWNlX2FzeW5jX2NyZWF0ZSwNCj4gPiArCVJURV9UUkFDRV9QT0lOVF9B UkdTKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQzMl90IHF1ZXVlX2lkLA0KPiA+ICsJCWNvbnN0IHN0 cnVjdCBydGVfZmxvd19vcF9hdHRyICpvcF9hdHRyLA0KPiA+ICsJCXN0cnVjdCBydGVfZmxvd190 ZW1wbGF0ZV90YWJsZSAqdGVtcGxhdGVfdGFibGUsDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9m bG93X2l0ZW0gKnBhdHRlcm4sDQo+ID4gKwkJdWludDhfdCBwYXR0ZXJuX3RlbXBsYXRlX2luZGV4 LA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnMsDQo+ID4gKwkJ dWludDhfdCBhY3Rpb25zX3RlbXBsYXRlX2luZGV4LA0KPiA+ICsJCXZvaWQgKnVzZXJfZGF0YSwg c3RydWN0IHJ0ZV9mbG93ICpmbG93KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihw b3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihxdWV1ZV9pZCk7DQo+ID4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIob3BfYXR0cik7DQo+ID4gKwlydGVfdHJhY2VfcG9p bnRfZW1pdF9wdHIodGVtcGxhdGVfdGFibGUpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRf cHRyKHBhdHRlcm4pOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgocGF0dGVybl90ZW1w bGF0ZV9pbmRleCk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoYWN0aW9ucyk7DQo+ ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91OChhY3Rpb25zX3RlbXBsYXRlX2luZGV4KTsNCj4g PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cih1c2VyX2RhdGEpOw0KPiA+ICsJcnRlX3RyYWNl X3BvaW50X2VtaXRfcHRyKGZsb3cpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9J TlQoDQo+ID4gKwlydGVfZmxvd190cmFjZV9hc3luY19kZXN0cm95LA0KPiA+ICsJUlRFX1RSQUNF X1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwgdWludDMyX3QgcXVldWVfaWQsDQo+ID4gKwkJ Y29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wX2F0dHIgKm9wX2F0dHIsDQo+ID4gKwkJc3RydWN0IHJ0 ZV9mbG93ICpmbG93LCB2b2lkICp1c2VyX2RhdGEsIGludCByZXQpLA0KPiA+ICsJcnRlX3RyYWNl X3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMy KHF1ZXVlX2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihvcF9hdHRyKTsNCj4g PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihmbG93KTsNCj4gPiArCXJ0ZV90cmFjZV9wb2lu dF9lbWl0X3B0cih1c2VyX2RhdGEpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJl dCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArCXJ0ZV9mbG93 X3RyYWNlX3B1c2gsDQo+ID4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lk LCB1aW50MzJfdCBxdWV1ZV9pZCwgaW50DQo+ID4gcmV0KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2lu dF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihxdWV1 ZV9pZCk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gPiArKQ0KPiA+ ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KDQpQYXJ0IG9mIHRoZSBkYXRhcGF0aCBzaG91bGQg YmUgX0ZQDQoNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX3B1bGwsDQo+ID4gKwlSVEVfVFJBQ0VfUE9J TlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLCB1aW50MzJfdCBxdWV1ZV9pZCwNCj4gPiArCQlzdHJ1 Y3QgcnRlX2Zsb3dfb3BfcmVzdWx0ICpyZXMsIHVpbnQxNl90IG5fcmVzLCBpbnQgcmV0KSwNCj4g PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9w b2ludF9lbWl0X3UzMihxdWV1ZV9pZCk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIo cmVzKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihuX3Jlcyk7DQo+ID4gKwlydGVf dHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNF X1BPSU5UKA0KDQpQYXJ0IG9mIHRoZSBkYXRhcGF0aCBzaG91bGQgYmUgX0ZQDQoNCj4gPiArCXJ0 ZV9mbG93X3RyYWNlX2FzeW5jX2FjdGlvbl9oYW5kbGVfY3JlYXRlLA0KPiA+ICsJUlRFX1RSQUNF X1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwgdWludDMyX3QgcXVldWVfaWQsDQo+ID4gKwkJ Y29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wX2F0dHIgKm9wX2F0dHIsDQo+ID4gKwkJY29uc3Qgc3Ry dWN0IHJ0ZV9mbG93X2luZGlyX2FjdGlvbl9jb25mICppbmRpcl9hY3Rpb25fY29uZiwNCj4gPiAr CQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb24sDQo+ID4gKwkJdm9pZCAqdXNl cl9kYXRhLCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZSAqaGFuZGxlKSwNCj4gPiArCXJ0 ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X3UzMihxdWV1ZV9pZCk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIob3BfYXR0 cik7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoaW5kaXJfYWN0aW9uX2NvbmYpOw0K PiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGFjdGlvbik7DQo+ID4gKwlydGVfdHJhY2Vf cG9pbnRfZW1pdF9wdHIodXNlcl9kYXRhKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0 cihoYW5kbGUpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQoNClBhcnQg b2YgdGhlIGRhdGFwYXRoIHNob3VsZCBiZSBfRlANCg0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfYXN5 bmNfYWN0aW9uX2hhbmRsZV9kZXN0cm95LA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWlu dDE2X3QgcG9ydF9pZCwgdWludDMyX3QgcXVldWVfaWQsDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0 ZV9mbG93X29wX2F0dHIgKm9wX2F0dHIsDQo+ID4gKwkJc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9o YW5kbGUgKmFjdGlvbl9oYW5kbGUsDQo+ID4gKwkJdm9pZCAqdXNlcl9kYXRhLCBpbnQgcmV0KSwN Cj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFj ZV9wb2ludF9lbWl0X3UzMihxdWV1ZV9pZCk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9w dHIob3BfYXR0cik7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoYWN0aW9uX2hhbmRs ZSk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIodXNlcl9kYXRhKTsNCj4gPiArCXJ0 ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICAjaWZkZWYg X19jcGx1c3BsdXMNCj4gPiAgfQ0KPiA+ICAjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2V0 aGRldi9ydGVfZXRoZGV2X3RyYWNlX2ZwLmgNCj4gPiBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldl90 cmFjZV9mcC5oDQo+ID4gaW5kZXggZDRiMmU0YjMxMi4uYzViODA4M2RlMiAxMDA2NDQNCj4gPiAt LS0gYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXZfdHJhY2VfZnAuaA0KPiA+ICsrKyBiL2xpYi9ldGhk ZXYvcnRlX2V0aGRldl90cmFjZV9mcC5oDQo+ID4gQEAgLTY0Niw2ICs2NDYsMTE5IEBAIFJURV9U UkFDRV9QT0lOVF9GUCgNCj4gPiAgCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiA+ ICApDQo+ID4NCj4gPiArUlRFX1RSQUNFX1BPSU5UX0ZQKA0KPiA+ICsJcnRlX2Zsb3dfdHJhY2Vf cXVlcnksDQo+ID4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLCBzdHJ1 Y3QgcnRlX2Zsb3cgKmZsb3csDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAq YWN0aW9uLCB2b2lkICpkYXRhLCBpbnQgcmV0KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihmbG93KTsNCj4g PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb24pOw0KPiA+ICsJcnRlX3RyYWNlX3Bv aW50X2VtaXRfaW50KGFjdGlvbi0+dHlwZSk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9w dHIoZGF0YSk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gPiArKQ0K PiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX0ZQKA0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfaXNv bGF0ZSwNCj4gPiArCVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsIGludCBz ZXQsIGludCByZXQpLA0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0K PiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHNldCk7DQo+ID4gKwlydGVfdHJhY2VfcG9p bnRfZW1pdF9pbnQocmV0KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX0ZQ KA0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfZ2V0X3Jlc3RvcmVfaW5mbywNCj4gPiArCVJURV9UUkFD RV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gKwkJc3RydWN0IHJ0ZV9tYnVmICpt LCBzdHJ1Y3QgcnRlX2Zsb3dfcmVzdG9yZV9pbmZvICppbmZvLA0KPiA+ICsJCWludCByZXQpLA0K PiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNl X3BvaW50X2VtaXRfcHRyKG0pOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGluZm8p Ow0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ID4gKykNCj4gPiArDQo+ ID4gK1JURV9UUkFDRV9QT0lOVF9GUCgNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2dldF9hZ2VkX2Zs b3dzLA0KPiA+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwgdm9pZCAq KmNvbnRleHRzLA0KPiA+ICsJCXVpbnQzMl90IG5iX2NvbnRleHRzLCBpbnQgcmV0KSwNCj4gPiAr CXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2lu dF9lbWl0X3B0cihjb250ZXh0cyk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIobmJf Y29udGV4dHMpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ID4gKykN Cj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9GUCgNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2dl dF9xX2FnZWRfZmxvd3MsDQo+ID4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0 X2lkLCB1aW50MzJfdCBxdWV1ZV9pZCwgdm9pZA0KPiA+ICoqY29udGV4dHMsDQo+ID4gKwkJdWlu dDMyX3QgbmJfY29udGV4dHMsIGludCByZXQpLA0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRf dTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHF1ZXVlX2lkKTsN Cj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihjb250ZXh0cyk7DQo+ID4gKwlydGVfdHJh Y2VfcG9pbnRfZW1pdF91MzIobmJfY29udGV4dHMpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfaW50KHJldCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9GUCgNCj4g PiArCXJ0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5kbGVfdXBkYXRlLA0KPiA+ICsJUlRFX1RSQUNF X1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQlzdHJ1Y3QgcnRlX2Zsb3dfYWN0 aW9uX2hhbmRsZSAqaGFuZGxlLA0KPiA+ICsJCWNvbnN0IHZvaWQgKnVwZGF0ZSwgaW50IHJldCks DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ID4gKwlydGVfdHJh Y2VfcG9pbnRfZW1pdF9wdHIoaGFuZGxlKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0 cih1cGRhdGUpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ID4gKykN Cj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9GUCgNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2Fj dGlvbl9oYW5kbGVfcXVlcnksDQo+ID4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBw b3J0X2lkLA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb25faGFuZGxlICpoYW5k bGUsDQo+ID4gKwkJdm9pZCAqZGF0YSwgaW50IHJldCksDQo+ID4gKwlydGVfdHJhY2VfcG9pbnRf ZW1pdF91MTYocG9ydF9pZCk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoaGFuZGxl KTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihkYXRhKTsNCj4gPiArCXJ0ZV90cmFj ZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9J TlRfRlAoDQo+ID4gKwlydGVfZmxvd190cmFjZV9waWNrX3RyYW5zZmVyX3Byb3h5LA0KPiA+ICsJ UlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QNCj4gPiAqcHJv eHlfcG9ydF9pZCwNCj4gPiArCQlpbnQgcmV0KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UxNihwb3J0X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihwcm94eV9wb3J0 X2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiA+ICspDQo+ID4g Kw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfRlAoDQo+ID4gKwlydGVfZmxvd190cmFjZV9hc3luY19h Y3Rpb25faGFuZGxlX3VwZGF0ZSwNCj4gPiArCVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90 IHBvcnRfaWQsIHVpbnQzMl90IHF1ZXVlX2lkLA0KPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxv d19vcF9hdHRyICpvcF9hdHRyLA0KPiA+ICsJCXN0cnVjdCBydGVfZmxvd19hY3Rpb25faGFuZGxl ICphY3Rpb25faGFuZGxlLA0KPiA+ICsJCWNvbnN0IHZvaWQgKnVwZGF0ZSwgdm9pZCAqdXNlcl9k YXRhLCBpbnQgcmV0KSwNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsN Cj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihxdWV1ZV9pZCk7DQo+ID4gKwlydGVfdHJh Y2VfcG9pbnRfZW1pdF9wdHIob3BfYXR0cik7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9w dHIoYWN0aW9uX2hhbmRsZSk7DQo+ID4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIodXBkYXRl KTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cih1c2VyX2RhdGEpOw0KPiA+ICsJcnRl X3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFD RV9QT0lOVF9GUCgNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2FzeW5jX2FjdGlvbl9oYW5kbGVfcXVl cnksDQo+ID4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLCB1aW50MzJf dCBxdWV1ZV9pZCwNCj4gPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BfYXR0ciAqb3BfYXR0 ciwNCj4gPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZSAqYWN0aW9uX2hh bmRsZSwNCj4gPiArCQl2b2lkICpkYXRhLCB2b2lkICp1c2VyX2RhdGEsIGludCByZXQpLA0KPiA+ ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiA+ICsJcnRlX3RyYWNlX3Bv aW50X2VtaXRfdTMyKHF1ZXVlX2lkKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihv cF9hdHRyKTsNCj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25faGFuZGxlKTsN Cj4gPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihkYXRhKTsNCj4gPiArCXJ0ZV90cmFjZV9w b2ludF9lbWl0X3B0cih1c2VyX2RhdGEpOw0KPiA+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50 KHJldCk7DQo+ID4gKykNCj4gPiArDQo+ID4gICNpZmRlZiBfX2NwbHVzcGx1cw0KPiA+ICB9DQo+ ID4gICNlbmRpZg0KPiA+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9mbG93LmMgYi9saWIv ZXRoZGV2L3J0ZV9mbG93LmMNCj4gPiBpbmRleCA3ZDBjMjQzNjZjLi40M2YxM2Y3OWI0IDEwMDY0 NA0KPiA+IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cuYw0KPiA+ICsrKyBiL2xpYi9ldGhkZXYv cnRlX2Zsb3cuYw0KPiA+IEBAIC0xMyw2ICsxMyw4IEBADQo+ID4gICNpbmNsdWRlIDxydGVfc3Ry aW5nX2Zucy5oPg0KPiA+ICAjaW5jbHVkZSA8cnRlX21idWZfZHluLmg+DQo+ID4gICNpbmNsdWRl ICJydGVfZXRoZGV2LmgiDQo+ID4gKyNpbmNsdWRlICJydGVfZXRoZGV2X3RyYWNlLmgiDQo+ID4g KyNpbmNsdWRlICJydGVfZXRoZGV2X3RyYWNlX2ZwLmgiDQo+ID4gICNpbmNsdWRlICJydGVfZmxv d19kcml2ZXIuaCINCj4gPiAgI2luY2x1ZGUgInJ0ZV9mbG93LmgiDQo+ID4NCj4gPiBAQCAtMjc2 LDYgKzI3OCw5IEBAIHJ0ZV9mbG93X2R5bmZfbWV0YWRhdGFfcmVnaXN0ZXIodm9pZCkNCj4gPiAg CQlnb3RvIGVycm9yOw0KPiA+ICAJcnRlX2Zsb3dfZHluZl9tZXRhZGF0YV9vZmZzID0gb2Zmc2V0 Ow0KPiA+ICAJcnRlX2Zsb3dfZHluZl9tZXRhZGF0YV9tYXNrID0gUlRFX0JJVDY0KGZsYWcpOw0K PiA+ICsNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2R5bmZfbWV0YWRhdGFfcmVnaXN0ZXIob2Zmc2V0 LCBSVEVfQklUNjQoZmxhZykpOw0KPiA+ICsNCj4gPiAgCXJldHVybiAwOw0KPiA+DQo+ID4gIGVy cm9yOg0KPiA+IEBAIC0zNjIsNyArMzY3LDExIEBAIHJ0ZV9mbG93X3ZhbGlkYXRlKHVpbnQxNl90 IHBvcnRfaWQsDQo+ID4gIAkJZnRzX2VudGVyKGRldik7DQo+ID4gIAkJcmV0ID0gb3BzLT52YWxp ZGF0ZShkZXYsIGF0dHIsIHBhdHRlcm4sIGFjdGlvbnMsIGVycm9yKTsNCj4gPiAgCQlmdHNfZXhp dChkZXYpOw0KPiA+IC0JCXJldHVybiBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4g PiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4gPiArDQo+ID4gKwkJ cnRlX2Zsb3dfdHJhY2VfdmFsaWRhdGUocG9ydF9pZCwgYXR0ciwgcGF0dGVybiwgYWN0aW9ucywg cmV0KTsNCj4gPiArDQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiAgCX0NCj4gPiAgCXJldHVybiBy dGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVOT1NZUywNCj4gPiAgCQkJCSAgUlRFX0ZMT1dfRVJS T1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gPiBAQCAtMzg5LDYgKzM5OCw5IEBAIHJ0ZV9mbG93X2Ny ZWF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICAJCWZ0c19leGl0KGRldik7DQo+ID4gIAkJaWYg KGZsb3cgPT0gTlVMTCkNCj4gPiAgCQkJZmxvd19lcnIocG9ydF9pZCwgLXJ0ZV9lcnJubywgZXJy b3IpOw0KPiA+ICsNCj4gPiArCQlydGVfZmxvd190cmFjZV9jcmVhdGUocG9ydF9pZCwgYXR0ciwg cGF0dGVybiwgYWN0aW9ucywgZmxvdyk7DQo+ID4gKw0KPiA+ICAJCXJldHVybiBmbG93Ow0KPiA+ ICAJfQ0KPiA+ICAJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9TWVMsDQo+ID4gUlRFX0ZM T1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gPiBAQCAtNDEyLDcgKzQyNCwxMSBAQCBydGVf Zmxvd19kZXN0cm95KHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gIAkJZnRzX2VudGVyKGRldik7DQo+ ID4gIAkJcmV0ID0gb3BzLT5kZXN0cm95KGRldiwgZmxvdywgZXJyb3IpOw0KPiA+ICAJCWZ0c19l eGl0KGRldik7DQo+ID4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0K PiA+ICsJCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsNCj4gPiAr CQlydGVfZmxvd190cmFjZV9kZXN0cm95KHBvcnRfaWQsIGZsb3csIHJldCk7DQo+ID4gKw0KPiA+ ICsJCXJldHVybiByZXQ7DQo+ID4gIAl9DQo+ID4gIAlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0 KGVycm9yLCBFTk9TWVMsDQo+ID4gIAkJCQkgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJ RUQsDQo+ID4gQEAgLTQzNCw3ICs0NTAsMTEgQEAgcnRlX2Zsb3dfZmx1c2godWludDE2X3QgcG9y dF9pZCwNCj4gPiAgCQlmdHNfZW50ZXIoZGV2KTsNCj4gPiAgCQlyZXQgPSBvcHMtPmZsdXNoKGRl diwgZXJyb3IpOw0KPiA+ICAJCWZ0c19leGl0KGRldik7DQo+ID4gLQkJcmV0dXJuIGZsb3dfZXJy KHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsJCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJl dCwgZXJyb3IpOw0KPiA+ICsNCj4gPiArCQlydGVfZmxvd190cmFjZV9mbHVzaChwb3J0X2lkLCBy ZXQpOw0KPiA+ICsNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICAJfQ0KPiA+ICAJcmV0dXJuIHJ0 ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU5PU1lTLA0KPiA+ICAJCQkJICBSVEVfRkxPV19FUlJP Ul9UWVBFX1VOU1BFQ0lGSUVELA0KPiA+IEBAIC00NTksNyArNDc5LDExIEBAIHJ0ZV9mbG93X3F1 ZXJ5KHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gIAkJZnRzX2VudGVyKGRldik7DQo+ID4gIAkJcmV0 ID0gb3BzLT5xdWVyeShkZXYsIGZsb3csIGFjdGlvbiwgZGF0YSwgZXJyb3IpOw0KPiA+ICAJCWZ0 c19leGl0KGRldik7DQo+ID4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3Ip Ow0KPiA+ICsJCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsNCj4g PiArCQlydGVfZmxvd190cmFjZV9xdWVyeShwb3J0X2lkLCBmbG93LCBhY3Rpb24sIGRhdGEsIHJl dCk7DQo+ID4gKw0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gIAl9DQo+ID4gIAlyZXR1cm4gcnRl X2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9TWVMsDQo+ID4gIAkJCQkgIFJURV9GTE9XX0VSUk9S X1RZUEVfVU5TUEVDSUZJRUQsDQo+ID4gQEAgLTQ4Miw3ICs1MDYsMTEgQEAgcnRlX2Zsb3dfaXNv bGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICAJCWZ0c19lbnRlcihkZXYpOw0KPiA+ICAJCXJl dCA9IG9wcy0+aXNvbGF0ZShkZXYsIHNldCwgZXJyb3IpOw0KPiA+ICAJCWZ0c19leGl0KGRldik7 DQo+ID4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsJCXJl dCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsNCj4gPiArCQlydGVfZmxv d190cmFjZV9pc29sYXRlKHBvcnRfaWQsIHNldCwgcmV0KTsNCj4gPiArDQo+ID4gKwkJcmV0dXJu IHJldDsNCj4gPiAgCX0NCj4gPiAgCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVO T1NZUywNCj4gPiAgCQkJCSAgUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gPiBA QCAtMTAwMyw2ICsxMDMxLDggQEAgcnRlX2Zsb3dfY29udihlbnVtIHJ0ZV9mbG93X2NvbnZfb3Ag b3AsDQo+ID4gIAkgICAgICBjb25zdCB2b2lkICpzcmMsDQo+ID4gIAkgICAgICBzdHJ1Y3QgcnRl X2Zsb3dfZXJyb3IgKmVycm9yKQ0KPiA+ICB7DQo+ID4gKwlydGVfZmxvd190cmFjZV9jb252KG9w LCBkc3QsIHNpemUsIHNyYyk7DQo+ID4gKw0KPiA+ICAJc3dpdGNoIChvcCkgew0KPiA+ICAJCWNv bnN0IHN0cnVjdCBydGVfZmxvd19hdHRyICphdHRyOw0KPiA+DQo+ID4gQEAgLTEwODcsNiArMTEx Nyw5IEBAIHJ0ZV9mbG93X2NvcHkoc3RydWN0IHJ0ZV9mbG93X2Rlc2MgKmRlc2MsIHNpemVfdA0K PiA+IGxlbiwNCj4gPiAgCQkJLmFjdGlvbnMgPSBkc3Rfc2l6ZSA/IGRzdC0+YWN0aW9ucyA6IE5V TEwsDQo+ID4gIAkJICAgfSksDQo+ID4gIAkJICAgbGVuID4gc2l6ZW9mKCpkZXNjKSA/IHNpemVv ZigqZGVzYykgOiBsZW4pOw0KPiA+ICsNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2NvcHkoZGVzYywg bGVuLCBhdHRyLCBpdGVtcywgYWN0aW9ucywgcmV0KTsNCj4gPiArDQo+ID4gIAlyZXR1cm4gcmV0 Ow0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMTEyNSw3ICsxMTU4LDExIEBAIHJ0ZV9mbG93X2dldF9h Z2VkX2Zsb3dzKHVpbnQxNl90IHBvcnRfaWQsIHZvaWQNCj4gPiAqKmNvbnRleHRzLA0KPiA+ICAJ CWZ0c19lbnRlcihkZXYpOw0KPiA+ICAJCXJldCA9IG9wcy0+Z2V0X2FnZWRfZmxvd3MoZGV2LCBj b250ZXh0cywgbmJfY29udGV4dHMsDQo+ID4gZXJyb3IpOw0KPiA+ICAJCWZ0c19leGl0KGRldik7 DQo+ID4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsJCXJl dCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsNCj4gPiArCQlydGVfZmxv d190cmFjZV9nZXRfYWdlZF9mbG93cyhwb3J0X2lkLCBjb250ZXh0cywNCj4gPiBuYl9jb250ZXh0 cywgcmV0KTsNCj4gPiArDQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiAgCX0NCj4gPiAgCXJldHVy biBydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVOT1RTVVAsDQo+ID4gIAkJCQkgIFJURV9GTE9X X0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsDQo+ID4gQEAgLTExNDcsNyArMTE4NCwxMiBAQCBydGVf Zmxvd19nZXRfcV9hZ2VkX2Zsb3dzKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gdWludDMyX3QgcXVl dWVfaWQsIHZvaWQgKipjb250ZXh0cywNCj4gPiAgCQlyZXQgPSBvcHMtPmdldF9xX2FnZWRfZmxv d3MoZGV2LCBxdWV1ZV9pZCwgY29udGV4dHMsDQo+ID4gIAkJCQkJICAgIG5iX2NvbnRleHRzLCBl cnJvcik7DQo+ID4gIAkJZnRzX2V4aXQoZGV2KTsNCj4gPiAtCQlyZXR1cm4gZmxvd19lcnIocG9y dF9pZCwgcmV0LCBlcnJvcik7DQo+ID4gKwkJcmV0ID0gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBl cnJvcik7DQo+ID4gKw0KPiA+ICsJCXJ0ZV9mbG93X3RyYWNlX2dldF9xX2FnZWRfZmxvd3MocG9y dF9pZCwgcXVldWVfaWQsDQo+ID4gY29udGV4dHMsDQo+ID4gKwkJCQkJCW5iX2NvbnRleHRzLCBy ZXQpOw0KPiA+ICsNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICAJfQ0KPiA+ICAJcmV0dXJuIHJ0 ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU5PVFNVUCwNCj4gPiAgCQkJCSAgUlRFX0ZMT1dfRVJS T1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gPiBAQCAtMTE3NSw2ICsxMjE3LDkgQEAgcnRlX2Zsb3df YWN0aW9uX2hhbmRsZV9jcmVhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gPiAgCQkJCQkgICBjb25m LCBhY3Rpb24sIGVycm9yKTsNCj4gPiAgCWlmIChoYW5kbGUgPT0gTlVMTCkNCj4gPiAgCQlmbG93 X2Vycihwb3J0X2lkLCAtcnRlX2Vycm5vLCBlcnJvcik7DQo+ID4gKw0KPiA+ICsJcnRlX2Zsb3df dHJhY2VfYWN0aW9uX2hhbmRsZV9jcmVhdGUocG9ydF9pZCwgY29uZiwgYWN0aW9uLCBoYW5kbGUp Ow0KPiA+ICsNCj4gPiAgCXJldHVybiBoYW5kbGU7DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC0xMTk0 LDcgKzEyMzksMTEgQEAgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZV9kZXN0cm95KHVpbnQxNl90DQo+ ID4gcG9ydF9pZCwNCj4gPiAgCQkJCQkgIE5VTEwsIHJ0ZV9zdHJlcnJvcihFTk9TWVMpKTsNCj4g PiAgCXJldCA9IG9wcy0+YWN0aW9uX2hhbmRsZV9kZXN0cm95KCZydGVfZXRoX2RldmljZXNbcG9y dF9pZF0sDQo+ID4gIAkJCQkJIGhhbmRsZSwgZXJyb3IpOw0KPiA+IC0JcmV0dXJuIGZsb3dfZXJy KHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsJcmV0ID0gZmxvd19lcnIocG9ydF9pZCwgcmV0 LCBlcnJvcik7DQo+ID4gKw0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfYWN0aW9uX2hhbmRsZV9kZXN0 cm95KHBvcnRfaWQsIGhhbmRsZSwgcmV0KTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ ICB9DQo+ID4NCj4gPiAgaW50DQo+ID4gQEAgLTEyMTQsNyArMTI2MywxMSBAQCBydGVfZmxvd19h Y3Rpb25faGFuZGxlX3VwZGF0ZSh1aW50MTZfdA0KPiBwb3J0X2lkLA0KPiA+ICAJCQkJCSAgTlVM TCwgcnRlX3N0cmVycm9yKEVOT1NZUykpOw0KPiA+ICAJcmV0ID0gb3BzLT5hY3Rpb25faGFuZGxl X3VwZGF0ZSgmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdLA0KPiA+IGhhbmRsZSwNCj4gPiAgCQkJ CQl1cGRhdGUsIGVycm9yKTsNCj4gPiAtCXJldHVybiBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVy cm9yKTsNCj4gPiArCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsN Cj4gPiArCXJ0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5kbGVfdXBkYXRlKHBvcnRfaWQsIGhhbmRs ZSwgdXBkYXRlLA0KPiA+IHJldCk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHJldDsNCj4gPiAgfQ0K PiA+DQo+ID4gIGludA0KPiA+IEBAIC0xMjM0LDcgKzEyODcsMTEgQEAgcnRlX2Zsb3dfYWN0aW9u X2hhbmRsZV9xdWVyeSh1aW50MTZfdA0KPiBwb3J0X2lkLA0KPiA+ICAJCQkJCSAgTlVMTCwgcnRl X3N0cmVycm9yKEVOT1NZUykpOw0KPiA+ICAJcmV0ID0gb3BzLT5hY3Rpb25faGFuZGxlX3F1ZXJ5 KCZydGVfZXRoX2RldmljZXNbcG9ydF9pZF0sIGhhbmRsZSwNCj4gPiAgCQkJCSAgICAgICBkYXRh LCBlcnJvcik7DQo+ID4gLQlyZXR1cm4gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ ID4gKwlyZXQgPSBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4gPiArDQo+ID4gKwly dGVfZmxvd190cmFjZV9hY3Rpb25faGFuZGxlX3F1ZXJ5KHBvcnRfaWQsIGhhbmRsZSwgZGF0YSwg cmV0KTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4NCj4gPiAgaW50DQo+ ID4gQEAgLTEyNDYsMTQgKzEzMDMsMjAgQEAgcnRlX2Zsb3dfdHVubmVsX2RlY2FwX3NldCh1aW50 MTZfdCBwb3J0X2lkLA0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZy dGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4gIAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3Bz ICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVycm9yKTsNCj4gPiArCWludCByZXQ7 DQo+ID4NCj4gPiAgCWlmICh1bmxpa2VseSghb3BzKSkNCj4gPiAgCQlyZXR1cm4gLXJ0ZV9lcnJu bzsNCj4gPiAgCWlmIChsaWtlbHkoISFvcHMtPnR1bm5lbF9kZWNhcF9zZXQpKSB7DQo+ID4gLQkJ cmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4gLQkJCQlvcHMtPnR1bm5lbF9kZWNhcF9zZXQo ZGV2LCB0dW5uZWwsIGFjdGlvbnMsDQo+ID4gLQkJCQkJCSAgICAgIG51bV9vZl9hY3Rpb25zLCBl cnJvciksDQo+ID4gLQkJCQllcnJvcik7DQo+ID4gKwkJcmV0ID0gZmxvd19lcnIocG9ydF9pZCwN Cj4gPiArCQkJICAgICAgIG9wcy0+dHVubmVsX2RlY2FwX3NldChkZXYsIHR1bm5lbCwgYWN0aW9u cywNCj4gPiArCQkJCQkJICAgICBudW1fb2ZfYWN0aW9ucywgZXJyb3IpLA0KPiA+ICsJCQkgICAg ICAgZXJyb3IpOw0KPiA+ICsNCj4gPiArCQlydGVfZmxvd190cmFjZV90dW5uZWxfZGVjYXBfc2V0 KHBvcnRfaWQsIHR1bm5lbCwgYWN0aW9ucywNCj4gPiArCQkJCQkJbnVtX29mX2FjdGlvbnMsIHJl dCk7DQo+ID4gKw0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gIAl9DQo+ID4gIAlyZXR1cm4gcnRl X2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9UU1VQLA0KPiA+ICAJCQkJICBSVEVfRkxPV19FUlJP Ul9UWVBFX1VOU1BFQ0lGSUVELA0KPiA+IEBAIC0xMjY5LDE0ICsxMzMyLDIwIEBAIHJ0ZV9mbG93 X3R1bm5lbF9tYXRjaCh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4gIAljb25zdCBz dHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVycm9y KTsNCj4gPiArCWludCByZXQ7DQo+ID4NCj4gPiAgCWlmICh1bmxpa2VseSghb3BzKSkNCj4gPiAg CQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiAgCWlmIChsaWtlbHkoISFvcHMtPnR1bm5lbF9tYXRj aCkpIHsNCj4gPiAtCQlyZXR1cm4gZmxvd19lcnIocG9ydF9pZCwNCj4gPiAtCQkJCW9wcy0+dHVu bmVsX21hdGNoKGRldiwgdHVubmVsLCBpdGVtcywNCj4gPiAtCQkJCQkJICBudW1fb2ZfaXRlbXMs IGVycm9yKSwNCj4gPiAtCQkJCWVycm9yKTsNCj4gPiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lk LA0KPiA+ICsJCQkgICAgICAgb3BzLT50dW5uZWxfbWF0Y2goZGV2LCB0dW5uZWwsIGl0ZW1zLA0K PiA+ICsJCQkJCQkgbnVtX29mX2l0ZW1zLCBlcnJvciksDQo+ID4gKwkJCSAgICAgICBlcnJvcik7 DQo+ID4gKw0KPiA+ICsJCXJ0ZV9mbG93X3RyYWNlX3R1bm5lbF9tYXRjaChwb3J0X2lkLCB0dW5u ZWwsIGl0ZW1zLA0KPiA+IG51bV9vZl9pdGVtcywNCj4gPiArCQkJCQkgICAgcmV0KTsNCj4gPiAr DQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiAgCX0NCj4gPiAgCXJldHVybiBydGVfZmxvd19lcnJv cl9zZXQoZXJyb3IsIEVOT1RTVVAsDQo+ID4gIAkJCQkgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5T UEVDSUZJRUQsDQo+ID4gQEAgLTEyOTEsMTQgKzEzNjAsMTkgQEAgcnRlX2Zsb3dfZ2V0X3Jlc3Rv cmVfaW5mbyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4gIAljb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfb3BzICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVycm9yKTsNCj4g PiArCWludCByZXQ7DQo+ID4NCj4gPiAgCWlmICh1bmxpa2VseSghb3BzKSkNCj4gPiAgCQlyZXR1 cm4gLXJ0ZV9lcnJubzsNCj4gPiAgCWlmIChsaWtlbHkoISFvcHMtPmdldF9yZXN0b3JlX2luZm8p KSB7DQo+ID4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4gLQkJCQlvcHMtPmdldF9y ZXN0b3JlX2luZm8oZGV2LCBtLCByZXN0b3JlX2luZm8sDQo+ID4gLQkJCQkJCSAgICAgIGVycm9y KSwNCj4gPiAtCQkJCWVycm9yKTsNCj4gPiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLA0KPiA+ ICsJCQkgICAgICAgb3BzLT5nZXRfcmVzdG9yZV9pbmZvKGRldiwgbSwgcmVzdG9yZV9pbmZvLA0K PiA+ICsJCQkJCQkgICAgIGVycm9yKSwNCj4gPiArCQkJICAgICAgIGVycm9yKTsNCj4gPiArDQo+ ID4gKwkJcnRlX2Zsb3dfdHJhY2VfZ2V0X3Jlc3RvcmVfaW5mbyhwb3J0X2lkLCBtLCByZXN0b3Jl X2luZm8sDQo+ID4gcmV0KTsNCj4gPiArDQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiAgCX0NCj4g PiAgCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVOT1RTVVAsDQo+ID4gIAkJCQkg IFJURV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsDQo+ID4gQEAgLTEzMTMsMTUgKzEzODcs MjEgQEANCj4gcnRlX2Zsb3dfdHVubmVsX2FjdGlvbl9kZWNhcF9yZWxlYXNlKHVpbnQxNl90DQo+ ID4gcG9ydF9pZCwNCj4gPiAgew0KPiA+ICAJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRl X2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiA+ICAJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wcyAq b3BzID0gcnRlX2Zsb3dfb3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ID4gKwlpbnQgcmV0Ow0K PiA+DQo+ID4gIAlpZiAodW5saWtlbHkoIW9wcykpDQo+ID4gIAkJcmV0dXJuIC1ydGVfZXJybm87 DQo+ID4gIAlpZiAobGlrZWx5KCEhb3BzLT50dW5uZWxfYWN0aW9uX2RlY2FwX3JlbGVhc2UpKSB7 DQo+ID4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4gLQkJCQlvcHMtPnR1bm5lbF9h Y3Rpb25fZGVjYXBfcmVsZWFzZShkZXYsDQo+ID4gYWN0aW9ucywNCj4gPiAtDQo+ID4gbnVtX29m X2FjdGlvbnMsDQo+ID4gLQkJCQkJCQkJIGVycm9yKSwNCj4gPiAtCQkJCWVycm9yKTsNCj4gPiAr CQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLA0KPiA+ICsJCQkgICAgICAgb3BzLT50dW5uZWxfYWN0 aW9uX2RlY2FwX3JlbGVhc2UoZGV2LCBhY3Rpb25zLA0KPiA+ICsNCj4gPiAJbnVtX29mX2FjdGlv bnMsDQo+ID4gKwkJCQkJCQkJZXJyb3IpLA0KPiA+ICsJCQkgICAgICAgZXJyb3IpOw0KPiA+ICsN Cj4gPiArCQlydGVfZmxvd190cmFjZV90dW5uZWxfYWN0aW9uX2RlY2FwX3JlbGVhc2UocG9ydF9p ZCwNCj4gPiBhY3Rpb25zLA0KPiA+ICsJCQkJCQkJICAgbnVtX29mX2FjdGlvbnMsDQo+ID4gcmV0 KTsNCj4gPiArDQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiAgCX0NCj4gPiAgCXJldHVybiBydGVf Zmxvd19lcnJvcl9zZXQoZXJyb3IsIEVOT1RTVVAsDQo+ID4gIAkJCQkgIFJURV9GTE9XX0VSUk9S X1RZUEVfVU5TUEVDSUZJRUQsDQo+ID4gQEAgLTEzMzYsMTQgKzE0MTYsMTkgQEAgcnRlX2Zsb3df dHVubmVsX2l0ZW1fcmVsZWFzZSh1aW50MTZfdA0KPiBwb3J0X2lkLA0KPiA+ICB7DQo+ID4gIAlz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4g IAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBvcnRf aWQsIGVycm9yKTsNCj4gPiArCWludCByZXQ7DQo+ID4NCj4gPiAgCWlmICh1bmxpa2VseSghb3Bz KSkNCj4gPiAgCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiAgCWlmIChsaWtlbHkoISFvcHMtPnR1 bm5lbF9pdGVtX3JlbGVhc2UpKSB7DQo+ID4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+ ID4gLQkJCQlvcHMtPnR1bm5lbF9pdGVtX3JlbGVhc2UoZGV2LCBpdGVtcywNCj4gPiAtCQkJCQkJ CSBudW1fb2ZfaXRlbXMsDQo+ID4gZXJyb3IpLA0KPiA+IC0JCQkJZXJyb3IpOw0KPiA+ICsJCXJl dCA9IGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4gKwkJCSAgICAgICBvcHMtPnR1bm5lbF9pdGVtX3Jl bGVhc2UoZGV2LCBpdGVtcywNCj4gPiArCQkJCQkJCW51bV9vZl9pdGVtcywNCj4gPiBlcnJvciks DQo+ID4gKwkJCSAgICAgICBlcnJvcik7DQo+ID4gKw0KPiA+ICsJCXJ0ZV9mbG93X3RyYWNlX3R1 bm5lbF9pdGVtX3JlbGVhc2UocG9ydF9pZCwgaXRlbXMsDQo+ID4gbnVtX29mX2l0ZW1zLCByZXQp Ow0KPiA+ICsNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICAJfQ0KPiA+ICAJcmV0dXJuIHJ0ZV9m bG93X2Vycm9yX3NldChlcnJvciwgRU5PVFNVUCwNCj4gPiAgCQkJCSAgUlRFX0ZMT1dfRVJST1Jf VFlQRV9VTlNQRUNJRklFRCwNCj4gPiBAQCAtMTM1Niw2ICsxNDQxLDcgQEAgcnRlX2Zsb3dfcGlj a190cmFuc2Zlcl9wcm94eSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+IHVpbnQxNl90ICpwcm94eV9w b3J0X2lkLA0KPiA+ICB7DQo+ID4gIAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMgPSBy dGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVycm9yKTsNCj4gPiAgCXN0cnVjdCBydGVfZXRoX2Rl diAqZGV2Ow0KPiA+ICsJaW50IHJldDsNCj4gPg0KPiA+ICAJaWYgKHVubGlrZWx5KG9wcyA9PSBO VUxMKSkNCj4gPiAgCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiBAQCAtMTM2Nyw5ICsxNDUzLDEz IEBAIHJ0ZV9mbG93X3BpY2tfdHJhbnNmZXJfcHJveHkodWludDE2X3QgcG9ydF9pZCwNCj4gPiB1 aW50MTZfdCAqcHJveHlfcG9ydF9pZCwNCj4gPg0KPiA+ICAJZGV2ID0gJnJ0ZV9ldGhfZGV2aWNl c1twb3J0X2lkXTsNCj4gPg0KPiA+IC0JcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4gLQkJ CW9wcy0+cGlja190cmFuc2Zlcl9wcm94eShkZXYsIHByb3h5X3BvcnRfaWQsDQo+ID4gZXJyb3Ip LA0KPiA+IC0JCQllcnJvcik7DQo+ID4gKwlyZXQgPSBmbG93X2Vycihwb3J0X2lkLA0KPiA+ICsJ CSAgICAgICBvcHMtPnBpY2tfdHJhbnNmZXJfcHJveHkoZGV2LCBwcm94eV9wb3J0X2lkLCBlcnJv ciksDQo+ID4gKwkJICAgICAgIGVycm9yKTsNCj4gPiArDQo+ID4gKwlydGVfZmxvd190cmFjZV9w aWNrX3RyYW5zZmVyX3Byb3h5KHBvcnRfaWQsIHByb3h5X3BvcnRfaWQsIHJldCk7DQo+ID4gKw0K PiA+ICsJcmV0dXJuIHJldDsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0cnVjdCBydGVfZmxvd19pdGVt X2ZsZXhfaGFuZGxlICoNCj4gPiBAQCAtMTM5Miw2ICsxNDgyLDkgQEAgcnRlX2Zsb3dfZmxleF9p dGVtX2NyZWF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICAJaGFuZGxlID0gb3BzLT5mbGV4X2l0 ZW1fY3JlYXRlKGRldiwgY29uZiwgZXJyb3IpOw0KPiA+ICAJaWYgKGhhbmRsZSA9PSBOVUxMKQ0K PiA+ICAJCWZsb3dfZXJyKHBvcnRfaWQsIC1ydGVfZXJybm8sIGVycm9yKTsNCj4gPiArDQo+ID4g KwlydGVfZmxvd190cmFjZV9mbGV4X2l0ZW1fY3JlYXRlKHBvcnRfaWQsIGNvbmYsIGhhbmRsZSk7 DQo+ID4gKw0KPiA+ICAJcmV0dXJuIGhhbmRsZTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTE0MDks NyArMTUwMiwxMSBAQCBydGVfZmxvd19mbGV4X2l0ZW1fcmVsZWFzZSh1aW50MTZfdCBwb3J0X2lk LA0KPiA+DQo+ID4gUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gPiAgCQkJCQkg IE5VTEwsIHJ0ZV9zdHJlcnJvcihFTk9UU1VQKSk7DQo+ID4gIAlyZXQgPSBvcHMtPmZsZXhfaXRl bV9yZWxlYXNlKGRldiwgaGFuZGxlLCBlcnJvcik7DQo+ID4gLQlyZXR1cm4gZmxvd19lcnIocG9y dF9pZCwgcmV0LCBlcnJvcik7DQo+ID4gKwlyZXQgPSBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVy cm9yKTsNCj4gPiArDQo+ID4gKwlydGVfZmxvd190cmFjZV9mbGV4X2l0ZW1fcmVsZWFzZShwb3J0 X2lkLCBoYW5kbGUsIHJldCk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHJldDsNCj4gPiAgfQ0KPiA+ DQo+ID4gIGludA0KPiA+IEBAIC0xNDIwLDYgKzE1MTcsNyBAQCBydGVfZmxvd19pbmZvX2dldCh1 aW50MTZfdCBwb3J0X2lkLA0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9 ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4gIAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3df b3BzICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVycm9yKTsNCj4gPiArCWludCBy ZXQ7DQo+ID4NCj4gPiAgCWlmICh1bmxpa2VseSghb3BzKSkNCj4gPiAgCQlyZXR1cm4gLXJ0ZV9l cnJubzsNCj4gPiBAQCAtMTQzNCw5ICsxNTMyLDEzIEBAIHJ0ZV9mbG93X2luZm9fZ2V0KHVpbnQx Nl90IHBvcnRfaWQsDQo+ID4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gIAl9DQo+ID4gIAlpZiAo bGlrZWx5KCEhb3BzLT5pbmZvX2dldCkpIHsNCj4gPiAtCQlyZXR1cm4gZmxvd19lcnIocG9ydF9p ZCwNCj4gPiAtCQkJCW9wcy0+aW5mb19nZXQoZGV2LCBwb3J0X2luZm8sIHF1ZXVlX2luZm8sDQo+ ID4gZXJyb3IpLA0KPiA+IC0JCQkJZXJyb3IpOw0KPiA+ICsJCXJldCA9IGZsb3dfZXJyKHBvcnRf aWQsDQo+ID4gKwkJCSAgICAgICBvcHMtPmluZm9fZ2V0KGRldiwgcG9ydF9pbmZvLCBxdWV1ZV9p bmZvLA0KPiA+IGVycm9yKSwNCj4gPiArCQkJICAgICAgIGVycm9yKTsNCj4gPiArDQo+ID4gKwkJ cnRlX2Zsb3dfdHJhY2VfaW5mb19nZXQocG9ydF9pZCwgcG9ydF9pbmZvLCBxdWV1ZV9pbmZvLA0K PiA+IHJldCk7DQo+ID4gKw0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gIAl9DQo+ID4gIAlyZXR1 cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9UU1VQLA0KPiA+ICAJCQkJICBSVEVfRkxP V19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0KPiA+IEBAIC0xNDgwLDcgKzE1ODIsMTEgQEAgcnRl X2Zsb3dfY29uZmlndXJlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gIAkJcmV0ID0gb3BzLT5jb25m aWd1cmUoZGV2LCBwb3J0X2F0dHIsIG5iX3F1ZXVlLCBxdWV1ZV9hdHRyLA0KPiA+IGVycm9yKTsN Cj4gPiAgCQlpZiAocmV0ID09IDApDQo+ID4gIAkJCWRldi0+ZGF0YS0+Zmxvd19jb25maWd1cmVk ID0gMTsNCj4gPiAtCQlyZXR1cm4gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ID4g KwkJcmV0ID0gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ID4gKw0KPiA+ICsJCXJ0 ZV9mbG93X3RyYWNlX2NvbmZpZ3VyZShwb3J0X2lkLCBwb3J0X2F0dHIsIG5iX3F1ZXVlLA0KPiA+ IHF1ZXVlX2F0dHIsIHJldCk7DQo+ID4gKw0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gIAl9DQo+ ID4gIAlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9UU1VQLA0KPiA+ICAJCQkJ ICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0KPiA+IEBAIC0xNTMxLDYgKzE2Mzcs MTAgQEAgcnRlX2Zsb3dfcGF0dGVybl90ZW1wbGF0ZV9jcmVhdGUodWludDE2X3QNCj4gPiBwb3J0 X2lkLA0KPiA+ICAJCQkJCQkJcGF0dGVybiwgZXJyb3IpOw0KPiA+ICAJCWlmICh0ZW1wbGF0ZSA9 PSBOVUxMKQ0KPiA+ICAJCQlmbG93X2Vycihwb3J0X2lkLCAtcnRlX2Vycm5vLCBlcnJvcik7DQo+ ID4gKw0KPiA+ICsJCXJ0ZV9mbG93X3RyYWNlX3BhdHRlcm5fdGVtcGxhdGVfY3JlYXRlKHBvcnRf aWQsDQo+ID4gdGVtcGxhdGVfYXR0ciwNCj4gPiArCQkJCQkJICAgICAgIHBhdHRlcm4sIHRlbXBs YXRlKTsNCj4gPiArDQo+ID4gIAkJcmV0dXJuIHRlbXBsYXRlOw0KPiA+ICAJfQ0KPiA+ICAJcnRl X2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9UU1VQLA0KPiA+IEBAIC0xNTQ2LDE3ICsxNjU2LDIz IEBAIHJ0ZV9mbG93X3BhdHRlcm5fdGVtcGxhdGVfZGVzdHJveSh1aW50MTZfdA0KPiA+IHBvcnRf aWQsDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2 aWNlc1twb3J0X2lkXTsNCj4gPiAgCWNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0 ZV9mbG93X29wc19nZXQocG9ydF9pZCwgZXJyb3IpOw0KPiA+ICsJaW50IHJldDsNCj4gPg0KPiA+ ICAJaWYgKHVubGlrZWx5KCFvcHMpKQ0KPiA+ICAJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ICAJ aWYgKHVubGlrZWx5KHBhdHRlcm5fdGVtcGxhdGUgPT0gTlVMTCkpDQo+ID4gIAkJcmV0dXJuIDA7 DQo+ID4gIAlpZiAobGlrZWx5KCEhb3BzLT5wYXR0ZXJuX3RlbXBsYXRlX2Rlc3Ryb3kpKSB7DQo+ ID4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4gLQkJCQlvcHMtPnBhdHRlcm5fdGVt cGxhdGVfZGVzdHJveShkZXYsDQo+ID4gLQkJCQkJCQkgICAgICBwYXR0ZXJuX3RlbXBsYXRlLA0K PiA+IC0JCQkJCQkJICAgICAgZXJyb3IpLA0KPiA+IC0JCQkJZXJyb3IpOw0KPiA+ICsJCXJldCA9 IGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4gKwkJCSAgICAgICBvcHMtPnBhdHRlcm5fdGVtcGxhdGVf ZGVzdHJveShkZXYsDQo+ID4gKwkJCQkJCQkgICAgIHBhdHRlcm5fdGVtcGxhdGUsDQo+ID4gKwkJ CQkJCQkgICAgIGVycm9yKSwNCj4gPiArCQkJICAgICAgIGVycm9yKTsNCj4gPiArDQo+ID4gKwkJ cnRlX2Zsb3dfdHJhY2VfcGF0dGVybl90ZW1wbGF0ZV9kZXN0cm95KHBvcnRfaWQsDQo+ID4gcGF0 dGVybl90ZW1wbGF0ZSwNCj4gPiArCQkJCQkJCXJldCk7DQo+ID4gKw0KPiA+ICsJCXJldHVybiBy ZXQ7DQo+ID4gIAl9DQo+ID4gIAlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9U U1VQLA0KPiA+ICAJCQkJICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0KPiA+IEBA IC0xNjE3LDYgKzE3MzMsMTAgQEAgcnRlX2Zsb3dfYWN0aW9uc190ZW1wbGF0ZV9jcmVhdGUodWlu dDE2X3QNCj4gPiBwb3J0X2lkLA0KPiA+ICAJCQkJCQkJYWN0aW9ucywgbWFza3MsDQo+ID4gZXJy b3IpOw0KPiA+ICAJCWlmICh0ZW1wbGF0ZSA9PSBOVUxMKQ0KPiA+ICAJCQlmbG93X2Vycihwb3J0 X2lkLCAtcnRlX2Vycm5vLCBlcnJvcik7DQo+ID4gKw0KPiA+ICsJCXJ0ZV9mbG93X3RyYWNlX2Fj dGlvbnNfdGVtcGxhdGVfY3JlYXRlKHBvcnRfaWQsDQo+ID4gdGVtcGxhdGVfYXR0ciwgYWN0aW9u cywNCj4gPiArCQkJCQkJICAgICAgIG1hc2tzLCB0ZW1wbGF0ZSk7DQo+ID4gKw0KPiA+ICAJCXJl dHVybiB0ZW1wbGF0ZTsNCj4gPiAgCX0NCj4gPiAgCXJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwg RU5PVFNVUCwNCj4gPiBAQCAtMTYzMiwxNyArMTc1MiwyMyBAQCBydGVfZmxvd19hY3Rpb25zX3Rl bXBsYXRlX2Rlc3Ryb3kodWludDE2X3QNCj4gPiBwb3J0X2lkLA0KPiA+ICB7DQo+ID4gIAlzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4gIAlj b25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQs IGVycm9yKTsNCj4gPiArCWludCByZXQ7DQo+ID4NCj4gPiAgCWlmICh1bmxpa2VseSghb3BzKSkN Cj4gPiAgCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiAgCWlmICh1bmxpa2VseShhY3Rpb25zX3Rl bXBsYXRlID09IE5VTEwpKQ0KPiA+ICAJCXJldHVybiAwOw0KPiA+ICAJaWYgKGxpa2VseSghIW9w cy0+YWN0aW9uc190ZW1wbGF0ZV9kZXN0cm95KSkgew0KPiA+IC0JCXJldHVybiBmbG93X2Vycihw b3J0X2lkLA0KPiA+IC0JCQkJb3BzLT5hY3Rpb25zX3RlbXBsYXRlX2Rlc3Ryb3koZGV2LA0KPiA+ IC0JCQkJCQkJICAgICAgYWN0aW9uc190ZW1wbGF0ZSwNCj4gPiAtCQkJCQkJCSAgICAgIGVycm9y KSwNCj4gPiAtCQkJCWVycm9yKTsNCj4gPiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLA0KPiA+ ICsJCQkgICAgICAgb3BzLT5hY3Rpb25zX3RlbXBsYXRlX2Rlc3Ryb3koZGV2LA0KPiA+ICsJCQkJ CQkJICAgICBhY3Rpb25zX3RlbXBsYXRlLA0KPiA+ICsJCQkJCQkJICAgICBlcnJvciksDQo+ID4g KwkJCSAgICAgICBlcnJvcik7DQo+ID4gKw0KPiA+ICsJCXJ0ZV9mbG93X3RyYWNlX2FjdGlvbnNf dGVtcGxhdGVfZGVzdHJveShwb3J0X2lkLA0KPiA+IGFjdGlvbnNfdGVtcGxhdGUsDQo+ID4gKwkJ CQkJCQlyZXQpOw0KPiA+ICsNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICAJfQ0KPiA+ICAJcmV0 dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU5PVFNVUCwNCj4gPiAgCQkJCSAgUlRFX0ZM T1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gPiBAQCAtMTcwNyw2ICsxODMzLDEzIEBAIHJ0 ZV9mbG93X3RlbXBsYXRlX3RhYmxlX2NyZWF0ZSh1aW50MTZfdA0KPiA+IHBvcnRfaWQsDQo+ID4g IAkJCQkJZXJyb3IpOw0KPiA+ICAJCWlmICh0YWJsZSA9PSBOVUxMKQ0KPiA+ICAJCQlmbG93X2Vy cihwb3J0X2lkLCAtcnRlX2Vycm5vLCBlcnJvcik7DQo+ID4gKw0KPiA+ICsJCXJ0ZV9mbG93X3Ry YWNlX3RlbXBsYXRlX3RhYmxlX2NyZWF0ZShwb3J0X2lkLCB0YWJsZV9hdHRyLA0KPiA+ICsJCQkJ CQkgICAgIHBhdHRlcm5fdGVtcGxhdGVzLA0KPiA+ICsJCQkJCQkgICAgIG5iX3BhdHRlcm5fdGVt cGxhdGVzLA0KPiA+ICsJCQkJCQkgICAgIGFjdGlvbnNfdGVtcGxhdGVzLA0KPiA+ICsJCQkJCQkg ICAgIG5iX2FjdGlvbnNfdGVtcGxhdGVzLA0KPiA+IHRhYmxlKTsNCj4gPiArDQo+ID4gIAkJcmV0 dXJuIHRhYmxlOw0KPiA+ICAJfQ0KPiA+ICAJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9U U1VQLA0KPiA+IEBAIC0xNzIyLDE3ICsxODU1LDIzIEBAIHJ0ZV9mbG93X3RlbXBsYXRlX3RhYmxl X2Rlc3Ryb3kodWludDE2X3QNCj4gPiBwb3J0X2lkLA0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4gIAljb25zdCBz dHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVycm9y KTsNCj4gPiArCWludCByZXQ7DQo+ID4NCj4gPiAgCWlmICh1bmxpa2VseSghb3BzKSkNCj4gPiAg CQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiAgCWlmICh1bmxpa2VseSh0ZW1wbGF0ZV90YWJsZSA9 PSBOVUxMKSkNCj4gPiAgCQlyZXR1cm4gMDsNCj4gPiAgCWlmIChsaWtlbHkoISFvcHMtPnRlbXBs YXRlX3RhYmxlX2Rlc3Ryb3kpKSB7DQo+ID4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+ ID4gLQkJCQlvcHMtPnRlbXBsYXRlX3RhYmxlX2Rlc3Ryb3koZGV2LA0KPiA+IC0JCQkJCQkJICAg IHRlbXBsYXRlX3RhYmxlLA0KPiA+IC0JCQkJCQkJICAgIGVycm9yKSwNCj4gPiAtCQkJCWVycm9y KTsNCj4gPiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLA0KPiA+ICsJCQkgICAgICAgb3BzLT50 ZW1wbGF0ZV90YWJsZV9kZXN0cm95KGRldiwNCj4gPiArCQkJCQkJCSAgIHRlbXBsYXRlX3RhYmxl LA0KPiA+ICsJCQkJCQkJICAgZXJyb3IpLA0KPiA+ICsJCQkgICAgICAgZXJyb3IpOw0KPiA+ICsN Cj4gPiArCQlydGVfZmxvd190cmFjZV90ZW1wbGF0ZV90YWJsZV9kZXN0cm95KHBvcnRfaWQsDQo+ ID4gdGVtcGxhdGVfdGFibGUsDQo+ID4gKwkJCQkJCSAgICAgIHJldCk7DQo+ID4gKw0KPiA+ICsJ CXJldHVybiByZXQ7DQo+ID4gIAl9DQo+ID4gIAlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVy cm9yLCBFTk9UU1VQLA0KPiA+ICAJCQkJICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVE LA0KPiA+IEBAIC0xNzYyLDYgKzE5MDEsMTEgQEAgcnRlX2Zsb3dfYXN5bmNfY3JlYXRlKHVpbnQx Nl90IHBvcnRfaWQsDQo+ID4gIAkJCQkgdXNlcl9kYXRhLCBlcnJvcik7DQo+ID4gIAlpZiAoZmxv dyA9PSBOVUxMKQ0KPiA+ICAJCWZsb3dfZXJyKHBvcnRfaWQsIC1ydGVfZXJybm8sIGVycm9yKTsN Cj4gPiArDQo+ID4gKwlydGVfZmxvd190cmFjZV9hc3luY19jcmVhdGUocG9ydF9pZCwgcXVldWVf aWQsIG9wX2F0dHIsDQo+ID4gdGVtcGxhdGVfdGFibGUsDQo+ID4gKwkJCQkgICAgcGF0dGVybiwg cGF0dGVybl90ZW1wbGF0ZV9pbmRleCwgYWN0aW9ucywNCj4gPiArCQkJCSAgICBhY3Rpb25zX3Rl bXBsYXRlX2luZGV4LCB1c2VyX2RhdGEsIGZsb3cpOw0KPiA+ICsNCj4gPiAgCXJldHVybiBmbG93 Ow0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMTc3NSwxMiArMTkxOSwxOCBAQCBydGVfZmxvd19hc3lu Y19kZXN0cm95KHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBydGVfZXRo X2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gPiAgCWNvbnN0IHN0cnVj dCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9mbG93X29wc19nZXQocG9ydF9pZCwgZXJyb3IpOw0K PiA+ICsJaW50IHJldDsNCj4gPg0KPiA+IC0JcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4g LQkJCW9wcy0+YXN5bmNfZGVzdHJveShkZXYsIHF1ZXVlX2lkLA0KPiA+IC0JCQkJCSAgIG9wX2F0 dHIsIGZsb3csDQo+ID4gLQkJCQkJICAgdXNlcl9kYXRhLCBlcnJvciksDQo+ID4gLQkJCWVycm9y KTsNCj4gPiArCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4gKwkJICAgICAgIG9wcy0+YXN5 bmNfZGVzdHJveShkZXYsIHF1ZXVlX2lkLA0KPiA+ICsJCQkJCSAgb3BfYXR0ciwgZmxvdywNCj4g PiArCQkJCQkgIHVzZXJfZGF0YSwgZXJyb3IpLA0KPiA+ICsJCSAgICAgICBlcnJvcik7DQo+ID4g Kw0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfYXN5bmNfZGVzdHJveShwb3J0X2lkLCBxdWV1ZV9pZCwg b3BfYXR0ciwgZmxvdywNCj4gPiArCQkJCSAgICAgdXNlcl9kYXRhLCByZXQpOw0KPiA+ICsNCj4g PiArCXJldHVybiByZXQ7DQo+ID4gIH0NCj4gPg0KPiA+ICBpbnQNCj4gPiBAQCAtMTc5MCwxMCAr MTk0MCwxNSBAQCBydGVfZmxvd19wdXNoKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gIHsNCj4gPiAg CXN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4g PiAgCWNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9mbG93X29wc19nZXQocG9y dF9pZCwgZXJyb3IpOw0KPiA+ICsJaW50IHJldDsNCj4gPg0KPiA+IC0JcmV0dXJuIGZsb3dfZXJy KHBvcnRfaWQsDQo+ID4gLQkJCW9wcy0+cHVzaChkZXYsIHF1ZXVlX2lkLCBlcnJvciksDQo+ID4g LQkJCWVycm9yKTsNCj4gPiArCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsDQo+ID4gKwkJICAgICAg IG9wcy0+cHVzaChkZXYsIHF1ZXVlX2lkLCBlcnJvciksDQo+ID4gKwkJICAgICAgIGVycm9yKTsN Cj4gPiArDQo+ID4gKwlydGVfZmxvd190cmFjZV9wdXNoKHBvcnRfaWQsIHF1ZXVlX2lkLCByZXQp Ow0KPiA+ICsNCj4gPiArCXJldHVybiByZXQ7DQo+ID4gIH0NCj4gPg0KPiA+ICBpbnQNCj4gPiBA QCAtMTgwNiw5ICsxOTYxLDE0IEBAIHJ0ZV9mbG93X3B1bGwodWludDE2X3QgcG9ydF9pZCwNCj4g PiAgCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsN Cj4gPiAgCWNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9mbG93X29wc19nZXQo cG9ydF9pZCwgZXJyb3IpOw0KPiA+ICAJaW50IHJldDsNCj4gPiArCWludCByYzsNCj4gPg0KPiA+ ICAJcmV0ID0gb3BzLT5wdWxsKGRldiwgcXVldWVfaWQsIHJlcywgbl9yZXMsIGVycm9yKTsNCj4g PiAtCXJldHVybiByZXQgPyByZXQgOiBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4g PiArCXJjID0gcmV0ID8gcmV0IDogZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ID4g Kw0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfcHVsbChwb3J0X2lkLCBxdWV1ZV9pZCwgcmVzLCBuX3Jl cywgcmMpOw0KPiA+ICsNCj4gPiArCXJldHVybiByYzsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0cnVj dCBydGVfZmxvd19hY3Rpb25faGFuZGxlICoNCj4gPiBAQCAtMTgyOCw2ICsxOTg4LDExIEBAIHJ0 ZV9mbG93X2FzeW5jX2FjdGlvbl9oYW5kbGVfY3JlYXRlKHVpbnQxNl90DQo+ID4gcG9ydF9pZCwN Cj4gPiAgCQkJCQkgICAgIGluZGlyX2FjdGlvbl9jb25mLCBhY3Rpb24sDQo+ID4gdXNlcl9kYXRh LCBlcnJvcik7DQo+ID4gIAlpZiAoaGFuZGxlID09IE5VTEwpDQo+ID4gIAkJZmxvd19lcnIocG9y dF9pZCwgLXJ0ZV9lcnJubywgZXJyb3IpOw0KPiA+ICsNCj4gPiArCXJ0ZV9mbG93X3RyYWNlX2Fz eW5jX2FjdGlvbl9oYW5kbGVfY3JlYXRlKHBvcnRfaWQsIHF1ZXVlX2lkLA0KPiA+IG9wX2F0dHIs DQo+ID4gKwkJCQkJCSAgaW5kaXJfYWN0aW9uX2NvbmYsIGFjdGlvbiwNCj4gPiArCQkJCQkJICB1 c2VyX2RhdGEsIGhhbmRsZSk7DQo+ID4gKw0KPiA+ICAJcmV0dXJuIGhhbmRsZTsNCj4gPiAgfQ0K PiA+DQo+ID4gQEAgLTE4NDUsNyArMjAxMCwxMiBAQA0KPiBydGVfZmxvd19hc3luY19hY3Rpb25f aGFuZGxlX2Rlc3Ryb3kodWludDE2X3QNCj4gPiBwb3J0X2lkLA0KPiA+DQo+ID4gIAlyZXQgPSBv cHMtPmFzeW5jX2FjdGlvbl9oYW5kbGVfZGVzdHJveShkZXYsIHF1ZXVlX2lkLCBvcF9hdHRyLA0K PiA+ICAJCQkJCSAgIGFjdGlvbl9oYW5kbGUsIHVzZXJfZGF0YSwgZXJyb3IpOw0KPiA+IC0JcmV0 dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsJcmV0ID0gZmxvd19lcnIo cG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ID4gKw0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfYXN5bmNf YWN0aW9uX2hhbmRsZV9kZXN0cm95KHBvcnRfaWQsIHF1ZXVlX2lkLA0KPiA+IG9wX2F0dHIsDQo+ ID4gKwkJCQkJCSAgIGFjdGlvbl9oYW5kbGUsIHVzZXJfZGF0YSwNCj4gPiByZXQpOw0KPiA+ICsN Cj4gPiArCXJldHVybiByZXQ7DQo+ID4gIH0NCj4gPg0KPiA+ICBpbnQNCj4gPiBAQCAtMTg2Myw3 ICsyMDMzLDEzIEBADQo+IHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9oYW5kbGVfdXBkYXRlKHVpbnQx Nl90DQo+ID4gcG9ydF9pZCwNCj4gPg0KPiA+ICAJcmV0ID0gb3BzLT5hc3luY19hY3Rpb25faGFu ZGxlX3VwZGF0ZShkZXYsIHF1ZXVlX2lkLCBvcF9hdHRyLA0KPiA+ICAJCQkJCSAgYWN0aW9uX2hh bmRsZSwgdXBkYXRlLCB1c2VyX2RhdGEsDQo+ID4gZXJyb3IpOw0KPiA+IC0JcmV0dXJuIGZsb3df ZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICsJcmV0ID0gZmxvd19lcnIocG9ydF9pZCwg cmV0LCBlcnJvcik7DQo+ID4gKw0KPiA+ICsJcnRlX2Zsb3dfdHJhY2VfYXN5bmNfYWN0aW9uX2hh bmRsZV91cGRhdGUocG9ydF9pZCwgcXVldWVfaWQsDQo+ID4gb3BfYXR0ciwNCj4gPiArCQkJCQkJ ICBhY3Rpb25faGFuZGxlLCB1cGRhdGUsDQo+ID4gKwkJCQkJCSAgdXNlcl9kYXRhLCByZXQpOw0K PiA+ICsNCj4gPiArCXJldHVybiByZXQ7DQo+ID4gIH0NCj4gPg0KPiA+ICBpbnQNCj4gPiBAQCAt MTg4MSw1ICsyMDU3LDExIEBAIHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9oYW5kbGVfcXVlcnkodWlu dDE2X3QNCj4gPiBwb3J0X2lkLA0KPiA+DQo+ID4gIAlyZXQgPSBvcHMtPmFzeW5jX2FjdGlvbl9o YW5kbGVfcXVlcnkoZGV2LCBxdWV1ZV9pZCwgb3BfYXR0ciwNCj4gPiAgCQkJCQkgIGFjdGlvbl9o YW5kbGUsIGRhdGEsIHVzZXJfZGF0YSwNCj4gPiBlcnJvcik7DQo+ID4gLQlyZXR1cm4gZmxvd19l cnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ID4gKwlyZXQgPSBmbG93X2Vycihwb3J0X2lkLCBy ZXQsIGVycm9yKTsNCj4gPiArDQo+ID4gKwlydGVfZmxvd190cmFjZV9hc3luY19hY3Rpb25faGFu ZGxlX3F1ZXJ5KHBvcnRfaWQsIHF1ZXVlX2lkLA0KPiA+IG9wX2F0dHIsDQo+ID4gKwkJCQkJCSBh Y3Rpb25faGFuZGxlLCBkYXRhLA0KPiA+IHVzZXJfZGF0YSwNCj4gPiArCQkJCQkJIHJldCk7DQo+ ID4gKw0KPiA+ICsJcmV0dXJuIHJldDsNCj4gPiAgfQ0KPiA+IGRpZmYgLS1naXQgYS9saWIvZXRo ZGV2L3ZlcnNpb24ubWFwIGIvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiA+IGluZGV4IGM3YzZi Y2Q0MmIuLjBjYjgyMjJhZDkgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2V0aGRldi92ZXJzaW9uLm1h cA0KPiA+ICsrKyBiL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXANCj4gPiBAQCAtNDQ1LDYgKzQ0NSw0 MyBAQCBFWFBFUklNRU5UQUwgew0KPiA+ICAJX19ydGVfZXRoZGV2X3RyYWNlX3VkcF90dW5uZWxf cG9ydF9hZGQ7DQo+ID4gIAlfX3J0ZV9ldGhkZXZfdHJhY2VfdWRwX3R1bm5lbF9wb3J0X2RlbGV0 ZTsNCj4gPiAgCV9fcnRlX2V0aGRldl90cmFjZV92bGFuX2ZpbHRlcjsNCj4gPiArCV9fcnRlX2Zs b3dfdHJhY2VfYWN0aW9uX2hhbmRsZV9jcmVhdGU7DQo+ID4gKwlfX3J0ZV9mbG93X3RyYWNlX2Fj dGlvbl9oYW5kbGVfZGVzdHJveTsNCj4gPiArCV9fcnRlX2Zsb3dfdHJhY2VfYWN0aW9uX2hhbmRs ZV9xdWVyeTsNCj4gPiArCV9fcnRlX2Zsb3dfdHJhY2VfYWN0aW9uX2hhbmRsZV91cGRhdGU7DQo+ ID4gKwlfX3J0ZV9mbG93X3RyYWNlX2FjdGlvbnNfdGVtcGxhdGVfY3JlYXRlOw0KPiA+ICsJX19y dGVfZmxvd190cmFjZV9hY3Rpb25zX3RlbXBsYXRlX2Rlc3Ryb3k7DQo+ID4gKwlfX3J0ZV9mbG93 X3RyYWNlX2FzeW5jX2FjdGlvbl9oYW5kbGVfY3JlYXRlOw0KPiA+ICsJX19ydGVfZmxvd190cmFj ZV9hc3luY19hY3Rpb25faGFuZGxlX2Rlc3Ryb3k7DQo+ID4gKwlfX3J0ZV9mbG93X3RyYWNlX2Fz eW5jX2FjdGlvbl9oYW5kbGVfdXBkYXRlOw0KPiA+ICsJX19ydGVfZmxvd190cmFjZV9hc3luY19j cmVhdGU7DQo+ID4gKwlfX3J0ZV9mbG93X3RyYWNlX2FzeW5jX2Rlc3Ryb3k7DQo+ID4gKwlfX3J0 ZV9mbG93X3RyYWNlX2NvbnY7DQo+ID4gKwlfX3J0ZV9mbG93X3RyYWNlX2NvbmZpZ3VyZTsNCj4g PiArCV9fcnRlX2Zsb3dfdHJhY2VfY29weTsNCj4gPiArCV9fcnRlX2Zsb3dfdHJhY2VfY3JlYXRl Ow0KPiA+ICsJX19ydGVfZmxvd190cmFjZV9kZXN0cm95Ow0KPiA+ICsJX19ydGVfZmxvd190cmFj ZV9keW5mX21ldGFkYXRhX3JlZ2lzdGVyOw0KPiA+ICsJX19ydGVfZmxvd190cmFjZV9mbGV4X2l0 ZW1fY3JlYXRlOw0KPiA+ICsJX19ydGVfZmxvd190cmFjZV9mbGV4X2l0ZW1fcmVsZWFzZTsNCj4g PiArCV9fcnRlX2Zsb3dfdHJhY2VfZmx1c2g7DQo+ID4gKwlfX3J0ZV9mbG93X3RyYWNlX2dldF9h Z2VkX2Zsb3dzOw0KPiA+ICsJX19ydGVfZmxvd190cmFjZV9nZXRfcmVzdG9yZV9pbmZvOw0KPiA+ ICsJX19ydGVfZmxvd190cmFjZV9pbmZvX2dldDsNCj4gPiArCV9fcnRlX2Zsb3dfdHJhY2VfaXNv bGF0ZTsNCj4gPiArCV9fcnRlX2Zsb3dfdHJhY2VfcGF0dGVybl90ZW1wbGF0ZV9jcmVhdGU7DQo+ ID4gKwlfX3J0ZV9mbG93X3RyYWNlX3BhdHRlcm5fdGVtcGxhdGVfZGVzdHJveTsNCj4gPiArCV9f cnRlX2Zsb3dfdHJhY2VfcGlja190cmFuc2Zlcl9wcm94eTsNCj4gPiArCV9fcnRlX2Zsb3dfdHJh Y2VfcHVzaDsNCj4gPiArCV9fcnRlX2Zsb3dfdHJhY2VfcHVsbDsNCj4gPiArCV9fcnRlX2Zsb3df dHJhY2VfcXVlcnk7DQo+ID4gKwlfX3J0ZV9mbG93X3RyYWNlX3RlbXBsYXRlX3RhYmxlX2NyZWF0 ZTsNCj4gPiArCV9fcnRlX2Zsb3dfdHJhY2VfdGVtcGxhdGVfdGFibGVfZGVzdHJveTsNCj4gPiAr CV9fcnRlX2Zsb3dfdHJhY2VfdHVubmVsX2FjdGlvbl9kZWNhcF9yZWxlYXNlOw0KPiA+ICsJX19y dGVfZmxvd190cmFjZV90dW5uZWxfZGVjYXBfc2V0Ow0KPiA+ICsJX19ydGVfZmxvd190cmFjZV90 dW5uZWxfaXRlbV9yZWxlYXNlOw0KPiA+ICsJX19ydGVfZmxvd190cmFjZV90dW5uZWxfbWF0Y2g7 DQo+ID4gKwlfX3J0ZV9mbG93X3RyYWNlX3ZhbGlkYXRlOw0KPiA+ICB9Ow0KPiA+DQo+ID4gIElO VEVSTkFMIHsNCj4gPiAtLQ0KPiA+IDIuMjUuMQ0KDQpUaGFua3MsDQpPcmkNCg==