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 F1AA5A0C43 for ; Mon, 18 Oct 2021 18:09:15 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DA9F940142; Mon, 18 Oct 2021 18:09:15 +0200 (CEST) Received: from mail-ua1-f98.google.com (mail-ua1-f98.google.com [209.85.222.98]) by mails.dpdk.org (Postfix) with ESMTP id 1EB3E40141 for ; Mon, 18 Oct 2021 18:09:14 +0200 (CEST) Received: by mail-ua1-f98.google.com with SMTP id f3so8895759uap.6 for ; Mon, 18 Oct 2021 09:09:14 -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=A8M3mitWNUzEdnfpK8u4fBoy84Nf3Ge69iG/4gQBbXM=; b=UDjYUc4KscYfQ031X9iuPoKt6WsPucr4v7/4jzOJ/4q8hM55S7tVEICwBOwK8swCCR SCeOPfX4/aS6YQc1W7ZhoaSjmA9OotTOpdCWHjUUjPabF3cVGPhUo4QgncCPYmb+JR/O P6a3hFJupiGU6lQamvhjShvkoEklOvkB+vNkU= 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=A8M3mitWNUzEdnfpK8u4fBoy84Nf3Ge69iG/4gQBbXM=; b=agqh35pYxcdP1hujYq16TmPINoWwvTItYnaVwqMs8uvxu5dEYCil6SOHYWgL4bcNWB 6gaA/mGw9L0htLJA+/7qyOBTcvx64lMYoCFlx2T2ZNIDDfs6+BGAH34UPG0CjB+CygoI HZfHHrbar57XG1vBIfuycizgq24zvDdbJWlbS/imglOxgZMIimerYIKFCPH+bX+mqPkE PZxb7wlWFU2RfscNAEM3MAsxeu2CGLCXCX4RTWyL7BvKS0eogknxlYvWpiqqDMuO7Ked HgpxGPBQN0t0PQE3Dqgjuj0sVUTxx5Rkf7YOldftUdQN/mcoahnjD5WR4fP13TlfKSmD l0Hw== X-Gm-Message-State: AOAM532U2l5Sp+6PWBt9kl5RhX8npd1sh5m4J2egILSv4gDUzMmPvMSn 3hQnxn9S/7FXCbKW0s3SvVPXuiG+hCoVzX4DKJ+p6p6qzHA5EO+Xd2aAaF84Xy3KRA== X-Google-Smtp-Source: ABdhPJz/rmbmkIRcfhXxD/ST3MbdVh7mhTX2wW92WbVavgHGAyA/YZrDHse7TtTrQC8mDshciPDTDRzLHK0/ X-Received: by 2002:a05:6102:32d6:: with SMTP id o22mr16019827vss.32.1634573353326; Mon, 18 Oct 2021 09:09:13 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [2606:4100:3880:1234::84]) by smtp-relay.gmail.com with ESMTPS id x135sm4522419vke.6.2021.10.18.09.09.13 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 18 Oct 2021 09:09:13 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (unknown [IPv6:2606:4100:3880:1722::32]) by postal.iol.unh.edu (Postfix) with ESMTP id 6284F605247D; Mon, 18 Oct 2021 12:09:12 -0400 (EDT) Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by dpdk-ubuntu.dpdklab.iol.unh.edu (Postfix) with ESMTP id 5332B605E8; Mon, 18 Oct 2021 16:09:12 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============7113844100621304252==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20211018160912.5332B605E8@dpdk-ubuntu.dpdklab.iol.unh.edu> Date: Mon, 18 Oct 2021 16:09:12 +0000 (UTC) Subject: [dpdk-test-report] |WARNING| pw102077 [PATCH] [v4] 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" --===============7113844100621304252== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzEwMjA3NwoKX2FwcGx5IHBhdGNoIGZhaWx1cmVfCgpTdWJtaXR0ZXI6IEZlcnJ1 aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4KRGF0ZTogTW9uZGF5LCBPY3RvYmVyIDE4 IDIwMjEgMTU6NDM6MTIgCkFwcGxpZWQgb246IENvbW1pdElEOjk5NDJlYmI5YzY5OGE1M2I4NmUy YmJkNDUwZjNlMjQyMzg3NzFmZTUKQXBwbHkgcGF0Y2ggc2V0IDEwMjA3NyBmYWlsZWQ6CgpDaGVj a2luZyBwYXRjaCBhcHAvcHJvYy1pbmZvL21haW4uYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVz dC1ldmVudGRldi90ZXN0X3BlcmZfY29tbW9uLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CglzdHJ1Y3QgdGVzdF9wZXJmICp0ID0gZXZ0X3Rlc3RfcHJpdih0ZXN0KTsKCXN0cnVjdCBy dGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewoJCS5yeG1vZGUgPSB7CgkJCS5tcV9tb2RlID0gRVRI X01RX1JYX1JTUywKCQkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQl9LAoJCS5yeF9hZHZfY29uZiA9 IHsKCQkJLnJzc19jb25mID0gewoJCQkJLnJzc19rZXkgPSBOVUxMLAoJCQkJLnJzc19oZiA9IEVU SF9SU1NfSVAsCgkJCX0sCgkJfSwKCX07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1l dmVudGRldi90ZXN0X3BlcmZfY29tbW9uLmM6NjY4CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LWV2 ZW50ZGV2L3Rlc3RfcGlwZWxpbmVfY29tbW9uLmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjI0 IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMjM0IChvZmZzZXQgMSBsaW5l KS4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtZmxvdy1wZXJmL2NvbmZpZy5oLi4uCkNoZWNraW5n IHBhdGNoIGFwcC90ZXN0LXBpcGVsaW5lL2luaXQuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVz dC1wbWQvY21kbGluZS5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE0NzIgKG9mZnNldCAtNiBs aW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIxNjcgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMz IHN1Y2NlZWRlZCBhdCAyMjA3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQg Mjk4MyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDMwMTMgKG9mZnNldCAx IGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAzMDg3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAj NyBzdWNjZWVkZWQgYXQgMzEzMyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzggc3VjY2VlZGVkIGF0 IDMyNzMgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCA0Mjc3IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDQ2MTYgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICMxMSBzdWNjZWVkZWQgYXQgNDcxNCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzEyIHN1Y2NlZWRl ZCBhdCA0NzIzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDQ3MzIgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgNDc0MSAob2Zmc2V0IDEgbGluZSku Ckh1bmsgIzE1IHN1Y2NlZWRlZCBhdCA0NzUwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTYgc3Vj Y2VlZGVkIGF0IDQ3NjAgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgNDkx NyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCA0OTI1IChvZmZzZXQgMSBs aW5lKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDQ5NDEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMy MCBzdWNjZWVkZWQgYXQgNTAxMiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzIxIHN1Y2NlZWRlZCBh dCA1MDYwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMjIgc3VjY2VlZGVkIGF0IDUwOTYgKG9mZnNl dCAxIGxpbmUpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgNzA0OCAob2Zmc2V0IC0xNzkgbGluZXMp LgpIdW5rICMyNCBzdWNjZWVkZWQgYXQgNzMyOCAob2Zmc2V0IC0xNzkgbGluZXMpLgpIdW5rICMy NSBzdWNjZWVkZWQgYXQgNzM0NiAob2Zmc2V0IC0xNzkgbGluZXMpLgpIdW5rICMyNiBzdWNjZWVk ZWQgYXQgNzQxOCAob2Zmc2V0IC0xNzkgbGluZXMpLgpIdW5rICMyNyBzdWNjZWVkZWQgYXQgODk0 MCAob2Zmc2V0IC0zMTAgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgOTM0NiAob2Zmc2V0 IC0zMTAgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgOTQxMiAob2Zmc2V0IC0zMTAgbGlu ZXMpLgpIdW5rICMzMCBzdWNjZWVkZWQgYXQgMTE1NDkgKG9mZnNldCAtMzEwIGxpbmVzKS4KSHVu ayAjMzEgc3VjY2VlZGVkIGF0IDExNTYwIChvZmZzZXQgLTMxMCBsaW5lcykuCkh1bmsgIzMyIHN1 Y2NlZWRlZCBhdCAxMTY0NiAob2Zmc2V0IC0zMTAgbGluZXMpLgpIdW5rICMzMyBzdWNjZWVkZWQg YXQgMTE2NTQgKG9mZnNldCAtMzEwIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1k L2NvbmZpZy5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDQ3NiAob2Zmc2V0IC02MiBsaW5lcyku Ckh1bmsgIzMgc3VjY2VlZGVkIGF0IDYzOCAob2Zmc2V0IC02MiBsaW5lcykuCkh1bmsgIzQgc3Vj Y2VlZGVkIGF0IDY1OCAob2Zmc2V0IC02MiBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDI3 NjcgKG9mZnNldCAtMTM3IGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMzEzNiAob2Zmc2V0 IC0xMzcgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA0MTk5IChvZmZzZXQgLTEzNyBsaW5l cykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDQyMjkgKG9mZnNldCAtMTM3IGxpbmVzKS4KSHVuayAj OSBzdWNjZWVkZWQgYXQgNDI3NCAob2Zmc2V0IC0xMzcgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVk ZWQgYXQgNDMwNCAob2Zmc2V0IC0xMzcgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgNDM3 OCAob2Zmc2V0IC0xMzcgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgNDM4NyAob2Zmc2V0 IC0xMzcgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgNDM5NSAob2Zmc2V0IC0xMzcgbGlu ZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgNDQxNCAob2Zmc2V0IC0xMzcgbGluZXMpLgpIdW5r ICMxNSBzdWNjZWVkZWQgYXQgNDQyMiAob2Zmc2V0IC0xMzcgbGluZXMpLgpIdW5rICMxNiBzdWNj ZWVkZWQgYXQgNDQzMiAob2Zmc2V0IC0xMzcgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQg NDgzOSAob2Zmc2V0IC0xMzcgbGluZXMpLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY3N1 bW9ubHkuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvZmxvd2dlbi5jLi4uCkNoZWNr aW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9tYWNmd2QuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVz dC1wbWQvbWFjc3dhcF9jb21tb24uaC4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvcGFy YW1ldGVycy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDQ3NiAob2Zmc2V0IC03MCBsaW5lcyku Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDkxOSAob2Zmc2V0IC04MSBsaW5lcykuCkh1bmsgIzMgc3Vj Y2VlZGVkIGF0IDk2NyAob2Zmc2V0IC04MSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDEw MTYgKG9mZnNldCAtODEgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxNDAxIChvZmZzZXQg LTgxIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYy4uLgpIdW5r ICMxIHN1Y2NlZWRlZCBhdCAzMzggKG9mZnNldCAtMTAgbGluZXMpLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKc3RydWN0IHJ0ZV9ldGhfcnhtb2RlIHJ4X21vZGU7CgpzdHJ1Y3QgcnRlX2V0 aF90eG1vZGUgdHhfbW9kZSA9IHsKCS5vZmZsb2FkcyA9IERFVl9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFLAp9OwoKc3RydWN0IHJ0ZV9mZGlyX2NvbmYgZmRpcl9jb25mID0gewoJLm1vZGUgPSBS VEVfRkRJUl9NT0RFX05PTkUsCgkucGJhbGxvYyA9IFJURV9GRElSX1BCQUxMT0NfNjRLLAoJLnN0 YXR1cyA9IFJURV9GRElSX1JFUE9SVF9TVEFUVVMsCgkubWFzayA9IHsKCQkudmxhbl90Y2lfbWFz ayA9IDB4RkZFRiwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC90ZXN0cG1kLmM6 NDU5Ckh1bmsgIzMgc3VjY2VlZGVkIGF0IDUxNCAob2Zmc2V0IC00IGxpbmVzKS4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CglpZiAocmV0ICE9IDApCgkJcnRlX2V4aXQoRVhJVF9GQUlMVVJF LCAicnRlX2V0aF9kZXZfaW5mb19nZXQoKSBmYWlsZWRcbiIpOwoKCWlmICghKHBvcnQtPmRldl9p bmZvLnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKSkKCQlw b3J0LT5kZXZfY29uZi50eG1vZGUub2ZmbG9hZHMgJj0KCQkJfkRFVl9UWF9PRkZMT0FEX01CVUZf RkFTVF9GUkVFOwoKCS8qIEFwcGx5IFJ4IG9mZmxvYWRzIGNvbmZpZ3VyYXRpb24gKi8KCWZvciAo aSA9IDA7IGkgPCBwb3J0LT5kZXZfaW5mby5tYXhfcnhfcXVldWVzOyBpKyspCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvdGVzdHBtZC5jOjE1NzIKSHVuayAjNSBzdWNjZWVkZWQg YXQgMTYzMSAob2Zmc2V0IC04MCBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDMyMjEgKG9m ZnNldCAtMjM1IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCWlmIChwb3J0 LT5kZXZfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgIT0gMCkgewoJCQkJcG9ydC0+ ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgPQoJCQkJCShlbnVtIHJ0ZV9ldGhfcnhfbXFfbW9kZSkK CQkJCQkJKHJ4X21xX21vZGUgJiBFVEhfTVFfUlhfUlNTKTsKCQkJfSBlbHNlIHsKCQkJCXBvcnQt PmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkU7CgkJCQlwb3J0LT5kZXZf Y29uZi5yeG1vZGUub2ZmbG9hZHMgJj0KCQkJCQkJfkRFVl9SWF9PRkZMT0FEX1JTU19IQVNIOwoK CQkJCWZvciAoaSA9IDA7CgkJCQkgICAgIGkgPCBwb3J0LT5kZXZfaW5mby5uYl9yeF9xdWV1ZXM7 CgkJCQkgICAgIGkrKykKCQkJCQlwb3J0LT5yeF9jb25mW2ldLm9mZmxvYWRzICY9CgkJCQkJCX5E RVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCQkJfQoJCX0KCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBh cHAvdGVzdC1wbWQvdGVzdHBtZC5jOjM3NTAKSHVuayAjOCBzdWNjZWVkZWQgYXQgMzY0MiAob2Zm c2V0IC0yMDYgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAzNjUyIChvZmZzZXQgLTIwNiBs aW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAzNjYwIChvZmZzZXQgLTIwNiBsaW5lcykuCkh1 bmsgIzExIHN1Y2NlZWRlZCBhdCAzNjc3IChvZmZzZXQgLTIwNiBsaW5lcykuCkh1bmsgIzEyIHN1 Y2NlZWRlZCBhdCAzNzI0IChvZmZzZXQgLTIwNCBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBh dCAzNzc0IChvZmZzZXQgLTIwNCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC90 ZXN0cG1kLmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CmV4dGVybiB1aW50OF90IGJp dHJhdGVfZW5hYmxlZDsKI2VuZGlmCgpleHRlcm4gc3RydWN0IHJ0ZV9mZGlyX2NvbmYgZmRpcl9j b25mOwoKZXh0ZXJuIHVpbnQzMl90IG1heF9yeF9wa3RfbGVuOwoKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGFwcC90ZXN0LXBtZC90ZXN0cG1kLmg6NDY1CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBt ZC90eG9ubHkuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAzNTIgKG9mZnNldCAtMiBsaW5lcyku CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0L3Rlc3RfZXRoZGV2X2xpbmsuYy4uLgpDaGVja2luZyBw YXRjaCBhcHAvdGVzdC90ZXN0X2V2ZW50X2V0aF9yeF9hZGFwdGVyLmMuLi4KQ2hlY2tpbmcgcGF0 Y2ggYXBwL3Rlc3QvdGVzdF9rbmkuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC90ZXN0X2xp bmtfYm9uZGluZy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKc3RhdGljIHN0cnVj dCBydGVfZXRoX2NvbmYgZGVmYXVsdF9wbWRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21v ZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS50eG1vZGUg PSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCgkubHBia19tb2RlID0gMCwKfTsK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nLmM6MTM0CkNo ZWNraW5nIHBhdGNoIGFwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nX21vZGU0LmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBkZWZhdWx0 X3BtZF9jb25mID0gewoJLnJ4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLAoJ CS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgl9LAoJLnR4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9N UV9UWF9OT05FLAoJfSwKCS5scGJrX21vZGUgPSAwLAp9OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog YXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdfbW9kZTQuYzoxMDcKQ2hlY2tpbmcgcGF0Y2ggYXBw L3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdfcnNzY29uZi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgogKi8Kc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgZGVmYXVsdF9wbWRfY29uZiA9 IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRfaGRy X3NpemUgPSAwLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwK CX0sCgkubHBia19tb2RlID0gMCwKfTsKCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHJzc19w bWRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAoJCS5z cGxpdF9oZHJfc2l6ZSA9IDAsCgl9LAoJLnR4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9U WF9OT05FLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNzX2NvbmYgPSB7CgkJCS5yc3Nfa2V5 ID0gTlVMTCwKCQkJLnJzc19oZiA9IEVUSF9SU1NfSVBWNiwKCQl9LAoJfSwKCS5scGJrX21vZGUg PSAwLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdfcnNz Y29uZi5jOjgwCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDIwOSAob2Zmc2V0IDIgbGluZXMpLgpIdW5r ICM1IHN1Y2NlZWRlZCBhdCAyMzQgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQg YXQgMjUzIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDI3MCAob2Zmc2V0 IDIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC90ZXN0X3BtZF9wZXJmLmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0 X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCgkJLnNw bGl0X2hkcl9zaXplID0gMCwKCX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RY X05PTkUsCgl9LAoJLmxwYmtfbW9kZSA9IDEsICAvKiBlbmFibGUgbG9vcGJhY2sgKi8KfTsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0L3Rlc3RfcG1kX3BlcmYuYzo2MgpIdW5rICMyIHN1 Y2NlZWRlZCBhdCAxNTYgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA4MjMg KG9mZnNldCAxIGxpbmUpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA4MzIgKG9mZnNldCAxIGxpbmUp LgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC92aXJ0dWFsX3BtZC5jLi4uCkNoZWNraW5nIHBhdGNo IGRvYy9ndWlkZXMvZXZlbnRkZXZzL2NueGsucnN0Li4uCkNoZWNraW5nIHBhdGNoIGRvYy9ndWlk ZXMvZXZlbnRkZXZzL29jdGVvbnR4Mi5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9u aWNzL2FmX3BhY2tldC5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2JueHQu cnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogICDCoCogVFg6IG9ubHkgdGhlIGZv bGxvd2luZyByZWR1Y2VkIHNldCBvZiB0cmFuc21pdCBvZmZsb2FkcyBpcyBzdXBwb3J0ZWQgaW4K ICAgICAgdmVjdG9yIG1vZGU6OgoKICAgwqAgICBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJF RQoKICAgwqAqIFJYOiBvbmx5IHRoZSBmb2xsb3dpbmcgcmVkdWNlZCBzZXQgb2YgcmVjZWl2ZSBv ZmZsb2FkcyBpcyBzdXBwb3J0ZWQgaW4KICAgICAgdmVjdG9yIG1vZGUgKG5vdGUgdGhhdCBqdW1i byBNVFUgaXMgYWxsb3dlZCBvbmx5IHdoZW4gdGhlIE1UVSBzZXR0aW5nCiAgICAgIGRvZXMgbm90 IHJlcXVpcmUgYERFVl9SWF9PRkZMT0FEX1NDQVRURVJgIHRvIGJlIGVuYWJsZWQpOjoKCiAgIMKg ICAgREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUAogICDCoCAgIERFVl9SWF9PRkZMT0FEX0tFRVBf Q1JDCiAgIMKgICAgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTQogICDCoCAgIERFVl9SWF9PRkZM T0FEX1VEUF9DS1NVTQogICDCoCAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTQogICDCoCAgIERF Vl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0KICAgwqAgICBERVZfUlhfT0ZGTE9BRF9PVVRF Ul9VRFBfQ0tTVU0KICAgwqAgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSAogICDCoCAgIERFVl9S WF9PRkZMT0FEX1ZMQU5fRklMVEVSCgpUaGUgQk5YVCBWZWN0b3IgUE1EIGlzIGVuYWJsZWQgaW4g RFBESyBidWlsZHMgYnkgZGVmYXVsdC4gVGhlIGRlY2lzaW9uIHRvIGVuYWJsZQp2ZWN0b3IgcHJv Y2Vzc2luZyBpcyBtYWRlIGF0IHJ1bi10aW1lIHdoZW4gdGhlIHBvcnQgaXMgc3RhcnRlZDsgaWYg bm8gdHJhbnNtaXQKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvbmljcy9ibnh0LnJz dDo4NzcKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2VuaWMucnN0Li4uCkNoZWNraW5n IHBhdGNoIGRvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy5yc3QuLi4KSHVuayAjNCBzdWNjZWVkZWQg YXQgMTc4IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMjA2IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMjIyIChvZmZzZXQgMSBsaW5lKS4KSHVuayAj NyBzdWNjZWVkZWQgYXQgMjg4IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQg MzAzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMzQwIChvZmZzZXQgMSBs aW5lKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDM2MyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzEx IHN1Y2NlZWRlZCBhdCAzNzkgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQg NDE3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDQzOSAob2Zmc2V0IDEg bGluZSkuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCA0NjAgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMx NSBzdWNjZWVkZWQgYXQgNDcwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0 IDQ4OCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCA1MDkgKG9mZnNldCAx IGxpbmUpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgNTIwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAj MTkgc3VjY2VlZGVkIGF0IDUzOSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzIwIHN1Y2NlZWRlZCBh dCA1NDggKG9mZnNldCAxIGxpbmUpLgpIdW5rICMyMSBzdWNjZWVkZWQgYXQgNTU4IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjMjIgc3VjY2VlZGVkIGF0IDU3MSAob2Zmc2V0IDEgbGluZSkuCkh1bmsg IzIzIHN1Y2NlZWRlZCBhdCA1ODUgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMyNCBzdWNjZWVkZWQg YXQgNjA0IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2Zt MTBrLnJzdC4uLgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvaW50ZWxfdmYucnN0Li4u CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9peGdiZS5yc3QuLi4KQ2hlY2tpbmcgcGF0 Y2ggZG9jL2d1aWRlcy9uaWNzL21seDUucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgogIHNtYWxsLXBhY2tldCB0cmFmZmljLgoKICBXaGVuIE1QUlEgaXMgZW5hYmxlZCwgTVRVIGNh biBiZSBsYXJnZXIgdGhhbiB0aGUgc2l6ZSBvZgogIHVzZXItcHJvdmlkZWQgbWJ1ZiBldmVuIGlm IERFVl9SWF9PRkZMT0FEX1NDQVRURVIgaXNuJ3QgZW5hYmxlZC4gUE1EIHdpbGwKICBjb25maWd1 cmUgbGFyZ2Ugc3RyaWRlIHNpemUgZW5vdWdoIHRvIGFjY29tbW9kYXRlIE1UVSBhcyBsb25nIGFz CiAgZGV2aWNlIGFsbG93cy4gTm90ZSB0aGF0IHRoaXMgY2FuIHdhc3RlIHN5c3RlbSBtZW1vcnkg Y29tcGFyZWQgdG8gZW5hYmxpbmcgUngKICBzY2F0dGVyIGFuZCBtdWx0aS1zZWdtZW50IHBhY2tl dC4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvbmljcy9tbHg1LnJzdDo2MDcKQ2hl Y2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL3RhcC5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9j L2d1aWRlcy9wcm9nX2d1aWRlL2dlbmVyaWNfc2VnbWVudGF0aW9uX29mZmxvYWRfbGliLnJzdC4u LgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvbWJ1Zl9saWIucnN0Li4uCkNo ZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9wb2xsX21vZGVfZHJ2LnJzdC4uLgpD aGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCkh1bmsg IzEgc3VjY2VlZGVkIGF0IDE4MzUgKG9mZnNldCAtMTA4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2gg ZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9zZWN1cml0eS5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2gg ZG9jL2d1aWRlcy9yZWxfbm90ZXMvZGVwcmVjYXRpb24ucnN0Li4uCkNoZWNraW5nIHBhdGNoIGRv Yy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgogIHRvIGJlIHRyYW5zcGFyZW50IGZvciBib3RoIHVzZXJzIChubyBjaGFuZ2Vz IGluIHVzZXIgYXBwIGlzIHJlcXVpcmVkKSBhbmQKICBQTUQgZGV2ZWxvcGVycyAobm8gY2hhbmdl cyBpbiBQTUQgaXMgcmVxdWlyZWQpLgoKCktub3duIElzc3VlcwotLS0tLS0tLS0tLS0KCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0OjM1 MApDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3NhbXBsZV9hcHBfdWcvaXBzZWNfc2VjZ3cucnN0 Li4uCkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvcnVuX2FwcC5yc3Qu Li4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNTMxIChvZmZzZXQgLTYgbGluZXMpLgpDaGVja2luZyBw YXRjaCBkcml2ZXJzL2J1cy9kcGFhL2luY2x1ZGUvcHJvY2Vzcy5oLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvY29tbW9uL2NueGsvcm9jX25wYy5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2FmX3BhY2tldC9ydGVfZXRoX2FmX3BhY2tldC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2FmX3hkcC9ydGVfZXRoX2FmX3hkcC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2Fyay9hcmtfZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXRsYW50 aWMvYXRsX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJLnJlbW92ZSA9 IGV0aF9hdGxfcGNpX3JlbW92ZSwKfTsKCiNkZWZpbmUgQVRMX1JYX09GRkxPQURTIChERVZfUlhf T0ZGTE9BRF9WTEFOX1NUUklQIFwKCQkJfCBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIFwKCQkJ fCBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gXAoJCQl8IERFVl9SWF9PRkZMT0FEX1RDUF9DS1NV TSBcCgkJCXwgREVWX1JYX09GRkxPQURfTUFDU0VDX1NUUklQIFwKCQkJfCBERVZfUlhfT0ZGTE9B RF9WTEFOX0ZJTFRFUikKCiNkZWZpbmUgQVRMX1RYX09GRkxPQURTIChERVZfVFhfT0ZGTE9BRF9W TEFOX0lOU0VSVCBcCgkJCXwgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSBcCgkJCXwgREVWX1RY X09GRkxPQURfVURQX0NLU1VNIFwKCQkJfCBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gXAoJCQl8 IERFVl9UWF9PRkZMT0FEX1RDUF9UU08gXAoJCQl8IERFVl9UWF9PRkZMT0FEX01BQ1NFQ19JTlNF UlQgXAoJCQl8IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCgojZGVmaW5lIFNGUF9FRVBST01f U0laRSAweDEwMAoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2F0bGFudGljL2F0 bF9ldGhkZXYuYzoxNTQKSHVuayAjMiBzdWNjZWVkZWQgYXQgNDg5IChvZmZzZXQgMSBsaW5lKS4K SHVuayAjMyBzdWNjZWVkZWQgYXQgNjU2IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNCBzdWNjZWVk ZWQgYXQgMTEyOCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDExNzYgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxMTk5IChvZmZzZXQgMSBsaW5lKS4K SHVuayAjNyBzdWNjZWVkZWQgYXQgMTMzNCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzggc3VjY2Vl ZGVkIGF0IDE1MzMgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxNTU0IChv ZmZzZXQgMSBsaW5lKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDE3MzEgKG9mZnNldCA0IGxpbmVz KS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDE3NTQgKG9mZnNldCA0IGxpbmVzKS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvYXRsYW50aWMvYXRsX2V0aGRldi5oLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9yeHR4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvYXZwL2F2cF9ldGhkZXYuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxOTk3IChvZmZz ZXQgLTEgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAyMTM5IChvZmZzZXQgLTEgbGluZXMp LgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyMTkwIChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICM0IHN1 Y2NlZWRlZCBhdCAyMjA0IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAy MjE1IChvZmZzZXQgLTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9h eGdiZV9kZXYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9heGdiZV9ldGhk ZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXJ0ZV9iaXRfcmVsYXhlZF9jbGVh cjMyKEFYR0JFX0RPV04sICZwZGF0YS0+ZGV2X3N0YXRlKTsKCgltYXhfcGt0X2xlbiA9IGRldl9k YXRhLT5tdHUgKyBSVEVfRVRIRVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOOwoJaWYgKChk ZXZfZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRF UikgfHwKCQkJCW1heF9wa3RfbGVuID4gcGRhdGEtPnJ4X2J1Zl9zaXplKQoJCWRldl9kYXRhLT5z Y2F0dGVyZWRfcnggPSAxOwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2F4Z2Jl L2F4Z2JlX2V0aGRldi5jOjM4NQpIdW5rICM0IHN1Y2NlZWRlZCBhdCA1MTkgKG9mZnNldCAtMiBs aW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDU1MCAob2Zmc2V0IC0yIGxpbmVzKS4KSHVuayAj NiBzdWNjZWVkZWQgYXQgNTg4IChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBh dCA3NjMgKG9mZnNldCAtMiBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2 X2luZm8tPm1heF9yeF9wa3RsZW4gPSBBWEdCRV9SWF9NQVhfQlVGX1NJWkU7CglkZXZfaW5mby0+ bWF4X21hY19hZGRycyA9IHBkYXRhLT5od19mZWF0LmFkZG5fbWFjICsgMTsKCWRldl9pbmZvLT5t YXhfaGFzaF9tYWNfYWRkcnMgPSBwZGF0YS0+aHdfZmVhdC5oYXNoX3RhYmxlX3NpemU7CglkZXZf aW5mby0+c3BlZWRfY2FwYSA9ICBFVEhfTElOS19TUEVFRF8xMEc7CgoJZGV2X2luZm8tPnJ4X29m ZmxvYWRfY2FwYSA9CgkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJREVWX1JYX09GRkxP QURfVkxBTl9GSUxURVIgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKCQlERVZfUlhf T0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gIHwKCQlERVZf UlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCSAgfAoJCURF Vl9SWF9PRkZMT0FEX0tFRVBfQ1JDOwoKCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPQoJCURF Vl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8 CgkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSAgfAoJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NV TSAgIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU07CgoJaWYgKHBkYXRhLT5od19mZWF0LnJz cykgewoJCWRldl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gQVhHQkVfUlNTX09GRkxP QUQ7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9heGdiZS9heGdiZV9ldGhkZXYu YzoxMjA4Ckh1bmsgIzkgc3VjY2VlZGVkIGF0IDEyNjEgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsg IzEwIHN1Y2NlZWRlZCBhdCAxMjk3IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVk ZWQgYXQgMTM4NSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDE4NDIg KG9mZnNldCAxMiBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAxODYwIChvZmZzZXQgMTIg bGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTg3OCAob2Zmc2V0IDEyIGxpbmVzKS4KSHVu ayAjMTUgc3VjY2VlZGVkIGF0IDE5MTYgKG9mZnNldCAxMiBsaW5lcykuCkh1bmsgIzE2IHN1Y2Nl ZWRlZCBhdCAxOTI3IChvZmZzZXQgMTIgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgMTkz OCAob2Zmc2V0IDEyIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhn YmVfZXRoZGV2LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfbWRp by5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F4Z2JlL2F4Z2JlX3J4dHguYy4uLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibngyeC9ibngyeF9ldGhkZXYuYy4uLgpIdW5rICMy IHN1Y2NlZWRlZCBhdCA0MTIgKG9mZnNldCA0IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSBCTlgyWF9NSU5fUlhfQlVGX1NJWkU7 CglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiAgPSBCTlgyWF9NQVhfUlhfUEtUX0xFTjsKCWRldl9p bmZvLT5tYXhfbWFjX2FkZHJzICA9IEJOWDJYX01BWF9NQUNfQUREUlM7CglkZXZfaW5mby0+c3Bl ZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzEwRyB8IEVUSF9MSU5LX1NQRUVEXzIwRzsKCglkZXZf aW5mby0+cnhfZGVzY19saW0ubmJfbWF4ID0gTUFYX1JYX0FWQUlMOwoJZGV2X2luZm8tPnJ4X2Rl c2NfbGltLm5iX21pbiA9IE1JTl9SWF9TSVpFX05PTlRQQTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L2JueDJ4L2JueDJ4X2V0aGRldi5jOjUzNApIdW5rICM0IHN1Y2NlZWRlZCBh dCA2NzUgKG9mZnNldCA2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9i bnh0LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgQk5YVF9GV19TVEFU VVNfU0hVVERPV04JCTB4MTAwMDAwCgojZGVmaW5lIEJOWFRfRVRIX1JTU19TVVBQT1JUICgJXAoJ RVRIX1JTU19JUFY0IHwJCVwKCUVUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8CVwKCUVUSF9SU1Nf Tk9ORlJBR19JUFY0X1VEUCB8CVwKCUVUSF9SU1NfSVBWNiB8CQlcCglFVEhfUlNTX05PTkZSQUdf SVBWNl9UQ1AgfAlcCglFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfAlcCglFVEhfUlNTX0xFVkVM X01BU0spCgojZGVmaW5lIEJOWFRfREVWX1RYX09GRkxPQURfU1VQUE9SVCAoREVWX1RYX09GRkxP QURfSVBWNF9DS1NVTSB8IFwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwgXAoJ CQkJICAgICBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCgkJCQkgICAgIERFVl9UWF9PRkZM T0FEX1RDUF9UU08gfCBcCgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0g fCBcCgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfCBcCgkJCQkgICAgIERF Vl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwgXAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9JUElQ X1ROTF9UU08gfCBcCgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwgXAoJ CQkJICAgICBERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8IFwKCQkJCSAgICAgREVWX1RYX09G RkxPQURfTVVMVElfU0VHUykKCiNkZWZpbmUgQk5YVF9ERVZfUlhfT0ZGTE9BRF9TVVBQT1JUIChE RVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfSVBW NF9DS1NVTSB8IFwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwgXAoJCQkJICAg ICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX09V VEVSX0lQVjRfQ0tTVU0gfCBcCgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NV TSB8IFwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfS0VFUF9DUkMgfCBcCgkJCQkgICAgIERFVl9S WF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwgXAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJP IHwgXAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwgXAoJCQkJICAgICBERVZfUlhf T0ZGTE9BRF9SU1NfSEFTSCkKCiNkZWZpbmUgQk5YVF9IV1JNX1NIT1JUX1JFUV9MRU4JCXNpemVv ZihzdHJ1Y3QgaHdybV9zaG9ydF9pbnB1dCkKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9ibnh0L2JueHQuaDo1NjkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0 X2V0aGRldi5jLi4uCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDQ5OSAob2Zmc2V0IDYgbGluZXMpLgpI dW5rICM0IHN1Y2NlZWRlZCBhdCA5MjQgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRl ZCBhdCA5OTYgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxMDUwIChvZmZz ZXQgMSBsaW5lKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkgICAgKHVpbnQzMl90KShl dGhfZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXMpID4gYnAtPm1heF9yaW5nX2dycHMpCgkJZ290byBy ZXNvdXJjZV9lcnJvcjsKCglpZiAoIShldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXFf bW9kZSAmIEVUSF9NUV9SWF9SU1MpICYmCgkgICAgYnAtPm1heF92bmljcyA8IGV0aF9kZXYtPmRh dGEtPm5iX3J4X3F1ZXVlcykKCQlnb3RvIHJlc291cmNlX2Vycm9yOwoKCWJwLT5yeF9jcF9ucl9y aW5ncyA9IGJwLT5yeF9ucl9yaW5nczsKCWJwLT50eF9jcF9ucl9yaW5ncyA9IGJwLT50eF9ucl9y aW5nczsKCglpZiAoZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBFVEhf TVFfUlhfUlNTX0ZMQUcpCgkJcnhfb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfUlNTX0hBU0g7 CglldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgPSByeF9vZmZsb2FkczsK Cglibnh0X210dV9zZXRfb3AoZXRoX2RldiwgZXRoX2Rldi0+ZGF0YS0+bXR1KTsKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYzoxMTQ1Ckh1bmsgIzgg c3VjY2VlZGVkIGF0IDExODggKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQg MTIwNCAob2Zmc2V0IDUgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAqIGEg bGltaXRlZCBzdWJzZXQgaGF2ZSBiZWVuIGVuYWJsZWQuCgkgKi8KCWlmIChldGhfZGV2LT5kYXRh LT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJgoJCX4oREVWX1JYX09GRkxPQURfVkxBTl9TVFJJ UCB8CgkJICBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8CgkJICBERVZfUlhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwKCQkgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJICBERVZfUlhfT0ZGTE9B RF9UQ1BfQ0tTVU0gfAoJCSAgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJICBE RVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAoJCSAgREVWX1JYX09GRkxPQURfUlNTX0hB U0ggfAoJCSAgREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIpKQoJCWdvdG8gdXNlX3NjYWxhcl9y eDsKCiNpZiBkZWZpbmVkKFJURV9BUkNIX1g4NikgJiYgZGVmaW5lZChDQ19BVlgyX1NVUFBPUlQp CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9ibnh0L2JueHRfZXRoZGV2LmM6MTI0 NwpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMTMxMyAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxMiBz dWNjZWVkZWQgYXQgMTYxNCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQg MTgzOSAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMjAzNCAob2Zmc2V0 IDYgbGluZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMjA0NyAob2Zmc2V0IDYgbGluZXMpLgpI dW5rICMxNiBzdWNjZWVkZWQgYXQgMjEwMSAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxNyBzdWNj ZWVkZWQgYXQgMjE0MCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMjE1 OCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgMjIwMyAob2Zmc2V0IDYg bGluZXMpLgpIdW5rICMyMCBzdWNjZWVkZWQgYXQgMjI2NiAob2Zmc2V0IDYgbGluZXMpLgpIdW5r ICMyMSBzdWNjZWVkZWQgYXQgMjI5OSAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMyMiBzdWNjZWVk ZWQgYXQgMjMxNCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgMjMyNSAo b2Zmc2V0IDYgbGluZXMpLgpIdW5rICMyNCBzdWNjZWVkZWQgYXQgMjM1NiAob2Zmc2V0IDYgbGlu ZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgMjM3MCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMy NiBzdWNjZWVkZWQgYXQgMjQxOSAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMyNyBzdWNjZWVkZWQg YXQgMjQzNiAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgMjYxNCAob2Zm c2V0IDYgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgMjYzNCAob2Zmc2V0IDYgbGluZXMp LgpIdW5rICMzMCBzdWNjZWVkZWQgYXQgMjY0NyAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMzMSBz dWNjZWVkZWQgYXQgMjY4NiAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMzMiBzdWNjZWVkZWQgYXQg MjcwNCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMzMyBzdWNjZWVkZWQgYXQgMjcyNCAob2Zmc2V0 IDYgbGluZXMpLgpIdW5rICMzNCBzdWNjZWVkZWQgYXQgMjc1NCAob2Zmc2V0IDYgbGluZXMpLgpI dW5rICMzNSBzdWNjZWVkZWQgYXQgMjc2OSAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMzNiBzdWNj ZWVkZWQgYXQgMjc5NyAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMzNyBzdWNjZWVkZWQgYXQgMjgz NyAob2Zmc2V0IDYgbGluZXMpLgouZ2l0L3JlYmFzZS1hcHBseS9wYXRjaDo0NjM3OiBuZXcgYmxh bmsgbGluZSBhdCBFT0YuCisKSHVuayAjMzggc3VjY2VlZGVkIGF0IDY1NjggKG9mZnNldCAxMiBs aW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9mbG93LmMuLi4KSHVu ayAjMSBzdWNjZWVkZWQgYXQgOTc0IChvZmZzZXQgLTQgbGluZXMpLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCX0KCgkvKiBJZiBSU1MgdHlwZXMgaXMgMCwgdXNlIGEgYmVzdCBlZmZvcnQg Y29uZmlndXJhdGlvbiAqLwoJdHlwZXMgPSByc3MtPnR5cGVzID8gcnNzLT50eXBlcyA6IEVUSF9S U1NfSVBWNDsKCgloYXNoX3R5cGUgPSBibnh0X3J0ZV90b19od3JtX2hhc2hfdHlwZXModHlwZXMp OwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9mbG93LmM6MTE3 NwpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxMTU3IChvZmZzZXQgLTE2NSBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMuLi4KSHVuayAjMiBzdWNjZWVkZWQg YXQgMjk3MCAob2Zmc2V0IC05IGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMjk5MiAob2Zm c2V0IC05IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMzA0OSAob2Zmc2V0IC05IGxpbmVz KS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMzA2MiAob2Zmc2V0IC05IGxpbmVzKS4KSHVuayAjNiBz dWNjZWVkZWQgYXQgMzA5OCAob2Zmc2V0IC05IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQg MzE3NSAob2Zmc2V0IC05IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMzIxMyAob2Zmc2V0 IC05IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMzI0NCAob2Zmc2V0IC05IGxpbmVzKS4K SHVuayAjMTAgc3VjY2VlZGVkIGF0IDMzMzUgKG9mZnNldCAtOSBsaW5lcykuCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yZXBzLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQg NTM2IChvZmZzZXQgLTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2Ju eHRfcmluZy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQlyeF9yaW5nX2luZm8t PnJ4X3Jpbmdfc3RydWN0LT5yaW5nX3NpemUgKgoJCQlBR0dfUklOR19TSVpFX0ZBQ1RPUikpIDog MDsKCgkJaWYgKHJ4X3JpbmdfaW5mbyAmJiAocnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9U Q1BfTFJPKSkgewoJCQlpbnQgdHBhX21heCA9IEJOWFRfVFBBX01BWF9BR0dTKGJwKTsKCgkJCXRw YV9pbmZvX2xlbiA9IHRwYV9tYXggKiBzaXplb2Yoc3RydWN0IGJueHRfdHBhX2luZm8pOwoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYm54dC9ibnh0X3JpbmcuYzoxODcKZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJICAgIGFnX2JpdG1hcF9zdGFydCwgYWdfYml0bWFw X2xlbik7CgoJCQkvKiBUUEEgaW5mbyAqLwoJCQlpZiAocnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZG TE9BRF9UQ1BfTFJPKQoJCQkJcnhfcmluZ19pbmZvLT50cGFfaW5mbyA9CgkJCQkJKChzdHJ1Y3Qg Ym54dF90cGFfaW5mbyAqKQoJCQkJCSAoKGNoYXIgKiltei0+YWRkciArIHRwYV9pbmZvX3N0YXJ0 KSk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9ibnh0L2JueHRfcmluZy5jOjI4 MwpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcnhxLmMuLi4KSHVuayAjMSBz dWNjZWVkZWQgYXQgNDEgKG9mZnNldCAtMTEgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA1 NSAob2Zmc2V0IC0xMSBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDEwMCAob2Zmc2V0IC0x MSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDExMCAob2Zmc2V0IC0xMSBsaW5lcykuCkh1 bmsgIzUgc3VjY2VlZGVkIGF0IDEzNiAob2Zmc2V0IC0xMSBsaW5lcykuCkh1bmsgIzYgc3VjY2Vl ZGVkIGF0IDM0MSAob2Zmc2V0IC0yMiBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDQ1NiAo b2Zmc2V0IC0yMiBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDUyNyAob2Zmc2V0IC0yMiBs aW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yeHIuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcnh0eF92ZWNfYXZ4Mi5jLi4uCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yeHR4X3ZlY19jb21tb24uaC4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcnh0eF92ZWNfbmVvbi5jLi4uCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yeHR4X3ZlY19zc2UuYy4uLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfdHhyLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvYm54dC9ibnh0X3ZuaWMuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9i bnh0L3J0ZV9wbWRfYm54dC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JvbmRpbmcv ZXRoX2JvbmRfcHJpdmF0ZS5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JvbmRpbmcv cnRlX2V0aF9ib25kXzgwMjNhZC5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDg2NiAob2Zmc2V0 IC0yMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9i b25kX2FwaS5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDU4NiAob2Zmc2V0IC02IGxpbmVzKS4K SHVuayAjMyBzdWNjZWVkZWQgYXQgNzIxIChvZmZzZXQgLTYgbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9wbWQuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQlzbGF2ZV9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5pbnRyX2NvbmYu bHNjID0gMTsKCgkvKiBJZiBSU1MgaXMgZW5hYmxlZCBmb3IgYm9uZGluZywgdHJ5IHRvIGVuYWJs ZSBpdCBmb3Igc2xhdmVzICAqLwoJaWYgKGJvbmRlZF9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5y eG1vZGUubXFfbW9kZSAmIEVUSF9NUV9SWF9SU1NfRkxBRykgewoJCS8qIHJzc19rZXkgd29uJ3Qg YmUgZW1wdHkgaWYgUlNTIGlzIGNvbmZpZ3VyZWQgaW4gYm9uZGVkIGRldiAqLwoJCXNsYXZlX2V0 aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19rZXlfbGVuID0K CQkJCQlpbnRlcm5hbHMtPnJzc19rZXlfbGVuOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfcG1kLmM6MTcwMAplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCX0KCglpZiAoYm9uZGVkX2V0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5v ZmZsb2FkcyAmCgkJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKQoJCXNsYXZlX2V0aF9kZXYt PmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PQoJCQkJREVWX1JYX09GRkxPQURfVkxB Tl9GSUxURVI7CgllbHNlCgkJc2xhdmVfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9m ZmxvYWRzICY9CgkJCQl+REVWX1JYX09GRkxPQURfVkxBTl9GSUxURVI7CgoJc2xhdmVfZXRoX2Rl di0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm10dSA9CgkJCWJvbmRlZF9ldGhfZGV2LT5kYXRhLT5k ZXZfY29uZi5yeG1vZGUubXR1OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYm9u ZGluZy9ydGVfZXRoX2JvbmRfcG1kLmM6MTcxNApIdW5rICM0IHN1Y2NlZWRlZCBhdCAxODM0IChv ZmZzZXQgMTEgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxOTU3IChvZmZzZXQgMTEgbGlu ZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAyMDk3IChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICM3 IHN1Y2NlZWRlZCBhdCAyNDI2IChvZmZzZXQgMTAgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBh dCAyNDU5IChvZmZzZXQgMTAgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAyNTAxIChvZmZz ZXQgMTAgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMjg3NSAob2Zmc2V0IDEwIGxpbmVz KS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDI4OTEgKG9mZnNldCAxMCBsaW5lcykuCkh1bmsgIzEy IHN1Y2NlZWRlZCBhdCAyOTgzIChvZmZzZXQgMTAgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQg YXQgMzAyMSAob2Zmc2V0IDEwIGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDMyODIgKG9m ZnNldCA4IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkgKiBzZXQga2V5IHRv IHRoZSB0aGUgdmFsdWUgc3BlY2lmaWVkIGluIHBvcnQgUlNTIGNvbmZpZ3VyYXRpb24uCgkgKiBG YWxsIGJhY2sgdG8gZGVmYXVsdCBSU1Mga2V5IGlmIHRoZSBrZXkgaXMgbm90IHNwZWNpZmllZAoJ ICovCglpZiAoZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSAmIEVUSF9NUV9SWF9S U1MpIHsKCQlzdHJ1Y3QgcnRlX2V0aF9yc3NfY29uZiAqcnNzX2NvbmYgPQoJCQkmZGV2LT5kYXRh LT5kZXZfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZjsKCQlpZiAocnNzX2NvbmYtPnJzc19rZXkg IT0gTlVMTCkgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYm9uZGluZy9ydGVf ZXRoX2JvbmRfcG1kLmM6MzUwMQpIdW5rICMxNiBzdWNjZWVkZWQgYXQgMzUyNCAob2Zmc2V0IC0y IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbjEwa19ldGhkZXYuYy4u LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NuMTBrX3J4LmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbjEwa190eC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2NueGsvY245a19ldGhkZXYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9j bnhrL2NuOWtfcnguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NuOWtfdHgu Yy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2LmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglidWZmc3ogPSBtYnBfcHJpdi0+bWJ1Zl9kYXRhX3Jv b21fc2l6ZSAtIFJURV9QS1RNQlVGX0hFQURST09NOwoKCWlmIChldGhfZGV2LT5kYXRhLT5tdHUg KyAodWludDMyX3QpQ05YS19OSVhfTDJfT1ZFUkhFQUQgPiBidWZmc3opIHsKCQlkZXYtPnJ4X29m ZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgkJZGV2LT50eF9vZmZsb2FkcyB8PSBE RVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwoJfQp9CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvY254ay9jbnhrX2V0aGRldi5jOjIxMApIdW5rICMxMCBzdWNjZWVkZWQgYXQgMjQ2 IChvZmZzZXQgNSBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAyNTQgKG9mZnNldCA1IGxp bmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDI3OCAob2Zmc2V0IDUgbGluZXMpLgpIdW5rICMx MyBzdWNjZWVkZWQgYXQgMzI1IChvZmZzZXQgNSBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBh dCAzNTMgKG9mZnNldCA1IGxpbmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0IDQ3MiAob2Zmc2V0 IDUgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQgYXQgNTM0IChvZmZzZXQgNSBsaW5lcykuCkh1 bmsgIzE3IHN1Y2NlZWRlZCBhdCA1NTIgKG9mZnNldCA1IGxpbmVzKS4KSHVuayAjMTggc3VjY2Vl ZGVkIGF0IDU5MSAob2Zmc2V0IDUgbGluZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgNjMwIChv ZmZzZXQgNSBsaW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCA2NTYgKG9mZnNldCA1IGxpbmVz KS4KSHVuayAjMjEgc3VjY2VlZGVkIGF0IDcwOSAob2Zmc2V0IDUgbGluZXMpLgpIdW5rICMyMiBz dWNjZWVkZWQgYXQgOTIxIChvZmZzZXQgNSBsaW5lcykuCkh1bmsgIzIzIHN1Y2NlZWRlZCBhdCA5 NzAgKG9mZnNldCA1IGxpbmVzKS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDEwMTIgKG9mZnNldCA1 IGxpbmVzKS4KSHVuayAjMjUgc3VjY2VlZGVkIGF0IDEwMjAgKG9mZnNldCA1IGxpbmVzKS4KSHVu ayAjMjYgc3VjY2VlZGVkIGF0IDE0MDYgKG9mZnNldCA1IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRldi5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJIENOWEtfTklYX1RYX05CX1NFR19NQVgpCgojZGVmaW5lIENOWEtfTklYX1JTU19MM19M NF9TUkNfRFNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJ KEVUSF9SU1NfTDNfU1JDX09OTFkgfCBFVEhfUlNTX0wzX0RTVF9PTkxZIHwgRVRIX1JTU19MNF9T UkNfT05MWSB8ICAgICBcCgkgRVRIX1JTU19MNF9EU1RfT05MWSkKCiNkZWZpbmUgQ05YS19OSVhf UlNTX09GRkxPQUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCgkoRVRIX1JTU19QT1JUIHwgRVRIX1JTU19JUCB8IEVUSF9SU1NfVURQIHwgRVRIX1JT U19UQ1AgfCAgICAgICAgICAgICAgIFwKCSBFVEhfUlNTX1NDVFAgfCBFVEhfUlNTX1RVTk5FTCB8 IEVUSF9SU1NfTDJfUEFZTE9BRCB8ICAgICAgICAgICAgICAgICAgXAoJIENOWEtfTklYX1JTU19M M19MNF9TUkNfRFNUIHwgRVRIX1JTU19MRVZFTF9NQVNLIHwgRVRIX1JTU19DX1ZMQU4pCgojZGVm aW5lIENOWEtfTklYX1RYX09GRkxPQURfQ0FQQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAoJKERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFIHwgREVW X1RYX09GRkxPQURfTVRfTE9DS0ZSRUUgfCAgICAgICAgICBcCgkgREVWX1RYX09GRkxPQURfVkxB Tl9JTlNFUlQgfCBERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8ICAgICAgICAgICAgIFwKCSBE RVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgREVWX1RYX09GRkxPQURfT1VURVJfVURQ X0NLU1VNIHwgICAgXAoJIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8IERFVl9UWF9PRkZMT0FE X1VEUF9DS1NVTSB8ICAgICAgICAgICAgICAgICBcCgkgREVWX1RYX09GRkxPQURfU0NUUF9DS1NV TSB8IERFVl9UWF9PRkZMT0FEX1RDUF9UU08gfCAgICAgICAgICAgICAgICAgIFwKCSBERVZfVFhf T0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwgREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfCAg ICAgICAgXAoJIERFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwgREVWX1RYX09GRkxPQURfTVVM VElfU0VHUyB8ICAgICAgICAgICAgICBcCgkgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8IERF Vl9UWF9PRkZMT0FEX1NFQ1VSSVRZKQoKI2RlZmluZSBDTlhLX05JWF9SWF9PRkZMT0FEX0NBUEEg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCShERVZfUlhf T0ZGTE9BRF9DSEVDS1NVTSB8IERFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfCAgICAgICAgICAg ICAgICAgXAoJIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSIHwgICAgICAgICAgICBcCgkgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VN IHwgREVWX1JYX09GRkxPQURfUlNTX0hBU0ggfCAgICAgICAgICAgIFwKCSBERVZfUlhfT0ZGTE9B RF9USU1FU1RBTVAgfCBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwgICAgICAgICAgICAgICAg XAoJIERFVl9SWF9PRkZMT0FEX1NFQ1VSSVRZKQoKI2RlZmluZSBSU1NfSVBWNF9FTkFCTEUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCShF VEhfUlNTX0lQVjQgfCBFVEhfUlNTX0ZSQUdfSVBWNCB8IEVUSF9SU1NfTk9ORlJBR19JUFY0X1VE UCB8ICAgICAgICAgXAoJIEVUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8IEVUSF9SU1NfTk9ORlJB R19JUFY0X1NDVFApCgojZGVmaW5lIFJTU19JUFY2X0VOQUJMRSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJKEVUSF9SU1NfSVBWNiB8IEVU SF9SU1NfRlJBR19JUFY2IHwgRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwgICAgICAgICBcCgkg RVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgRVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUCkKCiNk ZWZpbmUgUlNTX0lQVjZfRVhfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCgkoRVRIX1JTU19JUFY2X0VYIHwgRVRIX1JTU19JUFY2X1RD UF9FWCB8IEVUSF9SU1NfSVBWNl9VRFBfRVgpCgojZGVmaW5lIFJTU19NQVhfTEVWRUxTIDMKCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2Lmg6NTcKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRldl9kZXZhcmdzLmMuLi4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRldl9vcHMuYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCQl1aW50NjRfdCBmbGFnczsKCQljb25zdCBjaGFyICpvdXRw dXQ7Cgl9IHJ4X29mZmxvYWRfbWFwW10gPSB7CgkJe0RFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAs ICIgVkxBTiBTdHJpcCwifSwKCQl7REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSwgIiBJbm5lciBJ UHY0IENoZWNrc3VtLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0sICIgVURQIENoZWNr c3VtLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0sICIgVENQIENoZWNrc3VtLCJ9LAoJ CXtERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPLCAiIFRDUCBMUk8sIn0sCgkJe0RFVl9SWF9PRkZMT0FE X1FJTlFfU1RSSVAsICIgUWluUSBWTEFOIFN0cmlwLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9PVVRF Ul9JUFY0X0NLU1VNLCAiIE91dGVyIElQdjQgQ2hlY2tzdW0sIn0sCgkJe0RFVl9SWF9PRkZMT0FE X01BQ1NFQ19TVFJJUCwgIiBNQUNzZWMgU3RyaXAsIn0sCgkJe0RFVl9SWF9PRkZMT0FEX0hFQURF Ul9TUExJVCwgIiBIZWFkZXIgU3BsaXQsIn0sCgkJe0RFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVS LCAiIFZMQU4gRmlsdGVyLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCwgIiBWTEFO IEV4dGVuZCwifSwKCQl7REVWX1JYX09GRkxPQURfU0NBVFRFUiwgIiBTY2F0dGVyZWQsIn0sCgkJ e0RFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUCwgIiBUaW1lc3RhbXAsIn0sCgkJe0RFVl9SWF9PRkZM T0FEX1NFQ1VSSVRZLCAiIFNlY3VyaXR5LCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQywg IiBLZWVwIENSQywifSwKCQl7REVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSwgIiBTQ1RQLCJ9LAoJ CXtERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0sICIgT3V0ZXIgVURQIENoZWNrc3VtLCJ9 LAoJCXtERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCwgIiBSU1MsIn0KCX07CglzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgYnVyc3RfbW9kZVtdID0geyJWZWN0b3IgTmVvbiwgUnggT2ZmbG9hZHM6IiwK CQkJCQkJICJTY2FsYXIsIFJ4IE9mZmxvYWRzOiIKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L2NueGsvY254a19ldGhkZXZfb3BzLmM6ODEKSHVuayAjMiBzdWNjZWVkZWQgYXQgMTQz IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMjA0IChvZmZzZXQgMSBsaW5l KS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMjY1IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNSBzdWNj ZWVkZWQgYXQgNDA5IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgNzQ2IChv ZmZzZXQgMTIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA3ODIgKG9mZnNldCAxMiBsaW5l cykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDgxNiAob2Zmc2V0IDEyIGxpbmVzKS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbnhrX2xpbmsuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9jbnhrL2NueGtfcHRwLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254 ay9jbnhrX3J0ZV9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY3hnYmUvY3hn YmUuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2RlZmluZSBDWEdCRV9MSU5LX1NU QVRVU19QT0xMX0NOVCAxMDAgLyogTWF4IG51bWJlciBvZiB0aW1lcyB0byBwb2xsICovCgojZGVm aW5lIENYR0JFX0RFRkFVTFRfUlNTX0tFWV9MRU4gICAgIDQwIC8qIDMyMC1iaXRzICovCiNkZWZp bmUgQ1hHQkVfUlNTX0hGX0lQVjRfTUFTSyAoRVRIX1JTU19JUFY0IHwgRVRIX1JTU19GUkFHX0lQ VjQgfCBcCgkJCQlFVEhfUlNTX05PTkZSQUdfSVBWNF9PVEhFUikKI2RlZmluZSBDWEdCRV9SU1Nf SEZfSVBWNl9NQVNLIChFVEhfUlNTX0lQVjYgfCBFVEhfUlNTX0ZSQUdfSVBWNiB8IFwKCQkJCUVU SF9SU1NfTk9ORlJBR19JUFY2X09USEVSIHwgXAoJCQkJRVRIX1JTU19JUFY2X0VYKQojZGVmaW5l IENYR0JFX1JTU19IRl9UQ1BfSVBWNl9NQVNLIChFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBc CgkJCQkgICAgRVRIX1JTU19JUFY2X1RDUF9FWCkKI2RlZmluZSBDWEdCRV9SU1NfSEZfVURQX0lQ VjZfTUFTSyAoRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwgXAoJCQkJICAgIEVUSF9SU1NfSVBW Nl9VRFBfRVgpCiNkZWZpbmUgQ1hHQkVfUlNTX0hGX0FMTCAoRVRIX1JTU19JUCB8IEVUSF9SU1Nf VENQIHwgRVRIX1JTU19VRFApCgovKiBUeC9SeCBPZmZsb2FkcyBzdXBwb3J0ZWQgKi8KI2RlZmlu ZSBDWEdCRV9UWF9PRkZMT0FEUyAoREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfCBcCgkJCSAg IERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCgkJCSAgIERFVl9UWF9PRkZMT0FEX1VEUF9D S1NVTSB8IFwKCQkJICAgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwgXAoJCQkgICBERVZfVFhf T0ZGTE9BRF9UQ1BfVFNPIHwgXAoJCQkgICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQoKI2Rl ZmluZSBDWEdCRV9SWF9PRkZMT0FEUyAoREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8IFwKCQkJ ICAgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKCQkJICAgREVWX1JYX09GRkxPQURfVURQ X0NLU1VNIHwgXAoJCQkgICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCgkJCSAgIERFVl9S WF9PRkZMT0FEX1NDQVRURVIgfCBcCgkJCSAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKQoKLyog RGV2YXJncyBmaWx0ZXJtb2RlIGFuZCBmaWx0ZXJtYXNrIHJlcHJlc2VudGF0aW9uICovCmVudW0g Y3hnYmVfZGV2YXJnc19maWx0ZXJfbW9kZV9mbGFncyB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBk cml2ZXJzL25ldC9jeGdiZS9jeGdiZS5oOjI4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2N4 Z2JlL2N4Z2JlX2V0aGRldi5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDM5NiAob2Zmc2V0IDIy IGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgNDYwIChvZmZzZXQgMjIgbGluZXMpLgpIdW5r ICM0IHN1Y2NlZWRlZCBhdCAxMTA5IChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRl ZCBhdCAxMTI4IChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxMjI5IChv ZmZzZXQgMjkgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAxMjc1IChvZmZzZXQgMjkgbGlu ZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxMzA2IChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICM5 IHN1Y2NlZWRlZCBhdCAxNTA4IChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQg YXQgMTUxNyAob2Zmc2V0IDI5IGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDE1MjYgKG9m ZnNldCAyOSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX21h aW4uYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxNjcxIChvZmZzZXQgMSBsaW5lKS4KSHVuayAj MiBzdWNjZWVkZWQgYXQgMTY5NSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMgc3VjY2VlZGVkIGF0 IDE3MjYgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAxODY2IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMTk1MyAob2Zmc2V0IDEgbGluZSkuCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCi8qIFN1cHBvcnRlZCBSeCBvZmZsb2FkcyAqLwpzdGF0aWMgdWludDY0 X3QgZGV2X3J4X29mZmxvYWRzX3N1cCA9CgkJREVWX1JYX09GRkxPQURfU0NBVFRFUjsKCi8qIFJ4 IG9mZmxvYWRzIHdoaWNoIGNhbm5vdCBiZSBkaXNhYmxlZCAqLwpzdGF0aWMgdWludDY0X3QgZGV2 X3J4X29mZmxvYWRzX25vZGlzID0KCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZf UlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVW X1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7 CgovKiBTdXBwb3J0ZWQgVHggb2ZmbG9hZHMgKi8Kc3RhdGljIHVpbnQ2NF90IGRldl90eF9vZmZs b2Fkc19zdXAgPQoJCURFVl9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFIHwKCQlERVZfVFhfT0ZGTE9B RF9NQlVGX0ZBU1RfRlJFRTsKCi8qIFR4IG9mZmxvYWRzIHdoaWNoIGNhbm5vdCBiZSBkaXNhYmxl ZCAqLwpzdGF0aWMgdWludDY0X3QgZGV2X3R4X29mZmxvYWRzX25vZGlzID0KCQlERVZfVFhfT0ZG TE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9UWF9P RkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CgkJREVWX1RY X09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsK Ci8qIEtlZXAgdHJhY2sgb2Ygd2hldGhlciBRTUFOIGFuZCBCTUFOIGhhdmUgYmVlbiBnbG9iYWxs eSBpbml0aWFsaXplZCAqLwpzdGF0aWMgaW50IGlzX2dsb2JhbF9pbml0OwoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jOjU0CmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoKCWZtYW5faWZfc2V0X21heGZybShkZXYtPnByb2Nlc3NfcHJpdmF0ZSwg bWF4X3J4X3BrdGxlbik7CgoJaWYgKHJ4X29mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRF UikgewoJCURQQUFfUE1EX0RFQlVHKCJlbmFibGluZyBzY2F0dGVyIG1vZGUiKTsKCQlmbWFuX2lm X3NldF9zZyhkZXYtPnByb2Nlc3NfcHJpdmF0ZSwgMSk7CgkJZGV2LT5kYXRhLT5zY2F0dGVyZWRf cnggPSAxOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRl di5jOjIzOApIdW5rICMzIHN1Y2NlZWRlZCBhdCAzMDQgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsg IzQgc3VjY2VlZGVkIGF0IDU1NiAob2Zmc2V0IDIxIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkJdWludDY0X3QgZmxhZ3M7CgkJY29uc3QgY2hhciAqb3V0cHV0OwoJfSByeF9v ZmZsb2FkX21hcFtdID0gewoJCQl7REVWX1JYX09GRkxPQURfU0NBVFRFUiwgIiBTY2F0dGVyZWQs In0sCgkJCXtERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNLCAiIElQVjQgY3N1bSwifSwKCQkJe0RF Vl9SWF9PRkZMT0FEX1VEUF9DS1NVTSwgIiBVRFAgY3N1bSwifSwKCQkJe0RFVl9SWF9PRkZMT0FE X1RDUF9DS1NVTSwgIiBUQ1AgY3N1bSwifSwKCQkJe0RFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0sICIgT3V0ZXIgSVBWNCBjc3VtLCJ9LAoJCQl7REVWX1JYX09GRkxPQURfUlNTX0hBU0gs ICIgUlNTLCJ9Cgl9OwoKCS8qIFVwZGF0ZSBSeCBvZmZsb2FkIGluZm8gKi8KCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYuYzo1OTEKSHVuayAjNiBzdWNj ZWVkZWQgYXQgNjQ1IChvZmZzZXQgMjIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA2ODYg KG9mZnNldCAyMiBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDY5NyAob2Zmc2V0IDIyIGxp bmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpZiAobWF4X3J4X3BrdGxlbiA8PSBi dWZmc3opIHsKCQk7Cgl9IGVsc2UgaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxv YWRzICYKCQkJREVWX1JYX09GRkxPQURfU0NBVFRFUikgewoJCWlmIChtYXhfcnhfcGt0bGVuID4g YnVmZnN6ICogRFBBQV9TR1RfTUFYX0VOVFJJRVMpIHsKCQkJRFBBQV9QTURfRVJSKCJNYXhpbXVt IFJ4IHBhY2tldCBzaXplICVkIHRvbyBiaWcgdG8gZml0ICIKCQkJCSJNYXhTR2xpc3QgJWQiLAoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jOjk2MgpI dW5rICMxMCBzdWNjZWVkZWQgYXQgMTI5MiAob2Zmc2V0IDI0IGxpbmVzKS4KSHVuayAjMTEgc3Vj Y2VlZGVkIGF0IDEzMDggKG9mZnNldCAyNCBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAx MzM4IChvZmZzZXQgMjQgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMTM4NSAob2Zmc2V0 IDI0IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDE2NTAgKG9mZnNldCAyNCBsaW5lcyku CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYuaC4uLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhL2RwYWFfZmxvdy5jLi4uCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2RwYWEyL2Jhc2UvZHBhYTJfaHdfZHBuaS5jLi4uCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoKLyogU3VwcG9ydGVkIFJ4IG9mZmxvYWRzICovCnN0YXRpYyB1aW50NjRfdCBkZXZfcnhf b2ZmbG9hZHNfc3VwID0KCQlERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSB8CgkJREVWX1JYX09GRkxP QURfU0NUUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVW X1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ IHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfVElNRVNU QU1QOwoKLyogUnggb2ZmbG9hZHMgd2hpY2ggY2Fubm90IGJlIGRpc2FibGVkICovCnN0YXRpYyB1 aW50NjRfdCBkZXZfcnhfb2ZmbG9hZHNfbm9kaXMgPQoJCURFVl9SWF9PRkZMT0FEX1JTU19IQVNI IHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwoKLyogU3VwcG9ydGVkIFR4IG9mZmxvYWRzICov CnN0YXRpYyB1aW50NjRfdCBkZXZfdHhfb2ZmbG9hZHNfc3VwID0KCQlERVZfVFhfT0ZGTE9BRF9W TEFOX0lOU0VSVCB8CgkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxP QURfVURQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9UWF9PRkZM T0FEX1NDVFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURF Vl9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFIHwKCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJF RTsKCi8qIFR4IG9mZmxvYWRzIHdoaWNoIGNhbm5vdCBiZSBkaXNhYmxlZCAqLwpzdGF0aWMgdWlu dDY0X3QgZGV2X3R4X29mZmxvYWRzX25vZGlzID0KCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT OwoKLyogZW5hYmxlIHRpbWVzdGFtcCBpbiBtYnVmICovCmJvb2wgZHBhYTJfZW5hYmxlX3RzW1JU RV9NQVhfRVRIUE9SVFNdOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZHBhYTIv ZHBhYTJfZXRoZGV2LmM6MzgKSHVuayAjMiBzdWNjZWVkZWQgYXQgMTQzIChvZmZzZXQgMSBsaW5l KS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTUxIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNCBzdWNj ZWVkZWQgYXQgMjUyIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMjcxIChv ZmZzZXQgMSBsaW5lKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJdWludDY0X3QgZmxh Z3M7CgkJY29uc3QgY2hhciAqb3V0cHV0OwoJfSByeF9vZmZsb2FkX21hcFtdID0gewoJCQl7REVW X1JYX09GRkxPQURfQ0hFQ0tTVU0sICIgQ2hlY2tzdW0sIn0sCgkJCXtERVZfUlhfT0ZGTE9BRF9T Q1RQX0NLU1VNLCAiIFNDVFAgY3N1bSwifSwKCQkJe0RFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0sICIgT3V0ZXIgSVBWNCBjc3VtLCJ9LAoJCQl7REVWX1JYX09GRkxPQURfT1VURVJfVURQ X0NLU1VNLCAiIE91dGVyIFVEUCBjc3VtLCJ9LAoJCQl7REVWX1JYX09GRkxPQURfVkxBTl9TVFJJ UCwgIiBWTEFOIHN0cmlwLCJ9LAoJCQl7REVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIsICIgVkxB TiBmaWx0ZXIsIn0sCgkJCXtERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAsICIgVGltZXN0YW1wLCJ9 LAoJCQl7REVWX1JYX09GRkxPQURfUlNTX0hBU0gsICIgUlNTLCJ9LAoJCQl7REVWX1JYX09GRkxP QURfU0NBVFRFUiwgIiBTY2F0dGVyZWQsIn0KCX07CgoJLyogVXBkYXRlIFJ4IG9mZmxvYWQgaW5m byAqLwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJfZXRoZGV2 LmM6MjkxCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDMyOCAob2Zmc2V0IDIgbGluZXMpLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLTE7Cgl9CgoJaWYgKGV0aF9jb25mLT5yeG1v ZGUubXFfbW9kZSA9PSBFVEhfTVFfUlhfUlNTKSB7CgkJZm9yICh0Y19pbmRleCA9IDA7IHRjX2lu ZGV4IDwgcHJpdi0+bnVtX3J4X3RjOyB0Y19pbmRleCsrKSB7CgkJCXJldCA9IGRwYWEyX3NldHVw X2Zsb3dfZGlzdChkZXYsCgkJCQkJZXRoX2NvbmYtPnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19o ZiwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5j OjU3MwpIdW5rICM5IHN1Y2NlZWRlZCBhdCA1OTQgKG9mZnNldCA3IGxpbmVzKS4KSHVuayAjMTAg c3VjY2VlZGVkIGF0IDYxNyAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQg NjMwIChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCA2NjcgKG9mZnNldCA3 IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDE4NzcgKG9mZnNldCAyMSBsaW5lcykuCkh1 bmsgIzE0IHN1Y2NlZWRlZCBhdCAxODg5IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICMxNSBzdWNj ZWVkZWQgYXQgMjA1MiAob2Zmc2V0IDIxIGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDIw NjQgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAyMTEwIChvZmZzZXQg MjEgbGluZXMpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMjEyNSAob2Zmc2V0IDIxIGxpbmVzKS4K SHVuayAjMTkgc3VjY2VlZGVkIGF0IDIxMzMgKG9mZnNldCAyMSBsaW5lcykuCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5oLi4uCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2RwYWEyL2RwYWEyX3J4dHguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9lMTAwMC9lMTAwMF9ldGhkZXYuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAw MC9lbV9ldGhkZXYuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA1OTkgKG9mZnNldCAyIGxpbmVz KS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgNjEzIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzMgc3Vj Y2VlZGVkIGF0IDExMDQgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTE2 NCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxNDI2IChvZmZzZXQgMiBs aW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDE2MDMgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAj NyBzdWNjZWVkZWQgYXQgMTY4NSAob2Zmc2V0IDIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9lMTAwMC9lbV9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgl1 aW50NjRfdCByeF9vZmZsb2FkX2NhcGE7CgoJcnhfb2ZmbG9hZF9jYXBhID0KCQlERVZfUlhfT0ZG TE9BRF9WTEFOX1NUUklQICB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAoJCURFVl9S WF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8CgkJ REVWX1JYX09GRkxPQURfVENQX0NLU1VNICAgfAoJCURFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDICAg IHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwoKCXJldHVybiByeF9vZmZsb2FkX2NhcGE7Cn0K CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2VtX3J4dHguYzoxMzY5Ckh1 bmsgIzUgc3VjY2VlZGVkIGF0IDE0NzQgKG9mZnNldCA1IGxpbmVzKS4KSHVuayAjNiBzdWNjZWVk ZWQgYXQgMTgxMCAob2Zmc2V0IDIyIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMTg1MyAo b2Zmc2V0IDIyIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTg2NiAob2Zmc2V0IDIyIGxp bmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTg5MiAob2Zmc2V0IDIyIGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jLi4uCkh1bmsgIzEgc3VjY2Vl ZGVkIGF0IDEwNzcgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTEwMyAo b2Zmc2V0IDQgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxMTIxIChvZmZzZXQgNCBsaW5l cykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDExNTAgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjNSBz dWNjZWVkZWQgYXQgMTI5MSAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAx MzAwIChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDEzMTQgKG9mZnNldCA0 IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMjE4OSAob2Zmc2V0IDQgbGluZXMpLgpIdW5r ICM5IHN1Y2NlZWRlZCBhdCAyMjI5IChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRl ZCBhdCAyMjU1IChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAyMzAwIChv ZmZzZXQgNCBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAyNDA2IChvZmZzZXQgNCBsaW5l cykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAyNTkyIChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzE0 IHN1Y2NlZWRlZCBhdCAyNzExIChvZmZzZXQgOCBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBh dCAyODc4IChvZmZzZXQgOCBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAzMDMyIChvZmZz ZXQgOCBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAzMTA3IChvZmZzZXQgOCBsaW5lcyku Ckh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAzMjY2IChvZmZzZXQgOCBsaW5lcykuCkh1bmsgIzE5IHN1 Y2NlZWRlZCBhdCAzNTc5IChvZmZzZXQgOCBsaW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCAz NjIwIChvZmZzZXQgOCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2ln Yl9wZi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgoJaHcgPSBFMTAwMF9ERVZfUFJJVkFURV9UT19I VyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKCglyeF9vZmZsb2FkX2NhcGEgPSBERVZfUlhfT0ZG TE9BRF9WTEFOX1NUUklQICB8CgkJCSAgREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAoJCQkg IERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKCQkJICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tT VU0gICB8CgkJCSAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNICAgfAoJCQkgIERFVl9SWF9PRkZM T0FEX0tFRVBfQ1JDICAgIHwKCQkJICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSICAgICB8CgkJCSAg REVWX1JYX09GRkxPQURfUlNTX0hBU0g7CgoJaWYgKGh3LT5tYWMudHlwZSA9PSBlMTAwMF9pMzUw IHx8CgkgICAgaHctPm1hYy50eXBlID09IGUxMDAwX2kyMTAgfHwKCSAgICBody0+bWFjLnR5cGUg PT0gZTEwMDBfaTIxMSkKCQlyeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfVkxBTl9F WFRFTkQ7CgoJcmV0dXJuIHJ4X29mZmxvYWRfY2FwYTsKfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYzoxNjQwCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDE3 MzQgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxOTY4IChvZmZzZXQgMTgg bGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAyMDUwIChvZmZzZXQgMTggbGluZXMpLgpIdW5r ICM4IHN1Y2NlZWRlZCBhdCAyMTg4IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRl ZCBhdCAyMjMyIChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMjI4NiAo b2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDIzMDAgKG9mZnNldCAxOCBs aW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAyMzU2IChvZmZzZXQgMTggbGluZXMpLgpIdW5r ICMxMyBzdWNjZWVkZWQgYXQgMjM5MiAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMTQgc3VjY2Vl ZGVkIGF0IDI0NjMgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAyNTA3 IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQgYXQgMjUyNCAob2Zmc2V0IDE5 IGxpbmVzKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDI1NjQgKG9mZnNldCAxOSBsaW5lcykuCkh1 bmsgIzE4IHN1Y2NlZWRlZCBhdCAyNzYzIChvZmZzZXQgMjAgbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jLi4uCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDkx MyAob2Zmc2V0IDEyIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMTg1MiAob2Zmc2V0IDEy IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgllbmFfYXNzZXJ0X21zZyhlbmFf ZGV2ICE9IE5VTEwsICJVbmluaXRpYWxpemVkIGRldmljZVxuIik7CgoJZGV2X2luZm8tPnNwZWVk X2NhcGEgPQoJCQlFVEhfTElOS19TUEVFRF8xRyAgIHwKCQkJRVRIX0xJTktfU1BFRURfMl81RyB8 CgkJCUVUSF9MSU5LX1NQRUVEXzVHICAgfAoJCQlFVEhfTElOS19TUEVFRF8xMEcgIHwKCQkJRVRI X0xJTktfU1BFRURfMjVHICB8CgkJCUVUSF9MSU5LX1NQRUVEXzQwRyAgfAoJCQlFVEhfTElOS19T UEVFRF81MEcgIHwKCQkJRVRIX0xJTktfU1BFRURfMTAwRzsKCgkvKiBTZXQgVHggJiBSeCBmZWF0 dXJlcyBhdmFpbGFibGUgZm9yIGRldmljZSAqLwoJaWYgKGFkYXB0ZXItPm9mZmxvYWRzLnRzbzRf c3VwcG9ydGVkKQoJCXR4X2ZlYXQJfD0gREVWX1RYX09GRkxPQURfVENQX1RTTzsKCglpZiAoYWRh cHRlci0+b2ZmbG9hZHMudHhfY3N1bV9zdXBwb3J0ZWQpCgkJdHhfZmVhdCB8PSBERVZfVFhfT0ZG TE9BRF9JUFY0X0NLU1VNIHwKCQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJREVWX1RY X09GRkxPQURfVENQX0NLU1VNOwoKCWlmIChhZGFwdGVyLT5vZmZsb2Fkcy5yeF9jc3VtX3N1cHBv cnRlZCkKCQlyeF9mZWF0IHw9IERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQlERVZfUlhf T0ZGTE9BRF9VRFBfQ0tTVU0gIHwKCQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNOwoKCXR4X2Zl YXQgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCgkvKiBJbmZvcm0gZnJhbWV3b3JrIGFi b3V0IGF2YWlsYWJsZSBmZWF0dXJlcyAqLwoJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IHJ4 X2ZlYXQ7CglpZiAoYWRhcHRlci0+b2ZmbG9hZHMucnNzX2hhc2hfc3VwcG9ydGVkKQoJCWRldl9p bmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CglkZXZfaW5m by0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhID0gcnhfZmVhdDsKCWRldl9pbmZvLT50eF9vZmZsb2Fk X2NhcGEgPSB0eF9mZWF0OwoJZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IHR4X2Zl YXQ7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jOjE4 OTMKSHVuayAjOSBzdWNjZWVkZWQgYXQgMjA5OCAob2Zmc2V0IDEwIGxpbmVzKS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvZW5hL2VuYV9ldGhkZXYuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9lbmEvZW5hX3Jzcy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYg KHJldGFfc2l6ZSA9PSAwIHx8IHJldGFfY29uZiA9PSBOVUxMKQoJCXJldHVybiAtRUlOVkFMOwoK CWlmICghKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYgREVWX1JYX09GRkxP QURfUlNTX0hBU0gpKSB7CgkJUE1EX0RSVl9MT0coRVJSLAoJCQkiUlNTIHdhcyBub3QgY29uZmln dXJlZCBmb3IgdGhlIFBNRFxuIik7CgkJcmV0dXJuIC1FTk9UU1VQOwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvZW5hL2VuYV9yc3MuYzoxMzkKSHVuayAjNCBzdWNjZWVkZWQgYXQg MTU1IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMjAwIChvZmZzZXQgMSBs aW5lKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMjM2IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNyBz dWNjZWVkZWQgYXQgMjQ4IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMjY5 IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMjg1IChvZmZzZXQgMSBsaW5l KS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDMzNSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzExIHN1 Y2NlZWRlZCBhdCA1NDIgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9lbmV0Yy9lbmV0Y19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWRl dl9pbmZvLT5tYXhfdHhfcXVldWVzID0gTUFYX1RYX1JJTkdTOwoJZGV2X2luZm8tPm1heF9yeF9w a3RsZW4gPSBFTkVUQ19NQUNfTUFYRlJNX1NJWkU7CglkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBh ID0KCQkoREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJIERFVl9SWF9PRkZMT0FEX1VEUF9D S1NVTSB8CgkJIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJIERFVl9SWF9PRkZMT0FEX0tF RVBfQ1JDKTsKCglyZXR1cm4gMDsKfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQv ZW5ldGMvZW5ldGNfZXRoZGV2LmM6MjA3Ckh1bmsgIzMgc3VjY2VlZGVkIGF0IDQ2NCAob2Zmc2V0 IDEgbGluZSkuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZW5ldGNfcG9ydF93cihlbmV0 Y19odywgRU5FVENfUFRDTVNEVVIoMCksIEVORVRDX01BQ19NQVhGUk1fU0laRSk7CgllbmV0Y19w b3J0X3dyKGVuZXRjX2h3LCBFTkVUQ19QVFhNQkFSLCAyICogRU5FVENfTUFDX01BWEZSTV9TSVpF KTsKCglpZiAocnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQykgewoJCWludCBj b25maWc7CgoJCWNvbmZpZyA9IGVuZXRjX3BvcnRfcmQoZW5ldGNfaHcsIEVORVRDX1BNMF9DTURf Q0ZHKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2VuZXRjL2VuZXRjX2V0aGRl di5jOjcwNQpIdW5rICM1IHN1Y2NlZWRlZCBhdCA3MzUgKG9mZnNldCAyMiBsaW5lcykuCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuaWMvZW5pYy5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2VuaWMvZW5pY19ldGhkZXYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9l bmljL2VuaWNfbWFpbi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJbWF4X3J4X3Br dGxlbiA9IGVuaWNfbXR1X3RvX21heF9yeF9wa3RsZW4oZW5pYy0+cnRlX2Rldi0+ZGF0YS0+bXR1 KTsKCglpZiAoZW5pYy0+cnRlX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYK CSAgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CgkJZGV2X2luZm8oZW5pYywgIlJxICV1IFNj YXR0ZXIgcnggbW9kZSBlbmFibGVkXG4iLCBxdWV1ZV9pZHgpOwoJCS8qIGNlaWwoKG1heCBwa3Qg bGVuKS9tYnVmX3NpemUpICovCgkJbWJ1ZnNfcGVyX3BrdCA9IChtYXhfcnhfcGt0bGVuICsgbWJ1 Zl9zaXplIC0gMSkgLyBtYnVmX3NpemU7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9lbmljL2VuaWNfbWFpbi5jOjg1OApIdW5rICM1IHN1Y2NlZWRlZCBhdCAxMzg2IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMTQwNSAob2Zmc2V0IDEgbGluZSkuCkh1bmsg Izcgc3VjY2VlZGVkIGF0IDE3NTEgKG9mZnNldCA2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvZW5pYy9lbmljX3Jlcy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ ZW5pYy0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsKCWVuaWMtPnR4X29mZmxvYWRfY2FwYSA9 CgkJZW5pYy0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhIHwKCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9T RUdTIHwKCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CgkJREVWX1RYX09GRkxPQURfSVBW NF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9U Q1BfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9UU087CgllbmljLT5yeF9vZmZsb2FkX2Nh cGEgPQoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RS SVAgfAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1VEUF9D S1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9SU1Nf SEFTSDsKCWVuaWMtPnR4X29mZmxvYWRfbWFzayA9CgkJUEtUX1RYX0lQVjYgfAoJCVBLVF9UWF9J UFY0IHwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2VuaWMvZW5pY19yZXMuYzoy MDEKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZmFpbHNhZmUvZmFpbHNhZmUuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9pbnRyLmMuLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvZmFpbHNhZmUvZmFpbHNhZmVfb3BzLmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgkgKiBjb25maWd1cmluZyBhIHN1Yi1kZXZpY2UuCgkgKi8KCWlu Zm9zLT5yeF9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURF Vl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJ REVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPIHwKCQlE RVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX0hF QURFUl9TUExJVCB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAoJCURFVl9SWF9PRkZM T0FEX1ZMQU5fRVhURU5EIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlERVZfUlhfT0ZG TE9BRF9USU1FU1RBTVAgfAoJCURFVl9SWF9PRkZMT0FEX1NFQ1VSSVRZIHwKCQlERVZfUlhfT0ZG TE9BRF9SU1NfSEFTSDsKCglpbmZvcy0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhID0KCQlERVZfUlhf T0ZGTE9BRF9WTEFOX1NUUklQIHwKCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZf UlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVW X1JYX09GRkxPQURfVENQX0xSTyB8CgkJREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8CgkJREVW X1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfTUFDU0VDX1NU UklQIHwKCQlERVZfUlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQgfAoJCURFVl9SWF9PRkZMT0FEX1ZM QU5fRklMVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8CgkJREVWX1JYX09GRkxP QURfU0NBVFRFUiB8CgkJREVWX1JYX09GRkxPQURfVElNRVNUQU1QIHwKCQlERVZfUlhfT0ZGTE9B RF9TRUNVUklUWSB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CgoJaW5mb3MtPnR4X29mZmxv YWRfY2FwYSA9CgkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CgkJREVWX1RYX09GRkxPQURf TUJVRl9GQVNUX0ZSRUUgfAoJCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9UWF9P RkZMT0FEX1VEUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfVFhf T0ZGTE9BRF9UQ1BfVFNPOwoKCWluZm9zLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0KCQlFVEhf UlNTX0lQIHwKCQlFVEhfUlNTX1VEUCB8CgkJRVRIX1JTU19UQ1A7CglpbmZvcy0+ZGV2X2NhcGEg PQoJCVJURV9FVEhfREVWX0NBUEFfUlVOVElNRV9SWF9RVUVVRV9TRVRVUCB8CgkJUlRFX0VUSF9E RVZfQ0FQQV9SVU5USU1FX1RYX1FVRVVFX1NFVFVQOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvZmFpbHNhZmUvZmFpbHNhZmVfb3BzLmM6MTE3MgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9mbTEway9mbTEway5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ZtMTBr L2ZtMTBrX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCS8qIEl0IGFk ZHMgZHVhbCBWTEFOIGxlbmd0aCBmb3Igc3VwcG9ydGluZyBkdWFsIFZMQU4gKi8KCQlpZiAoKGRl di0+ZGF0YS0+bXR1ICsgUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTiArCgkJ CQkyICogRk0xMEtfVkxBTl9UQUdfU0laRSkgPiBidWZfc2l6ZSB8fAoJCQlyeHEtPm9mZmxvYWRz ICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikgewoJCQl1aW50MzJfdCByZWc7CgkJCWRldi0+ZGF0 YS0+c2NhdHRlcmVkX3J4ID0gMTsKCQkJcmVnID0gRk0xMEtfUkVBRF9SRUcoaHcsIEZNMTBLX1NS UkNUTChpKSk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9mbTEway9mbTEwa19l dGhkZXYuYzo3NTkKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnsKCVJURV9TRVRfVVNFRChk ZXYpOwoKCXJldHVybiAodWludDY0X3QpKERFVl9SWF9PRkZMT0FEX1NDQVRURVIpOwp9CgpzdGF0 aWMgdWludDY0X3QgZm0xMGtfZ2V0X3J4X3BvcnRfb2ZmbG9hZHNfY2FwYShzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldikKewoJUlRFX1NFVF9VU0VEKGRldik7CgoJcmV0dXJuICAodWludDY0X3QpKERF Vl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwKCQkJICAgREVWX1JYX09GRkxPQURfVkxBTl9GSUxU RVIgfAoJCQkgICBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8CgkJCSAgIERFVl9SWF9PRkZM T0FEX1VEUF9DS1NVTSAgIHwKCQkJICAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNICAgfAoJCQkg ICBERVZfUlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQgfAoJCQkgICBERVZfUlhfT0ZGTE9BRF9SU1Nf SEFTSCk7Cn0KCnN0YXRpYyBpbnQKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2Zt MTBrL2ZtMTBrX2V0aGRldi5jOjE3NjcKSHVuayAjMTQgc3VjY2VlZGVkIGF0IDE5NjYgKG9mZnNl dCAxIGxpbmUpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMjExMiAob2Zmc2V0IDEgbGluZSkuCkh1 bmsgIzE2IHN1Y2NlZWRlZCBhdCAyMTYxIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTcgc3VjY2Vl ZGVkIGF0IDIxOTkgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMjI0NCAo b2Zmc2V0IDEgbGluZSkuCkh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAyNjA3IChvZmZzZXQgMSBsaW5l KS4KSHVuayAjMjAgc3VjY2VlZGVkIGF0IDI2MjMgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9mbTEway9mbTEwa19yeHR4X3ZlYy5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2hpbmljL2Jhc2UvaGluaWNfcG1kX2h3ZGV2LmMuLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvaGluaWMvaGluaWNfcG1kX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJfQoKCWlmIChkZXYtPmRhdGEtPmRldl9j b25mLnJ4bW9kZS5tcV9tb2RlICYgRVRIX01RX1JYX1JTU19GTEFHKQoJCWRldi0+ZGF0YS0+ZGV2 X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1JTU19IQVNIOwoKCS8qIG10 dSBzaXplIGlzIDI1Nn45NjAwICovCglpZiAoSElOSUNfTVRVX1RPX1BLVExFTihkZXYtPmRhdGEt PmRldl9jb25mLnJ4bW9kZS5tdHUpIDwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L2hpbmljL2hpbmljX3BtZF9ldGhkZXYuYzozMTEKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CgoJaGluaWNfZ2V0X3NwZWVkX2NhcGEoZGV2LCAmaW5mby0+c3BlZWRfY2FwYSk7CglpbmZvLT5y eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwoJaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gREVWX1JY X09GRkxPQURfVkxBTl9TVFJJUCB8CgkJCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkJ CURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0g fAoJCQkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAoJCQkJREVWX1JYX09GRkxPQURfU0NB VFRFUiB8CgkJCQlERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPIHwKCQkJCURFVl9SWF9PRkZMT0FEX1JT U19IQVNIOwoKCWluZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CglpbmZvLT50eF9vZmZs b2FkX2NhcGEgPSBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CgkJCQlERVZfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKCQkJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCQlERVZfVFhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCQkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CgkJCQlE RVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQkJCURFVl9UWF9PRkZMT0FEX1RDUF9U U08gfAoJCQkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCglpbmZvLT5oYXNoX2tleV9zaXpl ID0gSElOSUNfUlNTX0tFWV9TSVpFOwoJaW5mby0+cmV0YV9zaXplID0gSElOSUNfUlNTX0lORElS X1NJWkU7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRf ZXRoZGV2LmM6NzMyCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDg0NyAob2Zmc2V0IDEgbGluZSkuCkh1 bmsgIzYgc3VjY2VlZGVkIGF0IDkwMiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzcgc3VjY2VlZGVk IGF0IDE2NjggKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDE2OTAgKG9m ZnNldCAxOCBsaW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDE4NzcgKG9mZnNldCAxOCBsaW5l cykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAxODk3IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMx MSBzdWNjZWVkZWQgYXQgMTk0OCAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVk IGF0IDE5NjkgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAyMDEyIChv ZmZzZXQgMTggbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMjAzMyAob2Zmc2V0IDE4IGxp bmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0IDIwNzEgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsg IzE2IHN1Y2NlZWRlZCBhdCAyMDg1IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMxNyBzdWNjZWVk ZWQgYXQgMjE1MSAob2Zmc2V0IDE4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aGluaWMvaGluaWNfcG1kX3J4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaGluaWMv aGluaWNfcG1kX3J4LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2Rj Yi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXYuYy4uLgpI dW5rICMxMiBzdWNjZWVkZWQgYXQgMjQzNSAob2Zmc2V0IDM1IGxpbmVzKS4KSHVuayAjMTMgc3Vj Y2VlZGVkIGF0IDI0OTkgKG9mZnNldCAzNSBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAy NTI4IChvZmZzZXQgMzUgbGluZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMjY0NCAob2Zmc2V0 IDQ0IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDI2NjMgKG9mZnNldCA0NCBsaW5lcyku Ckh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAyNjk0IChvZmZzZXQgNDQgbGluZXMpLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCWluZm8tPm1heF9tYWNfYWRkcnMgPSBITlMzX1VDX01BQ0FERFJf TlVNOwoJaW5mby0+bWF4X210dSA9IGluZm8tPm1heF9yeF9wa3RsZW4gLSBITlMzX0VUSF9PVkVS SEVBRDsKCWluZm8tPm1heF9scm9fcGt0X3NpemUgPSBITlMzX01BWF9MUk9fU0laRTsKCWluZm8t PnJ4X29mZmxvYWRfY2FwYSA9IChERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkJCSBERVZf UlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCQkJIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJ CQkgREVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSB8CgkJCQkgREVWX1JYX09GRkxPQURfT1VURVJf SVBWNF9DS1NVTSB8CgkJCQkgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKCQkJCSBE RVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8CgkJCQkgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8CgkJ CQkgREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJCQkgREVWX1JYX09GRkxPQURfVkxBTl9G SUxURVIgfAoJCQkJIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKCQkJCSBERVZfUlhfT0ZGTE9B RF9UQ1BfTFJPKTsKCWluZm8tPnR4X29mZmxvYWRfY2FwYSA9IChERVZfVFhfT0ZGTE9BRF9PVVRF Ul9JUFY0X0NLU1VNIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkJCSBERVZf VFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCQkJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJ CQkgREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CgkJCQkgREVWX1RYX09GRkxPQURfTVVMVElf U0VHUyB8CgkJCQkgREVWX1RYX09GRkxPQURfVENQX1RTTyB8CgkJCQkgREVWX1RYX09GRkxPQURf VlhMQU5fVE5MX1RTTyB8CgkJCQkgREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAoJCQkJIERF Vl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRSB8CgkJCQkgaG5zM190eHZsYW5fY2FwX2dldChodykpOwoKCWlmIChobnMzX2Rldl9n ZXRfc3VwcG9ydChodywgT1VURVJfVURQX0NLU1VNKSkKCQlpbmZvLT50eF9vZmZsb2FkX2NhcGEg fD0gREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNOwoKCWlmIChobnMzX2Rldl9nZXRfc3Vw cG9ydChodywgSU5ERVBfVFhSWCkpCgkJaW5mby0+ZGV2X2NhcGEgPSBSVEVfRVRIX0RFVl9DQVBB X1JVTlRJTUVfUlhfUVVFVUVfU0VUVVAgfAoJCQkJIFJURV9FVEhfREVWX0NBUEFfUlVOVElNRV9U WF9RVUVVRV9TRVRVUDsKCglpZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQoaHcsIFBUUCkpCgkJaW5m by0+cnhfb2ZmbG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUDsKCglpbmZvLT5y eF9kZXNjX2xpbSA9IChzdHJ1Y3QgcnRlX2V0aF9kZXNjX2xpbSkgewoJCS5uYl9tYXggPSBITlMz X01BWF9SSU5HX0RFU0MsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9obnMzL2hu czNfZXRoZGV2LmM6MjY3NgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgMjgzOCAob2Zmc2V0IDQ1IGxp bmVzKS4KSHVuayAjMjAgc3VjY2VlZGVkIGF0IDI4NTEgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsg IzIxIHN1Y2NlZWRlZCBhdCAyODkzIChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMyMiBzdWNjZWVk ZWQgYXQgMjkwNiAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMjMgc3VjY2VlZGVkIGF0IDMyNTIg KG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzI0IHN1Y2NlZWRlZCBhdCAzNjA0IChvZmZzZXQgNDUg bGluZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgNDI5OSAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVu ayAjMjYgc3VjY2VlZGVkIGF0IDQ1NTYgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzI3IHN1Y2Nl ZWRlZCBhdCA0NTk3IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgNDcx NyAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMjkgc3VjY2VlZGVkIGF0IDQ3MjkgKG9mZnNldCA0 NSBsaW5lcykuCkh1bmsgIzMwIHN1Y2NlZWRlZCBhdCA0NzgwIChvZmZzZXQgNDUgbGluZXMpLgpI dW5rICMzMSBzdWNjZWVkZWQgYXQgNDgwNyAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMzIgc3Vj Y2VlZGVkIGF0IDQ5MjYgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzMzIHN1Y2NlZWRlZCBhdCA0 OTU3IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMzNCBzdWNjZWVkZWQgYXQgNTEzOSAob2Zmc2V0 IDQ1IGxpbmVzKS4KSHVuayAjMzUgc3VjY2VlZGVkIGF0IDUzODkgKG9mZnNldCA0NSBsaW5lcyku Ckh1bmsgIzM2IHN1Y2NlZWRlZCBhdCA1NDE4IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMzNyBz dWNjZWVkZWQgYXQgNTQ3MiAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMzggc3VjY2VlZGVkIGF0 IDU1MDEgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzM5IHN1Y2NlZWRlZCBhdCA1NjM5IChvZmZz ZXQgNDUgbGluZXMpLgpIdW5rICM0MCBzdWNjZWVkZWQgYXQgNTkxNCAob2Zmc2V0IDQ1IGxpbmVz KS4KSHVuayAjNDEgc3VjY2VlZGVkIGF0IDYxMjUgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzQy IHN1Y2NlZWRlZCBhdCA2MjgxIChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICM0MyBzdWNjZWVkZWQg YXQgNjU4MSAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjNDQgc3VjY2VlZGVkIGF0IDY4NzEgKG9m ZnNldCA0NSBsaW5lcykuCkh1bmsgIzQ1IHN1Y2NlZWRlZCBhdCA2OTAzIChvZmZzZXQgNDUgbGlu ZXMpLgpIdW5rICM0NiBzdWNjZWVkZWQgYXQgNzAwMiAob2Zmc2V0IDQ1IGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldi5oLi4uCkh1bmsgIzIgc3VjY2Vl ZGVkIGF0IDExMTMgKG9mZnNldCAzNyBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2huczMvaG5zM19ldGhkZXZfdmYuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA4MDkgKG9mZnNl dCAyIGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgODUzIChvZmZzZXQgMjEgbGluZXMpLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWluZm8tPm1heF9tdHUgPSBpbmZvLT5tYXhfcnhf cGt0bGVuIC0gSE5TM19FVEhfT1ZFUkhFQUQ7CglpbmZvLT5tYXhfbHJvX3BrdF9zaXplID0gSE5T M19NQVhfTFJPX1NJWkU7CgoJaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gKERFVl9SWF9PRkZMT0FE X0lQVjRfQ0tTVU0gfAoJCQkJIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCQkgREVWX1JY X09GRkxPQURfVENQX0NLU1VNIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQkJ CSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9P VVRFUl9VRFBfQ0tTVU0gfAoJCQkJIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAoJCQkJIERFVl9S WF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCQkJIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwK CQkJCSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8CgkJCQkgREVWX1JYX09GRkxPQURfVENQX0xS Tyk7CglpbmZvLT50eF9vZmZsb2FkX2NhcGEgPSAoREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9D S1NVTSB8CgkJCQkgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJCQkgREVWX1RYX09GRkxP QURfVENQX0NLU1VNIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCQkJIERFVl9U WF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAoJCQkJIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAoJ CQkJIERFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAoJCQkJIERFVl9UWF9PRkZMT0FEX1ZYTEFOX1RO TF9UU08gfAoJCQkJIERFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKCQkJCSBERVZfVFhfT0ZG TE9BRF9HRU5FVkVfVE5MX1RTTyB8CgkJCQkgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUg fAoJCQkJIGhuczNfdHh2bGFuX2NhcF9nZXQoaHcpKTsKCglpZiAoaG5zM19kZXZfZ2V0X3N1cHBv cnQoaHcsIE9VVEVSX1VEUF9DS1NVTSkpCgkJaW5mby0+dHhfb2ZmbG9hZF9jYXBhIHw9IERFVl9U WF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTTsKCglpZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQoaHcs IElOREVQX1RYUlgpKQoJCWluZm8tPmRldl9jYXBhID0gUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1F X1JYX1FVRVVFX1NFVFVQIHwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2huczMv aG5zM19ldGhkZXZfdmYuYzo5MzUKSHVuayAjNCBzdWNjZWVkZWQgYXQgMTY2OSAob2Zmc2V0IDI5 IGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMTY4MiAob2Zmc2V0IDI5IGxpbmVzKS4KSHVu ayAjNiBzdWNjZWVkZWQgYXQgMTc1MyAob2Zmc2V0IDI5IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVk ZWQgYXQgMTc3OCAob2Zmc2V0IDI5IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMjA4OCAo b2Zmc2V0IDI5IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMjI0NyAob2Zmc2V0IDI5IGxp bmVzKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDI1OTkgKG9mZnNldCAyOSBsaW5lcykuCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvaG5zMy9obnMzX3B0cC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2huczMvaG5zM19yc3MuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNf cnNzLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHguYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCQkJIHJ4cS0+cnhfYnVmX2xlbik7Cgl9CgoJ aWYgKGRldl9jb25mLT5yeG1vZGUub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHx8 CgkgICAgZGV2LT5kYXRhLT5tdHUgKyBITlMzX0VUSF9PVkVSSEVBRCA+IGh3LT5yeF9idWZfbGVu KQoJCWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gdHJ1ZTsKfQoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHguYzoxOTY5CmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJaWYgKGhuczNfZGV2X2dldF9zdXBwb3J0KGh3LCBQVFApKQoJCXJldHVybiBmYWxz ZTsKCglyZXR1cm4gKG9mZmxvYWRzID09IChvZmZsb2FkcyAmIERFVl9UWF9PRkZMT0FEX01CVUZf RkFTVF9GUkVFKSk7Cn0KCnN0YXRpYyBib29sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9obnMzL2huczNfcnh0eC5jOjQyOTEKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5z My9obnMzX3J4dHguaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfcnh0 eF92ZWMuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWlmIChobnMzX2Rldl9nZXRf c3VwcG9ydChodywgUFRQKSkKCQlyZXR1cm4gLUVOT1RTVVA7CgoJLyogT25seSBzdXBwb3J0IERF Vl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFICovCglpZiAodHhtb2RlLT5vZmZsb2FkcyAhPSBE RVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKCQlyZXR1cm4gLUVOT1RTVVA7CgoJcmV0dXJu IDA7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9obnMzL2huczNfcnh0eF92ZWMu YzoyMgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKaW50CmhuczNfcnhfY2hlY2tfdmVjX3N1 cHBvcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCnsKCXN0cnVjdCBydGVfZmRpcl9jb25mICpm Y29uZiA9ICZkZXYtPmRhdGEtPmRldl9jb25mLmZkaXJfY29uZjsKCXN0cnVjdCBydGVfZXRoX3J4 bW9kZSAqcnhtb2RlID0gJmRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlOwoJdWludDY0X3Qgb2Zm bG9hZHNfbWFzayA9IERFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfAoJCQkJIERFVl9SWF9PRkZMT0FE X1ZMQU47CgoJc3RydWN0IGhuczNfaHcgKmh3ID0gSE5TM19ERVZfUFJJVkFURV9UT19IVyhkZXYt PmRhdGEtPmRldl9wcml2YXRlKTsKCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywgUFRQKSkK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2huczMvaG5zM19yeHR4X3ZlYy5jOjIy OApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMuLi4KSHVuayAj NiBzdWNjZWVkZWQgYXQgMjg3NyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzcgc3VjY2VlZGVkIGF0 IDI5MzEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAyOTQ3IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMjk4NSAob2Zmc2V0IDEgbGluZSkuCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8tPm1pbl9tdHUgPSBSVEVfRVRIRVJfTUlO X01UVTsKCWRldl9pbmZvLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwoJZGV2X2luZm8tPnJ4 X29mZmxvYWRfY2FwYSA9CgkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJREVWX1JYX09G RkxPQURfUUlOUV9TVFJJUCB8CgkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1JY X09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9S WF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwK CQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8 CgkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAoJCURFVl9SWF9PRkZMT0FEX1JTU19IQVNI OwoKCWRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSBERVZfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRTsKCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPQoJCURFVl9UWF9PRkZMT0FE X1ZMQU5fSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8CgkJREVWX1RYX09G RkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfVFhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAoJCURFVl9U WF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAoJ CURFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0dSRV9UTkxf VFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0dF TkVWRV9UTkxfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKCQlkZXZfaW5mby0+ dHhfcXVldWVfb2ZmbG9hZF9jYXBhOwoJZGV2X2luZm8tPmRldl9jYXBhID0KCQlSVEVfRVRIX0RF Vl9DQVBBX1JVTlRJTUVfUlhfUVVFVUVfU0VUVVAgfAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjM3MjAKSHVuayAjMTEgc3VjY2VlZGVkIGF0IDM4 MDEgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAzODE1IChvZmZzZXQg LTQgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMzg2NCAob2Zmc2V0IC00IGxpbmVzKS4K SHVuayAjMTQgc3VjY2VlZGVkIGF0IDM5MTEgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzE1IHN1 Y2NlZWRlZCBhdCAzOTMwIChvZmZzZXQgLTQgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQgYXQg Mzk5NCAob2Zmc2V0IC00IGxpbmVzKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDQxMDcgKG9mZnNl dCAtNCBsaW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCA0MTMzIChvZmZzZXQgLTQgbGluZXMp LgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgNDI4MyAob2Zmc2V0IC00IGxpbmVzKS4KSHVuayAjMjAg c3VjY2VlZGVkIGF0IDQ0MzYgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzIxIHN1Y2NlZWRlZCBh dCA0NDUyIChvZmZzZXQgLTQgbGluZXMpLgpIdW5rICMyMiBzdWNjZWVkZWQgYXQgNDQ3OSAob2Zm c2V0IC00IGxpbmVzKS4KSHVuayAjMjMgc3VjY2VlZGVkIGF0IDQ0OTYgKG9mZnNldCAtNCBsaW5l cykuCkh1bmsgIzI0IHN1Y2NlZWRlZCBhdCA0ODE0IChvZmZzZXQgLTQgbGluZXMpLgpIdW5rICMy NSBzdWNjZWVkZWQgYXQgNjEwMCAob2Zmc2V0IC00IGxpbmVzKS4KSHVuayAjMjYgc3VjY2VlZGVk IGF0IDYyMzAgKG9mZnNldCAtNiBsaW5lcykuCkh1bmsgIzI3IHN1Y2NlZWRlZCBhdCA3MDg1IChv ZmZzZXQgLTEzIGxpbmVzKS4KSHVuayAjMjggc3VjY2VlZGVkIGF0IDcxMjAgKG9mZnNldCAtMTMg bGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgNzcxNCAob2Zmc2V0IC0xMyBsaW5lcykuCkh1 bmsgIzMwIHN1Y2NlZWRlZCBhdCA4Njk4IChvZmZzZXQgLTEzIGxpbmVzKS4KSHVuayAjMzEgc3Vj Y2VlZGVkIGF0IDg3MzMgKG9mZnNldCAtMTMgbGluZXMpLgpIdW5rICMzMiBzdWNjZWVkZWQgYXQg ODgzMCAob2Zmc2V0IC0xMyBsaW5lcykuCkh1bmsgIzMzIHN1Y2NlZWRlZCBhdCA4ODM4IChvZmZz ZXQgLTEzIGxpbmVzKS4KSHVuayAjMzQgc3VjY2VlZGVkIGF0IDg5MTcgKG9mZnNldCAtMTMgbGlu ZXMpLgpIdW5rICMzNSBzdWNjZWVkZWQgYXQgMTAyNTQgKG9mZnNldCAtMTMgbGluZXMpLgpIdW5r ICMzNiBzdWNjZWVkZWQgYXQgMTA0OTEgKG9mZnNldCAtMTMgbGluZXMpLgpIdW5rICMzNyBzdWNj ZWVkZWQgYXQgMTA5OTkgKG9mZnNldCAtMTMgbGluZXMpLgpIdW5rICMzOCBzdWNjZWVkZWQgYXQg MTEwNDcgKG9mZnNldCAtMTMgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmguLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTQwIChvZmZzZXQgLTcgbGlu ZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAxMDU2IChvZmZzZXQgLTcgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jLi4uCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2k0MGUvaTQwZV9oYXNoLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aTQwZS9pNDBlX3BmLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX3J4 dHguYy4uLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyMjY5IChvZmZzZXQgMjYgbGluZXMpLgpIdW5r ICM0IHN1Y2NlZWRlZCBhdCAzNDQzIChvZmZzZXQgMjYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9pNDBlL2k0MGVfcnh0eC5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2k0MGUvaTQwZV9yeHR4X3ZlY19hdng1MTIuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9pNDBlL2k0MGVfcnh0eF92ZWNfY29tbW9uLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaTQwZS9pNDBlX3ZmX3JlcHJlc2VudG9yLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaWF2Zi9pYXZmLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmX2V0 aGRldi5jLi4uCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDYxMCAob2Zmc2V0IC0xIGxpbmVzKS4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2Fk cyA9IElBVkZfUlNTX09GRkxPQURfQUxMOwoJZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgPSBJQVZG X05VTV9NQUNBRERSX01BWDsKCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9P RkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAoJCURFVl9S WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVW X1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VN IHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRF UiB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CgoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2Fw YSA9CgkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX1FJTlFf SU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9V RFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURf U0NUUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1RY X09GRkxPQURfVENQX1RTTyB8CgkJREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8CgkJREVW X1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8 CgkJREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX01VTFRJ X1NFR1MgfAoJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwoKCWlmICh2Zi0+dmZfcmVz LT52Zl9jYXBfZmxhZ3MgJiBWSVJUQ0hOTF9WRl9PRkZMT0FEX0NSQykKCQlkZXZfaW5mby0+cnhf b2ZmbG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDOwoKCWRldl9pbmZvLT5kZWZh dWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsKCQkucnhfZnJlZV90aHJlc2gg PSBJQVZGX0RFRkFVTFRfUlhfRlJFRV9USFJFU0gsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9pYXZmL2lhdmZfZXRoZGV2LmM6OTYxCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAxNTcx IChvZmZzZXQgMTUgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZf aGFzaC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4LmMuLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHguaC4uLgpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfYXZ4Mi5jLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJCSAqIG5lZWRzIHRvIGxvYWQgMm5kIDE2QiBvZiBlYWNoIGRlc2Mg Zm9yIFJTUyBoYXNoIHBhcnNpbmcsCgkJICogd2lsbCBjYXVzZSBwZXJmb3JtYW5jZSBkcm9wIHRv IGdldCBpbnRvIHRoaXMgY29udGV4dC4KCQkgKi8KCQlpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZG TE9BRF9SU1NfSEFTSCB8fAoJCSAgICByeHEtPnJ4X2ZsYWdzICYgSUFWRl9SWF9GTEFHU19WTEFO X1RBR19MT0NfTDJUQUcyXzIpIHsKCQkJLyogbG9hZCBib3R0b20gaGFsZiBvZiBldmVyeSAzMkIg ZGVzYyAqLwoJCQljb25zdCBfX20xMjhpIHJhd19kZXNjX2JoNyA9CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfYXZ4Mi5jOjkwNgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQkJCQkoX21tMjU2X2Nhc3RzaTEyOF9zaTI1NihyYXdfZGVzY19i aDApLAoJCQkJCXJhd19kZXNjX2JoMSwgMSk7CgoJCQlpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZG TE9BRF9SU1NfSEFTSCkgewoJCQkJLyoqCgkJCQkgKiB0byBzaGlmdCB0aGUgMzJiIFJTUyBoYXNo IHZhbHVlIHRvIHRoZQoJCQkJICogaGlnaGVzdCAzMmIgb2YgZWFjaCAxMjhiIGJlZm9yZSBtYXNr CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfYXZ4 Mi5jOjk1OApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfYXZ4 NTEyLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCSAqIG5lZWRzIHRvIGxvYWQg Mm5kIDE2QiBvZiBlYWNoIGRlc2MgZm9yIFJTUyBoYXNoIHBhcnNpbmcsCgkJCSAqIHdpbGwgY2F1 c2UgcGVyZm9ybWFuY2UgZHJvcCB0byBnZXQgaW50byB0aGlzIGNvbnRleHQuCgkJCSAqLwoJCQlp ZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8fAoJCQkgICAgcnhxLT5yeF9m bGFncyAmIElBVkZfUlhfRkxBR1NfVkxBTl9UQUdfTE9DX0wyVEFHMl8yKSB7CgkJCQkvKiBsb2Fk IGJvdHRvbSBoYWxmIG9mIGV2ZXJ5IDMyQiBkZXNjICovCgkJCQljb25zdCBfX20xMjhpIHJhd19k ZXNjX2JoNyA9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0 eF92ZWNfYXZ4NTEyLmM6MTE0MQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCQkJKF9t bTI1Nl9jYXN0c2kxMjhfc2kyNTYocmF3X2Rlc2NfYmgwKSwKCQkJCQkJIHJhd19kZXNjX2JoMSwg MSk7CgoJCQkJaWYgKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfUlNTX0hBU0gpIHsKCQkJCQkv KioKCQkJCQkgKiB0byBzaGlmdCB0aGUgMzJiIFJTUyBoYXNoIHZhbHVlIHRvIHRoZQoJCQkJCSAq IGhpZ2hlc3QgMzJiIG9mIGVhY2ggMTI4YiBiZWZvcmUgbWFzawoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX2F2eDUxMi5jOjExOTMKSHVuayAjMyBz dWNjZWVkZWQgYXQgMTcxOSAob2Zmc2V0IC0yIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX3NzZS5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJCSAqIG5lZWRzIHRvIGxvYWQgMm5kIDE2QiBvZiBlYWNoIGRlc2MgZm9yIFJTUyBoYXNo IHBhcnNpbmcsCgkJICogd2lsbCBjYXVzZSBwZXJmb3JtYW5jZSBkcm9wIHRvIGdldCBpbnRvIHRo aXMgY29udGV4dC4KCQkgKi8KCQlpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFT SCkgewoJCQkvKiBsb2FkIGJvdHRvbSBoYWxmIG9mIGV2ZXJ5IDMyQiBkZXNjICovCgkJCWNvbnN0 IF9fbTEyOGkgcmF3X2Rlc2NfYmgzID0KCQkJCV9tbV9sb2FkX3NpMTI4CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfc3NlLmM6ODE5CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2VfZGNmLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvaWNlL2ljZV9kY2ZfZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgOTYgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA1NzcgKG9mZnNldCAxIGxpbmUpLgpI dW5rICMzIHN1Y2NlZWRlZCBhdCA2NDAgKG9mZnNldCAzIGxpbmVzKS4KSHVuayAjNCBzdWNjZWVk ZWQgYXQgNjU1IChvZmZzZXQgMyBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ ZGV2X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBJQ0VfUlNTX09GRkxPQURfQUxMOwoK CWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAg fAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NV TSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9J UFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9W TEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CglkZXZfaW5mby0+dHhfb2Zm bG9hZF9jYXBhID0KCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CgkJREVWX1RYX09GRkxP QURfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfVFhfT0ZG TE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAoJCURFVl9UWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAoJCURF Vl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNP IHwKCQlERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0dFTkVW RV9UTkxfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwoKCWRldl9pbmZvLT5kZWZh dWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsKCQkucnhfdGhyZXNoID0gewoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaWNlL2ljZV9kY2ZfZXRoZGV2LmM6Njc1 Ckh1bmsgIzYgc3VjY2VlZGVkIGF0IDkyNyAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICM3IHN1Y2Nl ZWRlZCBhdCA5ODEgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTAxMiAo b2Zmc2V0IDIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX2RjZl92 Zl9yZXByZXNlbnRvci5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8t PmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBJQ0VfUlNTX09GRkxPQURfQUxMOwoKCWRldl9pbmZv LT5yeF9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9S WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVW X1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VN IHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRF UiB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfAoJCURFVl9SWF9PRkZMT0FEX1JTU19I QVNIOwoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9CgkJREVWX1RYX09GRkxPQURfVkxBTl9J TlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1VE UF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9T Q1RQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfVFhf T0ZGTE9BRF9UQ1BfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKCQlERVZf VFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfSVBJUF9UTkxfVFNPIHwK CQlERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfTVVMVElf U0VHUzsKCglkZXZfaW5mby0+ZGVmYXVsdF9yeGNvbmYgPSAoc3RydWN0IHJ0ZV9ldGhfcnhjb25m KSB7CgkJLnJ4X3RocmVzaCA9IHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2lj ZS9pY2VfZGNmX3ZmX3JlcHJlc2VudG9yLmM6MTQzCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDI0NyAo b2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDM0NiAob2Zmc2V0IDEgbGluZSku Ckh1bmsgIzYgc3VjY2VlZGVkIGF0IDM3NiAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2ljZS9pY2VfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CglkZXZfaW5mby0+bWluX210dSA9IFJURV9FVEhFUl9NSU5fTVRVOwoKCWRldl9pbmZvLT5y eF9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9P RkZMT0FEX0tFRVBfQ1JDIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlERVZfUlhfT0ZG TE9BRF9WTEFOX0ZJTFRFUjsKCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPQoJCURFVl9UWF9P RkZMT0FEX1ZMQU5fSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKCQlERVZfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTIHwKCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKCWRl dl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gMDsKCglpZiAoIWlzX3NhZmVfbW9kZSkg ewoJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0KCQkJREVWX1JYX09GRkxPQURfSVBWNF9D S1NVTSB8CgkJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCURFVl9SWF9PRkZMT0FEX1RD UF9DS1NVTSB8CgkJCURFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAoJCQlERVZfUlhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNIHwKCQkJREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfAoJCQlE RVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8CgkJCURFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUDsKCQlk ZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhIHw9CgkJCURFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJU IHwKCQkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJCURFVl9UWF9PRkZMT0FEX1VEUF9D S1NVTSB8CgkJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJCURFVl9UWF9PRkZMT0FEX1ND VFBfQ0tTVU0gfAoJCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQkJREVWX1RY X09GRkxPQURfT1VURVJfVURQX0NLU1VNOwoJCWRldl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxv YWRzIHw9IElDRV9SU1NfT0ZGTE9BRF9BTEw7Cgl9CgoJZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxv YWRfY2FwYSA9IDA7CglkZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhID0gREVWX1RYX09G RkxPQURfTUJVRl9GQVNUX0ZSRUU7CgoJZGV2X2luZm8tPnJldGFfc2l6ZSA9IHBmLT5oYXNoX2x1 dF9zaXplOwoJZGV2X2luZm8tPmhhc2hfa2V5X3NpemUgPSAoVlNJUUZfSEtFWV9NQVhfSU5ERVgg KyAxKSAqIHNpemVvZih1aW50MzJfdCk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9pY2UvaWNlX2V0aGRldi5jOjM2NzUKSHVuayAjMjAgc3VjY2VlZGVkIGF0IDM3NDggKG9mZnNl dCAxIGxpbmUpLgpIdW5rICMyMSBzdWNjZWVkZWQgYXQgMzgzMCAob2Zmc2V0IDEgbGluZSkuCkh1 bmsgIzIyIHN1Y2NlZWRlZCBhdCAzODQ3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMjMgc3VjY2Vl ZGVkIGF0IDQzODggKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzI0IHN1Y2NlZWRlZCBhdCA0NTEx IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgNDU2MSAob2Zmc2V0IDE4 IGxpbmVzKS4KSHVuayAjMjYgc3VjY2VlZGVkIGF0IDU0NzEgKG9mZnNldCAxOCBsaW5lcykuCkh1 bmsgIzI3IHN1Y2NlZWRlZCBhdCA1NDk1IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMyOCBzdWNj ZWVkZWQgYXQgNTUxNiAob2Zmc2V0IDE4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaWNlL2ljZV9ldGhkZXYuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNl X2hhc2guYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX3J4dHguYy4uLgpI dW5rICMzIHN1Y2NlZWRlZCBhdCAxMTIwIChvZmZzZXQgMyBsaW5lcykuCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJCQlpY2VfcnhkX3RvX3ZsYW5fdGNpKG1iLCAmcnhkcFtqXSk7CgkJCXJ4 cS0+cnhkX3RvX3BrdF9maWVsZHMocnhxLCBtYiwgJnJ4ZHBbal0pOwojaWZuZGVmIFJURV9MSUJS VEVfSUNFXzE2QllURV9SWF9ERVNDCgkJCWlmIChyeHEtPm9mZmxvYWRzICYgREVWX1JYX09GRkxP QURfVElNRVNUQU1QKSB7CgkJCQl0c19ucyA9IGljZV90c3RhbXBfY29udmVydF8zMmJfNjRiKGh3 LAoJCQkJCXJ0ZV9sZV90b19jcHVfMzIocnhkcFtqXS53Yi5mbGV4X3RzLnRzX2hpZ2gpKTsKCQkJ CWlmIChpY2VfdGltZXN0YW1wX2R5bmZsYWcgPiAwKSB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBk cml2ZXJzL25ldC9pY2UvaWNlX3J4dHguYzoxNjI0CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJCXJ4cS0+cnhkX3RvX3BrdF9maWVsZHMocnhxLCBmaXJzdF9zZWcsICZyeGQpOwoJCXBrdF9m bGFncyA9IGljZV9yeGRfZXJyb3JfdG9fcGt0X2ZsYWdzKHJ4X3N0YXRfZXJyMCk7CiNpZm5kZWYg UlRFX0xJQlJURV9JQ0VfMTZCWVRFX1JYX0RFU0MKCQlpZiAocnhxLT5vZmZsb2FkcyAmIERFVl9S WF9PRkZMT0FEX1RJTUVTVEFNUCkgewoJCQl0c19ucyA9IGljZV90c3RhbXBfY29udmVydF8zMmJf NjRiKGh3LAoJCQkJcnRlX2xlX3RvX2NwdV8zMihyeGQud2IuZmxleF90cy50c19oaWdoKSk7CgkJ CWlmIChpY2VfdGltZXN0YW1wX2R5bmZsYWcgPiAwKSB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBk cml2ZXJzL25ldC9pY2UvaWNlX3J4dHguYzoxOTQyCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJCXJ4cS0+cnhkX3RvX3BrdF9maWVsZHMocnhxLCByeG0sICZyeGQpOwoJCXBrdF9mbGFncyA9 IGljZV9yeGRfZXJyb3JfdG9fcGt0X2ZsYWdzKHJ4X3N0YXRfZXJyMCk7CiNpZm5kZWYgUlRFX0xJ QlJURV9JQ0VfMTZCWVRFX1JYX0RFU0MKCQlpZiAocnhxLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZM T0FEX1RJTUVTVEFNUCkgewoJCQl0c19ucyA9IGljZV90c3RhbXBfY29udmVydF8zMmJfNjRiKGh3 LAoJCQkJcnRlX2xlX3RvX2NwdV8zMihyeGQud2IuZmxleF90cy50c19oaWdoKSk7CgkJCWlmIChp Y2VfdGltZXN0YW1wX2R5bmZsYWcgPiAwKSB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9pY2UvaWNlX3J4dHguYzoyMzczCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9p Y2Vfcnh0eF92ZWNfYXZ4Mi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2Vf cnh0eF92ZWNfYXZ4NTEyLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9y eHR4X3ZlY19jb21tb24uaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX3J4 dHhfdmVjX3NzZS5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lnYy9pZ2NfZXRoZGV2 LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMzE0IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzIg c3VjY2VlZGVkIGF0IDMyNSAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAz NDEgKG9mZnNldCA3IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgNDgwIChvZmZzZXQgNyBs aW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDQ5NyAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICM2 IHN1Y2NlZWRlZCBhdCA1MzIgKG9mZnNldCA3IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQg OTc5IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDEwMDAgKG9mZnNldCA3 IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTQ5MCAob2Zmc2V0IDggbGluZXMpLgpIdW5r ICMxMCBzdWNjZWVkZWQgYXQgMTUyMyAob2Zmc2V0IDggbGluZXMpLgpIdW5rICMxMSBzdWNjZWVk ZWQgYXQgMjE2NSAob2Zmc2V0IDI0IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDIyMDMg KG9mZnNldCAyNCBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAyMjU4IChvZmZzZXQgMjQg bGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMjMxNCAob2Zmc2V0IDI0IGxpbmVzKS4KSHVu ayAjMTUgc3VjY2VlZGVkIGF0IDIzOTMgKG9mZnNldCAyNCBsaW5lcykuCkh1bmsgIzE2IHN1Y2Nl ZWRlZCBhdCAyNTU0IChvZmZzZXQgNDAgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgMjU4 NyAob2Zmc2V0IDQwIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWdjL2lnY19l dGhkZXYuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2RlZmluZSBJR0NfVFhfTUFY X01UVV9TRUcJVUlOVDhfTUFYCgojZGVmaW5lIElHQ19SWF9PRkZMT0FEX0FMTAkoICAgIFwKCURF Vl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwgXAoJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIg fCBcCglERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8IFwKCURFVl9SWF9PRkZMT0FEX0lQVjRf Q0tTVU0gIHwgXAoJREVWX1JYX09GRkxPQURfVURQX0NLU1VNICAgfCBcCglERVZfUlhfT0ZGTE9B RF9UQ1BfQ0tTVU0gICB8IFwKCURFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gIHwgXAoJREVWX1JY X09GRkxPQURfS0VFUF9DUkMgICAgfCBcCglERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSICAgICB8IFwK CURFVl9SWF9PRkZMT0FEX1JTU19IQVNIKQoKI2RlZmluZSBJR0NfVFhfT0ZGTE9BRF9BTEwJKCAg ICBcCglERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8IFwKCURFVl9UWF9PRkZMT0FEX0lQVjRf Q0tTVU0gIHwgXAoJREVWX1RYX09GRkxPQURfVURQX0NLU1VNICAgfCBcCglERVZfVFhfT0ZGTE9B RF9UQ1BfQ0tTVU0gICB8IFwKCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gIHwgXAoJREVWX1RY X09GRkxPQURfVENQX1RTTyAgICAgfCBcCglERVZfVFhfT0ZGTE9BRF9VRFBfVFNPCSAgIHwgXAoJ REVWX1RYX09GRkxPQURfTVVMVElfU0VHUykKCiNkZWZpbmUgSUdDX1JTU19PRkZMT0FEX0FMTAko ICAgIFwKCUVUSF9SU1NfSVBWNCAgICAgICAgICAgICAgIHwgXAoJRVRIX1JTU19OT05GUkFHX0lQ VjRfVENQICAgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgICB8IFwKCUVUSF9SU1NfSVBW NiAgICAgICAgICAgICAgIHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjZfVENQICAgfCBcCglFVEhf UlNTX05PTkZSQUdfSVBWNl9VRFAgICB8IFwKCUVUSF9SU1NfSVBWNl9FWCAgICAgICAgICAgIHwg XAoJRVRIX1JTU19JUFY2X1RDUF9FWCAgICAgICAgfCBcCglFVEhfUlNTX0lQVjZfVURQX0VYKQoK I2RlZmluZSBJR0NfTUFYX0VUUUZfRklMVEVSUwkJMwkvKiBldHFmKDMpIGlzIHVzZWQgZm9yIDE1 ODggKi8KI2RlZmluZSBJR0NfRVRRRl9GSUxURVJfMTU4OAkJMwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvaWdjL2lnY19ldGhkZXYuaDo2NgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9pZ2MvaWdjX3R4cnguYy4uLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA4NjYgKG9mZnNldCAx OSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDEwNTYgKG9mZnNldCAxOSBsaW5lcykuCkh1 bmsgIzUgc3VjY2VlZGVkIGF0IDExMzAgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzYgc3VjY2Vl ZGVkIGF0IDExOTYgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDEyNDAg KG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDEyNjEgKG9mZnNldCAxOSBs aW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDEyOTggKG9mZnNldCAxOSBsaW5lcykuCkh1bmsg IzEwIHN1Y2NlZWRlZCBhdCAyMjcyIChvZmZzZXQgMTkgbGluZXMpLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9pb25pYy9pb25pY19ldGhkZXYuYy4uLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAz OTcgKG9mZnNldCAxMCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJICovCgoJ ZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IGRldl9pbmZvLT5yeF9xdWV1ZV9vZmZsb2FkX2Nh cGEgfAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1VEUF9D S1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJREVWX1JYX09GRkxPQURf U0NBVFRFUiB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0ggfAoJCTA7CgoJZGV2X2luZm8tPnR4 X29mZmxvYWRfY2FwYSA9IGRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgfAoJCURFVl9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVW X1RYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VN IHwKCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX01V TFRJX1NFR1MgfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX1ZM QU5fSU5TRVJUIHwKCQkwOwoKCWRldl9pbmZvLT5yeF9kZXNjX2xpbSA9IHJ4X2Rlc2NfbGltOwoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaW9uaWMvaW9uaWNfZXRoZGV2LmM6NDEx Ckh1bmsgIzQgc3VjY2VlZGVkIGF0IDQ3NCAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjNSBzdWNj ZWVkZWQgYXQgNDk4IChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA1NTYg KG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDU5NiAob2Zmc2V0IDExIGxp bmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgNjI5IChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICM5 IHN1Y2NlZWRlZCBhdCA2NzEgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBh dCA4NTMgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCA4ODUgKG9mZnNl dCAxMSBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCA5MDcgKG9mZnNldCAxMSBsaW5lcyku CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lvbmljL2lvbmljX2V0aGRldi5oLi4uCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lvbmljL2lvbmljX2xpZi5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2lvbmljL2lvbmljX3J4dHguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9pcG4za2UvaXBuM2tlX3JlcHJlc2VudG9yLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6Cgl9OwoJZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CglkZXZfaW5m by0+cnhfb2ZmbG9hZF9jYXBhID0KCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKCQlERVZf UlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlE RVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJ REVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9F WFRFTkQgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOwoKCWRldl9pbmZvLT50eF9xdWV1 ZV9vZmZsb2FkX2NhcGEgPSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKCWRldl9pbmZv LT50eF9vZmZsb2FkX2NhcGEgPQoJCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKCQlERVZf VFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8CgkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJ REVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJ CURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX1ZYTEFO X1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKCQlERVZfVFhfT0ZGTE9B RF9JUElQX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKCQlERVZf VFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKCQlkZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBh OwoKCWRldl9pbmZvLT5kZXZfY2FwYSA9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9pcG4za2UvaXBuM2tlX3JlcHJlc2VudG9yLmM6NjcKSHVuayAjMyBzdWNjZWVkZWQgYXQgMjQw MCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDI0NjEgKG9mZnNldCAxIGxp bmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAyNTE5IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNjZWVk ZWQgYXQgMTg1OSAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAxODc0IChv ZmZzZXQgMiBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDE5NjEgKG9mZnNldCAyIGxpbmVz KS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMjA4NSAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICM1IHN1 Y2NlZWRlZCBhdCAyMTAyIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDIx MjQgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMjE0NSAob2Zmc2V0IDIg bGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAyMTk1IChvZmZzZXQgMiBsaW5lcykuCkh1bmsg Izkgc3VjY2VlZGVkIGF0IDIyMjIgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMTAgc3VjY2VlZGVk IGF0IDIyNDMgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDIyNTcgKG9m ZnNldCAyIGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDIyNzcgKG9mZnNldCAyIGxpbmVz KS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDIyOTIgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMTQg c3VjY2VlZGVkIGF0IDIzMDkgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0 IDIzNTAgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDIzNzQgKG9mZnNl dCAyIGxpbmVzKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDI2MjAgKG9mZnNldCAyIGxpbmVzKS4K SHVuayAjMTggc3VjY2VlZGVkIGF0IDI3MDUgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMTkgc3Vj Y2VlZGVkIGF0IDI3MjkgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMjAgc3VjY2VlZGVkIGF0IDI3 NDcgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMjEgc3VjY2VlZGVkIGF0IDM4MzMgKG9mZnNldCAy IGxpbmVzKS4KSHVuayAjMjIgc3VjY2VlZGVkIGF0IDM4NDMgKG9mZnNldCAyIGxpbmVzKS4KSHVu ayAjMjMgc3VjY2VlZGVkIGF0IDM4ODQgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMjQgc3VjY2Vl ZGVkIGF0IDM5NjcgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMjUgc3VjY2VlZGVkIGF0IDQyMTIg KG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMjYgc3VjY2VlZGVkIGF0IDQyMzggKG9mZnNldCAyIGxp bmVzKS4KSHVuayAjMjcgc3VjY2VlZGVkIGF0IDQyNzUgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAj Mjggc3VjY2VlZGVkIGF0IDQ1MjIgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMjkgc3VjY2VlZGVk IGF0IDQ3NDEgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMzAgc3VjY2VlZGVkIGF0IDUwNDUgKG9m ZnNldCAyIGxpbmVzKS4KSHVuayAjMzEgc3VjY2VlZGVkIGF0IDUwOTMgKG9mZnNldCAyIGxpbmVz KS4KSHVuayAjMzIgc3VjY2VlZGVkIGF0IDUyNjUgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzMz IHN1Y2NlZWRlZCBhdCA1MzQwIChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICMzNCBzdWNjZWVkZWQg YXQgNTU3OCAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjMzUgc3VjY2VlZGVkIGF0IDU3MTIgKG9m ZnNldCAxMSBsaW5lcykuCkh1bmsgIzM2IHN1Y2NlZWRlZCBhdCA1NzMxIChvZmZzZXQgMTEgbGlu ZXMpLgpIdW5rICMzNyBzdWNjZWVkZWQgYXQgNjc0MiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAj Mzggc3VjY2VlZGVkIGF0IDcxNjEgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzM5IHN1Y2NlZWRl ZCBhdCA3MTgwIChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICM0MCBzdWNjZWVkZWQgYXQgNzIzOSAo b2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNDEgc3VjY2VlZGVkIGF0IDcyNTAgKG9mZnNldCAxOSBs aW5lcykuCkh1bmsgIzQyIHN1Y2NlZWRlZCBhdCA3Mjc0IChvZmZzZXQgMTkgbGluZXMpLgpIdW5r ICM0MyBzdWNjZWVkZWQgYXQgNzI4OSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNDQgc3VjY2Vl ZGVkIGF0IDc1NDIgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzQ1IHN1Y2NlZWRlZCBhdCA3NTc0 IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICM0NiBzdWNjZWVkZWQgYXQgNzY3MSAob2Zmc2V0IDE5 IGxpbmVzKS4KSHVuayAjNDcgc3VjY2VlZGVkIGF0IDc3MDggKG9mZnNldCAxOSBsaW5lcykuCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5oLi4uCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2ZkaXIuYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaXhnYmUvaXhnYmVfaXBzZWMuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdi ZS9peGdiZV9wZi5jLi4uCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDY4MSAob2Zmc2V0IDcgbGluZXMp LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgl1aW50NjRfdCBvZmZsb2FkczsKCXN0cnVjdCBpeGdiZV9o dyAqaHcgPSBJWEdCRV9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsK CglvZmZsb2FkcyA9IERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKCQkgICBERVZfUlhfT0ZG TE9BRF9VRFBfQ0tTVU0gICB8CgkJICAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNICAgfAoJCSAg IERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgIHwKCQkgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiB8CgkJICAgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8CgkJICAgREVWX1JYX09GRkxPQURf UlNTX0hBU0g7CgoJaWYgKGh3LT5tYWMudHlwZSA9PSBpeGdiZV9tYWNfODI1OThFQikKCQlvZmZs b2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQOwoKCWlmIChpeGdiZV9pc192ZihkZXYp ID09IDApCgkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQ7CgoJLyoKCSAq IFJTQyBpcyBvbmx5IHN1cHBvcnRlZCBieSA4MjU5OSBhbmQgeDU0MCBQRiBkZXZpY2VzIGluIGEg bm9uLVNSLUlPVgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVf cnh0eC5jOjMwMzIKSHVuayAjNSBzdWNjZWVkZWQgYXQgMzA1NSAob2Zmc2V0IDEgbGluZSkuCkh1 bmsgIzYgc3VjY2VlZGVkIGF0IDMxMjMgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM3IHN1Y2NlZWRl ZCBhdCAzNTI2IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAzNjI0IChv ZmZzZXQgMTkgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAzNzE2IChvZmZzZXQgMTkgbGlu ZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMzc0NiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAj MTEgc3VjY2VlZGVkIGF0IDM3NTUgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRl ZCBhdCAzNzcxIChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMzc5NSAo b2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDM4NzcgKG9mZnNldCAxOSBs aW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAzODkzIChvZmZzZXQgMTkgbGluZXMpLgpIdW5r ICMxNiBzdWNjZWVkZWQgYXQgMzkwOCAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMTcgc3VjY2Vl ZGVkIGF0IDM5MjYgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAzOTQx IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgMzk2OCAob2Zmc2V0IDE5 IGxpbmVzKS4KSHVuayAjMjAgc3VjY2VlZGVkIGF0IDM5OTUgKG9mZnNldCAxOSBsaW5lcykuCkh1 bmsgIzIxIHN1Y2NlZWRlZCBhdCA0MTY0IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMyMiBzdWNj ZWVkZWQgYXQgNDE3NyAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMjMgc3VjY2VlZGVkIGF0IDQx OTEgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzI0IHN1Y2NlZWRlZCBhdCA0MjAyIChvZmZzZXQg MTkgbGluZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgNDIxOCAob2Zmc2V0IDE5IGxpbmVzKS4K SHVuayAjMjYgc3VjY2VlZGVkIGF0IDQyNzYgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzI3IHN1 Y2NlZWRlZCBhdCA0MjkxIChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQg NDMyNyAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMjkgc3VjY2VlZGVkIGF0IDQzNDEgKG9mZnNl dCAxOSBsaW5lcykuCkh1bmsgIzMwIHN1Y2NlZWRlZCBhdCA0MzYyIChvZmZzZXQgMTkgbGluZXMp LgpIdW5rICMzMSBzdWNjZWVkZWQgYXQgNDQyMyAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMzIg c3VjY2VlZGVkIGF0IDQ1NDQgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzMzIHN1Y2NlZWRlZCBh dCA0NTY5IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMzNCBzdWNjZWVkZWQgYXQgNDYwNiAob2Zm c2V0IDE5IGxpbmVzKS4KSHVuayAjMzUgc3VjY2VlZGVkIGF0IDQ2MzEgKG9mZnNldCAxOSBsaW5l cykuCkh1bmsgIzM2IHN1Y2NlZWRlZCBhdCA0Njc2IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMz NyBzdWNjZWVkZWQgYXQgNDY4OSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMzggc3VjY2VlZGVk IGF0IDQ5MDMgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzM5IHN1Y2NlZWRlZCBhdCA0OTMxIChv ZmZzZXQgMTkgbGluZXMpLgpIdW5rICM0MCBzdWNjZWVkZWQgYXQgNDk0MiAob2Zmc2V0IDE5IGxp bmVzKS4KSHVuayAjNDEgc3VjY2VlZGVkIGF0IDQ5NTcgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsg IzQyIHN1Y2NlZWRlZCBhdCA0OTY2IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICM0MyBzdWNjZWVk ZWQgYXQgNTA4NyAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjNDQgc3VjY2VlZGVkIGF0IDUxMjQg KG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzQ1IHN1Y2NlZWRlZCBhdCA1MTMzIChvZmZzZXQgMTgg bGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkvKiBJdCBhZGRzIGR1YWwgVkxB TiBsZW5ndGggZm9yIHN1cHBvcnRpbmcgZHVhbCBWTEFOICovCgkJaWYgKGZyYW1lX3NpemUgKyAy ICogSVhHQkVfVkxBTl9UQUdfU0laRSA+IGJ1Zl9zaXplKQoJCQlkZXYtPmRhdGEtPnNjYXR0ZXJl ZF9yeCA9IDE7CgkJaWYgKHJ4cS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ KQoJCQlyeF9jb25mLT5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQOwoJfQoK CWlmIChyeF9jb25mLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpCgkJZGV2LT5k YXRhLT5zY2F0dGVyZWRfcnggPSAxOwoKCS8qCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9peGdiZS9peGdiZV9yeHR4LmM6NTE1OApIdW5rICM0NyBzdWNjZWVkZWQgYXQgNTE5NSAo b2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNDggc3VjY2VlZGVkIGF0IDUyMDUgKG9mZnNldCAxOSBs aW5lcykuCkh1bmsgIzQ5IHN1Y2NlZWRlZCBhdCA1NDExIChvZmZzZXQgMTkgbGluZXMpLgpIdW5r ICM1MCBzdWNjZWVkZWQgYXQgNTcwMSAob2Zmc2V0IDE5IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgkJYnVmX3NpemUgPSAodWludDE2X3QpICgoc3JyY3RsICYgSVhHQkVfU1JS Q1RMX0JTSVpFUEtUX01BU0spIDw8CgkJCQkgICAgICAgSVhHQkVfU1JSQ1RMX0JTSVpFUEtUX1NI SUZUKTsKCgkJaWYgKHJ4bW9kZS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHx8 CgkJICAgIC8qIEl0IGFkZHMgZHVhbCBWTEFOIGxlbmd0aCBmb3Igc3VwcG9ydGluZyBkdWFsIFZM QU4gKi8KCQkgICAgKGZyYW1lX3NpemUgKyAyICogSVhHQkVfVkxBTl9UQUdfU0laRSkgPiBidWZf c2l6ZSkgewoJCQlpZiAoIWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4KQoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOjU3MzIKSHVuayAjNTIgc3VjY2Vl ZGVkIGF0IDU3NTkgKG9mZnNldCAyMCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2l4Z2JlL2l4Z2JlX3J4dHguaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9p eGdiZV9yeHR4X3ZlY19jb21tb24uaC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAyNzggKG9mZnNl dCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV90bS5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3ZmX3JlcHJlc2VudG9yLmMu Li4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvcnRlX3BtZF9peGdiZS5jLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL3J0ZV9wbWRfaXhnYmUuaC4uLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9rbmkvcnRlX2V0aF9rbmkuYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9saXF1aWRpby9saW9fZXRoZGV2LmMuLi4KSHVuayAjMyBzdWNjZWVkZWQgYXQg NTQwIChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA1ODMgKG9mZnNldCAy MSBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDYxNiAob2Zmc2V0IDIxIGxpbmVzKS4KSHVu ayAjNiBzdWNjZWVkZWQgYXQgNjk0IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRl ZCBhdCA3NzggKG9mZnNldCAyMSBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDgzNSAob2Zm c2V0IDIxIGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgOTMzIChvZmZzZXQgMjEgbGluZXMp LgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgOTQ0IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICMxMSBz dWNjZWVkZWQgYXQgMTEwNyAob2Zmc2V0IDIxIGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0 IDExMjQgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAxNTEzIChvZmZz ZXQgMjkgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTUzNCAob2Zmc2V0IDI5IGxpbmVz KS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0IDE3NTAgKG9mZnNldCAyOSBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L21lbWlmL21lbWlmX3NvY2tldC5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L21lbWlmL3J0ZV9ldGhfbWVtaWYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9tbHg0L21seDRfZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NC9tbHg0X2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRf aW50ci5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEuYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKdWludDY0X3QKbWx4NF9nZXRfcnhfcXVldWVfb2Zm bG9hZHMoc3RydWN0IG1seDRfcHJpdiAqcHJpdikKewoJdWludDY0X3Qgb2ZmbG9hZHMgPSBERVZf UlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQkJICAgIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwKCQkJ ICAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIOwoKCWlmIChwcml2LT5od19jc3VtKQoJCW9mZmxv YWRzIHw9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNOwoJcmV0dXJuIG9mZmxvYWRzOwp9CgoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jOjY4MgpIdW5rICMy IHN1Y2NlZWRlZCBhdCA3MDQgKG9mZnNldCAxIGxpbmUpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCW1heF9yeF9wa3RsZW4gPSBkZXYtPmRhdGEtPm10dSArIFJURV9FVEhFUl9IRFJfTEVO ICsgUlRFX0VUSEVSX0NSQ19MRU47CglpZiAobWF4X3J4X3BrdGxlbiA8PSAobWJfbGVuIC0gUlRF X1BLVE1CVUZfSEVBRFJPT00pKSB7CgkJOwoJfSBlbHNlIGlmIChvZmZsb2FkcyAmIERFVl9SWF9P RkZMT0FEX1NDQVRURVIpIHsKCQl1aW50MzJfdCBzaXplID0gUlRFX1BLVE1CVUZfSEVBRFJPT00g KyBtYXhfcnhfcGt0bGVuOwoJCXVpbnQzMl90IHNnZXNfbjsKCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9tbHg0L21seDRfcnhxLmM6ODMyCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L21seDQvbWx4NF90eHEuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L2xp bnV4L21seDVfZXRoZGV2X29zLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9s aW51eC9tbHg1X29zLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTM0MyAob2Zmc2V0IC03IGxp bmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTYyNyAob2Zmc2V0IC03IGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQg MTQ2OSAob2Zmc2V0IC0xOSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUv bWx4NS5oLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDEyMjYgKG9mZnNldCA5IGxpbmVzKS4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2RlZnMuaC4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9tbHg1L21seDVfZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NS9tbHg1X2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1 L21seDVfZmxvdy5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93 X2R2LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTA5MjggKG9mZnNldCA5MSBsaW5lcykuCkh1 bmsgIzIgc3VjY2VlZGVkIGF0IDEwOTM4IChvZmZzZXQgOTEgbGluZXMpLgpIdW5rICMzIHN1Y2Nl ZWRlZCBhdCAxMDk1NCAob2Zmc2V0IDkxIGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTA5 NjYgKG9mZnNldCA5MSBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDE0NTA4IChvZmZzZXQg OTAgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxNDUxOSAob2Zmc2V0IDkwIGxpbmVzKS4K SHVuayAjNyBzdWNjZWVkZWQgYXQgMTQ1MzAgKG9mZnNldCA5MCBsaW5lcykuCkh1bmsgIzggc3Vj Y2VlZGVkIGF0IDE0NTQzIChvZmZzZXQgOTAgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAx NDY5NSAob2Zmc2V0IDkwIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9t bHg1X2Zsb3dfdmVyYnMuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxODM0IChvZmZzZXQgMTgg bGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAxODQ3IChvZmZzZXQgMTggbGluZXMpLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfcnNzLmMuLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y Ogp7CglzdHJ1Y3QgbWx4NV9wcml2ICpwcml2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKCXN0 cnVjdCBtbHg1X2Rldl9jb25maWcgKmNvbmZpZyA9ICZwcml2LT5jb25maWc7Cgl1aW50NjRfdCBv ZmZsb2FkcyA9IChERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQkJICAgICBERVZfUlhfT0ZGTE9B RF9USU1FU1RBTVAgfAoJCQkgICAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKTsKCglpZiAoIWNv bmZpZy0+bXBycS5lbmFibGVkKQoJCW9mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9CVUZG RVJfU1BMSVQ7CglpZiAoY29uZmlnLT5od19mY3Nfc3RyaXApCgkJb2ZmbG9hZHMgfD0gREVWX1JY X09GRkxPQURfS0VFUF9DUkM7CglpZiAoY29uZmlnLT5od19jc3VtKQoJCW9mZmxvYWRzIHw9IChE RVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkJICAgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tT VU0gfAoJCQkgICAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSk7CglpZiAoY29uZmlnLT5od192 bGFuX3N0cmlwKQoJCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CglpZiAo TUxYNV9MUk9fU1VQUE9SVEVEKGRldikpCgkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfVENQ X0xSTzsKCXJldHVybiBvZmZsb2FkczsKfQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L21seDUvbWx4NV9yeHEuYzozMzMKSHVuayAjMiBzdWNjZWVkZWQgYXQgMzYzIChvZmZzZXQg MSBsaW5lKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgNjk1IChvZmZzZXQgMSBsaW5lKS4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgbWx4NV9kZXZfY29uZmlnICpjb25maWcgPSAm cHJpdi0+Y29uZmlnOwoJdWludDY0X3Qgb2ZmbG9hZHMgPSBjb25mLT5vZmZsb2FkcyB8CgkJCSAg IGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzOwoJdW5zaWduZWQgaW50IGxyb19v bl9xdWV1ZSA9ICEhKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVENQX0xSTyk7Cgl1bnNpZ25l ZCBpbnQgbWF4X3J4X3BrdGxlbiA9IGxyb19vbl9xdWV1ZSA/CgkJCWRldi0+ZGF0YS0+ZGV2X2Nv bmYucnhtb2RlLm1heF9scm9fcGt0X3NpemUgOgoJCQlkZXYtPmRhdGEtPm10dSArICh1bnNpZ25l ZCBpbnQpUlRFX0VUSEVSX0hEUl9MRU4gKwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvbWx4NS9tbHg1X3J4cS5jOjEzMjUKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCWNv bmZpZy0+bXBycS5zdHJpZGVfc2l6ZV9uIDogbXBycV9zdHJpZGVfc2l6ZTsKCQl0bXBsLT5yeHEu c3RyZF9zaGlmdF9lbiA9IE1MWDVfTVBSUV9UV09fQllURV9TSElGVDsKCQl0bXBsLT5yeHEuc3Ry ZF9zY2F0dGVyX2VuID0KCQkJCSEhKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUik7 CgkJdG1wbC0+cnhxLm1wcnFfbWF4X21lbWNweV9sZW4gPSBSVEVfTUlOKGZpcnN0X21iX2ZyZWVf c2l6ZSwKCQkJCWNvbmZpZy0+bXBycS5tYXhfbWVtY3B5X2xlbik7CgkJbWF4X2xyb19zaXplID0g UlRFX01JTihtYXhfcnhfcGt0bGVuLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQv bWx4NS9tbHg1X3J4cS5jOjE0NzIKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJTUxYNV9B U1NFUlQobWF4X3J4X3BrdGxlbiA8PSBmaXJzdF9tYl9mcmVlX3NpemUpOwoJCXRtcGwtPnJ4cS5z Z2VzX24gPSAwOwoJCW1heF9scm9fc2l6ZSA9IG1heF9yeF9wa3RsZW47Cgl9IGVsc2UgaWYgKG9m ZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikgewoJCXVuc2lnbmVkIGludCBzZ2VzX247 CgoJCWlmIChscm9fb25fcXVldWUgJiYgZmlyc3RfbWJfZnJlZV9zaXplIDwKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHEuYzoxNDg3CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHR4X3ZlYy5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L21seDUvbWx4NV90eC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUv bWx4NV90eHEuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKbWx4NV9nZXRfdHhfcG9y dF9vZmZsb2FkcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKewoJc3RydWN0IG1seDVfcHJpdiAq cHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7Cgl1aW50NjRfdCBvZmZsb2FkcyA9IChERVZf VFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKCQkJICAgICBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VS VCk7CglzdHJ1Y3QgbWx4NV9kZXZfY29uZmlnICpjb25maWcgPSAmcHJpdi0+Y29uZmlnOwoKCWlm IChjb25maWctPmh3X2NzdW0pCgkJb2ZmbG9hZHMgfD0gKERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfAoJCQkgICAgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCSAgICAgREVWX1RYX09G RkxPQURfVENQX0NLU1VNKTsKCWlmIChjb25maWctPnRzbykKCQlvZmZsb2FkcyB8PSBERVZfVFhf T0ZGTE9BRF9UQ1BfVFNPOwoJaWYgKGNvbmZpZy0+dHhfcHApCgkJb2ZmbG9hZHMgfD0gREVWX1RY X09GRkxPQURfU0VORF9PTl9USU1FU1RBTVA7CglpZiAoY29uZmlnLT5zd3ApIHsKCQlpZiAoY29u ZmlnLT5zd3AgJiBNTFg1X1NXX1BBUlNJTkdfQ1NVTV9DQVApCgkJCW9mZmxvYWRzIHw9IERFVl9U WF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU07CgkJaWYgKGNvbmZpZy0+c3dwICYgTUxYNV9TV19Q QVJTSU5HX1RTT19DQVApCgkJCW9mZmxvYWRzIHw9IChERVZfVFhfT0ZGTE9BRF9JUF9UTkxfVFNP IHwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfVURQX1ROTF9UU08pOwoJfQoJaWYgKGNvbmZpZy0+ dHVubmVsX2VuKSB7CgkJaWYgKGNvbmZpZy0+aHdfY3N1bSkKCQkJb2ZmbG9hZHMgfD0gREVWX1RY X09GRkxPQURfT1VURVJfSVBWNF9DS1NVTTsKCQlpZiAoY29uZmlnLT50c28pIHsKCQkJaWYgKGNv bmZpZy0+dHVubmVsX2VuICYKCQkJCU1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfVlhMQU5fQ0FQKQoJ CQkJb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTzsKCQkJaWYgKGNvbmZp Zy0+dHVubmVsX2VuICYKCQkJCU1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfR1JFX0NBUCkKCQkJCW9m ZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPOwoJCQlpZiAoY29uZmlnLT50dW5u ZWxfZW4gJgoJCQkJTUxYNV9UVU5ORUxFRF9PRkZMT0FEU19HRU5FVkVfQ0FQKQoJCQkJb2ZmbG9h ZHMgfD0gREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU087CgkJfQoJfQoJaWYgKCFjb25maWct Pm1wcnEuZW5hYmxlZCkKCQlvZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJF RTsKCXJldHVybiBvZmZsb2FkczsKfQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L21seDUvbWx4NV90eHEuYzo5OApIdW5rICMyIHN1Y2NlZWRlZCBhdCA3OTQgKG9mZnNldCAtNyBs aW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDg2MyAob2Zmc2V0IC03IGxpbmVzKS4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJCSAgICBNTFg1X01BWF9UU09fSEVBREVSKTsKCQl0 eHFfY3RybC0+dHhxLnRzb19lbiA9IDE7Cgl9CglpZiAoKChERVZfVFhfT0ZGTE9BRF9WWExBTl9U TkxfVFNPICYgdHhxX2N0cmwtPnR4cS5vZmZsb2FkcykgJiYKCSAgICAoY29uZmlnLT50dW5uZWxf ZW4gJiBNTFg1X1RVTk5FTEVEX09GRkxPQURTX1ZYTEFOX0NBUCkpIHwKCSAgICgoREVWX1RYX09G RkxPQURfR1JFX1ROTF9UU08gJiB0eHFfY3RybC0+dHhxLm9mZmxvYWRzKSAmJgoJICAgIChjb25m aWctPnR1bm5lbF9lbiAmIE1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfR1JFX0NBUCkpIHwKCSAgICgo REVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gJiB0eHFfY3RybC0+dHhxLm9mZmxvYWRzKSAm JgoJICAgIChjb25maWctPnR1bm5lbF9lbiAmIE1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfR0VORVZF X0NBUCkpIHwKCSAgIChjb25maWctPnN3cCAgJiBNTFg1X1NXX1BBUlNJTkdfVFNPX0NBUCkpCgkJ dHhxX2N0cmwtPnR4cS50dW5uZWxfZW4gPSAxOwoJdHhxX2N0cmwtPnR4cS5zd3BfZW4gPSAoKChE RVZfVFhfT0ZGTE9BRF9JUF9UTkxfVFNPIHwKCQkJCSAgREVWX1RYX09GRkxPQURfVURQX1ROTF9U U08pICYKCQkJCSAgdHhxX2N0cmwtPnR4cS5vZmZsb2FkcykgJiYgKGNvbmZpZy0+c3dwICYKCQkJ CSAgTUxYNV9TV19QQVJTSU5HX1RTT19DQVApKSB8CgkJCQkoKERFVl9UWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU0gJgoJCQkJIHR4cV9jdHJsLT50eHEub2ZmbG9hZHMpICYmIChjb25maWctPnN3 cCAmCgkJCQkgTUxYNV9TV19QQVJTSU5HX0NTVU1fQ0FQKSk7Cn0KCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV90eHEuYzo5NzgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NS9tbHg1X3ZsYW4uYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1 L3dpbmRvd3MvbWx4NV9vcy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJICogUmVt b3ZlIHRoaXMgY2hlY2sgb25jZSBEUERLIHN1cHBvcnRzIGxhcmdlci92YXJpYWJsZQoJICogaW5k aXJlY3Rpb24gdGFibGVzLgoJICovCglpZiAoY29uZmlnLT5pbmRfdGFibGVfbWF4X3NpemUgPiAo dW5zaWduZWQgaW50KUVUSF9SU1NfUkVUQV9TSVpFXzUxMikKCQljb25maWctPmluZF90YWJsZV9t YXhfc2l6ZSA9IEVUSF9SU1NfUkVUQV9TSVpFXzUxMjsKCURSVl9MT0coREVCVUcsICJtYXhpbXVt IFJ4IGluZGlyZWN0aW9uIHRhYmxlIHNpemUgaXMgJXUiLAoJCWNvbmZpZy0+aW5kX3RhYmxlX21h eF9zaXplKTsKCWlmIChjb25maWctPmh3X3BhZGRpbmcpIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L21seDUvd2luZG93cy9tbHg1X29zLmM6NDg1CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L212bmV0YS9tdm5ldGFfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7Cgl9CgoJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYudHht b2RlLm9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykKCQlwcml2LT5tdWx0aXNl ZyA9IDE7CgoJcHBpb19wYXJhbXMgPSAmcHJpdi0+cHBpb19wYXJhbXM7CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRhX2V0aGRldi5jOjEyNgpIdW5rICMzIHN1 Y2NlZWRlZCBhdCAxNTUgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgNTEw IChvZmZzZXQgNyBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L212bmV0YS9tdm5l dGFfZXRoZGV2LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgTVJWTF9O RVRBX01SVV9UT19NVFUobXJ1KQkoKG1ydSkgLSBNUlZMX05FVEFfSERSU19MRU4pCgovKiogUngg b2ZmbG9hZHMgY2FwYWJpbGl0aWVzICovCiNkZWZpbmUgTVZORVRBX1JYX09GRkxPQURTIChERVZf UlhfT0ZGTE9BRF9DSEVDS1NVTSkKCi8qKiBUeCBvZmZsb2FkcyBjYXBhYmlsaXRpZXMgKi8KI2Rl ZmluZSBNVk5FVEFfVFhfT0ZGTE9BRF9DSEVDS1NVTSAoREVWX1RYX09GRkxPQURfSVBWNF9DS1NV TSB8IFwKCQkJCSAgICBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gIHwgXAoJCQkJICAgIERFVl9U WF9PRkZMT0FEX1RDUF9DS1NVTSkKI2RlZmluZSBNVk5FVEFfVFhfT0ZGTE9BRFMgKE1WTkVUQV9U WF9PRkZMT0FEX0NIRUNLU1VNIHwgXAoJCQkgICAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykK CiNkZWZpbmUgTVZORVRBX1RYX1BLVF9PRkZMT0FEUyAoUEtUX1RYX0lQX0NLU1VNIHwgXAoJCQkJ UEtUX1RYX1RDUF9DS1NVTSB8IFwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L212 bmV0YS9tdm5ldGFfZXRoZGV2Lmg6NTQKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZuZXRh L212bmV0YV9yeHR4LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNzM1IChvZmZzZXQgMSBsaW5l KS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZwcDIvbXJ2bF9ldGhkZXYuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2RlZmluZSBNUlZMX0NPT0tJRV9ISUdIX0FERFJfTUFT SyAweGZmZmZmZjAwMDAwMDAwMDAKCi8qKiBQb3J0IFJ4IG9mZmxvYWQgY2FwYWJpbGl0aWVzICov CiNkZWZpbmUgTVJWTF9SWF9PRkZMT0FEUyAoREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBc CgkJCSAgREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0pCgovKiogUG9ydCBUeCBvZmZsb2FkcyBjYXBh YmlsaXRpZXMgKi8KI2RlZmluZSBNUlZMX1RYX09GRkxPQURfQ0hFQ0tTVU0gKERFVl9UWF9PRkZM T0FEX0lQVjRfQ0tTVU0gfCBcCgkJCQkgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgfCBcCgkJ CQkgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkKI2RlZmluZSBNUlZMX1RYX09GRkxPQURTIChN UlZMX1RYX09GRkxPQURfQ0hFQ0tTVU0gfCBcCgkJCSAgREVWX1RYX09GRkxPQURfTVVMVElfU0VH UykKCiNkZWZpbmUgTVJWTF9UWF9QS1RfT0ZGTE9BRFMgKFBLVF9UWF9JUF9DS1NVTSB8IFwKCQkJ ICAgICAgUEtUX1RYX1RDUF9DS1NVTSB8IFwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L212cHAyL21ydmxfZXRoZGV2LmM6NTgKSHVuayAjMiBzdWNjZWVkZWQgYXQgNDQzIChvZmZz ZXQgMSBsaW5lKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgNDg0IChvZmZzZXQgMSBsaW5lKS4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7Cgl9CgoJaWYgKGRldi0+ ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfTVVMVElfU0VH UykKCQlwcml2LT5tdWx0aXNlZyA9IDE7CgoJcmV0ID0gbXJ2bF9jb25maWd1cmVfcnhxcyhwcml2 LCBkZXYtPmRhdGEtPnBvcnRfaWQsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9t dnBwMi9tcnZsX2V0aGRldi5jOjUwMgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA1MzAgKG9mZnNldCA2 IGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgNjMyIChvZmZzZXQgOSBsaW5lcykuCkh1bmsg Izcgc3VjY2VlZGVkIGF0IDY1MyAob2Zmc2V0IDkgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBh dCA2NzMgKG9mZnNldCA5IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgOTAyIChvZmZzZXQg OSBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCA5MzggKG9mZnNldCA5IGxpbmVzKS4KSHVu ayAjMTEgc3VjY2VlZGVkIGF0IDEyMTEgKG9mZnNldCA5IGxpbmVzKS4KSHVuayAjMTIgc3VjY2Vl ZGVkIGF0IDE3MTggKG9mZnNldCA5IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDE3NDIg KG9mZnNldCA5IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDE4NzMgKG9mZnNldCA5IGxp bmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0IDE4ODggKG9mZnNldCA5IGxpbmVzKS4KSHVuayAj MTYgc3VjY2VlZGVkIGF0IDIwMzMgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRl ZCBhdCAyMTkzIChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMjIwMiAo b2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDIyNTEgKG9mZnNldCAxMSBs aW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCAyMzQwIChvZmZzZXQgMTEgbGluZXMpLgpIdW5r ICMyMSBzdWNjZWVkZWQgYXQgMzE2MyAob2Zmc2V0IDExIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbmV0dnNjL2huX2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L25ldHZzYy9obl9ybmRpcy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mYi9u ZmJfZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZiL25mYl9yeC5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfY29tbW9uLmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CglyeG1vZGUgPSAmZGV2X2NvbmYtPnJ4bW9kZTsKCXR4bW9kZSA9 ICZkZXZfY29uZi0+dHhtb2RlOwoKCWlmIChyeG1vZGUtPm9mZmxvYWRzICYgREVWX1JYX09GRkxP QURfSVBWNF9DS1NVTSkgewoJCWlmIChody0+Y2FwICYgTkZQX05FVF9DRkdfQ1RSTF9SWENTVU0p CgkJCWN0cmwgfD0gTkZQX05FVF9DRkdfQ1RSTF9SWENTVU07Cgl9CgoJaWYgKHJ4bW9kZS0+b2Zm bG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQKSB7CgkJaWYgKGh3LT5jYXAgJiBORlBf TkVUX0NGR19DVFJMX1JYVkxBTikKCQkJY3RybCB8PSBORlBfTkVUX0NGR19DVFJMX1JYVkxBTjsK CX0KCglody0+bXR1ID0gZGV2LT5kYXRhLT5tdHU7CgoJaWYgKHR4bW9kZS0+b2ZmbG9hZHMgJiBE RVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCkKCQljdHJsIHw9IE5GUF9ORVRfQ0ZHX0NUUkxfVFhW TEFOOwoKCS8qIEwyIGJyb2FkY2FzdCAqLwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvbmZwL25mcF9jb21tb24uYzozNTkKSHVuayAjNCBzdWNjZWVkZWQgYXQgMzg0IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMzk4IChvZmZzZXQgMSBsaW5lKS4KSHVuayAj NiBzdWNjZWVkZWQgYXQgNDg2IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQg NTA1IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgNzAyIChvZmZzZXQgMSBs aW5lKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgl9OwoKCWlmIChody0+Y2FwICYgTkZQ X05FVF9DRkdfQ1RSTF9SU1MpIHsKCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IERFVl9S WF9PRkZMT0FEX1JTU19IQVNIOwoKCQlkZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9 IEVUSF9SU1NfSVBWNCB8CgkJCQkJCSAgIEVUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8CgkJCQkJ CSAgIEVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8CgkJCQkJCSAgIEVUSF9SU1NfSVBWNiB8CgkJ CQkJCSAgIEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8CgkJCQkJCSAgIEVUSF9SU1NfTk9ORlJB R19JUFY2X1VEUDsKCgkJZGV2X2luZm8tPnJldGFfc2l6ZSA9IE5GUF9ORVRfQ0ZHX1JTU19JVEJM X1NaOwoJCWRldl9pbmZvLT5oYXNoX2tleV9zaXplID0gTkZQX05FVF9DRkdfUlNTX0tFWV9TWjsK CX0KCglkZXZfaW5mby0+c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzFHIHwgRVRIX0xJTktf U1BFRURfMTBHIHwKCQkJICAgICAgIEVUSF9MSU5LX1NQRUVEXzI1RyB8IEVUSF9MSU5LX1NQRUVE XzQwRyB8CgkJCSAgICAgICBFVEhfTElOS19TUEVFRF81MEcgfCBFVEhfTElOS19TUEVFRF8xMDBH OwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZw X2NvbW1vbi5jOjc1NwpIdW5rICMxMCBzdWNjZWVkZWQgYXQgODQ3IChvZmZzZXQgNCBsaW5lcyku Ckh1bmsgIzExIHN1Y2NlZWRlZCBhdCA5OTAgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzEyIHN1 Y2NlZWRlZCBhdCAxMDM1IChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQg MTExNiAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDExNTUgKG9mZnNl dCAxNyBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAxMjQwIChvZmZzZXQgMTcgbGluZXMp LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jLi4uCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZXRoZGV2X3ZmLmMuLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbmdiZS9uZ2JlX2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L251bGwvcnRlX2V0aF9udWxsLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0 ZW9udHgvb2N0ZW9udHhfZXRoZGV2LmMuLi4KSHVuayAjNiBzdWNjZWVkZWQgYXQgNTM0IChvZmZz ZXQgNCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCS8qIFNldHVwIHNjYXR0 ZXIgbW9kZSBpZiBuZWVkZWQgYnkganVtYm8gKi8KCWlmIChkYXRhLT5tdHUgPiBidWZmc3opIHsK CQluaWMtPnJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgkJbmljLT5yeF9v ZmZsb2FkX2ZsYWdzIHw9IG9jdGVvbnR4X3J4X29mZmxvYWRfZmxhZ3MoZXRoX2Rldik7CgkJbmlj LT50eF9vZmZsb2FkX2ZsYWdzIHw9IG9jdGVvbnR4X3R4X29mZmxvYWRfZmxhZ3MoZXRoX2Rldik7 Cgl9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9l dGhkZXYuYzo1NzEKSHVuayAjOCBzdWNjZWVkZWQgYXQgODU0IChvZmZzZXQgMTEgbGluZXMpLgpI dW5rICM5IHN1Y2NlZWRlZCBhdCAxMzY3IChvZmZzZXQgMTEgbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuaC4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKI2RlZmluZSBPQ0NUWF9NQVhfTVRVCQkoT0NDVFhfTUFYX0ZSUyAtIE9D Q1RYX0wyX09WRVJIRUFEKQoKI2RlZmluZSBPQ1RFT05UWF9SWF9PRkZMT0FEUwkJKAkJCQkgICBc CgkJCQkJIERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNCSB8IFwKCQkJCQkgREVWX1JYX09GRkxPQURf U0NUUF9DS1NVTSAgICAgICB8IFwKCQkJCQkgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NV TSB8IFwKCQkJCQkgREVWX1JYX09GRkxPQURfU0NBVFRFUgkgICAgICAgICB8IFwKCQkJCQkgREVW X1JYX09GRkxPQURfU0NBVFRFUgkJIHwgXAoJCQkJCSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRF UikKCiNkZWZpbmUgT0NURU9OVFhfVFhfT0ZGTE9BRFMJCSgJCQkJICAgXAoJCQkJCSBERVZfVFhf T0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRQkgfCBcCgkJCQkJIERFVl9UWF9PRkZMT0FEX01UX0xPQ0tG UkVFCSB8IFwKCQkJCQkgREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKCQkJCQkg REVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNCSB8IFwKCQkJCQkgREVWX1RYX09GRkxPQURf SVBWNF9DS1NVTQkgfCBcCgkJCQkJIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTQkgfCBcCgkJCQkJ IERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTQkgfCBcCgkJCQkJIERFVl9UWF9PRkZMT0FEX1NDVFBf Q0tTVU0JIHwgXAoJCQkJCSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQoKc3RhdGljIGlubGlu ZSBzdHJ1Y3Qgb2N0ZW9udHhfbmljICoKb2N0ZW9udHhfcG1kX3ByaXYoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYpCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rl b250eF9ldGhkZXYuaDo1NQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rl b250eF9ldGhkZXZfb3BzLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgy L290eDJfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglidWZmc3ogPSBt YnBfcHJpdi0+bWJ1Zl9kYXRhX3Jvb21fc2l6ZSAtIFJURV9QS1RNQlVGX0hFQURST09NOwoKCWlm IChldGhfZGV2LT5kYXRhLT5tdHUgKyAodWludDMyX3QpTklYX0wyX09WRVJIRUFEID4gYnVmZnN6 KSB7CgkJZGV2LT5yeF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwoJCWRldi0+ dHhfb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCgkJLyogU2V0dGluZyB1 cCB0aGUgcnhbdHhdX29mZmxvYWRfZmxhZ3MgZHVlIHRvIGNoYW5nZQoJCSAqIGluIHJ4W3R4XV9v ZmZsb2Fkcy4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgy X2V0aGRldi5jOjkxNApIdW5rICMxMiBzdWNjZWVkZWQgYXQgMjU2NCAob2Zmc2V0IDEgbGluZSku CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldi5oLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojZGVmaW5lIENRX1RJTUVSX1RIUkVTSF9ERUZBVUxU CTB4QVVMTCAvKiB+MXVzZWMgaS5lICgweEEgKiAxMDBuc2VjKSAqLwojZGVmaW5lIENRX1RJTUVS X1RIUkVTSF9NQVggICAgIDI1NQoKI2RlZmluZSBOSVhfUlNTX0wzX0w0X1NSQ19EU1QgIChFVEhf UlNTX0wzX1NSQ19PTkxZIHwgRVRIX1JTU19MM19EU1RfT05MWSBcCgkJCQl8IEVUSF9SU1NfTDRf U1JDX09OTFkgfCBFVEhfUlNTX0w0X0RTVF9PTkxZKQoKI2RlZmluZSBOSVhfUlNTX09GRkxPQUQJ CShFVEhfUlNTX1BPUlQgfCBFVEhfUlNTX0lQIHwgRVRIX1JTU19VRFAgfFwKCQkJCSBFVEhfUlNT X1RDUCB8IEVUSF9SU1NfU0NUUCB8IFwKCQkJCSBFVEhfUlNTX1RVTk5FTCB8IEVUSF9SU1NfTDJf UEFZTE9BRCB8IFwKCQkJCSBOSVhfUlNTX0wzX0w0X1NSQ19EU1QgfCBFVEhfUlNTX0xFVkVMX01B U0sgfCBcCgkJCQkgRVRIX1JTU19DX1ZMQU4pCgojZGVmaW5lIE5JWF9UWF9PRkZMT0FEX0NBUEEg KCBcCglERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRQl8IFwKCURFVl9UWF9PRkZMT0FEX01U X0xPQ0tGUkVFCXwgXAoJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQJfCBcCglERVZfVFhfT0ZG TE9BRF9RSU5RX0lOU0VSVAl8IFwKCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0JfCBc CglERVZfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0JfCBcCglERVZfVFhfT0ZGTE9BRF9UQ1Bf Q0tTVU0JfCBcCglERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0JfCBcCglERVZfVFhfT0ZGTE9BRF9T Q1RQX0NLU1VNCXwgXAoJREVWX1RYX09GRkxPQURfVENQX1RTTwkJfCBcCglERVZfVFhfT0ZGTE9B RF9WWExBTl9UTkxfVFNPICAgIHwgXAoJREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gICB8 IFwKCURFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPCXwgXAoJREVWX1RYX09GRkxPQURfTVVMVElf U0VHUwl8IFwKCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0pCgojZGVmaW5lIE5JWF9SWF9PRkZM T0FEX0NBUEEgKCBcCglERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTQkJfCBcCglERVZfUlhfT0ZGTE9B RF9TQ1RQX0NLU1VNCXwgXAoJREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKCURF Vl9SWF9PRkZMT0FEX1NDQVRURVIJCXwgXAoJREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VN CXwgXAoJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUAl8IFwKCURFVl9SWF9PRkZMT0FEX1ZMQU5f RklMVEVSCXwgXAoJREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUAl8IFwKCURFVl9SWF9PRkZMT0FE X1RJTUVTVEFNUAl8IFwKCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIKQoKI2RlZmluZSBOSVhfREVG QVVMVF9SU1NfQ1RYX0dST1VQICAwCiNkZWZpbmUgTklYX0RFRkFVTFRfUlNTX01DQU1fSURYICAt MQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2 Lmg6MTE3CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldl9k ZXZhcmdzLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRo ZGV2X29wcy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDMwIChvZmZzZXQgNCBsaW5lcykuCkh1 bmsgIzIgc3VjY2VlZGVkIGF0IDU5NiAob2Zmc2V0IDI4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2X3NlYy5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9mbG93X2N0cmwuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9mbG93X3BhcnNlLmMuLi4KSHVuayAjMiBzdWNjZWVkZWQg YXQgMTE4OCAob2Zmc2V0IDIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rl b250eDIvb3R4Ml9saW5rLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgy L290eDJfbWNhc3QuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4 Ml9wdHAuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9yc3Mu Yy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9yeC5jLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX3R4LmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfdmxhbi5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L29jdGVvbnR4X2VwL290eF9lcF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCglvdHhfZXB2ZiA9IE9UWF9FUF9ERVYoZXRoX2Rldik7CgoJZGV2aW5m by0+c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzEwRzsKCWRldmluZm8tPm1heF9yeF9xdWV1 ZXMgPSBvdHhfZXB2Zi0+bWF4X3J4X3F1ZXVlczsKCWRldmluZm8tPm1heF90eF9xdWV1ZXMgPSBv dHhfZXB2Zi0+bWF4X3R4X3F1ZXVlczsKCglkZXZpbmZvLT5taW5fcnhfYnVmc2l6ZSA9IE9UWF9F UF9NSU5fUlhfQlVGX1NJWkU7CglkZXZpbmZvLT5tYXhfcnhfcGt0bGVuID0gT1RYX0VQX01BWF9Q S1RfU1o7CglkZXZpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVS OwoJZGV2aW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsK CglkZXZpbmZvLT5tYXhfbWFjX2FkZHJzID0gT1RYX0VQX01BWF9NQUNfQUREUlM7CgoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvb2N0ZW9udHhfZXAvb3R4X2VwX2V0aGRldi5jOjMz CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4X2VwL290eF9lcF9yeHR4LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cglkcm9xX3BrdC0+bDRfbGVuID0gaGRyX2xlbnMu bDRfbGVuOwoKCWlmIChkcm9xX3BrdC0+bmJfc2VncyA+IDEgJiYKCSAgICAhKG90eF9lcC0+cnhf b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSkgewoJCXJ0ZV9wa3RtYnVmX2ZyZWUo ZHJvcV9wa3QpOwoJCWdvdG8gb3FfcmVhZF9mYWlsOwoJfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvb2N0ZW9udHhfZXAvb3R4X2VwX3J4dHguYzo5NTQKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvcGNhcC9wY2FwX2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L3BmZS9wZmVfZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcWVkZS9i YXNlL21jcF9wdWJsaWMuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9xZWRlL3FlZGVf ZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCXJldHVybiAtRU5PTUVN OwoJfQoKCWlmIChyeG1vZGUtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikKCQll dGhfZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSAxOwoKCWlmIChxZWRlX3N0YXJ0X3Zwb3J0KHFk ZXYsIGV0aF9kZXYtPmRhdGEtPm10dSkpCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9xZWRlL3FlZGVfZXRoZGV2LmM6MTMxMgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMTMyNyAob2Zm c2V0IDYgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWRldl9pbmZvLT5yZXRh X3NpemUgPSBFQ09SRV9SU1NfSU5EX1RBQkxFX1NJWkU7CglkZXZfaW5mby0+aGFzaF9rZXlfc2l6 ZSA9IEVDT1JFX1JTU19LRVlfU0laRSAqIHNpemVvZih1aW50MzJfdCk7CglkZXZfaW5mby0+Zmxv d190eXBlX3Jzc19vZmZsb2FkcyA9ICh1aW50NjRfdClRRURFX1JTU19PRkZMT0FEX0FMTDsKCWRl dl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSAoREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTQl8CgkJ CQkgICAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTQl8CgkJCQkgICAgIERFVl9SWF9PRkZMT0FE X1RDUF9DS1NVTQl8CgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJ CQkJICAgICBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPCXwKCQkJCSAgICAgREVWX1JYX09GRkxPQURf S0VFUF9DUkMgICAgfAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCXwKCQkJCSAgICAg REVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9WTEFO X1NUUklQICB8CgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKTsKCWRldl9pbmZvLT5y eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwoKCS8qIFRYIG9mZmxvYWRzIGFyZSBvbiBhIHBlci1w YWNrZXQgYmFzaXMsIHNvIGl0IGlzIGFwcGxpY2FibGUKCSAqIHRvIGJvdGggYXQgcG9ydCBhbmQg cXVldWUgbGV2ZWxzLgoJICovCglkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gKERFVl9UWF9P RkZMT0FEX1ZMQU5fSU5TRVJUCXwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTQl8 CgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTQl8CgkJCQkgICAgIERFVl9UWF9PRkZM T0FEX1RDUF9DS1NVTQl8CgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0g fAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTICB8CgkJCQkgICAgIERFVl9UWF9P RkZMT0FEX1RDUF9UU08JfAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwK CQkJCSAgICAgREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08pOwoJZGV2X2luZm8tPnR4X3F1 ZXVlX29mZmxvYWRfY2FwYSA9IGRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGE7CgoJZGV2X2luZm8t PmRlZmF1bHRfdHhjb25mID0gKHN0cnVjdCBydGVfZXRoX3R4Y29uZikgewoJCS5vZmZsb2FkcyA9 IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MsCgl9OwoKCWRldl9pbmZvLT5kZWZhdWx0X3J4Y29u ZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYzoxMzg1Ckh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAxNDMx IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAxNDY4IChvZmZzZXQgNyBs aW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAxNDgwIChvZmZzZXQgNyBsaW5lcykuCkh1bmsg IzE1IHN1Y2NlZWRlZCBhdCAyMDE5IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRl ZCBhdCAyMDQ4IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAyMDk1IChv ZmZzZXQgNyBsaW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAyMjI4IChvZmZzZXQgNyBsaW5l cykuCkh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAyMjUyIChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzIw IHN1Y2NlZWRlZCBhdCAyMjg5IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzIxIHN1Y2NlZWRlZCBh dCAyNzQ1IChvZmZzZXQgMjcgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9xZWRl L3FlZGVfZmlsdGVyLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4 dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWJ1ZnN6ID0gKHVpbnQxNl90KXJ0 ZV9wa3RtYnVmX2RhdGFfcm9vbV9zaXplKG1wKSAtIFJURV9QS1RNQlVGX0hFQURST09NOwoJLyog Y2FjaGUgYWxpZ24gdGhlIG1idWYgc2l6ZSB0byBzaW1wbGZ5IHJ4X2J1Zl9zaXplIGNhbGN1bGF0 aW9uICovCglidWZzeiA9IFFFREVfRkxPT1JfVE9fQ0FDSEVfTElORV9TSVpFKGJ1ZnN6KTsKCWlm ICgocnhtb2RlLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpCXx8CgkgICAgKG1h eF9yeF9wa3RsZW4gKyBRRURFX0VUSF9PVkVSSEVBRCkgPiBidWZzeikgewoJCWlmICghZGV2LT5k YXRhLT5zY2F0dGVyZWRfcngpIHsKCQkJRFBfSU5GTyhlZGV2LCAiRm9yY2luZyBzY2F0dGVyLWdh dGhlciBtb2RlXG4iKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3FlZGUvcWVk ZV9yeHR4LmM6MjQ5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4Lmgu Li4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcmluZy9ydGVfZXRoX3JpbmcuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQg ODEgKG9mZnNldCAtMjQgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA5NiAob2Zmc2V0IC0y NCBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDMzNyAob2Zmc2V0IC02MyBsaW5lcykuCkh1 bmsgIzQgc3VjY2VlZGVkIGF0IDgyNyAob2Zmc2V0IC03MSBsaW5lcykuCkh1bmsgIzUgc3VjY2Vl ZGVkIGF0IDgzNiAob2Zmc2V0IC03MSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L3NmYy9zZmNfZWYxMDBfcnguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCSAg U0ZDX0RQX1JYX0ZFQVRfSU5UUiB8CgkJCQkgIFNGQ19EUF9SWF9GRUFUX1NUQVRTLAoJLmRldl9v ZmZsb2FkX2NhcGEJPSAwLAoJLnF1ZXVlX29mZmxvYWRfY2FwYQk9IERFVl9SWF9PRkZMT0FEX0NI RUNLU1VNIHwKCQkJCSAgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJCQkgIERF Vl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8CgkJCQkgIERFVl9SWF9PRkZMT0FEX1NDQVRU RVIgfAoJCQkJICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCwKCS5nZXRfZGV2X2luZm8JCT0gc2Zj X2VmMTAwX3J4X2dldF9kZXZfaW5mbywKCS5xc2l6ZV91cF9yaW5ncwkJPSBzZmNfZWYxMDBfcnhf cXNpemVfdXBfcmluZ3MsCgkucWNyZWF0ZQkJPSBzZmNfZWYxMDBfcnhfcWNyZWF0ZSwKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMDBfcnguYzo5NzkKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEwMF90eC5jLi4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJLmZlYXR1cmVzCQk9IFNGQ19EUF9UWF9GRUFUX01VTFRJX1BST0NFU1Mg fAoJCQkJICBTRkNfRFBfVFhfRkVBVF9TVEFUUywKCS5kZXZfb2ZmbG9hZF9jYXBhCT0gMCwKCS5x dWV1ZV9vZmZsb2FkX2NhcGEJPSBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CgkJCQkgIERF Vl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkJICBERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0 X0NLU1VNIHwKCQkJCSAgREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKCQkJCSAgREVW X1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJCSAgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwK CQkJCSAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CgkJCQkgIERFVl9UWF9PRkZMT0FEX1RD UF9UU08gfAoJCQkJICBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKCQkJCSAgREVWX1RY X09GRkxPQURfR0VORVZFX1ROTF9UU08sCgkuZ2V0X2Rldl9pbmZvCQk9IHNmY19lZjEwMF9nZXRf ZGV2X2luZm8sCgkucXNpemVfdXBfcmluZ3MJCT0gc2ZjX2VmMTAwX3R4X3FzaXplX3VwX3Jpbmdz LAoJLnFjcmVhdGUJCT0gc2ZjX2VmMTAwX3R4X3FjcmVhdGUsCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTAwX3R4LmM6OTcxCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L3NmYy9zZmNfZWYxMF9lc3NiX3J4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvc2ZjL3NmY19lZjEwX3J4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3Nm Y19lZjEwX3R4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19ldGhkZXYu Yy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMDIgKG9mZnNldCAtMyBsaW5lcykuCkh1bmsgIzIg c3VjY2VlZGVkIGF0IDE0MiAob2Zmc2V0IC0zIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQg OTEzIChvZmZzZXQgLTc1IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgOTUzIChvZmZzZXQg LTc1IGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMTI0OCAob2Zmc2V0IC02NCBsaW5lcyku Ckh1bmsgIzYgc3VjY2VlZGVkIGF0IDE0NzMgKG9mZnNldCAtNDkgbGluZXMpLgpIdW5rICM3IHN1 Y2NlZWRlZCBhdCAxNjAyIChvZmZzZXQgLTQ5IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQg MTcyOCAob2Zmc2V0IC00OSBsaW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDE3NzggKG9mZnNl dCAtNDkgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4u LgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAzOTAgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfcG9ydC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDU3 NyAob2Zmc2V0IDQgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX3Jl cHIuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvc2ZjL3NmY19yZXByLmM6IGRvZXMgbm90IGV4aXN0 IGluIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfcnguYy4uLgpIdW5r ICMxIHN1Y2NlZWRlZCBhdCA2NDcgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVk IGF0IDkzMCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTE0MSAob2Zm c2V0IDEgbGluZSkuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJ4cV9pbmZvLT50eXBl ID0gRUZYX1JYUV9UWVBFX0RFRkFVTFQ7CgoJcnhxX2luZm8tPnR5cGVfZmxhZ3MgfD0KCQkob2Zm bG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSA/CgkJRUZYX1JYUV9GTEFHX1NDQVRURVIg OiBFRlhfUlhRX0ZMQUdfTk9ORTsKCglpZiAoKGVuY3AtPmVuY190dW5uZWxfZW5jYXBzdWxhdGlv bnNfc3VwcG9ydGVkICE9IDApICYmCgkgICAgKHNmY19kcF9yeF9vZmZsb2FkX2NhcGEoc2EtPnBy aXYuZHBfcngpICYKCSAgICAgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSkgIT0gMCkK CQlyeHFfaW5mby0+dHlwZV9mbGFncyB8PSBFRlhfUlhRX0ZMQUdfSU5ORVJfQ0xBU1NFUzsKCglp ZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKCQlyeHFfaW5mby0+dHlwZV9m bGFncyB8PSBFRlhfUlhRX0ZMQUdfUlNTX0hBU0g7CgoJaWYgKChzYS0+bmVnb3RpYXRlZF9yeF9t ZXRhZGF0YSAmIFJURV9FVEhfUlhfTUVUQURBVEFfVVNFUl9GTEFHKSAhPSAwKQoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZHJpdmVycy9uZXQvc2ZjL3NmY19yeC5jOjExNjYKSHVuayAjNSBzdWNjZWVk ZWQgYXQgMTIwNSAob2Zmc2V0IC02IGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMTMwMSAo b2Zmc2V0IC0xMiBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDE2MzMgKG9mZnNldCAtMTIg bGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxNjUzIChvZmZzZXQgLTEyIGxpbmVzKS4KSHVu ayAjOSBzdWNjZWVkZWQgYXQgMTgwOCAob2Zmc2V0IC0xMiBsaW5lcykuCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L3NmYy9zZmNfdHguYy4uLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA1MTUgKG9m ZnNldCAtMTQgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA4NjIgKG9mZnNldCAtMTQgbGlu ZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxMjI4IChvZmZzZXQgLTE0IGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvc29mdG5pYy9ydGVfZXRoX3NvZnRuaWMuYy4uLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9zemVkYXRhMi9ydGVfZXRoX3N6ZWRhdGEyLmMuLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvdGFwL3J0ZV9ldGhfdGFwLmMuLi4KSHVuayAjMTEgc3VjY2Vl ZGVkIGF0IDE3NjUgKG9mZnNldCA1IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDE3NzMg KG9mZnNldCA1IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDIyNjcgKG9mZnNldCA1IGxp bmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDI0NDEgKG9mZnNldCA1IGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvdGFwL3RhcF9yc3MuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYy4uLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA0 MDQgKG9mZnNldCAxNCBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDQ0NSAob2Zmc2V0IDE0 IGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgNDkzIChvZmZzZXQgMTQgbGluZXMpLgpIdW5r ICM2IHN1Y2NlZWRlZCBhdCA1MjMgKG9mZnNldCAxNCBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVk IGF0IDgyMSAob2Zmc2V0IDE0IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgODg0IChvZmZz ZXQgMTQgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxMDA2IChvZmZzZXQgMTQgbGluZXMp LgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMTM5NyAob2Zmc2V0IDE1IGxpbmVzKS4KSHVuayAjMTEg c3VjY2VlZGVkIGF0IDE0MzAgKG9mZnNldCAxNSBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBh dCAxNTk3IChvZmZzZXQgMTUgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCS8q IFNldHVwIHNjYXR0ZXIgbW9kZSBpZiBuZWVkZWQgYnkganVtYm8gKi8KCWlmIChkZXYtPmRhdGEt Pm10dSArICh1aW50MzJfdClOSUNfSFdfTDJfT1ZFUkhFQUQgKyAyICogVkxBTl9UQUdfU0laRSA+ IGJ1ZmZzeikKCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7CglpZiAoKHJ4X2NvbmYtPm9m ZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikgIT0gMCkKCQlkZXYtPmRhdGEtPnNjYXR0 ZXJlZF9yeCA9IDE7CgoJLyogU2V0dXAgTVRVICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYzoxNzExCkh1bmsgIzE0IHN1Y2NlZWRlZCBh dCAxOTE0IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMTkyNyAob2Zm c2V0IDE4IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDE5MzggKG9mZnNldCAxOCBsaW5l cykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAxOTczIChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMx OCBzdWNjZWVkZWQgYXQgMjA1MCAob2Zmc2V0IDE4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvdGh1bmRlcngvbmljdmZfZXRoZGV2LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CiNkZWZpbmUgTklDVkZfVU5LTk9XTl9EVVBMRVgJCTB4ZmYKCiNkZWZpbmUgTklDVkZf UlNTX09GRkxPQURfUEFTUzEgKCBcCglFVEhfUlNTX1BPUlQgfCBcCglFVEhfUlNTX0lQVjQgfCBc CglFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAg fCBcCglFVEhfUlNTX0lQVjYgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCglFVEhf UlNTX05PTkZSQUdfSVBWNl9VRFApCgojZGVmaW5lIE5JQ1ZGX1JTU19PRkZMT0FEX1RVTk5FTCAo IFwKCUVUSF9SU1NfVlhMQU4gfCBcCglFVEhfUlNTX0dFTkVWRSB8IFwKCUVUSF9SU1NfTlZHUkUp CgojZGVmaW5lIE5JQ1ZGX1RYX09GRkxPQURfQ0FQQSAoIFwKCURFVl9UWF9PRkZMT0FEX0lQVjRf Q0tTVU0gICAgICAgfCBcCglERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gICAgICAgIHwgXAoJREVW X1RYX09GRkxPQURfVENQX0NLU1VNICAgICAgICB8IFwKCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQ VjRfQ0tTVU0gfCBcCglERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSAgIHwgXAoJREVWX1RY X09GRkxPQURfTVVMVElfU0VHUykKCiNkZWZpbmUgTklDVkZfUlhfT0ZGTE9BRF9DQVBBICggXAoJ REVWX1JYX09GRkxPQURfQ0hFQ0tTVU0gICAgfCBcCglERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ ICB8IFwKCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgICAgIHwgXAoJREVWX1JYX09GRkxPQURfUlNT X0hBU0gpCgojZGVmaW5lIE5JQ1ZGX0RFRkFVTFRfUlhfRlJFRV9USFJFU0ggICAgMjI0CiNkZWZp bmUgTklDVkZfREVGQVVMVF9UWF9GUkVFX1RIUkVTSCAgICAyMjQKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L3RodW5kZXJ4L25pY3ZmX2V0aGRldi5oOjE2CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0 IDk5NyAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTAzMiAob2Zmc2V0 IC0xIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTA1MiAob2Zmc2V0IC0xIGxpbmVzKS4K SHVuayAjNCBzdWNjZWVkZWQgYXQgMTEzNyAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjNSBzdWNj ZWVkZWQgYXQgMTIzOSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMTI1 MyAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMTI3NCAob2Zmc2V0IC0x IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTMzMCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVu ayAjOSBzdWNjZWVkZWQgYXQgMTM1NiAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMTAgc3VjY2Vl ZGVkIGF0IDEzNzcgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAxMzky IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMTQxMyAob2Zmc2V0IC0x IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDE0MjggKG9mZnNldCAtMSBsaW5lcykuCkh1 bmsgIzE0IHN1Y2NlZWRlZCBhdCAxNDQ1IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMxNSBzdWNj ZWVkZWQgYXQgMTQ5NCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDE3 MDQgKG9mZnNldCAxMCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYgKGVy cikKCQlnb3RvIGVycm9yOwoKCWFsbG93ZWRfc3BlZWRzID0gRVRIX0xJTktfU1BFRURfMTAwTSB8 IEVUSF9MSU5LX1NQRUVEXzFHIHwKCQkJRVRIX0xJTktfU1BFRURfMTBHOwoKCWxpbmtfc3BlZWRz ID0gJmRldi0+ZGF0YS0+ZGV2X2NvbmYubGlua19zcGVlZHM7CglpZiAoKCgqbGlua19zcGVlZHMp ID4+IDEpICYgfihhbGxvd2VkX3NwZWVkcyA+PiAxKSkgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2LmM6MTc2MwpIdW5rICMxOCBzdWNjZWVkZWQg YXQgMTc4MyAob2Zmc2V0IDEwIGxpbmVzKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDI2MTEgKG9m ZnNldCAxMCBsaW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCAyNjQ0IChvZmZzZXQgMTAgbGlu ZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWludCB3YWl0ID0gMTsKCgltZW1zZXQo JmxpbmssIDAsIHNpemVvZihsaW5rKSk7CglsaW5rLmxpbmtfc3RhdHVzID0gRVRIX0xJTktfRE9X TjsKCWxpbmsubGlua19zcGVlZCA9IEVUSF9TUEVFRF9OVU1fTk9ORTsKCWxpbmsubGlua19kdXBs ZXggPSBFVEhfTElOS19IQUxGX0RVUExFWDsKCWxpbmsubGlua19hdXRvbmVnID0gIShkZXYtPmRh dGEtPmRldl9jb25mLmxpbmtfc3BlZWRzICYKCQkJRVRIX0xJTktfU1BFRURfRklYRUQpOwoKCWh3 LT5tYWMuZ2V0X2xpbmtfc3RhdHVzID0gdHJ1ZTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC90eGdiZS90eGdiZV9ldGhkZXYuYzoyNjk1Ckh1bmsgIzIyIHN1Y2NlZWRlZCBhdCAy NzIyIChvZmZzZXQgOSBsaW5lcykuCkh1bmsgIzIzIHN1Y2NlZWRlZCBhdCAyNzQyIChvZmZzZXQg OSBsaW5lcykuCkh1bmsgIzI0IHN1Y2NlZWRlZCBhdCAyOTk0IChvZmZzZXQgNCBsaW5lcykuCkh1 bmsgIzI1IHN1Y2NlZWRlZCBhdCAzMjI1IChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzI2IHN1Y2Nl ZWRlZCBhdCAzMzYzIChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzI3IHN1Y2NlZWRlZCBhdCAzNDA0 IChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzI4IHN1Y2NlZWRlZCBhdCAzNTkzIChvZmZzZXQgMTcg bGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgMzYyMiAob2Zmc2V0IDE3IGxpbmVzKS4KSHVu ayAjMzAgc3VjY2VlZGVkIGF0IDQyODEgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzMxIHN1Y2Nl ZWRlZCBhdCA0NjQ1IChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICMzMiBzdWNjZWVkZWQgYXQgNDY1 NiAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMzMgc3VjY2VlZGVkIGF0IDQ2ODAgKG9mZnNldCAx NyBsaW5lcykuCkh1bmsgIzM0IHN1Y2NlZWRlZCBhdCA0Njk1IChvZmZzZXQgMTcgbGluZXMpLgpI dW5rICMzNSBzdWNjZWVkZWQgYXQgNDkyNSAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMzYgc3Vj Y2VlZGVkIGF0IDQ5NTYgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzM3IHN1Y2NlZWRlZCBhdCA0 OTk2IChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICMzOCBzdWNjZWVkZWQgYXQgNTAwNCAob2Zmc2V0 IDE3IGxpbmVzKS4KSHVuayAjMzkgc3VjY2VlZGVkIGF0IDUwMTIgKG9mZnNldCAxNyBsaW5lcyku Ckh1bmsgIzQwIHN1Y2NlZWRlZCBhdCA1MDIwIChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICM0MSBz dWNjZWVkZWQgYXQgNTA1MiAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjNDIgc3VjY2VlZGVkIGF0 IDUwNjIgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzQzIHN1Y2NlZWRlZCBhdCA1MDcyIChvZmZz ZXQgMTcgbGluZXMpLgpIdW5rICM0NCBzdWNjZWVkZWQgYXQgNTA4MiAob2Zmc2V0IDE3IGxpbmVz KS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2LmguLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgVFhHQkVfRVRIX09WRVJIRUFEIChSVEVf RVRIRVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOKQoKI2RlZmluZSBUWEdCRV9SU1NfT0ZG TE9BRF9BTEwgKCBcCglFVEhfUlNTX0lQVjQgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1Ag fCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfCBcCglFVEhfUlNTX0lQVjYgfCBcCglFVEhf UlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCglF VEhfUlNTX0lQVjZfRVggfCBcCglFVEhfUlNTX0lQVjZfVENQX0VYIHwgXAoJRVRIX1JTU19JUFY2 X1VEUF9FWCkKCiNkZWZpbmUgVFhHQkVfTUlTQ19WRUNfSUQgICAgICAgICAgICAgICBSVEVfSU5U Ul9WRUNfWkVST19PRkZTRVQKI2RlZmluZSBUWEdCRV9SWF9WRUNfU1RBUlQgICAgICAgICAgICAg IFJURV9JTlRSX1ZFQ19SWFRYX09GRlNFVAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvdHhnYmUvdHhnYmVfZXRoZGV2Lmg6NjAKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhn YmUvdHhnYmVfZXRoZGV2X3ZmLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUv dHhnYmVfZmRpci5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2Zs b3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9pcHNlYy5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3BmLmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfcnh0eC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVk IGF0IDE5MzkgKG9mZnNldCAtMjEgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CXN0cnVjdCB0eGdiZV9odyAqaHcgPSBUWEdCRV9ERVZfSFcoZGV2KTsKCXN0cnVjdCBydGVfZXRo X2Rldl9zcmlvdiAqc3Jpb3YgPSAmUlRFX0VUSF9ERVZfU1JJT1YoZGV2KTsKCglvZmZsb2FkcyA9 IERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKCQkgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tT VU0gICB8CgkJICAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNICAgfAoJCSAgIERFVl9SWF9PRkZM T0FEX0tFRVBfQ1JDICAgIHwKCQkgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJICAg REVWX1JYX09GRkxPQURfUlNTX0hBU0ggfAoJCSAgIERFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgoJ aWYgKCF0eGdiZV9pc192ZihkZXYpKQoJCW9mZmxvYWRzIHw9IChERVZfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUiB8CgkJCSAgICAgREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8CgkJCSAgICAgREVW X1JYX09GRkxPQURfVkxBTl9FWFRFTkQpOwoKCS8qCgkgKiBSU0MgaXMgb25seSBzdXBwb3J0ZWQg YnkgUEYgZGV2aWNlcyBpbiBhIG5vbi1TUi1JT1YKCSAqIG1vZGUuCgkgKi8KCWlmIChody0+bWFj LnR5cGUgPT0gdHhnYmVfbWFjX3JhcHRvciAmJiAhc3Jpb3YtPmFjdGl2ZSkKCQlvZmZsb2FkcyB8 PSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPOwoKCWlmIChody0+bWFjLnR5cGUgPT0gdHhnYmVfbWFj X3JhcHRvcikKCQlvZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVA7CgoJb2Zm bG9hZHMgfD0gREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTTsKCiNpZmRlZiBSVEVfTElC X1NFQ1VSSVRZCglpZiAoZGV2LT5zZWN1cml0eV9jdHgpCgkJb2ZmbG9hZHMgfD0gREVWX1JYX09G RkxPQURfU0VDVVJJVFk7CiNlbmRpZgoKCXJldHVybiBvZmZsb2FkczsKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguYzoxOTcwCkh1bmsgIzMgc3VjY2Vl ZGVkIGF0IDIyMDIgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAyMzI5 IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMjU3OSAob2Zmc2V0IC0y MCBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDI4ODAgKG9mZnNldCAtMjAgbGluZXMpLgpI dW5rICM3IHN1Y2NlZWRlZCBhdCAyOTEwIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjOCBzdWNj ZWVkZWQgYXQgMjk2NCAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDMw MjYgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMzA2MyAob2Zmc2V0 IC0yMCBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAzMDgzIChvZmZzZXQgLTIwIGxpbmVz KS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDMwOTEgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMx MyBzdWNjZWVkZWQgYXQgMzExMCAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRl ZCBhdCAzMTMxIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0IDMyMDEg KG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQgYXQgMzIxNyAob2Zmc2V0IC0y MCBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAzMjMyIChvZmZzZXQgLTIwIGxpbmVzKS4K SHVuayAjMTggc3VjY2VlZGVkIGF0IDMyNTAgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMxOSBz dWNjZWVkZWQgYXQgMzI2NSAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBh dCAzMjkyIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMjEgc3VjY2VlZGVkIGF0IDMzMTkgKG9m ZnNldCAtMjAgbGluZXMpLgpIdW5rICMyMiBzdWNjZWVkZWQgYXQgMzQ1NSAob2Zmc2V0IC0yMCBs aW5lcykuCkh1bmsgIzIzIHN1Y2NlZWRlZCBhdCAzNDY2IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVu ayAjMjQgc3VjY2VlZGVkIGF0IDM0ODAgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMyNSBzdWNj ZWVkZWQgYXQgMzQ5MSAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzI2IHN1Y2NlZWRlZCBhdCAz NTA3IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMjcgc3VjY2VlZGVkIGF0IDM1NTYgKG9mZnNl dCAtMjAgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgMzU3MiAob2Zmc2V0IC0yMCBsaW5l cykuCkh1bmsgIzI5IHN1Y2NlZWRlZCBhdCAzNjE0IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAj MzAgc3VjY2VlZGVkIGF0IDM2MjggKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMzMSBzdWNjZWVk ZWQgYXQgMzY5OSAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzMyIHN1Y2NlZWRlZCBhdCAzNzYw IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMzMgc3VjY2VlZGVkIGF0IDM5MTEgKG9mZnNldCA3 IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgltcnFjID0gcmQzMihodywgVFhH QkVfUE9SVENUTCk7CgltcnFjICY9IH4oVFhHQkVfUE9SVENUTF9OVU1UQ19NQVNLIHwgVFhHQkVf UE9SVENUTF9OVU1WVF9NQVNLKTsKCXN3aXRjaCAoUlRFX0VUSF9ERVZfU1JJT1YoZGV2KS5hY3Rp dmUpIHsKCWNhc2UgRVRIXzY0X1BPT0xTOgoJCW1ycWMgfD0gVFhHQkVfUE9SVENUTF9OVU1WVF82 NDsKCQlicmVhazsKCgljYXNlIEVUSF8zMl9QT09MUzoKCQltcnFjIHw9IFRYR0JFX1BPUlRDVExf TlVNVlRfMzI7CgkJYnJlYWs7CgoJY2FzZSBFVEhfMTZfUE9PTFM6CgkJbXJxYyB8PSBUWEdCRV9Q T1JUQ1RMX05VTVZUXzE2OwoJCWJyZWFrOwoJZGVmYXVsdDoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguYzozOTMxCkh1bmsgIzM1IHN1Y2NlZWRlZCBh dCAzOTQyIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMzYgc3VjY2VlZGVkIGF0IDM5NjcgKG9m ZnNldCAtMjAgbGluZXMpLgpIdW5rICMzNyBzdWNjZWVkZWQgYXQgNDAwOCAob2Zmc2V0IC0yMCBs aW5lcykuCkh1bmsgIzM4IHN1Y2NlZWRlZCBhdCA0MDE4IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVu ayAjMzkgc3VjY2VlZGVkIGF0IDQwODcgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICM0MCBzdWNj ZWVkZWQgYXQgNDA5OCAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzQxIHN1Y2NlZWRlZCBhdCA0 MjUzIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjNDIgc3VjY2VlZGVkIGF0IDQyOTYgKG9mZnNl dCAtMjAgbGluZXMpLgpIdW5rICM0MyBzdWNjZWVkZWQgYXQgNDMyOSAob2Zmc2V0IC0xNSBsaW5l cykuCkh1bmsgIzQ0IHN1Y2NlZWRlZCBhdCA0MzM5IChvZmZzZXQgLTE1IGxpbmVzKS4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJaWYgKGRldi0+ZGF0YS0+bXR1ICsgVFhHQkVfRVRIX09W RVJIRUFEICsKCQkJCTIgKiBUWEdCRV9WTEFOX1RBR19TSVpFID4gYnVmX3NpemUpCgkJCWRldi0+ ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKCQlpZiAocnhxLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZM T0FEX1ZMQU5fU1RSSVApCgkJCXJ4X2NvbmYtPm9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1ZM QU5fU1RSSVA7Cgl9CgoJaWYgKHJ4X2NvbmYtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NB VFRFUikKCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7CgoJLyoKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguYzo0MzkxCkh1bmsgIzQ2IHN1Y2Nl ZWRlZCBhdCA0Mzk1IChvZmZzZXQgLTE1IGxpbmVzKS4KSHVuayAjNDcgc3VjY2VlZGVkIGF0IDQ0 MDQgKG9mZnNldCAtMTUgbGluZXMpLgpIdW5rICM0OCBzdWNjZWVkZWQgYXQgNDUyNyAob2Zmc2V0 IC0xNSBsaW5lcykuCkh1bmsgIzQ5IHN1Y2NlZWRlZCBhdCA0ODM2IChvZmZzZXQgLTE1IGxpbmVz KS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJICovCgkJd3IzMihodywgVFhHQkVfUlhD RkcoaSksIHNycmN0bCk7CgoJCWlmIChyeG1vZGUtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURf U0NBVFRFUiB8fAoJCSAgICAvKiBJdCBhZGRzIGR1YWwgVkxBTiBsZW5ndGggZm9yIHN1cHBvcnRp bmcgZHVhbCBWTEFOICovCgkJICAgIChkZXYtPmRhdGEtPm10dSArIFRYR0JFX0VUSF9PVkVSSEVB RCArCgkJCQkyICogVFhHQkVfVkxBTl9UQUdfU0laRSkgPiBidWZfc2l6ZSkgewoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfcnh0eC5jOjQ5MDMKSHVuayAjNTEg c3VjY2VlZGVkIGF0IDQ4OTcgKG9mZnNldCAtMTUgbGluZXMpLgpIdW5rICM1MiBzdWNjZWVkZWQg YXQgNTA2OSAob2Zmc2V0IC0xNSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3R4 Z2JlL3R4Z2JlX3J4dHguaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdi ZV90bS5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3Zob3N0L3J0ZV9ldGhfdmhvc3Qu Yy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRldi5jLi4u Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDE3NzIgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMzIHN1Y2Nl ZWRlZCBhdCAxNzg2IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTg4NSAo b2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDE5NTcgKG9mZnNldCAyIGxpbmVz KS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMjA4OCAob2Zmc2V0IDIgbGluZXMpLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCglody0+bWF4X3J4X3BrdF9sZW4gPSBldGhlcl9oZHJfbGVuICsg cnhtb2RlLT5tdHU7CgoJaWYgKHJ4X29mZmxvYWRzICYgKERFVl9SWF9PRkZMT0FEX1VEUF9DS1NV TSB8CgkJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSkpCgkJcmVxX2ZlYXR1cmVzIHw9ICgx VUxMIDw8IFZJUlRJT19ORVRfRl9HVUVTVF9DU1VNKTsKCglpZiAocnhfb2ZmbG9hZHMgJiBERVZf UlhfT0ZGTE9BRF9UQ1BfTFJPKQoJCXJlcV9mZWF0dXJlcyB8PQoJCQkoMVVMTCA8PCBWSVJUSU9f TkVUX0ZfR1VFU1RfVFNPNCkgfAoJCQkoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNik7 CgoJaWYgKHR4X29mZmxvYWRzICYgKERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCSAgIERF Vl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpCgkJcmVxX2ZlYXR1cmVzIHw9ICgxVUxMIDw8IFZJUlRJ T19ORVRfRl9DU1VNKTsKCglpZiAodHhfb2ZmbG9hZHMgJiBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNP KQoJCXJlcV9mZWF0dXJlcyB8PQoJCQkoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9UU080KSB8 CgkJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzYpOwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYzoyMTExCkh1bmsgIzggc3VjY2Vl ZGVkIGF0IDIxNDIgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMjE2MiAo b2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMjIyMCAob2Zmc2V0IDYgbGlu ZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMjI0NyAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMx MiBzdWNjZWVkZWQgYXQgMjQ0MyAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQg YXQgMjQ4NCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMjUxOCAob2Zm c2V0IDYgbGluZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMjUyOSAob2Zmc2V0IDYgbGluZXMp LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWRldl9pbmZvLT5tYXhfbXR1ID0gaHctPm1h eF9tdHU7CgoJaG9zdF9mZWF0dXJlcyA9IFZJUlRJT19PUFMoaHcpLT5nZXRfZmVhdHVyZXMoaHcp OwoJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7 CglpZiAoaG9zdF9mZWF0dXJlcyAmICgxVUxMIDw8IFZJUlRJT19ORVRfRl9NUkdfUlhCVUYpKQoJ CWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfU0NBVFRFUjsKCWlm IChob3N0X2ZlYXR1cmVzICYgKDFVTEwgPDwgVklSVElPX05FVF9GX0dVRVNUX0NTVU0pKSB7CgkJ ZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PQoJCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0g fAoJCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU07Cgl9CglpZiAoaG9zdF9mZWF0dXJlcyAmICgx VUxMIDw8IFZJUlRJT19ORVRfRl9DVFJMX1ZMQU4pKQoJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2Nh cGEgfD0gREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVI7Cgl0c29fbWFzayA9ICgxVUxMIDw8IFZJ UlRJT19ORVRfRl9HVUVTVF9UU080KSB8CgkJKDFVTEwgPDwgVklSVElPX05FVF9GX0dVRVNUX1RT TzYpOwoJaWYgKChob3N0X2ZlYXR1cmVzICYgdHNvX21hc2spID09IHRzb19tYXNrKQoJCWRldl9p bmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfVENQX0xSTzsKCglkZXZfaW5m by0+dHhfb2ZmbG9hZF9jYXBhID0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CgkJCQkgICAg REVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQ7CglpZiAoaG9zdF9mZWF0dXJlcyAmICgxVUxMIDw8 IFZJUlRJT19ORVRfRl9DU1VNKSkgewoJCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgfD0KCQkJ REVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNOwoJ fQoJdHNvX21hc2sgPSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9UU080KSB8CgkJKDFVTEwg PDwgVklSVElPX05FVF9GX0hPU1RfVFNPNik7CglpZiAoKGhvc3RfZmVhdHVyZXMgJiB0c29fbWFz aykgPT0gdHNvX21hc2spCgkJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSB8PSBERVZfVFhfT0ZG TE9BRF9UQ1BfVFNPOwoKCWlmIChob3N0X2ZlYXR1cmVzICYgKDFVTEwgPDwgVklSVElPX0ZfUklO R19QQUNLRUQpKSB7CgkJLyoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3ZpcnRp by92aXJ0aW9fZXRoZGV2LmM6MjU0NgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC92bXhuZXQz L3ZteG5ldDNfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUJ Vk1YTkVUM19UWF9NQVhfU0VHCVVJTlQ4X01BWAoKI2RlZmluZSBWTVhORVQzX1RYX09GRkxPQURf Q0FQCQlcCgkoREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAlcCgkgREVWX1RYX09GRkxPQURf VENQX0NLU1VNIHwJXAoJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CVwKCSBERVZfVFhfT0ZG TE9BRF9UQ1BfVFNPIHwJXAoJIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCgojZGVmaW5lIFZN WE5FVDNfUlhfT0ZGTE9BRF9DQVAJCVwKCShERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwJXAoJ IERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwgICBcCgkgREVWX1JYX09GRkxPQURfU0NBVFRF UiB8CVwKCSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAlcCgkgREVWX1JYX09GRkxPQURfVENQ X0NLU1VNIHwJXAoJIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfAlcCgkgREVWX1JYX09GRkxPQURf UlNTX0hBU0gpCgppbnQgdm14bmV0M19zZWdzX2R5bmZpZWxkX29mZnNldCA9IC0xOwoKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYzo0MQpI dW5rICMyIHN1Y2NlZWRlZCBhdCAzOTkgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRl ZCBhdCA0ODcgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA1NDggKG9mZnNl dCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA4NDQgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICM2IHN1Y2NlZWRlZCBhdCA4NjQgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM3IHN1Y2NlZWRlZCBh dCA5MzEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxMDQwIChvZmZzZXQg MSBsaW5lKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTM2NiAob2Zmc2V0IDEgbGluZSkuCkh1bmsg IzEwIHN1Y2NlZWRlZCBhdCAxNDQ4IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTEgc3VjY2VlZGVk IGF0IDE1MDQgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMTU3NCAob2Zm c2V0IDEgbGluZSkuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAxNTg0IChvZmZzZXQgMSBsaW5lKS4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5oLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19yeHR4LmMuLi4KQ2hlY2tp bmcgcGF0Y2ggZXhhbXBsZXMvYmJkZXZfYXBwL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsK CS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRfaGRyX3Np emUgPSAwLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0s Cn07CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvYmJkZXZfYXBwL21haW4uYzo3MQpI dW5rICMyIHN1Y2NlZWRlZCBhdCAzMjkgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBl eGFtcGxlcy9ib25kL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRp YyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21v ZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS5yeF9hZHZf Y29uZiA9IHsKCQkucnNzX2NvbmYgPSB7CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9 IEVUSF9SU1NfSVAsCgkJfSwKCX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RY X05PTkUsCgl9LAp9OwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2JvbmQvbWFpbi5j OjExNQpIdW5rICMyIHN1Y2NlZWRlZCBhdCAxNTAgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMzIHN1 Y2NlZWRlZCBhdCAyNDIgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9k aXN0cmlidXRvci9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMg Y29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKCS5yeG1vZGUg PSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21v ZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJLnJzc19jb25mID0g ewoJCQkucnNzX2hmID0gRVRIX1JTU19JUCB8IEVUSF9SU1NfVURQIHwKCQkJCUVUSF9SU1NfVENQ IHwgRVRIX1JTU19TQ1RQLAoJCX0KCX0sCn07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxl cy9kaXN0cmlidXRvci9tYWluLmM6ODAKSHVuayAjMiBzdWNjZWVkZWQgYXQgMTI3IChvZmZzZXQg MSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvZXRodG9vbC9ldGh0b29sLWFwcC9tYWlu LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvZXRodG9vbC9saWIvcnRlX2V0aHRvb2wuYy4u LgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9ldmVudGRldl9waXBlbGluZS9waXBlbGluZV93b3Jr ZXJfZ2VuZXJpYy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IHJ0ZV9l dGhfcnhjb25mIHJ4X2NvbmY7CglzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0 X2NvbmZfZGVmYXVsdCA9IHsKCQkucnhtb2RlID0gewoJCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9S U1MsCgkJfSwKCQkucnhfYWR2X2NvbmYgPSB7CgkJCS5yc3NfY29uZiA9IHsKCQkJCS5yc3NfaGYg PSBFVEhfUlNTX0lQIHwKCQkJCQkgIEVUSF9SU1NfVENQIHwKCQkJCQkgIEVUSF9SU1NfVURQLAoJ CQl9CgkJfQoJfTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2V2ZW50ZGV2X3BpcGVs aW5lL3BpcGVsaW5lX3dvcmtlcl9nZW5lcmljLmM6MjgzCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDMx MiAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2V2ZW50ZGV2X3BpcGVs aW5lL3BpcGVsaW5lX3dvcmtlcl90eC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ c3RydWN0IHJ0ZV9ldGhfcnhjb25mIHJ4X2NvbmY7CglzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9l dGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKCQkucnhtb2RlID0gewoJCQkubXFfbW9kZSA9 IEVUSF9NUV9SWF9SU1MsCgkJfSwKCQkucnhfYWR2X2NvbmYgPSB7CgkJCS5yc3NfY29uZiA9IHsK CQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQIHwKCQkJCQkgIEVUSF9SU1NfVENQIHwKCQkJCQkgIEVU SF9SU1NfVURQLAoJCQl9CgkJfQoJfTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2V2 ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl90eC5jOjYxNApIdW5rICMyIHN1Y2NlZWRl ZCBhdCA2NDMgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9mbG93X2Ns YXNzaWZ5L2Zsb3dfY2xhc3NpZnkuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAyMTggKG9mZnNl dCA2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvZmxvd19maWx0ZXJpbmcvbWFpbi5j Li4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2lvYXQvaW9hdGZ3ZC5jLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJLyogQ29uZmlndXJpbmcgcG9ydCB0byB1c2UgUlNTIGZvciBtdWx0 aXBsZSBSWCBxdWV1ZXMuIDg8ICovCglzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBw b3J0X2NvbmYgPSB7CgkJLnJ4bW9kZSA9IHsKCQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAoJ CX0sCgkJLnJ4X2Fkdl9jb25mID0gewoJCQkucnNzX2NvbmYgPSB7CgkJCQkucnNzX2tleSA9IE5V TEwsCgkJCQkucnNzX2hmID0gRVRIX1JTU19QUk9UT19NQVNLLAoJCQl9CgkJfQoJfTsKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lvYXQvaW9hdGZ3ZC5jOjgxOQpIdW5rICMyIHN1Y2Nl ZWRlZCBhdCA4NTMgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9pcF9m cmFnbWVudGF0aW9uL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkubXR1 ID0gSlVNQk9fRlJBTUVfTUFYX1NJWkUgLSBSVEVfRVRIRVJfSERSX0xFTiAtCgkJCVJURV9FVEhF Ul9DUkNfTEVOLAoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgkJLm9mZmxvYWRzID0gKERFVl9SWF9P RkZMT0FEX0NIRUNLU1VNIHwKCQkJICAgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSwKCX0sCgku dHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCgkJLm9mZmxvYWRzID0gKERF Vl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkgICAgIERFVl9UWF9PRkZMT0FEX01VTFRJX1NF R1MpLAoJfSwKfTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9pcF9mcmFnbWVudGF0 aW9uL21haW4uYzoxNDkKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvaXBfcGlwZWxpbmUvbGluay5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29u ZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKCS5saW5rX3NwZWVkcyA9IDAsCgkucnhtb2RlID0gewoJ CS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCgkJLm10dSA9IDkwMDAgLSAoUlRFX0VUSEVSX0hE Ul9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTiksIC8qIEp1bWJvIGZyYW1lIE1UVSAqLwoJCS5zcGxp dF9oZHJfc2l6ZSA9IDAsIC8qIEhlYWRlciBzcGxpdCBidWZmZXIgc2l6ZSAqLwoJfSwKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lwX3BpcGVsaW5lL2xpbmsuYzo0NQpDaGVja2luZyBw YXRjaCBleGFtcGxlcy9pcF9yZWFzc2VtYmx5L21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKCS5yeG1v ZGUgPSB7CgkJLm1xX21vZGUgICAgICAgID0gRVRIX01RX1JYX1JTUywKCQkubXR1ID0gSlVNQk9f RlJBTUVfTUFYX1NJWkUgLSBSVEVfRVRIRVJfSERSX0xFTiAtCgkJCVJURV9FVEhFUl9DUkNfTEVO LAoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgkJLm9mZmxvYWRzID0gREVWX1JYX09GRkxPQURfQ0hF Q0tTVU0sCgl9LAoJLnJ4X2Fkdl9jb25mID0gewoJCQkucnNzX2NvbmYgPSB7CgkJCQkucnNzX2tl eSA9IE5VTEwsCgkJCQkucnNzX2hmID0gRVRIX1JTU19JUCwKCQl9LAoJfSwKCS50eG1vZGUgPSB7 CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCQkub2ZmbG9hZHMgPSAoREVWX1RYX09GRkxP QURfSVBWNF9DS1NVTSB8CgkJCSAgICAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyksCgl9LAp9 OwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lwX3JlYXNzZW1ibHkvbWFpbi5jOjE2 MQpIdW5rICMyIHN1Y2NlZWRlZCBhdCA3NDAgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMyBzdWNj ZWVkZWQgYXQgMTA5NyAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2lw c2VjLXNlY2d3L2lwc2VjLXNlY2d3LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgpz dGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5t cV9tb2RlCT0gRVRIX01RX1JYX1JTUywKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJCS5vZmZsb2Fk cyA9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNz X2NvbmYgPSB7CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAgfCBF VEhfUlNTX1VEUCB8CgkJCQlFVEhfUlNTX1RDUCB8IEVUSF9SU1NfU0NUUCwKCQl9LAoJfSwKCS50 eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07CgoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYzoyMzQKSHVuayAj MiBzdWNjZWVkZWQgYXQgMTQ1NiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMgc3VjY2VlZGVkIGF0 IDE5MTAgKG9mZnNldCAxIGxpbmUpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWxvY2Fs X3BvcnRfY29uZi5yeG1vZGUubXR1ID0gbXR1X3NpemU7CgoJaWYgKG11bHRpX3NlZ19yZXF1aXJl ZCgpKSB7CgkJbG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSOwoJCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09G RkxPQURfTVVMVElfU0VHUzsKCX0KCglsb2NhbF9wb3J0X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9 IHJlcV9yeF9vZmZsb2FkczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lwc2VjLXNl Y2d3L2lwc2VjLXNlY2d3LmM6MjIxMgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAyMjQxIChvZmZzZXQg NSBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDIzMDQgKG9mZnNldCA1IGxpbmVzKS4KSHVu ayAjNyBzdWNjZWVkZWQgYXQgMjY2NSAob2Zmc2V0IDUgbGluZXMpLgpDaGVja2luZyBwYXRjaCBl eGFtcGxlcy9pcHNlYy1zZWNndy9zYS5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2lwdjRf bXVsdGljYXN0L21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkuc3BsaXRf aGRyX3NpemUgPSAwLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9O RSwKCQkub2ZmbG9hZHMgPSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTLAoJfSwKfTsKCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9pcHY0X211bHRpY2FzdC9tYWluLmM6MTE1CkNoZWNr aW5nIHBhdGNoIGV4YW1wbGVzL2tuaS9tYWluLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMv bDJmd2QtY3J5cHRvL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRp YyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21v ZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS50eG1vZGUg PSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07CgoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZXhhbXBsZXMvbDJmd2QtY3J5cHRvL21haW4uYzoyMTYKSHVuayAjMiBzdWNjZWVkZWQg YXQgMTgwOSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDI2MzMgKG9mZnNl dCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9sMmZ3ZC1ldmVudC9sMmZ3ZF9jb21t b24uYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxNSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzIg c3VjY2VlZGVkIGF0IDIzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgNjEg KG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9sMmZ3ZC1ldmVudC9tYWlu LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbDJmd2Qtam9ic3RhdHMvbWFpbi5jLi4uCkNo ZWNraW5nIHBhdGNoIGV4YW1wbGVzL2wyZndkLWtlZXBhbGl2ZS9tYWluLmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZXhhbXBsZXMvbDJmd2QvbWFpbi5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2wz ZndkLWFjbC9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3Ry dWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9tb2RlCT0g RVRIX01RX1JYX1JTUywKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJCS5vZmZsb2FkcyA9IERFVl9S WF9PRkZMT0FEX0NIRUNLU1VNLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNzX2NvbmYgPSB7 CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAgfCBFVEhfUlNTX1VE UCB8CgkJCQlFVEhfUlNTX1RDUCB8IEVUSF9SU1NfU0NUUCwKCQl9LAoJfSwKCS50eG1vZGUgPSB7 CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07CgoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZXhhbXBsZXMvbDNmd2QtYWNsL21haW4uYzoxMjQKSHVuayAjMiBzdWNjZWVkZWQgYXQgMTk3 MiAob2Zmc2V0IDM2IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgljb25mLT5y eG1vZGUubXR1ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9sZW47CgoJaWYgKGNvbmYtPnJ4bW9k ZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQoJCWNvbmYtPnR4bW9kZS5vZmZsb2FkcyB8PSBERVZfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTOwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBl eGFtcGxlcy9sM2Z3ZC1hY2wvbWFpbi5jOjIwMDQKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CgkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0aDogJXUgKHBvcnQgJXUpXG4iLAoJCQkJbWF4 X3BrdF9sZW4sIHBvcnRpZCk7CgoJCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZf VFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKCQkJbG9jYWxfcG9ydF9jb25mLnR4bW9kZS5vZmZs b2FkcyB8PQoJCQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CgoJCWxvY2FsX3BvcnRf Y29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgJj0KCQkJZGV2X2luZm8uZmxvd190eXBl X3Jzc19vZmZsb2FkczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2wzZndkLWFjbC9t YWluLmM6MjA4OApDaGVja2luZyBwYXRjaCBleGFtcGxlcy9sM2Z3ZC1ncmFwaC9tYWluLmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBw b3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1JYX1JTUywKCQku c3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNzX2NvbmYgPSB7 CgkJCQkucnNzX2tleSA9IE5VTEwsCgkJCQkucnNzX2hmID0gRVRIX1JTU19JUCwKCQl9LAoJfSwK CS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07CgoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jOjExMQpIdW5rICMyIHN1 Y2NlZWRlZCBhdCA2MjggKG9mZnNldCAyMSBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0gb3ZlcmhlYWRfbGVuOwoKCWlm IChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkKCQljb25mLT50eG1vZGUub2ZmbG9h ZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCglyZXR1cm4gMDsKfQoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jOjczMQplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQkJCSJJbnZhbGlkIG1heCBwYWNrZXQgbGVuZ3RoOiAldSAocG9ydCAl dSlcbiIsCgkJCQltYXhfcGt0X2xlbiwgcG9ydGlkKTsKCgkJaWYgKGRldl9pbmZvLnR4X29mZmxv YWRfY2FwYSAmIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQoJCQlsb2NhbF9wb3J0X2Nv bmYudHhtb2RlLm9mZmxvYWRzIHw9CgkJCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsK CgkJbG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAmPQoJCQlkZXZf aW5mby5mbG93X3R5cGVfcnNzX29mZmxvYWRzOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBs ZXMvbDNmd2QtZ3JhcGgvbWFpbi5jOjgyOApDaGVja2luZyBwYXRjaCBleGFtcGxlcy9sM2Z3ZC1w b3dlci9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3RydWN0 IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9tb2RlICAgICAg ICA9IEVUSF9NUV9SWF9SU1MsCgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQkub2ZmbG9hZHMgPSBE RVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJLnJzc19jb25m ID0gewoJCQkucnNzX2tleSA9IE5VTEwsCgkJCS5yc3NfaGYgPSBFVEhfUlNTX1VEUCwKCQl9LAoJ fSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0KfTsKCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9sM2Z3ZC1wb3dlci9tYWluLmM6MjUwCkh1bmsgIzIg c3VjY2VlZGVkIGF0IDIyMjIgKG9mZnNldCAyNSBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0gb3ZlcmhlYWRfbGVuOwoK CWlmIChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkKCQljb25mLT50eG1vZGUub2Zm bG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCglyZXR1cm4gMDsKfQoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtcG93ZXIvbWFpbi5jOjI1MTAKZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0aDogJXUgKHBv cnQgJXUpXG4iLAoJCQkJbWF4X3BrdF9sZW4sIHBvcnRpZCk7CgoJCWlmIChkZXZfaW5mby50eF9v ZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKCQkJbG9jYWxfcG9y dF9jb25mLnR4bW9kZS5vZmZsb2FkcyB8PQoJCQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZS RUU7CgoJCWxvY2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgJj0KCQkJ ZGV2X2luZm8uZmxvd190eXBlX3Jzc19vZmZsb2FkczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4 YW1wbGVzL2wzZndkLXBvd2VyL21haW4uYzoyNjM4CkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2wz ZndkL2wzZndkX2V2ZW50LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbDNmd2QvbWFpbi5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKc3RhdGljIHN0cnVjdCBydGVfZXRoX2Nv bmYgcG9ydF9jb25mID0gewoJLnJ4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9SU1Ms CgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQkub2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVD S1NVTSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJLnJzc19jb25mID0gewoJCQkucnNzX2tleSA9 IE5VTEwsCgkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQLAoJCX0sCgl9LAoJLnR4bW9kZSA9IHsKCQku bXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAoJfSwKfTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBl eGFtcGxlcy9sM2Z3ZC9tYWluLmM6MTIwCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDkyNiAob2Zmc2V0 IDIzIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgljb25mLT5yeG1vZGUubXR1 ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9sZW47CgoJaWYgKGNvbmYtPnJ4bW9kZS5tdHUgPiBS VEVfRVRIRVJfTVRVKQoJCWNvbmYtPnR4bW9kZS5vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9N VUxUSV9TRUdTOwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9s M2Z3ZC9tYWluLmM6OTg4CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJIkludmFsaWQg bWF4IHBhY2tldCBsZW5ndGg6ICV1IChwb3J0ICV1KVxuIiwKCQkJCW1heF9wa3RfbGVuLCBwb3J0 aWQpOwoKCQlpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RYX09GRkxPQURfTUJV Rl9GQVNUX0ZSRUUpCgkJCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0KCQkJCURF Vl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwoKCQlsb2NhbF9wb3J0X2NvbmYucnhfYWR2X2Nv bmYucnNzX2NvbmYucnNzX2hmICY9CgkJCWRldl9pbmZvLmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHM7 CgoJCWlmIChkZXZfaW5mby5tYXhfcnhfcXVldWVzID09IDEpCgkJCWxvY2FsX3BvcnRfY29uZi5y eG1vZGUubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FOwoKCQlpZiAobG9jYWxfcG9ydF9jb25mLnJ4 X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAhPQoJCQkJcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJz c19jb25mLnJzc19oZikgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QvbWFp bi5jOjEwNTMKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbGlua19zdGF0dXNfaW50ZXJydXB0L21h aW4uYy4uLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9tdWx0aV9wcm9jZXNzL2NsaWVudF9zZXJ2 ZXJfbXAvbXBfc2VydmVyL2luaXQuYy4uLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9tdWx0aV9w cm9jZXNzL3N5bW1ldHJpY19tcC9tYWluLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbnRi L250Yl9md2QuYy4uLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9wYWNrZXRfb3JkZXJpbmcvbWFp bi5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3BlcmZvcm1hbmNlLXRocmVhZC9sM2Z3ZC10 aHJlYWQvbWFpbi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKc3RhdGljIHN0cnVj dCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewoJLnJ4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVU SF9NUV9SWF9SU1MsCgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQkub2ZmbG9hZHMgPSBERVZfUlhf T0ZGTE9BRF9DSEVDS1NVTSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJLnJzc19jb25mID0gewoJ CQkucnNzX2tleSA9IE5VTEwsCgkJCS5yc3NfaGYgPSBFVEhfUlNTX1RDUCwKCQl9LAoJfSwKCS50 eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07CgoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZXhhbXBsZXMvcGVyZm9ybWFuY2UtdGhyZWFkL2wzZndkLXRocmVhZC9tYWlu LmM6MzA3Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDM0NjYgKG9mZnNldCAyNSBsaW5lcykuCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0g b3ZlcmhlYWRfbGVuOwoKCWlmIChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkKCQlj b25mLT50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCglyZXR1 cm4gMDsKfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvcGVyZm9ybWFuY2UtdGhyZWFk L2wzZndkLXRocmVhZC9tYWluLmM6MzQ5NAplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJ CSJJbnZhbGlkIG1heCBwYWNrZXQgbGVuZ3RoOiAldSAocG9ydCAldSlcbiIsCgkJCQltYXhfcGt0 X2xlbiwgcG9ydGlkKTsKCgkJaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9P RkZMT0FEX01CVUZfRkFTVF9GUkVFKQoJCQlsb2NhbF9wb3J0X2NvbmYudHhtb2RlLm9mZmxvYWRz IHw9CgkJCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKCgkJbG9jYWxfcG9ydF9jb25m LnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAmPQoJCQlkZXZfaW5mby5mbG93X3R5cGVfcnNz X29mZmxvYWRzOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvcGVyZm9ybWFuY2UtdGhy ZWFkL2wzZndkLXRocmVhZC9tYWluLmM6MzU5MwpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9waXBl bGluZS9vYmouYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKc3RhdGljIHN0cnVjdCBy dGVfZXRoX2NvbmYgcG9ydF9jb25mX2RlZmF1bHQgPSB7CgkubGlua19zcGVlZHMgPSAwLAoJLnJ4 bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLAoJCS5tdHUgPSA5MDAwIC0gKFJU RV9FVEhFUl9IRFJfTEVOICsgUlRFX0VUSEVSX0NSQ19MRU4pLCAvKiBKdW1ibyBmcmFtZSBNVFUg Ki8KCQkuc3BsaXRfaGRyX3NpemUgPSAwLCAvKiBIZWFkZXIgc3BsaXQgYnVmZmVyIHNpemUgKi8K CX0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9waXBlbGluZS9vYmouYzoxMzMKQ2hl Y2tpbmcgcGF0Y2ggZXhhbXBsZXMvcHRwY2xpZW50L3B0cGNsaWVudC5jLi4uCkh1bmsgIzEgc3Vj Y2VlZGVkIGF0IDE5NyAob2Zmc2V0IDQgbGluZXMpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9x b3NfbWV0ZXIvbWFpbi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogKioqLwpzdGF0 aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9t b2RlCT0gRVRIX01RX1JYX1JTUywKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJCS5vZmZsb2FkcyA9 IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNzX2Nv bmYgPSB7CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAsCgkJfSwK CX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX0RDQl9OT05FLAoJfSwKfTsKCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9xb3NfbWV0ZXIvbWFpbi5jOjUxCkh1bmsgIzIgc3Vj Y2VlZGVkIGF0IDMzMyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDM3OSAo b2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3Fvc19zY2hlZC9pbml0LmMu Li4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNjEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMyIHN1Y2Nl ZWRlZCBhdCAxMDYgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9yeHR4 X2NhbGxiYWNrcy9tYWluLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTQ1IChvZmZzZXQgNCBs aW5lcykuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3NlcnZlcl9ub2RlX2VmZC9zZXJ2ZXIvaW5p dC5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3NrZWxldG9uL2Jhc2ljZndkLmMuLi4KSHVu ayAjMSBzdWNjZWVkZWQgYXQgNTUgKG9mZnNldCA2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhh bXBsZXMvdmhvc3QvbWFpbi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDEwOSAob2Zmc2V0IC0x IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTMzIChvZmZzZXQgLTEgbGluZXMpLgpIdW5r ICMzIHN1Y2NlZWRlZCBhdCAyOTAgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVk IGF0IDU1NiAob2Zmc2V0IC0xIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvdm1fcG93 ZXJfbWFuYWdlci9tYWluLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNzggKG9mZnNldCA1IGxp bmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjc1IChvZmZzZXQgNSBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGV4YW1wbGVzL3ZtZHEvbWFpbi5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3Zt ZHFfZGNiL21haW4uYy4uLgpDaGVja2luZyBwYXRjaCBsaWIvZXRoZGV2L2V0aGRldl9kcml2ZXIu aC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJLyoqPCBEZXZpY2UgRXRoZXJuZXQg bGluayBhZGRyZXNzLgoJCQkgKiAgIEBzZWUgcnRlX2V0aF9kZXZfcmVsZWFzZV9wb3J0KCkKCQkJ ICovCgl1aW50NjRfdCBtYWNfcG9vbF9zZWxbRVRIX05VTV9SRUNFSVZFX01BQ19BRERSXTsKCQkJ LyoqPCBCaXRtYXAgYXNzb2NpYXRpbmcgTUFDIGFkZHJlc3NlcyB0byBwb29scy4gKi8KCXN0cnVj dCBydGVfZXRoZXJfYWRkciAqaGFzaF9tYWNfYWRkcnM7CgkJCS8qKjwgRGV2aWNlIEV0aGVybmV0 IE1BQyBhZGRyZXNzZXMgb2YgaGFzaCBmaWx0ZXJpbmcuCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBs aWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuaDoxMTYKSHVuayAjMiBzdWNjZWVkZWQgYXQgMTQ4MSAo b2Zmc2V0IC0xNzYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYu Yy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA5OCAob2Zmc2V0IC0zIGxpbmVzKS4KSHVuayAjMiBz dWNjZWVkZWQgYXQgMTIzIChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAx MTk0IChvZmZzZXQgMjQgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAqIElm IExSTyBpcyBlbmFibGVkLCBjaGVjayB0aGF0IHRoZSBtYXhpbXVtIGFnZ3JlZ2F0ZWQgcGFja2V0 CgkgKiBzaXplIGlzIHN1cHBvcnRlZCBieSB0aGUgY29uZmlndXJlZCBkZXZpY2UuCgkgKi8KCWlm IChkZXZfY29uZi0+cnhtb2RlLm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVENQX0xSTykgewoJ CXVpbnQzMl90IG1heF9yeF9wa3RsZW47CgkJdWludDMyX3Qgb3ZlcmhlYWRfbGVuOwoKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5jOjE1MDMKSHVuayAjNSBzdWNj ZWVkZWQgYXQgMTU1MyAob2Zmc2V0IC00IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgkgKiBzaXplIGlzIHN1cHBvcnRlZCBieSB0aGUgY29uZmlndXJlZCBkZXZpY2UuCgkgKi8K CS8qIEdldCB0aGUgcmVhbCBFdGhlcm5ldCBvdmVyaGVhZCBsZW5ndGggKi8KCWlmIChsb2NhbF9j b25mLm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVENQX0xSTykgewoJCXVpbnQzMl90IG92ZXJo ZWFkX2xlbjsKCQl1aW50MzJfdCBtYXhfcnhfcGt0bGVuOwoJCWludCByZXQ7CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuYzoyMTc0Ckh1bmsgIzcgc3VjY2VlZGVk IGF0IDI3MzQgKG9mZnNldCAtMTcgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAyNzcyIChv ZmZzZXQgLTE3IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMzYzOSAob2Zmc2V0IC02NCBs aW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAzNzI2IChvZmZzZXQgLTY0IGxpbmVzKS4KSHVu ayAjMTEgc3VjY2VlZGVkIGF0IDM4MDggKG9mZnNldCAtNjQgbGluZXMpLgpIdW5rICMxMiBzdWNj ZWVkZWQgYXQgMzg5NSAob2Zmc2V0IC02NCBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAz OTEzIChvZmZzZXQgLTY0IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDM5MzUgKG9mZnNl dCAtNjQgbGluZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgNDExOCAob2Zmc2V0IC0zOCBsaW5l cykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCA0MDkyIChvZmZzZXQgLTkwIGxpbmVzKS4KSHVuayAj MTcgc3VjY2VlZGVkIGF0IDQyNTkgKG9mZnNldCAtNjQgbGluZXMpLgpIdW5rICMxOCBzdWNjZWVk ZWQgYXQgNjE1MyAob2Zmc2V0IC04MCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGxpYi9ldGhkZXYv cnRlX2V0aGRldi5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXN0cnVjdCBydGVf ZXRoX3ZtZHFfdHhfY29uZiB2bWRxX3R4X2NvbmY7CgkJLyoqPCBQb3J0IHZtZHEgVFggY29uZmln dXJhdGlvbi4gKi8KCX0gdHhfYWR2X2NvbmY7IC8qKjwgUG9ydCBUWCBEQ0IgY29uZmlndXJhdGlv biAodW5pb24pLiAqLwoJLyoqIEN1cnJlbnRseSxQcmlvcml0eSBGbG93IENvbnRyb2woUEZDKSBh cmUgc3VwcG9ydGVkLGlmIERDQiB3aXRoIFBGQwoJICAgIGlzIG5lZWRlZCxhbmQgdGhlIHZhcmlh YmxlIG11c3QgYmUgc2V0IEVUSF9EQ0JfUEZDX1NVUFBPUlQuICovCgl1aW50MzJfdCBkY2JfY2Fw YWJpbGl0eV9lbjsKCXN0cnVjdCBydGVfZmRpcl9jb25mIGZkaXJfY29uZjsgLyoqPCBGRElSIGNv bmZpZ3VyYXRpb24uIERFUFJFQ0FURUQgKi8KCXN0cnVjdCBydGVfaW50cl9jb25mIGludHJfY29u ZjsgLyoqPCBJbnRlcnJ1cHQgbW9kZSBjb25maWd1cmF0aW9uLiAqLwp9OwoKLyoqCiAqIFJYIG9m ZmxvYWQgY2FwYWJpbGl0aWVzIG9mIGEgZGV2aWNlLgogKi8KI2RlZmluZSBERVZfUlhfT0ZGTE9B RF9WTEFOX1NUUklQICAweDAwMDAwMDAxCiNkZWZpbmUgREVWX1JYX09GRkxPQURfSVBWNF9DS1NV TSAgMHgwMDAwMDAwMgojZGVmaW5lIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgIDB4MDAwMDAw MDQKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICAweDAwMDAwMDA4CiNkZWZpbmUg REVWX1JYX09GRkxPQURfVENQX0xSTyAgICAgMHgwMDAwMDAxMAojZGVmaW5lIERFVl9SWF9PRkZM T0FEX1FJTlFfU1RSSVAgIDB4MDAwMDAwMjAKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9J UFY0X0NLU1VNIDB4MDAwMDAwNDAKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAg ICAgIDB4MDAwMDAwODAKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQJMHgwMDAw MDEwMAojZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSCTB4MDAwMDAyMDAKI2RlZmlu ZSBERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORAkweDAwMDAwNDAwCiNkZWZpbmUgREVWX1JYX09G RkxPQURfU0NBVFRFUgkJMHgwMDAwMjAwMAovKioKICogVGltZXN0YW1wIGlzIHNldCBieSB0aGUg ZHJpdmVyIGluIFJURV9NQlVGX0RZTkZJRUxEX1RJTUVTVEFNUF9OQU1FCiAqIGFuZCBSVEVfTUJV Rl9EWU5GTEFHX1JYX1RJTUVTVEFNUF9OQU1FIGlzIHNldCBpbiBvbF9mbGFncy4KICogVGhlIG1i dWYgZmllbGQgYW5kIGZsYWcgYXJlIHJlZ2lzdGVyZWQgd2hlbiB0aGUgb2ZmbG9hZCBpcyBjb25m aWd1cmVkLgogKi8KI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAJMHgwMDAwNDAwMAoj ZGVmaW5lIERFVl9SWF9PRkZMT0FEX1NFQ1VSSVRZICAgICAgICAgMHgwMDAwODAwMAojZGVmaW5l IERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDCQkweDAwMDEwMDAwCiNkZWZpbmUgREVWX1JYX09GRkxP QURfU0NUUF9DS1NVTQkweDAwMDIwMDAwCiNkZWZpbmUgREVWX1JYX09GRkxPQURfT1VURVJfVURQ X0NLU1VNICAweDAwMDQwMDAwCiNkZWZpbmUgREVWX1JYX09GRkxPQURfUlNTX0hBU0gJCTB4MDAw ODAwMDAKI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfQlVGRkVSX1NQTElUIDB4MDAxMDAwMDAK CiNkZWZpbmUgREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0gKERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfCBcCgkJCQkgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwgXAoJCQkJIERFVl9SWF9PRkZM T0FEX1RDUF9DS1NVTSkKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9WTEFOIChERVZfUlhfT0ZGTE9B RF9WTEFOX1NUUklQIHwgXAoJCQkgICAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwgXAoJ CQkgICAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwgXAoJCQkgICAgIERFVl9SWF9PRkZM T0FEX1FJTlFfU1RSSVApCgovKgogKiBJZiBuZXcgUnggb2ZmbG9hZCBjYXBhYmlsaXRpZXMgYXJl IGRlZmluZWQsIHRoZXkgYWxzbyBtdXN0IGJlCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvZXRo ZGV2L3J0ZV9ldGhkZXYuaDoxMzM1Ckh1bmsgIzI3IHN1Y2NlZWRlZCBhdCAxNjAwIChvZmZzZXQg LTIxIGxpbmVzKS4KSHVuayAjMjggc3VjY2VlZGVkIGF0IDE3OTkgKG9mZnNldCAtMjEgbGluZXMp LgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgMTkwMyAob2Zmc2V0IC0yMSBsaW5lcykuCkh1bmsgIzMw IHN1Y2NlZWRlZCBhdCAxOTE3IChvZmZzZXQgLTIxIGxpbmVzKS4KSHVuayAjMzEgc3VjY2VlZGVk IGF0IDE5MzEgKG9mZnNldCAtMjEgbGluZXMpLgpIdW5rICMzMiBzdWNjZWVkZWQgYXQgMTk1NiAo b2Zmc2V0IC0yMSBsaW5lcykuCkh1bmsgIzMzIHN1Y2NlZWRlZCBhdCAxOTc5IChvZmZzZXQgLTIx IGxpbmVzKS4KSHVuayAjMzQgc3VjY2VlZGVkIGF0IDIzMDAgKG9mZnNldCAtMjEgbGluZXMpLgpI dW5rICMzNSBzdWNjZWVkZWQgYXQgMjMxNyAob2Zmc2V0IC0yMSBsaW5lcykuCkh1bmsgIzM2IHN1 Y2NlZWRlZCBhdCAyNDExIChvZmZzZXQgLTIxIGxpbmVzKS4KSHVuayAjMzcgc3VjY2VlZGVkIGF0 IDI5ODggKG9mZnNldCAtMjEgbGluZXMpLgpIdW5rICMzOCBzdWNjZWVkZWQgYXQgMzQ5MiAob2Zm c2V0IC02MyBsaW5lcykuCkh1bmsgIzM5IHN1Y2NlZWRlZCBhdCAzNTExIChvZmZzZXQgLTYzIGxp bmVzKS4KSHVuayAjNDAgc3VjY2VlZGVkIGF0IDU0MjAgKG9mZnNldCAtMTgyIGxpbmVzKS4KQ2hl Y2tpbmcgcGF0Y2ggbGliL2V0aGRldi9ydGVfZmxvdy5oLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0 IDI1OTMgKG9mZnNldCAtMTE3IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggbGliL2dzby9ydGVfZ3Nv LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggbGliL2dzby9ydGVfZ3NvLmguLi4KQ2hlY2tpbmcgcGF0Y2gg bGliL21idWYvcnRlX21idWZfY29yZS5oLi4uCkNoZWNraW5nIHBhdGNoIGxpYi9tYnVmL3J0ZV9t YnVmX2R5bi5oLi4uCkFwcGxpZWQgcGF0Y2ggYXBwL3Byb2MtaW5mby9tYWluLmMgY2xlYW5seS4K QXBwbHlpbmcgcGF0Y2ggYXBwL3Rlc3QtZXZlbnRkZXYvdGVzdF9wZXJmX2NvbW1vbi5jIHdpdGgg MSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRjaCBhcHAvdGVzdC1ldmVu dGRldi90ZXN0X3BpcGVsaW5lX2NvbW1vbi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rl c3QtZmxvdy1wZXJmL2NvbmZpZy5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QtcGlw ZWxpbmUvaW5pdC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NtZGxpbmUu YyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGFwcC90ZXN0LXBtZC9jc3Vtb25seS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggYXBwL3Rlc3QtcG1kL2Zsb3dnZW4uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0 LXBtZC9tYWNmd2QuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0LXBtZC9tYWNzd2Fw X2NvbW1vbi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QtcG1kL3BhcmFtZXRlcnMu YyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBhcHAvdGVzdC1wbWQvdGVzdHBtZC5jIHdpdGggMyBy ZWplY3RzLi4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMyLgpIdW5r ICMzIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNC4KSHVuayAjNSBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM3LgpIdW5rICM4 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggYXBwL3Rlc3Qt cG1kL3Rlc3RwbWQuaCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQg cGF0Y2ggYXBwL3Rlc3QtcG1kL3R4b25seS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rl c3QvdGVzdF9ldGhkZXZfbGluay5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QvdGVz dF9ldmVudF9ldGhfcnhfYWRhcHRlci5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3Qv dGVzdF9rbmkuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBhcHAvdGVzdC90ZXN0X2xpbmtfYm9u ZGluZy5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbHlpbmcgcGF0Y2gg YXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdfbW9kZTQuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVj dGVkIGh1bmsgIzEuCkFwcGx5aW5nIHBhdGNoIGFwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nX3Jz c2NvbmYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KSHVuayAjNCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjNyBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGFwcC90ZXN0L3Rlc3RfcG1kX3Bl cmYuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHku CkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QvdmlydHVhbF9wbWQuYyBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGRvYy9ndWlkZXMvZXZlbnRkZXZzL2NueGsucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZG9jL2d1aWRlcy9ldmVudGRldnMvb2N0ZW9udHgyLnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNo IGRvYy9ndWlkZXMvbmljcy9hZl9wYWNrZXQucnN0IGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRv Yy9ndWlkZXMvbmljcy9ibnh0LnJzdCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEu CkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2VuaWMucnN0IGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzLnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNo IGRvYy9ndWlkZXMvbmljcy9mbTEway5yc3QgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2MvZ3Vp ZGVzL25pY3MvaW50ZWxfdmYucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9u aWNzL2l4Z2JlLnJzdCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvbWx4 NS5yc3Qgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQg aHVuayAjMi4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvdGFwLnJzdCBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9nZW5lcmljX3NlZ21lbnRhdGlvbl9v ZmZsb2FkX2xpYi5yc3QgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3Vp ZGUvbWJ1Zl9saWIucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9wcm9nX2d1 aWRlL3BvbGxfbW9kZV9kcnYucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9w cm9nX2d1aWRlL3J0ZV9mbG93LnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMv cHJvZ19ndWlkZS9ydGVfc2VjdXJpdHkucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1 aWRlcy9yZWxfbm90ZXMvZGVwcmVjYXRpb24ucnN0IGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRv Yy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0IHdpdGggMSByZWplY3QuLi4KUmVq ZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL3NhbXBsZV9hcHBfdWcvaXBz ZWNfc2VjZ3cucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy90ZXN0cG1kX2Fw cF91Zy9ydW5fYXBwLnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvYnVzL2RwYWEv aW5jbHVkZS9wcm9jZXNzLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL2NvbW1vbi9j bnhrL3JvY19ucGMuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2FmX3BhY2tl dC9ydGVfZXRoX2FmX3BhY2tldC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQv YWZfeGRwL3J0ZV9ldGhfYWZfeGRwLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9hcmsvYXJrX2V0aGRldi5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F0 bGFudGljL2F0bF9ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1 bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMxMSBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYXRsYW50aWMv YXRsX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYXRsYW50aWMv YXRsX3J4dHguYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2F2cC9hdnBfZXRo ZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9heGdiZV9kZXYu YyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9heGdiZV9ldGhkZXYu YyB3aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBs aWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcg YXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM4LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx NCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvYXhnYmUvYXhnYmVfZXRoZGV2LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2 ZXJzL25ldC9heGdiZS9heGdiZV9tZGlvLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9heGdiZS9heGdiZV9yeHR4LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvYm54MngvYm54MnhfZXRoZGV2LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuCkh1bmsg IzQgYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHQu aCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGx5aW5nIHBhdGNoIGRyaXZl cnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYyB3aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM3LgpIdW5rICM4IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzEwLgpIdW5r ICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI0 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzI3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjggYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMwIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMz NSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzcgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMzOCBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRy aXZlcnMvbmV0L2JueHQvYm54dF9mbG93LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxp ZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yZXBzLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3JpbmcuYyB3aXRoIDIgcmVqZWN0cy4uLgpSZWplY3Rl ZCBodW5rICMxLgpSZWplY3RlZCBodW5rICMyLgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2Ju eHQvYm54dF9yeHEuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54 dF9yeHIuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yeHR4 X3ZlY19hdngyLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRf cnh0eF92ZWNfY29tbW9uLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0 L2JueHRfcnh0eF92ZWNfbmVvbi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQv Ym54dC9ibnh0X3J4dHhfdmVjX3NzZS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9u ZXQvYm54dC9ibnh0X3R4ci5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYm54 dC9ibnh0X3ZuaWMuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvcnRl X3BtZF9ibnh0LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ib25kaW5nL2V0 aF9ib25kX3ByaXZhdGUuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JvbmRp bmcvcnRlX2V0aF9ib25kXzgwMjNhZC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9u ZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfYXBpLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJp dmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfcG1kLmMgd2l0aCAzIHJlamVjdHMuLi4KSHVu ayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIuClJlamVjdGVkIGh1bmsgIzMu Ckh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpSZWpl Y3RlZCBodW5rICMxNS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2NueGsvY24xMGtfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2 ZXJzL25ldC9jbnhrL2NuMTBrX3J4LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9jbnhrL2NuMTBrX3R4LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhr L2NuOWtfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2Nu OWtfcnguYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY245a190eC5j IGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuYyB3 aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVu ayAjOS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzIxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjIgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMyMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI0IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMjUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNiBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5n IHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuaCB3aXRoIDEgcmVqZWN0Li4uClJl amVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRl dl9kZXZhcmdzLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbnhr X2V0aGRldl9vcHMuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254a19saW5rLmMgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtfcHRwLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9jbnhrL2NueGtfcnRlX2Zsb3cuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBk cml2ZXJzL25ldC9jeGdiZS9jeGdiZS5oIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAj MS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jeGdiZS9jeGdiZV9ldGhkZXYuYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX21haW4uYyBjbGVhbmx5LgpB cHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhL2RwYWFfZXRoZGV2LmMgd2l0aCA0IHJlamVj dHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM1LgpIdW5r ICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBw bGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE0IGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9kcGFhL2RwYWFfZXRoZGV2LmggY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9kcGFhL2RwYWFfZmxvdy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvZHBhYTIvYmFzZS9kcGFhMl9od19kcG5pLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJfZXRoZGV2LmMgd2l0aCAzIHJlamVjdHMuLi4KUmVq ZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBj bGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHku ClJlamVjdGVkIGh1bmsgIzYuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5r ICM4LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkgYXBwbGllZCBjbGVh bmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5oIGNsZWFu bHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJfcnh0eC5jIGNsZWFubHku CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmggY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9lbV9ldGhkZXYuYyBjbGVhbmx5LgpBcHBs eWluZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9lbV9yeHR4LmMgd2l0aCAxIHJlamVjdC4uLgpI dW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMg YXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvZTEwMDAvaWdiX3BmLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvZTEwMDAvaWdiX3J4dHguYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHku ClJlamVjdGVkIGh1bmsgIzQuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVh bmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvZW5hL2VuYV9ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5r ICM4LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9l bmEvZW5hX2V0aGRldi5oIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuYS9l bmFfcnNzLmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuCkh1bmsgIzQgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGll ZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9lbmV0Yy9lbmV0Y19ldGhkZXYu YyB3aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVu ayAjMi4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzQuCkh1bmsgIzUg YXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2VuaWMvZW5pYy5oIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRldi5jIGNsZWFu bHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuaWMvZW5pY19tYWluLmMgd2l0aCAxIHJl amVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVh bmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9lbmljL2VuaWNfcmVzLmMgd2l0aCAxIHJl amVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZS5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvZmFpbHNhZmUvZmFpbHNhZmVfaW50ci5jIGNsZWFubHkuCkFwcGx5 aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxzYWZlX29wcy5jIHdpdGggMSByZWpl Y3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9mbTEway9m bTEway5oIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX2V0 aGRldi5jIHdpdGggMiByZWplY3RzLi4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNi4KSHVu ayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMTMuCkh1 bmsgIzE0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTggYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIwIGFwcGxpZWQg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9mbTEway9mbTEwa19yeHR4X3ZlYy5j IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaGluaWMvYmFzZS9oaW5pY19wbWRf aHdkZXYuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9oaW5pYy9oaW5pY19w bWRfZXRoZGV2LmMgd2l0aCAyIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0 LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGRyaXZlcnMvbmV0L2hpbmljL2hpbmljX3BtZF9yeC5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvaGluaWMvaGluaWNfcG1kX3J4LmggY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfZGNiLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldi5jIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxNyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzE4LgpIdW5rICMxOSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzIwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIzIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMjQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzI2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy OCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzAgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMzMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMyIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzYgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMzNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MzkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQxIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjNDIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzQ0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDUgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM0NiBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQv aG5zMy9obnMzX2V0aGRldi5oIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2hu czMvaG5zM19ldGhkZXZfdmYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KSHVuayAjNCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19mbG93LmMgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfcHRwLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9obnMzL2huczNfcnNzLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9obnMzL2huczNfcnNzLmggY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aG5zMy9obnMzX3J4dHguYyB3aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5s eS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBw bGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM1LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfcnh0eC5oIGNsZWFubHkuCkFwcGx5 aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19yeHR4X3ZlYy5jIHdpdGggMiByZWplY3Rz Li4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuCkFwcGx5aW5nIHBhdGNoIGRy aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsg IzEwLgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzI0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMyNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjgg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMyOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMwIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzQgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMzNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM2IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzOCBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2k0MGUvaTQwZV9oYXNoLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9pNDBlL2k0MGVfcGYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2k0 MGUvaTQwZV9yeHR4LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0 MGVfcnh0eC5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX3J4 dHhfdmVjX2F2eDUxMi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9p NDBlX3J4dHhfdmVjX2NvbW1vbi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQv aTQwZS9pNDBlX3ZmX3JlcHJlc2VudG9yLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9pYXZmL2lhdmYuaCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZm L2lhdmZfZXRoZGV2LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjOC4KSHVu ayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2lhdmYvaWF2Zl9oYXNoLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9pYXZmL2lhdmZfcnh0eC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWF2 Zi9pYXZmX3J4dHguaCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lh dmZfcnh0eF92ZWNfYXZ4Mi5jIHdpdGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuClJl amVjdGVkIGh1bmsgIzIuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4 X3ZlY19hdng1MTIuYyB3aXRoIDIgcmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpSZWplY3Rl ZCBodW5rICMyLgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX3NzZS5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQg aHVuayAjMS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX2RjZi5jIGNsZWFubHku CkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2VfZGNmX2V0aGRldi5jIHdpdGggMSBy ZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuClJlamVj dGVkIGh1bmsgIzUuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2ljZS9pY2VfZGNmX3ZmX3JlcHJlc2VudG9yLmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMu Ckh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBwYXRj aCBkcml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5jIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0 ZWQgaHVuayAjMTkuCkh1bmsgIzIwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIzIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMjQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzI2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy OCBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9ldGhk ZXYuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2VfaGFzaC5jIGNs ZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0eC5jIHdpdGggMyBy ZWplY3RzLi4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzQuClJlamVjdGVkIGh1 bmsgIzUuClJlamVjdGVkIGh1bmsgIzYuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4 IGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX3J4dHhf dmVjX2F2eDIuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0 eF92ZWNfYXZ4NTEyLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNl X3J4dHhfdmVjX2NvbW1vbi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWNl L2ljZV9yeHR4X3ZlY19zc2UuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2ln Yy9pZ2NfZXRoZGV2LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWdjL2ln Y19ldGhkZXYuaCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvaWdjL2lnY190eHJ4LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJp dmVycy9uZXQvaW9uaWMvaW9uaWNfZXRoZGV2LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMu Ckh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHku CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaW9uaWMvaW9uaWNfZXRoZGV2LmggY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pb25pYy9pb25pY19saWYuYyBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L2lvbmljL2lvbmljX3J4dHguYyBjbGVhbmx5LgpBcHBseWlu ZyBwYXRjaCBkcml2ZXJzL25ldC9pcG4za2UvaXBuM2tlX3JlcHJlc2VudG9yLmMgd2l0aCAxIHJl amVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAj MyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxp ZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYu YyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5o IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmRpci5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jIGNsZWFu bHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfaXBzZWMuYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3BmLmMgY2xlYW5seS4KQXBw bHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jIHdpdGggMyByZWplY3Rz Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzQuCkh1bmsgIzUgYXBwbGllZCBj bGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzIxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzI0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjUgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMyNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI3IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMjggYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyOSBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzMwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzEgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMzMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzQg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM2IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzOCBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDAgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM0MSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQyIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjNDMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0NCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQ1 IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNDYuCkh1bmsgIzQ3IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNDggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0OSBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzUwIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNTEuCkh1bmsgIzUyIGFw cGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4 LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4X3Zl Y19jb21tb24uaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2Jl X3RtLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV92Zl9y ZXByZXNlbnRvci5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvcnRl X3BtZF9peGdiZS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvcnRl X3BtZF9peGdiZS5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQva25pL3J0ZV9l dGhfa25pLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9saXF1aWRpby9saW9f ZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tZW1pZi9tZW1pZl9z b2NrZXQuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21lbWlmL3J0ZV9ldGhf bWVtaWYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9ldGhk ZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmMg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfaW50ci5jIGNsZWFu bHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEuYyB3aXRoIDIgcmVq ZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5r ICM1LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF90eHEuYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbGludXgvbWx4NV9ldGhkZXZfb3MuYyBjbGVh bmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbGludXgvbWx4NV9vcy5jIGNsZWFu bHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDUuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L21seDUvbWx4NV9kZWZzLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9tbHg1L21seDVfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9tbHg1L21seDVfZmxvdy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4 NS9tbHg1X2Zsb3cuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4 NV9mbG93X2R2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVf Zmxvd192ZXJicy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1 X3Jzcy5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHEu YyB3aXRoIDQgcmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzQuCkh1bmsgIzUg YXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM2LgpSZWplY3RlZCBodW5rICM3LgpIdW5r ICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFw cGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfcnh0eF92 ZWMuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV90eC5jIGNs ZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV90eHEuYyB3aXRoIDIg cmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzQuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvbWx4NS9tbHg1X3ZsYW4uYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJz L25ldC9tbHg1L3dpbmRvd3MvbWx4NV9vcy5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVu ayAjMS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZuZXRhL212bmV0YV9ldGhkZXYuYyB3 aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMy LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkFwcGx5 aW5nIHBhdGNoIGRyaXZlcnMvbmV0L212bmV0YS9tdm5ldGFfZXRoZGV2Lmggd2l0aCAxIHJlamVj dC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L212bmV0YS9t dm5ldGFfcnh0eC5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L212cHAyL21y dmxfZXRoZGV2LmMgd2l0aCAyIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0 LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx OCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjAgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMyMSBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvbmV0dnNjL2huX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvbmV0dnNjL2huX3JuZGlzLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9uZmIvbmZiX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbmZi L25mYl9yeC5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfY29t bW9uLmMgd2l0aCAyIHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIg YXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMzLgpIdW5rICM0IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1 bmsgIzkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L25mcC9uZnBfZXRoZGV2X3ZmLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9uZ2JlL25nYmVfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2 ZXJzL25ldC9udWxsL3J0ZV9ldGhfbnVsbC5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZl cnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5jIHdpdGggMSByZWplY3QuLi4KSHVuayAj MSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNy4KSHVuayAjOCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBk cml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuaCB3aXRoIDEgcmVqZWN0Li4uClJl amVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgvb2N0ZW9u dHhfZXRoZGV2X29wcy5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVv bnR4Mi9vdHgyX2V0aGRldi5jIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBj bGVhbmx5LgpSZWplY3RlZCBodW5rICM5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzExIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBw YXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXYuaCB3aXRoIDEgcmVqZWN0Li4u ClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290 eDJfZXRoZGV2X2RldmFyZ3MuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L29j dGVvbnR4Mi9vdHgyX2V0aGRldl9vcHMuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldl9zZWMuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2Zsb3cuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2Zsb3dfY3RybC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZmxvd19wYXJzZS5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfbGluay5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfbWNhc3QuYyBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX3B0cC5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfcnNzLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9yeC5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfdHguYyBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX3ZsYW4uYyBjbGVhbmx5LgpBcHBseWluZyBw YXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhfZXBfZXRoZGV2LmMgd2l0aCAxIHJlamVj dC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250 eF9lcC9vdHhfZXBfcnh0eC5jIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMzLgpBcHBsaWVkIHBh dGNoIGRyaXZlcnMvbmV0L3BjYXAvcGNhcF9ldGhkZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L3BmZS9wZmVfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2 ZXJzL25ldC9xZWRlL2Jhc2UvbWNwX3B1YmxpYy5oIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRy aXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYyB3aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBj bGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj OCBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzkuCkh1bmsgIzEwIGFwcGxpZWQgY2xl YW5seS4KUmVqZWN0ZWQgaHVuayAjMTEuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFwcGxpZWQgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZmlsdGVyLmMgY2xlYW5seS4KQXBw bHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYyB3aXRoIDEgcmVqZWN0Li4u ClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4 dHguaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3JpbmcvcnRlX2V0aF9yaW5n LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjLmMgY2xlYW5seS4K QXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEwMF9yeC5jIHdpdGggMSByZWpl Y3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3Nm Y19lZjEwMF90eC5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTBfZXNzYl9yeC5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEwX3J4LmMgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTBfdHguYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L3NmYy9zZmNfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9zZmMvc2ZjX2Zsb3cuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3Nm Yy9zZmNfcG9ydC5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNf cnguYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzQu Ckh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxp ZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX3R4LmMgY2xlYW5s eS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9zb2Z0bmljL3J0ZV9ldGhfc29mdG5pYy5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvc3plZGF0YTIvcnRlX2V0aF9zemVkYXRh Mi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvdGFwL3J0ZV9ldGhfdGFwLmMg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC90YXAvdGFwX3Jzcy5oIGNsZWFubHku CkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RodW5kZXJ4L25pY3ZmX2V0aGRldi5jIHdpdGgg MSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMTMuCkh1bmsgIzE0 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTggYXBwbGllZCBj bGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYu aCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGx5aW5nIHBhdGNoIGRyaXZl cnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5jIHdpdGggMiByZWplY3RzLi4uCkh1bmsgIzEgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KUmVq ZWN0ZWQgaHVuayAjMTcuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIxLgpI dW5rICMyMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MjQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI2IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMjcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyOCBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzI5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzAgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMzMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMyIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzkgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICM0MCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQxIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNDIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzQ0IGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhn YmUvdHhnYmVfZXRoZGV2Lmggd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldl92Zi5jIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZmRpci5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZmxvdy5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfaXBzZWMuYyBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3BmLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfcnh0eC5jIHdpdGggNCByZWplY3RzLi4uCkh1bmsgIzEg YXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMyLgpIdW5rICMzIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBw bGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx NyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzI0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMyNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MjggYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMwIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMiBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzMzIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMzQuCkh1 bmsgIzM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMz NyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzkgYXBw bGllZCBjbGVhbmx5LgpIdW5rICM0MCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQxIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNDIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MyBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzQ0IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNDUuCkh1bmsgIzQ2 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0OCBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzQ5IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNTAu Ckh1bmsgIzUxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNTIgYXBwbGllZCBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguaCBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3RtLmMgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC92aG9zdC9ydGVfZXRoX3Zob3N0LmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYyB3aXRoIDIgcmVqZWN0cy4uLgpI dW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMg YXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM3LgpIdW5r ICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzE2LgpBcHBseWlu ZyBwYXRjaCBkcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMgd2l0aCAxIHJlamVj dC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmggY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfcnh0eC5jIGNsZWFubHkuCkFwcGx5aW5nIHBh dGNoIGV4YW1wbGVzL2JiZGV2X2FwcC9tYWluLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBo dW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMv Ym9uZC9tYWluLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGV4 YW1wbGVzL2Rpc3RyaWJ1dG9yL21haW4uYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsg IzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2V0aHRv b2wvZXRodG9vbC1hcHAvbWFpbi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvZXRo dG9vbC9saWIvcnRlX2V0aHRvb2wuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9l dmVudGRldl9waXBlbGluZS9waXBlbGluZV93b3JrZXJfZ2VuZXJpYy5jIHdpdGggMSByZWplY3Qu Li4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBh dGNoIGV4YW1wbGVzL2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl90eC5jIHdpdGgg MSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZXhhbXBsZXMvZmxvd19jbGFzc2lmeS9mbG93X2NsYXNzaWZ5LmMgY2xlYW5s eS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9mbG93X2ZpbHRlcmluZy9tYWluLmMgY2xlYW5seS4K QXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvaW9hdC9pb2F0ZndkLmMgd2l0aCAxIHJlamVjdC4uLgpS ZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2gg ZXhhbXBsZXMvaXBfZnJhZ21lbnRhdGlvbi9tYWluLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3Rl ZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBs ZXMvaXBfcGlwZWxpbmUvbGluay5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4K SHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGll ZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9pcF9yZWFzc2VtYmx5L21haW4uYyB3 aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvaXBzZWMt c2VjZ3cvaXBzZWMtc2VjZ3cuYyB3aXRoIDIgcmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpI dW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVk IGh1bmsgIzQuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvaXBzZWMt c2VjZ3cvc2EuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9pcHY0X211bHRpY2Fz dC9tYWluLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxp ZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9rbmkvbWFpbi5jIGNsZWFubHkuCkFw cGx5aW5nIHBhdGNoIGV4YW1wbGVzL2wyZndkLWNyeXB0by9tYWluLmMgd2l0aCAxIHJlamVjdC4u LgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBs aWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvbDJmd2QtZXZlbnQvbDJmd2RfY29t bW9uLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9sMmZ3ZC1ldmVudC9tYWluLmMg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9sMmZ3ZC1qb2JzdGF0cy9tYWluLmMgY2xl YW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9sMmZ3ZC1rZWVwYWxpdmUvbWFpbi5jIGNsZWFu bHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvbDJmd2QvbWFpbi5jIGNsZWFubHkuCkFwcGx5aW5n IHBhdGNoIGV4YW1wbGVzL2wzZndkLWFjbC9tYWluLmMgd2l0aCAzIHJlamVjdHMuLi4KUmVqZWN0 ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuClJl amVjdGVkIGh1bmsgIzQuCkFwcGx5aW5nIHBhdGNoIGV4YW1wbGVzL2wzZndkLWdyYXBoL21haW4u YyB3aXRoIDMgcmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xl YW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KUmVqZWN0ZWQgaHVuayAjNC4KQXBwbHlpbmcgcGF0Y2gg ZXhhbXBsZXMvbDNmd2QtcG93ZXIvbWFpbi5jIHdpdGggMyByZWplY3RzLi4uClJlamVjdGVkIGh1 bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMzLgpSZWplY3Rl ZCBodW5rICM0LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2wzZndkL2wzZndkX2V2ZW50LmMgY2xl YW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvbDNmd2QvbWFpbi5jIHdpdGggMyByZWplY3Rz Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBo dW5rICMzLgpSZWplY3RlZCBodW5rICM0LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2xpbmtfc3Rh dHVzX2ludGVycnVwdC9tYWluLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9tdWx0 aV9wcm9jZXNzL2NsaWVudF9zZXJ2ZXJfbXAvbXBfc2VydmVyL2luaXQuYyBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGV4YW1wbGVzL211bHRpX3Byb2Nlc3Mvc3ltbWV0cmljX21wL21haW4uYyBjbGVh bmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL250Yi9udGJfZndkLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBleGFtcGxlcy9wYWNrZXRfb3JkZXJpbmcvbWFpbi5jIGNsZWFubHkuCkFwcGx5aW5n IHBhdGNoIGV4YW1wbGVzL3BlcmZvcm1hbmNlLXRocmVhZC9sM2Z3ZC10aHJlYWQvbWFpbi5jIHdp dGggMyByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5 LgpSZWplY3RlZCBodW5rICMzLgpSZWplY3RlZCBodW5rICM0LgpBcHBseWluZyBwYXRjaCBleGFt cGxlcy9waXBlbGluZS9vYmouYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1 bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9wdHBjbGllbnQvcHRwY2xpZW50LmMgY2xl YW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvcW9zX21ldGVyL21haW4uYyB3aXRoIDEgcmVq ZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMz IGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9xb3Nfc2NoZWQvaW5pdC5j IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvcnh0eF9jYWxsYmFja3MvbWFpbi5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvc2VydmVyX25vZGVfZWZkL3NlcnZlci9pbml0 LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9za2VsZXRvbi9iYXNpY2Z3ZC5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvdmhvc3QvbWFpbi5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZXhhbXBsZXMvdm1fcG93ZXJfbWFuYWdlci9tYWluLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBleGFtcGxlcy92bWRxL21haW4uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1w bGVzL3ZtZHFfZGNiL21haW4uYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBsaWIvZXRoZGV2L2V0 aGRldl9kcml2ZXIuaCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIg YXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuYyB3 aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpIdW5r ICM1IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNi4KSHVuayAjNyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xl YW5seS4KQXBwbHlpbmcgcGF0Y2ggbGliL2V0aGRldi9ydGVfZXRoZGV2Lmggd2l0aCAxIHJlamVj dC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE0 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTggYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIwIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMjEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzIzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy NSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzI2LgpIdW5rICMyNyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzI4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjkgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMzMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMxIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM0 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzggYXBwbGllZCBj bGVhbmx5LgpIdW5rICMzOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQwIGFwcGxpZWQgY2xlYW5s eS4KQXBwbGllZCBwYXRjaCBsaWIvZXRoZGV2L3J0ZV9mbG93LmggY2xlYW5seS4KQXBwbGllZCBw YXRjaCBsaWIvZ3NvL3J0ZV9nc28uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9nc28vcnRl X2dzby5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL21idWYvcnRlX21idWZfY29yZS5oIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL21idWYvcnRlX21idWZfZHluLmggY2xlYW5seS4KZGlm ZiBhL2FwcC90ZXN0LWV2ZW50ZGV2L3Rlc3RfcGVyZl9jb21tb24uYyBiL2FwcC90ZXN0LWV2ZW50 ZGV2L3Rlc3RfcGVyZl9jb21tb24uYwkocmVqZWN0ZWQgaHVua3MpCkBAIC02NjgsMTMgKzY2OCwx MyBAQCBwZXJmX2V0aGRldl9zZXR1cChzdHJ1Y3QgZXZ0X3Rlc3QgKnRlc3QsIHN0cnVjdCBldnRf b3B0aW9ucyAqb3B0KQogCXN0cnVjdCB0ZXN0X3BlcmYgKnQgPSBldnRfdGVzdF9wcml2KHRlc3Qp OwogCXN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCQkucnhtb2RlID0gewotCQkJ Lm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAorCQkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX1JT UywKIAkJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCiAJCX0sCiAJCS5yeF9hZHZfY29uZiA9IHsKIAkJ CS5yc3NfY29uZiA9IHsKIAkJCQkucnNzX2tleSA9IE5VTEwsCi0JCQkJLnJzc19oZiA9IEVUSF9S U1NfSVAsCisJCQkJLnJzc19oZiA9IFJURV9FVEhfUlNTX0lQLAogCQkJfSwKIAkJfSwKIAl9Owpk aWZmIGEvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYyBiL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmMJKHJl amVjdGVkIGh1bmtzKQpAQCAtNDU5LDEyICs0NTksMTIgQEAgbGNvcmVpZF90IGxhdGVuY3lzdGF0 c19sY29yZV9pZCA9IC0xOwogc3RydWN0IHJ0ZV9ldGhfcnhtb2RlIHJ4X21vZGU7CiAKIHN0cnVj dCBydGVfZXRoX3R4bW9kZSB0eF9tb2RlID0gewotCS5vZmZsb2FkcyA9IERFVl9UWF9PRkZMT0FE X01CVUZfRkFTVF9GUkVFLAorCS5vZmZsb2FkcyA9IFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRSwKIH07CiAKLXN0cnVjdCBydGVfZmRpcl9jb25mIGZkaXJfY29uZiA9IHsKK3N0cnVj dCBydGVfZXRoX2ZkaXJfY29uZiBmZGlyX2NvbmYgPSB7CiAJLm1vZGUgPSBSVEVfRkRJUl9NT0RF X05PTkUsCi0JLnBiYWxsb2MgPSBSVEVfRkRJUl9QQkFMTE9DXzY0SywKKwkucGJhbGxvYyA9IFJU RV9FVEhfRkRJUl9QQkFMTE9DXzY0SywKIAkuc3RhdHVzID0gUlRFX0ZESVJfUkVQT1JUX1NUQVRV UywKIAkubWFzayA9IHsKIAkJLnZsYW5fdGNpX21hc2sgPSAweEZGRUYsCkBAIC0xNTcyLDkgKzE1 NzIsOSBAQCBpbml0X2NvbmZpZ19wb3J0X29mZmxvYWRzKHBvcnRpZF90IHBpZCwgdWludDMyX3Qg c29ja2V0X2lkKQogCWlmIChyZXQgIT0gMCkKIAkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLCAicnRl X2V0aF9kZXZfaW5mb19nZXQoKSBmYWlsZWRcbiIpOwogCi0JaWYgKCEocG9ydC0+ZGV2X2luZm8u dHhfb2ZmbG9hZF9jYXBhICYgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpKQorCWlmICgh KHBvcnQtPmRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRSkpCiAJCXBvcnQtPmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcyAmPQotCQkJfkRF Vl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOworCQkJflJURV9FVEhfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRTsKIAogCS8qIEFwcGx5IFJ4IG9mZmxvYWRzIGNvbmZpZ3VyYXRpb24gKi8KIAlm b3IgKGkgPSAwOyBpIDwgcG9ydC0+ZGV2X2luZm8ubWF4X3J4X3F1ZXVlczsgaSsrKQpAQCAtMzc1 MCwxNyArMzc1MCwxNyBAQCBpbml0X3BvcnRfY29uZmlnKHZvaWQpCiAJCQlpZiAocG9ydC0+ZGV2 X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2hmICE9IDApIHsKIAkJCQlwb3J0LT5kZXZf Y29uZi5yeG1vZGUubXFfbW9kZSA9CiAJCQkJCShlbnVtIHJ0ZV9ldGhfcnhfbXFfbW9kZSkKLQkJ CQkJCShyeF9tcV9tb2RlICYgRVRIX01RX1JYX1JTUyk7CisJCQkJCQkocnhfbXFfbW9kZSAmIFJU RV9FVEhfTVFfUlhfUlNTKTsKIAkJCX0gZWxzZSB7Ci0JCQkJcG9ydC0+ZGV2X2NvbmYucnhtb2Rl Lm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORTsKKwkJCQlwb3J0LT5kZXZfY29uZi5yeG1vZGUubXFf bW9kZSA9IFJURV9FVEhfTVFfUlhfTk9ORTsKIAkJCQlwb3J0LT5kZXZfY29uZi5yeG1vZGUub2Zm bG9hZHMgJj0KLQkJCQkJCX5ERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKKwkJCQkJCX5SVEVfRVRI X1JYX09GRkxPQURfUlNTX0hBU0g7CiAKIAkJCQlmb3IgKGkgPSAwOwogCQkJCSAgICAgaSA8IHBv cnQtPmRldl9pbmZvLm5iX3J4X3F1ZXVlczsKIAkJCQkgICAgIGkrKykKIAkJCQkJcG9ydC0+cnhf Y29uZltpXS5vZmZsb2FkcyAmPQotCQkJCQkJfkRFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQkJ CQkJflJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAkJCX0KIAkJfQogCmRpZmYgYS9hcHAv dGVzdC1wbWQvdGVzdHBtZC5oIGIvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaAkocmVqZWN0ZWQgaHVu a3MpCkBAIC00NjUsNyArNDY1LDcgQEAgZXh0ZXJuIGxjb3JlaWRfdCBiaXRyYXRlX2xjb3JlX2lk OwogZXh0ZXJuIHVpbnQ4X3QgYml0cmF0ZV9lbmFibGVkOwogI2VuZGlmCiAKLWV4dGVybiBzdHJ1 Y3QgcnRlX2ZkaXJfY29uZiBmZGlyX2NvbmY7CitleHRlcm4gc3RydWN0IHJ0ZV9ldGhfZmRpcl9j b25mIGZkaXJfY29uZjsKIAogZXh0ZXJuIHVpbnQzMl90IG1heF9yeF9wa3RfbGVuOwogCmRpZmYg YS9hcHAvdGVzdC90ZXN0X2xpbmtfYm9uZGluZy5jIGIvYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRp bmcuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMzQsMTEgKzEzNCwxMSBAQCBzdGF0aWMgdWludDE2 X3Qgdmxhbl9pZCA9IDB4MTAwOwogCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBkZWZhdWx0 X3BtZF9jb25mID0gewogCS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUs CisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9SWF9OT05FLAogCQkuc3BsaXRfaGRyX3NpemUgPSAw LAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1x X21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfSwKIAkubHBia19tb2RlID0gMCwKIH07CmRp ZmYgYS9hcHAvdGVzdC90ZXN0X2xpbmtfYm9uZGluZ19tb2RlNC5jIGIvYXBwL3Rlc3QvdGVzdF9s aW5rX2JvbmRpbmdfbW9kZTQuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMDcsMTEgKzEwNywxMSBA QCBzdGF0aWMgc3RydWN0IGxpbmtfYm9uZGluZ191bml0dGVzdF9wYXJhbXMgdGVzdF9wYXJhbXMg ID0gewogCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBkZWZhdWx0X3BtZF9jb25mID0gewog CS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCisJCS5tcV9tb2RlID0g UlRFX0VUSF9NUV9SWF9OT05FLAogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAogCX0sCiAJLnR4bW9k ZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRI X01RX1RYX05PTkUsCiAJfSwKIAkubHBia19tb2RlID0gMCwKIH07CmRpZmYgYS9hcHAvdGVzdC90 ZXN0X2xpbmtfYm9uZGluZ19yc3Njb25mLmMgYi9hcHAvdGVzdC90ZXN0X2xpbmtfYm9uZGluZ19y c3Njb25mLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtODAsMjcgKzgwLDI3IEBAIHN0YXRpYyBzdHJ1 Y3QgbGlua19ib25kaW5nX3Jzc2NvbmZfdW5pdHRlc3RfcGFyYW1zIHRlc3RfcGFyYW1zICA9IHsK ICAqLwogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgZGVmYXVsdF9wbWRfY29uZiA9IHsKIAku cnhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLAorCQkubXFfbW9kZSA9IFJU RV9FVEhfTVFfUlhfTk9ORSwKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKIAl9LAogCS50eG1vZGUg PSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9N UV9UWF9OT05FLAogCX0sCiAJLmxwYmtfbW9kZSA9IDAsCiB9OwogCiBzdGF0aWMgc3RydWN0IHJ0 ZV9ldGhfY29uZiByc3NfcG1kX2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBF VEhfTVFfUlhfUlNTLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfUlNTLAogCQkuc3BsaXRf aGRyX3NpemUgPSAwLAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhf Tk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfSwKIAkucnhfYWR2X2Nv bmYgPSB7CiAJCS5yc3NfY29uZiA9IHsKIAkJCS5yc3Nfa2V5ID0gTlVMTCwKLQkJCS5yc3NfaGYg PSBFVEhfUlNTX0lQVjYsCisJCQkucnNzX2hmID0gUlRFX0VUSF9SU1NfSVBWNiwKIAkJfSwKIAl9 LAogCS5scGJrX21vZGUgPSAwLApkaWZmIGEvYXBwL3Rlc3QvdGVzdF9wbWRfcGVyZi5jIGIvYXBw L3Rlc3QvdGVzdF9wbWRfcGVyZi5jCShyZWplY3RlZCBodW5rcykKQEAgLTYyLDExICs2MiwxMSBA QCBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhlcl9hZGRyIHBvcnRzX2V0aF9hZGRyW1JURV9NQVhfRVRI UE9SVFNdOwogCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4 bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVf RVRIX01RX1JYX05PTkUsCiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCiAJfSwKIAkudHhtb2RlID0g ewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFf VFhfTk9ORSwKIAl9LAogCS5scGJrX21vZGUgPSAxLCAgLyogZW5hYmxlIGxvb3BiYWNrICovCiB9 OwpkaWZmIGEvZG9jL2d1aWRlcy9uaWNzL2JueHQucnN0IGIvZG9jL2d1aWRlcy9uaWNzL2JueHQu cnN0CShyZWplY3RlZCBodW5rcykKQEAgLTg3NywyMSArODc3LDIxIEBAIHByb2Nlc3NpbmcuIFRo aXMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgaXMgZGVyaXZlZCBmcm9tIGEgbnVtYmVyIG9mIG9wdGlt aXphdGlvbnM6CiAgICDCoCogVFg6IG9ubHkgdGhlIGZvbGxvd2luZyByZWR1Y2VkIHNldCBvZiB0 cmFuc21pdCBvZmZsb2FkcyBpcyBzdXBwb3J0ZWQgaW4KICAgICAgIHZlY3RvciBtb2RlOjoKIAot ICAgwqAgICBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRQorICAgwqAgICBSVEVfRVRIX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUUKIAogICAgwqAqIFJYOiBvbmx5IHRoZSBmb2xsb3dpbmcg cmVkdWNlZCBzZXQgb2YgcmVjZWl2ZSBvZmZsb2FkcyBpcyBzdXBwb3J0ZWQgaW4KICAgICAgIHZl Y3RvciBtb2RlIChub3RlIHRoYXQganVtYm8gTVRVIGlzIGFsbG93ZWQgb25seSB3aGVuIHRoZSBN VFUgc2V0dGluZwotICAgICAgZG9lcyBub3QgcmVxdWlyZSBgREVWX1JYX09GRkxPQURfU0NBVFRF UmAgdG8gYmUgZW5hYmxlZCk6OgotCi0gICDCoCAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAK LSAgIMKgICAgREVWX1JYX09GRkxPQURfS0VFUF9DUkMKLSAgIMKgICAgREVWX1JYX09GRkxPQURf SVBWNF9DS1NVTQotICAgwqAgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0KLSAgIMKgICAgREVW X1JYX09GRkxPQURfVENQX0NLU1VNCi0gICDCoCAgIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0KLSAgIMKgICAgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNCi0gICDCoCAgIERF Vl9SWF9PRkZMT0FEX1JTU19IQVNICi0gICDCoCAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVS CisgICAgICBkb2VzIG5vdCByZXF1aXJlIGBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUmAgdG8g YmUgZW5hYmxlZCk6OgorCisgICDCoCAgIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQCisg ICDCoCAgIFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQworICAgwqAgICBSVEVfRVRIX1JYX09G RkxPQURfSVBWNF9DS1NVTQorICAgwqAgICBSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNCisg ICDCoCAgIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0KKyAgIMKgICAgUlRFX0VUSF9SWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0KKyAgIMKgICAgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVS X1VEUF9DS1NVTQorICAgwqAgICBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gKKyAgIMKgICAg UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSCiAKIFRoZSBCTlhUIFZlY3RvciBQTUQgaXMg ZW5hYmxlZCBpbiBEUERLIGJ1aWxkcyBieSBkZWZhdWx0LiBUaGUgZGVjaXNpb24gdG8gZW5hYmxl CiB2ZWN0b3IgcHJvY2Vzc2luZyBpcyBtYWRlIGF0IHJ1bi10aW1lIHdoZW4gdGhlIHBvcnQgaXMg c3RhcnRlZDsgaWYgbm8gdHJhbnNtaXQKZGlmZiBhL2RvYy9ndWlkZXMvbmljcy9tbHg1LnJzdCBi L2RvYy9ndWlkZXMvbmljcy9tbHg1LnJzdAkocmVqZWN0ZWQgaHVua3MpCkBAIC02MDcsNyArNjA3 LDcgQEAgRHJpdmVyIG9wdGlvbnMKICAgc21hbGwtcGFja2V0IHRyYWZmaWMuCiAKICAgV2hlbiBN UFJRIGlzIGVuYWJsZWQsIE1UVSBjYW4gYmUgbGFyZ2VyIHRoYW4gdGhlIHNpemUgb2YKLSAgdXNl ci1wcm92aWRlZCBtYnVmIGV2ZW4gaWYgREVWX1JYX09GRkxPQURfU0NBVFRFUiBpc24ndCBlbmFi bGVkLiBQTUQgd2lsbAorICB1c2VyLXByb3ZpZGVkIG1idWYgZXZlbiBpZiBSVEVfRVRIX1JYX09G RkxPQURfU0NBVFRFUiBpc24ndCBlbmFibGVkLiBQTUQgd2lsbAogICBjb25maWd1cmUgbGFyZ2Ug c3RyaWRlIHNpemUgZW5vdWdoIHRvIGFjY29tbW9kYXRlIE1UVSBhcyBsb25nIGFzCiAgIGRldmlj ZSBhbGxvd3MuIE5vdGUgdGhhdCB0aGlzIGNhbiB3YXN0ZSBzeXN0ZW0gbWVtb3J5IGNvbXBhcmVk IHRvIGVuYWJsaW5nIFJ4CiAgIHNjYXR0ZXIgYW5kIG11bHRpLXNlZ21lbnQgcGFja2V0LgpkaWZm IGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMV8xMS5yc3QgYi9kb2MvZ3VpZGVzL3Jl bF9ub3Rlcy9yZWxlYXNlXzIxXzExLnJzdAkocmVqZWN0ZWQgaHVua3MpCkBAIC0zNTAsNiArMzUw LDkgQEAgQUJJIENoYW5nZXMKICAgdG8gYmUgdHJhbnNwYXJlbnQgZm9yIGJvdGggdXNlcnMgKG5v IGNoYW5nZXMgaW4gdXNlciBhcHAgaXMgcmVxdWlyZWQpIGFuZAogICBQTUQgZGV2ZWxvcGVycyAo bm8gY2hhbmdlcyBpbiBQTUQgaXMgcmVxdWlyZWQpLgogCisqIGV0aGRldjogQWxsIGVudW1zICYg bWFjcm9zIHVwZGF0ZWQgdG8gaGF2ZSBgYFJURV9FVEhgYCBwcmVmaXggYW5kIHN0cnVjdHVyZXMK KyAgdXBkYXRlZCB0byBoYXZlIGBgcnRlX2V0aGBgIHByZWZpeC4gRFBESyBjb21wb25lbnRzIHVw ZGF0ZWQgdG8gdXNlIG5ldyBuYW1lcy4KKwogCiBLbm93biBJc3N1ZXMKIC0tLS0tLS0tLS0tLQpk aWZmIGEvZHJpdmVycy9uZXQvYXRsYW50aWMvYXRsX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvYXRs YW50aWMvYXRsX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTE1NCwyMCArMTU0LDIwIEBA IHN0YXRpYyBzdHJ1Y3QgcnRlX3BjaV9kcml2ZXIgcnRlX2F0bF9wbWQgPSB7CiAJLnJlbW92ZSA9 IGV0aF9hdGxfcGNpX3JlbW92ZSwKIH07CiAKLSNkZWZpbmUgQVRMX1JYX09GRkxPQURTIChERVZf UlhfT0ZGTE9BRF9WTEFOX1NUUklQIFwKLQkJCXwgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSBc Ci0JCQl8IERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSBcCi0JCQl8IERFVl9SWF9PRkZMT0FEX1RD UF9DS1NVTSBcCi0JCQl8IERFVl9SWF9PRkZMT0FEX01BQ1NFQ19TVFJJUCBcCi0JCQl8IERFVl9S WF9PRkZMT0FEX1ZMQU5fRklMVEVSKQotCi0jZGVmaW5lIEFUTF9UWF9PRkZMT0FEUyAoREVWX1RY X09GRkxPQURfVkxBTl9JTlNFUlQgXAotCQkJfCBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIFwK LQkJCXwgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIFwKLQkJCXwgREVWX1RYX09GRkxPQURfVENQ X0NLU1VNIFwKLQkJCXwgREVWX1RYX09GRkxPQURfVENQX1RTTyBcCi0JCQl8IERFVl9UWF9PRkZM T0FEX01BQ1NFQ19JTlNFUlQgXAotCQkJfCBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQorI2Rl ZmluZSBBVExfUlhfT0ZGTE9BRFMgKFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIFwKKwkJ CXwgUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gXAorCQkJfCBSVEVfRVRIX1JYX09GRkxP QURfVURQX0NLU1VNIFwKKwkJCXwgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSBcCisJCQl8 IFJURV9FVEhfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAgXAorCQkJfCBSVEVfRVRIX1JYX09GRkxP QURfVkxBTl9GSUxURVIpCisKKyNkZWZpbmUgQVRMX1RYX09GRkxPQURTIChSVEVfRVRIX1RYX09G RkxPQURfVkxBTl9JTlNFUlQgXAorCQkJfCBSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSBc CisJCQl8IFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gXAorCQkJfCBSVEVfRVRIX1RYX09G RkxPQURfVENQX0NLU1VNIFwKKwkJCXwgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gXAorCQkJ fCBSVEVfRVRIX1RYX09GRkxPQURfTUFDU0VDX0lOU0VSVCBcCisJCQl8IFJURV9FVEhfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTKQogCiAjZGVmaW5lIFNGUF9FRVBST01fU0laRSAweDEwMAogCmRpZmYg YS9kcml2ZXJzL25ldC9heGdiZS9heGdiZV9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2F4Z2JlL2F4 Z2JlX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTM4NSw3ICszODUsNyBAQCBheGdiZV9k ZXZfc3RhcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJcnRlX2JpdF9yZWxheGVkX2NsZWFy MzIoQVhHQkVfRE9XTiwgJnBkYXRhLT5kZXZfc3RhdGUpOwogCiAJbWF4X3BrdF9sZW4gPSBkZXZf ZGF0YS0+bXR1ICsgUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTjsKLQlpZiAo KGRldl9kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSKSB8fAorCWlmICgoZGV2X2RhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyAmIFJURV9F VEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB8fAogCQkJCW1heF9wa3RfbGVuID4gcGRhdGEtPnJ4X2J1 Zl9zaXplKQogCQlkZXZfZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKIApAQCAtMTIwOCwyNCArMTIw OCwyNCBAQCBheGdiZV9kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVj dCBydGVfZXRoX2Rldl9pbmZvICpkZXZfaW5mbykKIAlkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9 IEFYR0JFX1JYX01BWF9CVUZfU0laRTsKIAlkZXZfaW5mby0+bWF4X21hY19hZGRycyA9IHBkYXRh LT5od19mZWF0LmFkZG5fbWFjICsgMTsKIAlkZXZfaW5mby0+bWF4X2hhc2hfbWFjX2FkZHJzID0g cGRhdGEtPmh3X2ZlYXQuaGFzaF90YWJsZV9zaXplOwotCWRldl9pbmZvLT5zcGVlZF9jYXBhID0g IEVUSF9MSU5LX1NQRUVEXzEwRzsKKwlkZXZfaW5mby0+c3BlZWRfY2FwYSA9IFJURV9FVEhfTElO S19TUEVFRF8xMEc7CiAKIAlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1JYX09G RkxPQURfVkxBTl9TVFJJUCB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKLQkJREVW X1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfAotCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwK LQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNICB8Ci0JCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NV TSAgfAotCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCSAgfAotCQlERVZfUlhfT0ZGTE9BRF9LRUVQ X0NSQzsKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAorCQlSVEVfRVRIX1JYX09G RkxPQURfVkxBTl9GSUxURVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfAor CQlSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9V RFBfQ0tTVU0gIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgfAorCQlSVEVfRVRI X1JYX09GRkxPQURfU0NBVFRFUgkgIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDOwog CiAJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5T RVJUIHwKLQkJREVWX1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfAotCQlERVZfVFhfT0ZGTE9BRF9J UFY0X0NLU1VNICB8Ci0JCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwKLQkJREVWX1RYX09G RkxPQURfVENQX0NLU1VNOworCQlSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAorCQlS VEVfRVRIX1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBW NF9DS1NVTSAgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNICAgfAorCQlSVEVfRVRI X1RYX09GRkxPQURfVENQX0NLU1VNOwogCiAJaWYgKHBkYXRhLT5od19mZWF0LnJzcykgewogCQlk ZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9IEFYR0JFX1JTU19PRkZMT0FEOwpkaWZm IGEvZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9ibngyeC9i bngyeF9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC01MzQsNyArNTM0LDcgQEAgYm54Mnhf ZGV2X2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9ldGhfZGV2 X2luZm8gKmRldl9pbmZvKQogCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEJOWDJYX01JTl9S WF9CVUZfU0laRTsKIAlkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiAgPSBCTlgyWF9NQVhfUlhfUEtU X0xFTjsKIAlkZXZfaW5mby0+bWF4X21hY19hZGRycyAgPSBCTlgyWF9NQVhfTUFDX0FERFJTOwot CWRldl9pbmZvLT5zcGVlZF9jYXBhID0gRVRIX0xJTktfU1BFRURfMTBHIHwgRVRIX0xJTktfU1BF RURfMjBHOworCWRldl9pbmZvLT5zcGVlZF9jYXBhID0gUlRFX0VUSF9MSU5LX1NQRUVEXzEwRyB8 IFJURV9FVEhfTElOS19TUEVFRF8yMEc7CiAKIAlkZXZfaW5mby0+cnhfZGVzY19saW0ubmJfbWF4 ID0gTUFYX1JYX0FWQUlMOwogCWRldl9pbmZvLT5yeF9kZXNjX2xpbS5uYl9taW4gPSBNSU5fUlhf U0laRV9OT05UUEE7CmRpZmYgYS9kcml2ZXJzL25ldC9ibnh0L2JueHQuaCBiL2RyaXZlcnMvbmV0 L2JueHQvYm54dC5oCShyZWplY3RlZCBodW5rcykKQEAgLTU2OSwzNyArNTY5LDM3IEBAIHN0cnVj dCBibnh0X3JlcF9pbmZvIHsKICNkZWZpbmUgQk5YVF9GV19TVEFUVVNfU0hVVERPV04JCTB4MTAw MDAwCiAKICNkZWZpbmUgQk5YVF9FVEhfUlNTX1NVUFBPUlQgKAlcCi0JRVRIX1JTU19JUFY0IHwJ CVwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfAlcCi0JRVRIX1JTU19OT05GUkFHX0lQVjRf VURQIHwJXAotCUVUSF9SU1NfSVBWNiB8CQlcCi0JRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwJ XAotCUVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8CVwKLQlFVEhfUlNTX0xFVkVMX01BU0spCi0K LSNkZWZpbmUgQk5YVF9ERVZfVFhfT0ZGTE9BRF9TVVBQT1JUIChERVZfVFhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwgXAotCQkJCSAgICAgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwgXAotCQkJCSAg ICAgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwgXAotCQkJCSAgICAgREVWX1RYX09GRkxPQURf VENQX1RTTyB8IFwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBc Ci0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwgXAotCQkJCSAgICAgREVW X1RYX09GRkxPQURfR1JFX1ROTF9UU08gfCBcCi0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9JUElQ X1ROTF9UU08gfCBcCi0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8IFwK LQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwgXAotCQkJCSAgICAgREVWX1RY X09GRkxPQURfTVVMVElfU0VHUykKLQotI2RlZmluZSBCTlhUX0RFVl9SWF9PRkZMT0FEX1NVUFBP UlQgKERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwgXAotCQkJCSAgICAgREVWX1JYX09GRkxP QURfSVBWNF9DS1NVTSB8IFwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwK LQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8IFwKLQkJCQkgICAgIERFVl9SWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBcCi0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9PVVRF Ul9VRFBfQ0tTVU0gfCBcCi0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8IFwKLQkJ CQkgICAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwgXAotCQkJCSAgICAgREVWX1JYX09G RkxPQURfVENQX0xSTyB8IFwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfCBcCi0J CQkJICAgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKKwlSVEVfRVRIX1JTU19JUFY0IHwJCVwK KwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwJXAorCVJURV9FVEhfUlNTX05PTkZSQUdf SVBWNF9VRFAgfAlcCisJUlRFX0VUSF9SU1NfSVBWNiB8CQlcCisJUlRFX0VUSF9SU1NfTk9ORlJB R19JUFY2X1RDUCB8CVwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwJXAorCVJURV9F VEhfUlNTX0xFVkVMX01BU0spCisKKyNkZWZpbmUgQk5YVF9ERVZfVFhfT0ZGTE9BRF9TVVBQT1JU IChSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKKwkJCQkgICAgIFJURV9FVEhfVFhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NL U1VNIHwgXAorCQkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfCBcCisJCQkJICAg ICBSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKKwkJCQkgICAgIFJURV9F VEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwgXAorCQkJCSAgICAgUlRFX0VUSF9UWF9PRkZM T0FEX0dSRV9UTkxfVFNPIHwgXAorCQkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX0lQSVBfVE5M X1RTTyB8IFwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8IFwK KwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8IFwKKwkJCQkgICAgIFJU RV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQorCisjZGVmaW5lIEJOWFRfREVWX1JYX09GRkxP QURfU1VQUE9SVCAoUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwgXAorCQkJCSAgICAg UlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCisJCQkJICAgICBSVEVfRVRIX1JYX09G RkxPQURfVURQX0NLU1VNIHwgXAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NV TSB8IFwKKwkJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAor CQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8IFwKKwkJCQkgICAg IFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8IFwKKwkJCQkgICAgIFJURV9FVEhfUlhfT0ZG TE9BRF9WTEFOX0VYVEVORCB8IFwKKwkJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfTFJP IHwgXAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfCBcCisJCQkJICAgICBS VEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpCiAKICNkZWZpbmUgQk5YVF9IV1JNX1NIT1JUX1JF UV9MRU4JCXNpemVvZihzdHJ1Y3QgaHdybV9zaG9ydF9pbnB1dCkKIApkaWZmIGEvZHJpdmVycy9u ZXQvYm54dC9ibnh0X2V0aGRldi5jIGIvZHJpdmVycy9uZXQvYm54dC9ibnh0X2V0aGRldi5jCShy ZWplY3RlZCBodW5rcykKQEAgLTExNDUsMTUgKzExNDUsMTUgQEAgc3RhdGljIGludCBibnh0X2Rl dl9jb25maWd1cmVfb3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQogCSAgICAodWludDMy X3QpKGV0aF9kZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcykgPiBicC0+bWF4X3JpbmdfZ3JwcykKIAkJ Z290byByZXNvdXJjZV9lcnJvcjsKIAotCWlmICghKGV0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4 bW9kZS5tcV9tb2RlICYgRVRIX01RX1JYX1JTUykgJiYKKwlpZiAoIShldGhfZGV2LT5kYXRhLT5k ZXZfY29uZi5yeG1vZGUubXFfbW9kZSAmIFJURV9FVEhfTVFfUlhfUlNTKSAmJgogCSAgICBicC0+ bWF4X3ZuaWNzIDwgZXRoX2Rldi0+ZGF0YS0+bmJfcnhfcXVldWVzKQogCQlnb3RvIHJlc291cmNl X2Vycm9yOwogCiAJYnAtPnJ4X2NwX25yX3JpbmdzID0gYnAtPnJ4X25yX3JpbmdzOwogCWJwLT50 eF9jcF9ucl9yaW5ncyA9IGJwLT50eF9ucl9yaW5nczsKIAotCWlmIChldGhfZGV2LT5kYXRhLT5k ZXZfY29uZi5yeG1vZGUubXFfbW9kZSAmIEVUSF9NUV9SWF9SU1NfRkxBRykKLQkJcnhfb2ZmbG9h ZHMgfD0gREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CisJaWYgKGV0aF9kZXYtPmRhdGEtPmRldl9j b25mLnJ4bW9kZS5tcV9tb2RlICYgUlRFX0VUSF9NUV9SWF9SU1NfRkxBRykKKwkJcnhfb2ZmbG9h ZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCWV0aF9kZXYtPmRhdGEtPmRldl9j b25mLnJ4bW9kZS5vZmZsb2FkcyA9IHJ4X29mZmxvYWRzOwogCiAJYm54dF9tdHVfc2V0X29wKGV0 aF9kZXYsIGV0aF9kZXYtPmRhdGEtPm10dSk7CkBAIC0xMjQ3LDE1ICsxMjQ3LDE1IEBAIGJueHRf cmVjZWl2ZV9mdW5jdGlvbihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpCiAJICogYSBsaW1p dGVkIHN1YnNldCBoYXZlIGJlZW4gZW5hYmxlZC4KIAkgKi8KIAlpZiAoZXRoX2Rldi0+ZGF0YS0+ ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYKLQkJfihERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ IHwKLQkJICBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8Ci0JCSAgREVWX1JYX09GRkxPQURfSVBW NF9DS1NVTSB8Ci0JCSAgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJICBERVZfUlhfT0ZG TE9BRF9UQ1BfQ0tTVU0gfAotCQkgIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAot CQkgIERFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8Ci0JCSAgREVWX1JYX09GRkxPQURf UlNTX0hBU0ggfAotCQkgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKSkKKwkJfihSVEVfRVRI X1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CisJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JD IHwKKwkJICBSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCSAgUlRFX0VUSF9SWF9P RkZMT0FEX1VEUF9DS1NVTSB8CisJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJ CSAgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQkgIFJURV9FVEhfUlhf T0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAorCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFT SCB8CisJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKSkKIAkJZ290byB1c2Vfc2Nh bGFyX3J4OwogCiAjaWYgZGVmaW5lZChSVEVfQVJDSF9YODYpICYmIGRlZmluZWQoQ0NfQVZYMl9T VVBQT1JUKQpkaWZmIGEvZHJpdmVycy9uZXQvYm54dC9ibnh0X2Zsb3cuYyBiL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9mbG93LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTE3Nyw3ICsxMTc3LDcgQEAg Ym54dF92bmljX3Jzc19jZmdfdXBkYXRlKHN0cnVjdCBibnh0ICpicCwKIAl9CiAKIAkvKiBJZiBS U1MgdHlwZXMgaXMgMCwgdXNlIGEgYmVzdCBlZmZvcnQgY29uZmlndXJhdGlvbiAqLwotCXR5cGVz ID0gcnNzLT50eXBlcyA/IHJzcy0+dHlwZXMgOiBFVEhfUlNTX0lQVjQ7CisJdHlwZXMgPSByc3Mt PnR5cGVzID8gcnNzLT50eXBlcyA6IFJURV9FVEhfUlNTX0lQVjQ7CiAKIAloYXNoX3R5cGUgPSBi bnh0X3J0ZV90b19od3JtX2hhc2hfdHlwZXModHlwZXMpOwogCmRpZmYgYS9kcml2ZXJzL25ldC9i bnh0L2JueHRfcmluZy5jIGIvZHJpdmVycy9uZXQvYm54dC9ibnh0X3JpbmcuYwkocmVqZWN0ZWQg aHVua3MpCkBAIC0xODcsNyArMTg3LDcgQEAgaW50IGJueHRfYWxsb2NfcmluZ3Moc3RydWN0IGJu eHQgKmJwLCB1bnNpZ25lZCBpbnQgc29ja2V0X2lkLCB1aW50MTZfdCBxaWR4LAogCQkJcnhfcmlu Z19pbmZvLT5yeF9yaW5nX3N0cnVjdC0+cmluZ19zaXplICoKIAkJCUFHR19SSU5HX1NJWkVfRkFD VE9SKSkgOiAwOwogCi0JCWlmIChyeF9yaW5nX2luZm8gJiYgKHJ4X29mZmxvYWRzICYgREVWX1JY X09GRkxPQURfVENQX0xSTykpIHsKKwkJaWYgKHJ4X3JpbmdfaW5mbyAmJiAocnhfb2ZmbG9hZHMg JiBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTykpIHsKIAkJCWludCB0cGFfbWF4ID0gQk5YVF9U UEFfTUFYX0FHR1MoYnApOwogCiAJCQl0cGFfaW5mb19sZW4gPSB0cGFfbWF4ICogc2l6ZW9mKHN0 cnVjdCBibnh0X3RwYV9pbmZvKTsKQEAgLTI4Myw3ICsyODMsNyBAQCBpbnQgYm54dF9hbGxvY19y aW5ncyhzdHJ1Y3QgYm54dCAqYnAsIHVuc2lnbmVkIGludCBzb2NrZXRfaWQsIHVpbnQxNl90IHFp ZHgsCiAJCQkJCSAgICBhZ19iaXRtYXBfc3RhcnQsIGFnX2JpdG1hcF9sZW4pOwogCiAJCQkvKiBU UEEgaW5mbyAqLwotCQkJaWYgKHJ4X29mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVENQX0xSTykK KwkJCWlmIChyeF9vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfTFJPKQogCQkJCXJ4 X3JpbmdfaW5mby0+dHBhX2luZm8gPQogCQkJCQkoKHN0cnVjdCBibnh0X3RwYV9pbmZvICopCiAJ CQkJCSAoKGNoYXIgKiltei0+YWRkciArIHRwYV9pbmZvX3N0YXJ0KSk7CmRpZmYgYS9kcml2ZXJz L25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9wbWQuYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvcnRl X2V0aF9ib25kX3BtZC5jCShyZWplY3RlZCBodW5rcykKQEAgLTE3MDAsNyArMTcwMCw3IEBAIHNs YXZlX2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmJvbmRlZF9ldGhfZGV2LAogCQlzbGF2 ZV9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5pbnRyX2NvbmYubHNjID0gMTsKIAogCS8qIElmIFJT UyBpcyBlbmFibGVkIGZvciBib25kaW5nLCB0cnkgdG8gZW5hYmxlIGl0IGZvciBzbGF2ZXMgICov Ci0JaWYgKGJvbmRlZF9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSAmIEVU SF9NUV9SWF9SU1NfRkxBRykgeworCWlmIChib25kZWRfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYu cnhtb2RlLm1xX21vZGUgJiBSVEVfRVRIX01RX1JYX1JTU19GTEFHKSB7CiAJCS8qIHJzc19rZXkg d29uJ3QgYmUgZW1wdHkgaWYgUlNTIGlzIGNvbmZpZ3VyZWQgaW4gYm9uZGVkIGRldiAqLwogCQlz bGF2ZV9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3Nfa2V5 X2xlbiA9CiAJCQkJCWludGVybmFscy0+cnNzX2tleV9sZW47CkBAIC0xNzE0LDEyICsxNzE0LDEy IEBAIHNsYXZlX2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmJvbmRlZF9ldGhfZGV2LAog CX0KIAogCWlmIChib25kZWRfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRz ICYKLQkJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKQorCQkJUlRFX0VUSF9SWF9PRkZMT0FE X1ZMQU5fRklMVEVSKQogCQlzbGF2ZV9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2Zm bG9hZHMgfD0KLQkJCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsKKwkJCQlSVEVfRVRIX1JY X09GRkxPQURfVkxBTl9GSUxURVI7CiAJZWxzZQogCQlzbGF2ZV9ldGhfZGV2LT5kYXRhLT5kZXZf Y29uZi5yeG1vZGUub2ZmbG9hZHMgJj0KLQkJCQl+REVWX1JYX09GRkxPQURfVkxBTl9GSUxURVI7 CisJCQkJflJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsKIAogCXNsYXZlX2V0aF9kZXYt PmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tdHUgPQogCQkJYm9uZGVkX2V0aF9kZXYtPmRhdGEtPmRl dl9jb25mLnJ4bW9kZS5tdHU7CkBAIC0zNTAxLDcgKzM1MDEsNyBAQCBib25kX2V0aGRldl9jb25m aWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJICogc2V0IGtleSB0byB0aGUgdGhlIHZh bHVlIHNwZWNpZmllZCBpbiBwb3J0IFJTUyBjb25maWd1cmF0aW9uLgogCSAqIEZhbGwgYmFjayB0 byBkZWZhdWx0IFJTUyBrZXkgaWYgdGhlIGtleSBpcyBub3Qgc3BlY2lmaWVkCiAJICovCi0JaWYg KGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBFVEhfTVFfUlhfUlNTKSB7CisJ aWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBSVEVfRVRIX01RX1JYX1JT UykgewogCQlzdHJ1Y3QgcnRlX2V0aF9yc3NfY29uZiAqcnNzX2NvbmYgPQogCQkJJmRldi0+ZGF0 YS0+ZGV2X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmY7CiAJCWlmIChyc3NfY29uZi0+cnNzX2tl eSAhPSBOVUxMKSB7CmRpZmYgYS9kcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2LmMgYi9kcml2 ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMjEwLDggKzIx MCw4IEBAIG5peF9lbmFibGVfbXNlZ19vbl9qdW1ibyhzdHJ1Y3QgY254a19ldGhfcnhxX3NwICpy eHEpCiAJYnVmZnN6ID0gbWJwX3ByaXYtPm1idWZfZGF0YV9yb29tX3NpemUgLSBSVEVfUEtUTUJV Rl9IRUFEUk9PTTsKIAogCWlmIChldGhfZGV2LT5kYXRhLT5tdHUgKyAodWludDMyX3QpQ05YS19O SVhfTDJfT1ZFUkhFQUQgPiBidWZmc3opIHsKLQkJZGV2LT5yeF9vZmZsb2FkcyB8PSBERVZfUlhf T0ZGTE9BRF9TQ0FUVEVSOwotCQlkZXYtPnR4X29mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01V TFRJX1NFR1M7CisJCWRldi0+cnhfb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRU RVI7CisJCWRldi0+dHhfb2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7 CiAJfQogfQogCmRpZmYgYS9kcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2LmggYi9kcml2ZXJz L25ldC9jbnhrL2NueGtfZXRoZGV2LmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtNTcsNDEgKzU3LDQ0 IEBACiAJIENOWEtfTklYX1RYX05CX1NFR19NQVgpCiAKICNkZWZpbmUgQ05YS19OSVhfUlNTX0wz X0w0X1NSQ19EU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0JKEVUSF9SU1NfTDNfU1JDX09OTFkgfCBFVEhfUlNTX0wzX0RTVF9PTkxZIHwgRVRIX1JTU19M NF9TUkNfT05MWSB8ICAgICBcCi0JIEVUSF9SU1NfTDRfRFNUX09OTFkpCisJKFJURV9FVEhfUlNT X0wzX1NSQ19PTkxZIHwgUlRFX0VUSF9SU1NfTDNfRFNUX09OTFkgfCAgICAgICAgICAgICAgICAg ICBcCisJIFJURV9FVEhfUlNTX0w0X1NSQ19PTkxZIHwgUlRFX0VUSF9SU1NfTDRfRFNUX09OTFkp CiAKICNkZWZpbmUgQ05YS19OSVhfUlNTX09GRkxPQUQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0JKEVUSF9SU1NfUE9SVCB8IEVUSF9SU1NfSVAg fCBFVEhfUlNTX1VEUCB8IEVUSF9SU1NfVENQIHwgICAgICAgICAgICAgICBcCi0JIEVUSF9SU1Nf U0NUUCB8IEVUSF9SU1NfVFVOTkVMIHwgRVRIX1JTU19MMl9QQVlMT0FEIHwgICAgICAgICAgICAg ICAgICBcCi0JIENOWEtfTklYX1JTU19MM19MNF9TUkNfRFNUIHwgRVRIX1JTU19MRVZFTF9NQVNL IHwgRVRIX1JTU19DX1ZMQU4pCisJKFJURV9FVEhfUlNTX1BPUlQgfCBSVEVfRVRIX1JTU19JUCB8 IFJURV9FVEhfUlNTX1VEUCB8ICAgICAgICAgICAgICAgICBcCisJIFJURV9FVEhfUlNTX1RDUCB8 IFJURV9FVEhfUlNTX1NDVFAgfCBSVEVfRVRIX1JTU19UVU5ORUwgfCAgICAgICAgICAgICBcCisJ IFJURV9FVEhfUlNTX0wyX1BBWUxPQUQgfCBDTlhLX05JWF9SU1NfTDNfTDRfU1JDX0RTVCB8ICAg ICAgICAgICAgICAgICBcCisJIFJURV9FVEhfUlNTX0xFVkVMX01BU0sgfCBSVEVfRVRIX1JTU19D X1ZMQU4pCiAKICNkZWZpbmUgQ05YS19OSVhfVFhfT0ZGTE9BRF9DQVBBICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0JKERFVl9UWF9PRkZMT0FEX01CVUZf RkFTVF9GUkVFIHwgREVWX1RYX09GRkxPQURfTVRfTE9DS0ZSRUUgfCAgICAgICAgICBcCi0JIERF Vl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwgREVWX1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfCAg ICAgICAgICAgICBcCi0JIERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBERVZfVFhf T0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfCAgICBcCi0JIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NV TSB8IERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8ICAgICAgICAgICAgICAgICBcCi0JIERFVl9U WF9PRkZMT0FEX1NDVFBfQ0tTVU0gfCBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwgICAgICAgICAg ICAgICAgICBcCi0JIERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfCBERVZfVFhfT0ZGTE9B RF9HRU5FVkVfVE5MX1RTTyB8ICAgICAgICBcCi0JIERFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNP IHwgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8ICAgICAgICAgICAgICBcCi0JIERFVl9UWF9P RkZMT0FEX0lQVjRfQ0tTVU0gfCBERVZfVFhfT0ZGTE9BRF9TRUNVUklUWSkKKwkoUlRFX0VUSF9U WF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFIHwgUlRFX0VUSF9UWF9PRkZMT0FEX01UX0xPQ0tGUkVF IHwgICAgICAgICAgXAorCSBSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfCBSVEVfRVRI X1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfCAgICAgICAgICAgICBcCisJIFJURV9FVEhfVFhfT0ZG TE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NV TSB8ICAgIFwKKwkgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8IFJURV9FVEhfVFhfT0ZG TE9BRF9VRFBfQ0tTVU0gfCAgICAgICAgICAgICAgICAgXAorCSBSVEVfRVRIX1RYX09GRkxPQURf U0NUUF9DS1NVTSB8IFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwgICAgICAgICAgICAgICAg ICBcCisJIFJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwgUlRFX0VUSF9UWF9PRkZM T0FEX0dFTkVWRV9UTkxfVFNPIHwgICAgICAgIFwKKwkgUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9U TkxfVFNPIHwgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfCAgICAgICAgICAgICAgXAor CSBSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8IFJURV9FVEhfVFhfT0ZGTE9BRF9TRUNV UklUWSkKIAogI2RlZmluZSBDTlhLX05JWF9SWF9PRkZMT0FEX0NBUEEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkoREVWX1JYX09GRkxPQURfQ0hFQ0tT VU0gfCBERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwgICAgICAgICAgICAgICAgIFwKLQkgREVW X1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfCAg ICAgICAgICAgIFwKLQkgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwgREVWX1JYX09G RkxPQURfUlNTX0hBU0ggfCAgICAgICAgICAgIFwKLQkgREVWX1JYX09GRkxPQURfVElNRVNUQU1Q IHwgREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8ICAgICAgICAgICAgICAgIFwKLQkgREVWX1JY X09GRkxPQURfU0VDVVJJVFkpCisJKFJURV9FVEhfUlhfT0ZGTE9BRF9DSEVDS1NVTSB8IFJURV9F VEhfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwgICAgICAgICBcCisJIFJURV9FVEhfUlhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNIHwgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfCAgICBcCisJ IFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfCBSVEVfRVRIX1JYX09GRkxPQURf UlNTX0hBU0ggfCAgICBcCisJIFJURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVAgfCBSVEVfRVRI X1JYX09GRkxPQURfVkxBTl9TVFJJUCB8ICAgICAgICBcCisJIFJURV9FVEhfUlhfT0ZGTE9BRF9T RUNVUklUWSkKIAogI2RlZmluZSBSU1NfSVBWNF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkoRVRIX1JTU19JUFY0IHwgRVRI X1JTU19GUkFHX0lQVjQgfCBFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfCAgICAgICAgIFwKLQkg RVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwgRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCkKKwko UlRFX0VUSF9SU1NfSVBWNCB8IFJURV9FVEhfUlNTX0ZSQUdfSVBWNCB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKwkgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8IFJURV9FVEhf UlNTX05PTkZSQUdfSVBWNF9UQ1AgfCAgICAgICAgIFwKKwkgUlRFX0VUSF9SU1NfTk9ORlJBR19J UFY0X1NDVFApCiAKICNkZWZpbmUgUlNTX0lQVjZfRU5BQkxFICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0JKEVUSF9SU1NfSVBWNiB8IEVU SF9SU1NfRlJBR19JUFY2IHwgRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwgICAgICAgICBcCi0J IEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8IEVUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFApCisJ KFJURV9FVEhfUlNTX0lQVjYgfCBSVEVfRVRIX1JTU19GUkFHX0lQVjYgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisJIFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBSVEVfRVRI X1JTU19OT05GUkFHX0lQVjZfVENQIHwgICAgICAgICBcCisJIFJURV9FVEhfUlNTX05PTkZSQUdf SVBWNl9TQ1RQKQogCiAjZGVmaW5lIFJTU19JUFY2X0VYX0VOQUJMRSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCShFVEhfUlNTX0lQVjZfRVgg fCBFVEhfUlNTX0lQVjZfVENQX0VYIHwgRVRIX1JTU19JUFY2X1VEUF9FWCkKKwkoUlRFX0VUSF9S U1NfSVBWNl9FWCB8IFJURV9FVEhfUlNTX0lQVjZfVENQX0VYIHwgUlRFX0VUSF9SU1NfSVBWNl9V RFBfRVgpCiAKICNkZWZpbmUgUlNTX01BWF9MRVZFTFMgMwogCmRpZmYgYS9kcml2ZXJzL25ldC9j bnhrL2NueGtfZXRoZGV2X29wcy5jIGIvZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRldl9vcHMu YwkocmVqZWN0ZWQgaHVua3MpCkBAIC04MSwyNCArODEsMjQgQEAgY254a19uaXhfcnhfYnVyc3Rf bW9kZV9nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCwK IAkJdWludDY0X3QgZmxhZ3M7CiAJCWNvbnN0IGNoYXIgKm91dHB1dDsKIAl9IHJ4X29mZmxvYWRf bWFwW10gPSB7Ci0JCXtERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQLCAiIFZMQU4gU3RyaXAsIn0s Ci0JCXtERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNLCAiIElubmVyIElQdjQgQ2hlY2tzdW0sIn0s Ci0JCXtERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0sICIgVURQIENoZWNrc3VtLCJ9LAotCQl7REVW X1JYX09GRkxPQURfVENQX0NLU1VNLCAiIFRDUCBDaGVja3N1bSwifSwKLQkJe0RFVl9SWF9PRkZM T0FEX1RDUF9MUk8sICIgVENQIExSTywifSwKLQkJe0RFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAs ICIgUWluUSBWTEFOIFN0cmlwLCJ9LAotCQl7REVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NV TSwgIiBPdXRlciBJUHY0IENoZWNrc3VtLCJ9LAotCQl7REVWX1JYX09GRkxPQURfTUFDU0VDX1NU UklQLCAiIE1BQ3NlYyBTdHJpcCwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCwg IiBIZWFkZXIgU3BsaXQsIn0sCi0JCXtERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiwgIiBWTEFO IEZpbHRlciwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5ELCAiIFZMQU4gRXh0ZW5k LCJ9LAotCQl7REVWX1JYX09GRkxPQURfU0NBVFRFUiwgIiBTY2F0dGVyZWQsIn0sCi0JCXtERVZf UlhfT0ZGTE9BRF9USU1FU1RBTVAsICIgVGltZXN0YW1wLCJ9LAotCQl7REVWX1JYX09GRkxPQURf U0VDVVJJVFksICIgU2VjdXJpdHksIn0sCi0JCXtERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQywgIiBL ZWVwIENSQywifSwKLQkJe0RFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0sICIgU0NUUCwifSwKLQkJ e0RFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSwgIiBPdXRlciBVRFAgQ2hlY2tzdW0sIn0s Ci0JCXtERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCwgIiBSU1MsIn0KKwkJe1JURV9FVEhfUlhfT0ZG TE9BRF9WTEFOX1NUUklQLCAiIFZMQU4gU3RyaXAsIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURf SVBWNF9DS1NVTSwgIiBJbm5lciBJUHY0IENoZWNrc3VtLCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZM T0FEX1VEUF9DS1NVTSwgIiBVRFAgQ2hlY2tzdW0sIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURf VENQX0NLU1VNLCAiIFRDUCBDaGVja3N1bSwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9UQ1Bf TFJPLCAiIFRDUCBMUk8sIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfUUlOUV9TVFJJUCwgIiBR aW5RIFZMQU4gU3RyaXAsIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NV TSwgIiBPdXRlciBJUHY0IENoZWNrc3VtLCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZMT0FEX01BQ1NF Q19TVFJJUCwgIiBNQUNzZWMgU3RyaXAsIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfSEVBREVS X1NQTElULCAiIEhlYWRlciBTcGxpdCwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiwgIiBWTEFOIEZpbHRlciwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVO RCwgIiBWTEFOIEV4dGVuZCwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSLCAiIFNj YXR0ZXJlZCwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVAsICIgVGltZXN0YW1w LCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1NFQ1VSSVRZLCAiIFNlY3VyaXR5LCJ9LAorCQl7 UlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDLCAiIEtlZXAgQ1JDLCJ9LAorCQl7UlRFX0VUSF9S WF9PRkZMT0FEX1NDVFBfQ0tTVU0sICIgU0NUUCwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9P VVRFUl9VRFBfQ0tTVU0sICIgT3V0ZXIgVURQIENoZWNrc3VtLCJ9LAorCQl7UlRFX0VUSF9SWF9P RkZMT0FEX1JTU19IQVNILCAiIFJTUywifQogCX07CiAJc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IGJ1cnN0X21vZGVbXSA9IHsiVmVjdG9yIE5lb24sIFJ4IE9mZmxvYWRzOiIsCiAJCQkJCQkgIlNj YWxhciwgUnggT2ZmbG9hZHM6IgpkaWZmIGEvZHJpdmVycy9uZXQvY3hnYmUvY3hnYmUuaCBiL2Ry aXZlcnMvbmV0L2N4Z2JlL2N4Z2JlLmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtMjgsMzEgKzI4LDMx IEBACiAjZGVmaW5lIENYR0JFX0xJTktfU1RBVFVTX1BPTExfQ05UIDEwMCAvKiBNYXggbnVtYmVy IG9mIHRpbWVzIHRvIHBvbGwgKi8KIAogI2RlZmluZSBDWEdCRV9ERUZBVUxUX1JTU19LRVlfTEVO ICAgICA0MCAvKiAzMjAtYml0cyAqLwotI2RlZmluZSBDWEdCRV9SU1NfSEZfSVBWNF9NQVNLIChF VEhfUlNTX0lQVjQgfCBFVEhfUlNTX0ZSQUdfSVBWNCB8IFwKLQkJCQlFVEhfUlNTX05PTkZSQUdf SVBWNF9PVEhFUikKLSNkZWZpbmUgQ1hHQkVfUlNTX0hGX0lQVjZfTUFTSyAoRVRIX1JTU19JUFY2 IHwgRVRIX1JTU19GUkFHX0lQVjYgfCBcCi0JCQkJRVRIX1JTU19OT05GUkFHX0lQVjZfT1RIRVIg fCBcCi0JCQkJRVRIX1JTU19JUFY2X0VYKQotI2RlZmluZSBDWEdCRV9SU1NfSEZfVENQX0lQVjZf TUFTSyAoRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAotCQkJCSAgICBFVEhfUlNTX0lQVjZf VENQX0VYKQotI2RlZmluZSBDWEdCRV9SU1NfSEZfVURQX0lQVjZfTUFTSyAoRVRIX1JTU19OT05G UkFHX0lQVjZfVURQIHwgXAotCQkJCSAgICBFVEhfUlNTX0lQVjZfVURQX0VYKQotI2RlZmluZSBD WEdCRV9SU1NfSEZfQUxMIChFVEhfUlNTX0lQIHwgRVRIX1JTU19UQ1AgfCBFVEhfUlNTX1VEUCkK KyNkZWZpbmUgQ1hHQkVfUlNTX0hGX0lQVjRfTUFTSyAoUlRFX0VUSF9SU1NfSVBWNCB8IFJURV9F VEhfUlNTX0ZSQUdfSVBWNCB8IFwKKwkJCQlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfT1RIRVIp CisjZGVmaW5lIENYR0JFX1JTU19IRl9JUFY2X01BU0sgKFJURV9FVEhfUlNTX0lQVjYgfCBSVEVf RVRIX1JTU19GUkFHX0lQVjYgfCBcCisJCQkJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X09USEVS IHwgXAorCQkJCVJURV9FVEhfUlNTX0lQVjZfRVgpCisjZGVmaW5lIENYR0JFX1JTU19IRl9UQ1Bf SVBWNl9NQVNLIChSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAorCQkJCSAgICBSVEVf RVRIX1JTU19JUFY2X1RDUF9FWCkKKyNkZWZpbmUgQ1hHQkVfUlNTX0hGX1VEUF9JUFY2X01BU0sg KFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCisJCQkJICAgIFJURV9FVEhfUlNTX0lQ VjZfVURQX0VYKQorI2RlZmluZSBDWEdCRV9SU1NfSEZfQUxMIChSVEVfRVRIX1JTU19JUCB8IFJU RV9FVEhfUlNTX1RDUCB8IFJURV9FVEhfUlNTX1VEUCkKIAogLyogVHgvUnggT2ZmbG9hZHMgc3Vw cG9ydGVkICovCi0jZGVmaW5lIENYR0JFX1RYX09GRkxPQURTIChERVZfVFhfT0ZGTE9BRF9WTEFO X0lOU0VSVCB8IFwKLQkJCSAgIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCi0JCQkgICBE RVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCi0JCQkgICBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tT VU0gfCBcCi0JCQkgICBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwgXAotCQkJICAgREVWX1RYX09G RkxPQURfTVVMVElfU0VHUykKLQotI2RlZmluZSBDWEdCRV9SWF9PRkZMT0FEUyAoREVWX1JYX09G RkxPQURfVkxBTl9TVFJJUCB8IFwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBc Ci0JCQkgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCi0JCQkgICBERVZfUlhfT0ZGTE9B RF9UQ1BfQ0tTVU0gfCBcCi0JCQkgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwgXAotCQkJICAg REVWX1JYX09GRkxPQURfUlNTX0hBU0gpCisjZGVmaW5lIENYR0JFX1RYX09GRkxPQURTIChSVEVf RVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfCBcCisJCQkgICBSVEVfRVRIX1RYX09GRkxPQURf SVBWNF9DS1NVTSB8IFwKKwkJCSAgIFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCisJ CQkgICBSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNIHwgXAorCQkJICAgUlRFX0VUSF9UWF9P RkZMT0FEX1RDUF9UU08gfCBcCisJCQkgICBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykK KworI2RlZmluZSBDWEdCRV9SWF9PRkZMT0FEUyAoUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RS SVAgfCBcCisJCQkgICBSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKKwkJCSAgIFJU RV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCisJCQkgICBSVEVfRVRIX1JYX09GRkxPQURf VENQX0NLU1VNIHwgXAorCQkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfCBcCisJCQkg ICBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpCiAKIC8qIERldmFyZ3MgZmlsdGVybW9kZSBh bmQgZmlsdGVybWFzayByZXByZXNlbnRhdGlvbiAqLwogZW51bSBjeGdiZV9kZXZhcmdzX2ZpbHRl cl9tb2RlX2ZsYWdzIHsKZGlmZiBhL2RyaXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYuYyBiL2Ry aXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC01NCwyOSAr NTQsMjkgQEAKIAogLyogU3VwcG9ydGVkIFJ4IG9mZmxvYWRzICovCiBzdGF0aWMgdWludDY0X3Qg ZGV2X3J4X29mZmxvYWRzX3N1cCA9Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVI7CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9TQ0FUVEVSOwogCiAvKiBSeCBvZmZsb2FkcyB3aGljaCBjYW5ub3QgYmUg ZGlzYWJsZWQgKi8KIHN0YXRpYyB1aW50NjRfdCBkZXZfcnhfb2ZmbG9hZHNfbm9kaXMgPQotCQlE RVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwK LQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09GRkxP QURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVf RVRIX1JYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQ VjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0g7CiAKIC8qIFN1cHBvcnRl ZCBUeCBvZmZsb2FkcyAqLwogc3RhdGljIHVpbnQ2NF90IGRldl90eF9vZmZsb2Fkc19zdXAgPQot CQlERVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRSB8Ci0JCURFVl9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFOworCQlSVEVfRVRIX1RYX09GRkxPQURfTVRfTE9DS0ZSRUUgfAorCQlSVEVfRVRIX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAKIC8qIFR4IG9mZmxvYWRzIHdoaWNoIGNhbm5vdCBi ZSBkaXNhYmxlZCAqLwogc3RhdGljIHVpbnQ2NF90IGRldl90eF9vZmZsb2Fkc19ub2RpcyA9Ci0J CURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0g fAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NL U1VNIHwKLQkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZM T0FEX01VTFRJX1NFR1M7CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRF X0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tT VU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZG TE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7 CiAKIC8qIEtlZXAgdHJhY2sgb2Ygd2hldGhlciBRTUFOIGFuZCBCTUFOIGhhdmUgYmVlbiBnbG9i YWxseSBpbml0aWFsaXplZCAqLwogc3RhdGljIGludCBpc19nbG9iYWxfaW5pdDsKQEAgLTIzOCw3 ICsyMzgsNyBAQCBkcGFhX2V0aF9kZXZfY29uZmlndXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 KQogCiAJZm1hbl9pZl9zZXRfbWF4ZnJtKGRldi0+cHJvY2Vzc19wcml2YXRlLCBtYXhfcnhfcGt0 bGVuKTsKIAotCWlmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpIHsKKwlp ZiAocnhfb2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikgewogCQlEUEFBX1BN RF9ERUJVRygiZW5hYmxpbmcgc2NhdHRlciBtb2RlIik7CiAJCWZtYW5faWZfc2V0X3NnKGRldi0+ cHJvY2Vzc19wcml2YXRlLCAxKTsKIAkJZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSAxOwpAQCAt NTkxLDEyICs1OTEsMTIgQEAgZHBhYV9kZXZfcnhfYnVyc3RfbW9kZV9nZXQoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsCiAJCXVpbnQ2NF90IGZsYWdzOwogCQljb25zdCBjaGFyICpvdXRwdXQ7CiAJ fSByeF9vZmZsb2FkX21hcFtdID0gewotCQkJe0RFVl9SWF9PRkZMT0FEX1NDQVRURVIsICIgU2Nh dHRlcmVkLCJ9LAotCQkJe0RFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0sICIgSVBWNCBjc3VtLCJ9 LAotCQkJe0RFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSwgIiBVRFAgY3N1bSwifSwKLQkJCXtERVZf UlhfT0ZGTE9BRF9UQ1BfQ0tTVU0sICIgVENQIGNzdW0sIn0sCi0JCQl7REVWX1JYX09GRkxPQURf T1VURVJfSVBWNF9DS1NVTSwgIiBPdXRlciBJUFY0IGNzdW0sIn0sCi0JCQl7REVWX1JYX09GRkxP QURfUlNTX0hBU0gsICIgUlNTLCJ9CisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIsICIg U2NhdHRlcmVkLCJ9LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNLCAiIElQVjQg Y3N1bSwifSwKKwkJCXtSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNLCAiIFVEUCBjc3VtLCJ9 LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0sICIgVENQIGNzdW0sIn0sCisJCQl7 UlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0sICIgT3V0ZXIgSVBWNCBjc3VtLCJ9 LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCwgIiBSU1MsIn0KIAl9OwogCiAJLyog VXBkYXRlIFJ4IG9mZmxvYWQgaW5mbyAqLwpAQCAtOTYyLDcgKzk2Miw3IEBAIGludCBkcGFhX2V0 aF9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVf aWR4LAogCWlmIChtYXhfcnhfcGt0bGVuIDw9IGJ1ZmZzeikgewogCQk7CiAJfSBlbHNlIGlmIChk ZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyAmCi0JCQlERVZfUlhfT0ZGTE9BRF9T Q0FUVEVSKSB7CisJCQlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikgewogCQlpZiAobWF4X3J4 X3BrdGxlbiA+IGJ1ZmZzeiAqIERQQUFfU0dUX01BWF9FTlRSSUVTKSB7CiAJCQlEUEFBX1BNRF9F UlIoIk1heGltdW0gUnggcGFja2V0IHNpemUgJWQgdG9vIGJpZyB0byBmaXQgIgogCQkJCSJNYXhT R2xpc3QgJWQiLApkaWZmIGEvZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJfZXRoZGV2LmMgYi9kcml2 ZXJzL25ldC9kcGFhMi9kcGFhMl9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0zOCwzMyAr MzgsMzMgQEAKIAogLyogU3VwcG9ydGVkIFJ4IG9mZmxvYWRzICovCiBzdGF0aWMgdWludDY0X3Qg ZGV2X3J4X29mZmxvYWRzX3N1cCA9Ci0JCURFVl9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKLQkJREVW X1JYX09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tT VU0gfAotCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9B RF9WTEFOX1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAotCQlERVZfUlhf T0ZGTE9BRF9USU1FU1RBTVA7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9DSEVDS1NVTSB8CisJCVJU RV9FVEhfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKKwkJ UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVkxB Tl9GSUxURVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVElNRVNUQU1QOwogCiAvKiBSeCBvZmZs b2FkcyB3aGljaCBjYW5ub3QgYmUgZGlzYWJsZWQgKi8KIHN0YXRpYyB1aW50NjRfdCBkZXZfcnhf b2ZmbG9hZHNfbm9kaXMgPQotCQlERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8Ci0JCURFVl9SWF9P RkZMT0FEX1NDQVRURVI7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9TQ0FUVEVSOwogCiAvKiBTdXBwb3J0ZWQgVHggb2ZmbG9hZHMgKi8KIHN0 YXRpYyB1aW50NjRfdCBkZXZfdHhfb2ZmbG9hZHNfc3VwID0KLQkJREVWX1RYX09GRkxPQURfVkxB Tl9JTlNFUlQgfAotCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxP QURfVURQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1RYX09G RkxPQURfU0NUUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAot CQlERVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRSB8Ci0JCURFVl9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFOworCQlSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAorCQlSVEVfRVRIX1RY X09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAor CQlSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ND VFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJU RV9FVEhfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRTsKIAogLyogVHggb2ZmbG9hZHMgd2hpY2ggY2Fubm90IGJlIGRpc2FibGVkICov CiBzdGF0aWMgdWludDY0X3QgZGV2X3R4X29mZmxvYWRzX25vZGlzID0KLQkJREVWX1RYX09GRkxP QURfTVVMVElfU0VHUzsKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CiAKIC8qIGVu YWJsZSB0aW1lc3RhbXAgaW4gbWJ1ZiAqLwogYm9vbCBkcGFhMl9lbmFibGVfdHNbUlRFX01BWF9F VEhQT1JUU107CkBAIC0yOTEsMTUgKzI5MSwxNSBAQCBkcGFhMl9kZXZfcnhfYnVyc3RfbW9kZV9n ZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCiAJCXVpbnQ2NF90IGZsYWdzOwogCQljb25zdCBj aGFyICpvdXRwdXQ7CiAJfSByeF9vZmZsb2FkX21hcFtdID0gewotCQkJe0RFVl9SWF9PRkZMT0FE X0NIRUNLU1VNLCAiIENoZWNrc3VtLCJ9LAotCQkJe0RFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0s ICIgU0NUUCBjc3VtLCJ9LAotCQkJe0RFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0sICIg T3V0ZXIgSVBWNCBjc3VtLCJ9LAotCQkJe0RFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSwg IiBPdXRlciBVRFAgY3N1bSwifSwKLQkJCXtERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQLCAiIFZM QU4gc3RyaXAsIn0sCi0JCQl7REVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIsICIgVkxBTiBmaWx0 ZXIsIn0sCi0JCQl7REVWX1JYX09GRkxPQURfVElNRVNUQU1QLCAiIFRpbWVzdGFtcCwifSwKLQkJ CXtERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCwgIiBSU1MsIn0sCi0JCQl7REVWX1JYX09GRkxPQURf U0NBVFRFUiwgIiBTY2F0dGVyZWQsIn0KKwkJCXtSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0s ICIgQ2hlY2tzdW0sIn0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0sICIgU0NU UCBjc3VtLCJ9LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNLCAiIE91 dGVyIElQVjQgY3N1bSwifSwKKwkJCXtSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VN LCAiIE91dGVyIFVEUCBjc3VtLCJ9LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ LCAiIFZMQU4gc3RyaXAsIn0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSLCAi IFZMQU4gZmlsdGVyLCJ9LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVAsICIgVGlt ZXN0YW1wLCJ9LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCwgIiBSU1MsIn0sCisJ CQl7UlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIsICIgU2NhdHRlcmVkLCJ9CiAJfTsKIAogCS8q IFVwZGF0ZSBSeCBvZmZsb2FkIGluZm8gKi8KQEAgLTU3Myw3ICs1NzMsNyBAQCBkcGFhMl9ldGhf ZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAkJcmV0dXJuIC0xOwogCX0K IAotCWlmIChldGhfY29uZi0+cnhtb2RlLm1xX21vZGUgPT0gRVRIX01RX1JYX1JTUykgeworCWlm IChldGhfY29uZi0+cnhtb2RlLm1xX21vZGUgPT0gUlRFX0VUSF9NUV9SWF9SU1MpIHsKIAkJZm9y ICh0Y19pbmRleCA9IDA7IHRjX2luZGV4IDwgcHJpdi0+bnVtX3J4X3RjOyB0Y19pbmRleCsrKSB7 CiAJCQlyZXQgPSBkcGFhMl9zZXR1cF9mbG93X2Rpc3QoZGV2LAogCQkJCQlldGhfY29uZi0+cnhf YWR2X2NvbmYucnNzX2NvbmYucnNzX2hmLApkaWZmIGEvZHJpdmVycy9uZXQvZTEwMDAvZW1fcnh0 eC5jIGIvZHJpdmVycy9uZXQvZTEwMDAvZW1fcnh0eC5jCShyZWplY3RlZCBodW5rcykKQEAgLTEz NjksMTMgKzEzNjksMTMgQEAgZW1fZ2V0X3J4X3BvcnRfb2ZmbG9hZHNfY2FwYSh2b2lkKQogCXVp bnQ2NF90IHJ4X29mZmxvYWRfY2FwYTsKIAogCXJ4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9P RkZMT0FEX1ZMQU5fU1RSSVAgIHwKLQkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAotCQlE RVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8Ci0JCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAg IHwKLQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNICAgfAotCQlERVZfUlhfT0ZGTE9BRF9LRUVQ X0NSQyAgICB8Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVI7CisJCVJURV9FVEhfUlhfT0ZGTE9B RF9WTEFOX1NUUklQICB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCVJU RV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBf Q0tTVU0gICB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CisJCVJURV9FVEhf UlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSOwog CiAJcmV0dXJuIHJ4X29mZmxvYWRfY2FwYTsKIH0KZGlmZiBhL2RyaXZlcnMvbmV0L2UxMDAwL2ln Yl9yeHR4LmMgYi9kcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jCShyZWplY3RlZCBodW5rcykK QEAgLTE2NDAsMTkgKzE2NDAsMTkgQEAgaWdiX2dldF9yeF9wb3J0X29mZmxvYWRzX2NhcGEoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAKIAlodyA9IEUxMDAwX0RFVl9QUklWQVRFX1RPX0hXKGRl di0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwogCi0Jcnhfb2ZmbG9hZF9jYXBhID0gREVWX1JYX09GRkxP QURfVkxBTl9TVFJJUCAgfAotCQkJICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCQkg IERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKLQkJCSAgREVWX1JYX09GRkxPQURfVURQX0NL U1VNICAgfAotCQkJICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8Ci0JCQkgIERFVl9SWF9P RkZMT0FEX0tFRVBfQ1JDICAgIHwKLQkJCSAgREVWX1JYX09GRkxPQURfU0NBVFRFUiAgICAgfAot CQkJICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKKwlyeF9vZmZsb2FkX2NhcGEgPSBSVEVfRVRI X1JYX09GRkxPQURfVkxBTl9TVFJJUCAgfAorCQkJICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9G SUxURVIgfAorCQkJICBSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAorCQkJICBSVEVf RVRIX1JYX09GRkxPQURfVURQX0NLU1VNICAgfAorCQkJICBSVEVfRVRIX1JYX09GRkxPQURfVENQ X0NLU1VNICAgfAorCQkJICBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMgICAgfAorCQkJICBS VEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiAgICAgfAorCQkJICBSVEVfRVRIX1JYX09GRkxPQURf UlNTX0hBU0g7CiAKIAlpZiAoaHctPm1hYy50eXBlID09IGUxMDAwX2kzNTAgfHwKIAkgICAgaHct Pm1hYy50eXBlID09IGUxMDAwX2kyMTAgfHwKIAkgICAgaHctPm1hYy50eXBlID09IGUxMDAwX2ky MTEpCi0JCXJ4X29mZmxvYWRfY2FwYSB8PSBERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORDsKKwkJ cnhfb2ZmbG9hZF9jYXBhIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORDsKIAogCXJl dHVybiByeF9vZmZsb2FkX2NhcGE7CiB9CmRpZmYgYS9kcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRl di5jIGIvZHJpdmVycy9uZXQvZW5hL2VuYV9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0x ODkzLDM1ICsxODkzLDM1IEBAIHN0YXRpYyBpbnQgZW5hX2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldiwKIAllbmFfYXNzZXJ0X21zZyhlbmFfZGV2ICE9IE5VTEwsICJVbmluaXRpYWxp emVkIGRldmljZVxuIik7CiAKIAlkZXZfaW5mby0+c3BlZWRfY2FwYSA9Ci0JCQlFVEhfTElOS19T UEVFRF8xRyAgIHwKLQkJCUVUSF9MSU5LX1NQRUVEXzJfNUcgfAotCQkJRVRIX0xJTktfU1BFRURf NUcgICB8Ci0JCQlFVEhfTElOS19TUEVFRF8xMEcgIHwKLQkJCUVUSF9MSU5LX1NQRUVEXzI1RyAg fAotCQkJRVRIX0xJTktfU1BFRURfNDBHICB8Ci0JCQlFVEhfTElOS19TUEVFRF81MEcgIHwKLQkJ CUVUSF9MSU5LX1NQRUVEXzEwMEc7CisJCQlSVEVfRVRIX0xJTktfU1BFRURfMUcgICB8CisJCQlS VEVfRVRIX0xJTktfU1BFRURfMl81RyB8CisJCQlSVEVfRVRIX0xJTktfU1BFRURfNUcgICB8CisJ CQlSVEVfRVRIX0xJTktfU1BFRURfMTBHICB8CisJCQlSVEVfRVRIX0xJTktfU1BFRURfMjVHICB8 CisJCQlSVEVfRVRIX0xJTktfU1BFRURfNDBHICB8CisJCQlSVEVfRVRIX0xJTktfU1BFRURfNTBH ICB8CisJCQlSVEVfRVRIX0xJTktfU1BFRURfMTAwRzsKIAogCS8qIFNldCBUeCAmIFJ4IGZlYXR1 cmVzIGF2YWlsYWJsZSBmb3IgZGV2aWNlICovCiAJaWYgKGFkYXB0ZXItPm9mZmxvYWRzLnRzbzRf c3VwcG9ydGVkKQotCQl0eF9mZWF0CXw9IERFVl9UWF9PRkZMT0FEX1RDUF9UU087CisJCXR4X2Zl YXQJfD0gUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU087CiAKIAlpZiAoYWRhcHRlci0+b2ZmbG9h ZHMudHhfY3N1bV9zdXBwb3J0ZWQpCi0JCXR4X2ZlYXQgfD0gREVWX1RYX09GRkxPQURfSVBWNF9D S1NVTSB8Ci0JCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQkJREVWX1RYX09GRkxPQURf VENQX0NLU1VNOworCQl0eF9mZWF0IHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwK KwkJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJUlRFX0VUSF9UWF9PRkZMT0FE X1RDUF9DS1NVTTsKIAogCWlmIChhZGFwdGVyLT5vZmZsb2Fkcy5yeF9jc3VtX3N1cHBvcnRlZCkK LQkJcnhfZmVhdCB8PSBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJCURFVl9SWF9PRkZM T0FEX1VEUF9DS1NVTSAgfAotCQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNOworCQlyeF9mZWF0 IHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCVJURV9FVEhfUlhfT0ZGTE9B RF9VRFBfQ0tTVU0gIHwKKwkJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU07CiAKLQl0eF9m ZWF0IHw9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJdHhfZmVhdCB8PSBSVEVfRVRIX1RY X09GRkxPQURfTVVMVElfU0VHUzsKIAogCS8qIEluZm9ybSBmcmFtZXdvcmsgYWJvdXQgYXZhaWxh YmxlIGZlYXR1cmVzICovCiAJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IHJ4X2ZlYXQ7CiAJ aWYgKGFkYXB0ZXItPm9mZmxvYWRzLnJzc19oYXNoX3N1cHBvcnRlZCkKLQkJZGV2X2luZm8tPnJ4 X29mZmxvYWRfY2FwYSB8PSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKKwkJZGV2X2luZm8tPnJ4 X29mZmxvYWRfY2FwYSB8PSBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0g7CiAJZGV2X2luZm8t PnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IHJ4X2ZlYXQ7CiAJZGV2X2luZm8tPnR4X29mZmxvYWRf Y2FwYSA9IHR4X2ZlYXQ7CiAJZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IHR4X2Zl YXQ7CmRpZmYgYS9kcml2ZXJzL25ldC9lbmEvZW5hX3Jzcy5jIGIvZHJpdmVycy9uZXQvZW5hL2Vu YV9yc3MuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMzksNyArMTM5LDcgQEAgaW50IGVuYV9yc3Nf cmV0YV9xdWVyeShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKIAlpZiAocmV0YV9zaXplID09IDAg fHwgcmV0YV9jb25mID09IE5VTEwpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKCEoZGV2LT5k YXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkp IHsKKwlpZiAoIShkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyAmIFJURV9FVEhf UlhfT0ZGTE9BRF9SU1NfSEFTSCkpIHsKIAkJUE1EX0RSVl9MT0coRVJSLAogCQkJIlJTUyB3YXMg bm90IGNvbmZpZ3VyZWQgZm9yIHRoZSBQTURcbiIpOwogCQlyZXR1cm4gLUVOT1RTVVA7CmRpZmYg YS9kcml2ZXJzL25ldC9lbmV0Yy9lbmV0Y19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2VuZXRjL2Vu ZXRjX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTIwNywxMCArMjA3LDEwIEBAIGVuZXRj X2Rldl9pbmZvc19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgX19ydGVfdW51c2VkLAogCWRl dl9pbmZvLT5tYXhfdHhfcXVldWVzID0gTUFYX1RYX1JJTkdTOwogCWRldl9pbmZvLT5tYXhfcnhf cGt0bGVuID0gRU5FVENfTUFDX01BWEZSTV9TSVpFOwogCWRldl9pbmZvLT5yeF9vZmZsb2FkX2Nh cGEgPQotCQkoREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCSBERVZfUlhfT0ZGTE9BRF9V RFBfQ0tTVU0gfAotCQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJIERFVl9SWF9PRkZM T0FEX0tFRVBfQ1JDKTsKKwkJKFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJIFJU RV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9D S1NVTSB8CisJCSBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMpOwogCiAJcmV0dXJuIDA7CiB9 CkBAIC03MDUsNyArNzA1LDcgQEAgZW5ldGNfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldikKIAllbmV0Y19wb3J0X3dyKGVuZXRjX2h3LCBFTkVUQ19QVENNU0RVUigwKSwgRU5F VENfTUFDX01BWEZSTV9TSVpFKTsKIAllbmV0Y19wb3J0X3dyKGVuZXRjX2h3LCBFTkVUQ19QVFhN QkFSLCAyICogRU5FVENfTUFDX01BWEZSTV9TSVpFKTsKIAotCWlmIChyeF9vZmZsb2FkcyAmIERF Vl9SWF9PRkZMT0FEX0tFRVBfQ1JDKSB7CisJaWYgKHJ4X29mZmxvYWRzICYgUlRFX0VUSF9SWF9P RkZMT0FEX0tFRVBfQ1JDKSB7CiAJCWludCBjb25maWc7CiAKIAkJY29uZmlnID0gZW5ldGNfcG9y dF9yZChlbmV0Y19odywgRU5FVENfUE0wX0NNRF9DRkcpOwpkaWZmIGEvZHJpdmVycy9uZXQvZW5p Yy9lbmljX21haW4uYyBiL2RyaXZlcnMvbmV0L2VuaWMvZW5pY19tYWluLmMJKHJlamVjdGVkIGh1 bmtzKQpAQCAtODU4LDcgKzg1OCw3IEBAIGludCBlbmljX2FsbG9jX3JxKHN0cnVjdCBlbmljICpl bmljLCB1aW50MTZfdCBxdWV1ZV9pZHgsCiAJbWF4X3J4X3BrdGxlbiA9IGVuaWNfbXR1X3RvX21h eF9yeF9wa3RsZW4oZW5pYy0+cnRlX2Rldi0+ZGF0YS0+bXR1KTsKIAogCWlmIChlbmljLT5ydGVf ZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJgotCSAgICBERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSKSB7CisJICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CiAJCWRldl9p bmZvKGVuaWMsICJScSAldSBTY2F0dGVyIHJ4IG1vZGUgZW5hYmxlZFxuIiwgcXVldWVfaWR4KTsK IAkJLyogY2VpbCgobWF4IHBrdCBsZW4pL21idWZfc2l6ZSkgKi8KIAkJbWJ1ZnNfcGVyX3BrdCA9 IChtYXhfcnhfcGt0bGVuICsgbWJ1Zl9zaXplIC0gMSkgLyBtYnVmX3NpemU7CmRpZmYgYS9kcml2 ZXJzL25ldC9lbmljL2VuaWNfcmVzLmMgYi9kcml2ZXJzL25ldC9lbmljL2VuaWNfcmVzLmMJKHJl amVjdGVkIGh1bmtzKQpAQCAtMjAxLDE5ICsyMDEsMTkgQEAgaW50IGVuaWNfZ2V0X3ZuaWNfY29u ZmlnKHN0cnVjdCBlbmljICplbmljKQogCWVuaWMtPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7 CiAJZW5pYy0+dHhfb2ZmbG9hZF9jYXBhID0KIAkJZW5pYy0+dHhfcXVldWVfb2ZmbG9hZF9jYXBh IHwKLQkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5f SU5TRVJUIHwKLQkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FE X1VEUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZM T0FEX1RDUF9UU087CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJUlRFX0VU SF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPOwogCWVuaWMtPnJ4 X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZG TE9BRF9WTEFOX1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9S WF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURF Vl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9S WF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAll bmljLT50eF9vZmZsb2FkX21hc2sgPQogCQlQS1RfVFhfSVBWNiB8CiAJCVBLVF9UWF9JUFY0IHwK ZGlmZiBhL2RyaXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxzYWZlX29wcy5jIGIvZHJpdmVycy9uZXQv ZmFpbHNhZmUvZmFpbHNhZmVfb3BzLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTE3Miw1MSArMTE3 Miw1MSBAQCBmc19kZXZfaW5mb3NfZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LAogCSAqIGNv bmZpZ3VyaW5nIGEgc3ViLWRldmljZS4KIAkgKi8KIAlpbmZvcy0+cnhfb2ZmbG9hZF9jYXBhID0K LQkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8Ci0JCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfAotCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1Bf Q0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPIHwKLQkJREVWX1JYX09GRkxPQURfUUlO UV9TVFJJUCB8Ci0JCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhf T0ZGTE9BRF9NQUNTRUNfU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQgfAot CQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhU RU5EIHwKLQkJREVWX1JYX09GRkxPQURfU0NBVFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1RJTUVT VEFNUCB8Ci0JCURFVl9SWF9PRkZMT0FEX1NFQ1VSSVRZIHwKLQkJREVWX1JYX09GRkxPQURfUlNT X0hBU0g7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9P RkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJ UlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1Bf TFJPIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAorCQlSVEVfRVRIX1JYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9NQUNTRUNfU1RS SVAgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfSEVBREVSX1NQTElUIHwKKwkJUlRFX0VUSF9SWF9P RkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwK KwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVElN RVNUQU1QIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NFQ1VSSVRZIHwKKwkJUlRFX0VUSF9SWF9P RkZMT0FEX1JTU19IQVNIOwogCiAJaW5mb3MtPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9Ci0JCURF Vl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwK LQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VN IHwKLQkJREVWX1JYX09GRkxPQURfVENQX0xSTyB8Ci0JCURFVl9SWF9PRkZMT0FEX1FJTlFfU1RS SVAgfAotCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxP QURfTUFDU0VDX1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfSEVBREVSX1NQTElUIHwKLQkJREVW X1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8 Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAg fAotCQlERVZfUlhfT0ZGTE9BRF9TRUNVUklUWSB8Ci0JCURFVl9SWF9PRkZMT0FEX1JTU19IQVNI OworCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyB8 CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FE X09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQIHwK KwkJUlRFX0VUSF9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8CisJCVJURV9FVEhfUlhfT0ZGTE9B RF9WTEFOX0ZJTFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8CisJCVJU RV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFN UCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9TRUNVUklUWSB8CisJCVJURV9FVEhfUlhfT0ZGTE9B RF9SU1NfSEFTSDsKIAogCWluZm9zLT50eF9vZmZsb2FkX2NhcGEgPQotCQlERVZfVFhfT0ZGTE9B RF9NVUxUSV9TRUdTIHwKLQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgfAotCQlERVZf VFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJ REVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVENQX1RTTzsKKwkJ UlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfTUJV Rl9GQVNUX0ZSRUUgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9F VEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VN IHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU087CiAKIAlpbmZvcy0+Zmxvd190eXBlX3Jz c19vZmZsb2FkcyA9Ci0JCUVUSF9SU1NfSVAgfAotCQlFVEhfUlNTX1VEUCB8Ci0JCUVUSF9SU1Nf VENQOworCQlSVEVfRVRIX1JTU19JUCB8CisJCVJURV9FVEhfUlNTX1VEUCB8CisJCVJURV9FVEhf UlNTX1RDUDsKIAlpbmZvcy0+ZGV2X2NhcGEgPQogCQlSVEVfRVRIX0RFVl9DQVBBX1JVTlRJTUVf UlhfUVVFVUVfU0VUVVAgfAogCQlSVEVfRVRIX0RFVl9DQVBBX1JVTlRJTUVfVFhfUVVFVUVfU0VU VVA7CmRpZmYgYS9kcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0 L2ZtMTBrL2ZtMTBrX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTc1OSw3ICs3NTksNyBA QCBmbTEwa19kZXZfcnhfaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAkJLyogSXQgYWRk cyBkdWFsIFZMQU4gbGVuZ3RoIGZvciBzdXBwb3J0aW5nIGR1YWwgVkxBTiAqLwogCQlpZiAoKGRl di0+ZGF0YS0+bXR1ICsgUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTiArCiAJ CQkJMiAqIEZNMTBLX1ZMQU5fVEFHX1NJWkUpID4gYnVmX3NpemUgfHwKLQkJCXJ4cS0+b2ZmbG9h ZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CisJCQlyeHEtPm9mZmxvYWRzICYgUlRFX0VU SF9SWF9PRkZMT0FEX1NDQVRURVIpIHsKIAkJCXVpbnQzMl90IHJlZzsKIAkJCWRldi0+ZGF0YS0+ c2NhdHRlcmVkX3J4ID0gMTsKIAkJCXJlZyA9IEZNMTBLX1JFQURfUkVHKGh3LCBGTTEwS19TUlJD VEwoaSkpOwpAQCAtMTc2NywyMCArMTc2NywyMCBAQCBzdGF0aWMgdWludDY0X3QgZm0xMGtfZ2V0 X3J4X3F1ZXVlX29mZmxvYWRzX2NhcGEoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiB7CiAJUlRF X1NFVF9VU0VEKGRldik7CiAKLQlyZXR1cm4gKHVpbnQ2NF90KShERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSKTsKKwlyZXR1cm4gKHVpbnQ2NF90KShSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUik7CiB9 CiAKIHN0YXRpYyB1aW50NjRfdCBmbTEwa19nZXRfcnhfcG9ydF9vZmZsb2Fkc19jYXBhKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2KQogewogCVJURV9TRVRfVVNFRChkZXYpOwogCi0JcmV0dXJuICAo dWludDY0X3QpKERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwKLQkJCSAgIERFVl9SWF9PRkZM T0FEX1ZMQU5fRklMVEVSIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKLQkJ CSAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX1RD UF9DS1NVTSAgIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8Ci0JCQkgICBE RVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCk7CisJcmV0dXJuICAodWludDY0X3QpKFJURV9FVEhfUlhf T0ZGTE9BRF9WTEFOX1NUUklQICB8CisJCQkgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxU RVIgfAorCQkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKKwkJCSAgIFJURV9F VEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8CisJCQkgICBSVEVfRVRIX1JYX09GRkxPQURfVENQ X0NLU1VNICAgfAorCQkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8CisJCQkg ICBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpOwogfQogCiBzdGF0aWMgaW50CmRpZmYgYS9k cml2ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9oaW5pYy9o aW5pY19wbWRfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMzExLDggKzMxMSw4IEBAIHN0 YXRpYyBpbnQgaGluaWNfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAkJ cmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1x X21vZGUgJiBFVEhfTVFfUlhfUlNTX0ZMQUcpCi0JCWRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2Rl Lm9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCWlmIChkZXYtPmRhdGEtPmRl dl9jb25mLnJ4bW9kZS5tcV9tb2RlICYgUlRFX0VUSF9NUV9SWF9SU1NfRkxBRykKKwkJZGV2LT5k YXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19I QVNIOwogCiAJLyogbXR1IHNpemUgaXMgMjU2fjk2MDAgKi8KIAlpZiAoSElOSUNfTVRVX1RPX1BL VExFTihkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tdHUpIDwKQEAgLTczMiwyNCArNzMyLDI0 IEBAIGhpbmljX2Rldl9pbmZvc19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdCBy dGVfZXRoX2Rldl9pbmZvICppbmZvKQogCiAJaGluaWNfZ2V0X3NwZWVkX2NhcGEoZGV2LCAmaW5m by0+c3BlZWRfY2FwYSk7CiAJaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsKLQlpbmZv LT5yeF9vZmZsb2FkX2NhcGEgPSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKLQkJCQlERVZf UlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAot CQkJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCQkJREVWX1JYX09GRkxPQURfVkxBTl9G SUxURVIgfAotCQkJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQkJCURFVl9SWF9PRkZMT0FE X1RDUF9MUk8gfAotCQkJCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCWluZm8tPnJ4X29mZmxv YWRfY2FwYSA9IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJCQlSVEVfRVRIX1JY X09GRkxPQURfSVBWNF9DS1NVTSB8CisJCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8 CisJCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCQkJUlRFX0VUSF9SWF9PRkZM T0FEX1ZMQU5fRklMVEVSIHwKKwkJCQlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCQkJ UlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8gfAorCQkJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1Nf SEFTSDsKIAogCWluZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7Ci0JaW5mby0+dHhfb2Zm bG9hZF9jYXBhID0gREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAotCQkJCURFVl9UWF9PRkZM T0FEX0lQVjRfQ0tTVU0gfAotCQkJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQkJREVW X1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwK LQkJCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCQlERVZfVFhfT0ZGTE9B RF9UQ1BfVFNPIHwKLQkJCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOworCWluZm8tPnR4X29m ZmxvYWRfY2FwYSA9IFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCQkJUlRFX0VU SF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tT VU0gfAorCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQkJCVJURV9FVEhfVFhf T0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJCQlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9D S1NVTSB8CisJCQkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfAorCQkJCVJURV9FVEhfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTOwogCiAJaW5mby0+aGFzaF9rZXlfc2l6ZSA9IEhJTklDX1JTU19L RVlfU0laRTsKIAlpbmZvLT5yZXRhX3NpemUgPSBISU5JQ19SU1NfSU5ESVJfU0laRTsKZGlmZiBh L2RyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2huczMvaG5zM19l dGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yNjc2LDQwICsyNjc2LDQwIEBAIGhuczNfZGV2 X2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHN0cnVjdCBydGVfZXRoX2Rl dl9pbmZvICppbmZvKQogCWluZm8tPm1heF9tYWNfYWRkcnMgPSBITlMzX1VDX01BQ0FERFJfTlVN OwogCWluZm8tPm1heF9tdHUgPSBpbmZvLT5tYXhfcnhfcGt0bGVuIC0gSE5TM19FVEhfT1ZFUkhF QUQ7CiAJaW5mby0+bWF4X2xyb19wa3Rfc2l6ZSA9IEhOUzNfTUFYX0xST19TSVpFOwotCWluZm8t PnJ4X29mZmxvYWRfY2FwYSA9IChERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJCQkgREVW X1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJCQkgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwK LQkJCQkgREVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX09V VEVSX0lQVjRfQ0tTVU0gfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAot CQkJCSBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1NDQVRU RVIgfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKLQkJCQkgREVWX1JYX09GRkxP QURfVkxBTl9GSUxURVIgfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8Ci0JCQkJIERF Vl9SWF9PRkZMT0FEX1RDUF9MUk8pOwotCWluZm8tPnR4X29mZmxvYWRfY2FwYSA9IChERVZfVFhf T0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCQkgREVWX1RYX09GRkxPQURfSVBWNF9DS1NV TSB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCQkJIERFVl9UWF9PRkZMT0FE X1VEUF9DS1NVTSB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAotCQkJCSBERVZf VFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKLQkJCQkgREVWX1RYX09GRkxPQURfVENQX1RTTyB8Ci0J CQkJIERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAotCQkJCSBERVZfVFhfT0ZGTE9BRF9H UkVfVE5MX1RTTyB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKLQkJCQkg REVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgfAorCWluZm8tPnJ4X29mZmxvYWRfY2FwYSA9 IChSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9B RF9UQ1BfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJCQkg UlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURf T1VURVJfSVBWNF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tT VU0gfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMgfAorCQkJCSBSVEVfRVRIX1JY X09GRkxPQURfU0NBVFRFUiB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwK KwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJCQkgUlRFX0VUSF9SWF9P RkZMT0FEX1JTU19IQVNIIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8pOworCWlu Zm8tPnR4X29mZmxvYWRfY2FwYSA9IChSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NV TSB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9U WF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0g fAorCQkJCSBSVEVfRVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfAor CQkJCSBSVEVfRVRIX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8CisJCQkJIFJURV9FVEhfVFhf T0ZGTE9BRF9HUkVfVE5MX1RTTyB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5M X1RTTyB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSB8CiAJCQkJIGhu czNfdHh2bGFuX2NhcF9nZXQoaHcpKTsKIAogCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywg T1VURVJfVURQX0NLU1VNKSkKLQkJaW5mby0+dHhfb2ZmbG9hZF9jYXBhIHw9IERFVl9UWF9PRkZM T0FEX09VVEVSX1VEUF9DS1NVTTsKKwkJaW5mby0+dHhfb2ZmbG9hZF9jYXBhIHw9IFJURV9FVEhf VFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU07CiAKIAlpZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQo aHcsIElOREVQX1RYUlgpKQogCQlpbmZvLT5kZXZfY2FwYSA9IFJURV9FVEhfREVWX0NBUEFfUlVO VElNRV9SWF9RVUVVRV9TRVRVUCB8CiAJCQkJIFJURV9FVEhfREVWX0NBUEFfUlVOVElNRV9UWF9R VUVVRV9TRVRVUDsKIAogCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywgUFRQKSkKLQkJaW5m by0+cnhfb2ZmbG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUDsKKwkJaW5mby0+ cnhfb2ZmbG9hZF9jYXBhIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVA7CiAKIAlpbmZv LT5yeF9kZXNjX2xpbSA9IChzdHJ1Y3QgcnRlX2V0aF9kZXNjX2xpbSkgewogCQkubmJfbWF4ID0g SE5TM19NQVhfUklOR19ERVNDLApkaWZmIGEvZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldl92 Zi5jIGIvZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldl92Zi5jCShyZWplY3RlZCBodW5rcykK QEAgLTkzNSwzMiArOTM1LDMyIEBAIGhuczN2Zl9kZXZfaW5mb3NfZ2V0KHN0cnVjdCBydGVfZXRo X2RldiAqZXRoX2Rldiwgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmluZm8pCiAJaW5mby0+bWF4 X210dSA9IGluZm8tPm1heF9yeF9wa3RsZW4gLSBITlMzX0VUSF9PVkVSSEVBRDsKIAlpbmZvLT5t YXhfbHJvX3BrdF9zaXplID0gSE5TM19NQVhfTFJPX1NJWkU7CiAKLQlpbmZvLT5yeF9vZmZsb2Fk X2NhcGEgPSAoREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCQkJIERFVl9SWF9PRkZMT0FE X1VEUF9DS1NVTSB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCQkJIERFVl9S WF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNIHwKLQkJCQkgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKLQkJCQkgREVWX1JY X09GRkxPQURfU0NBVFRFUiB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQkJ CSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1JTU19I QVNIIHwKLQkJCQkgREVWX1JYX09GRkxPQURfVENQX0xSTyk7Ci0JaW5mby0+dHhfb2ZmbG9hZF9j YXBhID0gKERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQkJCSBERVZfVFhfT0ZG TE9BRF9JUFY0X0NLU1VNIHwKLQkJCQkgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJCQkg REVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJCQkgREVWX1RYX09GRkxPQURfU0NUUF9DS1NV TSB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAotCQkJCSBERVZfVFhfT0ZGTE9B RF9UQ1BfVFNPIHwKLQkJCQkgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8Ci0JCQkJIERF Vl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKLQkJCQkgREVWX1RYX09GRkxPQURfR0VORVZFX1RO TF9UU08gfAotCQkJCSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSB8CisJaW5mby0+cnhf b2ZmbG9hZF9jYXBhID0gKFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCQkgUlRF X0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1Bf Q0tTVU0gfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfU0NUUF9DS1NVTSB8CisJCQkJIFJURV9F VEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FE X09VVEVSX1VEUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKKwkJ CQkgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAorCQkJCSBSVEVfRVRIX1JYX09GRkxP QURfVkxBTl9GSUxURVIgfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0ggfAorCQkJ CSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyk7CisJaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0g KFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9UWF9P RkZMT0FEX0lQVjRfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNIHwK KwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfVFhfT0ZG TE9BRF9TQ1RQX0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAor CQkJCSBSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9B RF9WWExBTl9UTkxfVFNPIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwK KwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKKwkJCQkgUlRFX0VUSF9U WF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFIHwKIAkJCQkgaG5zM190eHZsYW5fY2FwX2dldChodykp OwogCiAJaWYgKGhuczNfZGV2X2dldF9zdXBwb3J0KGh3LCBPVVRFUl9VRFBfQ0tTVU0pKQotCQlp bmZvLT50eF9vZmZsb2FkX2NhcGEgfD0gREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNOwor CQlpbmZvLT50eF9vZmZsb2FkX2NhcGEgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX1VEUF9D S1NVTTsKIAogCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywgSU5ERVBfVFhSWCkpCiAJCWlu Zm8tPmRldl9jYXBhID0gUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1FX1JYX1FVRVVFX1NFVFVQIHwK ZGlmZiBhL2RyaXZlcnMvbmV0L2huczMvaG5zM19yeHR4LmMgYi9kcml2ZXJzL25ldC9obnMzL2hu czNfcnh0eC5jCShyZWplY3RlZCBodW5rcykKQEAgLTE5NjksNyArMTk2OSw3IEBAIGhuczNfcnhf c2NhdHRlcmVkX2NhbGMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJCQkJCQkgcnhxLT5yeF9i dWZfbGVuKTsKIAl9CiAKLQlpZiAoZGV2X2NvbmYtPnJ4bW9kZS5vZmZsb2FkcyAmIERFVl9SWF9P RkZMT0FEX1NDQVRURVIgfHwKKwlpZiAoZGV2X2NvbmYtPnJ4bW9kZS5vZmZsb2FkcyAmIFJURV9F VEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHx8CiAJICAgIGRldi0+ZGF0YS0+bXR1ICsgSE5TM19FVEhf T1ZFUkhFQUQgPiBody0+cnhfYnVmX2xlbikKIAkJZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSB0 cnVlOwogfQpAQCAtNDI5MSw3ICs0MjkxLDcgQEAgaG5zM190eF9jaGVja19zaW1wbGVfc3VwcG9y dChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAlpZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQoaHcs IFBUUCkpCiAJCXJldHVybiBmYWxzZTsKIAotCXJldHVybiAob2ZmbG9hZHMgPT0gKG9mZmxvYWRz ICYgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpKTsKKwlyZXR1cm4gKG9mZmxvYWRzID09 IChvZmZsb2FkcyAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkpOwogfQogCiBz dGF0aWMgYm9vbApkaWZmIGEvZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHhfdmVjLmMgYi9kcml2 ZXJzL25ldC9obnMzL2huczNfcnh0eF92ZWMuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yMiw4ICsy Miw4IEBAIGhuczNfdHhfY2hlY2tfdmVjX3N1cHBvcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYp CiAJaWYgKGhuczNfZGV2X2dldF9zdXBwb3J0KGh3LCBQVFApKQogCQlyZXR1cm4gLUVOT1RTVVA7 CiAKLQkvKiBPbmx5IHN1cHBvcnQgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgKi8KLQlp ZiAodHhtb2RlLT5vZmZsb2FkcyAhPSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKKwkv KiBPbmx5IHN1cHBvcnQgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFICovCisJaWYg KHR4bW9kZS0+b2ZmbG9hZHMgIT0gUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQog CQlyZXR1cm4gLUVOT1RTVVA7CiAKIAlyZXR1cm4gMDsKQEAgLTIyOCwxMCArMjI4LDEwIEBAIGhu czNfcnhxX3ZlY19jaGVjayhzdHJ1Y3QgaG5zM19yeF9xdWV1ZSAqcnhxLCB2b2lkICphcmcpCiBp bnQKIGhuczNfcnhfY2hlY2tfdmVjX3N1cHBvcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiB7 Ci0Jc3RydWN0IHJ0ZV9mZGlyX2NvbmYgKmZjb25mID0gJmRldi0+ZGF0YS0+ZGV2X2NvbmYuZmRp cl9jb25mOworCXN0cnVjdCBydGVfZXRoX2ZkaXJfY29uZiAqZmNvbmYgPSAmZGV2LT5kYXRhLT5k ZXZfY29uZi5mZGlyX2NvbmY7CiAJc3RydWN0IHJ0ZV9ldGhfcnhtb2RlICpyeG1vZGUgPSAmZGV2 LT5kYXRhLT5kZXZfY29uZi5yeG1vZGU7Ci0JdWludDY0X3Qgb2ZmbG9hZHNfbWFzayA9IERFVl9S WF9PRkZMT0FEX1RDUF9MUk8gfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9WTEFOOworCXVpbnQ2NF90 IG9mZmxvYWRzX21hc2sgPSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyB8CisJCQkJIFJURV9F VEhfUlhfT0ZGTE9BRF9WTEFOOwogCiAJc3RydWN0IGhuczNfaHcgKmh3ID0gSE5TM19ERVZfUFJJ VkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKIAlpZiAoaG5zM19kZXZfZ2V0X3N1 cHBvcnQoaHcsIFBUUCkpCmRpZmYgYS9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMgYi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMzcyMCwz MyArMzcyMCwzMyBAQCBpNDBlX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwg c3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQogCWRldl9pbmZvLT5taW5fbXR1ID0g UlRFX0VUSEVSX01JTl9NVFU7CiAJZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7 CiAJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RS SVAgfAotCQlERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfSVBW NF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FE X1RDUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQlERVZf UlhfT0ZGTE9BRF9LRUVQX0NSQyB8Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZf UlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwK LQkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7Ci0KLQlkZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9h ZF9jYXBhID0gREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCVJURV9FVEhfUlhfT0ZG TE9BRF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAorCQlS VEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBf Q0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMg fAorCQlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9W TEFOX0VYVEVORCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKKworCWRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2Nh cGEgPSBSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAJZGV2X2luZm8tPnR4X29m ZmxvYWRfY2FwYSA9Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKLQkJREVWX1RYX09G RkxPQURfUUlOUV9JTlNFUlQgfAotCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVW X1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJ REVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfVlhM QU5fVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKLQkJREVWX1RYX09G RkxPQURfSVBJUF9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAot CQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5f SU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwK KwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9T Q1RQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlS VEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9U TkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5M X1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKIAkJZGV2X2luZm8tPnR4 X3F1ZXVlX29mZmxvYWRfY2FwYTsKIAlkZXZfaW5mby0+ZGV2X2NhcGEgPQogCQlSVEVfRVRIX0RF Vl9DQVBBX1JVTlRJTUVfUlhfUVVFVUVfU0VUVVAgfApkaWZmIGEvZHJpdmVycy9uZXQvaWF2Zi9p YXZmX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX2V0aGRldi5jCShyZWplY3RlZCBo dW5rcykKQEAgLTk2MSwzNCArOTYxLDM0IEBAIGlhdmZfZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LCBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCiAJZGV2X2lu Zm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBJQVZGX1JTU19PRkZMT0FEX0FMTDsKIAlkZXZf aW5mby0+bWF4X21hY19hZGRycyA9IElBVkZfTlVNX01BQ0FERFJfTUFYOwogCWRldl9pbmZvLT5y eF9vZmZsb2FkX2NhcGEgPQotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKLQkJREVWX1JY X09GRkxPQURfUUlOUV9TVFJJUCB8Ci0JCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlE RVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAot CQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfU0NB VFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKLQkJREVWX1JYX09GRkxPQURf UlNTX0hBU0g7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9S WF9PRkZMT0FEX1FJTlFfU1RSSVAgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8 CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURf VENQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlS VEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAogCWRldl9pbmZvLT50eF9v ZmZsb2FkX2NhcGEgPQotCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8Ci0JCURFVl9UWF9P RkZMT0FEX1FJTlFfSU5TRVJUIHwKLQkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURF Vl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0J CURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0 X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX1ZY TEFOX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8Ci0JCURFVl9UWF9P RkZMT0FEX0lQSVBfVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwK LQkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8Ci0JCURFVl9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFOworCQlSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAorCQlSVEVfRVRIX1RY X09GRkxPQURfUUlOUV9JTlNFUlQgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8 CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURf VENQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAorCQlSVEVfRVRI X1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1Bf VFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAorCQlSVEVfRVRIX1RY X09GRkxPQURfR1JFX1ROTF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBJUF9UTkxfVFNP IHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9P RkZMT0FEX01VTFRJX1NFR1MgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7 CiAKIAlpZiAodmYtPnZmX3Jlcy0+dmZfY2FwX2ZsYWdzICYgVklSVENITkxfVkZfT0ZGTE9BRF9D UkMpCi0JCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfS0VFUF9D UkM7CisJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX0tF RVBfQ1JDOwogCiAJZGV2X2luZm8tPmRlZmF1bHRfcnhjb25mID0gKHN0cnVjdCBydGVfZXRoX3J4 Y29uZikgewogCQkucnhfZnJlZV90aHJlc2ggPSBJQVZGX0RFRkFVTFRfUlhfRlJFRV9USFJFU0gs CmRpZmYgYS9kcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfYXZ4Mi5jIGIvZHJpdmVycy9u ZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX2F2eDIuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC05MDYsNyAr OTA2LDcgQEAgX2lhdmZfcmVjdl9yYXdfcGt0c192ZWNfYXZ4Ml9mbGV4X3J4ZChzdHJ1Y3QgaWF2 Zl9yeF9xdWV1ZSAqcnhxLAogCQkgKiBuZWVkcyB0byBsb2FkIDJuZCAxNkIgb2YgZWFjaCBkZXNj IGZvciBSU1MgaGFzaCBwYXJzaW5nLAogCQkgKiB3aWxsIGNhdXNlIHBlcmZvcm1hbmNlIGRyb3Ag dG8gZ2V0IGludG8gdGhpcyBjb250ZXh0LgogCQkgKi8KLQkJaWYgKG9mZmxvYWRzICYgREVWX1JY X09GRkxPQURfUlNTX0hBU0ggfHwKKwkJaWYgKG9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FE X1JTU19IQVNIIHx8CiAJCSAgICByeHEtPnJ4X2ZsYWdzICYgSUFWRl9SWF9GTEFHU19WTEFOX1RB R19MT0NfTDJUQUcyXzIpIHsKIAkJCS8qIGxvYWQgYm90dG9tIGhhbGYgb2YgZXZlcnkgMzJCIGRl c2MgKi8KIAkJCWNvbnN0IF9fbTEyOGkgcmF3X2Rlc2NfYmg3ID0KQEAgLTk1OCw3ICs5NTgsNyBA QCBfaWF2Zl9yZWN2X3Jhd19wa3RzX3ZlY19hdngyX2ZsZXhfcnhkKHN0cnVjdCBpYXZmX3J4X3F1 ZXVlICpyeHEsCiAJCQkJCShfbW0yNTZfY2FzdHNpMTI4X3NpMjU2KHJhd19kZXNjX2JoMCksCiAJ CQkJCXJhd19kZXNjX2JoMSwgMSk7CiAKLQkJCWlmIChvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FE X1JTU19IQVNIKSB7CisJCQlpZiAob2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hB U0gpIHsKIAkJCQkvKioKIAkJCQkgKiB0byBzaGlmdCB0aGUgMzJiIFJTUyBoYXNoIHZhbHVlIHRv IHRoZQogCQkJCSAqIGhpZ2hlc3QgMzJiIG9mIGVhY2ggMTI4YiBiZWZvcmUgbWFzawpkaWZmIGEv ZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX2F2eDUxMi5jIGIvZHJpdmVycy9uZXQvaWF2 Zi9pYXZmX3J4dHhfdmVjX2F2eDUxMi5jCShyZWplY3RlZCBodW5rcykKQEAgLTExNDEsNyArMTE0 MSw3IEBAIF9pYXZmX3JlY3ZfcmF3X3BrdHNfdmVjX2F2eDUxMl9mbGV4X3J4ZChzdHJ1Y3QgaWF2 Zl9yeF9xdWV1ZSAqcnhxLAogCQkJICogbmVlZHMgdG8gbG9hZCAybmQgMTZCIG9mIGVhY2ggZGVz YyBmb3IgUlNTIGhhc2ggcGFyc2luZywKIAkJCSAqIHdpbGwgY2F1c2UgcGVyZm9ybWFuY2UgZHJv cCB0byBnZXQgaW50byB0aGlzIGNvbnRleHQuCiAJCQkgKi8KLQkJCWlmIChvZmZsb2FkcyAmIERF Vl9SWF9PRkZMT0FEX1JTU19IQVNIIHx8CisJCQlpZiAob2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09G RkxPQURfUlNTX0hBU0ggfHwKIAkJCSAgICByeHEtPnJ4X2ZsYWdzICYgSUFWRl9SWF9GTEFHU19W TEFOX1RBR19MT0NfTDJUQUcyXzIpIHsKIAkJCQkvKiBsb2FkIGJvdHRvbSBoYWxmIG9mIGV2ZXJ5 IDMyQiBkZXNjICovCiAJCQkJY29uc3QgX19tMTI4aSByYXdfZGVzY19iaDcgPQpAQCAtMTE5Myw3 ICsxMTkzLDcgQEAgX2lhdmZfcmVjdl9yYXdfcGt0c192ZWNfYXZ4NTEyX2ZsZXhfcnhkKHN0cnVj dCBpYXZmX3J4X3F1ZXVlICpyeHEsCiAJCQkJCQkoX21tMjU2X2Nhc3RzaTEyOF9zaTI1NihyYXdf ZGVzY19iaDApLAogCQkJCQkJIHJhd19kZXNjX2JoMSwgMSk7CiAKLQkJCQlpZiAob2ZmbG9hZHMg JiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkgeworCQkJCWlmIChvZmZsb2FkcyAmIFJURV9FVEhf UlhfT0ZGTE9BRF9SU1NfSEFTSCkgewogCQkJCQkvKioKIAkJCQkJICogdG8gc2hpZnQgdGhlIDMy YiBSU1MgaGFzaCB2YWx1ZSB0byB0aGUKIAkJCQkJICogaGlnaGVzdCAzMmIgb2YgZWFjaCAxMjhi IGJlZm9yZSBtYXNrCmRpZmYgYS9kcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfc3NlLmMg Yi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfc3NlLmMJKHJlamVjdGVkIGh1bmtzKQpA QCAtODE5LDcgKzgxOSw3IEBAIF9yZWN2X3Jhd19wa3RzX3ZlY19mbGV4X3J4ZChzdHJ1Y3QgaWF2 Zl9yeF9xdWV1ZSAqcnhxLAogCQkgKiBuZWVkcyB0byBsb2FkIDJuZCAxNkIgb2YgZWFjaCBkZXNj IGZvciBSU1MgaGFzaCBwYXJzaW5nLAogCQkgKiB3aWxsIGNhdXNlIHBlcmZvcm1hbmNlIGRyb3Ag dG8gZ2V0IGludG8gdGhpcyBjb250ZXh0LgogCQkgKi8KLQkJaWYgKG9mZmxvYWRzICYgREVWX1JY X09GRkxPQURfUlNTX0hBU0gpIHsKKwkJaWYgKG9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FE X1JTU19IQVNIKSB7CiAJCQkvKiBsb2FkIGJvdHRvbSBoYWxmIG9mIGV2ZXJ5IDMyQiBkZXNjICov CiAJCQljb25zdCBfX20xMjhpIHJhd19kZXNjX2JoMyA9CiAJCQkJX21tX2xvYWRfc2kxMjgKZGlm ZiBhL2RyaXZlcnMvbmV0L2ljZS9pY2VfZGNmX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvaWNlL2lj ZV9kY2ZfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNjc1LDI3ICs2NzUsMjcgQEAgaWNl X2RjZl9kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCiAJZGV2X2luZm8tPmZs b3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBJQ0VfUlNTX09GRkxPQURfQUxMOwogCiAJZGV2X2luZm8t PnJ4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZf UlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJ REVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9D S1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09GRkxP QURfVkxBTl9TVFJJUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRF X0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tT VU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhf UlhfT0ZGTE9BRF9TQ0FUVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwK KwkJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCWRldl9pbmZvLT50eF9vZmZsb2FkX2Nh cGEgPQotCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9B RF9UQ1BfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJREVWX1RYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAotCQlE RVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfR1JFX1ROTF9U U08gfAotCQlERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9H RU5FVkVfVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJCVJURV9FVEhf VFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VN IHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9B RF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CisJCVJURV9F VEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RD UF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8CisJCVJURV9FVEhf VFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9JUElQX1ROTF9U U08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAorCQlSVEVfRVRIX1RY X09GRkxPQURfTVVMVElfU0VHUzsKIAogCWRldl9pbmZvLT5kZWZhdWx0X3J4Y29uZiA9IChzdHJ1 Y3QgcnRlX2V0aF9yeGNvbmYpIHsKIAkJLnJ4X3RocmVzaCA9IHsKZGlmZiBhL2RyaXZlcnMvbmV0 L2ljZS9pY2VfZGNmX3ZmX3JlcHJlc2VudG9yLmMgYi9kcml2ZXJzL25ldC9pY2UvaWNlX2RjZl92 Zl9yZXByZXNlbnRvci5jCShyZWplY3RlZCBodW5rcykKQEAgLTE0MywyOCArMTQzLDI4IEBAIGlj ZV9kY2ZfdmZfcmVwcl9kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCiAJZGV2 X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBJQ0VfUlNTX09GRkxPQURfQUxMOwogCiAJ ZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAg fAotCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVURQX0NL U1VNIHwKLQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfT1VU RVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZG TE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKLQkJREVW X1JYX09GRkxPQURfUlNTX0hBU0g7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwK KwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURf VURQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhf UlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRU RVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAorCQlSVEVfRVRIX1JYX09G RkxPQURfVkxBTl9FWFRFTkQgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0g7CiAJZGV2 X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwK LQkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NV TSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1NDVFBf Q0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09G RkxPQURfVENQX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAotCQlERVZf VFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8 Ci0JCURFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfTVVM VElfU0VHUzsKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwK KwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9T Q1RQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlS VEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9U TkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5M X1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwogCiAJZGV2X2luZm8tPmRl ZmF1bHRfcnhjb25mID0gKHN0cnVjdCBydGVfZXRoX3J4Y29uZikgewogCQkucnhfdGhyZXNoID0g ewpkaWZmIGEvZHJpdmVycy9uZXQvaWNlL2ljZV9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2ljZS9p Y2VfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMzY3NSw0MCArMzY3NSw0MCBAQCBpY2Vf ZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBzdHJ1Y3QgcnRlX2V0aF9kZXZf aW5mbyAqZGV2X2luZm8pCiAJZGV2X2luZm8tPm1pbl9tdHUgPSBSVEVfRVRIRVJfTUlOX01UVTsK IAogCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPQotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NU UklQIHwKLQkJREVWX1JYX09GRkxPQURfS0VFUF9DUkMgfAotCQlERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSIHwKLQkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVI7CisJCVJURV9FVEhfUlhfT0ZGTE9B RF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwKKwkJUlRFX0VU SF9SWF9PRkZMT0FEX1NDQVRURVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVI7 CiAJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5T RVJUIHwKLQkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX01VTFRJ X1NFR1MgfAotCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwkJUlRFX0VUSF9UWF9P RkZMT0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfAorCQlS VEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRTsKIAlkZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9IDA7CiAKIAlp ZiAoIWlzX3NhZmVfbW9kZSkgewogCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9Ci0JCQlE RVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8 Ci0JCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQkJREVWX1JYX09GRkxPQURfUUlOUV9T VFJJUCB8Ci0JCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCURFVl9SWF9P RkZMT0FEX1ZMQU5fRVhURU5EIHwKLQkJCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKLQkJCURF Vl9SWF9PRkZMT0FEX1RJTUVTVEFNUDsKKwkJCVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VN IHwKKwkJCVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJUlRFX0VUSF9SWF9PRkZM T0FEX1RDUF9DS1NVTSB8CisJCQlSVEVfRVRIX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8CisJCQlS VEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCQlSVEVfRVRIX1JYX09GRkxP QURfVkxBTl9FWFRFTkQgfAorCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIIHwKKwkJCVJU RV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVA7CiAJCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEg fD0KLQkJCURFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKLQkJCURFVl9UWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAotCQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJCURFVl9UWF9PRkZM T0FEX1RDUF9DS1NVTSB8Ci0JCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJCURFVl9U WF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQkJREVWX1RYX09GRkxPQURfT1VURVJfVURQ X0NLU1VNOworCQkJUlRFX0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKKwkJCVJURV9FVEhf VFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0g fAorCQkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCQlSVEVfRVRIX1RYX09GRkxP QURfU0NUUF9DS1NVTSB8CisJCQlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8 CisJCQlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNOwogCQlkZXZfaW5mby0+Zmxv d190eXBlX3Jzc19vZmZsb2FkcyB8PSBJQ0VfUlNTX09GRkxPQURfQUxMOwogCX0KIAogCWRldl9p bmZvLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwotCWRldl9pbmZvLT50eF9xdWV1ZV9vZmZs b2FkX2NhcGEgPSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwlkZXZfaW5mby0+dHhf cXVldWVfb2ZmbG9hZF9jYXBhID0gUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwog CiAJZGV2X2luZm8tPnJldGFfc2l6ZSA9IHBmLT5oYXNoX2x1dF9zaXplOwogCWRldl9pbmZvLT5o YXNoX2tleV9zaXplID0gKFZTSVFGX0hLRVlfTUFYX0lOREVYICsgMSkgKiBzaXplb2YodWludDMy X3QpOwpkaWZmIGEvZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4LmMgYi9kcml2ZXJzL25ldC9pY2Uv aWNlX3J4dHguYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xNjI0LDcgKzE2MjQsNyBAQCBpY2Vfcnhf c2Nhbl9od19yaW5nKHN0cnVjdCBpY2VfcnhfcXVldWUgKnJ4cSkKIAkJCWljZV9yeGRfdG9fdmxh bl90Y2kobWIsICZyeGRwW2pdKTsKIAkJCXJ4cS0+cnhkX3RvX3BrdF9maWVsZHMocnhxLCBtYiwg JnJ4ZHBbal0pOwogI2lmbmRlZiBSVEVfTElCUlRFX0lDRV8xNkJZVEVfUlhfREVTQwotCQkJaWYg KHJ4cS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVApIHsKKwkJCWlmIChyeHEt Pm9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFNUCkgewogCQkJCXRzX25zID0g aWNlX3RzdGFtcF9jb252ZXJ0XzMyYl82NGIoaHcsCiAJCQkJCXJ0ZV9sZV90b19jcHVfMzIocnhk cFtqXS53Yi5mbGV4X3RzLnRzX2hpZ2gpKTsKIAkJCQlpZiAoaWNlX3RpbWVzdGFtcF9keW5mbGFn ID4gMCkgewpAQCAtMTk0Miw3ICsxOTQyLDcgQEAgaWNlX3JlY3Zfc2NhdHRlcmVkX3BrdHModm9p ZCAqcnhfcXVldWUsCiAJCXJ4cS0+cnhkX3RvX3BrdF9maWVsZHMocnhxLCBmaXJzdF9zZWcsICZy eGQpOwogCQlwa3RfZmxhZ3MgPSBpY2VfcnhkX2Vycm9yX3RvX3BrdF9mbGFncyhyeF9zdGF0X2Vy cjApOwogI2lmbmRlZiBSVEVfTElCUlRFX0lDRV8xNkJZVEVfUlhfREVTQwotCQlpZiAocnhxLT5v ZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUCkgeworCQlpZiAocnhxLT5vZmZsb2Fk cyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVApIHsKIAkJCXRzX25zID0gaWNlX3RzdGFt cF9jb252ZXJ0XzMyYl82NGIoaHcsCiAJCQkJcnRlX2xlX3RvX2NwdV8zMihyeGQud2IuZmxleF90 cy50c19oaWdoKSk7CiAJCQlpZiAoaWNlX3RpbWVzdGFtcF9keW5mbGFnID4gMCkgewpAQCAtMjM3 Myw3ICsyMzczLDcgQEAgaWNlX3JlY3ZfcGt0cyh2b2lkICpyeF9xdWV1ZSwKIAkJcnhxLT5yeGRf dG9fcGt0X2ZpZWxkcyhyeHEsIHJ4bSwgJnJ4ZCk7CiAJCXBrdF9mbGFncyA9IGljZV9yeGRfZXJy b3JfdG9fcGt0X2ZsYWdzKHJ4X3N0YXRfZXJyMCk7CiAjaWZuZGVmIFJURV9MSUJSVEVfSUNFXzE2 QllURV9SWF9ERVNDCi0JCWlmIChyeHEtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVElNRVNU QU1QKSB7CisJCWlmIChyeHEtPm9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFN UCkgewogCQkJdHNfbnMgPSBpY2VfdHN0YW1wX2NvbnZlcnRfMzJiXzY0YihodywKIAkJCQlydGVf bGVfdG9fY3B1XzMyKHJ4ZC53Yi5mbGV4X3RzLnRzX2hpZ2gpKTsKIAkJCWlmIChpY2VfdGltZXN0 YW1wX2R5bmZsYWcgPiAwKSB7CmRpZmYgYS9kcml2ZXJzL25ldC9pZ2MvaWdjX2V0aGRldi5oIGIv ZHJpdmVycy9uZXQvaWdjL2lnY19ldGhkZXYuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC02NiwzNyAr NjYsMzcgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIElHQ19UWF9NQVhfTVRVX1NFRwlVSU5UOF9N QVgKIAogI2RlZmluZSBJR0NfUlhfT0ZGTE9BRF9BTEwJKCAgICBcCi0JREVWX1JYX09GRkxPQURf VkxBTl9TVFJJUCAgfCBcCi0JREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBcCi0JREVWX1JY X09GRkxPQURfVkxBTl9FWFRFTkQgfCBcCi0JREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfCBc Ci0JREVWX1JYX09GRkxPQURfVURQX0NLU1VNICAgfCBcCi0JREVWX1JYX09GRkxPQURfVENQX0NL U1VNICAgfCBcCi0JREVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSAgfCBcCi0JREVWX1JYX09GRkxP QURfS0VFUF9DUkMgICAgfCBcCi0JREVWX1JYX09GRkxPQURfU0NBVFRFUiAgICAgfCBcCi0JREVW X1JYX09GRkxPQURfUlNTX0hBU0gpCisJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwg XAorCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKKwlSVEVfRVRIX1JYX09GRkxP QURfVkxBTl9FWFRFTkQgfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwgXAor CVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURf VENQX0NLU1VNICAgfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gIHwgXAorCVJU RV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfU0NB VFRFUiAgICAgfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIKQogCiAjZGVmaW5lIElH Q19UWF9PRkZMT0FEX0FMTAkoICAgIFwKLQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8IFwK LQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tT VU0gICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8IFwKLQlERVZfVFhfT0ZGTE9B RF9TQ1RQX0NLU1VNICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPICAgICB8IFwKLQlERVZf VFhfT0ZGTE9BRF9VRFBfVFNPCSAgIHwgXAotCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCisJ UlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9J UFY0X0NLU1VNICB8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNICAgfCBcCisJUlRF X0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQ X0NLU1VNICB8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyAgICAgfCBcCisJUlRFX0VU SF9UWF9PRkZMT0FEX1VEUF9UU08JICAgfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NF R1MpCiAKICNkZWZpbmUgSUdDX1JTU19PRkZMT0FEX0FMTAkoICAgIFwKLQlFVEhfUlNTX0lQVjQg ICAgICAgICAgICAgICB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgICB8IFwKLQlFVEhf UlNTX05PTkZSQUdfSVBWNF9VRFAgICB8IFwKLQlFVEhfUlNTX0lQVjYgICAgICAgICAgICAgICB8 IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgICB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBW Nl9VRFAgICB8IFwKLQlFVEhfUlNTX0lQVjZfRVggICAgICAgICAgICB8IFwKLQlFVEhfUlNTX0lQ VjZfVENQX0VYICAgICAgICB8IFwKLQlFVEhfUlNTX0lQVjZfVURQX0VYKQorCVJURV9FVEhfUlNT X0lQVjQgICAgICAgICAgICAgICB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVENQICAg fCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCAgIHwgXAorCVJURV9FVEhfUlNTX0lQ VjYgICAgICAgICAgICAgICB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVENQICAgfCBc CisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCAgIHwgXAorCVJURV9FVEhfUlNTX0lQVjZf RVggICAgICAgICAgICB8IFwKKwlSVEVfRVRIX1JTU19JUFY2X1RDUF9FWCAgICAgICAgfCBcCisJ UlRFX0VUSF9SU1NfSVBWNl9VRFBfRVgpCiAKICNkZWZpbmUgSUdDX01BWF9FVFFGX0ZJTFRFUlMJ CTMJLyogZXRxZigzKSBpcyB1c2VkIGZvciAxNTg4ICovCiAjZGVmaW5lIElHQ19FVFFGX0ZJTFRF Ul8xNTg4CQkzCmRpZmYgYS9kcml2ZXJzL25ldC9pb25pYy9pb25pY19ldGhkZXYuYyBiL2RyaXZl cnMvbmV0L2lvbmljL2lvbmljX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTQxMSwyNCAr NDExLDI0IEBAIGlvbmljX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYs CiAJICovCiAKIAlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gZGV2X2luZm8tPnJ4X3F1ZXVl X29mZmxvYWRfY2FwYSB8Ci0JCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhf T0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZf UlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAot CQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKLQkJREVWX1JYX09GRkxPQURfUlNTX0hBU0ggfAor CQlSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9V RFBfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9S WF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAg fAorCQlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9S U1NfSEFTSCB8CiAJCTA7CiAKIAlkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gZGV2X2luZm8t PnR4X3F1ZXVlX29mZmxvYWRfY2FwYSB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAot CQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0g fAotCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURf T1VURVJfVURQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8Ci0JCURFVl9U WF9PRkZMT0FEX1RDUF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCVJU RV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9D S1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9VRFBf Q0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CisJCVJURV9FVEhfVFhf T0ZGTE9BRF9UQ1BfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKIAkJ MDsKIAogCWRldl9pbmZvLT5yeF9kZXNjX2xpbSA9IHJ4X2Rlc2NfbGltOwpkaWZmIGEvZHJpdmVy cy9uZXQvaXBuM2tlL2lwbjNrZV9yZXByZXNlbnRvci5jIGIvZHJpdmVycy9uZXQvaXBuM2tlL2lw bjNrZV9yZXByZXNlbnRvci5jCShyZWplY3RlZCBodW5rcykKQEAgLTY3LDMwICs2NywzMCBAQCBp cG4za2VfcnBzdF9kZXZfaW5mb3NfZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoZGV2LAogCX07 CiAJZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CiAJZGV2X2luZm8tPnJ4X29m ZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZG TE9BRF9RSU5RX1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9S WF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURF Vl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VY VEVORCB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOwotCi0JZGV2X2luZm8tPnR4X3F1 ZXVlX29mZmxvYWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOworCQlSVEVf RVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NU UklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09G RkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJU RV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FE X1ZMQU5fRVhURU5EIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOworCisJZGV2 X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRTsKIAlkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1RYX09GRkxPQURf VkxBTl9JTlNFUlQgfAotCQlERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8Ci0JCURFVl9UWF9P RkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZf VFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJ REVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9U U08gfAotCQlERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURf R1JFX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAotCQlERVZfVFhf T0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAor CQlSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAorCQlSVEVfRVRIX1RYX09GRkxPQURf UUlOUV9JTlNFUlQgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9F VEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VN IHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKKwkJ UlRFX0VUSF9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURf R1JFX1ROTF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBJUF9UTkxfVFNPIHwKKwkJUlRF X0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX01V TFRJX1NFR1MgfAogCQlkZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhOwogCiAJZGV2X2lu Zm8tPmRldl9jYXBhID0KZGlmZiBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYyBiL2Ry aXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0zMDMyLDE5 ICszMDMyLDE5IEBAIGl4Z2JlX2dldF9yeF9wb3J0X29mZmxvYWRzKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2KQogCXVpbnQ2NF90IG9mZmxvYWRzOwogCXN0cnVjdCBpeGdiZV9odyAqaHcgPSBJWEdC RV9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKIAotCW9mZmxvYWRz ID0gREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9VRFBf Q0tTVU0gICB8Ci0JCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwKLQkJICAgREVWX1JY X09GRkxPQURfS0VFUF9DUkMgICAgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8 Ci0JCSAgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9SU1Nf SEFTSDsKKwlvZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8CisJCSAg IFJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9B RF9UQ1BfQ0tTVU0gICB8CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8CisJ CSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCSAgIFJURV9FVEhfUlhfT0ZG TE9BRF9TQ0FUVEVSIHwKKwkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCiAJaWYg KGh3LT5tYWMudHlwZSA9PSBpeGdiZV9tYWNfODI1OThFQikKLQkJb2ZmbG9hZHMgfD0gREVWX1JY X09GRkxPQURfVkxBTl9TVFJJUDsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fU1RSSVA7CiAKIAlpZiAoaXhnYmVfaXNfdmYoZGV2KSA9PSAwKQotCQlvZmZsb2FkcyB8PSBE RVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORDsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZM T0FEX1ZMQU5fRVhURU5EOwogCiAJLyoKIAkgKiBSU0MgaXMgb25seSBzdXBwb3J0ZWQgYnkgODI1 OTkgYW5kIHg1NDAgUEYgZGV2aWNlcyBpbiBhIG5vbi1TUi1JT1YKQEAgLTUxNTgsMTEgKzUxNTcs MTEgQEAgaXhnYmVfZGV2X3J4X2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJCS8qIEl0 IGFkZHMgZHVhbCBWTEFOIGxlbmd0aCBmb3Igc3VwcG9ydGluZyBkdWFsIFZMQU4gKi8KIAkJaWYg KGZyYW1lX3NpemUgKyAyICogSVhHQkVfVkxBTl9UQUdfU0laRSA+IGJ1Zl9zaXplKQogCQkJZGV2 LT5kYXRhLT5zY2F0dGVyZWRfcnggPSAxOwotCQlpZiAocnhxLT5vZmZsb2FkcyAmIERFVl9SWF9P RkZMT0FEX1ZMQU5fU1RSSVApCi0JCQlyeF9jb25mLT5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9B RF9WTEFOX1NUUklQOworCQlpZiAocnhxLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9W TEFOX1NUUklQKQorCQkJcnhfY29uZi0+b2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fU1RSSVA7CiAJfQogCi0JaWYgKHJ4X2NvbmYtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURf U0NBVFRFUikKKwlpZiAocnhfY29uZi0+b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NB VFRFUikKIAkJZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSAxOwogCiAJLyoKQEAgLTU3MzIsNyAr NTczMSw3IEBAIGl4Z2JldmZfZGV2X3J4X2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJ CWJ1Zl9zaXplID0gKHVpbnQxNl90KSAoKHNycmN0bCAmIElYR0JFX1NSUkNUTF9CU0laRVBLVF9N QVNLKSA8PAogCQkJCSAgICAgICBJWEdCRV9TUlJDVExfQlNJWkVQS1RfU0hJRlQpOwogCi0JCWlm IChyeG1vZGUtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8fAorCQlpZiAocnht b2RlLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHx8CiAJCSAgICAvKiBJ dCBhZGRzIGR1YWwgVkxBTiBsZW5ndGggZm9yIHN1cHBvcnRpbmcgZHVhbCBWTEFOICovCiAJCSAg ICAoZnJhbWVfc2l6ZSArIDIgKiBJWEdCRV9WTEFOX1RBR19TSVpFKSA+IGJ1Zl9zaXplKSB7CiAJ CQlpZiAoIWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4KQpkaWZmIGEvZHJpdmVycy9uZXQvbWx4NC9t bHg0X3J4cS5jIGIvZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jCShyZWplY3RlZCBodW5rcykK QEAgLTY4MiwxMiArNjgyLDEyIEBAIG1seDRfcnhxX2RldGFjaChzdHJ1Y3QgcnhxICpyeHEpCiB1 aW50NjRfdAogbWx4NF9nZXRfcnhfcXVldWVfb2ZmbG9hZHMoc3RydWN0IG1seDRfcHJpdiAqcHJp dikKIHsKLQl1aW50NjRfdCBvZmZsb2FkcyA9IERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQkJ ICAgIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwKLQkJCSAgICBERVZfUlhfT0ZGTE9BRF9SU1Nf SEFTSDsKKwl1aW50NjRfdCBvZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwK KwkJCSAgICBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMgfAorCQkJICAgIFJURV9FVEhfUlhf T0ZGTE9BRF9SU1NfSEFTSDsKIAogCWlmIChwcml2LT5od19jc3VtKQotCQlvZmZsb2FkcyB8PSBE RVZfUlhfT0ZGTE9BRF9DSEVDS1NVTTsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FE X0NIRUNLU1VNOwogCXJldHVybiBvZmZsb2FkczsKIH0KIApAQCAtODMyLDcgKzgzMiw3IEBAIG1s eDRfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IGlkeCwg dWludDE2X3QgZGVzYywKIAltYXhfcnhfcGt0bGVuID0gZGV2LT5kYXRhLT5tdHUgKyBSVEVfRVRI RVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOOwogCWlmIChtYXhfcnhfcGt0bGVuIDw9ICht Yl9sZW4gLSBSVEVfUEtUTUJVRl9IRUFEUk9PTSkpIHsKIAkJOwotCX0gZWxzZSBpZiAob2ZmbG9h ZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CisJfSBlbHNlIGlmIChvZmZsb2FkcyAmIFJU RV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CiAJCXVpbnQzMl90IHNpemUgPSBSVEVfUEtUTUJV Rl9IRUFEUk9PTSArIG1heF9yeF9wa3RsZW47CiAJCXVpbnQzMl90IHNnZXNfbjsKIApkaWZmIGEv ZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5j CShyZWplY3RlZCBodW5rcykKQEAgLTMzMywyMiArMzMzLDIyIEBAIG1seDVfZ2V0X3J4X3F1ZXVl X29mZmxvYWRzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogewogCXN0cnVjdCBtbHg1X3ByaXYg KnByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOwogCXN0cnVjdCBtbHg1X2Rldl9jb25maWcg KmNvbmZpZyA9ICZwcml2LT5jb25maWc7Ci0JdWludDY0X3Qgb2ZmbG9hZHMgPSAoREVWX1JYX09G RkxPQURfU0NBVFRFUiB8Ci0JCQkgICAgIERFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUCB8Ci0JCQkg ICAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKTsKKwl1aW50NjRfdCBvZmZsb2FkcyA9IChSVEVf RVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9USU1F U1RBTVAgfAorCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpOwogCiAJaWYgKCFj b25maWctPm1wcnEuZW5hYmxlZCkKIAkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX0JV RkZFUl9TUExJVDsKIAlpZiAoY29uZmlnLT5od19mY3Nfc3RyaXApCi0JCW9mZmxvYWRzIHw9IERF Vl9SWF9PRkZMT0FEX0tFRVBfQ1JDOworCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURf S0VFUF9DUkM7CiAJaWYgKGNvbmZpZy0+aHdfY3N1bSkKLQkJb2ZmbG9hZHMgfD0gKERFVl9SWF9P RkZMT0FEX0lQVjRfQ0tTVU0gfAotCQkJICAgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAot CQkJICAgICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0pOworCQlvZmZsb2FkcyB8PSAoUlRFX0VU SF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVURQ X0NLU1VNIHwKKwkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSk7CiAJaWYgKGNv bmZpZy0+aHdfdmxhbl9zdHJpcCkKLQkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfVkxBTl9T VFJJUDsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CiAJaWYg KE1MWDVfTFJPX1NVUFBPUlRFRChkZXYpKQotCQlvZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9U Q1BfTFJPOworCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTzsKIAlyZXR1 cm4gb2ZmbG9hZHM7CiB9CiAKQEAgLTEzMjUsNyArMTMyNSw3IEBAIG1seDVfcnhxX25ldyhzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLAogCXN0cnVj dCBtbHg1X2Rldl9jb25maWcgKmNvbmZpZyA9ICZwcml2LT5jb25maWc7CiAJdWludDY0X3Qgb2Zm bG9hZHMgPSBjb25mLT5vZmZsb2FkcyB8CiAJCQkgICBkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9k ZS5vZmZsb2FkczsKLQl1bnNpZ25lZCBpbnQgbHJvX29uX3F1ZXVlID0gISEob2ZmbG9hZHMgJiBE RVZfUlhfT0ZGTE9BRF9UQ1BfTFJPKTsKKwl1bnNpZ25lZCBpbnQgbHJvX29uX3F1ZXVlID0gISEo b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyk7CiAJdW5zaWduZWQgaW50IG1h eF9yeF9wa3RsZW4gPSBscm9fb25fcXVldWUgPwogCQkJZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1v ZGUubWF4X2xyb19wa3Rfc2l6ZSA6CiAJCQlkZXYtPmRhdGEtPm10dSArICh1bnNpZ25lZCBpbnQp UlRFX0VUSEVSX0hEUl9MRU4gKwpAQCAtMTQ3Miw3ICsxNDcyLDcgQEAgbWx4NV9yeHFfbmV3KHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBpZHgsIHVpbnQxNl90IGRlc2MsCiAJCQlj b25maWctPm1wcnEuc3RyaWRlX3NpemVfbiA6IG1wcnFfc3RyaWRlX3NpemU7CiAJCXRtcGwtPnJ4 cS5zdHJkX3NoaWZ0X2VuID0gTUxYNV9NUFJRX1RXT19CWVRFX1NISUZUOwogCQl0bXBsLT5yeHEu c3RyZF9zY2F0dGVyX2VuID0KLQkJCQkhIShvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRU RVIpOworCQkJCSEhKG9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIpOwogCQl0 bXBsLT5yeHEubXBycV9tYXhfbWVtY3B5X2xlbiA9IFJURV9NSU4oZmlyc3RfbWJfZnJlZV9zaXpl LAogCQkJCWNvbmZpZy0+bXBycS5tYXhfbWVtY3B5X2xlbik7CiAJCW1heF9scm9fc2l6ZSA9IFJU RV9NSU4obWF4X3J4X3BrdGxlbiwKQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIG1seDVfcnhxX25ldyhz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLAogCQlN TFg1X0FTU0VSVChtYXhfcnhfcGt0bGVuIDw9IGZpcnN0X21iX2ZyZWVfc2l6ZSk7CiAJCXRtcGwt PnJ4cS5zZ2VzX24gPSAwOwogCQltYXhfbHJvX3NpemUgPSBtYXhfcnhfcGt0bGVuOwotCX0gZWxz ZSBpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CisJfSBlbHNlIGlmIChv ZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CiAJCXVuc2lnbmVkIGludCBz Z2VzX247CiAKIAkJaWYgKGxyb19vbl9xdWV1ZSAmJiBmaXJzdF9tYl9mcmVlX3NpemUgPApkaWZm IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3R4cS5jIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3R4 cS5jCShyZWplY3RlZCBodW5rcykKQEAgLTk4LDQyICs5OCw0MiBAQCB1aW50NjRfdAogbWx4NV9n ZXRfdHhfcG9ydF9vZmZsb2FkcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIHsKIAlzdHJ1Y3Qg bWx4NV9wcml2ICpwcml2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKLQl1aW50NjRfdCBvZmZs b2FkcyA9IChERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKLQkJCSAgICAgREVWX1RYX09GRkxP QURfVkxBTl9JTlNFUlQpOworCXVpbnQ2NF90IG9mZmxvYWRzID0gKFJURV9FVEhfVFhfT0ZGTE9B RF9NVUxUSV9TRUdTIHwKKwkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUKTsK IAlzdHJ1Y3QgbWx4NV9kZXZfY29uZmlnICpjb25maWcgPSAmcHJpdi0+Y29uZmlnOwogCiAJaWYg KGNvbmZpZy0+aHdfY3N1bSkKLQkJb2ZmbG9hZHMgfD0gKERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfAotCQkJICAgICBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQkJICAgICBERVZfVFhf T0ZGTE9BRF9UQ1BfQ0tTVU0pOworCQlvZmZsb2FkcyB8PSAoUlRFX0VUSF9UWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAorCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJCSAg ICAgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSk7CiAJaWYgKGNvbmZpZy0+dHNvKQotCQlv ZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPOworCQlvZmZsb2FkcyB8PSBSVEVfRVRI X1RYX09GRkxPQURfVENQX1RTTzsKIAlpZiAoY29uZmlnLT50eF9wcCkKLQkJb2ZmbG9hZHMgfD0g REVWX1RYX09GRkxPQURfU0VORF9PTl9USU1FU1RBTVA7CisJCW9mZmxvYWRzIHw9IFJURV9FVEhf VFhfT0ZGTE9BRF9TRU5EX09OX1RJTUVTVEFNUDsKIAlpZiAoY29uZmlnLT5zd3ApIHsKIAkJaWYg KGNvbmZpZy0+c3dwICYgTUxYNV9TV19QQVJTSU5HX0NTVU1fQ0FQKQotCQkJb2ZmbG9hZHMgfD0g REVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTTsKKwkJCW9mZmxvYWRzIHw9IFJURV9FVEhf VFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNOwogCQlpZiAoY29uZmlnLT5zd3AgJiBNTFg1X1NX X1BBUlNJTkdfVFNPX0NBUCkKLQkJCW9mZmxvYWRzIHw9IChERVZfVFhfT0ZGTE9BRF9JUF9UTkxf VFNPIHwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1VEUF9UTkxfVFNPKTsKKwkJCW9mZmxvYWRz IHw9IChSVEVfRVRIX1RYX09GRkxPQURfSVBfVE5MX1RTTyB8CisJCQkJICAgICBSVEVfRVRIX1RY X09GRkxPQURfVURQX1ROTF9UU08pOwogCX0KIAlpZiAoY29uZmlnLT50dW5uZWxfZW4pIHsKIAkJ aWYgKGNvbmZpZy0+aHdfY3N1bSkKLQkJCW9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU07CisJCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTTsKIAkJaWYgKGNvbmZpZy0+dHNvKSB7CiAJCQlpZiAoY29uZmlnLT50dW5uZWxfZW4g JgogCQkJCU1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfVlhMQU5fQ0FQKQotCQkJCW9mZmxvYWRzIHw9 IERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU087CisJCQkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9U WF9PRkZMT0FEX1ZYTEFOX1ROTF9UU087CiAJCQlpZiAoY29uZmlnLT50dW5uZWxfZW4gJgogCQkJ CU1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfR1JFX0NBUCkKLQkJCQlvZmZsb2FkcyB8PSBERVZfVFhf T0ZGTE9BRF9HUkVfVE5MX1RTTzsKKwkJCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURf R1JFX1ROTF9UU087CiAJCQlpZiAoY29uZmlnLT50dW5uZWxfZW4gJgogCQkJCU1MWDVfVFVOTkVM RURfT0ZGTE9BRFNfR0VORVZFX0NBUCkKLQkJCQlvZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9H RU5FVkVfVE5MX1RTTzsKKwkJCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfR0VORVZF X1ROTF9UU087CiAJCX0KIAl9CiAJaWYgKCFjb25maWctPm1wcnEuZW5hYmxlZCkKLQkJb2ZmbG9h ZHMgfD0gREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCW9mZmxvYWRzIHw9IFJURV9F VEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKIAlyZXR1cm4gb2ZmbG9hZHM7CiB9CiAKQEAg LTk3OCwxOSArOTc4LDE5IEBAIHR4cV9zZXRfcGFyYW1zKHN0cnVjdCBtbHg1X3R4cV9jdHJsICp0 eHFfY3RybCkKIAkJCQkJCSAgICBNTFg1X01BWF9UU09fSEVBREVSKTsKIAkJdHhxX2N0cmwtPnR4 cS50c29fZW4gPSAxOwogCX0KLQlpZiAoKChERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPICYg dHhxX2N0cmwtPnR4cS5vZmZsb2FkcykgJiYKKwlpZiAoKChSVEVfRVRIX1RYX09GRkxPQURfVlhM QU5fVE5MX1RTTyAmIHR4cV9jdHJsLT50eHEub2ZmbG9hZHMpICYmCiAJICAgIChjb25maWctPnR1 bm5lbF9lbiAmIE1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfVlhMQU5fQ0FQKSkgfAotCSAgICgoREVW X1RYX09GRkxPQURfR1JFX1ROTF9UU08gJiB0eHFfY3RybC0+dHhxLm9mZmxvYWRzKSAmJgorCSAg ICgoUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPICYgdHhxX2N0cmwtPnR4cS5vZmZsb2Fk cykgJiYKIAkgICAgKGNvbmZpZy0+dHVubmVsX2VuICYgTUxYNV9UVU5ORUxFRF9PRkZMT0FEU19H UkVfQ0FQKSkgfAotCSAgICgoREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gJiB0eHFfY3Ry bC0+dHhxLm9mZmxvYWRzKSAmJgorCSAgICgoUlRFX0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9UTkxf VFNPICYgdHhxX2N0cmwtPnR4cS5vZmZsb2FkcykgJiYKIAkgICAgKGNvbmZpZy0+dHVubmVsX2Vu ICYgTUxYNV9UVU5ORUxFRF9PRkZMT0FEU19HRU5FVkVfQ0FQKSkgfAogCSAgIChjb25maWctPnN3 cCAgJiBNTFg1X1NXX1BBUlNJTkdfVFNPX0NBUCkpCiAJCXR4cV9jdHJsLT50eHEudHVubmVsX2Vu ID0gMTsKLQl0eHFfY3RybC0+dHhxLnN3cF9lbiA9ICgoKERFVl9UWF9PRkZMT0FEX0lQX1ROTF9U U08gfAotCQkJCSAgREVWX1RYX09GRkxPQURfVURQX1ROTF9UU08pICYKKwl0eHFfY3RybC0+dHhx LnN3cF9lbiA9ICgoKFJURV9FVEhfVFhfT0ZGTE9BRF9JUF9UTkxfVFNPIHwKKwkJCQkgIFJURV9F VEhfVFhfT0ZGTE9BRF9VRFBfVE5MX1RTTykgJgogCQkJCSAgdHhxX2N0cmwtPnR4cS5vZmZsb2Fk cykgJiYgKGNvbmZpZy0+c3dwICYKIAkJCQkgIE1MWDVfU1dfUEFSU0lOR19UU09fQ0FQKSkgfAot CQkJCSgoREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSAmCisJCQkJKChSVEVfRVRIX1RY X09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSAmCiAJCQkJIHR4cV9jdHJsLT50eHEub2ZmbG9hZHMp ICYmIChjb25maWctPnN3cCAmCiAJCQkJIE1MWDVfU1dfUEFSU0lOR19DU1VNX0NBUCkpOwogfQpk aWZmIGEvZHJpdmVycy9uZXQvbWx4NS93aW5kb3dzL21seDVfb3MuYyBiL2RyaXZlcnMvbmV0L21s eDUvd2luZG93cy9tbHg1X29zLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNDg1LDggKzQ4NSw4IEBA IG1seDVfZGV2X3NwYXduKHN0cnVjdCBydGVfZGV2aWNlICpkcGRrX2RldiwKIAkgKiBSZW1vdmUg dGhpcyBjaGVjayBvbmNlIERQREsgc3VwcG9ydHMgbGFyZ2VyL3ZhcmlhYmxlCiAJICogaW5kaXJl Y3Rpb24gdGFibGVzLgogCSAqLwotCWlmIChjb25maWctPmluZF90YWJsZV9tYXhfc2l6ZSA+ICh1 bnNpZ25lZCBpbnQpRVRIX1JTU19SRVRBX1NJWkVfNTEyKQotCQljb25maWctPmluZF90YWJsZV9t YXhfc2l6ZSA9IEVUSF9SU1NfUkVUQV9TSVpFXzUxMjsKKwlpZiAoY29uZmlnLT5pbmRfdGFibGVf bWF4X3NpemUgPiAodW5zaWduZWQgaW50KVJURV9FVEhfUlNTX1JFVEFfU0laRV81MTIpCisJCWNv bmZpZy0+aW5kX3RhYmxlX21heF9zaXplID0gUlRFX0VUSF9SU1NfUkVUQV9TSVpFXzUxMjsKIAlE UlZfTE9HKERFQlVHLCAibWF4aW11bSBSeCBpbmRpcmVjdGlvbiB0YWJsZSBzaXplIGlzICV1IiwK IAkJY29uZmlnLT5pbmRfdGFibGVfbWF4X3NpemUpOwogCWlmIChjb25maWctPmh3X3BhZGRpbmcp IHsKZGlmZiBhL2RyaXZlcnMvbmV0L212bmV0YS9tdm5ldGFfZXRoZGV2LmMgYi9kcml2ZXJzL25l dC9tdm5ldGEvbXZuZXRhX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTEyNiw3ICsxMjYs NyBAQCBtdm5ldGFfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAkJcmV0 dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxv YWRzICYgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykKKwlpZiAoZGV2LT5kYXRhLT5kZXZfY29u Zi50eG1vZGUub2ZmbG9hZHMgJiBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykKIAkJcHJp di0+bXVsdGlzZWcgPSAxOwogCiAJcHBpb19wYXJhbXMgPSAmcHJpdi0+cHBpb19wYXJhbXM7CmRp ZmYgYS9kcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRhX2V0aGRldi5oIGIvZHJpdmVycy9uZXQvbXZu ZXRhL212bmV0YV9ldGhkZXYuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC01NCwxNCArNTQsMTQgQEAK ICNkZWZpbmUgTVJWTF9ORVRBX01SVV9UT19NVFUobXJ1KQkoKG1ydSkgLSBNUlZMX05FVEFfSERS U19MRU4pCiAKIC8qKiBSeCBvZmZsb2FkcyBjYXBhYmlsaXRpZXMgKi8KLSNkZWZpbmUgTVZORVRB X1JYX09GRkxPQURTIChERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSkKKyNkZWZpbmUgTVZORVRBX1JY X09GRkxPQURTIChSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0pCiAKIC8qKiBUeCBvZmZsb2Fk cyBjYXBhYmlsaXRpZXMgKi8KLSNkZWZpbmUgTVZORVRBX1RYX09GRkxPQURfQ0hFQ0tTVU0gKERF Vl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCi0JCQkJICAgIERFVl9UWF9PRkZMT0FEX1VEUF9D S1NVTSAgfCBcCi0JCQkJICAgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkKKyNkZWZpbmUgTVZO RVRBX1RYX09GRkxPQURfQ0hFQ0tTVU0gKFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwg XAorCQkJCSAgICBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNICB8IFwKKwkJCQkgICAgUlRF X0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSkKICNkZWZpbmUgTVZORVRBX1RYX09GRkxPQURTIChN Vk5FVEFfVFhfT0ZGTE9BRF9DSEVDS1NVTSB8IFwKLQkJCSAgICBERVZfVFhfT0ZGTE9BRF9NVUxU SV9TRUdTKQorCQkJICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQogCiAjZGVmaW5l IE1WTkVUQV9UWF9QS1RfT0ZGTE9BRFMgKFBLVF9UWF9JUF9DS1NVTSB8IFwKIAkJCQlQS1RfVFhf VENQX0NLU1VNIHwgXApkaWZmIGEvZHJpdmVycy9uZXQvbXZwcDIvbXJ2bF9ldGhkZXYuYyBiL2Ry aXZlcnMvbmV0L212cHAyL21ydmxfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNTgsMTUg KzU4LDE1IEBACiAjZGVmaW5lIE1SVkxfQ09PS0lFX0hJR0hfQUREUl9NQVNLIDB4ZmZmZmZmMDAw MDAwMDAwMAogCiAvKiogUG9ydCBSeCBvZmZsb2FkIGNhcGFiaWxpdGllcyAqLwotI2RlZmluZSBN UlZMX1JYX09GRkxPQURTIChERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKLQkJCSAgREVW X1JYX09GRkxPQURfQ0hFQ0tTVU0pCisjZGVmaW5lIE1SVkxfUlhfT0ZGTE9BRFMgKFJURV9FVEhf UlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKKwkJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNL U1VNKQogCiAvKiogUG9ydCBUeCBvZmZsb2FkcyBjYXBhYmlsaXRpZXMgKi8KLSNkZWZpbmUgTVJW TF9UWF9PRkZMT0FEX0NIRUNLU1VNIChERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAotCQkJ CSAgREVWX1RYX09GRkxPQURfVURQX0NLU1VNICB8IFwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX1RD UF9DS1NVTSkKKyNkZWZpbmUgTVJWTF9UWF9PRkZMT0FEX0NIRUNLU1VNIChSVEVfRVRIX1RYX09G RkxPQURfSVBWNF9DS1NVTSB8IFwKKwkJCQkgIFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0g IHwgXAorCQkJCSAgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSkKICNkZWZpbmUgTVJWTF9U WF9PRkZMT0FEUyAoTVJWTF9UWF9PRkZMT0FEX0NIRUNLU1VNIHwgXAotCQkJICBERVZfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTKQorCQkJICBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykKIAog I2RlZmluZSBNUlZMX1RYX1BLVF9PRkZMT0FEUyAoUEtUX1RYX0lQX0NLU1VNIHwgXAogCQkJICAg ICAgUEtUX1RYX1RDUF9DS1NVTSB8IFwKQEAgLTUwMiw3ICs1MDIsNyBAQCBtcnZsX2Rldl9jb25m aWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAot CWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcyAmIERFVl9UWF9PRkZMT0FE X01VTFRJX1NFR1MpCisJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICYg UlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCiAJCXByaXYtPm11bHRpc2VnID0gMTsKIAog CXJldCA9IG1ydmxfY29uZmlndXJlX3J4cXMocHJpdiwgZGV2LT5kYXRhLT5wb3J0X2lkLApkaWZm IGEvZHJpdmVycy9uZXQvbmZwL25mcF9jb21tb24uYyBiL2RyaXZlcnMvbmV0L25mcC9uZnBfY29t bW9uLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMzU5LDE5ICszNTksMTkgQEAgbmZwX2NoZWNrX29m ZmxvYWRzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCXJ4bW9kZSA9ICZkZXZfY29uZi0+cnht b2RlOwogCXR4bW9kZSA9ICZkZXZfY29uZi0+dHhtb2RlOwogCi0JaWYgKHJ4bW9kZS0+b2ZmbG9h ZHMgJiBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNKSB7CisJaWYgKHJ4bW9kZS0+b2ZmbG9hZHMg JiBSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSkgewogCQlpZiAoaHctPmNhcCAmIE5GUF9O RVRfQ0ZHX0NUUkxfUlhDU1VNKQogCQkJY3RybCB8PSBORlBfTkVUX0NGR19DVFJMX1JYQ1NVTTsK IAl9CiAKLQlpZiAocnhtb2RlLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAp IHsKKwlpZiAocnhtb2RlLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ KSB7CiAJCWlmIChody0+Y2FwICYgTkZQX05FVF9DRkdfQ1RSTF9SWFZMQU4pCiAJCQljdHJsIHw9 IE5GUF9ORVRfQ0ZHX0NUUkxfUlhWTEFOOwogCX0KIAogCWh3LT5tdHUgPSBkZXYtPmRhdGEtPm10 dTsKIAotCWlmICh0eG1vZGUtPm9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQp CisJaWYgKHR4bW9kZS0+b2ZmbG9hZHMgJiBSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQp CiAJCWN0cmwgfD0gTkZQX05FVF9DRkdfQ1RSTF9UWFZMQU47CiAKIAkvKiBMMiBicm9hZGNhc3Qg Ki8KQEAgLTc1NywyMiArNzU3LDIyIEBAIG5mcF9uZXRfaW5mb3NfZ2V0KHN0cnVjdCBydGVfZXRo X2RldiAqZGV2LCBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCiAJfTsKIAogCWlm IChody0+Y2FwICYgTkZQX05FVF9DRkdfQ1RSTF9SU1MpIHsKLQkJZGV2X2luZm8tPnJ4X29mZmxv YWRfY2FwYSB8PSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKKwkJZGV2X2luZm8tPnJ4X29mZmxv YWRfY2FwYSB8PSBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0g7CiAKLQkJZGV2X2luZm8tPmZs b3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBFVEhfUlNTX0lQVjQgfAotCQkJCQkJICAgRVRIX1JTU19O T05GUkFHX0lQVjRfVENQIHwKLQkJCQkJCSAgIEVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8Ci0J CQkJCQkgICBFVEhfUlNTX0lQVjYgfAotCQkJCQkJICAgRVRIX1JTU19OT05GUkFHX0lQVjZfVENQ IHwKLQkJCQkJCSAgIEVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUDsKKwkJZGV2X2luZm8tPmZsb3df dHlwZV9yc3Nfb2ZmbG9hZHMgPSBSVEVfRVRIX1JTU19JUFY0IHwKKwkJCQkJCSAgIFJURV9FVEhf UlNTX05PTkZSQUdfSVBWNF9UQ1AgfAorCQkJCQkJICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0 X1VEUCB8CisJCQkJCQkgICBSVEVfRVRIX1JTU19JUFY2IHwKKwkJCQkJCSAgIFJURV9FVEhfUlNT X05PTkZSQUdfSVBWNl9UQ1AgfAorCQkJCQkJICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VE UDsKIAogCQlkZXZfaW5mby0+cmV0YV9zaXplID0gTkZQX05FVF9DRkdfUlNTX0lUQkxfU1o7CiAJ CWRldl9pbmZvLT5oYXNoX2tleV9zaXplID0gTkZQX05FVF9DRkdfUlNTX0tFWV9TWjsKIAl9CiAK LQlkZXZfaW5mby0+c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzFHIHwgRVRIX0xJTktfU1BF RURfMTBHIHwKLQkJCSAgICAgICBFVEhfTElOS19TUEVFRF8yNUcgfCBFVEhfTElOS19TUEVFRF80 MEcgfAotCQkJICAgICAgIEVUSF9MSU5LX1NQRUVEXzUwRyB8IEVUSF9MSU5LX1NQRUVEXzEwMEc7 CisJZGV2X2luZm8tPnNwZWVkX2NhcGEgPSBSVEVfRVRIX0xJTktfU1BFRURfMUcgfCBSVEVfRVRI X0xJTktfU1BFRURfMTBHIHwKKwkJCSAgICAgICBSVEVfRVRIX0xJTktfU1BFRURfMjVHIHwgUlRF X0VUSF9MSU5LX1NQRUVEXzQwRyB8CisJCQkgICAgICAgUlRFX0VUSF9MSU5LX1NQRUVEXzUwRyB8 IFJURV9FVEhfTElOS19TUEVFRF8xMDBHOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgYS9kcml2ZXJz L25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L29jdGVvbnR4L29j dGVvbnR4X2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTU3MSw3ICs1NzEsNyBAQCBvY3Rl b250eF9yZWNoZWNrX3J4X29mZmxvYWRzKHN0cnVjdCBvY3Rlb250eF9yeHEgKnJ4cSkKIAogCS8q IFNldHVwIHNjYXR0ZXIgbW9kZSBpZiBuZWVkZWQgYnkganVtYm8gKi8KIAlpZiAoZGF0YS0+bXR1 ID4gYnVmZnN6KSB7Ci0JCW5pYy0+cnhfb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfU0NBVFRF UjsKKwkJbmljLT5yeF9vZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUjsKIAkJ bmljLT5yeF9vZmZsb2FkX2ZsYWdzIHw9IG9jdGVvbnR4X3J4X29mZmxvYWRfZmxhZ3MoZXRoX2Rl dik7CiAJCW5pYy0+dHhfb2ZmbG9hZF9mbGFncyB8PSBvY3Rlb250eF90eF9vZmZsb2FkX2ZsYWdz KGV0aF9kZXYpOwogCX0KZGlmZiBhL2RyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRl di5oIGIvZHJpdmVycy9uZXQvb2N0ZW9udHgvb2N0ZW9udHhfZXRoZGV2LmgJKHJlamVjdGVkIGh1 bmtzKQpAQCAtNTUsMjMgKzU1LDIzIEBACiAjZGVmaW5lIE9DQ1RYX01BWF9NVFUJCShPQ0NUWF9N QVhfRlJTIC0gT0NDVFhfTDJfT1ZFUkhFQUQpCiAKICNkZWZpbmUgT0NURU9OVFhfUlhfT0ZGTE9B RFMJCSgJCQkJICAgXAotCQkJCQkgREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0JIHwgXAotCQkJCQkg REVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSAgICAgICB8IFwKLQkJCQkJIERFVl9SWF9PRkZMT0FE X09VVEVSX0lQVjRfQ0tTVU0gfCBcCi0JCQkJCSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCSAgICAg ICAgIHwgXAotCQkJCQkgREVWX1JYX09GRkxPQURfU0NBVFRFUgkJIHwgXAotCQkJCQkgREVWX1JY X09GRkxPQURfVkxBTl9GSUxURVIpCisJCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0J IHwgXAorCQkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gICAgICAgfCBcCisJCQkJ CSBSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKKwkJCQkJIFJURV9FVEhf UlhfT0ZGTE9BRF9TQ0FUVEVSCSAgICAgICAgIHwgXAorCQkJCQkgUlRFX0VUSF9SWF9PRkZMT0FE X1NDQVRURVIJCSB8IFwKKwkJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikKIAog I2RlZmluZSBPQ1RFT05UWF9UWF9PRkZMT0FEUwkJKAkJCQkgICBcCi0JCQkJCSBERVZfVFhfT0ZG TE9BRF9NQlVGX0ZBU1RfRlJFRQkgfCBcCi0JCQkJCSBERVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJF RQkgfCBcCi0JCQkJCSBERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAotCQkJCQkg REVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNCSB8IFwKLQkJCQkJIERFVl9UWF9PRkZMT0FE X0lQVjRfQ0tTVU0JIHwgXAotCQkJCQkgREVWX1RYX09GRkxPQURfVENQX0NLU1VNCSB8IFwKLQkJ CQkJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTQkgfCBcCi0JCQkJCSBERVZfVFhfT0ZGTE9BRF9T Q1RQX0NLU1VNCSB8IFwKLQkJCQkJIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCisJCQkJCSBS VEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUJIHwgXAorCQkJCQkgUlRFX0VUSF9UWF9P RkZMT0FEX01UX0xPQ0tGUkVFCSB8IFwKKwkJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9J UFY0X0NLU1VNIHwgXAorCQkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTQkg fCBcCisJCQkJCSBSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTQkgfCBcCisJCQkJCSBSVEVf RVRIX1RYX09GRkxPQURfVENQX0NLU1VNCSB8IFwKKwkJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9V RFBfQ0tTVU0JIHwgXAorCQkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0JIHwgXAor CQkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCiAKIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IG9jdGVvbnR4X25pYyAqCiBvY3Rlb250eF9wbWRfcHJpdihzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldikKZGlmZiBhL2RyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldi5jIGIvZHJpdmVy cy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtOTE0LDgg KzkxNCw4IEBAIG90eDJfbml4X2VuYWJsZV9tc2VnX29uX2p1bWJvKHN0cnVjdCBvdHgyX2V0aF9y eHEgKnJ4cSkKIAlidWZmc3ogPSBtYnBfcHJpdi0+bWJ1Zl9kYXRhX3Jvb21fc2l6ZSAtIFJURV9Q S1RNQlVGX0hFQURST09NOwogCiAJaWYgKGV0aF9kZXYtPmRhdGEtPm10dSArICh1aW50MzJfdClO SVhfTDJfT1ZFUkhFQUQgPiBidWZmc3opIHsKLQkJZGV2LT5yeF9vZmZsb2FkcyB8PSBERVZfUlhf T0ZGTE9BRF9TQ0FUVEVSOwotCQlkZXYtPnR4X29mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01V TFRJX1NFR1M7CisJCWRldi0+cnhfb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRU RVI7CisJCWRldi0+dHhfb2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7 CiAKIAkJLyogU2V0dGluZyB1cCB0aGUgcnhbdHhdX29mZmxvYWRfZmxhZ3MgZHVlIHRvIGNoYW5n ZQogCQkgKiBpbiByeFt0eF1fb2ZmbG9hZHMuCmRpZmYgYS9kcml2ZXJzL25ldC9vY3Rlb250eDIv b3R4Ml9ldGhkZXYuaCBiL2RyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldi5oCShyZWpl Y3RlZCBodW5rcykKQEAgLTExNyw0MyArMTE3LDQzIEBACiAjZGVmaW5lIENRX1RJTUVSX1RIUkVT SF9ERUZBVUxUCTB4QVVMTCAvKiB+MXVzZWMgaS5lICgweEEgKiAxMDBuc2VjKSAqLwogI2RlZmlu ZSBDUV9USU1FUl9USFJFU0hfTUFYICAgICAyNTUKIAotI2RlZmluZSBOSVhfUlNTX0wzX0w0X1NS Q19EU1QgIChFVEhfUlNTX0wzX1NSQ19PTkxZIHwgRVRIX1JTU19MM19EU1RfT05MWSBcCi0JCQkJ fCBFVEhfUlNTX0w0X1NSQ19PTkxZIHwgRVRIX1JTU19MNF9EU1RfT05MWSkKKyNkZWZpbmUgTklY X1JTU19MM19MNF9TUkNfRFNUICAoUlRFX0VUSF9SU1NfTDNfU1JDX09OTFkgfCBSVEVfRVRIX1JT U19MM19EU1RfT05MWSBcCisJCQkJfCBSVEVfRVRIX1JTU19MNF9TUkNfT05MWSB8IFJURV9FVEhf UlNTX0w0X0RTVF9PTkxZKQogCi0jZGVmaW5lIE5JWF9SU1NfT0ZGTE9BRAkJKEVUSF9SU1NfUE9S VCB8IEVUSF9SU1NfSVAgfCBFVEhfUlNTX1VEUCB8XAotCQkJCSBFVEhfUlNTX1RDUCB8IEVUSF9S U1NfU0NUUCB8IFwKLQkJCQkgRVRIX1JTU19UVU5ORUwgfCBFVEhfUlNTX0wyX1BBWUxPQUQgfCBc Ci0JCQkJIE5JWF9SU1NfTDNfTDRfU1JDX0RTVCB8IEVUSF9SU1NfTEVWRUxfTUFTSyB8IFwKLQkJ CQkgRVRIX1JTU19DX1ZMQU4pCisjZGVmaW5lIE5JWF9SU1NfT0ZGTE9BRAkJKFJURV9FVEhfUlNT X1BPUlQgfCBSVEVfRVRIX1JTU19JUCB8IFJURV9FVEhfUlNTX1VEUCB8XAorCQkJCSBSVEVfRVRI X1JTU19UQ1AgfCBSVEVfRVRIX1JTU19TQ1RQIHwgXAorCQkJCSBSVEVfRVRIX1JTU19UVU5ORUwg fCBSVEVfRVRIX1JTU19MMl9QQVlMT0FEIHwgXAorCQkJCSBOSVhfUlNTX0wzX0w0X1NSQ19EU1Qg fCBSVEVfRVRIX1JTU19MRVZFTF9NQVNLIHwgXAorCQkJCSBSVEVfRVRIX1JTU19DX1ZMQU4pCiAK ICNkZWZpbmUgTklYX1RYX09GRkxPQURfQ0FQQSAoIFwKLQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRQl8IFwKLQlERVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRQl8IFwKLQlERVZfVFhfT0ZG TE9BRF9WTEFOX0lOU0VSVAl8IFwKLQlERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVAl8IFwKLQlE RVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNCXwgXAotCURFVl9UWF9PRkZMT0FEX09VVEVS X1VEUF9DS1NVTQl8IFwKLQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0JfCBcCi0JREVWX1RYX09G RkxPQURfVURQX0NLU1VNCXwgXAotCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0JfCBcCi0JREVW X1RYX09GRkxPQURfVENQX1RTTwkJfCBcCi0JREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyAg ICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyAgIHwgXAotCURFVl9UWF9PRkZM T0FEX0dSRV9UTkxfVFNPCXwgXAotCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MJfCBcCi0JREVW X1RYX09GRkxPQURfSVBWNF9DS1NVTSkKKwlSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZS RUUJfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFCXwgXAorCVJURV9FVEhfVFhf T0ZGTE9BRF9WTEFOX0lOU0VSVAl8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfUUlOUV9JTlNFUlQJ fCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0JfCBcCisJUlRFX0VUSF9U WF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTQl8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfVENQX0NL U1VNCXwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0JfCBcCisJUlRFX0VUSF9UWF9P RkZMT0FEX1NDVFBfQ0tTVU0JfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08JCXwgXAor CVJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPICAgIHwgXAorCVJURV9FVEhfVFhfT0ZG TE9BRF9HRU5FVkVfVE5MX1RTTyAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9HUkVfVE5MX1RT Twl8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUwl8IFwKKwlSVEVfRVRIX1RYX09G RkxPQURfSVBWNF9DS1NVTSkKIAogI2RlZmluZSBOSVhfUlhfT0ZGTE9BRF9DQVBBICggXAotCURF Vl9SWF9PRkZMT0FEX0NIRUNLU1VNCQl8IFwKLQlERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNCXwg XAotCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBcCi0JREVWX1JYX09GRkxPQURf U0NBVFRFUgkJfCBcCi0JREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNCXwgXAotCURFVl9S WF9PRkZMT0FEX1ZMQU5fU1RSSVAJfCBcCi0JREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIJfCBc Ci0JREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUAl8IFwKLQlERVZfUlhfT0ZGTE9BRF9USU1FU1RB TVAJfCBcCi0JREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCisJUlRFX0VUSF9SWF9PRkZMT0FEX0NI RUNLU1VNCQl8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfU0NUUF9DS1NVTQl8IFwKKwlSVEVfRVRI X1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfU0NB VFRFUgkJfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTQl8IFwKKwlSVEVf RVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUAl8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9G SUxURVIJfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAJfCBcCisJUlRFX0VUSF9S WF9PRkZMT0FEX1RJTUVTVEFNUAl8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpCiAK ICNkZWZpbmUgTklYX0RFRkFVTFRfUlNTX0NUWF9HUk9VUCAgMAogI2RlZmluZSBOSVhfREVGQVVM VF9SU1NfTUNBTV9JRFggIC0xCmRpZmYgYS9kcml2ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhfZXBf ZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhfZXBfZXRoZGV2LmMJKHJlamVj dGVkIGh1bmtzKQpAQCAtMzMsMTQgKzMzLDE0IEBAIG90eF9lcF9kZXZfaW5mb19nZXQoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LAogCiAJb3R4X2VwdmYgPSBPVFhfRVBfREVWKGV0aF9kZXYp OwogCi0JZGV2aW5mby0+c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzEwRzsKKwlkZXZpbmZv LT5zcGVlZF9jYXBhID0gUlRFX0VUSF9MSU5LX1NQRUVEXzEwRzsKIAlkZXZpbmZvLT5tYXhfcnhf cXVldWVzID0gb3R4X2VwdmYtPm1heF9yeF9xdWV1ZXM7CiAJZGV2aW5mby0+bWF4X3R4X3F1ZXVl cyA9IG90eF9lcHZmLT5tYXhfdHhfcXVldWVzOwogCiAJZGV2aW5mby0+bWluX3J4X2J1ZnNpemUg PSBPVFhfRVBfTUlOX1JYX0JVRl9TSVpFOwogCWRldmluZm8tPm1heF9yeF9wa3RsZW4gPSBPVFhf RVBfTUFYX1BLVF9TWjsKLQlkZXZpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSBERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSOwotCWRldmluZm8tPnR4X29mZmxvYWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX01V TFRJX1NFR1M7CisJZGV2aW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gUlRFX0VUSF9SWF9PRkZMT0FE X1NDQVRURVI7CisJZGV2aW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gUlRFX0VUSF9UWF9PRkZMT0FE X01VTFRJX1NFR1M7CiAKIAlkZXZpbmZvLT5tYXhfbWFjX2FkZHJzID0gT1RYX0VQX01BWF9NQUNf QUREUlM7CiAKZGlmZiBhL2RyaXZlcnMvbmV0L29jdGVvbnR4X2VwL290eF9lcF9yeHR4LmMgYi9k cml2ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhfZXBfcnh0eC5jCShyZWplY3RlZCBodW5rcykKQEAg LTk1NCw3ICs5NTQsNyBAQCBvdHhfZXBfZHJvcV9yZWFkX3BhY2tldChzdHJ1Y3Qgb3R4X2VwX2Rl dmljZSAqb3R4X2VwLAogCWRyb3FfcGt0LT5sNF9sZW4gPSBoZHJfbGVucy5sNF9sZW47CiAKIAlp ZiAoZHJvcV9wa3QtPm5iX3NlZ3MgPiAxICYmCi0JICAgICEob3R4X2VwLT5yeF9vZmZsb2FkcyAm IERFVl9SWF9PRkZMT0FEX1NDQVRURVIpKSB7CisJICAgICEob3R4X2VwLT5yeF9vZmZsb2FkcyAm IFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSkgewogCQlydGVfcGt0bWJ1Zl9mcmVlKGRyb3Ff cGt0KTsKIAkJZ290byBvcV9yZWFkX2ZhaWw7CiAJfQpkaWZmIGEvZHJpdmVycy9uZXQvcWVkZS9x ZWRlX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jCShyZWplY3RlZCBo dW5rcykKQEAgLTEzMTIsNyArMTMxMiw3IEBAIHN0YXRpYyBpbnQgcWVkZV9kZXZfY29uZmlndXJl KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldikKIAkJCXJldHVybiAtRU5PTUVNOwogCX0KIAot CWlmIChyeG1vZGUtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikKKwlpZiAocnht b2RlLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKQogCQlldGhfZGV2LT5k YXRhLT5zY2F0dGVyZWRfcnggPSAxOwogCiAJaWYgKHFlZGVfc3RhcnRfdnBvcnQocWRldiwgZXRo X2Rldi0+ZGF0YS0+bXR1KSkKQEAgLTEzODUsMzQgKzEzODUsMzQgQEAgcWVkZV9kZXZfaW5mb19n ZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LAogCWRldl9pbmZvLT5yZXRhX3NpemUgPSBF Q09SRV9SU1NfSU5EX1RBQkxFX1NJWkU7CiAJZGV2X2luZm8tPmhhc2hfa2V5X3NpemUgPSBFQ09S RV9SU1NfS0VZX1NJWkUgKiBzaXplb2YodWludDMyX3QpOwogCWRldl9pbmZvLT5mbG93X3R5cGVf cnNzX29mZmxvYWRzID0gKHVpbnQ2NF90KVFFREVfUlNTX09GRkxPQURfQUxMOwotCWRldl9pbmZv LT5yeF9vZmZsb2FkX2NhcGEgPSAoREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTQl8Ci0JCQkJICAg ICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0JfAotCQkJCSAgICAgREVWX1JYX09GRkxPQURfVENQ X0NLU1VNCXwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQkJ CSAgICAgREVWX1JYX09GRkxPQURfVENQX0xSTwl8Ci0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9L RUVQX0NSQyAgICB8Ci0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCXwKLQkJCQkgICAg IERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1ZM QU5fU1RSSVAgIHwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKTsKKwlkZXZfaW5m by0+cnhfb2ZmbG9hZF9jYXBhID0gKFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNCXwKKwkJ CQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0JfAorCQkJCSAgICAgUlRFX0VUSF9S WF9PRkZMT0FEX1RDUF9DS1NVTQl8CisJCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfT1VURVJf SVBWNF9DS1NVTSB8CisJCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTwl8CisJCQkJ ICAgICBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMgICAgfAorCQkJCSAgICAgUlRFX0VUSF9S WF9PRkZMT0FEX1NDQVRURVIJfAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklM VEVSIHwKKwkJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8CisJCQkJICAg ICBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpOwogCWRldl9pbmZvLT5yeF9xdWV1ZV9vZmZs b2FkX2NhcGEgPSAwOwogCiAJLyogVFggb2ZmbG9hZHMgYXJlIG9uIGEgcGVyLXBhY2tldCBiYXNp cywgc28gaXQgaXMgYXBwbGljYWJsZQogCSAqIHRvIGJvdGggYXQgcG9ydCBhbmQgcXVldWUgbGV2 ZWxzLgogCSAqLwotCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPSAoREVWX1RYX09GRkxPQURf VkxBTl9JTlNFUlQJfAotCQkJCSAgICAgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTQl8Ci0JCQkJ ICAgICBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0JfAotCQkJCSAgICAgREVWX1RYX09GRkxPQURf VENQX0NLU1VNCXwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAot CQkJCSAgICAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyAgfAotCQkJCSAgICAgREVWX1RYX09G RkxPQURfVENQX1RTTwl8Ci0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwK LQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPKTsKKwlkZXZfaW5mby0+dHhf b2ZmbG9hZF9jYXBhID0gKFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVAl8CisJCQkJICAg ICBSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTQl8CisJCQkJICAgICBSVEVfRVRIX1RYX09G RkxPQURfVURQX0NLU1VNCXwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0J fAorCQkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQkJCSAg ICAgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgIHwKKwkJCQkgICAgIFJURV9FVEhfVFhf T0ZGTE9BRF9UQ1BfVFNPCXwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxf VFNPIHwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyk7CiAJZGV2 X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IGRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGE7 CiAKIAlkZXZfaW5mby0+ZGVmYXVsdF90eGNvbmYgPSAoc3RydWN0IHJ0ZV9ldGhfdHhjb25mKSB7 Ci0JCS5vZmZsb2FkcyA9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MsCisJCS5vZmZsb2FkcyA9 IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTLAogCX07CiAKIAlkZXZfaW5mby0+ZGVmYXVs dF9yeGNvbmYgPSAoc3RydWN0IHJ0ZV9ldGhfcnhjb25mKSB7CmRpZmYgYS9kcml2ZXJzL25ldC9x ZWRlL3FlZGVfcnh0eC5jIGIvZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYwkocmVqZWN0ZWQg aHVua3MpCkBAIC0yNDksNyArMjQ5LDcgQEAgcWVkZV9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkLAogCWJ1ZnN6ID0gKHVpbnQxNl90KXJ0ZV9wa3Rt YnVmX2RhdGFfcm9vbV9zaXplKG1wKSAtIFJURV9QS1RNQlVGX0hFQURST09NOwogCS8qIGNhY2hl IGFsaWduIHRoZSBtYnVmIHNpemUgdG8gc2ltcGxmeSByeF9idWZfc2l6ZSBjYWxjdWxhdGlvbiAq LwogCWJ1ZnN6ID0gUUVERV9GTE9PUl9UT19DQUNIRV9MSU5FX1NJWkUoYnVmc3opOwotCWlmICgo cnhtb2RlLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpCXx8CisJaWYgKChyeG1v ZGUtPm9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIpCXx8CiAJICAgIChtYXhf cnhfcGt0bGVuICsgUUVERV9FVEhfT1ZFUkhFQUQpID4gYnVmc3opIHsKIAkJaWYgKCFkZXYtPmRh dGEtPnNjYXR0ZXJlZF9yeCkgewogCQkJRFBfSU5GTyhlZGV2LCAiRm9yY2luZyBzY2F0dGVyLWdh dGhlciBtb2RlXG4iKTsKZGlmZiBhL2RyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMDBfcnguYyBiL2Ry aXZlcnMvbmV0L3NmYy9zZmNfZWYxMDBfcnguYwkocmVqZWN0ZWQgaHVua3MpCkBAIC05NzksMTEg Kzk3OSwxMSBAQCBzdHJ1Y3Qgc2ZjX2RwX3J4IHNmY19lZjEwMF9yeCA9IHsKIAkJCQkgIFNGQ19E UF9SWF9GRUFUX0lOVFIgfAogCQkJCSAgU0ZDX0RQX1JYX0ZFQVRfU1RBVFMsCiAJLmRldl9vZmZs b2FkX2NhcGEJPSAwLAotCS5xdWV1ZV9vZmZsb2FkX2NhcGEJPSBERVZfUlhfT0ZGTE9BRF9DSEVD S1NVTSB8Ci0JCQkJICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCQkgIERF Vl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8Ci0JCQkJICBERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSIHwKLQkJCQkgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNILAorCS5xdWV1ZV9vZmZsb2FkX2Nh cGEJPSBSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0gfAorCQkJCSAgUlRFX0VUSF9SWF9PRkZM T0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQkJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX1VE UF9DS1NVTSB8CisJCQkJICBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCQkJICBSVEVf RVRIX1JYX09GRkxPQURfUlNTX0hBU0gsCiAJLmdldF9kZXZfaW5mbwkJPSBzZmNfZWYxMDBfcnhf Z2V0X2Rldl9pbmZvLAogCS5xc2l6ZV91cF9yaW5ncwkJPSBzZmNfZWYxMDBfcnhfcXNpemVfdXBf cmluZ3MsCiAJLnFjcmVhdGUJCT0gc2ZjX2VmMTAwX3J4X3FjcmVhdGUsCmRpZmYgYS9kcml2ZXJz L25ldC9zZmMvc2ZjX2VmMTAwX3R4LmMgYi9kcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTAwX3R4LmMJ KHJlamVjdGVkIGh1bmtzKQpAQCAtOTcxLDE2ICs5NzEsMTYgQEAgc3RydWN0IHNmY19kcF90eCBz ZmNfZWYxMDBfdHggPSB7CiAJLmZlYXR1cmVzCQk9IFNGQ19EUF9UWF9GRUFUX01VTFRJX1BST0NF U1MgfAogCQkJCSAgU0ZDX0RQX1RYX0ZFQVRfU1RBVFMsCiAJLmRldl9vZmZsb2FkX2NhcGEJPSAw LAotCS5xdWV1ZV9vZmZsb2FkX2NhcGEJPSBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8Ci0J CQkJICBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX09V VEVSX0lQVjRfQ0tTVU0gfAotCQkJCSAgREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwK LQkJCQkgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQkJICBERVZfVFhfT0ZGTE9BRF9U Q1BfQ0tTVU0gfAotCQkJCSAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8Ci0JCQkJICBERVZf VFhfT0ZGTE9BRF9UQ1BfVFNPIHwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08g fAotCQkJCSAgREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08sCisJLnF1ZXVlX29mZmxvYWRf Y2FwYQk9IFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCQkJICBSVEVfRVRIX1RY X09GRkxPQURfSVBWNF9DS1NVTSB8CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTSB8CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKKwkJ CQkgIFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJCSAgUlRFX0VUSF9UWF9PRkZM T0FEX1RDUF9DS1NVTSB8CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CisJ CQkJICBSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8CisJCQkJICBSVEVfRVRIX1RYX09GRkxP QURfVlhMQU5fVE5MX1RTTyB8CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfR0VORVZFX1ROTF9U U08sCiAJLmdldF9kZXZfaW5mbwkJPSBzZmNfZWYxMDBfZ2V0X2Rldl9pbmZvLAogCS5xc2l6ZV91 cF9yaW5ncwkJPSBzZmNfZWYxMDBfdHhfcXNpemVfdXBfcmluZ3MsCiAJLnFjcmVhdGUJCT0gc2Zj X2VmMTAwX3R4X3FjcmVhdGUsCmRpZmYgYS9kcml2ZXJzL25ldC9zZmMvc2ZjX3J4LmMgYi9kcml2 ZXJzL25ldC9zZmMvc2ZjX3J4LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTE2NiwxNSArMTE2Niwx NSBAQCBzZmNfcnhfcWluaXQoc3RydWN0IHNmY19hZGFwdGVyICpzYSwgc2ZjX3N3X2luZGV4X3Qg c3dfaW5kZXgsCiAJCXJ4cV9pbmZvLT50eXBlID0gRUZYX1JYUV9UWVBFX0RFRkFVTFQ7CiAKIAly eHFfaW5mby0+dHlwZV9mbGFncyB8PQotCQkob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSKSA/CisJCShvZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSA/CiAJCUVG WF9SWFFfRkxBR19TQ0FUVEVSIDogRUZYX1JYUV9GTEFHX05PTkU7CiAKIAlpZiAoKGVuY3AtPmVu Y190dW5uZWxfZW5jYXBzdWxhdGlvbnNfc3VwcG9ydGVkICE9IDApICYmCiAJICAgIChzZmNfZHBf cnhfb2ZmbG9hZF9jYXBhKHNhLT5wcml2LmRwX3J4KSAmCi0JICAgICBERVZfUlhfT0ZGTE9BRF9P VVRFUl9JUFY0X0NLU1VNKSAhPSAwKQorCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQ VjRfQ0tTVU0pICE9IDApCiAJCXJ4cV9pbmZvLT50eXBlX2ZsYWdzIHw9IEVGWF9SWFFfRkxBR19J Tk5FUl9DTEFTU0VTOwogCi0JaWYgKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfUlNTX0hBU0gp CisJaWYgKG9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIKQogCQlyeHFfaW5m by0+dHlwZV9mbGFncyB8PSBFRlhfUlhRX0ZMQUdfUlNTX0hBU0g7CiAKIAlpZiAoKHNhLT5uZWdv dGlhdGVkX3J4X21ldGFkYXRhICYgUlRFX0VUSF9SWF9NRVRBREFUQV9VU0VSX0ZMQUcpICE9IDAp CmRpZmYgYS9kcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0 L3RodW5kZXJ4L25pY3ZmX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTE3MTEsNyArMTcx MSw3IEBAIG5pY3ZmX2Rldl9zdGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAkvKiBTZXR1 cCBzY2F0dGVyIG1vZGUgaWYgbmVlZGVkIGJ5IGp1bWJvICovCiAJaWYgKGRldi0+ZGF0YS0+bXR1 ICsgKHVpbnQzMl90KU5JQ19IV19MMl9PVkVSSEVBRCArIDIgKiBWTEFOX1RBR19TSVpFID4gYnVm ZnN6KQogCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7Ci0JaWYgKChyeF9jb25mLT5vZmZs b2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpICE9IDApCisJaWYgKChyeF9jb25mLT5vZmZs b2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSAhPSAwKQogCQlkZXYtPmRhdGEtPnNj YXR0ZXJlZF9yeCA9IDE7CiAKIAkvKiBTZXR1cCBNVFUgKi8KZGlmZiBhL2RyaXZlcnMvbmV0L3Ro dW5kZXJ4L25pY3ZmX2V0aGRldi5oIGIvZHJpdmVycy9uZXQvdGh1bmRlcngvbmljdmZfZXRoZGV2 LmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTYsMzIgKzE2LDMyIEBACiAjZGVmaW5lIE5JQ1ZGX1VO S05PV05fRFVQTEVYCQkweGZmCiAKICNkZWZpbmUgTklDVkZfUlNTX09GRkxPQURfUEFTUzEgKCBc Ci0JRVRIX1JTU19QT1JUIHwgXAotCUVUSF9SU1NfSVBWNCB8IFwKLQlFVEhfUlNTX05PTkZSQUdf SVBWNF9UQ1AgfCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjRfVURQIHwgXAotCUVUSF9SU1NfSVBW NiB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCi0JRVRIX1JTU19OT05GUkFHX0lQ VjZfVURQKQorCVJURV9FVEhfUlNTX1BPUlQgfCBcCisJUlRFX0VUSF9SU1NfSVBWNCB8IFwKKwlS VEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwgXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBW NF9VRFAgfCBcCisJUlRFX0VUSF9SU1NfSVBWNiB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQ VjZfVENQIHwgXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9VRFApCiAKICNkZWZpbmUgTklD VkZfUlNTX09GRkxPQURfVFVOTkVMICggXAotCUVUSF9SU1NfVlhMQU4gfCBcCi0JRVRIX1JTU19H RU5FVkUgfCBcCi0JRVRIX1JTU19OVkdSRSkKKwlSVEVfRVRIX1JTU19WWExBTiB8IFwKKwlSVEVf RVRIX1JTU19HRU5FVkUgfCBcCisJUlRFX0VUSF9SU1NfTlZHUkUpCiAKICNkZWZpbmUgTklDVkZf VFhfT0ZGTE9BRF9DQVBBICggXAotCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gICAgICAgfCBc Ci0JREVWX1RYX09GRkxPQURfVURQX0NLU1VNICAgICAgICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9U Q1BfQ0tTVU0gICAgICAgIHwgXAotCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBc Ci0JREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9N VUxUSV9TRUdTKQorCVJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNICAgICAgIHwgXAorCVJU RV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gICAgICAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9B RF9UQ1BfQ0tTVU0gICAgICAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSAgIHwgXAorCVJURV9F VEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQogCiAjZGVmaW5lIE5JQ1ZGX1JYX09GRkxPQURfQ0FQ QSAoIFwKLQlERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSAgICB8IFwKLQlERVZfUlhfT0ZGTE9BRF9W TEFOX1NUUklQICB8IFwKLQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSICAgICB8IFwKLQlERVZfUlhf T0ZGTE9BRF9SU1NfSEFTSCkKKwlSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0gICAgfCBcCisJ UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwgXAorCVJURV9FVEhfUlhfT0ZGTE9BRF9T Q0FUVEVSICAgICB8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpCiAKICNkZWZpbmUg TklDVkZfREVGQVVMVF9SWF9GUkVFX1RIUkVTSCAgICAyMjQKICNkZWZpbmUgTklDVkZfREVGQVVM VF9UWF9GUkVFX1RIUkVTSCAgICAyMjQKZGlmZiBhL2RyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0 aGRldi5jIGIvZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtz KQpAQCAtMTc2Myw4ICsxNzYzLDggQEAgdHhnYmVfZGV2X3N0YXJ0KHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2KQogCWlmIChlcnIpCiAJCWdvdG8gZXJyb3I7CiAKLQlhbGxvd2VkX3NwZWVkcyA9IEVU SF9MSU5LX1NQRUVEXzEwME0gfCBFVEhfTElOS19TUEVFRF8xRyB8Ci0JCQlFVEhfTElOS19TUEVF RF8xMEc7CisJYWxsb3dlZF9zcGVlZHMgPSBSVEVfRVRIX0xJTktfU1BFRURfMTAwTSB8IFJURV9F VEhfTElOS19TUEVFRF8xRyB8CisJCQlSVEVfRVRIX0xJTktfU1BFRURfMTBHOwogCiAJbGlua19z cGVlZHMgPSAmZGV2LT5kYXRhLT5kZXZfY29uZi5saW5rX3NwZWVkczsKIAlpZiAoKCgqbGlua19z cGVlZHMpID4+IDEpICYgfihhbGxvd2VkX3NwZWVkcyA+PiAxKSkgewpAQCAtMjY5NSwxMSArMjY5 NSwxMSBAQCB0eGdiZV9kZXZfbGlua191cGRhdGVfc2hhcmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsCiAJaW50IHdhaXQgPSAxOwogCiAJbWVtc2V0KCZsaW5rLCAwLCBzaXplb2YobGluaykpOwot CWxpbmsubGlua19zdGF0dXMgPSBFVEhfTElOS19ET1dOOwotCWxpbmsubGlua19zcGVlZCA9IEVU SF9TUEVFRF9OVU1fTk9ORTsKLQlsaW5rLmxpbmtfZHVwbGV4ID0gRVRIX0xJTktfSEFMRl9EVVBM RVg7CisJbGluay5saW5rX3N0YXR1cyA9IFJURV9FVEhfTElOS19ET1dOOworCWxpbmsubGlua19z cGVlZCA9IFJURV9FVEhfU1BFRURfTlVNX05PTkU7CisJbGluay5saW5rX2R1cGxleCA9IFJURV9F VEhfTElOS19IQUxGX0RVUExFWDsKIAlsaW5rLmxpbmtfYXV0b25lZyA9ICEoZGV2LT5kYXRhLT5k ZXZfY29uZi5saW5rX3NwZWVkcyAmCi0JCQlFVEhfTElOS19TUEVFRF9GSVhFRCk7CisJCQlSVEVf RVRIX0xJTktfQVVUT05FRyk7CiAKIAlody0+bWFjLmdldF9saW5rX3N0YXR1cyA9IHRydWU7CiAK ZGlmZiBhL2RyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5oIGIvZHJpdmVycy9uZXQvdHhn YmUvdHhnYmVfZXRoZGV2LmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtNjAsMTUgKzYwLDE1IEBACiAj ZGVmaW5lIFRYR0JFX0VUSF9PVkVSSEVBRCAoUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJf Q1JDX0xFTikKIAogI2RlZmluZSBUWEdCRV9SU1NfT0ZGTE9BRF9BTEwgKCBcCi0JRVRIX1JTU19J UFY0IHwgXAotCUVUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8IFwKLQlFVEhfUlNTX05PTkZSQUdf SVBWNF9VRFAgfCBcCi0JRVRIX1JTU19JUFY2IHwgXAotCUVUSF9SU1NfTk9ORlJBR19JUFY2X1RD UCB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCi0JRVRIX1JTU19JUFY2X0VYIHwg XAotCUVUSF9SU1NfSVBWNl9UQ1BfRVggfCBcCi0JRVRIX1JTU19JUFY2X1VEUF9FWCkKKwlSVEVf RVRIX1JTU19JUFY0IHwgXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfCBcCisJUlRF X0VUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8IFwKKwlSVEVfRVRIX1JTU19JUFY2IHwgXAorCVJU RV9FVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2 X1VEUCB8IFwKKwlSVEVfRVRIX1JTU19JUFY2X0VYIHwgXAorCVJURV9FVEhfUlNTX0lQVjZfVENQ X0VYIHwgXAorCVJURV9FVEhfUlNTX0lQVjZfVURQX0VYKQogCiAjZGVmaW5lIFRYR0JFX01JU0Nf VkVDX0lEICAgICAgICAgICAgICAgUlRFX0lOVFJfVkVDX1pFUk9fT0ZGU0VUCiAjZGVmaW5lIFRY R0JFX1JYX1ZFQ19TVEFSVCAgICAgICAgICAgICAgUlRFX0lOVFJfVkVDX1JYVFhfT0ZGU0VUCmRp ZmYgYS9kcml2ZXJzL25ldC90eGdiZS90eGdiZV9yeHR4LmMgYi9kcml2ZXJzL25ldC90eGdiZS90 eGdiZV9yeHR4LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTk3MCwzNCArMTk3MCwzNCBAQCB0eGdi ZV9nZXRfcnhfcG9ydF9vZmZsb2FkcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAlzdHJ1Y3Qg dHhnYmVfaHcgKmh3ID0gVFhHQkVfREVWX0hXKGRldik7CiAJc3RydWN0IHJ0ZV9ldGhfZGV2X3Ny aW92ICpzcmlvdiA9ICZSVEVfRVRIX0RFVl9TUklPVihkZXYpOwogCi0Jb2ZmbG9hZHMgPSBERVZf UlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8Ci0JCSAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAg IHwKLQkJICAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNICAgfAotCQkgICBERVZfUlhfT0ZGTE9B RF9LRUVQX0NSQyAgICB8Ci0JCSAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKLQkJICAg REVWX1JYX09GRkxPQURfUlNTX0hBU0ggfAotCQkgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwor CW9mZmxvYWRzID0gUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKKwkJICAgUlRFX0VU SF9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwKKwkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9D S1NVTSAgIHwKKwkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgIHwKKwkJICAgUlRF X0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1JT U19IQVNIIHwKKwkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7CiAKIAlpZiAoIXR4Z2Jl X2lzX3ZmKGRldikpCi0JCW9mZmxvYWRzIHw9IChERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8 Ci0JCQkgICAgIERFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAotCQkJICAgICBERVZfUlhfT0ZG TE9BRF9WTEFOX0VYVEVORCk7CisJCW9mZmxvYWRzIHw9IChSVEVfRVRIX1JYX09GRkxPQURfVkxB Tl9GSUxURVIgfAorCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8CisJCQkg ICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCk7CiAKIAkvKgogCSAqIFJTQyBpcyBv bmx5IHN1cHBvcnRlZCBieSBQRiBkZXZpY2VzIGluIGEgbm9uLVNSLUlPVgogCSAqIG1vZGUuCiAJ ICovCiAJaWYgKGh3LT5tYWMudHlwZSA9PSB0eGdiZV9tYWNfcmFwdG9yICYmICFzcmlvdi0+YWN0 aXZlKQotCQlvZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPOworCQlvZmZsb2FkcyB8 PSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTzsKIAogCWlmIChody0+bWFjLnR5cGUgPT0gdHhn YmVfbWFjX3JhcHRvcikKLQkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfTUFDU0VDX1NUUklQ OworCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQOwogCi0Jb2Zm bG9hZHMgfD0gREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTTsKKwlvZmZsb2FkcyB8PSBS VEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTTsKIAogI2lmZGVmIFJURV9MSUJfU0VD VVJJVFkKIAlpZiAoZGV2LT5zZWN1cml0eV9jdHgpCi0JCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZM T0FEX1NFQ1VSSVRZOworCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfU0VDVVJJVFk7 CiAjZW5kaWYKIAogCXJldHVybiBvZmZsb2FkczsKQEAgLTM5MzEsMTUgKzM5MzEsMTUgQEAgdHhn YmVfY29uZmlnX3ZmX2RlZmF1bHQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJbXJxYyA9IHJk MzIoaHcsIFRYR0JFX1BPUlRDVEwpOwogCW1ycWMgJj0gfihUWEdCRV9QT1JUQ1RMX05VTVRDX01B U0sgfCBUWEdCRV9QT1JUQ1RMX05VTVZUX01BU0spOwogCXN3aXRjaCAoUlRFX0VUSF9ERVZfU1JJ T1YoZGV2KS5hY3RpdmUpIHsKLQljYXNlIEVUSF82NF9QT09MUzoKKwljYXNlIFJURV9FVEhfNjRf UE9PTFM6CiAJCW1ycWMgfD0gVFhHQkVfUE9SVENUTF9OVU1WVF82NDsKIAkJYnJlYWs7CiAKLQlj YXNlIEVUSF8zMl9QT09MUzoKKwljYXNlIFJURV9FVEhfMzJfUE9PTFM6CiAJCW1ycWMgfD0gVFhH QkVfUE9SVENUTF9OVU1WVF8zMjsKIAkJYnJlYWs7CiAKLQljYXNlIEVUSF8xNl9QT09MUzoKKwlj YXNlIFJURV9FVEhfMTZfUE9PTFM6CiAJCW1ycWMgfD0gVFhHQkVfUE9SVENUTF9OVU1WVF8xNjsK IAkJYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTQzOTEsMTEgKzQzOTEsMTEgQEAgdHhnYmVfZGV2X3J4 X2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJCWlmIChkZXYtPmRhdGEtPm10dSArIFRY R0JFX0VUSF9PVkVSSEVBRCArCiAJCQkJMiAqIFRYR0JFX1ZMQU5fVEFHX1NJWkUgPiBidWZfc2l6 ZSkKIAkJCWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKLQkJaWYgKHJ4cS0+b2ZmbG9hZHMg JiBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQKQotCQkJcnhfY29uZi0+b2ZmbG9hZHMgfD0gREVW X1JYX09GRkxPQURfVkxBTl9TVFJJUDsKKwkJaWYgKHJ4cS0+b2ZmbG9hZHMgJiBSVEVfRVRIX1JY X09GRkxPQURfVkxBTl9TVFJJUCkKKwkJCXJ4X2NvbmYtPm9mZmxvYWRzIHw9IFJURV9FVEhfUlhf T0ZGTE9BRF9WTEFOX1NUUklQOwogCX0KIAotCWlmIChyeF9jb25mLT5vZmZsb2FkcyAmIERFVl9S WF9PRkZMT0FEX1NDQVRURVIpCisJaWYgKHJ4X2NvbmYtPm9mZmxvYWRzICYgUlRFX0VUSF9SWF9P RkZMT0FEX1NDQVRURVIpCiAJCWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKIAogCS8qCkBA IC00OTAzLDcgKzQ5MDMsNyBAQCB0eGdiZXZmX2Rldl9yeF9pbml0KHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2KQogCQkgKi8KIAkJd3IzMihodywgVFhHQkVfUlhDRkcoaSksIHNycmN0bCk7CiAKLQkJ aWYgKHJ4bW9kZS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHx8CisJCWlmIChy eG1vZGUtPm9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfHwKIAkJICAgIC8q IEl0IGFkZHMgZHVhbCBWTEFOIGxlbmd0aCBmb3Igc3VwcG9ydGluZyBkdWFsIFZMQU4gKi8KIAkJ ICAgIChkZXYtPmRhdGEtPm10dSArIFRYR0JFX0VUSF9PVkVSSEVBRCArCiAJCQkJMiAqIFRYR0JF X1ZMQU5fVEFHX1NJWkUpID4gYnVmX3NpemUpIHsKZGlmZiBhL2RyaXZlcnMvbmV0L3ZpcnRpby92 aXJ0aW9fZXRoZGV2LmMgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRldi5jCShyZWpl Y3RlZCBodW5rcykKQEAgLTIxMTEsMjAgKzIxMTEsMjAgQEAgdmlydGlvX2Rldl9jb25maWd1cmUo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAKIAlody0+bWF4X3J4X3BrdF9sZW4gPSBldGhlcl9o ZHJfbGVuICsgcnhtb2RlLT5tdHU7CiAKLQlpZiAocnhfb2ZmbG9hZHMgJiAoREVWX1JYX09GRkxP QURfVURQX0NLU1VNIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSkpCisJaWYgKHJ4 X29mZmxvYWRzICYgKFJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJICAgUlRFX0VU SF9SWF9PRkZMT0FEX1RDUF9DS1NVTSkpCiAJCXJlcV9mZWF0dXJlcyB8PSAoMVVMTCA8PCBWSVJU SU9fTkVUX0ZfR1VFU1RfQ1NVTSk7CiAKLQlpZiAocnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9B RF9UQ1BfTFJPKQorCWlmIChyeF9vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfTFJP KQogCQlyZXFfZmVhdHVyZXMgfD0KIAkJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9HVUVTVF9UU080 KSB8CiAJCQkoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNik7CiAKLQlpZiAodHhfb2Zm bG9hZHMgJiAoREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJCSAgIERFVl9UWF9PRkZMT0FE X1RDUF9DS1NVTSkpCisJaWYgKHR4X29mZmxvYWRzICYgKFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBf Q0tTVU0gfAorCQkJICAgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpCiAJCXJlcV9mZWF0 dXJlcyB8PSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfQ1NVTSk7CiAKLQlpZiAodHhfb2ZmbG9hZHMg JiBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPKQorCWlmICh0eF9vZmZsb2FkcyAmIFJURV9FVEhfVFhf T0ZGTE9BRF9UQ1BfVFNPKQogCQlyZXFfZmVhdHVyZXMgfD0KIAkJCSgxVUxMIDw8IFZJUlRJT19O RVRfRl9IT1NUX1RTTzQpIHwKIAkJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzYpOwpA QCAtMjU0NiwzMiArMjU0NiwzMiBAQCB2aXJ0aW9fZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVfZXRo X2RldiAqZGV2LCBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCiAJZGV2X2luZm8t Pm1heF9tdHUgPSBody0+bWF4X210dTsKIAogCWhvc3RfZmVhdHVyZXMgPSBWSVJUSU9fT1BTKGh3 KS0+Z2V0X2ZlYXR1cmVzKGh3KTsKLQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gREVWX1JY X09GRkxPQURfVkxBTl9TVFJJUDsKKwlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gUlRFX0VU SF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CiAJaWYgKGhvc3RfZmVhdHVyZXMgJiAoMVVMTCA8PCBW SVJUSU9fTkVUX0ZfTVJHX1JYQlVGKSkKLQkJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PSBE RVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOworCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IFJU RV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSOwogCWlmIChob3N0X2ZlYXR1cmVzICYgKDFVTEwgPDwg VklSVElPX05FVF9GX0dVRVNUX0NTVU0pKSB7CiAJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEg fD0KLQkJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCQlERVZfUlhfT0ZGTE9BRF9VRFBf Q0tTVU07CisJCQlSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJCVJURV9FVEhfUlhf T0ZGTE9BRF9VRFBfQ0tTVU07CiAJfQogCWlmIChob3N0X2ZlYXR1cmVzICYgKDFVTEwgPDwgVklS VElPX05FVF9GX0NUUkxfVkxBTikpCi0JCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVW X1JYX09GRkxPQURfVkxBTl9GSUxURVI7CisJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0g UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOwogCXRzb19tYXNrID0gKDFVTEwgPDwgVklS VElPX05FVF9GX0dVRVNUX1RTTzQpIHwKIAkJKDFVTEwgPDwgVklSVElPX05FVF9GX0dVRVNUX1RT TzYpOwogCWlmICgoaG9zdF9mZWF0dXJlcyAmIHRzb19tYXNrKSA9PSB0c29fbWFzaykKLQkJZGV2 X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPOworCQlkZXZf aW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfTFJPOwogCi0J ZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAot CQkJCSAgICBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVDsKKwlkZXZfaW5mby0+dHhfb2ZmbG9h ZF9jYXBhID0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAorCQkJCSAgICBSVEVfRVRI X1RYX09GRkxPQURfVkxBTl9JTlNFUlQ7CiAJaWYgKGhvc3RfZmVhdHVyZXMgJiAoMVVMTCA8PCBW SVJUSU9fTkVUX0ZfQ1NVTSkpIHsKIAkJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSB8PQotCQkJ REVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTTsK KwkJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJUlRFX0VUSF9UWF9PRkZMT0FE X1RDUF9DS1NVTTsKIAl9CiAJdHNvX21hc2sgPSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9U U080KSB8CiAJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzYpOwogCWlmICgoaG9zdF9m ZWF0dXJlcyAmIHRzb19tYXNrKSA9PSB0c29fbWFzaykKLQkJZGV2X2luZm8tPnR4X29mZmxvYWRf Y2FwYSB8PSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPOworCQlkZXZfaW5mby0+dHhfb2ZmbG9hZF9j YXBhIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPOwogCiAJaWYgKGhvc3RfZmVhdHVyZXMg JiAoMVVMTCA8PCBWSVJUSU9fRl9SSU5HX1BBQ0tFRCkpIHsKIAkJLyoKZGlmZiBhL2RyaXZlcnMv bmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0 M19ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC00MSwyMCArNDEsMjAgQEAKICNkZWZpbmUJ Vk1YTkVUM19UWF9NQVhfU0VHCVVJTlQ4X01BWAogCiAjZGVmaW5lIFZNWE5FVDNfVFhfT0ZGTE9B RF9DQVAJCVwKLQkoREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAlcCi0JIERFVl9UWF9PRkZM T0FEX1RDUF9DS1NVTSB8CVwKLQkgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwJXAotCSBERVZf VFhfT0ZGTE9BRF9UQ1BfVFNPIHwJXAotCSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQorCShS VEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAlcCisJIFJURV9FVEhfVFhfT0ZGTE9BRF9U Q1BfQ0tTVU0gfAlcCisJIFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAlcCisJIFJURV9F VEhfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwJXAorCSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VH UykKIAogI2RlZmluZSBWTVhORVQzX1JYX09GRkxPQURfQ0FQCQlcCi0JKERFVl9SWF9PRkZMT0FE X1ZMQU5fU1RSSVAgfAlcCi0JIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwgICBcCi0JIERF Vl9SWF9PRkZMT0FEX1NDQVRURVIgfAlcCi0JIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CVwK LQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwJXAotCSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJP IHwJXAotCSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKKwkoUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fU1RSSVAgfAlcCisJIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8ICAgXAorCSBS VEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CVwKKwkgUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9D S1NVTSB8CVwKKwkgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CVwKKwkgUlRFX0VUSF9S WF9PRkZMT0FEX1RDUF9MUk8gfAlcCisJIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKIAog aW50IHZteG5ldDNfc2Vnc19keW5maWVsZF9vZmZzZXQgPSAtMTsKIApkaWZmIGEvZXhhbXBsZXMv YmJkZXZfYXBwL21haW4uYyBiL2V4YW1wbGVzL2JiZGV2X2FwcC9tYWluLmMJKHJlamVjdGVkIGh1 bmtzKQpAQCAtNzEsMTEgKzcxLDExIEBAIG1idWZfaW5wdXQoc3RydWN0IHJ0ZV9tYnVmICptYnVm KQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4 bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVf RVRIX01RX1JYX05PTkUsCiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCiAJfSwKIAkudHhtb2RlID0g ewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFf VFhfTk9ORSwKIAl9LAogfTsKIApkaWZmIGEvZXhhbXBsZXMvYm9uZC9tYWluLmMgYi9leGFtcGxl cy9ib25kL21haW4uYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMTUsMTcgKzExNSwxNyBAQCBzdGF0 aWMgc3RydWN0IHJ0ZV9tZW1wb29sICptYnVmX3Bvb2w7CiAKIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0 aF9jb25mIHBvcnRfY29uZiA9IHsKIAkucnhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9S WF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfTk9ORSwKIAkJLnNwbGl0X2hkcl9z aXplID0gMCwKIAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJLnJz c19rZXkgPSBOVUxMLAotCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAsCisJCQkucnNzX2hmID0gUlRF X0VUSF9SU1NfSVAsCiAJCX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9N UV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogfTsKIApk aWZmIGEvZXhhbXBsZXMvZGlzdHJpYnV0b3IvbWFpbi5jIGIvZXhhbXBsZXMvZGlzdHJpYnV0b3Iv bWFpbi5jCShyZWplY3RlZCBodW5rcykKQEAgLTgwLDE1ICs4MCwxNSBAQCBzdHJ1Y3QgYXBwX3N0 YXRzIHByZXZfYXBwX3N0YXRzOwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBw b3J0X2NvbmZfZGVmYXVsdCA9IHsKIAkucnhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9S WF9SU1MsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9SWF9SU1MsCiAJfSwKIAkudHhtb2RlID0g ewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFf VFhfTk9ORSwKIAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewotCQkJLnJz c19oZiA9IEVUSF9SU1NfSVAgfCBFVEhfUlNTX1VEUCB8Ci0JCQkJRVRIX1JTU19UQ1AgfCBFVEhf UlNTX1NDVFAsCisJCQkucnNzX2hmID0gUlRFX0VUSF9SU1NfSVAgfCBSVEVfRVRIX1JTU19VRFAg fAorCQkJCVJURV9FVEhfUlNTX1RDUCB8IFJURV9FVEhfUlNTX1NDVFAsCiAJCX0KIAl9LAogfTsK ZGlmZiBhL2V4YW1wbGVzL2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl9nZW5lcmlj LmMgYi9leGFtcGxlcy9ldmVudGRldl9waXBlbGluZS9waXBlbGluZV93b3JrZXJfZ2VuZXJpYy5j CShyZWplY3RlZCBodW5rcykKQEAgLTI4MywxMyArMjgzLDEzIEBAIHBvcnRfaW5pdCh1aW50OF90 IHBvcnQsIHN0cnVjdCBydGVfbWVtcG9vbCAqbWJ1Zl9wb29sKQogCXN0cnVjdCBydGVfZXRoX3J4 Y29uZiByeF9jb25mOwogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29u Zl9kZWZhdWx0ID0gewogCQkucnhtb2RlID0gewotCQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNT LAorCQkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX1JTUywKIAkJfSwKIAkJLnJ4X2Fkdl9jb25m ID0gewogCQkJLnJzc19jb25mID0gewotCQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQIHwKLQkJCQkJ ICBFVEhfUlNTX1RDUCB8Ci0JCQkJCSAgRVRIX1JTU19VRFAsCisJCQkJLnJzc19oZiA9IFJURV9F VEhfUlNTX0lQIHwKKwkJCQkJICBSVEVfRVRIX1JTU19UQ1AgfAorCQkJCQkgIFJURV9FVEhfUlNT X1VEUCwKIAkJCX0KIAkJfQogCX07CmRpZmYgYS9leGFtcGxlcy9ldmVudGRldl9waXBlbGluZS9w aXBlbGluZV93b3JrZXJfdHguYyBiL2V4YW1wbGVzL2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5l X3dvcmtlcl90eC5jCShyZWplY3RlZCBodW5rcykKQEAgLTYxNCwxMyArNjE0LDEzIEBAIHBvcnRf aW5pdCh1aW50OF90IHBvcnQsIHN0cnVjdCBydGVfbWVtcG9vbCAqbWJ1Zl9wb29sKQogCXN0cnVj dCBydGVfZXRoX3J4Y29uZiByeF9jb25mOwogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9j b25mIHBvcnRfY29uZl9kZWZhdWx0ID0gewogCQkucnhtb2RlID0gewotCQkJLm1xX21vZGUgPSBF VEhfTVFfUlhfUlNTLAorCQkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX1JTUywKIAkJfSwKIAkJ LnJ4X2Fkdl9jb25mID0gewogCQkJLnJzc19jb25mID0gewotCQkJCS5yc3NfaGYgPSBFVEhfUlNT X0lQIHwKLQkJCQkJICBFVEhfUlNTX1RDUCB8Ci0JCQkJCSAgRVRIX1JTU19VRFAsCisJCQkJLnJz c19oZiA9IFJURV9FVEhfUlNTX0lQIHwKKwkJCQkJICBSVEVfRVRIX1JTU19UQ1AgfAorCQkJCQkg IFJURV9FVEhfUlNTX1VEUCwKIAkJCX0KIAkJfQogCX07CmRpZmYgYS9leGFtcGxlcy9pb2F0L2lv YXRmd2QuYyBiL2V4YW1wbGVzL2lvYXQvaW9hdGZ3ZC5jCShyZWplY3RlZCBodW5rcykKQEAgLTgx OSwxMiArODE5LDEyIEBAIHBvcnRfaW5pdCh1aW50MTZfdCBwb3J0aWQsIHN0cnVjdCBydGVfbWVt cG9vbCAqbWJ1Zl9wb29sLCB1aW50MTZfdCBuYl9xdWV1ZXMpCiAJLyogQ29uZmlndXJpbmcgcG9y dCB0byB1c2UgUlNTIGZvciBtdWx0aXBsZSBSWCBxdWV1ZXMuIDg8ICovCiAJc3RhdGljIGNvbnN0 IHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCQkucnhtb2RlID0gewotCQkJLm1x X21vZGUgPSBFVEhfTVFfUlhfUlNTLAorCQkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX1JTUywK IAkJfSwKIAkJLnJ4X2Fkdl9jb25mID0gewogCQkJLnJzc19jb25mID0gewogCQkJCS5yc3Nfa2V5 ID0gTlVMTCwKLQkJCQkucnNzX2hmID0gRVRIX1JTU19QUk9UT19NQVNLLAorCQkJCS5yc3NfaGYg PSBSVEVfRVRIX1JTU19QUk9UT19NQVNLLAogCQkJfQogCQl9CiAJfTsKZGlmZiBhL2V4YW1wbGVz L2lwX2ZyYWdtZW50YXRpb24vbWFpbi5jIGIvZXhhbXBsZXMvaXBfZnJhZ21lbnRhdGlvbi9tYWlu LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTQ5LDEzICsxNDksMTMgQEAgc3RhdGljIHN0cnVjdCBy dGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCQkubXR1ID0gSlVNQk9fRlJBTUVfTUFYX1NJWkUg LSBSVEVfRVRIRVJfSERSX0xFTiAtCiAJCQlSVEVfRVRIRVJfQ1JDX0xFTiwKIAkJLnNwbGl0X2hk cl9zaXplID0gMCwKLQkJLm9mZmxvYWRzID0gKERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKLQkJ CSAgICAgREVWX1JYX09GRkxPQURfU0NBVFRFUiksCisJCS5vZmZsb2FkcyA9IChSVEVfRVRIX1JY X09GRkxPQURfQ0hFQ0tTVU0gfAorCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiks CiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAotCQkub2Zm bG9hZHMgPSAoREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCQkgICAgIERFVl9UWF9PRkZM T0FEX01VTFRJX1NFR1MpLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKKwkJLm9m ZmxvYWRzID0gKFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCSAgICAgUlRFX0VU SF9UWF9PRkZMT0FEX01VTFRJX1NFR1MpLAogCX0sCiB9OwogCmRpZmYgYS9leGFtcGxlcy9pcF9w aXBlbGluZS9saW5rLmMgYi9leGFtcGxlcy9pcF9waXBlbGluZS9saW5rLmMJKHJlamVjdGVkIGh1 bmtzKQpAQCAtNDUsNyArNDUsNyBAQCBsaW5rX25leHQoc3RydWN0IGxpbmsgKmxpbmspCiBzdGF0 aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKIAkubGlua19zcGVl ZHMgPSAwLAogCS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCisJCS5t cV9tb2RlID0gUlRFX0VUSF9NUV9SWF9OT05FLAogCQkubXR1ID0gOTAwMCAtIChSVEVfRVRIRVJf SERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOKSwgLyogSnVtYm8gZnJhbWUgTVRVICovCiAJCS5z cGxpdF9oZHJfc2l6ZSA9IDAsIC8qIEhlYWRlciBzcGxpdCBidWZmZXIgc2l6ZSAqLwogCX0sCmRp ZmYgYS9leGFtcGxlcy9pcF9yZWFzc2VtYmx5L21haW4uYyBiL2V4YW1wbGVzL2lwX3JlYXNzZW1i bHkvbWFpbi5jCShyZWplY3RlZCBodW5rcykKQEAgLTE2MSwyMiArMTYxLDIyIEBAIHN0YXRpYyBz dHJ1Y3QgbGNvcmVfcXVldWVfY29uZiBsY29yZV9xdWV1ZV9jb25mW1JURV9NQVhfTENPUkVdOwog CiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsK LQkJLm1xX21vZGUgICAgICAgID0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUgICAgICAgID0g UlRFX0VUSF9NUV9SWF9SU1MsCiAJCS5tdHUgPSBKVU1CT19GUkFNRV9NQVhfU0laRSAtIFJURV9F VEhFUl9IRFJfTEVOIC0KIAkJCVJURV9FVEhFUl9DUkNfTEVOLAogCQkuc3BsaXRfaGRyX3NpemUg PSAwLAotCQkub2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKKwkJLm9mZmxvYWRz ID0gUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNLAogCX0sCiAJLnJ4X2Fkdl9jb25mID0gewog CQkJLnJzc19jb25mID0gewogCQkJCS5yc3Nfa2V5ID0gTlVMTCwKLQkJCQkucnNzX2hmID0gRVRI X1JTU19JUCwKKwkJCQkucnNzX2hmID0gUlRFX0VUSF9SU1NfSVAsCiAJCX0sCiAJfSwKIAkudHht b2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAotCQkub2ZmbG9hZHMgPSAoREVW X1RYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCQkgICAgIERFVl9UWF9PRkZMT0FEX01VTFRJX1NF R1MpLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKKwkJLm9mZmxvYWRzID0gKFJU RV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FE X01VTFRJX1NFR1MpLAogCX0sCiB9OwogCmRpZmYgYS9leGFtcGxlcy9pcHNlYy1zZWNndy9pcHNl Yy1zZWNndy5jIGIvZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYwkocmVqZWN0ZWQg aHVua3MpCkBAIC0yMzQsMTkgKzIzNCwxOSBAQCBzdGF0aWMgc3RydWN0IGxjb3JlX2NvbmYgbGNv cmVfY29uZltSVEVfTUFYX0xDT1JFXTsKIAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9y dF9jb25mID0gewogCS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlCT0gRVRIX01RX1JYX1JTUywKKwkJ Lm1xX21vZGUJPSBSVEVfRVRIX01RX1JYX1JTUywKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKLQkJ Lm9mZmxvYWRzID0gREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0sCisJCS5vZmZsb2FkcyA9IFJURV9F VEhfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKIAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19j b25mID0gewogCQkJLnJzc19rZXkgPSBOVUxMLAotCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAgfCBF VEhfUlNTX1VEUCB8Ci0JCQkJRVRIX1JTU19UQ1AgfCBFVEhfUlNTX1NDVFAsCisJCQkucnNzX2hm ID0gUlRFX0VUSF9SU1NfSVAgfCBSVEVfRVRIX1JTU19VRFAgfAorCQkJCVJURV9FVEhfUlNTX1RD UCB8IFJURV9FVEhfUlNTX1NDVFAsCiAJCX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9k ZSA9IEVUSF9NUV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9 LAogfTsKIApAQCAtMjIxMiw4ICsyMjEyLDggQEAgcG9ydF9pbml0KHVpbnQxNl90IHBvcnRpZCwg dWludDY0X3QgcmVxX3J4X29mZmxvYWRzLCB1aW50NjRfdCByZXFfdHhfb2ZmbG9hZHMpCiAJbG9j YWxfcG9ydF9jb25mLnJ4bW9kZS5tdHUgPSBtdHVfc2l6ZTsKIAogCWlmIChtdWx0aV9zZWdfcmVx dWlyZWQoKSkgewotCQlsb2NhbF9wb3J0X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9IERFVl9SWF9P RkZMT0FEX1NDQVRURVI7Ci0JCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0gREVW X1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJbG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5vZmZsb2Fk cyB8PSBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUjsKKwkJbG9jYWxfcG9ydF9jb25mLnR4bW9k ZS5vZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAl9CiAKIAlsb2Nh bF9wb3J0X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9IHJlcV9yeF9vZmZsb2FkczsKZGlmZiBhL2V4 YW1wbGVzL2lwdjRfbXVsdGljYXN0L21haW4uYyBiL2V4YW1wbGVzL2lwdjRfbXVsdGljYXN0L21h aW4uYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMTUsOCArMTE1LDggQEAgc3RhdGljIHN0cnVjdCBy dGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAogCX0sCiAJ LnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKLQkJLm9mZmxvYWRzID0g REVWX1RYX09GRkxPQURfTVVMVElfU0VHUywKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05P TkUsCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTLAogCX0sCiB9 OwogCmRpZmYgYS9leGFtcGxlcy9sMmZ3ZC1jcnlwdG8vbWFpbi5jIGIvZXhhbXBsZXMvbDJmd2Qt Y3J5cHRvL21haW4uYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yMTYsMTEgKzIxNiwxMSBAQCBzdHJ1 Y3QgbGNvcmVfcXVldWVfY29uZiBsY29yZV9xdWV1ZV9jb25mW1JURV9NQVhfTENPUkVdOwogCiBz dGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJ Lm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX05P TkUsCiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9k ZSA9IEVUSF9NUV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9 LAogfTsKIApkaWZmIGEvZXhhbXBsZXMvbDNmd2QtYWNsL21haW4uYyBiL2V4YW1wbGVzL2wzZndk LWFjbC9tYWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTI0LDE5ICsxMjQsMTkgQEAgc3RhdGlj IHVpbnQxNl90IG5iX2xjb3JlX3BhcmFtcyA9IHNpemVvZihsY29yZV9wYXJhbXNfYXJyYXlfZGVm YXVsdCkgLwogCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4 bW9kZSA9IHsKLQkJLm1xX21vZGUJPSBFVEhfTVFfUlhfUlNTLAorCQkubXFfbW9kZQk9IFJURV9F VEhfTVFfUlhfUlNTLAogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAotCQkub2ZmbG9hZHMgPSBERVZf UlhfT0ZGTE9BRF9DSEVDS1NVTSwKKwkJLm9mZmxvYWRzID0gUlRFX0VUSF9SWF9PRkZMT0FEX0NI RUNLU1VNLAogCX0sCiAJLnJ4X2Fkdl9jb25mID0gewogCQkucnNzX2NvbmYgPSB7CiAJCQkucnNz X2tleSA9IE5VTEwsCi0JCQkucnNzX2hmID0gRVRIX1JTU19JUCB8IEVUSF9SU1NfVURQIHwKLQkJ CQlFVEhfUlNTX1RDUCB8IEVUSF9SU1NfU0NUUCwKKwkJCS5yc3NfaGYgPSBSVEVfRVRIX1JTU19J UCB8IFJURV9FVEhfUlNTX1VEUCB8CisJCQkJUlRFX0VUSF9SU1NfVENQIHwgUlRFX0VUSF9SU1Nf U0NUUCwKIAkJfSwKIAl9LAogCS50eG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1RYX05P TkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9UWF9OT05FLAogCX0sCiB9OwogCkBAIC0yMDA0 LDcgKzIwMDQsNyBAQCBjb25maWdfcG9ydF9tYXhfcGt0X2xlbihzdHJ1Y3QgcnRlX2V0aF9jb25m ICpjb25mLAogCWNvbmYtPnJ4bW9kZS5tdHUgPSBtYXhfcGt0X2xlbiAtIG92ZXJoZWFkX2xlbjsK IAogCWlmIChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkKLQkJY29uZi0+dHhtb2Rl Lm9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJCWNvbmYtPnR4bW9kZS5v ZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAogCXJldHVybiAwOwog fQpAQCAtMjA4OCw5ICsyMDg4LDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJ IkludmFsaWQgbWF4IHBhY2tldCBsZW5ndGg6ICV1IChwb3J0ICV1KVxuIiwKIAkJCQltYXhfcGt0 X2xlbiwgcG9ydGlkKTsKIAotCQlpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpCisJCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEg JiBSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpCiAJCQlsb2NhbF9wb3J0X2NvbmYu dHhtb2RlLm9mZmxvYWRzIHw9Ci0JCQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJ CQkJUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwogCiAJCWxvY2FsX3BvcnRfY29u Zi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgJj0KIAkJCWRldl9pbmZvLmZsb3dfdHlwZV9y c3Nfb2ZmbG9hZHM7CmRpZmYgYS9leGFtcGxlcy9sM2Z3ZC1ncmFwaC9tYWluLmMgYi9leGFtcGxl cy9sM2Z3ZC1ncmFwaC9tYWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTExLDE3ICsxMTEsMTcg QEAgc3RhdGljIHVpbnQxNl90IG5iX2xjb3JlX3BhcmFtcyA9IFJURV9ESU0obGNvcmVfcGFyYW1z X2FycmF5X2RlZmF1bHQpOwogCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYg PSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAorCQkubXFfbW9k ZSA9IFJURV9FVEhfTVFfUlhfUlNTLAogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAogCX0sCiAJLnJ4 X2Fkdl9jb25mID0gewogCQkucnNzX2NvbmYgPSB7CiAJCQkJLnJzc19rZXkgPSBOVUxMLAotCQkJ CS5yc3NfaGYgPSBFVEhfUlNTX0lQLAorCQkJCS5yc3NfaGYgPSBSVEVfRVRIX1JTU19JUCwKIAkJ fSwKIAl9LAogCS50eG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCisJCS5t cV9tb2RlID0gUlRFX0VUSF9NUV9UWF9OT05FLAogCX0sCiB9OwogCkBAIC03MzEsNyArNzMxLDcg QEAgY29uZmlnX3BvcnRfbWF4X3BrdF9sZW4oc3RydWN0IHJ0ZV9ldGhfY29uZiAqY29uZiwKIAlj b25mLT5yeG1vZGUubXR1ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9sZW47CiAKIAlpZiAoY29u Zi0+cnhtb2RlLm10dSA+IFJURV9FVEhFUl9NVFUpCi0JCWNvbmYtPnR4bW9kZS5vZmZsb2FkcyB8 PSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOworCQljb25mLT50eG1vZGUub2ZmbG9hZHMgfD0g UlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTgyOCw5 ICs4MjgsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQkiSW52YWxpZCBtYXgg cGFja2V0IGxlbmd0aDogJXUgKHBvcnQgJXUpXG4iLAogCQkJCW1heF9wa3RfbGVuLCBwb3J0aWQp OwogCi0JCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRSkKKwkJaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIFJURV9FVEhfVFhf T0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKIAkJCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9h ZHMgfD0KLQkJCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwkJCQlSVEVfRVRIX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAKIAkJbG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25m LnJzc19jb25mLnJzc19oZiAmPQogCQkJZGV2X2luZm8uZmxvd190eXBlX3Jzc19vZmZsb2FkczsK ZGlmZiBhL2V4YW1wbGVzL2wzZndkLXBvd2VyL21haW4uYyBiL2V4YW1wbGVzL2wzZndkLXBvd2Vy L21haW4uYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yNTAsMTggKzI1MCwxOCBAQCB1aW50MTZfdCBu Yl9sY29yZV9wYXJhbXMgPSBSVEVfRElNKGxjb3JlX3BhcmFtc19hcnJheV9kZWZhdWx0KTsKIAog c3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCS5yeG1vZGUgPSB7Ci0J CS5tcV9tb2RlICAgICAgICA9IEVUSF9NUV9SWF9SU1MsCisJCS5tcV9tb2RlICAgICAgICA9IFJU RV9FVEhfTVFfUlhfUlNTLAogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAotCQkub2ZmbG9hZHMgPSBE RVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKKwkJLm9mZmxvYWRzID0gUlRFX0VUSF9SWF9PRkZMT0FE X0NIRUNLU1VNLAogCX0sCiAJLnJ4X2Fkdl9jb25mID0gewogCQkucnNzX2NvbmYgPSB7CiAJCQku cnNzX2tleSA9IE5VTEwsCi0JCQkucnNzX2hmID0gRVRIX1JTU19VRFAsCisJCQkucnNzX2hmID0g UlRFX0VUSF9SU1NfVURQLAogCQl9LAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBF VEhfTVFfVFhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfQogfTsK IApAQCAtMjUxMCw3ICsyNTEwLDcgQEAgY29uZmlnX3BvcnRfbWF4X3BrdF9sZW4oc3RydWN0IHJ0 ZV9ldGhfY29uZiAqY29uZiwKIAljb25mLT5yeG1vZGUubXR1ID0gbWF4X3BrdF9sZW4gLSBvdmVy aGVhZF9sZW47CiAKIAlpZiAoY29uZi0+cnhtb2RlLm10dSA+IFJURV9FVEhFUl9NVFUpCi0JCWNv bmYtPnR4bW9kZS5vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOworCQljb25m LT50eG1vZGUub2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CiAKIAly ZXR1cm4gMDsKIH0KQEAgLTI2MzgsOSArMjYzOCw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogCQkJCSJJbnZhbGlkIG1heCBwYWNrZXQgbGVuZ3RoOiAldSAocG9ydCAldSlcbiIsCiAJ CQkJbWF4X3BrdF9sZW4sIHBvcnRpZCk7CiAKLQkJaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2Fw YSAmIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQorCQlpZiAoZGV2X2luZm8udHhfb2Zm bG9hZF9jYXBhICYgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQogCQkJbG9jYWxf cG9ydF9jb25mLnR4bW9kZS5vZmZsb2FkcyB8PQotCQkJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFOworCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKIAogCQlsb2Nh bF9wb3J0X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2hmICY9CiAJCQlkZXZfaW5mby5m bG93X3R5cGVfcnNzX29mZmxvYWRzOwpkaWZmIGEvZXhhbXBsZXMvbDNmd2QvbWFpbi5jIGIvZXhh bXBsZXMvbDNmd2QvbWFpbi5jCShyZWplY3RlZCBodW5rcykKQEAgLTEyMCwxOCArMTIwLDE4IEBA IHN0YXRpYyB1aW50MTZfdCBuYl9sY29yZV9wYXJhbXMgPSBzaXplb2YobGNvcmVfcGFyYW1zX2Fy cmF5X2RlZmF1bHQpIC8KIAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0g ewogCS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUg PSBSVEVfRVRIX01RX1JYX1JTUywKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKLQkJLm9mZmxvYWRz ID0gREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0sCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZG TE9BRF9DSEVDS1NVTSwKIAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewog CQkJLnJzc19rZXkgPSBOVUxMLAotCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAsCisJCQkucnNzX2hm ID0gUlRFX0VUSF9SU1NfSVAsCiAJCX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9 IEVUSF9NUV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAog fTsKIApAQCAtOTg4LDcgKzk4OCw3IEBAIGNvbmZpZ19wb3J0X21heF9wa3RfbGVuKHN0cnVjdCBy dGVfZXRoX2NvbmYgKmNvbmYsCiAJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0gb3Zl cmhlYWRfbGVuOwogCiAJaWYgKGNvbmYtPnJ4bW9kZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQotCQlj b25mLT50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJY29u Zi0+dHhtb2RlLm9mZmxvYWRzIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwogCiAJ cmV0dXJuIDA7CiB9CkBAIC0xMDUzLDE1ICsxMDUzLDE1IEBAIGwzZndkX3BvbGxfcmVzb3VyY2Vf c2V0dXAodm9pZCkKIAkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0aDogJXUgKHBvcnQgJXUp XG4iLAogCQkJCW1heF9wa3RfbGVuLCBwb3J0aWQpOwogCi0JCWlmIChkZXZfaW5mby50eF9vZmZs b2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKKwkJaWYgKGRldl9pbmZv LnR4X29mZmxvYWRfY2FwYSAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKIAkJ CWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0KLQkJCQlERVZfVFhfT0ZGTE9BRF9N QlVGX0ZBU1RfRlJFRTsKKwkJCQlSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAK IAkJbG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAmPQogCQkJZGV2 X2luZm8uZmxvd190eXBlX3Jzc19vZmZsb2FkczsKIAogCQlpZiAoZGV2X2luZm8ubWF4X3J4X3F1 ZXVlcyA9PSAxKQotCQkJbG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5tcV9tb2RlID0gRVRIX01RX1JY X05PTkU7CisJCQlsb2NhbF9wb3J0X2NvbmYucnhtb2RlLm1xX21vZGUgPSBSVEVfRVRIX01RX1JY X05PTkU7CiAKIAkJaWYgKGxvY2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3Nf aGYgIT0KIAkJCQlwb3J0X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2hmKSB7CmRpZmYg YS9leGFtcGxlcy9wZXJmb3JtYW5jZS10aHJlYWQvbDNmd2QtdGhyZWFkL21haW4uYyBiL2V4YW1w bGVzL3BlcmZvcm1hbmNlLXRocmVhZC9sM2Z3ZC10aHJlYWQvbWFpbi5jCShyZWplY3RlZCBodW5r cykKQEAgLTMwNywxOCArMzA3LDE4IEBAIHN0YXRpYyB1aW50MTZfdCBuYl90eF90aHJlYWRfcGFy YW1zID0gUlRFX0RJTSh0eF90aHJlYWRfcGFyYW1zX2FycmF5X2RlZmF1bHQpOwogCiBzdGF0aWMg c3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21v ZGUgPSBFVEhfTVFfUlhfUlNTLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfUlNTLAogCQku c3BsaXRfaGRyX3NpemUgPSAwLAotCQkub2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NV TSwKKwkJLm9mZmxvYWRzID0gUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNLAogCX0sCiAJLnJ4 X2Fkdl9jb25mID0gewogCQkucnNzX2NvbmYgPSB7CiAJCQkucnNzX2tleSA9IE5VTEwsCi0JCQku cnNzX2hmID0gRVRIX1JTU19UQ1AsCisJCQkucnNzX2hmID0gUlRFX0VUSF9SU1NfVENQLAogCQl9 LAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1x X21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfSwKIH07CiAKQEAgLTM0OTQsNyArMzQ5NCw3 IEBAIGNvbmZpZ19wb3J0X21heF9wa3RfbGVuKHN0cnVjdCBydGVfZXRoX2NvbmYgKmNvbmYsCiAJ Y29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0gb3ZlcmhlYWRfbGVuOwogCiAJaWYgKGNv bmYtPnJ4bW9kZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQotCQljb25mLT50eG1vZGUub2ZmbG9hZHMg fD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJY29uZi0+dHhtb2RlLm9mZmxvYWRzIHw9 IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zNTkz LDkgKzM1OTMsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQkiSW52YWxpZCBt YXggcGFja2V0IGxlbmd0aDogJXUgKHBvcnQgJXUpXG4iLAogCQkJCW1heF9wa3RfbGVuLCBwb3J0 aWQpOwogCi0JCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9N QlVGX0ZBU1RfRlJFRSkKKwkJaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIFJURV9FVEhf VFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKIAkJCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2Zm bG9hZHMgfD0KLQkJCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwkJCQlSVEVfRVRI X1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAKIAkJbG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9j b25mLnJzc19jb25mLnJzc19oZiAmPQogCQkJZGV2X2luZm8uZmxvd190eXBlX3Jzc19vZmZsb2Fk czsKZGlmZiBhL2V4YW1wbGVzL3BpcGVsaW5lL29iai5jIGIvZXhhbXBsZXMvcGlwZWxpbmUvb2Jq LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTMzLDcgKzEzMyw3IEBAIG1lbXBvb2xfZmluZChzdHJ1 Y3Qgb2JqICpvYmosIGNvbnN0IGNoYXIgKm5hbWUpCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29u ZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKIAkubGlua19zcGVlZHMgPSAwLAogCS5yeG1vZGUgPSB7 Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9S WF9OT05FLAogCQkubXR1ID0gOTAwMCAtIChSVEVfRVRIRVJfSERSX0xFTiArIFJURV9FVEhFUl9D UkNfTEVOKSwgLyogSnVtYm8gZnJhbWUgTVRVICovCiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsIC8q IEhlYWRlciBzcGxpdCBidWZmZXIgc2l6ZSAqLwogCX0sCmRpZmYgYS9leGFtcGxlcy9xb3NfbWV0 ZXIvbWFpbi5jIGIvZXhhbXBsZXMvcW9zX21ldGVyL21haW4uYwkocmVqZWN0ZWQgaHVua3MpCkBA IC01MSwxOCArNTEsMTggQEAgc3RhdGljIHN0cnVjdCBydGVfbWVtcG9vbCAqcG9vbCA9IE5VTEw7 CiAgKioqLwogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCS5yeG1v ZGUgPSB7Ci0JCS5tcV9tb2RlCT0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUJPSBSVEVfRVRI X01RX1JYX1JTUywKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKLQkJLm9mZmxvYWRzID0gREVWX1JY X09GRkxPQURfQ0hFQ0tTVU0sCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9DSEVD S1NVTSwKIAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJLnJzc19r ZXkgPSBOVUxMLAotCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAsCisJCQkucnNzX2hmID0gUlRFX0VU SF9SU1NfSVAsCiAJCX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9EQ0Jf Tk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfSwKIH07CiAKZGlmZiBh L2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oIGIvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmgJ KHJlamVjdGVkIGh1bmtzKQpAQCAtMTE2LDcgKzExNiw3IEBAIHN0cnVjdCBydGVfZXRoX2Rldl9k YXRhIHsKIAkJCS8qKjwgRGV2aWNlIEV0aGVybmV0IGxpbmsgYWRkcmVzcy4KIAkJCSAqICAgQHNl ZSBydGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQoKQogCQkJICovCi0JdWludDY0X3QgbWFjX3Bvb2xf c2VsW0VUSF9OVU1fUkVDRUlWRV9NQUNfQUREUl07CisJdWludDY0X3QgbWFjX3Bvb2xfc2VsW1JU RV9FVEhfTlVNX1JFQ0VJVkVfTUFDX0FERFJdOwogCQkJLyoqPCBCaXRtYXAgYXNzb2NpYXRpbmcg TUFDIGFkZHJlc3NlcyB0byBwb29scy4gKi8KIAlzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKmhhc2hf bWFjX2FkZHJzOwogCQkJLyoqPCBEZXZpY2UgRXRoZXJuZXQgTUFDIGFkZHJlc3NlcyBvZiBoYXNo IGZpbHRlcmluZy4KZGlmZiBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5jIGIvbGliL2V0aGRldi9y dGVfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTUwMyw3ICsxNTAwLDcgQEAgcnRlX2V0 aF9kZXZfY29uZmlndXJlKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IG5iX3J4X3EsIHVpbnQx Nl90IG5iX3R4X3EsCiAJICogSWYgTFJPIGlzIGVuYWJsZWQsIGNoZWNrIHRoYXQgdGhlIG1heGlt dW0gYWdncmVnYXRlZCBwYWNrZXQKIAkgKiBzaXplIGlzIHN1cHBvcnRlZCBieSB0aGUgY29uZmln dXJlZCBkZXZpY2UuCiAJICovCi0JaWYgKGRldl9jb25mLT5yeG1vZGUub2ZmbG9hZHMgJiBERVZf UlhfT0ZGTE9BRF9UQ1BfTFJPKSB7CisJaWYgKGRldl9jb25mLT5yeG1vZGUub2ZmbG9hZHMgJiBS VEVfRVRIX1JYX09GRkxPQURfVENQX0xSTykgewogCQl1aW50MzJfdCBtYXhfcnhfcGt0bGVuOwog CQl1aW50MzJfdCBvdmVyaGVhZF9sZW47CiAKQEAgLTIxNzQsNyArMjE3MSw3IEBAIHJ0ZV9ldGhf cnhfcXVldWVfc2V0dXAodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcnhfcXVldWVfaWQsCiAJ ICogc2l6ZSBpcyBzdXBwb3J0ZWQgYnkgdGhlIGNvbmZpZ3VyZWQgZGV2aWNlLgogCSAqLwogCS8q IEdldCB0aGUgcmVhbCBFdGhlcm5ldCBvdmVyaGVhZCBsZW5ndGggKi8KLQlpZiAobG9jYWxfY29u Zi5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8pIHsKKwlpZiAobG9jYWxfY29uZi5v ZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfTFJPKSB7CiAJCXVpbnQzMl90IG92ZXJo ZWFkX2xlbjsKIAkJdWludDMyX3QgbWF4X3J4X3BrdGxlbjsKIAkJaW50IHJldDsKZGlmZiBhL2xp Yi9ldGhkZXYvcnRlX2V0aGRldi5oIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmgJKHJlamVjdGVk IGh1bmtzKQpAQCAtMTMzNSw0OCArMTU0OCw3MCBAQCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHsKIAkJ c3RydWN0IHJ0ZV9ldGhfdm1kcV90eF9jb25mIHZtZHFfdHhfY29uZjsKIAkJLyoqPCBQb3J0IHZt ZHEgVFggY29uZmlndXJhdGlvbi4gKi8KIAl9IHR4X2Fkdl9jb25mOyAvKio8IFBvcnQgVFggRENC IGNvbmZpZ3VyYXRpb24gKHVuaW9uKS4gKi8KLQkvKiogQ3VycmVudGx5LFByaW9yaXR5IEZsb3cg Q29udHJvbChQRkMpIGFyZSBzdXBwb3J0ZWQsaWYgRENCIHdpdGggUEZDCi0JICAgIGlzIG5lZWRl ZCxhbmQgdGhlIHZhcmlhYmxlIG11c3QgYmUgc2V0IEVUSF9EQ0JfUEZDX1NVUFBPUlQuICovCisJ LyoqCisJICogQ3VycmVudGx5LFByaW9yaXR5IEZsb3cgQ29udHJvbChQRkMpIGFyZSBzdXBwb3J0 ZWQsaWYgRENCIHdpdGggUEZDCisJICogaXMgbmVlZGVkLGFuZCB0aGUgdmFyaWFibGUgbXVzdCBi ZSBzZXQgUlRFX0VUSF9EQ0JfUEZDX1NVUFBPUlQuCisJICovCiAJdWludDMyX3QgZGNiX2NhcGFi aWxpdHlfZW47Ci0Jc3RydWN0IHJ0ZV9mZGlyX2NvbmYgZmRpcl9jb25mOyAvKio8IEZESVIgY29u ZmlndXJhdGlvbi4gREVQUkVDQVRFRCAqLwotCXN0cnVjdCBydGVfaW50cl9jb25mIGludHJfY29u ZjsgLyoqPCBJbnRlcnJ1cHQgbW9kZSBjb25maWd1cmF0aW9uLiAqLworCXN0cnVjdCBydGVfZXRo X2ZkaXJfY29uZiBmZGlyX2NvbmY7IC8qKjwgRkRJUiBjb25maWd1cmF0aW9uLiBERVBSRUNBVEVE ICovCisJc3RydWN0IHJ0ZV9ldGhfaW50cl9jb25mIGludHJfY29uZjsgLyoqPCBJbnRlcnJ1cHQg bW9kZSBjb25maWd1cmF0aW9uLiAqLwogfTsKIAogLyoqCiAgKiBSWCBvZmZsb2FkIGNhcGFiaWxp dGllcyBvZiBhIGRldmljZS4KICAqLwotI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ ICAweDAwMDAwMDAxCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIDB4MDAwMDAw MDIKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfVURQX0NLU1VNICAgMHgwMDAwMDAwNAotI2RlZmlu ZSBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICAweDAwMDAwMDA4Ci0jZGVmaW5lIERFVl9SWF9P RkZMT0FEX1RDUF9MUk8gICAgIDB4MDAwMDAwMTAKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfUUlO UV9TVFJJUCAgMHgwMDAwMDAyMAotI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNIDB4MDAwMDAwNDAKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfTUFDU0VDX1NUUklQICAgICAw eDAwMDAwMDgwCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX0hFQURFUl9TUExJVAkweDAwMDAwMTAw Ci0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSCTB4MDAwMDAyMDAKLSNkZWZpbmUg REVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQJMHgwMDAwMDQwMAotI2RlZmluZSBERVZfUlhfT0ZG TE9BRF9TQ0FUVEVSCQkweDAwMDAyMDAwCisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFO X1NUUklQICAweDAwMDAwMDAxCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAJUlRF X0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAKKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gIDB4MDAwMDAwMDIKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTQlS VEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURf VURQX0NLU1VNICAgMHgwMDAwMDAwNAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0J UlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURf VENQX0NLU1VNICAgMHgwMDAwMDAwOAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0J UlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURf VENQX0xSTyAgICAgMHgwMDAwMDAxMAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPCQlS VEVfRVRIX1JYX09GRkxPQURfVENQX0xSTworI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfUUlO UV9TVFJJUCAgMHgwMDAwMDAyMAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQCVJU RV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQCisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9P VVRFUl9JUFY0X0NLU1VNIDB4MDAwMDAwNDAKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfT1VURVJf SVBWNF9DS1NVTQlSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTQorI2RlZmluZSBS VEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQICAgICAweDAwMDAwMDgwCisjZGVmaW5lIERF Vl9SWF9PRkZMT0FEX01BQ1NFQ19TVFJJUAlSVEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQ CisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQJMHgwMDAwMDEwMAorI2Rl ZmluZSBERVZfUlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQJUlRFX0VUSF9SWF9PRkZMT0FEX0hFQURF Ul9TUExJVAorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIJMHgwMDAwMDIw MAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUglSVEVfRVRIX1JYX09GRkxPQURf VkxBTl9GSUxURVIKKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5ECTB4MDAw MDA0MDAKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQJUlRFX0VUSF9SWF9PRkZM T0FEX1ZMQU5fRVhURU5ECisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSCTB4MDAw MDIwMDAKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfU0NBVFRFUgkJUlRFX0VUSF9SWF9PRkZMT0FE X1NDQVRURVIKIC8qKgogICogVGltZXN0YW1wIGlzIHNldCBieSB0aGUgZHJpdmVyIGluIFJURV9N QlVGX0RZTkZJRUxEX1RJTUVTVEFNUF9OQU1FCiAgKiBhbmQgUlRFX01CVUZfRFlORkxBR19SWF9U SU1FU1RBTVBfTkFNRSBpcyBzZXQgaW4gb2xfZmxhZ3MuCiAgKiBUaGUgbWJ1ZiBmaWVsZCBhbmQg ZmxhZyBhcmUgcmVnaXN0ZXJlZCB3aGVuIHRoZSBvZmZsb2FkIGlzIGNvbmZpZ3VyZWQuCiAgKi8K LSNkZWZpbmUgREVWX1JYX09GRkxPQURfVElNRVNUQU1QCTB4MDAwMDQwMDAKLSNkZWZpbmUgREVW X1JYX09GRkxPQURfU0VDVVJJVFkgICAgICAgICAweDAwMDA4MDAwCi0jZGVmaW5lIERFVl9SWF9P RkZMT0FEX0tFRVBfQ1JDCQkweDAwMDEwMDAwCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX1NDVFBf Q0tTVU0JMHgwMDAyMDAwMAotI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0g IDB4MDAwNDAwMDAKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfUlNTX0hBU0gJCTB4MDAwODAwMDAK KyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFNUAkweDAwMDA0MDAwCisjZGVmaW5l IERFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUAlSVEVfRVRIX1JYX09GRkxPQURfVElNRVNUQU1QCisj ZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9TRUNVUklUWSAgICAgMHgwMDAwODAwMAorI2RlZmlu ZSBERVZfUlhfT0ZGTE9BRF9TRUNVUklUWQkJUlRFX0VUSF9SWF9PRkZMT0FEX1NFQ1VSSVRZCisj ZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQwkweDAwMDEwMDAwCisjZGVmaW5lIERF Vl9SWF9PRkZMT0FEX0tFRVBfQ1JDCQlSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMKKyNkZWZp bmUgUlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0JMHgwMDAyMDAwMAorI2RlZmluZSBERVZf UlhfT0ZGTE9BRF9TQ1RQX0NLU1VNCVJURV9FVEhfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNCisjZGVm aW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gIDB4MDAwNDAwMDAKKyNkZWZp bmUgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNCVJURV9FVEhfUlhfT0ZGTE9BRF9PVVRF Ul9VRFBfQ0tTVU0KKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNICTB4MDAwODAw MDAKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfUlNTX0hBU0gJUlRFX0VUSF9SWF9PRkZMT0FEX1JT U19IQVNICiAjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9CVUZGRVJfU1BMSVQgMHgwMDEwMDAw MAogCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNIChERVZfUlhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwgXAotCQkJCSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCi0JCQkJIERFVl9S WF9PRkZMT0FEX1RDUF9DS1NVTSkKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfVkxBTiAoREVWX1JY X09GRkxPQURfVkxBTl9TVFJJUCB8IFwKLQkJCSAgICAgREVWX1JYX09GRkxPQURfVkxBTl9GSUxU RVIgfCBcCi0JCQkgICAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwgXAotCQkJICAgICBE RVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQKQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfQ0hF Q0tTVU0gKFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAorCQkJCSBSVEVfRVRIX1JY X09GRkxPQURfVURQX0NLU1VNIHwgXAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VN KQorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTQlSVEVfRVRIX1JYX09GRkxPQURfQ0hF Q0tTVU0KKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU4gKFJURV9FVEhfUlhfT0ZGTE9B RF9WTEFOX1NUUklQIHwgXAorCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIg fCBcCisJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8IFwKKwkJCSAgICAg UlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVApCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZM QU4JUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU4KIAogLyoKICAqIElmIG5ldyBSeCBvZmZsb2FkIGNh cGFiaWxpdGllcyBhcmUgZGVmaW5lZCwgdGhleSBhbHNvIG11c3QgYmUKCmh0dHBzOi8vbGFiLmRw ZGsub3JnL3Jlc3VsdHMvZGFzaGJvYXJkL3BhdGNoc2V0cy8xOTUxNS8KClVOSC1JT0wgRFBESyBD b21tdW5pdHkgTGFiCg== --===============7113844100621304252==--