From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 68D82A0C43 for ; Wed, 20 Oct 2021 21:49:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 392BF40150; Wed, 20 Oct 2021 21:49:14 +0200 (CEST) Received: from mail-ot1-f99.google.com (mail-ot1-f99.google.com [209.85.210.99]) by mails.dpdk.org (Postfix) with ESMTP id 7869740142 for ; Wed, 20 Oct 2021 21:49:11 +0200 (CEST) Received: by mail-ot1-f99.google.com with SMTP id v2-20020a05683018c200b0054e3acddd91so7444091ote.8 for ; Wed, 20 Oct 2021 12:49:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=mime-version:subject:from:to:cc:message-id:date; bh=woAjb8uRI3zWgygdX6vWw3KengkoL8oCZbAYfjoBqDI=; b=ZU/tAQ2f76f2tgh3JJkRS8hLJLFr5WQ8qJxAFHEnY5gn5Ku54ayxnFsiUYOcQ52w00 Vl/JTzfe38+G0RC899dzPNWLii3ooifa04aFCq8bZK66BVBs2fI6+q62Llz+NDBbP+j+ ztpOPsDkN0uNMk1YfcS7hYx6jJXYH4Qv7sFmU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:to:cc:message-id:date; bh=woAjb8uRI3zWgygdX6vWw3KengkoL8oCZbAYfjoBqDI=; b=JtQ6sjT5WUDcvKNiR9JerKPmrEc9/6iXRpS7PsdIVMzPVDmbh9fEtm2U3BwnL6jN90 pFcLj806qgNYtVzQ8w67GaRJElrI/64XmtvdFy1chopJQNjrnANmuvqwqkt9OrvdMEvs AcJMeuZQ06goIloWkSrf9CMp1YwCAE5t2hddUvGdf+pk0jaWlOmZGyrASobv7BmFI/Ay y7kKlFsSyqGapYAFHtidYfmRFX/nn/7T7AS4nzJTiazSDgpkVkmwLEmIty0SUvlumqAz cx6ybyTHcx2P1JViJ+kdUzJ/ImkJt+IGdOjXK3BIvTPqEht5M/TzjInBoEXewfO/kvYN 4JDw== X-Gm-Message-State: AOAM531vcvzRJvDbMtCmTGW/eNm0HEiZeImNovRllFwudRh8FdQpgiEg 8Zg4TgXx0tM0XXQ9Zm+wWMWI5+jReJgAdTX+QttU3SeI/f5Cpw== X-Google-Smtp-Source: ABdhPJxPWaC3fzQul00aDEdSYSHfWicy97yOduVsdKgRoO5Se95/Tq7z2NtGiWkrmP7FiuhSRYAFlALOfj9d X-Received: by 2002:a05:6830:1dfa:: with SMTP id b26mr1010568otj.325.1634759350598; Wed, 20 Oct 2021 12:49:10 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84]) by smtp-relay.gmail.com with ESMTPS id b12sm887808ooq.5.2021.10.20.12.49.10 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Oct 2021 12:49:10 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (targon.iol.unh.edu [132.177.125.242]) by postal.iol.unh.edu (Postfix) with ESMTP id A7D46605247D; Wed, 20 Oct 2021 15:49:09 -0400 (EDT) Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by dpdk-ubuntu.dpdklab.iol.unh.edu (Postfix) with ESMTP id 8D6AC6045A; Wed, 20 Oct 2021 19:49:09 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============7720825570812622859==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20211020194909.8D6AC6045A@dpdk-ubuntu.dpdklab.iol.unh.edu> Date: Wed, 20 Oct 2021 19:49:09 +0000 (UTC) Subject: [dpdk-test-report] |WARNING| pw102483 [PATCH] [v5] ethdev: add namespace X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Sender: "test-report" --===============7720825570812622859== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzEwMjQ4MwoKX2FwcGx5IHBhdGNoIGZhaWx1cmVfCgpTdWJtaXR0ZXI6IEZlcnJ1 aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4KRGF0ZTogV2VkbmVzZGF5LCBPY3RvYmVy IDIwIDIwMjEgMTk6MjM6NDkgCkFwcGxpZWQgb246IENvbW1pdElEOjY5YTNjNjMxOTE0MGIzNGZi NzE0ZmE1YmQ2OTkwY2NlYjJlYTI5OTcKQXBwbHkgcGF0Y2ggc2V0IDEwMjQ4MyBmYWlsZWQ6CgpD aGVja2luZyBwYXRjaCBhcHAvcHJvYy1pbmZvL21haW4uYy4uLgpDaGVja2luZyBwYXRjaCBhcHAv dGVzdC1ldmVudGRldi90ZXN0X3BlcmZfY29tbW9uLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CglzdHJ1Y3QgdGVzdF9wZXJmICp0ID0gZXZ0X3Rlc3RfcHJpdih0ZXN0KTsKCXN0cnVj dCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewoJCS5yeG1vZGUgPSB7CgkJCS5tcV9tb2RlID0g RVRIX01RX1JYX1JTUywKCQkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQl9LAoJCS5yeF9hZHZfY29u ZiA9IHsKCQkJLnJzc19jb25mID0gewoJCQkJLnJzc19rZXkgPSBOVUxMLAoJCQkJLnJzc19oZiA9 IEVUSF9SU1NfSVAsCgkJCX0sCgkJfSwKCX07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVz dC1ldmVudGRldi90ZXN0X3BlcmZfY29tbW9uLmM6NjY4CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0 LWV2ZW50ZGV2L3Rlc3RfcGlwZWxpbmVfY29tbW9uLmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQg MjI0IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMjM0IChvZmZzZXQgMSBs aW5lKS4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtZmxvdy1wZXJmL2NvbmZpZy5oLi4uCkNoZWNr aW5nIHBhdGNoIGFwcC90ZXN0LXBpcGVsaW5lL2luaXQuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAv dGVzdC1wbWQvY21kbGluZS5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE0NzIgKG9mZnNldCAt NiBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIxNjcgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICMzIHN1Y2NlZWRlZCBhdCAyMjA3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNCBzdWNjZWVkZWQg YXQgMjk4MyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDMwMTMgKG9mZnNl dCAxIGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAzMDg3IChvZmZzZXQgMSBsaW5lKS4KSHVu ayAjNyBzdWNjZWVkZWQgYXQgMzEzMyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzggc3VjY2VlZGVk IGF0IDMyNzMgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCA0Mjc3IChvZmZz ZXQgMSBsaW5lKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDQ2MTYgKG9mZnNldCAxIGxpbmUpLgpI dW5rICMxMSBzdWNjZWVkZWQgYXQgNDcxNCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzEyIHN1Y2Nl ZWRlZCBhdCA0NzIzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDQ3MzIg KG9mZnNldCAxIGxpbmUpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgNDc0MSAob2Zmc2V0IDEgbGlu ZSkuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCA0NzUwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTYg c3VjY2VlZGVkIGF0IDQ3NjAgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQg NDkxNyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCA0OTI1IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDQ5NDEgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICMyMCBzdWNjZWVkZWQgYXQgNTAxMiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzIxIHN1Y2NlZWRl ZCBhdCA1MDYwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMjIgc3VjY2VlZGVkIGF0IDUwOTYgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgNzA0OCAob2Zmc2V0IC0xNzkgbGlu ZXMpLgpIdW5rICMyNCBzdWNjZWVkZWQgYXQgNzMyOCAob2Zmc2V0IC0xNzkgbGluZXMpLgpIdW5r ICMyNSBzdWNjZWVkZWQgYXQgNzM0NiAob2Zmc2V0IC0xNzkgbGluZXMpLgpIdW5rICMyNiBzdWNj ZWVkZWQgYXQgNzQxOCAob2Zmc2V0IC0xNzkgbGluZXMpLgpIdW5rICMyNyBzdWNjZWVkZWQgYXQg ODk0MCAob2Zmc2V0IC0zMTAgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgOTM0NiAob2Zm c2V0IC0zMTAgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgOTQxMiAob2Zmc2V0IC0zMTAg bGluZXMpLgpIdW5rICMzMCBzdWNjZWVkZWQgYXQgMTE1NDkgKG9mZnNldCAtMzEwIGxpbmVzKS4K SHVuayAjMzEgc3VjY2VlZGVkIGF0IDExNTYwIChvZmZzZXQgLTMxMCBsaW5lcykuCkh1bmsgIzMy IHN1Y2NlZWRlZCBhdCAxMTY0NiAob2Zmc2V0IC0zMTAgbGluZXMpLgpIdW5rICMzMyBzdWNjZWVk ZWQgYXQgMTE2NTQgKG9mZnNldCAtMzEwIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDQ3NiAob2Zmc2V0IC02MiBsaW5l cykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDYzOCAob2Zmc2V0IC02MiBsaW5lcykuCkh1bmsgIzQg c3VjY2VlZGVkIGF0IDY1OCAob2Zmc2V0IC02MiBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0 IDI3NjcgKG9mZnNldCAtMTUyIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMzEzNiAob2Zm c2V0IC0xNTIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA0MTk5IChvZmZzZXQgLTE1MiBs aW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDQyMjkgKG9mZnNldCAtMTUyIGxpbmVzKS4KSHVu ayAjOSBzdWNjZWVkZWQgYXQgNDI3NCAob2Zmc2V0IC0xNTIgbGluZXMpLgpIdW5rICMxMCBzdWNj ZWVkZWQgYXQgNDMwNCAob2Zmc2V0IC0xNTIgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQg NDM3OCAob2Zmc2V0IC0xNTIgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgNDM4NyAob2Zm c2V0IC0xNTIgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgNDM5NSAob2Zmc2V0IC0xNTIg bGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgNDQxNCAob2Zmc2V0IC0xNTIgbGluZXMpLgpI dW5rICMxNSBzdWNjZWVkZWQgYXQgNDQyMiAob2Zmc2V0IC0xNTIgbGluZXMpLgpIdW5rICMxNiBz dWNjZWVkZWQgYXQgNDQzMiAob2Zmc2V0IC0xNTIgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQg YXQgNDgzOSAob2Zmc2V0IC0xNTIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQv Y3N1bW9ubHkuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvZmxvd2dlbi5jLi4uCkNo ZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9tYWNmd2QuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAv dGVzdC1wbWQvbWFjc3dhcF9jb21tb24uaC4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQv cGFyYW1ldGVycy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDQ3NiAob2Zmc2V0IC03MCBsaW5l cykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDkxOSAob2Zmc2V0IC04MSBsaW5lcykuCkh1bmsgIzMg c3VjY2VlZGVkIGF0IDk2NyAob2Zmc2V0IC04MSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0 IDEwMTYgKG9mZnNldCAtODEgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxNDAxIChvZmZz ZXQgLTgxIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYy4uLgpI dW5rICMxIHN1Y2NlZWRlZCBhdCAzMzggKG9mZnNldCAtMTAgbGluZXMpLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKc3RydWN0IHJ0ZV9ldGhfcnhtb2RlIHJ4X21vZGU7CgpzdHJ1Y3QgcnRl X2V0aF90eG1vZGUgdHhfbW9kZSA9IHsKCS5vZmZsb2FkcyA9IERFVl9UWF9PRkZMT0FEX01CVUZf RkFTVF9GUkVFLAp9OwoKc3RydWN0IHJ0ZV9mZGlyX2NvbmYgZmRpcl9jb25mID0gewoJLm1vZGUg PSBSVEVfRkRJUl9NT0RFX05PTkUsCgkucGJhbGxvYyA9IFJURV9GRElSX1BCQUxMT0NfNjRLLAoJ LnN0YXR1cyA9IFJURV9GRElSX1JFUE9SVF9TVEFUVVMsCgkubWFzayA9IHsKCQkudmxhbl90Y2lf bWFzayA9IDB4RkZFRiwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC90ZXN0cG1k LmM6NDU5Ckh1bmsgIzMgc3VjY2VlZGVkIGF0IDUxNCAob2Zmc2V0IC00IGxpbmVzKS4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpZiAocmV0ICE9IDApCgkJcnRlX2V4aXQoRVhJVF9GQUlM VVJFLCAicnRlX2V0aF9kZXZfaW5mb19nZXQoKSBmYWlsZWRcbiIpOwoKCWlmICghKHBvcnQtPmRl dl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKSkK CQlwb3J0LT5kZXZfY29uZi50eG1vZGUub2ZmbG9hZHMgJj0KCQkJfkRFVl9UWF9PRkZMT0FEX01C VUZfRkFTVF9GUkVFOwoKCS8qIEFwcGx5IFJ4IG9mZmxvYWRzIGNvbmZpZ3VyYXRpb24gKi8KCWZv ciAoaSA9IDA7IGkgPCBwb3J0LT5kZXZfaW5mby5tYXhfcnhfcXVldWVzOyBpKyspCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvdGVzdHBtZC5jOjE1NzIKSHVuayAjNSBzdWNjZWVk ZWQgYXQgMTYzMSAob2Zmc2V0IC04MCBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDMyMjEg KG9mZnNldCAtMjM2IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCWlmIChw b3J0LT5kZXZfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgIT0gMCkgewoJCQkJcG9y dC0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgPQoJCQkJCShlbnVtIHJ0ZV9ldGhfcnhfbXFfbW9k ZSkKCQkJCQkJKHJ4X21xX21vZGUgJiBFVEhfTVFfUlhfUlNTKTsKCQkJfSBlbHNlIHsKCQkJCXBv cnQtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkU7CgkJCQlwb3J0LT5k ZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJj0KCQkJCQkJfkRFVl9SWF9PRkZMT0FEX1JTU19IQVNI OwoKCQkJCWZvciAoaSA9IDA7CgkJCQkgICAgIGkgPCBwb3J0LT5kZXZfaW5mby5uYl9yeF9xdWV1 ZXM7CgkJCQkgICAgIGkrKykKCQkJCQlwb3J0LT5yeF9jb25mW2ldLm9mZmxvYWRzICY9CgkJCQkJ CX5ERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCQkJfQoJCX0KCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBhcHAvdGVzdC1wbWQvdGVzdHBtZC5jOjM3NTEKSHVuayAjOCBzdWNjZWVkZWQgYXQgMzY0MiAo b2Zmc2V0IC0yMDcgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAzNjUyIChvZmZzZXQgLTIw NyBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAzNjYwIChvZmZzZXQgLTIwNyBsaW5lcyku Ckh1bmsgIzExIHN1Y2NlZWRlZCBhdCAzNjc3IChvZmZzZXQgLTIwNyBsaW5lcykuCkh1bmsgIzEy IHN1Y2NlZWRlZCBhdCAzNzI0IChvZmZzZXQgLTIwNSBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRl ZCBhdCAzNzc0IChvZmZzZXQgLTIwNSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBt ZC90ZXN0cG1kLmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CmV4dGVybiB1aW50OF90 IGJpdHJhdGVfZW5hYmxlZDsKI2VuZGlmCgpleHRlcm4gc3RydWN0IHJ0ZV9mZGlyX2NvbmYgZmRp cl9jb25mOwoKZXh0ZXJuIHVpbnQzMl90IG1heF9yeF9wa3RfbGVuOwoKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGFwcC90ZXN0LXBtZC90ZXN0cG1kLmg6NDkxCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0 LXBtZC90eG9ubHkuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAzNTIgKG9mZnNldCAtMiBsaW5l cykuCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0L3Rlc3RfZXRoZGV2X2xpbmsuYy4uLgpDaGVja2lu ZyBwYXRjaCBhcHAvdGVzdC90ZXN0X2V2ZW50X2V0aF9yeF9hZGFwdGVyLmMuLi4KQ2hlY2tpbmcg cGF0Y2ggYXBwL3Rlc3QvdGVzdF9rbmkuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC90ZXN0 X2xpbmtfYm9uZGluZy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKc3RhdGljIHN0 cnVjdCBydGVfZXRoX2NvbmYgZGVmYXVsdF9wbWRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1x X21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS50eG1v ZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCgkubHBia19tb2RlID0gMCwK fTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nLmM6MTM0 CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nX21vZGU0LmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBkZWZh dWx0X3BtZF9jb25mID0gewoJLnJ4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05F LAoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgl9LAoJLnR4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVU SF9NUV9UWF9OT05FLAoJfSwKCS5scGJrX21vZGUgPSAwLAp9OwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdfbW9kZTQuYzoxMDcKQ2hlY2tpbmcgcGF0Y2gg YXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdfcnNzY29uZi5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgogKi8Kc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgZGVmYXVsdF9wbWRfY29u ZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRf aGRyX3NpemUgPSAwLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9O RSwKCX0sCgkubHBia19tb2RlID0gMCwKfTsKCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHJz c19wbWRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAoJ CS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgl9LAoJLnR4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9N UV9UWF9OT05FLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNzX2NvbmYgPSB7CgkJCS5yc3Nf a2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9IEVUSF9SU1NfSVBWNiwKCQl9LAoJfSwKCS5scGJrX21v ZGUgPSAwLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdf cnNzY29uZi5jOjgwCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDIwOSAob2Zmc2V0IDIgbGluZXMpLgpI dW5rICM1IHN1Y2NlZWRlZCBhdCAyMzQgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVk ZWQgYXQgMjUzIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDI3MCAob2Zm c2V0IDIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC90ZXN0X3BtZF9wZXJmLmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBw b3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCgkJ LnNwbGl0X2hkcl9zaXplID0gMCwKCX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01R X1RYX05PTkUsCgl9LAoJLmxwYmtfbW9kZSA9IDEsICAvKiBlbmFibGUgbG9vcGJhY2sgKi8KfTsK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0L3Rlc3RfcG1kX3BlcmYuYzo2MgpIdW5rICMy IHN1Y2NlZWRlZCBhdCAxNTYgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA4 MjMgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA4MzIgKG9mZnNldCAxIGxp bmUpLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC92aXJ0dWFsX3BtZC5jLi4uCkNoZWNraW5nIHBh dGNoIGRvYy9ndWlkZXMvZXZlbnRkZXZzL2NueGsucnN0Li4uCkNoZWNraW5nIHBhdGNoIGRvYy9n dWlkZXMvZXZlbnRkZXZzL29jdGVvbnR4Mi5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRl cy9uaWNzL2FmX3BhY2tldC5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2Ju eHQucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogICDCoCogVFg6IG9ubHkgdGhl IGZvbGxvd2luZyByZWR1Y2VkIHNldCBvZiB0cmFuc21pdCBvZmZsb2FkcyBpcyBzdXBwb3J0ZWQg aW4KICAgICAgdmVjdG9yIG1vZGU6OgoKICAgwqAgICBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1Rf RlJFRQoKICAgwqAqIFJYOiBvbmx5IHRoZSBmb2xsb3dpbmcgcmVkdWNlZCBzZXQgb2YgcmVjZWl2 ZSBvZmZsb2FkcyBpcyBzdXBwb3J0ZWQgaW4KICAgICAgdmVjdG9yIG1vZGUgKG5vdGUgdGhhdCBq dW1ibyBNVFUgaXMgYWxsb3dlZCBvbmx5IHdoZW4gdGhlIE1UVSBzZXR0aW5nCiAgICAgIGRvZXMg bm90IHJlcXVpcmUgYERFVl9SWF9PRkZMT0FEX1NDQVRURVJgIHRvIGJlIGVuYWJsZWQpOjoKCiAg IMKgICAgREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUAogICDCoCAgIERFVl9SWF9PRkZMT0FEX0tF RVBfQ1JDCiAgIMKgICAgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTQogICDCoCAgIERFVl9SWF9P RkZMT0FEX1VEUF9DS1NVTQogICDCoCAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTQogICDCoCAg IERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0KICAgwqAgICBERVZfUlhfT0ZGTE9BRF9P VVRFUl9VRFBfQ0tTVU0KICAgwqAgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSAogICDCoCAgIERF Vl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSCgpUaGUgQk5YVCBWZWN0b3IgUE1EIGlzIGVuYWJsZWQg aW4gRFBESyBidWlsZHMgYnkgZGVmYXVsdC4gVGhlIGRlY2lzaW9uIHRvIGVuYWJsZQp2ZWN0b3Ig cHJvY2Vzc2luZyBpcyBtYWRlIGF0IHJ1bi10aW1lIHdoZW4gdGhlIHBvcnQgaXMgc3RhcnRlZDsg aWYgbm8gdHJhbnNtaXQKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvbmljcy9ibnh0 LnJzdDo4NzcKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2VuaWMucnN0Li4uCkNoZWNr aW5nIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy5yc3QuLi4KSHVuayAjNCBzdWNjZWVk ZWQgYXQgMTc4IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMjA2IChvZmZz ZXQgMSBsaW5lKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMjIyIChvZmZzZXQgMSBsaW5lKS4KSHVu ayAjNyBzdWNjZWVkZWQgYXQgMjg4IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOCBzdWNjZWVkZWQg YXQgMzAzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMzQwIChvZmZzZXQg MSBsaW5lKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDM2MyAob2Zmc2V0IDEgbGluZSkuCkh1bmsg IzExIHN1Y2NlZWRlZCBhdCAzNzkgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxMiBzdWNjZWVkZWQg YXQgNDE3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDQzOSAob2Zmc2V0 IDEgbGluZSkuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCA0NjAgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICMxNSBzdWNjZWVkZWQgYXQgNDcwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTYgc3VjY2VlZGVk IGF0IDQ4OCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCA1MDkgKG9mZnNl dCAxIGxpbmUpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgNTIwIChvZmZzZXQgMSBsaW5lKS4KSHVu ayAjMTkgc3VjY2VlZGVkIGF0IDUzOSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzIwIHN1Y2NlZWRl ZCBhdCA1NDggKG9mZnNldCAxIGxpbmUpLgpIdW5rICMyMSBzdWNjZWVkZWQgYXQgNTU4IChvZmZz ZXQgMSBsaW5lKS4KSHVuayAjMjIgc3VjY2VlZGVkIGF0IDU3MSAob2Zmc2V0IDEgbGluZSkuCkh1 bmsgIzIzIHN1Y2NlZWRlZCBhdCA1ODUgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMyNCBzdWNjZWVk ZWQgYXQgNjA0IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNz L2ZtMTBrLnJzdC4uLgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvaW50ZWxfdmYucnN0 Li4uCkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9peGdiZS5yc3QuLi4KQ2hlY2tpbmcg cGF0Y2ggZG9jL2d1aWRlcy9uaWNzL21seDUucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgogIHNtYWxsLXBhY2tldCB0cmFmZmljLgoKICBXaGVuIE1QUlEgaXMgZW5hYmxlZCwgTVRV IGNhbiBiZSBsYXJnZXIgdGhhbiB0aGUgc2l6ZSBvZgogIHVzZXItcHJvdmlkZWQgbWJ1ZiBldmVu IGlmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgaXNuJ3QgZW5hYmxlZC4gUE1EIHdpbGwKICBjb25m aWd1cmUgbGFyZ2Ugc3RyaWRlIHNpemUgZW5vdWdoIHRvIGFjY29tbW9kYXRlIE1UVSBhcyBsb25n IGFzCiAgZGV2aWNlIGFsbG93cy4gTm90ZSB0aGF0IHRoaXMgY2FuIHdhc3RlIHN5c3RlbSBtZW1v cnkgY29tcGFyZWQgdG8gZW5hYmxpbmcgUngKICBzY2F0dGVyIGFuZCBtdWx0aS1zZWdtZW50IHBh Y2tldC4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvbmljcy9tbHg1LnJzdDo2MDcK Q2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL3RhcC5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2gg ZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2dlbmVyaWNfc2VnbWVudGF0aW9uX29mZmxvYWRfbGliLnJz dC4uLgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvbWJ1Zl9saWIucnN0Li4u CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9wb2xsX21vZGVfZHJ2LnJzdC4u LgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCkh1 bmsgIzEgc3VjY2VlZGVkIGF0IDE4MzUgKG9mZnNldCAtMTMzIGxpbmVzKS4KQ2hlY2tpbmcgcGF0 Y2ggZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9zZWN1cml0eS5yc3QuLi4KQ2hlY2tpbmcgcGF0 Y2ggZG9jL2d1aWRlcy9yZWxfbm90ZXMvZGVwcmVjYXRpb24ucnN0Li4uCkNoZWNraW5nIHBhdGNo IGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0Li4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgogIHRvIGJlIHRyYW5zcGFyZW50IGZvciBib3RoIHVzZXJzIChubyBjaGFu Z2VzIGluIHVzZXIgYXBwIGlzIHJlcXVpcmVkKSBhbmQKICBQTUQgZGV2ZWxvcGVycyAobm8gY2hh bmdlcyBpbiBQTUQgaXMgcmVxdWlyZWQpLgoKCktub3duIElzc3VlcwotLS0tLS0tLS0tLS0KCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0 OjM2OApDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3NhbXBsZV9hcHBfdWcvaXBzZWNfc2VjZ3cu cnN0Li4uCkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvcnVuX2FwcC5y c3QuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNTMxIChvZmZzZXQgLTYgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL2J1cy9kcGFhL2luY2x1ZGUvcHJvY2Vzcy5oLi4uCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvY29tbW9uL2NueGsvcm9jX25wYy5oLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0 IDE1NCAob2Zmc2V0IC02IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYWZfcGFj a2V0L3J0ZV9ldGhfYWZfcGFja2V0LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYWZf eGRwL3J0ZV9ldGhfYWZfeGRwLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXJrL2Fy a19ldGhkZXYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9hdGxhbnRpYy9hdGxfZXRo ZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkucmVtb3ZlID0gZXRoX2F0bF9w Y2lfcmVtb3ZlLAp9OwoKI2RlZmluZSBBVExfUlhfT0ZGTE9BRFMgKERFVl9SWF9PRkZMT0FEX1ZM QU5fU1RSSVAgXAoJCQl8IERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gXAoJCQl8IERFVl9SWF9P RkZMT0FEX1VEUF9DS1NVTSBcCgkJCXwgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIFwKCQkJfCBE RVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAgXAoJCQl8IERFVl9SWF9PRkZMT0FEX1ZMQU5fRklM VEVSKQoKI2RlZmluZSBBVExfVFhfT0ZGTE9BRFMgKERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJU IFwKCQkJfCBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIFwKCQkJfCBERVZfVFhfT0ZGTE9BRF9V RFBfQ0tTVU0gXAoJCQl8IERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSBcCgkJCXwgREVWX1RYX09G RkxPQURfVENQX1RTTyBcCgkJCXwgREVWX1RYX09GRkxPQURfTUFDU0VDX0lOU0VSVCBcCgkJCXwg REVWX1RYX09GRkxPQURfTVVMVElfU0VHUykKCiNkZWZpbmUgU0ZQX0VFUFJPTV9TSVpFIDB4MTAw CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYXRsYW50aWMvYXRsX2V0aGRldi5j OjE1NApIdW5rICMyIHN1Y2NlZWRlZCBhdCA0ODkgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMzIHN1 Y2NlZWRlZCBhdCA2NTYgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAxMTI4 IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMTE3NiAob2Zmc2V0IDEgbGlu ZSkuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDExOTkgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM3IHN1 Y2NlZWRlZCBhdCAxMzM0IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTUz MyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDE1NTQgKG9mZnNldCAxIGxp bmUpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMTczMSAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICMx MSBzdWNjZWVkZWQgYXQgMTc1NCAob2Zmc2V0IDQgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9hdGxhbnRpYy9hdGxfZXRoZGV2LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvYXRsYW50aWMvYXRsX3J4dHguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9hdnAv YXZwX2V0aGRldi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE5OTcgKG9mZnNldCAtMSBsaW5l cykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIxMzkgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzMg c3VjY2VlZGVkIGF0IDIxOTAgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0 IDIyMDQgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDIyMTUgKG9mZnNl dCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F4Z2JlL2F4Z2JlX2Rldi5j Li4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F4Z2JlL2F4Z2JlX2V0aGRldi5jLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJcnRlX2JpdF9yZWxheGVkX2NsZWFyMzIoQVhHQkVf RE9XTiwgJnBkYXRhLT5kZXZfc3RhdGUpOwoKCW1heF9wa3RfbGVuID0gZGV2X2RhdGEtPm10dSAr IFJURV9FVEhFUl9IRFJfTEVOICsgUlRFX0VUSEVSX0NSQ19MRU47CglpZiAoKGRldl9kYXRhLT5k ZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB8fAoJCQkJ bWF4X3BrdF9sZW4gPiBwZGF0YS0+cnhfYnVmX3NpemUpCgkJZGV2X2RhdGEtPnNjYXR0ZXJlZF9y eCA9IDE7CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfZXRo ZGV2LmM6Mzg1Ckh1bmsgIzQgc3VjY2VlZGVkIGF0IDUxOSAob2Zmc2V0IC0yIGxpbmVzKS4KSHVu ayAjNSBzdWNjZWVkZWQgYXQgNTUwIChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRl ZCBhdCA1ODggKG9mZnNldCAtMiBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDc2MyAob2Zm c2V0IC0yIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5mby0+bWF4 X3J4X3BrdGxlbiA9IEFYR0JFX1JYX01BWF9CVUZfU0laRTsKCWRldl9pbmZvLT5tYXhfbWFjX2Fk ZHJzID0gcGRhdGEtPmh3X2ZlYXQuYWRkbl9tYWMgKyAxOwoJZGV2X2luZm8tPm1heF9oYXNoX21h Y19hZGRycyA9IHBkYXRhLT5od19mZWF0Lmhhc2hfdGFibGVfc2l6ZTsKCWRldl9pbmZvLT5zcGVl ZF9jYXBhID0gIEVUSF9MSU5LX1NQRUVEXzEwRzsKCglkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBh ID0KCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfAoJCURFVl9SWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgfAoJCURFVl9SWF9PRkZMT0FE X1RDUF9DS1NVTSAgfAoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIJICB8CgkJREVWX1JYX09GRkxP QURfS0VFUF9DUkM7CgoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9CgkJREVWX1RYX09GRkxP QURfVkxBTl9JTlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKCQlERVZfVFhf T0ZGTE9BRF9JUFY0X0NLU1VNICB8CgkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNICAgfAoJCURF Vl9UWF9PRkZMT0FEX1RDUF9DS1NVTTsKCglpZiAocGRhdGEtPmh3X2ZlYXQucnNzKSB7CgkJZGV2 X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBBWEdCRV9SU1NfT0ZGTE9BRDsKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2F4Z2JlL2F4Z2JlX2V0aGRldi5jOjEyMDgKSHVu ayAjOSBzdWNjZWVkZWQgYXQgMTI2MSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMTAgc3VjY2Vl ZGVkIGF0IDEyOTcgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAxMzg1 IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMTg0MiAob2Zmc2V0IDEy IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDE4NjAgKG9mZnNldCAxMiBsaW5lcykuCkh1 bmsgIzE0IHN1Y2NlZWRlZCBhdCAxODc4IChvZmZzZXQgMTIgbGluZXMpLgpIdW5rICMxNSBzdWNj ZWVkZWQgYXQgMTkxNiAob2Zmc2V0IDEyIGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDE5 MjcgKG9mZnNldCAxMiBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAxOTM4IChvZmZzZXQg MTIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9heGdiZV9ldGhkZXYu aC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9heGdiZV9tZGlvLmMuLi4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfcnh0eC5jLi4uCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2JueDJ4L2JueDJ4X2V0aGRldi5jLi4uCkh1bmsgIzIgc3VjY2VlZGVk IGF0IDQxMiAob2Zmc2V0IDQgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWRl dl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEJOWDJYX01JTl9SWF9CVUZfU0laRTsKCWRldl9pbmZv LT5tYXhfcnhfcGt0bGVuICA9IEJOWDJYX01BWF9SWF9QS1RfTEVOOwoJZGV2X2luZm8tPm1heF9t YWNfYWRkcnMgID0gQk5YMlhfTUFYX01BQ19BRERSUzsKCWRldl9pbmZvLT5zcGVlZF9jYXBhID0g RVRIX0xJTktfU1BFRURfMTBHIHwgRVRIX0xJTktfU1BFRURfMjBHOwoKCWRldl9pbmZvLT5yeF9k ZXNjX2xpbS5uYl9tYXggPSBNQVhfUlhfQVZBSUw7CglkZXZfaW5mby0+cnhfZGVzY19saW0ubmJf bWluID0gTUlOX1JYX1NJWkVfTk9OVFBBOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvYm54MngvYm54MnhfZXRoZGV2LmM6NTM0Ckh1bmsgIzQgc3VjY2VlZGVkIGF0IDY3NSAob2Zm c2V0IDYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHQuaC4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2RlZmluZSBCTlhUX0ZXX1NUQVRVU19TSFVURE9X TgkJMHgxMDAwMDAKCiNkZWZpbmUgQk5YVF9FVEhfUlNTX1NVUFBPUlQgKAlcCglFVEhfUlNTX0lQ VjQgfAkJXAoJRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwJXAoJRVRIX1JTU19OT05GUkFHX0lQ VjRfVURQIHwJXAoJRVRIX1JTU19JUFY2IHwJCVwKCUVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8 CVwKCUVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8CVwKCUVUSF9SU1NfTEVWRUxfTUFTSykKCiNk ZWZpbmUgQk5YVF9ERVZfVFhfT0ZGTE9BRF9TVVBQT1JUIChERVZfVFhfT0ZGTE9BRF9JUFY0X0NL U1VNIHwgXAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCgkJCQkgICAgIERF Vl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfVENQX1RT TyB8IFwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKCQkJCSAg ICAgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8IFwKCQkJCSAgICAgREVWX1RYX09GRkxP QURfR1JFX1ROTF9UU08gfCBcCgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8 IFwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfCBcCgkJCQkgICAgIERF Vl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwgXAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9NVUxU SV9TRUdTKQoKI2RlZmluZSBCTlhUX0RFVl9SWF9PRkZMT0FEX1NVUFBPUlQgKERFVl9SWF9PRkZM T0FEX1ZMQU5fRklMVEVSIHwgXAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwg XAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCgkJCQkgICAgIERFVl9SWF9P RkZMT0FEX1RDUF9DS1NVTSB8IFwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9D S1NVTSB8IFwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwgXAoJCQkJ ICAgICBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8IFwKCQkJCSAgICAgREVWX1JYX09GRkxPQURf VkxBTl9FWFRFTkQgfCBcCgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfCBcCgkJCQkg ICAgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfCBcCgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1JT U19IQVNIKQoKI2RlZmluZSBCTlhUX0hXUk1fU0hPUlRfUkVRX0xFTgkJc2l6ZW9mKHN0cnVjdCBo d3JtX3Nob3J0X2lucHV0KQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2JueHQv Ym54dC5oOjU2OQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZXRoZGV2LmMu Li4KSHVuayAjMyBzdWNjZWVkZWQgYXQgNDk5IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzQgc3Vj Y2VlZGVkIGF0IDkyNCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDk5NiAo b2Zmc2V0IDEgbGluZSkuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDEwNTAgKG9mZnNldCAxIGxpbmUp LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAgICAodWludDMyX3QpKGV0aF9kZXYtPmRh dGEtPm5iX3J4X3F1ZXVlcykgPiBicC0+bWF4X3JpbmdfZ3JwcykKCQlnb3RvIHJlc291cmNlX2Vy cm9yOwoKCWlmICghKGV0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlICYgRVRI X01RX1JYX1JTUykgJiYKCSAgICBicC0+bWF4X3ZuaWNzIDwgZXRoX2Rldi0+ZGF0YS0+bmJfcnhf cXVldWVzKQoJCWdvdG8gcmVzb3VyY2VfZXJyb3I7CgoJYnAtPnJ4X2NwX25yX3JpbmdzID0gYnAt PnJ4X25yX3JpbmdzOwoJYnAtPnR4X2NwX25yX3JpbmdzID0gYnAtPnR4X25yX3JpbmdzOwoKCWlm IChldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSAmIEVUSF9NUV9SWF9SU1Nf RkxBRykKCQlyeF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCWV0aF9kZXYt PmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyA9IHJ4X29mZmxvYWRzOwoKCWJueHRfbXR1 X3NldF9vcChldGhfZGV2LCBldGhfZGV2LT5kYXRhLT5tdHUpOwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvYm54dC9ibnh0X2V0aGRldi5jOjExNDUKSHVuayAjOCBzdWNjZWVkZWQg YXQgMTE4OCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxMjA0IChvZmZz ZXQgNSBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJICogYSBsaW1pdGVkIHN1 YnNldCBoYXZlIGJlZW4gZW5hYmxlZC4KCSAqLwoJaWYgKGV0aF9kZXYtPmRhdGEtPmRldl9jb25m LnJ4bW9kZS5vZmZsb2FkcyAmCgkJfihERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKCQkgIERF Vl9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwKCQkgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJ CSAgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQkgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NV TSB8CgkJICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQkgIERFVl9SWF9PRkZM T0FEX09VVEVSX1VEUF9DS1NVTSB8CgkJICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8CgkJICBE RVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikpCgkJZ290byB1c2Vfc2NhbGFyX3J4OwoKI2lmIGRl ZmluZWQoUlRFX0FSQ0hfWDg2KSAmJiBkZWZpbmVkKENDX0FWWDJfU1VQUE9SVCkKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYzoxMjQ3Ckh1bmsgIzEx IHN1Y2NlZWRlZCBhdCAxMzEzIChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBh dCAxNjE0IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAxODM5IChvZmZz ZXQgNiBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAyMDM0IChvZmZzZXQgNiBsaW5lcyku Ckh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAyMDQ3IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzE2IHN1 Y2NlZWRlZCBhdCAyMTAxIChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAy MTQwIChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAyMTU4IChvZmZzZXQg NiBsaW5lcykuCkh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAyMjAzIChvZmZzZXQgNiBsaW5lcykuCkh1 bmsgIzIwIHN1Y2NlZWRlZCBhdCAyMjY2IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzIxIHN1Y2Nl ZWRlZCBhdCAyMjk5IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzIyIHN1Y2NlZWRlZCBhdCAyMzE0 IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzIzIHN1Y2NlZWRlZCBhdCAyMzI1IChvZmZzZXQgNiBs aW5lcykuCkh1bmsgIzI0IHN1Y2NlZWRlZCBhdCAyMzU2IChvZmZzZXQgNiBsaW5lcykuCkh1bmsg IzI1IHN1Y2NlZWRlZCBhdCAyMzcwIChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzI2IHN1Y2NlZWRl ZCBhdCAyNDE5IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzI3IHN1Y2NlZWRlZCBhdCAyNDM2IChv ZmZzZXQgNiBsaW5lcykuCkh1bmsgIzI4IHN1Y2NlZWRlZCBhdCAyNjE0IChvZmZzZXQgNiBsaW5l cykuCkh1bmsgIzI5IHN1Y2NlZWRlZCBhdCAyNjM0IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzMw IHN1Y2NlZWRlZCBhdCAyNjQ3IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzMxIHN1Y2NlZWRlZCBh dCAyNjg2IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzMyIHN1Y2NlZWRlZCBhdCAyNzA0IChvZmZz ZXQgNiBsaW5lcykuCkh1bmsgIzMzIHN1Y2NlZWRlZCBhdCAyNzI0IChvZmZzZXQgNiBsaW5lcyku Ckh1bmsgIzM0IHN1Y2NlZWRlZCBhdCAyNzU0IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzM1IHN1 Y2NlZWRlZCBhdCAyNzY5IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzM2IHN1Y2NlZWRlZCBhdCAy Nzk3IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzM3IHN1Y2NlZWRlZCBhdCAyODM3IChvZmZzZXQg NiBsaW5lcykuCi5naXQvcmViYXNlLWFwcGx5L3BhdGNoOjQ2NDE6IG5ldyBibGFuayBsaW5lIGF0 IEVPRi4KKwpIdW5rICMzOCBzdWNjZWVkZWQgYXQgNjU2OCAob2Zmc2V0IDEyIGxpbmVzKS4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X2Zsb3cuYy4uLgpIdW5rICMxIHN1Y2Nl ZWRlZCBhdCA5NzQgKG9mZnNldCAtNCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJfQoKCS8qIElmIFJTUyB0eXBlcyBpcyAwLCB1c2UgYSBiZXN0IGVmZm9ydCBjb25maWd1cmF0 aW9uICovCgl0eXBlcyA9IHJzcy0+dHlwZXMgPyByc3MtPnR5cGVzIDogRVRIX1JTU19JUFY0OwoK CWhhc2hfdHlwZSA9IGJueHRfcnRlX3RvX2h3cm1faGFzaF90eXBlcyh0eXBlcyk7CgoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYm54dC9ibnh0X2Zsb3cuYzoxMTc3Ckh1bmsgIzMg c3VjY2VlZGVkIGF0IDExNTcgKG9mZnNldCAtMTY1IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYy4uLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAyOTcwIChv ZmZzZXQgLTkgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyOTkyIChvZmZzZXQgLTkgbGlu ZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAzMDQ5IChvZmZzZXQgLTkgbGluZXMpLgpIdW5rICM1 IHN1Y2NlZWRlZCBhdCAzMDYyIChvZmZzZXQgLTkgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBh dCAzMDk4IChvZmZzZXQgLTkgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAzMTc1IChvZmZz ZXQgLTkgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAzMjEzIChvZmZzZXQgLTkgbGluZXMp LgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAzMjQ0IChvZmZzZXQgLTkgbGluZXMpLgpIdW5rICMxMCBz dWNjZWVkZWQgYXQgMzMzNSAob2Zmc2V0IC05IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvYm54dC9ibnh0X3JlcHMuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA1MzYgKG9mZnNl dCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yaW5nLmMu Li4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCXJ4X3JpbmdfaW5mby0+cnhfcmluZ19z dHJ1Y3QtPnJpbmdfc2l6ZSAqCgkJCUFHR19SSU5HX1NJWkVfRkFDVE9SKSkgOiAwOwoKCQlpZiAo cnhfcmluZ19pbmZvICYmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8pKSB7 CgkJCWludCB0cGFfbWF4ID0gQk5YVF9UUEFfTUFYX0FHR1MoYnApOwoKCQkJdHBhX2luZm9fbGVu ID0gdHBhX21heCAqIHNpemVvZihzdHJ1Y3QgYm54dF90cGFfaW5mbyk7CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9ibnh0L2JueHRfcmluZy5jOjE4NwplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCQkJCQkgICAgYWdfYml0bWFwX3N0YXJ0LCBhZ19iaXRtYXBfbGVuKTsKCgkJ CS8qIFRQQSBpbmZvICovCgkJCWlmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1RDUF9M Uk8pCgkJCQlyeF9yaW5nX2luZm8tPnRwYV9pbmZvID0KCQkJCQkoKHN0cnVjdCBibnh0X3RwYV9p bmZvICopCgkJCQkJICgoY2hhciAqKW16LT5hZGRyICsgdHBhX2luZm9fc3RhcnQpKTsKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9yaW5nLmM6MjgzCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yeHEuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBh dCA0MSAob2Zmc2V0IC0xMSBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDU1IChvZmZzZXQg LTExIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTAwIChvZmZzZXQgLTExIGxpbmVzKS4K SHVuayAjNCBzdWNjZWVkZWQgYXQgMTEwIChvZmZzZXQgLTExIGxpbmVzKS4KSHVuayAjNSBzdWNj ZWVkZWQgYXQgMTM2IChvZmZzZXQgLTExIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMzQx IChvZmZzZXQgLTIyIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgNDU2IChvZmZzZXQgLTIy IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgNTI3IChvZmZzZXQgLTIyIGxpbmVzKS4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4ci5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2JueHQvYm54dF9yeHR4X3ZlY19hdngyLmMuLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4dHhfdmVjX2NvbW1vbi5oLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2JueHQvYm54dF9yeHR4X3ZlY19uZW9uLmMuLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4dHhfdmVjX3NzZS5jLi4uCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2JueHQvYm54dF90eHIuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9i bnh0L2JueHRfdm5pYy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvcnRlX3Bt ZF9ibnh0LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm9uZGluZy9ldGhfYm9uZF9w cml2YXRlLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2Jv bmRfODAyM2FkLmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQgODY2IChvZmZzZXQgLTIxIGxpbmVz KS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfYXBpLmMu Li4KSHVuayAjMiBzdWNjZWVkZWQgYXQgNTg2IChvZmZzZXQgLTYgbGluZXMpLgpIdW5rICMzIHN1 Y2NlZWRlZCBhdCA3MjEgKG9mZnNldCAtNiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kX3BtZC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJCXNsYXZlX2V0aF9kZXYtPmRhdGEtPmRldl9jb25mLmludHJfY29uZi5sc2MgPSAxOwoK CS8qIElmIFJTUyBpcyBlbmFibGVkIGZvciBib25kaW5nLCB0cnkgdG8gZW5hYmxlIGl0IGZvciBz bGF2ZXMgICovCglpZiAoYm9uZGVkX2V0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9t b2RlICYgRVRIX01RX1JYX1JTU19GTEFHKSB7CgkJLyogcnNzX2tleSB3b24ndCBiZSBlbXB0eSBp ZiBSU1MgaXMgY29uZmlndXJlZCBpbiBib25kZWQgZGV2ICovCgkJc2xhdmVfZXRoX2Rldi0+ZGF0 YS0+ZGV2X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2tleV9sZW4gPQoJCQkJCWludGVy bmFscy0+cnNzX2tleV9sZW47CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9ib25k aW5nL3J0ZV9ldGhfYm9uZF9wbWQuYzoxNzAwCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ fQoKCWlmIChib25kZWRfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYK CQkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIpCgkJc2xhdmVfZXRoX2Rldi0+ZGF0YS0+ZGV2 X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9CgkJCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsK CWVsc2UKCQlzbGF2ZV9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJj0K CQkJCX5ERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsKCglzbGF2ZV9ldGhfZGV2LT5kYXRhLT5k ZXZfY29uZi5yeG1vZGUubXR1ID0KCQkJYm9uZGVkX2V0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4 bW9kZS5tdHU7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9l dGhfYm9uZF9wbWQuYzoxNzE0Ckh1bmsgIzQgc3VjY2VlZGVkIGF0IDE4MzQgKG9mZnNldCAxMSBs aW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDE5NTcgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsg IzYgc3VjY2VlZGVkIGF0IDIwOTcgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVk IGF0IDI0MjYgKG9mZnNldCAxMCBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDI0NTkgKG9m ZnNldCAxMCBsaW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDI1MDEgKG9mZnNldCAxMCBsaW5l cykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAyODc1IChvZmZzZXQgMTAgbGluZXMpLgpIdW5rICMx MSBzdWNjZWVkZWQgYXQgMjg5MSAob2Zmc2V0IDEwIGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVk IGF0IDI5ODMgKG9mZnNldCAxMCBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAzMDIxIChv ZmZzZXQgMTAgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMzI4MiAob2Zmc2V0IDggbGlu ZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAqIHNldCBrZXkgdG8gdGhlIHRoZSB2 YWx1ZSBzcGVjaWZpZWQgaW4gcG9ydCBSU1MgY29uZmlndXJhdGlvbi4KCSAqIEZhbGwgYmFjayB0 byBkZWZhdWx0IFJTUyBrZXkgaWYgdGhlIGtleSBpcyBub3Qgc3BlY2lmaWVkCgkgKi8KCWlmIChk ZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlICYgRVRIX01RX1JYX1JTUykgewoJCXN0 cnVjdCBydGVfZXRoX3Jzc19jb25mICpyc3NfY29uZiA9CgkJCSZkZXYtPmRhdGEtPmRldl9jb25m LnJ4X2Fkdl9jb25mLnJzc19jb25mOwoJCWlmIChyc3NfY29uZi0+cnNzX2tleSAhPSBOVUxMKSB7 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9w bWQuYzozNTAxCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAzNTI0IChvZmZzZXQgLTIgbGluZXMpLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NuMTBrX2V0aGRldi5jLi4uCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY24xMGtfcnRlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsKCX0KCglpZiAoZXRoX2Rldi0+ZGF0YS0+ ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgIT0gRVRIX01RX1JYX1JTUykgewoJCXBsdF9lcnIoIm11 bHRpLXF1ZXVlIG1vZGUgaXMgZGlzYWJsZWQiKTsKCQlyZXR1cm4gLUVOT1RTVVA7Cgl9CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9jbnhrL2NuMTBrX3J0ZV9mbG93LmM6OTgKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbjEwa19yeC5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2NueGsvY24xMGtfdHguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9jbnhrL2NuOWtfZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9j bjlrX3J4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbjlrX3R4LmMuLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRldi5jLi4uCkh1bmsgIzcg c3VjY2VlZGVkIGF0IDE1MCAob2Zmc2V0IC0zMiBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0 IDE2NyAob2Zmc2V0IC0zMiBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJYnVm ZnN6ID0gbWJwX3ByaXYtPm1idWZfZGF0YV9yb29tX3NpemUgLSBSVEVfUEtUTUJVRl9IRUFEUk9P TTsKCglpZiAoZXRoX2Rldi0+ZGF0YS0+bXR1ICsgKHVpbnQzMl90KUNOWEtfTklYX0wyX09WRVJI RUFEID4gYnVmZnN6KSB7CgkJZGV2LT5yeF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSOwoJCWRldi0+dHhfb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCX0K fQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuYzoy NDIKSHVuayAjMTAgc3VjY2VlZGVkIGF0IDI0NiAob2Zmc2V0IC0yNyBsaW5lcykuCkh1bmsgIzEx IHN1Y2NlZWRlZCBhdCAyNTQgKG9mZnNldCAtMjcgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQg YXQgMjc4IChvZmZzZXQgLTI3IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDMyNSAob2Zm c2V0IC0yNyBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAzNTMgKG9mZnNldCAtMjcgbGlu ZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgNDcyIChvZmZzZXQgLTI3IGxpbmVzKS4KSHVuayAj MTYgc3VjY2VlZGVkIGF0IDUzNCAob2Zmc2V0IC0yNyBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRl ZCBhdCA1NTIgKG9mZnNldCAtMjcgbGluZXMpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgNTkxIChv ZmZzZXQgLTI3IGxpbmVzKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDYzMCAob2Zmc2V0IC0yNyBs aW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCA2NTYgKG9mZnNldCAtMjcgbGluZXMpLgpIdW5r ICMyMSBzdWNjZWVkZWQgYXQgNzA5IChvZmZzZXQgLTM3IGxpbmVzKS4KSHVuayAjMjIgc3VjY2Vl ZGVkIGF0IDkyMSAob2Zmc2V0IC0zNyBsaW5lcykuCkh1bmsgIzIzIHN1Y2NlZWRlZCBhdCA5NzAg KG9mZnNldCAtMzcgbGluZXMpLgpIdW5rICMyNCBzdWNjZWVkZWQgYXQgMTAxMiAob2Zmc2V0IC00 MiBsaW5lcykuCkh1bmsgIzI1IHN1Y2NlZWRlZCBhdCAxMDIwIChvZmZzZXQgLTQyIGxpbmVzKS4K SHVuayAjMjYgc3VjY2VlZGVkIGF0IDE0MDYgKG9mZnNldCAtNDggbGluZXMpLgpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkgQ05YS19OSVhfVFhfTkJfU0VHX01BWCkKCiNkZWZpbmUgQ05YS19OSVhfUlNT X0wzX0w0X1NSQ19EU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCgkoRVRIX1JTU19MM19TUkNfT05MWSB8IEVUSF9SU1NfTDNfRFNUX09OTFkgfCBFVEhfUlNT X0w0X1NSQ19PTkxZIHwgICAgIFwKCSBFVEhfUlNTX0w0X0RTVF9PTkxZKQoKI2RlZmluZSBDTlhL X05JWF9SU1NfT0ZGTE9BRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKCShFVEhfUlNTX1BPUlQgfCBFVEhfUlNTX0lQIHwgRVRIX1JTU19VRFAgfCBF VEhfUlNTX1RDUCB8ICAgICAgICAgICAgICAgXAoJIEVUSF9SU1NfU0NUUCB8IEVUSF9SU1NfVFVO TkVMIHwgRVRIX1JTU19MMl9QQVlMT0FEIHwgICAgICAgICAgICAgICAgICBcCgkgQ05YS19OSVhf UlNTX0wzX0w0X1NSQ19EU1QgfCBFVEhfUlNTX0xFVkVMX01BU0sgfCBFVEhfUlNTX0NfVkxBTikK CiNkZWZpbmUgQ05YS19OSVhfVFhfT0ZGTE9BRF9DQVBBICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCgkoREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUg fCBERVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRSB8ICAgICAgICAgIFwKCSBERVZfVFhfT0ZGTE9B RF9WTEFOX0lOU0VSVCB8IERFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwgICAgICAgICAgICAg XAoJIERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBERVZfVFhfT0ZGTE9BRF9PVVRF Ul9VRFBfQ0tTVU0gfCAgICBcCgkgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwgREVWX1RYX09G RkxPQURfVURQX0NLU1VNIHwgICAgICAgICAgICAgICAgIFwKCSBERVZfVFhfT0ZGTE9BRF9TQ1RQ X0NLU1VNIHwgREVWX1RYX09GRkxPQURfVENQX1RTTyB8ICAgICAgICAgICAgICAgICAgXAoJIERF Vl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfCBERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RT TyB8ICAgICAgICBcCgkgREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfCBERVZfVFhfT0ZGTE9B RF9NVUxUSV9TRUdTIHwgICAgICAgICAgICAgIFwKCSBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VN IHwgREVWX1RYX09GRkxPQURfU0VDVVJJVFkpCgojZGVmaW5lIENOWEtfTklYX1JYX09GRkxPQURf Q0FQQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJKERF Vl9SWF9PRkZMT0FEX0NIRUNLU1VNIHwgREVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSB8ICAgICAg ICAgICAgICAgICBcCgkgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IERFVl9SWF9P RkZMT0FEX1NDQVRURVIgfCAgICAgICAgICAgIFwKCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBf Q0tTVU0gfCBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8ICAgICAgICAgICAgXAoJIERFVl9SWF9P RkZMT0FEX1RJTUVTVEFNUCB8IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfCAgICAgICAgICAg ICAgICBcCgkgREVWX1JYX09GRkxPQURfU0VDVVJJVFkpCgojZGVmaW5lIFJTU19JUFY0X0VOQUJM RSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAoJKEVUSF9SU1NfSVBWNCB8IEVUSF9SU1NfRlJBR19JUFY0IHwgRVRIX1JTU19OT05GUkFHX0lQ VjRfVURQIHwgICAgICAgICBcCgkgRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwgRVRIX1JTU19O T05GUkFHX0lQVjRfU0NUUCkKCiNkZWZpbmUgUlNTX0lQVjZfRU5BQkxFICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgkoRVRIX1JTU19JUFY2 IHwgRVRIX1JTU19GUkFHX0lQVjYgfCBFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCAgICAgICAg IFwKCSBFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBFVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQ KQoKI2RlZmluZSBSU1NfSVBWNl9FWF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKCShFVEhfUlNTX0lQVjZfRVggfCBFVEhfUlNTX0lQ VjZfVENQX0VYIHwgRVRIX1JTU19JUFY2X1VEUF9FWCkKCiNkZWZpbmUgUlNTX01BWF9MRVZFTFMg MwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuaDo1 OApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2X2RldmFyZ3MuYy4u LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2X29wcy5jLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXVpbnQ2NF90IGZsYWdzOwoJCWNvbnN0IGNoYXIg Km91dHB1dDsKCX0gcnhfb2ZmbG9hZF9tYXBbXSA9IHsKCQl7REVWX1JYX09GRkxPQURfVkxBTl9T VFJJUCwgIiBWTEFOIFN0cmlwLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNLCAiIElu bmVyIElQdjQgQ2hlY2tzdW0sIn0sCgkJe0RFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSwgIiBVRFAg Q2hlY2tzdW0sIn0sCgkJe0RFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSwgIiBUQ1AgQ2hlY2tzdW0s In0sCgkJe0RFVl9SWF9PRkZMT0FEX1RDUF9MUk8sICIgVENQIExSTywifSwKCQl7REVWX1JYX09G RkxPQURfUUlOUV9TVFJJUCwgIiBRaW5RIFZMQU4gU3RyaXAsIn0sCgkJe0RFVl9SWF9PRkZMT0FE X09VVEVSX0lQVjRfQ0tTVU0sICIgT3V0ZXIgSVB2NCBDaGVja3N1bSwifSwKCQl7REVWX1JYX09G RkxPQURfTUFDU0VDX1NUUklQLCAiIE1BQ3NlYyBTdHJpcCwifSwKCQl7REVWX1JYX09GRkxPQURf SEVBREVSX1NQTElULCAiIEhlYWRlciBTcGxpdCwifSwKCQl7REVWX1JYX09GRkxPQURfVkxBTl9G SUxURVIsICIgVkxBTiBGaWx0ZXIsIn0sCgkJe0RFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5ELCAi IFZMQU4gRXh0ZW5kLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSLCAiIFNjYXR0ZXJlZCwi fSwKCQl7REVWX1JYX09GRkxPQURfVElNRVNUQU1QLCAiIFRpbWVzdGFtcCwifSwKCQl7REVWX1JY X09GRkxPQURfU0VDVVJJVFksICIgU2VjdXJpdHksIn0sCgkJe0RFVl9SWF9PRkZMT0FEX0tFRVBf Q1JDLCAiIEtlZXAgQ1JDLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNLCAiIFNDVFAs In0sCgkJe0RFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSwgIiBPdXRlciBVRFAgQ2hlY2tz dW0sIn0sCgkJe0RFVl9SWF9PRkZMT0FEX1JTU19IQVNILCAiIFJTUywifQoJfTsKCXN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBidXJzdF9tb2RlW10gPSB7IlZlY3RvciBOZW9uLCBSeCBPZmZsb2Fk czoiLAoJCQkJCQkgIlNjYWxhciwgUnggT2ZmbG9hZHM6IgoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRldl9vcHMuYzo4MQpIdW5rICMyIHN1Y2NlZWRlZCBh dCAxNDMgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyMDQgKG9mZnNldCAx IGxpbmUpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAyNjUgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM1 IHN1Y2NlZWRlZCBhdCA0MDkgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA3 NDYgKG9mZnNldCAxMiBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDc4MiAob2Zmc2V0IDEy IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgODE2IChvZmZzZXQgMTIgbGluZXMpLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtfbGluay5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2NueGsvY254a19wdHAuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9jbnhrL2NueGtfcnRlX2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9jeGdi ZS9jeGdiZS5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojZGVmaW5lIENYR0JFX0xJ TktfU1RBVFVTX1BPTExfQ05UIDEwMCAvKiBNYXggbnVtYmVyIG9mIHRpbWVzIHRvIHBvbGwgKi8K CiNkZWZpbmUgQ1hHQkVfREVGQVVMVF9SU1NfS0VZX0xFTiAgICAgNDAgLyogMzIwLWJpdHMgKi8K I2RlZmluZSBDWEdCRV9SU1NfSEZfSVBWNF9NQVNLIChFVEhfUlNTX0lQVjQgfCBFVEhfUlNTX0ZS QUdfSVBWNCB8IFwKCQkJCUVUSF9SU1NfTk9ORlJBR19JUFY0X09USEVSKQojZGVmaW5lIENYR0JF X1JTU19IRl9JUFY2X01BU0sgKEVUSF9SU1NfSVBWNiB8IEVUSF9SU1NfRlJBR19JUFY2IHwgXAoJ CQkJRVRIX1JTU19OT05GUkFHX0lQVjZfT1RIRVIgfCBcCgkJCQlFVEhfUlNTX0lQVjZfRVgpCiNk ZWZpbmUgQ1hHQkVfUlNTX0hGX1RDUF9JUFY2X01BU0sgKEVUSF9SU1NfTk9ORlJBR19JUFY2X1RD UCB8IFwKCQkJCSAgICBFVEhfUlNTX0lQVjZfVENQX0VYKQojZGVmaW5lIENYR0JFX1JTU19IRl9V RFBfSVBWNl9NQVNLIChFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCgkJCQkgICAgRVRIX1JT U19JUFY2X1VEUF9FWCkKI2RlZmluZSBDWEdCRV9SU1NfSEZfQUxMIChFVEhfUlNTX0lQIHwgRVRI X1JTU19UQ1AgfCBFVEhfUlNTX1VEUCkKCi8qIFR4L1J4IE9mZmxvYWRzIHN1cHBvcnRlZCAqLwoj ZGVmaW5lIENYR0JFX1RYX09GRkxPQURTIChERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8IFwK CQkJICAgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKCQkJICAgREVWX1RYX09GRkxPQURf VURQX0NLU1VNIHwgXAoJCQkgICBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCgkJCSAgIERF Vl9UWF9PRkZMT0FEX1RDUF9UU08gfCBcCgkJCSAgIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1Mp CgojZGVmaW5lIENYR0JFX1JYX09GRkxPQURTIChERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwg XAoJCQkgICBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAoJCQkgICBERVZfUlhfT0ZGTE9B RF9VRFBfQ0tTVU0gfCBcCgkJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8IFwKCQkJICAg REVWX1JYX09GRkxPQURfU0NBVFRFUiB8IFwKCQkJICAgREVWX1JYX09GRkxPQURfUlNTX0hBU0gp CgovKiBEZXZhcmdzIGZpbHRlcm1vZGUgYW5kIGZpbHRlcm1hc2sgcmVwcmVzZW50YXRpb24gKi8K ZW51bSBjeGdiZV9kZXZhcmdzX2ZpbHRlcl9tb2RlX2ZsYWdzIHsKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlLmg6MjgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvY3hnYmUvY3hnYmVfZXRoZGV2LmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMzk2IChvZmZz ZXQgMjIgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA0NjAgKG9mZnNldCAyMiBsaW5lcyku Ckh1bmsgIzQgc3VjY2VlZGVkIGF0IDExMDkgKG9mZnNldCAyOSBsaW5lcykuCkh1bmsgIzUgc3Vj Y2VlZGVkIGF0IDExMjggKG9mZnNldCAyOSBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDEy MjkgKG9mZnNldCAyOSBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDEyNzUgKG9mZnNldCAy OSBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDEzMDYgKG9mZnNldCAyOSBsaW5lcykuCkh1 bmsgIzkgc3VjY2VlZGVkIGF0IDE1MDggKG9mZnNldCAyOSBsaW5lcykuCkh1bmsgIzEwIHN1Y2Nl ZWRlZCBhdCAxNTE3IChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMTUy NiAob2Zmc2V0IDI5IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY3hnYmUvY3hn YmVfbWFpbi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE2NzEgKG9mZnNldCAxIGxpbmUpLgpI dW5rICMyIHN1Y2NlZWRlZCBhdCAxNjk1IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMyBzdWNjZWVk ZWQgYXQgMTcyNiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDE4NjYgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxOTUzIChvZmZzZXQgMSBsaW5lKS4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoKLyogU3VwcG9ydGVkIFJ4IG9mZmxvYWRzICovCnN0YXRpYyB1 aW50NjRfdCBkZXZfcnhfb2ZmbG9hZHNfc3VwID0KCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwoK LyogUnggb2ZmbG9hZHMgd2hpY2ggY2Fubm90IGJlIGRpc2FibGVkICovCnN0YXRpYyB1aW50NjRf dCBkZXZfcnhfb2ZmbG9hZHNfbm9kaXMgPQoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJ CURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwK CQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9SU1Nf SEFTSDsKCi8qIFN1cHBvcnRlZCBUeCBvZmZsb2FkcyAqLwpzdGF0aWMgdWludDY0X3QgZGV2X3R4 X29mZmxvYWRzX3N1cCA9CgkJREVWX1RYX09GRkxPQURfTVRfTE9DS0ZSRUUgfAoJCURFVl9UWF9P RkZMT0FEX01CVUZfRkFTVF9GUkVFOwoKLyogVHggb2ZmbG9hZHMgd2hpY2ggY2Fubm90IGJlIGRp c2FibGVkICovCnN0YXRpYyB1aW50NjRfdCBkZXZfdHhfb2ZmbG9hZHNfbm9kaXMgPQoJCURFVl9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVW X1RYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQlE RVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9T RUdTOwoKLyogS2VlcCB0cmFjayBvZiB3aGV0aGVyIFFNQU4gYW5kIEJNQU4gaGF2ZSBiZWVuIGds b2JhbGx5IGluaXRpYWxpemVkICovCnN0YXRpYyBpbnQgaXNfZ2xvYmFsX2luaXQ7CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9kcGFhL2RwYWFfZXRoZGV2LmM6NTQKZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgoJZm1hbl9pZl9zZXRfbWF4ZnJtKGRldi0+cHJvY2Vzc19wcml2 YXRlLCBtYXhfcnhfcGt0bGVuKTsKCglpZiAocnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9T Q0FUVEVSKSB7CgkJRFBBQV9QTURfREVCVUcoImVuYWJsaW5nIHNjYXR0ZXIgbW9kZSIpOwoJCWZt YW5faWZfc2V0X3NnKGRldi0+cHJvY2Vzc19wcml2YXRlLCAxKTsKCQlkZXYtPmRhdGEtPnNjYXR0 ZXJlZF9yeCA9IDE7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9kcGFhL2RwYWFf ZXRoZGV2LmM6MjM4Ckh1bmsgIzMgc3VjY2VlZGVkIGF0IDMwNCAob2Zmc2V0IDIxIGxpbmVzKS4K SHVuayAjNCBzdWNjZWVkZWQgYXQgNTU2IChvZmZzZXQgMjEgbGluZXMpLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQl1aW50NjRfdCBmbGFnczsKCQljb25zdCBjaGFyICpvdXRwdXQ7Cgl9 IHJ4X29mZmxvYWRfbWFwW10gPSB7CgkJCXtERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSLCAiIFNjYXR0 ZXJlZCwifSwKCQkJe0RFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0sICIgSVBWNCBjc3VtLCJ9LAoJ CQl7REVWX1JYX09GRkxPQURfVURQX0NLU1VNLCAiIFVEUCBjc3VtLCJ9LAoJCQl7REVWX1JYX09G RkxPQURfVENQX0NLU1VNLCAiIFRDUCBjc3VtLCJ9LAoJCQl7REVWX1JYX09GRkxPQURfT1VURVJf SVBWNF9DS1NVTSwgIiBPdXRlciBJUFY0IGNzdW0sIn0sCgkJCXtERVZfUlhfT0ZGTE9BRF9SU1Nf SEFTSCwgIiBSU1MsIn0KCX07CgoJLyogVXBkYXRlIFJ4IG9mZmxvYWQgaW5mbyAqLwoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jOjU5MQpIdW5rICM2 IHN1Y2NlZWRlZCBhdCA2NDUgKG9mZnNldCAyMiBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0 IDY4NiAob2Zmc2V0IDIyIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgNjk3IChvZmZzZXQg MjIgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWlmIChtYXhfcnhfcGt0bGVu IDw9IGJ1ZmZzeikgewoJCTsKCX0gZWxzZSBpZiAoZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUu b2ZmbG9hZHMgJgoJCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CgkJaWYgKG1heF9yeF9wa3Rs ZW4gPiBidWZmc3ogKiBEUEFBX1NHVF9NQVhfRU5UUklFUykgewoJCQlEUEFBX1BNRF9FUlIoIk1h eGltdW0gUnggcGFja2V0IHNpemUgJWQgdG9vIGJpZyB0byBmaXQgIgoJCQkJIk1heFNHbGlzdCAl ZCIsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9kcGFhL2RwYWFfZXRoZGV2LmM6 OTYyCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAxMjkyIChvZmZzZXQgMjQgbGluZXMpLgpIdW5rICMx MSBzdWNjZWVkZWQgYXQgMTMwOCAob2Zmc2V0IDI0IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVk IGF0IDEzMzggKG9mZnNldCAyNCBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAxMzg1IChv ZmZzZXQgMjQgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTY1MCAob2Zmc2V0IDI0IGxp bmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5oLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2RwYWEvZHBhYV9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvZHBhYTIvYmFzZS9kcGFhMl9od19kcG5pLmMuLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgovKiBTdXBwb3J0ZWQgUnggb2ZmbG9hZHMgKi8Kc3RhdGljIHVpbnQ2NF90IGRl dl9yeF9vZmZsb2Fkc19zdXAgPQoJCURFVl9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKCQlERVZfUlhf T0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwK CQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5f U1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9U SU1FU1RBTVA7CgovKiBSeCBvZmZsb2FkcyB3aGljaCBjYW5ub3QgYmUgZGlzYWJsZWQgKi8Kc3Rh dGljIHVpbnQ2NF90IGRldl9yeF9vZmZsb2Fkc19ub2RpcyA9CgkJREVWX1JYX09GRkxPQURfUlNT X0hBU0ggfAoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgovKiBTdXBwb3J0ZWQgVHggb2ZmbG9h ZHMgKi8Kc3RhdGljIHVpbnQ2NF90IGRldl90eF9vZmZsb2Fkc19zdXAgPQoJCURFVl9UWF9PRkZM T0FEX1ZMQU5fSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfVFhf T0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1RY X09GRkxPQURfU0NUUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8 CgkJREVWX1RYX09GRkxPQURfTVRfTE9DS0ZSRUUgfAoJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFOwoKLyogVHggb2ZmbG9hZHMgd2hpY2ggY2Fubm90IGJlIGRpc2FibGVkICovCnN0YXRp YyB1aW50NjRfdCBkZXZfdHhfb2ZmbG9hZHNfbm9kaXMgPQoJCURFVl9UWF9PRkZMT0FEX01VTFRJ X1NFR1M7CgovKiBlbmFibGUgdGltZXN0YW1wIGluIG1idWYgKi8KYm9vbCBkcGFhMl9lbmFibGVf dHNbUlRFX01BWF9FVEhQT1JUU107CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9k cGFhMi9kcGFhMl9ldGhkZXYuYzozOApIdW5rICMyIHN1Y2NlZWRlZCBhdCAxNDMgKG9mZnNldCAx IGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxNTEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM0 IHN1Y2NlZWRlZCBhdCAyNTIgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAy NzEgKG9mZnNldCAxIGxpbmUpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQl1aW50NjRf dCBmbGFnczsKCQljb25zdCBjaGFyICpvdXRwdXQ7Cgl9IHJ4X29mZmxvYWRfbWFwW10gPSB7CgkJ CXtERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwgIiBDaGVja3N1bSwifSwKCQkJe0RFVl9SWF9PRkZM T0FEX1NDVFBfQ0tTVU0sICIgU0NUUCBjc3VtLCJ9LAoJCQl7REVWX1JYX09GRkxPQURfT1VURVJf SVBWNF9DS1NVTSwgIiBPdXRlciBJUFY0IGNzdW0sIn0sCgkJCXtERVZfUlhfT0ZGTE9BRF9PVVRF Ul9VRFBfQ0tTVU0sICIgT3V0ZXIgVURQIGNzdW0sIn0sCgkJCXtERVZfUlhfT0ZGTE9BRF9WTEFO X1NUUklQLCAiIFZMQU4gc3RyaXAsIn0sCgkJCXtERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiwg IiBWTEFOIGZpbHRlciwifSwKCQkJe0RFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUCwgIiBUaW1lc3Rh bXAsIn0sCgkJCXtERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCwgIiBSU1MsIn0sCgkJCXtERVZfUlhf T0ZGTE9BRF9TQ0FUVEVSLCAiIFNjYXR0ZXJlZCwifQoJfTsKCgkvKiBVcGRhdGUgUnggb2ZmbG9h ZCBpbmZvICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9l dGhkZXYuYzoyOTEKSHVuayAjNyBzdWNjZWVkZWQgYXQgMzI4IChvZmZzZXQgMiBsaW5lcykuCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtMTsKCX0KCglpZiAoZXRoX2NvbmYt PnJ4bW9kZS5tcV9tb2RlID09IEVUSF9NUV9SWF9SU1MpIHsKCQlmb3IgKHRjX2luZGV4ID0gMDsg dGNfaW5kZXggPCBwcml2LT5udW1fcnhfdGM7IHRjX2luZGV4KyspIHsKCQkJcmV0ID0gZHBhYTJf c2V0dXBfZmxvd19kaXN0KGRldiwKCQkJCQlldGhfY29uZi0+cnhfYWR2X2NvbmYucnNzX2NvbmYu cnNzX2hmLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJfZXRo ZGV2LmM6NTczCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDU5NCAob2Zmc2V0IDcgbGluZXMpLgpIdW5r ICMxMCBzdWNjZWVkZWQgYXQgNjE3IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRl ZCBhdCA2MzAgKG9mZnNldCA3IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDY2NyAob2Zm c2V0IDcgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMTg3NyAob2Zmc2V0IDIxIGxpbmVz KS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDE4ODkgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsgIzE1 IHN1Y2NlZWRlZCBhdCAyMDUyIChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQg YXQgMjA2NCAob2Zmc2V0IDIxIGxpbmVzKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDIxMTAgKG9m ZnNldCAyMSBsaW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAyMTI1IChvZmZzZXQgMjEgbGlu ZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgMjEzMyAob2Zmc2V0IDIxIGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJfZXRoZGV2LmguLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJfcnh0eC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRldi5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2UxMDAwL2VtX2V0aGRldi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDU5OSAob2Zmc2V0IDIg bGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA2MTMgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAj MyBzdWNjZWVkZWQgYXQgMTEwNCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBh dCAxMTY0IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDE0MjYgKG9mZnNl dCAyIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMTYwMyAob2Zmc2V0IDIgbGluZXMpLgpI dW5rICM3IHN1Y2NlZWRlZCBhdCAxNjg1IChvZmZzZXQgMiBsaW5lcykuCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2UxMDAwL2VtX3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCXVpbnQ2NF90IHJ4X29mZmxvYWRfY2FwYTsKCglyeF9vZmZsb2FkX2NhcGEgPQoJCURFVl9S WF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJ REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAoJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAg IHwKCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CgkJREVWX1JYX09GRkxPQURfS0VFUF9D UkMgICAgfAoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgoJcmV0dXJuIHJ4X29mZmxvYWRfY2Fw YTsKfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvZW1fcnh0eC5jOjEz NjkKSHVuayAjNSBzdWNjZWVkZWQgYXQgMTQ3NCAob2Zmc2V0IDUgbGluZXMpLgpIdW5rICM2IHN1 Y2NlZWRlZCBhdCAxODEwIChvZmZzZXQgMjIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAx ODUzIChvZmZzZXQgMjIgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxODY2IChvZmZzZXQg MjIgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxODkyIChvZmZzZXQgMjIgbGluZXMpLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmMuLi4KSHVuayAjMSBz dWNjZWVkZWQgYXQgMTA3NyAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAx MTAzIChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDExMjEgKG9mZnNldCA0 IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTE1MCAob2Zmc2V0IDQgbGluZXMpLgpIdW5r ICM1IHN1Y2NlZWRlZCBhdCAxMjkxIChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVk IGF0IDEzMDAgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMTMxNCAob2Zm c2V0IDQgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAyMTg5IChvZmZzZXQgNCBsaW5lcyku Ckh1bmsgIzkgc3VjY2VlZGVkIGF0IDIyMjkgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjMTAgc3Vj Y2VlZGVkIGF0IDIyNTUgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDIz MDAgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDI0MDYgKG9mZnNldCA0 IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDI1OTIgKG9mZnNldCA0IGxpbmVzKS4KSHVu ayAjMTQgc3VjY2VlZGVkIGF0IDI3MTEgKG9mZnNldCA4IGxpbmVzKS4KSHVuayAjMTUgc3VjY2Vl ZGVkIGF0IDI4NzggKG9mZnNldCA4IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDMwMzIg KG9mZnNldCA4IGxpbmVzKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDMxMDcgKG9mZnNldCA4IGxp bmVzKS4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDMyNjYgKG9mZnNldCA4IGxpbmVzKS4KSHVuayAj MTkgc3VjY2VlZGVkIGF0IDM1NzkgKG9mZnNldCA4IGxpbmVzKS4KSHVuayAjMjAgc3VjY2VlZGVk IGF0IDM2MjAgKG9mZnNldCA4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEw MDAvaWdiX3BmLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHgu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglodyA9IEUxMDAwX0RFVl9QUklWQVRF X1RPX0hXKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCXJ4X29mZmxvYWRfY2FwYSA9IERFVl9S WF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwKCQkJICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8 CgkJCSAgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAoJCQkgIERFVl9SWF9PRkZMT0FEX1VE UF9DS1NVTSAgIHwKCQkJICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CgkJCSAgREVWX1JY X09GRkxPQURfS0VFUF9DUkMgICAgfAoJCQkgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgICAgIHwK CQkJICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCglpZiAoaHctPm1hYy50eXBlID09IGUxMDAw X2kzNTAgfHwKCSAgICBody0+bWFjLnR5cGUgPT0gZTEwMDBfaTIxMCB8fAoJICAgIGh3LT5tYWMu dHlwZSA9PSBlMTAwMF9pMjExKQoJCXJ4X29mZmxvYWRfY2FwYSB8PSBERVZfUlhfT0ZGTE9BRF9W TEFOX0VYVEVORDsKCglyZXR1cm4gcnhfb2ZmbG9hZF9jYXBhOwp9CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOjE2NDAKSHVuayAjNSBzdWNjZWVkZWQg YXQgMTczNCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDE5NjggKG9mZnNl dCAxOCBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDIwNTAgKG9mZnNldCAxOCBsaW5lcyku Ckh1bmsgIzggc3VjY2VlZGVkIGF0IDIxODggKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzkgc3Vj Y2VlZGVkIGF0IDIyMzIgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAy Mjg2IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMjMwMCAob2Zmc2V0 IDE4IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDIzNTYgKG9mZnNldCAxOCBsaW5lcyku Ckh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAyMzkyIChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMxNCBz dWNjZWVkZWQgYXQgMjQ2MyAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0 IDI1MDcgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAyNTI0IChvZmZz ZXQgMTkgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgMjU2NCAob2Zmc2V0IDE5IGxpbmVz KS4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDI3NjMgKG9mZnNldCAyMCBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQg YXQgMTE2IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAzMTAgKG9mZnNl dCAtMjIgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAzMTggKG9mZnNldCAtMjIgbGluZXMp LgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAzMzUgKG9mZnNldCAtMjIgbGluZXMpLgpIdW5rICM1IHN1 Y2NlZWRlZCBhdCA2MjEgKG9mZnNldCAtMjIgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA5 MTMgKG9mZnNldCAtMTAgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglhZGFw dGVyLT5zdGF0ZSA9IEVOQV9BREFQVEVSX1NUQVRFX0NPTkZJRzsKCglpZiAoZGV2LT5kYXRhLT5k ZXZfY29uZi5yeG1vZGUubXFfbW9kZSAmIEVUSF9NUV9SWF9SU1NfRkxBRykKCQlkZXYtPmRhdGEt PmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCWRl di0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01VTFRJ X1NFR1M7CgoJLyogU2NhdHRlcmVkIFJ4IGNhbm5vdCBiZSB0dXJuZWQgb2ZmIGluIHRoZSBIVywg c28gdGhpcyBjYXBhYmlsaXR5IG11c3QKCSAqIGJlIGZvcmNlZC4KCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmM6MjAwNAplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCXVpbnQ2NF90IHBvcnRfb2ZmbG9hZHMgPSAwOwoKCWlmIChhZGFwdGVyLT5vZmZs b2Fkcy5yeF9vZmZsb2FkcyAmIEVOQV9MM19JUFY0X0NTVU0pCgkJcG9ydF9vZmZsb2FkcyB8PSBE RVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNOwoKCWlmIChhZGFwdGVyLT5vZmZsb2Fkcy5yeF9vZmZs b2FkcyAmCgkgICAgKEVOQV9MNF9JUFY0X0NTVU0gfCBFTkFfTDRfSVBWNl9DU1VNKSkKCQlwb3J0 X29mZmxvYWRzIHw9CgkJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8IERFVl9SWF9PRkZMT0FE X1RDUF9DS1NVTTsKCglpZiAoYWRhcHRlci0+b2ZmbG9hZHMucnhfb2ZmbG9hZHMgJiBFTkFfUlhf UlNTX0hBU0gpCgkJcG9ydF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCglw b3J0X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgoJcmV0dXJuIHBvcnRfb2Zm bG9hZHM7Cn0KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2 LmM6MjA2NwplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVpbnQ2NF90IHBvcnRfb2ZmbG9h ZHMgPSAwOwoKCWlmIChhZGFwdGVyLT5vZmZsb2Fkcy50eF9vZmZsb2FkcyAmIEVOQV9JUFY0X1RT TykKCQlwb3J0X29mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX1RDUF9UU087CgoJaWYgKGFkYXB0 ZXItPm9mZmxvYWRzLnR4X29mZmxvYWRzICYgRU5BX0wzX0lQVjRfQ1NVTSkKCQlwb3J0X29mZmxv YWRzIHw9IERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU07CglpZiAoYWRhcHRlci0+b2ZmbG9hZHMu dHhfb2ZmbG9hZHMgJgoJICAgIChFTkFfTDRfSVBWNF9DU1VNX1BBUlRJQUwgfCBFTkFfTDRfSVBW NF9DU1VNIHwKCSAgICAgRU5BX0w0X0lQVjZfQ1NVTSB8IEVOQV9MNF9JUFY2X0NTVU1fUEFSVElB TCkpCgkJcG9ydF9vZmZsb2FkcyB8PQoJCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBERVZf VFhfT0ZGTE9BRF9UQ1BfQ0tTVU07CgoJcG9ydF9vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9N VUxUSV9TRUdTOwoKCXJldHVybiBwb3J0X29mZmxvYWRzOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jOjIwODcKZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgllbmFfYXNzZXJ0X21zZyhlbmFfZGV2ICE9IE5VTEwsICJVbmluaXRpYWxpemVkIGRl dmljZVxuIik7CgoJZGV2X2luZm8tPnNwZWVkX2NhcGEgPQoJCQlFVEhfTElOS19TUEVFRF8xRyAg IHwKCQkJRVRIX0xJTktfU1BFRURfMl81RyB8CgkJCUVUSF9MSU5LX1NQRUVEXzVHICAgfAoJCQlF VEhfTElOS19TUEVFRF8xMEcgIHwKCQkJRVRIX0xJTktfU1BFRURfMjVHICB8CgkJCUVUSF9MSU5L X1NQRUVEXzQwRyAgfAoJCQlFVEhfTElOS19TUEVFRF81MEcgIHwKCQkJRVRIX0xJTktfU1BFRURf MTAwRzsKCgkvKiBJbmZvcm0gZnJhbWV3b3JrIGFib3V0IGF2YWlsYWJsZSBmZWF0dXJlcyAqLwoJ ZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IGVuYV9nZXRfcnhfcG9ydF9vZmZsb2FkcyhhZGFw dGVyKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmM6 MjEzMApIdW5rICMxMSBzdWNjZWVkZWQgYXQgMjA5OCAob2Zmc2V0IC0yMDUgbGluZXMpLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2lmZGVmIFJURV9MSUJSVEVfRVRIREVWX0RFQlVHCgkJ LyogQ2hlY2sgaWYgcmVxdWVzdGVkIG9mZmxvYWQgaXMgYWxzbyBlbmFibGVkIGZvciB0aGUgcXVl dWUgKi8KCQlpZiAoKG9sX2ZsYWdzICYgUEtUX1RYX0lQX0NLU1VNICYmCgkJICAgICAhKHR4X3Jp bmctPm9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSkpIHx8CgkJICAgIChsNF9j c3VtX2ZsYWcgPT0gUEtUX1RYX1RDUF9DS1NVTSAmJgoJCSAgICAgISh0eF9yaW5nLT5vZmZsb2Fk cyAmIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpIHx8CgkJICAgIChsNF9jc3VtX2ZsYWcgPT0g UEtUX1RYX1VEUF9DS1NVTSAmJgoJCSAgICAgISh0eF9yaW5nLT5vZmZsb2FkcyAmIERFVl9UWF9P RkZMT0FEX1VEUF9DS1NVTSkpKSB7CgkJCVBNRF9UWF9MT0coREVCVUcsCgkJCQkibWJ1ZlslIiBQ Ukl1MzIgIl06IHJlcXVlc3RlZCBvZmZsb2FkczogJSIgUFJJdTE2ICIgYXJlIG5vdCBlbmFibGVk IGZvciB0aGUgcXVldWVbJXVdXG4iLAoJCQkJaSwgbS0+bmJfc2VncywgdHhfcmluZy0+aWQpOwoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5hL2VuYV9ldGhkZXYuYzoyNDE2CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmguLi4KSHVuayAjMSBzdWNj ZWVkZWQgYXQgNTQgKG9mZnNldCAtNCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2VuYS9lbmFfcnNzLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpZiAocmV0YV9z aXplID09IDAgfHwgcmV0YV9jb25mID09IE5VTEwpCgkJcmV0dXJuIC1FSU5WQUw7CgoJaWYgKCEo ZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1Nf SEFTSCkpIHsKCQlQTURfRFJWX0xPRyhFUlIsCgkJCSJSU1Mgd2FzIG5vdCBjb25maWd1cmVkIGZv ciB0aGUgUE1EXG4iKTsKCQlyZXR1cm4gLUVOT1RTVVA7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBk cml2ZXJzL25ldC9lbmEvZW5hX3Jzcy5jOjEzOQpIdW5rICM0IHN1Y2NlZWRlZCBhdCAxNTUgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAyMDAgKG9mZnNldCAxIGxpbmUpLgpI dW5rICM2IHN1Y2NlZWRlZCBhdCAyMzYgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM3IHN1Y2NlZWRl ZCBhdCAyNDggKG9mZnNldCAxIGxpbmUpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAyNjkgKG9mZnNl dCAxIGxpbmUpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAyODUgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICMxMCBzdWNjZWVkZWQgYXQgMzM1IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTEgc3VjY2VlZGVk IGF0IDU0MiAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuZXRj L2VuZXRjX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8t Pm1heF90eF9xdWV1ZXMgPSBNQVhfVFhfUklOR1M7CglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9 IEVORVRDX01BQ19NQVhGUk1fU0laRTsKCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPQoJCShE RVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwK CQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQkgREVWX1JYX09GRkxPQURfS0VFUF9DUkMp OwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lbmV0Yy9l bmV0Y19ldGhkZXYuYzoyMDcKSHVuayAjMyBzdWNjZWVkZWQgYXQgNDY0IChvZmZzZXQgMSBsaW5l KS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgllbmV0Y19wb3J0X3dyKGVuZXRjX2h3LCBF TkVUQ19QVENNU0RVUigwKSwgRU5FVENfTUFDX01BWEZSTV9TSVpFKTsKCWVuZXRjX3BvcnRfd3Io ZW5ldGNfaHcsIEVORVRDX1BUWE1CQVIsIDIgKiBFTkVUQ19NQUNfTUFYRlJNX1NJWkUpOwoKCWlm IChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDKSB7CgkJaW50IGNvbmZpZzsK CgkJY29uZmlnID0gZW5ldGNfcG9ydF9yZChlbmV0Y19odywgRU5FVENfUE0wX0NNRF9DRkcpOwoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5ldGMvZW5ldGNfZXRoZGV2LmM6NzA1 Ckh1bmsgIzUgc3VjY2VlZGVkIGF0IDczNSAob2Zmc2V0IDIyIGxpbmVzKS4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvZW5pYy9lbmljLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv ZW5pYy9lbmljX2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuaWMvZW5p Y19tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgltYXhfcnhfcGt0bGVuID0g ZW5pY19tdHVfdG9fbWF4X3J4X3BrdGxlbihlbmljLT5ydGVfZGV2LT5kYXRhLT5tdHUpOwoKCWlm IChlbmljLT5ydGVfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJgoJICAgIERF Vl9SWF9PRkZMT0FEX1NDQVRURVIpIHsKCQlkZXZfaW5mbyhlbmljLCAiUnEgJXUgU2NhdHRlciBy eCBtb2RlIGVuYWJsZWRcbiIsIHF1ZXVlX2lkeCk7CgkJLyogY2VpbCgobWF4IHBrdCBsZW4pL21i dWZfc2l6ZSkgKi8KCQltYnVmc19wZXJfcGt0ID0gKG1heF9yeF9wa3RsZW4gKyBtYnVmX3NpemUg LSAxKSAvIG1idWZfc2l6ZTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2VuaWMv ZW5pY19tYWluLmM6ODU4Ckh1bmsgIzUgc3VjY2VlZGVkIGF0IDEzODYgKG9mZnNldCAxIGxpbmUp LgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxNDA1IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNyBzdWNj ZWVkZWQgYXQgMTc1MSAob2Zmc2V0IDYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9lbmljL2VuaWNfcmVzLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgllbmljLT50 eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwoJZW5pYy0+dHhfb2ZmbG9hZF9jYXBhID0KCQllbmlj LT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgfAoJCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAoJ CURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VN IHwKCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NV TSB8CgkJREVWX1RYX09GRkxPQURfVENQX1RTTzsKCWVuaWMtPnJ4X29mZmxvYWRfY2FwYSA9CgkJ REVWX1JYX09GRkxPQURfU0NBVFRFUiB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJ REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwK CQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOwoJ ZW5pYy0+dHhfb2ZmbG9hZF9tYXNrID0KCQlQS1RfVFhfSVBWNiB8CgkJUEtUX1RYX0lQVjQgfAoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5pYy9lbmljX3Jlcy5jOjIwMQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZS5jLi4uCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxzYWZlX2ludHIuYy4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9vcHMuYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCSAqIGNvbmZpZ3VyaW5nIGEgc3ViLWRldmljZS4KCSAqLwoJaW5mb3MtPnJ4 X29mZmxvYWRfY2FwYSA9CgkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJREVWX1JYX09G RkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfUlhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfAoJCURFVl9SWF9P RkZMT0FEX1FJTlFfU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJ CURFVl9SWF9PRkZMT0FEX01BQ1NFQ19TVFJJUCB8CgkJREVWX1JYX09GRkxPQURfSEVBREVSX1NQ TElUIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfVkxB Tl9FWFRFTkQgfAoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAoJCURFVl9SWF9PRkZMT0FEX1RJ TUVTVEFNUCB8CgkJREVWX1JYX09GRkxPQURfU0VDVVJJVFkgfAoJCURFVl9SWF9PRkZMT0FEX1JT U19IQVNIOwoKCWluZm9zLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9PRkZMT0FE X1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZM T0FEX1VEUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhfT0ZG TE9BRF9UQ1BfTFJPIHwKCQlERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKCQlERVZfUlhfT0ZG TE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAgfAoJ CURFVl9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxU RVIgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAgfAoJCURFVl9SWF9PRkZMT0FEX1NFQ1VS SVRZIHwKCQlERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCglpbmZvcy0+dHhfb2ZmbG9hZF9jYXBh ID0KCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRSB8CgkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURf VURQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FE X1RDUF9UU087CgoJaW5mb3MtPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPQoJCUVUSF9SU1NfSVAg fAoJCUVUSF9SU1NfVURQIHwKCQlFVEhfUlNTX1RDUDsKCWluZm9zLT5kZXZfY2FwYSA9CgkJUlRF X0VUSF9ERVZfQ0FQQV9SVU5USU1FX1JYX1FVRVVFX1NFVFVQIHwKCQlSVEVfRVRIX0RFVl9DQVBB X1JVTlRJTUVfVFhfUVVFVUVfU0VUVVA7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9mYWlsc2FmZS9mYWlsc2FmZV9vcHMuYzoxMTcyCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2ZtMTBrL2ZtMTBrLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZm0xMGsvZm0xMGtf ZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJLyogSXQgYWRkcyBkdWFs IFZMQU4gbGVuZ3RoIGZvciBzdXBwb3J0aW5nIGR1YWwgVkxBTiAqLwoJCWlmICgoZGV2LT5kYXRh LT5tdHUgKyBSVEVfRVRIRVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOICsKCQkJCTIgKiBG TTEwS19WTEFOX1RBR19TSVpFKSA+IGJ1Zl9zaXplIHx8CgkJCXJ4cS0+b2ZmbG9hZHMgJiBERVZf UlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CgkJCXVpbnQzMl90IHJlZzsKCQkJZGV2LT5kYXRhLT5zY2F0 dGVyZWRfcnggPSAxOwoJCQlyZWcgPSBGTTEwS19SRUFEX1JFRyhodywgRk0xMEtfU1JSQ1RMKGkp KTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX2V0aGRldi5j Ojc1OQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKewoJUlRFX1NFVF9VU0VEKGRldik7CgoJ cmV0dXJuICh1aW50NjRfdCkoREVWX1JYX09GRkxPQURfU0NBVFRFUik7Cn0KCnN0YXRpYyB1aW50 NjRfdCBmbTEwa19nZXRfcnhfcG9ydF9vZmZsb2Fkc19jYXBhKHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2KQp7CglSVEVfU0VUX1VTRUQoZGV2KTsKCglyZXR1cm4gICh1aW50NjRfdCkoREVWX1JYX09G RkxPQURfVkxBTl9TVFJJUCAgfAoJCQkgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJ CSAgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKCQkJICAgREVWX1JYX09GRkxPQURfVURQ X0NLU1VNICAgfAoJCQkgICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CgkJCSAgIERFVl9S WF9PRkZMT0FEX0hFQURFUl9TUExJVCB8CgkJCSAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKTsK fQoKc3RhdGljIGludAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZm0xMGsvZm0x MGtfZXRoZGV2LmM6MTc2NwpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTk2NiAob2Zmc2V0IDEgbGlu ZSkuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAyMTEyIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTYg c3VjY2VlZGVkIGF0IDIxNjEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQg MjE5OSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAyMjQ0IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDI2MDcgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICMyMCBzdWNjZWVkZWQgYXQgMjYyMyAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX3J4dHhfdmVjLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvaGluaWMvYmFzZS9oaW5pY19wbWRfaHdkZXYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7Cgl9CgoJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnht b2RlLm1xX21vZGUgJiBFVEhfTVFfUlhfUlNTX0ZMQUcpCgkJZGV2LT5kYXRhLT5kZXZfY29uZi5y eG1vZGUub2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CgoJLyogbXR1IHNpemUg aXMgMjU2fjk2MDAgKi8KCWlmIChISU5JQ19NVFVfVE9fUEtUTEVOKGRldi0+ZGF0YS0+ZGV2X2Nv bmYucnhtb2RlLm10dSkgPAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaGluaWMv aGluaWNfcG1kX2V0aGRldi5jOjMxMQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCgloaW5p Y19nZXRfc3BlZWRfY2FwYShkZXYsICZpbmZvLT5zcGVlZF9jYXBhKTsKCWluZm8tPnJ4X3F1ZXVl X29mZmxvYWRfY2FwYSA9IDA7CglpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSBERVZfUlhfT0ZGTE9B RF9WTEFOX1NUUklQIHwKCQkJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkJREVWX1JY X09GRkxPQURfVURQX0NLU1VNIHwKCQkJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJCQlE RVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwK CQkJCURFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfAoJCQkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7 CgoJaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsKCWluZm8tPnR4X29mZmxvYWRfY2Fw YSA9IERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKCQkJCURFVl9UWF9PRkZMT0FEX0lQVjRf Q0tTVU0gfAoJCQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJCURFVl9UWF9PRkZMT0FE X1RDUF9DS1NVTSB8CgkJCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQkJCURFVl9UWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCQkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8CgkJ CQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwoKCWluZm8tPmhhc2hfa2V5X3NpemUgPSBISU5J Q19SU1NfS0VZX1NJWkU7CglpbmZvLT5yZXRhX3NpemUgPSBISU5JQ19SU1NfSU5ESVJfU0laRTsK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2hpbmljL2hpbmljX3BtZF9ldGhkZXYu Yzo3MzIKSHVuayAjNSBzdWNjZWVkZWQgYXQgODQ3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNiBz dWNjZWVkZWQgYXQgOTAyIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMTY2 OCAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTY5MCAob2Zmc2V0IDE4 IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTg3NyAob2Zmc2V0IDE4IGxpbmVzKS4KSHVu ayAjMTAgc3VjY2VlZGVkIGF0IDE4OTcgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzExIHN1Y2Nl ZWRlZCBhdCAxOTQ4IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMTk2 OSAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDIwMTIgKG9mZnNldCAx OCBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAyMDMzIChvZmZzZXQgMTggbGluZXMpLgpI dW5rICMxNSBzdWNjZWVkZWQgYXQgMjA3MSAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMTYgc3Vj Y2VlZGVkIGF0IDIwODUgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAy MTUxIChvZmZzZXQgMTggbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9oaW5pYy9o aW5pY19wbWRfcnguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9oaW5pYy9oaW5pY19w bWRfcnguaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfZGNiLmMuLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldi5jLi4uCkh1bmsgIzEy IHN1Y2NlZWRlZCBhdCAyNDM1IChvZmZzZXQgMzUgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQg YXQgMjQ5OSAob2Zmc2V0IDM1IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDI1MjggKG9m ZnNldCAzNSBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAyNjQ0IChvZmZzZXQgNDQgbGlu ZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQgYXQgMjY2MyAob2Zmc2V0IDQ0IGxpbmVzKS4KSHVuayAj MTcgc3VjY2VlZGVkIGF0IDI2OTQgKG9mZnNldCA0NCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJaW5mby0+bWF4X21hY19hZGRycyA9IEhOUzNfVUNfTUFDQUREUl9OVU07Cglp bmZvLT5tYXhfbXR1ID0gaW5mby0+bWF4X3J4X3BrdGxlbiAtIEhOUzNfRVRIX09WRVJIRUFEOwoJ aW5mby0+bWF4X2xyb19wa3Rfc2l6ZSA9IEhOUzNfTUFYX0xST19TSVpFOwoJaW5mby0+cnhfb2Zm bG9hZF9jYXBhID0gKERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkJIERFVl9SWF9PRkZM T0FEX1RDUF9DS1NVTSB8CgkJCQkgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJCSBERVZf UlhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAoJCQkJIERFVl9SWF9P RkZMT0FEX0tFRVBfQ1JDIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQkJCSBERVZf UlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8 CgkJCQkgREVWX1JYX09GRkxPQURfUlNTX0hBU0ggfAoJCQkJIERFVl9SWF9PRkZMT0FEX1RDUF9M Uk8pOwoJaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gKERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0gfAoJCQkJIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkJIERFVl9UWF9PRkZM T0FEX1RDUF9DS1NVTSB8CgkJCQkgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJCSBERVZf VFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwK CQkJCSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9WWExBTl9U TkxfVFNPIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8CgkJCQkgREVWX1RYX09G RkxPQURfR0VORVZFX1ROTF9UU08gfAoJCQkJIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVF IHwKCQkJCSBobnMzX3R4dmxhbl9jYXBfZ2V0KGh3KSk7CgoJaWYgKGhuczNfZGV2X2dldF9zdXBw b3J0KGh3LCBPVVRFUl9VRFBfQ0tTVU0pKQoJCWluZm8tPnR4X29mZmxvYWRfY2FwYSB8PSBERVZf VFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU07CgoJaWYgKGhuczNfZGV2X2dldF9zdXBwb3J0KGh3 LCBJTkRFUF9UWFJYKSkKCQlpbmZvLT5kZXZfY2FwYSA9IFJURV9FVEhfREVWX0NBUEFfUlVOVElN RV9SWF9RVUVVRV9TRVRVUCB8CgkJCQkgUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1FX1RYX1FVRVVF X1NFVFVQOwoKCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywgUFRQKSkKCQlpbmZvLT5yeF9v ZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfVElNRVNUQU1QOwoKCWluZm8tPnJ4X2Rlc2Nf bGltID0gKHN0cnVjdCBydGVfZXRoX2Rlc2NfbGltKSB7CgkJLm5iX21heCA9IEhOUzNfTUFYX1JJ TkdfREVTQywKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2huczMvaG5zM19ldGhk ZXYuYzoyNjc2Ckh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAyODM4IChvZmZzZXQgNDUgbGluZXMpLgpI dW5rICMyMCBzdWNjZWVkZWQgYXQgMjg1MSAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMjEgc3Vj Y2VlZGVkIGF0IDI4OTMgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzIyIHN1Y2NlZWRlZCBhdCAy OTA2IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgMzI1MiAob2Zmc2V0 IDQ1IGxpbmVzKS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDM2MDQgKG9mZnNldCA0NSBsaW5lcyku Ckh1bmsgIzI1IHN1Y2NlZWRlZCBhdCA0Mjk5IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMyNiBz dWNjZWVkZWQgYXQgNDU1NiAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMjcgc3VjY2VlZGVkIGF0 IDQ1OTcgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzI4IHN1Y2NlZWRlZCBhdCA0NzE3IChvZmZz ZXQgNDUgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgNDcyOSAob2Zmc2V0IDQ1IGxpbmVz KS4KSHVuayAjMzAgc3VjY2VlZGVkIGF0IDQ3ODAgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzMx IHN1Y2NlZWRlZCBhdCA0ODA3IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMzMiBzdWNjZWVkZWQg YXQgNDkyNiAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMzMgc3VjY2VlZGVkIGF0IDQ5NTcgKG9m ZnNldCA0NSBsaW5lcykuCkh1bmsgIzM0IHN1Y2NlZWRlZCBhdCA1MTM5IChvZmZzZXQgNDUgbGlu ZXMpLgpIdW5rICMzNSBzdWNjZWVkZWQgYXQgNTM4OSAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAj MzYgc3VjY2VlZGVkIGF0IDU0MTggKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzM3IHN1Y2NlZWRl ZCBhdCA1NDcyIChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMzOCBzdWNjZWVkZWQgYXQgNTUwMSAo b2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMzkgc3VjY2VlZGVkIGF0IDU2MzkgKG9mZnNldCA0NSBs aW5lcykuCkh1bmsgIzQwIHN1Y2NlZWRlZCBhdCA1OTE0IChvZmZzZXQgNDUgbGluZXMpLgpIdW5r ICM0MSBzdWNjZWVkZWQgYXQgNjEyNSAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjNDIgc3VjY2Vl ZGVkIGF0IDYyODEgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzQzIHN1Y2NlZWRlZCBhdCA2NTgx IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICM0NCBzdWNjZWVkZWQgYXQgNjg3MSAob2Zmc2V0IDQ1 IGxpbmVzKS4KSHVuayAjNDUgc3VjY2VlZGVkIGF0IDY5MDMgKG9mZnNldCA0NSBsaW5lcykuCkh1 bmsgIzQ2IHN1Y2NlZWRlZCBhdCA3MDAyIChvZmZzZXQgNDUgbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9obnMzL2huczNfZXRoZGV2LmguLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQg MTExMyAob2Zmc2V0IDM3IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9o bnMzX2V0aGRldl92Zi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDgwOSAob2Zmc2V0IDIgbGlu ZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA4NTMgKG9mZnNldCAyMSBsaW5lcykuCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJaW5mby0+bWF4X210dSA9IGluZm8tPm1heF9yeF9wa3RsZW4g LSBITlMzX0VUSF9PVkVSSEVBRDsKCWluZm8tPm1heF9scm9fcGt0X3NpemUgPSBITlMzX01BWF9M Uk9fU0laRTsKCglpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSAoREVWX1JYX09GRkxPQURfSVBWNF9D S1NVTSB8CgkJCQkgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJCSBERVZfUlhfT0ZGTE9B RF9UQ1BfQ0tTVU0gfAoJCQkJIERFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAoJCQkJIERFVl9S WF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCQkJIERFVl9SWF9PRkZMT0FEX09VVEVSX1VE UF9DS1NVTSB8CgkJCQkgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8CgkJCQkgREVWX1JYX09GRkxP QURfVkxBTl9TVFJJUCB8CgkJCQkgREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAoJCQkJIERF Vl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPKTsKCWlu Zm8tPnR4X29mZmxvYWRfY2FwYSA9IChERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwK CQkJCSBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9UQ1Bf Q0tTVU0gfAoJCQkJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCQkgREVWX1RYX09GRkxP QURfU0NUUF9DS1NVTSB8CgkJCQkgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CgkJCQkgREVW X1RYX09GRkxPQURfVENQX1RTTyB8CgkJCQkgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8 CgkJCQkgREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAoJCQkJIERFVl9UWF9PRkZMT0FEX0dF TkVWRV9UTkxfVFNPIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSB8CgkJCQkg aG5zM190eHZsYW5fY2FwX2dldChodykpOwoKCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywg T1VURVJfVURQX0NLU1VNKSkKCQlpbmZvLT50eF9vZmZsb2FkX2NhcGEgfD0gREVWX1RYX09GRkxP QURfT1VURVJfVURQX0NLU1VNOwoKCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywgSU5ERVBf VFhSWCkpCgkJaW5mby0+ZGV2X2NhcGEgPSBSVEVfRVRIX0RFVl9DQVBBX1JVTlRJTUVfUlhfUVVF VUVfU0VUVVAgfAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0 aGRldl92Zi5jOjkzNQpIdW5rICM0IHN1Y2NlZWRlZCBhdCAxNjY5IChvZmZzZXQgMjkgbGluZXMp LgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxNjgyIChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICM2IHN1 Y2NlZWRlZCBhdCAxNzUzIChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAx Nzc4IChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAyMDg4IChvZmZzZXQg MjkgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAyMjQ3IChvZmZzZXQgMjkgbGluZXMpLgpI dW5rICMxMCBzdWNjZWVkZWQgYXQgMjU5OSAob2Zmc2V0IDI5IGxpbmVzKS4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9obnMzL2huczNfcHRwLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9o bnMzX3Jzcy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19yc3MuaC4u LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfcnh0eC5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCQkgcnhxLT5yeF9idWZfbGVuKTsKCX0KCglpZiAoZGV2 X2NvbmYtPnJ4bW9kZS5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfHwKCSAgICBk ZXYtPmRhdGEtPm10dSArIEhOUzNfRVRIX09WRVJIRUFEID4gaHctPnJ4X2J1Zl9sZW4pCgkJZGV2 LT5kYXRhLT5zY2F0dGVyZWRfcnggPSB0cnVlOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9obnMzL2huczNfcnh0eC5jOjE5NjkKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CglpZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQoaHcsIFBUUCkpCgkJcmV0dXJuIGZhbHNlOwoKCXJl dHVybiAob2ZmbG9hZHMgPT0gKG9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZS RUUpKTsKfQoKc3RhdGljIGJvb2wKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2hu czMvaG5zM19yeHR4LmM6NDI5MQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNf cnh0eC5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19yeHR4X3ZlYy5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYgKGhuczNfZGV2X2dldF9zdXBwb3J0 KGh3LCBQVFApKQoJCXJldHVybiAtRU5PVFNVUDsKCgkvKiBPbmx5IHN1cHBvcnQgREVWX1RYX09G RkxPQURfTUJVRl9GQVNUX0ZSRUUgKi8KCWlmICh0eG1vZGUtPm9mZmxvYWRzICE9IERFVl9UWF9P RkZMT0FEX01CVUZfRkFTVF9GUkVFKQoJCXJldHVybiAtRU5PVFNVUDsKCglyZXR1cm4gMDsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2huczMvaG5zM19yeHR4X3ZlYy5jOjIyCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgppbnQKaG5zM19yeF9jaGVja192ZWNfc3VwcG9ydChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKewoJc3RydWN0IHJ0ZV9mZGlyX2NvbmYgKmZjb25mID0g JmRldi0+ZGF0YS0+ZGV2X2NvbmYuZmRpcl9jb25mOwoJc3RydWN0IHJ0ZV9ldGhfcnhtb2RlICpy eG1vZGUgPSAmZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGU7Cgl1aW50NjRfdCBvZmZsb2Fkc19t YXNrID0gREVWX1JYX09GRkxPQURfVENQX0xSTyB8CgkJCQkgREVWX1JYX09GRkxPQURfVkxBTjsK CglzdHJ1Y3QgaG5zM19odyAqaHcgPSBITlMzX0RFVl9QUklWQVRFX1RPX0hXKGRldi0+ZGF0YS0+ ZGV2X3ByaXZhdGUpOwoJaWYgKGhuczNfZGV2X2dldF9zdXBwb3J0KGh3LCBQVFApKQoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHhfdmVjLmM6MjI4CkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgpIdW5rICM2IHN1Y2Nl ZWRlZCBhdCAyODc3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMjkzMSAo b2Zmc2V0IDEgbGluZSkuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDI5NDcgKG9mZnNldCAxIGxpbmUp LgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAyOTg1IChvZmZzZXQgMSBsaW5lKS4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CglkZXZfaW5mby0+bWluX210dSA9IFJURV9FVEhFUl9NSU5fTVRVOwoJ ZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CglkZXZfaW5mby0+cnhfb2ZmbG9h ZF9jYXBhID0KCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKCQlERVZfUlhfT0ZGTE9BRF9R SU5RX1NUUklQIHwKCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9B RF9VRFBfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1JYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfS0VFUF9DUkMgfAoJCURFVl9S WF9PRkZMT0FEX1NDQVRURVIgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKCQlERVZf UlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CgoJZGV2 X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9G UkVFOwoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9CgkJREVWX1RYX09GRkxPQURfVkxBTl9J TlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9J UFY0X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FE X1RDUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CgkJREVWX1RYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8CgkJREVWX1RY X09GRkxPQURfVlhMQU5fVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAoJ CURFVl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfR0VORVZFX1RO TF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAoJCWRldl9pbmZvLT50eF9xdWV1 ZV9vZmZsb2FkX2NhcGE7CglkZXZfaW5mby0+ZGV2X2NhcGEgPQoJCVJURV9FVEhfREVWX0NBUEFf UlVOVElNRV9SWF9RVUVVRV9TRVRVUCB8CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MzcyMApIdW5rICMxMSBzdWNjZWVkZWQgYXQgMzgwMSAob2Zm c2V0IC00IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDM4MTUgKG9mZnNldCAtNCBsaW5l cykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAzODY0IChvZmZzZXQgLTQgbGluZXMpLgpIdW5rICMx NCBzdWNjZWVkZWQgYXQgMzkxMSAob2Zmc2V0IC00IGxpbmVzKS4KSHVuayAjMTUgc3VjY2VlZGVk IGF0IDM5MzAgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAzOTk0IChv ZmZzZXQgLTQgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgNDEwNyAob2Zmc2V0IC00IGxp bmVzKS4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDQxMzMgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsg IzE5IHN1Y2NlZWRlZCBhdCA0MjgzIChvZmZzZXQgLTQgbGluZXMpLgpIdW5rICMyMCBzdWNjZWVk ZWQgYXQgNDQzNiAob2Zmc2V0IC00IGxpbmVzKS4KSHVuayAjMjEgc3VjY2VlZGVkIGF0IDQ0NTIg KG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzIyIHN1Y2NlZWRlZCBhdCA0NDc5IChvZmZzZXQgLTQg bGluZXMpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgNDQ5NiAob2Zmc2V0IC00IGxpbmVzKS4KSHVu ayAjMjQgc3VjY2VlZGVkIGF0IDQ4MTQgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzI1IHN1Y2Nl ZWRlZCBhdCA2MTAwIChvZmZzZXQgLTQgbGluZXMpLgpIdW5rICMyNiBzdWNjZWVkZWQgYXQgNjIz MCAob2Zmc2V0IC02IGxpbmVzKS4KSHVuayAjMjcgc3VjY2VlZGVkIGF0IDcwODUgKG9mZnNldCAt MTMgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgNzEyMCAob2Zmc2V0IC0xMyBsaW5lcyku Ckh1bmsgIzI5IHN1Y2NlZWRlZCBhdCA3NzE0IChvZmZzZXQgLTEzIGxpbmVzKS4KSHVuayAjMzAg c3VjY2VlZGVkIGF0IDg2OTggKG9mZnNldCAtMTMgbGluZXMpLgpIdW5rICMzMSBzdWNjZWVkZWQg YXQgODczMyAob2Zmc2V0IC0xMyBsaW5lcykuCkh1bmsgIzMyIHN1Y2NlZWRlZCBhdCA4ODMwIChv ZmZzZXQgLTEzIGxpbmVzKS4KSHVuayAjMzMgc3VjY2VlZGVkIGF0IDg4MzggKG9mZnNldCAtMTMg bGluZXMpLgpIdW5rICMzNCBzdWNjZWVkZWQgYXQgODkxNyAob2Zmc2V0IC0xMyBsaW5lcykuCkh1 bmsgIzM1IHN1Y2NlZWRlZCBhdCAxMDI1NCAob2Zmc2V0IC0xMyBsaW5lcykuCkh1bmsgIzM2IHN1 Y2NlZWRlZCBhdCAxMDQ5MSAob2Zmc2V0IC0xMyBsaW5lcykuCkh1bmsgIzM3IHN1Y2NlZWRlZCBh dCAxMDk5OSAob2Zmc2V0IC0xMyBsaW5lcykuCkh1bmsgIzM4IHN1Y2NlZWRlZCBhdCAxMTA0NyAo b2Zmc2V0IC0xMyBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuaC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxNDAgKG9mZnNldCAtNyBsaW5lcykuCkh1 bmsgIzIgc3VjY2VlZGVkIGF0IDEwNTYgKG9mZnNldCAtNyBsaW5lcykuCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2hhc2guYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMDIgKG9mZnNldCAt MyBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIwMSAob2Zmc2V0IC03IGxpbmVzKS4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnN0YXRpYyBjb25zdCBzdHJ1Y3QgaTQwZV9oYXNoX21h dGNoX3BhdHRlcm4gbWF0Y2hfcGF0dGVybnNbXSA9IHsKCS8qIEV0aGVyICovCglJNDBFX0hBU0hf TUFQX1BBVFRFUk4oSTQwRV9QSElOVF9FVEgsCgkJCSAgICAgIEVUSF9SU1NfTDJfUEFZTE9BRCB8 IEk0MEVfSEFTSF9MMl9SU1NfTUFTSywKCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBFX0wyX1BB WUxPQUQpLAoKCS8qIElQdjQgKi8KCUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBFX1BISU5UX0lQ VjQsCgkJCSAgICAgIEVUSF9SU1NfRlJBR19JUFY0IHwgSTQwRV9IQVNIX0lQVjRfTDIzX1JTU19N QVNLLAoJCQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfRlJBR19JUFY0KSwKCglJNDBFX0hBU0hf TUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY0LAoJCQkgICAgICBFVEhfUlNTX05PTkZSQUdfSVBW NF9PVEhFUiB8CgkJCSAgICAgIEk0MEVfSEFTSF9JUFY0X0wyM19SU1NfTUFTSywKCQkJICAgICAg STQwRV9GSUxURVJfUENUWVBFX05PTkZfSVBWNF9PVEhFUiksCgoJSTQwRV9IQVNIX01BUF9QQVRU RVJOKEk0MEVfUEhJTlRfSVBWNF9UQ1AsCgkJCSAgICAgIEVUSF9SU1NfTk9ORlJBR19JUFY0X1RD UCB8CgkJCSAgICAgIEk0MEVfSEFTSF9JUFY0X0wyMzRfUlNTX01BU0ssCgkJCSAgICAgIEk0MEVf RklMVEVSX1BDVFlQRV9OT05GX0lQVjRfVENQKSwKCglJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQw RV9QSElOVF9JUFY0X1VEUCwKCQkJICAgICAgRVRIX1JTU19OT05GUkFHX0lQVjRfVURQIHwKCQkJ ICAgICAgSTQwRV9IQVNIX0lQVjRfTDIzNF9SU1NfTUFTSywKCQkJICAgICAgSTQwRV9GSUxURVJf UENUWVBFX05PTkZfSVBWNF9VRFApLAoKCUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBFX1BISU5U X0lQVjRfU0NUUCwKCQkJICAgICAgRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCB8CgkJCSAgICAg IEk0MEVfSEFTSF9JUFY0X0wyMzRfUlNTX01BU0ssCgkJCSAgICAgIEk0MEVfRklMVEVSX1BDVFlQ RV9OT05GX0lQVjRfU0NUUCksCgoJLyogSVB2NiAqLwoJSTQwRV9IQVNIX01BUF9QQVRURVJOKEk0 MEVfUEhJTlRfSVBWNiwKCQkJICAgICAgRVRIX1JTU19GUkFHX0lQVjYgfCBJNDBFX0hBU0hfSVBW Nl9MMjNfUlNTX01BU0ssCgkJCSAgICAgIEk0MEVfRklMVEVSX1BDVFlQRV9GUkFHX0lQVjYpLAoK CUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBFX1BISU5UX0lQVjYsCgkJCSAgICAgIEVUSF9SU1Nf Tk9ORlJBR19JUFY2X09USEVSIHwKCQkJICAgICAgSTQwRV9IQVNIX0lQVjZfTDIzX1JTU19NQVNL LAoJCQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfTk9ORl9JUFY2X09USEVSKSwKCglJNDBFX0hB U0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2X0ZSQUcsCgkJCSAgICAgIEVUSF9SU1NfRlJB R19JUFY2IHwgSTQwRV9IQVNIX0wyM19SU1NfTUFTSywKCQkJICAgICAgSTQwRV9GSUxURVJfUENU WVBFX0ZSQUdfSVBWNiksCgoJSTQwRV9IQVNIX01BUF9QQVRURVJOKEk0MEVfUEhJTlRfSVBWNl9U Q1AsCgkJCSAgICAgIEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8CgkJCSAgICAgIEk0MEVfSEFT SF9JUFY2X0wyMzRfUlNTX01BU0ssCgkJCSAgICAgIEk0MEVfRklMVEVSX1BDVFlQRV9OT05GX0lQ VjZfVENQKSwKCglJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2X1VEUCwKCQkJ ICAgICAgRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwKCQkJICAgICAgSTQwRV9IQVNIX0lQVjZf TDIzNF9SU1NfTUFTSywKCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBFX05PTkZfSVBWNl9VRFAp LAoKCUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBFX1BISU5UX0lQVjZfU0NUUCwKCQkJICAgICAg RVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUCB8CgkJCSAgICAgIEk0MEVfSEFTSF9JUFY2X0wyMzRf UlNTX01BU0ssCgkJCSAgICAgIEk0MEVfRklMVEVSX1BDVFlQRV9OT05GX0lQVjZfU0NUUCksCgoJ LyogRVNQICovCglJNDBFX0hBU0hfTUFQX0NVU19QQVRURVJOKEk0MEVfUEhJTlRfSVBWNF9FU1As CgkJCQkgIEVUSF9SU1NfRVNQLCBJNDBFX0NVU1RPTUlaRURfRVNQX0lQVjQpLAoJSTQwRV9IQVNI X01BUF9DVVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjZfRVNQLAoJCQkJICBFVEhfUlNTX0VTUCwg STQwRV9DVVNUT01JWkVEX0VTUF9JUFY2KSwKCUk0MEVfSEFTSF9NQVBfQ1VTX1BBVFRFUk4oSTQw RV9QSElOVF9JUFY0X1VEUF9FU1AsCgkJCQkgIEVUSF9SU1NfRVNQLCBJNDBFX0NVU1RPTUlaRURf RVNQX0lQVjRfVURQKSwKCUk0MEVfSEFTSF9NQVBfQ1VTX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2 X1VEUF9FU1AsCgkJCQkgIEVUSF9SU1NfRVNQLCBJNDBFX0NVU1RPTUlaRURfRVNQX0lQVjZfVURQ KSwKCgkvKiBHVFBDICovCglJNDBFX0hBU0hfTUFQX0NVU19QQVRURVJOKEk0MEVfUEhJTlRfSVBW NF9HVFBDLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2hhc2gu YzoyMzkKSHVuayAjNCBzdWNjZWVkZWQgYXQgMzA4IChvZmZzZXQgLTExIGxpbmVzKS4KSHVuayAj NSBzdWNjZWVkZWQgYXQgNTY0IChvZmZzZXQgLTExIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQg YXQgODI1IChvZmZzZXQgLTExIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgOTMyIChvZmZz ZXQgLTExIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTA3MCAob2Zmc2V0IC0xMSBsaW5l cykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9wZi5jLi4uCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9yeHR4LmMuLi4KSHVuayAjMyBzdWNjZWVkZWQg YXQgMjI2OSAob2Zmc2V0IDI2IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMzQ0MyAob2Zm c2V0IDI2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX3J4dHgu aC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfcnh0eF92ZWNfYXZ4NTEy LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgODk5IChvZmZzZXQgLTEgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfcnh0eF92ZWNfY29tbW9uLmguLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX3ZmX3JlcHJlc2VudG9yLmMuLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvaWF2Zi9pYXZmX2V0aGRldi5jLi4uCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDYxMCAob2Zm c2V0IC0xIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5mby0+Zmxv d190eXBlX3Jzc19vZmZsb2FkcyA9IElBVkZfUlNTX09GRkxPQURfQUxMOwoJZGV2X2luZm8tPm1h eF9tYWNfYWRkcnMgPSBJQVZGX05VTV9NQUNBRERSX01BWDsKCWRldl9pbmZvLT5yeF9vZmZsb2Fk X2NhcGEgPQoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX1FJ TlFfU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FE X1VEUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlERVZfUlhf T0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CgoJZGV2X2lu Zm8tPnR4X29mZmxvYWRfY2FwYSA9CgkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAoJCURF Vl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwK CQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8 CgkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8CgkJREVWX1RYX09GRkxPQURfVlhM QU5fVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAoJCURFVl9UWF9PRkZM T0FEX0lQSVBfVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAoJCURF Vl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAoJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVF OwoKCWlmICh2Zi0+dmZfcmVzLT52Zl9jYXBfZmxhZ3MgJiBWSVJUQ0hOTF9WRl9PRkZMT0FEX0NS QykKCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JD OwoKCWRldl9pbmZvLT5kZWZhdWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsK CQkucnhfZnJlZV90aHJlc2ggPSBJQVZGX0RFRkFVTFRfUlhfRlJFRV9USFJFU0gsCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfZXRoZGV2LmM6OTYxCkh1bmsgIzE0 IHN1Y2NlZWRlZCBhdCAxNTcxIChvZmZzZXQgMTUgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9pYXZmL2lhdmZfaGFzaC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lh dmYvaWF2Zl9yeHR4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4 dHguaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfYXZ4 Mi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCSAqIG5lZWRzIHRvIGxvYWQgMm5k IDE2QiBvZiBlYWNoIGRlc2MgZm9yIFJTUyBoYXNoIHBhcnNpbmcsCgkJICogd2lsbCBjYXVzZSBw ZXJmb3JtYW5jZSBkcm9wIHRvIGdldCBpbnRvIHRoaXMgY29udGV4dC4KCQkgKi8KCQlpZiAob2Zm bG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8fAoJCSAgICByeHEtPnJ4X2ZsYWdzICYg SUFWRl9SWF9GTEFHU19WTEFOX1RBR19MT0NfTDJUQUcyXzIpIHsKCQkJLyogbG9hZCBib3R0b20g aGFsZiBvZiBldmVyeSAzMkIgZGVzYyAqLwoJCQljb25zdCBfX20xMjhpIHJhd19kZXNjX2JoNyA9 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfYXZ4 Mi5jOjkwNgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCQkoX21tMjU2X2Nhc3RzaTEy OF9zaTI1NihyYXdfZGVzY19iaDApLAoJCQkJCXJhd19kZXNjX2JoMSwgMSk7CgoJCQlpZiAob2Zm bG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkgewoJCQkJLyoqCgkJCQkgKiB0byBzaGlm dCB0aGUgMzJiIFJTUyBoYXNoIHZhbHVlIHRvIHRoZQoJCQkJICogaGlnaGVzdCAzMmIgb2YgZWFj aCAxMjhiIGJlZm9yZSBtYXNrCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZm L2lhdmZfcnh0eF92ZWNfYXZ4Mi5jOjk1OApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZm L2lhdmZfcnh0eF92ZWNfYXZ4NTEyLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJ CSAqIG5lZWRzIHRvIGxvYWQgMm5kIDE2QiBvZiBlYWNoIGRlc2MgZm9yIFJTUyBoYXNoIHBhcnNp bmcsCgkJCSAqIHdpbGwgY2F1c2UgcGVyZm9ybWFuY2UgZHJvcCB0byBnZXQgaW50byB0aGlzIGNv bnRleHQuCgkJCSAqLwoJCQlpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8 fAoJCQkgICAgcnhxLT5yeF9mbGFncyAmIElBVkZfUlhfRkxBR1NfVkxBTl9UQUdfTE9DX0wyVEFH Ml8yKSB7CgkJCQkvKiBsb2FkIGJvdHRvbSBoYWxmIG9mIGV2ZXJ5IDMyQiBkZXNjICovCgkJCQlj b25zdCBfX20xMjhpIHJhd19kZXNjX2JoNyA9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfYXZ4NTEyLmM6MTE0MQplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCQkJCQkJKF9tbTI1Nl9jYXN0c2kxMjhfc2kyNTYocmF3X2Rlc2NfYmgwKSwKCQkJ CQkJIHJhd19kZXNjX2JoMSwgMSk7CgoJCQkJaWYgKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURf UlNTX0hBU0gpIHsKCQkJCQkvKioKCQkJCQkgKiB0byBzaGlmdCB0aGUgMzJiIFJTUyBoYXNoIHZh bHVlIHRvIHRoZQoJCQkJCSAqIGhpZ2hlc3QgMzJiIG9mIGVhY2ggMTI4YiBiZWZvcmUgbWFzawoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX2F2eDUx Mi5jOjExOTMKSHVuayAjMyBzdWNjZWVkZWQgYXQgMTcxOSAob2Zmc2V0IC0yIGxpbmVzKS4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX3NzZS5jLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCSAqIG5lZWRzIHRvIGxvYWQgMm5kIDE2QiBvZiBlYWNo IGRlc2MgZm9yIFJTUyBoYXNoIHBhcnNpbmcsCgkJICogd2lsbCBjYXVzZSBwZXJmb3JtYW5jZSBk cm9wIHRvIGdldCBpbnRvIHRoaXMgY29udGV4dC4KCQkgKi8KCQlpZiAob2ZmbG9hZHMgJiBERVZf UlhfT0ZGTE9BRF9SU1NfSEFTSCkgewoJCQkvKiBsb2FkIGJvdHRvbSBoYWxmIG9mIGV2ZXJ5IDMy QiBkZXNjICovCgkJCWNvbnN0IF9fbTEyOGkgcmF3X2Rlc2NfYmgzID0KCQkJCV9tbV9sb2FkX3Np MTI4CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNf c3NlLmM6ODE5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2VfZGNmLmMuLi4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9kY2ZfZXRoZGV2LmMuLi4KSHVuayAjMSBz dWNjZWVkZWQgYXQgOTYgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA1Nzcg KG9mZnNldCAxIGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA2NDAgKG9mZnNldCAzIGxpbmVz KS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgNjU1IChvZmZzZXQgMyBsaW5lcykuCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBJQ0Vf UlNTX09GRkxPQURfQUxMOwoKCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9P RkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9S WF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZf UlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwK CQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7 CglkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0KCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VS VCB8CgkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVURQX0NL U1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1NDVFBf Q0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURFVl9UWF9PRkZM T0FEX1RDUF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAoJCURFVl9UWF9P RkZMT0FEX0dSRV9UTkxfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAoJCURF Vl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT OwoKCWRldl9pbmZvLT5kZWZhdWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsK CQkucnhfdGhyZXNoID0gewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaWNlL2lj ZV9kY2ZfZXRoZGV2LmM6Njc1Ckh1bmsgIzYgc3VjY2VlZGVkIGF0IDkyNyAob2Zmc2V0IDIgbGlu ZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA5ODEgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjOCBz dWNjZWVkZWQgYXQgMTAxMiAob2Zmc2V0IDIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9pY2UvaWNlX2RjZl92Zl9yZXByZXNlbnRvci5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJZGV2X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBJQ0VfUlNTX09GRkxP QURfQUxMOwoKCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9PRkZMT0FEX1ZM QU5fU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FE X1VEUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlERVZfUlhf T0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfAoJCURF Vl9SWF9PRkZMT0FEX1JTU19IQVNIOwoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9CgkJREVW X1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJ CURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwK CQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0 X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9WWExB Tl9UTkxfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8CgkJREVWX1RYX09GRkxP QURfSVBJUF9UTkxfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CgkJREVW X1RYX09GRkxPQURfTVVMVElfU0VHUzsKCglkZXZfaW5mby0+ZGVmYXVsdF9yeGNvbmYgPSAoc3Ry dWN0IHJ0ZV9ldGhfcnhjb25mKSB7CgkJLnJ4X3RocmVzaCA9IHsKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L2ljZS9pY2VfZGNmX3ZmX3JlcHJlc2VudG9yLmM6MTQzCkh1bmsgIzQg c3VjY2VlZGVkIGF0IDI0NyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDM0 NiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDM3NiAob2Zmc2V0IDEgbGlu ZSkuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2VfZXRoZGV2LmMuLi4KSHVuayAj MSBzdWNjZWVkZWQgYXQgMTQ4MCAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQg YXQgMjk4NiAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMzAwMyAob2Zm c2V0IC03IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMzAxMyAob2Zmc2V0IC03IGxpbmVz KS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMzAyMyAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjNiBz dWNjZWVkZWQgYXQgMzAzNCAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQg MzA0NSAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMzA1NiAob2Zmc2V0 IC03IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMzA2NyAob2Zmc2V0IC03IGxpbmVzKS4K SHVuayAjMTAgc3VjY2VlZGVkIGF0IDMwNzggKG9mZnNldCAtNyBsaW5lcykuCkh1bmsgIzExIHN1 Y2NlZWRlZCBhdCAzMDg4IChvZmZzZXQgLTcgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQg MzA5OCAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDMxMDggKG9mZnNl dCAtNyBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAzMTE4IChvZmZzZXQgLTcgbGluZXMp LgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMzEyOCAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjMTYg c3VjY2VlZGVkIGF0IDMxMzggKG9mZnNldCAtNyBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBh dCAzMjgxIChvZmZzZXQgLTcgbGluZXMpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMzU2MiAob2Zm c2V0IC03IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5mby0+bWlu X210dSA9IFJURV9FVEhFUl9NSU5fTVRVOwoKCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPQoJ CURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwK CQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsK CWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPQoJCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJU IHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT IHwKCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKCWRldl9pbmZvLT5mbG93X3R5cGVf cnNzX29mZmxvYWRzID0gMDsKCglpZiAoIWlzX3NhZmVfbW9kZSkgewoJCWRldl9pbmZvLT5yeF9v ZmZsb2FkX2NhcGEgfD0KCQkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJCURFVl9SWF9P RkZMT0FEX1VEUF9DS1NVTSB8CgkJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJCURFVl9S WF9PRkZMT0FEX1FJTlFfU1RSSVAgfAoJCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VN IHwKCQkJREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfAoJCQlERVZfUlhfT0ZGTE9BRF9SU1Nf SEFTSCB8CgkJCURFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUDsKCQlkZXZfaW5mby0+dHhfb2ZmbG9h ZF9jYXBhIHw9CgkJCURFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKCQkJREVWX1RYX09GRkxP QURfSVBWNF9DS1NVTSB8CgkJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCURFVl9UWF9P RkZMT0FEX1RDUF9DS1NVTSB8CgkJCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAoJCQlERVZf VFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQkJREVWX1RYX09GRkxPQURfT1VURVJfVURQ X0NLU1VNOwoJCWRldl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzIHw9IElDRV9SU1NfT0ZG TE9BRF9BTEw7Cgl9CgoJZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CglkZXZf aW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhID0gREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZS RUU7CgoJZGV2X2luZm8tPnJldGFfc2l6ZSA9IHBmLT5oYXNoX2x1dF9zaXplOwoJZGV2X2luZm8t Pmhhc2hfa2V5X3NpemUgPSAoVlNJUUZfSEtFWV9NQVhfSU5ERVggKyAxKSAqIHNpemVvZih1aW50 MzJfdCk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5j OjM2ODIKSHVuayAjMjAgc3VjY2VlZGVkIGF0IDM3NDggKG9mZnNldCAtNiBsaW5lcykuCkh1bmsg IzIxIHN1Y2NlZWRlZCBhdCAzODMwIChvZmZzZXQgLTYgbGluZXMpLgpIdW5rICMyMiBzdWNjZWVk ZWQgYXQgMzg0NyAob2Zmc2V0IC02IGxpbmVzKS4KSHVuayAjMjMgc3VjY2VlZGVkIGF0IDQzODgg KG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzI0IHN1Y2NlZWRlZCBhdCA0NTExIChvZmZzZXQgMTEg bGluZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgNDU2MSAob2Zmc2V0IDExIGxpbmVzKS4KSHVu ayAjMjYgc3VjY2VlZGVkIGF0IDU0NzEgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzI3IHN1Y2Nl ZWRlZCBhdCA1NDk1IChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgNTUx NiAob2Zmc2V0IDExIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9l dGhkZXYuaC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMTYgKG9mZnNldCAtMSBsaW5lcykuCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2VfaGFzaC5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0eC5jLi4uCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDExMjAg KG9mZnNldCAzIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCWljZV9yeGRf dG9fdmxhbl90Y2kobWIsICZyeGRwW2pdKTsKCQkJcnhxLT5yeGRfdG9fcGt0X2ZpZWxkcyhyeHEs IG1iLCAmcnhkcFtqXSk7CiNpZm5kZWYgUlRFX0xJQlJURV9JQ0VfMTZCWVRFX1JYX0RFU0MKCQkJ aWYgKHJ4cS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVApIHsKCQkJCXRzX25z ID0gaWNlX3RzdGFtcF9jb252ZXJ0XzMyYl82NGIoaHcsCgkJCQkJcnRlX2xlX3RvX2NwdV8zMihy eGRwW2pdLndiLmZsZXhfdHMudHNfaGlnaCkpOwoJCQkJaWYgKGljZV90aW1lc3RhbXBfZHluZmxh ZyA+IDApIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0eC5j OjE2MjQKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcnhxLT5yeGRfdG9fcGt0X2ZpZWxk cyhyeHEsIGZpcnN0X3NlZywgJnJ4ZCk7CgkJcGt0X2ZsYWdzID0gaWNlX3J4ZF9lcnJvcl90b19w a3RfZmxhZ3Mocnhfc3RhdF9lcnIwKTsKI2lmbmRlZiBSVEVfTElCUlRFX0lDRV8xNkJZVEVfUlhf REVTQwoJCWlmIChyeHEtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVElNRVNUQU1QKSB7CgkJ CXRzX25zID0gaWNlX3RzdGFtcF9jb252ZXJ0XzMyYl82NGIoaHcsCgkJCQlydGVfbGVfdG9fY3B1 XzMyKHJ4ZC53Yi5mbGV4X3RzLnRzX2hpZ2gpKTsKCQkJaWYgKGljZV90aW1lc3RhbXBfZHluZmxh ZyA+IDApIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0eC5j OjE5NDIKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcnhxLT5yeGRfdG9fcGt0X2ZpZWxk cyhyeHEsIHJ4bSwgJnJ4ZCk7CgkJcGt0X2ZsYWdzID0gaWNlX3J4ZF9lcnJvcl90b19wa3RfZmxh Z3Mocnhfc3RhdF9lcnIwKTsKI2lmbmRlZiBSVEVfTElCUlRFX0lDRV8xNkJZVEVfUlhfREVTQwoJ CWlmIChyeHEtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVElNRVNUQU1QKSB7CgkJCXRzX25z ID0gaWNlX3RzdGFtcF9jb252ZXJ0XzMyYl82NGIoaHcsCgkJCQlydGVfbGVfdG9fY3B1XzMyKHJ4 ZC53Yi5mbGV4X3RzLnRzX2hpZ2gpKTsKCQkJaWYgKGljZV90aW1lc3RhbXBfZHluZmxhZyA+IDAp IHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0eC5jOjIzNzMK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4X3ZlY19hdngyLmMuLi4KSHVu ayAjMSBzdWNjZWVkZWQgYXQgNDczIChvZmZzZXQgLTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9pY2UvaWNlX3J4dHhfdmVjX2F2eDUxMi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVk IGF0IDU4NCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgOTk0IChvZmZz ZXQgLTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX3J4dHhfdmVj X2NvbW1vbi5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0eF92ZWNf c3NlLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWdjL2lnY19ldGhkZXYuYy4uLgpI dW5rICMxIHN1Y2NlZWRlZCBhdCAzMTQgKG9mZnNldCA3IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVk ZWQgYXQgMzI1IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDM0MSAob2Zm c2V0IDcgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA0ODAgKG9mZnNldCA3IGxpbmVzKS4K SHVuayAjNSBzdWNjZWVkZWQgYXQgNDk3IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzYgc3VjY2Vl ZGVkIGF0IDUzMiAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA5NzkgKG9m ZnNldCA3IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTAwMCAob2Zmc2V0IDcgbGluZXMp LgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxNDkwIChvZmZzZXQgOCBsaW5lcykuCkh1bmsgIzEwIHN1 Y2NlZWRlZCBhdCAxNTIzIChvZmZzZXQgOCBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAy MTY1IChvZmZzZXQgMjQgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMjIwMyAob2Zmc2V0 IDI0IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDIyNTggKG9mZnNldCAyNCBsaW5lcyku Ckh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAyMzE0IChvZmZzZXQgMjQgbGluZXMpLgpIdW5rICMxNSBz dWNjZWVkZWQgYXQgMjM5MyAob2Zmc2V0IDI0IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0 IDI1NTQgKG9mZnNldCA0MCBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAyNTg3IChvZmZz ZXQgNDAgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pZ2MvaWdjX2V0aGRldi5o Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojZGVmaW5lIElHQ19UWF9NQVhfTVRVX1NF RwlVSU5UOF9NQVgKCiNkZWZpbmUgSUdDX1JYX09GRkxPQURfQUxMCSggICAgXAoJREVWX1JYX09G RkxPQURfVkxBTl9TVFJJUCAgfCBcCglERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKCURF Vl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwgXAoJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAg fCBcCglERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8IFwKCURFVl9SWF9PRkZMT0FEX1RDUF9D S1NVTSAgIHwgXAoJREVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSAgfCBcCglERVZfUlhfT0ZGTE9B RF9LRUVQX0NSQyAgICB8IFwKCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgICAgIHwgXAoJREVWX1JY X09GRkxPQURfUlNTX0hBU0gpCgojZGVmaW5lIElHQ19UWF9PRkZMT0FEX0FMTAkoICAgIFwKCURF Vl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwgXAoJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSAg fCBcCglERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8IFwKCURFVl9UWF9PRkZMT0FEX1RDUF9D S1NVTSAgIHwgXAoJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSAgfCBcCglERVZfVFhfT0ZGTE9B RF9UQ1BfVFNPICAgICB8IFwKCURFVl9UWF9PRkZMT0FEX1VEUF9UU08JICAgfCBcCglERVZfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTKQoKI2RlZmluZSBJR0NfUlNTX09GRkxPQURfQUxMCSggICAgXAoJ RVRIX1JTU19JUFY0ICAgICAgICAgICAgICAgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1Ag ICB8IFwKCUVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCAgIHwgXAoJRVRIX1JTU19JUFY2ICAgICAg ICAgICAgICAgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgICB8IFwKCUVUSF9SU1NfTk9O RlJBR19JUFY2X1VEUCAgIHwgXAoJRVRIX1JTU19JUFY2X0VYICAgICAgICAgICAgfCBcCglFVEhf UlNTX0lQVjZfVENQX0VYICAgICAgICB8IFwKCUVUSF9SU1NfSVBWNl9VRFBfRVgpCgojZGVmaW5l IElHQ19NQVhfRVRRRl9GSUxURVJTCQkzCS8qIGV0cWYoMykgaXMgdXNlZCBmb3IgMTU4OCAqLwoj ZGVmaW5lIElHQ19FVFFGX0ZJTFRFUl8xNTg4CQkzCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9pZ2MvaWdjX2V0aGRldi5oOjY2CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ln Yy9pZ2NfdHhyeC5jLi4uCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDg2NiAob2Zmc2V0IDE5IGxpbmVz KS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTA1NiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNSBz dWNjZWVkZWQgYXQgMTEzMCAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQg MTE5NiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMTI0MCAob2Zmc2V0 IDE5IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTI2MSAob2Zmc2V0IDE5IGxpbmVzKS4K SHVuayAjOSBzdWNjZWVkZWQgYXQgMTI5OCAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMTAgc3Vj Y2VlZGVkIGF0IDIyNzIgKG9mZnNldCAxOSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2lvbmljL2lvbmljX2V0aGRldi5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDM5NyAob2Zm c2V0IDEwIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkgKi8KCglkZXZfaW5m by0+cnhfb2ZmbG9hZF9jYXBhID0gZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSB8CgkJ REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwK CQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVS IHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVS IHwKCQlERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8CgkJMDsKCglkZXZfaW5mby0+dHhfb2ZmbG9h ZF9jYXBhID0gZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSB8CgkJREVWX1RYX09GRkxP QURfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfVFhfT0ZG TE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURF Vl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfTVVMVElfU0VH UyB8CgkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8CgkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNF UlQgfAoJCTA7CgoJZGV2X2luZm8tPnJ4X2Rlc2NfbGltID0gcnhfZGVzY19saW07CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pb25pYy9pb25pY19ldGhkZXYuYzo0MTEKSHVuayAj NCBzdWNjZWVkZWQgYXQgNDc0IChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBh dCA0OTggKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDU1NiAob2Zmc2V0 IDExIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgNTk2IChvZmZzZXQgMTEgbGluZXMpLgpI dW5rICM4IHN1Y2NlZWRlZCBhdCA2MjkgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzkgc3VjY2Vl ZGVkIGF0IDY3MSAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDg1MyAo b2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDg4NSAob2Zmc2V0IDExIGxp bmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDkwNyAob2Zmc2V0IDExIGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvaW9uaWMvaW9uaWNfZXRoZGV2LmguLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvaW9uaWMvaW9uaWNfbGlmLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvaW9uaWMvaW9uaWNfcnh0eC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lw bjNrZS9pcG4za2VfcmVwcmVzZW50b3IuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CX07CglkZXZfaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsKCWRldl9pbmZvLT5yeF9v ZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9PRkZM T0FEX1FJTlFfU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9P RkZMT0FEX1VEUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhf T0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8 CgkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVI7CgoJZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxv YWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwoJZGV2X2luZm8tPnR4X29m ZmxvYWRfY2FwYSA9CgkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAoJCURFVl9UWF9PRkZM T0FEX1FJTlFfSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfVFhf T0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1RY X09GRkxPQURfU0NUUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8 CgkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8CgkJREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RT TyB8CgkJREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0lQSVBf VE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAoJCURFVl9UWF9PRkZM T0FEX01VTFRJX1NFR1MgfAoJCWRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGE7CgoJZGV2 X2luZm8tPmRldl9jYXBhID0KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2lwbjNr ZS9pcG4za2VfcmVwcmVzZW50b3IuYzo2NwpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyNDAwIChvZmZz ZXQgMSBsaW5lKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMjQ2MSAob2Zmc2V0IDEgbGluZSkuCkh1 bmsgIzUgc3VjY2VlZGVkIGF0IDI1MTkgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAx ODU5IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDE4NzQgKG9mZnNldCAy IGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTk2MSAob2Zmc2V0IDIgbGluZXMpLgpIdW5r ICM0IHN1Y2NlZWRlZCBhdCAyMDg1IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVk IGF0IDIxMDIgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMjEyNCAob2Zm c2V0IDIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAyMTQ1IChvZmZzZXQgMiBsaW5lcyku Ckh1bmsgIzggc3VjY2VlZGVkIGF0IDIxOTUgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjOSBzdWNj ZWVkZWQgYXQgMjIyMiAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMjI0 MyAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMjI1NyAob2Zmc2V0IDIg bGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMjI3NyAob2Zmc2V0IDIgbGluZXMpLgpIdW5r ICMxMyBzdWNjZWVkZWQgYXQgMjI5MiAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVk ZWQgYXQgMjMwOSAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMjM1MCAo b2Zmc2V0IDIgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQgYXQgMjM3NCAob2Zmc2V0IDIgbGlu ZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgMjYyMCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMx OCBzdWNjZWVkZWQgYXQgMjcwNSAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQg YXQgMjcyOSAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMyMCBzdWNjZWVkZWQgYXQgMjc0NyAob2Zm c2V0IDIgbGluZXMpLgpIdW5rICMyMSBzdWNjZWVkZWQgYXQgMzgzMyAob2Zmc2V0IDIgbGluZXMp LgpIdW5rICMyMiBzdWNjZWVkZWQgYXQgMzg0MyAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMyMyBz dWNjZWVkZWQgYXQgMzg4NCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMyNCBzdWNjZWVkZWQgYXQg Mzk2NyAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgNDIxMiAob2Zmc2V0 IDIgbGluZXMpLgpIdW5rICMyNiBzdWNjZWVkZWQgYXQgNDIzOCAob2Zmc2V0IDIgbGluZXMpLgpI dW5rICMyNyBzdWNjZWVkZWQgYXQgNDI3NSAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMyOCBzdWNj ZWVkZWQgYXQgNDUyMiAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgNDc0 MSAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMzMCBzdWNjZWVkZWQgYXQgNTA0NSAob2Zmc2V0IDIg bGluZXMpLgpIdW5rICMzMSBzdWNjZWVkZWQgYXQgNTA5MyAob2Zmc2V0IDIgbGluZXMpLgpIdW5r ICMzMiBzdWNjZWVkZWQgYXQgNTI2NSAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjMzMgc3VjY2Vl ZGVkIGF0IDUzNDAgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzM0IHN1Y2NlZWRlZCBhdCA1NTc4 IChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICMzNSBzdWNjZWVkZWQgYXQgNTcxMiAob2Zmc2V0IDEx IGxpbmVzKS4KSHVuayAjMzYgc3VjY2VlZGVkIGF0IDU3MzEgKG9mZnNldCAxMSBsaW5lcykuCkh1 bmsgIzM3IHN1Y2NlZWRlZCBhdCA2NzQyIChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMzOCBzdWNj ZWVkZWQgYXQgNzE2MSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMzkgc3VjY2VlZGVkIGF0IDcx ODAgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzQwIHN1Y2NlZWRlZCBhdCA3MjM5IChvZmZzZXQg MTkgbGluZXMpLgpIdW5rICM0MSBzdWNjZWVkZWQgYXQgNzI1MCAob2Zmc2V0IDE5IGxpbmVzKS4K SHVuayAjNDIgc3VjY2VlZGVkIGF0IDcyNzQgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzQzIHN1 Y2NlZWRlZCBhdCA3Mjg5IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICM0NCBzdWNjZWVkZWQgYXQg NzU0MiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNDUgc3VjY2VlZGVkIGF0IDc1NzQgKG9mZnNl dCAxOSBsaW5lcykuCkh1bmsgIzQ2IHN1Y2NlZWRlZCBhdCA3NjcxIChvZmZzZXQgMTkgbGluZXMp LgpIdW5rICM0NyBzdWNjZWVkZWQgYXQgNzcwOCAob2Zmc2V0IDE5IGxpbmVzKS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmguLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmRpci5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdi ZS9peGdiZV9pcHNlYy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2Jl X3BmLmMuLi4KSHVuayAjMyBzdWNjZWVkZWQgYXQgNjgxIChvZmZzZXQgNyBsaW5lcykuCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCXVpbnQ2NF90IG9mZmxvYWRzOwoJc3RydWN0IGl4Z2JlX2h3ICpodyA9 IElYR0JFX0RFVl9QUklWQVRFX1RPX0hXKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCW9mZmxv YWRzID0gREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAoJCSAgIERFVl9SWF9PRkZMT0FEX1VE UF9DS1NVTSAgIHwKCQkgICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CgkJICAgREVWX1JY X09GRkxPQURfS0VFUF9DUkMgICAgfAoJCSAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwK CQkgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQkgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFT SDsKCglpZiAoaHctPm1hYy50eXBlID09IGl4Z2JlX21hY184MjU5OEVCKQoJCW9mZmxvYWRzIHw9 IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CgoJaWYgKGl4Z2JlX2lzX3ZmKGRldikgPT0gMCkK CQlvZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORDsKCgkvKgoJICogUlNDIGlz IG9ubHkgc3VwcG9ydGVkIGJ5IDgyNTk5IGFuZCB4NTQwIFBGIGRldmljZXMgaW4gYSBub24tU1It SU9WCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6 MzAzMgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAzMDU1IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNiBz dWNjZWVkZWQgYXQgMzEyMyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDM1 MjYgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDM2MjQgKG9mZnNldCAx OSBsaW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDM3MTYgKG9mZnNldCAxOSBsaW5lcykuCkh1 bmsgIzEwIHN1Y2NlZWRlZCBhdCAzNzQ2IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMxMSBzdWNj ZWVkZWQgYXQgMzc1NSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDM3 NzEgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAzNzk1IChvZmZzZXQg MTkgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMzg3NyAob2Zmc2V0IDE5IGxpbmVzKS4K SHVuayAjMTUgc3VjY2VlZGVkIGF0IDM4OTMgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzE2IHN1 Y2NlZWRlZCBhdCAzOTA4IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQg MzkyNiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDM5NDEgKG9mZnNl dCAxOSBsaW5lcykuCkh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAzOTY4IChvZmZzZXQgMTkgbGluZXMp LgpIdW5rICMyMCBzdWNjZWVkZWQgYXQgMzk5NSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMjEg c3VjY2VlZGVkIGF0IDQxNjQgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzIyIHN1Y2NlZWRlZCBh dCA0MTc3IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgNDE5MSAob2Zm c2V0IDE5IGxpbmVzKS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDQyMDIgKG9mZnNldCAxOSBsaW5l cykuCkh1bmsgIzI1IHN1Y2NlZWRlZCBhdCA0MjE4IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMy NiBzdWNjZWVkZWQgYXQgNDI3NiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMjcgc3VjY2VlZGVk IGF0IDQyOTEgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzI4IHN1Y2NlZWRlZCBhdCA0MzI3IChv ZmZzZXQgMTkgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgNDM0MSAob2Zmc2V0IDE5IGxp bmVzKS4KSHVuayAjMzAgc3VjY2VlZGVkIGF0IDQzNjIgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsg IzMxIHN1Y2NlZWRlZCBhdCA0NDIzIChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMzMiBzdWNjZWVk ZWQgYXQgNDU0NCAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMzMgc3VjY2VlZGVkIGF0IDQ1Njkg KG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzM0IHN1Y2NlZWRlZCBhdCA0NjA2IChvZmZzZXQgMTkg bGluZXMpLgpIdW5rICMzNSBzdWNjZWVkZWQgYXQgNDYzMSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVu ayAjMzYgc3VjY2VlZGVkIGF0IDQ2NzYgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzM3IHN1Y2Nl ZWRlZCBhdCA0Njg5IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMzOCBzdWNjZWVkZWQgYXQgNDkw MyAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMzkgc3VjY2VlZGVkIGF0IDQ5MzEgKG9mZnNldCAx OSBsaW5lcykuCkh1bmsgIzQwIHN1Y2NlZWRlZCBhdCA0OTQyIChvZmZzZXQgMTkgbGluZXMpLgpI dW5rICM0MSBzdWNjZWVkZWQgYXQgNDk1NyAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNDIgc3Vj Y2VlZGVkIGF0IDQ5NjYgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzQzIHN1Y2NlZWRlZCBhdCA1 MDg3IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICM0NCBzdWNjZWVkZWQgYXQgNTEyNCAob2Zmc2V0 IDE4IGxpbmVzKS4KSHVuayAjNDUgc3VjY2VlZGVkIGF0IDUxMzMgKG9mZnNldCAxOCBsaW5lcyku CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCS8qIEl0IGFkZHMgZHVhbCBWTEFOIGxlbmd0 aCBmb3Igc3VwcG9ydGluZyBkdWFsIFZMQU4gKi8KCQlpZiAoZnJhbWVfc2l6ZSArIDIgKiBJWEdC RV9WTEFOX1RBR19TSVpFID4gYnVmX3NpemUpCgkJCWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0g MTsKCQlpZiAocnhxLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVApCgkJCXJ4 X2NvbmYtPm9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7Cgl9CgoJaWYgKHJ4 X2NvbmYtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikKCQlkZXYtPmRhdGEtPnNj YXR0ZXJlZF9yeCA9IDE7CgoJLyoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4 Z2JlL2l4Z2JlX3J4dHguYzo1MTU4Ckh1bmsgIzQ3IHN1Y2NlZWRlZCBhdCA1MTk1IChvZmZzZXQg MTkgbGluZXMpLgpIdW5rICM0OCBzdWNjZWVkZWQgYXQgNTIwNSAob2Zmc2V0IDE5IGxpbmVzKS4K SHVuayAjNDkgc3VjY2VlZGVkIGF0IDU0MTEgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzUwIHN1 Y2NlZWRlZCBhdCA1NzAxIChvZmZzZXQgMTkgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCQlidWZfc2l6ZSA9ICh1aW50MTZfdCkgKChzcnJjdGwgJiBJWEdCRV9TUlJDVExfQlNJ WkVQS1RfTUFTSykgPDwKCQkJCSAgICAgICBJWEdCRV9TUlJDVExfQlNJWkVQS1RfU0hJRlQpOwoK CQlpZiAocnhtb2RlLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfHwKCQkgICAg LyogSXQgYWRkcyBkdWFsIFZMQU4gbGVuZ3RoIGZvciBzdXBwb3J0aW5nIGR1YWwgVkxBTiAqLwoJ CSAgICAoZnJhbWVfc2l6ZSArIDIgKiBJWEdCRV9WTEFOX1RBR19TSVpFKSA+IGJ1Zl9zaXplKSB7 CgkJCWlmICghZGV2LT5kYXRhLT5zY2F0dGVyZWRfcngpCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBk cml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6NTczMgpIdW5rICM1MiBzdWNjZWVkZWQgYXQg NTc1OSAob2Zmc2V0IDIwIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfcnh0eC5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4 dHhfdmVjX2NvbW1vbi5oLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDI3OCAob2Zmc2V0IDEgbGlu ZSkuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3RtLmMuLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfdmZfcmVwcmVzZW50b3IuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9ydGVfcG1kX2l4Z2JlLmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvcnRlX3BtZF9peGdiZS5oLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2tuaS9ydGVfZXRoX2tuaS5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2xpcXVpZGlvL2xpb19ldGhkZXYuYy4uLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA1NDAgKG9m ZnNldCAyMSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDU4MyAob2Zmc2V0IDIxIGxpbmVz KS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgNjE2IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICM2IHN1 Y2NlZWRlZCBhdCA2OTQgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDc3 OCAob2Zmc2V0IDIxIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgODM1IChvZmZzZXQgMjEg bGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCA5MzMgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsg IzEwIHN1Y2NlZWRlZCBhdCA5NDQgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRl ZCBhdCAxMTA3IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMTEyNCAo b2Zmc2V0IDIxIGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDE1MTMgKG9mZnNldCAyOSBs aW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAxNTM0IChvZmZzZXQgMjkgbGluZXMpLgpIdW5r ICMxNSBzdWNjZWVkZWQgYXQgMTc1MCAob2Zmc2V0IDI5IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbWVtaWYvbWVtaWZfc29ja2V0LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbWVtaWYvcnRlX2V0aF9tZW1pZi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L21seDQvbWx4NF9ldGhkZXYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21s eDRfZmxvdy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9pbnRyLmMu Li4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgp1aW50NjRfdAptbHg0X2dldF9yeF9xdWV1ZV9vZmZsb2Fkcyhz dHJ1Y3QgbWx4NF9wcml2ICpwcml2KQp7Cgl1aW50NjRfdCBvZmZsb2FkcyA9IERFVl9SWF9PRkZM T0FEX1NDQVRURVIgfAoJCQkgICAgREVWX1JYX09GRkxPQURfS0VFUF9DUkMgfAoJCQkgICAgREVW X1JYX09GRkxPQURfUlNTX0hBU0g7CgoJaWYgKHByaXYtPmh3X2NzdW0pCgkJb2ZmbG9hZHMgfD0g REVWX1JYX09GRkxPQURfQ0hFQ0tTVU07CglyZXR1cm4gb2ZmbG9hZHM7Cn0KCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDRfcnhxLmM6NjgyCkh1bmsgIzIgc3VjY2Vl ZGVkIGF0IDcwNCAob2Zmc2V0IDEgbGluZSkuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ bWF4X3J4X3BrdGxlbiA9IGRldi0+ZGF0YS0+bXR1ICsgUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVf RVRIRVJfQ1JDX0xFTjsKCWlmIChtYXhfcnhfcGt0bGVuIDw9IChtYl9sZW4gLSBSVEVfUEtUTUJV Rl9IRUFEUk9PTSkpIHsKCQk7Cgl9IGVsc2UgaWYgKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURf U0NBVFRFUikgewoJCXVpbnQzMl90IHNpemUgPSBSVEVfUEtUTUJVRl9IRUFEUk9PTSArIG1heF9y eF9wa3RsZW47CgkJdWludDMyX3Qgc2dlc19uOwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L21seDQvbWx4NF9yeHEuYzo4MzIKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4 NC9tbHg0X3R4cS5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbGludXgvbWx4 NV9ldGhkZXZfb3MuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L2xpbnV4L21s eDVfb3MuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMzQyIChvZmZzZXQgLTggbGluZXMpLgpI dW5rICMyIHN1Y2NlZWRlZCBhdCAxNjI2IChvZmZzZXQgLTggbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9tbHg1L21seDUuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxNjE4IChv ZmZzZXQgMTMwIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1Lmgu Li4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTIzNSAob2Zmc2V0IDE4IGxpbmVzKS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2RlZnMuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9tbHg1L21seDVfZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NS9tbHg1X2Zsb3cuYy4uLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAyOTIgKG9mZnNldCAtNiBs aW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDU0NiAob2Zmc2V0IC0xNCBsaW5lcykuCkh1bmsg IzQgc3VjY2VlZGVkIGF0IDU1NSAob2Zmc2V0IC0xNCBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVk IGF0IDU3MCAob2Zmc2V0IC0xNCBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDU3OSAob2Zm c2V0IC0xNCBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDYzNiAob2Zmc2V0IC0yMyBsaW5l cykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDEwNzIgKG9mZnNldCAtMjMgbGluZXMpLgpIdW5rICM5 IHN1Y2NlZWRlZCBhdCAxNjI1IChvZmZzZXQgLTIzIGxpbmVzKS4KSHVuayAjMTAgc3VjY2VlZGVk IGF0IDYzODggKG9mZnNldCAtMjMgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgNzAxMyAo b2Zmc2V0IC0yMyBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCA4NjgxIChvZmZzZXQgLTIz IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuaC4uLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvd19kdi5jLi4uCkh1bmsgIzEg c3VjY2VlZGVkIGF0IDEwOTI4IChvZmZzZXQgOTEgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBh dCAxMDkzOCAob2Zmc2V0IDkxIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTA5NTQgKG9m ZnNldCA5MSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDEwOTY2IChvZmZzZXQgOTEgbGlu ZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxNDUwOCAob2Zmc2V0IDkwIGxpbmVzKS4KSHVuayAj NiBzdWNjZWVkZWQgYXQgMTQ1MTkgKG9mZnNldCA5MCBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVk IGF0IDE0NTMwIChvZmZzZXQgOTAgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxNDU0MyAo b2Zmc2V0IDkwIGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTQ2OTUgKG9mZnNldCA5MCBs aW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93X3ZlcmJzLmMu Li4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTgzNCAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMiBz dWNjZWVkZWQgYXQgMTg0NyAob2Zmc2V0IDE4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NS9tbHg1X3Jzcy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUv bWx4NV9yeHEuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKewoJc3RydWN0IG1seDVf cHJpdiAqcHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7CglzdHJ1Y3QgbWx4NV9kZXZfY29u ZmlnICpjb25maWcgPSAmcHJpdi0+Y29uZmlnOwoJdWludDY0X3Qgb2ZmbG9hZHMgPSAoREVWX1JY X09GRkxPQURfU0NBVFRFUiB8CgkJCSAgICAgREVWX1JYX09GRkxPQURfVElNRVNUQU1QIHwKCQkJ ICAgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCk7CgoJaWYgKCFjb25maWctPm1wcnEuZW5hYmxl ZCkKCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfQlVGRkVSX1NQTElUOwoJaWYgKGNv bmZpZy0+aHdfZmNzX3N0cmlwKQoJCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JD OwoJaWYgKGNvbmZpZy0+aHdfY3N1bSkKCQlvZmZsb2FkcyB8PSAoREVWX1JYX09GRkxPQURfSVBW NF9DS1NVTSB8CgkJCSAgICAgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJICAgICBERVZf UlhfT0ZGTE9BRF9UQ1BfQ0tTVU0pOwoJaWYgKGNvbmZpZy0+aHdfdmxhbl9zdHJpcCkKCQlvZmZs b2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQOwoJaWYgKE1MWDVfTFJPX1NVUFBPUlRF RChkZXYpKQoJCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1RDUF9MUk87CglyZXR1cm4gb2Zm bG9hZHM7Cn0KCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21seDVfcnhx LmM6MzMzCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDM2MyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMg c3VjY2VlZGVkIGF0IDY5NSAob2Zmc2V0IDEgbGluZSkuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJc3RydWN0IG1seDVfZGV2X2NvbmZpZyAqY29uZmlnID0gJnByaXYtPmNvbmZpZzsKCXVp bnQ2NF90IG9mZmxvYWRzID0gY29uZi0+b2ZmbG9hZHMgfAoJCQkgICBkZXYtPmRhdGEtPmRldl9j b25mLnJ4bW9kZS5vZmZsb2FkczsKCXVuc2lnbmVkIGludCBscm9fb25fcXVldWUgPSAhIShvZmZs b2FkcyAmIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8pOwoJdW5zaWduZWQgaW50IG1heF9yeF9wa3Rs ZW4gPSBscm9fb25fcXVldWUgPwoJCQlkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tYXhfbHJv X3BrdF9zaXplIDoKCQkJZGV2LT5kYXRhLT5tdHUgKyAodW5zaWduZWQgaW50KVJURV9FVEhFUl9I RFJfTEVOICsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHEu YzoxMzI1Ckh1bmsgIzUgc3VjY2VlZGVkIGF0IDE0MzkgKG9mZnNldCAxMSBsaW5lcykuCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQljb25maWctPm1wcnEuc3RyaWRlX3NpemVfbiA6IG1w cnFfc3RyaWRlX3NpemU7CgkJdG1wbC0+cnhxLnN0cmRfc2hpZnRfZW4gPSBNTFg1X01QUlFfVFdP X0JZVEVfU0hJRlQ7CgkJdG1wbC0+cnhxLnN0cmRfc2NhdHRlcl9lbiA9CgkJCQkhIShvZmZsb2Fk cyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpOwoJCXRtcGwtPnJ4cS5tcHJxX21heF9tZW1jcHlf bGVuID0gUlRFX01JTihmaXJzdF9tYl9mcmVlX3NpemUsCgkJCQljb25maWctPm1wcnEubWF4X21l bWNweV9sZW4pOwoJCW1heF9scm9fc2l6ZSA9IFJURV9NSU4obWF4X3J4X3BrdGxlbiwKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHEuYzoxNDcyCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJCU1MWDVfQVNTRVJUKG1heF9yeF9wa3RsZW4gPD0gZmlyc3Rf bWJfZnJlZV9zaXplKTsKCQl0bXBsLT5yeHEuc2dlc19uID0gMDsKCQltYXhfbHJvX3NpemUgPSBt YXhfcnhfcGt0bGVuOwoJfSBlbHNlIGlmIChvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRU RVIpIHsKCQl1bnNpZ25lZCBpbnQgc2dlc19uOwoKCQlpZiAobHJvX29uX3F1ZXVlICYmIGZpcnN0 X21iX2ZyZWVfc2l6ZSA8CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21s eDVfcnhxLmM6MTQ4NwpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxNTYxIChvZmZzZXQgMTMgbGluZXMp LgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxNTcyIChvZmZzZXQgMTMgbGluZXMpLgpIdW5rICMxMCBz dWNjZWVkZWQgYXQgMTYwNiAob2Zmc2V0IDEzIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NS9tbHg1X3J4dHhfdmVjLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NS9tbHg1X3R4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3R4 cS5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgptbHg1X2dldF90eF9wb3J0X29mZmxv YWRzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQp7CglzdHJ1Y3QgbWx4NV9wcml2ICpwcml2ID0g ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKCXVpbnQ2NF90IG9mZmxvYWRzID0gKERFVl9UWF9PRkZM T0FEX01VTFRJX1NFR1MgfAoJCQkgICAgIERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUKTsKCXN0 cnVjdCBtbHg1X2Rldl9jb25maWcgKmNvbmZpZyA9ICZwcml2LT5jb25maWc7CgoJaWYgKGNvbmZp Zy0+aHdfY3N1bSkKCQlvZmZsb2FkcyB8PSAoREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJ CSAgICAgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJICAgICBERVZfVFhfT0ZGTE9BRF9U Q1BfQ0tTVU0pOwoJaWYgKGNvbmZpZy0+dHNvKQoJCW9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FE X1RDUF9UU087CglpZiAoY29uZmlnLT50eF9wcCkKCQlvZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9B RF9TRU5EX09OX1RJTUVTVEFNUDsKCWlmIChjb25maWctPnN3cCkgewoJCWlmIChjb25maWctPnN3 cCAmIE1MWDVfU1dfUEFSU0lOR19DU1VNX0NBUCkKCQkJb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTTsKCQlpZiAoY29uZmlnLT5zd3AgJiBNTFg1X1NXX1BBUlNJTkdf VFNPX0NBUCkKCQkJb2ZmbG9hZHMgfD0gKERFVl9UWF9PRkZMT0FEX0lQX1ROTF9UU08gfAoJCQkJ ICAgICBERVZfVFhfT0ZGTE9BRF9VRFBfVE5MX1RTTyk7Cgl9CglpZiAoY29uZmlnLT50dW5uZWxf ZW4pIHsKCQlpZiAoY29uZmlnLT5od19jc3VtKQoJCQlvZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNOwoJCWlmIChjb25maWctPnRzbykgewoJCQlpZiAoY29uZmlnLT50 dW5uZWxfZW4gJgoJCQkJTUxYNV9UVU5ORUxFRF9PRkZMT0FEU19WWExBTl9DQVApCgkJCQlvZmZs b2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPOwoJCQlpZiAoY29uZmlnLT50dW5u ZWxfZW4gJgoJCQkJTUxYNV9UVU5ORUxFRF9PRkZMT0FEU19HUkVfQ0FQKQoJCQkJb2ZmbG9hZHMg fD0gREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU087CgkJCWlmIChjb25maWctPnR1bm5lbF9lbiAm CgkJCQlNTFg1X1RVTk5FTEVEX09GRkxPQURTX0dFTkVWRV9DQVApCgkJCQlvZmZsb2FkcyB8PSBE RVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTzsKCQl9Cgl9CglpZiAoIWNvbmZpZy0+bXBycS5l bmFibGVkKQoJCW9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwoJcmV0 dXJuIG9mZmxvYWRzOwp9CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9t bHg1X3R4cS5jOjk4Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDc5NCAob2Zmc2V0IC03IGxpbmVzKS4K SHVuayAjMyBzdWNjZWVkZWQgYXQgODYzIChvZmZzZXQgLTcgbGluZXMpLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQkJCQkJICAgIE1MWDVfTUFYX1RTT19IRUFERVIpOwoJCXR4cV9jdHJs LT50eHEudHNvX2VuID0gMTsKCX0KCWlmICgoKERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08g JiB0eHFfY3RybC0+dHhxLm9mZmxvYWRzKSAmJgoJICAgIChjb25maWctPnR1bm5lbF9lbiAmIE1M WDVfVFVOTkVMRURfT0ZGTE9BRFNfVlhMQU5fQ0FQKSkgfAoJICAgKChERVZfVFhfT0ZGTE9BRF9H UkVfVE5MX1RTTyAmIHR4cV9jdHJsLT50eHEub2ZmbG9hZHMpICYmCgkgICAgKGNvbmZpZy0+dHVu bmVsX2VuICYgTUxYNV9UVU5ORUxFRF9PRkZMT0FEU19HUkVfQ0FQKSkgfAoJICAgKChERVZfVFhf T0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyAmIHR4cV9jdHJsLT50eHEub2ZmbG9hZHMpICYmCgkgICAg KGNvbmZpZy0+dHVubmVsX2VuICYgTUxYNV9UVU5ORUxFRF9PRkZMT0FEU19HRU5FVkVfQ0FQKSkg fAoJICAgKGNvbmZpZy0+c3dwICAmIE1MWDVfU1dfUEFSU0lOR19UU09fQ0FQKSkKCQl0eHFfY3Ry bC0+dHhxLnR1bm5lbF9lbiA9IDE7Cgl0eHFfY3RybC0+dHhxLnN3cF9lbiA9ICgoKERFVl9UWF9P RkZMT0FEX0lQX1ROTF9UU08gfAoJCQkJICBERVZfVFhfT0ZGTE9BRF9VRFBfVE5MX1RTTykgJgoJ CQkJICB0eHFfY3RybC0+dHhxLm9mZmxvYWRzKSAmJiAoY29uZmlnLT5zd3AgJgoJCQkJICBNTFg1 X1NXX1BBUlNJTkdfVFNPX0NBUCkpIHwKCQkJCSgoREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9D S1NVTSAmCgkJCQkgdHhxX2N0cmwtPnR4cS5vZmZsb2FkcykgJiYgKGNvbmZpZy0+c3dwICYKCQkJ CSBNTFg1X1NXX1BBUlNJTkdfQ1NVTV9DQVApKTsKfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvbWx4NS9tbHg1X3R4cS5jOjk3OApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9t bHg1L21seDVfdmxhbi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvd2luZG93 cy9tbHg1X29zLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkgKiBSZW1vdmUgdGhp cyBjaGVjayBvbmNlIERQREsgc3VwcG9ydHMgbGFyZ2VyL3ZhcmlhYmxlCgkgKiBpbmRpcmVjdGlv biB0YWJsZXMuCgkgKi8KCWlmIChjb25maWctPmluZF90YWJsZV9tYXhfc2l6ZSA+ICh1bnNpZ25l ZCBpbnQpRVRIX1JTU19SRVRBX1NJWkVfNTEyKQoJCWNvbmZpZy0+aW5kX3RhYmxlX21heF9zaXpl ID0gRVRIX1JTU19SRVRBX1NJWkVfNTEyOwoJRFJWX0xPRyhERUJVRywgIm1heGltdW0gUnggaW5k aXJlY3Rpb24gdGFibGUgc2l6ZSBpcyAldSIsCgkJY29uZmlnLT5pbmRfdGFibGVfbWF4X3NpemUp OwoJaWYgKGNvbmZpZy0+aHdfcGFkZGluZykgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvbWx4NS93aW5kb3dzL21seDVfb3MuYzo0ODUKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvbXZuZXRhL212bmV0YV9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CQlyZXR1cm4gLUVJTlZBTDsKCX0KCglpZiAoZGV2LT5kYXRhLT5kZXZfY29uZi50eG1vZGUub2Zm bG9hZHMgJiBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQoJCXByaXYtPm11bHRpc2VnID0gMTsK CglwcGlvX3BhcmFtcyA9ICZwcml2LT5wcGlvX3BhcmFtczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L212bmV0YS9tdm5ldGFfZXRoZGV2LmM6MTI2Ckh1bmsgIzMgc3VjY2VlZGVk IGF0IDE1NSAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA1MTAgKG9mZnNl dCA3IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZuZXRhL212bmV0YV9ldGhk ZXYuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2RlZmluZSBNUlZMX05FVEFfTVJV X1RPX01UVShtcnUpCSgobXJ1KSAtIE1SVkxfTkVUQV9IRFJTX0xFTikKCi8qKiBSeCBvZmZsb2Fk cyBjYXBhYmlsaXRpZXMgKi8KI2RlZmluZSBNVk5FVEFfUlhfT0ZGTE9BRFMgKERFVl9SWF9PRkZM T0FEX0NIRUNLU1VNKQoKLyoqIFR4IG9mZmxvYWRzIGNhcGFiaWxpdGllcyAqLwojZGVmaW5lIE1W TkVUQV9UWF9PRkZMT0FEX0NIRUNLU1VNIChERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAoJ CQkJICAgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgfCBcCgkJCQkgICAgREVWX1RYX09GRkxP QURfVENQX0NLU1VNKQojZGVmaW5lIE1WTkVUQV9UWF9PRkZMT0FEUyAoTVZORVRBX1RYX09GRkxP QURfQ0hFQ0tTVU0gfCBcCgkJCSAgICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQoKI2RlZmlu ZSBNVk5FVEFfVFhfUEtUX09GRkxPQURTIChQS1RfVFhfSVBfQ0tTVU0gfCBcCgkJCQlQS1RfVFhf VENQX0NLU1VNIHwgXAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbXZuZXRhL212 bmV0YV9ldGhkZXYuaDo1NApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRh X3J4dHguYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA3MzUgKG9mZnNldCAxIGxpbmUpLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9tdnBwMi9tcnZsX2V0aGRldi5jLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgojZGVmaW5lIE1SVkxfQ09PS0lFX0hJR0hfQUREUl9NQVNLIDB4ZmZm ZmZmMDAwMDAwMDAwMAoKLyoqIFBvcnQgUnggb2ZmbG9hZCBjYXBhYmlsaXRpZXMgKi8KI2RlZmlu ZSBNUlZMX1JYX09GRkxPQURTIChERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKCQkJICBE RVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSkKCi8qKiBQb3J0IFR4IG9mZmxvYWRzIGNhcGFiaWxpdGll cyAqLwojZGVmaW5lIE1SVkxfVFhfT0ZGTE9BRF9DSEVDS1NVTSAoREVWX1RYX09GRkxPQURfSVBW NF9DS1NVTSB8IFwKCQkJCSAgREVWX1RYX09GRkxPQURfVURQX0NLU1VNICB8IFwKCQkJCSAgREVW X1RYX09GRkxPQURfVENQX0NLU1VNKQojZGVmaW5lIE1SVkxfVFhfT0ZGTE9BRFMgKE1SVkxfVFhf T0ZGTE9BRF9DSEVDS1NVTSB8IFwKCQkJICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQoKI2Rl ZmluZSBNUlZMX1RYX1BLVF9PRkZMT0FEUyAoUEtUX1RYX0lQX0NLU1VNIHwgXAoJCQkgICAgICBQ S1RfVFhfVENQX0NLU1VNIHwgXAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbXZw cDIvbXJ2bF9ldGhkZXYuYzo1OApIdW5rICMyIHN1Y2NlZWRlZCBhdCA0NDMgKG9mZnNldCAxIGxp bmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA0ODQgKG9mZnNldCAxIGxpbmUpLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsKCX0KCglpZiAoZGV2LT5kYXRhLT5k ZXZfY29uZi50eG1vZGUub2ZmbG9hZHMgJiBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQoJCXBy aXYtPm11bHRpc2VnID0gMTsKCglyZXQgPSBtcnZsX2NvbmZpZ3VyZV9yeHFzKHByaXYsIGRldi0+ ZGF0YS0+cG9ydF9pZCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L212cHAyL21y dmxfZXRoZGV2LmM6NTAyCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDUzMCAob2Zmc2V0IDYgbGluZXMp LgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA2MzIgKG9mZnNldCA5IGxpbmVzKS4KSHVuayAjNyBzdWNj ZWVkZWQgYXQgNjUzIChvZmZzZXQgOSBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDY3MyAo b2Zmc2V0IDkgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCA5MDIgKG9mZnNldCA5IGxpbmVz KS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDkzOCAob2Zmc2V0IDkgbGluZXMpLgpIdW5rICMxMSBz dWNjZWVkZWQgYXQgMTIxMSAob2Zmc2V0IDkgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQg MTcxOCAob2Zmc2V0IDkgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMTc0MiAob2Zmc2V0 IDkgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTg3MyAob2Zmc2V0IDkgbGluZXMpLgpI dW5rICMxNSBzdWNjZWVkZWQgYXQgMTg4OCAob2Zmc2V0IDkgbGluZXMpLgpIdW5rICMxNiBzdWNj ZWVkZWQgYXQgMjAzMyAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDIx OTMgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAyMjAyIChvZmZzZXQg MTEgbGluZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgMjI1MSAob2Zmc2V0IDExIGxpbmVzKS4K SHVuayAjMjAgc3VjY2VlZGVkIGF0IDIzNDAgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzIxIHN1 Y2NlZWRlZCBhdCAzMTYzIChvZmZzZXQgMTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9uZXR2c2MvaG5fZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmV0 dnNjL2huX3JuZGlzLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZiL25mYl9ldGhk ZXYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZmIvbmZiX3J4LmMuLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9jb21tb24uYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCXJ4bW9kZSA9ICZkZXZfY29uZi0+cnhtb2RlOwoJdHhtb2RlID0gJmRldl9j b25mLT50eG1vZGU7CgoJaWYgKHJ4bW9kZS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9JUFY0 X0NLU1VNKSB7CgkJaWYgKGh3LT5jYXAgJiBORlBfTkVUX0NGR19DVFJMX1JYQ1NVTSkKCQkJY3Ry bCB8PSBORlBfTkVUX0NGR19DVFJMX1JYQ1NVTTsKCX0KCglpZiAocnhtb2RlLT5vZmZsb2FkcyAm IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVApIHsKCQlpZiAoaHctPmNhcCAmIE5GUF9ORVRfQ0ZH X0NUUkxfUlhWTEFOKQoJCQljdHJsIHw9IE5GUF9ORVRfQ0ZHX0NUUkxfUlhWTEFOOwoJfQoKCWh3 LT5tdHUgPSBkZXYtPmRhdGEtPm10dTsKCglpZiAodHhtb2RlLT5vZmZsb2FkcyAmIERFVl9UWF9P RkZMT0FEX1ZMQU5fSU5TRVJUKQoJCWN0cmwgfD0gTkZQX05FVF9DRkdfQ1RSTF9UWFZMQU47CgoJ LyogTDIgYnJvYWRjYXN0ICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAv bmZwX2NvbW1vbi5jOjM1OQpIdW5rICM0IHN1Y2NlZWRlZCBhdCAzODQgKG9mZnNldCAxIGxpbmUp LgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAzOTggKG9mZnNldCAxIGxpbmUpLgpIdW5rICM2IHN1Y2Nl ZWRlZCBhdCA0ODYgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA1MDUgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCA3MDIgKG9mZnNldCAxIGxpbmUpLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCX07CgoJaWYgKGh3LT5jYXAgJiBORlBfTkVUX0NG R19DVFJMX1JTUykgewoJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxP QURfUlNTX0hBU0g7CgoJCWRldl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gRVRIX1JT U19JUFY0IHwKCQkJCQkJICAgRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwKCQkJCQkJICAgRVRI X1JTU19OT05GUkFHX0lQVjRfVURQIHwKCQkJCQkJICAgRVRIX1JTU19JUFY2IHwKCQkJCQkJICAg RVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwKCQkJCQkJICAgRVRIX1JTU19OT05GUkFHX0lQVjZf VURQOwoKCQlkZXZfaW5mby0+cmV0YV9zaXplID0gTkZQX05FVF9DRkdfUlNTX0lUQkxfU1o7CgkJ ZGV2X2luZm8tPmhhc2hfa2V5X3NpemUgPSBORlBfTkVUX0NGR19SU1NfS0VZX1NaOwoJfQoKCWRl dl9pbmZvLT5zcGVlZF9jYXBhID0gRVRIX0xJTktfU1BFRURfMUcgfCBFVEhfTElOS19TUEVFRF8x MEcgfAoJCQkgICAgICAgRVRIX0xJTktfU1BFRURfMjVHIHwgRVRIX0xJTktfU1BFRURfNDBHIHwK CQkJICAgICAgIEVUSF9MSU5LX1NQRUVEXzUwRyB8IEVUSF9MSU5LX1NQRUVEXzEwMEc7CgoJcmV0 dXJuIDA7Cn0KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9uZnBfY29tbW9u LmM6NzU3Ckh1bmsgIzEwIHN1Y2NlZWRlZCBhdCA4NDcgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAj MTEgc3VjY2VlZGVkIGF0IDk5MCAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVk IGF0IDEwMzUgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAxMTE2IChv ZmZzZXQgMTcgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTE1NSAob2Zmc2V0IDE3IGxp bmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0IDEyNDAgKG9mZnNldCAxNyBsaW5lcykuCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXZfdmYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9uZ2JlL25nYmVfZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbnVs bC9ydGVfZXRoX251bGwuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eC9v Y3Rlb250eF9ldGhkZXYuYy4uLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA1MzQgKG9mZnNldCA0IGxp bmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgoJLyogU2V0dXAgc2NhdHRlciBtb2Rl IGlmIG5lZWRlZCBieSBqdW1ibyAqLwoJaWYgKGRhdGEtPm10dSA+IGJ1ZmZzeikgewoJCW5pYy0+ cnhfb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfU0NBVFRFUjsKCQluaWMtPnJ4X29mZmxvYWRf ZmxhZ3MgfD0gb2N0ZW9udHhfcnhfb2ZmbG9hZF9mbGFncyhldGhfZGV2KTsKCQluaWMtPnR4X29m ZmxvYWRfZmxhZ3MgfD0gb2N0ZW9udHhfdHhfb2ZmbG9hZF9mbGFncyhldGhfZGV2KTsKCX0KCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5j OjU3MQpIdW5rICM4IHN1Y2NlZWRlZCBhdCA4NTQgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzkg c3VjY2VlZGVkIGF0IDEzNjcgKG9mZnNldCAxMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgojZGVmaW5lIE9DQ1RYX01BWF9NVFUJCShPQ0NUWF9NQVhfRlJTIC0gT0NDVFhfTDJf T1ZFUkhFQUQpCgojZGVmaW5lIE9DVEVPTlRYX1JYX09GRkxPQURTCQkoCQkJCSAgIFwKCQkJCQkg REVWX1JYX09GRkxPQURfQ0hFQ0tTVU0JIHwgXAoJCQkJCSBERVZfUlhfT0ZGTE9BRF9TQ1RQX0NL U1VNICAgICAgIHwgXAoJCQkJCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAoJ CQkJCSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCSAgICAgICAgIHwgXAoJCQkJCSBERVZfUlhfT0ZG TE9BRF9TQ0FUVEVSCQkgfCBcCgkJCQkJIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKQoKI2Rl ZmluZSBPQ1RFT05UWF9UWF9PRkZMT0FEUwkJKAkJCQkgICBcCgkJCQkJIERFVl9UWF9PRkZMT0FE X01CVUZfRkFTVF9GUkVFCSB8IFwKCQkJCQkgREVWX1RYX09GRkxPQURfTVRfTE9DS0ZSRUUJIHwg XAoJCQkJCSBERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAoJCQkJCSBERVZfVFhf T0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0JIHwgXAoJCQkJCSBERVZfVFhfT0ZGTE9BRF9JUFY0X0NL U1VNCSB8IFwKCQkJCQkgREVWX1RYX09GRkxPQURfVENQX0NLU1VNCSB8IFwKCQkJCQkgREVWX1RY X09GRkxPQURfVURQX0NLU1VNCSB8IFwKCQkJCQkgREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTQkg fCBcCgkJCQkJIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCgpzdGF0aWMgaW5saW5lIHN0cnVj dCBvY3Rlb250eF9uaWMgKgpvY3Rlb250eF9wbWRfcHJpdihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl dikKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0 aGRldi5oOjU1CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0 aGRldl9vcHMuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9l dGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWJ1ZmZzeiA9IG1icF9wcml2 LT5tYnVmX2RhdGFfcm9vbV9zaXplIC0gUlRFX1BLVE1CVUZfSEVBRFJPT007CgoJaWYgKGV0aF9k ZXYtPmRhdGEtPm10dSArICh1aW50MzJfdClOSVhfTDJfT1ZFUkhFQUQgPiBidWZmc3opIHsKCQlk ZXYtPnJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgkJZGV2LT50eF9vZmZs b2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwoKCQkvKiBTZXR0aW5nIHVwIHRoZSBy eFt0eF1fb2ZmbG9hZF9mbGFncyBkdWUgdG8gY2hhbmdlCgkJICogaW4gcnhbdHhdX29mZmxvYWRz LgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2 LmM6OTE0Ckh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAyNTY0IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2LmguLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgQ1FfVElNRVJfVEhSRVNIX0RFRkFVTFQJMHhBVUxM IC8qIH4xdXNlYyBpLmUgKDB4QSAqIDEwMG5zZWMpICovCiNkZWZpbmUgQ1FfVElNRVJfVEhSRVNI X01BWCAgICAgMjU1CgojZGVmaW5lIE5JWF9SU1NfTDNfTDRfU1JDX0RTVCAgKEVUSF9SU1NfTDNf U1JDX09OTFkgfCBFVEhfUlNTX0wzX0RTVF9PTkxZIFwKCQkJCXwgRVRIX1JTU19MNF9TUkNfT05M WSB8IEVUSF9SU1NfTDRfRFNUX09OTFkpCgojZGVmaW5lIE5JWF9SU1NfT0ZGTE9BRAkJKEVUSF9S U1NfUE9SVCB8IEVUSF9SU1NfSVAgfCBFVEhfUlNTX1VEUCB8XAoJCQkJIEVUSF9SU1NfVENQIHwg RVRIX1JTU19TQ1RQIHwgXAoJCQkJIEVUSF9SU1NfVFVOTkVMIHwgRVRIX1JTU19MMl9QQVlMT0FE IHwgXAoJCQkJIE5JWF9SU1NfTDNfTDRfU1JDX0RTVCB8IEVUSF9SU1NfTEVWRUxfTUFTSyB8IFwK CQkJCSBFVEhfUlNTX0NfVkxBTikKCiNkZWZpbmUgTklYX1RYX09GRkxPQURfQ0FQQSAoIFwKCURF Vl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFCXwgXAoJREVWX1RYX09GRkxPQURfTVRfTE9DS0ZS RUUJfCBcCglERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVAl8IFwKCURFVl9UWF9PRkZMT0FEX1FJ TlFfSU5TRVJUCXwgXAoJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTQl8IFwKCURFVl9U WF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTQl8IFwKCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTQl8 IFwKCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTQl8IFwKCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tT VU0JfCBcCglERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPCQl8IFwKCURFVl9UWF9PRkZMT0FEX1ZYTEFO X1ROTF9UU08gICAgfCBcCglERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyAgIHwgXAoJREVW X1RYX09GRkxPQURfR1JFX1ROTF9UU08JfCBcCglERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTCXwg XAoJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSkKCiNkZWZpbmUgTklYX1JYX09GRkxPQURfQ0FQ QSAoIFwKCURFVl9SWF9PRkZMT0FEX0NIRUNLU1VNCQl8IFwKCURFVl9SWF9PRkZMT0FEX1NDVFBf Q0tTVU0JfCBcCglERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAoJREVWX1JYX09G RkxPQURfU0NBVFRFUgkJfCBcCglERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0JfCBcCglE RVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQCXwgXAoJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIJ fCBcCglERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQCXwgXAoJREVWX1JYX09GRkxPQURfVElNRVNU QU1QCXwgXAoJREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCgojZGVmaW5lIE5JWF9ERUZBVUxUX1JT U19DVFhfR1JPVVAgIDAKI2RlZmluZSBOSVhfREVGQVVMVF9SU1NfTUNBTV9JRFggIC0xCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXYuaDoxMTcK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2X2RldmFyZ3Mu Yy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXZfb3Bz LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMzAgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjMiBz dWNjZWVkZWQgYXQgNTk2IChvZmZzZXQgMjggbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXZfc2VjLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQg ODkwIChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA5MzMgKG9mZnNldCAy MSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2Zsb3cu Yy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9mbG93X2N0cmwu Yy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9mbG93X3BhcnNl LmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTE4OCAob2Zmc2V0IDIgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9saW5rLmMuLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfbWNhc3QuYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9wdHAuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9vY3Rlb250eDIvb3R4Ml9yc3MuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9v Y3Rlb250eDIvb3R4Ml9yeC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4 Mi9vdHgyX3R4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJf dmxhbi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4X2VwL290eF9lcF9l dGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglvdHhfZXB2ZiA9IE9UWF9F UF9ERVYoZXRoX2Rldik7CgoJZGV2aW5mby0+c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzEw RzsKCWRldmluZm8tPm1heF9yeF9xdWV1ZXMgPSBvdHhfZXB2Zi0+bWF4X3J4X3F1ZXVlczsKCWRl dmluZm8tPm1heF90eF9xdWV1ZXMgPSBvdHhfZXB2Zi0+bWF4X3R4X3F1ZXVlczsKCglkZXZpbmZv LT5taW5fcnhfYnVmc2l6ZSA9IE9UWF9FUF9NSU5fUlhfQlVGX1NJWkU7CglkZXZpbmZvLT5tYXhf cnhfcGt0bGVuID0gT1RYX0VQX01BWF9QS1RfU1o7CglkZXZpbmZvLT5yeF9vZmZsb2FkX2NhcGEg PSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwoJZGV2aW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gREVW X1RYX09GRkxPQURfTVVMVElfU0VHUzsKCglkZXZpbmZvLT5tYXhfbWFjX2FkZHJzID0gT1RYX0VQ X01BWF9NQUNfQUREUlM7CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvb2N0ZW9u dHhfZXAvb3R4X2VwX2V0aGRldi5jOjMzCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVv bnR4X2VwL290eF9lcF9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cglkcm9x X3BrdC0+bDRfbGVuID0gaGRyX2xlbnMubDRfbGVuOwoKCWlmIChkcm9xX3BrdC0+bmJfc2VncyA+ IDEgJiYKCSAgICAhKG90eF9lcC0+cnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVS KSkgewoJCXJ0ZV9wa3RtYnVmX2ZyZWUoZHJvcV9wa3QpOwoJCWdvdG8gb3FfcmVhZF9mYWlsOwoJ fQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvb2N0ZW9udHhfZXAvb3R4X2VwX3J4 dHguYzo5NTQKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcGNhcC9wY2FwX2V0aGRldi5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3BmZS9wZmVfZXRoZGV2LmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvcWVkZS9iYXNlL21jcF9wdWJsaWMuaC4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJCXJldHVybiAtRU5PTUVNOwoJfQoKCWlmIChyeG1vZGUtPm9mZmxvYWRzICYgREVW X1JYX09GRkxPQURfU0NBVFRFUikKCQlldGhfZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSAxOwoK CWlmIChxZWRlX3N0YXJ0X3Zwb3J0KHFkZXYsIGV0aF9kZXYtPmRhdGEtPm10dSkpCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6MTMxMgpIdW5rICMx MCBzdWNjZWVkZWQgYXQgMTMyNyAob2Zmc2V0IDYgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCWRldl9pbmZvLT5yZXRhX3NpemUgPSBFQ09SRV9SU1NfSU5EX1RBQkxFX1NJWkU7 CglkZXZfaW5mby0+aGFzaF9rZXlfc2l6ZSA9IEVDT1JFX1JTU19LRVlfU0laRSAqIHNpemVvZih1 aW50MzJfdCk7CglkZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9ICh1aW50NjRfdClR RURFX1JTU19PRkZMT0FEX0FMTDsKCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSAoREVWX1JY X09GRkxPQURfSVBWNF9DS1NVTQl8CgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTQl8 CgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTQl8CgkJCQkgICAgIERFVl9SWF9PRkZM T0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPCXwK CQkJCSAgICAgREVWX1JYX09GRkxPQURfS0VFUF9DUkMgICAgfAoJCQkJICAgICBERVZfUlhfT0ZG TE9BRF9TQ0FUVEVSCXwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAoJCQkJ ICAgICBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8CgkJCQkgICAgIERFVl9SWF9PRkZMT0FE X1JTU19IQVNIKTsKCWRldl9pbmZvLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwoKCS8qIFRY IG9mZmxvYWRzIGFyZSBvbiBhIHBlci1wYWNrZXQgYmFzaXMsIHNvIGl0IGlzIGFwcGxpY2FibGUK CSAqIHRvIGJvdGggYXQgcG9ydCBhbmQgcXVldWUgbGV2ZWxzLgoJICovCglkZXZfaW5mby0+dHhf b2ZmbG9hZF9jYXBhID0gKERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUCXwKCQkJCSAgICAgREVW X1RYX09GRkxPQURfSVBWNF9DS1NVTQl8CgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NV TQl8CgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTQl8CgkJCQkgICAgIERFVl9UWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9T RUdTICB8CgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1RDUF9UU08JfAoJCQkJICAgICBERVZfVFhf T0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfR0VORVZFX1RO TF9UU08pOwoJZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IGRldl9pbmZvLT50eF9v ZmZsb2FkX2NhcGE7CgoJZGV2X2luZm8tPmRlZmF1bHRfdHhjb25mID0gKHN0cnVjdCBydGVfZXRo X3R4Y29uZikgewoJCS5vZmZsb2FkcyA9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MsCgl9OwoK CWRldl9pbmZvLT5kZWZhdWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYzoxMzg1Ckh1 bmsgIzEyIHN1Y2NlZWRlZCBhdCAxNDMxIChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzEzIHN1Y2Nl ZWRlZCBhdCAxNDY4IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAxNDgw IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAyMDE5IChvZmZzZXQgNyBs aW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAyMDQ4IChvZmZzZXQgNyBsaW5lcykuCkh1bmsg IzE3IHN1Y2NlZWRlZCBhdCAyMDk1IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRl ZCBhdCAyMjI4IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAyMjUyIChv ZmZzZXQgNyBsaW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCAyMjg5IChvZmZzZXQgNyBsaW5l cykuCkh1bmsgIzIxIHN1Y2NlZWRlZCBhdCAyNzQ1IChvZmZzZXQgMjcgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZmlsdGVyLmMuLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCWJ1ZnN6ID0gKHVpbnQxNl90KXJ0ZV9wa3RtYnVmX2RhdGFfcm9vbV9zaXplKG1wKSAtIFJU RV9QS1RNQlVGX0hFQURST09NOwoJLyogY2FjaGUgYWxpZ24gdGhlIG1idWYgc2l6ZSB0byBzaW1w bGZ5IHJ4X2J1Zl9zaXplIGNhbGN1bGF0aW9uICovCglidWZzeiA9IFFFREVfRkxPT1JfVE9fQ0FD SEVfTElORV9TSVpFKGJ1ZnN6KTsKCWlmICgocnhtb2RlLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZM T0FEX1NDQVRURVIpCXx8CgkgICAgKG1heF9yeF9wa3RsZW4gKyBRRURFX0VUSF9PVkVSSEVBRCkg PiBidWZzeikgewoJCWlmICghZGV2LT5kYXRhLT5zY2F0dGVyZWRfcngpIHsKCQkJRFBfSU5GTyhl ZGV2LCAiRm9yY2luZyBzY2F0dGVyLWdhdGhlciBtb2RlXG4iKTsKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4LmM6MjQ5CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L3FlZGUvcWVkZV9yeHR4LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcmlu Zy9ydGVfZXRoX3JpbmcuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjLmMu Li4KSHVuayAjMSBzdWNjZWVkZWQgYXQgODEgKG9mZnNldCAtMjUgbGluZXMpLgpIdW5rICMyIHN1 Y2NlZWRlZCBhdCA5NiAob2Zmc2V0IC0yNSBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDMz NyAob2Zmc2V0IC02NCBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDgyNyAob2Zmc2V0IC03 MiBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDgzNiAob2Zmc2V0IC03MiBsaW5lcykuCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMDBfcnguYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQkJCSAgU0ZDX0RQX1JYX0ZFQVRfSU5UUiB8CgkJCQkgIFNGQ19E UF9SWF9GRUFUX1NUQVRTLAoJLmRldl9vZmZsb2FkX2NhcGEJPSAwLAoJLnF1ZXVlX29mZmxvYWRf Y2FwYQk9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKCQkJCSAgREVWX1JYX09GRkxPQURfT1VU RVJfSVBWNF9DS1NVTSB8CgkJCQkgIERFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8CgkJ CQkgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAoJCQkJICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFT SCwKCS5nZXRfZGV2X2luZm8JCT0gc2ZjX2VmMTAwX3J4X2dldF9kZXZfaW5mbywKCS5xc2l6ZV91 cF9yaW5ncwkJPSBzZmNfZWYxMDBfcnhfcXNpemVfdXBfcmluZ3MsCgkucWNyZWF0ZQkJPSBzZmNf ZWYxMDBfcnhfcWNyZWF0ZSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9z ZmNfZWYxMDBfcnguYzo5NzkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEw MF90eC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJLmZlYXR1cmVzCQk9IFNGQ19E UF9UWF9GRUFUX01VTFRJX1BST0NFU1MgfAoJCQkJICBTRkNfRFBfVFhfRkVBVF9TVEFUUywKCS5k ZXZfb2ZmbG9hZF9jYXBhCT0gMCwKCS5xdWV1ZV9vZmZsb2FkX2NhcGEJPSBERVZfVFhfT0ZGTE9B RF9WTEFOX0lOU0VSVCB8CgkJCQkgIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkJICBE RVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQkJCSAgREVWX1RYX09GRkxPQURfT1VU RVJfVURQX0NLU1VNIHwKCQkJCSAgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJCSAgREVW X1RYX09GRkxPQURfVENQX0NLU1VNIHwKCQkJCSAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8 CgkJCQkgIERFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAoJCQkJICBERVZfVFhfT0ZGTE9BRF9WWExB Tl9UTkxfVFNPIHwKCQkJCSAgREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08sCgkuZ2V0X2Rl dl9pbmZvCQk9IHNmY19lZjEwMF9nZXRfZGV2X2luZm8sCgkucXNpemVfdXBfcmluZ3MJCT0gc2Zj X2VmMTAwX3R4X3FzaXplX3VwX3JpbmdzLAoJLnFjcmVhdGUJCT0gc2ZjX2VmMTAwX3R4X3FjcmVh dGUsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTAwX3R4LmM6 OTcxCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMF9lc3NiX3J4LmMuLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEwX3J4LmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEwX3R4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvc2ZjL3NmY19ldGhkZXYuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMDIgKG9m ZnNldCAtMyBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDE0MiAob2Zmc2V0IC0zIGxpbmVz KS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgOTEzIChvZmZzZXQgLTc2IGxpbmVzKS4KSHVuayAjNCBz dWNjZWVkZWQgYXQgOTUzIChvZmZzZXQgLTc2IGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQg MTI0OCAob2Zmc2V0IC02NSBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDE0NzMgKG9mZnNl dCAtNTAgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAxNjAyIChvZmZzZXQgLTUwIGxpbmVz KS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTcyOCAob2Zmc2V0IC01MCBsaW5lcykuCkh1bmsgIzkg c3VjY2VlZGVkIGF0IDE3NzggKG9mZnNldCAtNTAgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAzOTAgKG9mZnNl dCAtMiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfcG9ydC5jLi4u Ckh1bmsgIzEgc3VjY2VlZGVkIGF0IDU3NyAob2Zmc2V0IDQgbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9zZmMvc2ZjX3JlcHIuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvc2ZjL3Nm Y19yZXByLmM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L3NmYy9zZmNfcnguYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA2NDcgKG9mZnNldCAtMSBs aW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDkzMCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAj MyBzdWNjZWVkZWQgYXQgMTE0MSAob2Zmc2V0IDEgbGluZSkuCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJCXJ4cV9pbmZvLT50eXBlID0gRUZYX1JYUV9UWVBFX0RFRkFVTFQ7CgoJcnhxX2lu Zm8tPnR5cGVfZmxhZ3MgfD0KCQkob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSA/ CgkJRUZYX1JYUV9GTEFHX1NDQVRURVIgOiBFRlhfUlhRX0ZMQUdfTk9ORTsKCglpZiAoKGVuY3At PmVuY190dW5uZWxfZW5jYXBzdWxhdGlvbnNfc3VwcG9ydGVkICE9IDApICYmCgkgICAgKHNmY19k cF9yeF9vZmZsb2FkX2NhcGEoc2EtPnByaXYuZHBfcngpICYKCSAgICAgREVWX1JYX09GRkxPQURf T1VURVJfSVBWNF9DS1NVTSkgIT0gMCkKCQlyeHFfaW5mby0+dHlwZV9mbGFncyB8PSBFRlhfUlhR X0ZMQUdfSU5ORVJfQ0xBU1NFUzsKCglpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1Nf SEFTSCkKCQlyeHFfaW5mby0+dHlwZV9mbGFncyB8PSBFRlhfUlhRX0ZMQUdfUlNTX0hBU0g7CgoJ aWYgKChzYS0+bmVnb3RpYXRlZF9yeF9tZXRhZGF0YSAmIFJURV9FVEhfUlhfTUVUQURBVEFfVVNF Ul9GTEFHKSAhPSAwKQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvc2ZjL3NmY19y eC5jOjExNjYKSHVuayAjNSBzdWNjZWVkZWQgYXQgMTIwNSAob2Zmc2V0IC02IGxpbmVzKS4KSHVu ayAjNiBzdWNjZWVkZWQgYXQgMTMwMSAob2Zmc2V0IC0xMiBsaW5lcykuCkh1bmsgIzcgc3VjY2Vl ZGVkIGF0IDE2MzMgKG9mZnNldCAtMTIgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxNjUz IChvZmZzZXQgLTEyIGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTgwOCAob2Zmc2V0IC0x MiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfdHguYy4uLgpIdW5r ICM0IHN1Y2NlZWRlZCBhdCA1MTUgKG9mZnNldCAtMTQgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRl ZCBhdCA4NjIgKG9mZnNldCAtMTQgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxMjI4IChv ZmZzZXQgLTE0IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc29mdG5pYy9ydGVf ZXRoX3NvZnRuaWMuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zemVkYXRhMi9ydGVf ZXRoX3N6ZWRhdGEyLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdGFwL3J0ZV9ldGhf dGFwLmMuLi4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDE3NjUgKG9mZnNldCA1IGxpbmVzKS4KSHVu ayAjMTIgc3VjY2VlZGVkIGF0IDE3NzMgKG9mZnNldCA1IGxpbmVzKS4KSHVuayAjMTMgc3VjY2Vl ZGVkIGF0IDIyNjcgKG9mZnNldCA1IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDI0NDEg KG9mZnNldCA1IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdGFwL3RhcF9yc3Mu aC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYy4u LgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA0MDQgKG9mZnNldCAxNCBsaW5lcykuCkh1bmsgIzQgc3Vj Y2VlZGVkIGF0IDQ0NSAob2Zmc2V0IDE0IGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgNDkz IChvZmZzZXQgMTQgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA1MjMgKG9mZnNldCAxNCBs aW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDgyMSAob2Zmc2V0IDE0IGxpbmVzKS4KSHVuayAj OCBzdWNjZWVkZWQgYXQgODg0IChvZmZzZXQgMTQgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBh dCAxMDA2IChvZmZzZXQgMTQgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMTM5NyAob2Zm c2V0IDE1IGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDE0MzAgKG9mZnNldCAxNSBsaW5l cykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAxNTk3IChvZmZzZXQgMTUgbGluZXMpLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCS8qIFNldHVwIHNjYXR0ZXIgbW9kZSBpZiBuZWVkZWQgYnkg anVtYm8gKi8KCWlmIChkZXYtPmRhdGEtPm10dSArICh1aW50MzJfdClOSUNfSFdfTDJfT1ZFUkhF QUQgKyAyICogVkxBTl9UQUdfU0laRSA+IGJ1ZmZzeikKCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9y eCA9IDE7CglpZiAoKHJ4X2NvbmYtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikg IT0gMCkKCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7CgoJLyogU2V0dXAgTVRVICovCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYzox NzExCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAxOTE0IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMx NSBzdWNjZWVkZWQgYXQgMTkyNyAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVk IGF0IDE5MzggKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAxOTczIChv ZmZzZXQgMTggbGluZXMpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMjA1MCAob2Zmc2V0IDE4IGxp bmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdGh1bmRlcngvbmljdmZfZXRoZGV2Lmgu Li4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgTklDVkZfVU5LTk9XTl9EVVBM RVgJCTB4ZmYKCiNkZWZpbmUgTklDVkZfUlNTX09GRkxPQURfUEFTUzEgKCBcCglFVEhfUlNTX1BP UlQgfCBcCglFVEhfUlNTX0lQVjQgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfCBcCglF VEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfCBcCglFVEhfUlNTX0lQVjYgfCBcCglFVEhfUlNTX05P TkZSQUdfSVBWNl9UQ1AgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFApCgojZGVmaW5lIE5J Q1ZGX1JTU19PRkZMT0FEX1RVTk5FTCAoIFwKCUVUSF9SU1NfVlhMQU4gfCBcCglFVEhfUlNTX0dF TkVWRSB8IFwKCUVUSF9SU1NfTlZHUkUpCgojZGVmaW5lIE5JQ1ZGX1RYX09GRkxPQURfQ0FQQSAo IFwKCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gICAgICAgfCBcCglERVZfVFhfT0ZGTE9BRF9V RFBfQ0tTVU0gICAgICAgIHwgXAoJREVWX1RYX09GRkxPQURfVENQX0NLU1VNICAgICAgICB8IFwK CURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBcCglERVZfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRSAgIHwgXAoJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykKCiNkZWZpbmUgTklD VkZfUlhfT0ZGTE9BRF9DQVBBICggXAoJREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0gICAgfCBcCglE RVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8IFwKCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgICAg IHwgXAoJREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCgojZGVmaW5lIE5JQ1ZGX0RFRkFVTFRfUlhf RlJFRV9USFJFU0ggICAgMjI0CiNkZWZpbmUgTklDVkZfREVGQVVMVF9UWF9GUkVFX1RIUkVTSCAg ICAyMjQKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3RodW5kZXJ4L25pY3ZmX2V0 aGRldi5oOjE2CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5j Li4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDk5NyAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMiBz dWNjZWVkZWQgYXQgMTAzMiAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQg MTA1MiAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTEzNyAob2Zmc2V0 IC0xIGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMTIzOSAob2Zmc2V0IC0xIGxpbmVzKS4K SHVuayAjNiBzdWNjZWVkZWQgYXQgMTI1MyAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjNyBzdWNj ZWVkZWQgYXQgMTI3NCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTMz MCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTM1NiAob2Zmc2V0IC0x IGxpbmVzKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDEzNzcgKG9mZnNldCAtMSBsaW5lcykuCkh1 bmsgIzExIHN1Y2NlZWRlZCBhdCAxMzkyIChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMxMiBzdWNj ZWVkZWQgYXQgMTQxMyAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDE0 MjggKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAxNDQ1IChvZmZzZXQg LTEgbGluZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMTQ5NCAob2Zmc2V0IC0xIGxpbmVzKS4K SHVuayAjMTYgc3VjY2VlZGVkIGF0IDE3MDQgKG9mZnNldCAxMCBsaW5lcykuCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJaWYgKGVycikKCQlnb3RvIGVycm9yOwoKCWFsbG93ZWRfc3BlZWRz ID0gRVRIX0xJTktfU1BFRURfMTAwTSB8IEVUSF9MSU5LX1NQRUVEXzFHIHwKCQkJRVRIX0xJTktf U1BFRURfMTBHOwoKCWxpbmtfc3BlZWRzID0gJmRldi0+ZGF0YS0+ZGV2X2NvbmYubGlua19zcGVl ZHM7CglpZiAoKCgqbGlua19zcGVlZHMpID4+IDEpICYgfihhbGxvd2VkX3NwZWVkcyA+PiAxKSkg ewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2LmM6 MTc2MwpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMTc4MyAob2Zmc2V0IDEwIGxpbmVzKS4KSHVuayAj MTkgc3VjY2VlZGVkIGF0IDI2MTEgKG9mZnNldCAxMCBsaW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRl ZCBhdCAyNjQ0IChvZmZzZXQgMTAgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CWludCB3YWl0ID0gMTsKCgltZW1zZXQoJmxpbmssIDAsIHNpemVvZihsaW5rKSk7CglsaW5rLmxp bmtfc3RhdHVzID0gRVRIX0xJTktfRE9XTjsKCWxpbmsubGlua19zcGVlZCA9IEVUSF9TUEVFRF9O VU1fTk9ORTsKCWxpbmsubGlua19kdXBsZXggPSBFVEhfTElOS19IQUxGX0RVUExFWDsKCWxpbmsu bGlua19hdXRvbmVnID0gIShkZXYtPmRhdGEtPmRldl9jb25mLmxpbmtfc3BlZWRzICYKCQkJRVRI X0xJTktfU1BFRURfRklYRUQpOwoKCWh3LT5tYWMuZ2V0X2xpbmtfc3RhdHVzID0gdHJ1ZTsKCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9ldGhkZXYuYzoyNjk1 Ckh1bmsgIzIyIHN1Y2NlZWRlZCBhdCAyNzIyIChvZmZzZXQgOSBsaW5lcykuCkh1bmsgIzIzIHN1 Y2NlZWRlZCBhdCAyNzQyIChvZmZzZXQgOSBsaW5lcykuCkh1bmsgIzI0IHN1Y2NlZWRlZCBhdCAy OTk0IChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzI1IHN1Y2NlZWRlZCBhdCAzMjI1IChvZmZzZXQg NCBsaW5lcykuCkh1bmsgIzI2IHN1Y2NlZWRlZCBhdCAzMzYzIChvZmZzZXQgNCBsaW5lcykuCkh1 bmsgIzI3IHN1Y2NlZWRlZCBhdCAzNDA0IChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzI4IHN1Y2Nl ZWRlZCBhdCAzNTkzIChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgMzYy MiAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMzAgc3VjY2VlZGVkIGF0IDQyODEgKG9mZnNldCAx NyBsaW5lcykuCkh1bmsgIzMxIHN1Y2NlZWRlZCBhdCA0NjQ1IChvZmZzZXQgMTcgbGluZXMpLgpI dW5rICMzMiBzdWNjZWVkZWQgYXQgNDY1NiAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMzMgc3Vj Y2VlZGVkIGF0IDQ2ODAgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzM0IHN1Y2NlZWRlZCBhdCA0 Njk1IChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICMzNSBzdWNjZWVkZWQgYXQgNDkyNSAob2Zmc2V0 IDE3IGxpbmVzKS4KSHVuayAjMzYgc3VjY2VlZGVkIGF0IDQ5NTYgKG9mZnNldCAxNyBsaW5lcyku Ckh1bmsgIzM3IHN1Y2NlZWRlZCBhdCA0OTk2IChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICMzOCBz dWNjZWVkZWQgYXQgNTAwNCAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMzkgc3VjY2VlZGVkIGF0 IDUwMTIgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzQwIHN1Y2NlZWRlZCBhdCA1MDIwIChvZmZz ZXQgMTcgbGluZXMpLgpIdW5rICM0MSBzdWNjZWVkZWQgYXQgNTA1MiAob2Zmc2V0IDE3IGxpbmVz KS4KSHVuayAjNDIgc3VjY2VlZGVkIGF0IDUwNjIgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzQz IHN1Y2NlZWRlZCBhdCA1MDcyIChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICM0NCBzdWNjZWVkZWQg YXQgNTA4MiAob2Zmc2V0IDE3IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhn YmUvdHhnYmVfZXRoZGV2LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUg VFhHQkVfRVRIX09WRVJIRUFEIChSVEVfRVRIRVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVO KQoKI2RlZmluZSBUWEdCRV9SU1NfT0ZGTE9BRF9BTEwgKCBcCglFVEhfUlNTX0lQVjQgfCBcCglF VEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfCBc CglFVEhfUlNTX0lQVjYgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCglFVEhfUlNT X05PTkZSQUdfSVBWNl9VRFAgfCBcCglFVEhfUlNTX0lQVjZfRVggfCBcCglFVEhfUlNTX0lQVjZf VENQX0VYIHwgXAoJRVRIX1JTU19JUFY2X1VEUF9FWCkKCiNkZWZpbmUgVFhHQkVfTUlTQ19WRUNf SUQgICAgICAgICAgICAgICBSVEVfSU5UUl9WRUNfWkVST19PRkZTRVQKI2RlZmluZSBUWEdCRV9S WF9WRUNfU1RBUlQgICAgICAgICAgICAgIFJURV9JTlRSX1ZFQ19SWFRYX09GRlNFVAoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2Lmg6NjAKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2X3ZmLmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZmRpci5jLi4uCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC90eGdiZS90eGdiZV9pcHNlYy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2Jl L3R4Z2JlX3BmLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfcnh0 eC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE5MzkgKG9mZnNldCAtMjEgbGluZXMpLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCB0eGdiZV9odyAqaHcgPSBUWEdCRV9ERVZf SFcoZGV2KTsKCXN0cnVjdCBydGVfZXRoX2Rldl9zcmlvdiAqc3Jpb3YgPSAmUlRFX0VUSF9ERVZf U1JJT1YoZGV2KTsKCglvZmZsb2FkcyA9IERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKCQkg ICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8CgkJICAgREVWX1JYX09GRkxPQURfVENQX0NL U1VNICAgfAoJCSAgIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgIHwKCQkgICBERVZfUlhfT0ZG TE9BRF9WTEFOX0ZJTFRFUiB8CgkJICAgREVWX1JYX09GRkxPQURfUlNTX0hBU0ggfAoJCSAgIERF Vl9SWF9PRkZMT0FEX1NDQVRURVI7CgoJaWYgKCF0eGdiZV9pc192ZihkZXYpKQoJCW9mZmxvYWRz IHw9IChERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJCSAgICAgREVWX1JYX09GRkxPQURf UUlOUV9TVFJJUCB8CgkJCSAgICAgREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQpOwoKCS8qCgkg KiBSU0MgaXMgb25seSBzdXBwb3J0ZWQgYnkgUEYgZGV2aWNlcyBpbiBhIG5vbi1TUi1JT1YKCSAq IG1vZGUuCgkgKi8KCWlmIChody0+bWFjLnR5cGUgPT0gdHhnYmVfbWFjX3JhcHRvciAmJiAhc3Jp b3YtPmFjdGl2ZSkKCQlvZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPOwoKCWlmICho dy0+bWFjLnR5cGUgPT0gdHhnYmVfbWFjX3JhcHRvcikKCQlvZmZsb2FkcyB8PSBERVZfUlhfT0ZG TE9BRF9NQUNTRUNfU1RSSVA7CgoJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTTsKCiNpZmRlZiBSVEVfTElCX1NFQ1VSSVRZCglpZiAoZGV2LT5zZWN1cml0eV9jdHgp CgkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfU0VDVVJJVFk7CiNlbmRpZgoKCXJldHVybiBv ZmZsb2FkczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4 dHguYzoxOTcwCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDIyMDIgKG9mZnNldCAtMjAgbGluZXMpLgpI dW5rICM0IHN1Y2NlZWRlZCBhdCAyMzI5IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjNSBzdWNj ZWVkZWQgYXQgMjU3OSAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDI4 ODAgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAyOTEwIChvZmZzZXQg LTIwIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMjk2NCAob2Zmc2V0IC0yMCBsaW5lcyku Ckh1bmsgIzkgc3VjY2VlZGVkIGF0IDMwMjYgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMxMCBz dWNjZWVkZWQgYXQgMzA2MyAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBh dCAzMDgzIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDMwOTEgKG9m ZnNldCAtMjAgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMzExMCAob2Zmc2V0IC0yMCBs aW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAzMTMxIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVu ayAjMTUgc3VjY2VlZGVkIGF0IDMyMDEgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMxNiBzdWNj ZWVkZWQgYXQgMzIxNyAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAz MjMyIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDMyNTAgKG9mZnNl dCAtMjAgbGluZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgMzI2NSAob2Zmc2V0IC0yMCBsaW5l cykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCAzMjkyIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAj MjEgc3VjY2VlZGVkIGF0IDMzMTkgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMyMiBzdWNjZWVk ZWQgYXQgMzQ1NSAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzIzIHN1Y2NlZWRlZCBhdCAzNDY2 IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDM0ODAgKG9mZnNldCAt MjAgbGluZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgMzQ5MSAob2Zmc2V0IC0yMCBsaW5lcyku Ckh1bmsgIzI2IHN1Y2NlZWRlZCBhdCAzNTA3IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMjcg c3VjY2VlZGVkIGF0IDM1NTYgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQg YXQgMzU3MiAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzI5IHN1Y2NlZWRlZCBhdCAzNjE0IChv ZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMzAgc3VjY2VlZGVkIGF0IDM2MjggKG9mZnNldCAtMjAg bGluZXMpLgpIdW5rICMzMSBzdWNjZWVkZWQgYXQgMzY5OSAob2Zmc2V0IC0yMCBsaW5lcykuCkh1 bmsgIzMyIHN1Y2NlZWRlZCBhdCAzNzYwIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMzMgc3Vj Y2VlZGVkIGF0IDM5MTEgKG9mZnNldCA3IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgltcnFjID0gcmQzMihodywgVFhHQkVfUE9SVENUTCk7CgltcnFjICY9IH4oVFhHQkVfUE9S VENUTF9OVU1UQ19NQVNLIHwgVFhHQkVfUE9SVENUTF9OVU1WVF9NQVNLKTsKCXN3aXRjaCAoUlRF X0VUSF9ERVZfU1JJT1YoZGV2KS5hY3RpdmUpIHsKCWNhc2UgRVRIXzY0X1BPT0xTOgoJCW1ycWMg fD0gVFhHQkVfUE9SVENUTF9OVU1WVF82NDsKCQlicmVhazsKCgljYXNlIEVUSF8zMl9QT09MUzoK CQltcnFjIHw9IFRYR0JFX1BPUlRDVExfTlVNVlRfMzI7CgkJYnJlYWs7CgoJY2FzZSBFVEhfMTZf UE9PTFM6CgkJbXJxYyB8PSBUWEdCRV9QT1JUQ1RMX05VTVZUXzE2OwoJCWJyZWFrOwoJZGVmYXVs dDoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguYzoz OTMxCkh1bmsgIzM1IHN1Y2NlZWRlZCBhdCAzOTQyIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAj MzYgc3VjY2VlZGVkIGF0IDM5NjcgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMzNyBzdWNjZWVk ZWQgYXQgNDAwOCAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzM4IHN1Y2NlZWRlZCBhdCA0MDE4 IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMzkgc3VjY2VlZGVkIGF0IDQwODcgKG9mZnNldCAt MjAgbGluZXMpLgpIdW5rICM0MCBzdWNjZWVkZWQgYXQgNDA5OCAob2Zmc2V0IC0yMCBsaW5lcyku Ckh1bmsgIzQxIHN1Y2NlZWRlZCBhdCA0MjUzIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjNDIg c3VjY2VlZGVkIGF0IDQyOTYgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICM0MyBzdWNjZWVkZWQg YXQgNDMyOSAob2Zmc2V0IC0xNSBsaW5lcykuCkh1bmsgIzQ0IHN1Y2NlZWRlZCBhdCA0MzM5IChv ZmZzZXQgLTE1IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJaWYgKGRldi0+ ZGF0YS0+bXR1ICsgVFhHQkVfRVRIX09WRVJIRUFEICsKCQkJCTIgKiBUWEdCRV9WTEFOX1RBR19T SVpFID4gYnVmX3NpemUpCgkJCWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKCQlpZiAocnhx LT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVApCgkJCXJ4X2NvbmYtPm9mZmxv YWRzIHw9IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7Cgl9CgoJaWYgKHJ4X2NvbmYtPm9mZmxv YWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikKCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9 IDE7CgoJLyoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4 dHguYzo0MzkxCkh1bmsgIzQ2IHN1Y2NlZWRlZCBhdCA0Mzk1IChvZmZzZXQgLTE1IGxpbmVzKS4K SHVuayAjNDcgc3VjY2VlZGVkIGF0IDQ0MDQgKG9mZnNldCAtMTUgbGluZXMpLgpIdW5rICM0OCBz dWNjZWVkZWQgYXQgNDUyNyAob2Zmc2V0IC0xNSBsaW5lcykuCkh1bmsgIzQ5IHN1Y2NlZWRlZCBh dCA0ODM2IChvZmZzZXQgLTE1IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJ ICovCgkJd3IzMihodywgVFhHQkVfUlhDRkcoaSksIHNycmN0bCk7CgoJCWlmIChyeG1vZGUtPm9m ZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8fAoJCSAgICAvKiBJdCBhZGRzIGR1YWwg VkxBTiBsZW5ndGggZm9yIHN1cHBvcnRpbmcgZHVhbCBWTEFOICovCgkJICAgIChkZXYtPmRhdGEt Pm10dSArIFRYR0JFX0VUSF9PVkVSSEVBRCArCgkJCQkyICogVFhHQkVfVkxBTl9UQUdfU0laRSkg PiBidWZfc2l6ZSkgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdHhnYmUvdHhn YmVfcnh0eC5jOjQ5MDMKSHVuayAjNTEgc3VjY2VlZGVkIGF0IDQ4OTcgKG9mZnNldCAtMTUgbGlu ZXMpLgpIdW5rICM1MiBzdWNjZWVkZWQgYXQgNTA2OSAob2Zmc2V0IC0xNSBsaW5lcykuCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguaC4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV90bS5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L3Zob3N0L3J0ZV9ldGhfdmhvc3QuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC92 aXJ0aW8vdmlydGlvX2V0aGRldi5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDE3NzIgKG9mZnNl dCAxIGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxNzg2IChvZmZzZXQgMSBsaW5lKS4KSHVu ayAjNCBzdWNjZWVkZWQgYXQgMTg4NSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVk IGF0IDE5NTcgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMjA4OCAob2Zm c2V0IDIgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglody0+bWF4X3J4X3Br dF9sZW4gPSBldGhlcl9oZHJfbGVuICsgcnhtb2RlLT5tdHU7CgoJaWYgKHJ4X29mZmxvYWRzICYg KERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NV TSkpCgkJcmVxX2ZlYXR1cmVzIHw9ICgxVUxMIDw8IFZJUlRJT19ORVRfRl9HVUVTVF9DU1VNKTsK CglpZiAocnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPKQoJCXJlcV9mZWF0dXJl cyB8PQoJCQkoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNCkgfAoJCQkoMVVMTCA8PCBW SVJUSU9fTkVUX0ZfR1VFU1RfVFNPNik7CgoJaWYgKHR4X29mZmxvYWRzICYgKERFVl9UWF9PRkZM T0FEX1VEUF9DS1NVTSB8CgkJCSAgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpCgkJcmVxX2Zl YXR1cmVzIHw9ICgxVUxMIDw8IFZJUlRJT19ORVRfRl9DU1VNKTsKCglpZiAodHhfb2ZmbG9hZHMg JiBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPKQoJCXJlcV9mZWF0dXJlcyB8PQoJCQkoMVVMTCA8PCBW SVJUSU9fTkVUX0ZfSE9TVF9UU080KSB8CgkJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RT TzYpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhk ZXYuYzoyMTExCkh1bmsgIzggc3VjY2VlZGVkIGF0IDIxNDIgKG9mZnNldCA2IGxpbmVzKS4KSHVu ayAjOSBzdWNjZWVkZWQgYXQgMjE2MiAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVk ZWQgYXQgMjIyMCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMjI0NyAo b2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMjQ0MyAob2Zmc2V0IDYgbGlu ZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMjQ4NCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMx NCBzdWNjZWVkZWQgYXQgMjUxOCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQg YXQgMjUyOSAob2Zmc2V0IDYgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWRl dl9pbmZvLT5tYXhfbXR1ID0gaHctPm1heF9tdHU7CgoJaG9zdF9mZWF0dXJlcyA9IFZJUlRJT19P UFMoaHcpLT5nZXRfZmVhdHVyZXMoaHcpOwoJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IERF Vl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CglpZiAoaG9zdF9mZWF0dXJlcyAmICgxVUxMIDw8IFZJ UlRJT19ORVRfRl9NUkdfUlhCVUYpKQoJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVW X1JYX09GRkxPQURfU0NBVFRFUjsKCWlmIChob3N0X2ZlYXR1cmVzICYgKDFVTEwgPDwgVklSVElP X05FVF9GX0dVRVNUX0NTVU0pKSB7CgkJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PQoJCQlE RVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU07Cgl9 CglpZiAoaG9zdF9mZWF0dXJlcyAmICgxVUxMIDw8IFZJUlRJT19ORVRfRl9DVFJMX1ZMQU4pKQoJ CWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVI7 Cgl0c29fbWFzayA9ICgxVUxMIDw8IFZJUlRJT19ORVRfRl9HVUVTVF9UU080KSB8CgkJKDFVTEwg PDwgVklSVElPX05FVF9GX0dVRVNUX1RTTzYpOwoJaWYgKChob3N0X2ZlYXR1cmVzICYgdHNvX21h c2spID09IHRzb19tYXNrKQoJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09G RkxPQURfVENQX0xSTzsKCglkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gREVWX1RYX09GRkxP QURfTVVMVElfU0VHUyB8CgkJCQkgICAgREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQ7CglpZiAo aG9zdF9mZWF0dXJlcyAmICgxVUxMIDw8IFZJUlRJT19ORVRfRl9DU1VNKSkgewoJCWRldl9pbmZv LT50eF9vZmZsb2FkX2NhcGEgfD0KCQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJREVW X1RYX09GRkxPQURfVENQX0NLU1VNOwoJfQoJdHNvX21hc2sgPSAoMVVMTCA8PCBWSVJUSU9fTkVU X0ZfSE9TVF9UU080KSB8CgkJKDFVTEwgPDwgVklSVElPX05FVF9GX0hPU1RfVFNPNik7CglpZiAo KGhvc3RfZmVhdHVyZXMgJiB0c29fbWFzaykgPT0gdHNvX21hc2spCgkJZGV2X2luZm8tPnR4X29m ZmxvYWRfY2FwYSB8PSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPOwoKCWlmIChob3N0X2ZlYXR1cmVz ICYgKDFVTEwgPDwgVklSVElPX0ZfUklOR19QQUNLRUQpKSB7CgkJLyoKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmM6MjU0NgpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CiNkZWZpbmUJVk1YTkVUM19UWF9NQVhfU0VHCVVJTlQ4X01BWAoKI2Rl ZmluZSBWTVhORVQzX1RYX09GRkxPQURfQ0FQCQlcCgkoREVWX1RYX09GRkxPQURfVkxBTl9JTlNF UlQgfAlcCgkgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwJXAoJIERFVl9UWF9PRkZMT0FEX1VE UF9DS1NVTSB8CVwKCSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwJXAoJIERFVl9UWF9PRkZMT0FE X01VTFRJX1NFR1MpCgojZGVmaW5lIFZNWE5FVDNfUlhfT0ZGTE9BRF9DQVAJCVwKCShERVZfUlhf T0ZGTE9BRF9WTEFOX1NUUklQIHwJXAoJIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwgICBc CgkgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8CVwKCSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0g fAlcCgkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwJXAoJIERFVl9SWF9PRkZMT0FEX1RDUF9M Uk8gfAlcCgkgREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCgppbnQgdm14bmV0M19zZWdzX2R5bmZp ZWxkX29mZnNldCA9IC0xOwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3ZteG5l dDMvdm14bmV0M19ldGhkZXYuYzo0MQpIdW5rICMyIHN1Y2NlZWRlZCBhdCAzOTkgKG9mZnNldCAx IGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA0ODcgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM0 IHN1Y2NlZWRlZCBhdCA1NDggKG9mZnNldCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA4 NDQgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA4NjQgKG9mZnNldCAxIGxp bmUpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA5MzEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM4IHN1 Y2NlZWRlZCBhdCAxMDQwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTM2 NiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAxNDQ4IChvZmZzZXQgMSBs aW5lKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDE1MDQgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMx MiBzdWNjZWVkZWQgYXQgMTU3NCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzEzIHN1Y2NlZWRlZCBh dCAxNTg0IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdm14bmV0 My92bXhuZXQzX2V0aGRldi5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3ZteG5ldDMv dm14bmV0M19yeHR4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvYmJkZXZfYXBwL21haW4u Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRl X2V0aF9jb25mIHBvcnRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFf UlhfTk9ORSwKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21v ZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBs ZXMvYmJkZXZfYXBwL21haW4uYzo3MQpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9ib25kL21haW4u Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9j b25mIHBvcnRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9O RSwKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNzX2Nv bmYgPSB7CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAsCgkJfSwK CX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCgl9LAp9OwoKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2JvbmQvbWFpbi5jOjExNQpDaGVja2luZyBwYXRj aCBleGFtcGxlcy9kaXN0cmlidXRvci9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9 IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAoJfSwKCS50eG1vZGUg PSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJ LnJzc19jb25mID0gewoJCQkucnNzX2hmID0gRVRIX1JTU19JUCB8IEVUSF9SU1NfVURQIHwKCQkJ CUVUSF9SU1NfVENQIHwgRVRIX1JTU19TQ1RQLAoJCX0KCX0sCn07CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBleGFtcGxlcy9kaXN0cmlidXRvci9tYWluLmM6ODAKSHVuayAjMiBzdWNjZWVkZWQgYXQg MTI3IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvZXRodG9vbC9ldGh0 b29sLWFwcC9tYWluLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvZXRodG9vbC9saWIvcnRl X2V0aHRvb2wuYy4uLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9ldmVudGRldl9waXBlbGluZS9w aXBlbGluZV93b3JrZXJfZ2VuZXJpYy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ c3RydWN0IHJ0ZV9ldGhfcnhjb25mIHJ4X2NvbmY7CglzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9l dGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKCQkucnhtb2RlID0gewoJCQkubXFfbW9kZSA9 IEVUSF9NUV9SWF9SU1MsCgkJfSwKCQkucnhfYWR2X2NvbmYgPSB7CgkJCS5yc3NfY29uZiA9IHsK CQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQIHwKCQkJCQkgIEVUSF9SU1NfVENQIHwKCQkJCQkgIEVU SF9SU1NfVURQLAoJCQl9CgkJfQoJfTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2V2 ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl9nZW5lcmljLmM6MjgzCkh1bmsgIzIgc3Vj Y2VlZGVkIGF0IDMxMiAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2V2 ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl90eC5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJc3RydWN0IHJ0ZV9ldGhfcnhjb25mIHJ4X2NvbmY7CglzdGF0aWMgY29uc3Qg c3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKCQkucnhtb2RlID0gewoJ CQkubXFfbW9kZSA9IEVUSF9NUV9SWF9SU1MsCgkJfSwKCQkucnhfYWR2X2NvbmYgPSB7CgkJCS5y c3NfY29uZiA9IHsKCQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQIHwKCQkJCQkgIEVUSF9SU1NfVENQ IHwKCQkJCQkgIEVUSF9SU1NfVURQLAoJCQl9CgkJfQoJfTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGV4YW1wbGVzL2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl90eC5jOjYxNApIdW5r ICMyIHN1Y2NlZWRlZCBhdCA2NDMgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFt cGxlcy9mbG93X2NsYXNzaWZ5L2Zsb3dfY2xhc3NpZnkuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBh dCAyMTggKG9mZnNldCA2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvZmxvd19maWx0 ZXJpbmcvbWFpbi5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2lvYXQvaW9hdGZ3ZC5jLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJLyogQ29uZmlndXJpbmcgcG9ydCB0byB1c2Ug UlNTIGZvciBtdWx0aXBsZSBSWCBxdWV1ZXMuIDg8ICovCglzdGF0aWMgY29uc3Qgc3RydWN0IHJ0 ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CgkJLnJ4bW9kZSA9IHsKCQkJLm1xX21vZGUgPSBFVEhf TVFfUlhfUlNTLAoJCX0sCgkJLnJ4X2Fkdl9jb25mID0gewoJCQkucnNzX2NvbmYgPSB7CgkJCQku cnNzX2tleSA9IE5VTEwsCgkJCQkucnNzX2hmID0gRVRIX1JTU19QUk9UT19NQVNLLAoJCQl9CgkJ fQoJfTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lvYXQvaW9hdGZ3ZC5jOjgxOQpI dW5rICMyIHN1Y2NlZWRlZCBhdCA4NTMgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBl eGFtcGxlcy9pcF9mcmFnbWVudGF0aW9uL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCQkubXR1ID0gSlVNQk9fRlJBTUVfTUFYX1NJWkUgLSBSVEVfRVRIRVJfSERSX0xFTiAt CgkJCVJURV9FVEhFUl9DUkNfTEVOLAoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgkJLm9mZmxvYWRz ID0gKERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKCQkJICAgICBERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSKSwKCX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCgkJLm9m ZmxvYWRzID0gKERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkgICAgIERFVl9UWF9PRkZM T0FEX01VTFRJX1NFR1MpLAoJfSwKfTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9p cF9mcmFnbWVudGF0aW9uL21haW4uYzoxNDkKSHVuayAjMiBzdWNjZWVkZWQgYXQgNjIzIChvZmZz ZXQgLTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9pcF9waXBlbGluZS9saW5rLmMu Li4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25m IHBvcnRfY29uZl9kZWZhdWx0ID0gewoJLmxpbmtfc3BlZWRzID0gMCwKCS5yeG1vZGUgPSB7CgkJ Lm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkubXR1ID0gOTAwMCAtIChSVEVfRVRIRVJfSERS X0xFTiArIFJURV9FVEhFUl9DUkNfTEVOKSwgLyogSnVtYm8gZnJhbWUgTVRVICovCgkJLnNwbGl0 X2hkcl9zaXplID0gMCwgLyogSGVhZGVyIHNwbGl0IGJ1ZmZlciBzaXplICovCgl9LAoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvaXBfcGlwZWxpbmUvbGluay5jOjQ1CkNoZWNraW5nIHBh dGNoIGV4YW1wbGVzL2lwX3JlYXNzZW1ibHkvbWFpbi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoKc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewoJLnJ4bW9k ZSA9IHsKCQkubXFfbW9kZSAgICAgICAgPSBFVEhfTVFfUlhfUlNTLAoJCS5tdHUgPSBKVU1CT19G UkFNRV9NQVhfU0laRSAtIFJURV9FVEhFUl9IRFJfTEVOIC0KCQkJUlRFX0VUSEVSX0NSQ19MRU4s CgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQkub2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVD S1NVTSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJCS5yc3NfY29uZiA9IHsKCQkJCS5yc3Nfa2V5 ID0gTlVMTCwKCQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQLAoJCX0sCgl9LAoJLnR4bW9kZSA9IHsK CQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAoJCS5vZmZsb2FkcyA9IChERVZfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKCQkJICAgICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKSwKCX0sCn07 CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvaXBfcmVhc3NlbWJseS9tYWluLmM6MTYx Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDczOSAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNo IGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLXNlY2d3LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnht b2RlID0gewoJCS5tcV9tb2RlCT0gRVRIX01RX1JYX1JTUywKCQkuc3BsaXRfaGRyX3NpemUgPSAw LAoJCS5vZmZsb2FkcyA9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLAoJfSwKCS5yeF9hZHZfY29u ZiA9IHsKCQkucnNzX2NvbmYgPSB7CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9IEVU SF9SU1NfSVAgfCBFVEhfUlNTX1VEUCB8CgkJCQlFVEhfUlNTX1RDUCB8IEVUSF9SU1NfU0NUUCwK CQl9LAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07 CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cu YzoyMzQKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cglsb2NhbF9wb3J0X2NvbmYucnhtb2Rl Lm10dSA9IG10dV9zaXplOwoKCWlmIChtdWx0aV9zZWdfcmVxdWlyZWQoKSkgewoJCWxvY2FsX3Bv cnRfY29uZi5yeG1vZGUub2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfU0NBVFRFUjsKCQlsb2Nh bF9wb3J0X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7 Cgl9CgoJbG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSByZXFfcnhfb2ZmbG9hZHM7 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy1zZWNndy5j OjIyMTIKSHVuayAjNSBzdWNjZWVkZWQgYXQgMjI0MCAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICM2 IHN1Y2NlZWRlZCBhdCAyMzAzIChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0 IDI2NjQgKG9mZnNldCA0IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvaXBzZWMtc2Vj Z3cvc2EuYy4uLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9pcHY0X211bHRpY2FzdC9tYWluLmMu Li4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCX0s CgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCgkJLm9mZmxvYWRzID0g REVWX1RYX09GRkxPQURfTVVMVElfU0VHUywKCX0sCn07CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZXhhbXBsZXMvaXB2NF9tdWx0aWNhc3QvbWFpbi5jOjExNQpIdW5rICMyIHN1Y2NlZWRlZCBhdCA2 MTkgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2tuaS9tYWluLmMu Li4KSHVuayAjMSBzdWNjZWVkZWQgYXQgOTQgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzIgc3Vj Y2VlZGVkIGF0IDYwNyAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgNjg3 IChvZmZzZXQgLTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9sMmZ3ZC1jcnlwdG8v bWFpbi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKc3RhdGljIHN0cnVjdCBydGVf ZXRoX2NvbmYgcG9ydF9jb25mID0gewoJLnJ4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9S WF9OT05FLAoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgl9LAoJLnR4bW9kZSA9IHsKCQkubXFfbW9k ZSA9IEVUSF9NUV9UWF9OT05FLAoJfSwKfTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxl cy9sMmZ3ZC1jcnlwdG8vbWFpbi5jOjIxNgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9sMmZ3ZC1l dmVudC9sMmZ3ZF9jb21tb24uYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxNSAob2Zmc2V0IDEg bGluZSkuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMyBz dWNjZWVkZWQgYXQgNjEgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9s MmZ3ZC1ldmVudC9tYWluLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbDJmd2Qtam9ic3Rh dHMvbWFpbi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDkzIChvZmZzZXQgLTEgbGluZXMpLgpI dW5rICMyIHN1Y2NlZWRlZCBhdCA3MjUgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzMgc3VjY2Vl ZGVkIGF0IDg2OCAob2Zmc2V0IC0xIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbDJm d2Qta2VlcGFsaXZlL21haW4uYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA4MiAob2Zmc2V0IC0x IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgNDc3IChvZmZzZXQgLTEgbGluZXMpLgpIdW5r ICMzIHN1Y2NlZWRlZCBhdCA2NDkgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGV4 YW1wbGVzL2wyZndkL21haW4uYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA5NCAob2Zmc2V0IC0x IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgNjA1IChvZmZzZXQgLTEgbGluZXMpLgpIdW5r ICMzIHN1Y2NlZWRlZCBhdCA3OTEgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGV4 YW1wbGVzL2wzZndkLWFjbC9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgpz dGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5t cV9tb2RlCT0gRVRIX01RX1JYX1JTUywKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJCS5vZmZsb2Fk cyA9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNz X2NvbmYgPSB7CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAgfCBF VEhfUlNTX1VEUCB8CgkJCQlFVEhfUlNTX1RDUCB8IEVUSF9SU1NfU0NUUCwKCQl9LAoJfSwKCS50 eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07CgoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtYWNsL21haW4uYzoxMjQKSHVuayAjMiBzdWNjZWVk ZWQgYXQgMTk3MSAob2Zmc2V0IDM1IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 Cgljb25mLT5yeG1vZGUubXR1ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9sZW47CgoJaWYgKGNv bmYtPnJ4bW9kZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQoJCWNvbmYtPnR4bW9kZS5vZmZsb2FkcyB8 PSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBleGFtcGxlcy9sM2Z3ZC1hY2wvbWFpbi5jOjIwMDQKZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0aDogJXUgKHBvcnQgJXUpXG4i LAoJCQkJbWF4X3BrdF9sZW4sIHBvcnRpZCk7CgoJCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2Nh cGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKCQkJbG9jYWxfcG9ydF9jb25mLnR4 bW9kZS5vZmZsb2FkcyB8PQoJCQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CgoJCWxv Y2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgJj0KCQkJZGV2X2luZm8u Zmxvd190eXBlX3Jzc19vZmZsb2FkczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2wz ZndkLWFjbC9tYWluLmM6MjA4OApDaGVja2luZyBwYXRjaCBleGFtcGxlcy9sM2Z3ZC1ncmFwaC9t YWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9l dGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1JY X1JTUywKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNz X2NvbmYgPSB7CgkJCQkucnNzX2tleSA9IE5VTEwsCgkJCQkucnNzX2hmID0gRVRIX1JTU19JUCwK CQl9LAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07 CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jOjExMQpI dW5rICMyIHN1Y2NlZWRlZCBhdCA2MjggKG9mZnNldCAyMSBsaW5lcykuCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0gb3ZlcmhlYWRf bGVuOwoKCWlmIChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkKCQljb25mLT50eG1v ZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCglyZXR1cm4gMDsKfQoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jOjczMQplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCSJJbnZhbGlkIG1heCBwYWNrZXQgbGVuZ3RoOiAl dSAocG9ydCAldSlcbiIsCgkJCQltYXhfcGt0X2xlbiwgcG9ydGlkKTsKCgkJaWYgKGRldl9pbmZv LnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQoJCQlsb2Nh bF9wb3J0X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9CgkJCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRTsKCgkJbG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAm PQoJCQlkZXZfaW5mby5mbG93X3R5cGVfcnNzX29mZmxvYWRzOwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jOjgyOApDaGVja2luZyBwYXRjaCBleGFtcGxl cy9sM2Z3ZC1wb3dlci9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0 aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9t b2RlICAgICAgICA9IEVUSF9NUV9SWF9SU1MsCgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQkub2Zm bG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJ LnJzc19jb25mID0gewoJCQkucnNzX2tleSA9IE5VTEwsCgkJCS5yc3NfaGYgPSBFVEhfUlNTX1VE UCwKCQl9LAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0K fTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9sM2Z3ZC1wb3dlci9tYWluLmM6MjUw Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDIyMjEgKG9mZnNldCAyNCBsaW5lcykuCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0gb3Zlcmhl YWRfbGVuOwoKCWlmIChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkKCQljb25mLT50 eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCglyZXR1cm4gMDsK fQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtcG93ZXIvbWFpbi5jOjI1MTAK ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0 aDogJXUgKHBvcnQgJXUpXG4iLAoJCQkJbWF4X3BrdF9sZW4sIHBvcnRpZCk7CgoJCWlmIChkZXZf aW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKCQkJ bG9jYWxfcG9ydF9jb25mLnR4bW9kZS5vZmZsb2FkcyB8PQoJCQkJREVWX1RYX09GRkxPQURfTUJV Rl9GQVNUX0ZSRUU7CgoJCWxvY2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3Nf aGYgJj0KCQkJZGV2X2luZm8uZmxvd190eXBlX3Jzc19vZmZsb2FkczsKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGV4YW1wbGVzL2wzZndkLXBvd2VyL21haW4uYzoyNjM4CkNoZWNraW5nIHBhdGNoIGV4 YW1wbGVzL2wzZndkL2wzZndkX2V2ZW50LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbDNm d2QvbWFpbi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKc3RhdGljIHN0cnVjdCBy dGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewoJLnJ4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9N UV9SWF9SU1MsCgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQkub2ZmbG9hZHMgPSBERVZfUlhfT0ZG TE9BRF9DSEVDS1NVTSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJLnJzc19jb25mID0gewoJCQku cnNzX2tleSA9IE5VTEwsCgkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQLAoJCX0sCgl9LAoJLnR4bW9k ZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAoJfSwKfTsKCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBleGFtcGxlcy9sM2Z3ZC9tYWluLmM6MTIwCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDky NSAob2Zmc2V0IDIyIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgljb25mLT5y eG1vZGUubXR1ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9sZW47CgoJaWYgKGNvbmYtPnJ4bW9k ZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQoJCWNvbmYtPnR4bW9kZS5vZmZsb2FkcyB8PSBERVZfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTOwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBl eGFtcGxlcy9sM2Z3ZC9tYWluLmM6OTg4CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJ IkludmFsaWQgbWF4IHBhY2tldCBsZW5ndGg6ICV1IChwb3J0ICV1KVxuIiwKCQkJCW1heF9wa3Rf bGVuLCBwb3J0aWQpOwoKCQlpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RYX09G RkxPQURfTUJVRl9GQVNUX0ZSRUUpCgkJCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMg fD0KCQkJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwoKCQlsb2NhbF9wb3J0X2NvbmYu cnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2hmICY9CgkJCWRldl9pbmZvLmZsb3dfdHlwZV9yc3Nf b2ZmbG9hZHM7CgoJCWlmIChkZXZfaW5mby5tYXhfcnhfcXVldWVzID09IDEpCgkJCWxvY2FsX3Bv cnRfY29uZi5yeG1vZGUubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FOwoKCQlpZiAobG9jYWxfcG9y dF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAhPQoJCQkJcG9ydF9jb25mLnJ4X2Fk dl9jb25mLnJzc19jb25mLnJzc19oZikgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMv bDNmd2QvbWFpbi5jOjEwNTMKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbGlua19zdGF0dXNfaW50 ZXJydXB0L21haW4uYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA4MiAob2Zmc2V0IC0xIGxpbmVz KS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTQ2IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMzIHN1 Y2NlZWRlZCBhdCA1MDYgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDYz MyAob2Zmc2V0IC0xIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbXVsdGlfcHJvY2Vz cy9jbGllbnRfc2VydmVyX21wL21wX3NlcnZlci9pbml0LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQg YXQgOTMgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIxMiAob2Zmc2V0 IC0xIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbXVsdGlfcHJvY2Vzcy9zeW1tZXRy aWNfbXAvbWFpbi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE3NSAob2Zmc2V0IC0xIGxpbmVz KS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjE3IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMzIHN1 Y2NlZWRlZCBhdCAzOTEgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVz L250Yi9udGJfZndkLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvcGFja2V0X29yZGVyaW5n L21haW4uYy4uLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9wZXJmb3JtYW5jZS10aHJlYWQvbDNm d2QtdGhyZWFkL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRpYyBz dHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUg PSBFVEhfTVFfUlhfUlNTLAoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgkJLm9mZmxvYWRzID0gREVW X1JYX09GRkxPQURfQ0hFQ0tTVU0sCgl9LAoJLnJ4X2Fkdl9jb25mID0gewoJCS5yc3NfY29uZiA9 IHsKCQkJLnJzc19rZXkgPSBOVUxMLAoJCQkucnNzX2hmID0gRVRIX1JTU19UQ1AsCgkJfSwKCX0s CgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCgl9LAp9OwoKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL3BlcmZvcm1hbmNlLXRocmVhZC9sM2Z3ZC10aHJlYWQv bWFpbi5jOjMwNwpIdW5rICMyIHN1Y2NlZWRlZCBhdCAzNDYyIChvZmZzZXQgMjEgbGluZXMpLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWNvbmYtPnJ4bW9kZS5tdHUgPSBtYXhfcGt0X2xl biAtIG92ZXJoZWFkX2xlbjsKCglpZiAoY29uZi0+cnhtb2RlLm10dSA+IFJURV9FVEhFUl9NVFUp CgkJY29uZi0+dHhtb2RlLm9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CgoJ cmV0dXJuIDA7Cn0KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL3BlcmZvcm1hbmNlLXRo cmVhZC9sM2Z3ZC10aHJlYWQvbWFpbi5jOjM0OTQKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CgkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0aDogJXUgKHBvcnQgJXUpXG4iLAoJCQkJbWF4 X3BrdF9sZW4sIHBvcnRpZCk7CgoJCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZf VFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKCQkJbG9jYWxfcG9ydF9jb25mLnR4bW9kZS5vZmZs b2FkcyB8PQoJCQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CgoJCWxvY2FsX3BvcnRf Y29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgJj0KCQkJZGV2X2luZm8uZmxvd190eXBl X3Jzc19vZmZsb2FkczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL3BlcmZvcm1hbmNl LXRocmVhZC9sM2Z3ZC10aHJlYWQvbWFpbi5jOjM1OTMKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMv cGlwZWxpbmUvb2JqLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnN0YXRpYyBzdHJ1 Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZl9kZWZhdWx0ID0gewoJLmxpbmtfc3BlZWRzID0gMCwK CS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkubXR1ID0gOTAwMCAt IChSVEVfRVRIRVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOKSwgLyogSnVtYm8gZnJhbWUg TVRVICovCgkJLnNwbGl0X2hkcl9zaXplID0gMCwgLyogSGVhZGVyIHNwbGl0IGJ1ZmZlciBzaXpl ICovCgl9LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvcGlwZWxpbmUvb2JqLmM6MTMz CkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3B0cGNsaWVudC9wdHBjbGllbnQuYy4uLgpIdW5rICMx IHN1Y2NlZWRlZCBhdCAxOTcgKG9mZnNldCA0IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBs ZXMvcW9zX21ldGVyL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICoqKi8K c3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewoJLnJ4bW9kZSA9IHsKCQku bXFfbW9kZQk9IEVUSF9NUV9SWF9SU1MsCgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQkub2ZmbG9h ZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJLnJz c19jb25mID0gewoJCQkucnNzX2tleSA9IE5VTEwsCgkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQLAoJ CX0sCgl9LAoJLnR4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9EQ0JfTk9ORSwKCX0sCn07CgoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvcW9zX21ldGVyL21haW4uYzo1MQpIdW5rICMy IHN1Y2NlZWRlZCBhdCAzMzMgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAz NzkgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9xb3Nfc2NoZWQvaW5p dC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDYxIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMiBz dWNjZWVkZWQgYXQgMTA2IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMv cnh0eF9jYWxsYmFja3MvbWFpbi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE0NSAob2Zmc2V0 IDQgbGluZXMpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9zZXJ2ZXJfbm9kZV9lZmQvc2VydmVy L2luaXQuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA5NSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVu ayAjMiBzdWNjZWVkZWQgYXQgMTE0IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRl ZCBhdCAyNzYgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3NrZWxl dG9uL2Jhc2ljZndkLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNTUgKG9mZnNldCA2IGxpbmVz KS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvdmhvc3QvbWFpbi5jLi4uCkh1bmsgIzEgc3VjY2Vl ZGVkIGF0IDEwOSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTMzIChv ZmZzZXQgLTEgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyOTAgKG9mZnNldCAtMSBsaW5l cykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDU1NiAob2Zmc2V0IC0xIGxpbmVzKS4KQ2hlY2tpbmcg cGF0Y2ggZXhhbXBsZXMvdm1fcG93ZXJfbWFuYWdlci9tYWluLmMuLi4KSHVuayAjMSBzdWNjZWVk ZWQgYXQgNzggKG9mZnNldCA1IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjc1IChvZmZz ZXQgNSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3ZtZHEvbWFpbi5jLi4uCkh1bmsg IzEgc3VjY2VlZGVkIGF0IDY1IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBh dCA3OCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTU2IChvZmZzZXQg LTEgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAyNTggKG9mZnNldCAtMSBsaW5lcykuCkNo ZWNraW5nIHBhdGNoIGV4YW1wbGVzL3ZtZHFfZGNiL21haW4uYy4uLgpIdW5rICMxIHN1Y2NlZWRl ZCBhdCA1OSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgNjggKG9mZnNl dCAtMSBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDgwIChvZmZzZXQgLTEgbGluZXMpLgpI dW5rICM0IHN1Y2NlZWRlZCBhdCA4OCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjNSBzdWNjZWVk ZWQgYXQgMTAyIChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxNTYgKG9m ZnNldCAtMSBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDE3MiAob2Zmc2V0IC0xIGxpbmVz KS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMjcwIChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICM5IHN1 Y2NlZWRlZCBhdCAzODEgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCA0 MDMgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGxpYi9ldGhkZXYvZXRoZGV2X2Ry aXZlci5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkvKio8IERldmljZSBFdGhl cm5ldCBsaW5rIGFkZHJlc3MuCgkJCSAqICAgQHNlZSBydGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQo KQoJCQkgKi8KCXVpbnQ2NF90IG1hY19wb29sX3NlbFtFVEhfTlVNX1JFQ0VJVkVfTUFDX0FERFJd OwoJCQkvKio8IEJpdG1hcCBhc3NvY2lhdGluZyBNQUMgYWRkcmVzc2VzIHRvIHBvb2xzLiAqLwoJ c3RydWN0IHJ0ZV9ldGhlcl9hZGRyICpoYXNoX21hY19hZGRyczsKCQkJLyoqPCBEZXZpY2UgRXRo ZXJuZXQgTUFDIGFkZHJlc3NlcyBvZiBoYXNoIGZpbHRlcmluZy4KCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGxpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oOjExNgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAx NDgxIChvZmZzZXQgLTE3NiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGxpYi9ldGhkZXYvcnRlX2V0 aGRldi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDk4IChvZmZzZXQgLTMgbGluZXMpLgpIdW5r ICMyIHN1Y2NlZWRlZCBhdCAxMjMgKG9mZnNldCAtMiBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVk IGF0IDExOTQgKG9mZnNldCAyNCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ ICogSWYgTFJPIGlzIGVuYWJsZWQsIGNoZWNrIHRoYXQgdGhlIG1heGltdW0gYWdncmVnYXRlZCBw YWNrZXQKCSAqIHNpemUgaXMgc3VwcG9ydGVkIGJ5IHRoZSBjb25maWd1cmVkIGRldmljZS4KCSAq LwoJaWYgKGRldl9jb25mLT5yeG1vZGUub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJP KSB7CgkJdWludDMyX3QgbWF4X3J4X3BrdGxlbjsKCQl1aW50MzJfdCBvdmVyaGVhZF9sZW47CgoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2V0aGRldi9ydGVfZXRoZGV2LmM6MTUwMwpIdW5rICM1 IHN1Y2NlZWRlZCBhdCAxNTUzIChvZmZzZXQgLTQgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCSAqIHNpemUgaXMgc3VwcG9ydGVkIGJ5IHRoZSBjb25maWd1cmVkIGRldmljZS4K CSAqLwoJLyogR2V0IHRoZSByZWFsIEV0aGVybmV0IG92ZXJoZWFkIGxlbmd0aCAqLwoJaWYgKGxv Y2FsX2NvbmYub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPKSB7CgkJdWludDMyX3Qg b3ZlcmhlYWRfbGVuOwoJCXVpbnQzMl90IG1heF9yeF9wa3RsZW47CgkJaW50IHJldDsKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5jOjIxODAKSHVuayAjNyBzdWNj ZWVkZWQgYXQgMjczNCAob2Zmc2V0IC0yMyBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDI3 NzIgKG9mZnNldCAtMjMgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAzNjM5IChvZmZzZXQg LTcwIGxpbmVzKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDM3MjYgKG9mZnNldCAtNzAgbGluZXMp LgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMzgwOCAob2Zmc2V0IC03MCBsaW5lcykuCkh1bmsgIzEy IHN1Y2NlZWRlZCBhdCAzODk1IChvZmZzZXQgLTcwIGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVk IGF0IDM5MTMgKG9mZnNldCAtNzAgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CX0KCglmb3IgKGkgPSAwOyBpIDwgcmV0YV9zaXplOyBpKyspIHsKCQlpZHggPSBpIC8gUlRFX1JF VEFfR1JPVVBfU0laRTsKCQlzaGlmdCA9IGkgJSBSVEVfUkVUQV9HUk9VUF9TSVpFOwoJCWlmICgo cmV0YV9jb25mW2lkeF0ubWFzayAmIFJURV9CSVQ2NChzaGlmdCkpICYmCgkJCShyZXRhX2NvbmZb aWR4XS5yZXRhW3NoaWZ0XSA+PSBtYXhfcnhxKSkgewoJCQlSVEVfRVRIREVWX0xPRyhFUlIsCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuYzo0MDA4Ckh1bmsgIzE1 IHN1Y2NlZWRlZCBhdCA0MTE4IChvZmZzZXQgLTQ0IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVk IGF0IDQwOTIgKG9mZnNldCAtOTYgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgNDI1OSAo b2Zmc2V0IC03MCBsaW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCA2MTUzIChvZmZzZXQgLTg2 IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggbGliL2V0aGRldi9ydGVfZXRoZGV2LmguLi4KSHVuayAj MSBzdWNjZWVkZWQgYXQgMjQ5IChvZmZzZXQgLTEgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKLyoqQHtAbmFtZSBMaW5rIHNwZWVkIGNhcGFiaWxpdGllcwogKiBEZXZpY2Ugc3Vw cG9ydGVkIHNwZWVkcyBiaXRtYXAgZmxhZ3MKICovCiNkZWZpbmUgRVRIX0xJTktfU1BFRURfQVVU T05FRyAwICAgICAgICAgICAgIC8qKjwgQXV0b25lZ290aWF0ZSAoYWxsIHNwZWVkcykgKi8KI2Rl ZmluZSBFVEhfTElOS19TUEVFRF9GSVhFRCAgIFJURV9CSVQzMigwKSAgLyoqPCBEaXNhYmxlIGF1 dG9uZWcgKGZpeGVkIHNwZWVkKSAqLwojZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwTV9IRCAgUlRF X0JJVDMyKDEpICAvKio8ICAxMCBNYnBzIGhhbGYtZHVwbGV4ICovCiNkZWZpbmUgRVRIX0xJTktf U1BFRURfMTBNICAgICBSVEVfQklUMzIoMikgIC8qKjwgIDEwIE1icHMgZnVsbC1kdXBsZXggKi8K I2RlZmluZSBFVEhfTElOS19TUEVFRF8xMDBNX0hEIFJURV9CSVQzMigzKSAgLyoqPCAxMDAgTWJw cyBoYWxmLWR1cGxleCAqLwojZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwME0gICAgUlRFX0JJVDMy KDQpICAvKio8IDEwMCBNYnBzIGZ1bGwtZHVwbGV4ICovCiNkZWZpbmUgRVRIX0xJTktfU1BFRURf MUcgICAgICBSVEVfQklUMzIoNSkgIC8qKjwgICAxIEdicHMgKi8KI2RlZmluZSBFVEhfTElOS19T UEVFRF8yXzVHICAgIFJURV9CSVQzMig2KSAgLyoqPCAyLjUgR2JwcyAqLwojZGVmaW5lIEVUSF9M SU5LX1NQRUVEXzVHICAgICAgUlRFX0JJVDMyKDcpICAvKio8ICAgNSBHYnBzICovCiNkZWZpbmUg RVRIX0xJTktfU1BFRURfMTBHICAgICBSVEVfQklUMzIoOCkgIC8qKjwgIDEwIEdicHMgKi8KI2Rl ZmluZSBFVEhfTElOS19TUEVFRF8yMEcgICAgIFJURV9CSVQzMig5KSAgLyoqPCAgMjAgR2JwcyAq LwojZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzI1RyAgICAgUlRFX0JJVDMyKDEwKSAvKio8ICAyNSBH YnBzICovCiNkZWZpbmUgRVRIX0xJTktfU1BFRURfNDBHICAgICBSVEVfQklUMzIoMTEpIC8qKjwg IDQwIEdicHMgKi8KI2RlZmluZSBFVEhfTElOS19TUEVFRF81MEcgICAgIFJURV9CSVQzMigxMikg LyoqPCAgNTAgR2JwcyAqLwojZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzU2RyAgICAgUlRFX0JJVDMy KDEzKSAvKio8ICA1NiBHYnBzICovCiNkZWZpbmUgRVRIX0xJTktfU1BFRURfMTAwRyAgICBSVEVf QklUMzIoMTQpIC8qKjwgMTAwIEdicHMgKi8KI2RlZmluZSBFVEhfTElOS19TUEVFRF8yMDBHICAg IFJURV9CSVQzMigxNSkgLyoqPCAyMDAgR2JwcyAqLwovKipAfSovCgovKipAe0BuYW1lIExpbmsg c3BlZWQKICogRXRoZXJuZXQgbnVtZXJpYyBsaW5rIHNwZWVkcyBpbiBNYnBzCiAqLwojZGVmaW5l IEVUSF9TUEVFRF9OVU1fTk9ORSAgICAgICAgIDAgLyoqPCBOb3QgZGVmaW5lZCAqLwojZGVmaW5l IEVUSF9TUEVFRF9OVU1fMTBNICAgICAgICAgMTAgLyoqPCAgMTAgTWJwcyAqLwojZGVmaW5lIEVU SF9TUEVFRF9OVU1fMTAwTSAgICAgICAxMDAgLyoqPCAxMDAgTWJwcyAqLwojZGVmaW5lIEVUSF9T UEVFRF9OVU1fMUcgICAgICAgIDEwMDAgLyoqPCAgIDEgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVF RF9OVU1fMl81RyAgICAgIDI1MDAgLyoqPCAyLjUgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9O VU1fNUcgICAgICAgIDUwMDAgLyoqPCAgIDUgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1f MTBHICAgICAgMTAwMDAgLyoqPCAgMTAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fMjBH ICAgICAgMjAwMDAgLyoqPCAgMjAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fMjVHICAg ICAgMjUwMDAgLyoqPCAgMjUgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fNDBHICAgICAg NDAwMDAgLyoqPCAgNDAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fNTBHICAgICAgNTAw MDAgLyoqPCAgNTAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fNTZHICAgICAgNTYwMDAg LyoqPCAgNTYgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fMTAwRyAgICAxMDAwMDAgLyoq PCAxMDAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fMjAwRyAgICAyMDAwMDAgLyoqPCAy MDAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fVU5LTk9XTiBVSU5UMzJfTUFYIC8qKjwg VW5rbm93biAqLwovKipAfSovCgovKioKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYv cnRlX2V0aGRldi5oOjI4MApIdW5rICMzIHN1Y2NlZWRlZCBhdCAzMjMgKG9mZnNldCAtMzMgbGlu ZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAzNjAgKG9mZnNldCAtMzMgbGluZXMpLgpIdW5rICM1 IHN1Y2NlZWRlZCBhdCAzNzQgKG9mZnNldCAtMzMgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBh dCA0MjkgKG9mZnNldCAtMzMgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA0NDQgKG9mZnNl dCAtMzMgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICogQmVsb3cgbWFjcm9z IGFyZSBkZWZpbmVkIGZvciBSU1Mgb2ZmbG9hZCB0eXBlcywgdGhleSBjYW4gYmUgdXNlZCB0bwog KiBmaWxsIHJ0ZV9ldGhfcnNzX2NvbmYucnNzX2hmIG9yIHJ0ZV9mbG93X2FjdGlvbl9yc3MudHlw ZXMuCiAqLwojZGVmaW5lIEVUSF9SU1NfSVBWNCAgICAgICAgICAgICAgIFJURV9CSVQ2NCgyKQoj ZGVmaW5lIEVUSF9SU1NfRlJBR19JUFY0ICAgICAgICAgIFJURV9CSVQ2NCgzKQojZGVmaW5lIEVU SF9SU1NfTk9ORlJBR19JUFY0X1RDUCAgIFJURV9CSVQ2NCg0KQojZGVmaW5lIEVUSF9SU1NfTk9O RlJBR19JUFY0X1VEUCAgIFJURV9CSVQ2NCg1KQojZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY0 X1NDVFAgIFJURV9CSVQ2NCg2KQojZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY0X09USEVSIFJU RV9CSVQ2NCg3KQojZGVmaW5lIEVUSF9SU1NfSVBWNiAgICAgICAgICAgICAgIFJURV9CSVQ2NCg4 KQojZGVmaW5lIEVUSF9SU1NfRlJBR19JUFY2ICAgICAgICAgIFJURV9CSVQ2NCg5KQojZGVmaW5l IEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCAgIFJURV9CSVQ2NCgxMCkKI2RlZmluZSBFVEhfUlNT X05PTkZSQUdfSVBWNl9VRFAgICBSVEVfQklUNjQoMTEpCiNkZWZpbmUgRVRIX1JTU19OT05GUkFH X0lQVjZfU0NUUCAgUlRFX0JJVDY0KDEyKQojZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY2X09U SEVSIFJURV9CSVQ2NCgxMykKI2RlZmluZSBFVEhfUlNTX0wyX1BBWUxPQUQgICAgICAgICBSVEVf QklUNjQoMTQpCiNkZWZpbmUgRVRIX1JTU19JUFY2X0VYICAgICAgICAgICAgUlRFX0JJVDY0KDE1 KQojZGVmaW5lIEVUSF9SU1NfSVBWNl9UQ1BfRVggICAgICAgIFJURV9CSVQ2NCgxNikKI2RlZmlu ZSBFVEhfUlNTX0lQVjZfVURQX0VYICAgICAgICBSVEVfQklUNjQoMTcpCiNkZWZpbmUgRVRIX1JT U19QT1JUICAgICAgICAgICAgICAgUlRFX0JJVDY0KDE4KQojZGVmaW5lIEVUSF9SU1NfVlhMQU4g ICAgICAgICAgICAgIFJURV9CSVQ2NCgxOSkKI2RlZmluZSBFVEhfUlNTX0dFTkVWRSAgICAgICAg ICAgICBSVEVfQklUNjQoMjApCiNkZWZpbmUgRVRIX1JTU19OVkdSRSAgICAgICAgICAgICAgUlRF X0JJVDY0KDIxKQojZGVmaW5lIEVUSF9SU1NfR1RQVSAgICAgICAgICAgICAgIFJURV9CSVQ2NCgy MykKI2RlZmluZSBFVEhfUlNTX0VUSCAgICAgICAgICAgICAgICBSVEVfQklUNjQoMjQpCiNkZWZp bmUgRVRIX1JTU19TX1ZMQU4gICAgICAgICAgICAgUlRFX0JJVDY0KDI1KQojZGVmaW5lIEVUSF9S U1NfQ19WTEFOICAgICAgICAgICAgIFJURV9CSVQ2NCgyNikKI2RlZmluZSBFVEhfUlNTX0VTUCAg ICAgICAgICAgICAgICBSVEVfQklUNjQoMjcpCiNkZWZpbmUgRVRIX1JTU19BSCAgICAgICAgICAg ICAgICAgUlRFX0JJVDY0KDI4KQojZGVmaW5lIEVUSF9SU1NfTDJUUFYzICAgICAgICAgICAgIFJU RV9CSVQ2NCgyOSkKI2RlZmluZSBFVEhfUlNTX1BGQ1AgICAgICAgICAgICAgICBSVEVfQklUNjQo MzApCiNkZWZpbmUgRVRIX1JTU19QUFBPRSAgICAgICAgICAgICAgUlRFX0JJVDY0KDMxKQojZGVm aW5lIEVUSF9SU1NfRUNQUkkgICAgICAgICAgICAgIFJURV9CSVQ2NCgzMikKI2RlZmluZSBFVEhf UlNTX01QTFMgICAgICAgICAgICAgICBSVEVfQklUNjQoMzMpCiNkZWZpbmUgRVRIX1JTU19JUFY0 X0NIS1NVTSAgICAgICAgUlRFX0JJVDY0KDM0KQoKLyoqCiAqIFRoZSBFVEhfUlNTX0w0X0NIS1NV TSB3b3JrcyBvbiBjaGVja3N1bSBmaWVsZCBvZiBhbnkgTDQgaGVhZGVyLgoKZXJyb3I6IHBhdGNo IGZhaWxlZDogbGliL2V0aGRldi9ydGVfZXRoZGV2Lmg6NTEzCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgogKiBjaGVja3N1bSB0eXBlIGZvciBjb25zdHJ1Y3RpbmcgdGhlIHVzZSBvZiBSU1Mg b2ZmbG9hZCBiaXRzLgogKgogKiBEdWUgdG8gYWJvdmUgcmVhc29uLCBzb21lIG9sZCBBUElzIChh bmQgY29uZmlndXJhdGlvbikgZG9uJ3Qgc3VwcG9ydAogKiBFVEhfUlNTX0w0X0NIS1NVTS4gVGhl IHJ0ZV9mbG93IFJTUyBBUEkgc3VwcG9ydHMgaXQuCiAqCiAqIEZvciB0aGUgY2FzZSB0aGF0IGNo ZWNrc3VtIGlzIG5vdCB1c2VkIGluIGFuIFVEUCBoZWFkZXIsCiAqIGl0IHRha2VzIHRoZSByZXNl cnZlZCB2YWx1ZSAwIGFzIGlucHV0IGZvciB0aGUgaGFzaCBmdW5jdGlvbi4KICovCiNkZWZpbmUg RVRIX1JTU19MNF9DSEtTVU0gICAgICAgICAgUlRFX0JJVDY0KDM1KQoKLyoKICogV2UgdXNlIHRo ZSBmb2xsb3dpbmcgbWFjcm9zIHRvIGNvbWJpbmUgd2l0aCBhYm92ZSBFVEhfUlNTXyogZm9yCiAq IG1vcmUgc3BlY2lmaWMgaW5wdXQgc2V0IHNlbGVjdGlvbi4gVGhlc2UgYml0cyBhcmUgZGVmaW5l ZCBzdGFydGluZwogKiBmcm9tIHRoZSBoaWdoIGVuZCBvZiB0aGUgNjQgYml0cy4KICogTm90ZTog SWYgd2UgdXNlIGFib3ZlIEVUSF9SU1NfKiB3aXRob3V0IFNSQy9EU1RfT05MWSwgaXQgcmVwcmVz ZW50cwogKiBib3RoIFNSQyBhbmQgRFNUIGFyZSB0YWtlbiBpbnRvIGFjY291bnQuIElmIFNSQ19P TkxZIGFuZCBEU1RfT05MWSBvZgogKiB0aGUgc2FtZSBsZXZlbCBhcmUgdXNlZCBzaW11bHRhbmVv dXNseSwgaXQgaXMgdGhlIHNhbWUgY2FzZSBhcyBub25lIG9mCiAqIHRoZW0gYXJlIGFkZGVkLgog Ki8KI2RlZmluZSBFVEhfUlNTX0wzX1NSQ19PTkxZICAgICAgICBSVEVfQklUNjQoNjMpCiNkZWZp bmUgRVRIX1JTU19MM19EU1RfT05MWSAgICAgICAgUlRFX0JJVDY0KDYyKQojZGVmaW5lIEVUSF9S U1NfTDRfU1JDX09OTFkgICAgICAgIFJURV9CSVQ2NCg2MSkKI2RlZmluZSBFVEhfUlNTX0w0X0RT VF9PTkxZICAgICAgICBSVEVfQklUNjQoNjApCiNkZWZpbmUgRVRIX1JTU19MMl9TUkNfT05MWSAg ICAgICAgUlRFX0JJVDY0KDU5KQojZGVmaW5lIEVUSF9SU1NfTDJfRFNUX09OTFkgICAgICAgIFJU RV9CSVQ2NCg1OCkKCi8qCiAqIE9ubHkgc2VsZWN0IElQVjYgYWRkcmVzcyBwcmVmaXggYXMgUlNT IGlucHV0IHNldCBhY2NvcmRpbmcgdG8KICogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3Jm YzYwNTIKICogTXVzdCBiZSBjb21iaW5lZCB3aXRoIEVUSF9SU1NfSVBWNiwgRVRIX1JTU19OT05G UkFHX0lQVjZfVURQLAogKiBFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AsIEVUSF9SU1NfTk9ORlJB R19JUFY2X1NDVFAuCiAqLwojZGVmaW5lIFJURV9FVEhfUlNTX0wzX1BSRTMyCSAgIFJURV9CSVQ2 NCg1NykKI2RlZmluZSBSVEVfRVRIX1JTU19MM19QUkU0MAkgICBSVEVfQklUNjQoNTYpCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuaDo1NTMKSHVuayAjMTAgc3Vj Y2VlZGVkIGF0IDYxNCAob2Zmc2V0IC03MiBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCA2 NDkgKG9mZnNldCAtNzIgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgOTY0IChvZmZzZXQg LTcyIGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDk3MyAob2Zmc2V0IC03MiBsaW5lcyku Ckh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAxMDM2IChvZmZzZXQgLTcyIGxpbmVzKS4KSHVuayAjMTUg c3VjY2VlZGVkIGF0IDEwNDggKG9mZnNldCAtNzIgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQg YXQgMTA2OSAob2Zmc2V0IC03MiBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAxMDc4IChv ZmZzZXQgLTcyIGxpbmVzKS4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDExNjIgKG9mZnNldCAtNzIg bGluZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgMTE5MSAob2Zmc2V0IC03MiBsaW5lcykuCkh1 bmsgIzIwIHN1Y2NlZWRlZCBhdCAxMzAyIChvZmZzZXQgLTcyIGxpbmVzKS4KSHVuayAjMjEgc3Vj Y2VlZGVkIGF0IDEzNDMgKG9mZnNldCAtNzIgbGluZXMpLgpIdW5rICMyMiBzdWNjZWVkZWQgYXQg MTM3MyAob2Zmc2V0IC03MiBsaW5lcykuCkh1bmsgIzIzIHN1Y2NlZWRlZCBhdCAxMzk5IChvZmZz ZXQgLTcyIGxpbmVzKS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDE0MTAgKG9mZnNldCAtNzIgbGlu ZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgMTQyOSAob2Zmc2V0IC03MiBsaW5lcykuCkh1bmsg IzI2IHN1Y2NlZWRlZCBhdCAxNDM4IChvZmZzZXQgLTcyIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgkJc3RydWN0IHJ0ZV9ldGhfdm1kcV90eF9jb25mIHZtZHFfdHhfY29uZjsK CQkvKio8IFBvcnQgdm1kcSBUWCBjb25maWd1cmF0aW9uLiAqLwoJfSB0eF9hZHZfY29uZjsgLyoq PCBQb3J0IFRYIERDQiBjb25maWd1cmF0aW9uICh1bmlvbikuICovCgkvKiogQ3VycmVudGx5LFBy aW9yaXR5IEZsb3cgQ29udHJvbChQRkMpIGFyZSBzdXBwb3J0ZWQsaWYgRENCIHdpdGggUEZDCgkg ICAgaXMgbmVlZGVkLGFuZCB0aGUgdmFyaWFibGUgbXVzdCBiZSBzZXQgRVRIX0RDQl9QRkNfU1VQ UE9SVC4gKi8KCXVpbnQzMl90IGRjYl9jYXBhYmlsaXR5X2VuOwoJc3RydWN0IHJ0ZV9mZGlyX2Nv bmYgZmRpcl9jb25mOyAvKio8IEZESVIgY29uZmlndXJhdGlvbi4gREVQUkVDQVRFRCAqLwoJc3Ry dWN0IHJ0ZV9pbnRyX2NvbmYgaW50cl9jb25mOyAvKio8IEludGVycnVwdCBtb2RlIGNvbmZpZ3Vy YXRpb24uICovCn07CgovKioKICogUlggb2ZmbG9hZCBjYXBhYmlsaXRpZXMgb2YgYSBkZXZpY2Uu CiAqLwojZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIDB4MDAwMDAwMDEKI2RlZmlu ZSBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICAweDAwMDAwMDAyCiNkZWZpbmUgREVWX1JYX09G RkxPQURfVURQX0NLU1VNICAgMHgwMDAwMDAwNAojZGVmaW5lIERFVl9SWF9PRkZMT0FEX1RDUF9D S1NVTSAgIDB4MDAwMDAwMDgKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPICAgICAweDAw MDAwMDEwCiNkZWZpbmUgREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCAgMHgwMDAwMDAyMAojZGVm aW5lIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gMHgwMDAwMDA0MAojZGVmaW5lIERF Vl9SWF9PRkZMT0FEX01BQ1NFQ19TVFJJUCAgICAgMHgwMDAwMDA4MAojZGVmaW5lIERFVl9SWF9P RkZMT0FEX0hFQURFUl9TUExJVAkweDAwMDAwMTAwCiNkZWZpbmUgREVWX1JYX09GRkxPQURfVkxB Tl9GSUxURVIJMHgwMDAwMDIwMAojZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5ECTB4 MDAwMDA0MDAKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCQkweDAwMDAyMDAwCi8qKgog KiBUaW1lc3RhbXAgaXMgc2V0IGJ5IHRoZSBkcml2ZXIgaW4gUlRFX01CVUZfRFlORklFTERfVElN RVNUQU1QX05BTUUKICogYW5kIFJURV9NQlVGX0RZTkZMQUdfUlhfVElNRVNUQU1QX05BTUUgaXMg c2V0IGluIG9sX2ZsYWdzLgogKiBUaGUgbWJ1ZiBmaWVsZCBhbmQgZmxhZyBhcmUgcmVnaXN0ZXJl ZCB3aGVuIHRoZSBvZmZsb2FkIGlzIGNvbmZpZ3VyZWQuCiAqLwojZGVmaW5lIERFVl9SWF9PRkZM T0FEX1RJTUVTVEFNUAkweDAwMDA0MDAwCiNkZWZpbmUgREVWX1JYX09GRkxPQURfU0VDVVJJVFkg ICAgICAgICAweDAwMDA4MDAwCiNkZWZpbmUgREVWX1JYX09GRkxPQURfS0VFUF9DUkMJCTB4MDAw MTAwMDAKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNCTB4MDAwMjAwMDAKI2RlZmlu ZSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gIDB4MDAwNDAwMDAKI2RlZmluZSBERVZf UlhfT0ZGTE9BRF9SU1NfSEFTSAkJMHgwMDA4MDAwMAojZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9B RF9CVUZGRVJfU1BMSVQgMHgwMDEwMDAwMAoKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NV TSAoREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKCQkJCSBERVZfUlhfT0ZGTE9BRF9VRFBf Q0tTVU0gfCBcCgkJCQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNKQojZGVmaW5lIERFVl9SWF9P RkZMT0FEX1ZMQU4gKERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfCBcCgkJCSAgICAgREVWX1JY X09GRkxPQURfVkxBTl9GSUxURVIgfCBcCgkJCSAgICAgREVWX1JYX09GRkxPQURfVkxBTl9FWFRF TkQgfCBcCgkJCSAgICAgREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCkKCi8qCiAqIElmIG5ldyBS eCBvZmZsb2FkIGNhcGFiaWxpdGllcyBhcmUgZGVmaW5lZCwgdGhleSBhbHNvIG11c3QgYmUKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oOjEzMzYKSHVuayAjMjgg c3VjY2VlZGVkIGF0IDE1MjkgKG9mZnNldCAtOTMgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQg YXQgMTcyOCAob2Zmc2V0IC05MyBsaW5lcykuCkh1bmsgIzMwIHN1Y2NlZWRlZCBhdCAxODMyIChv ZmZzZXQgLTkzIGxpbmVzKS4KSHVuayAjMzEgc3VjY2VlZGVkIGF0IDE4NDYgKG9mZnNldCAtOTMg bGluZXMpLgpIdW5rICMzMiBzdWNjZWVkZWQgYXQgMTg2MCAob2Zmc2V0IC05MyBsaW5lcykuCkh1 bmsgIzMzIHN1Y2NlZWRlZCBhdCAxODg1IChvZmZzZXQgLTkzIGxpbmVzKS4KSHVuayAjMzQgc3Vj Y2VlZGVkIGF0IDE5MDggKG9mZnNldCAtOTMgbGluZXMpLgpIdW5rICMzNSBzdWNjZWVkZWQgYXQg MjIyOSAob2Zmc2V0IC05MyBsaW5lcykuCkh1bmsgIzM2IHN1Y2NlZWRlZCBhdCAyMjQ2IChvZmZz ZXQgLTkzIGxpbmVzKS4KSHVuayAjMzcgc3VjY2VlZGVkIGF0IDIzNDAgKG9mZnNldCAtOTMgbGlu ZXMpLgpIdW5rICMzOCBzdWNjZWVkZWQgYXQgMjkxNyAob2Zmc2V0IC05MyBsaW5lcykuCkh1bmsg IzM5IHN1Y2NlZWRlZCBhdCAzNDIxIChvZmZzZXQgLTEzNSBsaW5lcykuCkh1bmsgIzQwIHN1Y2Nl ZWRlZCBhdCAzNDQwIChvZmZzZXQgLTEzNSBsaW5lcykuCkh1bmsgIzQxIHN1Y2NlZWRlZCBhdCA1 MzQ5IChvZmZzZXQgLTI1NCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGxpYi9ldGhkZXYvcnRlX2Zs b3cuaC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAyNTkzIChvZmZzZXQgLTI5NyBsaW5lcykuCkNo ZWNraW5nIHBhdGNoIGxpYi9nc28vcnRlX2dzby5jLi4uCkNoZWNraW5nIHBhdGNoIGxpYi9nc28v cnRlX2dzby5oLi4uCkNoZWNraW5nIHBhdGNoIGxpYi9tYnVmL3J0ZV9tYnVmX2NvcmUuaC4uLgpD aGVja2luZyBwYXRjaCBsaWIvbWJ1Zi9ydGVfbWJ1Zl9keW4uaC4uLgpBcHBsaWVkIHBhdGNoIGFw cC9wcm9jLWluZm8vbWFpbi5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGFwcC90ZXN0LWV2ZW50 ZGV2L3Rlc3RfcGVyZl9jb21tb24uYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEu CkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QtZXZlbnRkZXYvdGVzdF9waXBlbGluZV9jb21tb24uYyBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0LWZsb3ctcGVyZi9jb25maWcuaCBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0LXBpcGVsaW5lL2luaXQuYyBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGFwcC90ZXN0LXBtZC9jbWRsaW5lLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBhcHAv dGVzdC1wbWQvY29uZmlnLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBhcHAvdGVzdC1wbWQvY3N1 bW9ubHkuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0LXBtZC9mbG93Z2VuLmMgY2xl YW5seS4KQXBwbGllZCBwYXRjaCBhcHAvdGVzdC1wbWQvbWFjZndkLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBhcHAvdGVzdC1wbWQvbWFjc3dhcF9jb21tb24uaCBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGFwcC90ZXN0LXBtZC9wYXJhbWV0ZXJzLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggYXBw L3Rlc3QtcG1kL3Rlc3RwbWQuYyB3aXRoIDMgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xl YW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVk IGh1bmsgIzQuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5s eS4KUmVqZWN0ZWQgaHVuayAjNy4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFu bHkuCkFwcGx5aW5nIHBhdGNoIGFwcC90ZXN0LXBtZC90ZXN0cG1kLmggd2l0aCAxIHJlamVjdC4u LgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0LXBtZC90eG9ubHkuYyBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0L3Rlc3RfZXRoZGV2X2xpbmsuYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0L3Rlc3RfZXZlbnRfZXRoX3J4X2FkYXB0ZXIuYyBjbGVh bmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0L3Rlc3Rfa25pLmMgY2xlYW5seS4KQXBwbHlpbmcg cGF0Y2ggYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmcuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVj dGVkIGh1bmsgIzEuCkFwcGx5aW5nIHBhdGNoIGFwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nX21v ZGU0LmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBseWluZyBwYXRjaCBh cHAvdGVzdC90ZXN0X2xpbmtfYm9uZGluZ19yc3Njb25mLmMgd2l0aCAxIHJlamVjdC4uLgpIdW5r ICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1 bmsgIzMuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpBcHBseWlu ZyBwYXRjaCBhcHAvdGVzdC90ZXN0X3BtZF9wZXJmLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3Rl ZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0L3ZpcnR1 YWxfcG1kLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL2V2ZW50ZGV2cy9jbnhr LnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMvZXZlbnRkZXZzL29jdGVvbnR4 Mi5yc3QgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvYWZfcGFja2V0LnJz dCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvYm54dC5yc3Qgd2l0aCAx IHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMvbmlj cy9lbmljLnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9mZWF0dXJl cy5yc3QgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvZm0xMGsucnN0IGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2ludGVsX3ZmLnJzdCBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9peGdiZS5yc3QgY2xlYW5seS4KQXBwbHlp bmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL21seDUucnN0IHdpdGggMSByZWplY3QuLi4KSHVuayAj MSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1 aWRlcy9uaWNzL3RhcC5yc3QgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL3Byb2df Z3VpZGUvZ2VuZXJpY19zZWdtZW50YXRpb25fb2ZmbG9hZF9saWIucnN0IGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZG9jL2d1aWRlcy9wcm9nX2d1aWRlL21idWZfbGliLnJzdCBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9wb2xsX21vZGVfZHJ2LnJzdCBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QgY2xlYW5s eS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX3NlY3VyaXR5LnJzdCBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMvcmVsX25vdGVzL2RlcHJlY2F0aW9uLnJz dCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIx XzExLnJzdCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2gg ZG9jL2d1aWRlcy9zYW1wbGVfYXBwX3VnL2lwc2VjX3NlY2d3LnJzdCBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvcnVuX2FwcC5yc3QgY2xlYW5seS4KQXBw bGllZCBwYXRjaCBkcml2ZXJzL2J1cy9kcGFhL2luY2x1ZGUvcHJvY2Vzcy5oIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9jb21tb24vY254ay9yb2NfbnBjLmggY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9hZl9wYWNrZXQvcnRlX2V0aF9hZl9wYWNrZXQuYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2FmX3hkcC9ydGVfZXRoX2FmX3hkcC5jIGNsZWFu bHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYXJrL2Fya19ldGhkZXYuYyBjbGVhbmx5LgpB cHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9hdGxhbnRpYy9hdGxfZXRoZGV2LmMgd2l0aCAxIHJl amVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGRyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9ldGhkZXYuaCBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGRyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9yeHR4LmMgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9hdnAvYXZwX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfZGV2LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJp dmVycy9uZXQvYXhnYmUvYXhnYmVfZXRoZGV2LmMgd2l0aCAyIHJlamVjdHMuLi4KSHVuayAjMSBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMz LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVu ayAjOC4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNSBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBwbGll ZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2F4Z2JlL2F4Z2JlX2V0aGRldi5o IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfbWRpby5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfcnh0eC5jIGNsZWFu bHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueDJ4L2JueDJ4X2V0aGRldi5jIHdpdGgg MSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVh bmx5LgpSZWplY3RlZCBodW5rICMzLgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcg cGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0Lmggd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBo dW5rICMxLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZXRoZGV2LmMgd2l0 aCAyIHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0 ZWQgaHVuayAjNy4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVh bmx5LgpSZWplY3RlZCBodW5rICMxMC4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx MiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzE5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjAgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMyMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MjMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI1IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMjYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzI4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjkgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMzMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMxIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzggYXBwbGll ZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZmxvdy5jIHdp dGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIu Ckh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRf cmVwcy5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yaW5n LmMgd2l0aCAyIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KUmVqZWN0ZWQgaHVuayAjMi4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcnhxLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcnhyLmMgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcnh0eF92ZWNfYXZ4Mi5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4dHhfdmVjX2NvbW1vbi5oIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4dHhfdmVjX25lb24uYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yeHR4X3ZlY19zc2UuYyBjbGVh bmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF90eHIuYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF92bmljLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L3J0ZV9wbWRfYm54dC5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvYm9uZGluZy9ldGhfYm9uZF9wcml2YXRlLmggY2xlYW5seS4KQXBw bGllZCBwYXRjaCBkcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF84MDIzYWQuYyBjbGVh bmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kX2FwaS5j IGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25k X3BtZC5jIHdpdGggMyByZWplY3RzLi4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpSZWplY3Rl ZCBodW5rICMyLgpSZWplY3RlZCBodW5rICMzLgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzE0IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMTUuCkh1bmsgIzE2IGFwcGxp ZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NuMTBrX2V0aGRldi5j IGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY24xMGtfcnRlX2Zsb3cu YyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvY254ay9jbjEwa19yeC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQv Y254ay9jbjEwa190eC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9j bjlrX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbjlr X3J4LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NuOWtfdHguYyBj bGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2LmMgd2l0 aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsg IzkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxOCBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzE5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjAgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMyMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIyIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMjMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzI1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjYgYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBw YXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2Lmggd2l0aCAxIHJlamVjdC4uLgpSZWpl Y3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXZf ZGV2YXJncy5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254a19l dGhkZXZfb3BzLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBj bGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtfbGluay5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvY254ay9jbnhrX3B0cC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvY254ay9jbnhrX3J0ZV9mbG93LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJp dmVycy9uZXQvY3hnYmUvY3hnYmUuaCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEu CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvY3hnYmUvY3hnYmVfZXRoZGV2LmMgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jeGdiZS9jeGdiZV9tYWluLmMgY2xlYW5seS4KQXBw bHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jIHdpdGggNCByZWplY3Rz Li4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuCkh1bmsgIzMgYXBwbGllZCBj bGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNS4KSHVuayAj NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxp ZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjOS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvZHBhYS9kcGFhX2Zsb3cuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2RwYWEyL2Jhc2UvZHBhYTJfaHdfZHBuaS5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNo IGRyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5jIHdpdGggMyByZWplY3RzLi4uClJlamVj dGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpS ZWplY3RlZCBodW5rICM2LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAj OC4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEz IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE5IGFwcGxpZWQgY2xlYW5s eS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9ldGhkZXYuaCBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX3J4dHguYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRldi5oIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvZW1fZXRoZGV2LmMgY2xlYW5seS4KQXBwbHlp bmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvZW1fcnh0eC5jIHdpdGggMSByZWplY3QuLi4KSHVu ayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFw cGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNC4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj OCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhkZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2UxMDAwL2lnYl9wZi5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMv bmV0L2UxMDAwL2lnYl9yeHR4LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpS ZWplY3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEz IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMv bmV0L2VuYS9lbmFfZXRoZGV2LmMgd2l0aCA1IHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2 IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNy4KUmVqZWN0ZWQgaHVuayAjOC4KUmVq ZWN0ZWQgaHVuayAjOS4KUmVqZWN0ZWQgaHVuayAjMTAuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5s eS4KUmVqZWN0ZWQgaHVuayAjMTIuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZW5hL2VuYV9l dGhkZXYuaCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9lbmEvZW5hX3Jzcy5j IHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGll ZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMzLgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5s eS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZW5ldGMvZW5ldGNfZXRoZGV2LmMgd2l0aCAy IHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIuCkh1 bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxpZWQg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9lbmljL2VuaWMuaCBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2VuaWMvZW5pY19ldGhkZXYuYyBjbGVhbmx5LgpBcHBs eWluZyBwYXRjaCBkcml2ZXJzL25ldC9lbmljL2VuaWNfbWFpbi5jIHdpdGggMSByZWplY3QuLi4K SHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMz IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNC4KSHVuayAjNSBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KQXBw bHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZW5pYy9lbmljX3Jlcy5jIHdpdGggMSByZWplY3QuLi4K SHVuayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvZmFpbHNhZmUvZmFpbHNhZmUuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxzYWZlX2ludHIuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRj aCBkcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9vcHMuYyB3aXRoIDEgcmVqZWN0Li4uClJl amVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZm0xMGsvZm0xMGsuaCBj bGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYyB3 aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzYuCkh1bmsgIzcgYXBw bGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzEzLgpIdW5rICMxNCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMTkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHku CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZm0xMGsvZm0xMGtfcnh0eF92ZWMuYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2hpbmljL2Jhc2UvaGluaWNfcG1kX2h3ZGV2LmMg Y2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaGluaWMvaGluaWNfcG1kX2V0aGRl di5jIHdpdGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNC4KSHVuayAj NSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzE0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRfcnguYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2hpbmljL2hpbmljX3BtZF9yeC5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvaG5zMy9obnMzX2RjYi5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMv bmV0L2huczMvaG5zM19ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcg YXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMxOC4KSHVuayAjMTkgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzI0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzI3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjggYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMyOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMwIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzQgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMzNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzcg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMzOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM5IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjNDAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MSBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzQyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDMgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM0NCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQ1IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjNDYgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5z M19ldGhkZXYuaCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNf ZXRoZGV2X3ZmLmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuCkh1bmsgIzQgYXBwbGllZCBj bGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj OSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9obnMzL2huczNfZmxvdy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvaG5zMy9obnMzX3B0cC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9u ZXQvaG5zMy9obnMzX3Jzcy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaG5z My9obnMzX3Jzcy5oIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5z M19yeHR4LmMgd2l0aCAyIHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVj dGVkIGh1bmsgIzIuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xl YW5seS4KUmVqZWN0ZWQgaHVuayAjNS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHguaCBjbGVhbmx5LgpBcHBseWluZyBwYXRj aCBkcml2ZXJzL25ldC9obnMzL2huczNfcnh0eF92ZWMuYyB3aXRoIDIgcmVqZWN0cy4uLgpSZWpl Y3RlZCBodW5rICMxLgpSZWplY3RlZCBodW5rICMyLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYg YXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMxMC4KSHVu ayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEz IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE5IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMjAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzIyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy NCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjYgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMyNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI4IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMjkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzIgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMzMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM3IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMzggYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2k0MGUvaTQwZV9mbG93LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2hhc2guYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KSHVuayAjNCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9wZi5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX3J4dHguYyBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9yeHR4LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9pNDBlL2k0MGVfcnh0eF92ZWNfYXZ4NTEyLmMgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfcnh0eF92ZWNfY29tbW9uLmggY2xlYW5seS4KQXBw bGllZCBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfdmZfcmVwcmVzZW50b3IuYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zi5oIGNsZWFubHkuCkFwcGx5aW5n IHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1 bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5 LgpSZWplY3RlZCBodW5rICM4LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFu bHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmX2hhc2guYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4LmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eC5oIGNsZWFubHkuCkFwcGx5aW5nIHBh dGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19hdngyLmMgd2l0aCAyIHJlamVjdHMu Li4KUmVqZWN0ZWQgaHVuayAjMS4KUmVqZWN0ZWQgaHVuayAjMi4KQXBwbHlpbmcgcGF0Y2ggZHJp dmVycy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX2F2eDUxMi5jIHdpdGggMiByZWplY3RzLi4uClJl amVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5 LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfc3NlLmMgd2l0 aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0 L2ljZS9pY2VfZGNmLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2lj ZV9kY2ZfZXRoZGV2LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0 IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNS4KSHVuayAjNiBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KQXBw bHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9kY2ZfdmZfcmVwcmVzZW50b3IuYyB3aXRo IDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xl YW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUg YXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVk IGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2VfZXRoZGV2LmMgd2l0 aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzE0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMxNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTgg YXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMxOS4KSHVuayAjMjAgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMyMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIyIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMjMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzI1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzI4IGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvaWNlL2ljZV9oYXNoLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aWNlL2ljZV9yeHR4LmMgd2l0aCAzIHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0 ZWQgaHVuayAjNC4KUmVqZWN0ZWQgaHVuayAjNS4KUmVqZWN0ZWQgaHVuayAjNi4KSHVuayAjNyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2ljZS9pY2Vfcnh0eF92ZWNfYXZ4Mi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4X3ZlY19hdng1MTIuYyBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0eF92ZWNfY29tbW9uLmggY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX3J4dHhfdmVjX3NzZS5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWdjL2lnY19ldGhkZXYuYyBjbGVhbmx5LgpBcHBseWluZyBw YXRjaCBkcml2ZXJzL25ldC9pZ2MvaWdjX2V0aGRldi5oIHdpdGggMSByZWplY3QuLi4KUmVqZWN0 ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pZ2MvaWdjX3R4cnguYyBjbGVh bmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9pb25pYy9pb25pY19ldGhkZXYuYyB3aXRo IDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xl YW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUg YXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pb25pYy9p b25pY19ldGhkZXYuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2lvbmljL2lv bmljX2xpZi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaW9uaWMvaW9uaWNf cnh0eC5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lwbjNrZS9pcG4za2Vf cmVwcmVzZW50b3IuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpS ZWplY3RlZCBodW5rICMyLgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9u ZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9peGdiZS9peGdiZV9mZGlyLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9p eGdiZS9peGdiZV9mbG93LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9peGdi ZS9peGdiZV9pcHNlYy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfcGYuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdi ZV9yeHR4LmMgd2l0aCAzIHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVu ayAjNC4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzE0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMTggYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIw IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzIzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjQgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI2IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMjcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyOCBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzI5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMz MSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzMgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMzNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNyBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzkgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM0MCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NDIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQ0IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjNDUgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0 Ni4KSHVuayAjNDcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0OCBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzQ5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNTAgYXBwbGllZCBjbGVhbmx5LgpSZWplY3Rl ZCBodW5rICM1MS4KSHVuayAjNTIgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L2l4Z2JlL2l4Z2JlX3J4dHhfdmVjX2NvbW1vbi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfdG0uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2l4Z2JlL2l4Z2JlX3ZmX3JlcHJlc2VudG9yLmMgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9peGdiZS9ydGVfcG1kX2l4Z2JlLmMgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9peGdiZS9ydGVfcG1kX2l4Z2JlLmggY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9rbmkvcnRlX2V0aF9rbmkuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2xpcXVpZGlvL2xpb19ldGhkZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L21lbWlmL21lbWlmX3NvY2tldC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvbWVtaWYvcnRlX2V0aF9tZW1pZi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvbWx4NC9tbHg0X2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NC9tbHg0X2Zsb3cuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0 L21seDQvbWx4NF9pbnRyLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4 NC9tbHg0X3J4cS5jIHdpdGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVk IGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzUuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4 NC9tbHg0X3R4cS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9saW51 eC9tbHg1X2V0aGRldl9vcy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4 NS9saW51eC9tbHg1X29zLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1 L21seDUuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NS5oIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2RlZnMuaCBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9ldGhkZXYuYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5oIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3dfZHYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93X3ZlcmJzLmMgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9tbHg1L21seDVfcnNzLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJp dmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jIHdpdGggNCByZWplY3RzLi4uClJlamVjdGVkIGh1bmsg IzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KUmVq ZWN0ZWQgaHVuayAjNC4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzYu ClJlamVjdGVkIGh1bmsgIzcuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L21seDUvbWx4NV9yeHR4X3ZlYy5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NS9tbHg1X3R4LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NS9tbHg1X3R4cS5jIHdpdGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsg IzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVu ayAjNC4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfdmxhbi5jIGNsZWFubHku CkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvd2luZG93cy9tbHg1X29zLmMgd2l0aCAx IHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9t dm5ldGEvbXZuZXRhX2V0aGRldi5jIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNs ZWFubHkuClJlamVjdGVkIGh1bmsgIzIuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0 IGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZuZXRhL212bmV0 YV9ldGhkZXYuaCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvbXZuZXRhL212bmV0YV9yeHR4LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvbXZwcDIvbXJ2bF9ldGhkZXYuYyB3aXRoIDIgcmVqZWN0cy4uLgpSZWpl Y3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNs ZWFubHkuClJlamVjdGVkIGh1bmsgIzQuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGll ZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFwcGxpZWQgY2xl YW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9uZXR2c2MvaG5fZXRoZGV2LmMgY2xlYW5s eS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9uZXR2c2MvaG5fcm5kaXMuYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L25mYi9uZmJfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9uZmIvbmZiX3J4LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbmZwL25mcF9jb21tb24uYyB3aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMu Ckh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxp ZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjOS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFw cGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5j IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXZfdmYuYyBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L25nYmUvbmdiZV9ldGhkZXYuYyBjbGVh bmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9udWxsLmMgY2xlYW5s eS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgvb2N0ZW9udHhfZXRoZGV2LmMg d2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpSZWpl Y3RlZCBodW5rICM3LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNs ZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRl di5oIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRjaCBkcml2 ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXZfb3BzLmMgY2xlYW5seS4KQXBwbHlpbmcg cGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2LmMgd2l0aCAxIHJlamVjdC4u LgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzkuCkh1bmsgIzEw IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBs aWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0 aGRldi5oIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXZfZGV2YXJncy5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2X29wcy5jIGNsZWFubHku CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2X3NlYy5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZmxvdy5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZmxvd19jdHJs LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9mbG93 X3BhcnNlLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4 Ml9saW5rLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4 Ml9tY2FzdC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290 eDJfcHRwLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4 Ml9yc3MuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgy X3J4LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml90 eC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfdmxh bi5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4X2VwL290eF9l cF9ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGx5aW5nIHBh dGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4X2VwL290eF9lcF9yeHR4LmMgd2l0aCAxIHJlamVjdC4u LgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVj dGVkIGh1bmsgIzMuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvcGNhcC9wY2FwX2V0aGRldi5j IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvcGZlL3BmZV9ldGhkZXYuYyBjbGVh bmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3FlZGUvYmFzZS9tY3BfcHVibGljLmggY2xl YW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jIHdpdGgg MiByZWplY3RzLi4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcg YXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAj OS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMxMS4KSHVuayAjMTIg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE0IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTggYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIwIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMjEgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3FlZGUvcWVk ZV9maWx0ZXIuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9xZWRlL3FlZGVf cnh0eC5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9xZWRlL3FlZGVfcnh0eC5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvcmluZy9ydGVfZXRoX3JpbmcuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L3NmYy9zZmMuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2Zj X2VmMTAwX3J4LmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBseWluZyBw YXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTAwX3R4LmMgd2l0aCAxIHJlamVjdC4uLgpSZWpl Y3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMF9lc3Ni X3J4LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTBfcngu YyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMF90eC5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19ldGhkZXYuYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19wb3J0LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19yeC5jIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xl YW5seS4KUmVqZWN0ZWQgaHVuayAjNC4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYg YXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L3NmYy9zZmNfdHguYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3NvZnRu aWMvcnRlX2V0aF9zb2Z0bmljLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9z emVkYXRhMi9ydGVfZXRoX3N6ZWRhdGEyLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC90YXAvcnRlX2V0aF90YXAuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0 L3RhcC90YXBfcnNzLmggY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdGh1bmRl cngvbmljdmZfZXRoZGV2LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBw bGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpSZWpl Y3RlZCBodW5rICMxMy4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0 L3RodW5kZXJ4L25pY3ZmX2V0aGRldi5oIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAj MS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2LmMgd2l0aCAy IHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTYgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMxNy4KSHVuayAjMTggYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIwIGFwcGxpZWQgY2xlYW5s eS4KUmVqZWN0ZWQgaHVuayAjMjEuCkh1bmsgIzIyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjMg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI1IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMjYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzI4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjkgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMzMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMxIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM0 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzggYXBwbGllZCBj bGVhbmx5LgpIdW5rICMzOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQwIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNDEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzQzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDQgYXBwbGllZCBjbGVhbmx5LgpBcHBseWlu ZyBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9ldGhkZXYuaCB3aXRoIDEgcmVqZWN0Li4u ClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVf ZXRoZGV2X3ZmLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdi ZV9mZGlyLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9m bG93LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9pcHNl Yy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfcGYuYyBj bGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9yeHR4LmMgd2l0 aCA0IHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIu Ckh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzE0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTggYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMxOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIwIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMjEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzIzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjQgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMyNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjcg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMyOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI5IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMzAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMSBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzMgYXBwbGllZCBjbGVhbmx5 LgpSZWplY3RlZCBodW5rICMzNC4KSHVuayAjMzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzggYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMzOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQwIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNDEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzQzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDQgYXBwbGllZCBjbGVhbmx5LgpSZWpl Y3RlZCBodW5rICM0NS4KSHVuayAjNDYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0NyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzQ4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDkgYXBwbGllZCBjbGVh bmx5LgpSZWplY3RlZCBodW5rICM1MC4KSHVuayAjNTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1 MiBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVf cnh0eC5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfdG0u YyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3Zob3N0L3J0ZV9ldGhfdmhvc3Qu YyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRl di5jIHdpdGggMiByZWplY3RzLi4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBj bGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHku ClJlamVjdGVkIGh1bmsgIzcuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KUmVq ZWN0ZWQgaHVuayAjMTYuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0 M19ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYu aCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19yeHR4 LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvYmJkZXZfYXBwL21haW4uYyB3aXRo IDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpB cHBseWluZyBwYXRjaCBleGFtcGxlcy9ib25kL21haW4uYyB3aXRoIDEgcmVqZWN0Li4uClJlamVj dGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xl YW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvZGlzdHJpYnV0b3IvbWFpbi5jIHdpdGggMSBy ZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZXhhbXBsZXMvZXRodG9vbC9ldGh0b29sLWFwcC9tYWluLmMgY2xlYW5seS4KQXBw bGllZCBwYXRjaCBleGFtcGxlcy9ldGh0b29sL2xpYi9ydGVfZXRodG9vbC5jIGNsZWFubHkuCkFw cGx5aW5nIHBhdGNoIGV4YW1wbGVzL2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl9n ZW5lcmljLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxp ZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvZXZlbnRkZXZfcGlwZWxpbmUvcGlw ZWxpbmVfd29ya2VyX3R4LmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5r ICMyIGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9mbG93X2NsYXNzaWZ5 L2Zsb3dfY2xhc3NpZnkuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2Zsb3dfZmls dGVyaW5nL21haW4uYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9pb2F0L2lvYXRm d2QuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBj bGVhbmx5LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9pcF9mcmFnbWVudGF0aW9uL21haW4uYyB3 aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5 LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9pcF9waXBlbGluZS9saW5rLmMgd2l0aCAxIHJlamVj dC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGV4YW1wbGVz L2lwX3JlYXNzZW1ibHkvbWFpbi5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4K SHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpBcHBseWlu ZyBwYXRjaCBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy1zZWNndy5jIHdpdGggMiByZWplY3Rz Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFw cGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNC4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBleGFtcGxlcy9pcHNlYy1zZWNndy9zYS5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNo IGV4YW1wbGVzL2lwdjRfbXVsdGljYXN0L21haW4uYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVk IGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVz L2tuaS9tYWluLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvbDJmd2QtY3J5cHRv L21haW4uYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxl cy9sMmZ3ZC1ldmVudC9sMmZ3ZF9jb21tb24uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1w bGVzL2wyZndkLWV2ZW50L21haW4uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2wy ZndkLWpvYnN0YXRzL21haW4uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2wyZndk LWtlZXBhbGl2ZS9tYWluLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9sMmZ3ZC9t YWluLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvbDNmd2QtYWNsL21haW4uYyB3 aXRoIDMgcmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5s eS4KUmVqZWN0ZWQgaHVuayAjMy4KUmVqZWN0ZWQgaHVuayAjNC4KQXBwbHlpbmcgcGF0Y2ggZXhh bXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jIHdpdGggMyByZWplY3RzLi4uClJlamVjdGVkIGh1bmsg IzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMzLgpSZWplY3RlZCBo dW5rICM0LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9sM2Z3ZC1wb3dlci9tYWluLmMgd2l0aCAz IHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJl amVjdGVkIGh1bmsgIzMuClJlamVjdGVkIGh1bmsgIzQuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMv bDNmd2QvbDNmd2RfZXZlbnQuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9sM2Z3 ZC9tYWluLmMgd2l0aCAzIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBs aWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuClJlamVjdGVkIGh1bmsgIzQuCkFwcGxpZWQg cGF0Y2ggZXhhbXBsZXMvbGlua19zdGF0dXNfaW50ZXJydXB0L21haW4uYyBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGV4YW1wbGVzL211bHRpX3Byb2Nlc3MvY2xpZW50X3NlcnZlcl9tcC9tcF9zZXJ2 ZXIvaW5pdC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvbXVsdGlfcHJvY2Vzcy9z eW1tZXRyaWNfbXAvbWFpbi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvbnRiL250 Yl9md2QuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL3BhY2tldF9vcmRlcmluZy9t YWluLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvcGVyZm9ybWFuY2UtdGhyZWFk L2wzZndkLXRocmVhZC9tYWluLmMgd2l0aCAzIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4K SHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuClJlamVjdGVkIGh1bmsg IzQuCkFwcGx5aW5nIHBhdGNoIGV4YW1wbGVzL3BpcGVsaW5lL29iai5jIHdpdGggMSByZWplY3Qu Li4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBw bGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL3B0 cGNsaWVudC9wdHBjbGllbnQuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9xb3Nf bWV0ZXIvbWFpbi5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4 YW1wbGVzL3Fvc19zY2hlZC9pbml0LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9y eHR4X2NhbGxiYWNrcy9tYWluLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9zZXJ2 ZXJfbm9kZV9lZmQvc2VydmVyL2luaXQuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVz L3NrZWxldG9uL2Jhc2ljZndkLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy92aG9z dC9tYWluLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy92bV9wb3dlcl9tYW5hZ2Vy L21haW4uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL3ZtZHEvbWFpbi5jIGNsZWFu bHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvdm1kcV9kY2IvbWFpbi5jIGNsZWFubHkuCkFwcGx5 aW5nIHBhdGNoIGxpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oIHdpdGggMSByZWplY3QuLi4KUmVq ZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGxp Yi9ldGhkZXYvcnRlX2V0aGRldi5jIHdpdGggMyByZWplY3RzLi4uCkh1bmsgIzEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHku ClJlamVjdGVkIGh1bmsgIzQuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5r ICM2LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEx IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBs aWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzE0LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMxOCBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGxpYi9ldGhkZXYvcnRlX2V0aGRl di5oIHdpdGggNCByZWplY3RzLi4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBo dW5rICMyLgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzguClJlamVjdGVkIGh1bmsgIzkuCkh1 bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx MiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzE5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjAgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMyMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MjMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI1IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMjYgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMy Ny4KSHVuayAjMjggYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyOSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzMwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMz MiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzQgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMzNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM2IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzOCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDAgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM0MSBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL2V0aGRldi9ydGVfZmxv dy5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL2dzby9ydGVfZ3NvLmMgY2xlYW5seS4KQXBw bGllZCBwYXRjaCBsaWIvZ3NvL3J0ZV9nc28uaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9t YnVmL3J0ZV9tYnVmX2NvcmUuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9tYnVmL3J0ZV9t YnVmX2R5bi5oIGNsZWFubHkuCmRpZmYgYS9hcHAvdGVzdC1ldmVudGRldi90ZXN0X3BlcmZfY29t bW9uLmMgYi9hcHAvdGVzdC1ldmVudGRldi90ZXN0X3BlcmZfY29tbW9uLmMJKHJlamVjdGVkIGh1 bmtzKQpAQCAtNjY4LDEzICs2NjgsMTMgQEAgcGVyZl9ldGhkZXZfc2V0dXAoc3RydWN0IGV2dF90 ZXN0ICp0ZXN0LCBzdHJ1Y3QgZXZ0X29wdGlvbnMgKm9wdCkKIAlzdHJ1Y3QgdGVzdF9wZXJmICp0 ID0gZXZ0X3Rlc3RfcHJpdih0ZXN0KTsKIAlzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9 IHsKIAkJLnJ4bW9kZSA9IHsKLQkJCS5tcV9tb2RlID0gRVRIX01RX1JYX1JTUywKKwkJCS5tcV9t b2RlID0gUlRFX0VUSF9NUV9SWF9SU1MsCiAJCQkuc3BsaXRfaGRyX3NpemUgPSAwLAogCQl9LAog CQkucnhfYWR2X2NvbmYgPSB7CiAJCQkucnNzX2NvbmYgPSB7CiAJCQkJLnJzc19rZXkgPSBOVUxM LAotCQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQLAorCQkJCS5yc3NfaGYgPSBSVEVfRVRIX1JTU19J UCwKIAkJCX0sCiAJCX0sCiAJfTsKZGlmZiBhL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmMgYi9hcHAv dGVzdC1wbWQvdGVzdHBtZC5jCShyZWplY3RlZCBodW5rcykKQEAgLTQ1OSwxMiArNDU5LDEyIEBA IGxjb3JlaWRfdCBsYXRlbmN5c3RhdHNfbGNvcmVfaWQgPSAtMTsKIHN0cnVjdCBydGVfZXRoX3J4 bW9kZSByeF9tb2RlOwogCiBzdHJ1Y3QgcnRlX2V0aF90eG1vZGUgdHhfbW9kZSA9IHsKLQkub2Zm bG9hZHMgPSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSwKKwkub2ZmbG9hZHMgPSBSVEVf RVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUsCiB9OwogCi1zdHJ1Y3QgcnRlX2ZkaXJfY29u ZiBmZGlyX2NvbmYgPSB7CitzdHJ1Y3QgcnRlX2V0aF9mZGlyX2NvbmYgZmRpcl9jb25mID0gewog CS5tb2RlID0gUlRFX0ZESVJfTU9ERV9OT05FLAotCS5wYmFsbG9jID0gUlRFX0ZESVJfUEJBTExP Q182NEssCisJLnBiYWxsb2MgPSBSVEVfRVRIX0ZESVJfUEJBTExPQ182NEssCiAJLnN0YXR1cyA9 IFJURV9GRElSX1JFUE9SVF9TVEFUVVMsCiAJLm1hc2sgPSB7CiAJCS52bGFuX3RjaV9tYXNrID0g MHhGRkVGLApAQCAtMTU3Miw5ICsxNTcyLDkgQEAgaW5pdF9jb25maWdfcG9ydF9vZmZsb2Fkcyhw b3J0aWRfdCBwaWQsIHVpbnQzMl90IHNvY2tldF9pZCkKIAlpZiAocmV0ICE9IDApCiAJCXJ0ZV9l eGl0KEVYSVRfRkFJTFVSRSwgInJ0ZV9ldGhfZGV2X2luZm9fZ2V0KCkgZmFpbGVkXG4iKTsKIAot CWlmICghKHBvcnQtPmRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9PRkZMT0FEX01C VUZfRkFTVF9GUkVFKSkKKwlpZiAoIShwb3J0LT5kZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBS VEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpKQogCQlwb3J0LT5kZXZfY29uZi50eG1v ZGUub2ZmbG9hZHMgJj0KLQkJCX5ERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwkJCX5S VEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAKIAkvKiBBcHBseSBSeCBvZmZsb2Fk cyBjb25maWd1cmF0aW9uICovCiAJZm9yIChpID0gMDsgaSA8IHBvcnQtPmRldl9pbmZvLm1heF9y eF9xdWV1ZXM7IGkrKykKQEAgLTM3NTEsMTcgKzM3NTEsMTcgQEAgaW5pdF9wb3J0X2NvbmZpZyh2 b2lkKQogCQkJaWYgKHBvcnQtPmRldl9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAh PSAwKSB7CiAJCQkJcG9ydC0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgPQogCQkJCQkoZW51bSBy dGVfZXRoX3J4X21xX21vZGUpCi0JCQkJCQkocnhfbXFfbW9kZSAmIEVUSF9NUV9SWF9SU1MpOwor CQkJCQkJKHJ4X21xX21vZGUgJiBSVEVfRVRIX01RX1JYX1JTUyk7CiAJCQl9IGVsc2UgewotCQkJ CXBvcnQtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkU7CisJCQkJcG9y dC0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX05PTkU7CiAJCQkJcG9y dC0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICY9Ci0JCQkJCQl+REVWX1JYX09GRkxPQURfUlNT X0hBU0g7CisJCQkJCQl+UlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCiAJCQkJZm9yIChp ID0gMDsKIAkJCQkgICAgIGkgPCBwb3J0LT5kZXZfaW5mby5uYl9yeF9xdWV1ZXM7CiAJCQkJICAg ICBpKyspCiAJCQkJCXBvcnQtPnJ4X2NvbmZbaV0ub2ZmbG9hZHMgJj0KLQkJCQkJCX5ERVZfUlhf T0ZGTE9BRF9SU1NfSEFTSDsKKwkJCQkJCX5SVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0g7CiAJ CQl9CiAJCX0KIApkaWZmIGEvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaCBiL2FwcC90ZXN0LXBtZC90 ZXN0cG1kLmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtNDkxLDcgKzQ5MSw3IEBAIGV4dGVybiBsY29y ZWlkX3QgYml0cmF0ZV9sY29yZV9pZDsKIGV4dGVybiB1aW50OF90IGJpdHJhdGVfZW5hYmxlZDsK ICNlbmRpZgogCi1leHRlcm4gc3RydWN0IHJ0ZV9mZGlyX2NvbmYgZmRpcl9jb25mOworZXh0ZXJu IHN0cnVjdCBydGVfZXRoX2ZkaXJfY29uZiBmZGlyX2NvbmY7CiAKIGV4dGVybiB1aW50MzJfdCBt YXhfcnhfcGt0X2xlbjsKIApkaWZmIGEvYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmcuYyBiL2Fw cC90ZXN0L3Rlc3RfbGlua19ib25kaW5nLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTM0LDExICsx MzQsMTEgQEAgc3RhdGljIHVpbnQxNl90IHZsYW5faWQgPSAweDEwMDsKIAogc3RhdGljIHN0cnVj dCBydGVfZXRoX2NvbmYgZGVmYXVsdF9wbWRfY29uZiA9IHsKIAkucnhtb2RlID0gewotCQkubXFf bW9kZSA9IEVUSF9NUV9SWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfTk9ORSwK IAkJLnNwbGl0X2hkcl9zaXplID0gMCwKIAl9LAogCS50eG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0g RVRIX01RX1RYX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9UWF9OT05FLAogCX0sCiAJ LmxwYmtfbW9kZSA9IDAsCiB9OwpkaWZmIGEvYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdfbW9k ZTQuYyBiL2FwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nX21vZGU0LmMJKHJlamVjdGVkIGh1bmtz KQpAQCAtMTA3LDExICsxMDcsMTEgQEAgc3RhdGljIHN0cnVjdCBsaW5rX2JvbmRpbmdfdW5pdHRl c3RfcGFyYW1zIHRlc3RfcGFyYW1zICA9IHsKIAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYg ZGVmYXVsdF9wbWRfY29uZiA9IHsKIAkucnhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9S WF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfTk9ORSwKIAkJLnNwbGl0X2hkcl9z aXplID0gMCwKIAl9LAogCS50eG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUs CisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9UWF9OT05FLAogCX0sCiAJLmxwYmtfbW9kZSA9IDAs CiB9OwpkaWZmIGEvYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdfcnNzY29uZi5jIGIvYXBwL3Rl c3QvdGVzdF9saW5rX2JvbmRpbmdfcnNzY29uZi5jCShyZWplY3RlZCBodW5rcykKQEAgLTgwLDI3 ICs4MCwyNyBAQCBzdGF0aWMgc3RydWN0IGxpbmtfYm9uZGluZ19yc3Njb25mX3VuaXR0ZXN0X3Bh cmFtcyB0ZXN0X3BhcmFtcyAgPSB7CiAgKi8KIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIGRl ZmF1bHRfcG1kX2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfUlhf Tk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX05PTkUsCiAJCS5zcGxpdF9oZHJfc2l6 ZSA9IDAsCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAor CQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogCS5scGJrX21vZGUgPSAwLAog fTsKIAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcnNzX3BtZF9jb25mID0gewogCS5yeG1v ZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUgPSBSVEVfRVRI X01RX1JYX1JTUywKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKIAl9LAogCS50eG1vZGUgPSB7Ci0J CS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9UWF9O T05FLAogCX0sCiAJLnJ4X2Fkdl9jb25mID0gewogCQkucnNzX2NvbmYgPSB7CiAJCQkucnNzX2tl eSA9IE5VTEwsCi0JCQkucnNzX2hmID0gRVRIX1JTU19JUFY2LAorCQkJLnJzc19oZiA9IFJURV9F VEhfUlNTX0lQVjYsCiAJCX0sCiAJfSwKIAkubHBia19tb2RlID0gMCwKZGlmZiBhL2FwcC90ZXN0 L3Rlc3RfcG1kX3BlcmYuYyBiL2FwcC90ZXN0L3Rlc3RfcG1kX3BlcmYuYwkocmVqZWN0ZWQgaHVu a3MpCkBAIC02MiwxMSArNjIsMTEgQEAgc3RhdGljIHN0cnVjdCBydGVfZXRoZXJfYWRkciBwb3J0 c19ldGhfYWRkcltSVEVfTUFYX0VUSFBPUlRTXTsKIAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2Nv bmYgcG9ydF9jb25mID0gewogCS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX05P TkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9SWF9OT05FLAogCQkuc3BsaXRfaGRyX3NpemUg PSAwLAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJ Lm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfSwKIAkubHBia19tb2RlID0gMSwgIC8q IGVuYWJsZSBsb29wYmFjayAqLwogfTsKZGlmZiBhL2RvYy9ndWlkZXMvbmljcy9ibnh0LnJzdCBi L2RvYy9ndWlkZXMvbmljcy9ibnh0LnJzdAkocmVqZWN0ZWQgaHVua3MpCkBAIC04NzcsMjEgKzg3 NywyMSBAQCBwcm9jZXNzaW5nLiBUaGlzIGltcHJvdmVkIHBlcmZvcm1hbmNlIGlzIGRlcml2ZWQg ZnJvbSBhIG51bWJlciBvZiBvcHRpbWl6YXRpb25zOgogICAgwqAqIFRYOiBvbmx5IHRoZSBmb2xs b3dpbmcgcmVkdWNlZCBzZXQgb2YgdHJhbnNtaXQgb2ZmbG9hZHMgaXMgc3VwcG9ydGVkIGluCiAg ICAgICB2ZWN0b3IgbW9kZTo6CiAKLSAgIMKgICAgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZS RUUKKyAgIMKgICAgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFCiAKICAgIMKgKiBS WDogb25seSB0aGUgZm9sbG93aW5nIHJlZHVjZWQgc2V0IG9mIHJlY2VpdmUgb2ZmbG9hZHMgaXMg c3VwcG9ydGVkIGluCiAgICAgICB2ZWN0b3IgbW9kZSAobm90ZSB0aGF0IGp1bWJvIE1UVSBpcyBh bGxvd2VkIG9ubHkgd2hlbiB0aGUgTVRVIHNldHRpbmcKLSAgICAgIGRvZXMgbm90IHJlcXVpcmUg YERFVl9SWF9PRkZMT0FEX1NDQVRURVJgIHRvIGJlIGVuYWJsZWQpOjoKLQotICAgwqAgICBERVZf UlhfT0ZGTE9BRF9WTEFOX1NUUklQCi0gICDCoCAgIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDCi0g ICDCoCAgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0KLSAgIMKgICAgREVWX1JYX09GRkxPQURf VURQX0NLU1VNCi0gICDCoCAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTQotICAgwqAgICBERVZf UlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNCi0gICDCoCAgIERFVl9SWF9PRkZMT0FEX09VVEVS X1VEUF9DS1NVTQotICAgwqAgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSAotICAgwqAgICBERVZf UlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUgorICAgICAgZG9lcyBub3QgcmVxdWlyZSBgUlRFX0VUSF9S WF9PRkZMT0FEX1NDQVRURVJgIHRvIGJlIGVuYWJsZWQpOjoKKworICAgwqAgICBSVEVfRVRIX1JY X09GRkxPQURfVkxBTl9TVFJJUAorICAgwqAgICBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMK KyAgIMKgICAgUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0KKyAgIMKgICAgUlRFX0VUSF9S WF9PRkZMT0FEX1VEUF9DS1NVTQorICAgwqAgICBSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VN CisgICDCoCAgIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNCisgICDCoCAgIFJU RV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0KKyAgIMKgICAgUlRFX0VUSF9SWF9PRkZM T0FEX1JTU19IQVNICisgICDCoCAgIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUgogCiBU aGUgQk5YVCBWZWN0b3IgUE1EIGlzIGVuYWJsZWQgaW4gRFBESyBidWlsZHMgYnkgZGVmYXVsdC4g VGhlIGRlY2lzaW9uIHRvIGVuYWJsZQogdmVjdG9yIHByb2Nlc3NpbmcgaXMgbWFkZSBhdCBydW4t dGltZSB3aGVuIHRoZSBwb3J0IGlzIHN0YXJ0ZWQ7IGlmIG5vIHRyYW5zbWl0CmRpZmYgYS9kb2Mv Z3VpZGVzL25pY3MvbWx4NS5yc3QgYi9kb2MvZ3VpZGVzL25pY3MvbWx4NS5yc3QJKHJlamVjdGVk IGh1bmtzKQpAQCAtNjA3LDcgKzYwNyw3IEBAIERyaXZlciBvcHRpb25zCiAgIHNtYWxsLXBhY2tl dCB0cmFmZmljLgogCiAgIFdoZW4gTVBSUSBpcyBlbmFibGVkLCBNVFUgY2FuIGJlIGxhcmdlciB0 aGFuIHRoZSBzaXplIG9mCi0gIHVzZXItcHJvdmlkZWQgbWJ1ZiBldmVuIGlmIERFVl9SWF9PRkZM T0FEX1NDQVRURVIgaXNuJ3QgZW5hYmxlZC4gUE1EIHdpbGwKKyAgdXNlci1wcm92aWRlZCBtYnVm IGV2ZW4gaWYgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgaXNuJ3QgZW5hYmxlZC4gUE1EIHdp bGwKICAgY29uZmlndXJlIGxhcmdlIHN0cmlkZSBzaXplIGVub3VnaCB0byBhY2NvbW1vZGF0ZSBN VFUgYXMgbG9uZyBhcwogICBkZXZpY2UgYWxsb3dzLiBOb3RlIHRoYXQgdGhpcyBjYW4gd2FzdGUg c3lzdGVtIG1lbW9yeSBjb21wYXJlZCB0byBlbmFibGluZyBSeAogICBzY2F0dGVyIGFuZCBtdWx0 aS1zZWdtZW50IHBhY2tldC4KZGlmZiBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFf MTEucnN0IGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMV8xMS5yc3QJKHJlamVjdGVk IGh1bmtzKQpAQCAtMzY4LDYgKzM2OCw5IEBAIEFCSSBDaGFuZ2VzCiAgIHRvIGJlIHRyYW5zcGFy ZW50IGZvciBib3RoIHVzZXJzIChubyBjaGFuZ2VzIGluIHVzZXIgYXBwIGlzIHJlcXVpcmVkKSBh bmQKICAgUE1EIGRldmVsb3BlcnMgKG5vIGNoYW5nZXMgaW4gUE1EIGlzIHJlcXVpcmVkKS4KIAor KiBldGhkZXY6IEFsbCBlbnVtcyAmIG1hY3JvcyB1cGRhdGVkIHRvIGhhdmUgYGBSVEVfRVRIYGAg cHJlZml4IGFuZCBzdHJ1Y3R1cmVzCisgIHVwZGF0ZWQgdG8gaGF2ZSBgYHJ0ZV9ldGhgYCBwcmVm aXguIERQREsgY29tcG9uZW50cyB1cGRhdGVkIHRvIHVzZSBuZXcgbmFtZXMuCisKIAogS25vd24g SXNzdWVzCiAtLS0tLS0tLS0tLS0KZGlmZiBhL2RyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9ldGhk ZXYuYyBiL2RyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3Mp CkBAIC0xNTQsMjAgKzE1NCwyMCBAQCBzdGF0aWMgc3RydWN0IHJ0ZV9wY2lfZHJpdmVyIHJ0ZV9h dGxfcG1kID0gewogCS5yZW1vdmUgPSBldGhfYXRsX3BjaV9yZW1vdmUsCiB9OwogCi0jZGVmaW5l IEFUTF9SWF9PRkZMT0FEUyAoREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCBcCi0JCQl8IERFVl9S WF9PRkZMT0FEX0lQVjRfQ0tTVU0gXAotCQkJfCBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gXAot CQkJfCBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gXAotCQkJfCBERVZfUlhfT0ZGTE9BRF9NQUNT RUNfU1RSSVAgXAotCQkJfCBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikKLQotI2RlZmluZSBB VExfVFhfT0ZGTE9BRFMgKERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIFwKLQkJCXwgREVWX1RY X09GRkxPQURfSVBWNF9DS1NVTSBcCi0JCQl8IERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSBcCi0J CQl8IERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSBcCi0JCQl8IERFVl9UWF9PRkZMT0FEX1RDUF9U U08gXAotCQkJfCBERVZfVFhfT0ZGTE9BRF9NQUNTRUNfSU5TRVJUIFwKLQkJCXwgREVWX1RYX09G RkxPQURfTVVMVElfU0VHUykKKyNkZWZpbmUgQVRMX1JYX09GRkxPQURTIChSVEVfRVRIX1JYX09G RkxPQURfVkxBTl9TVFJJUCBcCisJCQl8IFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIFwK KwkJCXwgUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSBcCisJCQl8IFJURV9FVEhfUlhfT0ZG TE9BRF9UQ1BfQ0tTVU0gXAorCQkJfCBSVEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQIFwK KwkJCXwgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKQorCisjZGVmaW5lIEFUTF9UWF9P RkZMT0FEUyAoUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIFwKKwkJCXwgUlRFX0VUSF9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0gXAorCQkJfCBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VN IFwKKwkJCXwgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSBcCisJCQl8IFJURV9FVEhfVFhf T0ZGTE9BRF9UQ1BfVFNPIFwKKwkJCXwgUlRFX0VUSF9UWF9PRkZMT0FEX01BQ1NFQ19JTlNFUlQg XAorCQkJfCBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykKIAogI2RlZmluZSBTRlBfRUVQ Uk9NX1NJWkUgMHgxMDAKIApkaWZmIGEvZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfZXRoZGV2LmMg Yi9kcml2ZXJzL25ldC9heGdiZS9heGdiZV9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0z ODUsNyArMzg1LDcgQEAgYXhnYmVfZGV2X3N0YXJ0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQog CXJ0ZV9iaXRfcmVsYXhlZF9jbGVhcjMyKEFYR0JFX0RPV04sICZwZGF0YS0+ZGV2X3N0YXRlKTsK IAogCW1heF9wa3RfbGVuID0gZGV2X2RhdGEtPm10dSArIFJURV9FVEhFUl9IRFJfTEVOICsgUlRF X0VUSEVSX0NSQ19MRU47Ci0JaWYgKChkZXZfZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRz ICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikgfHwKKwlpZiAoKGRldl9kYXRhLT5kZXZfY29uZi5y eG1vZGUub2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikgfHwKIAkJCQltYXhf cGt0X2xlbiA+IHBkYXRhLT5yeF9idWZfc2l6ZSkKIAkJZGV2X2RhdGEtPnNjYXR0ZXJlZF9yeCA9 IDE7CiAKQEAgLTEyMDgsMjQgKzEyMDgsMjQgQEAgYXhnYmVfZGV2X2luZm9fZ2V0KHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LCBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCiAJZGV2 X2luZm8tPm1heF9yeF9wa3RsZW4gPSBBWEdCRV9SWF9NQVhfQlVGX1NJWkU7CiAJZGV2X2luZm8t Pm1heF9tYWNfYWRkcnMgPSBwZGF0YS0+aHdfZmVhdC5hZGRuX21hYyArIDE7CiAJZGV2X2luZm8t Pm1heF9oYXNoX21hY19hZGRycyA9IHBkYXRhLT5od19mZWF0Lmhhc2hfdGFibGVfc2l6ZTsKLQlk ZXZfaW5mby0+c3BlZWRfY2FwYSA9ICBFVEhfTElOS19TUEVFRF8xMEc7CisJZGV2X2luZm8tPnNw ZWVkX2NhcGEgPSBSVEVfRVRIX0xJTktfU1BFRURfMTBHOwogCiAJZGV2X2luZm8tPnJ4X29mZmxv YWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9B RF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKLQkJREVWX1JY X09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgfAotCQlE RVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gIHwKLQkJREVWX1JYX09GRkxPQURfU0NBVFRFUgkgIHwK LQkJREVWX1JYX09GRkxPQURfS0VFUF9DUkM7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NU UklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJUlRFX0VUSF9SWF9P RkZMT0FEX1ZMQU5fRVhURU5EIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAor CQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNICB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9U Q1BfQ0tTVU0gIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIJICB8CisJCVJURV9FVEhf UlhfT0ZGTE9BRF9LRUVQX0NSQzsKIAogCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPQotCQlE RVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8Ci0JCURFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJU IHwKLQkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSAgfAotCQlERVZfVFhfT0ZGTE9BRF9VRFBf Q0tTVU0gICB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTTsKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKKwkJ UlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1VE UF9DS1NVTSAgIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTTsKIAogCWlmIChwZGF0 YS0+aHdfZmVhdC5yc3MpIHsKIAkJZGV2X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBB WEdCRV9SU1NfT0ZGTE9BRDsKZGlmZiBhL2RyaXZlcnMvbmV0L2JueDJ4L2JueDJ4X2V0aGRldi5j IGIvZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAt NTM0LDcgKzUzNCw3IEBAIGJueDJ4X2Rldl9pbmZvc19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsIHN0cnVjdCBydGVfZXRoX2Rldl9pbmZvICpkZXZfaW5mbykKIAlkZXZfaW5mby0+bWluX3J4 X2J1ZnNpemUgPSBCTlgyWF9NSU5fUlhfQlVGX1NJWkU7CiAJZGV2X2luZm8tPm1heF9yeF9wa3Rs ZW4gID0gQk5YMlhfTUFYX1JYX1BLVF9MRU47CiAJZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgID0g Qk5YMlhfTUFYX01BQ19BRERSUzsKLQlkZXZfaW5mby0+c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQ RUVEXzEwRyB8IEVUSF9MSU5LX1NQRUVEXzIwRzsKKwlkZXZfaW5mby0+c3BlZWRfY2FwYSA9IFJU RV9FVEhfTElOS19TUEVFRF8xMEcgfCBSVEVfRVRIX0xJTktfU1BFRURfMjBHOwogCiAJZGV2X2lu Zm8tPnJ4X2Rlc2NfbGltLm5iX21heCA9IE1BWF9SWF9BVkFJTDsKIAlkZXZfaW5mby0+cnhfZGVz Y19saW0ubmJfbWluID0gTUlOX1JYX1NJWkVfTk9OVFBBOwpkaWZmIGEvZHJpdmVycy9uZXQvYm54 dC9ibnh0LmggYi9kcml2ZXJzL25ldC9ibnh0L2JueHQuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC01 NjksMzcgKzU2OSwzNyBAQCBzdHJ1Y3QgYm54dF9yZXBfaW5mbyB7CiAjZGVmaW5lIEJOWFRfRldf U1RBVFVTX1NIVVRET1dOCQkweDEwMDAwMAogCiAjZGVmaW5lIEJOWFRfRVRIX1JTU19TVVBQT1JU ICgJXAotCUVUSF9SU1NfSVBWNCB8CQlcCi0JRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwJXAot CUVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8CVwKLQlFVEhfUlNTX0lQVjYgfAkJXAotCUVUSF9S U1NfTk9ORlJBR19JUFY2X1RDUCB8CVwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfAlcCi0J RVRIX1JTU19MRVZFTF9NQVNLKQotCi0jZGVmaW5lIEJOWFRfREVWX1RYX09GRkxPQURfU1VQUE9S VCAoREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FE X1RDUF9DS1NVTSB8IFwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKLQkJ CQkgICAgIERFVl9UWF9PRkZMT0FEX1RDUF9UU08gfCBcCi0JCQkJICAgICBERVZfVFhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNIHwgXAotCQkJCSAgICAgREVWX1RYX09GRkxPQURfVlhMQU5fVE5M X1RTTyB8IFwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwgXAotCQkJCSAg ICAgREVWX1RYX09GRkxPQURfSVBJUF9UTkxfVFNPIHwgXAotCQkJCSAgICAgREVWX1RYX09GRkxP QURfR0VORVZFX1ROTF9UU08gfCBcCi0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VS VCB8IFwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCi0KLSNkZWZpbmUgQk5Y VF9ERVZfUlhfT0ZGTE9BRF9TVVBQT1JUIChERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwK LQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCi0JCQkJICAgICBERVZfUlhf T0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCi0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0g fCBcCi0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAotCQkJCSAg ICAgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwgXAotCQkJCSAgICAgREVWX1JYX09G RkxPQURfS0VFUF9DUkMgfCBcCi0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8 IFwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfCBcCi0JCQkJICAgICBERVZfUlhf T0ZGTE9BRF9TQ0FUVEVSIHwgXAotCQkJCSAgICAgREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCisJ UlRFX0VUSF9SU1NfSVBWNCB8CQlcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8CVwK KwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVURQIHwJXAorCVJURV9FVEhfUlNTX0lQVjYgfAkJ XAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfAlcCisJUlRFX0VUSF9SU1NfTk9ORlJB R19JUFY2X1VEUCB8CVwKKwlSVEVfRVRIX1JTU19MRVZFTF9NQVNLKQorCisjZGVmaW5lIEJOWFRf REVWX1RYX09GRkxPQURfU1VQUE9SVCAoUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBc CisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNIHwgXAorCQkJCSAgICAgUlRF X0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9B RF9UQ1BfVFNPIHwgXAorCQkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tT VU0gfCBcCisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8IFwKKwkJ CQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8IFwKKwkJCQkgICAgIFJURV9F VEhfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfCBcCisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxP QURfR0VORVZFX1ROTF9UU08gfCBcCisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfUUlOUV9J TlNFUlQgfCBcCisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykKKworI2Rl ZmluZSBCTlhUX0RFVl9SWF9PRkZMT0FEX1NVUFBPUlQgKFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUiB8IFwKKwkJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAor CQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKKwkJCQkgICAgIFJURV9F VEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCisJCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURf T1VURVJfSVBWNF9DS1NVTSB8IFwKKwkJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9V RFBfQ0tTVU0gfCBcCisJCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMgfCBcCisJ CQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfCBcCisJCQkJICAgICBSVEVf RVRIX1JYX09GRkxPQURfVENQX0xSTyB8IFwKKwkJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9T Q0FUVEVSIHwgXAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIKQogCiAjZGVm aW5lIEJOWFRfSFdSTV9TSE9SVF9SRVFfTEVOCQlzaXplb2Yoc3RydWN0IGh3cm1fc2hvcnRfaW5w dXQpCiAKZGlmZiBhL2RyaXZlcnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMTQ1LDE1ICsxMTQ1LDE1 IEBAIHN0YXRpYyBpbnQgYm54dF9kZXZfY29uZmlndXJlX29wKHN0cnVjdCBydGVfZXRoX2RldiAq ZXRoX2RldikKIAkgICAgKHVpbnQzMl90KShldGhfZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXMpID4g YnAtPm1heF9yaW5nX2dycHMpCiAJCWdvdG8gcmVzb3VyY2VfZXJyb3I7CiAKLQlpZiAoIShldGhf ZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSAmIEVUSF9NUV9SWF9SU1MpICYmCisJ aWYgKCEoZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBSVEVfRVRIX01R X1JYX1JTUykgJiYKIAkgICAgYnAtPm1heF92bmljcyA8IGV0aF9kZXYtPmRhdGEtPm5iX3J4X3F1 ZXVlcykKIAkJZ290byByZXNvdXJjZV9lcnJvcjsKIAogCWJwLT5yeF9jcF9ucl9yaW5ncyA9IGJw LT5yeF9ucl9yaW5nczsKIAlicC0+dHhfY3BfbnJfcmluZ3MgPSBicC0+dHhfbnJfcmluZ3M7CiAK LQlpZiAoZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBFVEhfTVFfUlhf UlNTX0ZMQUcpCi0JCXJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCWlm IChldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSAmIFJURV9FVEhfTVFfUlhf UlNTX0ZMQUcpCisJCXJ4X29mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsK IAlldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgPSByeF9vZmZsb2FkczsK IAogCWJueHRfbXR1X3NldF9vcChldGhfZGV2LCBldGhfZGV2LT5kYXRhLT5tdHUpOwpAQCAtMTI0 NywxNSArMTI0NywxNSBAQCBibnh0X3JlY2VpdmVfZnVuY3Rpb24oc3RydWN0IHJ0ZV9ldGhfZGV2 ICpldGhfZGV2KQogCSAqIGEgbGltaXRlZCBzdWJzZXQgaGF2ZSBiZWVuIGVuYWJsZWQuCiAJICov CiAJaWYgKGV0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyAmCi0JCX4oREVW X1JYX09GRkxPQURfVkxBTl9TVFJJUCB8Ci0JCSAgREVWX1JYX09GRkxPQURfS0VFUF9DUkMgfAot CQkgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQkgIERFVl9SWF9PRkZMT0FEX1VEUF9D S1NVTSB8Ci0JCSAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJICBERVZfUlhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0g fAotCQkgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKLQkJICBERVZfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUikpCisJCX4oUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAorCQkgIFJURV9F VEhfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8CisJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfAorCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkgIFJURV9FVEhfUlhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNIHwKKwkJICBSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKKwkJICBSVEVf RVRIX1JYX09GRkxPQURfUlNTX0hBU0ggfAorCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUikpCiAJCWdvdG8gdXNlX3NjYWxhcl9yeDsKIAogI2lmIGRlZmluZWQoUlRFX0FSQ0hfWDg2 KSAmJiBkZWZpbmVkKENDX0FWWDJfU1VQUE9SVCkKZGlmZiBhL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9mbG93LmMgYi9kcml2ZXJzL25ldC9ibnh0L2JueHRfZmxvdy5jCShyZWplY3RlZCBodW5rcykK QEAgLTExNzcsNyArMTE3Nyw3IEBAIGJueHRfdm5pY19yc3NfY2ZnX3VwZGF0ZShzdHJ1Y3QgYm54 dCAqYnAsCiAJfQogCiAJLyogSWYgUlNTIHR5cGVzIGlzIDAsIHVzZSBhIGJlc3QgZWZmb3J0IGNv bmZpZ3VyYXRpb24gKi8KLQl0eXBlcyA9IHJzcy0+dHlwZXMgPyByc3MtPnR5cGVzIDogRVRIX1JT U19JUFY0OworCXR5cGVzID0gcnNzLT50eXBlcyA/IHJzcy0+dHlwZXMgOiBSVEVfRVRIX1JTU19J UFY0OwogCiAJaGFzaF90eXBlID0gYm54dF9ydGVfdG9faHdybV9oYXNoX3R5cGVzKHR5cGVzKTsK IApkaWZmIGEvZHJpdmVycy9uZXQvYm54dC9ibnh0X3JpbmcuYyBiL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9yaW5nLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTg3LDcgKzE4Nyw3IEBAIGludCBibnh0 X2FsbG9jX3JpbmdzKHN0cnVjdCBibnh0ICpicCwgdW5zaWduZWQgaW50IHNvY2tldF9pZCwgdWlu dDE2X3QgcWlkeCwKIAkJCXJ4X3JpbmdfaW5mby0+cnhfcmluZ19zdHJ1Y3QtPnJpbmdfc2l6ZSAq CiAJCQlBR0dfUklOR19TSVpFX0ZBQ1RPUikpIDogMDsKIAotCQlpZiAocnhfcmluZ19pbmZvICYm IChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8pKSB7CisJCWlmIChyeF9yaW5n X2luZm8gJiYgKHJ4X29mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8pKSB7CiAJ CQlpbnQgdHBhX21heCA9IEJOWFRfVFBBX01BWF9BR0dTKGJwKTsKIAogCQkJdHBhX2luZm9fbGVu ID0gdHBhX21heCAqIHNpemVvZihzdHJ1Y3QgYm54dF90cGFfaW5mbyk7CkBAIC0yODMsNyArMjgz LDcgQEAgaW50IGJueHRfYWxsb2NfcmluZ3Moc3RydWN0IGJueHQgKmJwLCB1bnNpZ25lZCBpbnQg c29ja2V0X2lkLCB1aW50MTZfdCBxaWR4LAogCQkJCQkgICAgYWdfYml0bWFwX3N0YXJ0LCBhZ19i aXRtYXBfbGVuKTsKIAogCQkJLyogVFBBIGluZm8gKi8KLQkJCWlmIChyeF9vZmZsb2FkcyAmIERF Vl9SWF9PRkZMT0FEX1RDUF9MUk8pCisJCQlpZiAocnhfb2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09G RkxPQURfVENQX0xSTykKIAkJCQlyeF9yaW5nX2luZm8tPnRwYV9pbmZvID0KIAkJCQkJKChzdHJ1 Y3QgYm54dF90cGFfaW5mbyAqKQogCQkJCQkgKChjaGFyICopbXotPmFkZHIgKyB0cGFfaW5mb19z dGFydCkpOwpkaWZmIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfcG1kLmMgYi9k cml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9wbWQuYwkocmVqZWN0ZWQgaHVua3MpCkBA IC0xNzAwLDcgKzE3MDAsNyBAQCBzbGF2ZV9jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpi b25kZWRfZXRoX2RldiwKIAkJc2xhdmVfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYuaW50cl9jb25m LmxzYyA9IDE7CiAKIAkvKiBJZiBSU1MgaXMgZW5hYmxlZCBmb3IgYm9uZGluZywgdHJ5IHRvIGVu YWJsZSBpdCBmb3Igc2xhdmVzICAqLwotCWlmIChib25kZWRfZXRoX2Rldi0+ZGF0YS0+ZGV2X2Nv bmYucnhtb2RlLm1xX21vZGUgJiBFVEhfTVFfUlhfUlNTX0ZMQUcpIHsKKwlpZiAoYm9uZGVkX2V0 aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlICYgUlRFX0VUSF9NUV9SWF9SU1Nf RkxBRykgewogCQkvKiByc3Nfa2V5IHdvbid0IGJlIGVtcHR5IGlmIFJTUyBpcyBjb25maWd1cmVk IGluIGJvbmRlZCBkZXYgKi8KIAkJc2xhdmVfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhfYWR2 X2NvbmYucnNzX2NvbmYucnNzX2tleV9sZW4gPQogCQkJCQlpbnRlcm5hbHMtPnJzc19rZXlfbGVu OwpAQCAtMTcxNCwxMiArMTcxNCwxMiBAQCBzbGF2ZV9jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpib25kZWRfZXRoX2RldiwKIAl9CiAKIAlpZiAoYm9uZGVkX2V0aF9kZXYtPmRhdGEtPmRl dl9jb25mLnJ4bW9kZS5vZmZsb2FkcyAmCi0JCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikK KwkJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikKIAkJc2xhdmVfZXRoX2Rldi0+ZGF0 YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9Ci0JCQkJREVWX1JYX09GRkxPQURfVkxBTl9G SUxURVI7CisJCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOwogCWVsc2UKIAkJc2xh dmVfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICY9Ci0JCQkJfkRFVl9S WF9PRkZMT0FEX1ZMQU5fRklMVEVSOworCQkJCX5SVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxU RVI7CiAKIAlzbGF2ZV9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXR1ID0KIAkJCWJv bmRlZF9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXR1OwpAQCAtMzUwMSw3ICszNTAx LDcgQEAgYm9uZF9ldGhkZXZfY29uZmlndXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCSAq IHNldCBrZXkgdG8gdGhlIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaW4gcG9ydCBSU1MgY29uZmlndXJh dGlvbi4KIAkgKiBGYWxsIGJhY2sgdG8gZGVmYXVsdCBSU1Mga2V5IGlmIHRoZSBrZXkgaXMgbm90 IHNwZWNpZmllZAogCSAqLwotCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2Rl ICYgRVRIX01RX1JYX1JTUykgeworCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9t b2RlICYgUlRFX0VUSF9NUV9SWF9SU1MpIHsKIAkJc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgKnJz c19jb25mID0KIAkJCSZkZXYtPmRhdGEtPmRldl9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mOwog CQlpZiAocnNzX2NvbmYtPnJzc19rZXkgIT0gTlVMTCkgewpkaWZmIGEvZHJpdmVycy9uZXQvY254 ay9jbjEwa19ydGVfZmxvdy5jIGIvZHJpdmVycy9uZXQvY254ay9jbjEwa19ydGVfZmxvdy5jCShy ZWplY3RlZCBodW5rcykKQEAgLTk4LDcgKzk4LDcgQEAgY24xMGtfcnNzX2FjdGlvbl92YWxpZGF0 ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAot CWlmIChldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSAhPSBFVEhfTVFfUlhf UlNTKSB7CisJaWYgKGV0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlICE9IFJU RV9FVEhfTVFfUlhfUlNTKSB7CiAJCXBsdF9lcnIoIm11bHRpLXF1ZXVlIG1vZGUgaXMgZGlzYWJs ZWQiKTsKIAkJcmV0dXJuIC1FTk9UU1VQOwogCX0KZGlmZiBhL2RyaXZlcnMvbmV0L2NueGsvY254 a19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuYwkocmVqZWN0ZWQgaHVu a3MpCkBAIC0yNDIsOCArMjQyLDggQEAgbml4X2VuYWJsZV9tc2VnX29uX2p1bWJvKHN0cnVjdCBj bnhrX2V0aF9yeHFfc3AgKnJ4cSkKIAlidWZmc3ogPSBtYnBfcHJpdi0+bWJ1Zl9kYXRhX3Jvb21f c2l6ZSAtIFJURV9QS1RNQlVGX0hFQURST09NOwogCiAJaWYgKGV0aF9kZXYtPmRhdGEtPm10dSAr ICh1aW50MzJfdClDTlhLX05JWF9MMl9PVkVSSEVBRCA+IGJ1ZmZzeikgewotCQlkZXYtPnJ4X29m ZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NDQVRURVI7Ci0JCWRldi0+dHhfb2ZmbG9hZHMgfD0g REVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJZGV2LT5yeF9vZmZsb2FkcyB8PSBSVEVfRVRI X1JYX09GRkxPQURfU0NBVFRFUjsKKwkJZGV2LT50eF9vZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09G RkxPQURfTVVMVElfU0VHUzsKIAl9CiB9CiAKZGlmZiBhL2RyaXZlcnMvbmV0L2NueGsvY254a19l dGhkZXYuaCBiL2RyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuaAkocmVqZWN0ZWQgaHVua3Mp CkBAIC01OCw0MSArNTgsNDQgQEAKIAkgQ05YS19OSVhfVFhfTkJfU0VHX01BWCkKIAogI2RlZmlu ZSBDTlhLX05JWF9SU1NfTDNfTDRfU1JDX0RTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLQkoRVRIX1JTU19MM19TUkNfT05MWSB8IEVUSF9SU1NfTDNfRFNU X09OTFkgfCBFVEhfUlNTX0w0X1NSQ19PTkxZIHwgICAgIFwKLQkgRVRIX1JTU19MNF9EU1RfT05M WSkKKwkoUlRFX0VUSF9SU1NfTDNfU1JDX09OTFkgfCBSVEVfRVRIX1JTU19MM19EU1RfT05MWSB8 ICAgICAgICAgICAgICAgICAgIFwKKwkgUlRFX0VUSF9SU1NfTDRfU1JDX09OTFkgfCBSVEVfRVRI X1JTU19MNF9EU1RfT05MWSkKIAogI2RlZmluZSBDTlhLX05JWF9SU1NfT0ZGTE9BRCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkoRVRIX1JTU19Q T1JUIHwgRVRIX1JTU19JUCB8IEVUSF9SU1NfVURQIHwgRVRIX1JTU19UQ1AgfCAgICAgICAgICAg ICAgIFwKLQkgRVRIX1JTU19TQ1RQIHwgRVRIX1JTU19UVU5ORUwgfCBFVEhfUlNTX0wyX1BBWUxP QUQgfCAgICAgICAgICAgICAgICAgIFwKLQkgQ05YS19OSVhfUlNTX0wzX0w0X1NSQ19EU1QgfCBF VEhfUlNTX0xFVkVMX01BU0sgfCBFVEhfUlNTX0NfVkxBTikKKwkoUlRFX0VUSF9SU1NfUE9SVCB8 IFJURV9FVEhfUlNTX0lQIHwgUlRFX0VUSF9SU1NfVURQIHwgICAgICAgICAgICAgICAgIFwKKwkg UlRFX0VUSF9SU1NfVENQIHwgUlRFX0VUSF9SU1NfU0NUUCB8IFJURV9FVEhfUlNTX1RVTk5FTCB8 ICAgICAgICAgICAgIFwKKwkgUlRFX0VUSF9SU1NfTDJfUEFZTE9BRCB8IENOWEtfTklYX1JTU19M M19MNF9TUkNfRFNUIHwgICAgICAgICAgICAgICAgIFwKKwkgUlRFX0VUSF9SU1NfTEVWRUxfTUFT SyB8IFJURV9FVEhfUlNTX0NfVkxBTikKIAogI2RlZmluZSBDTlhLX05JWF9UWF9PRkZMT0FEX0NB UEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkoREVW X1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgfCBERVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRSB8 ICAgICAgICAgIFwKLQkgREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfCBERVZfVFhfT0ZGTE9B RF9RSU5RX0lOU0VSVCB8ICAgICAgICAgICAgIFwKLQkgREVWX1RYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTSB8IERFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8ICAgIFwKLQkgREVWX1RY X09GRkxPQURfVENQX0NLU1VNIHwgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwgICAgICAgICAg ICAgICAgIFwKLQkgREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8IERFVl9UWF9PRkZMT0FEX1RD UF9UU08gfCAgICAgICAgICAgICAgICAgIFwKLQkgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RT TyB8IERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwgICAgICAgIFwKLQkgREVWX1RYX09G RkxPQURfR1JFX1ROTF9UU08gfCBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwgICAgICAgICAg ICAgIFwKLQkgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8IERFVl9UWF9PRkZMT0FEX1NFQ1VS SVRZKQorCShSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgfCBSVEVfRVRIX1RYX09G RkxPQURfTVRfTE9DS0ZSRUUgfCAgICAgICAgICBcCisJIFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFO X0lOU0VSVCB8IFJURV9FVEhfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8ICAgICAgICAgICAgIFwK KwkgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBSVEVfRVRIX1RYX09GRkxP QURfT1VURVJfVURQX0NLU1VNIHwgICAgXAorCSBSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VN IHwgUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8ICAgICAgICAgICAgICAgICBcCisJIFJU RV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08g fCAgICAgICAgICAgICAgICAgIFwKKwkgUlRFX0VUSF9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08g fCBSVEVfRVRIX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfCAgICAgICAgXAorCSBSVEVfRVRI X1RYX09GRkxPQURfR1JFX1ROTF9UU08gfCBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUyB8 ICAgICAgICAgICAgICBcCisJIFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgUlRFX0VU SF9UWF9PRkZMT0FEX1NFQ1VSSVRZKQogCiAjZGVmaW5lIENOWEtfTklYX1JYX09GRkxPQURfQ0FQ QSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCShERVZf UlhfT0ZGTE9BRF9DSEVDS1NVTSB8IERFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfCAgICAgICAg ICAgICAgICAgXAotCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgREVWX1JYX09G RkxPQURfU0NBVFRFUiB8ICAgICAgICAgICAgXAotCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBf Q0tTVU0gfCBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8ICAgICAgICAgICAgXAotCSBERVZfUlhf T0ZGTE9BRF9USU1FU1RBTVAgfCBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwgICAgICAgICAg ICAgICAgXAotCSBERVZfUlhfT0ZGTE9BRF9TRUNVUklUWSkKKwkoUlRFX0VUSF9SWF9PRkZMT0FE X0NIRUNLU1VNIHwgUlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfCAgICAgICAgIFwKKwkg UlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBSVEVfRVRIX1JYX09GRkxPQURf U0NBVFRFUiB8ICAgIFwKKwkgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8IFJU RV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8ICAgIFwKKwkgUlRFX0VUSF9SWF9PRkZMT0FEX1RJ TUVTVEFNUCB8IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwgICAgICAgIFwKKwkgUlRF X0VUSF9SWF9PRkZMT0FEX1NFQ1VSSVRZKQogCiAjZGVmaW5lIFJTU19JUFY0X0VOQUJMRSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCShF VEhfUlNTX0lQVjQgfCBFVEhfUlNTX0ZSQUdfSVBWNCB8IEVUSF9SU1NfTk9ORlJBR19JUFY0X1VE UCB8ICAgICAgICAgXAotCSBFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfCBFVEhfUlNTX05PTkZS QUdfSVBWNF9TQ1RQKQorCShSVEVfRVRIX1JTU19JUFY0IHwgUlRFX0VUSF9SU1NfRlJBR19JUFY0 IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSBSVEVfRVRIX1JTU19OT05GUkFHX0lQ VjRfVURQIHwgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8ICAgICAgICAgXAorCSBSVEVf RVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCkKIAogI2RlZmluZSBSU1NfSVBWNl9FTkFCTEUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQko RVRIX1JTU19JUFY2IHwgRVRIX1JTU19GUkFHX0lQVjYgfCBFVEhfUlNTX05PTkZSQUdfSVBWNl9V RFAgfCAgICAgICAgIFwKLQkgRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgRVRIX1JTU19OT05G UkFHX0lQVjZfU0NUUCkKKwkoUlRFX0VUSF9SU1NfSVBWNiB8IFJURV9FVEhfUlNTX0ZSQUdfSVBW NiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkgUlRFX0VUSF9SU1NfTk9ORlJBR19J UFY2X1VEUCB8IFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCAgICAgICAgIFwKKwkgUlRF X0VUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFApCiAKICNkZWZpbmUgUlNTX0lQVjZfRVhfRU5BQkxF ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0J KEVUSF9SU1NfSVBWNl9FWCB8IEVUSF9SU1NfSVBWNl9UQ1BfRVggfCBFVEhfUlNTX0lQVjZfVURQ X0VYKQorCShSVEVfRVRIX1JTU19JUFY2X0VYIHwgUlRFX0VUSF9SU1NfSVBWNl9UQ1BfRVggfCBS VEVfRVRIX1JTU19JUFY2X1VEUF9FWCkKIAogI2RlZmluZSBSU1NfTUFYX0xFVkVMUyAzCiAKZGlm ZiBhL2RyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXZfb3BzLmMgYi9kcml2ZXJzL25ldC9jbnhr L2NueGtfZXRoZGV2X29wcy5jCShyZWplY3RlZCBodW5rcykKQEAgLTgxLDI0ICs4MSwyNCBAQCBj bnhrX25peF9yeF9idXJzdF9tb2RlX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVp bnQxNl90IHF1ZXVlX2lkLAogCQl1aW50NjRfdCBmbGFnczsKIAkJY29uc3QgY2hhciAqb3V0cHV0 OwogCX0gcnhfb2ZmbG9hZF9tYXBbXSA9IHsKLQkJe0RFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAs ICIgVkxBTiBTdHJpcCwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0sICIgSW5uZXIg SVB2NCBDaGVja3N1bSwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSwgIiBVRFAgQ2hl Y2tzdW0sIn0sCi0JCXtERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0sICIgVENQIENoZWNrc3VtLCJ9 LAotCQl7REVWX1JYX09GRkxPQURfVENQX0xSTywgIiBUQ1AgTFJPLCJ9LAotCQl7REVWX1JYX09G RkxPQURfUUlOUV9TVFJJUCwgIiBRaW5RIFZMQU4gU3RyaXAsIn0sCi0JCXtERVZfUlhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNLCAiIE91dGVyIElQdjQgQ2hlY2tzdW0sIn0sCi0JCXtERVZfUlhf T0ZGTE9BRF9NQUNTRUNfU1RSSVAsICIgTUFDc2VjIFN0cmlwLCJ9LAotCQl7REVWX1JYX09GRkxP QURfSEVBREVSX1NQTElULCAiIEhlYWRlciBTcGxpdCwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX1ZM QU5fRklMVEVSLCAiIFZMQU4gRmlsdGVyLCJ9LAotCQl7REVWX1JYX09GRkxPQURfVkxBTl9FWFRF TkQsICIgVkxBTiBFeHRlbmQsIn0sCi0JCXtERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSLCAiIFNjYXR0 ZXJlZCwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUCwgIiBUaW1lc3RhbXAsIn0sCi0J CXtERVZfUlhfT0ZGTE9BRF9TRUNVUklUWSwgIiBTZWN1cml0eSwifSwKLQkJe0RFVl9SWF9PRkZM T0FEX0tFRVBfQ1JDLCAiIEtlZXAgQ1JDLCJ9LAotCQl7REVWX1JYX09GRkxPQURfU0NUUF9DS1NV TSwgIiBTQ1RQLCJ9LAotCQl7REVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNLCAiIE91dGVy IFVEUCBDaGVja3N1bSwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX1JTU19IQVNILCAiIFJTUywifQor CQl7UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAsICIgVkxBTiBTdHJpcCwifSwKKwkJe1JU RV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNLCAiIElubmVyIElQdjQgQ2hlY2tzdW0sIn0sCisJ CXtSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNLCAiIFVEUCBDaGVja3N1bSwifSwKKwkJe1JU RV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0sICIgVENQIENoZWNrc3VtLCJ9LAorCQl7UlRFX0VU SF9SWF9PRkZMT0FEX1RDUF9MUk8sICIgVENQIExSTywifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9B RF9RSU5RX1NUUklQLCAiIFFpblEgVkxBTiBTdHJpcCwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNLCAiIE91dGVyIElQdjQgQ2hlY2tzdW0sIn0sCisJCXtSVEVfRVRI X1JYX09GRkxPQURfTUFDU0VDX1NUUklQLCAiIE1BQ3NlYyBTdHJpcCwifSwKKwkJe1JURV9FVEhf UlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQsICIgSGVhZGVyIFNwbGl0LCJ9LAorCQl7UlRFX0VUSF9S WF9PRkZMT0FEX1ZMQU5fRklMVEVSLCAiIFZMQU4gRmlsdGVyLCJ9LAorCQl7UlRFX0VUSF9SWF9P RkZMT0FEX1ZMQU5fRVhURU5ELCAiIFZMQU4gRXh0ZW5kLCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZM T0FEX1NDQVRURVIsICIgU2NhdHRlcmVkLCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVT VEFNUCwgIiBUaW1lc3RhbXAsIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfU0VDVVJJVFksICIg U2VjdXJpdHksIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMsICIgS2VlcCBDUkMs In0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfU0NUUF9DS1NVTSwgIiBTQ1RQLCJ9LAorCQl7UlRF X0VUSF9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSwgIiBPdXRlciBVRFAgQ2hlY2tzdW0sIn0s CisJCXtSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gsICIgUlNTLCJ9CiAJfTsKIAlzdGF0aWMg Y29uc3QgY2hhciAqY29uc3QgYnVyc3RfbW9kZVtdID0geyJWZWN0b3IgTmVvbiwgUnggT2ZmbG9h ZHM6IiwKIAkJCQkJCSAiU2NhbGFyLCBSeCBPZmZsb2FkczoiCmRpZmYgYS9kcml2ZXJzL25ldC9j eGdiZS9jeGdiZS5oIGIvZHJpdmVycy9uZXQvY3hnYmUvY3hnYmUuaAkocmVqZWN0ZWQgaHVua3Mp CkBAIC0yOCwzMSArMjgsMzEgQEAKICNkZWZpbmUgQ1hHQkVfTElOS19TVEFUVVNfUE9MTF9DTlQg MTAwIC8qIE1heCBudW1iZXIgb2YgdGltZXMgdG8gcG9sbCAqLwogCiAjZGVmaW5lIENYR0JFX0RF RkFVTFRfUlNTX0tFWV9MRU4gICAgIDQwIC8qIDMyMC1iaXRzICovCi0jZGVmaW5lIENYR0JFX1JT U19IRl9JUFY0X01BU0sgKEVUSF9SU1NfSVBWNCB8IEVUSF9SU1NfRlJBR19JUFY0IHwgXAotCQkJ CUVUSF9SU1NfTk9ORlJBR19JUFY0X09USEVSKQotI2RlZmluZSBDWEdCRV9SU1NfSEZfSVBWNl9N QVNLIChFVEhfUlNTX0lQVjYgfCBFVEhfUlNTX0ZSQUdfSVBWNiB8IFwKLQkJCQlFVEhfUlNTX05P TkZSQUdfSVBWNl9PVEhFUiB8IFwKLQkJCQlFVEhfUlNTX0lQVjZfRVgpCi0jZGVmaW5lIENYR0JF X1JTU19IRl9UQ1BfSVBWNl9NQVNLIChFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCi0JCQkJ ICAgIEVUSF9SU1NfSVBWNl9UQ1BfRVgpCi0jZGVmaW5lIENYR0JFX1JTU19IRl9VRFBfSVBWNl9N QVNLIChFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCi0JCQkJICAgIEVUSF9SU1NfSVBWNl9V RFBfRVgpCi0jZGVmaW5lIENYR0JFX1JTU19IRl9BTEwgKEVUSF9SU1NfSVAgfCBFVEhfUlNTX1RD UCB8IEVUSF9SU1NfVURQKQorI2RlZmluZSBDWEdCRV9SU1NfSEZfSVBWNF9NQVNLIChSVEVfRVRI X1JTU19JUFY0IHwgUlRFX0VUSF9SU1NfRlJBR19JUFY0IHwgXAorCQkJCVJURV9FVEhfUlNTX05P TkZSQUdfSVBWNF9PVEhFUikKKyNkZWZpbmUgQ1hHQkVfUlNTX0hGX0lQVjZfTUFTSyAoUlRFX0VU SF9SU1NfSVBWNiB8IFJURV9FVEhfUlNTX0ZSQUdfSVBWNiB8IFwKKwkJCQlSVEVfRVRIX1JTU19O T05GUkFHX0lQVjZfT1RIRVIgfCBcCisJCQkJUlRFX0VUSF9SU1NfSVBWNl9FWCkKKyNkZWZpbmUg Q1hHQkVfUlNTX0hGX1RDUF9JUFY2X01BU0sgKFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1Ag fCBcCisJCQkJICAgIFJURV9FVEhfUlNTX0lQVjZfVENQX0VYKQorI2RlZmluZSBDWEdCRV9SU1Nf SEZfVURQX0lQVjZfTUFTSyAoUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8IFwKKwkJCQkg ICAgUlRFX0VUSF9SU1NfSVBWNl9VRFBfRVgpCisjZGVmaW5lIENYR0JFX1JTU19IRl9BTEwgKFJU RV9FVEhfUlNTX0lQIHwgUlRFX0VUSF9SU1NfVENQIHwgUlRFX0VUSF9SU1NfVURQKQogCiAvKiBU eC9SeCBPZmZsb2FkcyBzdXBwb3J0ZWQgKi8KLSNkZWZpbmUgQ1hHQkVfVFhfT0ZGTE9BRFMgKERF Vl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwgXAotCQkJICAgREVWX1RYX09GRkxPQURfSVBWNF9D S1NVTSB8IFwKLQkJCSAgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKLQkJCSAgIERFVl9U WF9PRkZMT0FEX1RDUF9DS1NVTSB8IFwKLQkJCSAgIERFVl9UWF9PRkZMT0FEX1RDUF9UU08gfCBc Ci0JCQkgICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQotCi0jZGVmaW5lIENYR0JFX1JYX09G RkxPQURTIChERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwgXAotCQkJICAgREVWX1JYX09GRkxP QURfSVBWNF9DS1NVTSB8IFwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKLQkJ CSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8IFwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX1ND QVRURVIgfCBcCi0JCQkgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKKyNkZWZpbmUgQ1hHQkVf VFhfT0ZGTE9BRFMgKFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8IFwKKwkJCSAgIFJU RV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAorCQkJICAgUlRFX0VUSF9UWF9PRkZMT0FE X1VEUF9DS1NVTSB8IFwKKwkJCSAgIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCisJ CQkgICBSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8IFwKKwkJCSAgIFJURV9FVEhfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTKQorCisjZGVmaW5lIENYR0JFX1JYX09GRkxPQURTIChSVEVfRVRIX1JY X09GRkxPQURfVkxBTl9TVFJJUCB8IFwKKwkJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NL U1VNIHwgXAorCQkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKKwkJCSAgIFJU RV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCisJCQkgICBSVEVfRVRIX1JYX09GRkxPQURf U0NBVFRFUiB8IFwKKwkJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKIAogLyogRGV2 YXJncyBmaWx0ZXJtb2RlIGFuZCBmaWx0ZXJtYXNrIHJlcHJlc2VudGF0aW9uICovCiBlbnVtIGN4 Z2JlX2RldmFyZ3NfZmlsdGVyX21vZGVfZmxhZ3MgewpkaWZmIGEvZHJpdmVycy9uZXQvZHBhYS9k cGFhX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jCShyZWplY3RlZCBo dW5rcykKQEAgLTU0LDI5ICs1NCwyOSBAQAogCiAvKiBTdXBwb3J0ZWQgUnggb2ZmbG9hZHMgKi8K IHN0YXRpYyB1aW50NjRfdCBkZXZfcnhfb2ZmbG9hZHNfc3VwID0KLQkJREVWX1JYX09GRkxPQURf U0NBVFRFUjsKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7CiAKIC8qIFJ4IG9mZmxvYWRz IHdoaWNoIGNhbm5vdCBiZSBkaXNhYmxlZCAqLwogc3RhdGljIHVpbnQ2NF90IGRldl9yeF9vZmZs b2Fkc19ub2RpcyA9Ci0JCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZG TE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfUlhf T0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1VE UF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1JY X09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFT SDsKIAogLyogU3VwcG9ydGVkIFR4IG9mZmxvYWRzICovCiBzdGF0aWMgdWludDY0X3QgZGV2X3R4 X29mZmxvYWRzX3N1cCA9Ci0JCURFVl9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFIHwKLQkJREVWX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NVF9MT0NLRlJF RSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKIAogLyogVHggb2ZmbG9h ZHMgd2hpY2ggY2Fubm90IGJlIGRpc2FibGVkICovCiBzdGF0aWMgdWludDY0X3QgZGV2X3R4X29m ZmxvYWRzX25vZGlzID0KLQkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9P RkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9U WF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VN IHwKLQkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwK KwkJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09G RkxPQURfTVVMVElfU0VHUzsKIAogLyogS2VlcCB0cmFjayBvZiB3aGV0aGVyIFFNQU4gYW5kIEJN QU4gaGF2ZSBiZWVuIGdsb2JhbGx5IGluaXRpYWxpemVkICovCiBzdGF0aWMgaW50IGlzX2dsb2Jh bF9pbml0OwpAQCAtMjM4LDcgKzIzOCw3IEBAIGRwYWFfZXRoX2Rldl9jb25maWd1cmUoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYpCiAKIAlmbWFuX2lmX3NldF9tYXhmcm0oZGV2LT5wcm9jZXNzX3By aXZhdGUsIG1heF9yeF9wa3RsZW4pOwogCi0JaWYgKHJ4X29mZmxvYWRzICYgREVWX1JYX09GRkxP QURfU0NBVFRFUikgeworCWlmIChyeF9vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FU VEVSKSB7CiAJCURQQUFfUE1EX0RFQlVHKCJlbmFibGluZyBzY2F0dGVyIG1vZGUiKTsKIAkJZm1h bl9pZl9zZXRfc2coZGV2LT5wcm9jZXNzX3ByaXZhdGUsIDEpOwogCQlkZXYtPmRhdGEtPnNjYXR0 ZXJlZF9yeCA9IDE7CkBAIC01OTEsMTIgKzU5MSwxMiBAQCBkcGFhX2Rldl9yeF9idXJzdF9tb2Rl X2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKIAkJdWludDY0X3QgZmxhZ3M7CiAJCWNvbnN0 IGNoYXIgKm91dHB1dDsKIAl9IHJ4X29mZmxvYWRfbWFwW10gPSB7Ci0JCQl7REVWX1JYX09GRkxP QURfU0NBVFRFUiwgIiBTY2F0dGVyZWQsIn0sCi0JCQl7REVWX1JYX09GRkxPQURfSVBWNF9DS1NV TSwgIiBJUFY0IGNzdW0sIn0sCi0JCQl7REVWX1JYX09GRkxPQURfVURQX0NLU1VNLCAiIFVEUCBj c3VtLCJ9LAotCQkJe0RFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSwgIiBUQ1AgY3N1bSwifSwKLQkJ CXtERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNLCAiIE91dGVyIElQVjQgY3N1bSwifSwK LQkJCXtERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCwgIiBSU1MsIn0KKwkJCXtSVEVfRVRIX1JYX09G RkxPQURfU0NBVFRFUiwgIiBTY2F0dGVyZWQsIn0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX0lQ VjRfQ0tTVU0sICIgSVBWNCBjc3VtLCJ9LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tT VU0sICIgVURQIGNzdW0sIn0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSwgIiBU Q1AgY3N1bSwifSwKKwkJCXtSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSwgIiBP dXRlciBJUFY0IGNzdW0sIn0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNILCAiIFJT UywifQogCX07CiAKIAkvKiBVcGRhdGUgUnggb2ZmbG9hZCBpbmZvICovCkBAIC05NjIsNyArOTYy LDcgQEAgaW50IGRwYWFfZXRoX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LCB1aW50MTZfdCBxdWV1ZV9pZHgsCiAJaWYgKG1heF9yeF9wa3RsZW4gPD0gYnVmZnN6KSB7CiAJ CTsKIAl9IGVsc2UgaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYKLQkJ CURFVl9SWF9PRkZMT0FEX1NDQVRURVIpIHsKKwkJCVJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVS KSB7CiAJCWlmIChtYXhfcnhfcGt0bGVuID4gYnVmZnN6ICogRFBBQV9TR1RfTUFYX0VOVFJJRVMp IHsKIAkJCURQQUFfUE1EX0VSUigiTWF4aW11bSBSeCBwYWNrZXQgc2l6ZSAlZCB0b28gYmlnIHRv IGZpdCAiCiAJCQkJIk1heFNHbGlzdCAlZCIsCmRpZmYgYS9kcml2ZXJzL25ldC9kcGFhMi9kcGFh Ml9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5jCShyZWplY3RlZCBo dW5rcykKQEAgLTM4LDMzICszOCwzMyBAQAogCiAvKiBTdXBwb3J0ZWQgUnggb2ZmbG9hZHMgKi8K IHN0YXRpYyB1aW50NjRfdCBkZXZfcnhfb2ZmbG9hZHNfc3VwID0KLQkJREVWX1JYX09GRkxPQURf Q0hFQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8 Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUDsKKwkJUlRFX0VUSF9SWF9PRkZMT0FE X0NIRUNLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAorCQlSVEVfRVRI X1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9PVVRF Ul9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RB TVA7CiAKIC8qIFJ4IG9mZmxvYWRzIHdoaWNoIGNhbm5vdCBiZSBkaXNhYmxlZCAqLwogc3RhdGlj IHVpbnQ2NF90IGRldl9yeF9vZmZsb2Fkc19ub2RpcyA9Ci0JCURFVl9SWF9PRkZMT0FEX1JTU19I QVNIIHwKLQkJREVWX1JYX09GRkxPQURfU0NBVFRFUjsKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1JT U19IQVNIIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7CiAKIC8qIFN1cHBvcnRlZCBU eCBvZmZsb2FkcyAqLwogc3RhdGljIHVpbnQ2NF90IGRldl90eF9vZmZsb2Fkc19zdXAgPQotCQlE RVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0g fAotCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tT VU0gfAotCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfT1VU RVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFIHwKLQkJREVWX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VS VCB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVf RVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9J UFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFIHwKKwkJUlRFX0VU SF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwogCiAvKiBUeCBvZmZsb2FkcyB3aGljaCBjYW5u b3QgYmUgZGlzYWJsZWQgKi8KIHN0YXRpYyB1aW50NjRfdCBkZXZfdHhfb2ZmbG9hZHNfbm9kaXMg PQotCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOworCQlSVEVfRVRIX1RYX09GRkxPQURfTVVM VElfU0VHUzsKIAogLyogZW5hYmxlIHRpbWVzdGFtcCBpbiBtYnVmICovCiBib29sIGRwYWEyX2Vu YWJsZV90c1tSVEVfTUFYX0VUSFBPUlRTXTsKQEAgLTI5MSwxNSArMjkxLDE1IEBAIGRwYWEyX2Rl dl9yeF9idXJzdF9tb2RlX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKIAkJdWludDY0X3Qg ZmxhZ3M7CiAJCWNvbnN0IGNoYXIgKm91dHB1dDsKIAl9IHJ4X29mZmxvYWRfbWFwW10gPSB7Ci0J CQl7REVWX1JYX09GRkxPQURfQ0hFQ0tTVU0sICIgQ2hlY2tzdW0sIn0sCi0JCQl7REVWX1JYX09G RkxPQURfU0NUUF9DS1NVTSwgIiBTQ1RQIGNzdW0sIn0sCi0JCQl7REVWX1JYX09GRkxPQURfT1VU RVJfSVBWNF9DS1NVTSwgIiBPdXRlciBJUFY0IGNzdW0sIn0sCi0JCQl7REVWX1JYX09GRkxPQURf T1VURVJfVURQX0NLU1VNLCAiIE91dGVyIFVEUCBjc3VtLCJ9LAotCQkJe0RFVl9SWF9PRkZMT0FE X1ZMQU5fU1RSSVAsICIgVkxBTiBzdHJpcCwifSwKLQkJCXtERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiwgIiBWTEFOIGZpbHRlciwifSwKLQkJCXtERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAsICIg VGltZXN0YW1wLCJ9LAotCQkJe0RFVl9SWF9PRkZMT0FEX1JTU19IQVNILCAiIFJTUywifSwKLQkJ CXtERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSLCAiIFNjYXR0ZXJlZCwifQorCQkJe1JURV9FVEhfUlhf T0ZGTE9BRF9DSEVDS1NVTSwgIiBDaGVja3N1bSwifSwKKwkJCXtSVEVfRVRIX1JYX09GRkxPQURf U0NUUF9DS1NVTSwgIiBTQ1RQIGNzdW0sIn0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU0sICIgT3V0ZXIgSVBWNCBjc3VtLCJ9LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9B RF9PVVRFUl9VRFBfQ0tTVU0sICIgT3V0ZXIgVURQIGNzdW0sIn0sCisJCQl7UlRFX0VUSF9SWF9P RkZMT0FEX1ZMQU5fU1RSSVAsICIgVkxBTiBzdHJpcCwifSwKKwkJCXtSVEVfRVRIX1JYX09GRkxP QURfVkxBTl9GSUxURVIsICIgVkxBTiBmaWx0ZXIsIn0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FE X1RJTUVTVEFNUCwgIiBUaW1lc3RhbXAsIn0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1JTU19I QVNILCAiIFJTUywifSwKKwkJCXtSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiwgIiBTY2F0dGVy ZWQsIn0KIAl9OwogCiAJLyogVXBkYXRlIFJ4IG9mZmxvYWQgaW5mbyAqLwpAQCAtNTczLDcgKzU3 Myw3IEBAIGRwYWEyX2V0aF9kZXZfY29uZmlndXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQog CQlyZXR1cm4gLTE7CiAJfQogCi0JaWYgKGV0aF9jb25mLT5yeG1vZGUubXFfbW9kZSA9PSBFVEhf TVFfUlhfUlNTKSB7CisJaWYgKGV0aF9jb25mLT5yeG1vZGUubXFfbW9kZSA9PSBSVEVfRVRIX01R X1JYX1JTUykgewogCQlmb3IgKHRjX2luZGV4ID0gMDsgdGNfaW5kZXggPCBwcml2LT5udW1fcnhf dGM7IHRjX2luZGV4KyspIHsKIAkJCXJldCA9IGRwYWEyX3NldHVwX2Zsb3dfZGlzdChkZXYsCiAJ CQkJCWV0aF9jb25mLT5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYsCmRpZmYgYS9kcml2ZXJz L25ldC9lMTAwMC9lbV9yeHR4LmMgYi9kcml2ZXJzL25ldC9lMTAwMC9lbV9yeHR4LmMJKHJlamVj dGVkIGh1bmtzKQpAQCAtMTM2OSwxMyArMTM2OSwxMyBAQCBlbV9nZXRfcnhfcG9ydF9vZmZsb2Fk c19jYXBhKHZvaWQpCiAJdWludDY0X3Qgcnhfb2ZmbG9hZF9jYXBhOwogCiAJcnhfb2ZmbG9hZF9j YXBhID0KLQkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCAgfAotCQlERVZfUlhfT0ZGTE9BRF9W TEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKLQkJREVWX1JYX09G RkxPQURfVURQX0NLU1VNICAgfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8Ci0JCURF Vl9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgIHwKLQkJREVWX1JYX09GRkxPQURfU0NBVFRFUjsKKwkJ UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fRklMVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKKwkJUlRFX0VU SF9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NV TSAgIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgIHwKKwkJUlRFX0VUSF9SWF9P RkZMT0FEX1NDQVRURVI7CiAKIAlyZXR1cm4gcnhfb2ZmbG9hZF9jYXBhOwogfQpkaWZmIGEvZHJp dmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYyBiL2RyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMJ KHJlamVjdGVkIGh1bmtzKQpAQCAtMTY0MCwxOSArMTY0MCwxOSBAQCBpZ2JfZ2V0X3J4X3BvcnRf b2ZmbG9hZHNfY2FwYShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAogCWh3ID0gRTEwMDBfREVW X1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CiAKLQlyeF9vZmZsb2FkX2Nh cGEgPSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8Ci0JCQkgIERFVl9SWF9PRkZMT0FEX1ZM QU5fRklMVEVSIHwKLQkJCSAgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAotCQkJICBERVZf UlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8Ci0JCQkgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSAg IHwKLQkJCSAgREVWX1JYX09GRkxPQURfS0VFUF9DUkMgICAgfAotCQkJICBERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSICAgICB8Ci0JCQkgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCXJ4X29mZmxv YWRfY2FwYSA9IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8CisJCQkgIFJURV9FVEhf UlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NL U1VNICB8CisJCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8CisJCQkgIFJURV9F VEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CisJCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQ X0NSQyAgICB8CisJCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSICAgICB8CisJCQkgIFJU RV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAogCWlmIChody0+bWFjLnR5cGUgPT0gZTEwMDBf aTM1MCB8fAogCSAgICBody0+bWFjLnR5cGUgPT0gZTEwMDBfaTIxMCB8fAogCSAgICBody0+bWFj LnR5cGUgPT0gZTEwMDBfaTIxMSkKLQkJcnhfb2ZmbG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FE X1ZMQU5fRVhURU5EOworCQlyeF9vZmZsb2FkX2NhcGEgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fRVhURU5EOwogCiAJcmV0dXJuIHJ4X29mZmxvYWRfY2FwYTsKIH0KZGlmZiBhL2RyaXZlcnMv bmV0L2VuYS9lbmFfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jCShyZWpl Y3RlZCBodW5rcykKQEAgLTIwMDQsOSArMjAwNCw5IEBAIHN0YXRpYyBpbnQgZW5hX2Rldl9jb25m aWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAKIAlhZGFwdGVyLT5zdGF0ZSA9IEVOQV9B REFQVEVSX1NUQVRFX0NPTkZJRzsKIAotCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5t cV9tb2RlICYgRVRIX01RX1JYX1JTU19GTEFHKQotCQlkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9k ZS5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKLQlkZXYtPmRhdGEtPmRldl9j b25mLnR4bW9kZS5vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOworCWlmIChk ZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlICYgUlRFX0VUSF9NUV9SWF9SU1NfRkxB RykKKwkJZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9P RkZMT0FEX1JTU19IQVNIOworCWRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9 IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwogCiAJLyogU2NhdHRlcmVkIFJ4IGNhbm5v dCBiZSB0dXJuZWQgb2ZmIGluIHRoZSBIVywgc28gdGhpcyBjYXBhYmlsaXR5IG11c3QKIAkgKiBi ZSBmb3JjZWQuCkBAIC0yMDY3LDE3ICsyMDY3LDE3IEBAIHN0YXRpYyB1aW50NjRfdCBlbmFfZ2V0 X3J4X3BvcnRfb2ZmbG9hZHMoc3RydWN0IGVuYV9hZGFwdGVyICphZGFwdGVyKQogCXVpbnQ2NF90 IHBvcnRfb2ZmbG9hZHMgPSAwOwogCiAJaWYgKGFkYXB0ZXItPm9mZmxvYWRzLnJ4X29mZmxvYWRz ICYgRU5BX0wzX0lQVjRfQ1NVTSkKLQkJcG9ydF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9J UFY0X0NLU1VNOworCQlwb3J0X29mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NL U1VNOwogCiAJaWYgKGFkYXB0ZXItPm9mZmxvYWRzLnJ4X29mZmxvYWRzICYKIAkgICAgKEVOQV9M NF9JUFY0X0NTVU0gfCBFTkFfTDRfSVBWNl9DU1VNKSkKIAkJcG9ydF9vZmZsb2FkcyB8PQotCQkJ REVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwgREVWX1JYX09GRkxPQURfVENQX0NLU1VNOworCQkJ UlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tT VU07CiAKIAlpZiAoYWRhcHRlci0+b2ZmbG9hZHMucnhfb2ZmbG9hZHMgJiBFTkFfUlhfUlNTX0hB U0gpCi0JCXBvcnRfb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CisJCXBvcnRf b2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCi0JcG9ydF9vZmZsb2Fk cyB8PSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOworCXBvcnRfb2ZmbG9hZHMgfD0gUlRFX0VUSF9S WF9PRkZMT0FEX1NDQVRURVI7CiAKIAlyZXR1cm4gcG9ydF9vZmZsb2FkczsKIH0KQEAgLTIwODcs MTcgKzIwODcsMTcgQEAgc3RhdGljIHVpbnQ2NF90IGVuYV9nZXRfdHhfcG9ydF9vZmZsb2Fkcyhz dHJ1Y3QgZW5hX2FkYXB0ZXIgKmFkYXB0ZXIpCiAJdWludDY0X3QgcG9ydF9vZmZsb2FkcyA9IDA7 CiAKIAlpZiAoYWRhcHRlci0+b2ZmbG9hZHMudHhfb2ZmbG9hZHMgJiBFTkFfSVBWNF9UU08pCi0J CXBvcnRfb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfVENQX1RTTzsKKwkJcG9ydF9vZmZsb2Fk cyB8PSBSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTzsKIAogCWlmIChhZGFwdGVyLT5vZmZsb2Fk cy50eF9vZmZsb2FkcyAmIEVOQV9MM19JUFY0X0NTVU0pCi0JCXBvcnRfb2ZmbG9hZHMgfD0gREVW X1RYX09GRkxPQURfSVBWNF9DS1NVTTsKKwkJcG9ydF9vZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09G RkxPQURfSVBWNF9DS1NVTTsKIAlpZiAoYWRhcHRlci0+b2ZmbG9hZHMudHhfb2ZmbG9hZHMgJgog CSAgICAoRU5BX0w0X0lQVjRfQ1NVTV9QQVJUSUFMIHwgRU5BX0w0X0lQVjRfQ1NVTSB8CiAJICAg ICBFTkFfTDRfSVBWNl9DU1VNIHwgRU5BX0w0X0lQVjZfQ1NVTV9QQVJUSUFMKSkKIAkJcG9ydF9v ZmZsb2FkcyB8PQotCQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwgREVWX1RYX09GRkxPQURf VENQX0NLU1VNOworCQkJUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFJURV9FVEhfVFhf T0ZGTE9BRF9UQ1BfQ0tTVU07CiAKLQlwb3J0X29mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01V TFRJX1NFR1M7CisJcG9ydF9vZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VH UzsKIAogCXJldHVybiBwb3J0X29mZmxvYWRzOwogfQpAQCAtMjEzMCwxNCArMjEzMCwxNCBAQCBz dGF0aWMgaW50IGVuYV9pbmZvc19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCiAJZW5hX2Fz c2VydF9tc2coZW5hX2RldiAhPSBOVUxMLCAiVW5pbml0aWFsaXplZCBkZXZpY2VcbiIpOwogCiAJ ZGV2X2luZm8tPnNwZWVkX2NhcGEgPQotCQkJRVRIX0xJTktfU1BFRURfMUcgICB8Ci0JCQlFVEhf TElOS19TUEVFRF8yXzVHIHwKLQkJCUVUSF9MSU5LX1NQRUVEXzVHICAgfAotCQkJRVRIX0xJTktf U1BFRURfMTBHICB8Ci0JCQlFVEhfTElOS19TUEVFRF8yNUcgIHwKLQkJCUVUSF9MSU5LX1NQRUVE XzQwRyAgfAotCQkJRVRIX0xJTktfU1BFRURfNTBHICB8Ci0JCQlFVEhfTElOS19TUEVFRF8xMDBH OworCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzFHICAgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzJf NUcgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzVHICAgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVE XzEwRyAgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzI1RyAgfAorCQkJUlRFX0VUSF9MSU5LX1NQ RUVEXzQwRyAgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzUwRyAgfAorCQkJUlRFX0VUSF9MSU5L X1NQRUVEXzEwMEc7CiAKIAkvKiBJbmZvcm0gZnJhbWV3b3JrIGFib3V0IGF2YWlsYWJsZSBmZWF0 dXJlcyAqLwogCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSBlbmFfZ2V0X3J4X3BvcnRfb2Zm bG9hZHMoYWRhcHRlcik7CkBAIC0yNDE2LDExICsyNDE2LDExIEBAIGV0aF9lbmFfcHJlcF9wa3Rz KHZvaWQgKnR4X3F1ZXVlLCBzdHJ1Y3QgcnRlX21idWYgKip0eF9wa3RzLAogI2lmZGVmIFJURV9M SUJSVEVfRVRIREVWX0RFQlVHCiAJCS8qIENoZWNrIGlmIHJlcXVlc3RlZCBvZmZsb2FkIGlzIGFs c28gZW5hYmxlZCBmb3IgdGhlIHF1ZXVlICovCiAJCWlmICgob2xfZmxhZ3MgJiBQS1RfVFhfSVBf Q0tTVU0gJiYKLQkJICAgICAhKHR4X3JpbmctPm9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfSVBW NF9DS1NVTSkpIHx8CisJCSAgICAgISh0eF9yaW5nLT5vZmZsb2FkcyAmIFJURV9FVEhfVFhfT0ZG TE9BRF9JUFY0X0NLU1VNKSkgfHwKIAkJICAgIChsNF9jc3VtX2ZsYWcgPT0gUEtUX1RYX1RDUF9D S1NVTSAmJgotCQkgICAgICEodHhfcmluZy0+b2ZmbG9hZHMgJiBERVZfVFhfT0ZGTE9BRF9UQ1Bf Q0tTVU0pKSB8fAorCQkgICAgICEodHhfcmluZy0+b2ZmbG9hZHMgJiBSVEVfRVRIX1RYX09GRkxP QURfVENQX0NLU1VNKSkgfHwKIAkJICAgIChsNF9jc3VtX2ZsYWcgPT0gUEtUX1RYX1VEUF9DS1NV TSAmJgotCQkgICAgICEodHhfcmluZy0+b2ZmbG9hZHMgJiBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tT VU0pKSkgeworCQkgICAgICEodHhfcmluZy0+b2ZmbG9hZHMgJiBSVEVfRVRIX1RYX09GRkxPQURf VURQX0NLU1VNKSkpIHsKIAkJCVBNRF9UWF9MT0coREVCVUcsCiAJCQkJIm1idWZbJSIgUFJJdTMy ICJdOiByZXF1ZXN0ZWQgb2ZmbG9hZHM6ICUiIFBSSXUxNiAiIGFyZSBub3QgZW5hYmxlZCBmb3Ig dGhlIHF1ZXVlWyV1XVxuIiwKIAkJCQlpLCBtLT5uYl9zZWdzLCB0eF9yaW5nLT5pZCk7CmRpZmYg YS9kcml2ZXJzL25ldC9lbmEvZW5hX3Jzcy5jIGIvZHJpdmVycy9uZXQvZW5hL2VuYV9yc3MuYwko cmVqZWN0ZWQgaHVua3MpCkBAIC0xMzksNyArMTM5LDcgQEAgaW50IGVuYV9yc3NfcmV0YV9xdWVy eShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKIAlpZiAocmV0YV9zaXplID09IDAgfHwgcmV0YV9j b25mID09IE5VTEwpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKCEoZGV2LT5kYXRhLT5kZXZf Y29uZi5yeG1vZGUub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkpIHsKKwlpZiAo IShkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9B RF9SU1NfSEFTSCkpIHsKIAkJUE1EX0RSVl9MT0coRVJSLAogCQkJIlJTUyB3YXMgbm90IGNvbmZp Z3VyZWQgZm9yIHRoZSBQTURcbiIpOwogCQlyZXR1cm4gLUVOT1RTVVA7CmRpZmYgYS9kcml2ZXJz L25ldC9lbmV0Yy9lbmV0Y19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2VuZXRjL2VuZXRjX2V0aGRl di5jCShyZWplY3RlZCBodW5rcykKQEAgLTIwNywxMCArMjA3LDEwIEBAIGVuZXRjX2Rldl9pbmZv c19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgX19ydGVfdW51c2VkLAogCWRldl9pbmZvLT5t YXhfdHhfcXVldWVzID0gTUFYX1RYX1JJTkdTOwogCWRldl9pbmZvLT5tYXhfcnhfcGt0bGVuID0g RU5FVENfTUFDX01BWEZSTV9TSVpFOwogCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPQotCQko REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0g fAotCQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJIERFVl9SWF9PRkZMT0FEX0tFRVBf Q1JDKTsKKwkJKFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJIFJURV9FVEhfUlhf T0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJ CSBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC03MDUs NyArNzA1LDcgQEAgZW5ldGNfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikK IAllbmV0Y19wb3J0X3dyKGVuZXRjX2h3LCBFTkVUQ19QVENNU0RVUigwKSwgRU5FVENfTUFDX01B WEZSTV9TSVpFKTsKIAllbmV0Y19wb3J0X3dyKGVuZXRjX2h3LCBFTkVUQ19QVFhNQkFSLCAyICog RU5FVENfTUFDX01BWEZSTV9TSVpFKTsKIAotCWlmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZM T0FEX0tFRVBfQ1JDKSB7CisJaWYgKHJ4X29mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX0tF RVBfQ1JDKSB7CiAJCWludCBjb25maWc7CiAKIAkJY29uZmlnID0gZW5ldGNfcG9ydF9yZChlbmV0 Y19odywgRU5FVENfUE0wX0NNRF9DRkcpOwpkaWZmIGEvZHJpdmVycy9uZXQvZW5pYy9lbmljX21h aW4uYyBiL2RyaXZlcnMvbmV0L2VuaWMvZW5pY19tYWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAt ODU4LDcgKzg1OCw3IEBAIGludCBlbmljX2FsbG9jX3JxKHN0cnVjdCBlbmljICplbmljLCB1aW50 MTZfdCBxdWV1ZV9pZHgsCiAJbWF4X3J4X3BrdGxlbiA9IGVuaWNfbXR1X3RvX21heF9yeF9wa3Rs ZW4oZW5pYy0+cnRlX2Rldi0+ZGF0YS0+bXR1KTsKIAogCWlmIChlbmljLT5ydGVfZGV2LT5kYXRh LT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJgotCSAgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVS KSB7CisJICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CiAJCWRldl9pbmZvKGVuaWMs ICJScSAldSBTY2F0dGVyIHJ4IG1vZGUgZW5hYmxlZFxuIiwgcXVldWVfaWR4KTsKIAkJLyogY2Vp bCgobWF4IHBrdCBsZW4pL21idWZfc2l6ZSkgKi8KIAkJbWJ1ZnNfcGVyX3BrdCA9IChtYXhfcnhf cGt0bGVuICsgbWJ1Zl9zaXplIC0gMSkgLyBtYnVmX3NpemU7CmRpZmYgYS9kcml2ZXJzL25ldC9l bmljL2VuaWNfcmVzLmMgYi9kcml2ZXJzL25ldC9lbmljL2VuaWNfcmVzLmMJKHJlamVjdGVkIGh1 bmtzKQpAQCAtMjAxLDE5ICsyMDEsMTkgQEAgaW50IGVuaWNfZ2V0X3ZuaWNfY29uZmlnKHN0cnVj dCBlbmljICplbmljKQogCWVuaWMtPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CiAJZW5pYy0+ dHhfb2ZmbG9hZF9jYXBhID0KIAkJZW5pYy0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhIHwKLQkJREVW X1RYX09GRkxPQURfTVVMVElfU0VHUyB8Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwK LQkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NV TSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9U U087CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlS VEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9D S1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPOwogCWVuaWMtPnJ4X29mZmxvYWRf Y2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFO X1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FE X1VEUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZM T0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCVJURV9FVEhf UlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0g fAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FE X1RDUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAllbmljLT50eF9v ZmZsb2FkX21hc2sgPQogCQlQS1RfVFhfSVBWNiB8CiAJCVBLVF9UWF9JUFY0IHwKZGlmZiBhL2Ry aXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxzYWZlX29wcy5jIGIvZHJpdmVycy9uZXQvZmFpbHNhZmUv ZmFpbHNhZmVfb3BzLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTE3Miw1MSArMTE3Miw1MSBAQCBm c19kZXZfaW5mb3NfZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LAogCSAqIGNvbmZpZ3VyaW5n IGEgc3ViLWRldmljZS4KIAkgKi8KIAlpbmZvcy0+cnhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1JY X09GRkxPQURfVkxBTl9TVFJJUCB8Ci0JCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlE RVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAot CQlERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPIHwKLQkJREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8 Ci0JCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9N QUNTRUNfU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQgfAotCQlERVZfUlhf T0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKLQkJ REVWX1JYX09GRkxPQURfU0NBVFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUCB8Ci0J CURFVl9SWF9PRkZMT0FEX1NFQ1VSSVRZIHwKLQkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9S WF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfTFJPIHwKKwkJ UlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfT1VU RVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAgfAorCQlS VEVfRVRIX1JYX09GRkxPQURfSEVBREVSX1NQTElUIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fRklMVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKKwkJUlRFX0VU SF9SWF9PRkZMT0FEX1NDQVRURVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVElNRVNUQU1QIHwK KwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NFQ1VSSVRZIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1JT U19IQVNIOwogCiAJaW5mb3MtPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZM T0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1JY X09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVW X1JYX09GRkxPQURfVENQX0xSTyB8Ci0JCURFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAotCQlE RVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfTUFDU0VD X1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfSEVBREVSX1NQTElUIHwKLQkJREVWX1JYX09GRkxP QURfVkxBTl9GSUxURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8Ci0JCURFVl9S WF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAgfAotCQlERVZf UlhfT0ZGTE9BRF9TRUNVUklUWSB8Ci0JCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQlSVEVf RVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NL U1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZG TE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyB8CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQ VjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQIHwKKwkJUlRFX0VU SF9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8CisJCVJURV9FVEhfUlhf T0ZGTE9BRF9TQ0FUVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFNUCB8CisJCVJU RV9FVEhfUlhfT0ZGTE9BRF9TRUNVUklUWSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFT SDsKIAogCWluZm9zLT50eF9vZmZsb2FkX2NhcGEgPQotCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9T RUdTIHwKLQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgfAotCQlERVZfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1RYX09G RkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVENQX1RTTzsKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX01VTFRJX1NFR1MgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZS RUUgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZG TE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRF X0VUSF9UWF9PRkZMT0FEX1RDUF9UU087CiAKIAlpbmZvcy0+Zmxvd190eXBlX3Jzc19vZmZsb2Fk cyA9Ci0JCUVUSF9SU1NfSVAgfAotCQlFVEhfUlNTX1VEUCB8Ci0JCUVUSF9SU1NfVENQOworCQlS VEVfRVRIX1JTU19JUCB8CisJCVJURV9FVEhfUlNTX1VEUCB8CisJCVJURV9FVEhfUlNTX1RDUDsK IAlpbmZvcy0+ZGV2X2NhcGEgPQogCQlSVEVfRVRIX0RFVl9DQVBBX1JVTlRJTUVfUlhfUVVFVUVf U0VUVVAgfAogCQlSVEVfRVRIX0RFVl9DQVBBX1JVTlRJTUVfVFhfUVVFVUVfU0VUVVA7CmRpZmYg YS9kcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2ZtMTBrL2Zt MTBrX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTc1OSw3ICs3NTksNyBAQCBmbTEwa19k ZXZfcnhfaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAkJLyogSXQgYWRkcyBkdWFsIFZM QU4gbGVuZ3RoIGZvciBzdXBwb3J0aW5nIGR1YWwgVkxBTiAqLwogCQlpZiAoKGRldi0+ZGF0YS0+ bXR1ICsgUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTiArCiAJCQkJMiAqIEZN MTBLX1ZMQU5fVEFHX1NJWkUpID4gYnVmX3NpemUgfHwKLQkJCXJ4cS0+b2ZmbG9hZHMgJiBERVZf UlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CisJCQlyeHEtPm9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZM T0FEX1NDQVRURVIpIHsKIAkJCXVpbnQzMl90IHJlZzsKIAkJCWRldi0+ZGF0YS0+c2NhdHRlcmVk X3J4ID0gMTsKIAkJCXJlZyA9IEZNMTBLX1JFQURfUkVHKGh3LCBGTTEwS19TUlJDVEwoaSkpOwpA QCAtMTc2NywyMCArMTc2NywyMCBAQCBzdGF0aWMgdWludDY0X3QgZm0xMGtfZ2V0X3J4X3F1ZXVl X29mZmxvYWRzX2NhcGEoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiB7CiAJUlRFX1NFVF9VU0VE KGRldik7CiAKLQlyZXR1cm4gKHVpbnQ2NF90KShERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKTsKKwly ZXR1cm4gKHVpbnQ2NF90KShSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUik7CiB9CiAKIHN0YXRp YyB1aW50NjRfdCBmbTEwa19nZXRfcnhfcG9ydF9vZmZsb2Fkc19jYXBhKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2KQogewogCVJURV9TRVRfVVNFRChkZXYpOwogCi0JcmV0dXJuICAodWludDY0X3Qp KERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX1ZMQU5f RklMVEVSIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKLQkJCSAgIERFVl9S WF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSAg IHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8Ci0JCQkgICBERVZfUlhfT0ZG TE9BRF9SU1NfSEFTSCk7CisJcmV0dXJuICAodWludDY0X3QpKFJURV9FVEhfUlhfT0ZGTE9BRF9W TEFOX1NUUklQICB8CisJCQkgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAorCQkJ ICAgUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKKwkJCSAgIFJURV9FVEhfUlhfT0ZG TE9BRF9VRFBfQ0tTVU0gICB8CisJCQkgICBSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VNICAg fAorCQkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8CisJCQkgICBSVEVfRVRI X1JYX09GRkxPQURfUlNTX0hBU0gpOwogfQogCiBzdGF0aWMgaW50CmRpZmYgYS9kcml2ZXJzL25l dC9oaW5pYy9oaW5pY19wbWRfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRf ZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMzExLDggKzMxMSw4IEBAIHN0YXRpYyBpbnQg aGluaWNfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCi0JaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBF VEhfTVFfUlhfUlNTX0ZMQUcpCi0JCWRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRz IHw9IERFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4 bW9kZS5tcV9tb2RlICYgUlRFX0VUSF9NUV9SWF9SU1NfRkxBRykKKwkJZGV2LT5kYXRhLT5kZXZf Y29uZi5yeG1vZGUub2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCiAJ LyogbXR1IHNpemUgaXMgMjU2fjk2MDAgKi8KIAlpZiAoSElOSUNfTVRVX1RPX1BLVExFTihkZXYt PmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tdHUpIDwKQEAgLTczMiwyNCArNzMyLDI0IEBAIGhpbmlj X2Rldl9pbmZvc19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdCBydGVfZXRoX2Rl dl9pbmZvICppbmZvKQogCiAJaGluaWNfZ2V0X3NwZWVkX2NhcGEoZGV2LCAmaW5mby0+c3BlZWRf Y2FwYSk7CiAJaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsKLQlpbmZvLT5yeF9vZmZs b2FkX2NhcGEgPSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKLQkJCQlERVZfUlhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKLQkJCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQkJCURFVl9S WF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCQkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAot CQkJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQkJCURFVl9SWF9PRkZMT0FEX1RDUF9MUk8g fAotCQkJCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCWluZm8tPnJ4X29mZmxvYWRfY2FwYSA9 IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJCQlSVEVfRVRIX1JYX09GRkxPQURf SVBWNF9DS1NVTSB8CisJCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCQkJUlRF X0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5f RklMVEVSIHwKKwkJCQlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCQkJUlRFX0VUSF9S WF9PRkZMT0FEX1RDUF9MUk8gfAorCQkJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAog CWluZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7Ci0JaW5mby0+dHhfb2ZmbG9hZF9jYXBh ID0gREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAotCQkJCURFVl9UWF9PRkZMT0FEX0lQVjRf Q0tTVU0gfAotCQkJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQkJREVWX1RYX09GRkxP QURfVENQX0NLU1VNIHwKLQkJCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJCQlERVZf VFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNP IHwKLQkJCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOworCWluZm8tPnR4X29mZmxvYWRfY2Fw YSA9IFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCQkJUlRFX0VUSF9UWF9PRkZM T0FEX0lQVjRfQ0tTVU0gfAorCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJ CVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9T Q1RQX0NLU1VNIHwKKwkJCQlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJ CQkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfAorCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9N VUxUSV9TRUdTOwogCiAJaW5mby0+aGFzaF9rZXlfc2l6ZSA9IEhJTklDX1JTU19LRVlfU0laRTsK IAlpbmZvLT5yZXRhX3NpemUgPSBISU5JQ19SU1NfSU5ESVJfU0laRTsKZGlmZiBhL2RyaXZlcnMv bmV0L2huczMvaG5zM19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXYuYwko cmVqZWN0ZWQgaHVua3MpCkBAIC0yNjc2LDQwICsyNjc2LDQwIEBAIGhuczNfZGV2X2luZm9zX2dl dChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHN0cnVjdCBydGVfZXRoX2Rldl9pbmZvICpp bmZvKQogCWluZm8tPm1heF9tYWNfYWRkcnMgPSBITlMzX1VDX01BQ0FERFJfTlVNOwogCWluZm8t Pm1heF9tdHUgPSBpbmZvLT5tYXhfcnhfcGt0bGVuIC0gSE5TM19FVEhfT1ZFUkhFQUQ7CiAJaW5m by0+bWF4X2xyb19wa3Rfc2l6ZSA9IEhOUzNfTUFYX0xST19TSVpFOwotCWluZm8tPnJ4X29mZmxv YWRfY2FwYSA9IChERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJCQkgREVWX1JYX09GRkxP QURfVENQX0NLU1VNIHwKLQkJCQkgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJCQkgREVW X1JYX09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0gfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAotCQkJCSBERVZf UlhfT0ZGTE9BRF9LRUVQX0NSQyB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQkJ CSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKLQkJCQkgREVWX1JYX09GRkxPQURfVkxBTl9G SUxURVIgfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8Ci0JCQkJIERFVl9SWF9PRkZM T0FEX1RDUF9MUk8pOwotCWluZm8tPnR4X29mZmxvYWRfY2FwYSA9IChERVZfVFhfT0ZGTE9BRF9P VVRFUl9JUFY0X0NLU1VNIHwKLQkJCQkgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCQkJ IERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NV TSB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAotCQkJCSBERVZfVFhfT0ZGTE9B RF9NVUxUSV9TRUdTIHwKLQkJCQkgREVWX1RYX09GRkxPQURfVENQX1RTTyB8Ci0JCQkJIERFVl9U WF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAotCQkJCSBERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RT TyB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKLQkJCQkgREVWX1RYX09G RkxPQURfTUJVRl9GQVNUX0ZSRUUgfAorCWluZm8tPnJ4X29mZmxvYWRfY2FwYSA9IChSVEVfRVRI X1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tT VU0gfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9S WF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAorCQkJ CSBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMgfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURf U0NBVFRFUiB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJCQkgUlRF X0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1JT U19IQVNIIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8pOworCWluZm8tPnR4X29m ZmxvYWRfY2FwYSA9IChSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCQkJ IFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FE X1RDUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJCSBS VEVfRVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9N VUxUSV9TRUdTIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfAorCQkJCSBSVEVf RVRIX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9H UkVfVE5MX1RTTyB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CisJ CQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSB8CiAJCQkJIGhuczNfdHh2bGFu X2NhcF9nZXQoaHcpKTsKIAogCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywgT1VURVJfVURQ X0NLU1VNKSkKLQkJaW5mby0+dHhfb2ZmbG9hZF9jYXBhIHw9IERFVl9UWF9PRkZMT0FEX09VVEVS X1VEUF9DS1NVTTsKKwkJaW5mby0+dHhfb2ZmbG9hZF9jYXBhIHw9IFJURV9FVEhfVFhfT0ZGTE9B RF9PVVRFUl9VRFBfQ0tTVU07CiAKIAlpZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQoaHcsIElOREVQ X1RYUlgpKQogCQlpbmZvLT5kZXZfY2FwYSA9IFJURV9FVEhfREVWX0NBUEFfUlVOVElNRV9SWF9R VUVVRV9TRVRVUCB8CiAJCQkJIFJURV9FVEhfREVWX0NBUEFfUlVOVElNRV9UWF9RVUVVRV9TRVRV UDsKIAogCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywgUFRQKSkKLQkJaW5mby0+cnhfb2Zm bG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUDsKKwkJaW5mby0+cnhfb2ZmbG9h ZF9jYXBhIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVA7CiAKIAlpbmZvLT5yeF9kZXNj X2xpbSA9IChzdHJ1Y3QgcnRlX2V0aF9kZXNjX2xpbSkgewogCQkubmJfbWF4ID0gSE5TM19NQVhf UklOR19ERVNDLApkaWZmIGEvZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldl92Zi5jIGIvZHJp dmVycy9uZXQvaG5zMy9obnMzX2V0aGRldl92Zi5jCShyZWplY3RlZCBodW5rcykKQEAgLTkzNSwz MiArOTM1LDMyIEBAIGhuczN2Zl9kZXZfaW5mb3NfZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZXRo X2Rldiwgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmluZm8pCiAJaW5mby0+bWF4X210dSA9IGlu Zm8tPm1heF9yeF9wa3RsZW4gLSBITlMzX0VUSF9PVkVSSEVBRDsKIAlpbmZvLT5tYXhfbHJvX3Br dF9zaXplID0gSE5TM19NQVhfTFJPX1NJWkU7CiAKLQlpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSAo REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NV TSB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCQkJIERFVl9SWF9PRkZMT0FE X1NDVFBfQ0tTVU0gfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJ CQkgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKLQkJCQkgREVWX1JYX09GRkxPQURf U0NBVFRFUiB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQkJCSBERVZfUlhf T0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKLQkJ CQkgREVWX1JYX09GRkxPQURfVENQX0xSTyk7Ci0JaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gKERF Vl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQkJCSBERVZfVFhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwKLQkJCQkgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJCQkgREVWX1RYX09G RkxPQURfVURQX0NLU1VNIHwKLQkJCQkgREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCQkJ IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAotCQkJCSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNP IHwKLQkJCQkgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8Ci0JCQkJIERFVl9UWF9PRkZM T0FEX0dSRV9UTkxfVFNPIHwKLQkJCQkgREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAot CQkJCSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSB8CisJaW5mby0+cnhfb2ZmbG9hZF9j YXBhID0gKFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9SWF9P RkZMT0FEX1VEUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAor CQkJCSBSVEVfRVRIX1JYX09GRkxPQURfU0NUUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZG TE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX1VE UF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKKwkJCQkgUlRFX0VU SF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9G SUxURVIgfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0ggfAorCQkJCSBSVEVfRVRI X1JYX09GRkxPQURfVENQX0xSTyk7CisJaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gKFJURV9FVEhf VFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJCQkgUlRF X0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQ X0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAorCQkJCSBSVEVf RVRIX1RYX09GRkxPQURfVENQX1RTTyB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9U TkxfVFNPIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKKwkJCQkgUlRF X0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FE X01CVUZfRkFTVF9GUkVFIHwKIAkJCQkgaG5zM190eHZsYW5fY2FwX2dldChodykpOwogCiAJaWYg KGhuczNfZGV2X2dldF9zdXBwb3J0KGh3LCBPVVRFUl9VRFBfQ0tTVU0pKQotCQlpbmZvLT50eF9v ZmZsb2FkX2NhcGEgfD0gREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNOworCQlpbmZvLT50 eF9vZmZsb2FkX2NhcGEgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTTsKIAog CWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywgSU5ERVBfVFhSWCkpCiAJCWluZm8tPmRldl9j YXBhID0gUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1FX1JYX1FVRVVFX1NFVFVQIHwKZGlmZiBhL2Ry aXZlcnMvbmV0L2huczMvaG5zM19yeHR4LmMgYi9kcml2ZXJzL25ldC9obnMzL2huczNfcnh0eC5j CShyZWplY3RlZCBodW5rcykKQEAgLTE5NjksNyArMTk2OSw3IEBAIGhuczNfcnhfc2NhdHRlcmVk X2NhbGMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJCQkJCQkgcnhxLT5yeF9idWZfbGVuKTsK IAl9CiAKLQlpZiAoZGV2X2NvbmYtPnJ4bW9kZS5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1ND QVRURVIgfHwKKwlpZiAoZGV2X2NvbmYtPnJ4bW9kZS5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZG TE9BRF9TQ0FUVEVSIHx8CiAJICAgIGRldi0+ZGF0YS0+bXR1ICsgSE5TM19FVEhfT1ZFUkhFQUQg PiBody0+cnhfYnVmX2xlbikKIAkJZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSB0cnVlOwogfQpA QCAtNDI5MSw3ICs0MjkxLDcgQEAgaG5zM190eF9jaGVja19zaW1wbGVfc3VwcG9ydChzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldikKIAlpZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQoaHcsIFBUUCkpCiAJ CXJldHVybiBmYWxzZTsKIAotCXJldHVybiAob2ZmbG9hZHMgPT0gKG9mZmxvYWRzICYgREVWX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpKTsKKwlyZXR1cm4gKG9mZmxvYWRzID09IChvZmZsb2Fk cyAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkpOwogfQogCiBzdGF0aWMgYm9v bApkaWZmIGEvZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHhfdmVjLmMgYi9kcml2ZXJzL25ldC9o bnMzL2huczNfcnh0eF92ZWMuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yMiw4ICsyMiw4IEBAIGhu czNfdHhfY2hlY2tfdmVjX3N1cHBvcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJaWYgKGhu czNfZGV2X2dldF9zdXBwb3J0KGh3LCBQVFApKQogCQlyZXR1cm4gLUVOT1RTVVA7CiAKLQkvKiBP bmx5IHN1cHBvcnQgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgKi8KLQlpZiAodHhtb2Rl LT5vZmZsb2FkcyAhPSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKKwkvKiBPbmx5IHN1 cHBvcnQgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFICovCisJaWYgKHR4bW9kZS0+ b2ZmbG9hZHMgIT0gUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQogCQlyZXR1cm4g LUVOT1RTVVA7CiAKIAlyZXR1cm4gMDsKQEAgLTIyOCwxMCArMjI4LDEwIEBAIGhuczNfcnhxX3Zl Y19jaGVjayhzdHJ1Y3QgaG5zM19yeF9xdWV1ZSAqcnhxLCB2b2lkICphcmcpCiBpbnQKIGhuczNf cnhfY2hlY2tfdmVjX3N1cHBvcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiB7Ci0Jc3RydWN0 IHJ0ZV9mZGlyX2NvbmYgKmZjb25mID0gJmRldi0+ZGF0YS0+ZGV2X2NvbmYuZmRpcl9jb25mOwor CXN0cnVjdCBydGVfZXRoX2ZkaXJfY29uZiAqZmNvbmYgPSAmZGV2LT5kYXRhLT5kZXZfY29uZi5m ZGlyX2NvbmY7CiAJc3RydWN0IHJ0ZV9ldGhfcnhtb2RlICpyeG1vZGUgPSAmZGV2LT5kYXRhLT5k ZXZfY29uZi5yeG1vZGU7Ci0JdWludDY0X3Qgb2ZmbG9hZHNfbWFzayA9IERFVl9SWF9PRkZMT0FE X1RDUF9MUk8gfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9WTEFOOworCXVpbnQ2NF90IG9mZmxvYWRz X21hc2sgPSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyB8CisJCQkJIFJURV9FVEhfUlhfT0ZG TE9BRF9WTEFOOwogCiAJc3RydWN0IGhuczNfaHcgKmh3ID0gSE5TM19ERVZfUFJJVkFURV9UT19I VyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKIAlpZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQoaHcs IFBUUCkpCmRpZmYgYS9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMgYi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMzcyMCwzMyArMzcyMCwz MyBAQCBpNDBlX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0 ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQogCWRldl9pbmZvLT5taW5fbXR1ID0gUlRFX0VUSEVS X01JTl9NVFU7CiAJZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CiAJZGV2X2lu Zm8tPnJ4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlE RVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8 Ci0JCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NV TSB8Ci0JCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9B RF9LRUVQX0NSQyB8Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9B RF9WTEFOX0VYVEVORCB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKLQkJREVWX1JY X09GRkxPQURfUlNTX0hBU0g7Ci0KLQlkZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhID0g REVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFO X1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAorCQlSVEVfRVRIX1JY X09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAor CQlSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX09V VEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMgfAorCQlSVEVf RVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVO RCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCVJURV9FVEhfUlhfT0ZG TE9BRF9SU1NfSEFTSDsKKworCWRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSBSVEVf RVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAJZGV2X2luZm8tPnR4X29mZmxvYWRfY2Fw YSA9Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKLQkJREVWX1RYX09GRkxPQURfUUlO UV9JTlNFUlQgfAotCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxP QURfVURQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1RYX09G RkxPQURfU0NUUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAot CQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RT TyB8Ci0JCURFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfSVBJ UF9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAotCQlERVZfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwK KwkJUlRFX0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FE X0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VU SF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VN IHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RY X09GRkxPQURfVENQX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwK KwkJUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FE X0lQSVBfVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CisJ CVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKIAkJZGV2X2luZm8tPnR4X3F1ZXVlX29m ZmxvYWRfY2FwYTsKIAlkZXZfaW5mby0+ZGV2X2NhcGEgPQogCQlSVEVfRVRIX0RFVl9DQVBBX1JV TlRJTUVfUlhfUVVFVUVfU0VUVVAgfApkaWZmIGEvZHJpdmVycy9uZXQvaTQwZS9pNDBlX2hhc2gu YyBiL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9oYXNoLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMjM5 LDcyICsyMzksNzIgQEAgc3RydWN0IGk0MGVfaGFzaF9tYXRjaF9wYXR0ZXJuIHsKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaTQwZV9oYXNoX21hdGNoX3BhdHRlcm4gbWF0Y2hfcGF0dGVybnNbXSA9IHsK IAkvKiBFdGhlciAqLwogCUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBFX1BISU5UX0VUSCwKLQkJ CSAgICAgIEVUSF9SU1NfTDJfUEFZTE9BRCB8IEk0MEVfSEFTSF9MMl9SU1NfTUFTSywKKwkJCSAg ICAgIFJURV9FVEhfUlNTX0wyX1BBWUxPQUQgfCBJNDBFX0hBU0hfTDJfUlNTX01BU0ssCiAJCQkg ICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfTDJfUEFZTE9BRCksCiAKIAkvKiBJUHY0ICovCiAJSTQw RV9IQVNIX01BUF9QQVRURVJOKEk0MEVfUEhJTlRfSVBWNCwKLQkJCSAgICAgIEVUSF9SU1NfRlJB R19JUFY0IHwgSTQwRV9IQVNIX0lQVjRfTDIzX1JTU19NQVNLLAorCQkJICAgICAgUlRFX0VUSF9S U1NfRlJBR19JUFY0IHwgSTQwRV9IQVNIX0lQVjRfTDIzX1JTU19NQVNLLAogCQkJICAgICAgSTQw RV9GSUxURVJfUENUWVBFX0ZSQUdfSVBWNCksCiAKIAlJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQw RV9QSElOVF9JUFY0LAotCQkJICAgICAgRVRIX1JTU19OT05GUkFHX0lQVjRfT1RIRVIgfAorCQkJ ICAgICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X09USEVSIHwKIAkJCSAgICAgIEk0MEVfSEFT SF9JUFY0X0wyM19SU1NfTUFTSywKIAkJCSAgICAgIEk0MEVfRklMVEVSX1BDVFlQRV9OT05GX0lQ VjRfT1RIRVIpLAogCiAJSTQwRV9IQVNIX01BUF9QQVRURVJOKEk0MEVfUEhJTlRfSVBWNF9UQ1As Ci0JCQkgICAgICBFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfAorCQkJICAgICAgUlRFX0VUSF9S U1NfTk9ORlJBR19JUFY0X1RDUCB8CiAJCQkgICAgICBJNDBFX0hBU0hfSVBWNF9MMjM0X1JTU19N QVNLLAogCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBFX05PTkZfSVBWNF9UQ1ApLAogCiAJSTQw RV9IQVNIX01BUF9QQVRURVJOKEk0MEVfUEhJTlRfSVBWNF9VRFAsCi0JCQkgICAgICBFVEhfUlNT X05PTkZSQUdfSVBWNF9VRFAgfAorCQkJICAgICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1VE UCB8CiAJCQkgICAgICBJNDBFX0hBU0hfSVBWNF9MMjM0X1JTU19NQVNLLAogCQkJICAgICAgSTQw RV9GSUxURVJfUENUWVBFX05PTkZfSVBWNF9VRFApLAogCiAJSTQwRV9IQVNIX01BUF9QQVRURVJO KEk0MEVfUEhJTlRfSVBWNF9TQ1RQLAotCQkJICAgICAgRVRIX1JTU19OT05GUkFHX0lQVjRfU0NU UCB8CisJCQkgICAgICBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCB8CiAJCQkgICAgICBJ NDBFX0hBU0hfSVBWNF9MMjM0X1JTU19NQVNLLAogCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBF X05PTkZfSVBWNF9TQ1RQKSwKIAogCS8qIElQdjYgKi8KIAlJNDBFX0hBU0hfTUFQX1BBVFRFUk4o STQwRV9QSElOVF9JUFY2LAotCQkJICAgICAgRVRIX1JTU19GUkFHX0lQVjYgfCBJNDBFX0hBU0hf SVBWNl9MMjNfUlNTX01BU0ssCisJCQkgICAgICBSVEVfRVRIX1JTU19GUkFHX0lQVjYgfCBJNDBF X0hBU0hfSVBWNl9MMjNfUlNTX01BU0ssCiAJCQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfRlJB R19JUFY2KSwKIAogCUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBFX1BISU5UX0lQVjYsCi0JCQkg ICAgICBFVEhfUlNTX05PTkZSQUdfSVBWNl9PVEhFUiB8CisJCQkgICAgICBSVEVfRVRIX1JTU19O T05GUkFHX0lQVjZfT1RIRVIgfAogCQkJICAgICAgSTQwRV9IQVNIX0lQVjZfTDIzX1JTU19NQVNL LAogCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBFX05PTkZfSVBWNl9PVEhFUiksCiAKIAlJNDBF X0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2X0ZSQUcsCi0JCQkgICAgICBFVEhfUlNT X0ZSQUdfSVBWNiB8IEk0MEVfSEFTSF9MMjNfUlNTX01BU0ssCisJCQkgICAgICBSVEVfRVRIX1JT U19GUkFHX0lQVjYgfCBJNDBFX0hBU0hfTDIzX1JTU19NQVNLLAogCQkJICAgICAgSTQwRV9GSUxU RVJfUENUWVBFX0ZSQUdfSVBWNiksCiAKIAlJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElO VF9JUFY2X1RDUCwKLQkJCSAgICAgIEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8CisJCQkgICAg ICBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwKIAkJCSAgICAgIEk0MEVfSEFTSF9JUFY2 X0wyMzRfUlNTX01BU0ssCiAJCQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfTk9ORl9JUFY2X1RD UCksCiAKIAlJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2X1VEUCwKLQkJCSAg ICAgIEVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8CisJCQkgICAgICBSVEVfRVRIX1JTU19OT05G UkFHX0lQVjZfVURQIHwKIAkJCSAgICAgIEk0MEVfSEFTSF9JUFY2X0wyMzRfUlNTX01BU0ssCiAJ CQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfTk9ORl9JUFY2X1VEUCksCiAKIAlJNDBFX0hBU0hf TUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2X1NDVFAsCi0JCQkgICAgICBFVEhfUlNTX05PTkZS QUdfSVBWNl9TQ1RQIHwKKwkJCSAgICAgIFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQIHwK IAkJCSAgICAgIEk0MEVfSEFTSF9JUFY2X0wyMzRfUlNTX01BU0ssCiAJCQkgICAgICBJNDBFX0ZJ TFRFUl9QQ1RZUEVfTk9ORl9JUFY2X1NDVFApLAogCiAJLyogRVNQICovCiAJSTQwRV9IQVNIX01B UF9DVVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjRfRVNQLAotCQkJCSAgRVRIX1JTU19FU1AsIEk0 MEVfQ1VTVE9NSVpFRF9FU1BfSVBWNCksCisJCQkJICBSVEVfRVRIX1JTU19FU1AsIEk0MEVfQ1VT VE9NSVpFRF9FU1BfSVBWNCksCiAJSTQwRV9IQVNIX01BUF9DVVNfUEFUVEVSTihJNDBFX1BISU5U X0lQVjZfRVNQLAotCQkJCSAgRVRIX1JTU19FU1AsIEk0MEVfQ1VTVE9NSVpFRF9FU1BfSVBWNiks CisJCQkJICBSVEVfRVRIX1JTU19FU1AsIEk0MEVfQ1VTVE9NSVpFRF9FU1BfSVBWNiksCiAJSTQw RV9IQVNIX01BUF9DVVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjRfVURQX0VTUCwKLQkJCQkgIEVU SF9SU1NfRVNQLCBJNDBFX0NVU1RPTUlaRURfRVNQX0lQVjRfVURQKSwKKwkJCQkgIFJURV9FVEhf UlNTX0VTUCwgSTQwRV9DVVNUT01JWkVEX0VTUF9JUFY0X1VEUCksCiAJSTQwRV9IQVNIX01BUF9D VVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjZfVURQX0VTUCwKLQkJCQkgIEVUSF9SU1NfRVNQLCBJ NDBFX0NVU1RPTUlaRURfRVNQX0lQVjZfVURQKSwKKwkJCQkgIFJURV9FVEhfUlNTX0VTUCwgSTQw RV9DVVNUT01JWkVEX0VTUF9JUFY2X1VEUCksCiAKIAkvKiBHVFBDICovCiAJSTQwRV9IQVNIX01B UF9DVVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjRfR1RQQywKZGlmZiBhL2RyaXZlcnMvbmV0L2lh dmYvaWF2Zl9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9ldGhkZXYuYwkocmVqZWN0 ZWQgaHVua3MpCkBAIC05NjEsMzQgKzk2MSwzNCBAQCBpYXZmX2Rldl9pbmZvX2dldChzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQogCWRl dl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gSUFWRl9SU1NfT0ZGTE9BRF9BTEw7CiAJ ZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgPSBJQVZGX05VTV9NQUNBRERSX01BWDsKIAlkZXZfaW5m by0+cnhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8Ci0JCURF Vl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwK LQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VN IHwKLQkJREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FE X1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZM T0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZM T0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwK KwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVkxB Tl9GSUxURVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0g7CiAKIAlkZXZfaW5mby0+ dHhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAotCQlERVZf VFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAot CQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0g fAotCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfT1VURVJf SVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAotCQlERVZfVFhfT0ZGTE9B RF9WWExBTl9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAotCQlERVZf VFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RT TyB8Ci0JCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAotCQlERVZfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRTsKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VU SF9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJUlRF X0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURf VENQX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKKwkJUlRFX0VU SF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQSVBfVE5M X1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CisJCVJURV9FVEhf VFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9G UkVFOwogCiAJaWYgKHZmLT52Zl9yZXMtPnZmX2NhcF9mbGFncyAmIFZJUlRDSE5MX1ZGX09GRkxP QURfQ1JDKQotCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX0tF RVBfQ1JDOworCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IFJURV9FVEhfUlhfT0ZGTE9B RF9LRUVQX0NSQzsKIAogCWRldl9pbmZvLT5kZWZhdWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0 aF9yeGNvbmYpIHsKIAkJLnJ4X2ZyZWVfdGhyZXNoID0gSUFWRl9ERUZBVUxUX1JYX0ZSRUVfVEhS RVNILApkaWZmIGEvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX2F2eDIuYyBiL2RyaXZl cnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19hdngyLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtOTA2 LDcgKzkwNiw3IEBAIF9pYXZmX3JlY3ZfcmF3X3BrdHNfdmVjX2F2eDJfZmxleF9yeGQoc3RydWN0 IGlhdmZfcnhfcXVldWUgKnJ4cSwKIAkJICogbmVlZHMgdG8gbG9hZCAybmQgMTZCIG9mIGVhY2gg ZGVzYyBmb3IgUlNTIGhhc2ggcGFyc2luZywKIAkJICogd2lsbCBjYXVzZSBwZXJmb3JtYW5jZSBk cm9wIHRvIGdldCBpbnRvIHRoaXMgY29udGV4dC4KIAkJICovCi0JCWlmIChvZmZsb2FkcyAmIERF Vl9SWF9PRkZMT0FEX1JTU19IQVNIIHx8CisJCWlmIChvZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZG TE9BRF9SU1NfSEFTSCB8fAogCQkgICAgcnhxLT5yeF9mbGFncyAmIElBVkZfUlhfRkxBR1NfVkxB Tl9UQUdfTE9DX0wyVEFHMl8yKSB7CiAJCQkvKiBsb2FkIGJvdHRvbSBoYWxmIG9mIGV2ZXJ5IDMy QiBkZXNjICovCiAJCQljb25zdCBfX20xMjhpIHJhd19kZXNjX2JoNyA9CkBAIC05NTgsNyArOTU4 LDcgQEAgX2lhdmZfcmVjdl9yYXdfcGt0c192ZWNfYXZ4Ml9mbGV4X3J4ZChzdHJ1Y3QgaWF2Zl9y eF9xdWV1ZSAqcnhxLAogCQkJCQkoX21tMjU2X2Nhc3RzaTEyOF9zaTI1NihyYXdfZGVzY19iaDAp LAogCQkJCQlyYXdfZGVzY19iaDEsIDEpOwogCi0JCQlpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZG TE9BRF9SU1NfSEFTSCkgeworCQkJaWYgKG9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1JT U19IQVNIKSB7CiAJCQkJLyoqCiAJCQkJICogdG8gc2hpZnQgdGhlIDMyYiBSU1MgaGFzaCB2YWx1 ZSB0byB0aGUKIAkJCQkgKiBoaWdoZXN0IDMyYiBvZiBlYWNoIDEyOGIgYmVmb3JlIG1hc2sKZGlm ZiBhL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19hdng1MTIuYyBiL2RyaXZlcnMvbmV0 L2lhdmYvaWF2Zl9yeHR4X3ZlY19hdng1MTIuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMTQxLDcg KzExNDEsNyBAQCBfaWF2Zl9yZWN2X3Jhd19wa3RzX3ZlY19hdng1MTJfZmxleF9yeGQoc3RydWN0 IGlhdmZfcnhfcXVldWUgKnJ4cSwKIAkJCSAqIG5lZWRzIHRvIGxvYWQgMm5kIDE2QiBvZiBlYWNo IGRlc2MgZm9yIFJTUyBoYXNoIHBhcnNpbmcsCiAJCQkgKiB3aWxsIGNhdXNlIHBlcmZvcm1hbmNl IGRyb3AgdG8gZ2V0IGludG8gdGhpcyBjb250ZXh0LgogCQkJICovCi0JCQlpZiAob2ZmbG9hZHMg JiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8fAorCQkJaWYgKG9mZmxvYWRzICYgUlRFX0VUSF9S WF9PRkZMT0FEX1JTU19IQVNIIHx8CiAJCQkgICAgcnhxLT5yeF9mbGFncyAmIElBVkZfUlhfRkxB R1NfVkxBTl9UQUdfTE9DX0wyVEFHMl8yKSB7CiAJCQkJLyogbG9hZCBib3R0b20gaGFsZiBvZiBl dmVyeSAzMkIgZGVzYyAqLwogCQkJCWNvbnN0IF9fbTEyOGkgcmF3X2Rlc2NfYmg3ID0KQEAgLTEx OTMsNyArMTE5Myw3IEBAIF9pYXZmX3JlY3ZfcmF3X3BrdHNfdmVjX2F2eDUxMl9mbGV4X3J4ZChz dHJ1Y3QgaWF2Zl9yeF9xdWV1ZSAqcnhxLAogCQkJCQkJKF9tbTI1Nl9jYXN0c2kxMjhfc2kyNTYo cmF3X2Rlc2NfYmgwKSwKIAkJCQkJCSByYXdfZGVzY19iaDEsIDEpOwogCi0JCQkJaWYgKG9mZmxv YWRzICYgREVWX1JYX09GRkxPQURfUlNTX0hBU0gpIHsKKwkJCQlpZiAob2ZmbG9hZHMgJiBSVEVf RVRIX1JYX09GRkxPQURfUlNTX0hBU0gpIHsKIAkJCQkJLyoqCiAJCQkJCSAqIHRvIHNoaWZ0IHRo ZSAzMmIgUlNTIGhhc2ggdmFsdWUgdG8gdGhlCiAJCQkJCSAqIGhpZ2hlc3QgMzJiIG9mIGVhY2gg MTI4YiBiZWZvcmUgbWFzawpkaWZmIGEvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX3Nz ZS5jIGIvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX3NzZS5jCShyZWplY3RlZCBodW5r cykKQEAgLTgxOSw3ICs4MTksNyBAQCBfcmVjdl9yYXdfcGt0c192ZWNfZmxleF9yeGQoc3RydWN0 IGlhdmZfcnhfcXVldWUgKnJ4cSwKIAkJICogbmVlZHMgdG8gbG9hZCAybmQgMTZCIG9mIGVhY2gg ZGVzYyBmb3IgUlNTIGhhc2ggcGFyc2luZywKIAkJICogd2lsbCBjYXVzZSBwZXJmb3JtYW5jZSBk cm9wIHRvIGdldCBpbnRvIHRoaXMgY29udGV4dC4KIAkJICovCi0JCWlmIChvZmZsb2FkcyAmIERF Vl9SWF9PRkZMT0FEX1JTU19IQVNIKSB7CisJCWlmIChvZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZG TE9BRF9SU1NfSEFTSCkgewogCQkJLyogbG9hZCBib3R0b20gaGFsZiBvZiBldmVyeSAzMkIgZGVz YyAqLwogCQkJY29uc3QgX19tMTI4aSByYXdfZGVzY19iaDMgPQogCQkJCV9tbV9sb2FkX3NpMTI4 CmRpZmYgYS9kcml2ZXJzL25ldC9pY2UvaWNlX2RjZl9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2lj ZS9pY2VfZGNmX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTY3NSwyNyArNjc1LDI3IEBA IGljZV9kY2ZfZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LAogCWRldl9pbmZv LT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gSUNFX1JTU19PRkZMT0FEX0FMTDsKIAogCWRldl9p bmZvLT5yeF9vZmZsb2FkX2NhcGEgPQotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKLQkJ REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8 Ci0JCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQ VjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKLQkJREVWX1JYX09GRkxPQURf VkxBTl9GSUxURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKKwkJUlRFX0VUSF9SWF9P RkZMT0FEX1ZMQU5fU1RSSVAgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVENQ X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVf RVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRF UiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAlkZXZfaW5mby0+dHhfb2ZmbG9h ZF9jYXBhID0KLQkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAotCQlERVZfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1RYX09G RkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCURFVl9U WF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwK LQkJREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX0dSRV9U TkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfSVBJUF9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxP QURfR0VORVZFX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOworCQlSVEVf RVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9D S1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09G RkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAorCQlS VEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9B RF9UQ1BfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAorCQlSVEVf RVRIX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBJUF9U TkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKKwkJUlRFX0VU SF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CiAKIAlkZXZfaW5mby0+ZGVmYXVsdF9yeGNvbmYgPSAo c3RydWN0IHJ0ZV9ldGhfcnhjb25mKSB7CiAJCS5yeF90aHJlc2ggPSB7CmRpZmYgYS9kcml2ZXJz L25ldC9pY2UvaWNlX2RjZl92Zl9yZXByZXNlbnRvci5jIGIvZHJpdmVycy9uZXQvaWNlL2ljZV9k Y2ZfdmZfcmVwcmVzZW50b3IuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xNDMsMjggKzE0MywyOCBA QCBpY2VfZGNmX3ZmX3JlcHJfZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LAog CWRldl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gSUNFX1JTU19PRkZMT0FEX0FMTDsK IAogCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPQotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NU UklQIHwKLQkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1VE UF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FE X09VVEVSX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKLQkJREVWX1JY X09GRkxPQURfVkxBTl9GSUxURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8Ci0J CURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJ UCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZM T0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVf RVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9T Q0FUVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJUlRFX0VUSF9S WF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwog CWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPQotCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VS VCB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9VRFBf Q0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9T Q1RQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9U WF9PRkZMT0FEX1RDUF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKLQkJ REVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9U U08gfAotCQlERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FE X01VTFRJX1NFR1M7CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCVJURV9F VEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NV TSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxP QURfU0NUUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwK KwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVlhM QU5fVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8CisJCVJURV9F VEhfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfR0VORVZF X1ROTF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAogCWRldl9pbmZv LT5kZWZhdWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsKIAkJLnJ4X3RocmVz aCA9IHsKZGlmZiBhL2RyaXZlcnMvbmV0L2ljZS9pY2VfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9p Y2UvaWNlX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTM2ODIsNDAgKzM2ODIsNDAgQEAg aWNlX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9ldGhf ZGV2X2luZm8gKmRldl9pbmZvKQogCWRldl9pbmZvLT5taW5fbXR1ID0gUlRFX0VUSEVSX01JTl9N VFU7CiAKIAlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1JYX09GRkxPQURfVkxB Tl9TVFJJUCB8Ci0JCURFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwKLQkJREVWX1JYX09GRkxPQURf U0NBVFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOworCQlSVEVfRVRIX1JYX09G RkxPQURfVkxBTl9TVFJJUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8CisJCVJU RV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklM VEVSOwogCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPQotCQlERVZfVFhfT0ZGTE9BRF9WTEFO X0lOU0VSVCB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9N VUxUSV9TRUdTIHwKLQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCVJURV9FVEhf VFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwK KwkJUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAorCQlSVEVfRVRIX1RYX09GRkxPQURf TUJVRl9GQVNUX0ZSRUU7CiAJZGV2X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSAwOwog CiAJaWYgKCFpc19zYWZlX21vZGUpIHsKIAkJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PQot CQkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tT VU0gfAotCQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJCURFVl9SWF9PRkZMT0FEX1FJ TlFfU1RSSVAgfAotCQkJREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCQlERVZf UlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8Ci0JCQlERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8Ci0J CQlERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVA7CisJCQlSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9D S1NVTSB8CisJCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJCVJURV9FVEhfUlhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAor CQkJUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQkJUlRFX0VUSF9SWF9P RkZMT0FEX1ZMQU5fRVhURU5EIHwKKwkJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8CisJ CQlSVEVfRVRIX1JYX09GRkxPQURfVElNRVNUQU1QOwogCQlkZXZfaW5mby0+dHhfb2ZmbG9hZF9j YXBhIHw9Ci0JCQlERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8Ci0JCQlERVZfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKLQkJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQlERVZfVFhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCQlE RVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCURFVl9UWF9PRkZMT0FEX09VVEVS X1VEUF9DS1NVTTsKKwkJCVJURV9FVEhfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8CisJCQlSVEVf RVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NL U1VNIHwKKwkJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQkJUlRFX0VUSF9UWF9P RkZMT0FEX1NDVFBfQ0tTVU0gfAorCQkJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tT VU0gfAorCQkJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTTsKIAkJZGV2X2luZm8t PmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgfD0gSUNFX1JTU19PRkZMT0FEX0FMTDsKIAl9CiAKIAlk ZXZfaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsKLQlkZXZfaW5mby0+dHhfcXVldWVf b2ZmbG9hZF9jYXBhID0gREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJZGV2X2luZm8t PnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJF RTsKIAogCWRldl9pbmZvLT5yZXRhX3NpemUgPSBwZi0+aGFzaF9sdXRfc2l6ZTsKIAlkZXZfaW5m by0+aGFzaF9rZXlfc2l6ZSA9IChWU0lRRl9IS0VZX01BWF9JTkRFWCArIDEpICogc2l6ZW9mKHVp bnQzMl90KTsKZGlmZiBhL2RyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0eC5jIGIvZHJpdmVycy9uZXQv aWNlL2ljZV9yeHR4LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTYyNCw3ICsxNjI0LDcgQEAgaWNl X3J4X3NjYW5faHdfcmluZyhzdHJ1Y3QgaWNlX3J4X3F1ZXVlICpyeHEpCiAJCQlpY2VfcnhkX3Rv X3ZsYW5fdGNpKG1iLCAmcnhkcFtqXSk7CiAJCQlyeHEtPnJ4ZF90b19wa3RfZmllbGRzKHJ4cSwg bWIsICZyeGRwW2pdKTsKICNpZm5kZWYgUlRFX0xJQlJURV9JQ0VfMTZCWVRFX1JYX0RFU0MKLQkJ CWlmIChyeHEtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVElNRVNUQU1QKSB7CisJCQlpZiAo cnhxLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVApIHsKIAkJCQl0c19u cyA9IGljZV90c3RhbXBfY29udmVydF8zMmJfNjRiKGh3LAogCQkJCQlydGVfbGVfdG9fY3B1XzMy KHJ4ZHBbal0ud2IuZmxleF90cy50c19oaWdoKSk7CiAJCQkJaWYgKGljZV90aW1lc3RhbXBfZHlu ZmxhZyA+IDApIHsKQEAgLTE5NDIsNyArMTk0Miw3IEBAIGljZV9yZWN2X3NjYXR0ZXJlZF9wa3Rz KHZvaWQgKnJ4X3F1ZXVlLAogCQlyeHEtPnJ4ZF90b19wa3RfZmllbGRzKHJ4cSwgZmlyc3Rfc2Vn LCAmcnhkKTsKIAkJcGt0X2ZsYWdzID0gaWNlX3J4ZF9lcnJvcl90b19wa3RfZmxhZ3Mocnhfc3Rh dF9lcnIwKTsKICNpZm5kZWYgUlRFX0xJQlJURV9JQ0VfMTZCWVRFX1JYX0RFU0MKLQkJaWYgKHJ4 cS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVApIHsKKwkJaWYgKHJ4cS0+b2Zm bG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfVElNRVNUQU1QKSB7CiAJCQl0c19ucyA9IGljZV90 c3RhbXBfY29udmVydF8zMmJfNjRiKGh3LAogCQkJCXJ0ZV9sZV90b19jcHVfMzIocnhkLndiLmZs ZXhfdHMudHNfaGlnaCkpOwogCQkJaWYgKGljZV90aW1lc3RhbXBfZHluZmxhZyA+IDApIHsKQEAg LTIzNzMsNyArMjM3Myw3IEBAIGljZV9yZWN2X3BrdHModm9pZCAqcnhfcXVldWUsCiAJCXJ4cS0+ cnhkX3RvX3BrdF9maWVsZHMocnhxLCByeG0sICZyeGQpOwogCQlwa3RfZmxhZ3MgPSBpY2Vfcnhk X2Vycm9yX3RvX3BrdF9mbGFncyhyeF9zdGF0X2VycjApOwogI2lmbmRlZiBSVEVfTElCUlRFX0lD RV8xNkJZVEVfUlhfREVTQwotCQlpZiAocnhxLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1RJ TUVTVEFNUCkgeworCQlpZiAocnhxLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9USU1F U1RBTVApIHsKIAkJCXRzX25zID0gaWNlX3RzdGFtcF9jb252ZXJ0XzMyYl82NGIoaHcsCiAJCQkJ cnRlX2xlX3RvX2NwdV8zMihyeGQud2IuZmxleF90cy50c19oaWdoKSk7CiAJCQlpZiAoaWNlX3Rp bWVzdGFtcF9keW5mbGFnID4gMCkgewpkaWZmIGEvZHJpdmVycy9uZXQvaWdjL2lnY19ldGhkZXYu aCBiL2RyaXZlcnMvbmV0L2lnYy9pZ2NfZXRoZGV2LmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtNjYs MzcgKzY2LDM3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBJR0NfVFhfTUFYX01UVV9TRUcJVUlO VDhfTUFYCiAKICNkZWZpbmUgSUdDX1JYX09GRkxPQURfQUxMCSggICAgXAotCURFVl9SWF9PRkZM T0FEX1ZMQU5fU1RSSVAgIHwgXAotCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwgXAotCURF Vl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwgXAotCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0g IHwgXAotCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwgXAotCURFVl9SWF9PRkZMT0FEX1RD UF9DS1NVTSAgIHwgXAotCURFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gIHwgXAotCURFVl9SWF9P RkZMT0FEX0tFRVBfQ1JDICAgIHwgXAotCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgICAgIHwgXAot CURFVl9SWF9PRkZMT0FEX1JTU19IQVNIKQorCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ ICB8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBcCisJUlRFX0VUSF9SWF9P RkZMT0FEX1ZMQU5fRVhURU5EIHwgXAorCVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8 IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNICAgfCBcCisJUlRFX0VUSF9SWF9PRkZM T0FEX1RDUF9DS1NVTSAgIHwgXAorCVJURV9FVEhfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNICB8IFwK KwlSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMgICAgfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FE X1NDQVRURVIgICAgIHwgXAorCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKIAogI2RlZmlu ZSBJR0NfVFhfT0ZGTE9BRF9BTEwJKCAgICBcCi0JREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQg fCBcCi0JREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSAgfCBcCi0JREVWX1RYX09GRkxPQURfVURQ X0NLU1VNICAgfCBcCi0JREVWX1RYX09GRkxPQURfVENQX0NLU1VNICAgfCBcCi0JREVWX1RYX09G RkxPQURfU0NUUF9DS1NVTSAgfCBcCi0JREVWX1RYX09GRkxPQURfVENQX1RTTyAgICAgfCBcCi0J REVWX1RYX09GRkxPQURfVURQX1RTTwkgICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT KQorCVJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8IFwKKwlSVEVfRVRIX1RYX09GRkxP QURfSVBWNF9DS1NVTSAgfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwgXAor CVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURf U0NUUF9DS1NVTSAgfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gICAgIHwgXAorCVJU RV9FVEhfVFhfT0ZGTE9BRF9VRFBfVFNPCSAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxU SV9TRUdTKQogCiAjZGVmaW5lIElHQ19SU1NfT0ZGTE9BRF9BTEwJKCAgICBcCi0JRVRIX1JTU19J UFY0ICAgICAgICAgICAgICAgfCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjRfVENQICAgfCBcCi0J RVRIX1JTU19OT05GUkFHX0lQVjRfVURQICAgfCBcCi0JRVRIX1JTU19JUFY2ICAgICAgICAgICAg ICAgfCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjZfVENQICAgfCBcCi0JRVRIX1JTU19OT05GUkFH X0lQVjZfVURQICAgfCBcCi0JRVRIX1JTU19JUFY2X0VYICAgICAgICAgICAgfCBcCi0JRVRIX1JT U19JUFY2X1RDUF9FWCAgICAgICAgfCBcCi0JRVRIX1JTU19JUFY2X1VEUF9FWCkKKwlSVEVfRVRI X1JTU19JUFY0ICAgICAgICAgICAgICAgfCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1RD UCAgIHwgXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgICB8IFwKKwlSVEVfRVRIX1JT U19JUFY2ICAgICAgICAgICAgICAgfCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCAg IHwgXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgICB8IFwKKwlSVEVfRVRIX1JTU19J UFY2X0VYICAgICAgICAgICAgfCBcCisJUlRFX0VUSF9SU1NfSVBWNl9UQ1BfRVggICAgICAgIHwg XAorCVJURV9FVEhfUlNTX0lQVjZfVURQX0VYKQogCiAjZGVmaW5lIElHQ19NQVhfRVRRRl9GSUxU RVJTCQkzCS8qIGV0cWYoMykgaXMgdXNlZCBmb3IgMTU4OCAqLwogI2RlZmluZSBJR0NfRVRRRl9G SUxURVJfMTU4OAkJMwpkaWZmIGEvZHJpdmVycy9uZXQvaW9uaWMvaW9uaWNfZXRoZGV2LmMgYi9k cml2ZXJzL25ldC9pb25pYy9pb25pY19ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC00MTEs MjQgKzQxMSwyNCBAQCBpb25pY19kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhf ZGV2LAogCSAqLwogCiAJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IGRldl9pbmZvLT5yeF9x dWV1ZV9vZmZsb2FkX2NhcGEgfAotCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVW X1JYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJ REVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ IHwKLQkJREVWX1JYX09GRkxPQURfU0NBVFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1JTU19IQVNI IHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxP QURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NU UklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfAorCQlSVEVfRVRIX1JYX09GRkxP QURfUlNTX0hBU0ggfAogCQkwOwogCiAJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9IGRldl9p bmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgfAotCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VN IHwKLQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVENQX0NL U1VNIHwKLQkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZM T0FEX09VVEVSX1VEUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAotCQlE RVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAor CQlSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9V RFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJf VURQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAorCQlSVEVfRVRI X1RYX09GRkxPQURfVENQX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8 CiAJCTA7CiAKIAlkZXZfaW5mby0+cnhfZGVzY19saW0gPSByeF9kZXNjX2xpbTsKZGlmZiBhL2Ry aXZlcnMvbmV0L2lwbjNrZS9pcG4za2VfcmVwcmVzZW50b3IuYyBiL2RyaXZlcnMvbmV0L2lwbjNr ZS9pcG4za2VfcmVwcmVzZW50b3IuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC02NywzMCArNjcsMzAg QEAgaXBuM2tlX3Jwc3RfZGV2X2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aGRldiwK IAl9OwogCWRldl9pbmZvLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwogCWRldl9pbmZvLT5y eF9vZmZsb2FkX2NhcGEgPQotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKLQkJREVWX1JY X09GRkxPQURfUUlOUV9TVFJJUCB8Ci0JCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlE RVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAot CQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVkxB Tl9FWFRFTkQgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsKLQotCWRldl9pbmZvLT50 eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwkJ UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfUUlO UV9TVFJJUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9S WF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAor CQlSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZG TE9BRF9WTEFOX0VYVEVORCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsKKwor CWRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSBSVEVfRVRIX1RYX09GRkxPQURfTUJV Rl9GQVNUX0ZSRUU7CiAJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9UWF9PRkZM T0FEX1ZMQU5fSU5TRVJUIHwKLQkJREVWX1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfAotCQlERVZf VFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJ REVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8 Ci0JCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9U Q1BfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZM T0FEX0dSRV9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfSVBJUF9UTkxfVFNPIHwKLQkJREVW X1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT IHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX1FJTlFfSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlS VEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9D S1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8 CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX0dSRV9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CisJ CVJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9B RF9NVUxUSV9TRUdTIHwKIAkJZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYTsKIAogCWRl dl9pbmZvLT5kZXZfY2FwYSA9CmRpZmYgYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMg Yi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMzAz MiwxOSArMzAzMiwxOSBAQCBpeGdiZV9nZXRfcnhfcG9ydF9vZmZsb2FkcyhzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldikKIAl1aW50NjRfdCBvZmZsb2FkczsKIAlzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0g SVhHQkVfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CiAKLQlvZmZs b2FkcyA9IERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKLQkJICAgREVWX1JYX09GRkxPQURf VURQX0NLU1VNICAgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8Ci0JCSAgIERF Vl9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgIHwKLQkJICAgREVWX1JYX09GRkxPQURfVkxBTl9GSUxU RVIgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKLQkJICAgREVWX1JYX09GRkxPQURf UlNTX0hBU0g7CisJb2ZmbG9hZHMgPSBSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAor CQkgICBSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNICAgfAorCQkgICBSVEVfRVRIX1JYX09G RkxPQURfVENQX0NLU1VNICAgfAorCQkgICBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMgICAg fAorCQkgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAorCQkgICBSVEVfRVRIX1JY X09GRkxPQURfU0NBVFRFUiB8CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAog CWlmIChody0+bWFjLnR5cGUgPT0gaXhnYmVfbWFjXzgyNTk4RUIpCi0JCW9mZmxvYWRzIHw9IERF Vl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CisJCW9mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9B RF9WTEFOX1NUUklQOwogCiAJaWYgKGl4Z2JlX2lzX3ZmKGRldikgPT0gMCkKLQkJb2ZmbG9hZHMg fD0gREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQ7CisJCW9mZmxvYWRzIHw9IFJURV9FVEhfUlhf T0ZGTE9BRF9WTEFOX0VYVEVORDsKIAogCS8qCiAJICogUlNDIGlzIG9ubHkgc3VwcG9ydGVkIGJ5 IDgyNTk5IGFuZCB4NTQwIFBGIGRldmljZXMgaW4gYSBub24tU1ItSU9WCkBAIC01MTU4LDExICs1 MTU3LDExIEBAIGl4Z2JlX2Rldl9yeF9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCQkv KiBJdCBhZGRzIGR1YWwgVkxBTiBsZW5ndGggZm9yIHN1cHBvcnRpbmcgZHVhbCBWTEFOICovCiAJ CWlmIChmcmFtZV9zaXplICsgMiAqIElYR0JFX1ZMQU5fVEFHX1NJWkUgPiBidWZfc2l6ZSkKIAkJ CWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKLQkJaWYgKHJ4cS0+b2ZmbG9hZHMgJiBERVZf UlhfT0ZGTE9BRF9WTEFOX1NUUklQKQotCQkJcnhfY29uZi0+b2ZmbG9hZHMgfD0gREVWX1JYX09G RkxPQURfVkxBTl9TVFJJUDsKKwkJaWYgKHJ4cS0+b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxP QURfVkxBTl9TVFJJUCkKKwkJCXJ4X2NvbmYtPm9mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9B RF9WTEFOX1NUUklQOwogCX0KIAotCWlmIChyeF9jb25mLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZM T0FEX1NDQVRURVIpCisJaWYgKHJ4X2NvbmYtPm9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FE X1NDQVRURVIpCiAJCWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKIAogCS8qCkBAIC01NzMy LDcgKzU3MzEsNyBAQCBpeGdiZXZmX2Rldl9yeF9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 KQogCQlidWZfc2l6ZSA9ICh1aW50MTZfdCkgKChzcnJjdGwgJiBJWEdCRV9TUlJDVExfQlNJWkVQ S1RfTUFTSykgPDwKIAkJCQkgICAgICAgSVhHQkVfU1JSQ1RMX0JTSVpFUEtUX1NISUZUKTsKIAot CQlpZiAocnhtb2RlLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfHwKKwkJaWYg KHJ4bW9kZS0+b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8fAogCQkgICAg LyogSXQgYWRkcyBkdWFsIFZMQU4gbGVuZ3RoIGZvciBzdXBwb3J0aW5nIGR1YWwgVkxBTiAqLwog CQkgICAgKGZyYW1lX3NpemUgKyAyICogSVhHQkVfVkxBTl9UQUdfU0laRSkgPiBidWZfc2l6ZSkg ewogCQkJaWYgKCFkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCkKZGlmZiBhL2RyaXZlcnMvbmV0L21s eDQvbWx4NF9yeHEuYyBiL2RyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEuYwkocmVqZWN0ZWQgaHVu a3MpCkBAIC02ODIsMTIgKzY4MiwxMiBAQCBtbHg0X3J4cV9kZXRhY2goc3RydWN0IHJ4cSAqcnhx KQogdWludDY0X3QKIG1seDRfZ2V0X3J4X3F1ZXVlX29mZmxvYWRzKHN0cnVjdCBtbHg0X3ByaXYg KnByaXYpCiB7Ci0JdWludDY0X3Qgb2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwK LQkJCSAgICBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8Ci0JCQkgICAgREVWX1JYX09GRkxPQURf UlNTX0hBU0g7CisJdWludDY0X3Qgb2ZmbG9hZHMgPSBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRF UiB8CisJCQkgICAgUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwKKwkJCSAgICBSVEVfRVRI X1JYX09GRkxPQURfUlNTX0hBU0g7CiAKIAlpZiAocHJpdi0+aHdfY3N1bSkKLQkJb2ZmbG9hZHMg fD0gREVWX1JYX09GRkxPQURfQ0hFQ0tTVU07CisJCW9mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZG TE9BRF9DSEVDS1NVTTsKIAlyZXR1cm4gb2ZmbG9hZHM7CiB9CiAKQEAgLTgzMiw3ICs4MzIsNyBA QCBtbHg0X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBp ZHgsIHVpbnQxNl90IGRlc2MsCiAJbWF4X3J4X3BrdGxlbiA9IGRldi0+ZGF0YS0+bXR1ICsgUlRF X0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTjsKIAlpZiAobWF4X3J4X3BrdGxlbiA8 PSAobWJfbGVuIC0gUlRFX1BLVE1CVUZfSEVBRFJPT00pKSB7CiAJCTsKLQl9IGVsc2UgaWYgKG9m ZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikgeworCX0gZWxzZSBpZiAob2ZmbG9hZHMg JiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikgewogCQl1aW50MzJfdCBzaXplID0gUlRFX1BL VE1CVUZfSEVBRFJPT00gKyBtYXhfcnhfcGt0bGVuOwogCQl1aW50MzJfdCBzZ2VzX247CiAKZGlm ZiBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9yeHEuYyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9y eHEuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0zMzMsMjIgKzMzMywyMiBAQCBtbHg1X2dldF9yeF9x dWV1ZV9vZmZsb2FkcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIHsKIAlzdHJ1Y3QgbWx4NV9w cml2ICpwcml2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgbWx4NV9kZXZfY29u ZmlnICpjb25maWcgPSAmcHJpdi0+Y29uZmlnOwotCXVpbnQ2NF90IG9mZmxvYWRzID0gKERFVl9S WF9PRkZMT0FEX1NDQVRURVIgfAotCQkJICAgICBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAgfAot CQkJICAgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCk7CisJdWludDY0X3Qgb2ZmbG9hZHMgPSAo UlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfAorCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURf VElNRVNUQU1QIHwKKwkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIKTsKIAogCWlm ICghY29uZmlnLT5tcHJxLmVuYWJsZWQpCiAJCW9mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9B RF9CVUZGRVJfU1BMSVQ7CiAJaWYgKGNvbmZpZy0+aHdfZmNzX3N0cmlwKQotCQlvZmZsb2FkcyB8 PSBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQzsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZM T0FEX0tFRVBfQ1JDOwogCWlmIChjb25maWctPmh3X2NzdW0pCi0JCW9mZmxvYWRzIHw9IChERVZf UlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJCSAgICAgREVWX1JYX09GRkxPQURfVURQX0NLU1VN IHwKLQkJCSAgICAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNKTsKKwkJb2ZmbG9hZHMgfD0gKFJU RV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FE X1VEUF9DS1NVTSB8CisJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0pOwogCWlm IChjb25maWctPmh3X3ZsYW5fc3RyaXApCi0JCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1ZM QU5fU1RSSVA7CisJCW9mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQOwog CWlmIChNTFg1X0xST19TVVBQT1JURUQoZGV2KSkKLQkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxP QURfVENQX0xSTzsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk87CiAJ cmV0dXJuIG9mZmxvYWRzOwogfQogCkBAIC0xMzI1LDcgKzEzMjUsNyBAQCBtbHg1X3J4cV9uZXco c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IGlkeCwgdWludDE2X3QgZGVzYywKIAlz dHJ1Y3QgbWx4NV9kZXZfY29uZmlnICpjb25maWcgPSAmcHJpdi0+Y29uZmlnOwogCXVpbnQ2NF90 IG9mZmxvYWRzID0gY29uZi0+b2ZmbG9hZHMgfAogCQkJICAgZGV2LT5kYXRhLT5kZXZfY29uZi5y eG1vZGUub2ZmbG9hZHM7Ci0JdW5zaWduZWQgaW50IGxyb19vbl9xdWV1ZSA9ICEhKG9mZmxvYWRz ICYgREVWX1JYX09GRkxPQURfVENQX0xSTyk7CisJdW5zaWduZWQgaW50IGxyb19vbl9xdWV1ZSA9 ICEhKG9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8pOwogCXVuc2lnbmVkIGlu dCBtYXhfcnhfcGt0bGVuID0gbHJvX29uX3F1ZXVlID8KIAkJCWRldi0+ZGF0YS0+ZGV2X2NvbmYu cnhtb2RlLm1heF9scm9fcGt0X3NpemUgOgogCQkJZGV2LT5kYXRhLT5tdHUgKyAodW5zaWduZWQg aW50KVJURV9FVEhFUl9IRFJfTEVOICsKQEAgLTE0NzIsNyArMTQ3Miw3IEBAIG1seDVfcnhxX25l dyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLAog CQkJY29uZmlnLT5tcHJxLnN0cmlkZV9zaXplX24gOiBtcHJxX3N0cmlkZV9zaXplOwogCQl0bXBs LT5yeHEuc3RyZF9zaGlmdF9lbiA9IE1MWDVfTVBSUV9UV09fQllURV9TSElGVDsKIAkJdG1wbC0+ cnhxLnN0cmRfc2NhdHRlcl9lbiA9Ci0JCQkJISEob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9T Q0FUVEVSKTsKKwkJCQkhIShvZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKTsK IAkJdG1wbC0+cnhxLm1wcnFfbWF4X21lbWNweV9sZW4gPSBSVEVfTUlOKGZpcnN0X21iX2ZyZWVf c2l6ZSwKIAkJCQljb25maWctPm1wcnEubWF4X21lbWNweV9sZW4pOwogCQltYXhfbHJvX3NpemUg PSBSVEVfTUlOKG1heF9yeF9wa3RsZW4sCkBAIC0xNDg3LDcgKzE0ODcsNyBAQCBtbHg1X3J4cV9u ZXcoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IGlkeCwgdWludDE2X3QgZGVzYywK IAkJTUxYNV9BU1NFUlQobWF4X3J4X3BrdGxlbiA8PSBmaXJzdF9tYl9mcmVlX3NpemUpOwogCQl0 bXBsLT5yeHEuc2dlc19uID0gMDsKIAkJbWF4X2xyb19zaXplID0gbWF4X3J4X3BrdGxlbjsKLQl9 IGVsc2UgaWYgKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikgeworCX0gZWxzZSBp ZiAob2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikgewogCQl1bnNpZ25lZCBp bnQgc2dlc19uOwogCiAJCWlmIChscm9fb25fcXVldWUgJiYgZmlyc3RfbWJfZnJlZV9zaXplIDwK ZGlmZiBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV90eHEuYyBiL2RyaXZlcnMvbmV0L21seDUvbWx4 NV90eHEuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC05OCw0MiArOTgsNDIgQEAgdWludDY0X3QKIG1s eDVfZ2V0X3R4X3BvcnRfb2ZmbG9hZHMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiB7CiAJc3Ry dWN0IG1seDVfcHJpdiAqcHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7Ci0JdWludDY0X3Qg b2ZmbG9hZHMgPSAoREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8Ci0JCQkgICAgIERFVl9UWF9P RkZMT0FEX1ZMQU5fSU5TRVJUKTsKKwl1aW50NjRfdCBvZmZsb2FkcyA9IChSVEVfRVRIX1RYX09G RkxPQURfTVVMVElfU0VHUyB8CisJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VS VCk7CiAJc3RydWN0IG1seDVfZGV2X2NvbmZpZyAqY29uZmlnID0gJnByaXYtPmNvbmZpZzsKIAog CWlmIChjb25maWctPmh3X2NzdW0pCi0JCW9mZmxvYWRzIHw9IChERVZfVFhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwKLQkJCSAgICAgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJCSAgICAgREVW X1RYX09GRkxPQURfVENQX0NLU1VNKTsKKwkJb2ZmbG9hZHMgfD0gKFJURV9FVEhfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKKwkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJ CQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0pOwogCWlmIChjb25maWctPnRzbykK LQkJb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfVENQX1RTTzsKKwkJb2ZmbG9hZHMgfD0gUlRF X0VUSF9UWF9PRkZMT0FEX1RDUF9UU087CiAJaWYgKGNvbmZpZy0+dHhfcHApCi0JCW9mZmxvYWRz IHw9IERFVl9UWF9PRkZMT0FEX1NFTkRfT05fVElNRVNUQU1QOworCQlvZmZsb2FkcyB8PSBSVEVf RVRIX1RYX09GRkxPQURfU0VORF9PTl9USU1FU1RBTVA7CiAJaWYgKGNvbmZpZy0+c3dwKSB7CiAJ CWlmIChjb25maWctPnN3cCAmIE1MWDVfU1dfUEFSU0lOR19DU1VNX0NBUCkKLQkJCW9mZmxvYWRz IHw9IERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU07CisJCQlvZmZsb2FkcyB8PSBSVEVf RVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTTsKIAkJaWYgKGNvbmZpZy0+c3dwICYgTUxY NV9TV19QQVJTSU5HX1RTT19DQVApCi0JCQlvZmZsb2FkcyB8PSAoREVWX1RYX09GRkxPQURfSVBf VE5MX1RTTyB8Ci0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9VRFBfVE5MX1RTTyk7CisJCQlvZmZs b2FkcyB8PSAoUlRFX0VUSF9UWF9PRkZMT0FEX0lQX1ROTF9UU08gfAorCQkJCSAgICAgUlRFX0VU SF9UWF9PRkZMT0FEX1VEUF9UTkxfVFNPKTsKIAl9CiAJaWYgKGNvbmZpZy0+dHVubmVsX2VuKSB7 CiAJCWlmIChjb25maWctPmh3X2NzdW0pCi0JCQlvZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9P VVRFUl9JUFY0X0NLU1VNOworCQkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU07CiAJCWlmIChjb25maWctPnRzbykgewogCQkJaWYgKGNvbmZpZy0+dHVubmVs X2VuICYKIAkJCQlNTFg1X1RVTk5FTEVEX09GRkxPQURTX1ZYTEFOX0NBUCkKLQkJCQlvZmZsb2Fk cyB8PSBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPOworCQkJCW9mZmxvYWRzIHw9IFJURV9F VEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPOwogCQkJaWYgKGNvbmZpZy0+dHVubmVsX2VuICYK IAkJCQlNTFg1X1RVTk5FTEVEX09GRkxPQURTX0dSRV9DQVApCi0JCQkJb2ZmbG9hZHMgfD0gREVW X1RYX09GRkxPQURfR1JFX1ROTF9UU087CisJCQkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZM T0FEX0dSRV9UTkxfVFNPOwogCQkJaWYgKGNvbmZpZy0+dHVubmVsX2VuICYKIAkJCQlNTFg1X1RV Tk5FTEVEX09GRkxPQURTX0dFTkVWRV9DQVApCi0JCQkJb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxP QURfR0VORVZFX1ROTF9UU087CisJCQkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX0dF TkVWRV9UTkxfVFNPOwogCQl9CiAJfQogCWlmICghY29uZmlnLT5tcHJxLmVuYWJsZWQpCi0JCW9m ZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOworCQlvZmZsb2FkcyB8PSBS VEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAJcmV0dXJuIG9mZmxvYWRzOwogfQog CkBAIC05NzgsMTkgKzk3OCwxOSBAQCB0eHFfc2V0X3BhcmFtcyhzdHJ1Y3QgbWx4NV90eHFfY3Ry bCAqdHhxX2N0cmwpCiAJCQkJCQkgICAgTUxYNV9NQVhfVFNPX0hFQURFUik7CiAJCXR4cV9jdHJs LT50eHEudHNvX2VuID0gMTsKIAl9Ci0JaWYgKCgoREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RT TyAmIHR4cV9jdHJsLT50eHEub2ZmbG9hZHMpICYmCisJaWYgKCgoUlRFX0VUSF9UWF9PRkZMT0FE X1ZYTEFOX1ROTF9UU08gJiB0eHFfY3RybC0+dHhxLm9mZmxvYWRzKSAmJgogCSAgICAoY29uZmln LT50dW5uZWxfZW4gJiBNTFg1X1RVTk5FTEVEX09GRkxPQURTX1ZYTEFOX0NBUCkpIHwKLQkgICAo KERFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPICYgdHhxX2N0cmwtPnR4cS5vZmZsb2FkcykgJiYK KwkgICAoKFJURV9FVEhfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyAmIHR4cV9jdHJsLT50eHEub2Zm bG9hZHMpICYmCiAJICAgIChjb25maWctPnR1bm5lbF9lbiAmIE1MWDVfVFVOTkVMRURfT0ZGTE9B RFNfR1JFX0NBUCkpIHwKLQkgICAoKERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPICYgdHhx X2N0cmwtPnR4cS5vZmZsb2FkcykgJiYKKwkgICAoKFJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVf VE5MX1RTTyAmIHR4cV9jdHJsLT50eHEub2ZmbG9hZHMpICYmCiAJICAgIChjb25maWctPnR1bm5l bF9lbiAmIE1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfR0VORVZFX0NBUCkpIHwKIAkgICAoY29uZmln LT5zd3AgICYgTUxYNV9TV19QQVJTSU5HX1RTT19DQVApKQogCQl0eHFfY3RybC0+dHhxLnR1bm5l bF9lbiA9IDE7Ci0JdHhxX2N0cmwtPnR4cS5zd3BfZW4gPSAoKChERVZfVFhfT0ZGTE9BRF9JUF9U TkxfVFNPIHwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX1VEUF9UTkxfVFNPKSAmCisJdHhxX2N0cmwt PnR4cS5zd3BfZW4gPSAoKChSVEVfRVRIX1RYX09GRkxPQURfSVBfVE5MX1RTTyB8CisJCQkJICBS VEVfRVRIX1RYX09GRkxPQURfVURQX1ROTF9UU08pICYKIAkJCQkgIHR4cV9jdHJsLT50eHEub2Zm bG9hZHMpICYmIChjb25maWctPnN3cCAmCiAJCQkJICBNTFg1X1NXX1BBUlNJTkdfVFNPX0NBUCkp IHwKLQkJCQkoKERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gJgorCQkJCSgoUlRFX0VU SF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gJgogCQkJCSB0eHFfY3RybC0+dHhxLm9mZmxv YWRzKSAmJiAoY29uZmlnLT5zd3AgJgogCQkJCSBNTFg1X1NXX1BBUlNJTkdfQ1NVTV9DQVApKTsK IH0KZGlmZiBhL2RyaXZlcnMvbmV0L21seDUvd2luZG93cy9tbHg1X29zLmMgYi9kcml2ZXJzL25l dC9tbHg1L3dpbmRvd3MvbWx4NV9vcy5jCShyZWplY3RlZCBodW5rcykKQEAgLTQ4NSw4ICs0ODUs OCBAQCBtbHg1X2Rldl9zcGF3bihzdHJ1Y3QgcnRlX2RldmljZSAqZHBka19kZXYsCiAJICogUmVt b3ZlIHRoaXMgY2hlY2sgb25jZSBEUERLIHN1cHBvcnRzIGxhcmdlci92YXJpYWJsZQogCSAqIGlu ZGlyZWN0aW9uIHRhYmxlcy4KIAkgKi8KLQlpZiAoY29uZmlnLT5pbmRfdGFibGVfbWF4X3NpemUg PiAodW5zaWduZWQgaW50KUVUSF9SU1NfUkVUQV9TSVpFXzUxMikKLQkJY29uZmlnLT5pbmRfdGFi bGVfbWF4X3NpemUgPSBFVEhfUlNTX1JFVEFfU0laRV81MTI7CisJaWYgKGNvbmZpZy0+aW5kX3Rh YmxlX21heF9zaXplID4gKHVuc2lnbmVkIGludClSVEVfRVRIX1JTU19SRVRBX1NJWkVfNTEyKQor CQljb25maWctPmluZF90YWJsZV9tYXhfc2l6ZSA9IFJURV9FVEhfUlNTX1JFVEFfU0laRV81MTI7 CiAJRFJWX0xPRyhERUJVRywgIm1heGltdW0gUnggaW5kaXJlY3Rpb24gdGFibGUgc2l6ZSBpcyAl dSIsCiAJCWNvbmZpZy0+aW5kX3RhYmxlX21heF9zaXplKTsKIAlpZiAoY29uZmlnLT5od19wYWRk aW5nKSB7CmRpZmYgYS9kcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRhX2V0aGRldi5jIGIvZHJpdmVy cy9uZXQvbXZuZXRhL212bmV0YV9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMjYsNyAr MTI2LDcgQEAgbXZuZXRhX2Rldl9jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJ CXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnR4bW9kZS5v ZmZsb2FkcyAmIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCisJaWYgKGRldi0+ZGF0YS0+ZGV2 X2NvbmYudHhtb2RlLm9mZmxvYWRzICYgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCiAJ CXByaXYtPm11bHRpc2VnID0gMTsKIAogCXBwaW9fcGFyYW1zID0gJnByaXYtPnBwaW9fcGFyYW1z OwpkaWZmIGEvZHJpdmVycy9uZXQvbXZuZXRhL212bmV0YV9ldGhkZXYuaCBiL2RyaXZlcnMvbmV0 L212bmV0YS9tdm5ldGFfZXRoZGV2LmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtNTQsMTQgKzU0LDE0 IEBACiAjZGVmaW5lIE1SVkxfTkVUQV9NUlVfVE9fTVRVKG1ydSkJKChtcnUpIC0gTVJWTF9ORVRB X0hEUlNfTEVOKQogCiAvKiogUnggb2ZmbG9hZHMgY2FwYWJpbGl0aWVzICovCi0jZGVmaW5lIE1W TkVUQV9SWF9PRkZMT0FEUyAoREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0pCisjZGVmaW5lIE1WTkVU QV9SWF9PRkZMT0FEUyAoUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNKQogCiAvKiogVHggb2Zm bG9hZHMgY2FwYWJpbGl0aWVzICovCi0jZGVmaW5lIE1WTkVUQV9UWF9PRkZMT0FEX0NIRUNLU1VN IChERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAotCQkJCSAgICBERVZfVFhfT0ZGTE9BRF9V RFBfQ0tTVU0gIHwgXAotCQkJCSAgICBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0pCisjZGVmaW5l IE1WTkVUQV9UWF9PRkZMT0FEX0NIRUNLU1VNIChSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NV TSB8IFwKKwkJCQkgICAgUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgfCBcCisJCQkJICAg IFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0pCiAjZGVmaW5lIE1WTkVUQV9UWF9PRkZMT0FE UyAoTVZORVRBX1RYX09GRkxPQURfQ0hFQ0tTVU0gfCBcCi0JCQkgICAgREVWX1RYX09GRkxPQURf TVVMVElfU0VHUykKKwkJCSAgICBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykKIAogI2Rl ZmluZSBNVk5FVEFfVFhfUEtUX09GRkxPQURTIChQS1RfVFhfSVBfQ0tTVU0gfCBcCiAJCQkJUEtU X1RYX1RDUF9DS1NVTSB8IFwKZGlmZiBhL2RyaXZlcnMvbmV0L212cHAyL21ydmxfZXRoZGV2LmMg Yi9kcml2ZXJzL25ldC9tdnBwMi9tcnZsX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTU4 LDE1ICs1OCwxNSBAQAogI2RlZmluZSBNUlZMX0NPT0tJRV9ISUdIX0FERFJfTUFTSyAweGZmZmZm ZjAwMDAwMDAwMDAKIAogLyoqIFBvcnQgUnggb2ZmbG9hZCBjYXBhYmlsaXRpZXMgKi8KLSNkZWZp bmUgTVJWTF9SWF9PRkZMT0FEUyAoREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBcCi0JCQkg IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNKQorI2RlZmluZSBNUlZMX1JYX09GRkxPQURTIChSVEVf RVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBcCisJCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9D SEVDS1NVTSkKIAogLyoqIFBvcnQgVHggb2ZmbG9hZHMgY2FwYWJpbGl0aWVzICovCi0jZGVmaW5l IE1SVkxfVFhfT0ZGTE9BRF9DSEVDS1NVTSAoREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwK LQkJCQkgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgfCBcCi0JCQkJICBERVZfVFhfT0ZGTE9B RF9UQ1BfQ0tTVU0pCisjZGVmaW5lIE1SVkxfVFhfT0ZGTE9BRF9DSEVDS1NVTSAoUlRFX0VUSF9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NL U1VNICB8IFwKKwkJCQkgIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0pCiAjZGVmaW5lIE1S VkxfVFhfT0ZGTE9BRFMgKE1SVkxfVFhfT0ZGTE9BRF9DSEVDS1NVTSB8IFwKLQkJCSAgREVWX1RY X09GRkxPQURfTVVMVElfU0VHUykKKwkJCSAgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1Mp CiAKICNkZWZpbmUgTVJWTF9UWF9QS1RfT0ZGTE9BRFMgKFBLVF9UWF9JUF9DS1NVTSB8IFwKIAkJ CSAgICAgIFBLVF9UWF9UQ1BfQ0tTVU0gfCBcCkBAIC01MDIsNyArNTAyLDcgQEAgbXJ2bF9kZXZf Y29uZmlndXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9 CiAKLQlpZiAoZGV2LT5kYXRhLT5kZXZfY29uZi50eG1vZGUub2ZmbG9hZHMgJiBERVZfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTKQorCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnR4bW9kZS5vZmZsb2Fk cyAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQogCQlwcml2LT5tdWx0aXNlZyA9IDE7 CiAKIAlyZXQgPSBtcnZsX2NvbmZpZ3VyZV9yeHFzKHByaXYsIGRldi0+ZGF0YS0+cG9ydF9pZCwK ZGlmZiBhL2RyaXZlcnMvbmV0L25mcC9uZnBfY29tbW9uLmMgYi9kcml2ZXJzL25ldC9uZnAvbmZw X2NvbW1vbi5jCShyZWplY3RlZCBodW5rcykKQEAgLTM1OSwxOSArMzU5LDE5IEBAIG5mcF9jaGVj a19vZmZsb2FkcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAlyeG1vZGUgPSAmZGV2X2NvbmYt PnJ4bW9kZTsKIAl0eG1vZGUgPSAmZGV2X2NvbmYtPnR4bW9kZTsKIAotCWlmIChyeG1vZGUtPm9m ZmxvYWRzICYgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSkgeworCWlmIChyeG1vZGUtPm9mZmxv YWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0pIHsKIAkJaWYgKGh3LT5jYXAgJiBO RlBfTkVUX0NGR19DVFJMX1JYQ1NVTSkKIAkJCWN0cmwgfD0gTkZQX05FVF9DRkdfQ1RSTF9SWENT VU07CiAJfQogCi0JaWYgKHJ4bW9kZS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9WTEFOX1NU UklQKSB7CisJaWYgKHJ4bW9kZS0+b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9T VFJJUCkgewogCQlpZiAoaHctPmNhcCAmIE5GUF9ORVRfQ0ZHX0NUUkxfUlhWTEFOKQogCQkJY3Ry bCB8PSBORlBfTkVUX0NGR19DVFJMX1JYVkxBTjsKIAl9CiAKIAlody0+bXR1ID0gZGV2LT5kYXRh LT5tdHU7CiAKLQlpZiAodHhtb2RlLT5vZmZsb2FkcyAmIERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5T RVJUKQorCWlmICh0eG1vZGUtPm9mZmxvYWRzICYgUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5T RVJUKQogCQljdHJsIHw9IE5GUF9ORVRfQ0ZHX0NUUkxfVFhWTEFOOwogCiAJLyogTDIgYnJvYWRj YXN0ICovCkBAIC03NTcsMjIgKzc1NywyMiBAQCBuZnBfbmV0X2luZm9zX2dldChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQogCX07CiAK IAlpZiAoaHctPmNhcCAmIE5GUF9ORVRfQ0ZHX0NUUkxfUlNTKSB7Ci0JCWRldl9pbmZvLT5yeF9v ZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CisJCWRldl9pbmZvLT5yeF9v ZmZsb2FkX2NhcGEgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCi0JCWRldl9pbmZv LT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gRVRIX1JTU19JUFY0IHwKLQkJCQkJCSAgIEVUSF9S U1NfTk9ORlJBR19JUFY0X1RDUCB8Ci0JCQkJCQkgICBFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAg fAotCQkJCQkJICAgRVRIX1JTU19JUFY2IHwKLQkJCQkJCSAgIEVUSF9SU1NfTk9ORlJBR19JUFY2 X1RDUCB8Ci0JCQkJCQkgICBFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFA7CisJCWRldl9pbmZvLT5m bG93X3R5cGVfcnNzX29mZmxvYWRzID0gUlRFX0VUSF9SU1NfSVBWNCB8CisJCQkJCQkgICBSVEVf RVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwKKwkJCQkJCSAgIFJURV9FVEhfUlNTX05PTkZSQUdf SVBWNF9VRFAgfAorCQkJCQkJICAgUlRFX0VUSF9SU1NfSVBWNiB8CisJCQkJCQkgICBSVEVfRVRI X1JTU19OT05GUkFHX0lQVjZfVENQIHwKKwkJCQkJCSAgIFJURV9FVEhfUlNTX05PTkZSQUdfSVBW Nl9VRFA7CiAKIAkJZGV2X2luZm8tPnJldGFfc2l6ZSA9IE5GUF9ORVRfQ0ZHX1JTU19JVEJMX1Na OwogCQlkZXZfaW5mby0+aGFzaF9rZXlfc2l6ZSA9IE5GUF9ORVRfQ0ZHX1JTU19LRVlfU1o7CiAJ fQogCi0JZGV2X2luZm8tPnNwZWVkX2NhcGEgPSBFVEhfTElOS19TUEVFRF8xRyB8IEVUSF9MSU5L X1NQRUVEXzEwRyB8Ci0JCQkgICAgICAgRVRIX0xJTktfU1BFRURfMjVHIHwgRVRIX0xJTktfU1BF RURfNDBHIHwKLQkJCSAgICAgICBFVEhfTElOS19TUEVFRF81MEcgfCBFVEhfTElOS19TUEVFRF8x MDBHOworCWRldl9pbmZvLT5zcGVlZF9jYXBhID0gUlRFX0VUSF9MSU5LX1NQRUVEXzFHIHwgUlRF X0VUSF9MSU5LX1NQRUVEXzEwRyB8CisJCQkgICAgICAgUlRFX0VUSF9MSU5LX1NQRUVEXzI1RyB8 IFJURV9FVEhfTElOS19TUEVFRF80MEcgfAorCQkJICAgICAgIFJURV9FVEhfTElOS19TUEVFRF81 MEcgfCBSVEVfRVRIX0xJTktfU1BFRURfMTAwRzsKIAogCXJldHVybiAwOwogfQpkaWZmIGEvZHJp dmVycy9uZXQvb2N0ZW9udHgvb2N0ZW9udHhfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9vY3Rlb250 eC9vY3Rlb250eF9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC01NzEsNyArNTcxLDcgQEAg b2N0ZW9udHhfcmVjaGVja19yeF9vZmZsb2FkcyhzdHJ1Y3Qgb2N0ZW9udHhfcnhxICpyeHEpCiAK IAkvKiBTZXR1cCBzY2F0dGVyIG1vZGUgaWYgbmVlZGVkIGJ5IGp1bWJvICovCiAJaWYgKGRhdGEt Pm10dSA+IGJ1ZmZzeikgewotCQluaWMtPnJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1ND QVRURVI7CisJCW5pYy0+cnhfb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7 CiAJCW5pYy0+cnhfb2ZmbG9hZF9mbGFncyB8PSBvY3Rlb250eF9yeF9vZmZsb2FkX2ZsYWdzKGV0 aF9kZXYpOwogCQluaWMtPnR4X29mZmxvYWRfZmxhZ3MgfD0gb2N0ZW9udHhfdHhfb2ZmbG9hZF9m bGFncyhldGhfZGV2KTsKIAl9CmRpZmYgYS9kcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9l dGhkZXYuaCBiL2RyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5oCShyZWplY3Rl ZCBodW5rcykKQEAgLTU1LDIzICs1NSwyMyBAQAogI2RlZmluZSBPQ0NUWF9NQVhfTVRVCQkoT0ND VFhfTUFYX0ZSUyAtIE9DQ1RYX0wyX09WRVJIRUFEKQogCiAjZGVmaW5lIE9DVEVPTlRYX1JYX09G RkxPQURTCQkoCQkJCSAgIFwKLQkJCQkJIERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNCSB8IFwKLQkJ CQkJIERFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gICAgICAgfCBcCi0JCQkJCSBERVZfUlhfT0ZG TE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAotCQkJCQkgREVWX1JYX09GRkxPQURfU0NBVFRFUgkg ICAgICAgICB8IFwKLQkJCQkJIERFVl9SWF9PRkZMT0FEX1NDQVRURVIJCSB8IFwKLQkJCQkJIERF Vl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKQorCQkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNL U1VNCSB8IFwKKwkJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNICAgICAgIHwgXAor CQkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBcCisJCQkJCSBSVEVf RVRIX1JYX09GRkxPQURfU0NBVFRFUgkgICAgICAgICB8IFwKKwkJCQkJIFJURV9FVEhfUlhfT0ZG TE9BRF9TQ0FUVEVSCQkgfCBcCisJCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIp CiAKICNkZWZpbmUgT0NURU9OVFhfVFhfT0ZGTE9BRFMJCSgJCQkJICAgXAotCQkJCQkgREVWX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUUJIHwgXAotCQkJCQkgREVWX1RYX09GRkxPQURfTVRfTE9D S0ZSRUUJIHwgXAotCQkJCQkgREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKLQkJ CQkJIERFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTQkgfCBcCi0JCQkJCSBERVZfVFhfT0ZG TE9BRF9JUFY0X0NLU1VNCSB8IFwKLQkJCQkJIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTQkgfCBc Ci0JCQkJCSBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0JIHwgXAotCQkJCQkgREVWX1RYX09GRkxP QURfU0NUUF9DS1NVTQkgfCBcCi0JCQkJCSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQorCQkJ CQkgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFCSB8IFwKKwkJCQkJIFJURV9FVEhf VFhfT0ZGTE9BRF9NVF9MT0NLRlJFRQkgfCBcCisJCQkJCSBSVEVfRVRIX1RYX09GRkxPQURfT1VU RVJfSVBWNF9DS1NVTSB8IFwKKwkJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tT VU0JIHwgXAorCQkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0JIHwgXAorCQkJCQkg UlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTQkgfCBcCisJCQkJCSBSVEVfRVRIX1RYX09GRkxP QURfVURQX0NLU1VNCSB8IFwKKwkJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNCSB8 IFwKKwkJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQogCiBzdGF0aWMgaW5saW5l IHN0cnVjdCBvY3Rlb250eF9uaWMgKgogb2N0ZW9udHhfcG1kX3ByaXYoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYpCmRpZmYgYS9kcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXYuYyBiL2Ry aXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTkx NCw4ICs5MTQsOCBAQCBvdHgyX25peF9lbmFibGVfbXNlZ19vbl9qdW1ibyhzdHJ1Y3Qgb3R4Ml9l dGhfcnhxICpyeHEpCiAJYnVmZnN6ID0gbWJwX3ByaXYtPm1idWZfZGF0YV9yb29tX3NpemUgLSBS VEVfUEtUTUJVRl9IRUFEUk9PTTsKIAogCWlmIChldGhfZGV2LT5kYXRhLT5tdHUgKyAodWludDMy X3QpTklYX0wyX09WRVJIRUFEID4gYnVmZnN6KSB7Ci0JCWRldi0+cnhfb2ZmbG9hZHMgfD0gREVW X1JYX09GRkxPQURfU0NBVFRFUjsKLQkJZGV2LT50eF9vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9B RF9NVUxUSV9TRUdTOworCQlkZXYtPnJ4X29mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9T Q0FUVEVSOworCQlkZXYtPnR4X29mZmxvYWRzIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9T RUdTOwogCiAJCS8qIFNldHRpbmcgdXAgdGhlIHJ4W3R4XV9vZmZsb2FkX2ZsYWdzIGR1ZSB0byBj aGFuZ2UKIAkJICogaW4gcnhbdHhdX29mZmxvYWRzLgpkaWZmIGEvZHJpdmVycy9uZXQvb2N0ZW9u dHgyL290eDJfZXRoZGV2LmggYi9kcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXYuaAko cmVqZWN0ZWQgaHVua3MpCkBAIC0xMTcsNDMgKzExNyw0MyBAQAogI2RlZmluZSBDUV9USU1FUl9U SFJFU0hfREVGQVVMVAkweEFVTEwgLyogfjF1c2VjIGkuZSAoMHhBICogMTAwbnNlYykgKi8KICNk ZWZpbmUgQ1FfVElNRVJfVEhSRVNIX01BWCAgICAgMjU1CiAKLSNkZWZpbmUgTklYX1JTU19MM19M NF9TUkNfRFNUICAoRVRIX1JTU19MM19TUkNfT05MWSB8IEVUSF9SU1NfTDNfRFNUX09OTFkgXAot CQkJCXwgRVRIX1JTU19MNF9TUkNfT05MWSB8IEVUSF9SU1NfTDRfRFNUX09OTFkpCisjZGVmaW5l IE5JWF9SU1NfTDNfTDRfU1JDX0RTVCAgKFJURV9FVEhfUlNTX0wzX1NSQ19PTkxZIHwgUlRFX0VU SF9SU1NfTDNfRFNUX09OTFkgXAorCQkJCXwgUlRFX0VUSF9SU1NfTDRfU1JDX09OTFkgfCBSVEVf RVRIX1JTU19MNF9EU1RfT05MWSkKIAotI2RlZmluZSBOSVhfUlNTX09GRkxPQUQJCShFVEhfUlNT X1BPUlQgfCBFVEhfUlNTX0lQIHwgRVRIX1JTU19VRFAgfFwKLQkJCQkgRVRIX1JTU19UQ1AgfCBF VEhfUlNTX1NDVFAgfCBcCi0JCQkJIEVUSF9SU1NfVFVOTkVMIHwgRVRIX1JTU19MMl9QQVlMT0FE IHwgXAotCQkJCSBOSVhfUlNTX0wzX0w0X1NSQ19EU1QgfCBFVEhfUlNTX0xFVkVMX01BU0sgfCBc Ci0JCQkJIEVUSF9SU1NfQ19WTEFOKQorI2RlZmluZSBOSVhfUlNTX09GRkxPQUQJCShSVEVfRVRI X1JTU19QT1JUIHwgUlRFX0VUSF9SU1NfSVAgfCBSVEVfRVRIX1JTU19VRFAgfFwKKwkJCQkgUlRF X0VUSF9SU1NfVENQIHwgUlRFX0VUSF9SU1NfU0NUUCB8IFwKKwkJCQkgUlRFX0VUSF9SU1NfVFVO TkVMIHwgUlRFX0VUSF9SU1NfTDJfUEFZTE9BRCB8IFwKKwkJCQkgTklYX1JTU19MM19MNF9TUkNf RFNUIHwgUlRFX0VUSF9SU1NfTEVWRUxfTUFTSyB8IFwKKwkJCQkgUlRFX0VUSF9SU1NfQ19WTEFO KQogCiAjZGVmaW5lIE5JWF9UWF9PRkZMT0FEX0NBUEEgKCBcCi0JREVWX1RYX09GRkxPQURfTUJV Rl9GQVNUX0ZSRUUJfCBcCi0JREVWX1RYX09GRkxPQURfTVRfTE9DS0ZSRUUJfCBcCi0JREVWX1RY X09GRkxPQURfVkxBTl9JTlNFUlQJfCBcCi0JREVWX1RYX09GRkxPQURfUUlOUV9JTlNFUlQJfCBc Ci0JREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTQl8IFwKLQlERVZfVFhfT0ZGTE9BRF9P VVRFUl9VRFBfQ0tTVU0JfCBcCi0JREVWX1RYX09GRkxPQURfVENQX0NLU1VNCXwgXAotCURFVl9U WF9PRkZMT0FEX1VEUF9DS1NVTQl8IFwKLQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNCXwgXAot CURFVl9UWF9PRkZMT0FEX1RDUF9UU08JCXwgXAotCURFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9U U08gICAgfCBcCi0JREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gICB8IFwKLQlERVZfVFhf T0ZGTE9BRF9HUkVfVE5MX1RTTwl8IFwKLQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTCXwgXAot CURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0pCisJUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFCXwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRQl8IFwKKwlSVEVfRVRI X1RYX09GRkxPQURfVkxBTl9JTlNFUlQJfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5T RVJUCXwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNCXwgXAorCVJURV9F VEhfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0JfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX1RD UF9DS1NVTQl8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNCXwgXAorCVJURV9FVEhf VFhfT0ZGTE9BRF9TQ1RQX0NLU1VNCXwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPCQl8 IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyAgICB8IFwKKwlSVEVfRVRIX1RY X09GRkxPQURfR0VORVZFX1ROTF9UU08gICB8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfR1JFX1RO TF9UU08JfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MJfCBcCisJUlRFX0VUSF9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0pCiAKICNkZWZpbmUgTklYX1JYX09GRkxPQURfQ0FQQSAoIFwK LQlERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTQkJfCBcCi0JREVWX1JYX09GRkxPQURfU0NUUF9DS1NV TQl8IFwKLQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAotCURFVl9SWF9PRkZM T0FEX1NDQVRURVIJCXwgXAotCURFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTQl8IFwKLQlE RVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQCXwgXAotCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVS CXwgXAotCURFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAJfCBcCi0JREVWX1JYX09GRkxPQURfVElN RVNUQU1QCXwgXAotCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIKQorCVJURV9FVEhfUlhfT0ZGTE9B RF9DSEVDS1NVTQkJfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0JfCBcCisJUlRF X0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FE X1NDQVRURVIJCXwgXAorCVJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0JfCBcCisJ UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAJfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fRklMVEVSCXwgXAorCVJURV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQCXwgXAorCVJURV9F VEhfUlhfT0ZGTE9BRF9USU1FU1RBTVAJfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNI KQogCiAjZGVmaW5lIE5JWF9ERUZBVUxUX1JTU19DVFhfR1JPVVAgIDAKICNkZWZpbmUgTklYX0RF RkFVTFRfUlNTX01DQU1fSURYICAtMQpkaWZmIGEvZHJpdmVycy9uZXQvb2N0ZW9udHhfZXAvb3R4 X2VwX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvb2N0ZW9udHhfZXAvb3R4X2VwX2V0aGRldi5jCShy ZWplY3RlZCBodW5rcykKQEAgLTMzLDE0ICszMywxNCBAQCBvdHhfZXBfZGV2X2luZm9fZ2V0KHN0 cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwKIAogCW90eF9lcHZmID0gT1RYX0VQX0RFVihldGhf ZGV2KTsKIAotCWRldmluZm8tPnNwZWVkX2NhcGEgPSBFVEhfTElOS19TUEVFRF8xMEc7CisJZGV2 aW5mby0+c3BlZWRfY2FwYSA9IFJURV9FVEhfTElOS19TUEVFRF8xMEc7CiAJZGV2aW5mby0+bWF4 X3J4X3F1ZXVlcyA9IG90eF9lcHZmLT5tYXhfcnhfcXVldWVzOwogCWRldmluZm8tPm1heF90eF9x dWV1ZXMgPSBvdHhfZXB2Zi0+bWF4X3R4X3F1ZXVlczsKIAogCWRldmluZm8tPm1pbl9yeF9idWZz aXplID0gT1RYX0VQX01JTl9SWF9CVUZfU0laRTsKIAlkZXZpbmZvLT5tYXhfcnhfcGt0bGVuID0g T1RYX0VQX01BWF9QS1RfU1o7Ci0JZGV2aW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gREVWX1JYX09G RkxPQURfU0NBVFRFUjsKLQlkZXZpbmZvLT50eF9vZmZsb2FkX2NhcGEgPSBERVZfVFhfT0ZGTE9B RF9NVUxUSV9TRUdTOworCWRldmluZm8tPnJ4X29mZmxvYWRfY2FwYSA9IFJURV9FVEhfUlhfT0ZG TE9BRF9TQ0FUVEVSOworCWRldmluZm8tPnR4X29mZmxvYWRfY2FwYSA9IFJURV9FVEhfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTOwogCiAJZGV2aW5mby0+bWF4X21hY19hZGRycyA9IE9UWF9FUF9NQVhf TUFDX0FERFJTOwogCmRpZmYgYS9kcml2ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhfZXBfcnh0eC5j IGIvZHJpdmVycy9uZXQvb2N0ZW9udHhfZXAvb3R4X2VwX3J4dHguYwkocmVqZWN0ZWQgaHVua3Mp CkBAIC05NTQsNyArOTU0LDcgQEAgb3R4X2VwX2Ryb3FfcmVhZF9wYWNrZXQoc3RydWN0IG90eF9l cF9kZXZpY2UgKm90eF9lcCwKIAlkcm9xX3BrdC0+bDRfbGVuID0gaGRyX2xlbnMubDRfbGVuOwog CiAJaWYgKGRyb3FfcGt0LT5uYl9zZWdzID4gMSAmJgotCSAgICAhKG90eF9lcC0+cnhfb2ZmbG9h ZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSkgeworCSAgICAhKG90eF9lcC0+cnhfb2ZmbG9h ZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikpIHsKIAkJcnRlX3BrdG1idWZfZnJlZShk cm9xX3BrdCk7CiAJCWdvdG8gb3FfcmVhZF9mYWlsOwogCX0KZGlmZiBhL2RyaXZlcnMvbmV0L3Fl ZGUvcWVkZV9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYwkocmVqZWN0 ZWQgaHVua3MpCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBzdGF0aWMgaW50IHFlZGVfZGV2X2NvbmZp Z3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAl9 CiAKLQlpZiAocnhtb2RlLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpCisJaWYg KHJ4bW9kZS0+b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikKIAkJZXRoX2Rl di0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKIAogCWlmIChxZWRlX3N0YXJ0X3Zwb3J0KHFkZXYs IGV0aF9kZXYtPmRhdGEtPm10dSkpCkBAIC0xMzg1LDM0ICsxMzg1LDM0IEBAIHFlZGVfZGV2X2lu Zm9fZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwKIAlkZXZfaW5mby0+cmV0YV9zaXpl ID0gRUNPUkVfUlNTX0lORF9UQUJMRV9TSVpFOwogCWRldl9pbmZvLT5oYXNoX2tleV9zaXplID0g RUNPUkVfUlNTX0tFWV9TSVpFICogc2l6ZW9mKHVpbnQzMl90KTsKIAlkZXZfaW5mby0+Zmxvd190 eXBlX3Jzc19vZmZsb2FkcyA9ICh1aW50NjRfdClRRURFX1JTU19PRkZMT0FEX0FMTDsKLQlkZXZf aW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gKERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0JfAotCQkJ CSAgICAgREVWX1JYX09GRkxPQURfVURQX0NLU1VNCXwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FE X1RDUF9DS1NVTQl8Ci0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwK LQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8JfAotCQkJCSAgICAgREVWX1JYX09GRkxP QURfS0VFUF9DUkMgICAgfAotCQkJCSAgICAgREVWX1JYX09GRkxPQURfU0NBVFRFUgl8Ci0JCQkJ ICAgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCQkJICAgICBERVZfUlhfT0ZGTE9B RF9WTEFOX1NUUklQICB8Ci0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCk7CisJZGV2 X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IChSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTQl8 CisJCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNCXwKKwkJCQkgICAgIFJURV9F VEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0JfAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX09V VEVSX0lQVjRfQ0tTVU0gfAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8JfAor CQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgIHwKKwkJCQkgICAgIFJURV9F VEhfUlhfT0ZGTE9BRF9TQ0FUVEVSCXwKKwkJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUiB8CisJCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCAgfAorCQkJ CSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIKTsKIAlkZXZfaW5mby0+cnhfcXVldWVf b2ZmbG9hZF9jYXBhID0gMDsKIAogCS8qIFRYIG9mZmxvYWRzIGFyZSBvbiBhIHBlci1wYWNrZXQg YmFzaXMsIHNvIGl0IGlzIGFwcGxpY2FibGUKIAkgKiB0byBib3RoIGF0IHBvcnQgYW5kIHF1ZXVl IGxldmVscy4KIAkgKi8KLQlkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gKERFVl9UWF9PRkZM T0FEX1ZMQU5fSU5TRVJUCXwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0JfAot CQkJCSAgICAgREVWX1RYX09GRkxPQURfVURQX0NLU1VNCXwKLQkJCQkgICAgIERFVl9UWF9PRkZM T0FEX1RDUF9DS1NVTQl8Ci0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VN IHwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgIHwKLQkJCQkgICAgIERFVl9U WF9PRkZMT0FEX1RDUF9UU08JfAotCQkJCSAgICAgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RT TyB8Ci0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyk7CisJZGV2X2luZm8t PnR4X29mZmxvYWRfY2FwYSA9IChSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQJfAorCQkJ CSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0JfAorCQkJCSAgICAgUlRFX0VUSF9U WF9PRkZMT0FEX1VEUF9DS1NVTQl8CisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfVENQX0NL U1VNCXwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJ CQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTICB8CisJCQkJICAgICBSVEVfRVRI X1RYX09GRkxPQURfVENQX1RTTwl8CisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfVlhMQU5f VE5MX1RTTyB8CisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08pOwog CWRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSBkZXZfaW5mby0+dHhfb2ZmbG9hZF9j YXBhOwogCiAJZGV2X2luZm8tPmRlZmF1bHRfdHhjb25mID0gKHN0cnVjdCBydGVfZXRoX3R4Y29u ZikgewotCQkub2ZmbG9hZHMgPSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTLAorCQkub2ZmbG9h ZHMgPSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUywKIAl9OwogCiAJZGV2X2luZm8tPmRl ZmF1bHRfcnhjb25mID0gKHN0cnVjdCBydGVfZXRoX3J4Y29uZikgewpkaWZmIGEvZHJpdmVycy9u ZXQvcWVkZS9xZWRlX3J4dHguYyBiL2RyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4LmMJKHJlamVj dGVkIGh1bmtzKQpAQCAtMjQ5LDcgKzI0OSw3IEBAIHFlZGVfcnhfcXVldWVfc2V0dXAoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCwKIAlidWZzeiA9ICh1aW50MTZfdClydGVf cGt0bWJ1Zl9kYXRhX3Jvb21fc2l6ZShtcCkgLSBSVEVfUEtUTUJVRl9IRUFEUk9PTTsKIAkvKiBj YWNoZSBhbGlnbiB0aGUgbWJ1ZiBzaXplIHRvIHNpbXBsZnkgcnhfYnVmX3NpemUgY2FsY3VsYXRp b24gKi8KIAlidWZzeiA9IFFFREVfRkxPT1JfVE9fQ0FDSEVfTElORV9TSVpFKGJ1ZnN6KTsKLQlp ZiAoKHJ4bW9kZS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKQl8fAorCWlmICgo cnhtb2RlLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKQl8fAogCSAgICAo bWF4X3J4X3BrdGxlbiArIFFFREVfRVRIX09WRVJIRUFEKSA+IGJ1ZnN6KSB7CiAJCWlmICghZGV2 LT5kYXRhLT5zY2F0dGVyZWRfcngpIHsKIAkJCURQX0lORk8oZWRldiwgIkZvcmNpbmcgc2NhdHRl ci1nYXRoZXIgbW9kZVxuIik7CmRpZmYgYS9kcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTAwX3J4LmMg Yi9kcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTAwX3J4LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtOTc5 LDExICs5NzksMTEgQEAgc3RydWN0IHNmY19kcF9yeCBzZmNfZWYxMDBfcnggPSB7CiAJCQkJICBT RkNfRFBfUlhfRkVBVF9JTlRSIHwKIAkJCQkgIFNGQ19EUF9SWF9GRUFUX1NUQVRTLAogCS5kZXZf b2ZmbG9hZF9jYXBhCT0gMCwKLQkucXVldWVfb2ZmbG9hZF9jYXBhCT0gREVWX1JYX09GRkxPQURf Q0hFQ0tTVU0gfAotCQkJCSAgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCQkJ ICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAotCQkJCSAgREVWX1JYX09GRkxPQURf U0NBVFRFUiB8Ci0JCQkJICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCwKKwkucXVldWVfb2ZmbG9h ZF9jYXBhCT0gUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKKwkJCQkgIFJURV9FVEhfUlhf T0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRF Ul9VRFBfQ0tTVU0gfAorCQkJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfAorCQkJCSAg UlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNILAogCS5nZXRfZGV2X2luZm8JCT0gc2ZjX2VmMTAw X3J4X2dldF9kZXZfaW5mbywKIAkucXNpemVfdXBfcmluZ3MJCT0gc2ZjX2VmMTAwX3J4X3FzaXpl X3VwX3JpbmdzLAogCS5xY3JlYXRlCQk9IHNmY19lZjEwMF9yeF9xY3JlYXRlLApkaWZmIGEvZHJp dmVycy9uZXQvc2ZjL3NmY19lZjEwMF90eC5jIGIvZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEwMF90 eC5jCShyZWplY3RlZCBodW5rcykKQEAgLTk3MSwxNiArOTcxLDE2IEBAIHN0cnVjdCBzZmNfZHBf dHggc2ZjX2VmMTAwX3R4ID0gewogCS5mZWF0dXJlcwkJPSBTRkNfRFBfVFhfRkVBVF9NVUxUSV9Q Uk9DRVNTIHwKIAkJCQkgIFNGQ19EUF9UWF9GRUFUX1NUQVRTLAogCS5kZXZfb2ZmbG9hZF9jYXBh CT0gMCwKLQkucXVldWVfb2ZmbG9hZF9jYXBhCT0gREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQg fAotCQkJCSAgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCQkJICBERVZfVFhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NV TSB8Ci0JCQkJICBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQkJCSAgREVWX1RYX09GRkxP QURfVENQX0NLU1VNIHwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAotCQkJCSAg REVWX1RYX09GRkxPQURfVENQX1RTTyB8Ci0JCQkJICBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxf VFNPIHwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPLAorCS5xdWV1ZV9vZmZs b2FkX2NhcGEJPSBSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAorCQkJCSAgUlRFX0VU SF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQkJCSAgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU0gfAorCQkJCSAgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8 CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJCQkgIFJURV9FVEhfVFhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQkJCSAgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1Mg fAorCQkJCSAgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfAorCQkJCSAgUlRFX0VUSF9UWF9P RkZMT0FEX1ZYTEFOX1ROTF9UU08gfAorCQkJCSAgUlRFX0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9U TkxfVFNPLAogCS5nZXRfZGV2X2luZm8JCT0gc2ZjX2VmMTAwX2dldF9kZXZfaW5mbywKIAkucXNp emVfdXBfcmluZ3MJCT0gc2ZjX2VmMTAwX3R4X3FzaXplX3VwX3JpbmdzLAogCS5xY3JlYXRlCQk9 IHNmY19lZjEwMF90eF9xY3JlYXRlLApkaWZmIGEvZHJpdmVycy9uZXQvc2ZjL3NmY19yeC5jIGIv ZHJpdmVycy9uZXQvc2ZjL3NmY19yeC5jCShyZWplY3RlZCBodW5rcykKQEAgLTExNjYsMTUgKzEx NjYsMTUgQEAgc2ZjX3J4X3Fpbml0KHN0cnVjdCBzZmNfYWRhcHRlciAqc2EsIHNmY19zd19pbmRl eF90IHN3X2luZGV4LAogCQlyeHFfaW5mby0+dHlwZSA9IEVGWF9SWFFfVFlQRV9ERUZBVUxUOwog CiAJcnhxX2luZm8tPnR5cGVfZmxhZ3MgfD0KLQkJKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURf U0NBVFRFUikgPworCQkob2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikgPwog CQlFRlhfUlhRX0ZMQUdfU0NBVFRFUiA6IEVGWF9SWFFfRkxBR19OT05FOwogCiAJaWYgKChlbmNw LT5lbmNfdHVubmVsX2VuY2Fwc3VsYXRpb25zX3N1cHBvcnRlZCAhPSAwKSAmJgogCSAgICAoc2Zj X2RwX3J4X29mZmxvYWRfY2FwYShzYS0+cHJpdi5kcF9yeCkgJgotCSAgICAgREVWX1JYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTSkgIT0gMCkKKwkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRF Ul9JUFY0X0NLU1VNKSAhPSAwKQogCQlyeHFfaW5mby0+dHlwZV9mbGFncyB8PSBFRlhfUlhRX0ZM QUdfSU5ORVJfQ0xBU1NFUzsKIAotCWlmIChvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1JTU19I QVNIKQorCWlmIChvZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKIAkJcnhx X2luZm8tPnR5cGVfZmxhZ3MgfD0gRUZYX1JYUV9GTEFHX1JTU19IQVNIOwogCiAJaWYgKChzYS0+ bmVnb3RpYXRlZF9yeF9tZXRhZGF0YSAmIFJURV9FVEhfUlhfTUVUQURBVEFfVVNFUl9GTEFHKSAh PSAwKQpkaWZmIGEvZHJpdmVycy9uZXQvdGh1bmRlcngvbmljdmZfZXRoZGV2LmMgYi9kcml2ZXJz L25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xNzExLDcg KzE3MTEsNyBAQCBuaWN2Zl9kZXZfc3RhcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJLyog U2V0dXAgc2NhdHRlciBtb2RlIGlmIG5lZWRlZCBieSBqdW1ibyAqLwogCWlmIChkZXYtPmRhdGEt Pm10dSArICh1aW50MzJfdClOSUNfSFdfTDJfT1ZFUkhFQUQgKyAyICogVkxBTl9UQUdfU0laRSA+ IGJ1ZmZzeikKIAkJZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSAxOwotCWlmICgocnhfY29uZi0+ b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSAhPSAwKQorCWlmICgocnhfY29uZi0+ b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikgIT0gMCkKIAkJZGV2LT5kYXRh LT5zY2F0dGVyZWRfcnggPSAxOwogCiAJLyogU2V0dXAgTVRVICovCmRpZmYgYS9kcml2ZXJzL25l dC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuaCBiL2RyaXZlcnMvbmV0L3RodW5kZXJ4L25pY3ZmX2V0 aGRldi5oCShyZWplY3RlZCBodW5rcykKQEAgLTE2LDMyICsxNiwzMiBAQAogI2RlZmluZSBOSUNW Rl9VTktOT1dOX0RVUExFWAkJMHhmZgogCiAjZGVmaW5lIE5JQ1ZGX1JTU19PRkZMT0FEX1BBU1Mx ICggXAotCUVUSF9SU1NfUE9SVCB8IFwKLQlFVEhfUlNTX0lQVjQgfCBcCi0JRVRIX1JTU19OT05G UkFHX0lQVjRfVENQIHwgXAotCUVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8IFwKLQlFVEhfUlNT X0lQVjYgfCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAotCUVUSF9SU1NfTk9ORlJB R19JUFY2X1VEUCkKKwlSVEVfRVRIX1JTU19QT1JUIHwgXAorCVJURV9FVEhfUlNTX0lQVjQgfCBc CisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFH X0lQVjRfVURQIHwgXAorCVJURV9FVEhfUlNTX0lQVjYgfCBcCisJUlRFX0VUSF9SU1NfTk9ORlJB R19JUFY2X1RDUCB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVURQKQogCiAjZGVmaW5l IE5JQ1ZGX1JTU19PRkZMT0FEX1RVTk5FTCAoIFwKLQlFVEhfUlNTX1ZYTEFOIHwgXAotCUVUSF9S U1NfR0VORVZFIHwgXAotCUVUSF9SU1NfTlZHUkUpCisJUlRFX0VUSF9SU1NfVlhMQU4gfCBcCisJ UlRFX0VUSF9SU1NfR0VORVZFIHwgXAorCVJURV9FVEhfUlNTX05WR1JFKQogCiAjZGVmaW5lIE5J Q1ZGX1RYX09GRkxPQURfQ0FQQSAoIFwKLQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNICAgICAg IHwgXAotCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgICAgICAgfCBcCi0JREVWX1RYX09GRkxP QURfVENQX0NLU1VNICAgICAgICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VN IHwgXAotCURFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFICAgfCBcCi0JREVWX1RYX09GRkxP QURfTVVMVElfU0VHUykKKwlSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSAgICAgICB8IFwK KwlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNICAgICAgICB8IFwKKwlSVEVfRVRIX1RYX09G RkxPQURfVENQX0NLU1VNICAgICAgICB8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTSB8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgICB8IFwKKwlS VEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykKIAogI2RlZmluZSBOSUNWRl9SWF9PRkZMT0FE X0NBUEEgKCBcCi0JREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0gICAgfCBcCi0JREVWX1JYX09GRkxP QURfVkxBTl9TVFJJUCAgfCBcCi0JREVWX1JYX09GRkxPQURfU0NBVFRFUiAgICAgfCBcCi0JREVW X1JYX09GRkxPQURfUlNTX0hBU0gpCisJUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNICAgIHwg XAorCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8IFwKKwlSVEVfRVRIX1JYX09GRkxP QURfU0NBVFRFUiAgICAgfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIKQogCiAjZGVm aW5lIE5JQ1ZGX0RFRkFVTFRfUlhfRlJFRV9USFJFU0ggICAgMjI0CiAjZGVmaW5lIE5JQ1ZGX0RF RkFVTFRfVFhfRlJFRV9USFJFU0ggICAgMjI0CmRpZmYgYS9kcml2ZXJzL25ldC90eGdiZS90eGdi ZV9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5jCShyZWplY3RlZCBo dW5rcykKQEAgLTE3NjMsOCArMTc2Myw4IEBAIHR4Z2JlX2Rldl9zdGFydChzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldikKIAlpZiAoZXJyKQogCQlnb3RvIGVycm9yOwogCi0JYWxsb3dlZF9zcGVlZHMg PSBFVEhfTElOS19TUEVFRF8xMDBNIHwgRVRIX0xJTktfU1BFRURfMUcgfAotCQkJRVRIX0xJTktf U1BFRURfMTBHOworCWFsbG93ZWRfc3BlZWRzID0gUlRFX0VUSF9MSU5LX1NQRUVEXzEwME0gfCBS VEVfRVRIX0xJTktfU1BFRURfMUcgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzEwRzsKIAogCWxp bmtfc3BlZWRzID0gJmRldi0+ZGF0YS0+ZGV2X2NvbmYubGlua19zcGVlZHM7CiAJaWYgKCgoKmxp bmtfc3BlZWRzKSA+PiAxKSAmIH4oYWxsb3dlZF9zcGVlZHMgPj4gMSkpIHsKQEAgLTI2OTUsMTEg KzI2OTUsMTEgQEAgdHhnYmVfZGV2X2xpbmtfdXBkYXRlX3NoYXJlKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LAogCWludCB3YWl0ID0gMTsKIAogCW1lbXNldCgmbGluaywgMCwgc2l6ZW9mKGxpbmsp KTsKLQlsaW5rLmxpbmtfc3RhdHVzID0gRVRIX0xJTktfRE9XTjsKLQlsaW5rLmxpbmtfc3BlZWQg PSBFVEhfU1BFRURfTlVNX05PTkU7Ci0JbGluay5saW5rX2R1cGxleCA9IEVUSF9MSU5LX0hBTEZf RFVQTEVYOworCWxpbmsubGlua19zdGF0dXMgPSBSVEVfRVRIX0xJTktfRE9XTjsKKwlsaW5rLmxp bmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV9OT05FOworCWxpbmsubGlua19kdXBsZXggPSBS VEVfRVRIX0xJTktfSEFMRl9EVVBMRVg7CiAJbGluay5saW5rX2F1dG9uZWcgPSAhKGRldi0+ZGF0 YS0+ZGV2X2NvbmYubGlua19zcGVlZHMgJgotCQkJRVRIX0xJTktfU1BFRURfRklYRUQpOworCQkJ UlRFX0VUSF9MSU5LX0FVVE9ORUcpOwogCiAJaHctPm1hYy5nZXRfbGlua19zdGF0dXMgPSB0cnVl OwogCmRpZmYgYS9kcml2ZXJzL25ldC90eGdiZS90eGdiZV9ldGhkZXYuaCBiL2RyaXZlcnMvbmV0 L3R4Z2JlL3R4Z2JlX2V0aGRldi5oCShyZWplY3RlZCBodW5rcykKQEAgLTYwLDE1ICs2MCwxNSBA QAogI2RlZmluZSBUWEdCRV9FVEhfT1ZFUkhFQUQgKFJURV9FVEhFUl9IRFJfTEVOICsgUlRFX0VU SEVSX0NSQ19MRU4pCiAKICNkZWZpbmUgVFhHQkVfUlNTX09GRkxPQURfQUxMICggXAotCUVUSF9S U1NfSVBWNCB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfCBcCi0JRVRIX1JTU19OT05G UkFHX0lQVjRfVURQIHwgXAotCUVUSF9SU1NfSVBWNiB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBW Nl9UQ1AgfCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwgXAotCUVUSF9SU1NfSVBWNl9F WCB8IFwKLQlFVEhfUlNTX0lQVjZfVENQX0VYIHwgXAotCUVUSF9SU1NfSVBWNl9VRFBfRVgpCisJ UlRFX0VUSF9SU1NfSVBWNCB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwgXAor CVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfCBcCisJUlRFX0VUSF9SU1NfSVBWNiB8IFwK KwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAorCVJURV9FVEhfUlNTX05PTkZSQUdf SVBWNl9VRFAgfCBcCisJUlRFX0VUSF9SU1NfSVBWNl9FWCB8IFwKKwlSVEVfRVRIX1JTU19JUFY2 X1RDUF9FWCB8IFwKKwlSVEVfRVRIX1JTU19JUFY2X1VEUF9FWCkKIAogI2RlZmluZSBUWEdCRV9N SVNDX1ZFQ19JRCAgICAgICAgICAgICAgIFJURV9JTlRSX1ZFQ19aRVJPX09GRlNFVAogI2RlZmlu ZSBUWEdCRV9SWF9WRUNfU1RBUlQgICAgICAgICAgICAgIFJURV9JTlRSX1ZFQ19SWFRYX09GRlNF VApkaWZmIGEvZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfcnh0eC5jIGIvZHJpdmVycy9uZXQvdHhn YmUvdHhnYmVfcnh0eC5jCShyZWplY3RlZCBodW5rcykKQEAgLTE5NzAsMzQgKzE5NzAsMzQgQEAg dHhnYmVfZ2V0X3J4X3BvcnRfb2ZmbG9hZHMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJc3Ry dWN0IHR4Z2JlX2h3ICpodyA9IFRYR0JFX0RFVl9IVyhkZXYpOwogCXN0cnVjdCBydGVfZXRoX2Rl dl9zcmlvdiAqc3Jpb3YgPSAmUlRFX0VUSF9ERVZfU1JJT1YoZGV2KTsKIAotCW9mZmxvYWRzID0g REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tT VU0gICB8Ci0JCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwKLQkJICAgREVWX1JYX09G RkxPQURfS0VFUF9DUkMgICAgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0J CSAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKLQkJICAgREVWX1JYX09GRkxPQURfU0NBVFRF UjsKKwlvZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8CisJCSAgIFJU RV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9U Q1BfQ0tTVU0gICB8CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8CisJCSAg IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9B RF9SU1NfSEFTSCB8CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSOwogCiAJaWYgKCF0 eGdiZV9pc192ZihkZXYpKQotCQlvZmZsb2FkcyB8PSAoREVWX1JYX09GRkxPQURfVkxBTl9GSUxU RVIgfAotCQkJICAgICBERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKLQkJCSAgICAgREVWX1JY X09GRkxPQURfVkxBTl9FWFRFTkQpOworCQlvZmZsb2FkcyB8PSAoUlRFX0VUSF9SWF9PRkZMT0FE X1ZMQU5fRklMVEVSIHwKKwkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAor CQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9FWFRFTkQpOwogCiAJLyoKIAkgKiBSU0Mg aXMgb25seSBzdXBwb3J0ZWQgYnkgUEYgZGV2aWNlcyBpbiBhIG5vbi1TUi1JT1YKIAkgKiBtb2Rl LgogCSAqLwogCWlmIChody0+bWFjLnR5cGUgPT0gdHhnYmVfbWFjX3JhcHRvciAmJiAhc3Jpb3Yt PmFjdGl2ZSkKLQkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfVENQX0xSTzsKKwkJb2ZmbG9h ZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk87CiAKIAlpZiAoaHctPm1hYy50eXBlID09 IHR4Z2JlX21hY19yYXB0b3IpCi0JCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX01BQ1NFQ19T VFJJUDsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX01BQ1NFQ19TVFJJUDsKIAot CW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU07CisJb2ZmbG9hZHMg fD0gUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU07CiAKICNpZmRlZiBSVEVfTElC X1NFQ1VSSVRZCiAJaWYgKGRldi0+c2VjdXJpdHlfY3R4KQotCQlvZmZsb2FkcyB8PSBERVZfUlhf T0ZGTE9BRF9TRUNVUklUWTsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1NFQ1VS SVRZOwogI2VuZGlmCiAKIAlyZXR1cm4gb2ZmbG9hZHM7CkBAIC0zOTMxLDE1ICszOTMxLDE1IEBA IHR4Z2JlX2NvbmZpZ192Zl9kZWZhdWx0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCW1ycWMg PSByZDMyKGh3LCBUWEdCRV9QT1JUQ1RMKTsKIAltcnFjICY9IH4oVFhHQkVfUE9SVENUTF9OVU1U Q19NQVNLIHwgVFhHQkVfUE9SVENUTF9OVU1WVF9NQVNLKTsKIAlzd2l0Y2ggKFJURV9FVEhfREVW X1NSSU9WKGRldikuYWN0aXZlKSB7Ci0JY2FzZSBFVEhfNjRfUE9PTFM6CisJY2FzZSBSVEVfRVRI XzY0X1BPT0xTOgogCQltcnFjIHw9IFRYR0JFX1BPUlRDVExfTlVNVlRfNjQ7CiAJCWJyZWFrOwog Ci0JY2FzZSBFVEhfMzJfUE9PTFM6CisJY2FzZSBSVEVfRVRIXzMyX1BPT0xTOgogCQltcnFjIHw9 IFRYR0JFX1BPUlRDVExfTlVNVlRfMzI7CiAJCWJyZWFrOwogCi0JY2FzZSBFVEhfMTZfUE9PTFM6 CisJY2FzZSBSVEVfRVRIXzE2X1BPT0xTOgogCQltcnFjIHw9IFRYR0JFX1BPUlRDVExfTlVNVlRf MTY7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC00MzkxLDExICs0MzkxLDExIEBAIHR4Z2JlX2Rl dl9yeF9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCQlpZiAoZGV2LT5kYXRhLT5tdHUg KyBUWEdCRV9FVEhfT1ZFUkhFQUQgKwogCQkJCTIgKiBUWEdCRV9WTEFOX1RBR19TSVpFID4gYnVm X3NpemUpCiAJCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7Ci0JCWlmIChyeHEtPm9mZmxv YWRzICYgREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCkKLQkJCXJ4X2NvbmYtPm9mZmxvYWRzIHw9 IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CisJCWlmIChyeHEtPm9mZmxvYWRzICYgUlRFX0VU SF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVApCisJCQlyeF9jb25mLT5vZmZsb2FkcyB8PSBSVEVfRVRI X1JYX09GRkxPQURfVkxBTl9TVFJJUDsKIAl9CiAKLQlpZiAocnhfY29uZi0+b2ZmbG9hZHMgJiBE RVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKQorCWlmIChyeF9jb25mLT5vZmZsb2FkcyAmIFJURV9FVEhf UlhfT0ZGTE9BRF9TQ0FUVEVSKQogCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7CiAKIAkv KgpAQCAtNDkwMyw3ICs0OTAzLDcgQEAgdHhnYmV2Zl9kZXZfcnhfaW5pdChzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldikKIAkJICovCiAJCXdyMzIoaHcsIFRYR0JFX1JYQ0ZHKGkpLCBzcnJjdGwpOwog Ci0JCWlmIChyeG1vZGUtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8fAorCQlp ZiAocnhtb2RlLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHx8CiAJCSAg ICAvKiBJdCBhZGRzIGR1YWwgVkxBTiBsZW5ndGggZm9yIHN1cHBvcnRpbmcgZHVhbCBWTEFOICov CiAJCSAgICAoZGV2LT5kYXRhLT5tdHUgKyBUWEdCRV9FVEhfT1ZFUkhFQUQgKwogCQkJCTIgKiBU WEdCRV9WTEFOX1RBR19TSVpFKSA+IGJ1Zl9zaXplKSB7CmRpZmYgYS9kcml2ZXJzL25ldC92aXJ0 aW8vdmlydGlvX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYwko cmVqZWN0ZWQgaHVua3MpCkBAIC0yMTExLDIwICsyMTExLDIwIEBAIHZpcnRpb19kZXZfY29uZmln dXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCiAJaHctPm1heF9yeF9wa3RfbGVuID0gZXRo ZXJfaGRyX2xlbiArIHJ4bW9kZS0+bXR1OwogCi0JaWYgKHJ4X29mZmxvYWRzICYgKERFVl9SWF9P RkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQkgICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0pKQorCWlm IChyeF9vZmZsb2FkcyAmIChSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJCSAgIFJU RV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0pKQogCQlyZXFfZmVhdHVyZXMgfD0gKDFVTEwgPDwg VklSVElPX05FVF9GX0dVRVNUX0NTVU0pOwogCi0JaWYgKHJ4X29mZmxvYWRzICYgREVWX1JYX09G RkxPQURfVENQX0xSTykKKwlpZiAocnhfb2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfVENQ X0xSTykKIAkJcmVxX2ZlYXR1cmVzIHw9CiAJCQkoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1Rf VFNPNCkgfAogCQkJKDFVTEwgPDwgVklSVElPX05FVF9GX0dVRVNUX1RTTzYpOwogCi0JaWYgKHR4 X29mZmxvYWRzICYgKERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQkgICBERVZfVFhfT0ZG TE9BRF9UQ1BfQ0tTVU0pKQorCWlmICh0eF9vZmZsb2FkcyAmIChSVEVfRVRIX1RYX09GRkxPQURf VURQX0NLU1VNIHwKKwkJCSAgIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0pKQogCQlyZXFf ZmVhdHVyZXMgfD0gKDFVTEwgPDwgVklSVElPX05FVF9GX0NTVU0pOwogCi0JaWYgKHR4X29mZmxv YWRzICYgREVWX1RYX09GRkxPQURfVENQX1RTTykKKwlpZiAodHhfb2ZmbG9hZHMgJiBSVEVfRVRI X1RYX09GRkxPQURfVENQX1RTTykKIAkJcmVxX2ZlYXR1cmVzIHw9CiAJCQkoMVVMTCA8PCBWSVJU SU9fTkVUX0ZfSE9TVF9UU080KSB8CiAJCQkoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9UU082 KTsKQEAgLTI1NDYsMzIgKzI1NDYsMzIgQEAgdmlydGlvX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQogCWRldl9p bmZvLT5tYXhfbXR1ID0gaHctPm1heF9tdHU7CiAKIAlob3N0X2ZlYXR1cmVzID0gVklSVElPX09Q UyhodyktPmdldF9mZWF0dXJlcyhodyk7Ci0JZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IERF Vl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CisJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IFJU RV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQOwogCWlmIChob3N0X2ZlYXR1cmVzICYgKDFVTEwg PDwgVklSVElPX05FVF9GX01SR19SWEJVRikpCi0JCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEg fD0gREVWX1JYX09GRkxPQURfU0NBVFRFUjsKKwkJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8 PSBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUjsKIAlpZiAoaG9zdF9mZWF0dXJlcyAmICgxVUxM IDw8IFZJUlRJT19ORVRfRl9HVUVTVF9DU1VNKSkgewogCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9j YXBhIHw9Ci0JCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQkJREVWX1JYX09GRkxPQURf VURQX0NLU1VNOworCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCQlSVEVfRVRI X1JYX09GRkxPQURfVURQX0NLU1VNOwogCX0KIAlpZiAoaG9zdF9mZWF0dXJlcyAmICgxVUxMIDw8 IFZJUlRJT19ORVRfRl9DVFJMX1ZMQU4pKQotCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9 IERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOworCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBh IHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsKIAl0c29fbWFzayA9ICgxVUxMIDw8 IFZJUlRJT19ORVRfRl9HVUVTVF9UU080KSB8CiAJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9HVUVT VF9UU082KTsKIAlpZiAoKGhvc3RfZmVhdHVyZXMgJiB0c29fbWFzaykgPT0gdHNvX21hc2spCi0J CWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfVENQX0xSTzsKKwkJ ZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTzsK IAotCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT IHwKLQkJCQkgICAgREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQ7CisJZGV2X2luZm8tPnR4X29m ZmxvYWRfY2FwYSA9IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJCQkgICAgUlRF X0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUOwogCWlmIChob3N0X2ZlYXR1cmVzICYgKDFVTEwg PDwgVklSVElPX05FVF9GX0NTVU0pKSB7CiAJCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgfD0K LQkJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tT VU07CisJCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJCVJURV9FVEhfVFhfT0ZG TE9BRF9UQ1BfQ0tTVU07CiAJfQogCXRzb19tYXNrID0gKDFVTEwgPDwgVklSVElPX05FVF9GX0hP U1RfVFNPNCkgfAogCQkoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9UU082KTsKIAlpZiAoKGhv c3RfZmVhdHVyZXMgJiB0c29fbWFzaykgPT0gdHNvX21hc2spCi0JCWRldl9pbmZvLT50eF9vZmZs b2FkX2NhcGEgfD0gREVWX1RYX09GRkxPQURfVENQX1RTTzsKKwkJZGV2X2luZm8tPnR4X29mZmxv YWRfY2FwYSB8PSBSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTzsKIAogCWlmIChob3N0X2ZlYXR1 cmVzICYgKDFVTEwgPDwgVklSVElPX0ZfUklOR19QQUNLRUQpKSB7CiAJCS8qCmRpZmYgYS9kcml2 ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC92bXhuZXQzL3Zt eG5ldDNfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNDEsMjAgKzQxLDIwIEBACiAjZGVm aW5lCVZNWE5FVDNfVFhfTUFYX1NFRwlVSU5UOF9NQVgKIAogI2RlZmluZSBWTVhORVQzX1RYX09G RkxPQURfQ0FQCQlcCi0JKERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwJXAotCSBERVZfVFhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAlcCi0JIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CVwKLQkg REVWX1RYX09GRkxPQURfVENQX1RTTyB8CVwKLQkgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykK KwkoUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwJXAorCSBSVEVfRVRIX1RYX09GRkxP QURfVENQX0NLU1VNIHwJXAorCSBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwJXAorCSBS VEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8CVwKKwkgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJ X1NFR1MpCiAKICNkZWZpbmUgVk1YTkVUM19SWF9PRkZMT0FEX0NBUAkJXAotCShERVZfUlhfT0ZG TE9BRF9WTEFOX1NUUklQIHwJXAotCSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8ICAgXAot CSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwJXAotCSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0g fAlcCi0JIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CVwKLQkgREVWX1JYX09GRkxPQURfVENQ X0xSTyB8CVwKLQkgREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCisJKFJURV9FVEhfUlhfT0ZGTE9B RF9WTEFOX1NUUklQIHwJXAorCSBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCAgIFwK KwkgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfAlcCisJIFJURV9FVEhfUlhfT0ZGTE9BRF9V RFBfQ0tTVU0gfAlcCisJIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAlcCisJIFJURV9F VEhfUlhfT0ZGTE9BRF9UQ1BfTFJPIHwJXAorCSBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gp CiAKIGludCB2bXhuZXQzX3NlZ3NfZHluZmllbGRfb2Zmc2V0ID0gLTE7CiAKZGlmZiBhL2V4YW1w bGVzL2JiZGV2X2FwcC9tYWluLmMgYi9leGFtcGxlcy9iYmRldl9hcHAvbWFpbi5jCShyZWplY3Rl ZCBodW5rcykKQEAgLTcxLDExICs3MSwxMSBAQCBtYnVmX2lucHV0KHN0cnVjdCBydGVfbWJ1ZiAq bWJ1ZikKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewog CS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCisJCS5tcV9tb2RlID0g UlRFX0VUSF9NUV9SWF9OT05FLAogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAogCX0sCiAJLnR4bW9k ZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRI X01RX1RYX05PTkUsCiAJfSwKIH07CiAKZGlmZiBhL2V4YW1wbGVzL2JvbmQvbWFpbi5jIGIvZXhh bXBsZXMvYm9uZC9tYWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTE1LDE3ICsxMTUsMTcgQEAg c3RhdGljIHN0cnVjdCBydGVfbWVtcG9vbCAqbWJ1Zl9wb29sOwogCiBzdGF0aWMgc3RydWN0IHJ0 ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhf TVFfUlhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX05PTkUsCiAJCS5zcGxpdF9o ZHJfc2l6ZSA9IDAsCiAJfSwKIAkucnhfYWR2X2NvbmYgPSB7CiAJCS5yc3NfY29uZiA9IHsKIAkJ CS5yc3Nfa2V5ID0gTlVMTCwKLQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQLAorCQkJLnJzc19oZiA9 IFJURV9FVEhfUlNTX0lQLAogCQl9LAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBF VEhfTVFfVFhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfSwKIH07 CiAKZGlmZiBhL2V4YW1wbGVzL2Rpc3RyaWJ1dG9yL21haW4uYyBiL2V4YW1wbGVzL2Rpc3RyaWJ1 dG9yL21haW4uYwkocmVqZWN0ZWQgaHVua3MpCkBAIC04MCwxNSArODAsMTUgQEAgc3RydWN0IGFw cF9zdGF0cyBwcmV2X2FwcF9zdGF0czsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBydGVfZXRoX2Nv bmYgcG9ydF9jb25mX2RlZmF1bHQgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhf TVFfUlhfUlNTLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfUlNTLAogCX0sCiAJLnR4bW9k ZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRI X01RX1RYX05PTkUsCiAJfSwKIAkucnhfYWR2X2NvbmYgPSB7CiAJCS5yc3NfY29uZiA9IHsKLQkJ CS5yc3NfaGYgPSBFVEhfUlNTX0lQIHwgRVRIX1JTU19VRFAgfAotCQkJCUVUSF9SU1NfVENQIHwg RVRIX1JTU19TQ1RQLAorCQkJLnJzc19oZiA9IFJURV9FVEhfUlNTX0lQIHwgUlRFX0VUSF9SU1Nf VURQIHwKKwkJCQlSVEVfRVRIX1JTU19UQ1AgfCBSVEVfRVRIX1JTU19TQ1RQLAogCQl9CiAJfSwK IH07CmRpZmYgYS9leGFtcGxlcy9ldmVudGRldl9waXBlbGluZS9waXBlbGluZV93b3JrZXJfZ2Vu ZXJpYy5jIGIvZXhhbXBsZXMvZXZlbnRkZXZfcGlwZWxpbmUvcGlwZWxpbmVfd29ya2VyX2dlbmVy aWMuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yODMsMTMgKzI4MywxMyBAQCBwb3J0X2luaXQodWlu dDhfdCBwb3J0LCBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1idWZfcG9vbCkKIAlzdHJ1Y3QgcnRlX2V0 aF9yeGNvbmYgcnhfY29uZjsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0 X2NvbmZfZGVmYXVsdCA9IHsKIAkJLnJ4bW9kZSA9IHsKLQkJCS5tcV9tb2RlID0gRVRIX01RX1JY X1JTUywKKwkJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9SWF9SU1MsCiAJCX0sCiAJCS5yeF9hZHZf Y29uZiA9IHsKIAkJCS5yc3NfY29uZiA9IHsKLQkJCQkucnNzX2hmID0gRVRIX1JTU19JUCB8Ci0J CQkJCSAgRVRIX1JTU19UQ1AgfAotCQkJCQkgIEVUSF9SU1NfVURQLAorCQkJCS5yc3NfaGYgPSBS VEVfRVRIX1JTU19JUCB8CisJCQkJCSAgUlRFX0VUSF9SU1NfVENQIHwKKwkJCQkJICBSVEVfRVRI X1JTU19VRFAsCiAJCQl9CiAJCX0KIAl9OwpkaWZmIGEvZXhhbXBsZXMvZXZlbnRkZXZfcGlwZWxp bmUvcGlwZWxpbmVfd29ya2VyX3R4LmMgYi9leGFtcGxlcy9ldmVudGRldl9waXBlbGluZS9waXBl bGluZV93b3JrZXJfdHguYwkocmVqZWN0ZWQgaHVua3MpCkBAIC02MTQsMTMgKzYxNCwxMyBAQCBw b3J0X2luaXQodWludDhfdCBwb3J0LCBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1idWZfcG9vbCkKIAlz dHJ1Y3QgcnRlX2V0aF9yeGNvbmYgcnhfY29uZjsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9l dGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKIAkJLnJ4bW9kZSA9IHsKLQkJCS5tcV9tb2Rl ID0gRVRIX01RX1JYX1JTUywKKwkJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9SWF9SU1MsCiAJCX0s CiAJCS5yeF9hZHZfY29uZiA9IHsKIAkJCS5yc3NfY29uZiA9IHsKLQkJCQkucnNzX2hmID0gRVRI X1JTU19JUCB8Ci0JCQkJCSAgRVRIX1JTU19UQ1AgfAotCQkJCQkgIEVUSF9SU1NfVURQLAorCQkJ CS5yc3NfaGYgPSBSVEVfRVRIX1JTU19JUCB8CisJCQkJCSAgUlRFX0VUSF9SU1NfVENQIHwKKwkJ CQkJICBSVEVfRVRIX1JTU19VRFAsCiAJCQl9CiAJCX0KIAl9OwpkaWZmIGEvZXhhbXBsZXMvaW9h dC9pb2F0ZndkLmMgYi9leGFtcGxlcy9pb2F0L2lvYXRmd2QuYwkocmVqZWN0ZWQgaHVua3MpCkBA IC04MTksMTIgKzgxOSwxMiBAQCBwb3J0X2luaXQodWludDE2X3QgcG9ydGlkLCBzdHJ1Y3QgcnRl X21lbXBvb2wgKm1idWZfcG9vbCwgdWludDE2X3QgbmJfcXVldWVzKQogCS8qIENvbmZpZ3VyaW5n IHBvcnQgdG8gdXNlIFJTUyBmb3IgbXVsdGlwbGUgUlggcXVldWVzLiA4PCAqLwogCXN0YXRpYyBj b25zdCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKIAkJLnJ4bW9kZSA9IHsKLQkJ CS5tcV9tb2RlID0gRVRIX01RX1JYX1JTUywKKwkJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9SWF9S U1MsCiAJCX0sCiAJCS5yeF9hZHZfY29uZiA9IHsKIAkJCS5yc3NfY29uZiA9IHsKIAkJCQkucnNz X2tleSA9IE5VTEwsCi0JCQkJLnJzc19oZiA9IEVUSF9SU1NfUFJPVE9fTUFTSywKKwkJCQkucnNz X2hmID0gUlRFX0VUSF9SU1NfUFJPVE9fTUFTSywKIAkJCX0KIAkJfQogCX07CmRpZmYgYS9leGFt cGxlcy9pcF9mcmFnbWVudGF0aW9uL21haW4uYyBiL2V4YW1wbGVzL2lwX2ZyYWdtZW50YXRpb24v bWFpbi5jCShyZWplY3RlZCBodW5rcykKQEAgLTE0OSwxMyArMTQ5LDEzIEBAIHN0YXRpYyBzdHJ1 Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKIAkJLm10dSA9IEpVTUJPX0ZSQU1FX01BWF9T SVpFIC0gUlRFX0VUSEVSX0hEUl9MRU4gLQogCQkJUlRFX0VUSEVSX0NSQ19MRU4sCiAJCS5zcGxp dF9oZHJfc2l6ZSA9IDAsCi0JCS5vZmZsb2FkcyA9IChERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSB8 Ci0JCQkgICAgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpLAorCQkub2ZmbG9hZHMgPSAoUlRFX0VU SF9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKKwkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRU RVIpLAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKLQkJ Lm9mZmxvYWRzID0gKERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQkJICAgICBERVZfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTKSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCisJ CS5vZmZsb2FkcyA9IChSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCQkgICAgIFJU RV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKSwKIAl9LAogfTsKIApkaWZmIGEvZXhhbXBsZXMv aXBfcGlwZWxpbmUvbGluay5jIGIvZXhhbXBsZXMvaXBfcGlwZWxpbmUvbGluay5jCShyZWplY3Rl ZCBodW5rcykKQEAgLTQ1LDcgKzQ1LDcgQEAgbGlua19uZXh0KHN0cnVjdCBsaW5rICpsaW5rKQog c3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mX2RlZmF1bHQgPSB7CiAJLmxpbmtf c3BlZWRzID0gMCwKIAkucnhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLAor CQkubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfTk9ORSwKIAkJLm10dSA9IDkwMDAgLSAoUlRFX0VU SEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTiksIC8qIEp1bWJvIGZyYW1lIE1UVSAqLwog CQkuc3BsaXRfaGRyX3NpemUgPSAwLCAvKiBIZWFkZXIgc3BsaXQgYnVmZmVyIHNpemUgKi8KIAl9 LApkaWZmIGEvZXhhbXBsZXMvaXBfcmVhc3NlbWJseS9tYWluLmMgYi9leGFtcGxlcy9pcF9yZWFz c2VtYmx5L21haW4uYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xNjEsMjIgKzE2MSwyMiBAQCBzdGF0 aWMgc3RydWN0IGxjb3JlX3F1ZXVlX2NvbmYgbGNvcmVfcXVldWVfY29uZltSVEVfTUFYX0xDT1JF XTsKIAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCS5yeG1vZGUg PSB7Ci0JCS5tcV9tb2RlICAgICAgICA9IEVUSF9NUV9SWF9SU1MsCisJCS5tcV9tb2RlICAgICAg ICA9IFJURV9FVEhfTVFfUlhfUlNTLAogCQkubXR1ID0gSlVNQk9fRlJBTUVfTUFYX1NJWkUgLSBS VEVfRVRIRVJfSERSX0xFTiAtCiAJCQlSVEVfRVRIRVJfQ1JDX0xFTiwKIAkJLnNwbGl0X2hkcl9z aXplID0gMCwKLQkJLm9mZmxvYWRzID0gREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0sCisJCS5vZmZs b2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKIAl9LAogCS5yeF9hZHZfY29uZiA9 IHsKIAkJCS5yc3NfY29uZiA9IHsKIAkJCQkucnNzX2tleSA9IE5VTEwsCi0JCQkJLnJzc19oZiA9 IEVUSF9SU1NfSVAsCisJCQkJLnJzc19oZiA9IFJURV9FVEhfUlNTX0lQLAogCQl9LAogCX0sCiAJ LnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKLQkJLm9mZmxvYWRzID0g KERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQkJICAgICBERVZfVFhfT0ZGTE9BRF9NVUxU SV9TRUdTKSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCisJCS5vZmZsb2FkcyA9 IChSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCQkgICAgIFJURV9FVEhfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTKSwKIAl9LAogfTsKIApkaWZmIGEvZXhhbXBsZXMvaXBzZWMtc2VjZ3cv aXBzZWMtc2VjZ3cuYyBiL2V4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLXNlY2d3LmMJKHJlamVj dGVkIGh1bmtzKQpAQCAtMjM0LDE5ICsyMzQsMTkgQEAgc3RhdGljIHN0cnVjdCBsY29yZV9jb25m IGxjb3JlX2NvbmZbUlRFX01BWF9MQ09SRV07CiAKIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25m IHBvcnRfY29uZiA9IHsKIAkucnhtb2RlID0gewotCQkubXFfbW9kZQk9IEVUSF9NUV9SWF9SU1Ms CisJCS5tcV9tb2RlCT0gUlRFX0VUSF9NUV9SWF9SU1MsCiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAs Ci0JCS5vZmZsb2FkcyA9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLAorCQkub2ZmbG9hZHMgPSBS VEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0sCiAJfSwKIAkucnhfYWR2X2NvbmYgPSB7CiAJCS5y c3NfY29uZiA9IHsKIAkJCS5yc3Nfa2V5ID0gTlVMTCwKLQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQ IHwgRVRIX1JTU19VRFAgfAotCQkJCUVUSF9SU1NfVENQIHwgRVRIX1JTU19TQ1RQLAorCQkJLnJz c19oZiA9IFJURV9FVEhfUlNTX0lQIHwgUlRFX0VUSF9SU1NfVURQIHwKKwkJCQlSVEVfRVRIX1JT U19UQ1AgfCBSVEVfRVRIX1JTU19TQ1RQLAogCQl9LAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1x X21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUs CiAJfSwKIH07CiAKQEAgLTIyMTIsOCArMjIxMiw4IEBAIHBvcnRfaW5pdCh1aW50MTZfdCBwb3J0 aWQsIHVpbnQ2NF90IHJlcV9yeF9vZmZsb2FkcywgdWludDY0X3QgcmVxX3R4X29mZmxvYWRzKQog CWxvY2FsX3BvcnRfY29uZi5yeG1vZGUubXR1ID0gbXR1X3NpemU7CiAKIAlpZiAobXVsdGlfc2Vn X3JlcXVpcmVkKCkpIHsKLQkJbG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSBERVZf UlhfT0ZGTE9BRF9TQ0FUVEVSOwotCQlsb2NhbF9wb3J0X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9 IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJCWxvY2FsX3BvcnRfY29uZi5yeG1vZGUub2Zm bG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7CisJCWxvY2FsX3BvcnRfY29uZi50 eG1vZGUub2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CiAJfQogCiAJ bG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSByZXFfcnhfb2ZmbG9hZHM7CmRpZmYg YS9leGFtcGxlcy9pcHY0X211bHRpY2FzdC9tYWluLmMgYi9leGFtcGxlcy9pcHY0X211bHRpY2Fz dC9tYWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTE1LDggKzExNSw4IEBAIHN0YXRpYyBzdHJ1 Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKIAl9 LAogCS50eG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCi0JCS5vZmZsb2Fk cyA9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9U WF9OT05FLAorCQkub2ZmbG9hZHMgPSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUywKIAl9 LAogfTsKIApkaWZmIGEvZXhhbXBsZXMvbDJmd2QtY3J5cHRvL21haW4uYyBiL2V4YW1wbGVzL2wy ZndkLWNyeXB0by9tYWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMjE2LDExICsyMTYsMTEgQEAg c3RydWN0IGxjb3JlX3F1ZXVlX2NvbmYgbGNvcmVfcXVldWVfY29uZltSVEVfTUFYX0xDT1JFXTsK IAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCS5yeG1vZGUgPSB7 Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9S WF9OT05FLAogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1x X21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUs CiAJfSwKIH07CiAKZGlmZiBhL2V4YW1wbGVzL2wzZndkLWFjbC9tYWluLmMgYi9leGFtcGxlcy9s M2Z3ZC1hY2wvbWFpbi5jCShyZWplY3RlZCBodW5rcykKQEAgLTEyNCwxOSArMTI0LDE5IEBAIHN0 YXRpYyB1aW50MTZfdCBuYl9sY29yZV9wYXJhbXMgPSBzaXplb2YobGNvcmVfcGFyYW1zX2FycmF5 X2RlZmF1bHQpIC8KIAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewog CS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlCT0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUJPSBS VEVfRVRIX01RX1JYX1JTUywKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKLQkJLm9mZmxvYWRzID0g REVWX1JYX09GRkxPQURfQ0hFQ0tTVU0sCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9B RF9DSEVDS1NVTSwKIAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJ LnJzc19rZXkgPSBOVUxMLAotCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAgfCBFVEhfUlNTX1VEUCB8 Ci0JCQkJRVRIX1JTU19UQ1AgfCBFVEhfUlNTX1NDVFAsCisJCQkucnNzX2hmID0gUlRFX0VUSF9S U1NfSVAgfCBSVEVfRVRIX1JTU19VRFAgfAorCQkJCVJURV9FVEhfUlNTX1RDUCB8IFJURV9FVEhf UlNTX1NDVFAsCiAJCX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9U WF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogfTsKIApAQCAt MjAwNCw3ICsyMDA0LDcgQEAgY29uZmlnX3BvcnRfbWF4X3BrdF9sZW4oc3RydWN0IHJ0ZV9ldGhf Y29uZiAqY29uZiwKIAljb25mLT5yeG1vZGUubXR1ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9s ZW47CiAKIAlpZiAoY29uZi0+cnhtb2RlLm10dSA+IFJURV9FVEhFUl9NVFUpCi0JCWNvbmYtPnR4 bW9kZS5vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOworCQljb25mLT50eG1v ZGUub2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CiAKIAlyZXR1cm4g MDsKIH0KQEAgLTIwODgsOSArMjA4OCw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQog CQkJCSJJbnZhbGlkIG1heCBwYWNrZXQgbGVuZ3RoOiAldSAocG9ydCAldSlcbiIsCiAJCQkJbWF4 X3BrdF9sZW4sIHBvcnRpZCk7CiAKLQkJaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIERF Vl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQorCQlpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9j YXBhICYgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQogCQkJbG9jYWxfcG9ydF9j b25mLnR4bW9kZS5vZmZsb2FkcyB8PQotCQkJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVF OworCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKIAogCQlsb2NhbF9wb3J0 X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2hmICY9CiAJCQlkZXZfaW5mby5mbG93X3R5 cGVfcnNzX29mZmxvYWRzOwpkaWZmIGEvZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jIGIvZXhh bXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jCShyZWplY3RlZCBodW5rcykKQEAgLTExMSwxNyArMTEx LDE3IEBAIHN0YXRpYyB1aW50MTZfdCBuYl9sY29yZV9wYXJhbXMgPSBSVEVfRElNKGxjb3JlX3Bh cmFtc19hcnJheV9kZWZhdWx0KTsKIAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9j b25mID0gewogCS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX1JTUywKKwkJLm1x X21vZGUgPSBSVEVfRVRIX01RX1JYX1JTUywKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKIAl9LAog CS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJCS5yc3Nfa2V5ID0gTlVMTCwK LQkJCQkucnNzX2hmID0gRVRIX1JTU19JUCwKKwkJCQkucnNzX2hmID0gUlRFX0VUSF9SU1NfSVAs CiAJCX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAor CQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogfTsKIApAQCAtNzMxLDcgKzcz MSw3IEBAIGNvbmZpZ19wb3J0X21heF9wa3RfbGVuKHN0cnVjdCBydGVfZXRoX2NvbmYgKmNvbmYs CiAJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0gb3ZlcmhlYWRfbGVuOwogCiAJaWYg KGNvbmYtPnJ4bW9kZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQotCQljb25mLT50eG1vZGUub2ZmbG9h ZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJY29uZi0+dHhtb2RlLm9mZmxvYWRz IHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwogCiAJcmV0dXJuIDA7CiB9CkBAIC04 MjgsOSArODI4LDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJIkludmFsaWQg bWF4IHBhY2tldCBsZW5ndGg6ICV1IChwb3J0ICV1KVxuIiwKIAkJCQltYXhfcGt0X2xlbiwgcG9y dGlkKTsKIAotCQlpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RYX09GRkxPQURf TUJVRl9GQVNUX0ZSRUUpCisJCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBSVEVfRVRI X1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpCiAJCQlsb2NhbF9wb3J0X2NvbmYudHhtb2RlLm9m ZmxvYWRzIHw9Ci0JCQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCQkJUlRFX0VU SF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwogCiAJCWxvY2FsX3BvcnRfY29uZi5yeF9hZHZf Y29uZi5yc3NfY29uZi5yc3NfaGYgJj0KIAkJCWRldl9pbmZvLmZsb3dfdHlwZV9yc3Nfb2ZmbG9h ZHM7CmRpZmYgYS9leGFtcGxlcy9sM2Z3ZC1wb3dlci9tYWluLmMgYi9leGFtcGxlcy9sM2Z3ZC1w b3dlci9tYWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMjUwLDE4ICsyNTAsMTggQEAgdWludDE2 X3QgbmJfbGNvcmVfcGFyYW1zID0gUlRFX0RJTShsY29yZV9wYXJhbXNfYXJyYXlfZGVmYXVsdCk7 CiAKIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKIAkucnhtb2RlID0g ewotCQkubXFfbW9kZSAgICAgICAgPSBFVEhfTVFfUlhfUlNTLAorCQkubXFfbW9kZSAgICAgICAg PSBSVEVfRVRIX01RX1JYX1JTUywKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKLQkJLm9mZmxvYWRz ID0gREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0sCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZG TE9BRF9DSEVDS1NVTSwKIAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewog CQkJLnJzc19rZXkgPSBOVUxMLAotCQkJLnJzc19oZiA9IEVUSF9SU1NfVURQLAorCQkJLnJzc19o ZiA9IFJURV9FVEhfUlNTX1VEUCwKIAkJfSwKIAl9LAogCS50eG1vZGUgPSB7Ci0JCS5tcV9tb2Rl ID0gRVRIX01RX1RYX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9UWF9OT05FLAogCX0K IH07CiAKQEAgLTI1MTAsNyArMjUxMCw3IEBAIGNvbmZpZ19wb3J0X21heF9wa3RfbGVuKHN0cnVj dCBydGVfZXRoX2NvbmYgKmNvbmYsCiAJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0g b3ZlcmhlYWRfbGVuOwogCiAJaWYgKGNvbmYtPnJ4bW9kZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQot CQljb25mLT50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJ Y29uZi0+dHhtb2RlLm9mZmxvYWRzIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwog CiAJcmV0dXJuIDA7CiB9CkBAIC0yNjM4LDkgKzI2MzgsOSBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0aDogJXUgKHBvcnQgJXUpXG4i LAogCQkJCW1heF9wa3RfbGVuLCBwb3J0aWQpOwogCi0JCWlmIChkZXZfaW5mby50eF9vZmZsb2Fk X2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKKwkJaWYgKGRldl9pbmZvLnR4 X29mZmxvYWRfY2FwYSAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKIAkJCWxv Y2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0KLQkJCQlERVZfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRTsKKwkJCQlSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAKIAkJ bG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAmPQogCQkJZGV2X2lu Zm8uZmxvd190eXBlX3Jzc19vZmZsb2FkczsKZGlmZiBhL2V4YW1wbGVzL2wzZndkL21haW4uYyBi L2V4YW1wbGVzL2wzZndkL21haW4uYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMjAsMTggKzEyMCwx OCBAQCBzdGF0aWMgdWludDE2X3QgbmJfbGNvcmVfcGFyYW1zID0gc2l6ZW9mKGxjb3JlX3BhcmFt c19hcnJheV9kZWZhdWx0KSAvCiAKIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29u ZiA9IHsKIAkucnhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9SU1MsCisJCS5tcV9t b2RlID0gUlRFX0VUSF9NUV9SWF9SU1MsCiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCi0JCS5vZmZs b2FkcyA9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLAorCQkub2ZmbG9hZHMgPSBSVEVfRVRIX1JY X09GRkxPQURfQ0hFQ0tTVU0sCiAJfSwKIAkucnhfYWR2X2NvbmYgPSB7CiAJCS5yc3NfY29uZiA9 IHsKIAkJCS5yc3Nfa2V5ID0gTlVMTCwKLQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQLAorCQkJLnJz c19oZiA9IFJURV9FVEhfUlNTX0lQLAogCQl9LAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21v ZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJ fSwKIH07CiAKQEAgLTk4OCw3ICs5ODgsNyBAQCBjb25maWdfcG9ydF9tYXhfcGt0X2xlbihzdHJ1 Y3QgcnRlX2V0aF9jb25mICpjb25mLAogCWNvbmYtPnJ4bW9kZS5tdHUgPSBtYXhfcGt0X2xlbiAt IG92ZXJoZWFkX2xlbjsKIAogCWlmIChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkK LQkJY29uZi0+dHhtb2RlLm9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJ CWNvbmYtPnR4bW9kZS5vZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsK IAogCXJldHVybiAwOwogfQpAQCAtMTA1MywxNSArMTA1MywxNSBAQCBsM2Z3ZF9wb2xsX3Jlc291 cmNlX3NldHVwKHZvaWQpCiAJCQkJIkludmFsaWQgbWF4IHBhY2tldCBsZW5ndGg6ICV1IChwb3J0 ICV1KVxuIiwKIAkJCQltYXhfcGt0X2xlbiwgcG9ydGlkKTsKIAotCQlpZiAoZGV2X2luZm8udHhf b2ZmbG9hZF9jYXBhICYgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpCisJCWlmIChkZXZf aW5mby50eF9vZmZsb2FkX2NhcGEgJiBSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUp CiAJCQlsb2NhbF9wb3J0X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9Ci0JCQkJREVWX1RYX09GRkxP QURfTUJVRl9GQVNUX0ZSRUU7CisJCQkJUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVF OwogCiAJCWxvY2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgJj0KIAkJ CWRldl9pbmZvLmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHM7CiAKIAkJaWYgKGRldl9pbmZvLm1heF9y eF9xdWV1ZXMgPT0gMSkKLQkJCWxvY2FsX3BvcnRfY29uZi5yeG1vZGUubXFfbW9kZSA9IEVUSF9N UV9SWF9OT05FOworCQkJbG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5tcV9tb2RlID0gUlRFX0VUSF9N UV9SWF9OT05FOwogCiAJCWlmIChsb2NhbF9wb3J0X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYu cnNzX2hmICE9CiAJCQkJcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZikgewpk aWZmIGEvZXhhbXBsZXMvcGVyZm9ybWFuY2UtdGhyZWFkL2wzZndkLXRocmVhZC9tYWluLmMgYi9l eGFtcGxlcy9wZXJmb3JtYW5jZS10aHJlYWQvbDNmd2QtdGhyZWFkL21haW4uYwkocmVqZWN0ZWQg aHVua3MpCkBAIC0zMDcsMTggKzMwNywxOCBAQCBzdGF0aWMgdWludDE2X3QgbmJfdHhfdGhyZWFk X3BhcmFtcyA9IFJURV9ESU0odHhfdGhyZWFkX3BhcmFtc19hcnJheV9kZWZhdWx0KTsKIAogc3Rh dGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCS5yeG1vZGUgPSB7Ci0JCS5t cV9tb2RlID0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX1JTUywK IAkJLnNwbGl0X2hkcl9zaXplID0gMCwKLQkJLm9mZmxvYWRzID0gREVWX1JYX09GRkxPQURfQ0hF Q0tTVU0sCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKIAl9LAog CS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJLnJzc19rZXkgPSBOVUxMLAot CQkJLnJzc19oZiA9IEVUSF9SU1NfVENQLAorCQkJLnJzc19oZiA9IFJURV9FVEhfUlNTX1RDUCwK IAkJfSwKIAl9LAogCS50eG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCisJ CS5tcV9tb2RlID0gUlRFX0VUSF9NUV9UWF9OT05FLAogCX0sCiB9OwogCkBAIC0zNDk0LDcgKzM0 OTQsNyBAQCBjb25maWdfcG9ydF9tYXhfcGt0X2xlbihzdHJ1Y3QgcnRlX2V0aF9jb25mICpjb25m LAogCWNvbmYtPnJ4bW9kZS5tdHUgPSBtYXhfcGt0X2xlbiAtIG92ZXJoZWFkX2xlbjsKIAogCWlm IChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkKLQkJY29uZi0+dHhtb2RlLm9mZmxv YWRzIHw9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJCWNvbmYtPnR4bW9kZS5vZmZsb2Fk cyB8PSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAogCXJldHVybiAwOwogfQpAQCAt MzU5Myw5ICszNTkzLDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJIkludmFs aWQgbWF4IHBhY2tldCBsZW5ndGg6ICV1IChwb3J0ICV1KVxuIiwKIAkJCQltYXhfcGt0X2xlbiwg cG9ydGlkKTsKIAotCQlpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RYX09GRkxP QURfTUJVRl9GQVNUX0ZSRUUpCisJCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBSVEVf RVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpCiAJCQlsb2NhbF9wb3J0X2NvbmYudHhtb2Rl Lm9mZmxvYWRzIHw9Ci0JCQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCQkJUlRF X0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwogCiAJCWxvY2FsX3BvcnRfY29uZi5yeF9h ZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgJj0KIAkJCWRldl9pbmZvLmZsb3dfdHlwZV9yc3Nfb2Zm bG9hZHM7CmRpZmYgYS9leGFtcGxlcy9waXBlbGluZS9vYmouYyBiL2V4YW1wbGVzL3BpcGVsaW5l L29iai5jCShyZWplY3RlZCBodW5rcykKQEAgLTEzMyw3ICsxMzMsNyBAQCBtZW1wb29sX2ZpbmQo c3RydWN0IG9iaiAqb2JqLCBjb25zdCBjaGFyICpuYW1lKQogc3RhdGljIHN0cnVjdCBydGVfZXRo X2NvbmYgcG9ydF9jb25mX2RlZmF1bHQgPSB7CiAJLmxpbmtfc3BlZWRzID0gMCwKIAkucnhtb2Rl ID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhf TVFfUlhfTk9ORSwKIAkJLm10dSA9IDkwMDAgLSAoUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRI RVJfQ1JDX0xFTiksIC8qIEp1bWJvIGZyYW1lIE1UVSAqLwogCQkuc3BsaXRfaGRyX3NpemUgPSAw LCAvKiBIZWFkZXIgc3BsaXQgYnVmZmVyIHNpemUgKi8KIAl9LApkaWZmIGEvZXhhbXBsZXMvcW9z X21ldGVyL21haW4uYyBiL2V4YW1wbGVzL3Fvc19tZXRlci9tYWluLmMJKHJlamVjdGVkIGh1bmtz KQpAQCAtNTEsMTggKzUxLDE4IEBAIHN0YXRpYyBzdHJ1Y3QgcnRlX21lbXBvb2wgKnBvb2wgPSBO VUxMOwogICoqKi8KIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKIAku cnhtb2RlID0gewotCQkubXFfbW9kZQk9IEVUSF9NUV9SWF9SU1MsCisJCS5tcV9tb2RlCT0gUlRF X0VUSF9NUV9SWF9SU1MsCiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCi0JCS5vZmZsb2FkcyA9IERF Vl9SWF9PRkZMT0FEX0NIRUNLU1VNLAorCQkub2ZmbG9hZHMgPSBSVEVfRVRIX1JYX09GRkxPQURf Q0hFQ0tTVU0sCiAJfSwKIAkucnhfYWR2X2NvbmYgPSB7CiAJCS5yc3NfY29uZiA9IHsKIAkJCS5y c3Nfa2V5ID0gTlVMTCwKLQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQLAorCQkJLnJzc19oZiA9IFJU RV9FVEhfUlNTX0lQLAogCQl9LAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhf RENCX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9UWF9OT05FLAogCX0sCiB9OwogCmRp ZmYgYS9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuaCBiL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZl ci5oCShyZWplY3RlZCBodW5rcykKQEAgLTExNiw3ICsxMTYsNyBAQCBzdHJ1Y3QgcnRlX2V0aF9k ZXZfZGF0YSB7CiAJCQkvKio8IERldmljZSBFdGhlcm5ldCBsaW5rIGFkZHJlc3MuCiAJCQkgKiAg IEBzZWUgcnRlX2V0aF9kZXZfcmVsZWFzZV9wb3J0KCkKIAkJCSAqLwotCXVpbnQ2NF90IG1hY19w b29sX3NlbFtFVEhfTlVNX1JFQ0VJVkVfTUFDX0FERFJdOworCXVpbnQ2NF90IG1hY19wb29sX3Nl bFtSVEVfRVRIX05VTV9SRUNFSVZFX01BQ19BRERSXTsKIAkJCS8qKjwgQml0bWFwIGFzc29jaWF0 aW5nIE1BQyBhZGRyZXNzZXMgdG8gcG9vbHMuICovCiAJc3RydWN0IHJ0ZV9ldGhlcl9hZGRyICpo YXNoX21hY19hZGRyczsKIAkJCS8qKjwgRGV2aWNlIEV0aGVybmV0IE1BQyBhZGRyZXNzZXMgb2Yg aGFzaCBmaWx0ZXJpbmcuCmRpZmYgYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuYyBiL2xpYi9ldGhk ZXYvcnRlX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTE1MDMsNyArMTUwMCw3IEBAIHJ0 ZV9ldGhfZGV2X2NvbmZpZ3VyZSh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBuYl9yeF9xLCB1 aW50MTZfdCBuYl90eF9xLAogCSAqIElmIExSTyBpcyBlbmFibGVkLCBjaGVjayB0aGF0IHRoZSBt YXhpbXVtIGFnZ3JlZ2F0ZWQgcGFja2V0CiAJICogc2l6ZSBpcyBzdXBwb3J0ZWQgYnkgdGhlIGNv bmZpZ3VyZWQgZGV2aWNlLgogCSAqLwotCWlmIChkZXZfY29uZi0+cnhtb2RlLm9mZmxvYWRzICYg REVWX1JYX09GRkxPQURfVENQX0xSTykgeworCWlmIChkZXZfY29uZi0+cnhtb2RlLm9mZmxvYWRz ICYgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8pIHsKIAkJdWludDMyX3QgbWF4X3J4X3BrdGxl bjsKIAkJdWludDMyX3Qgb3ZlcmhlYWRfbGVuOwogCkBAIC0yMTgwLDcgKzIxNzcsNyBAQCBydGVf ZXRoX3J4X3F1ZXVlX3NldHVwKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHJ4X3F1ZXVlX2lk LAogCSAqIHNpemUgaXMgc3VwcG9ydGVkIGJ5IHRoZSBjb25maWd1cmVkIGRldmljZS4KIAkgKi8K IAkvKiBHZXQgdGhlIHJlYWwgRXRoZXJuZXQgb3ZlcmhlYWQgbGVuZ3RoICovCi0JaWYgKGxvY2Fs X2NvbmYub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPKSB7CisJaWYgKGxvY2FsX2Nv bmYub2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTykgewogCQl1aW50MzJfdCBv dmVyaGVhZF9sZW47CiAJCXVpbnQzMl90IG1heF9yeF9wa3RsZW47CiAJCWludCByZXQ7CkBAIC00 MDA4LDggKzQwMDUsOCBAQCBldGhfY2hlY2tfcmV0YV9lbnRyeShzdHJ1Y3QgcnRlX2V0aF9yc3Nf cmV0YV9lbnRyeTY0ICpyZXRhX2NvbmYsCiAJfQogCiAJZm9yIChpID0gMDsgaSA8IHJldGFfc2l6 ZTsgaSsrKSB7Ci0JCWlkeCA9IGkgLyBSVEVfUkVUQV9HUk9VUF9TSVpFOwotCQlzaGlmdCA9IGkg JSBSVEVfUkVUQV9HUk9VUF9TSVpFOworCQlpZHggPSBpIC8gUlRFX0VUSF9SRVRBX0dST1VQX1NJ WkU7CisJCXNoaWZ0ID0gaSAlIFJURV9FVEhfUkVUQV9HUk9VUF9TSVpFOwogCQlpZiAoKHJldGFf Y29uZltpZHhdLm1hc2sgJiBSVEVfQklUNjQoc2hpZnQpKSAmJgogCQkJKHJldGFfY29uZltpZHhd LnJldGFbc2hpZnRdID49IG1heF9yeHEpKSB7CiAJCQlSVEVfRVRIREVWX0xPRyhFUlIsCmRpZmYg YS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuaCBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oCShyZWpl Y3RlZCBodW5rcykKQEAgLTI4MCw0MyArMjgwLDc1IEBAIHN0cnVjdCBydGVfZXRoX3N0YXRzIHsK IC8qKkB7QG5hbWUgTGluayBzcGVlZCBjYXBhYmlsaXRpZXMKICAqIERldmljZSBzdXBwb3J0ZWQg c3BlZWRzIGJpdG1hcCBmbGFncwogICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQRUVEX0FVVE9ORUcg MCAgICAgICAgICAgICAvKio8IEF1dG9uZWdvdGlhdGUgKGFsbCBzcGVlZHMpICovCi0jZGVmaW5l IEVUSF9MSU5LX1NQRUVEX0ZJWEVEICAgUlRFX0JJVDMyKDApICAvKio8IERpc2FibGUgYXV0b25l ZyAoZml4ZWQgc3BlZWQpICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwTV9IRCAgUlRFX0JJ VDMyKDEpICAvKio8ICAxMCBNYnBzIGhhbGYtZHVwbGV4ICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQ RUVEXzEwTSAgICAgUlRFX0JJVDMyKDIpICAvKio8ICAxMCBNYnBzIGZ1bGwtZHVwbGV4ICovCi0j ZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwME1fSEQgUlRFX0JJVDMyKDMpICAvKio8IDEwMCBNYnBz IGhhbGYtZHVwbGV4ICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwME0gICAgUlRFX0JJVDMy KDQpICAvKio8IDEwMCBNYnBzIGZ1bGwtZHVwbGV4ICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQRUVE XzFHICAgICAgUlRFX0JJVDMyKDUpICAvKio8ICAgMSBHYnBzICovCi0jZGVmaW5lIEVUSF9MSU5L X1NQRUVEXzJfNUcgICAgUlRFX0JJVDMyKDYpICAvKio8IDIuNSBHYnBzICovCi0jZGVmaW5lIEVU SF9MSU5LX1NQRUVEXzVHICAgICAgUlRFX0JJVDMyKDcpICAvKio8ICAgNSBHYnBzICovCi0jZGVm aW5lIEVUSF9MSU5LX1NQRUVEXzEwRyAgICAgUlRFX0JJVDMyKDgpICAvKio8ICAxMCBHYnBzICov Ci0jZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzIwRyAgICAgUlRFX0JJVDMyKDkpICAvKio8ICAyMCBH YnBzICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzI1RyAgICAgUlRFX0JJVDMyKDEwKSAvKio8 ICAyNSBHYnBzICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzQwRyAgICAgUlRFX0JJVDMyKDEx KSAvKio8ICA0MCBHYnBzICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzUwRyAgICAgUlRFX0JJ VDMyKDEyKSAvKio8ICA1MCBHYnBzICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzU2RyAgICAg UlRFX0JJVDMyKDEzKSAvKio8ICA1NiBHYnBzICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEw MEcgICAgUlRFX0JJVDMyKDE0KSAvKio8IDEwMCBHYnBzICovCi0jZGVmaW5lIEVUSF9MSU5LX1NQ RUVEXzIwMEcgICAgUlRFX0JJVDMyKDE1KSAvKio8IDIwMCBHYnBzICovCisjZGVmaW5lIFJURV9F VEhfTElOS19TUEVFRF9BVVRPTkVHIDAgICAgICAgICAgICAgLyoqPCBBdXRvbmVnb3RpYXRlIChh bGwgc3BlZWRzKSAqLworI2RlZmluZSBFVEhfTElOS19TUEVFRF9BVVRPTkVHCVJURV9FVEhfTElO S19TUEVFRF9BVVRPTkVHCisjZGVmaW5lIFJURV9FVEhfTElOS19TUEVFRF9GSVhFRCAgIFJURV9C SVQzMigwKSAgLyoqPCBEaXNhYmxlIGF1dG9uZWcgKGZpeGVkIHNwZWVkKSAqLworI2RlZmluZSBF VEhfTElOS19TUEVFRF9GSVhFRAlSVEVfRVRIX0xJTktfU1BFRURfRklYRUQKKyNkZWZpbmUgUlRF X0VUSF9MSU5LX1NQRUVEXzEwTV9IRCAgUlRFX0JJVDMyKDEpICAvKio8ICAxMCBNYnBzIGhhbGYt ZHVwbGV4ICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwTV9IRAlSVEVfRVRIX0xJTktfU1BF RURfMTBNX0hECisjZGVmaW5lIFJURV9FVEhfTElOS19TUEVFRF8xME0gICAgIFJURV9CSVQzMigy KSAgLyoqPCAgMTAgTWJwcyBmdWxsLWR1cGxleCAqLworI2RlZmluZSBFVEhfTElOS19TUEVFRF8x ME0JUlRFX0VUSF9MSU5LX1NQRUVEXzEwTQorI2RlZmluZSBSVEVfRVRIX0xJTktfU1BFRURfMTAw TV9IRCBSVEVfQklUMzIoMykgIC8qKjwgMTAwIE1icHMgaGFsZi1kdXBsZXggKi8KKyNkZWZpbmUg RVRIX0xJTktfU1BFRURfMTAwTV9IRAlSVEVfRVRIX0xJTktfU1BFRURfMTAwTV9IRAorI2RlZmlu ZSBSVEVfRVRIX0xJTktfU1BFRURfMTAwTSAgICBSVEVfQklUMzIoNCkgIC8qKjwgMTAwIE1icHMg ZnVsbC1kdXBsZXggKi8KKyNkZWZpbmUgRVRIX0xJTktfU1BFRURfMTAwTQlSVEVfRVRIX0xJTktf U1BFRURfMTAwTQorI2RlZmluZSBSVEVfRVRIX0xJTktfU1BFRURfMUcgICAgICBSVEVfQklUMzIo NSkgIC8qKjwgICAxIEdicHMgKi8KKyNkZWZpbmUgRVRIX0xJTktfU1BFRURfMUcJUlRFX0VUSF9M SU5LX1NQRUVEXzFHCisjZGVmaW5lIFJURV9FVEhfTElOS19TUEVFRF8yXzVHICAgIFJURV9CSVQz Mig2KSAgLyoqPCAyLjUgR2JwcyAqLworI2RlZmluZSBFVEhfTElOS19TUEVFRF8yXzVHCVJURV9F VEhfTElOS19TUEVFRF8yXzVHCisjZGVmaW5lIFJURV9FVEhfTElOS19TUEVFRF81RyAgICAgIFJU RV9CSVQzMig3KSAgLyoqPCAgIDUgR2JwcyAqLworI2RlZmluZSBFVEhfTElOS19TUEVFRF81RwlS VEVfRVRIX0xJTktfU1BFRURfNUcKKyNkZWZpbmUgUlRFX0VUSF9MSU5LX1NQRUVEXzEwRyAgICAg UlRFX0JJVDMyKDgpICAvKio8ICAxMCBHYnBzICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEw RwlSVEVfRVRIX0xJTktfU1BFRURfMTBHCisjZGVmaW5lIFJURV9FVEhfTElOS19TUEVFRF8yMEcg ICAgIFJURV9CSVQzMig5KSAgLyoqPCAgMjAgR2JwcyAqLworI2RlZmluZSBFVEhfTElOS19TUEVF RF8yMEcJUlRFX0VUSF9MSU5LX1NQRUVEXzIwRworI2RlZmluZSBSVEVfRVRIX0xJTktfU1BFRURf MjVHICAgICBSVEVfQklUMzIoMTApIC8qKjwgIDI1IEdicHMgKi8KKyNkZWZpbmUgRVRIX0xJTktf U1BFRURfMjVHCVJURV9FVEhfTElOS19TUEVFRF8yNUcKKyNkZWZpbmUgUlRFX0VUSF9MSU5LX1NQ RUVEXzQwRyAgICAgUlRFX0JJVDMyKDExKSAvKio8ICA0MCBHYnBzICovCisjZGVmaW5lIEVUSF9M SU5LX1NQRUVEXzQwRwlSVEVfRVRIX0xJTktfU1BFRURfNDBHCisjZGVmaW5lIFJURV9FVEhfTElO S19TUEVFRF81MEcgICAgIFJURV9CSVQzMigxMikgLyoqPCAgNTAgR2JwcyAqLworI2RlZmluZSBF VEhfTElOS19TUEVFRF81MEcJUlRFX0VUSF9MSU5LX1NQRUVEXzUwRworI2RlZmluZSBSVEVfRVRI X0xJTktfU1BFRURfNTZHICAgICBSVEVfQklUMzIoMTMpIC8qKjwgIDU2IEdicHMgKi8KKyNkZWZp bmUgRVRIX0xJTktfU1BFRURfNTZHCVJURV9FVEhfTElOS19TUEVFRF81NkcKKyNkZWZpbmUgUlRF X0VUSF9MSU5LX1NQRUVEXzEwMEcgICAgUlRFX0JJVDMyKDE0KSAvKio8IDEwMCBHYnBzICovCisj ZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwMEcJUlRFX0VUSF9MSU5LX1NQRUVEXzEwMEcKKyNkZWZp bmUgUlRFX0VUSF9MSU5LX1NQRUVEXzIwMEcgICAgUlRFX0JJVDMyKDE1KSAvKio8IDIwMCBHYnBz ICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzIwMEcJUlRFX0VUSF9MSU5LX1NQRUVEXzIwMEcK IC8qKkB9Ki8KIAogLyoqQHtAbmFtZSBMaW5rIHNwZWVkCiAgKiBFdGhlcm5ldCBudW1lcmljIGxp bmsgc3BlZWRzIGluIE1icHMKICAqLwotI2RlZmluZSBFVEhfU1BFRURfTlVNX05PTkUgICAgICAg ICAwIC8qKjwgTm90IGRlZmluZWQgKi8KLSNkZWZpbmUgRVRIX1NQRUVEX05VTV8xME0gICAgICAg ICAxMCAvKio8ICAxMCBNYnBzICovCi0jZGVmaW5lIEVUSF9TUEVFRF9OVU1fMTAwTSAgICAgICAx MDAgLyoqPCAxMDAgTWJwcyAqLwotI2RlZmluZSBFVEhfU1BFRURfTlVNXzFHICAgICAgICAxMDAw IC8qKjwgICAxIEdicHMgKi8KLSNkZWZpbmUgRVRIX1NQRUVEX05VTV8yXzVHICAgICAgMjUwMCAv Kio8IDIuNSBHYnBzICovCi0jZGVmaW5lIEVUSF9TUEVFRF9OVU1fNUcgICAgICAgIDUwMDAgLyoq PCAgIDUgR2JwcyAqLwotI2RlZmluZSBFVEhfU1BFRURfTlVNXzEwRyAgICAgIDEwMDAwIC8qKjwg IDEwIEdicHMgKi8KLSNkZWZpbmUgRVRIX1NQRUVEX05VTV8yMEcgICAgICAyMDAwMCAvKio8ICAy MCBHYnBzICovCi0jZGVmaW5lIEVUSF9TUEVFRF9OVU1fMjVHICAgICAgMjUwMDAgLyoqPCAgMjUg R2JwcyAqLwotI2RlZmluZSBFVEhfU1BFRURfTlVNXzQwRyAgICAgIDQwMDAwIC8qKjwgIDQwIEdi cHMgKi8KLSNkZWZpbmUgRVRIX1NQRUVEX05VTV81MEcgICAgICA1MDAwMCAvKio8ICA1MCBHYnBz ICovCi0jZGVmaW5lIEVUSF9TUEVFRF9OVU1fNTZHICAgICAgNTYwMDAgLyoqPCAgNTYgR2JwcyAq LwotI2RlZmluZSBFVEhfU1BFRURfTlVNXzEwMEcgICAgMTAwMDAwIC8qKjwgMTAwIEdicHMgKi8K LSNkZWZpbmUgRVRIX1NQRUVEX05VTV8yMDBHICAgIDIwMDAwMCAvKio8IDIwMCBHYnBzICovCi0j ZGVmaW5lIEVUSF9TUEVFRF9OVU1fVU5LTk9XTiBVSU5UMzJfTUFYIC8qKjwgVW5rbm93biAqLwor I2RlZmluZSBSVEVfRVRIX1NQRUVEX05VTV9OT05FICAgICAgICAgMCAvKio8IE5vdCBkZWZpbmVk ICovCisjZGVmaW5lIEVUSF9TUEVFRF9OVU1fTk9ORQlSVEVfRVRIX1NQRUVEX05VTV9OT05FCisj ZGVmaW5lIFJURV9FVEhfU1BFRURfTlVNXzEwTSAgICAgICAgIDEwIC8qKjwgIDEwIE1icHMgKi8K KyNkZWZpbmUgRVRIX1NQRUVEX05VTV8xME0JUlRFX0VUSF9TUEVFRF9OVU1fMTBNCisjZGVmaW5l IFJURV9FVEhfU1BFRURfTlVNXzEwME0gICAgICAgMTAwIC8qKjwgMTAwIE1icHMgKi8KKyNkZWZp bmUgRVRIX1NQRUVEX05VTV8xMDBNCVJURV9FVEhfU1BFRURfTlVNXzEwME0KKyNkZWZpbmUgUlRF X0VUSF9TUEVFRF9OVU1fMUcgICAgICAgIDEwMDAgLyoqPCAgIDEgR2JwcyAqLworI2RlZmluZSBF VEhfU1BFRURfTlVNXzFHCVJURV9FVEhfU1BFRURfTlVNXzFHCisjZGVmaW5lIFJURV9FVEhfU1BF RURfTlVNXzJfNUcgICAgICAyNTAwIC8qKjwgMi41IEdicHMgKi8KKyNkZWZpbmUgRVRIX1NQRUVE X05VTV8yXzVHCVJURV9FVEhfU1BFRURfTlVNXzJfNUcKKyNkZWZpbmUgUlRFX0VUSF9TUEVFRF9O VU1fNUcgICAgICAgIDUwMDAgLyoqPCAgIDUgR2JwcyAqLworI2RlZmluZSBFVEhfU1BFRURfTlVN XzVHCVJURV9FVEhfU1BFRURfTlVNXzVHCisjZGVmaW5lIFJURV9FVEhfU1BFRURfTlVNXzEwRyAg ICAgIDEwMDAwIC8qKjwgIDEwIEdicHMgKi8KKyNkZWZpbmUgRVRIX1NQRUVEX05VTV8xMEcJUlRF X0VUSF9TUEVFRF9OVU1fMTBHCisjZGVmaW5lIFJURV9FVEhfU1BFRURfTlVNXzIwRyAgICAgIDIw MDAwIC8qKjwgIDIwIEdicHMgKi8KKyNkZWZpbmUgRVRIX1NQRUVEX05VTV8yMEcJUlRFX0VUSF9T UEVFRF9OVU1fMjBHCisjZGVmaW5lIFJURV9FVEhfU1BFRURfTlVNXzI1RyAgICAgIDI1MDAwIC8q KjwgIDI1IEdicHMgKi8KKyNkZWZpbmUgRVRIX1NQRUVEX05VTV8yNUcJUlRFX0VUSF9TUEVFRF9O VU1fMjVHCisjZGVmaW5lIFJURV9FVEhfU1BFRURfTlVNXzQwRyAgICAgIDQwMDAwIC8qKjwgIDQw IEdicHMgKi8KKyNkZWZpbmUgRVRIX1NQRUVEX05VTV80MEcJUlRFX0VUSF9TUEVFRF9OVU1fNDBH CisjZGVmaW5lIFJURV9FVEhfU1BFRURfTlVNXzUwRyAgICAgIDUwMDAwIC8qKjwgIDUwIEdicHMg Ki8KKyNkZWZpbmUgRVRIX1NQRUVEX05VTV81MEcJUlRFX0VUSF9TUEVFRF9OVU1fNTBHCisjZGVm aW5lIFJURV9FVEhfU1BFRURfTlVNXzU2RyAgICAgIDU2MDAwIC8qKjwgIDU2IEdicHMgKi8KKyNk ZWZpbmUgRVRIX1NQRUVEX05VTV81NkcJUlRFX0VUSF9TUEVFRF9OVU1fNTZHCisjZGVmaW5lIFJU RV9FVEhfU1BFRURfTlVNXzEwMEcgICAgMTAwMDAwIC8qKjwgMTAwIEdicHMgKi8KKyNkZWZpbmUg RVRIX1NQRUVEX05VTV8xMDBHCVJURV9FVEhfU1BFRURfTlVNXzEwMEcKKyNkZWZpbmUgUlRFX0VU SF9TUEVFRF9OVU1fMjAwRyAgICAyMDAwMDAgLyoqPCAyMDAgR2JwcyAqLworI2RlZmluZSBFVEhf U1BFRURfTlVNXzIwMEcJUlRFX0VUSF9TUEVFRF9OVU1fMjAwRworI2RlZmluZSBSVEVfRVRIX1NQ RUVEX05VTV9VTktOT1dOIFVJTlQzMl9NQVggLyoqPCBVbmtub3duICovCisjZGVmaW5lIEVUSF9T UEVFRF9OVU1fVU5LTk9XTglSVEVfRVRIX1NQRUVEX05VTV9VTktOT1dOCiAvKipAfSovCiAKIC8q KgpAQCAtNTEzLDM4ICs1NTgsNzAgQEAgc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgewogICogQmVs b3cgbWFjcm9zIGFyZSBkZWZpbmVkIGZvciBSU1Mgb2ZmbG9hZCB0eXBlcywgdGhleSBjYW4gYmUg dXNlZCB0bwogICogZmlsbCBydGVfZXRoX3Jzc19jb25mLnJzc19oZiBvciBydGVfZmxvd19hY3Rp b25fcnNzLnR5cGVzLgogICovCi0jZGVmaW5lIEVUSF9SU1NfSVBWNCAgICAgICAgICAgICAgIFJU RV9CSVQ2NCgyKQotI2RlZmluZSBFVEhfUlNTX0ZSQUdfSVBWNCAgICAgICAgICBSVEVfQklUNjQo MykKLSNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjRfVENQICAgUlRFX0JJVDY0KDQpCi0jZGVm aW5lIEVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCAgIFJURV9CSVQ2NCg1KQotI2RlZmluZSBFVEhf UlNTX05PTkZSQUdfSVBWNF9TQ1RQICBSVEVfQklUNjQoNikKLSNkZWZpbmUgRVRIX1JTU19OT05G UkFHX0lQVjRfT1RIRVIgUlRFX0JJVDY0KDcpCi0jZGVmaW5lIEVUSF9SU1NfSVBWNiAgICAgICAg ICAgICAgIFJURV9CSVQ2NCg4KQotI2RlZmluZSBFVEhfUlNTX0ZSQUdfSVBWNiAgICAgICAgICBS VEVfQklUNjQoOSkKLSNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjZfVENQICAgUlRFX0JJVDY0 KDEwKQotI2RlZmluZSBFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgICBSVEVfQklUNjQoMTEpCi0j ZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFAgIFJURV9CSVQ2NCgxMikKLSNkZWZpbmUg RVRIX1JTU19OT05GUkFHX0lQVjZfT1RIRVIgUlRFX0JJVDY0KDEzKQotI2RlZmluZSBFVEhfUlNT X0wyX1BBWUxPQUQgICAgICAgICBSVEVfQklUNjQoMTQpCi0jZGVmaW5lIEVUSF9SU1NfSVBWNl9F WCAgICAgICAgICAgIFJURV9CSVQ2NCgxNSkKLSNkZWZpbmUgRVRIX1JTU19JUFY2X1RDUF9FWCAg ICAgICAgUlRFX0JJVDY0KDE2KQotI2RlZmluZSBFVEhfUlNTX0lQVjZfVURQX0VYICAgICAgICBS VEVfQklUNjQoMTcpCi0jZGVmaW5lIEVUSF9SU1NfUE9SVCAgICAgICAgICAgICAgIFJURV9CSVQ2 NCgxOCkKLSNkZWZpbmUgRVRIX1JTU19WWExBTiAgICAgICAgICAgICAgUlRFX0JJVDY0KDE5KQot I2RlZmluZSBFVEhfUlNTX0dFTkVWRSAgICAgICAgICAgICBSVEVfQklUNjQoMjApCi0jZGVmaW5l IEVUSF9SU1NfTlZHUkUgICAgICAgICAgICAgIFJURV9CSVQ2NCgyMSkKLSNkZWZpbmUgRVRIX1JT U19HVFBVICAgICAgICAgICAgICAgUlRFX0JJVDY0KDIzKQotI2RlZmluZSBFVEhfUlNTX0VUSCAg ICAgICAgICAgICAgICBSVEVfQklUNjQoMjQpCi0jZGVmaW5lIEVUSF9SU1NfU19WTEFOICAgICAg ICAgICAgIFJURV9CSVQ2NCgyNSkKLSNkZWZpbmUgRVRIX1JTU19DX1ZMQU4gICAgICAgICAgICAg UlRFX0JJVDY0KDI2KQotI2RlZmluZSBFVEhfUlNTX0VTUCAgICAgICAgICAgICAgICBSVEVfQklU NjQoMjcpCi0jZGVmaW5lIEVUSF9SU1NfQUggICAgICAgICAgICAgICAgIFJURV9CSVQ2NCgyOCkK LSNkZWZpbmUgRVRIX1JTU19MMlRQVjMgICAgICAgICAgICAgUlRFX0JJVDY0KDI5KQotI2RlZmlu ZSBFVEhfUlNTX1BGQ1AgICAgICAgICAgICAgICBSVEVfQklUNjQoMzApCi0jZGVmaW5lIEVUSF9S U1NfUFBQT0UgICAgICAgICAgICAgIFJURV9CSVQ2NCgzMSkKLSNkZWZpbmUgRVRIX1JTU19FQ1BS SSAgICAgICAgICAgICAgUlRFX0JJVDY0KDMyKQotI2RlZmluZSBFVEhfUlNTX01QTFMgICAgICAg ICAgICAgICBSVEVfQklUNjQoMzMpCi0jZGVmaW5lIEVUSF9SU1NfSVBWNF9DSEtTVU0gICAgICAg IFJURV9CSVQ2NCgzNCkKKyNkZWZpbmUgUlRFX0VUSF9SU1NfSVBWNCAgICAgICAgICAgICAgIFJU RV9CSVQ2NCgyKQorI2RlZmluZSBFVEhfUlNTX0lQVjQgICAgICAgICAgICAgICAgICAgUlRFX0VU SF9SU1NfSVBWNAorI2RlZmluZSBSVEVfRVRIX1JTU19GUkFHX0lQVjQgICAgICAgICAgUlRFX0JJ VDY0KDMpCisjZGVmaW5lIEVUSF9SU1NfRlJBR19JUFY0ICAgICAgICAgICAgICBSVEVfRVRIX1JT U19GUkFHX0lQVjQKKyNkZWZpbmUgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCAgIFJURV9C SVQ2NCg0KQorI2RlZmluZSBFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgICAgICAgUlRFX0VUSF9S U1NfTk9ORlJBR19JUFY0X1RDUAorI2RlZmluZSBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVURQ ICAgUlRFX0JJVDY0KDUpCisjZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCAgICAgICBS VEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVURQCisjZGVmaW5lIFJURV9FVEhfUlNTX05PTkZSQUdf SVBWNF9TQ1RQICBSVEVfQklUNjQoNikKKyNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjRfU0NU UCAgICAgIFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9TQ1RQCisjZGVmaW5lIFJURV9FVEhfUlNT X05PTkZSQUdfSVBWNF9PVEhFUiBSVEVfQklUNjQoNykKKyNkZWZpbmUgRVRIX1JTU19OT05GUkFH X0lQVjRfT1RIRVIgICAgIFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9PVEhFUgorI2RlZmluZSBS VEVfRVRIX1JTU19JUFY2ICAgICAgICAgICAgICAgUlRFX0JJVDY0KDgpCisjZGVmaW5lIEVUSF9S U1NfSVBWNiAgICAgICAgICAgICAgICAgICBSVEVfRVRIX1JTU19JUFY2CisjZGVmaW5lIFJURV9F VEhfUlNTX0ZSQUdfSVBWNiAgICAgICAgICBSVEVfQklUNjQoOSkKKyNkZWZpbmUgRVRIX1JTU19G UkFHX0lQVjYgICAgICAgICAgICAgIFJURV9FVEhfUlNTX0ZSQUdfSVBWNgorI2RlZmluZSBSVEVf RVRIX1JTU19OT05GUkFHX0lQVjZfVENQICAgUlRFX0JJVDY0KDEwKQorI2RlZmluZSBFVEhfUlNT X05PTkZSQUdfSVBWNl9UQ1AgICAgICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1RDUAorI2Rl ZmluZSBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVURQICAgUlRFX0JJVDY0KDExKQorI2RlZmlu ZSBFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgICAgICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2 X1VEUAorI2RlZmluZSBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUCAgUlRFX0JJVDY0KDEy KQorI2RlZmluZSBFVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQICAgICAgUlRFX0VUSF9SU1NfTk9O RlJBR19JUFY2X1NDVFAKKyNkZWZpbmUgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X09USEVSIFJU RV9CSVQ2NCgxMykKKyNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjZfT1RIRVIgICAgIFJURV9F VEhfUlNTX05PTkZSQUdfSVBWNl9PVEhFUgorI2RlZmluZSBSVEVfRVRIX1JTU19MMl9QQVlMT0FE ICAgICAgICAgUlRFX0JJVDY0KDE0KQorI2RlZmluZSBFVEhfUlNTX0wyX1BBWUxPQUQgICAgICAg ICAgICAgUlRFX0VUSF9SU1NfTDJfUEFZTE9BRAorI2RlZmluZSBSVEVfRVRIX1JTU19JUFY2X0VY ICAgICAgICAgICAgUlRFX0JJVDY0KDE1KQorI2RlZmluZSBFVEhfUlNTX0lQVjZfRVggICAgICAg ICAgICAgICAgUlRFX0VUSF9SU1NfSVBWNl9FWAorI2RlZmluZSBSVEVfRVRIX1JTU19JUFY2X1RD UF9FWCAgICAgICAgUlRFX0JJVDY0KDE2KQorI2RlZmluZSBFVEhfUlNTX0lQVjZfVENQX0VYICAg ICAgICAgICAgUlRFX0VUSF9SU1NfSVBWNl9UQ1BfRVgKKyNkZWZpbmUgUlRFX0VUSF9SU1NfSVBW Nl9VRFBfRVggICAgICAgIFJURV9CSVQ2NCgxNykKKyNkZWZpbmUgRVRIX1JTU19JUFY2X1VEUF9F WCAgICAgICAgICAgIFJURV9FVEhfUlNTX0lQVjZfVURQX0VYCisjZGVmaW5lIFJURV9FVEhfUlNT X1BPUlQgICAgICAgICAgICAgICBSVEVfQklUNjQoMTgpCisjZGVmaW5lIEVUSF9SU1NfUE9SVCAg ICAgICAgICAgICAgICAgICBSVEVfRVRIX1JTU19QT1JUCisjZGVmaW5lIFJURV9FVEhfUlNTX1ZY TEFOICAgICAgICAgICAgICBSVEVfQklUNjQoMTkpCisjZGVmaW5lIEVUSF9SU1NfVlhMQU4gICAg ICAgICAgICAgICAgICBSVEVfRVRIX1JTU19WWExBTgorI2RlZmluZSBSVEVfRVRIX1JTU19HRU5F VkUgICAgICAgICAgICAgUlRFX0JJVDY0KDIwKQorI2RlZmluZSBFVEhfUlNTX0dFTkVWRSAgICAg ICAgICAgICAgICAgUlRFX0VUSF9SU1NfR0VORVZFCisjZGVmaW5lIFJURV9FVEhfUlNTX05WR1JF ICAgICAgICAgICAgICBSVEVfQklUNjQoMjEpCisjZGVmaW5lIEVUSF9SU1NfTlZHUkUgICAgICAg ICAgICAgICAgICBSVEVfRVRIX1JTU19OVkdSRQorI2RlZmluZSBSVEVfRVRIX1JTU19HVFBVICAg ICAgICAgICAgICAgUlRFX0JJVDY0KDIzKQorI2RlZmluZSBFVEhfUlNTX0dUUFUgICAgICAgICAg ICAgICAgICAgUlRFX0VUSF9SU1NfR1RQVQorI2RlZmluZSBSVEVfRVRIX1JTU19FVEggICAgICAg ICAgICAgICAgUlRFX0JJVDY0KDI0KQorI2RlZmluZSBFVEhfUlNTX0VUSCAgICAgICAgICAgICAg ICAgICAgUlRFX0VUSF9SU1NfRVRICisjZGVmaW5lIFJURV9FVEhfUlNTX1NfVkxBTiAgICAgICAg ICAgICBSVEVfQklUNjQoMjUpCisjZGVmaW5lIEVUSF9SU1NfU19WTEFOICAgICAgICAgICAgICAg ICBSVEVfRVRIX1JTU19TX1ZMQU4KKyNkZWZpbmUgUlRFX0VUSF9SU1NfQ19WTEFOICAgICAgICAg ICAgIFJURV9CSVQ2NCgyNikKKyNkZWZpbmUgRVRIX1JTU19DX1ZMQU4gICAgICAgICAgICAgICAg IFJURV9FVEhfUlNTX0NfVkxBTgorI2RlZmluZSBSVEVfRVRIX1JTU19FU1AgICAgICAgICAgICAg ICAgUlRFX0JJVDY0KDI3KQorI2RlZmluZSBFVEhfUlNTX0VTUCAgICAgICAgICAgICAgICAgICAg UlRFX0VUSF9SU1NfRVNQCisjZGVmaW5lIFJURV9FVEhfUlNTX0FIICAgICAgICAgICAgICAgICBS VEVfQklUNjQoMjgpCisjZGVmaW5lIEVUSF9SU1NfQUggICAgICAgICAgICAgICAgICAgICBSVEVf RVRIX1JTU19BSAorI2RlZmluZSBSVEVfRVRIX1JTU19MMlRQVjMgICAgICAgICAgICAgUlRFX0JJ VDY0KDI5KQorI2RlZmluZSBFVEhfUlNTX0wyVFBWMyAgICAgICAgICAgICAgICAgUlRFX0VUSF9S U1NfTDJUUFYzCisjZGVmaW5lIFJURV9FVEhfUlNTX1BGQ1AgICAgICAgICAgICAgICBSVEVfQklU NjQoMzApCisjZGVmaW5lIEVUSF9SU1NfUEZDUCAgICAgICAgICAgICAgICAgICBSVEVfRVRIX1JT U19QRkNQCisjZGVmaW5lIFJURV9FVEhfUlNTX1BQUE9FICAgICAgICAgICAgICBSVEVfQklUNjQo MzEpCisjZGVmaW5lIEVUSF9SU1NfUFBQT0UgICAgICAgICAgICAgICAgICBSVEVfRVRIX1JTU19Q UFBPRQorI2RlZmluZSBSVEVfRVRIX1JTU19FQ1BSSSAgICAgICAgICAgICAgUlRFX0JJVDY0KDMy KQorI2RlZmluZSBFVEhfUlNTX0VDUFJJICAgICAgICAgICAgICAgICAgUlRFX0VUSF9SU1NfRUNQ UkkKKyNkZWZpbmUgUlRFX0VUSF9SU1NfTVBMUyAgICAgICAgICAgICAgIFJURV9CSVQ2NCgzMykK KyNkZWZpbmUgRVRIX1JTU19NUExTICAgICAgICAgICAgICAgICAgIFJURV9FVEhfUlNTX01QTFMK KyNkZWZpbmUgUlRFX0VUSF9SU1NfSVBWNF9DSEtTVU0gICAgICAgIFJURV9CSVQ2NCgzNCkKKyNk ZWZpbmUgRVRIX1JTU19JUFY0X0NIS1NVTSAgICAgICAgICAgIFJURV9FVEhfUlNTX0lQVjRfQ0hL U1VNCiAKIC8qKgogICogVGhlIEVUSF9SU1NfTDRfQ0hLU1VNIHdvcmtzIG9uIGNoZWNrc3VtIGZp ZWxkIG9mIGFueSBMNCBoZWFkZXIuCkBAIC01NTMsMzQgKzYzMCw0MSBAQCBzdHJ1Y3QgcnRlX2V0 aF9yc3NfY29uZiB7CiAgKiBjaGVja3N1bSB0eXBlIGZvciBjb25zdHJ1Y3RpbmcgdGhlIHVzZSBv ZiBSU1Mgb2ZmbG9hZCBiaXRzLgogICoKICAqIER1ZSB0byBhYm92ZSByZWFzb24sIHNvbWUgb2xk IEFQSXMgKGFuZCBjb25maWd1cmF0aW9uKSBkb24ndCBzdXBwb3J0Ci0gKiBFVEhfUlNTX0w0X0NI S1NVTS4gVGhlIHJ0ZV9mbG93IFJTUyBBUEkgc3VwcG9ydHMgaXQuCisgKiBSVEVfRVRIX1JTU19M NF9DSEtTVU0uIFRoZSBydGVfZmxvdyBSU1MgQVBJIHN1cHBvcnRzIGl0LgogICoKICAqIEZvciB0 aGUgY2FzZSB0aGF0IGNoZWNrc3VtIGlzIG5vdCB1c2VkIGluIGFuIFVEUCBoZWFkZXIsCiAgKiBp dCB0YWtlcyB0aGUgcmVzZXJ2ZWQgdmFsdWUgMCBhcyBpbnB1dCBmb3IgdGhlIGhhc2ggZnVuY3Rp b24uCiAgKi8KLSNkZWZpbmUgRVRIX1JTU19MNF9DSEtTVU0gICAgICAgICAgUlRFX0JJVDY0KDM1 KQorI2RlZmluZSBSVEVfRVRIX1JTU19MNF9DSEtTVU0gICAgICAgICAgUlRFX0JJVDY0KDM1KQor I2RlZmluZSBFVEhfUlNTX0w0X0NIS1NVTSAgICAgICAgICAgICAgUlRFX0VUSF9SU1NfTDRfQ0hL U1VNCiAKIC8qCi0gKiBXZSB1c2UgdGhlIGZvbGxvd2luZyBtYWNyb3MgdG8gY29tYmluZSB3aXRo IGFib3ZlIEVUSF9SU1NfKiBmb3IKKyAqIFdlIHVzZSB0aGUgZm9sbG93aW5nIG1hY3JvcyB0byBj b21iaW5lIHdpdGggYWJvdmUgUlRFX0VUSF9SU1NfKiBmb3IKICAqIG1vcmUgc3BlY2lmaWMgaW5w dXQgc2V0IHNlbGVjdGlvbi4gVGhlc2UgYml0cyBhcmUgZGVmaW5lZCBzdGFydGluZwogICogZnJv bSB0aGUgaGlnaCBlbmQgb2YgdGhlIDY0IGJpdHMuCi0gKiBOb3RlOiBJZiB3ZSB1c2UgYWJvdmUg RVRIX1JTU18qIHdpdGhvdXQgU1JDL0RTVF9PTkxZLCBpdCByZXByZXNlbnRzCisgKiBOb3RlOiBJ ZiB3ZSB1c2UgYWJvdmUgUlRFX0VUSF9SU1NfKiB3aXRob3V0IFNSQy9EU1RfT05MWSwgaXQgcmVw cmVzZW50cwogICogYm90aCBTUkMgYW5kIERTVCBhcmUgdGFrZW4gaW50byBhY2NvdW50LiBJZiBT UkNfT05MWSBhbmQgRFNUX09OTFkgb2YKICAqIHRoZSBzYW1lIGxldmVsIGFyZSB1c2VkIHNpbXVs dGFuZW91c2x5LCBpdCBpcyB0aGUgc2FtZSBjYXNlIGFzIG5vbmUgb2YKICAqIHRoZW0gYXJlIGFk ZGVkLgogICovCi0jZGVmaW5lIEVUSF9SU1NfTDNfU1JDX09OTFkgICAgICAgIFJURV9CSVQ2NCg2 MykKLSNkZWZpbmUgRVRIX1JTU19MM19EU1RfT05MWSAgICAgICAgUlRFX0JJVDY0KDYyKQotI2Rl ZmluZSBFVEhfUlNTX0w0X1NSQ19PTkxZICAgICAgICBSVEVfQklUNjQoNjEpCi0jZGVmaW5lIEVU SF9SU1NfTDRfRFNUX09OTFkgICAgICAgIFJURV9CSVQ2NCg2MCkKLSNkZWZpbmUgRVRIX1JTU19M Ml9TUkNfT05MWSAgICAgICAgUlRFX0JJVDY0KDU5KQotI2RlZmluZSBFVEhfUlNTX0wyX0RTVF9P TkxZICAgICAgICBSVEVfQklUNjQoNTgpCisjZGVmaW5lIFJURV9FVEhfUlNTX0wzX1NSQ19PTkxZ ICAgICAgICBSVEVfQklUNjQoNjMpCisjZGVmaW5lIEVUSF9SU1NfTDNfU1JDX09OTFkgICAgICAg ICAgICBSVEVfRVRIX1JTU19MM19TUkNfT05MWQorI2RlZmluZSBSVEVfRVRIX1JTU19MM19EU1Rf T05MWSAgICAgICAgUlRFX0JJVDY0KDYyKQorI2RlZmluZSBFVEhfUlNTX0wzX0RTVF9PTkxZICAg ICAgICAgICAgUlRFX0VUSF9SU1NfTDNfRFNUX09OTFkKKyNkZWZpbmUgUlRFX0VUSF9SU1NfTDRf U1JDX09OTFkgICAgICAgIFJURV9CSVQ2NCg2MSkKKyNkZWZpbmUgRVRIX1JTU19MNF9TUkNfT05M WSAgICAgICAgICAgIFJURV9FVEhfUlNTX0w0X1NSQ19PTkxZCisjZGVmaW5lIFJURV9FVEhfUlNT X0w0X0RTVF9PTkxZICAgICAgICBSVEVfQklUNjQoNjApCisjZGVmaW5lIEVUSF9SU1NfTDRfRFNU X09OTFkgICAgICAgICAgICBSVEVfRVRIX1JTU19MNF9EU1RfT05MWQorI2RlZmluZSBSVEVfRVRI X1JTU19MMl9TUkNfT05MWSAgICAgICAgUlRFX0JJVDY0KDU5KQorI2RlZmluZSBFVEhfUlNTX0wy X1NSQ19PTkxZICAgICAgICAgICAgUlRFX0VUSF9SU1NfTDJfU1JDX09OTFkKKyNkZWZpbmUgUlRF X0VUSF9SU1NfTDJfRFNUX09OTFkgICAgICAgIFJURV9CSVQ2NCg1OCkKKyNkZWZpbmUgRVRIX1JT U19MMl9EU1RfT05MWSAgICAgICAgICAgIFJURV9FVEhfUlNTX0wyX0RTVF9PTkxZCiAKIC8qCiAg KiBPbmx5IHNlbGVjdCBJUFY2IGFkZHJlc3MgcHJlZml4IGFzIFJTUyBpbnB1dCBzZXQgYWNjb3Jk aW5nIHRvCi0gKiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjA1MgotICogTXVzdCBi ZSBjb21iaW5lZCB3aXRoIEVUSF9SU1NfSVBWNiwgRVRIX1JTU19OT05GUkFHX0lQVjZfVURQLAot ICogRVRIX1JTU19OT05GUkFHX0lQVjZfVENQLCBFVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQLgor ICogaHR0cHM6dG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MDUyCisgKiBNdXN0IGJlIGNvbWJpbmVk IHdpdGggUlRFX0VUSF9SU1NfSVBWNiwgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCwKKyAq IFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AsIFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9T Q1RQLgogICovCiAjZGVmaW5lIFJURV9FVEhfUlNTX0wzX1BSRTMyCSAgIFJURV9CSVQ2NCg1NykK ICNkZWZpbmUgUlRFX0VUSF9SU1NfTDNfUFJFNDAJICAgUlRFX0JJVDY0KDU2KQpAQCAtMTMzNiw0 OCArMTU0OSw3MCBAQCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHsKIAkJc3RydWN0IHJ0ZV9ldGhfdm1k cV90eF9jb25mIHZtZHFfdHhfY29uZjsKIAkJLyoqPCBQb3J0IHZtZHEgVFggY29uZmlndXJhdGlv bi4gKi8KIAl9IHR4X2Fkdl9jb25mOyAvKio8IFBvcnQgVFggRENCIGNvbmZpZ3VyYXRpb24gKHVu aW9uKS4gKi8KLQkvKiogQ3VycmVudGx5LFByaW9yaXR5IEZsb3cgQ29udHJvbChQRkMpIGFyZSBz dXBwb3J0ZWQsaWYgRENCIHdpdGggUEZDCi0JICAgIGlzIG5lZWRlZCxhbmQgdGhlIHZhcmlhYmxl IG11c3QgYmUgc2V0IEVUSF9EQ0JfUEZDX1NVUFBPUlQuICovCisJLyoqCisJICogQ3VycmVudGx5 LFByaW9yaXR5IEZsb3cgQ29udHJvbChQRkMpIGFyZSBzdXBwb3J0ZWQsaWYgRENCIHdpdGggUEZD CisJICogaXMgbmVlZGVkLGFuZCB0aGUgdmFyaWFibGUgbXVzdCBiZSBzZXQgUlRFX0VUSF9EQ0Jf UEZDX1NVUFBPUlQuCisJICovCiAJdWludDMyX3QgZGNiX2NhcGFiaWxpdHlfZW47Ci0Jc3RydWN0 IHJ0ZV9mZGlyX2NvbmYgZmRpcl9jb25mOyAvKio8IEZESVIgY29uZmlndXJhdGlvbi4gREVQUkVD QVRFRCAqLwotCXN0cnVjdCBydGVfaW50cl9jb25mIGludHJfY29uZjsgLyoqPCBJbnRlcnJ1cHQg bW9kZSBjb25maWd1cmF0aW9uLiAqLworCXN0cnVjdCBydGVfZXRoX2ZkaXJfY29uZiBmZGlyX2Nv bmY7IC8qKjwgRkRJUiBjb25maWd1cmF0aW9uLiBERVBSRUNBVEVEICovCisJc3RydWN0IHJ0ZV9l dGhfaW50cl9jb25mIGludHJfY29uZjsgLyoqPCBJbnRlcnJ1cHQgbW9kZSBjb25maWd1cmF0aW9u LiAqLwogfTsKIAogLyoqCiAgKiBSWCBvZmZsb2FkIGNhcGFiaWxpdGllcyBvZiBhIGRldmljZS4K ICAqLwotI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICAweDAwMDAwMDAxCi0jZGVm aW5lIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIDB4MDAwMDAwMDIKLSNkZWZpbmUgREVWX1JY X09GRkxPQURfVURQX0NLU1VNICAgMHgwMDAwMDAwNAotI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9U Q1BfQ0tTVU0gICAweDAwMDAwMDA4Ci0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8gICAg IDB4MDAwMDAwMTAKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCAgMHgwMDAwMDAy MAotI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIDB4MDAwMDAwNDAKLSNk ZWZpbmUgREVWX1JYX09GRkxPQURfTUFDU0VDX1NUUklQICAgICAweDAwMDAwMDgwCi0jZGVmaW5l IERFVl9SWF9PRkZMT0FEX0hFQURFUl9TUExJVAkweDAwMDAwMTAwCi0jZGVmaW5lIERFVl9SWF9P RkZMT0FEX1ZMQU5fRklMVEVSCTB4MDAwMDAyMDAKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfVkxB Tl9FWFRFTkQJMHgwMDAwMDQwMAotI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCQkweDAw MDAyMDAwCisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICAweDAwMDAwMDAx CisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAJUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fU1RSSVAKKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIDB4MDAwMDAw MDIKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTQlSVEVfRVRIX1JYX09GRkxPQURf SVBWNF9DS1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNICAgMHgwMDAw MDAwNAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0JUlRFX0VUSF9SWF9PRkZMT0FE X1VEUF9DS1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VNICAgMHgwMDAw MDAwOAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0JUlRFX0VUSF9SWF9PRkZMT0FE X1RDUF9DS1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyAgICAgMHgwMDAw MDAxMAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPCQlSVEVfRVRIX1JYX09GRkxPQURf VENQX0xSTworI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfUUlOUV9TVFJJUCAgMHgwMDAwMDAy MAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQCVJURV9FVEhfUlhfT0ZGTE9BRF9R SU5RX1NUUklQCisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIDB4 MDAwMDAwNDAKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTQlSVEVfRVRI X1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURf TUFDU0VDX1NUUklQICAgICAweDAwMDAwMDgwCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX01BQ1NF Q19TVFJJUAlSVEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQCisjZGVmaW5lIFJURV9FVEhf UlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQJMHgwMDAwMDEwMAorI2RlZmluZSBERVZfUlhfT0ZGTE9B RF9IRUFERVJfU1BMSVQJUlRFX0VUSF9SWF9PRkZMT0FEX0hFQURFUl9TUExJVAorI2RlZmluZSBS VEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIJMHgwMDAwMDIwMAorI2RlZmluZSBERVZfUlhf T0ZGTE9BRF9WTEFOX0ZJTFRFUglSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIKKyNkZWZp bmUgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5ECTB4MDAwMDA0MDAKKyNkZWZpbmUgREVW X1JYX09GRkxPQURfVkxBTl9FWFRFTkQJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5ECisj ZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSCTB4MDAwMDIwMDAKKyNkZWZpbmUgREVW X1JYX09GRkxPQURfU0NBVFRFUgkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIKIC8qKgogICog VGltZXN0YW1wIGlzIHNldCBieSB0aGUgZHJpdmVyIGluIFJURV9NQlVGX0RZTkZJRUxEX1RJTUVT VEFNUF9OQU1FCiAgKiBhbmQgUlRFX01CVUZfRFlORkxBR19SWF9USU1FU1RBTVBfTkFNRSBpcyBz ZXQgaW4gb2xfZmxhZ3MuCiAgKiBUaGUgbWJ1ZiBmaWVsZCBhbmQgZmxhZyBhcmUgcmVnaXN0ZXJl ZCB3aGVuIHRoZSBvZmZsb2FkIGlzIGNvbmZpZ3VyZWQuCiAgKi8KLSNkZWZpbmUgREVWX1JYX09G RkxPQURfVElNRVNUQU1QCTB4MDAwMDQwMDAKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfU0VDVVJJ VFkgICAgICAgICAweDAwMDA4MDAwCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDCQkw eDAwMDEwMDAwCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0JMHgwMDAyMDAwMAot I2RlZmluZSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gIDB4MDAwNDAwMDAKLSNkZWZp bmUgREVWX1JYX09GRkxPQURfUlNTX0hBU0gJCTB4MDAwODAwMDAKKyNkZWZpbmUgUlRFX0VUSF9S WF9PRkZMT0FEX1RJTUVTVEFNUAkweDAwMDA0MDAwCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX1RJ TUVTVEFNUAlSVEVfRVRIX1JYX09GRkxPQURfVElNRVNUQU1QCisjZGVmaW5lIFJURV9FVEhfUlhf T0ZGTE9BRF9TRUNVUklUWSAgICAgMHgwMDAwODAwMAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9T RUNVUklUWQkJUlRFX0VUSF9SWF9PRkZMT0FEX1NFQ1VSSVRZCisjZGVmaW5lIFJURV9FVEhfUlhf T0ZGTE9BRF9LRUVQX0NSQwkweDAwMDEwMDAwCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX0tFRVBf Q1JDCQlSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMKKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZM T0FEX1NDVFBfQ0tTVU0JMHgwMDAyMDAwMAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9TQ1RQX0NL U1VNCVJURV9FVEhfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNCisjZGVmaW5lIFJURV9FVEhfUlhfT0ZG TE9BRF9PVVRFUl9VRFBfQ0tTVU0gIDB4MDAwNDAwMDAKKyNkZWZpbmUgREVWX1JYX09GRkxPQURf T1VURVJfVURQX0NLU1VNCVJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0KKyNkZWZp bmUgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNICTB4MDAwODAwMDAKKyNkZWZpbmUgREVWX1JY X09GRkxPQURfUlNTX0hBU0gJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNICiAjZGVmaW5lIFJU RV9FVEhfUlhfT0ZGTE9BRF9CVUZGRVJfU1BMSVQgMHgwMDEwMDAwMAogCi0jZGVmaW5lIERFVl9S WF9PRkZMT0FEX0NIRUNLU1VNIChERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAotCQkJCSBE RVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCi0JCQkJIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NV TSkKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfVkxBTiAoREVWX1JYX09GRkxPQURfVkxBTl9TVFJJ UCB8IFwKLQkJCSAgICAgREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBcCi0JCQkgICAgIERF Vl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwgXAotCQkJICAgICBERVZfUlhfT0ZGTE9BRF9RSU5R X1NUUklQKQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0gKFJURV9FVEhfUlhf T0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VN IHwgXAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VNKQorI2RlZmluZSBERVZfUlhf T0ZGTE9BRF9DSEVDS1NVTQlSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0KKyNkZWZpbmUgUlRF X0VUSF9SWF9PRkZMT0FEX1ZMQU4gKFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwgXAor CQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBcCisJCQkgICAgIFJURV9F VEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8IFwKKwkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FE X1FJTlFfU1RSSVApCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZMQU4JUlRFX0VUSF9SWF9PRkZM T0FEX1ZMQU4KIAogLyoKICAqIElmIG5ldyBSeCBvZmZsb2FkIGNhcGFiaWxpdGllcyBhcmUgZGVm aW5lZCwgdGhleSBhbHNvIG11c3QgYmUKCmh0dHBzOi8vbGFiLmRwZGsub3JnL3Jlc3VsdHMvZGFz aGJvYXJkL3BhdGNoc2V0cy8xOTU5NS8KClVOSC1JT0wgRFBESyBDb21tdW5pdHkgTGFiCg== --===============7720825570812622859==--