From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: [PATCH 04/11] drm/amdkfd: Add skeleton H/W debugger module support Date: Thu, 21 May 2015 00:29:01 +0300 Message-ID: <1432157348-26686-5-git-send-email-oded.gabbay@gmail.com> References: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by gabe.freedesktop.org (Postfix) with ESMTP id 789A26E6BE for ; Wed, 20 May 2015 14:29:25 -0700 (PDT) Received: by wghq2 with SMTP id q2so66214825wgh.1 for ; Wed, 20 May 2015 14:29:24 -0700 (PDT) In-Reply-To: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, alexdeucher@gmail.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogWWFpciBTaGFjaGFyIDx5YWlyLnNoYWNoYXJAYW1kLmNvbT4KClRoaXMgcGF0Y2ggYWRk cyB0aGUgc2tlbGV0b24gSC9XIGRlYnVnZ2VyIG1vZHVsZSBzdXBwb3J0LiBUaGlzIGNvZGUKZW5h YmxlcyByZWdpc3RyYXRpb24gYW5kIHVucmVnaXN0cmF0aW9uIG9mIGEgc2luZ2xlIEhTQSBwcm9j ZXNzIGF0IGEKdGltZS4KClRoZSBtb2R1bGUgc2F2ZXMgdGhlIHByb2Nlc3MncyBwYXNpZCBhbmQg dXNlIGl0IHRvIHZlcmlmeSB0aGF0IG9ubHkgdGhlCnJlZ2lzdGVyZWQgcHJvY2VzcyBpcyBhbGxv d2VkIHRvIGV4ZWN1dGUgZGVidWdnZXIgb3BlcmF0aW9ucyB0aHJvdWdoIHRoZQprZXJuZWwgZHJp dmVyLgoKU2lnbmVkLW9mZi1ieTogWWFpciBTaGFjaGFyIDx5YWlyLnNoYWNoYXJAYW1kLmNvbT4K U2lnbmVkLW9mZi1ieTogT2RlZCBHYWJiYXkgPG9kZWQuZ2FiYmF5QGdtYWlsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAgMyAr LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ2Rldi5jICAgICAgICAgICAgfCAx NDIgKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ2Rldi5oICAg ICAgICAgICAgfCAxOTMgKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9kYmdtZ3IuYyAgICAgICAgICAgIHwgMTM1ICsrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1ka2ZkL2tmZF9kYmdtZ3IuaCAgICAgICAgICAgIHwgMjg3ICsrKysrKysrKysrKysr KysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMgICAgICAgICAg ICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcG00X2hlYWRlcnNfZGlx LmggICB8IDI5MCArKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k a2ZkL2tmZF9wcml2LmggICAgICAgICAgICAgIHwgICA1ICsKIC4uLi9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5jIHwgICAyICstCiA5IGZpbGVzIGNoYW5nZWQs IDEwNTggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnZGV2LmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnZGV2LmgKIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnbWdyLmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnbWdyLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcG00X2hlYWRlcnNfZGlx LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL01ha2VmaWxlCmluZGV4IDY1MmQyNTQuLjI4NTUxMTUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL01ha2VmaWxlCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL01ha2VmaWxlCkBAIC0xMiw2ICsxMiw3IEBAIGFtZGtm ZC15CTo9IGtmZF9tb2R1bGUubyBrZmRfZGV2aWNlLm8ga2ZkX2NoYXJkZXYubyBrZmRfdG9wb2xv Z3kubyBcCiAJCWtmZF9rZXJuZWxfcXVldWVfdmkubyBrZmRfcGFja2V0X21hbmFnZXIubyBcCiAJ CWtmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIubyBrZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIubyBc CiAJCWtmZF9kZXZpY2VfcXVldWVfbWFuYWdlcl9jaWsubyBrZmRfZGV2aWNlX3F1ZXVlX21hbmFn ZXJfdmkubyBcCi0JCWtmZF9pbnRlcnJ1cHQubyBrZmRfZXZlbnRzLm8gY2lrX2V2ZW50X2ludGVy cnVwdC5vCisJCWtmZF9pbnRlcnJ1cHQubyBrZmRfZXZlbnRzLm8gY2lrX2V2ZW50X2ludGVycnVw dC5vIFwKKwkJa2ZkX2RiZ2Rldi5vIGtmZF9kYmdtZ3IubwogCiBvYmotJChDT05GSUdfSFNBX0FN RCkJKz0gYW1ka2ZkLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9kYmdkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdkZXYuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWQ0YTgzCi0tLSAvZGV2L251bGwKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ2Rldi5jCkBAIC0wLDAgKzEsMTQy IEBACisvKgorICogQ29weXJpZ2h0IDIwMTQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgor ICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBp biB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt aXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJl IGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9W SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisg KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBI T0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S CisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4g VEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNs dWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9sb2cyLmg+CisjaW5jbHVkZSA8 bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgv bXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKworI2luY2x1ZGUgImtmZF9wbTRf aGVhZGVycy5oIgorI2luY2x1ZGUgImtmZF9wbTRfaGVhZGVyc19kaXEuaCIKKyNpbmNsdWRlICJr ZmRfa2VybmVsX3F1ZXVlLmgiCisjaW5jbHVkZSAia2ZkX3ByaXYuaCIKKyNpbmNsdWRlICJrZmRf cG00X29wY29kZXMuaCIKKyNpbmNsdWRlICJjaWtfcmVncy5oIgorI2luY2x1ZGUgImtmZF9kYmdt Z3IuaCIKKyNpbmNsdWRlICJrZmRfZGJnZGV2LmgiCisjaW5jbHVkZSAia2ZkX2RldmljZV9xdWV1 ZV9tYW5hZ2VyLmgiCisjaW5jbHVkZSAiLi4vLi4vcmFkZW9uL2Npa19yZWcuaCIKKworc3RhdGlj IHZvaWQgZGJnZGV2X2FkZHJlc3Nfd2F0Y2hfZGlzYWJsZV9ub2RpcShzdHJ1Y3Qga2ZkX2RldiAq ZGV2KQoreworCUJVR19PTighZGV2IHx8ICFkZXYtPmtmZDJrZ2QpOworCisJZGV2LT5rZmQya2dk LT5hZGRyZXNzX3dhdGNoX2Rpc2FibGUoZGV2LT5rZ2QpOworfQorCitzdGF0aWMgaW50IGRiZ2Rl dl9yZWdpc3Rlcl9ub2RpcShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2KQoreworCUJVR19PTigh ZGJnZGV2KTsKKworCS8qCisJICogbm8gYWN0aW9uIGlzIG5lZWRlZCBpbiB0aGlzIGNhc2UsCisJ ICoganVzdCBtYWtlIHN1cmUgZGlxIHdpbGwgbm90IGJlIHVzZWQKKwkgKi8KKworCWRiZ2Rldi0+ a3EgPSBOVUxMOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGJnZGV2X3JlZ2lzdGVy X2RpcShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2KQoreworCXN0cnVjdCBxdWV1ZV9wcm9wZXJ0 aWVzIHByb3BlcnRpZXM7CisJdW5zaWduZWQgaW50IHFpZDsKKwlzdHJ1Y3Qga2VybmVsX3F1ZXVl ICprcSA9IE5VTEw7CisJaW50IHN0YXR1czsKKworCUJVR19PTighZGJnZGV2IHx8ICFkYmdkZXYt PnBxbSB8fCAhZGJnZGV2LT5kZXYpOworCisJc3RhdHVzID0gcHFtX2NyZWF0ZV9xdWV1ZShkYmdk ZXYtPnBxbSwgZGJnZGV2LT5kZXYsIE5VTEwsCisJCQkJJnByb3BlcnRpZXMsIDAsIEtGRF9RVUVV RV9UWVBFX0RJUSwKKwkJCQkmcWlkKTsKKworCWlmIChzdGF0dXMpIHsKKwkJcHJfZXJyKCJhbWRr ZmQ6IEZhaWxlZCB0byBjcmVhdGUgRElRXG4iKTsKKwkJcmV0dXJuIHN0YXR1czsKKwl9CisKKwlw cl9kZWJ1ZygiRElRIENyZWF0ZWQgd2l0aCBxdWV1ZSBpZDogJWRcbiIsIHFpZCk7CisKKwlrcSA9 IHBxbV9nZXRfa2VybmVsX3F1ZXVlKGRiZ2Rldi0+cHFtLCBxaWQpOworCisJaWYgKGtxID09IE5V TEwpIHsKKwkJcHJfZXJyKCJhbWRrZmQ6IEVycm9yIGdldHRpbmcgRElRXG4iKTsKKwkJcHFtX2Rl c3Ryb3lfcXVldWUoZGJnZGV2LT5wcW0sIHFpZCk7CisJCXJldHVybiAtRUZBVUxUOworCX0KKwor CWRiZ2Rldi0+a3EgPSBrcTsKKworCXJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyBpbnQgZGJn ZGV2X3VucmVnaXN0ZXJfbm9kaXEoc3RydWN0IGtmZF9kYmdkZXYgKmRiZ2RldikKK3sKKwlCVUdf T04oIWRiZ2RldiB8fCAhZGJnZGV2LT5kZXYpOworCisJLyogZGlzYWJsZSB3YXRjaCBhZGRyZXNz ICovCisJZGJnZGV2X2FkZHJlc3Nfd2F0Y2hfZGlzYWJsZV9ub2RpcShkYmdkZXYtPmRldik7CisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGJnZGV2X3VucmVnaXN0ZXJfZGlxKHN0cnVjdCBr ZmRfZGJnZGV2ICpkYmdkZXYpCit7CisJLyogdG9kbyAtIGRpc2FibGUgYWRkcmVzcyB3YXRjaCAq LworCWludCBzdGF0dXM7CisKKwlCVUdfT04oIWRiZ2RldiB8fCAhZGJnZGV2LT5wcW0gfHwgIWRi Z2Rldi0+a3EpOworCisJc3RhdHVzID0gcHFtX2Rlc3Ryb3lfcXVldWUoZGJnZGV2LT5wcW0sCisJ CQlkYmdkZXYtPmtxLT5xdWV1ZS0+cHJvcGVydGllcy5xdWV1ZV9pZCk7CisJZGJnZGV2LT5rcSA9 IE5VTEw7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCit2b2lkIGtmZF9kYmdkZXZfaW5pdChzdHJ1 Y3Qga2ZkX2RiZ2RldiAqcGRiZ2Rldiwgc3RydWN0IGtmZF9kZXYgKnBkZXYsCisJCQllbnVtIERC R0RFVl9UWVBFIHR5cGUpCit7CisJQlVHX09OKCFwZGJnZGV2IHx8ICFwZGV2KTsKKworCXBkYmdk ZXYtPmRldiA9IHBkZXY7CisJcGRiZ2Rldi0+a3EgPSBOVUxMOworCXBkYmdkZXYtPnR5cGUgPSB0 eXBlOworCXBkYmdkZXYtPnBxbSA9IE5VTEw7CisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIERC R0RFVl9UWVBFX05PRElROgorCQlwZGJnZGV2LT5kYmdkZXZfcmVnaXN0ZXIgPSBkYmdkZXZfcmVn aXN0ZXJfbm9kaXE7CisJCXBkYmdkZXYtPmRiZ2Rldl91bnJlZ2lzdGVyID0gZGJnZGV2X3VucmVn aXN0ZXJfbm9kaXE7CisJCWJyZWFrOworCWNhc2UgREJHREVWX1RZUEVfRElROgorCWRlZmF1bHQ6 CisJCXBkYmdkZXYtPmRiZ2Rldl9yZWdpc3RlciA9IGRiZ2Rldl9yZWdpc3Rlcl9kaXE7CisJCXBk YmdkZXYtPmRiZ2Rldl91bnJlZ2lzdGVyID0gZGJnZGV2X3VucmVnaXN0ZXJfZGlxOworCQlicmVh azsKKwl9CisKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9k YmdkZXYuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdkZXYuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjBkZDVhCi0tLSAvZGV2L251bGwKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ2Rldi5oCkBAIC0wLDAgKzEsMTkzIEBA CisvKgorICogQ29weXJpZ2h0IDIwMTQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoK KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh dGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlz IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xE RVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisg KiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhF IFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgS0ZEX0RCR0RFVl9IXworI2RlZmluZSBLRkRfREJH REVWX0hfCisKK2VudW0geworCVNRX0NNRF9WTUlEX09GRlNFVCA9IDI4LAorCUFERFJFU1NfV0FU Q0hfQ05UTF9PRkZTRVQgPSAyNAorfTsKKworZW51bSB7CisJUFJJVl9RVUVVRV9TWU5DX1RJTUVf TVMgPSAyMDAKK307CisKKy8qIENPTlRFWFQgcmVnIHNwYWNlIGRlZmluaXRpb24gKi8KK2VudW0g eworCUNPTlRFWFRfUkVHX0JBU0UgPSAweEEwMDAsCisJQ09OVEVYVF9SRUdfRU5EID0gMHhBNDAw LAorCUNPTlRFWFRfUkVHX1NJWkUgPSBDT05URVhUX1JFR19FTkQgLSBDT05URVhUX1JFR19CQVNF Cit9OworCisvKiBVU0VSIENPTkZJRyByZWcgc3BhY2UgZGVmaW5pdGlvbiAqLworZW51bSB7CisJ VVNFUkNPTkZJR19SRUdfQkFTRSA9IDB4QzAwMCwKKwlVU0VSQ09ORklHX1JFR19FTkQgPSAweDEw MDAwLAorCVVTRVJDT05GSUdfUkVHX1NJWkUgPSBVU0VSQ09ORklHX1JFR19FTkQgLSBVU0VSQ09O RklHX1JFR19CQVNFCit9OworCisvKiBDT05GSUcgcmVnIHNwYWNlIGRlZmluaXRpb24gKi8KK2Vu dW0geworCUNPTkZJR19SRUdfQkFTRSA9IDB4MjAwMCwJLyogaW4gZHdvcmRzICovCisJQ09ORklH X1JFR19FTkQgPSAweDJCMDAsCisJQ09ORklHX1JFR19TSVpFID0gQ09ORklHX1JFR19FTkQgLSBD T05GSUdfUkVHX0JBU0UKK307CisKKy8qIFNIIHJlZyBzcGFjZSBkZWZpbml0aW9uICovCitlbnVt IHsKKwlTSF9SRUdfQkFTRSA9IDB4MkMwMCwKKwlTSF9SRUdfRU5EID0gMHgzMDAwLAorCVNIX1JF R19TSVpFID0gU0hfUkVHX0VORCAtIFNIX1JFR19CQVNFCit9OworCitlbnVtIFNRX0lORF9DTURf Q01EIHsKKwlTUV9JTkRfQ01EX0NNRF9OVUxMID0gMHgwMDAwMDAwMCwKKwlTUV9JTkRfQ01EX0NN RF9IQUxUID0gMHgwMDAwMDAwMSwKKwlTUV9JTkRfQ01EX0NNRF9SRVNVTUUgPSAweDAwMDAwMDAy LAorCVNRX0lORF9DTURfQ01EX0tJTEwgPSAweDAwMDAwMDAzLAorCVNRX0lORF9DTURfQ01EX0RF QlVHID0gMHgwMDAwMDAwNCwKKwlTUV9JTkRfQ01EX0NNRF9UUkFQID0gMHgwMDAwMDAwNSwKK307 CisKK2VudW0gU1FfSU5EX0NNRF9NT0RFIHsKKwlTUV9JTkRfQ01EX01PREVfU0lOR0xFID0gMHgw MDAwMDAwMCwKKwlTUV9JTkRfQ01EX01PREVfQlJPQURDQVNUID0gMHgwMDAwMDAwMSwKKwlTUV9J TkRfQ01EX01PREVfQlJPQURDQVNUX1FVRVVFID0gMHgwMDAwMDAwMiwKKwlTUV9JTkRfQ01EX01P REVfQlJPQURDQVNUX1BJUEUgPSAweDAwMDAwMDAzLAorCVNRX0lORF9DTURfTU9ERV9CUk9BRENB U1RfTUUgPSAweDAwMDAwMDA0LAorfTsKKwordW5pb24gU1FfSU5EX0lOREVYX0JJVFMgeworCXN0 cnVjdCB7CisJCXVpbnQzMl90IHdhdmVfaWQ6NDsKKwkJdWludDMyX3Qgc2ltZF9pZDoyOworCQl1 aW50MzJfdCB0aHJlYWRfaWQ6NjsKKwkJIHVpbnQzMl90OjE7CisJCXVpbnQzMl90IGZvcmNlX3Jl YWQ6MTsKKwkJdWludDMyX3QgcmVhZF90aW1lb3V0OjE7CisJCXVpbnQzMl90IHVuaW5kZXhlZDox OworCQl1aW50MzJfdCBpbmRleDoxNjsKKworCX0gYml0ZmllbGRzLCBiaXRzOworCXVpbnQzMl90 IHUzMkFsbDsKKwlzaWduZWQgaW50IGkzMkFsbDsKKwlmbG9hdCBmMzJBbGw7Cit9OworCit1bmlv biBTUV9JTkRfQ01EX0JJVFMgeworCXN0cnVjdCB7CisJCXVpbnQzMl90IGRhdGE6MzI7CisJfSBi aXRmaWVsZHMsIGJpdHM7CisJdWludDMyX3QgdTMyQWxsOworCXNpZ25lZCBpbnQgaTMyQWxsOwor CWZsb2F0IGYzMkFsbDsKK307CisKK3VuaW9uIFNRX0NNRF9CSVRTIHsKKwlzdHJ1Y3QgeworCQl1 aW50MzJfdCBjbWQ6MzsKKwkJIHVpbnQzMl90OjE7CisJCXVpbnQzMl90IG1vZGU6MzsKKwkJdWlu dDMyX3QgY2hlY2tfdm1pZDoxOworCQl1aW50MzJfdCB0cmFwX2lkOjM7CisJCSB1aW50MzJfdDo1 OworCQl1aW50MzJfdCB3YXZlX2lkOjQ7CisJCXVpbnQzMl90IHNpbWRfaWQ6MjsKKwkJIHVpbnQz Ml90OjI7CisJCXVpbnQzMl90IHF1ZXVlX2lkOjM7CisJCSB1aW50MzJfdDoxOworCQl1aW50MzJf dCB2bV9pZDo0OworCX0gYml0ZmllbGRzLCBiaXRzOworCXVpbnQzMl90IHUzMkFsbDsKKwlzaWdu ZWQgaW50IGkzMkFsbDsKKwlmbG9hdCBmMzJBbGw7Cit9OworCit1bmlvbiBTUV9JTkRfREFUQV9C SVRTIHsKKwlzdHJ1Y3QgeworCQl1aW50MzJfdCBkYXRhOjMyOworCX0gYml0ZmllbGRzLCBiaXRz OworCXVpbnQzMl90IHUzMkFsbDsKKwlzaWduZWQgaW50IGkzMkFsbDsKKwlmbG9hdCBmMzJBbGw7 Cit9OworCit1bmlvbiBHUkJNX0dGWF9JTkRFWF9CSVRTIHsKKwlzdHJ1Y3QgeworCQl1aW50MzJf dCBpbnN0YW5jZV9pbmRleDo4OworCQl1aW50MzJfdCBzaF9pbmRleDo4OworCQl1aW50MzJfdCBz ZV9pbmRleDo4OworCQkgdWludDMyX3Q6NTsKKwkJdWludDMyX3Qgc2hfYnJvYWRjYXN0X3dyaXRl czoxOworCQl1aW50MzJfdCBpbnN0YW5jZV9icm9hZGNhc3Rfd3JpdGVzOjE7CisJCXVpbnQzMl90 IHNlX2Jyb2FkY2FzdF93cml0ZXM6MTsKKwl9IGJpdGZpZWxkcywgYml0czsKKwl1aW50MzJfdCB1 MzJBbGw7CisJc2lnbmVkIGludCBpMzJBbGw7CisJZmxvYXQgZjMyQWxsOworfTsKKwordW5pb24g VENQX1dBVENIX0FERFJfSF9CSVRTIHsKKwlzdHJ1Y3QgeworCQl1aW50MzJfdCBhZGRyOjE2Owor CQkgdWludDMyX3Q6MTY7CisKKwl9IGJpdGZpZWxkcywgYml0czsKKwl1aW50MzJfdCB1MzJBbGw7 CisJc2lnbmVkIGludCBpMzJBbGw7CisJZmxvYXQgZjMyQWxsOworfTsKKwordW5pb24gVENQX1dB VENIX0FERFJfTF9CSVRTIHsKKwlzdHJ1Y3QgeworCQl1aW50MzJfdDo2OworCQl1aW50MzJfdCBh ZGRyOjI2OworCX0gYml0ZmllbGRzLCBiaXRzOworCXVpbnQzMl90IHUzMkFsbDsKKwlzaWduZWQg aW50IGkzMkFsbDsKKwlmbG9hdCBmMzJBbGw7Cit9OworCitlbnVtIHsKKwlRVUVVRVNUQVRFX19J TlZBTElEID0gMCwgLyogc28gYnkgZGVmYXVsdCB3ZSdsbCBnZXQgaW52YWxpZCBzdGF0ZSAqLwor CVFVRVVFU1RBVEVfX0FDVElWRV9DT01QTEVUSU9OX1BFTkRJTkcsCisJUVVFVUVTVEFURV9fQUNU SVZFCit9OworCit1bmlvbiBVTEFSR0VfSU5URUdFUiB7CisJc3RydWN0IHsKKwkJdWludDMyX3Qg bG93X3BhcnQ7CisJCXVpbnQzMl90IGhpZ2hfcGFydDsKKwl9IHU7CisJdW5zaWduZWQgbG9uZyBs b25nIHF1YWRfcGFydDsKK307CisKKworI2RlZmluZSBLRkRfQ0lLX1ZNSURfU1RBUlRfT0ZGU0VU ICg4KQorI2RlZmluZSBLRkRfQ0lLX1ZNSURfRU5EX09GRlNFVCAoS0ZEX0NJS19WTUlEX1NUQVJU X09GRlNFVCArICg4KSkKKworCit2b2lkIGtmZF9kYmdkZXZfaW5pdChzdHJ1Y3Qga2ZkX2RiZ2Rl diAqcGRiZ2Rldiwgc3RydWN0IGtmZF9kZXYgKnBkZXYsCisJCQllbnVtIERCR0RFVl9UWVBFIHR5 cGUpOworCisjZW5kaWYJLyogS0ZEX0RCR0RFVl9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX2RiZ21nci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4YzQ1 YTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJn bWdyLmMKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNCBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9v ciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxs IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICog VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxM CisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisg KiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaW5jbHVkZSA8bGlu dXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9s b2cyLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+ CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisKKyNpbmNsdWRlICJrZmRfcHJpdi5oIgorI2lu Y2x1ZGUgImNpa19yZWdzLmgiCisjaW5jbHVkZSAia2ZkX3BtNF9oZWFkZXJzLmgiCisjaW5jbHVk ZSAia2ZkX3BtNF9oZWFkZXJzX2RpcS5oIgorI2luY2x1ZGUgImtmZF9kYmdtZ3IuaCIKKyNpbmNs dWRlICJrZmRfZGJnZGV2LmgiCisKK3N0YXRpYyBERUZJTkVfTVVURVgoa2ZkX2RiZ21ncl9tdXRl eCk7CisKK3N0cnVjdCBtdXRleCAqZ2V0X2RiZ21ncl9tdXRleCh2b2lkKQoreworCXJldHVybiAm a2ZkX2RiZ21ncl9tdXRleDsKK30KKworCitzdGF0aWMgdm9pZCBrZmRfZGJnbWdyX3VuaW5pdGlh bGl6ZShzdHJ1Y3Qga2ZkX2RiZ21nciAqcG1ncikKK3sKKwlCVUdfT04oIXBtZ3IpOworCisJa2Zy ZWUocG1nci0+ZGJnZGV2KTsKKworCXBtZ3ItPmRiZ2RldiA9IE5VTEw7CisJcG1nci0+cGFzaWQg PSAwOworCXBtZ3ItPmRldiA9IE5VTEw7Cit9CisKK3ZvaWQga2ZkX2RiZ21ncl9kZXN0cm95KHN0 cnVjdCBrZmRfZGJnbWdyICpwbWdyKQoreworCWlmIChwbWdyICE9IE5VTEwpIHsKKwkJa2ZkX2Ri Z21ncl91bmluaXRpYWxpemUocG1ncik7CisJCWtmcmVlKHBtZ3IpOworCX0KK30KKworYm9vbCBr ZmRfZGJnbWdyX2NyZWF0ZShzdHJ1Y3Qga2ZkX2RiZ21nciAqKnBwbWdyLCBzdHJ1Y3Qga2ZkX2Rl diAqcGRldikKK3sKKwllbnVtIERCR0RFVl9UWVBFIHR5cGUgPSBEQkdERVZfVFlQRV9ESVE7CisJ c3RydWN0IGtmZF9kYmdtZ3IgKm5ld19idWZmOworCisJQlVHX09OKHBkZXYgPT0gTlVMTCk7CisJ QlVHX09OKCFwZGV2LT5pbml0X2NvbXBsZXRlKTsKKworCW5ld19idWZmID0ga2ZkX2FsbG9jX3N0 cnVjdChuZXdfYnVmZik7CisJaWYgKCFuZXdfYnVmZikgeworCQlwcl9lcnIoImFtZGtmZDogRmFp bGVkIHRvIGFsbG9jYXRlIGRiZ21nciBpbnN0YW5jZVxuIik7CisJCXJldHVybiBmYWxzZTsKKwl9 CisKKwluZXdfYnVmZi0+cGFzaWQgPSAwOworCW5ld19idWZmLT5kZXYgPSBwZGV2OworCW5ld19i dWZmLT5kYmdkZXYgPSBrZmRfYWxsb2Nfc3RydWN0KG5ld19idWZmLT5kYmdkZXYpOworCWlmICgh bmV3X2J1ZmYtPmRiZ2RldikgeworCQlwcl9lcnIoImFtZGtmZDogRmFpbGVkIHRvIGFsbG9jYXRl IGRiZ2RldiBpbnN0YW5jZVxuIik7CisJCWtmcmVlKG5ld19idWZmKTsKKwkJcmV0dXJuIGZhbHNl OworCX0KKworCS8qIGdldCBhY3R1YWwgdHlwZSBvZiBEQkdEZXZpY2UgY3BzY2ggb3Igbm90ICov CisJaWYgKHNjaGVkX3BvbGljeSA9PSBLRkRfU0NIRURfUE9MSUNZX05PX0hXUykKKwkJdHlwZSA9 IERCR0RFVl9UWVBFX05PRElROworCisJa2ZkX2RiZ2Rldl9pbml0KG5ld19idWZmLT5kYmdkZXYs IHBkZXYsIHR5cGUpOworCSpwcG1nciA9IG5ld19idWZmOworCisJcmV0dXJuIHRydWU7Cit9CisK K2xvbmcga2ZkX2RiZ21ncl9yZWdpc3RlcihzdHJ1Y3Qga2ZkX2RiZ21nciAqcG1nciwgc3RydWN0 IGtmZF9wcm9jZXNzICpwKQoreworCUJVR19PTighcCB8fCAhcG1nciB8fCAhcG1nci0+ZGJnZGV2 KTsKKworCWlmIChwbWdyLT5wYXNpZCAhPSAwKSB7CisJCXByX2RlYnVnKCJIL1cgZGVidWdnZXIg aXMgYWxyZWFkeSBhY3RpdmUgdXNpbmcgcGFzaWQgJWRcbiIsCisJCQkJcG1nci0+cGFzaWQpOwor CQlyZXR1cm4gLUVCVVNZOworCX0KKworCS8qIHJlbWVtYmVyIHBhc2lkICovCisJcG1nci0+cGFz aWQgPSBwLT5wYXNpZDsKKworCS8qIHByb3ZpZGUgdGhlIHBxbSBmb3IgZGlxIGdlbmVyYXRpb24g Ki8KKwlwbWdyLT5kYmdkZXYtPnBxbSA9ICZwLT5wcW07CisKKwkvKiBhY3RpdmF0ZSB0aGUgYWN0 dWFsIHJlZ2lzdGVyaW5nICovCisJcG1nci0+ZGJnZGV2LT5kYmdkZXZfcmVnaXN0ZXIocG1nci0+ ZGJnZGV2KTsKKworCXJldHVybiAwOworfQorCitsb25nIGtmZF9kYmdtZ3JfdW5yZWdpc3Rlcihz dHJ1Y3Qga2ZkX2RiZ21nciAqcG1nciwgc3RydWN0IGtmZF9wcm9jZXNzICpwKQoreworCUJVR19P TighcCB8fCAhcG1nciB8fCAhcG1nci0+ZGJnZGV2KTsKKworCS8qIElzIHRoZSByZXF1ZXN0cyBj b21pbmcgZnJvbSB0aGUgYWxyZWFkeSByZWdpc3RlcmVkIHByb2Nlc3M/ICovCisJaWYgKHBtZ3It PnBhc2lkICE9IHAtPnBhc2lkKSB7CisJCXByX2RlYnVnKCJIL1cgZGVidWdnZXIgaXMgbm90IHJl Z2lzdGVyZWQgYnkgY2FsbGluZyBwYXNpZCAlZFxuIiwKKwkJCQlwLT5wYXNpZCk7CisJCXJldHVy biAtRUlOVkFMOworCX0KKworCXBtZ3ItPmRiZ2Rldi0+ZGJnZGV2X3VucmVnaXN0ZXIocG1nci0+ ZGJnZGV2KTsKKworCXBtZ3ItPnBhc2lkID0gMDsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21nci5oIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21nci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjRlYTM2MWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfZGJnbWdyLmgKQEAgLTAsMCArMSwyODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAx NCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRl ZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdh cmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS UkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5P IEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUg TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJ U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisK KyNpZm5kZWYgS0ZEX0RCR01HUl9IXworI2RlZmluZSBLRkRfREJHTUdSX0hfCisKKyNpbmNsdWRl ICJrZmRfcHJpdi5oIgorCisvKiBtdXN0IGFsaWduIHdpdGggaHNha210dHlwZXMgZGVmaW5pdGlv biAqLworI3ByYWdtYSBwYWNrKHB1c2gsIDQpCisKK2VudW0gSFNBX0RCR19XQVZFT1AgeworCUhT QV9EQkdfV0FWRU9QX0hBTFQgPSAxLAkvKiBIYWx0cyBhIHdhdmVmcm9udAkJKi8KKwlIU0FfREJH X1dBVkVPUF9SRVNVTUUgPSAyLAkvKiBSZXN1bWVzIGEgd2F2ZWZyb250CQkqLworCUhTQV9EQkdf V0FWRU9QX0tJTEwgPSAzLAkvKiBLaWxscyBhIHdhdmVmcm9udAkJKi8KKwlIU0FfREJHX1dBVkVP UF9ERUJVRyA9IDQsCS8qIENhdXNlcyB3YXZlZnJvbnQgdG8gZW50ZXIKKwkJCQkJCWRlYnVnIG1v ZGUJCSovCisJSFNBX0RCR19XQVZFT1BfVFJBUCA9IDUsCS8qIENhdXNlcyB3YXZlZnJvbnQgdG8g dGFrZQorCQkJCQkJYSB0cmFwCQkJKi8KKwlIU0FfREJHX05VTV9XQVZFT1AgPSA1LAorCUhTQV9E QkdfTUFYX1dBVkVPUCA9IDB4RkZGRkZGRkYKK307CisKK2VudW0gSFNBX0RCR19XQVZFTU9ERSB7 CisJLyogc2VuZCBjb21tYW5kIHRvIGEgc2luZ2xlIHdhdmUgKi8KKwlIU0FfREJHX1dBVkVNT0RF X1NJTkdMRSA9IDAsCisJLyoKKwkgKiBCcm9hZGNhc3QgdG8gYWxsIHdhdmVmcm9udHMgb2YgYWxs IHByb2Nlc3NlcyBpcyBub3QKKwkgKiBzdXBwb3J0ZWQgZm9yIEhTQSB1c2VyIG1vZGUKKwkgKi8K KworCS8qIHNlbmQgdG8gd2F2ZXMgd2l0aGluIGN1cnJlbnQgcHJvY2VzcyAqLworCUhTQV9EQkdf V0FWRU1PREVfQlJPQURDQVNUX1BST0NFU1MgPSAyLAorCS8qIHNlbmQgdG8gd2F2ZXMgd2l0aGlu IGN1cnJlbnQgcHJvY2VzcyBvbiBDVSAgKi8KKwlIU0FfREJHX1dBVkVNT0RFX0JST0FEQ0FTVF9Q Uk9DRVNTX0NVID0gMywKKwlIU0FfREJHX05VTV9XQVZFTU9ERSA9IDMsCisJSFNBX0RCR19NQVhf V0FWRU1PREUgPSAweEZGRkZGRkZGCit9OworCitlbnVtIEhTQV9EQkdfV0FWRU1TR19UWVBFIHsK KwlIU0FfREJHX1dBVkVNU0dfQVVUTyA9IDAsCisJSFNBX0RCR19XQVZFTVNHX1VTRVIgPSAxLAor CUhTQV9EQkdfV0FWRU1TR19FUlJPUiA9IDIsCisJSFNBX0RCR19OVU1fV0FWRU1TRywKKwlIU0Ff REJHX01BWF9XQVZFTVNHID0gMHhGRkZGRkZGRgorfTsKKworZW51bSBIU0FfREJHX1dBVENIX01P REUgeworCUhTQV9EQkdfV0FUQ0hfUkVBRCA9IDAsCQkvKiBSZWFkIG9wZXJhdGlvbnMgb25seSAq LworCUhTQV9EQkdfV0FUQ0hfTk9OUkVBRCA9IDEsCS8qIFdyaXRlIG9yIEF0b21pYyBvcGVyYXRp b25zIG9ubHkgKi8KKwlIU0FfREJHX1dBVENIX0FUT01JQyA9IDIsCS8qIEF0b21pYyBPcGVyYXRp b25zIG9ubHkgKi8KKwlIU0FfREJHX1dBVENIX0FMTCA9IDMsCQkvKiBSZWFkLCBXcml0ZSBvciBB dG9taWMgb3BlcmF0aW9ucyAqLworCUhTQV9EQkdfV0FUQ0hfTlVNLAorCUhTQV9EQkdfV0FUQ0hf U0laRSA9IDB4RkZGRkZGRkYKK307CisKKy8qIFRoaXMgc3RydWN0dXJlIGlzIGhhcmR3YXJlIHNw ZWNpZmljIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgKi8KK3N0cnVjdCBIc2FEYmdXYXZl TXNnQU1ER2VuMiB7CisJdW5pb24geworCQlzdHJ1Y3QgdWkzMiB7CisJCQl1aW50MzJfdCBVc2Vy RGF0YTo4OwkvKiB1c2VyIGRhdGEgKi8KKwkJCXVpbnQzMl90IFNoYWRlckFycmF5OjE7CS8qIFNo YWRlciBhcnJheSAqLworCQkJdWludDMyX3QgUHJpdjoxOwkvKiBQcml2aWxlZ2VkICovCisJCQl1 aW50MzJfdCBSZXNlcnZlZDA6NDsJLyogVGhpcyBmaWVsZCBpcyByZXNlcnZlZCwKKwkJCQkJCSAg IHNob3VsZCBiZSAwICovCisJCQl1aW50MzJfdCBXYXZlSWQ6NDsJLyogd2F2ZSBpZCAqLworCQkJ dWludDMyX3QgU0lNRDoyOwkvKiBTSU1EIGlkICovCisJCQl1aW50MzJfdCBIU0FDVTo0OwkvKiBD b21wdXRlIHVuaXQgKi8KKwkJCXVpbnQzMl90IFNoYWRlckVuZ2luZToyOy8qIFNoYWRlciBlbmdp bmUgKi8KKwkJCXVpbnQzMl90IE1lc3NhZ2VUeXBlOjI7CS8qIHNlZSBIU0FfREJHX1dBVkVNU0df VFlQRSAqLworCQkJdWludDMyX3QgUmVzZXJ2ZWQxOjQ7CS8qIFRoaXMgZmllbGQgaXMgcmVzZXJ2 ZWQsCisJCQkJCQkgICBzaG91bGQgYmUgMCAqLworCQl9IHVpMzI7CisJCXVpbnQzMl90IFZhbHVl OworCX07CisJdWludDMyX3QgUmVzZXJ2ZWQyOworfTsKKwordW5pb24gSHNhRGJnV2F2ZU1lc3Nh Z2VBTUQgeworCXN0cnVjdCBIc2FEYmdXYXZlTXNnQU1ER2VuMiBXYXZlTXNnSW5mb0dlbjI7CisJ LyogZm9yIGZ1dHVyZSBIc2FEYmdXYXZlTXNnQU1ER2VuMzsgKi8KK307CisKK3N0cnVjdCBIc2FE YmdXYXZlTWVzc2FnZSB7CisJdm9pZCAqTWVtb3J5VkE7CQkvKiBwdHIgdG8gYXNzb2NpYXRlZCBo b3N0LWFjY2Vzc2libGUgZGF0YSAqLworCXVuaW9uIEhzYURiZ1dhdmVNZXNzYWdlQU1EIERiZ1dh dmVNc2c7Cit9OworCisvKgorICogVE9ETzogVGhpcyBkZWZpbml0aW9ucyB0byBiZSBNT1ZFRCB0 byBrZmRfZXZlbnQsIG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQuCisgKgorICogSFNBIHN5bmMgcHJp bWl0aXZlLCBFdmVudCBhbmQgSFcgRXhjZXB0aW9uIG5vdGlmaWNhdGlvbiBBUEkgZGVmaW5pdGlv bnMuCisgKiBUaGUgQVBJIGZ1bmN0aW9ucyBhbGxvdyB0aGUgcnVudGltZSB0byBkZWZpbmUgYSBz by1jYWxsZWQgc3luYy1wcmltaXRpdmUsCisgKiBhIFNXIG9iamVjdCBjb21iaW5pbmcgYSB1c2Vy LW1vZGUgcHJvdmlkZWQgInN5bmN2YXIiIGFuZCBhIHNjaGVkdWxlciBldmVudAorICogdGhhdCBj YW4gYmUgc2lnbmFsZWQgdGhyb3VnaCBhIGRlZmluZWQgR1BVIGludGVycnVwdC4gQSBzeW5jdmFy IGlzCisgKiBhIHByb2Nlc3MgdmlydHVhbCBtZW1vcnkgbG9jYXRpb24gb2YgYSBjZXJ0YWluIHNp emUgdGhhdCBjYW4gYmUgYWNjZXNzZWQKKyAqIGJ5IENQVSBhbmQgR1BVIHNoYWRlciBjb2RlIHdp dGhpbiB0aGUgcHJvY2VzcyB0byBzZXQgYW5kIHF1ZXJ5IHRoZSBjb250ZW50CisgKiB3aXRoaW4g dGhhdCBtZW1vcnkuIFRoZSBkZWZpbml0aW9uIG9mIHRoZSBjb250ZW50IGlzIGRldGVybWluZWQg YnkgdGhlIEhTQQorICogcnVudGltZSBhbmQgcG90ZW50aWFsbHkgR1BVIHNoYWRlciBjb2RlIGlu dGVyZmFjaW5nIHdpdGggdGhlIEhTQSBydW50aW1lLgorICogVGhlIHN5bmN2YXIgdmFsdWVzIG1h eSBiZSBjb21tb25seSB3cml0dGVuIHRocm91Z2ggYW4gUE00IFdSSVRFX0RBVEEgcGFja2V0Cisg KiBpbiB0aGUgdXNlciBtb2RlIGluc3RydWN0aW9uIHN0cmVhbS4gVGhlIE9TIHNjaGVkdWxlciBl dmVudCBpcyB0eXBpY2FsbHkKKyAqIGFzc29jaWF0ZWQgYW5kIHNpZ25hbGVkIGJ5IGFuIGludGVy cnVwdCBpc3N1ZWQgYnkgdGhlIEdQVSwgYnV0IG90aGVyIEhTQQorICogc3lzdGVtIGludGVycnVw dCBjb25kaXRpb25zIGZyb20gb3RoZXIgSFcgKGUuZy4gSU9NTVV2MikgbWF5IGJlIHN1cmZhY2Vk CisgKiBieSB0aGUgS0ZEIGJ5IHRoaXMgbWVjaGFuaXNtLCB0b28uICovCisKKy8qIHRoZXNlIGFy ZSB0aGUgbmV3IGRlZmluaXRpb25zIGZvciBldmVudHMgKi8KK2VudW0gSFNBX0VWRU5UVFlQRSB7 CisJSFNBX0VWRU5UVFlQRV9TSUdOQUwgPSAwLAkvKiB1c2VyLW1vZGUgZ2VuZXJhdGVkIEdQVSBz aWduYWwgKi8KKwlIU0FfRVZFTlRUWVBFX05PREVDSEFOR0UgPSAxLAkvKiBIU0Egbm9kZSBjaGFu Z2UgKGF0dGFjaC9kZXRhY2gpICovCisJSFNBX0VWRU5UVFlQRV9ERVZJQ0VTVEFURUNIQU5HRSA9 IDIsCS8qIEhTQSBkZXZpY2Ugc3RhdGUgY2hhbmdlCisJCQkJCQkgICAoc3RhcnQvc3RvcCkgKi8K KwlIU0FfRVZFTlRUWVBFX0hXX0VYQ0VQVElPTiA9IDMsCS8qIEdQVSBzaGFkZXIgZXhjZXB0aW9u IGV2ZW50ICovCisJSFNBX0VWRU5UVFlQRV9TWVNURU1fRVZFTlQgPSA0LAkvKiBHUFUgU1lTQ0FM TCB3aXRoIHBhcmFtZXRlciBpbmZvICovCisJSFNBX0VWRU5UVFlQRV9ERUJVR19FVkVOVCA9IDUs CS8qIEdQVSBzaWduYWwgZm9yIGRlYnVnZ2luZyAqLworCUhTQV9FVkVOVFRZUEVfUFJPRklMRV9F VkVOVCA9IDYsLyogR1BVIHNpZ25hbCBmb3IgcHJvZmlsaW5nICovCisJSFNBX0VWRU5UVFlQRV9R VUVVRV9FVkVOVCA9IDcsCS8qIEdQVSBzaWduYWwgcXVldWUgaWRsZSBzdGF0ZQorCQkJCQkgICAo RU9QIHBtNCkgKi8KKwkvKiAuLi4gICovCisJSFNBX0VWRU5UVFlQRV9NQVhJRCwKKwlIU0FfRVZF TlRUWVBFX1RZUEVfU0laRSA9IDB4RkZGRkZGRkYKK307CisKKy8qIFN1Yi1kZWZpbml0aW9ucyBm b3IgdmFyaW91cyBldmVudCB0eXBlczogU3luY3ZhciAqLworc3RydWN0IEhzYVN5bmNWYXIgewor CXVuaW9uIFN5bmNWYXIgeworCQl2b2lkICpVc2VyRGF0YTsJLyogcG9pbnRlciB0byB1c2VyIG1v ZGUgZGF0YSAqLworCQl1aW50NjRfdCBVc2VyRGF0YVB0clZhbHVlOyAvKiA2NGJpdCBjb21wYXRp YmlsaXR5IG9mIHZhbHVlICovCisJfSBTeW5jVmFyOworCXVpbnQ2NF90IFN5bmNWYXJTaXplOwor fTsKKworLyogU3ViLWRlZmluaXRpb25zIGZvciB2YXJpb3VzIGV2ZW50IHR5cGVzOiBOb2RlQ2hh bmdlICovCisKK2VudW0gSFNBX0VWRU5UVFlQRV9OT0RFQ0hBTkdFX0ZMQUdTIHsKKwlIU0FfRVZF TlRUWVBFX05PREVDSEFOR0VfQUREID0gMCwKKwlIU0FfRVZFTlRUWVBFX05PREVDSEFOR0VfUkVN T1ZFID0gMSwKKwlIU0FfRVZFTlRUWVBFX05PREVDSEFOR0VfU0laRSA9IDB4RkZGRkZGRkYKK307 CisKK3N0cnVjdCBIc2FOb2RlQ2hhbmdlIHsKKwkvKiBIU0Egbm9kZSBhZGRlZC9yZW1vdmVkIG9u IHRoZSBwbGF0Zm9ybSAqLworCWVudW0gSFNBX0VWRU5UVFlQRV9OT0RFQ0hBTkdFX0ZMQUdTIEZs YWdzOworfTsKKworLyogU3ViLWRlZmluaXRpb25zIGZvciB2YXJpb3VzIGV2ZW50IHR5cGVzOiBE ZXZpY2VTdGF0ZUNoYW5nZSAqLworZW51bSBIU0FfRVZFTlRUWVBFX0RFVklDRVNUQVRFQ0hBTkdF X0ZMQUdTIHsKKwkvKiBkZXZpY2Ugc3RhcnRlZCAoYW5kIGF2YWlsYWJsZSkgKi8KKwlIU0FfRVZF TlRUWVBFX0RFVklDRVNUQVRVU0NIQU5HRV9TVEFSVCA9IDAsCisJLyogZGV2aWNlIHN0b3BwZWQg KGkuZS4gdW5hdmFpbGFibGUpICovCisJSFNBX0VWRU5UVFlQRV9ERVZJQ0VTVEFUVVNDSEFOR0Vf U1RPUCA9IDEsCisJSFNBX0VWRU5UVFlQRV9ERVZJQ0VTVEFUVVNDSEFOR0VfU0laRSA9IDB4RkZG RkZGRkYKK307CisKK2VudW0gSFNBX0RFVklDRSB7CisJSFNBX0RFVklDRV9DUFUgPSAwLAorCUhT QV9ERVZJQ0VfR1BVID0gMSwKKwlNQVhfSFNBX0RFVklDRSA9IDIKK307CisKK3N0cnVjdCBIc2FE ZXZpY2VTdGF0ZUNoYW5nZSB7CisJdWludDMyX3QgTm9kZUlkOwkvKiBGLU5VTUEgbm9kZSB0aGF0 IGNvbnRhaW5zIHRoZSBkZXZpY2UgKi8KKwllbnVtIEhTQV9ERVZJQ0UgRGV2aWNlOwkvKiBkZXZp Y2UgdHlwZTogR1BVIG9yIENQVSAqLworCWVudW0gSFNBX0VWRU5UVFlQRV9ERVZJQ0VTVEFURUNI QU5HRV9GTEFHUyBGbGFnczsgLyogZXZlbnQgZmxhZ3MgKi8KK307CisKK3N0cnVjdCBIc2FFdmVu dERhdGEgeworCWVudW0gSFNBX0VWRU5UVFlQRSBFdmVudFR5cGU7IC8qIGV2ZW50IHR5cGUgKi8K Kwl1bmlvbiBFdmVudERhdGEgeworCQkvKgorCQkgKiByZXR1cm4gZGF0YSBhc3NvY2lhdGVkIHdp dGggSFNBX0VWRU5UVFlQRV9TSUdOQUwKKwkJICogYW5kIG90aGVyIGV2ZW50cworCQkgKi8KKwkJ c3RydWN0IEhzYVN5bmNWYXIgU3luY1ZhcjsKKworCQkvKiBkYXRhIGFzc29jaWF0ZWQgd2l0aCBI U0FfRVZFTlRUWVBFX05PREVfQ0hBTkdFICovCisJCXN0cnVjdCBIc2FOb2RlQ2hhbmdlIE5vZGVD aGFuZ2VTdGF0ZTsKKworCQkvKiBkYXRhIGFzc29jaWF0ZWQgd2l0aCBIU0FfRVZFTlRUWVBFX0RF VklDRV9TVEFURV9DSEFOR0UgKi8KKwkJc3RydWN0IEhzYURldmljZVN0YXRlQ2hhbmdlIERldmlj ZVN0YXRlOworCX0gRXZlbnREYXRhOworCisJLyogdGhlIGZvbGxvd2luZyBkYXRhIGVudHJpZXMg YXJlIGludGVybmFsIHRvIHRoZSBLRkQgJiB0aHVuayBpdHNlbGYgKi8KKworCS8qIGludGVybmFs IHRodW5rIHN0b3JlIGZvciBFdmVudCBkYXRhIChPc0V2ZW50SGFuZGxlKSAqLworCXVpbnQ2NF90 IEhXRGF0YTE7CisJLyogaW50ZXJuYWwgdGh1bmsgc3RvcmUgZm9yIEV2ZW50IGRhdGEgKEhXQWRk cmVzcykgKi8KKwl1aW50NjRfdCBIV0RhdGEyOworCS8qIGludGVybmFsIHRodW5rIHN0b3JlIGZv ciBFdmVudCBkYXRhIChIV0RhdGEpICovCisJdWludDMyX3QgSFdEYXRhMzsKK307CisKK3N0cnVj dCBIc2FFdmVudERlc2NyaXB0b3IgeworCS8qIGV2ZW50IHR5cGUgdG8gYWxsb2NhdGUgKi8KKwll bnVtIEhTQV9FVkVOVFRZUEUgRXZlbnRUeXBlOworCS8qIEgtTlVNQSBub2RlIGNvbnRhaW5pbmcg R1BVIGRldmljZSB0aGF0IGlzIGV2ZW50IHNvdXJjZSAqLworCXVpbnQzMl90IE5vZGVJZDsKKwkv KiBwb2ludGVyIHRvIHVzZXIgbW9kZSBzeW5jdmFyIGRhdGEsIHN5bmN2YXItPlVzZXJEYXRhUHRy VmFsdWUKKwkgKiBtYXkgYmUgTlVMTAorCSAqLworCXN0cnVjdCBIc2FTeW5jVmFyIFN5bmNWYXI7 Cit9OworCitzdHJ1Y3QgSHNhRXZlbnQgeworCXVpbnQzMl90IEV2ZW50SWQ7CisJc3RydWN0IEhz YUV2ZW50RGF0YSBFdmVudERhdGE7Cit9OworCisjcHJhZ21hIHBhY2socG9wKQorCitlbnVtIERC R0RFVl9UWVBFIHsKKwlEQkdERVZfVFlQRV9JTExFR0FMID0gMCwKKwlEQkdERVZfVFlQRV9OT0RJ USA9IDEsCisJREJHREVWX1RZUEVfRElRID0gMiwKKwlEQkdERVZfVFlQRV9URVNUID0gMworfTsK Kworc3RydWN0IGRiZ19hZGRyZXNzX3dhdGNoX2luZm8geworCXN0cnVjdCBrZmRfcHJvY2VzcyAq cHJvY2VzczsKKwllbnVtIEhTQV9EQkdfV0FUQ0hfTU9ERSAqd2F0Y2hfbW9kZTsKKwl1aW50NjRf dCAqd2F0Y2hfYWRkcmVzczsKKwl1aW50NjRfdCAqd2F0Y2hfbWFzazsKKwlzdHJ1Y3QgSHNhRXZl bnQgKndhdGNoX2V2ZW50OworCXVpbnQzMl90IG51bV93YXRjaF9wb2ludHM7Cit9OworCitzdHJ1 Y3QgZGJnX3dhdmVfY29udHJvbF9pbmZvIHsKKwlzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnByb2Nlc3M7 CisJdWludDMyX3QgdHJhcElkOworCWVudW0gSFNBX0RCR19XQVZFT1Agb3BlcmFuZDsKKwllbnVt IEhTQV9EQkdfV0FWRU1PREUgbW9kZTsKKwlzdHJ1Y3QgSHNhRGJnV2F2ZU1lc3NhZ2UgZGJnV2F2 ZV9tc2c7Cit9OworCitzdHJ1Y3Qga2ZkX2RiZ2RldiB7CisKKwkvKiBUaGUgZGV2aWNlIHRoYXQg b3ducyB0aGlzIGRhdGEuICovCisJc3RydWN0IGtmZF9kZXYgKmRldjsKKworCS8qIGtlcm5lbCBx dWV1ZSBmb3IgRElRICovCisJc3RydWN0IGtlcm5lbF9xdWV1ZSAqa3E7CisKKwkvKiBhIHBvaW50 ZXIgdG8gdGhlIHBxbSBvZiB0aGUgY2FsbGluZyBwcm9jZXNzICovCisJc3RydWN0IHByb2Nlc3Nf cXVldWVfbWFuYWdlciAqcHFtOworCisJLyogdHlwZSBvZiBkZWJ1ZyBkZXZpY2UgKCBESVEsIG5v biBESVEsIGV0Yy4gKSAqLworCWVudW0gREJHREVWX1RZUEUgdHlwZTsKKworCS8qIHZpcnR1YWxp emVkIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIGRldmljZSBkYmcgKi8KKwlpbnQgKCpkYmdkZXZfcmVn aXN0ZXIpKHN0cnVjdCBrZmRfZGJnZGV2ICpkYmdkZXYpOworCWludCAoKmRiZ2Rldl91bnJlZ2lz dGVyKShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2KTsKKworfTsKKworc3RydWN0IGtmZF9kYmdt Z3IgeworCXVuc2lnbmVkIGludCBwYXNpZDsKKwlzdHJ1Y3Qga2ZkX2RldiAqZGV2OworCXN0cnVj dCBrZmRfZGJnZGV2ICpkYmdkZXY7Cit9OworCisvKiBwcm90b3R5cGVzIGZvciBkZWJ1ZyBtYW5h Z2VyIGZ1bmN0aW9ucyAqLworc3RydWN0IG11dGV4ICpnZXRfZGJnbWdyX211dGV4KHZvaWQpOwor dm9pZCBrZmRfZGJnbWdyX2Rlc3Ryb3koc3RydWN0IGtmZF9kYmdtZ3IgKnBtZ3IpOworYm9vbCBr ZmRfZGJnbWdyX2NyZWF0ZShzdHJ1Y3Qga2ZkX2RiZ21nciAqKnBwbWdyLCBzdHJ1Y3Qga2ZkX2Rl diAqcGRldik7Citsb25nIGtmZF9kYmdtZ3JfcmVnaXN0ZXIoc3RydWN0IGtmZF9kYmdtZ3IgKnBt Z3IsIHN0cnVjdCBrZmRfcHJvY2VzcyAqcCk7Citsb25nIGtmZF9kYmdtZ3JfdW5yZWdpc3Rlcihz dHJ1Y3Qga2ZkX2RiZ21nciAqcG1nciwgc3RydWN0IGtmZF9wcm9jZXNzICpwKTsKKworI2VuZGlm IC8qIEtGRF9EQkdNR1JfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k a2ZkL2tmZF9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2Uu YwppbmRleCBmMWY4NmRiLi4xZDFlMmU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X2RldmljZS5jCkBAIC0zNyw2ICszNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2Rldmlj ZV9pbmZvIGthdmVyaV9kZXZpY2VfaW5mbyA9IHsKIAkubWF4X25vX29mX2hxZAk9IDI0LAogCS5p aF9yaW5nX2VudHJ5X3NpemUgPSA0ICogc2l6ZW9mKHVpbnQzMl90KSwKIAkuZXZlbnRfaW50ZXJy dXB0X2NsYXNzID0gJmV2ZW50X2ludGVycnVwdF9jbGFzc19jaWssCisJLm51bV9vZl93YXRjaF9w b2ludHMgPSA0LAogCS5tcWRfc2l6ZV9hbGlnbmVkID0gTVFEX1NJWkVfQUxJR05FRAogfTsKIApA QCAtMjk2LDYgKzI5Nyw4IEBAIGJvb2wga2dkMmtmZF9kZXZpY2VfaW5pdChzdHJ1Y3Qga2ZkX2Rl diAqa2ZkLAogCQlnb3RvIGRxbV9zdGFydF9lcnJvcjsKIAl9CiAKKwlrZmQtPmRiZ21nciA9IE5V TEw7CisKIAlrZmQtPmluaXRfY29tcGxldGUgPSB0cnVlOwogCWRldl9pbmZvKGtmZF9kZXZpY2Us ICJhZGRlZCBkZXZpY2UgKCV4OiV4KVxuIiwga2ZkLT5wZGV2LT52ZW5kb3IsCiAJCSBrZmQtPnBk ZXYtPmRldmljZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf cG00X2hlYWRlcnNfZGlxLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcG00X2hl YWRlcnNfZGlxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBmZjM0OAot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wbTRfaGVh ZGVyc19kaXEuaApAQCAtMCwwICsxLDI5MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE0IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICog YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisg KiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAq CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQg U0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2lmbmRl ZiBLRkRfUE00X0hFQURFUlNfRElRX0hfCisjZGVmaW5lIEtGRF9QTTRfSEVBREVSU19ESVFfSF8K KworLyotLS0tLS0tLS0tLS0tLS0tLS0tLV9JTkRJUkVDVF9CVUZGRVItLS0tLS0tLS0tLS0tLS0t LS0tLSAqLworCisjaWZuZGVmIF9QTTRfX0lORElSRUNUX0JVRkZFUl9ERUZJTkVECisjZGVmaW5l IF9QTTRfX0lORElSRUNUX0JVRkZFUl9ERUZJTkVECitlbnVtIF9JTkRJUkVDVF9CVUZGRVJfY2Fj aGVfcG9saWN5X2VudW0geworCWNhY2hlX3BvbGljeV9fX2luZGlyZWN0X2J1ZmZlcl9fbHJ1ID0g MCwKKwljYWNoZV9wb2xpY3lfX19pbmRpcmVjdF9idWZmZXJfX3N0cmVhbSA9IDEsCisJY2FjaGVf cG9saWN5X19faW5kaXJlY3RfYnVmZmVyX19ieXBhc3MgPSAyCit9OworCitlbnVtIHsKKwlJVF9J TkRJUkVDVF9CVUZGRVJfUEFTSUQgPSAweDVDCit9OworCitzdHJ1Y3QgcG00X19pbmRpcmVjdF9i dWZmZXJfcGFzaWQgeworCXVuaW9uIHsKKwkJdW5pb24gUE00X01FU19UWVBFXzNfSEVBREVSIGhl YWRlcjsJLyogaGVhZGVyICovCisJCXVuc2lnbmVkIGludCBvcmRpbmFsMTsKKwl9OworCisJdW5p b24geworCQlzdHJ1Y3QgeworCQkJdW5zaWduZWQgaW50IHJlc2VydmVkMToyOworCQkJdW5zaWdu ZWQgaW50IGliX2Jhc2VfbG86MzA7CisJCX0gYml0ZmllbGRzMjsKKwkJdW5zaWduZWQgaW50IG9y ZGluYWwyOworCX07CisKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQl1bnNpZ25lZCBpbnQgaWJf YmFzZV9oaToxNjsKKwkJCXVuc2lnbmVkIGludCByZXNlcnZlZDI6MTY7CisJCX0gYml0ZmllbGRz MzsKKwkJdW5zaWduZWQgaW50IG9yZGluYWwzOworCX07CisKKwl1bmlvbiB7CisJCXVuc2lnbmVk IGludCBjb250cm9sOworCQl1bnNpZ25lZCBpbnQgb3JkaW5hbDQ7CisJfTsKKworCXVuaW9uIHsK KwkJc3RydWN0IHsKKwkJCXVuc2lnbmVkIGludCBwYXNpZDoxMDsKKwkJCXVuc2lnbmVkIGludCBy ZXNlcnZlZDQ6MjI7CisJCX0gYml0ZmllbGRzNTsKKwkJdW5zaWduZWQgaW50IG9yZGluYWw1Owor CX07CisKK307CisKKyNlbmRpZgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tX1JFTEVBU0VfTUVN LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2lmbmRlZiBfUE00X19SRUxFQVNFX01FTV9ERUZJ TkVECisjZGVmaW5lIF9QTTRfX1JFTEVBU0VfTUVNX0RFRklORUQKK2VudW0gX1JFTEVBU0VfTUVN X2V2ZW50X2luZGV4X2VudW0geworCWV2ZW50X2luZGV4X19fcmVsZWFzZV9tZW1fX2VuZF9vZl9w aXBlID0gNSwKKwlldmVudF9pbmRleF9fX3JlbGVhc2VfbWVtX19zaGFkZXJfZG9uZSA9IDYKK307 CisKK2VudW0gX1JFTEVBU0VfTUVNX2NhY2hlX3BvbGljeV9lbnVtIHsKKwljYWNoZV9wb2xpY3lf X19yZWxlYXNlX21lbV9fbHJ1ID0gMCwKKwljYWNoZV9wb2xpY3lfX19yZWxlYXNlX21lbV9fc3Ry ZWFtID0gMSwKKwljYWNoZV9wb2xpY3lfX19yZWxlYXNlX21lbV9fYnlwYXNzID0gMgorfTsKKwor ZW51bSBfUkVMRUFTRV9NRU1fZHN0X3NlbF9lbnVtIHsKKwlkc3Rfc2VsX19fcmVsZWFzZV9tZW1f X21lbW9yeV9jb250cm9sbGVyID0gMCwKKwlkc3Rfc2VsX19fcmVsZWFzZV9tZW1fX3RjX2wyID0g MSwKKwlkc3Rfc2VsX19fcmVsZWFzZV9tZW1fX3F1ZXVlX3dyaXRlX3BvaW50ZXJfcmVnaXN0ZXIg PSAyLAorCWRzdF9zZWxfX19yZWxlYXNlX21lbV9fcXVldWVfd3JpdGVfcG9pbnRlcl9wb2xsX21h c2tfYml0ID0gMworfTsKKworZW51bSBfUkVMRUFTRV9NRU1faW50X3NlbF9lbnVtIHsKKwlpbnRf c2VsX19fcmVsZWFzZV9tZW1fX25vbmUgPSAwLAorCWludF9zZWxfX19yZWxlYXNlX21lbV9fc2Vu ZF9pbnRlcnJ1cHRfb25seSA9IDEsCisJaW50X3NlbF9fX3JlbGVhc2VfbWVtX19zZW5kX2ludGVy cnVwdF9hZnRlcl93cml0ZV9jb25maXJtID0gMiwKKwlpbnRfc2VsX19fcmVsZWFzZV9tZW1fX3Nl bmRfZGF0YV9hZnRlcl93cml0ZV9jb25maXJtID0gMworfTsKKworZW51bSBfUkVMRUFTRV9NRU1f ZGF0YV9zZWxfZW51bSB7CisJZGF0YV9zZWxfX19yZWxlYXNlX21lbV9fbm9uZSA9IDAsCisJZGF0 YV9zZWxfX19yZWxlYXNlX21lbV9fc2VuZF8zMl9iaXRfbG93ID0gMSwKKwlkYXRhX3NlbF9fX3Jl bGVhc2VfbWVtX19zZW5kXzY0X2JpdF9kYXRhID0gMiwKKwlkYXRhX3NlbF9fX3JlbGVhc2VfbWVt X19zZW5kX2dwdV9jbG9ja19jb3VudGVyID0gMywKKwlkYXRhX3NlbF9fX3JlbGVhc2VfbWVtX19z ZW5kX2NwX3BlcmZjb3VudGVyX2hpX2xvID0gNCwKKwlkYXRhX3NlbF9fX3JlbGVhc2VfbWVtX19z dG9yZV9nZHNfZGF0YV90b19tZW1vcnkgPSA1Cit9OworCitzdHJ1Y3QgcG00X19yZWxlYXNlX21l bSB7CisJdW5pb24geworCQl1bmlvbiBQTTRfTUVTX1RZUEVfM19IRUFERVIgaGVhZGVyOwkvKmhl YWRlciAqLworCQl1bnNpZ25lZCBpbnQgb3JkaW5hbDE7CisJfTsKKworCXVuaW9uIHsKKwkJc3Ry dWN0IHsKKwkJCXVuc2lnbmVkIGludCBldmVudF90eXBlOjY7CisJCQl1bnNpZ25lZCBpbnQgcmVz ZXJ2ZWQxOjI7CisJCQllbnVtIF9SRUxFQVNFX01FTV9ldmVudF9pbmRleF9lbnVtIGV2ZW50X2lu ZGV4OjQ7CisJCQl1bnNpZ25lZCBpbnQgdGNsMV92b2xfYWN0aW9uX2VuYToxOworCQkJdW5zaWdu ZWQgaW50IHRjX3ZvbF9hY3Rpb25fZW5hOjE7CisJCQl1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQyOjE7 CisJCQl1bnNpZ25lZCBpbnQgdGNfd2JfYWN0aW9uX2VuYToxOworCQkJdW5zaWduZWQgaW50IHRj bDFfYWN0aW9uX2VuYToxOworCQkJdW5zaWduZWQgaW50IHRjX2FjdGlvbl9lbmE6MTsKKwkJCXVu c2lnbmVkIGludCByZXNlcnZlZDM6NjsKKwkJCXVuc2lnbmVkIGludCBhdGM6MTsKKwkJCWVudW0g X1JFTEVBU0VfTUVNX2NhY2hlX3BvbGljeV9lbnVtIGNhY2hlX3BvbGljeToyOworCQkJdW5zaWdu ZWQgaW50IHJlc2VydmVkNDo1OworCQl9IGJpdGZpZWxkczI7CisJCXVuc2lnbmVkIGludCBvcmRp bmFsMjsKKwl9OworCisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJdW5zaWduZWQgaW50IHJlc2Vy dmVkNToxNjsKKwkJCWVudW0gX1JFTEVBU0VfTUVNX2RzdF9zZWxfZW51bSBkc3Rfc2VsOjI7CisJ CQl1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQ2OjY7CisJCQllbnVtIF9SRUxFQVNFX01FTV9pbnRfc2Vs X2VudW0gaW50X3NlbDozOworCQkJdW5zaWduZWQgaW50IHJlc2VydmVkNzoyOworCQkJZW51bSBf UkVMRUFTRV9NRU1fZGF0YV9zZWxfZW51bSBkYXRhX3NlbDozOworCQl9IGJpdGZpZWxkczM7CisJ CXVuc2lnbmVkIGludCBvcmRpbmFsMzsKKwl9OworCisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJ dW5zaWduZWQgaW50IHJlc2VydmVkODoyOworCQkJdW5zaWduZWQgaW50IGFkZHJlc3NfbG9fMzJi OjMwOworCQl9IGJpdGZpZWxkczQ7CisJCXN0cnVjdCB7CisJCQl1bnNpZ25lZCBpbnQgcmVzZXJ2 ZWQ5OjM7CisJCQl1bnNpZ25lZCBpbnQgYWRkcmVzc19sb182NGI6Mjk7CisJCX0gYml0ZmllbGRz NTsKKwkJdW5zaWduZWQgaW50IG9yZGluYWw0OworCX07CisKKwl1bnNpZ25lZCBpbnQgYWRkcmVz c19oaTsKKworCXVuc2lnbmVkIGludCBkYXRhX2xvOworCisJdW5zaWduZWQgaW50IGRhdGFfaGk7 CisKK307CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tX1NFVF9DT05GSUdfUkVH LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2lmbmRlZiBfUE00X19TRVRfQ09ORklHX1JFR19E RUZJTkVECisjZGVmaW5lIF9QTTRfX1NFVF9DT05GSUdfUkVHX0RFRklORUQKKworc3RydWN0IHBt NF9fc2V0X2NvbmZpZ19yZWcgeworCXVuaW9uIHsKKwkJdW5pb24gUE00X01FU19UWVBFXzNfSEVB REVSIGhlYWRlcjsJLypoZWFkZXIgKi8KKwkJdW5zaWduZWQgaW50IG9yZGluYWwxOworCX07CisK Kwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQl1bnNpZ25lZCBpbnQgcmVnX29mZnNldDoxNjsKKwkJ CXVuc2lnbmVkIGludCByZXNlcnZlZDE6NzsKKwkJCXVuc2lnbmVkIGludCB2bWlkX3NoaWZ0OjU7 CisJCQl1bnNpZ25lZCBpbnQgaW5zZXJ0X3ZtaWQ6MTsKKwkJCXVuc2lnbmVkIGludCByZXNlcnZl ZDI6MzsKKwkJfSBiaXRmaWVsZHMyOworCQl1bnNpZ25lZCBpbnQgb3JkaW5hbDI7CisJfTsKKwor CXVuc2lnbmVkIGludCByZWdfZGF0YVsxXTsJLyoxLi5OIG9mIHRoZXNlIGZpZWxkcyAqLworCit9 OworI2VuZGlmCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS1fV0FJVF9SRUdfTUVNLS0tLS0tLS0t LS0tLS0tLS0tLS0gKi8KKworI2lmbmRlZiBfUE00X19XQUlUX1JFR19NRU1fREVGSU5FRAorI2Rl ZmluZSBfUE00X19XQUlUX1JFR19NRU1fREVGSU5FRAorZW51bSBfV0FJVF9SRUdfTUVNX2Z1bmN0 aW9uX2VudW0geworCWZ1bmN0aW9uX19fd2FpdF9yZWdfbWVtX19hbHdheXNfcGFzcyA9IDAsCisJ ZnVuY3Rpb25fX193YWl0X3JlZ19tZW1fX2xlc3NfdGhhbl9yZWZfdmFsdWUgPSAxLAorCWZ1bmN0 aW9uX19fd2FpdF9yZWdfbWVtX19sZXNzX3RoYW5fZXF1YWxfdG9fdGhlX3JlZl92YWx1ZSA9IDIs CisJZnVuY3Rpb25fX193YWl0X3JlZ19tZW1fX2VxdWFsX3RvX3RoZV9yZWZlcmVuY2VfdmFsdWUg PSAzLAorCWZ1bmN0aW9uX19fd2FpdF9yZWdfbWVtX19ub3RfZXF1YWxfcmVmZXJlbmNlX3ZhbHVl ID0gNCwKKwlmdW5jdGlvbl9fX3dhaXRfcmVnX21lbV9fZ3JlYXRlcl90aGFuX29yX2VxdWFsX3Jl ZmVyZW5jZV92YWx1ZSA9IDUsCisJZnVuY3Rpb25fX193YWl0X3JlZ19tZW1fX2dyZWF0ZXJfdGhh bl9yZWZlcmVuY2VfdmFsdWUgPSA2LAorCWZ1bmN0aW9uX19fd2FpdF9yZWdfbWVtX19yZXNlcnZl ZCA9IDcKK307CisKK2VudW0gX1dBSVRfUkVHX01FTV9tZW1fc3BhY2VfZW51bSB7CisJbWVtX3Nw YWNlX19fd2FpdF9yZWdfbWVtX19yZWdpc3Rlcl9zcGFjZSA9IDAsCisJbWVtX3NwYWNlX19fd2Fp dF9yZWdfbWVtX19tZW1vcnlfc3BhY2UgPSAxCit9OworCitlbnVtIF9XQUlUX1JFR19NRU1fb3Bl cmF0aW9uX2VudW0geworCW9wZXJhdGlvbl9fX3dhaXRfcmVnX21lbV9fd2FpdF9yZWdfbWVtID0g MCwKKwlvcGVyYXRpb25fX193YWl0X3JlZ19tZW1fX3dyX3dhaXRfd3JfcmVnID0gMQorfTsKKwor c3RydWN0IHBtNF9fd2FpdF9yZWdfbWVtIHsKKwl1bmlvbiB7CisJCXVuaW9uIFBNNF9NRVNfVFlQ RV8zX0hFQURFUiBoZWFkZXI7CS8qaGVhZGVyICovCisJCXVuc2lnbmVkIGludCBvcmRpbmFsMTsK Kwl9OworCisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJZW51bSBfV0FJVF9SRUdfTUVNX2Z1bmN0 aW9uX2VudW0gZnVuY3Rpb246MzsKKwkJCXVuc2lnbmVkIGludCByZXNlcnZlZDE6MTsKKwkJCWVu dW0gX1dBSVRfUkVHX01FTV9tZW1fc3BhY2VfZW51bSBtZW1fc3BhY2U6MjsKKwkJCWVudW0gX1dB SVRfUkVHX01FTV9vcGVyYXRpb25fZW51bSBvcGVyYXRpb246MjsKKwkJCXVuc2lnbmVkIGludCBy ZXNlcnZlZDI6MjQ7CisJCX0gYml0ZmllbGRzMjsKKwkJdW5zaWduZWQgaW50IG9yZGluYWwyOwor CX07CisKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQl1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQzOjI7 CisJCQl1bnNpZ25lZCBpbnQgbWVtb3J5X3BvbGxfYWRkcl9sbzozMDsKKwkJfSBiaXRmaWVsZHMz OworCQlzdHJ1Y3QgeworCQkJdW5zaWduZWQgaW50IHJlZ2lzdGVyX3BvbGxfYWRkcjoxNjsKKwkJ CXVuc2lnbmVkIGludCByZXNlcnZlZDQ6MTY7CisJCX0gYml0ZmllbGRzNDsKKwkJc3RydWN0IHsK KwkJCXVuc2lnbmVkIGludCByZWdpc3Rlcl93cml0ZV9hZGRyOjE2OworCQkJdW5zaWduZWQgaW50 IHJlc2VydmVkNToxNjsKKwkJfSBiaXRmaWVsZHM1OworCQl1bnNpZ25lZCBpbnQgb3JkaW5hbDM7 CisJfTsKKworCXVuaW9uIHsKKwkJc3RydWN0IHsKKwkJCXVuc2lnbmVkIGludCBwb2xsX2FkZHJl c3NfaGk6MTY7CisJCQl1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQ2OjE2OworCQl9IGJpdGZpZWxkczY7 CisJCXN0cnVjdCB7CisJCQl1bnNpZ25lZCBpbnQgcmVnaXN0ZXJfd3JpdGVfYWRkcjoxNjsKKwkJ CXVuc2lnbmVkIGludCByZXNlcnZlZDc6MTY7CisJCX0gYml0ZmllbGRzNzsKKwkJdW5zaWduZWQg aW50IG9yZGluYWw0OworCX07CisKKwl1bnNpZ25lZCBpbnQgcmVmZXJlbmNlOworCisJdW5zaWdu ZWQgaW50IG1hc2s7CisKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQl1bnNpZ25lZCBpbnQgcG9s bF9pbnRlcnZhbDoxNjsKKwkJCXVuc2lnbmVkIGludCByZXNlcnZlZDg6MTY7CisJCX0gYml0Zmll bGRzODsKKwkJdW5zaWduZWQgaW50IG9yZGluYWw3OworCX07CisKK307CisjZW5kaWYKKworCisj ZW5kaWYgLyogS0ZEX1BNNF9IRUFERVJTX0RJUV9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9wcml2LmgKaW5kZXggOGU5OWQyYi4uMTJhZDU4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfcHJpdi5oCkBAIC0xOTUsNiArMTk1LDkgQEAgc3RydWN0IGtmZF9kZXYgewogCSAq IGZyb20gdGhlIEhXIHJpbmcgaW50byBhIFNXIHJpbmcuCiAJICovCiAJYm9vbCBpbnRlcnJ1cHRz X2FjdGl2ZTsKKworCS8qIERlYnVnIG1hbmFnZXIgKi8KKwlzdHJ1Y3Qga2ZkX2RiZ21nciAgICAg ICAgICAgKmRiZ21ncjsKIH07CiAKIC8qIEtHRDJLRkQgY2FsbGJhY2tzICovCkBAIC02NDksNiAr NjUyLDggQEAgaW50IHBxbV9jcmVhdGVfcXVldWUoc3RydWN0IHByb2Nlc3NfcXVldWVfbWFuYWdl ciAqcHFtLAogaW50IHBxbV9kZXN0cm95X3F1ZXVlKHN0cnVjdCBwcm9jZXNzX3F1ZXVlX21hbmFn ZXIgKnBxbSwgdW5zaWduZWQgaW50IHFpZCk7CiBpbnQgcHFtX3VwZGF0ZV9xdWV1ZShzdHJ1Y3Qg cHJvY2Vzc19xdWV1ZV9tYW5hZ2VyICpwcW0sIHVuc2lnbmVkIGludCBxaWQsCiAJCQlzdHJ1Y3Qg cXVldWVfcHJvcGVydGllcyAqcCk7CitzdHJ1Y3Qga2VybmVsX3F1ZXVlICpwcW1fZ2V0X2tlcm5l bF9xdWV1ZShzdHJ1Y3QgcHJvY2Vzc19xdWV1ZV9tYW5hZ2VyICpwcW0sCisJCQkJCQl1bnNpZ25l ZCBpbnQgcWlkKTsKIAogLyogUGFja2V0IE1hbmFnZXIgKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5jCmluZGV4IDg1 YjdmZWMuLjdiNjkwNzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfcHJvY2Vzc19xdWV1ZV9tYW5hZ2VyLmMKQEAgLTM1Nyw3ICszNTcsNyBAQCBpbnQgcHFt X3VwZGF0ZV9xdWV1ZShzdHJ1Y3QgcHJvY2Vzc19xdWV1ZV9tYW5hZ2VyICpwcW0sIHVuc2lnbmVk IGludCBxaWQsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp KSBzdHJ1Y3Qga2VybmVsX3F1ZXVlICpwcW1fZ2V0X2tlcm5lbF9xdWV1ZSgKK3N0cnVjdCBrZXJu ZWxfcXVldWUgKnBxbV9nZXRfa2VybmVsX3F1ZXVlKAogCQkJCQlzdHJ1Y3QgcHJvY2Vzc19xdWV1 ZV9tYW5hZ2VyICpwcW0sCiAJCQkJCXVuc2lnbmVkIGludCBxaWQpCiB7Ci0tIAoyLjEuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK