Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp17829ybg; Mon, 27 Jul 2020 20:22:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx7vKgl0UKeBu4g9QY405IL5BMVskHW5Dx+u7qu5slpz5BihqErPv6gzk8NN3H8gGM83XFT X-Received: by 2002:a17:906:3850:: with SMTP id w16mr24928286ejc.205.1595906544524; Mon, 27 Jul 2020 20:22:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595906544; cv=none; d=google.com; s=arc-20160816; b=K2FohIbcvCqLdbv+SM8yhgbwR0aRXPMVYXm/P1IioV6i5DGqnSpY8VHMKjX4FncI+W 6QnawVBTf2PUtFcvejx+L88rEJUMhreS43iu3U68TkMQMUFYPnm1ty7unGvcsXMqL9Qo fYn8XW1Lc7kujzl1OcfsaBwszQrs3jA+r6OEHGeYNZP9/hm9dQOjwHPK3icTkmOX8Zkp 1c/RG70f52eFaJQieEVSlhunbLkyvAnJy5V4fTeFtsvNoEJPMdUGgNFBYMEj5nQbeb3R SFn1F3dSSeZlAACXg5egV/GGnvzTFVeZr+fwa7L4kW5s4MTN+vC2/eHKKeB02Uxgxmbj mJQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UwedDwkA6MKfo574cvkSS6/ojQxMQXtOkVvLLZ6CYbI=; b=ZgT2oScG5vLNKq5y/qY8dqJu1TfefNaRMFPPux/V24xITLhFF3tH5YMCcgzRG4aDfL 4tekNydKPZv34yTZaGm1ZXRMP9SQMVZjhUiROd7Kah6cooY1LFh276/iyUeQw+Wt5uKL yNZf5LJSvufC2DOvyJD622P2J0cxMnDSBJ6ntIiyBq9+KxIjyLETAmiSiXz7BBs6y8jB yrBh/Ez27lOzJCfeBL2nH3+mWZdgqkvWtnPSUQrn+l9/vsw5GivutxVKmanjY7VXSeJI YmsvRcPvpfq/BqLE0boB3e2nhhlRcLg0puJtXG/mN+sfotbePo2eYcWNntW3P8LJflW8 UMFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=KCOPDjCm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m1si6729584edr.207.2020.07.27.20.22.01; Mon, 27 Jul 2020 20:22:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=KCOPDjCm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727001AbgG1DUT (ORCPT + 99 others); Mon, 27 Jul 2020 23:20:19 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:50478 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726662AbgG1DUS (ORCPT ); Mon, 27 Jul 2020 23:20:18 -0400 X-UUID: c4413ad253b84c128fe45226a47835f8-20200728 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=UwedDwkA6MKfo574cvkSS6/ojQxMQXtOkVvLLZ6CYbI=; b=KCOPDjCmiSE5R0OrRFQ/DfLG0iF6QhWTS2zREI2SPxlrCwpQtxOmDYP5CRKvkh+LsG6IfetGiw12DRjXYXt7Le3xxYCIFofxO5IyiQPoeguxWCUBlBiI5GD6FG/dYKt+xQNrgwet44mKOh4jBQs4XwPN/JcD+Uibn/jNCBrgMoQ=; X-UUID: c4413ad253b84c128fe45226a47835f8-20200728 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1598085771; Tue, 28 Jul 2020 11:20:05 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 28 Jul 2020 11:20:03 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 28 Jul 2020 11:20:00 +0800 From: Frankie Chang To: Todd Kjos CC: Greg Kroah-Hartman , Joel Fernandes , Martijn Coenen , =?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= , Christian Brauner , , , , Jian-Min Liu , Frankie Chang Subject: [PATCH v6 1/3] binder: move structs from core file to header file Date: Tue, 28 Jul 2020 11:19:59 +0800 Message-ID: <1595906401-11985-2-git-send-email-Frankie.Chang@mediatek.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1595906401-11985-1-git-send-email-Frankie.Chang@mediatek.com> References: <1595252430.5899.6.camel@mtkswgap22> <1595906401-11985-1-git-send-email-Frankie.Chang@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogIkZyYW5raWUuQ2hhbmciIDxGcmFua2llLkNoYW5nQG1lZGlhdGVrLmNvbT4NCg0KTW92 aW5nIGFsbCBzdHJ1Y3RzIHRvIGhlYWRlciBmaWxlIG1ha2VzIG1vZHVsZSBtb3JlDQpleHRlbmRh YmxlLCBhbmQgbWFrZXMgYWxsIHRoZXNlIHN0cnVjdHMgdG8gYmUgZGVmaW5lZA0KaW4gdGhlIHNh bWUgZmlsZS4NCg0KU2lnbmVkLW9mZi1ieTogRnJhbmtpZS5DaGFuZyA8RnJhbmtpZS5DaGFuZ0Bt ZWRpYXRlay5jb20+DQotLS0NCiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyLmMgICAgICAgICAgfCAg NDA1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBkcml2ZXJzL2FuZHJv aWQvYmluZGVyX2ludGVybmFsLmggfCAgNDA0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKw0KIDIgZmlsZXMgY2hhbmdlZCwgNDA0IGluc2VydGlvbnMoKyksIDQwNSBkZWxldGlv bnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXIuYyBiL2RyaXZlcnMv YW5kcm9pZC9iaW5kZXIuYw0KaW5kZXggYTZiMjA4Mi4uMmRmMTQ2ZiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvYW5kcm9pZC9iaW5kZXIuYw0KKysrIGIvZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jDQpA QCAtNzIsNyArNzIsNiBAQA0KIA0KICNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPg0KIA0KLSNp bmNsdWRlICJiaW5kZXJfYWxsb2MuaCINCiAjaW5jbHVkZSAiYmluZGVyX2ludGVybmFsLmgiDQog I2luY2x1ZGUgImJpbmRlcl90cmFjZS5oIg0KIA0KQEAgLTE2MCwyNCArMTU5LDYgQEAgc3RhdGlj IGludCBiaW5kZXJfc2V0X3N0b3Bfb25fdXNlcl9lcnJvcihjb25zdCBjaGFyICp2YWwsDQogI2Rl ZmluZSB0b19iaW5kZXJfZmRfYXJyYXlfb2JqZWN0KGhkcikgXA0KIAljb250YWluZXJfb2YoaGRy LCBzdHJ1Y3QgYmluZGVyX2ZkX2FycmF5X29iamVjdCwgaGRyKQ0KIA0KLWVudW0gYmluZGVyX3N0 YXRfdHlwZXMgew0KLQlCSU5ERVJfU1RBVF9QUk9DLA0KLQlCSU5ERVJfU1RBVF9USFJFQUQsDQot CUJJTkRFUl9TVEFUX05PREUsDQotCUJJTkRFUl9TVEFUX1JFRiwNCi0JQklOREVSX1NUQVRfREVB VEgsDQotCUJJTkRFUl9TVEFUX1RSQU5TQUNUSU9OLA0KLQlCSU5ERVJfU1RBVF9UUkFOU0FDVElP Tl9DT01QTEVURSwNCi0JQklOREVSX1NUQVRfQ09VTlQNCi19Ow0KLQ0KLXN0cnVjdCBiaW5kZXJf c3RhdHMgew0KLQlhdG9taWNfdCBicltfSU9DX05SKEJSX0ZBSUxFRF9SRVBMWSkgKyAxXTsNCi0J YXRvbWljX3QgYmNbX0lPQ19OUihCQ19SRVBMWV9TRykgKyAxXTsNCi0JYXRvbWljX3Qgb2JqX2Ny ZWF0ZWRbQklOREVSX1NUQVRfQ09VTlRdOw0KLQlhdG9taWNfdCBvYmpfZGVsZXRlZFtCSU5ERVJf U1RBVF9DT1VOVF07DQotfTsNCi0NCiBzdGF0aWMgc3RydWN0IGJpbmRlcl9zdGF0cyBiaW5kZXJf c3RhdHM7DQogDQogc3RhdGljIGlubGluZSB2b2lkIGJpbmRlcl9zdGF0c19kZWxldGVkKGVudW0g YmluZGVyX3N0YXRfdHlwZXMgdHlwZSkNCkBAIC0yMTMsMjc4ICsxOTQsMTEgQEAgc3RhdGljIHN0 cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb25fbG9nX2VudHJ5ICpiaW5kZXJfdHJhbnNhY3Rpb25fbG9n X2FkZCgNCiAJcmV0dXJuIGU7DQogfQ0KIA0KLS8qKg0KLSAqIHN0cnVjdCBiaW5kZXJfd29yayAt IHdvcmsgZW5xdWV1ZWQgb24gYSB3b3JrbGlzdA0KLSAqIEBlbnRyeTogICAgICAgICAgICAgbm9k ZSBlbnF1ZXVlZCBvbiBsaXN0DQotICogQHR5cGU6ICAgICAgICAgICAgICB0eXBlIG9mIHdvcmsg dG8gYmUgcGVyZm9ybWVkDQotICoNCi0gKiBUaGVyZSBhcmUgc2VwYXJhdGUgd29yayBsaXN0cyBm b3IgcHJvYywgdGhyZWFkLCBhbmQgbm9kZSAoYXN5bmMpLg0KLSAqLw0KLXN0cnVjdCBiaW5kZXJf d29yayB7DQotCXN0cnVjdCBsaXN0X2hlYWQgZW50cnk7DQotDQotCWVudW0gew0KLQkJQklOREVS X1dPUktfVFJBTlNBQ1RJT04gPSAxLA0KLQkJQklOREVSX1dPUktfVFJBTlNBQ1RJT05fQ09NUExF VEUsDQotCQlCSU5ERVJfV09SS19SRVRVUk5fRVJST1IsDQotCQlCSU5ERVJfV09SS19OT0RFLA0K LQkJQklOREVSX1dPUktfREVBRF9CSU5ERVIsDQotCQlCSU5ERVJfV09SS19ERUFEX0JJTkRFUl9B TkRfQ0xFQVIsDQotCQlCSU5ERVJfV09SS19DTEVBUl9ERUFUSF9OT1RJRklDQVRJT04sDQotCX0g dHlwZTsNCi19Ow0KLQ0KLXN0cnVjdCBiaW5kZXJfZXJyb3Igew0KLQlzdHJ1Y3QgYmluZGVyX3dv cmsgd29yazsNCi0JdWludDMyX3QgY21kOw0KLX07DQotDQotLyoqDQotICogc3RydWN0IGJpbmRl cl9ub2RlIC0gYmluZGVyIG5vZGUgYm9va2tlZXBpbmcNCi0gKiBAZGVidWdfaWQ6ICAgICAgICAg ICAgIHVuaXF1ZSBJRCBmb3IgZGVidWdnaW5nDQotICogICAgICAgICAgICAgICAgICAgICAgICAo aW52YXJpYW50IGFmdGVyIGluaXRpYWxpemVkKQ0KLSAqIEBsb2NrOiAgICAgICAgICAgICAgICAg bG9jayBmb3Igbm9kZSBmaWVsZHMNCi0gKiBAd29yazogICAgICAgICAgICAgICAgIHdvcmtsaXN0 IGVsZW1lbnQgZm9yIG5vZGUgd29yaw0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3Rl Y3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jaykNCi0gKiBAcmJfbm9kZTogICAgICAgICAgICAgIGVs ZW1lbnQgZm9yIHByb2MtPm5vZGVzIHRyZWUNCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIChw cm90ZWN0ZWQgYnkgQHByb2MtPmlubmVyX2xvY2spDQotICogQGRlYWRfbm9kZTogICAgICAgICAg ICBlbGVtZW50IGZvciBiaW5kZXJfZGVhZF9ub2RlcyBsaXN0DQotICogICAgICAgICAgICAgICAg ICAgICAgICAocHJvdGVjdGVkIGJ5IGJpbmRlcl9kZWFkX25vZGVzX2xvY2spDQotICogQHByb2M6 ICAgICAgICAgICAgICAgICBiaW5kZXJfcHJvYyB0aGF0IG93bnMgdGhpcyBub2RlDQotICogICAg ICAgICAgICAgICAgICAgICAgICAoaW52YXJpYW50IGFmdGVyIGluaXRpYWxpemVkKQ0KLSAqIEBy ZWZzOiAgICAgICAgICAgICAgICAgbGlzdCBvZiByZWZlcmVuY2VzIG9uIHRoaXMgbm9kZQ0KLSAq ICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAbG9jaykNCi0gKiBAaW50ZXJu YWxfc3Ryb25nX3JlZnM6IHVzZWQgdG8gdGFrZSBzdHJvbmcgcmVmZXJlbmNlcyB3aGVuDQotICog ICAgICAgICAgICAgICAgICAgICAgICBpbml0aWF0aW5nIGEgdHJhbnNhY3Rpb24NCi0gKiAgICAg ICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQHByb2MtPmlubmVyX2xvY2sgaWYgQHBy b2MNCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBieSBAbG9jaykNCi0gKiBAbG9jYWxf d2Vha19yZWZzOiAgICAgIHdlYWsgdXNlciByZWZzIGZyb20gbG9jYWwgcHJvY2Vzcw0KLSAqICAg ICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jayBpZiBA cHJvYw0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGJ5IEBsb2NrKQ0KLSAqIEBsb2Nh bF9zdHJvbmdfcmVmczogICAgc3Ryb25nIHVzZXIgcmVmcyBmcm9tIGxvY2FsIHByb2Nlc3MNCi0g KiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQHByb2MtPmlubmVyX2xvY2sg aWYgQHByb2MNCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBieSBAbG9jaykNCi0gKiBA dG1wX3JlZnM6ICAgICAgICAgICAgIHRlbXBvcmFyeSBrZXJuZWwgcmVmcw0KLSAqICAgICAgICAg ICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jayB3aGlsZSBAcHJv Yw0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgaXMgdmFsaWQsIGFuZCBieSBiaW5kZXJfZGVh ZF9ub2Rlc19sb2NrDQotICogICAgICAgICAgICAgICAgICAgICAgICBpZiBAcHJvYyBpcyBOVUxM LiBEdXJpbmcgaW5jL2RlYyBhbmQgbm9kZSByZWxlYXNlDQotICogICAgICAgICAgICAgICAgICAg ICAgICBpdCBpcyBhbHNvIHByb3RlY3RlZCBieSBAbG9jayB0byBwcm92aWRlIHNhZmV0eQ0KLSAq ICAgICAgICAgICAgICAgICAgICAgICAgYXMgdGhlIG5vZGUgZGllcyBhbmQgQHByb2MgYmVjb21l cyBOVUxMKQ0KLSAqIEBwdHI6ICAgICAgICAgICAgICAgICAgdXNlcnNwYWNlIHBvaW50ZXIgZm9y IG5vZGUNCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIChpbnZhcmlhbnQsIG5vIGxvY2sgbmVl ZGVkKQ0KLSAqIEBjb29raWU6ICAgICAgICAgICAgICAgdXNlcnNwYWNlIGNvb2tpZSBmb3Igbm9k ZQ0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKGludmFyaWFudCwgbm8gbG9jayBuZWVkZWQp DQotICogQGhhc19zdHJvbmdfcmVmOiAgICAgICB1c2Vyc3BhY2Ugbm90aWZpZWQgb2Ygc3Ryb25n IHJlZg0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5u ZXJfbG9jayBpZiBAcHJvYw0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGJ5IEBsb2Nr KQ0KLSAqIEBwZW5kaW5nX3N0cm9uZ19yZWY6ICAgdXNlcnNwYWNlIGhhcyBhY2tlZCBub3RpZmlj YXRpb24gb2Ygc3Ryb25nIHJlZg0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3Rl ZCBieSBAcHJvYy0+aW5uZXJfbG9jayBpZiBAcHJvYw0KLSAqICAgICAgICAgICAgICAgICAgICAg ICAgYW5kIGJ5IEBsb2NrKQ0KLSAqIEBoYXNfd2Vha19yZWY6ICAgICAgICAgdXNlcnNwYWNlIG5v dGlmaWVkIG9mIHdlYWsgcmVmDQotICogICAgICAgICAgICAgICAgICAgICAgICAocHJvdGVjdGVk IGJ5IEBwcm9jLT5pbm5lcl9sb2NrIGlmIEBwcm9jDQotICogICAgICAgICAgICAgICAgICAgICAg ICBhbmQgYnkgQGxvY2spDQotICogQHBlbmRpbmdfd2Vha19yZWY6ICAgICB1c2Vyc3BhY2UgaGFz IGFja2VkIG5vdGlmaWNhdGlvbiBvZiB3ZWFrIHJlZg0KLSAqICAgICAgICAgICAgICAgICAgICAg ICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jayBpZiBAcHJvYw0KLSAqICAgICAgICAg ICAgICAgICAgICAgICAgYW5kIGJ5IEBsb2NrKQ0KLSAqIEBoYXNfYXN5bmNfdHJhbnNhY3Rpb246 IGFzeW5jIHRyYW5zYWN0aW9uIHRvIG5vZGUgaW4gcHJvZ3Jlc3MNCi0gKiAgICAgICAgICAgICAg ICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQGxvY2spDQotICogQGFjY2VwdF9mZHM6ICAgICAgICAg ICBmaWxlIGRlc2NyaXB0b3Igb3BlcmF0aW9ucyBzdXBwb3J0ZWQgZm9yIG5vZGUNCi0gKiAgICAg ICAgICAgICAgICAgICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlhbGl6ZWQpDQotICogQG1p bl9wcmlvcml0eTogICAgICAgICBtaW5pbXVtIHNjaGVkdWxpbmcgcHJpb3JpdHkNCi0gKiAgICAg ICAgICAgICAgICAgICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlhbGl6ZWQpDQotICogQHR4 bl9zZWN1cml0eV9jdHg6ICAgICByZXF1aXJlIHNlbmRlcidzIHNlY3VyaXR5IGNvbnRleHQNCi0g KiAgICAgICAgICAgICAgICAgICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlhbGl6ZWQpDQot ICogQGFzeW5jX3RvZG86ICAgICAgICAgICBsaXN0IG9mIGFzeW5jIHdvcmsgaXRlbXMNCi0gKiAg ICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQHByb2MtPmlubmVyX2xvY2spDQot ICoNCi0gKiBCb29ra2VlcGluZyBzdHJ1Y3R1cmUgZm9yIGJpbmRlciBub2Rlcy4NCi0gKi8NCi1z dHJ1Y3QgYmluZGVyX25vZGUgew0KLQlpbnQgZGVidWdfaWQ7DQotCXNwaW5sb2NrX3QgbG9jazsN Ci0Jc3RydWN0IGJpbmRlcl93b3JrIHdvcms7DQotCXVuaW9uIHsNCi0JCXN0cnVjdCByYl9ub2Rl IHJiX25vZGU7DQotCQlzdHJ1Y3QgaGxpc3Rfbm9kZSBkZWFkX25vZGU7DQotCX07DQotCXN0cnVj dCBiaW5kZXJfcHJvYyAqcHJvYzsNCi0Jc3RydWN0IGhsaXN0X2hlYWQgcmVmczsNCi0JaW50IGlu dGVybmFsX3N0cm9uZ19yZWZzOw0KLQlpbnQgbG9jYWxfd2Vha19yZWZzOw0KLQlpbnQgbG9jYWxf c3Ryb25nX3JlZnM7DQotCWludCB0bXBfcmVmczsNCi0JYmluZGVyX3VpbnRwdHJfdCBwdHI7DQot CWJpbmRlcl91aW50cHRyX3QgY29va2llOw0KLQlzdHJ1Y3Qgew0KLQkJLyoNCi0JCSAqIGJpdGZp ZWxkIGVsZW1lbnRzIHByb3RlY3RlZCBieQ0KLQkJICogcHJvYyBpbm5lcl9sb2NrDQotCQkgKi8N Ci0JCXU4IGhhc19zdHJvbmdfcmVmOjE7DQotCQl1OCBwZW5kaW5nX3N0cm9uZ19yZWY6MTsNCi0J CXU4IGhhc193ZWFrX3JlZjoxOw0KLQkJdTggcGVuZGluZ193ZWFrX3JlZjoxOw0KLQl9Ow0KLQlz dHJ1Y3Qgew0KLQkJLyoNCi0JCSAqIGludmFyaWFudCBhZnRlciBpbml0aWFsaXphdGlvbg0KLQkJ ICovDQotCQl1OCBhY2NlcHRfZmRzOjE7DQotCQl1OCB0eG5fc2VjdXJpdHlfY3R4OjE7DQotCQl1 OCBtaW5fcHJpb3JpdHk7DQotCX07DQotCWJvb2wgaGFzX2FzeW5jX3RyYW5zYWN0aW9uOw0KLQlz dHJ1Y3QgbGlzdF9oZWFkIGFzeW5jX3RvZG87DQotfTsNCi0NCi1zdHJ1Y3QgYmluZGVyX3JlZl9k ZWF0aCB7DQotCS8qKg0KLQkgKiBAd29yazogd29ya2xpc3QgZWxlbWVudCBmb3IgZGVhdGggbm90 aWZpY2F0aW9ucw0KLQkgKiAgICAgICAgKHByb3RlY3RlZCBieSBpbm5lcl9sb2NrIG9mIHRoZSBw cm9jIHRoYXQNCi0JICogICAgICAgIHRoaXMgcmVmIGJlbG9uZ3MgdG8pDQotCSAqLw0KLQlzdHJ1 Y3QgYmluZGVyX3dvcmsgd29yazsNCi0JYmluZGVyX3VpbnRwdHJfdCBjb29raWU7DQotfTsNCi0N Ci0vKioNCi0gKiBzdHJ1Y3QgYmluZGVyX3JlZl9kYXRhIC0gYmluZGVyX3JlZiBjb3VudHMgYW5k IGlkDQotICogQGRlYnVnX2lkOiAgICAgICAgdW5pcXVlIElEIGZvciB0aGUgcmVmDQotICogQGRl c2M6ICAgICAgICAgICAgdW5pcXVlIHVzZXJzcGFjZSBoYW5kbGUgZm9yIHJlZg0KLSAqIEBzdHJv bmc6ICAgICAgICAgIHN0cm9uZyByZWYgY291bnQgKGRlYnVnZ2luZyBvbmx5IGlmIG5vdCBsb2Nr ZWQpDQotICogQHdlYWs6ICAgICAgICAgICAgd2VhayByZWYgY291bnQgKGRlYnVnZ2luZyBvbmx5 IGlmIG5vdCBsb2NrZWQpDQotICoNCi0gKiBTdHJ1Y3R1cmUgdG8gaG9sZCByZWYgY291bnQgYW5k IHJlZiBpZCBpbmZvcm1hdGlvbi4gU2luY2UNCi0gKiB0aGUgYWN0dWFsIHJlZiBjYW4gb25seSBi ZSBhY2Nlc3NlZCB3aXRoIGEgbG9jaywgdGhpcyBzdHJ1Y3R1cmUNCi0gKiBpcyB1c2VkIHRvIHJl dHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVmIHRvIGNhbGxlcnMgb2YNCi0gKiByZWYgaW5j L2RlYyBmdW5jdGlvbnMuDQotICovDQotc3RydWN0IGJpbmRlcl9yZWZfZGF0YSB7DQotCWludCBk ZWJ1Z19pZDsNCi0JdWludDMyX3QgZGVzYzsNCi0JaW50IHN0cm9uZzsNCi0JaW50IHdlYWs7DQot fTsNCi0NCi0vKioNCi0gKiBzdHJ1Y3QgYmluZGVyX3JlZiAtIHN0cnVjdCB0byB0cmFjayByZWZl cmVuY2VzIG9uIG5vZGVzDQotICogQGRhdGE6ICAgICAgICBiaW5kZXJfcmVmX2RhdGEgY29udGFp bmluZyBpZCwgaGFuZGxlLCBhbmQgY3VycmVudCByZWZjb3VudHMNCi0gKiBAcmJfbm9kZV9kZXNj OiBub2RlIGZvciBsb29rdXAgYnkgQGRhdGEuZGVzYyBpbiBwcm9jJ3MgcmJfdHJlZQ0KLSAqIEBy Yl9ub2RlX25vZGU6IG5vZGUgZm9yIGxvb2t1cCBieSBAbm9kZSBpbiBwcm9jJ3MgcmJfdHJlZQ0K LSAqIEBub2RlX2VudHJ5OiAgbGlzdCBlbnRyeSBmb3Igbm9kZS0+cmVmcyBsaXN0IGluIHRhcmdl dCBub2RlDQotICogICAgICAgICAgICAgICAocHJvdGVjdGVkIGJ5IEBub2RlLT5sb2NrKQ0KLSAq IEBwcm9jOiAgICAgICAgYmluZGVyX3Byb2MgY29udGFpbmluZyByZWYNCi0gKiBAbm9kZTogICAg ICAgIGJpbmRlcl9ub2RlIG9mIHRhcmdldCBub2RlLiBXaGVuIGNsZWFuaW5nIHVwIGENCi0gKiAg ICAgICAgICAgICAgIHJlZiBmb3IgZGVsZXRpb24gaW4gYmluZGVyX2NsZWFudXBfcmVmLCBhIG5v bi1OVUxMDQotICogICAgICAgICAgICAgICBAbm9kZSBpbmRpY2F0ZXMgdGhlIG5vZGUgbXVzdCBi ZSBmcmVlZA0KLSAqIEBkZWF0aDogICAgICAgcG9pbnRlciB0byBkZWF0aCBub3RpZmljYXRpb24g KHJlZl9kZWF0aCkgaWYgcmVxdWVzdGVkDQotICogICAgICAgICAgICAgICAocHJvdGVjdGVkIGJ5 IEBub2RlLT5sb2NrKQ0KLSAqDQotICogU3RydWN0dXJlIHRvIHRyYWNrIHJlZmVyZW5jZXMgZnJv bSBwcm9jQSB0byB0YXJnZXQgbm9kZSAob24gcHJvY0IpLiBUaGlzDQotICogc3RydWN0dXJlIGlz IHVuc2FmZSB0byBhY2Nlc3Mgd2l0aG91dCBob2xkaW5nIEBwcm9jLT5vdXRlcl9sb2NrLg0KLSAq Lw0KLXN0cnVjdCBiaW5kZXJfcmVmIHsNCi0JLyogTG9va3VwcyBuZWVkZWQ6ICovDQotCS8qICAg bm9kZSArIHByb2MgPT4gcmVmICh0cmFuc2FjdGlvbikgKi8NCi0JLyogICBkZXNjICsgcHJvYyA9 PiByZWYgKHRyYW5zYWN0aW9uLCBpbmMvZGVjIHJlZikgKi8NCi0JLyogICBub2RlID0+IHJlZnMg KyBwcm9jcyAocHJvYyBleGl0KSAqLw0KLQlzdHJ1Y3QgYmluZGVyX3JlZl9kYXRhIGRhdGE7DQot CXN0cnVjdCByYl9ub2RlIHJiX25vZGVfZGVzYzsNCi0Jc3RydWN0IHJiX25vZGUgcmJfbm9kZV9u b2RlOw0KLQlzdHJ1Y3QgaGxpc3Rfbm9kZSBub2RlX2VudHJ5Ow0KLQlzdHJ1Y3QgYmluZGVyX3By b2MgKnByb2M7DQotCXN0cnVjdCBiaW5kZXJfbm9kZSAqbm9kZTsNCi0Jc3RydWN0IGJpbmRlcl9y ZWZfZGVhdGggKmRlYXRoOw0KLX07DQotDQogZW51bSBiaW5kZXJfZGVmZXJyZWRfc3RhdGUgew0K IAlCSU5ERVJfREVGRVJSRURfRkxVU0ggICAgICAgID0gMHgwMSwNCiAJQklOREVSX0RFRkVSUkVE X1JFTEVBU0UgICAgICA9IDB4MDIsDQogfTsNCiANCi0vKioNCi0gKiBzdHJ1Y3QgYmluZGVyX3By b2MgLSBiaW5kZXIgcHJvY2VzcyBib29ra2VlcGluZw0KLSAqIEBwcm9jX25vZGU6ICAgICAgICAg ICAgZWxlbWVudCBmb3IgYmluZGVyX3Byb2NzIGxpc3QNCi0gKiBAdGhyZWFkczogICAgICAgICAg ICAgIHJidHJlZSBvZiBiaW5kZXJfdGhyZWFkcyBpbiB0aGlzIHByb2MNCi0gKiAgICAgICAgICAg ICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQGlubmVyX2xvY2spDQotICogQG5vZGVzOiAgICAg ICAgICAgICAgICByYnRyZWUgb2YgYmluZGVyIG5vZGVzIGFzc29jaWF0ZWQgd2l0aA0KLSAqICAg ICAgICAgICAgICAgICAgICAgICAgdGhpcyBwcm9jIG9yZGVyZWQgYnkgbm9kZS0+cHRyDQotICog ICAgICAgICAgICAgICAgICAgICAgICAocHJvdGVjdGVkIGJ5IEBpbm5lcl9sb2NrKQ0KLSAqIEBy ZWZzX2J5X2Rlc2M6ICAgICAgICAgcmJ0cmVlIG9mIHJlZnMgb3JkZXJlZCBieSByZWYtPmRlc2MN Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQG91dGVyX2xvY2spDQot ICogQHJlZnNfYnlfbm9kZTogICAgICAgICByYnRyZWUgb2YgcmVmcyBvcmRlcmVkIGJ5IHJlZi0+ bm9kZQ0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAb3V0ZXJfbG9j aykNCi0gKiBAd2FpdGluZ190aHJlYWRzOiAgICAgIHRocmVhZHMgY3VycmVudGx5IHdhaXRpbmcg Zm9yIHByb2Mgd29yaw0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBA aW5uZXJfbG9jaykNCi0gKiBAcGlkICAgICAgICAgICAgICAgICAgIFBJRCBvZiBncm91cF9sZWFk ZXIgb2YgcHJvY2Vzcw0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKGludmFyaWFudCBhZnRl ciBpbml0aWFsaXplZCkNCi0gKiBAdHNrICAgICAgICAgICAgICAgICAgIHRhc2tfc3RydWN0IGZv ciBncm91cF9sZWFkZXIgb2YgcHJvY2Vzcw0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKGlu dmFyaWFudCBhZnRlciBpbml0aWFsaXplZCkNCi0gKiBAZGVmZXJyZWRfd29ya19ub2RlOiAgIGVs ZW1lbnQgZm9yIGJpbmRlcl9kZWZlcnJlZF9saXN0DQotICogICAgICAgICAgICAgICAgICAgICAg ICAocHJvdGVjdGVkIGJ5IGJpbmRlcl9kZWZlcnJlZF9sb2NrKQ0KLSAqIEBkZWZlcnJlZF93b3Jr OiAgICAgICAgYml0bWFwIG9mIGRlZmVycmVkIHdvcmsgdG8gcGVyZm9ybQ0KLSAqICAgICAgICAg ICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBiaW5kZXJfZGVmZXJyZWRfbG9jaykNCi0gKiBA aXNfZGVhZDogICAgICAgICAgICAgIHByb2Nlc3MgaXMgZGVhZCBhbmQgYXdhaXRpbmcgZnJlZQ0K LSAqICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiBvdXRzdGFuZGluZyB0cmFuc2FjdGlvbnMg YXJlIGNsZWFuZWQgdXANCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkg QGlubmVyX2xvY2spDQotICogQHRvZG86ICAgICAgICAgICAgICAgICBsaXN0IG9mIHdvcmsgZm9y IHRoaXMgcHJvY2Vzcw0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBA aW5uZXJfbG9jaykNCi0gKiBAc3RhdHM6ICAgICAgICAgICAgICAgIHBlci1wcm9jZXNzIGJpbmRl ciBzdGF0aXN0aWNzDQotICogICAgICAgICAgICAgICAgICAgICAgICAoYXRvbWljcywgbm8gbG9j ayBuZWVkZWQpDQotICogQGRlbGl2ZXJlZF9kZWF0aDogICAgICBsaXN0IG9mIGRlbGl2ZXJlZCBk ZWF0aCBub3RpZmljYXRpb24NCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQg YnkgQGlubmVyX2xvY2spDQotICogQG1heF90aHJlYWRzOiAgICAgICAgICBjYXAgb24gbnVtYmVy IG9mIGJpbmRlciB0aHJlYWRzDQotICogICAgICAgICAgICAgICAgICAgICAgICAocHJvdGVjdGVk IGJ5IEBpbm5lcl9sb2NrKQ0KLSAqIEByZXF1ZXN0ZWRfdGhyZWFkczogICAgbnVtYmVyIG9mIGJp bmRlciB0aHJlYWRzIHJlcXVlc3RlZCBidXQgbm90DQotICogICAgICAgICAgICAgICAgICAgICAg ICB5ZXQgc3RhcnRlZC4gSW4gY3VycmVudCBpbXBsZW1lbnRhdGlvbiwgY2FuDQotICogICAgICAg ICAgICAgICAgICAgICAgICBvbmx5IGJlIDAgb3IgMS4NCi0gKiAgICAgICAgICAgICAgICAgICAg ICAgIChwcm90ZWN0ZWQgYnkgQGlubmVyX2xvY2spDQotICogQHJlcXVlc3RlZF90aHJlYWRzX3N0 YXJ0ZWQ6IG51bWJlciBiaW5kZXIgdGhyZWFkcyBzdGFydGVkDQotICogICAgICAgICAgICAgICAg ICAgICAgICAocHJvdGVjdGVkIGJ5IEBpbm5lcl9sb2NrKQ0KLSAqIEB0bXBfcmVmOiAgICAgICAg ICAgICAgdGVtcG9yYXJ5IHJlZmVyZW5jZSB0byBpbmRpY2F0ZSBwcm9jIGlzIGluIHVzZQ0KLSAq ICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAaW5uZXJfbG9jaykNCi0gKiBA ZGVmYXVsdF9wcmlvcml0eTogICAgIGRlZmF1bHQgc2NoZWR1bGVyIHByaW9yaXR5DQotICogICAg ICAgICAgICAgICAgICAgICAgICAoaW52YXJpYW50IGFmdGVyIGluaXRpYWxpemVkKQ0KLSAqIEBk ZWJ1Z2ZzX2VudHJ5OiAgICAgICAgZGVidWdmcyBub2RlDQotICogQGFsbG9jOiAgICAgICAgICAg ICAgICBiaW5kZXIgYWxsb2NhdG9yIGJvb2trZWVwaW5nDQotICogQGNvbnRleHQ6ICAgICAgICAg ICAgICBiaW5kZXJfY29udGV4dCBmb3IgdGhpcyBwcm9jDQotICogICAgICAgICAgICAgICAgICAg ICAgICAoaW52YXJpYW50IGFmdGVyIGluaXRpYWxpemVkKQ0KLSAqIEBpbm5lcl9sb2NrOiAgICAg ICAgICAgY2FuIG5lc3QgdW5kZXIgb3V0ZXJfbG9jayBhbmQvb3Igbm9kZSBsb2NrDQotICogQG91 dGVyX2xvY2s6ICAgICAgICAgICBubyBuZXN0aW5nIHVuZGVyIGlubm9yIG9yIG5vZGUgbG9jaw0K LSAqICAgICAgICAgICAgICAgICAgICAgICAgTG9jayBvcmRlcjogMSkgb3V0ZXIsIDIpIG5vZGUs IDMpIGlubmVyDQotICogQGJpbmRlcmZzX2VudHJ5OiAgICAgICBwcm9jZXNzLXNwZWNpZmljIGJp bmRlcmZzIGxvZyBmaWxlDQotICoNCi0gKiBCb29ra2VlcGluZyBzdHJ1Y3R1cmUgZm9yIGJpbmRl ciBwcm9jZXNzZXMNCi0gKi8NCi1zdHJ1Y3QgYmluZGVyX3Byb2Mgew0KLQlzdHJ1Y3QgaGxpc3Rf bm9kZSBwcm9jX25vZGU7DQotCXN0cnVjdCByYl9yb290IHRocmVhZHM7DQotCXN0cnVjdCByYl9y b290IG5vZGVzOw0KLQlzdHJ1Y3QgcmJfcm9vdCByZWZzX2J5X2Rlc2M7DQotCXN0cnVjdCByYl9y b290IHJlZnNfYnlfbm9kZTsNCi0Jc3RydWN0IGxpc3RfaGVhZCB3YWl0aW5nX3RocmVhZHM7DQot CWludCBwaWQ7DQotCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrOw0KLQlzdHJ1Y3QgaGxpc3Rfbm9k ZSBkZWZlcnJlZF93b3JrX25vZGU7DQotCWludCBkZWZlcnJlZF93b3JrOw0KLQlib29sIGlzX2Rl YWQ7DQotDQotCXN0cnVjdCBsaXN0X2hlYWQgdG9kbzsNCi0Jc3RydWN0IGJpbmRlcl9zdGF0cyBz dGF0czsNCi0Jc3RydWN0IGxpc3RfaGVhZCBkZWxpdmVyZWRfZGVhdGg7DQotCWludCBtYXhfdGhy ZWFkczsNCi0JaW50IHJlcXVlc3RlZF90aHJlYWRzOw0KLQlpbnQgcmVxdWVzdGVkX3RocmVhZHNf c3RhcnRlZDsNCi0JaW50IHRtcF9yZWY7DQotCWxvbmcgZGVmYXVsdF9wcmlvcml0eTsNCi0Jc3Ry dWN0IGRlbnRyeSAqZGVidWdmc19lbnRyeTsNCi0Jc3RydWN0IGJpbmRlcl9hbGxvYyBhbGxvYzsN Ci0Jc3RydWN0IGJpbmRlcl9jb250ZXh0ICpjb250ZXh0Ow0KLQlzcGlubG9ja190IGlubmVyX2xv Y2s7DQotCXNwaW5sb2NrX3Qgb3V0ZXJfbG9jazsNCi0Jc3RydWN0IGRlbnRyeSAqYmluZGVyZnNf ZW50cnk7DQotfTsNCi0NCiBlbnVtIHsNCiAJQklOREVSX0xPT1BFUl9TVEFURV9SRUdJU1RFUkVE ICA9IDB4MDEsDQogCUJJTkRFUl9MT09QRVJfU1RBVEVfRU5URVJFRCAgICAgPSAweDAyLA0KQEAg LTQ5NSwxMjUgKzIwOSw2IEBAIGVudW0gew0KIH07DQogDQogLyoqDQotICogc3RydWN0IGJpbmRl cl90aHJlYWQgLSBiaW5kZXIgdGhyZWFkIGJvb2trZWVwaW5nDQotICogQHByb2M6ICAgICAgICAg ICAgICAgICBiaW5kZXIgcHJvY2VzcyBmb3IgdGhpcyB0aHJlYWQNCi0gKiAgICAgICAgICAgICAg ICAgICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24pDQotICogQHJiX25vZGU6 ICAgICAgICAgICAgICBlbGVtZW50IGZvciBwcm9jLT50aHJlYWRzIHJidHJlZQ0KLSAqICAgICAg ICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jaykNCi0gKiBA d2FpdGluZ190aHJlYWRfbm9kZTogIGVsZW1lbnQgZm9yIEBwcm9jLT53YWl0aW5nX3RocmVhZHMg bGlzdA0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5u ZXJfbG9jaykNCi0gKiBAcGlkOiAgICAgICAgICAgICAgICAgIFBJRCBmb3IgdGhpcyB0aHJlYWQN Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlhbGl6YXRp b24pDQotICogQGxvb3BlcjogICAgICAgICAgICAgICBiaXRtYXAgb2YgbG9vcGluZyBzdGF0ZQ0K LSAqICAgICAgICAgICAgICAgICAgICAgICAgKG9ubHkgYWNjZXNzZWQgYnkgdGhpcyB0aHJlYWQp DQotICogQGxvb3Blcl9uZWVkc19yZXR1cm46ICBsb29waW5nIHRocmVhZCBuZWVkcyB0byBleGl0 IGRyaXZlcg0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKG5vIGxvY2sgbmVlZGVkKQ0KLSAq IEB0cmFuc2FjdGlvbl9zdGFjazogICAgc3RhY2sgb2YgaW4tcHJvZ3Jlc3MgdHJhbnNhY3Rpb25z IGZvciB0aGlzIHRocmVhZA0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBi eSBAcHJvYy0+aW5uZXJfbG9jaykNCi0gKiBAdG9kbzogICAgICAgICAgICAgICAgIGxpc3Qgb2Yg d29yayB0byBkbyBmb3IgdGhpcyB0aHJlYWQNCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIChw cm90ZWN0ZWQgYnkgQHByb2MtPmlubmVyX2xvY2spDQotICogQHByb2Nlc3NfdG9kbzogICAgICAg ICB3aGV0aGVyIHdvcmsgaW4gQHRvZG8gc2hvdWxkIGJlIHByb2Nlc3NlZA0KLSAqICAgICAgICAg ICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jaykNCi0gKiBAcmV0 dXJuX2Vycm9yOiAgICAgICAgIHRyYW5zYWN0aW9uIGVycm9ycyByZXBvcnRlZCBieSB0aGlzIHRo cmVhZA0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKG9ubHkgYWNjZXNzZWQgYnkgdGhpcyB0 aHJlYWQpDQotICogQHJlcGx5X2Vycm9yOiAgICAgICAgICB0cmFuc2FjdGlvbiBlcnJvcnMgcmVw b3J0ZWQgYnkgdGFyZ2V0IHRocmVhZA0KLSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3Rl Y3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jaykNCi0gKiBAd2FpdDogICAgICAgICAgICAgICAgIHdh aXQgcXVldWUgZm9yIHRocmVhZCB3b3JrDQotICogQHN0YXRzOiAgICAgICAgICAgICAgICBwZXIt dGhyZWFkIHN0YXRpc3RpY3MNCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIChhdG9taWNzLCBu byBsb2NrIG5lZWRlZCkNCi0gKiBAdG1wX3JlZjogICAgICAgICAgICAgIHRlbXBvcmFyeSByZWZl cmVuY2UgdG8gaW5kaWNhdGUgdGhyZWFkIGlzIGluIHVzZQ0KLSAqICAgICAgICAgICAgICAgICAg ICAgICAgKGF0b21pYyBzaW5jZSBAcHJvYy0+aW5uZXJfbG9jayBjYW5ub3QNCi0gKiAgICAgICAg ICAgICAgICAgICAgICAgIGFsd2F5cyBiZSBhY3F1aXJlZCkNCi0gKiBAaXNfZGVhZDogICAgICAg ICAgICAgIHRocmVhZCBpcyBkZWFkIGFuZCBhd2FpdGluZyBmcmVlDQotICogICAgICAgICAgICAg ICAgICAgICAgICB3aGVuIG91dHN0YW5kaW5nIHRyYW5zYWN0aW9ucyBhcmUgY2xlYW5lZCB1cA0K LSAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9j aykNCi0gKg0KLSAqIEJvb2trZWVwaW5nIHN0cnVjdHVyZSBmb3IgYmluZGVyIHRocmVhZHMuDQot ICovDQotc3RydWN0IGJpbmRlcl90aHJlYWQgew0KLQlzdHJ1Y3QgYmluZGVyX3Byb2MgKnByb2M7 DQotCXN0cnVjdCByYl9ub2RlIHJiX25vZGU7DQotCXN0cnVjdCBsaXN0X2hlYWQgd2FpdGluZ190 aHJlYWRfbm9kZTsNCi0JaW50IHBpZDsNCi0JaW50IGxvb3BlcjsgICAgICAgICAgICAgIC8qIG9u bHkgbW9kaWZpZWQgYnkgdGhpcyB0aHJlYWQgKi8NCi0JYm9vbCBsb29wZXJfbmVlZF9yZXR1cm47 IC8qIGNhbiBiZSB3cml0dGVuIGJ5IG90aGVyIHRocmVhZCAqLw0KLQlzdHJ1Y3QgYmluZGVyX3Ry YW5zYWN0aW9uICp0cmFuc2FjdGlvbl9zdGFjazsNCi0Jc3RydWN0IGxpc3RfaGVhZCB0b2RvOw0K LQlib29sIHByb2Nlc3NfdG9kbzsNCi0Jc3RydWN0IGJpbmRlcl9lcnJvciByZXR1cm5fZXJyb3I7 DQotCXN0cnVjdCBiaW5kZXJfZXJyb3IgcmVwbHlfZXJyb3I7DQotCXdhaXRfcXVldWVfaGVhZF90 IHdhaXQ7DQotCXN0cnVjdCBiaW5kZXJfc3RhdHMgc3RhdHM7DQotCWF0b21pY190IHRtcF9yZWY7 DQotCWJvb2wgaXNfZGVhZDsNCi19Ow0KLQ0KLS8qKg0KLSAqIHN0cnVjdCBiaW5kZXJfdHhuX2Zk X2ZpeHVwIC0gdHJhbnNhY3Rpb24gZmQgZml4dXAgbGlzdCBlbGVtZW50DQotICogQGZpeHVwX2Vu dHJ5OiAgICAgICAgICBsaXN0IGVudHJ5DQotICogQGZpbGU6ICAgICAgICAgICAgICAgICBzdHJ1 Y3QgZmlsZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggbmV3IGZkDQotICogQG9mZnNldDogICAgICAg ICAgICAgICBvZmZzZXQgaW4gYnVmZmVyIGRhdGEgdG8gdGhpcyBmaXh1cA0KLSAqDQotICogTGlz dCBlbGVtZW50IGZvciBmZCBmaXh1cHMgaW4gYSB0cmFuc2FjdGlvbi4gU2luY2UgZmlsZQ0KLSAq IGRlc2NyaXB0b3JzIG5lZWQgdG8gYmUgYWxsb2NhdGVkIGluIHRoZSBjb250ZXh0IG9mIHRoZQ0K LSAqIHRhcmdldCBwcm9jZXNzLCB3ZSBwYXNzIGVhY2ggZmQgdG8gYmUgcHJvY2Vzc2VkIGluIHRo aXMNCi0gKiBzdHJ1Y3QuDQotICovDQotc3RydWN0IGJpbmRlcl90eG5fZmRfZml4dXAgew0KLQlz dHJ1Y3QgbGlzdF9oZWFkIGZpeHVwX2VudHJ5Ow0KLQlzdHJ1Y3QgZmlsZSAqZmlsZTsNCi0Jc2l6 ZV90IG9mZnNldDsNCi19Ow0KLQ0KLXN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gew0KLQlpbnQg ZGVidWdfaWQ7DQotCXN0cnVjdCBiaW5kZXJfd29yayB3b3JrOw0KLQlzdHJ1Y3QgYmluZGVyX3Ro cmVhZCAqZnJvbTsNCi0Jc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqZnJvbV9wYXJlbnQ7DQot CXN0cnVjdCBiaW5kZXJfcHJvYyAqdG9fcHJvYzsNCi0Jc3RydWN0IGJpbmRlcl90aHJlYWQgKnRv X3RocmVhZDsNCi0Jc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdG9fcGFyZW50Ow0KLQl1bnNp Z25lZCBuZWVkX3JlcGx5OjE7DQotCS8qIHVuc2lnbmVkIGlzX2RlYWQ6MTsgKi8JLyogbm90IHVz ZWQgYXQgdGhlIG1vbWVudCAqLw0KLQ0KLQlzdHJ1Y3QgYmluZGVyX2J1ZmZlciAqYnVmZmVyOw0K LQl1bnNpZ25lZCBpbnQJY29kZTsNCi0JdW5zaWduZWQgaW50CWZsYWdzOw0KLQlsb25nCXByaW9y aXR5Ow0KLQlsb25nCXNhdmVkX3ByaW9yaXR5Ow0KLQlrdWlkX3QJc2VuZGVyX2V1aWQ7DQotCXN0 cnVjdCBsaXN0X2hlYWQgZmRfZml4dXBzOw0KLQliaW5kZXJfdWludHB0cl90IHNlY3VyaXR5X2N0 eDsNCi0JLyoqDQotCSAqIEBsb2NrOiAgcHJvdGVjdHMgQGZyb20sIEB0b19wcm9jLCBhbmQgQHRv X3RocmVhZA0KLQkgKg0KLQkgKiBAZnJvbSwgQHRvX3Byb2MsIGFuZCBAdG9fdGhyZWFkIGNhbiBi ZSBzZXQgdG8gTlVMTA0KLQkgKiBkdXJpbmcgdGhyZWFkIHRlYXJkb3duDQotCSAqLw0KLQlzcGlu bG9ja190IGxvY2s7DQotfTsNCi0NCi0vKioNCi0gKiBzdHJ1Y3QgYmluZGVyX29iamVjdCAtIHVu aW9uIG9mIGZsYXQgYmluZGVyIG9iamVjdCB0eXBlcw0KLSAqIEBoZHI6ICAgZ2VuZXJpYyBvYmpl Y3QgaGVhZGVyDQotICogQGZibzogICBiaW5kZXIgb2JqZWN0IChub2RlcyBhbmQgcmVmcykNCi0g KiBAZmRvOiAgIGZpbGUgZGVzY3JpcHRvciBvYmplY3QNCi0gKiBAYmJvOiAgIGJpbmRlciBidWZm ZXIgcG9pbnRlcg0KLSAqIEBmZGFvOiAgZmlsZSBkZXNjcmlwdG9yIGFycmF5DQotICoNCi0gKiBV c2VkIGZvciB0eXBlLWluZGVwZW5kZW50IG9iamVjdCBjb3BpZXMNCi0gKi8NCi1zdHJ1Y3QgYmlu ZGVyX29iamVjdCB7DQotCXVuaW9uIHsNCi0JCXN0cnVjdCBiaW5kZXJfb2JqZWN0X2hlYWRlciBo ZHI7DQotCQlzdHJ1Y3QgZmxhdF9iaW5kZXJfb2JqZWN0IGZibzsNCi0JCXN0cnVjdCBiaW5kZXJf ZmRfb2JqZWN0IGZkbzsNCi0JCXN0cnVjdCBiaW5kZXJfYnVmZmVyX29iamVjdCBiYm87DQotCQlz dHJ1Y3QgYmluZGVyX2ZkX2FycmF5X29iamVjdCBmZGFvOw0KLQl9Ow0KLX07DQotDQotLyoqDQog ICogYmluZGVyX3Byb2NfbG9jaygpIC0gQWNxdWlyZSBvdXRlciBsb2NrIGZvciBnaXZlbiBiaW5k ZXJfcHJvYw0KICAqIEBwcm9jOiAgICAgICAgIHN0cnVjdCBiaW5kZXJfcHJvYyB0byBhY3F1aXJl DQogICoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FuZHJvaWQvYmluZGVyX2ludGVybmFsLmggYi9k cml2ZXJzL2FuZHJvaWQvYmluZGVyX2ludGVybmFsLmgNCmluZGV4IGFlOTkxMDkuLjViNjU0MTMg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2FuZHJvaWQvYmluZGVyX2ludGVybmFsLmgNCisrKyBiL2Ry aXZlcnMvYW5kcm9pZC9iaW5kZXJfaW50ZXJuYWwuaA0KQEAgLTExLDYgKzExLDcgQEANCiAjaW5j bHVkZSA8bGludXgvc3RkZGVmLmg+DQogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+DQogI2luY2x1 ZGUgPGxpbnV4L3VpZGdpZC5oPg0KKyNpbmNsdWRlICJiaW5kZXJfYWxsb2MuaCINCiANCiBzdHJ1 Y3QgYmluZGVyX2NvbnRleHQgew0KIAlzdHJ1Y3QgYmluZGVyX25vZGUgKmJpbmRlcl9jb250ZXh0 X21ncl9ub2RlOw0KQEAgLTEzOSw2ICsxNDAsNDA5IEBAIHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rp b25fbG9nIHsNCiAJc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbl9sb2dfZW50cnkgZW50cnlbMzJd Ow0KIH07DQogDQorZW51bSBiaW5kZXJfc3RhdF90eXBlcyB7DQorCUJJTkRFUl9TVEFUX1BST0Ms DQorCUJJTkRFUl9TVEFUX1RIUkVBRCwNCisJQklOREVSX1NUQVRfTk9ERSwNCisJQklOREVSX1NU QVRfUkVGLA0KKwlCSU5ERVJfU1RBVF9ERUFUSCwNCisJQklOREVSX1NUQVRfVFJBTlNBQ1RJT04s DQorCUJJTkRFUl9TVEFUX1RSQU5TQUNUSU9OX0NPTVBMRVRFLA0KKwlCSU5ERVJfU1RBVF9DT1VO VA0KK307DQorDQorc3RydWN0IGJpbmRlcl9zdGF0cyB7DQorCWF0b21pY190IGJyW19JT0NfTlIo QlJfRkFJTEVEX1JFUExZKSArIDFdOw0KKwlhdG9taWNfdCBiY1tfSU9DX05SKEJDX1JFUExZX1NH KSArIDFdOw0KKwlhdG9taWNfdCBvYmpfY3JlYXRlZFtCSU5ERVJfU1RBVF9DT1VOVF07DQorCWF0 b21pY190IG9ial9kZWxldGVkW0JJTkRFUl9TVEFUX0NPVU5UXTsNCit9Ow0KKw0KKy8qKg0KKyAq IHN0cnVjdCBiaW5kZXJfd29yayAtIHdvcmsgZW5xdWV1ZWQgb24gYSB3b3JrbGlzdA0KKyAqIEBl bnRyeTogICAgICAgICAgICAgbm9kZSBlbnF1ZXVlZCBvbiBsaXN0DQorICogQHR5cGU6ICAgICAg ICAgICAgICB0eXBlIG9mIHdvcmsgdG8gYmUgcGVyZm9ybWVkDQorICoNCisgKiBUaGVyZSBhcmUg c2VwYXJhdGUgd29yayBsaXN0cyBmb3IgcHJvYywgdGhyZWFkLCBhbmQgbm9kZSAoYXN5bmMpLg0K KyAqLw0KK3N0cnVjdCBiaW5kZXJfd29yayB7DQorCXN0cnVjdCBsaXN0X2hlYWQgZW50cnk7DQor DQorCWVudW0gew0KKwkJQklOREVSX1dPUktfVFJBTlNBQ1RJT04gPSAxLA0KKwkJQklOREVSX1dP UktfVFJBTlNBQ1RJT05fQ09NUExFVEUsDQorCQlCSU5ERVJfV09SS19SRVRVUk5fRVJST1IsDQor CQlCSU5ERVJfV09SS19OT0RFLA0KKwkJQklOREVSX1dPUktfREVBRF9CSU5ERVIsDQorCQlCSU5E RVJfV09SS19ERUFEX0JJTkRFUl9BTkRfQ0xFQVIsDQorCQlCSU5ERVJfV09SS19DTEVBUl9ERUFU SF9OT1RJRklDQVRJT04sDQorCX0gdHlwZTsNCit9Ow0KKw0KK3N0cnVjdCBiaW5kZXJfZXJyb3Ig ew0KKwlzdHJ1Y3QgYmluZGVyX3dvcmsgd29yazsNCisJdWludDMyX3QgY21kOw0KK307DQorDQor Lyogc3RydWN0IGJpbmRlcl9ub2RlIC0gYmluZGVyIG5vZGUgYm9va2tlZXBpbmcNCisgKiBAZGVi dWdfaWQ6ICAgICAgICAgICAgIHVuaXF1ZSBJRCBmb3IgZGVidWdnaW5nDQorICogICAgICAgICAg ICAgICAgICAgICAgICAoaW52YXJpYW50IGFmdGVyIGluaXRpYWxpemVkKQ0KKyAqIEBsb2NrOiAg ICAgICAgICAgICAgICAgbG9jayBmb3Igbm9kZSBmaWVsZHMNCisgKiBAd29yazogICAgICAgICAg ICAgICAgIHdvcmtsaXN0IGVsZW1lbnQgZm9yIG5vZGUgd29yaw0KKyAqICAgICAgICAgICAgICAg ICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jaykNCisgKiBAcmJfbm9kZTog ICAgICAgICAgICAgIGVsZW1lbnQgZm9yIHByb2MtPm5vZGVzIHRyZWUNCisgKiAgICAgICAgICAg ICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQHByb2MtPmlubmVyX2xvY2spDQorICogQGRlYWRf bm9kZTogICAgICAgICAgICBlbGVtZW50IGZvciBiaW5kZXJfZGVhZF9ub2RlcyBsaXN0DQorICog ICAgICAgICAgICAgICAgICAgICAgICAocHJvdGVjdGVkIGJ5IGJpbmRlcl9kZWFkX25vZGVzX2xv Y2spDQorICogQHByb2M6ICAgICAgICAgICAgICAgICBiaW5kZXJfcHJvYyB0aGF0IG93bnMgdGhp cyBub2RlDQorICogICAgICAgICAgICAgICAgICAgICAgICAoaW52YXJpYW50IGFmdGVyIGluaXRp YWxpemVkKQ0KKyAqIEByZWZzOiAgICAgICAgICAgICAgICAgbGlzdCBvZiByZWZlcmVuY2VzIG9u IHRoaXMgbm9kZQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAbG9j aykNCisgKiBAaW50ZXJuYWxfc3Ryb25nX3JlZnM6IHVzZWQgdG8gdGFrZSBzdHJvbmcgcmVmZXJl bmNlcyB3aGVuDQorICogICAgICAgICAgICAgICAgICAgICAgICBpbml0aWF0aW5nIGEgdHJhbnNh Y3Rpb24NCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQHByb2MtPmlu bmVyX2xvY2sgaWYgQHByb2MNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBieSBAbG9j aykNCisgKiBAbG9jYWxfd2Vha19yZWZzOiAgICAgIHdlYWsgdXNlciByZWZzIGZyb20gbG9jYWwg cHJvY2Vzcw0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+ aW5uZXJfbG9jayBpZiBAcHJvYw0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGJ5IEBs b2NrKQ0KKyAqIEBsb2NhbF9zdHJvbmdfcmVmczogICAgc3Ryb25nIHVzZXIgcmVmcyBmcm9tIGxv Y2FsIHByb2Nlc3MNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQHBy b2MtPmlubmVyX2xvY2sgaWYgQHByb2MNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBi eSBAbG9jaykNCisgKiBAdG1wX3JlZnM6ICAgICAgICAgICAgIHRlbXBvcmFyeSBrZXJuZWwgcmVm cw0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJf bG9jayB3aGlsZSBAcHJvYw0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgaXMgdmFsaWQsIGFu ZCBieSBiaW5kZXJfZGVhZF9ub2Rlc19sb2NrDQorICogICAgICAgICAgICAgICAgICAgICAgICBp ZiBAcHJvYyBpcyBOVUxMLiBEdXJpbmcgaW5jL2RlYyBhbmQgbm9kZSByZWxlYXNlDQorICogICAg ICAgICAgICAgICAgICAgICAgICBpdCBpcyBhbHNvIHByb3RlY3RlZCBieSBAbG9jayB0byBwcm92 aWRlIHNhZmV0eQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgYXMgdGhlIG5vZGUgZGllcyBh bmQgQHByb2MgYmVjb21lcyBOVUxMKQ0KKyAqIEBwdHI6ICAgICAgICAgICAgICAgICAgdXNlcnNw YWNlIHBvaW50ZXIgZm9yIG5vZGUNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChpbnZhcmlh bnQsIG5vIGxvY2sgbmVlZGVkKQ0KKyAqIEBjb29raWU6ICAgICAgICAgICAgICAgdXNlcnNwYWNl IGNvb2tpZSBmb3Igbm9kZQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKGludmFyaWFudCwg bm8gbG9jayBuZWVkZWQpDQorICogQGhhc19zdHJvbmdfcmVmOiAgICAgICB1c2Vyc3BhY2Ugbm90 aWZpZWQgb2Ygc3Ryb25nIHJlZg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3Rl ZCBieSBAcHJvYy0+aW5uZXJfbG9jayBpZiBAcHJvYw0KKyAqICAgICAgICAgICAgICAgICAgICAg ICAgYW5kIGJ5IEBsb2NrKQ0KKyAqIEBwZW5kaW5nX3N0cm9uZ19yZWY6ICAgdXNlcnNwYWNlIGhh cyBhY2tlZCBub3RpZmljYXRpb24gb2Ygc3Ryb25nIHJlZg0KKyAqICAgICAgICAgICAgICAgICAg ICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jayBpZiBAcHJvYw0KKyAqICAgICAg ICAgICAgICAgICAgICAgICAgYW5kIGJ5IEBsb2NrKQ0KKyAqIEBoYXNfd2Vha19yZWY6ICAgICAg ICAgdXNlcnNwYWNlIG5vdGlmaWVkIG9mIHdlYWsgcmVmDQorICogICAgICAgICAgICAgICAgICAg ICAgICAocHJvdGVjdGVkIGJ5IEBwcm9jLT5pbm5lcl9sb2NrIGlmIEBwcm9jDQorICogICAgICAg ICAgICAgICAgICAgICAgICBhbmQgYnkgQGxvY2spDQorICogQHBlbmRpbmdfd2Vha19yZWY6ICAg ICB1c2Vyc3BhY2UgaGFzIGFja2VkIG5vdGlmaWNhdGlvbiBvZiB3ZWFrIHJlZg0KKyAqICAgICAg ICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jayBpZiBAcHJv Yw0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGJ5IEBsb2NrKQ0KKyAqIEBoYXNfYXN5 bmNfdHJhbnNhY3Rpb246IGFzeW5jIHRyYW5zYWN0aW9uIHRvIG5vZGUgaW4gcHJvZ3Jlc3MNCisg KiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQGxvY2spDQorICogQGFjY2Vw dF9mZHM6ICAgICAgICAgICBmaWxlIGRlc2NyaXB0b3Igb3BlcmF0aW9ucyBzdXBwb3J0ZWQgZm9y IG5vZGUNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlh bGl6ZWQpDQorICogQG1pbl9wcmlvcml0eTogICAgICAgICBtaW5pbXVtIHNjaGVkdWxpbmcgcHJp b3JpdHkNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlh bGl6ZWQpDQorICogQHR4bl9zZWN1cml0eV9jdHg6ICAgICByZXF1aXJlIHNlbmRlcidzIHNlY3Vy aXR5IGNvbnRleHQNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIg aW5pdGlhbGl6ZWQpDQorICogQGFzeW5jX3RvZG86ICAgICAgICAgICBsaXN0IG9mIGFzeW5jIHdv cmsgaXRlbXMNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQHByb2Mt PmlubmVyX2xvY2spDQorICoNCisgKiBCb29ra2VlcGluZyBzdHJ1Y3R1cmUgZm9yIGJpbmRlciBu b2Rlcy4NCisgKi8NCitzdHJ1Y3QgYmluZGVyX25vZGUgew0KKwlpbnQgZGVidWdfaWQ7DQorCXNw aW5sb2NrX3QgbG9jazsNCisJc3RydWN0IGJpbmRlcl93b3JrIHdvcms7DQorCXVuaW9uIHsNCisJ CXN0cnVjdCByYl9ub2RlIHJiX25vZGU7DQorCQlzdHJ1Y3QgaGxpc3Rfbm9kZSBkZWFkX25vZGU7 DQorCX07DQorCXN0cnVjdCBiaW5kZXJfcHJvYyAqcHJvYzsNCisJc3RydWN0IGhsaXN0X2hlYWQg cmVmczsNCisJaW50IGludGVybmFsX3N0cm9uZ19yZWZzOw0KKwlpbnQgbG9jYWxfd2Vha19yZWZz Ow0KKwlpbnQgbG9jYWxfc3Ryb25nX3JlZnM7DQorCWludCB0bXBfcmVmczsNCisJYmluZGVyX3Vp bnRwdHJfdCBwdHI7DQorCWJpbmRlcl91aW50cHRyX3QgY29va2llOw0KKwlzdHJ1Y3Qgew0KKwkJ LyoNCisJCSAqIGJpdGZpZWxkIGVsZW1lbnRzIHByb3RlY3RlZCBieQ0KKwkJICogcHJvYyBpbm5l cl9sb2NrDQorCQkgKi8NCisJCXU4IGhhc19zdHJvbmdfcmVmOjE7DQorCQl1OCBwZW5kaW5nX3N0 cm9uZ19yZWY6MTsNCisJCXU4IGhhc193ZWFrX3JlZjoxOw0KKwkJdTggcGVuZGluZ193ZWFrX3Jl ZjoxOw0KKwl9Ow0KKwlzdHJ1Y3Qgew0KKwkJLyoNCisJCSAqIGludmFyaWFudCBhZnRlciBpbml0 aWFsaXphdGlvbg0KKwkJICovDQorCQl1OCBhY2NlcHRfZmRzOjE7DQorCQl1OCB0eG5fc2VjdXJp dHlfY3R4OjE7DQorCQl1OCBtaW5fcHJpb3JpdHk7DQorCX07DQorCWJvb2wgaGFzX2FzeW5jX3Ry YW5zYWN0aW9uOw0KKwlzdHJ1Y3QgbGlzdF9oZWFkIGFzeW5jX3RvZG87DQorfTsNCisNCitzdHJ1 Y3QgYmluZGVyX3JlZl9kZWF0aCB7DQorCS8qKg0KKwkgKiBAd29yazogd29ya2xpc3QgZWxlbWVu dCBmb3IgZGVhdGggbm90aWZpY2F0aW9ucw0KKwkgKiAgICAgICAgKHByb3RlY3RlZCBieSBpbm5l cl9sb2NrIG9mIHRoZSBwcm9jIHRoYXQNCisJICogICAgICAgIHRoaXMgcmVmIGJlbG9uZ3MgdG8p DQorCSAqLw0KKwlzdHJ1Y3QgYmluZGVyX3dvcmsgd29yazsNCisJYmluZGVyX3VpbnRwdHJfdCBj b29raWU7DQorfTsNCisNCisvKioNCisgKiBzdHJ1Y3QgYmluZGVyX3JlZl9kYXRhIC0gYmluZGVy X3JlZiBjb3VudHMgYW5kIGlkDQorICogQGRlYnVnX2lkOiAgICAgICAgdW5pcXVlIElEIGZvciB0 aGUgcmVmDQorICogQGRlc2M6ICAgICAgICAgICAgdW5pcXVlIHVzZXJzcGFjZSBoYW5kbGUgZm9y IHJlZg0KKyAqIEBzdHJvbmc6ICAgICAgICAgIHN0cm9uZyByZWYgY291bnQgKGRlYnVnZ2luZyBv bmx5IGlmIG5vdCBsb2NrZWQpDQorICogQHdlYWs6ICAgICAgICAgICAgd2VhayByZWYgY291bnQg KGRlYnVnZ2luZyBvbmx5IGlmIG5vdCBsb2NrZWQpDQorICoNCisgKiBTdHJ1Y3R1cmUgdG8gaG9s ZCByZWYgY291bnQgYW5kIHJlZiBpZCBpbmZvcm1hdGlvbi4gU2luY2UNCisgKiB0aGUgYWN0dWFs IHJlZiBjYW4gb25seSBiZSBhY2Nlc3NlZCB3aXRoIGEgbG9jaywgdGhpcyBzdHJ1Y3R1cmUNCisg KiBpcyB1c2VkIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVmIHRvIGNhbGxlcnMg b2YNCisgKiByZWYgaW5jL2RlYyBmdW5jdGlvbnMuDQorICovDQorc3RydWN0IGJpbmRlcl9yZWZf ZGF0YSB7DQorCWludCBkZWJ1Z19pZDsNCisJdWludDMyX3QgZGVzYzsNCisJaW50IHN0cm9uZzsN CisJaW50IHdlYWs7DQorfTsNCisNCisvKioNCisgKiBzdHJ1Y3QgYmluZGVyX3JlZiAtIHN0cnVj dCB0byB0cmFjayByZWZlcmVuY2VzIG9uIG5vZGVzDQorICogQGRhdGE6ICAgICAgICBiaW5kZXJf cmVmX2RhdGEgY29udGFpbmluZyBpZCwgaGFuZGxlLCBhbmQgY3VycmVudCByZWZjb3VudHMNCisg KiBAcmJfbm9kZV9kZXNjOiBub2RlIGZvciBsb29rdXAgYnkgQGRhdGEuZGVzYyBpbiBwcm9jJ3Mg cmJfdHJlZQ0KKyAqIEByYl9ub2RlX25vZGU6IG5vZGUgZm9yIGxvb2t1cCBieSBAbm9kZSBpbiBw cm9jJ3MgcmJfdHJlZQ0KKyAqIEBub2RlX2VudHJ5OiAgbGlzdCBlbnRyeSBmb3Igbm9kZS0+cmVm cyBsaXN0IGluIHRhcmdldCBub2RlDQorICogICAgICAgICAgICAgICAocHJvdGVjdGVkIGJ5IEBu b2RlLT5sb2NrKQ0KKyAqIEBwcm9jOiAgICAgICAgYmluZGVyX3Byb2MgY29udGFpbmluZyByZWYN CisgKiBAbm9kZTogICAgICAgIGJpbmRlcl9ub2RlIG9mIHRhcmdldCBub2RlLiBXaGVuIGNsZWFu aW5nIHVwIGENCisgKiAgICAgICAgICAgICAgIHJlZiBmb3IgZGVsZXRpb24gaW4gYmluZGVyX2Ns ZWFudXBfcmVmLCBhIG5vbi1OVUxMDQorICogICAgICAgICAgICAgICBAbm9kZSBpbmRpY2F0ZXMg dGhlIG5vZGUgbXVzdCBiZSBmcmVlZA0KKyAqIEBkZWF0aDogICAgICAgcG9pbnRlciB0byBkZWF0 aCBub3RpZmljYXRpb24gKHJlZl9kZWF0aCkgaWYgcmVxdWVzdGVkDQorICogICAgICAgICAgICAg ICAocHJvdGVjdGVkIGJ5IEBub2RlLT5sb2NrKQ0KKyAqDQorICogU3RydWN0dXJlIHRvIHRyYWNr IHJlZmVyZW5jZXMgZnJvbSBwcm9jQSB0byB0YXJnZXQgbm9kZSAob24gcHJvY0IpLiBUaGlzDQor ICogc3RydWN0dXJlIGlzIHVuc2FmZSB0byBhY2Nlc3Mgd2l0aG91dCBob2xkaW5nIEBwcm9jLT5v dXRlcl9sb2NrLg0KKyAqLw0KK3N0cnVjdCBiaW5kZXJfcmVmIHsNCisJLyogTG9va3VwcyBuZWVk ZWQ6ICovDQorCS8qICAgbm9kZSArIHByb2MgPT4gcmVmICh0cmFuc2FjdGlvbikgKi8NCisJLyog ICBkZXNjICsgcHJvYyA9PiByZWYgKHRyYW5zYWN0aW9uLCBpbmMvZGVjIHJlZikgKi8NCisJLyog ICBub2RlID0+IHJlZnMgKyBwcm9jcyAocHJvYyBleGl0KSAqLw0KKwlzdHJ1Y3QgYmluZGVyX3Jl Zl9kYXRhIGRhdGE7DQorCXN0cnVjdCByYl9ub2RlIHJiX25vZGVfZGVzYzsNCisJc3RydWN0IHJi X25vZGUgcmJfbm9kZV9ub2RlOw0KKwlzdHJ1Y3QgaGxpc3Rfbm9kZSBub2RlX2VudHJ5Ow0KKwlz dHJ1Y3QgYmluZGVyX3Byb2MgKnByb2M7DQorCXN0cnVjdCBiaW5kZXJfbm9kZSAqbm9kZTsNCisJ c3RydWN0IGJpbmRlcl9yZWZfZGVhdGggKmRlYXRoOw0KK307DQorDQorLyoqDQorICogc3RydWN0 IGJpbmRlcl9wcm9jIC0gYmluZGVyIHByb2Nlc3MgYm9va2tlZXBpbmcNCisgKiBAcHJvY19ub2Rl OiAgICAgICAgICAgIGVsZW1lbnQgZm9yIGJpbmRlcl9wcm9jcyBsaXN0DQorICogQHRocmVhZHM6 ICAgICAgICAgICAgICByYnRyZWUgb2YgYmluZGVyX3RocmVhZHMgaW4gdGhpcyBwcm9jDQorICog ICAgICAgICAgICAgICAgICAgICAgICAocHJvdGVjdGVkIGJ5IEBpbm5lcl9sb2NrKQ0KKyAqIEBu b2RlczogICAgICAgICAgICAgICAgcmJ0cmVlIG9mIGJpbmRlciBub2RlcyBhc3NvY2lhdGVkIHdp dGgNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgcHJvYyBvcmRlcmVkIGJ5IG5vZGUt PnB0cg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAaW5uZXJfbG9j aykNCisgKiBAcmVmc19ieV9kZXNjOiAgICAgICAgIHJidHJlZSBvZiByZWZzIG9yZGVyZWQgYnkg cmVmLT5kZXNjDQorICogICAgICAgICAgICAgICAgICAgICAgICAocHJvdGVjdGVkIGJ5IEBvdXRl cl9sb2NrKQ0KKyAqIEByZWZzX2J5X25vZGU6ICAgICAgICAgcmJ0cmVlIG9mIHJlZnMgb3JkZXJl ZCBieSByZWYtPm5vZGUNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkg QG91dGVyX2xvY2spDQorICogQHdhaXRpbmdfdGhyZWFkczogICAgICB0aHJlYWRzIGN1cnJlbnRs eSB3YWl0aW5nIGZvciBwcm9jIHdvcmsNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90 ZWN0ZWQgYnkgQGlubmVyX2xvY2spDQorICogQHBpZCAgICAgICAgICAgICAgICAgICBQSUQgb2Yg Z3JvdXBfbGVhZGVyIG9mIHByb2Nlc3MNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChpbnZh cmlhbnQgYWZ0ZXIgaW5pdGlhbGl6ZWQpDQorICogQHRzayAgICAgICAgICAgICAgICAgICB0YXNr X3N0cnVjdCBmb3IgZ3JvdXBfbGVhZGVyIG9mIHByb2Nlc3MNCisgKiAgICAgICAgICAgICAgICAg ICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlhbGl6ZWQpDQorICogQGRlZmVycmVkX3dvcmtf bm9kZTogICBlbGVtZW50IGZvciBiaW5kZXJfZGVmZXJyZWRfbGlzdA0KKyAqICAgICAgICAgICAg ICAgICAgICAgICAgKHByb3RlY3RlZCBieSBiaW5kZXJfZGVmZXJyZWRfbG9jaykNCisgKiBAZGVm ZXJyZWRfd29yazogICAgICAgIGJpdG1hcCBvZiBkZWZlcnJlZCB3b3JrIHRvIHBlcmZvcm0NCisg KiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgYmluZGVyX2RlZmVycmVkX2xv Y2spDQorICogQGlzX2RlYWQ6ICAgICAgICAgICAgICBwcm9jZXNzIGlzIGRlYWQgYW5kIGF3YWl0 aW5nIGZyZWUNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gb3V0c3RhbmRpbmcgdHJh bnNhY3Rpb25zIGFyZSBjbGVhbmVkIHVwDQorICogICAgICAgICAgICAgICAgICAgICAgICAocHJv dGVjdGVkIGJ5IEBpbm5lcl9sb2NrKQ0KKyAqIEB0b2RvOiAgICAgICAgICAgICAgICAgbGlzdCBv ZiB3b3JrIGZvciB0aGlzIHByb2Nlc3MNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90 ZWN0ZWQgYnkgQGlubmVyX2xvY2spDQorICogQHN0YXRzOiAgICAgICAgICAgICAgICBwZXItcHJv Y2VzcyBiaW5kZXIgc3RhdGlzdGljcw0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKGF0b21p Y3MsIG5vIGxvY2sgbmVlZGVkKQ0KKyAqIEBkZWxpdmVyZWRfZGVhdGg6ICAgICAgbGlzdCBvZiBk ZWxpdmVyZWQgZGVhdGggbm90aWZpY2F0aW9uDQorICogICAgICAgICAgICAgICAgICAgICAgICAo cHJvdGVjdGVkIGJ5IEBpbm5lcl9sb2NrKQ0KKyAqIEBtYXhfdGhyZWFkczogICAgICAgICAgY2Fw IG9uIG51bWJlciBvZiBiaW5kZXIgdGhyZWFkcw0KKyAqICAgICAgICAgICAgICAgICAgICAgICAg KHByb3RlY3RlZCBieSBAaW5uZXJfbG9jaykNCisgKiBAcmVxdWVzdGVkX3RocmVhZHM6ICAgIG51 bWJlciBvZiBiaW5kZXIgdGhyZWFkcyByZXF1ZXN0ZWQgYnV0IG5vdA0KKyAqICAgICAgICAgICAg ICAgICAgICAgICAgeWV0IHN0YXJ0ZWQuIEluIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIGNhbg0K KyAqICAgICAgICAgICAgICAgICAgICAgICAgb25seSBiZSAwIG9yIDEuDQorICogICAgICAgICAg ICAgICAgICAgICAgICAocHJvdGVjdGVkIGJ5IEBpbm5lcl9sb2NrKQ0KKyAqIEByZXF1ZXN0ZWRf dGhyZWFkc19zdGFydGVkOiBudW1iZXIgYmluZGVyIHRocmVhZHMgc3RhcnRlZA0KKyAqICAgICAg ICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAaW5uZXJfbG9jaykNCisgKiBAdG1wX3Jl ZjogICAgICAgICAgICAgIHRlbXBvcmFyeSByZWZlcmVuY2UgdG8gaW5kaWNhdGUgcHJvYyBpcyBp biB1c2UNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQgYnkgQGlubmVyX2xv Y2spDQorICogQGRlZmF1bHRfcHJpb3JpdHk6ICAgICBkZWZhdWx0IHNjaGVkdWxlciBwcmlvcml0 eQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKGludmFyaWFudCBhZnRlciBpbml0aWFsaXpl ZCkNCisgKiBAZGVidWdmc19lbnRyeTogICAgICAgIGRlYnVnZnMgbm9kZQ0KKyAqIEBhbGxvYzog ICAgICAgICAgICAgICAgYmluZGVyIGFsbG9jYXRvciBib29ra2VlcGluZw0KKyAqIEBjb250ZXh0 OiAgICAgICAgICAgICAgYmluZGVyX2NvbnRleHQgZm9yIHRoaXMgcHJvYw0KKyAqICAgICAgICAg ICAgICAgICAgICAgICAgKGludmFyaWFudCBhZnRlciBpbml0aWFsaXplZCkNCisgKiBAaW5uZXJf bG9jazogICAgICAgICAgIGNhbiBuZXN0IHVuZGVyIG91dGVyX2xvY2sgYW5kL29yIG5vZGUgbG9j aw0KKyAqIEBvdXRlcl9sb2NrOiAgICAgICAgICAgbm8gbmVzdGluZyB1bmRlciBpbm5vciBvciBu b2RlIGxvY2sNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIExvY2sgb3JkZXI6IDEpIG91dGVy LCAyKSBub2RlLCAzKSBpbm5lcg0KKyAqIEBiaW5kZXJmc19lbnRyeTogICAgICAgcHJvY2Vzcy1z cGVjaWZpYyBiaW5kZXJmcyBsb2cgZmlsZQ0KKyAqDQorICogQm9va2tlZXBpbmcgc3RydWN0dXJl IGZvciBiaW5kZXIgcHJvY2Vzc2VzDQorICovDQorc3RydWN0IGJpbmRlcl9wcm9jIHsNCisJc3Ry dWN0IGhsaXN0X25vZGUgcHJvY19ub2RlOw0KKwlzdHJ1Y3QgcmJfcm9vdCB0aHJlYWRzOw0KKwlz dHJ1Y3QgcmJfcm9vdCBub2RlczsNCisJc3RydWN0IHJiX3Jvb3QgcmVmc19ieV9kZXNjOw0KKwlz dHJ1Y3QgcmJfcm9vdCByZWZzX2J5X25vZGU7DQorCXN0cnVjdCBsaXN0X2hlYWQgd2FpdGluZ190 aHJlYWRzOw0KKwlpbnQgcGlkOw0KKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzazsNCisJc3RydWN0 IGhsaXN0X25vZGUgZGVmZXJyZWRfd29ya19ub2RlOw0KKwlpbnQgZGVmZXJyZWRfd29yazsNCisJ Ym9vbCBpc19kZWFkOw0KKw0KKwlzdHJ1Y3QgbGlzdF9oZWFkIHRvZG87DQorCXN0cnVjdCBiaW5k ZXJfc3RhdHMgc3RhdHM7DQorCXN0cnVjdCBsaXN0X2hlYWQgZGVsaXZlcmVkX2RlYXRoOw0KKwlp bnQgbWF4X3RocmVhZHM7DQorCWludCByZXF1ZXN0ZWRfdGhyZWFkczsNCisJaW50IHJlcXVlc3Rl ZF90aHJlYWRzX3N0YXJ0ZWQ7DQorCWludCB0bXBfcmVmOw0KKwlsb25nIGRlZmF1bHRfcHJpb3Jp dHk7DQorCXN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZW50cnk7DQorCXN0cnVjdCBiaW5kZXJfYWxs b2MgYWxsb2M7DQorCXN0cnVjdCBiaW5kZXJfY29udGV4dCAqY29udGV4dDsNCisJc3BpbmxvY2tf dCBpbm5lcl9sb2NrOw0KKwlzcGlubG9ja190IG91dGVyX2xvY2s7DQorCXN0cnVjdCBkZW50cnkg KmJpbmRlcmZzX2VudHJ5Ow0KK307DQorDQorLyoqDQorICogc3RydWN0IGJpbmRlcl90aHJlYWQg LSBiaW5kZXIgdGhyZWFkIGJvb2trZWVwaW5nDQorICogQHByb2M6ICAgICAgICAgICAgICAgICBi aW5kZXIgcHJvY2VzcyBmb3IgdGhpcyB0aHJlYWQNCisgKiAgICAgICAgICAgICAgICAgICAgICAg IChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24pDQorICogQHJiX25vZGU6ICAgICAgICAg ICAgICBlbGVtZW50IGZvciBwcm9jLT50aHJlYWRzIHJidHJlZQ0KKyAqICAgICAgICAgICAgICAg ICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jaykNCisgKiBAd2FpdGluZ190 aHJlYWRfbm9kZTogIGVsZW1lbnQgZm9yIEBwcm9jLT53YWl0aW5nX3RocmVhZHMgbGlzdA0KKyAq ICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jaykN CisgKiBAcGlkOiAgICAgICAgICAgICAgICAgIFBJRCBmb3IgdGhpcyB0aHJlYWQNCisgKiAgICAg ICAgICAgICAgICAgICAgICAgIChpbnZhcmlhbnQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24pDQorICog QGxvb3BlcjogICAgICAgICAgICAgICBiaXRtYXAgb2YgbG9vcGluZyBzdGF0ZQ0KKyAqICAgICAg ICAgICAgICAgICAgICAgICAgKG9ubHkgYWNjZXNzZWQgYnkgdGhpcyB0aHJlYWQpDQorICogQGxv b3Blcl9uZWVkc19yZXR1cm46ICBsb29waW5nIHRocmVhZCBuZWVkcyB0byBleGl0IGRyaXZlcg0K KyAqICAgICAgICAgICAgICAgICAgICAgICAgKG5vIGxvY2sgbmVlZGVkKQ0KKyAqIEB0cmFuc2Fj dGlvbl9zdGFjazogICAgc3RhY2sgb2YgaW4tcHJvZ3Jlc3MgdHJhbnNhY3Rpb25zIGZvciB0aGlz IHRocmVhZA0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+ aW5uZXJfbG9jaykNCisgKiBAdG9kbzogICAgICAgICAgICAgICAgIGxpc3Qgb2Ygd29yayB0byBk byBmb3IgdGhpcyB0aHJlYWQNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChwcm90ZWN0ZWQg YnkgQHByb2MtPmlubmVyX2xvY2spDQorICogQHByb2Nlc3NfdG9kbzogICAgICAgICB3aGV0aGVy IHdvcmsgaW4gQHRvZG8gc2hvdWxkIGJlIHByb2Nlc3NlZA0KKyAqICAgICAgICAgICAgICAgICAg ICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jaykNCisgKiBAcmV0dXJuX2Vycm9y OiAgICAgICAgIHRyYW5zYWN0aW9uIGVycm9ycyByZXBvcnRlZCBieSB0aGlzIHRocmVhZA0KKyAq ICAgICAgICAgICAgICAgICAgICAgICAgKG9ubHkgYWNjZXNzZWQgYnkgdGhpcyB0aHJlYWQpDQor ICogQHJlcGx5X2Vycm9yOiAgICAgICAgICB0cmFuc2FjdGlvbiBlcnJvcnMgcmVwb3J0ZWQgYnkg dGFyZ2V0IHRocmVhZA0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBA cHJvYy0+aW5uZXJfbG9jaykNCisgKiBAd2FpdDogICAgICAgICAgICAgICAgIHdhaXQgcXVldWUg Zm9yIHRocmVhZCB3b3JrDQorICogQHN0YXRzOiAgICAgICAgICAgICAgICBwZXItdGhyZWFkIHN0 YXRpc3RpY3MNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIChhdG9taWNzLCBubyBsb2NrIG5l ZWRlZCkNCisgKiBAdG1wX3JlZjogICAgICAgICAgICAgIHRlbXBvcmFyeSByZWZlcmVuY2UgdG8g aW5kaWNhdGUgdGhyZWFkIGlzIGluIHVzZQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgKGF0 b21pYyBzaW5jZSBAcHJvYy0+aW5uZXJfbG9jayBjYW5ub3QNCisgKiAgICAgICAgICAgICAgICAg ICAgICAgIGFsd2F5cyBiZSBhY3F1aXJlZCkNCisgKiBAaXNfZGVhZDogICAgICAgICAgICAgIHRo cmVhZCBpcyBkZWFkIGFuZCBhd2FpdGluZyBmcmVlDQorICogICAgICAgICAgICAgICAgICAgICAg ICB3aGVuIG91dHN0YW5kaW5nIHRyYW5zYWN0aW9ucyBhcmUgY2xlYW5lZCB1cA0KKyAqICAgICAg ICAgICAgICAgICAgICAgICAgKHByb3RlY3RlZCBieSBAcHJvYy0+aW5uZXJfbG9jaykNCisgKg0K KyAqIEJvb2trZWVwaW5nIHN0cnVjdHVyZSBmb3IgYmluZGVyIHRocmVhZHMuDQorICovDQorc3Ry dWN0IGJpbmRlcl90aHJlYWQgew0KKwlzdHJ1Y3QgYmluZGVyX3Byb2MgKnByb2M7DQorCXN0cnVj dCByYl9ub2RlIHJiX25vZGU7DQorCXN0cnVjdCBsaXN0X2hlYWQgd2FpdGluZ190aHJlYWRfbm9k ZTsNCisJaW50IHBpZDsNCisJaW50IGxvb3BlcjsgICAgICAgICAgICAgIC8qIG9ubHkgbW9kaWZp ZWQgYnkgdGhpcyB0aHJlYWQgKi8NCisJYm9vbCBsb29wZXJfbmVlZF9yZXR1cm47IC8qIGNhbiBi ZSB3cml0dGVuIGJ5IG90aGVyIHRocmVhZCAqLw0KKwlzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9u ICp0cmFuc2FjdGlvbl9zdGFjazsNCisJc3RydWN0IGxpc3RfaGVhZCB0b2RvOw0KKwlib29sIHBy b2Nlc3NfdG9kbzsNCisJc3RydWN0IGJpbmRlcl9lcnJvciByZXR1cm5fZXJyb3I7DQorCXN0cnVj dCBiaW5kZXJfZXJyb3IgcmVwbHlfZXJyb3I7DQorCXdhaXRfcXVldWVfaGVhZF90IHdhaXQ7DQor CXN0cnVjdCBiaW5kZXJfc3RhdHMgc3RhdHM7DQorCWF0b21pY190IHRtcF9yZWY7DQorCWJvb2wg aXNfZGVhZDsNCit9Ow0KKw0KKy8qKg0KKyAqIHN0cnVjdCBiaW5kZXJfdHhuX2ZkX2ZpeHVwIC0g dHJhbnNhY3Rpb24gZmQgZml4dXAgbGlzdCBlbGVtZW50DQorICogQGZpeHVwX2VudHJ5OiAgICAg ICAgICBsaXN0IGVudHJ5DQorICogQGZpbGU6ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmlsZSB0 byBiZSBhc3NvY2lhdGVkIHdpdGggbmV3IGZkDQorICogQG9mZnNldDogICAgICAgICAgICAgICBv ZmZzZXQgaW4gYnVmZmVyIGRhdGEgdG8gdGhpcyBmaXh1cA0KKyAqDQorICogTGlzdCBlbGVtZW50 IGZvciBmZCBmaXh1cHMgaW4gYSB0cmFuc2FjdGlvbi4gU2luY2UgZmlsZQ0KKyAqIGRlc2NyaXB0 b3JzIG5lZWQgdG8gYmUgYWxsb2NhdGVkIGluIHRoZSBjb250ZXh0IG9mIHRoZQ0KKyAqIHRhcmdl dCBwcm9jZXNzLCB3ZSBwYXNzIGVhY2ggZmQgdG8gYmUgcHJvY2Vzc2VkIGluIHRoaXMNCisgKiBz dHJ1Y3QuDQorICovDQorc3RydWN0IGJpbmRlcl90eG5fZmRfZml4dXAgew0KKwlzdHJ1Y3QgbGlz dF9oZWFkIGZpeHVwX2VudHJ5Ow0KKwlzdHJ1Y3QgZmlsZSAqZmlsZTsNCisJc2l6ZV90IG9mZnNl dDsNCit9Ow0KKw0KK3N0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gew0KKwlpbnQgZGVidWdfaWQ7 DQorCXN0cnVjdCBiaW5kZXJfd29yayB3b3JrOw0KKwlzdHJ1Y3QgYmluZGVyX3RocmVhZCAqZnJv bTsNCisJc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqZnJvbV9wYXJlbnQ7DQorCXN0cnVjdCBi aW5kZXJfcHJvYyAqdG9fcHJvYzsNCisJc3RydWN0IGJpbmRlcl90aHJlYWQgKnRvX3RocmVhZDsN CisJc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdG9fcGFyZW50Ow0KKwl1bnNpZ25lZCBuZWVk X3JlcGx5OjE7DQorCS8qIHVuc2lnbmVkIGlzX2RlYWQ6MTsgKi8gICAgICAgLyogbm90IHVzZWQg YXQgdGhlIG1vbWVudCAqLw0KKw0KKwlzdHJ1Y3QgYmluZGVyX2J1ZmZlciAqYnVmZmVyOw0KKwl1 bnNpZ25lZCBpbnQgICAgY29kZTsNCisJdW5zaWduZWQgaW50ICAgIGZsYWdzOw0KKwlsb25nICAg IHByaW9yaXR5Ow0KKwlsb25nICAgIHNhdmVkX3ByaW9yaXR5Ow0KKwlrdWlkX3QgIHNlbmRlcl9l dWlkOw0KKwlzdHJ1Y3QgbGlzdF9oZWFkIGZkX2ZpeHVwczsNCisJYmluZGVyX3VpbnRwdHJfdCBz ZWN1cml0eV9jdHg7DQorCS8qKg0KKwkgKiBAbG9jazogIHByb3RlY3RzIEBmcm9tLCBAdG9fcHJv YywgYW5kIEB0b190aHJlYWQNCisJICoNCisJICogQGZyb20sIEB0b19wcm9jLCBhbmQgQHRvX3Ro cmVhZCBjYW4gYmUgc2V0IHRvIE5VTEwNCisJICogZHVyaW5nIHRocmVhZCB0ZWFyZG93bg0KKwkg Ki8NCisJc3BpbmxvY2tfdCBsb2NrOw0KK307DQorDQorLyoqDQorICogc3RydWN0IGJpbmRlcl9v YmplY3QgLSB1bmlvbiBvZiBmbGF0IGJpbmRlciBvYmplY3QgdHlwZXMNCisgKiBAaGRyOiAgIGdl bmVyaWMgb2JqZWN0IGhlYWRlcg0KKyAqIEBmYm86ICAgYmluZGVyIG9iamVjdCAobm9kZXMgYW5k IHJlZnMpDQorICogQGZkbzogICBmaWxlIGRlc2NyaXB0b3Igb2JqZWN0DQorICogQGJibzogICBi aW5kZXIgYnVmZmVyIHBvaW50ZXINCisgKiBAZmRhbzogIGZpbGUgZGVzY3JpcHRvciBhcnJheQ0K KyAqDQorICogVXNlZCBmb3IgdHlwZS1pbmRlcGVuZGVudCBvYmplY3QgY29waWVzDQorICovDQor c3RydWN0IGJpbmRlcl9vYmplY3Qgew0KKwl1bmlvbiB7DQorCQlzdHJ1Y3QgYmluZGVyX29iamVj dF9oZWFkZXIgaGRyOw0KKwkJc3RydWN0IGZsYXRfYmluZGVyX29iamVjdCBmYm87DQorCQlzdHJ1 Y3QgYmluZGVyX2ZkX29iamVjdCBmZG87DQorCQlzdHJ1Y3QgYmluZGVyX2J1ZmZlcl9vYmplY3Qg YmJvOw0KKwkJc3RydWN0IGJpbmRlcl9mZF9hcnJheV9vYmplY3QgZmRhbzsNCisJfTsNCit9Ow0K Kw0KIGV4dGVybiBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uX2xvZyBiaW5kZXJfdHJhbnNhY3Rp b25fbG9nOw0KIGV4dGVybiBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uX2xvZyBiaW5kZXJfdHJh bnNhY3Rpb25fbG9nX2ZhaWxlZDsNCiAjZW5kaWYgLyogX0xJTlVYX0JJTkRFUl9JTlRFUk5BTF9I ICovDQotLSANCjEuNy45LjUNCg==