Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1njKj9-0000wK-1r for pgsql-hackers@arkaria.postgresql.org; Tue, 26 Apr 2022 12:55:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1njKj7-0005sX-TT for pgsql-hackers@arkaria.postgresql.org; Tue, 26 Apr 2022 12:55:33 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1njKj6-0005sO-RR for pgsql-hackers@lists.postgresql.org; Tue, 26 Apr 2022 12:55:33 +0000 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1njKj3-0006z1-Od for pgsql-hackers@lists.postgresql.org; Tue, 26 Apr 2022 12:55:31 +0000 Received: by mail-lj1-x22e.google.com with SMTP id m23so10994849ljc.0 for ; Tue, 26 Apr 2022 05:55:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=timescale.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UjzJ+K5OfJ1OPwA8mKs+EMxqf45nJ8psx9PCFrr/X6Q=; b=f83xosDefIxU6KYMe88Xrn6v81ZSGXdZuXNMmyxFRL8H4GDBIIaswTloCJvL2NPCl/ R6RmF9lo9BiB2hR/ixiWLrHEDHyOC3POlUyM1lgLgbcOtN60iOAkoaV49U0zU2m9B0YJ jtVm+Aer5/kikReUEdMA1lgVrXQ/d1Vjh+go40+O7mETelJfQO7sVSNnR70FXb5bFsA5 LTCb/a/msV5isdmo8p7Th+QrL2lsTQwLS2UqdTLvlOKUsdo9OniZkSqdXd+EuOfgAYyo O4N1lRx+fK4Ow7FuYAHmcyQRIP2Exc6hdZfbc36ueswfTGtm2KKcKHub/MHcN8+ZqJ8w iytg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UjzJ+K5OfJ1OPwA8mKs+EMxqf45nJ8psx9PCFrr/X6Q=; b=JwBHM4AN1wpJ5qNEjJDoKScKah6Wyp+dD6DKvsVNo0Qs9C63czNHhbcm6GJ2djosOa MaIZ0WMpJTNrpXF1MDSsIKmtrdZpR2TYRSYr3h6FqOLFvuZHlTEadCQysAebkiA4kq6s WiHnN2tEl/CEeZv3+JZUiAyTqvKc8bc6Mk0VvA/oHqkGtFEBghSXvRN7RLFK7BB0XNqy NKDI7RJtsHWTlFiS3JQbXgZ50LluomUrLxPG8bzjZX/vk5zqUrQy5QqZKtsl+Pzagf9o N/EOdsFhTP6QNGtb959nudrVLTcTs1BdFHKru16f/HUhXgteZAkI8j4QDdeARUZkAwOw Qp3A== X-Gm-Message-State: AOAM530clSmvox6Li1pdCwmJjXRhcqSUJhe635LN0uryESo3GQQwL7vH FPj4+8UJrm9VX+0DKzxYWx1UGmXfmT6L0z1Z5Xm9fw== X-Google-Smtp-Source: ABdhPJxZEThT4ENAKGkcKkAXXV8StTDIsPf+w1VJsXRJugjUzXKJNM7sPjCraeCGt7gQuzZw2QowuVAuWYpBgU6i0mg= X-Received: by 2002:a2e:9e87:0:b0:24f:549:4207 with SMTP id f7-20020a2e9e87000000b0024f05494207mr10392275ljk.57.1650977728243; Tue, 26 Apr 2022 05:55:28 -0700 (PDT) MIME-Version: 1.0 References: <131006ee-d309-f77e-7d3e-db8e9d76aeef@enterprisedb.com> <6e24403a-0afb-f053-60b8-3b983266454c@enterprisedb.com> <220fab30-dff0-b055-f803-4338219f1021@enterprisedb.com> In-Reply-To: From: Aleksander Alekseev Date: Tue, 26 Apr 2022 15:55:16 +0300 Message-ID: Subject: Re: XID formatting and SLRU refactorings (was: Add 64-bit XIDs into PostgreSQL 15) To: Maxim Orlov Cc: Postgres hackers , Pavel Borisov , Peter Eisentraut , Japin Li , Alexander Korotkov , Kyotaro Horiguchi , Ilya Anfimov Content-Type: multipart/mixed; boundary="00000000000006543605dd8e35da" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000006543605dd8e35da Content-Type: text/plain; charset="UTF-8" Hi hackers, > here is the rebased v32 version of the patch. The patchset rotted a bit. Here is a rebased version. -- Best regards, Aleksander Alekseev --00000000000006543605dd8e35da Content-Type: application/octet-stream; name="v33-0001-Use-64-bit-numbering-of-SLRU-pages.patch" Content-Disposition: attachment; filename="v33-0001-Use-64-bit-numbering-of-SLRU-pages.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l2g4s83s0 RnJvbSAyN2RjYmRiZDQwNDlkZjllZTc3YzFjZjg1NzE4N2JmYzU0NWFiNDI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogRnJpLCAxMSBNYXIgMjAyMiAxMTozNjozNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjMz IDEvM10gVXNlIDY0LWJpdCBudW1iZXJpbmcgb2YgU0xSVSBwYWdlcy4KCkhhdmluZyA2NC1iaXQg bnVtYmVyaW5nIG9mIFNMUlUgcGFnZXMgaXMgYSByZXF1aXJlbWVudCBmb3IgdXNpbmcgNjQtYml0 IFhJRHMuClRoaXMgaXMgcGFydCBvZiB0cmFuc2l0aW9uIHRvIDY0Yml0IFhJRHMuIEl0IGRvZXMg bm90IGFmZmVjdCBYSUQgbGVuZ3RoIGFuZApmb3JtYXQuCgpBdXRob3I6IEFsZXhhbmRlciBLb3Jv dGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+CkF1dGhvcjogVGVvZG9yIFNpZ2FldiA8dGVvZG9y QHNpZ2Fldi5ydT4KQXV0aG9yOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkF1dGhvcjogTWF4aW0gT3Jsb3YgPG9ybG92bWdAZ21haWwuY29tPgpBdXRob3I6IFBhdmVs IEJvcmlzb3YgPHBhc2hraW4uZWxmZUBnbWFpbC5jb20+CkF1dGhvcjogWXVyYSBTb2tvbG92IDx5 LnNva29sb3ZAcG9zdGdyZXNwcm8ucnU+IDxmdW5ueS5mYWxjb25AZ21haWwuY29tPgpBdXRob3I6 IEFsZWtzYW5kZXIgQWxla3NlZXYgPGFsZWtzYW5kZXJAdGltZXNjYWxlLmNvbT4KUmV2aWV3ZWQt Ynk6IEFsZWtzYW5kZXIgQWxla3NlZXYgPGFsZWtzYW5kZXJAdGltZXNjYWxlLmNvbT4KRGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNHJTNEZXpaZTFOUVNDbmZIT3I3OEF0QVp4Slpl Q3Z4cnRzMHlncnhZd2UlM0RweXlqVldBJTQwbWFpbC5nbWFpbC5jb20KRGlzY3Vzc2lvbjogaHR0 cHM6Ly9wb3N0Z3IuZXMvbS9DQUo3YzZUUERPWUJZcm5DQWV5bmRrQmt0TzBXRzJ4U2RZZHVURjBu eHElMkJ2ZmttVEY1USU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vY2xvZy5jICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29t bWl0X3RzLmMgfCAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMg fCAxMiArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMgICAgICB8IDk4ICsr KysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0 cmFucy5jICB8ICA0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jICAgICAgICAgICB8 IDE4ICsrLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMgICB8IDEwICst LQogc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaCAgICAgICAgICAgICAgfCAyNCArKystLS0tCiBz cmMvaW5jbHVkZS9zdG9yYWdlL3N5bmMuaCAgICAgICAgICAgICB8ICAyICstCiA5IGZpbGVzIGNo YW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL2Nsb2cuYwppbmRleCAzZDkwODhhNzA0Li5lMDNjMTY3YTI3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vY2xvZy5jCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyBTbHJ1Q3RsRGF0YSBYYWN0Q3Rs RGF0YTsKIAogCiBzdGF0aWMgaW50CVplcm9DTE9HUGFnZShpbnQgcGFnZW5vLCBib29sIHdyaXRl WGxvZyk7Ci1zdGF0aWMgYm9vbCBDTE9HUGFnZVByZWNlZGVzKGludCBwYWdlMSwgaW50IHBhZ2Uy KTsKK3N0YXRpYyBib29sIENMT0dQYWdlUHJlY2VkZXMoaW50NjQgcGFnZTEsIGludDY0IHBhZ2Uy KTsKIHN0YXRpYyB2b2lkIFdyaXRlWmVyb1BhZ2VYbG9nUmVjKGludCBwYWdlbm8pOwogc3RhdGlj IHZvaWQgV3JpdGVUcnVuY2F0ZVhsb2dSZWMoaW50IHBhZ2VubywgVHJhbnNhY3Rpb25JZCBvbGRl c3RYYWN0LAogCQkJCQkJCQkgT2lkIG9sZGVzdFhhY3REYik7CkBAIC05MzIsNyArOTMyLDcgQEAg VHJ1bmNhdGVDTE9HKFRyYW5zYWN0aW9uSWQgb2xkZXN0WGFjdCwgT2lkIG9sZGVzdHhpZF9kYXRv aWQpCiAgKiBkb24ndCBvcHRpbWl6ZSB0aGF0IGVkZ2UgY2FzZS4KICAqLwogc3RhdGljIGJvb2wK LUNMT0dQYWdlUHJlY2VkZXMoaW50IHBhZ2UxLCBpbnQgcGFnZTIpCitDTE9HUGFnZVByZWNlZGVz KGludDY0IHBhZ2UxLCBpbnQ2NCBwYWdlMikKIHsKIAlUcmFuc2FjdGlvbklkIHhpZDE7CiAJVHJh bnNhY3Rpb25JZCB4aWQyOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v Y29tbWl0X3RzLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYwppbmRl eCAyMDk1MGViMWU0Li43NmRmZDJiMTNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS9jb21taXRfdHMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21t aXRfdHMuYwpAQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyB2b2lkIFRyYW5zYWN0aW9uSWRTZXRD b21taXRUcyhUcmFuc2FjdGlvbklkIHhpZCwgVGltZXN0YW1wVHogdHMsCiAJCQkJCQkJCQkgUmVw T3JpZ2luSWQgbm9kZWlkLCBpbnQgc2xvdG5vKTsKIHN0YXRpYyB2b2lkIGVycm9yX2NvbW1pdF90 c19kaXNhYmxlZCh2b2lkKTsKIHN0YXRpYyBpbnQJWmVyb0NvbW1pdFRzUGFnZShpbnQgcGFnZW5v LCBib29sIHdyaXRlWGxvZyk7Ci1zdGF0aWMgYm9vbCBDb21taXRUc1BhZ2VQcmVjZWRlcyhpbnQg cGFnZTEsIGludCBwYWdlMik7CitzdGF0aWMgYm9vbCBDb21taXRUc1BhZ2VQcmVjZWRlcyhpbnQ2 NCBwYWdlMSwgaW50NjQgcGFnZTIpOwogc3RhdGljIHZvaWQgQWN0aXZhdGVDb21taXRUcyh2b2lk KTsKIHN0YXRpYyB2b2lkIERlYWN0aXZhdGVDb21taXRUcyh2b2lkKTsKIHN0YXRpYyB2b2lkIFdy aXRlWmVyb1BhZ2VYbG9nUmVjKGludCBwYWdlbm8pOwpAQCAtOTM5LDcgKzkzOSw3IEBAIEFkdmFu Y2VPbGRlc3RDb21taXRUc1hpZChUcmFuc2FjdGlvbklkIG9sZGVzdFhhY3QpCiAgKiBvbGRlc3RY YWN0PU4rMi4xLCBpdCB3b3VsZCBiZSBwcmVjaW91cyBhdCBvbGRlc3RYYWN0PU4rMi45LgogICov CiBzdGF0aWMgYm9vbAotQ29tbWl0VHNQYWdlUHJlY2VkZXMoaW50IHBhZ2UxLCBpbnQgcGFnZTIp CitDb21taXRUc1BhZ2VQcmVjZWRlcyhpbnQ2NCBwYWdlMSwgaW50NjQgcGFnZTIpCiB7CiAJVHJh bnNhY3Rpb25JZCB4aWQxOwogCVRyYW5zYWN0aW9uSWQgeGlkMjsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vbXVsdGl4YWN0LmMKaW5kZXggOGY3ZDEyOTUwZS4uNjlmZjJkMTExYiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTM1NSw4ICszNTUsOCBAQCBzdGF0aWMg Y2hhciAqbXhzdGF0dXNfdG9fc3RyaW5nKE11bHRpWGFjdFN0YXR1cyBzdGF0dXMpOwogLyogbWFu YWdlbWVudCBvZiBTTFJVIGluZnJhc3RydWN0dXJlICovCiBzdGF0aWMgaW50CVplcm9NdWx0aVhh Y3RPZmZzZXRQYWdlKGludCBwYWdlbm8sIGJvb2wgd3JpdGVYbG9nKTsKIHN0YXRpYyBpbnQJWmVy b011bHRpWGFjdE1lbWJlclBhZ2UoaW50IHBhZ2VubywgYm9vbCB3cml0ZVhsb2cpOwotc3RhdGlj IGJvb2wgTXVsdGlYYWN0T2Zmc2V0UGFnZVByZWNlZGVzKGludCBwYWdlMSwgaW50IHBhZ2UyKTsK LXN0YXRpYyBib29sIE11bHRpWGFjdE1lbWJlclBhZ2VQcmVjZWRlcyhpbnQgcGFnZTEsIGludCBw YWdlMik7CitzdGF0aWMgYm9vbCBNdWx0aVhhY3RPZmZzZXRQYWdlUHJlY2VkZXMoaW50NjQgcGFn ZTEsIGludDY0IHBhZ2UyKTsKK3N0YXRpYyBib29sIE11bHRpWGFjdE1lbWJlclBhZ2VQcmVjZWRl cyhpbnQ2NCBwYWdlMSwgaW50NjQgcGFnZTIpOwogc3RhdGljIGJvb2wgTXVsdGlYYWN0T2Zmc2V0 UHJlY2VkZXMoTXVsdGlYYWN0T2Zmc2V0IG9mZnNldDEsCiAJCQkJCQkJCQlNdWx0aVhhY3RPZmZz ZXQgb2Zmc2V0Mik7CiBzdGF0aWMgdm9pZCBFeHRlbmRNdWx0aVhhY3RPZmZzZXQoTXVsdGlYYWN0 SWQgbXVsdGkpOwpAQCAtMjg1Nyw3ICsyODU3LDcgQEAgTXVsdGlYYWN0TWVtYmVyRnJlZXplVGhy ZXNob2xkKHZvaWQpCiAKIHR5cGVkZWYgc3RydWN0IG14dHJ1bmNpbmZvCiB7Ci0JaW50CQkJZWFy bGllc3RFeGlzdGluZ1BhZ2U7CisJaW50NjQJCWVhcmxpZXN0RXhpc3RpbmdQYWdlOwogfSBteHRy dW5jaW5mbzsKIAogLyoKQEAgLTI4NjUsNyArMjg2NSw3IEBAIHR5cGVkZWYgc3RydWN0IG14dHJ1 bmNpbmZvCiAgKgkJVGhpcyBjYWxsYmFjayBkZXRlcm1pbmVzIHRoZSBlYXJsaWVzdCBleGlzdGlu ZyBwYWdlIG51bWJlci4KICAqLwogc3RhdGljIGJvb2wKLVNscnVTY2FuRGlyQ2JGaW5kRWFybGll c3QoU2xydUN0bCBjdGwsIGNoYXIgKmZpbGVuYW1lLCBpbnQgc2VncGFnZSwgdm9pZCAqZGF0YSkK K1NscnVTY2FuRGlyQ2JGaW5kRWFybGllc3QoU2xydUN0bCBjdGwsIGNoYXIgKmZpbGVuYW1lLCBp bnQ2NCBzZWdwYWdlLCB2b2lkICpkYXRhKQogewogCW14dHJ1bmNpbmZvICp0cnVuYyA9IChteHRy dW5jaW5mbyAqKSBkYXRhOwogCkBAIC0zMTE2LDcgKzMxMTYsNyBAQCBUcnVuY2F0ZU11bHRpWGFj dChNdWx0aVhhY3RJZCBuZXdPbGRlc3RNdWx0aSwgT2lkIG5ld09sZGVzdE11bHRpREIpCiAgKiB0 cmFuc2xhdGlvbmFsIHN5bW1ldHJ5LgogICovCiBzdGF0aWMgYm9vbAotTXVsdGlYYWN0T2Zmc2V0 UGFnZVByZWNlZGVzKGludCBwYWdlMSwgaW50IHBhZ2UyKQorTXVsdGlYYWN0T2Zmc2V0UGFnZVBy ZWNlZGVzKGludDY0IHBhZ2UxLCBpbnQ2NCBwYWdlMikKIHsKIAlNdWx0aVhhY3RJZCBtdWx0aTE7 CiAJTXVsdGlYYWN0SWQgbXVsdGkyOwpAQCAtMzEzNiw3ICszMTM2LDcgQEAgTXVsdGlYYWN0T2Zm c2V0UGFnZVByZWNlZGVzKGludCBwYWdlMSwgaW50IHBhZ2UyKQogICogcHVycG9zZXMuICBUaGVy ZSBpcyBubyAiaW52YWxpZCBvZmZzZXQgbnVtYmVyIiBzbyB1c2UgdGhlIG51bWJlcnMgdmVyYmF0 aW0uCiAgKi8KIHN0YXRpYyBib29sCi1NdWx0aVhhY3RNZW1iZXJQYWdlUHJlY2VkZXMoaW50IHBh Z2UxLCBpbnQgcGFnZTIpCitNdWx0aVhhY3RNZW1iZXJQYWdlUHJlY2VkZXMoaW50NjQgcGFnZTEs IGludDY0IHBhZ2UyKQogewogCU11bHRpWGFjdE9mZnNldCBvZmZzZXQxOwogCU11bHRpWGFjdE9m ZnNldCBvZmZzZXQyOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xy dS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jCmluZGV4IGI2NWNiNDlkN2Yu LmZhZjU2MWYyMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMKQEAgLTYwLDggKzYwLDE1 IEBACiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIK IAotI2RlZmluZSBTbHJ1RmlsZU5hbWUoY3RsLCBwYXRoLCBzZWcpIFwKLQlzbnByaW50ZihwYXRo LCBNQVhQR1BBVEgsICIlcy8lMDRYIiwgKGN0bCktPkRpciwgc2VnKQorc3RhdGljIGludCBpbmxp bmUKK1NscnVGaWxlTmFtZShTbHJ1Q3RsIGN0bCwgY2hhciAqcGF0aCwgaW50NjQgc2Vnbm8pCit7 CisJLyoKKwkgKiBTaW5jZSB3ZSBkbyBub3QgaGF2ZSA2NCBiaXQgWElEcyB5ZXQsIG1ha2Ugc3Vy ZSBoYXZlIG5vIG92ZXJmbG93IGhlcmUuCisJICovCisJQXNzZXJ0KHNlZ25vIDw9IFBHX0lOVDMy X01BWCk7CisJcmV0dXJuIHNucHJpbnRmKHBhdGgsIE1BWFBHUEFUSCwgIiVzLyUwNFgiLCBjdGwt PkRpciwgKGludCkgc2Vnbm8pOworfQogCiAvKgogICogRHVyaW5nIFNpbXBsZUxydVdyaXRlQWxs KCksIHdlIHdpbGwgdXN1YWxseSBub3QgbmVlZCB0byB3cml0ZSBtb3JlIHRoYW4gb25lCkBAIC03 NSw3ICs4Miw3IEBAIHR5cGVkZWYgc3RydWN0IFNscnVXcml0ZUFsbERhdGEKIHsKIAlpbnQJCQlu dW1fZmlsZXM7CQkvKiAjIGZpbGVzIGFjdHVhbGx5IG9wZW4gKi8KIAlpbnQJCQlmZFtNQVhfV1JJ VEVBTExfQlVGRkVSU107CS8qIHRoZWlyIEZEJ3MgKi8KLQlpbnQJCQlzZWdub1tNQVhfV1JJVEVB TExfQlVGRkVSU107CS8qIHRoZWlyIGxvZyBzZWcjcyAqLworCWludDY0CQlzZWdub1tNQVhfV1JJ VEVBTExfQlVGRkVSU107CS8qIHRoZWlyIGxvZyBzZWcjcyAqLwogfSBTbHJ1V3JpdGVBbGxEYXRh OwogCiB0eXBlZGVmIHN0cnVjdCBTbHJ1V3JpdGVBbGxEYXRhICpTbHJ1V3JpdGVBbGw7CkBAIC0x MzgsMjAgKzE0NSwyMCBAQCBzdGF0aWMgaW50CXNscnVfZXJybm87CiBzdGF0aWMgdm9pZCBTaW1w bGVMcnVaZXJvTFNOcyhTbHJ1Q3RsIGN0bCwgaW50IHNsb3Rubyk7CiBzdGF0aWMgdm9pZCBTaW1w bGVMcnVXYWl0SU8oU2xydUN0bCBjdGwsIGludCBzbG90bm8pOwogc3RhdGljIHZvaWQgU2xydUlu dGVybmFsV3JpdGVQYWdlKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5vLCBTbHJ1V3JpdGVBbGwgZmRh dGEpOwotc3RhdGljIGJvb2wgU2xydVBoeXNpY2FsUmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludCBw YWdlbm8sIGludCBzbG90bm8pOwotc3RhdGljIGJvb2wgU2xydVBoeXNpY2FsV3JpdGVQYWdlKFNs cnVDdGwgY3RsLCBpbnQgcGFnZW5vLCBpbnQgc2xvdG5vLAorc3RhdGljIGJvb2wgU2xydVBoeXNp Y2FsUmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgaW50IHNsb3Rubyk7CitzdGF0 aWMgYm9vbCBTbHJ1UGh5c2ljYWxXcml0ZVBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2Vubywg aW50IHNsb3RubywKIAkJCQkJCQkJICBTbHJ1V3JpdGVBbGwgZmRhdGEpOwotc3RhdGljIHZvaWQg U2xydVJlcG9ydElPRXJyb3IoU2xydUN0bCBjdGwsIGludCBwYWdlbm8sIFRyYW5zYWN0aW9uSWQg eGlkKTsKLXN0YXRpYyBpbnQJU2xydVNlbGVjdExSVVBhZ2UoU2xydUN0bCBjdGwsIGludCBwYWdl bm8pOworc3RhdGljIHZvaWQgU2xydVJlcG9ydElPRXJyb3IoU2xydUN0bCBjdGwsIGludDY0IHBh Z2VubywgVHJhbnNhY3Rpb25JZCB4aWQpOworc3RhdGljIGludAlTbHJ1U2VsZWN0TFJVUGFnZShT bHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vKTsKIAogc3RhdGljIGJvb2wgU2xydVNjYW5EaXJDYkRl bGV0ZUN1dG9mZihTbHJ1Q3RsIGN0bCwgY2hhciAqZmlsZW5hbWUsCi0JCQkJCQkJCQkgIGludCBz ZWdwYWdlLCB2b2lkICpkYXRhKTsKLXN0YXRpYyB2b2lkIFNscnVJbnRlcm5hbERlbGV0ZVNlZ21l bnQoU2xydUN0bCBjdGwsIGludCBzZWdubyk7CisJCQkJCQkJCQkgIGludDY0IHNlZ3BhZ2UsIHZv aWQgKmRhdGEpOworc3RhdGljIHZvaWQgU2xydUludGVybmFsRGVsZXRlU2VnbWVudChTbHJ1Q3Rs IGN0bCwgaW50NjQgc2Vnbm8pOworCiAKIC8qCiAgKiBJbml0aWFsaXphdGlvbiBvZiBzaGFyZWQg bWVtb3J5CiAgKi8KLQogU2l6ZQogU2ltcGxlTHJ1U2htZW1TaXplKGludCBuc2xvdHMsIGludCBu bHNucykKIHsKQEAgLTE2Miw3ICsxNjksNyBAQCBTaW1wbGVMcnVTaG1lbVNpemUoaW50IG5zbG90 cywgaW50IG5sc25zKQogCXN6ICs9IE1BWEFMSUdOKG5zbG90cyAqIHNpemVvZihjaGFyICopKTsJ LyogcGFnZV9idWZmZXJbXSAqLwogCXN6ICs9IE1BWEFMSUdOKG5zbG90cyAqIHNpemVvZihTbHJ1 UGFnZVN0YXR1cykpOwkvKiBwYWdlX3N0YXR1c1tdICovCiAJc3ogKz0gTUFYQUxJR04obnNsb3Rz ICogc2l6ZW9mKGJvb2wpKTsJLyogcGFnZV9kaXJ0eVtdICovCi0Jc3ogKz0gTUFYQUxJR04obnNs b3RzICogc2l6ZW9mKGludCkpOwkvKiBwYWdlX251bWJlcltdICovCisJc3ogKz0gTUFYQUxJR04o bnNsb3RzICogc2l6ZW9mKGludDY0KSk7CS8qIHBhZ2VfbnVtYmVyW10gKi8KIAlzeiArPSBNQVhB TElHTihuc2xvdHMgKiBzaXplb2YoaW50KSk7CS8qIHBhZ2VfbHJ1X2NvdW50W10gKi8KIAlzeiAr PSBNQVhBTElHTihuc2xvdHMgKiBzaXplb2YoTFdMb2NrUGFkZGVkKSk7CS8qIGJ1ZmZlcl9sb2Nr c1tdICovCiAKQEAgLTIyNSw4ICsyMzIsOCBAQCBTaW1wbGVMcnVJbml0KFNscnVDdGwgY3RsLCBj b25zdCBjaGFyICpuYW1lLCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMsCiAJCW9mZnNldCArPSBNQVhB TElHTihuc2xvdHMgKiBzaXplb2YoU2xydVBhZ2VTdGF0dXMpKTsKIAkJc2hhcmVkLT5wYWdlX2Rp cnR5ID0gKGJvb2wgKikgKHB0ciArIG9mZnNldCk7CiAJCW9mZnNldCArPSBNQVhBTElHTihuc2xv dHMgKiBzaXplb2YoYm9vbCkpOwotCQlzaGFyZWQtPnBhZ2VfbnVtYmVyID0gKGludCAqKSAocHRy ICsgb2Zmc2V0KTsKLQkJb2Zmc2V0ICs9IE1BWEFMSUdOKG5zbG90cyAqIHNpemVvZihpbnQpKTsK KwkJc2hhcmVkLT5wYWdlX251bWJlciA9IChpbnQ2NCAqKSAocHRyICsgb2Zmc2V0KTsKKwkJb2Zm c2V0ICs9IE1BWEFMSUdOKG5zbG90cyAqIHNpemVvZihpbnQ2NCkpOwogCQlzaGFyZWQtPnBhZ2Vf bHJ1X2NvdW50ID0gKGludCAqKSAocHRyICsgb2Zmc2V0KTsKIAkJb2Zmc2V0ICs9IE1BWEFMSUdO KG5zbG90cyAqIHNpemVvZihpbnQpKTsKIApAQCAtMjc3LDcgKzI4NCw3IEBAIFNpbXBsZUxydUlu aXQoU2xydUN0bCBjdGwsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuc2xvdHMsIGludCBubHNucywK ICAqIENvbnRyb2wgbG9jayBtdXN0IGJlIGhlbGQgYXQgZW50cnksIGFuZCB3aWxsIGJlIGhlbGQg YXQgZXhpdC4KICAqLwogaW50Ci1TaW1wbGVMcnVaZXJvUGFnZShTbHJ1Q3RsIGN0bCwgaW50IHBh Z2VubykKK1NpbXBsZUxydVplcm9QYWdlKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8pCiB7CiAJ U2xydVNoYXJlZAlzaGFyZWQgPSBjdGwtPnNoYXJlZDsKIAlpbnQJCQlzbG90bm87CkBAIC0zOTIs NyArMzk5LDcgQEAgU2ltcGxlTHJ1V2FpdElPKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5vKQogICog Q29udHJvbCBsb2NrIG11c3QgYmUgaGVsZCBhdCBlbnRyeSwgYW5kIHdpbGwgYmUgaGVsZCBhdCBl eGl0LgogICovCiBpbnQKLVNpbXBsZUxydVJlYWRQYWdlKFNscnVDdGwgY3RsLCBpbnQgcGFnZW5v LCBib29sIHdyaXRlX29rLAorU2ltcGxlTHJ1UmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBh Z2VubywgYm9vbCB3cml0ZV9vaywKIAkJCQkgIFRyYW5zYWN0aW9uSWQgeGlkKQogewogCVNscnVT aGFyZWQJc2hhcmVkID0gY3RsLT5zaGFyZWQ7CkBAIC00OTIsNyArNDk5LDcgQEAgU2ltcGxlTHJ1 UmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludCBwYWdlbm8sIGJvb2wgd3JpdGVfb2ssCiAgKiBJdCBp cyB1bnNwZWNpZmllZCB3aGV0aGVyIHRoZSBsb2NrIHdpbGwgYmUgc2hhcmVkIG9yIGV4Y2x1c2l2 ZS4KICAqLwogaW50Ci1TaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seShTbHJ1Q3RsIGN0bCwgaW50 IHBhZ2VubywgVHJhbnNhY3Rpb25JZCB4aWQpCitTaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seShT bHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vLCBUcmFuc2FjdGlvbklkIHhpZCkKIHsKIAlTbHJ1U2hh cmVkCXNoYXJlZCA9IGN0bC0+c2hhcmVkOwogCWludAkJCXNsb3RubzsKQEAgLTUzOSw3ICs1NDYs NyBAQCBzdGF0aWMgdm9pZAogU2xydUludGVybmFsV3JpdGVQYWdlKFNscnVDdGwgY3RsLCBpbnQg c2xvdG5vLCBTbHJ1V3JpdGVBbGwgZmRhdGEpCiB7CiAJU2xydVNoYXJlZAlzaGFyZWQgPSBjdGwt PnNoYXJlZDsKLQlpbnQJCQlwYWdlbm8gPSBzaGFyZWQtPnBhZ2VfbnVtYmVyW3Nsb3Rub107CisJ aW50NjQJCXBhZ2VubyA9IHNoYXJlZC0+cGFnZV9udW1iZXJbc2xvdG5vXTsKIAlib29sCQlvazsK IAogCS8qIElmIGEgd3JpdGUgaXMgaW4gcHJvZ3Jlc3MsIHdhaXQgZm9yIGl0IHRvIGZpbmlzaCAq LwpAQCAtNjIzLDkgKzYzMCw5IEBAIFNpbXBsZUxydVdyaXRlUGFnZShTbHJ1Q3RsIGN0bCwgaW50 IHNsb3RubykKICAqIGxhcmdlIGVub3VnaCB0byBjb250YWluIHRoZSBnaXZlbiBwYWdlLgogICov CiBib29sCi1TaW1wbGVMcnVEb2VzUGh5c2ljYWxQYWdlRXhpc3QoU2xydUN0bCBjdGwsIGludCBw YWdlbm8pCitTaW1wbGVMcnVEb2VzUGh5c2ljYWxQYWdlRXhpc3QoU2xydUN0bCBjdGwsIGludDY0 IHBhZ2VubykKIHsKLQlpbnQJCQlzZWdubyA9IHBhZ2VubyAvIFNMUlVfUEFHRVNfUEVSX1NFR01F TlQ7CisJaW50NjQJCXNlZ25vID0gcGFnZW5vIC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKIAlp bnQJCQlycGFnZW5vID0gcGFnZW5vICUgU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKIAlpbnQJCQlv ZmZzZXQgPSBycGFnZW5vICogQkxDS1NaOwogCWNoYXIJCXBhdGhbTUFYUEdQQVRIXTsKQEAgLTY4 MSwxMCArNjg4LDEwIEBAIFNpbXBsZUxydURvZXNQaHlzaWNhbFBhZ2VFeGlzdChTbHJ1Q3RsIGN0 bCwgaW50IHBhZ2VubykKICAqIHJlYWQvd3JpdGUgb3BlcmF0aW9ucy4gIFdlIGNvdWxkIGNhY2hl IG9uZSB2aXJ0dWFsIGZpbGUgcG9pbnRlciAuLi4KICAqLwogc3RhdGljIGJvb2wKLVNscnVQaHlz aWNhbFJlYWRQYWdlKFNscnVDdGwgY3RsLCBpbnQgcGFnZW5vLCBpbnQgc2xvdG5vKQorU2xydVBo eXNpY2FsUmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgaW50IHNsb3RubykKIHsK IAlTbHJ1U2hhcmVkCXNoYXJlZCA9IGN0bC0+c2hhcmVkOwotCWludAkJCXNlZ25vID0gcGFnZW5v IC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKKwlpbnQ2NAkJc2Vnbm8gPSBwYWdlbm8gLyBTTFJV X1BBR0VTX1BFUl9TRUdNRU5UOwogCWludAkJCXJwYWdlbm8gPSBwYWdlbm8gJSBTTFJVX1BBR0VT X1BFUl9TRUdNRU5UOwogCW9mZl90CQlvZmZzZXQgPSBycGFnZW5vICogQkxDS1NaOwogCWNoYXIJ CXBhdGhbTUFYUEdQQVRIXTsKQEAgLTc1MywxMCArNzYwLDEwIEBAIFNscnVQaHlzaWNhbFJlYWRQ YWdlKFNscnVDdGwgY3RsLCBpbnQgcGFnZW5vLCBpbnQgc2xvdG5vKQogICogU2ltcGxlTHJ1V3Jp dGVBbGwuCiAgKi8KIHN0YXRpYyBib29sCi1TbHJ1UGh5c2ljYWxXcml0ZVBhZ2UoU2xydUN0bCBj dGwsIGludCBwYWdlbm8sIGludCBzbG90bm8sIFNscnVXcml0ZUFsbCBmZGF0YSkKK1NscnVQaHlz aWNhbFdyaXRlUGFnZShTbHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vLCBpbnQgc2xvdG5vLCBTbHJ1 V3JpdGVBbGwgZmRhdGEpCiB7CiAJU2xydVNoYXJlZAlzaGFyZWQgPSBjdGwtPnNoYXJlZDsKLQlp bnQJCQlzZWdubyA9IHBhZ2VubyAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQ7CisJaW50NjQJCXNl Z25vID0gcGFnZW5vIC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKIAlpbnQJCQlycGFnZW5vID0g cGFnZW5vICUgU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKIAlvZmZfdAkJb2Zmc2V0ID0gcnBhZ2Vu byAqIEJMQ0tTWjsKIAljaGFyCQlwYXRoW01BWFBHUEFUSF07CkBAIC05MjgsOSArOTM1LDkgQEAg U2xydVBoeXNpY2FsV3JpdGVQYWdlKFNscnVDdGwgY3RsLCBpbnQgcGFnZW5vLCBpbnQgc2xvdG5v LCBTbHJ1V3JpdGVBbGwgZmRhdGEpCiAgKiBTbHJ1UGh5c2ljYWxXcml0ZVBhZ2UuICBDYWxsIHRo aXMgYWZ0ZXIgY2xlYW5pbmcgdXAgc2hhcmVkLW1lbW9yeSBzdGF0ZS4KICAqLwogc3RhdGljIHZv aWQKLVNscnVSZXBvcnRJT0Vycm9yKFNscnVDdGwgY3RsLCBpbnQgcGFnZW5vLCBUcmFuc2FjdGlv bklkIHhpZCkKK1NscnVSZXBvcnRJT0Vycm9yKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8sIFRy YW5zYWN0aW9uSWQgeGlkKQogewotCWludAkJCXNlZ25vID0gcGFnZW5vIC8gU0xSVV9QQUdFU19Q RVJfU0VHTUVOVDsKKwlpbnQ2NAkJc2Vnbm8gPSBwYWdlbm8gLyBTTFJVX1BBR0VTX1BFUl9TRUdN RU5UOwogCWludAkJCXJwYWdlbm8gPSBwYWdlbm8gJSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UOwog CWludAkJCW9mZnNldCA9IHJwYWdlbm8gKiBCTENLU1o7CiAJY2hhcgkJcGF0aFtNQVhQR1BBVEhd OwpAQCAtOTYyLDcgKzk2OSw4IEBAIFNscnVSZXBvcnRJT0Vycm9yKFNscnVDdGwgY3RsLCBpbnQg cGFnZW5vLCBUcmFuc2FjdGlvbklkIHhpZCkKIAkJCWVsc2UKIAkJCQllcmVwb3J0KEVSUk9SLAog CQkJCQkJKGVycm1zZygiY291bGQgbm90IGFjY2VzcyBzdGF0dXMgb2YgdHJhbnNhY3Rpb24gJXUi LCB4aWQpLAotCQkJCQkJIGVycmRldGFpbCgiQ291bGQgbm90IHJlYWQgZnJvbSBmaWxlIFwiJXNc IiBhdCBvZmZzZXQgJWQ6IHJlYWQgdG9vIGZldyBieXRlcy4iLCBwYXRoLCBvZmZzZXQpKSk7CisJ CQkJCQkgZXJyZGV0YWlsKCJDb3VsZCBub3QgcmVhZCBmcm9tIGZpbGUgXCIlc1wiIGF0IG9mZnNl dCAlZDogcmVhZCB0b28gZmV3IGJ5dGVzLiIsCisJCQkJCQkJCSAgIHBhdGgsIG9mZnNldCkpKTsK IAkJCWJyZWFrOwogCQljYXNlIFNMUlVfV1JJVEVfRkFJTEVEOgogCQkJaWYgKGVycm5vKQpAQCAt MTAxMyw3ICsxMDIxLDcgQEAgU2xydVJlcG9ydElPRXJyb3IoU2xydUN0bCBjdGwsIGludCBwYWdl bm8sIFRyYW5zYWN0aW9uSWQgeGlkKQogICogQ29udHJvbCBsb2NrIG11c3QgYmUgaGVsZCBhdCBl bnRyeSwgYW5kIHdpbGwgYmUgaGVsZCBhdCBleGl0LgogICovCiBzdGF0aWMgaW50Ci1TbHJ1U2Vs ZWN0TFJVUGFnZShTbHJ1Q3RsIGN0bCwgaW50IHBhZ2VubykKK1NscnVTZWxlY3RMUlVQYWdlKFNs cnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8pCiB7CiAJU2xydVNoYXJlZAlzaGFyZWQgPSBjdGwtPnNo YXJlZDsKIApAQCAtMTAyNCwxMCArMTAzMiwxMCBAQCBTbHJ1U2VsZWN0TFJVUGFnZShTbHJ1Q3Rs IGN0bCwgaW50IHBhZ2VubykKIAkJaW50CQkJY3VyX2NvdW50OwogCQlpbnQJCQliZXN0dmFsaWRz bG90ID0gMDsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwogCQlpbnQJCQliZXN0X3ZhbGlkX2Rl bHRhID0gLTE7Ci0JCWludAkJCWJlc3RfdmFsaWRfcGFnZV9udW1iZXIgPSAwOyAvKiBrZWVwIGNv bXBpbGVyIHF1aWV0ICovCisJCWludDY0CQliZXN0X3ZhbGlkX3BhZ2VfbnVtYmVyID0gMDsgLyog a2VlcCBjb21waWxlciBxdWlldCAqLwogCQlpbnQJCQliZXN0aW52YWxpZHNsb3QgPSAwOwkvKiBr ZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCWludAkJCWJlc3RfaW52YWxpZF9kZWx0YSA9IC0xOwot CQlpbnQJCQliZXN0X2ludmFsaWRfcGFnZV9udW1iZXIgPSAwOwkvKiBrZWVwIGNvbXBpbGVyIHF1 aWV0ICovCisJCWludDY0CQliZXN0X2ludmFsaWRfcGFnZV9udW1iZXIgPSAwOwkvKiBrZWVwIGNv bXBpbGVyIHF1aWV0ICovCiAKIAkJLyogU2VlIGlmIHBhZ2UgYWxyZWFkeSBoYXMgYSBidWZmZXIg YXNzaWduZWQgKi8KIAkJZm9yIChzbG90bm8gPSAwOyBzbG90bm8gPCBzaGFyZWQtPm51bV9zbG90 czsgc2xvdG5vKyspCkBAIC0xMDY4LDcgKzEwNzYsNyBAQCBTbHJ1U2VsZWN0TFJVUGFnZShTbHJ1 Q3RsIGN0bCwgaW50IHBhZ2VubykKIAkJZm9yIChzbG90bm8gPSAwOyBzbG90bm8gPCBzaGFyZWQt Pm51bV9zbG90czsgc2xvdG5vKyspCiAJCXsKIAkJCWludAkJCXRoaXNfZGVsdGE7Ci0JCQlpbnQJ CQl0aGlzX3BhZ2VfbnVtYmVyOworCQkJaW50NjQJCXRoaXNfcGFnZV9udW1iZXI7CiAKIAkJCWlm IChzaGFyZWQtPnBhZ2Vfc3RhdHVzW3Nsb3Rub10gPT0gU0xSVV9QQUdFX0VNUFRZKQogCQkJCXJl dHVybiBzbG90bm87CkBAIC0xMTU4LDcgKzExNjYsNyBAQCBTaW1wbGVMcnVXcml0ZUFsbChTbHJ1 Q3RsIGN0bCwgYm9vbCBhbGxvd19yZWRpcnRpZWQpCiAJU2xydVNoYXJlZAlzaGFyZWQgPSBjdGwt PnNoYXJlZDsKIAlTbHJ1V3JpdGVBbGxEYXRhIGZkYXRhOwogCWludAkJCXNsb3RubzsKLQlpbnQJ CQlwYWdlbm8gPSAwOworCWludDY0CQlwYWdlbm8gPSAwOwogCWludAkJCWk7CiAJYm9vbAkJb2s7 CiAKQEAgLTEyMjMsNyArMTIzMSw3IEBAIFNpbXBsZUxydVdyaXRlQWxsKFNscnVDdGwgY3RsLCBi b29sIGFsbG93X3JlZGlydGllZCkKICAqIGFmdGVyIGl0IGhhcyBhY2NydWVkIGZyZXNobHktd3Jp dHRlbiBkYXRhLgogICovCiB2b2lkCi1TaW1wbGVMcnVUcnVuY2F0ZShTbHJ1Q3RsIGN0bCwgaW50 IGN1dG9mZlBhZ2UpCitTaW1wbGVMcnVUcnVuY2F0ZShTbHJ1Q3RsIGN0bCwgaW50NjQgY3V0b2Zm UGFnZSkKIHsKIAlTbHJ1U2hhcmVkCXNoYXJlZCA9IGN0bC0+c2hhcmVkOwogCWludAkJCXNsb3Ru bzsKQEAgLTEzMDEsNyArMTMwOSw3IEBAIHJlc3RhcnQ6OwogICogdGhleSBlaXRoZXIgY2FuJ3Qg eWV0IGNvbnRhaW4gYW55dGhpbmcsIG9yIGhhdmUgYWxyZWFkeSBiZWVuIGNsZWFuZWQgb3V0Lgog ICovCiBzdGF0aWMgdm9pZAotU2xydUludGVybmFsRGVsZXRlU2VnbWVudChTbHJ1Q3RsIGN0bCwg aW50IHNlZ25vKQorU2xydUludGVybmFsRGVsZXRlU2VnbWVudChTbHJ1Q3RsIGN0bCwgaW50NjQg c2Vnbm8pCiB7CiAJY2hhcgkJcGF0aFtNQVhQR1BBVEhdOwogCkBAIC0xMzI0LDcgKzEzMzIsNyBA QCBTbHJ1SW50ZXJuYWxEZWxldGVTZWdtZW50KFNscnVDdGwgY3RsLCBpbnQgc2Vnbm8pCiAgKiBE ZWxldGUgYW4gaW5kaXZpZHVhbCBTTFJVIHNlZ21lbnQsIGlkZW50aWZpZWQgYnkgdGhlIHNlZ21l bnQgbnVtYmVyLgogICovCiB2b2lkCi1TbHJ1RGVsZXRlU2VnbWVudChTbHJ1Q3RsIGN0bCwgaW50 IHNlZ25vKQorU2xydURlbGV0ZVNlZ21lbnQoU2xydUN0bCBjdGwsIGludDY0IHNlZ25vKQogewog CVNscnVTaGFyZWQJc2hhcmVkID0gY3RsLT5zaGFyZWQ7CiAJaW50CQkJc2xvdG5vOwpAQCAtMTM4 OCw5ICsxMzk2LDkgQEAgcmVzdGFydDoKICAqIGZpcnN0Pj1jdXRvZmYgJiYgbGFzdD49Y3V0b2Zm OiBubzsgZXZlcnkgcGFnZSBvZiB0aGlzIHNlZ21lbnQgaXMgdG9vIHlvdW5nCiAgKi8KIHN0YXRp YyBib29sCi1TbHJ1TWF5RGVsZXRlU2VnbWVudChTbHJ1Q3RsIGN0bCwgaW50IHNlZ3BhZ2UsIGlu dCBjdXRvZmZQYWdlKQorU2xydU1heURlbGV0ZVNlZ21lbnQoU2xydUN0bCBjdGwsIGludDY0IHNl Z3BhZ2UsIGludDY0IGN1dG9mZlBhZ2UpCiB7Ci0JaW50CQkJc2VnX2xhc3RfcGFnZSA9IHNlZ3Bh Z2UgKyBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UIC0gMTsKKwlpbnQ2NAkJc2VnX2xhc3RfcGFnZSA9 IHNlZ3BhZ2UgKyBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UIC0gMTsKIAogCUFzc2VydChzZWdwYWdl ICUgU0xSVV9QQUdFU19QRVJfU0VHTUVOVCA9PSAwKTsKIApAQCAtMTQwNCw3ICsxNDEyLDcgQEAg U2xydVBhZ2VQcmVjZWRlc1Rlc3RPZmZzZXQoU2xydUN0bCBjdGwsIGludCBwZXJfcGFnZSwgdWlu dDMyIG9mZnNldCkKIHsKIAlUcmFuc2FjdGlvbklkIGxocywKIAkJCQlyaHM7Ci0JaW50CQkJbmV3 ZXN0UGFnZSwKKwlpbnQ2NAkJbmV3ZXN0UGFnZSwKIAkJCQlvbGRlc3RQYWdlOwogCVRyYW5zYWN0 aW9uSWQgbmV3ZXN0WGFjdCwKIAkJCQlvbGRlc3RYYWN0OwpAQCAtMTQ5Nyw5ICsxNTA1LDEwIEBA IFNscnVQYWdlUHJlY2VkZXNVbml0VGVzdHMoU2xydUN0bCBjdGwsIGludCBwZXJfcGFnZSkKICAq CQlvbmUgY29udGFpbmluZyB0aGUgcGFnZSBwYXNzZWQgYXMgImRhdGEiLgogICovCiBib29sCi1T bHJ1U2NhbkRpckNiUmVwb3J0UHJlc2VuY2UoU2xydUN0bCBjdGwsIGNoYXIgKmZpbGVuYW1lLCBp bnQgc2VncGFnZSwgdm9pZCAqZGF0YSkKK1NscnVTY2FuRGlyQ2JSZXBvcnRQcmVzZW5jZShTbHJ1 Q3RsIGN0bCwgY2hhciAqZmlsZW5hbWUsIGludDY0IHNlZ3BhZ2UsCisJCQkJCQkJdm9pZCAqZGF0 YSkKIHsKLQlpbnQJCQljdXRvZmZQYWdlID0gKihpbnQgKikgZGF0YTsKKwlpbnQ2NAkJY3V0b2Zm UGFnZSA9ICooaW50NjQgKikgZGF0YTsKIAogCWlmIChTbHJ1TWF5RGVsZXRlU2VnbWVudChjdGws IHNlZ3BhZ2UsIGN1dG9mZlBhZ2UpKQogCQlyZXR1cm4gdHJ1ZTsJCQkvKiBmb3VuZCBvbmU7IGRv bid0IGl0ZXJhdGUgYW55IG1vcmUgKi8KQEAgLTE1MTIsOSArMTUyMSwxMCBAQCBTbHJ1U2NhbkRp ckNiUmVwb3J0UHJlc2VuY2UoU2xydUN0bCBjdGwsIGNoYXIgKmZpbGVuYW1lLCBpbnQgc2VncGFn ZSwgdm9pZCAqZGF0YQogICoJCVRoaXMgY2FsbGJhY2sgZGVsZXRlcyBzZWdtZW50cyBwcmlvciB0 byB0aGUgb25lIHBhc3NlZCBpbiBhcyAiZGF0YSIuCiAgKi8KIHN0YXRpYyBib29sCi1TbHJ1U2Nh bkRpckNiRGVsZXRlQ3V0b2ZmKFNscnVDdGwgY3RsLCBjaGFyICpmaWxlbmFtZSwgaW50IHNlZ3Bh Z2UsIHZvaWQgKmRhdGEpCitTbHJ1U2NhbkRpckNiRGVsZXRlQ3V0b2ZmKFNscnVDdGwgY3RsLCBj aGFyICpmaWxlbmFtZSwgaW50NjQgc2VncGFnZSwKKwkJCQkJCSAgdm9pZCAqZGF0YSkKIHsKLQlp bnQJCQljdXRvZmZQYWdlID0gKihpbnQgKikgZGF0YTsKKwlpbnQ2NAkJY3V0b2ZmUGFnZSA9ICoo aW50NjQgKikgZGF0YTsKIAogCWlmIChTbHJ1TWF5RGVsZXRlU2VnbWVudChjdGwsIHNlZ3BhZ2Us IGN1dG9mZlBhZ2UpKQogCQlTbHJ1SW50ZXJuYWxEZWxldGVTZWdtZW50KGN0bCwgc2VncGFnZSAv IFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpOwpAQCAtMTUyNyw3ICsxNTM3LDcgQEAgU2xydVNjYW5E aXJDYkRlbGV0ZUN1dG9mZihTbHJ1Q3RsIGN0bCwgY2hhciAqZmlsZW5hbWUsIGludCBzZWdwYWdl LCB2b2lkICpkYXRhKQogICoJCVRoaXMgY2FsbGJhY2sgZGVsZXRlcyBhbGwgc2VnbWVudHMuCiAg Ki8KIGJvb2wKLVNscnVTY2FuRGlyQ2JEZWxldGVBbGwoU2xydUN0bCBjdGwsIGNoYXIgKmZpbGVu YW1lLCBpbnQgc2VncGFnZSwgdm9pZCAqZGF0YSkKK1NscnVTY2FuRGlyQ2JEZWxldGVBbGwoU2xy dUN0bCBjdGwsIGNoYXIgKmZpbGVuYW1lLCBpbnQ2NCBzZWdwYWdlLCB2b2lkICpkYXRhKQogewog CVNscnVJbnRlcm5hbERlbGV0ZVNlZ21lbnQoY3RsLCBzZWdwYWdlIC8gU0xSVV9QQUdFU19QRVJf U0VHTUVOVCk7CiAKQEAgLTE1NTUsOCArMTU2NSw4IEBAIFNscnVTY2FuRGlyZWN0b3J5KFNscnVD dGwgY3RsLCBTbHJ1U2NhbkNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpkYXRhKQogCWJvb2wJCXJl dHZhbCA9IGZhbHNlOwogCURJUgkJICAgKmNsZGlyOwogCXN0cnVjdCBkaXJlbnQgKmNsZGU7Ci0J aW50CQkJc2Vnbm87Ci0JaW50CQkJc2VncGFnZTsKKwlpbnQ2NAkJc2Vnbm87CisJaW50NjQJCXNl Z3BhZ2U7CiAKIAljbGRpciA9IEFsbG9jYXRlRGlyKGN0bC0+RGlyKTsKIAl3aGlsZSAoKGNsZGUg PSBSZWFkRGlyKGNsZGlyLCBjdGwtPkRpcikpICE9IE5VTEwpCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0vc3VidHJhbnMuYwppbmRleCA3MjQwNDU0Y2E0Li5kZTA5MDY4Mzk1IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIFNscnVDdGxE YXRhIFN1YlRyYW5zQ3RsRGF0YTsKIAogCiBzdGF0aWMgaW50CVplcm9TVUJUUkFOU1BhZ2UoaW50 IHBhZ2Vubyk7Ci1zdGF0aWMgYm9vbCBTdWJUcmFuc1BhZ2VQcmVjZWRlcyhpbnQgcGFnZTEsIGlu dCBwYWdlMik7CitzdGF0aWMgYm9vbCBTdWJUcmFuc1BhZ2VQcmVjZWRlcyhpbnQ2NCBwYWdlMSwg aW50NjQgcGFnZTIpOwogCiAKIC8qCkBAIC0zNzcsNyArMzc3LDcgQEAgVHJ1bmNhdGVTVUJUUkFO UyhUcmFuc2FjdGlvbklkIG9sZGVzdFhhY3QpCiAgKiBBbmFsb2dvdXMgdG8gQ0xPR1BhZ2VQcmVj ZWRlcygpLgogICovCiBzdGF0aWMgYm9vbAotU3ViVHJhbnNQYWdlUHJlY2VkZXMoaW50IHBhZ2Ux LCBpbnQgcGFnZTIpCitTdWJUcmFuc1BhZ2VQcmVjZWRlcyhpbnQ2NCBwYWdlMSwgaW50NjQgcGFn ZTIpCiB7CiAJVHJhbnNhY3Rpb25JZCB4aWQxOwogCVRyYW5zYWN0aW9uSWQgeGlkMjsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9hc3luYy5jCmluZGV4IDNlMWI5MmRmMDMuLjA1NmRjYThlNDcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMu YwpAQCAtMTk2LDcgKzE5Niw3IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUXVldWVFbnRyeQogICov CiB0eXBlZGVmIHN0cnVjdCBRdWV1ZVBvc2l0aW9uCiB7Ci0JaW50CQkJcGFnZTsJCQkvKiBTTFJV IHBhZ2UgbnVtYmVyICovCisJaW50NjQJCXBhZ2U7CQkJLyogU0xSVSBwYWdlIG51bWJlciAqLwog CWludAkJCW9mZnNldDsJCQkvKiBieXRlIG9mZnNldCB3aXRoaW4gcGFnZSAqLwogfSBRdWV1ZVBv c2l0aW9uOwogCkBAIC00NDMsOCArNDQzLDggQEAgc3RhdGljIGJvb2wgdHJ5QWR2YW5jZVRhaWwg PSBmYWxzZTsKIGJvb2wJCVRyYWNlX25vdGlmeSA9IGZhbHNlOwogCiAvKiBsb2NhbCBmdW5jdGlv biBwcm90b3R5cGVzICovCi1zdGF0aWMgaW50CWFzeW5jUXVldWVQYWdlRGlmZihpbnQgcCwgaW50 IHEpOwotc3RhdGljIGJvb2wgYXN5bmNRdWV1ZVBhZ2VQcmVjZWRlcyhpbnQgcCwgaW50IHEpOwor c3RhdGljIGludDY0IGFzeW5jUXVldWVQYWdlRGlmZihpbnQ2NCBwLCBpbnQ2NCBxKTsKK3N0YXRp YyBib29sIGFzeW5jUXVldWVQYWdlUHJlY2VkZXMoaW50NjQgcCwgaW50NjQgcSk7CiBzdGF0aWMg dm9pZCBxdWV1ZV9saXN0ZW4oTGlzdGVuQWN0aW9uS2luZCBhY3Rpb24sIGNvbnN0IGNoYXIgKmNo YW5uZWwpOwogc3RhdGljIHZvaWQgQXN5bmNfVW5saXN0ZW5PbkV4aXQoaW50IGNvZGUsIERhdHVt IGFyZyk7CiBzdGF0aWMgdm9pZCBFeGVjX0xpc3RlblByZUNvbW1pdCh2b2lkKTsKQEAgLTQ3Nywx MCArNDc3LDEwIEBAIHN0YXRpYyB2b2lkIENsZWFyUGVuZGluZ0FjdGlvbnNBbmROb3RpZmllcyh2 b2lkKTsKICAqIENvbXB1dGUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gcXVldWUgcGFnZSBu dW1iZXJzIChpLmUuLCBwIC0gcSksCiAgKiBhY2NvdW50aW5nIGZvciB3cmFwYXJvdW5kLgogICov Ci1zdGF0aWMgaW50Ci1hc3luY1F1ZXVlUGFnZURpZmYoaW50IHAsIGludCBxKQorc3RhdGljIGlu dDY0Cithc3luY1F1ZXVlUGFnZURpZmYoaW50NjQgcCwgaW50NjQgcSkKIHsKLQlpbnQJCQlkaWZm OworCWludDY0CQlkaWZmOwogCiAJLyoKIAkgKiBXZSBoYXZlIHRvIGNvbXBhcmUgbW9kdWxvIChR VUVVRV9NQVhfUEFHRSsxKS8yLiAgQm90aCBpbnB1dHMgc2hvdWxkIGJlCkBAIC01MDQsNyArNTA0 LDcgQEAgYXN5bmNRdWV1ZVBhZ2VEaWZmKGludCBwLCBpbnQgcSkKICAqIGV4dGFudCBwYWdlLCB3 ZSBuZWVkIG5vdCBhc3Nlc3MgZW50cmllcyB3aXRoaW4gYSBwYWdlLgogICovCiBzdGF0aWMgYm9v bAotYXN5bmNRdWV1ZVBhZ2VQcmVjZWRlcyhpbnQgcCwgaW50IHEpCithc3luY1F1ZXVlUGFnZVBy ZWNlZGVzKGludDY0IHAsIGludDY0IHEpCiB7CiAJcmV0dXJuIGFzeW5jUXVldWVQYWdlRGlmZihw LCBxKSA8IDA7CiB9CkBAIC0xMzM2LDcgKzEzMzYsNyBAQCBhc3luY1F1ZXVlSXNGdWxsKHZvaWQp CiBzdGF0aWMgYm9vbAogYXN5bmNRdWV1ZUFkdmFuY2Uodm9sYXRpbGUgUXVldWVQb3NpdGlvbiAq cG9zaXRpb24sIGludCBlbnRyeUxlbmd0aCkKIHsKLQlpbnQJCQlwYWdlbm8gPSBRVUVVRV9QT1Nf UEFHRSgqcG9zaXRpb24pOworCWludDY0CQlwYWdlbm8gPSBRVUVVRV9QT1NfUEFHRSgqcG9zaXRp b24pOwogCWludAkJCW9mZnNldCA9IFFVRVVFX1BPU19PRkZTRVQoKnBvc2l0aW9uKTsKIAlib29s CQlwYWdlSnVtcCA9IGZhbHNlOwogCkBAIC0xNDA5LDcgKzE0MDksNyBAQCBhc3luY1F1ZXVlQWRk RW50cmllcyhMaXN0Q2VsbCAqbmV4dE5vdGlmeSkKIHsKIAlBc3luY1F1ZXVlRW50cnkgcWU7CiAJ UXVldWVQb3NpdGlvbiBxdWV1ZV9oZWFkOwotCWludAkJCXBhZ2VubzsKKwlpbnQ2NAkJcGFnZW5v OwogCWludAkJCW9mZnNldDsKIAlpbnQJCQlzbG90bm87CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9w cmVkaWNhdGUuYwppbmRleCAyNWU3ZTRlMzdiLi5iZWE1ZDgxMGUwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFn ZS9sbWdyL3ByZWRpY2F0ZS5jCkBAIC00MzgsNyArNDM4LDcgQEAgc3RhdGljIHZvaWQgU2V0UG9z c2libGVVbnNhZmVDb25mbGljdChTRVJJQUxJWkFCTEVYQUNUICpyb1hhY3QsIFNFUklBTElaQUJM RVhBQ1QKIHN0YXRpYyB2b2lkIFJlbGVhc2VSV0NvbmZsaWN0KFJXQ29uZmxpY3QgY29uZmxpY3Qp Owogc3RhdGljIHZvaWQgRmxhZ1N4YWN0VW5zYWZlKFNFUklBTElaQUJMRVhBQ1QgKnN4YWN0KTsK IAotc3RhdGljIGJvb2wgU2VyaWFsUGFnZVByZWNlZGVzTG9naWNhbGx5KGludCBwYWdlMSwgaW50 IHBhZ2UyKTsKK3N0YXRpYyBib29sIFNlcmlhbFBhZ2VQcmVjZWRlc0xvZ2ljYWxseShpbnQ2NCBw YWdlMSwgaW50NjQgcGFnZTIpOwogc3RhdGljIHZvaWQgU2VyaWFsSW5pdCh2b2lkKTsKIHN0YXRp YyB2b2lkIFNlcmlhbEFkZChUcmFuc2FjdGlvbklkIHhpZCwgU2VyQ29tbWl0U2VxTm8gbWluQ29u ZmxpY3RDb21taXRTZXFObyk7CiBzdGF0aWMgU2VyQ29tbWl0U2VxTm8gU2VyaWFsR2V0TWluQ29u ZmxpY3RDb21taXRTZXFObyhUcmFuc2FjdGlvbklkIHhpZCk7CkBAIC03ODgsNyArNzg4LDcgQEAg RmxhZ1N4YWN0VW5zYWZlKFNFUklBTElaQUJMRVhBQ1QgKnN4YWN0KQogICogQW5hbG9nb3VzIHRv IENMT0dQYWdlUHJlY2VkZXMoKS4KICAqLwogc3RhdGljIGJvb2wKLVNlcmlhbFBhZ2VQcmVjZWRl c0xvZ2ljYWxseShpbnQgcGFnZTEsIGludCBwYWdlMikKK1NlcmlhbFBhZ2VQcmVjZWRlc0xvZ2lj YWxseShpbnQ2NCBwYWdlMSwgaW50NjQgcGFnZTIpCiB7CiAJVHJhbnNhY3Rpb25JZCB4aWQxOwog CVRyYW5zYWN0aW9uSWQgeGlkMjsKQEAgLTgwOCw3ICs4MDgsNyBAQCBTZXJpYWxQYWdlUHJlY2Vk ZXNMb2dpY2FsbHlVbml0VGVzdHModm9pZCkKIHsKIAlpbnQJCQlwZXJfcGFnZSA9IFNFUklBTF9F TlRSSUVTUEVSUEFHRSwKIAkJCQlvZmZzZXQgPSBwZXJfcGFnZSAvIDI7Ci0JaW50CQkJbmV3ZXN0 UGFnZSwKKwlpbnQ2NAkJbmV3ZXN0UGFnZSwKIAkJCQlvbGRlc3RQYWdlLAogCQkJCWhlYWRQYWdl LAogCQkJCXRhcmdldFBhZ2U7CkBAIC05MDYsOSArOTA2LDkgQEAgc3RhdGljIHZvaWQKIFNlcmlh bEFkZChUcmFuc2FjdGlvbklkIHhpZCwgU2VyQ29tbWl0U2VxTm8gbWluQ29uZmxpY3RDb21taXRT ZXFObykKIHsKIAlUcmFuc2FjdGlvbklkIHRhaWxYaWQ7Ci0JaW50CQkJdGFyZ2V0UGFnZTsKKwlp bnQ2NAkJdGFyZ2V0UGFnZTsKIAlpbnQJCQlzbG90bm87Ci0JaW50CQkJZmlyc3RaZXJvUGFnZTsK KwlpbnQ2NAkJZmlyc3RaZXJvUGFnZTsKIAlib29sCQlpc05ld1BhZ2U7CiAKIAlBc3NlcnQoVHJh bnNhY3Rpb25JZElzVmFsaWQoeGlkKSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv c2xydS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaAppbmRleCAxMzBjNDFjODYzLi40ZjVh MzI0ZGEyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oCisrKyBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9zbHJ1LmgKQEAgLTY0LDcgKzY0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU2xy dVNoYXJlZERhdGEKIAljaGFyCSAgKipwYWdlX2J1ZmZlcjsKIAlTbHJ1UGFnZVN0YXR1cyAqcGFn ZV9zdGF0dXM7CiAJYm9vbAkgICAqcGFnZV9kaXJ0eTsKLQlpbnQJCSAgICpwYWdlX251bWJlcjsK KwlpbnQ2NAkgICAqcGFnZV9udW1iZXI7CiAJaW50CQkgICAqcGFnZV9scnVfY291bnQ7CiAJTFdM b2NrUGFkZGVkICpidWZmZXJfbG9ja3M7CiAKQEAgLTk1LDcgKzk1LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgU2xydVNoYXJlZERhdGEKIAkgKiB0aGlzIGlzIG5vdCBjcml0aWNhbCBkYXRhLCBzaW5jZSB3 ZSB1c2UgaXQgb25seSB0byBhdm9pZCBzd2FwcGluZyBvdXQKIAkgKiB0aGUgbGF0ZXN0IHBhZ2Uu CiAJICovCi0JaW50CQkJbGF0ZXN0X3BhZ2VfbnVtYmVyOworCWludDY0CQlsYXRlc3RfcGFnZV9u dW1iZXI7CiAKIAkvKiBTTFJVJ3MgaW5kZXggZm9yIHN0YXRpc3RpY3MgcHVycG9zZXMgKG1pZ2h0 IG5vdCBiZSB1bmlxdWUpICovCiAJaW50CQkJc2xydV9zdGF0c19pZHg7CkBAIC0xMjcsNyArMTI3 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU2xydUN0bERhdGEKIAkgKiB0aGUgYmVoYXZpb3Igb2YgdGhp cyBjYWxsYmFjayBoYXMgbm8gZnVuY3Rpb25hbCBpbXBsaWNhdGlvbnMuKSAgVXNlCiAJICogU2xy dVBhZ2VQcmVjZWRlc1VuaXRUZXN0cygpIGluIFNMUlVzIG1lZXRpbmcgaXRzIGNyaXRlcmlhLgog CSAqLwotCWJvb2wJCSgqUGFnZVByZWNlZGVzKSAoaW50LCBpbnQpOworCWJvb2wJCSgqUGFnZVBy ZWNlZGVzKSAoaW50NjQsIGludDY0KTsKIAogCS8qCiAJICogRGlyIGlzIHNldCBkdXJpbmcgU2lt cGxlTHJ1SW5pdCBhbmQgZG9lcyBub3QgY2hhbmdlIHRoZXJlYWZ0ZXIuIFNpbmNlCkBAIC0xNDMs MTAgKzE0MywxMCBAQCBleHRlcm4gU2l6ZSBTaW1wbGVMcnVTaG1lbVNpemUoaW50IG5zbG90cywg aW50IG5sc25zKTsKIGV4dGVybiB2b2lkIFNpbXBsZUxydUluaXQoU2xydUN0bCBjdGwsIGNvbnN0 IGNoYXIgKm5hbWUsIGludCBuc2xvdHMsIGludCBubHNucywKIAkJCQkJCSAgTFdMb2NrICpjdGxs b2NrLCBjb25zdCBjaGFyICpzdWJkaXIsIGludCB0cmFuY2hlX2lkLAogCQkJCQkJICBTeW5jUmVx dWVzdEhhbmRsZXIgc3luY19oYW5kbGVyKTsKLWV4dGVybiBpbnQJU2ltcGxlTHJ1WmVyb1BhZ2Uo U2xydUN0bCBjdGwsIGludCBwYWdlbm8pOwotZXh0ZXJuIGludAlTaW1wbGVMcnVSZWFkUGFnZShT bHJ1Q3RsIGN0bCwgaW50IHBhZ2VubywgYm9vbCB3cml0ZV9vaywKK2V4dGVybiBpbnQJU2ltcGxl THJ1WmVyb1BhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2Vubyk7CitleHRlcm4gaW50CVNpbXBs ZUxydVJlYWRQYWdlKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8sIGJvb2wgd3JpdGVfb2ssCiAJ CQkJCQkJICBUcmFuc2FjdGlvbklkIHhpZCk7Ci1leHRlcm4gaW50CVNpbXBsZUxydVJlYWRQYWdl X1JlYWRPbmx5KFNscnVDdGwgY3RsLCBpbnQgcGFnZW5vLAorZXh0ZXJuIGludAlTaW1wbGVMcnVS ZWFkUGFnZV9SZWFkT25seShTbHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vLAogCQkJCQkJCQkJICAg VHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIHZvaWQgU2ltcGxlTHJ1V3JpdGVQYWdlKFNscnVD dGwgY3RsLCBpbnQgc2xvdG5vKTsKIGV4dGVybiB2b2lkIFNpbXBsZUxydVdyaXRlQWxsKFNscnVD dGwgY3RsLCBib29sIGFsbG93X3JlZGlydGllZCk7CkBAIC0xNTUsMjAgKzE1NSwyMCBAQCBleHRl cm4gdm9pZCBTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3RzKFNscnVDdGwgY3RsLCBpbnQgcGVyX3Bh Z2UpOwogI2Vsc2UKICNkZWZpbmUgU2xydVBhZ2VQcmVjZWRlc1VuaXRUZXN0cyhjdGwsIHBlcl9w YWdlKSBkbyB7fSB3aGlsZSAoMCkKICNlbmRpZgotZXh0ZXJuIHZvaWQgU2ltcGxlTHJ1VHJ1bmNh dGUoU2xydUN0bCBjdGwsIGludCBjdXRvZmZQYWdlKTsKLWV4dGVybiBib29sIFNpbXBsZUxydURv ZXNQaHlzaWNhbFBhZ2VFeGlzdChTbHJ1Q3RsIGN0bCwgaW50IHBhZ2Vubyk7CitleHRlcm4gdm9p ZCBTaW1wbGVMcnVUcnVuY2F0ZShTbHJ1Q3RsIGN0bCwgaW50NjQgY3V0b2ZmUGFnZSk7CitleHRl cm4gYm9vbCBTaW1wbGVMcnVEb2VzUGh5c2ljYWxQYWdlRXhpc3QoU2xydUN0bCBjdGwsIGludDY0 IHBhZ2Vubyk7CiAKLXR5cGVkZWYgYm9vbCAoKlNscnVTY2FuQ2FsbGJhY2spIChTbHJ1Q3RsIGN0 bCwgY2hhciAqZmlsZW5hbWUsIGludCBzZWdwYWdlLAordHlwZWRlZiBib29sICgqU2xydVNjYW5D YWxsYmFjaykgKFNscnVDdGwgY3RsLCBjaGFyICpmaWxlbmFtZSwgaW50NjQgc2VncGFnZSwKIAkJ CQkJCQkJICB2b2lkICpkYXRhKTsKIGV4dGVybiBib29sIFNscnVTY2FuRGlyZWN0b3J5KFNscnVD dGwgY3RsLCBTbHJ1U2NhbkNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpkYXRhKTsKLWV4dGVybiB2 b2lkIFNscnVEZWxldGVTZWdtZW50KFNscnVDdGwgY3RsLCBpbnQgc2Vnbm8pOworZXh0ZXJuIHZv aWQgU2xydURlbGV0ZVNlZ21lbnQoU2xydUN0bCBjdGwsIGludDY0IHNlZ25vKTsKIAogZXh0ZXJu IGludAlTbHJ1U3luY0ZpbGVUYWcoU2xydUN0bCBjdGwsIGNvbnN0IEZpbGVUYWcgKmZ0YWcsIGNo YXIgKnBhdGgpOwogCiAvKiBTbHJ1U2NhbkRpcmVjdG9yeSBwdWJsaWMgY2FsbGJhY2tzICovCiBl eHRlcm4gYm9vbCBTbHJ1U2NhbkRpckNiUmVwb3J0UHJlc2VuY2UoU2xydUN0bCBjdGwsIGNoYXIg KmZpbGVuYW1lLAotCQkJCQkJCQkJCWludCBzZWdwYWdlLCB2b2lkICpkYXRhKTsKLWV4dGVybiBi b29sIFNscnVTY2FuRGlyQ2JEZWxldGVBbGwoU2xydUN0bCBjdGwsIGNoYXIgKmZpbGVuYW1lLCBp bnQgc2VncGFnZSwKKwkJCQkJCQkJCQlpbnQ2NCBzZWdwYWdlLCB2b2lkICpkYXRhKTsKK2V4dGVy biBib29sIFNscnVTY2FuRGlyQ2JEZWxldGVBbGwoU2xydUN0bCBjdGwsIGNoYXIgKmZpbGVuYW1l LCBpbnQ2NCBzZWdwYWdlLAogCQkJCQkJCQkgICB2b2lkICpkYXRhKTsKIAogI2VuZGlmCQkJCQkJ CS8qIFNMUlVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9zeW5jLmggYi9z cmMvaW5jbHVkZS9zdG9yYWdlL3N5bmMuaAppbmRleCA5NzM3ZTFlYjY3Li4zNWZjMWRmZjFhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3N5bmMuaAorKysgYi9zcmMvaW5jbHVkZS9z dG9yYWdlL3N5bmMuaApAQCAtNTIsNyArNTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBGaWxlVGFnCiAJ aW50MTYJCWhhbmRsZXI7CQkvKiBTeW5jUmVxdWVzdEhhbmRsZXIgdmFsdWUsIHNhdmluZyBzcGFj ZSAqLwogCWludDE2CQlmb3JrbnVtOwkJLyogRm9ya051bWJlciwgc2F2aW5nIHNwYWNlICovCiAJ UmVsRmlsZU5vZGUgcm5vZGU7Ci0JdWludDMyCQlzZWdubzsKKwl1aW50NjQJCXNlZ25vOwogfSBG aWxlVGFnOwogCiBleHRlcm4gdm9pZCBJbml0U3luYyh2b2lkKTsKLS0gCjIuMzUuMQoK --00000000000006543605dd8e35da Content-Type: application/octet-stream; name="v33-0003-Use-64-bit-FullTransactionId-instead-of-Epoch-xi.patch" Content-Disposition: attachment; filename="v33-0003-Use-64-bit-FullTransactionId-instead-of-Epoch-xi.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l2g4s8452 RnJvbSAzODAzNzcxMjk1Y2UyMTlmMjk0YTA3N2M5ZjdjOWUzNGRjM2U0NzEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxMjozNjoyNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjMz IDMvM10gVXNlIDY0LWJpdCBGdWxsVHJhbnNhY3Rpb25JZCBpbnN0ZWFkIG9mIEVwb2NoOnhpZAoK TmV4dFhpZCBpbiBjb250cm9sZGF0YSBpcyBub3cgY29tcGF0aWJsZSB3aXRoIG9sZCBmb3JtYXQg RXBvY2g6eGlkIGFuZCB0aGUgbmV3Cm9uZS4gVGhpcyBpcyBuZXh0IHN0ZXAgdG8gbWFrZSBYSURz IDY0LWJpdC4KCkF1dGhvcjogQWxleGFuZGVyIEtvcm90a292IDxhZWtvcm90a292QGdtYWlsLmNv bT4KQXV0aG9yOiBUZW9kb3IgU2lnYWV2IDx0ZW9kb3JAc2lnYWV2LnJ1PgpBdXRob3I6IE5pa2l0 YSBHbHVraG92IDxuLmdsdWhvdkBwb3N0Z3Jlc3Byby5ydT4KQXV0aG9yOiBNYXhpbSBPcmxvdiA8 b3Jsb3ZtZ0BnbWFpbC5jb20+CkF1dGhvcjogUGF2ZWwgQm9yaXNvdiA8cGFzaGtpbi5lbGZlQGdt YWlsLmNvbT4KQXV0aG9yOiBZdXJhIFNva29sb3YgPHkuc29rb2xvdkBwb3N0Z3Jlc3Byby5ydT4g PGZ1bm55LmZhbGNvbkBnbWFpbC5jb20+CkF1dGhvcjogQWxla3NhbmRlciBBbGVrc2VldiA8YWxl a3NhbmRlckB0aW1lc2NhbGUuY29tPgpSZXZpZXdlZC1ieTogQWxla3NhbmRlciBBbGVrc2VldiA8 YWxla3NhbmRlckB0aW1lc2NhbGUuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t L0NBQ0clM0RlelplMU5RU0NuZkhPcjc4QXRBWnhKWmVDdnhydHMweWdyeFl3ZSUzRHB5eWpWV0El NDBtYWlsLmdtYWlsLmNvbQpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBSjdjNlRQ RE9ZQllybkNBZXluZGtCa3RPMFdHMnhTZFlkdVRGMG54cSUyQnZma21URjVRJTQwbWFpbC5nbWFp bC5jb20KLS0tCiBjb250cmliL2FtY2hlY2svdmVyaWZ5X2hlYXBhbS5jICAgICAgICAgfCA3NSAr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBjb250cmliL3BhZ2VpbnNwZWN0L2J0cmVlZnVuY3Mu YyAgICAgICAgfCAgNSArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2dpc3RkZXNjLmMg IHwgMTAgKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL25idGRlc2MuYyAgIHwgMTAg KystLQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL3hsb2dkZXNjLmMgIHwgIDUgKy0KIHNy Yy9iYWNrZW5kL3V0aWxzL21pc2MvcGdfY29udHJvbGRhdGEuYyB8ICA1ICstCiBzcmMvYmluL3Bn X2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMgfCAgNSArLQogc3JjL2Jpbi9wZ191cGdyYWRl L2NvbnRyb2xkYXRhLmMgICAgICAgIHwgMzIgKysrKysrKysrLS0KIDggZmlsZXMgY2hhbmdlZCwg NzMgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9h bWNoZWNrL3ZlcmlmeV9oZWFwYW0uYyBiL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfaGVhcGFtLmMK aW5kZXggMjBhMzczM2U3ZC4uNGE4N2E4ZmE0MiAxMDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNr L3ZlcmlmeV9oZWFwYW0uYworKysgYi9jb250cmliL2FtY2hlY2svdmVyaWZ5X2hlYXBhbS5jCkBA IC03NDMsMjQgKzc0MywyMSBAQCBjaGVja190dXBsZV92aXNpYmlsaXR5KEhlYXBDaGVja0NvbnRl eHQgKmN0eCkKIAkJCWJyZWFrOwogCQljYXNlIFhJRF9JTl9GVVRVUkU6CiAJCQlyZXBvcnRfY29y cnVwdGlvbihjdHgsCi0JCQkJCQkJICBwc3ByaW50ZigieG1pbiAlbGx1IGVxdWFscyBvciBleGNl ZWRzIG5leHQgdmFsaWQgdHJhbnNhY3Rpb24gSUQgJXU6JWxsdSIsCisJCQkJCQkJICBwc3ByaW50 ZigieG1pbiAlbGx1IGVxdWFscyBvciBleGNlZWRzIG5leHQgdmFsaWQgdHJhbnNhY3Rpb24gSUQg JWxsdSIsCiAJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSB4bWluLAotCQkJCQkJCQkJ ICAgRXBvY2hGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0X2Z4aWQpLAotCQkJCQkJCQkJ ICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+bmV4 dF9meGlkKSkpOworCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgVTY0RnJvbUZ1bGxU cmFuc2FjdGlvbklkKGN0eC0+bmV4dF9meGlkKSkpOwogCQkJcmV0dXJuIGZhbHNlOwogCQljYXNl IFhJRF9QUkVDRURFU19DTFVTVEVSTUlOOgogCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJ CQkJCSAgcHNwcmludGYoInhtaW4gJWxsdSBwcmVjZWRlcyBvbGRlc3QgdmFsaWQgdHJhbnNhY3Rp b24gSUQgJXU6JWxsdSIsCisJCQkJCQkJICBwc3ByaW50ZigieG1pbiAlbGx1IHByZWNlZGVzIG9s ZGVzdCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAlbGx1IiwKIAkJCQkJCQkJCSAgICh1bnNpZ25lZCBs b25nIGxvbmcpIHhtaW4sCi0JCQkJCQkJCQkgICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChj dHgtPm9sZGVzdF9meGlkKSwKLQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFhpZEZy b21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm9sZGVzdF9meGlkKSkpOworCQkJCQkJCQkJICAgKHVu c2lnbmVkIGxvbmcgbG9uZykgVTY0RnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+b2xkZXN0X2Z4 aWQpKSk7CiAJCQlyZXR1cm4gZmFsc2U7CiAJCWNhc2UgWElEX1BSRUNFREVTX1JFTE1JTjoKIAkJ CXJlcG9ydF9jb3JydXB0aW9uKGN0eCwKLQkJCQkJCQkgIHBzcHJpbnRmKCJ4bWluICVsbHUgcHJl Y2VkZXMgcmVsYXRpb24gZnJlZXplIHRocmVzaG9sZCAldTolbGx1IiwKKwkJCQkJCQkgIHBzcHJp bnRmKCJ4bWluICVsbHUgcHJlY2VkZXMgcmVsYXRpb24gZnJlZXplIHRocmVzaG9sZCAlbGx1IiwK IAkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIHhtaW4sCi0JCQkJCQkJCQkgICBFcG9j aEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpLAotCQkJCQkJCQkJICAg KHVuc2lnbmVkIGxvbmcgbG9uZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+cmVsZnJv emVuZnhpZCkpKTsKKwkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFU2NEZyb21GdWxs VHJhbnNhY3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpKSk7CiAJCQlyZXR1cm4gZmFsc2U7CiAJ fQogCkBAIC03ODQsMjQgKzc4MSwyMSBAQCBjaGVja190dXBsZV92aXNpYmlsaXR5KEhlYXBDaGVj a0NvbnRleHQgKmN0eCkKIAkJCQkJcmV0dXJuIGZhbHNlOwogCQkJCWNhc2UgWElEX0lOX0ZVVFVS RToKIAkJCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJCQkJCQkJICBwc3ByaW50Zigib2xk LXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0aW9uIElEICVsbHUgZm9yIG1vdmVkIG9mZiB0dXBs ZSBlcXVhbHMgb3IgZXhjZWVkcyBuZXh0IHZhbGlkIHRyYW5zYWN0aW9uIElEICV1OiVsbHUiLAor CQkJCQkJCQkJICBwc3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0aW9uIElE ICVsbHUgZm9yIG1vdmVkIG9mZiB0dXBsZSBlcXVhbHMgb3IgZXhjZWVkcyBuZXh0IHZhbGlkIHRy YW5zYWN0aW9uIElEICVsbHUiLAogCQkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSB4 dmFjLAotCQkJCQkJCQkJCQkgICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm5leHRf ZnhpZCksCi0JCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFhpZEZyb21GdWxsVHJh bnNhY3Rpb25JZChjdHgtPm5leHRfZnhpZCkpKTsKKwkJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxv bmcgbG9uZykgVTY0RnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+bmV4dF9meGlkKSkpOwogCQkJ CQlyZXR1cm4gZmFsc2U7CiAJCQkJY2FzZSBYSURfUFJFQ0VERVNfUkVMTUlOOgogCQkJCQlyZXBv cnRfY29ycnVwdGlvbihjdHgsCi0JCQkJCQkJCQkgIHBzcHJpbnRmKCJvbGQtc3R5bGUgVkFDVVVN IEZVTEwgdHJhbnNhY3Rpb24gSUQgJWxsdSBmb3IgbW92ZWQgb2ZmIHR1cGxlIHByZWNlZGVzIHJl bGF0aW9uIGZyZWV6ZSB0aHJlc2hvbGQgJXU6JWxsdSIsCisJCQkJCQkJCQkgIHBzcHJpbnRmKCJv bGQtc3R5bGUgVkFDVVVNIEZVTEwgdHJhbnNhY3Rpb24gSUQgJWxsdSBmb3IgbW92ZWQgb2ZmIHR1 cGxlIHByZWNlZGVzIHJlbGF0aW9uIGZyZWV6ZSB0aHJlc2hvbGQgJWxsdSIsCiAJCQkJCQkJCQkJ CSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIHh2YWMsCi0JCQkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1 bGxUcmFuc2FjdGlvbklkKGN0eC0+cmVsZnJvemVuZnhpZCksCi0JCQkJCQkJCQkJCSAgICh1bnNp Z25lZCBsb25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4 aWQpKSk7CisJCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFU2NEZyb21GdWxsVHJh bnNhY3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpKSk7CiAJCQkJCXJldHVybiBmYWxzZTsKIAkJ CQljYXNlIFhJRF9QUkVDRURFU19DTFVTVEVSTUlOOgogCQkJCQlyZXBvcnRfY29ycnVwdGlvbihj dHgsCi0JCQkJCQkJCQkgIHBzcHJpbnRmKCJvbGQtc3R5bGUgVkFDVVVNIEZVTEwgdHJhbnNhY3Rp b24gSUQgJWxsdSBmb3IgbW92ZWQgb2ZmIHR1cGxlIHByZWNlZGVzIG9sZGVzdCB2YWxpZCB0cmFu c2FjdGlvbiBJRCAldTolbGx1IiwKKwkJCQkJCQkJCSAgcHNwcmludGYoIm9sZC1zdHlsZSBWQUNV VU0gRlVMTCB0cmFuc2FjdGlvbiBJRCAlbGx1IGZvciBtb3ZlZCBvZmYgdHVwbGUgcHJlY2VkZXMg b2xkZXN0IHZhbGlkIHRyYW5zYWN0aW9uIElEICVsbHUiLAogCQkJCQkJCQkJCQkgICAodW5zaWdu ZWQgbG9uZyBsb25nKSB4dmFjLAotCQkJCQkJCQkJCQkgICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rp b25JZChjdHgtPm9sZGVzdF9meGlkKSwKLQkJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9u ZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+b2xkZXN0X2Z4aWQpKSk7CisJCQkJCQkJ CQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFU2NEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgt Pm9sZGVzdF9meGlkKSkpOwogCQkJCQlyZXR1cm4gZmFsc2U7CiAJCQkJY2FzZSBYSURfQk9VTkRT X09LOgogCQkJCQlicmVhazsKQEAgLTg1MywyNCArODQ3LDIxIEBAIGNoZWNrX3R1cGxlX3Zpc2li aWxpdHkoSGVhcENoZWNrQ29udGV4dCAqY3R4KQogCQkJCQlyZXR1cm4gZmFsc2U7CiAJCQkJY2Fz ZSBYSURfSU5fRlVUVVJFOgogCQkJCQlyZXBvcnRfY29ycnVwdGlvbihjdHgsCi0JCQkJCQkJCQkg IHBzcHJpbnRmKCJvbGQtc3R5bGUgVkFDVVVNIEZVTEwgdHJhbnNhY3Rpb24gSUQgJWxsdSBmb3Ig bW92ZWQgaW4gdHVwbGUgZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2YWxpZCB0cmFuc2FjdGlvbiBJ RCAldTolbGx1IiwKKwkJCQkJCQkJCSAgcHNwcmludGYoIm9sZC1zdHlsZSBWQUNVVU0gRlVMTCB0 cmFuc2FjdGlvbiBJRCAlbGx1IGZvciBtb3ZlZCBpbiB0dXBsZSBlcXVhbHMgb3IgZXhjZWVkcyBu ZXh0IHZhbGlkIHRyYW5zYWN0aW9uIElEICVsbHUiLAogCQkJCQkJCQkJCQkgICAodW5zaWduZWQg bG9uZyBsb25nKSB4dmFjLAotCQkJCQkJCQkJCQkgICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25J ZChjdHgtPm5leHRfZnhpZCksCi0JCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFhp ZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm5leHRfZnhpZCkpKTsKKwkJCQkJCQkJCQkJICAg KHVuc2lnbmVkIGxvbmcgbG9uZykgVTY0RnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+bmV4dF9m eGlkKSkpOwogCQkJCQlyZXR1cm4gZmFsc2U7CiAJCQkJY2FzZSBYSURfUFJFQ0VERVNfUkVMTUlO OgogCQkJCQlyZXBvcnRfY29ycnVwdGlvbihjdHgsCi0JCQkJCQkJCQkgIHBzcHJpbnRmKCJvbGQt c3R5bGUgVkFDVVVNIEZVTEwgdHJhbnNhY3Rpb24gSUQgJWxsdSBmb3IgbW92ZWQgaW4gdHVwbGUg cHJlY2VkZXMgcmVsYXRpb24gZnJlZXplIHRocmVzaG9sZCAldTolbGx1IiwKKwkJCQkJCQkJCSAg cHNwcmludGYoIm9sZC1zdHlsZSBWQUNVVU0gRlVMTCB0cmFuc2FjdGlvbiBJRCAlbGx1IGZvciBt b3ZlZCBpbiB0dXBsZSBwcmVjZWRlcyByZWxhdGlvbiBmcmVlemUgdGhyZXNob2xkICVsbHUiLAog CQkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSB4dmFjLAotCQkJCQkJCQkJCQkgICBF cG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpLAotCQkJCQkJCQkJ CQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5y ZWxmcm96ZW5meGlkKSkpOworCQkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBVNjRG cm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5yZWxmcm96ZW5meGlkKSkpOwogCQkJCQlyZXR1cm4g ZmFsc2U7CiAJCQkJY2FzZSBYSURfUFJFQ0VERVNfQ0xVU1RFUk1JTjoKIAkJCQkJcmVwb3J0X2Nv cnJ1cHRpb24oY3R4LAotCQkJCQkJCQkJICBwc3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxM IHRyYW5zYWN0aW9uIElEICVsbHUgZm9yIG1vdmVkIGluIHR1cGxlIHByZWNlZGVzIG9sZGVzdCB2 YWxpZCB0cmFuc2FjdGlvbiBJRCAldTolbGx1IiwKKwkJCQkJCQkJCSAgcHNwcmludGYoIm9sZC1z dHlsZSBWQUNVVU0gRlVMTCB0cmFuc2FjdGlvbiBJRCAlbGx1IGZvciBtb3ZlZCBpbiB0dXBsZSBw cmVjZWRlcyBvbGRlc3QgdmFsaWQgdHJhbnNhY3Rpb24gSUQgJWxsdSIsCiAJCQkJCQkJCQkJCSAg ICh1bnNpZ25lZCBsb25nIGxvbmcpIHh2YWMsCi0JCQkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1bGxU cmFuc2FjdGlvbklkKGN0eC0+b2xkZXN0X2Z4aWQpLAotCQkJCQkJCQkJCQkgICAodW5zaWduZWQg bG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5vbGRlc3RfZnhpZCkpKTsK KwkJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgVTY0RnJvbUZ1bGxUcmFuc2FjdGlv bklkKGN0eC0+b2xkZXN0X2Z4aWQpKSk7CiAJCQkJCXJldHVybiBmYWxzZTsKIAkJCQljYXNlIFhJ RF9CT1VORFNfT0s6CiAJCQkJCWJyZWFrOwpAQCAtMTAxNiwyNCArMTAwNywyMSBAQCBjaGVja190 dXBsZV92aXNpYmlsaXR5KEhlYXBDaGVja0NvbnRleHQgKmN0eCkKIAkJCQlyZXR1cm4gdHJ1ZTsK IAkJCWNhc2UgWElEX0lOX0ZVVFVSRToKIAkJCQlyZXBvcnRfY29ycnVwdGlvbihjdHgsCi0JCQkJ CQkJCSAgcHNwcmludGYoInVwZGF0ZSB4aWQgJWxsdSBlcXVhbHMgb3IgZXhjZWVkcyBuZXh0IHZh bGlkIHRyYW5zYWN0aW9uIElEICV1OiVsbHUiLAorCQkJCQkJCQkgIHBzcHJpbnRmKCJ1cGRhdGUg eGlkICVsbHUgZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAlbGx1 IiwKIAkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSB4bWF4LAotCQkJCQkJCQkJCSAg IEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+bmV4dF9meGlkKSwKLQkJCQkJCQkJCQkg ICAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0 X2Z4aWQpKSk7CisJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgVTY0RnJvbUZ1bGxU cmFuc2FjdGlvbklkKGN0eC0+bmV4dF9meGlkKSkpOwogCQkJCXJldHVybiB0cnVlOwogCQkJY2Fz ZSBYSURfUFJFQ0VERVNfUkVMTUlOOgogCQkJCXJlcG9ydF9jb3JydXB0aW9uKGN0eCwKLQkJCQkJ CQkJICBwc3ByaW50ZigidXBkYXRlIHhpZCAlbGx1IHByZWNlZGVzIHJlbGF0aW9uIGZyZWV6ZSB0 aHJlc2hvbGQgJXU6JWxsdSIsCisJCQkJCQkJCSAgcHNwcmludGYoInVwZGF0ZSB4aWQgJWxsdSBw cmVjZWRlcyByZWxhdGlvbiBmcmVlemUgdGhyZXNob2xkICVsbHUiLAogCQkJCQkJCQkJCSAgICh1 bnNpZ25lZCBsb25nIGxvbmcpIHhtYXgsCi0JCQkJCQkJCQkJICAgRXBvY2hGcm9tRnVsbFRyYW5z YWN0aW9uSWQoY3R4LT5yZWxmcm96ZW5meGlkKSwKLQkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9u ZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5yZWxmcm96ZW5meGlkKSkpOwor CQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFU2NEZyb21GdWxsVHJhbnNhY3Rpb25J ZChjdHgtPnJlbGZyb3plbmZ4aWQpKSk7CiAJCQkJcmV0dXJuIHRydWU7CiAJCQljYXNlIFhJRF9Q UkVDRURFU19DTFVTVEVSTUlOOgogCQkJCXJlcG9ydF9jb3JydXB0aW9uKGN0eCwKLQkJCQkJCQkJ ICBwc3ByaW50ZigidXBkYXRlIHhpZCAlbGx1IHByZWNlZGVzIG9sZGVzdCB2YWxpZCB0cmFuc2Fj dGlvbiBJRCAldTolbGx1IiwKKwkJCQkJCQkJICBwc3ByaW50ZigidXBkYXRlIHhpZCAlbGx1IHBy ZWNlZGVzIG9sZGVzdCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAlbGx1IiwKIAkJCQkJCQkJCQkgICAo dW5zaWduZWQgbG9uZyBsb25nKSB4bWF4LAotCQkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1bGxUcmFu c2FjdGlvbklkKGN0eC0+b2xkZXN0X2Z4aWQpLAotCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25n IGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm9sZGVzdF9meGlkKSkpOworCQkJ CQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFU2NEZyb21GdWxsVHJhbnNhY3Rpb25JZChj dHgtPm9sZGVzdF9meGlkKSkpOwogCQkJCXJldHVybiB0cnVlOwogCQkJY2FzZSBYSURfQk9VTkRT X09LOgogCQkJCWJyZWFrOwpAQCAtMTA3OCwyNCArMTA2NiwyMSBAQCBjaGVja190dXBsZV92aXNp YmlsaXR5KEhlYXBDaGVja0NvbnRleHQgKmN0eCkKIAl7CiAJCWNhc2UgWElEX0lOX0ZVVFVSRToK IAkJCXJlcG9ydF9jb3JydXB0aW9uKGN0eCwKLQkJCQkJCQkgIHBzcHJpbnRmKCJ4bWF4ICVsbHUg ZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAldTolbGx1IiwKKwkJ CQkJCQkgIHBzcHJpbnRmKCJ4bWF4ICVsbHUgZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2YWxpZCB0 cmFuc2FjdGlvbiBJRCAlbGx1IiwKIAkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIHht YXgsCi0JCQkJCQkJCQkgICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm5leHRfZnhp ZCksCi0JCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0 aW9uSWQoY3R4LT5uZXh0X2Z4aWQpKSk7CisJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25n KSBVNjRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0X2Z4aWQpKSk7CiAJCQlyZXR1cm4g ZmFsc2U7CQkvKiBjb3JydXB0ICovCiAJCWNhc2UgWElEX1BSRUNFREVTX1JFTE1JTjoKIAkJCXJl cG9ydF9jb3JydXB0aW9uKGN0eCwKLQkJCQkJCQkgIHBzcHJpbnRmKCJ4bWF4ICVsbHUgcHJlY2Vk ZXMgcmVsYXRpb24gZnJlZXplIHRocmVzaG9sZCAldTolbGx1IiwKKwkJCQkJCQkgIHBzcHJpbnRm KCJ4bWF4ICVsbHUgcHJlY2VkZXMgcmVsYXRpb24gZnJlZXplIHRocmVzaG9sZCAlbGx1IiwKIAkJ CQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIHhtYXgsCi0JCQkJCQkJCQkgICBFcG9jaEZy b21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpLAotCQkJCQkJCQkJICAgKHVu c2lnbmVkIGxvbmcgbG9uZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+cmVsZnJvemVu ZnhpZCkpKTsKKwkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFU2NEZyb21GdWxsVHJh bnNhY3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpKSk7CiAJCQlyZXR1cm4gZmFsc2U7CQkvKiBj b3JydXB0ICovCiAJCWNhc2UgWElEX1BSRUNFREVTX0NMVVNURVJNSU46CiAJCQlyZXBvcnRfY29y cnVwdGlvbihjdHgsCi0JCQkJCQkJICBwc3ByaW50ZigieG1heCAlbGx1IHByZWNlZGVzIG9sZGVz dCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAldTolbGx1IiwKKwkJCQkJCQkgIHBzcHJpbnRmKCJ4bWF4 ICVsbHUgcHJlY2VkZXMgb2xkZXN0IHZhbGlkIHRyYW5zYWN0aW9uIElEICVsbHUiLAogCQkJCQkJ CQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgeG1heCwKLQkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1 bGxUcmFuc2FjdGlvbklkKGN0eC0+b2xkZXN0X2Z4aWQpLAotCQkJCQkJCQkJICAgKHVuc2lnbmVk IGxvbmcgbG9uZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+b2xkZXN0X2Z4aWQpKSk7 CisJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBVNjRGcm9tRnVsbFRyYW5zYWN0aW9u SWQoY3R4LT5vbGRlc3RfZnhpZCkpKTsKIAkJCXJldHVybiBmYWxzZTsJCS8qIGNvcnJ1cHQgKi8K IAkJY2FzZSBYSURfQk9VTkRTX09LOgogCQljYXNlIFhJRF9JTlZBTElEOgpkaWZmIC0tZ2l0IGEv Y29udHJpYi9wYWdlaW5zcGVjdC9idHJlZWZ1bmNzLmMgYi9jb250cmliL3BhZ2VpbnNwZWN0L2J0 cmVlZnVuY3MuYwppbmRleCBmYmRhNTJjMmYwLi4zM2VmOWYyZjQ1IDEwMDY0NAotLS0gYS9jb250 cmliL3BhZ2VpbnNwZWN0L2J0cmVlZnVuY3MuYworKysgYi9jb250cmliL3BhZ2VpbnNwZWN0L2J0 cmVlZnVuY3MuYwpAQCAtMTI1LDkgKzEyNSw4IEBAIEdldEJUUGFnZVN0YXRpc3RpY3MoQmxvY2tO dW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsIEJUUGFnZVN0YXQgKnN0YXQpCiAJCXsKIAkJCUZ1 bGxUcmFuc2FjdGlvbklkIHNhZmV4aWQgPSBCVFBhZ2VHZXREZWxldGVYaWQocGFnZSk7CiAKLQkJ CWVsb2coREVCVUcyLCAiZGVsZXRlZCBwYWdlIGZyb20gYmxvY2sgJXUgaGFzIHNhZmV4aWQgJXU6 JWxsdSIsCi0JCQkJIGJsa25vLCBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChzYWZleGlkKSwK LQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKHNhZmV4 aWQpKTsKKwkJCWVsb2coREVCVUcyLCAiZGVsZXRlZCBwYWdlIGZyb20gYmxvY2sgJXUgaGFzIHNh ZmV4aWQgJWxsdSIsCisJCQkJIGJsa25vLCAodW5zaWduZWQgbG9uZyBsb25nKSBVNjRGcm9tRnVs bFRyYW5zYWN0aW9uSWQoc2FmZXhpZCkpOwogCQl9CiAJCWVsc2UKIAkJCWVsb2coREVCVUcyLCAi ZGVsZXRlZCBwYWdlIGZyb20gYmxvY2sgJXUgaGFzIHNhZmV4aWQgJXUiLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2dpc3RkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3Mvcm1ncmRlc2MvZ2lzdGRlc2MuYwppbmRleCAxZTg5Yzk3ZDZmLi4yN2Y5NDlhMzhkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvZ2lzdGRlc2MuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvZ2lzdGRlc2MuYwpAQCAtMjYsMTEgKzI2LDEwIEBAIG91 dF9naXN0eGxvZ1BhZ2VVcGRhdGUoU3RyaW5nSW5mbyBidWYsIGdpc3R4bG9nUGFnZVVwZGF0ZSAq eGxyZWMpCiBzdGF0aWMgdm9pZAogb3V0X2dpc3R4bG9nUGFnZVJldXNlKFN0cmluZ0luZm8gYnVm LCBnaXN0eGxvZ1BhZ2VSZXVzZSAqeGxyZWMpCiB7Ci0JYXBwZW5kU3RyaW5nSW5mbyhidWYsICJy ZWwgJXUvJXUvJXU7IGJsayAldTsgbGF0ZXN0UmVtb3ZlZFhpZCAldTolbGx1IiwKKwlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgInJlbCAldS8ldS8ldTsgYmxrICV1OyBsYXRlc3RSZW1vdmVkWGlkICVs bHUiLAogCQkJCQkgeGxyZWMtPm5vZGUuc3BjTm9kZSwgeGxyZWMtPm5vZGUuZGJOb2RlLAogCQkJ CQkgeGxyZWMtPm5vZGUucmVsTm9kZSwgeGxyZWMtPmJsb2NrLAotCQkJCQkgRXBvY2hGcm9tRnVs bFRyYW5zYWN0aW9uSWQoeGxyZWMtPmxhdGVzdFJlbW92ZWRGdWxsWGlkKSwKLQkJCQkJICh1bnNp Z25lZCBsb25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZCh4bHJlYy0+bGF0ZXN0UmVt b3ZlZEZ1bGxYaWQpKTsKKwkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIFU2NEZyb21GdWxsVHJh bnNhY3Rpb25JZCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZEZ1bGxYaWQpKTsKIH0KIAogc3RhdGljIHZv aWQKQEAgLTUxLDkgKzUwLDggQEAgb3V0X2dpc3R4bG9nUGFnZVNwbGl0KFN0cmluZ0luZm8gYnVm LCBnaXN0eGxvZ1BhZ2VTcGxpdCAqeGxyZWMpCiBzdGF0aWMgdm9pZAogb3V0X2dpc3R4bG9nUGFn ZURlbGV0ZShTdHJpbmdJbmZvIGJ1ZiwgZ2lzdHhsb2dQYWdlRGVsZXRlICp4bHJlYykKIHsKLQlh cHBlbmRTdHJpbmdJbmZvKGJ1ZiwgImRlbGV0ZVhpZCAldTolbGx1OyBkb3dubGluayAldSIsCi0J CQkJCSBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZCh4bHJlYy0+ZGVsZXRlWGlkKSwKLQkJCQkJ ICh1bnNpZ25lZCBsb25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZCh4bHJlYy0+ZGVs ZXRlWGlkKSwKKwlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgImRlbGV0ZVhpZCAlbGx1OyBkb3dubGlu ayAldSIsCisJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBVNjRGcm9tRnVsbFRyYW5zYWN0aW9u SWQoeGxyZWMtPmRlbGV0ZVhpZCksCiAJCQkJCSB4bHJlYy0+ZG93bmxpbmtPZmZzZXQpOwogfQog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvbmJ0ZGVzYy5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL25idGRlc2MuYwppbmRleCBhNTViNjlkZWRmLi5jZDk4 MDA1M2FiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvbmJ0ZGVzYy5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9uYnRkZXNjLmMKQEAgLTgxLDEwICs4 MSw5IEBAIGJ0cmVlX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCQkJewogCQkJCXhsX2J0cmVlX3VubGlua19wYWdlICp4bHJlYyA9ICh4bF9idHJlZV91bmxp bmtfcGFnZSAqKSByZWM7CiAKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgImxlZnQgJXU7IHJp Z2h0ICV1OyBsZXZlbCAldTsgc2FmZXhpZCAldTolbGx1OyAiLAorCQkJCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAibGVmdCAldTsgcmlnaHQgJXU7IGxldmVsICV1OyBzYWZleGlkICVsbHU7ICIsCiAJ CQkJCQkJCSB4bHJlYy0+bGVmdHNpYiwgeGxyZWMtPnJpZ2h0c2liLCB4bHJlYy0+bGV2ZWwsCi0J CQkJCQkJCSBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZCh4bHJlYy0+c2FmZXhpZCksCi0JCQkJ CQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoeGxyZWMt PnNhZmV4aWQpKTsKKwkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIFU2NEZyb21GdWxsVHJh bnNhY3Rpb25JZCh4bHJlYy0+c2FmZXhpZCkpOwogCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAi bGVhZmxlZnQgJXU7IGxlYWZyaWdodCAldTsgbGVhZnRvcHBhcmVudCAldSIsCiAJCQkJCQkJCSB4 bHJlYy0+bGVhZmxlZnRzaWIsIHhscmVjLT5sZWFmcmlnaHRzaWIsCiAJCQkJCQkJCSB4bHJlYy0+ bGVhZnRvcHBhcmVudCk7CkBAIC0xMDEsMTEgKzEwMCwxMCBAQCBidHJlZV9kZXNjKFN0cmluZ0lu Zm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJCXsKIAkJCQl4bF9idHJlZV9yZXVz ZV9wYWdlICp4bHJlYyA9ICh4bF9idHJlZV9yZXVzZV9wYWdlICopIHJlYzsKIAotCQkJCWFwcGVu ZFN0cmluZ0luZm8oYnVmLCAicmVsICV1LyV1LyV1OyBsYXRlc3RSZW1vdmVkWGlkICV1OiVsbHUi LAorCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAicmVsICV1LyV1LyV1OyBsYXRlc3RSZW1vdmVk WGlkICVsbHUiLAogCQkJCQkJCQkgeGxyZWMtPm5vZGUuc3BjTm9kZSwgeGxyZWMtPm5vZGUuZGJO b2RlLAogCQkJCQkJCQkgeGxyZWMtPm5vZGUucmVsTm9kZSwKLQkJCQkJCQkJIEVwb2NoRnJvbUZ1 bGxUcmFuc2FjdGlvbklkKHhscmVjLT5sYXRlc3RSZW1vdmVkRnVsbFhpZCksCi0JCQkJCQkJCSAo dW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoeGxyZWMtPmxhdGVz dFJlbW92ZWRGdWxsWGlkKSk7CisJCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBVNjRGcm9t RnVsbFRyYW5zYWN0aW9uSWQoeGxyZWMtPmxhdGVzdFJlbW92ZWRGdWxsWGlkKSk7CiAJCQkJYnJl YWs7CiAJCQl9CiAJCWNhc2UgWExPR19CVFJFRV9NRVRBX0NMRUFOVVA6CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9ybWdyZGVzYy94bG9nZGVzYy5jCmluZGV4IGM3M2U5ZGY2M2YuLmRiODc2YzI3NzcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy94bG9nZGVzYy5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy94bG9nZGVzYy5jCkBAIC00NSw3ICs0NSw3IEBAIHhsb2df ZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCUNoZWNrUG9p bnQgKmNoZWNrcG9pbnQgPSAoQ2hlY2tQb2ludCAqKSByZWM7CiAKIAkJYXBwZW5kU3RyaW5nSW5m byhidWYsICJyZWRvICVYLyVYOyAiCi0JCQkJCQkgInRsaSAldTsgcHJldiB0bGkgJXU7IGZwdyAl czsgeGlkICV1OiVsbHU7IG9pZCAldTsgbXVsdGkgJWxsdTsgb2Zmc2V0ICV1OyAiCisJCQkJCQkg InRsaSAldTsgcHJldiB0bGkgJXU7IGZwdyAlczsgeGlkICVsbHU7IG9pZCAldTsgbXVsdGkgJWxs dTsgb2Zmc2V0ICV1OyAiCiAJCQkJCQkgIm9sZGVzdCB4aWQgJWxsdSBpbiBEQiAldTsgb2xkZXN0 IG11bHRpICVsbHUgaW4gREIgJXU7ICIKIAkJCQkJCSAib2xkZXN0L25ld2VzdCBjb21taXQgdGlt ZXN0YW1wIHhpZDogJWxsdS8lbGx1OyAiCiAJCQkJCQkgIm9sZGVzdCBydW5uaW5nIHhpZCAlbGx1 OyAlcyIsCkBAIC01Myw4ICs1Myw3IEBAIHhsb2dfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJCQkJCQkgY2hlY2twb2ludC0+VGhpc1RpbWVMaW5lSUQsCiAJ CQkJCQkgY2hlY2twb2ludC0+UHJldlRpbWVMaW5lSUQsCiAJCQkJCQkgY2hlY2twb2ludC0+ZnVs bFBhZ2VXcml0ZXMgPyAidHJ1ZSIgOiAiZmFsc2UiLAotCQkJCQkJIEVwb2NoRnJvbUZ1bGxUcmFu c2FjdGlvbklkKGNoZWNrcG9pbnQtPm5leHRYaWQpLAotCQkJCQkJICh1bnNpZ25lZCBsb25nIGxv bmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjaGVja3BvaW50LT5uZXh0WGlkKSwKKwkJCQkJ CSAodW5zaWduZWQgbG9uZyBsb25nKSBVNjRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY2hlY2twb2lu dC0+bmV4dFhpZCksCiAJCQkJCQkgY2hlY2twb2ludC0+bmV4dE9pZCwKIAkJCQkJCSAodW5zaWdu ZWQgbG9uZyBsb25nKSBjaGVja3BvaW50LT5uZXh0TXVsdGksCiAJCQkJCQkgY2hlY2twb2ludC0+ bmV4dE11bHRpT2Zmc2V0LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wZ19j b250cm9sZGF0YS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wZ19jb250cm9sZGF0YS5jCmlu ZGV4IDg4ZjZmMzNlZjUuLjRhYjRhMGE3MDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvcGdfY29udHJvbGRhdGEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3BnX2Nv bnRyb2xkYXRhLmMKQEAgLTE2NCw5ICsxNjQsOCBAQCBwZ19jb250cm9sX2NoZWNrcG9pbnQoUEdf RlVOQ1RJT05fQVJHUykKIAl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0oQ29udHJvbEZpbGUtPmNo ZWNrUG9pbnRDb3B5LmZ1bGxQYWdlV3JpdGVzKTsKIAludWxsc1s1XSA9IGZhbHNlOwogCi0JdmFs dWVzWzZdID0gQ1N0cmluZ0dldFRleHREYXR1bShwc3ByaW50ZigiJXU6JWxsdSIsCi0JCQkJCQkJ CQkJCSBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChDb250cm9sRmlsZS0+Y2hlY2tQb2ludENv cHkubmV4dFhpZCksCi0JCQkJCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVs bFRyYW5zYWN0aW9uSWQoQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm5leHRYaWQpKSk7CisJ dmFsdWVzWzZdID0gQ1N0cmluZ0dldFRleHREYXR1bShwc3ByaW50ZigiJWxsdSIsCisJCQkJCQkJ CQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBVNjRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoQ29udHJv bEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm5leHRYaWQpKSk7CiAJbnVsbHNbNl0gPSBmYWxzZTsKIAog CXZhbHVlc1s3XSA9IE9iamVjdElkR2V0RGF0dW0oQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5 Lm5leHRPaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9s ZGF0YS5jIGIvc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jCmluZGV4IDJj MTAzMjIzNTUuLmE4YTQ2ZDViZjAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29udHJvbGRhdGEv cGdfY29udHJvbGRhdGEuYworKysgYi9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xk YXRhLmMKQEAgLTI0Nyw5ICsyNDcsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJ CSAgIENvbnRyb2xGaWxlLT5jaGVja1BvaW50Q29weS5QcmV2VGltZUxpbmVJRCk7CiAJcHJpbnRm KF8oIkxhdGVzdCBjaGVja3BvaW50J3MgZnVsbF9wYWdlX3dyaXRlczogJXNcbiIpLAogCQkgICBD b250cm9sRmlsZS0+Y2hlY2tQb2ludENvcHkuZnVsbFBhZ2VXcml0ZXMgPyBfKCJvbiIpIDogXygi b2ZmIikpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5leHRYSUQ6ICAgICAgICAg ICV1OiVsbHVcbiIpLAotCQkgICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChDb250cm9sRmls ZS0+Y2hlY2tQb2ludENvcHkubmV4dFhpZCksCi0JCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFhp ZEZyb21GdWxsVHJhbnNhY3Rpb25JZChDb250cm9sRmlsZS0+Y2hlY2tQb2ludENvcHkubmV4dFhp ZCkpOworCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5leHRYSUQ6ICAgICAgICAgICVs bHVcbiIpLAorCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBVNjRGcm9tRnVsbFRyYW5zYWN0aW9u SWQoQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm5leHRYaWQpKTsKIAlwcmludGYoXygiTGF0 ZXN0IGNoZWNrcG9pbnQncyBOZXh0T0lEOiAgICAgICAgICAldVxuIiksCiAJCSAgIENvbnRyb2xG aWxlLT5jaGVja1BvaW50Q29weS5uZXh0T2lkKTsKIAlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9p bnQncyBOZXh0TXVsdGlYYWN0SWQ6ICAlbGx1XG4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf dXBncmFkZS9jb250cm9sZGF0YS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2NvbnRyb2xkYXRhLmMK aW5kZXggNDFiOGY2OWI4Yy4uMmIxYjFhMzQzNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdy YWRlL2NvbnRyb2xkYXRhLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2NvbnRyb2xkYXRhLmMK QEAgLTgsNiArOCw3IEBACiAgKi8KIAogI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCisjaW5jbHVk ZSAiYWNjZXNzL3RyYW5zYW0uaCIKIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAKQEAgLTI2MywxMyAr MjY0LDIyIEBAIGdldF9jb250cm9sX2RhdGEoQ2x1c3RlckluZm8gKmNsdXN0ZXIsIGJvb2wgbGl2 ZV9jaGVjaykKIAkJfQogCQllbHNlIGlmICgocCA9IHN0cnN0cihidWZpbiwgIkxhdGVzdCBjaGVj a3BvaW50J3MgTmV4dFhJRDoiKSkgIT0gTlVMTCkKIAkJeworCQkJRnVsbFRyYW5zYWN0aW9uSWQJ CXhpZDsKKwogCQkJcCA9IHN0cmNocihwLCAnOicpOwogCiAJCQlpZiAocCA9PSBOVUxMIHx8IHN0 cmxlbihwKSA8PSAxKQogCQkJCXBnX2ZhdGFsKCIlZDogY29udHJvbGRhdGEgcmV0cmlldmFsIHBy b2JsZW1cbiIsIF9fTElORV9fKTsKIAogCQkJcCsrOwkJCQkvKiByZW1vdmUgJzonIGNoYXIgKi8K LQkJCWNsdXN0ZXItPmNvbnRyb2xkYXRhLmNoa3BudF9ueHRlcG9jaCA9IHN0cjJ1aW50KHApOwor CisJCQkvKgorCQkJICogTmV4dFhJRCByZXByZXNlbnRhdGlvbiBpbiBjb250cm9sZGF0YSBmaWxl IGNoYW5nZWQgZnJvbSBFcG9jaDpYaWQKKwkJCSAqIHRvIDY0LWJpdCBGdWxsVHJhbnNhY3Rpb25J ZCByZXByZXNlbnRhdGlvbiBhcyBhIHBhcnQgb2YgbWFraW5nCisJCQkgKiB4aWRzIDY0LWJpdCBp biB0aGUgZnV0dXJlLiBIZXJlIHdlIHN1cHBvcnQgYm90aCBjb250cm9sZGF0YQorCQkJICogZm9y bWF0cy4KKwkJCSAqLworCQkJeGlkLnZhbHVlID0gc3RydG91NjQocCwgTlVMTCwgMTApOwogCiAJ CQkvKgogCQkJICogRGVsaW1pdGVyIGNoYW5nZWQgZnJvbSAnLycgdG8gJzonIGluIDkuNi4gIFdl IGRvbid0IHRlc3QgZm9yCkBAIC0yODQsMTEgKzI5NCwyMyBAQCBnZXRfY29udHJvbF9kYXRhKENs dXN0ZXJJbmZvICpjbHVzdGVyLCBib29sIGxpdmVfY2hlY2spCiAJCQllbHNlCiAJCQkJcCA9IE5V TEw7CiAKLQkJCWlmIChwID09IE5VTEwgfHwgc3RybGVuKHApIDw9IDEpCi0JCQkJcGdfZmF0YWwo IiVkOiBjb250cm9sZGF0YSByZXRyaWV2YWwgcHJvYmxlbVxuIiwgX19MSU5FX18pOworCQkJaWYg KHAgPT0gTlVMTCkKKwkJCXsKKwkJCQkvKiBGdWxsVHJhbnNhY3Rpb25JZCByZXByZXNlbnRhdGlv biAqLworCQkJCWNsdXN0ZXItPmNvbnRyb2xkYXRhLmNoa3BudF9ueHR4aWQgPSBYaWRGcm9tRnVs bFRyYW5zYWN0aW9uSWQoeGlkKTsKKwkJCQljbHVzdGVyLT5jb250cm9sZGF0YS5jaGtwbnRfbnh0 ZXBvY2ggPSBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZCh4aWQpOworCQkJfQorCQkJZWxzZQor CQkJeworCQkJCWlmIChzdHJsZW4ocCkgPD0gMSkKKwkJCQkJcGdfZmF0YWwoIiVkOiBjb250cm9s ZGF0YSByZXRyaWV2YWwgcHJvYmxlbVxuIiwgX19MSU5FX18pOworCisJCQkJLyogRXBvY2g6WGlk IHJlcHJlc2VudGF0aW9uICovCisJCQkJcCsrOwkJCQkvKiByZW1vdmUgJy8nIG9yICc6JyBjaGFy ICovCisJCQkJY2x1c3Rlci0+Y29udHJvbGRhdGEuY2hrcG50X254dHhpZCA9IHN0cjJ1aW50KHAp OworCQkJCWNsdXN0ZXItPmNvbnRyb2xkYXRhLmNoa3BudF9ueHRlcG9jaCA9IChUcmFuc2FjdGlv bklkKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoeGlkKTsKKwkJCX0KIAotCQkJcCsrOwkJCQkv KiByZW1vdmUgJy8nIG9yICc6JyBjaGFyICovCi0JCQljbHVzdGVyLT5jb250cm9sZGF0YS5jaGtw bnRfbnh0eGlkID0gc3RyMnVpbnQocCk7CiAJCQlnb3RfeGlkID0gdHJ1ZTsKIAkJfQogCQllbHNl IGlmICgocCA9IHN0cnN0cihidWZpbiwgIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dE9JRDoiKSkg IT0gTlVMTCkKLS0gCjIuMzUuMQoK --00000000000006543605dd8e35da Content-Type: application/octet-stream; name="v33-0002-Use-64-bit-format-to-output-XIDs.patch" Content-Disposition: attachment; filename="v33-0002-Use-64-bit-format-to-output-XIDs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l2g4s8441 RnJvbSAzY2IxZTRmN2M3NzkyMjM0M2QzODU4MjgzMzAwMzhlYWY2YWNlMzI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxNToyNDoyNSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjMz IDIvM10gVXNlIDY0LWJpdCBmb3JtYXQgdG8gb3V0cHV0IFhJRHMKClJlcGxhY2UgdGhlICV1IGZv cm1hdHRpbmcgc3RyaW5nIGZvciBYSURzIHdpdGggJWxsdSBhbmQgY2FzdCB0bwp1bnNpZ25lZCBs b25nIGxvbmcuIFRoaXMgaXMgdGhlIHBhcnQgb2YgYSBtYWtpbmcgWElEcyA2NC1iaXQuCldoaWxl IGFjdHVhbGx5IFhJRHMgYXJlIHN0aWxsIDMyLWJpdCwgdGhpcyBwYXRjaCBjb21wbGV0ZWx5IHN1 cHBvcnRzIGJvdGgKMzIgYW5kIDY0LWJpdC4KCkF1dGhvcjogQWxleGFuZGVyIEtvcm90a292IDxh ZWtvcm90a292QGdtYWlsLmNvbT4KQXV0aG9yOiBUZW9kb3IgU2lnYWV2IDx0ZW9kb3JAc2lnYWV2 LnJ1PgpBdXRob3I6IE5pa2l0YSBHbHVraG92IDxuLmdsdWhvdkBwb3N0Z3Jlc3Byby5ydT4KQXV0 aG9yOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkF1dGhvcjogUGF2ZWwgQm9yaXNv diA8cGFzaGtpbi5lbGZlQGdtYWlsLmNvbT4KQXV0aG9yOiBZdXJhIFNva29sb3YgPHkuc29rb2xv dkBwb3N0Z3Jlc3Byby5ydT4gPGZ1bm55LmZhbGNvbkBnbWFpbC5jb20+CkF1dGhvcjogQWxla3Nh bmRlciBBbGVrc2VldiA8YWxla3NhbmRlckB0aW1lc2NhbGUuY29tPgpSZXZpZXdlZC1ieTogQWxl a3NhbmRlciBBbGVrc2VldiA8YWxla3NhbmRlckB0aW1lc2NhbGUuY29tPgpEaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBQ0clM0RlelplMU5RU0NuZkhPcjc4QXRBWnhKWmVDdnhydHMw eWdyeFl3ZSUzRHB5eWpWV0ElNDBtYWlsLmdtYWlsLmNvbQpEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tL0NBSjdjNlRQRE9ZQllybkNBZXluZGtCa3RPMFdHMnhTZFlkdVRGMG54cSUyQnZm a21URjVRJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBjb250cmliL2FtY2hlY2svdmVyaWZ5X2hlYXBh bS5jICAgICAgICAgICAgICAgfCAxMjIgKysrKysrKysrLS0tLS0tLS0tCiBjb250cmliL3BhZ2Vp bnNwZWN0L2J0cmVlZnVuY3MuYyAgICAgICAgICAgICAgfCAgIDQgKy0KIGNvbnRyaWIvcGdyb3ds b2Nrcy9wZ3Jvd2xvY2tzLmMgICAgICAgICAgICAgICB8ICAgOSArLQogY29udHJpYi90ZXN0X2Rl Y29kaW5nL3Rlc3RfZGVjb2RpbmcuYyAgICAgICAgIHwgIDM4ICsrKystLQogc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICAgICAgIHwgIDU0ICsrKystLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jICAgICAgfCAgIDQgKy0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgICAgICB8ICAxMiArLQogc3JjL2JhY2tl bmQvYWNjZXNzL3JtZ3JkZXNjL2Nsb2dkZXNjLmMgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2Vu ZC9hY2Nlc3Mvcm1ncmRlc2MvY29tbWl0dHNkZXNjLmMgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9ybWdyZGVzYy9naXN0ZGVzYy5jICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL2hhc2hkZXNjLmMgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyAgICAgICAgfCAgMzggKysrLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3Mvcm1ncmRlc2MvbXhhY3RkZXNjLmMgICAgICAgfCAgMTAgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9ybWdyZGVzYy9uYnRkZXNjLmMgICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL3NwZ2Rlc2MuYyAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3Mvcm1ncmRlc2Mvc3RhbmRieWRlc2MuYyAgICAgfCAgMTUgKystCiBzcmMvYmFja2VuZC9h Y2Nlc3Mvcm1ncmRlc2MveGFjdGRlc2MuYyAgICAgICAgfCAgMTAgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9ybWdyZGVzYy94bG9nZGVzYy5jICAgICAgICB8ICAyMiArKy0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYyAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL211bHRpeGFjdC5jICAgICAgICB8IDEwMyArKysrKysrKy0tLS0tLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYyAgICAgICAgICAgICB8ICAyNCArKy0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jICAgICAgICAgfCAgIDUgKy0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3RyYW5zYW0uYyAgICAgICAgICB8ICAgOCArLQogc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYyAgICAgICAgIHwgIDQwICsrKy0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jICAgICAgICAgICAgIHwgIDE2ICsrLQog c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgICAgIHwgIDQ1ICsrKyst LS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jICAgICB8ICAgNCAr LQogLi4uL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jICAgICAgIHwgIDIzICsr LS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc25hcGJ1aWxkLmMgICB8ICA0MSAr KystLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAz MCArKystLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyAgICAgICAgIHwg ICA1ICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAg IDYgKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jICAgICAgICAgICB8ICAz NSArKy0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jICAgICAgICAgICAgIHwg IDI0ICsrLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYyAgICAgICAgICB8 ICAgOSArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2xvY2tmdW5jcy5jICAgICAgICAgICAgIHwg ICAzICstCiBzcmMvYmFja2VuZC91dGlscy9lcnJvci9jc3Zsb2cuYyAgICAgICAgICAgICAgfCAg IDUgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYyAgICAgICAgICAgICAgICB8ICAx NCArLQogc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvanNvbmxvZy5jICAgICAgICAgICAgIHwgICA4 ICstCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3BnX2NvbnRyb2xkYXRhLmMgICAgICAgfCAgIDQg Ky0KIHNyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jICAgICAgICAgICAgICB8ICAxOCAr Ky0KIHNyYy9iaW4vcGdfYW1jaGVjay90LzAwNF92ZXJpZnlfaGVhcGFtLnBsICAgICB8ICAgOCAr LQogc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jICAgICAgIHwgIDMyICsr LS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMTcg KystCiBzcmMvYmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMgICAgICAgICAgICAgfCAgNjYg KysrKystLS0tLQogc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyAgICAgICAgICAgICAg IHwgIDQ2ICsrKy0tLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMgICAgICAgICAg ICAgICB8ICAgNCArLQogNDcgZmlsZXMgY2hhbmdlZCwgNTY2IGluc2VydGlvbnMoKyksIDQ2MCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X2hlYXBhbS5j IGIvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9oZWFwYW0uYwppbmRleCBlNWY3MzU1ZGNiLi4yMGEz NzMzZTdkIDEwMDY0NAotLS0gYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X2hlYXBhbS5jCisrKyBi L2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfaGVhcGFtLmMKQEAgLTc0MywyNCArNzQzLDI0IEBAIGNo ZWNrX3R1cGxlX3Zpc2liaWxpdHkoSGVhcENoZWNrQ29udGV4dCAqY3R4KQogCQkJYnJlYWs7CiAJ CWNhc2UgWElEX0lOX0ZVVFVSRToKIAkJCXJlcG9ydF9jb3JydXB0aW9uKGN0eCwKLQkJCQkJCQkg IHBzcHJpbnRmKCJ4bWluICV1IGVxdWFscyBvciBleGNlZWRzIG5leHQgdmFsaWQgdHJhbnNhY3Rp b24gSUQgJXU6JXUiLAotCQkJCQkJCQkJICAgeG1pbiwKKwkJCQkJCQkgIHBzcHJpbnRmKCJ4bWlu ICVsbHUgZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAldTolbGx1 IiwKKwkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIHhtaW4sCiAJCQkJCQkJCQkgICBF cG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm5leHRfZnhpZCksCi0JCQkJCQkJCQkgICBY aWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0X2Z4aWQpKSk7CisJCQkJCQkJCQkgICAo dW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0X2Z4 aWQpKSk7CiAJCQlyZXR1cm4gZmFsc2U7CiAJCWNhc2UgWElEX1BSRUNFREVTX0NMVVNURVJNSU46 CiAJCQlyZXBvcnRfY29ycnVwdGlvbihjdHgsCi0JCQkJCQkJICBwc3ByaW50ZigieG1pbiAldSBw cmVjZWRlcyBvbGRlc3QgdmFsaWQgdHJhbnNhY3Rpb24gSUQgJXU6JXUiLAotCQkJCQkJCQkJICAg eG1pbiwKKwkJCQkJCQkgIHBzcHJpbnRmKCJ4bWluICVsbHUgcHJlY2VkZXMgb2xkZXN0IHZhbGlk IHRyYW5zYWN0aW9uIElEICV1OiVsbHUiLAorCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9u ZykgeG1pbiwKIAkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+b2xk ZXN0X2Z4aWQpLAotCQkJCQkJCQkJICAgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+b2xk ZXN0X2Z4aWQpKSk7CisJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVs bFRyYW5zYWN0aW9uSWQoY3R4LT5vbGRlc3RfZnhpZCkpKTsKIAkJCXJldHVybiBmYWxzZTsKIAkJ Y2FzZSBYSURfUFJFQ0VERVNfUkVMTUlOOgogCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJ CQkJCSAgcHNwcmludGYoInhtaW4gJXUgcHJlY2VkZXMgcmVsYXRpb24gZnJlZXplIHRocmVzaG9s ZCAldToldSIsCi0JCQkJCQkJCQkgICB4bWluLAorCQkJCQkJCSAgcHNwcmludGYoInhtaW4gJWxs dSBwcmVjZWRlcyByZWxhdGlvbiBmcmVlemUgdGhyZXNob2xkICV1OiVsbHUiLAorCQkJCQkJCQkJ ICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgeG1pbiwKIAkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1bGxU cmFuc2FjdGlvbklkKGN0eC0+cmVsZnJvemVuZnhpZCksCi0JCQkJCQkJCQkgICBYaWRGcm9tRnVs bFRyYW5zYWN0aW9uSWQoY3R4LT5yZWxmcm96ZW5meGlkKSkpOworCQkJCQkJCQkJICAgKHVuc2ln bmVkIGxvbmcgbG9uZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+cmVsZnJvemVuZnhp ZCkpKTsKIAkJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTc4NCwyNCArNzg0LDI0IEBAIGNoZWNr X3R1cGxlX3Zpc2liaWxpdHkoSGVhcENoZWNrQ29udGV4dCAqY3R4KQogCQkJCQlyZXR1cm4gZmFs c2U7CiAJCQkJY2FzZSBYSURfSU5fRlVUVVJFOgogCQkJCQlyZXBvcnRfY29ycnVwdGlvbihjdHgs Ci0JCQkJCQkJCQkgIHBzcHJpbnRmKCJvbGQtc3R5bGUgVkFDVVVNIEZVTEwgdHJhbnNhY3Rpb24g SUQgJXUgZm9yIG1vdmVkIG9mZiB0dXBsZSBlcXVhbHMgb3IgZXhjZWVkcyBuZXh0IHZhbGlkIHRy YW5zYWN0aW9uIElEICV1OiV1IiwKLQkJCQkJCQkJCQkJICAgeHZhYywKKwkJCQkJCQkJCSAgcHNw cmludGYoIm9sZC1zdHlsZSBWQUNVVU0gRlVMTCB0cmFuc2FjdGlvbiBJRCAlbGx1IGZvciBtb3Zl ZCBvZmYgdHVwbGUgZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAl dTolbGx1IiwKKwkJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgeHZhYywKIAkJCQkJ CQkJCQkJICAgRXBvY2hGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0X2Z4aWQpLAotCQkJ CQkJCQkJCQkgICBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0X2Z4aWQpKSk7CisJ CQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25J ZChjdHgtPm5leHRfZnhpZCkpKTsKIAkJCQkJcmV0dXJuIGZhbHNlOwogCQkJCWNhc2UgWElEX1BS RUNFREVTX1JFTE1JTjoKIAkJCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJCQkJCQkJICBw c3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0aW9uIElEICV1IGZvciBtb3Zl ZCBvZmYgdHVwbGUgcHJlY2VkZXMgcmVsYXRpb24gZnJlZXplIHRocmVzaG9sZCAldToldSIsCi0J CQkJCQkJCQkJCSAgIHh2YWMsCisJCQkJCQkJCQkgIHBzcHJpbnRmKCJvbGQtc3R5bGUgVkFDVVVN IEZVTEwgdHJhbnNhY3Rpb24gSUQgJWxsdSBmb3IgbW92ZWQgb2ZmIHR1cGxlIHByZWNlZGVzIHJl bGF0aW9uIGZyZWV6ZSB0aHJlc2hvbGQgJXU6JWxsdSIsCisJCQkJCQkJCQkJCSAgICh1bnNpZ25l ZCBsb25nIGxvbmcpIHh2YWMsCiAJCQkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlv bklkKGN0eC0+cmVsZnJvemVuZnhpZCksCi0JCQkJCQkJCQkJCSAgIFhpZEZyb21GdWxsVHJhbnNh Y3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpKSk7CisJCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBs b25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpKSk7 CiAJCQkJCXJldHVybiBmYWxzZTsKIAkJCQljYXNlIFhJRF9QUkVDRURFU19DTFVTVEVSTUlOOgog CQkJCQlyZXBvcnRfY29ycnVwdGlvbihjdHgsCi0JCQkJCQkJCQkgIHBzcHJpbnRmKCJvbGQtc3R5 bGUgVkFDVVVNIEZVTEwgdHJhbnNhY3Rpb24gSUQgJXUgZm9yIG1vdmVkIG9mZiB0dXBsZSBwcmVj ZWRlcyBvbGRlc3QgdmFsaWQgdHJhbnNhY3Rpb24gSUQgJXU6JXUiLAotCQkJCQkJCQkJCQkgICB4 dmFjLAorCQkJCQkJCQkJICBwc3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0 aW9uIElEICVsbHUgZm9yIG1vdmVkIG9mZiB0dXBsZSBwcmVjZWRlcyBvbGRlc3QgdmFsaWQgdHJh bnNhY3Rpb24gSUQgJXU6JWxsdSIsCisJCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcp IHh2YWMsCiAJCQkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+b2xk ZXN0X2Z4aWQpLAotCQkJCQkJCQkJCQkgICBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5v bGRlc3RfZnhpZCkpKTsKKwkJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgWGlkRnJv bUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+b2xkZXN0X2Z4aWQpKSk7CiAJCQkJCXJldHVybiBmYWxz ZTsKIAkJCQljYXNlIFhJRF9CT1VORFNfT0s6CiAJCQkJCWJyZWFrOwpAQCAtODExLDEzICs4MTEs MTMgQEAgY2hlY2tfdHVwbGVfdmlzaWJpbGl0eShIZWFwQ2hlY2tDb250ZXh0ICpjdHgpCiAJCQl7 CiAJCQkJY2FzZSBYSURfSVNfQ1VSUkVOVF9YSUQ6CiAJCQkJCXJlcG9ydF9jb3JydXB0aW9uKGN0 eCwKLQkJCQkJCQkJCSAgcHNwcmludGYoIm9sZC1zdHlsZSBWQUNVVU0gRlVMTCB0cmFuc2FjdGlv biBJRCAldSBmb3IgbW92ZWQgb2ZmIHR1cGxlIG1hdGNoZXMgb3VyIGN1cnJlbnQgdHJhbnNhY3Rp b24gSUQiLAotCQkJCQkJCQkJCQkgICB4dmFjKSk7CisJCQkJCQkJCQkgIHBzcHJpbnRmKCJvbGQt c3R5bGUgVkFDVVVNIEZVTEwgdHJhbnNhY3Rpb24gSUQgJWxsdSBmb3IgbW92ZWQgb2ZmIHR1cGxl IG1hdGNoZXMgb3VyIGN1cnJlbnQgdHJhbnNhY3Rpb24gSUQiLAorCQkJCQkJCQkJCQkgICAodW5z aWduZWQgbG9uZyBsb25nKSB4dmFjKSk7CiAJCQkJCXJldHVybiBmYWxzZTsKIAkJCQljYXNlIFhJ RF9JTl9QUk9HUkVTUzoKIAkJCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJCQkJCQkJICBw c3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0aW9uIElEICV1IGZvciBtb3Zl ZCBvZmYgdHVwbGUgYXBwZWFycyB0byBiZSBpbiBwcm9ncmVzcyIsCi0JCQkJCQkJCQkJCSAgIHh2 YWMpKTsKKwkJCQkJCQkJCSAgcHNwcmludGYoIm9sZC1zdHlsZSBWQUNVVU0gRlVMTCB0cmFuc2Fj dGlvbiBJRCAlbGx1IGZvciBtb3ZlZCBvZmYgdHVwbGUgYXBwZWFycyB0byBiZSBpbiBwcm9ncmVz cyIsCisJCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIHh2YWMpKTsKIAkJCQkJcmV0 dXJuIGZhbHNlOwogCiAJCQkJY2FzZSBYSURfQ09NTUlUVEVEOgpAQCAtODUzLDI0ICs4NTMsMjQg QEAgY2hlY2tfdHVwbGVfdmlzaWJpbGl0eShIZWFwQ2hlY2tDb250ZXh0ICpjdHgpCiAJCQkJCXJl dHVybiBmYWxzZTsKIAkJCQljYXNlIFhJRF9JTl9GVVRVUkU6CiAJCQkJCXJlcG9ydF9jb3JydXB0 aW9uKGN0eCwKLQkJCQkJCQkJCSAgcHNwcmludGYoIm9sZC1zdHlsZSBWQUNVVU0gRlVMTCB0cmFu c2FjdGlvbiBJRCAldSBmb3IgbW92ZWQgaW4gdHVwbGUgZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2 YWxpZCB0cmFuc2FjdGlvbiBJRCAldToldSIsCi0JCQkJCQkJCQkJCSAgIHh2YWMsCisJCQkJCQkJ CQkgIHBzcHJpbnRmKCJvbGQtc3R5bGUgVkFDVVVNIEZVTEwgdHJhbnNhY3Rpb24gSUQgJWxsdSBm b3IgbW92ZWQgaW4gdHVwbGUgZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2YWxpZCB0cmFuc2FjdGlv biBJRCAldTolbGx1IiwKKwkJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgeHZhYywK IAkJCQkJCQkJCQkJICAgRXBvY2hGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0X2Z4aWQp LAotCQkJCQkJCQkJCQkgICBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0X2Z4aWQp KSk7CisJCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNh Y3Rpb25JZChjdHgtPm5leHRfZnhpZCkpKTsKIAkJCQkJcmV0dXJuIGZhbHNlOwogCQkJCWNhc2Ug WElEX1BSRUNFREVTX1JFTE1JTjoKIAkJCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJCQkJ CQkJICBwc3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0aW9uIElEICV1IGZv ciBtb3ZlZCBpbiB0dXBsZSBwcmVjZWRlcyByZWxhdGlvbiBmcmVlemUgdGhyZXNob2xkICV1OiV1 IiwKLQkJCQkJCQkJCQkJICAgeHZhYywKKwkJCQkJCQkJCSAgcHNwcmludGYoIm9sZC1zdHlsZSBW QUNVVU0gRlVMTCB0cmFuc2FjdGlvbiBJRCAlbGx1IGZvciBtb3ZlZCBpbiB0dXBsZSBwcmVjZWRl cyByZWxhdGlvbiBmcmVlemUgdGhyZXNob2xkICV1OiVsbHUiLAorCQkJCQkJCQkJCQkgICAodW5z aWduZWQgbG9uZyBsb25nKSB4dmFjLAogCQkJCQkJCQkJCQkgICBFcG9jaEZyb21GdWxsVHJhbnNh Y3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpLAotCQkJCQkJCQkJCQkgICBYaWRGcm9tRnVsbFRy YW5zYWN0aW9uSWQoY3R4LT5yZWxmcm96ZW5meGlkKSkpOworCQkJCQkJCQkJCQkgICAodW5zaWdu ZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5yZWxmcm96ZW5meGlk KSkpOwogCQkJCQlyZXR1cm4gZmFsc2U7CiAJCQkJY2FzZSBYSURfUFJFQ0VERVNfQ0xVU1RFUk1J TjoKIAkJCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJCQkJCQkJICBwc3ByaW50Zigib2xk LXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0aW9uIElEICV1IGZvciBtb3ZlZCBpbiB0dXBsZSBw cmVjZWRlcyBvbGRlc3QgdmFsaWQgdHJhbnNhY3Rpb24gSUQgJXU6JXUiLAotCQkJCQkJCQkJCQkg ICB4dmFjLAorCQkJCQkJCQkJICBwc3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5z YWN0aW9uIElEICVsbHUgZm9yIG1vdmVkIGluIHR1cGxlIHByZWNlZGVzIG9sZGVzdCB2YWxpZCB0 cmFuc2FjdGlvbiBJRCAldTolbGx1IiwKKwkJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9u ZykgeHZhYywKIAkJCQkJCQkJCQkJICAgRXBvY2hGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5v bGRlc3RfZnhpZCksCi0JCQkJCQkJCQkJCSAgIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgt Pm9sZGVzdF9meGlkKSkpOworCQkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRG cm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5vbGRlc3RfZnhpZCkpKTsKIAkJCQkJcmV0dXJuIGZh bHNlOwogCQkJCWNhc2UgWElEX0JPVU5EU19PSzoKIAkJCQkJYnJlYWs7CkBAIC04ODAsMTMgKzg4 MCwxMyBAQCBjaGVja190dXBsZV92aXNpYmlsaXR5KEhlYXBDaGVja0NvbnRleHQgKmN0eCkKIAkJ CXsKIAkJCQljYXNlIFhJRF9JU19DVVJSRU5UX1hJRDoKIAkJCQkJcmVwb3J0X2NvcnJ1cHRpb24o Y3R4LAotCQkJCQkJCQkJICBwc3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0 aW9uIElEICV1IGZvciBtb3ZlZCBpbiB0dXBsZSBtYXRjaGVzIG91ciBjdXJyZW50IHRyYW5zYWN0 aW9uIElEIiwKLQkJCQkJCQkJCQkJICAgeHZhYykpOworCQkJCQkJCQkJICBwc3ByaW50Zigib2xk LXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0aW9uIElEICVsbHUgZm9yIG1vdmVkIGluIHR1cGxl IG1hdGNoZXMgb3VyIGN1cnJlbnQgdHJhbnNhY3Rpb24gSUQiLAorCQkJCQkJCQkJCQkgICAodW5z aWduZWQgbG9uZyBsb25nKSB4dmFjKSk7CiAJCQkJCXJldHVybiBmYWxzZTsKIAkJCQljYXNlIFhJ RF9JTl9QUk9HUkVTUzoKIAkJCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJCQkJCQkJICBw c3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0aW9uIElEICV1IGZvciBtb3Zl ZCBpbiB0dXBsZSBhcHBlYXJzIHRvIGJlIGluIHByb2dyZXNzIiwKLQkJCQkJCQkJCQkJICAgeHZh YykpOworCQkJCQkJCQkJICBwc3ByaW50Zigib2xkLXN0eWxlIFZBQ1VVTSBGVUxMIHRyYW5zYWN0 aW9uIElEICVsbHUgZm9yIG1vdmVkIGluIHR1cGxlIGFwcGVhcnMgdG8gYmUgaW4gcHJvZ3Jlc3Mi LAorCQkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSB4dmFjKSk7CiAJCQkJCXJldHVy biBmYWxzZTsKIAogCQkJCWNhc2UgWElEX0NPTU1JVFRFRDoKQEAgLTk1NiwxOSArOTU2LDIxIEBA IGNoZWNrX3R1cGxlX3Zpc2liaWxpdHkoSGVhcENoZWNrQ29udGV4dCAqY3R4KQogCQkJCXJldHVy biB0cnVlOwogCQkJY2FzZSBYSURfUFJFQ0VERVNfUkVMTUlOOgogCQkJCXJlcG9ydF9jb3JydXB0 aW9uKGN0eCwKLQkJCQkJCQkJICBwc3ByaW50ZigibXVsdGl0cmFuc2FjdGlvbiBJRCAldSBwcmVj ZWRlcyByZWxhdGlvbiBtaW5pbXVtIG11bHRpdHJhbnNhY3Rpb24gSUQgdGhyZXNob2xkICV1IiwK LQkJCQkJCQkJCQkgICB4bWF4LCBjdHgtPnJlbG1pbm14aWQpKTsKKwkJCQkJCQkJICBwc3ByaW50 ZigibXVsdGl0cmFuc2FjdGlvbiBJRCAlbGx1IHByZWNlZGVzIHJlbGF0aW9uIG1pbmltdW0gbXVs dGl0cmFuc2FjdGlvbiBJRCB0aHJlc2hvbGQgJWxsdSIsCisJCQkJCQkJCQkJICAgKHVuc2lnbmVk IGxvbmcgbG9uZykgeG1heCwKKwkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBjdHgt PnJlbG1pbm14aWQpKTsKIAkJCQlyZXR1cm4gdHJ1ZTsKIAkJCWNhc2UgWElEX1BSRUNFREVTX0NM VVNURVJNSU46CiAJCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJCQkJCQkgIHBzcHJpbnRm KCJtdWx0aXRyYW5zYWN0aW9uIElEICV1IHByZWNlZGVzIG9sZGVzdCB2YWxpZCBtdWx0aXRyYW5z YWN0aW9uIElEIHRocmVzaG9sZCAldSIsCi0JCQkJCQkJCQkJICAgeG1heCwgY3R4LT5vbGRlc3Rf bXhhY3QpKTsKKwkJCQkJCQkJICBwc3ByaW50ZigibXVsdGl0cmFuc2FjdGlvbiBJRCAlbGx1IHBy ZWNlZGVzIG9sZGVzdCB2YWxpZCBtdWx0aXRyYW5zYWN0aW9uIElEIHRocmVzaG9sZCAlbGx1IiwK KwkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSB4bWF4LAorCQkJCQkJCQkJCSAgICh1 bnNpZ25lZCBsb25nIGxvbmcpIGN0eC0+b2xkZXN0X214YWN0KSk7CiAJCQkJcmV0dXJuIHRydWU7 CiAJCQljYXNlIFhJRF9JTl9GVVRVUkU6CiAJCQkJcmVwb3J0X2NvcnJ1cHRpb24oY3R4LAotCQkJ CQkJCQkgIHBzcHJpbnRmKCJtdWx0aXRyYW5zYWN0aW9uIElEICV1IGVxdWFscyBvciBleGNlZWRz IG5leHQgdmFsaWQgbXVsdGl0cmFuc2FjdGlvbiBJRCAldSIsCi0JCQkJCQkJCQkJICAgeG1heCwK LQkJCQkJCQkJCQkgICBjdHgtPm5leHRfbXhhY3QpKTsKKwkJCQkJCQkJICBwc3ByaW50ZigibXVs dGl0cmFuc2FjdGlvbiBJRCAlbGx1IGVxdWFscyBvciBleGNlZWRzIG5leHQgdmFsaWQgbXVsdGl0 cmFuc2FjdGlvbiBJRCAlbGx1IiwKKwkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSB4 bWF4LAorCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIGN0eC0+bmV4dF9teGFjdCkp OwogCQkJCXJldHVybiB0cnVlOwogCQkJY2FzZSBYSURfQk9VTkRTX09LOgogCQkJCWJyZWFrOwpA QCAtMTAxNCwyNCArMTAxNiwyNCBAQCBjaGVja190dXBsZV92aXNpYmlsaXR5KEhlYXBDaGVja0Nv bnRleHQgKmN0eCkKIAkJCQlyZXR1cm4gdHJ1ZTsKIAkJCWNhc2UgWElEX0lOX0ZVVFVSRToKIAkJ CQlyZXBvcnRfY29ycnVwdGlvbihjdHgsCi0JCQkJCQkJCSAgcHNwcmludGYoInVwZGF0ZSB4aWQg JXUgZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAldToldSIsCi0J CQkJCQkJCQkJICAgeG1heCwKKwkJCQkJCQkJICBwc3ByaW50ZigidXBkYXRlIHhpZCAlbGx1IGVx dWFscyBvciBleGNlZWRzIG5leHQgdmFsaWQgdHJhbnNhY3Rpb24gSUQgJXU6JWxsdSIsCisJCQkJ CQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgeG1heCwKIAkJCQkJCQkJCQkgICBFcG9jaEZy b21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm5leHRfZnhpZCksCi0JCQkJCQkJCQkJICAgWGlkRnJv bUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+bmV4dF9meGlkKSkpOworCQkJCQkJCQkJCSAgICh1bnNp Z25lZCBsb25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm5leHRfZnhpZCkp KTsKIAkJCQlyZXR1cm4gdHJ1ZTsKIAkJCWNhc2UgWElEX1BSRUNFREVTX1JFTE1JTjoKIAkJCQly ZXBvcnRfY29ycnVwdGlvbihjdHgsCi0JCQkJCQkJCSAgcHNwcmludGYoInVwZGF0ZSB4aWQgJXUg cHJlY2VkZXMgcmVsYXRpb24gZnJlZXplIHRocmVzaG9sZCAldToldSIsCi0JCQkJCQkJCQkJICAg eG1heCwKKwkJCQkJCQkJICBwc3ByaW50ZigidXBkYXRlIHhpZCAlbGx1IHByZWNlZGVzIHJlbGF0 aW9uIGZyZWV6ZSB0aHJlc2hvbGQgJXU6JWxsdSIsCisJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxv bmcgbG9uZykgeG1heCwKIAkJCQkJCQkJCQkgICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChj dHgtPnJlbGZyb3plbmZ4aWQpLAotCQkJCQkJCQkJCSAgIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25J ZChjdHgtPnJlbGZyb3plbmZ4aWQpKSk7CisJCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9u ZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+cmVsZnJvemVuZnhpZCkpKTsKIAkJCQly ZXR1cm4gdHJ1ZTsKIAkJCWNhc2UgWElEX1BSRUNFREVTX0NMVVNURVJNSU46CiAJCQkJcmVwb3J0 X2NvcnJ1cHRpb24oY3R4LAotCQkJCQkJCQkgIHBzcHJpbnRmKCJ1cGRhdGUgeGlkICV1IHByZWNl ZGVzIG9sZGVzdCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAldToldSIsCi0JCQkJCQkJCQkJICAgeG1h eCwKKwkJCQkJCQkJICBwc3ByaW50ZigidXBkYXRlIHhpZCAlbGx1IHByZWNlZGVzIG9sZGVzdCB2 YWxpZCB0cmFuc2FjdGlvbiBJRCAldTolbGx1IiwKKwkJCQkJCQkJCQkgICAodW5zaWduZWQgbG9u ZyBsb25nKSB4bWF4LAogCQkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0 eC0+b2xkZXN0X2Z4aWQpLAotCQkJCQkJCQkJCSAgIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChj dHgtPm9sZGVzdF9meGlkKSkpOworCQkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIFhp ZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm9sZGVzdF9meGlkKSkpOwogCQkJCXJldHVybiB0 cnVlOwogCQkJY2FzZSBYSURfQk9VTkRTX09LOgogCQkJCWJyZWFrOwpAQCAtMTA3NiwyNCArMTA3 OCwyNCBAQCBjaGVja190dXBsZV92aXNpYmlsaXR5KEhlYXBDaGVja0NvbnRleHQgKmN0eCkKIAl7 CiAJCWNhc2UgWElEX0lOX0ZVVFVSRToKIAkJCXJlcG9ydF9jb3JydXB0aW9uKGN0eCwKLQkJCQkJ CQkgIHBzcHJpbnRmKCJ4bWF4ICV1IGVxdWFscyBvciBleGNlZWRzIG5leHQgdmFsaWQgdHJhbnNh Y3Rpb24gSUQgJXU6JXUiLAotCQkJCQkJCQkJICAgeG1heCwKKwkJCQkJCQkgIHBzcHJpbnRmKCJ4 bWF4ICVsbHUgZXF1YWxzIG9yIGV4Y2VlZHMgbmV4dCB2YWxpZCB0cmFuc2FjdGlvbiBJRCAldTol bGx1IiwKKwkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIHhtYXgsCiAJCQkJCQkJCQkg ICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPm5leHRfZnhpZCksCi0JCQkJCQkJCQkg ICBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0X2Z4aWQpKSk7CisJCQkJCQkJCQkg ICAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5uZXh0 X2Z4aWQpKSk7CiAJCQlyZXR1cm4gZmFsc2U7CQkvKiBjb3JydXB0ICovCiAJCWNhc2UgWElEX1BS RUNFREVTX1JFTE1JTjoKIAkJCXJlcG9ydF9jb3JydXB0aW9uKGN0eCwKLQkJCQkJCQkgIHBzcHJp bnRmKCJ4bWF4ICV1IHByZWNlZGVzIHJlbGF0aW9uIGZyZWV6ZSB0aHJlc2hvbGQgJXU6JXUiLAot CQkJCQkJCQkJICAgeG1heCwKKwkJCQkJCQkgIHBzcHJpbnRmKCJ4bWF4ICVsbHUgcHJlY2VkZXMg cmVsYXRpb24gZnJlZXplIHRocmVzaG9sZCAldTolbGx1IiwKKwkJCQkJCQkJCSAgICh1bnNpZ25l ZCBsb25nIGxvbmcpIHhtYXgsCiAJCQkJCQkJCQkgICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25J ZChjdHgtPnJlbGZyb3plbmZ4aWQpLAotCQkJCQkJCQkJICAgWGlkRnJvbUZ1bGxUcmFuc2FjdGlv bklkKGN0eC0+cmVsZnJvemVuZnhpZCkpKTsKKwkJCQkJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxv bmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjdHgtPnJlbGZyb3plbmZ4aWQpKSk7CiAJCQly ZXR1cm4gZmFsc2U7CQkvKiBjb3JydXB0ICovCiAJCWNhc2UgWElEX1BSRUNFREVTX0NMVVNURVJN SU46CiAJCQlyZXBvcnRfY29ycnVwdGlvbihjdHgsCi0JCQkJCQkJICBwc3ByaW50ZigieG1heCAl dSBwcmVjZWRlcyBvbGRlc3QgdmFsaWQgdHJhbnNhY3Rpb24gSUQgJXU6JXUiLAotCQkJCQkJCQkJ ICAgeG1heCwKKwkJCQkJCQkgIHBzcHJpbnRmKCJ4bWF4ICVsbHUgcHJlY2VkZXMgb2xkZXN0IHZh bGlkIHRyYW5zYWN0aW9uIElEICV1OiVsbHUiLAorCQkJCQkJCQkJICAgKHVuc2lnbmVkIGxvbmcg bG9uZykgeG1heCwKIAkJCQkJCQkJCSAgIEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+ b2xkZXN0X2Z4aWQpLAotCQkJCQkJCQkJICAgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGN0eC0+ b2xkZXN0X2Z4aWQpKSk7CisJCQkJCQkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9t RnVsbFRyYW5zYWN0aW9uSWQoY3R4LT5vbGRlc3RfZnhpZCkpKTsKIAkJCXJldHVybiBmYWxzZTsJ CS8qIGNvcnJ1cHQgKi8KIAkJY2FzZSBYSURfQk9VTkRTX09LOgogCQljYXNlIFhJRF9JTlZBTElE OgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9idHJlZWZ1bmNzLmMgYi9jb250cmli L3BhZ2VpbnNwZWN0L2J0cmVlZnVuY3MuYwppbmRleCA2MmYyYzFiMzE1Li5mYmRhNTJjMmYwIDEw MDY0NAotLS0gYS9jb250cmliL3BhZ2VpbnNwZWN0L2J0cmVlZnVuY3MuYworKysgYi9jb250cmli L3BhZ2VpbnNwZWN0L2J0cmVlZnVuY3MuYwpAQCAtMTI1LDkgKzEyNSw5IEBAIEdldEJUUGFnZVN0 YXRpc3RpY3MoQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsIEJUUGFnZVN0YXQgKnN0 YXQpCiAJCXsKIAkJCUZ1bGxUcmFuc2FjdGlvbklkIHNhZmV4aWQgPSBCVFBhZ2VHZXREZWxldGVY aWQocGFnZSk7CiAKLQkJCWVsb2coREVCVUcyLCAiZGVsZXRlZCBwYWdlIGZyb20gYmxvY2sgJXUg aGFzIHNhZmV4aWQgJXU6JXUiLAorCQkJZWxvZyhERUJVRzIsICJkZWxldGVkIHBhZ2UgZnJvbSBi bG9jayAldSBoYXMgc2FmZXhpZCAldTolbGx1IiwKIAkJCQkgYmxrbm8sIEVwb2NoRnJvbUZ1bGxU cmFuc2FjdGlvbklkKHNhZmV4aWQpLAotCQkJCSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoc2Fm ZXhpZCkpOworCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9u SWQoc2FmZXhpZCkpOwogCQl9CiAJCWVsc2UKIAkJCWVsb2coREVCVUcyLCAiZGVsZXRlZCBwYWdl IGZyb20gYmxvY2sgJXUgaGFzIHNhZmV4aWQgJXUiLApkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ3Jv d2xvY2tzL3Bncm93bG9ja3MuYyBiL2NvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jvd2xvY2tzLmMKaW5k ZXggMWQ0ZDQ5NjVhYy4uZWY4OWI4NGVjMyAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ3Jvd2xvY2tz L3Bncm93bG9ja3MuYworKysgYi9jb250cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jCkBAIC0x NDIsNyArMTQyLDggQEAgcGdyb3dsb2NrcyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQkJCQkJCQkJ CQkJIFBvaW50ZXJHZXREYXR1bSgmdHVwbGUtPnRfc2VsZikpOwogCiAJCQl2YWx1ZXNbQXRudW1f eG1heF0gPSBwYWxsb2MoTkNIQVJTICogc2l6ZW9mKGNoYXIpKTsKLQkJCXNucHJpbnRmKHZhbHVl c1tBdG51bV94bWF4XSwgTkNIQVJTLCAiJXUiLCB4bWF4KTsKKwkJCXNucHJpbnRmKHZhbHVlc1tB dG51bV94bWF4XSwgTkNIQVJTLCAiJWxsdSIsCisJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4 bWF4KTsKIAkJCWlmIChpbmZvbWFzayAmIEhFQVBfWE1BWF9JU19NVUxUSSkKIAkJCXsKIAkJCQlN dWx0aVhhY3RNZW1iZXIgKm1lbWJlcnM7CkBAIC0xODMsNyArMTg0LDggQEAgcGdyb3dsb2NrcyhQ R19GVU5DVElPTl9BUkdTKQogCQkJCQkJCXN0cmNhdCh2YWx1ZXNbQXRudW1fbW9kZXNdLCAiLCIp OwogCQkJCQkJCXN0cmNhdCh2YWx1ZXNbQXRudW1fcGlkc10sICIsIik7CiAJCQkJCQl9Ci0JCQkJ CQlzbnByaW50ZihidWYsIE5DSEFSUywgIiV1IiwgbWVtYmVyc1tqXS54aWQpOworCQkJCQkJc25w cmludGYoYnVmLCBOQ0hBUlMsICIlbGx1IiwKKwkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcp IG1lbWJlcnNbal0ueGlkKTsKIAkJCQkJCXN0cmNhdCh2YWx1ZXNbQXRudW1feGlkc10sIGJ1Zik7 CiAJCQkJCQlzd2l0Y2ggKG1lbWJlcnNbal0uc3RhdHVzKQogCQkJCQkJewpAQCAtMjI0LDcgKzIy Niw4IEBAIHBncm93bG9ja3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQl2YWx1ZXNbQXRudW1faXNt dWx0aV0gPSBwc3RyZHVwKCJmYWxzZSIpOwogCiAJCQkJdmFsdWVzW0F0bnVtX3hpZHNdID0gcGFs bG9jKE5DSEFSUyAqIHNpemVvZihjaGFyKSk7Ci0JCQkJc25wcmludGYodmFsdWVzW0F0bnVtX3hp ZHNdLCBOQ0hBUlMsICJ7JXV9IiwgeG1heCk7CisJCQkJc25wcmludGYodmFsdWVzW0F0bnVtX3hp ZHNdLCBOQ0hBUlMsICJ7JWxsdX0iLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhtYXgp OwogCiAJCQkJdmFsdWVzW0F0bnVtX21vZGVzXSA9IHBhbGxvYyhOQ0hBUlMpOwogCQkJCWlmIChp bmZvbWFzayAmIEhFQVBfWE1BWF9MT0NLX09OTFkpCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3Rf ZGVjb2RpbmcvdGVzdF9kZWNvZGluZy5jIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3Rlc3RfZGVj b2RpbmcuYwppbmRleCAwOGQzNjZhNTk0Li4yY2ZhYzI3ODA3IDEwMDY0NAotLS0gYS9jb250cmli L3Rlc3RfZGVjb2RpbmcvdGVzdF9kZWNvZGluZy5jCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGlu Zy90ZXN0X2RlY29kaW5nLmMKQEAgLTMxNCw3ICszMTQsNyBAQCBwZ19vdXRwdXRfYmVnaW4oTG9n aWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBUZXN0RGVjb2RpbmdEYXRhICpkYXRhLCBSZW9yZGVy QnVmZgogewogCU91dHB1dFBsdWdpblByZXBhcmVXcml0ZShjdHgsIGxhc3Rfd3JpdGUpOwogCWlm IChkYXRhLT5pbmNsdWRlX3hpZHMpCi0JCWFwcGVuZFN0cmluZ0luZm8oY3R4LT5vdXQsICJCRUdJ TiAldSIsIHR4bi0+eGlkKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgIkJFR0lOICVs bHUiLCAodW5zaWduZWQgbG9uZyBsb25nKSB0eG4tPnhpZCk7CiAJZWxzZQogCQlhcHBlbmRTdHJp bmdJbmZvU3RyaW5nKGN0eC0+b3V0LCAiQkVHSU4iKTsKIAlPdXRwdXRQbHVnaW5Xcml0ZShjdHgs IGxhc3Rfd3JpdGUpOwpAQCAtMzM3LDcgKzMzNyw3IEBAIHBnX2RlY29kZV9jb21taXRfdHhuKExv Z2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCiAJT3V0 cHV0UGx1Z2luUHJlcGFyZVdyaXRlKGN0eCwgdHJ1ZSk7CiAJaWYgKGRhdGEtPmluY2x1ZGVfeGlk cykKLQkJYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgIkNPTU1JVCAldSIsIHR4bi0+eGlkKTsK KwkJYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgIkNPTU1JVCAlbGx1IiwgKHVuc2lnbmVkIGxv bmcgbG9uZykgdHhuLT54aWQpOwogCWVsc2UKIAkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhjdHgt Pm91dCwgIkNPTU1JVCIpOwogCkBAIC0zOTAsNyArMzkwLDcgQEAgcGdfZGVjb2RlX3ByZXBhcmVf dHhuKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAog CQkJCQkgcXVvdGVfbGl0ZXJhbF9jc3RyKHR4bi0+Z2lkKSk7CiAKIAlpZiAoZGF0YS0+aW5jbHVk ZV94aWRzKQotCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+b3V0LCAiLCB0eGlkICV1IiwgdHhuLT54 aWQpOworCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+b3V0LCAiLCB0eGlkICVsbHUiLCAodW5zaWdu ZWQgbG9uZyBsb25nKSB0eG4tPnhpZCk7CiAKIAlpZiAoZGF0YS0+aW5jbHVkZV90aW1lc3RhbXAp CiAJCWFwcGVuZFN0cmluZ0luZm8oY3R4LT5vdXQsICIgKGF0ICVzKSIsCkBAIC00MTIsNyArNDEy LDcgQEAgcGdfZGVjb2RlX2NvbW1pdF9wcmVwYXJlZF90eG4oTG9naWNhbERlY29kaW5nQ29udGV4 dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4KIAkJCQkJIHF1b3RlX2xpdGVyYWxfY3N0cih0 eG4tPmdpZCkpOwogCiAJaWYgKGRhdGEtPmluY2x1ZGVfeGlkcykKLQkJYXBwZW5kU3RyaW5nSW5m byhjdHgtPm91dCwgIiwgdHhpZCAldSIsIHR4bi0+eGlkKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhj dHgtPm91dCwgIiwgdHhpZCAlbGx1IiwgKHVuc2lnbmVkIGxvbmcgbG9uZykgdHhuLT54aWQpOwog CiAJaWYgKGRhdGEtPmluY2x1ZGVfdGltZXN0YW1wKQogCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+ b3V0LCAiIChhdCAlcykiLApAQCAtNDM2LDcgKzQzNiw3IEBAIHBnX2RlY29kZV9yb2xsYmFja19w cmVwYXJlZF90eG4oTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCQkJCQkgcXVvdGVfbGl0 ZXJhbF9jc3RyKHR4bi0+Z2lkKSk7CiAKIAlpZiAoZGF0YS0+aW5jbHVkZV94aWRzKQotCQlhcHBl bmRTdHJpbmdJbmZvKGN0eC0+b3V0LCAiLCB0eGlkICV1IiwgdHhuLT54aWQpOworCQlhcHBlbmRT dHJpbmdJbmZvKGN0eC0+b3V0LCAiLCB0eGlkICVsbHUiLCAodW5zaWduZWQgbG9uZyBsb25nKSB0 eG4tPnhpZCk7CiAKIAlpZiAoZGF0YS0+aW5jbHVkZV90aW1lc3RhbXApCiAJCWFwcGVuZFN0cmlu Z0luZm8oY3R4LT5vdXQsICIgKGF0ICVzKSIsCkBAIC03ODUsNyArNzg1LDkgQEAgcGdfb3V0cHV0 X3N0cmVhbV9zdGFydChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFRlc3REZWNvZGluZ0Rh dGEgKmRhdGEsIFJlb3IKIHsKIAlPdXRwdXRQbHVnaW5QcmVwYXJlV3JpdGUoY3R4LCBsYXN0X3dy aXRlKTsKIAlpZiAoZGF0YS0+aW5jbHVkZV94aWRzKQotCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+ b3V0LCAib3BlbmluZyBhIHN0cmVhbWVkIGJsb2NrIGZvciB0cmFuc2FjdGlvbiBUWE4gJXUiLCB0 eG4tPnhpZCk7CisJCWFwcGVuZFN0cmluZ0luZm8oY3R4LT5vdXQsCisJCQkJCQkgIm9wZW5pbmcg YSBzdHJlYW1lZCBibG9jayBmb3IgdHJhbnNhY3Rpb24gVFhOICVsbHUiLAorCQkJCQkJICh1bnNp Z25lZCBsb25nIGxvbmcpIHR4bi0+eGlkKTsKIAllbHNlCiAJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoY3R4LT5vdXQsICJvcGVuaW5nIGEgc3RyZWFtZWQgYmxvY2sgZm9yIHRyYW5zYWN0aW9uIik7 CiAJT3V0cHV0UGx1Z2luV3JpdGUoY3R4LCBsYXN0X3dyaXRlKTsKQEAgLTgwMyw3ICs4MDUsOSBA QCBwZ19kZWNvZGVfc3RyZWFtX3N0b3AoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCiAJ T3V0cHV0UGx1Z2luUHJlcGFyZVdyaXRlKGN0eCwgdHJ1ZSk7CiAJaWYgKGRhdGEtPmluY2x1ZGVf eGlkcykKLQkJYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgImNsb3NpbmcgYSBzdHJlYW1lZCBi bG9jayBmb3IgdHJhbnNhY3Rpb24gVFhOICV1IiwgdHhuLT54aWQpOworCQlhcHBlbmRTdHJpbmdJ bmZvKGN0eC0+b3V0LAorCQkJCQkJICJjbG9zaW5nIGEgc3RyZWFtZWQgYmxvY2sgZm9yIHRyYW5z YWN0aW9uIFRYTiAlbGx1IiwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB0eG4tPnhpZCk7 CiAJZWxzZQogCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGN0eC0+b3V0LCAiY2xvc2luZyBhIHN0 cmVhbWVkIGJsb2NrIGZvciB0cmFuc2FjdGlvbiIpOwogCU91dHB1dFBsdWdpbldyaXRlKGN0eCwg dHJ1ZSk7CkBAIC04MzcsNyArODQxLDkgQEAgcGdfZGVjb2RlX3N0cmVhbV9hYm9ydChMb2dpY2Fs RGVjb2RpbmdDb250ZXh0ICpjdHgsCiAKIAlPdXRwdXRQbHVnaW5QcmVwYXJlV3JpdGUoY3R4LCB0 cnVlKTsKIAlpZiAoZGF0YS0+aW5jbHVkZV94aWRzKQotCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+ b3V0LCAiYWJvcnRpbmcgc3RyZWFtZWQgKHN1Yil0cmFuc2FjdGlvbiBUWE4gJXUiLCB0eG4tPnhp ZCk7CisJCWFwcGVuZFN0cmluZ0luZm8oY3R4LT5vdXQsCisJCQkJCQkgImFib3J0aW5nIHN0cmVh bWVkIChzdWIpdHJhbnNhY3Rpb24gVFhOICVsbHUiLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxv bmcpIHR4bi0+eGlkKTsKIAllbHNlCiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoY3R4LT5vdXQs ICJhYm9ydGluZyBzdHJlYW1lZCAoc3ViKXRyYW5zYWN0aW9uIik7CiAJT3V0cHV0UGx1Z2luV3Jp dGUoY3R4LCB0cnVlKTsKQEAgLTg1Nyw4ICs4NjMsMTAgQEAgcGdfZGVjb2RlX3N0cmVhbV9wcmVw YXJlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAlPdXRwdXRQbHVnaW5QcmVwYXJlV3Jp dGUoY3R4LCB0cnVlKTsKIAogCWlmIChkYXRhLT5pbmNsdWRlX3hpZHMpCi0JCWFwcGVuZFN0cmlu Z0luZm8oY3R4LT5vdXQsICJwcmVwYXJpbmcgc3RyZWFtZWQgdHJhbnNhY3Rpb24gVFhOICVzLCB0 eGlkICV1IiwKLQkJCQkJCSBxdW90ZV9saXRlcmFsX2NzdHIodHhuLT5naWQpLCB0eG4tPnhpZCk7 CisJCWFwcGVuZFN0cmluZ0luZm8oY3R4LT5vdXQsCisJCQkJCQkgInByZXBhcmluZyBzdHJlYW1l ZCB0cmFuc2FjdGlvbiBUWE4gJXMsIHR4aWQgJWxsdSIsCisJCQkJCQkgcXVvdGVfbGl0ZXJhbF9j c3RyKHR4bi0+Z2lkKSwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB0eG4tPnhpZCk7CiAJ ZWxzZQogCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+b3V0LCAicHJlcGFyaW5nIHN0cmVhbWVkIHRy YW5zYWN0aW9uICVzIiwKIAkJCQkJCSBxdW90ZV9saXRlcmFsX2NzdHIodHhuLT5naWQpKTsKQEAg LTg4OCw3ICs4OTYsOSBAQCBwZ19kZWNvZGVfc3RyZWFtX2NvbW1pdChMb2dpY2FsRGVjb2RpbmdD b250ZXh0ICpjdHgsCiAJT3V0cHV0UGx1Z2luUHJlcGFyZVdyaXRlKGN0eCwgdHJ1ZSk7CiAKIAlp ZiAoZGF0YS0+aW5jbHVkZV94aWRzKQotCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+b3V0LCAiY29t bWl0dGluZyBzdHJlYW1lZCB0cmFuc2FjdGlvbiBUWE4gJXUiLCB0eG4tPnhpZCk7CisJCWFwcGVu ZFN0cmluZ0luZm8oY3R4LT5vdXQsCisJCQkJCQkgImNvbW1pdHRpbmcgc3RyZWFtZWQgdHJhbnNh Y3Rpb24gVFhOICVsbHUiLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHR4bi0+eGlkKTsK IAllbHNlCiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoY3R4LT5vdXQsICJjb21taXR0aW5nIHN0 cmVhbWVkIHRyYW5zYWN0aW9uIik7CiAKQEAgLTkyMiw3ICs5MzIsOCBAQCBwZ19kZWNvZGVfc3Ry ZWFtX2NoYW5nZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCiAKIAlPdXRwdXRQbHVnaW5Q cmVwYXJlV3JpdGUoY3R4LCB0cnVlKTsKIAlpZiAoZGF0YS0+aW5jbHVkZV94aWRzKQotCQlhcHBl bmRTdHJpbmdJbmZvKGN0eC0+b3V0LCAic3RyZWFtaW5nIGNoYW5nZSBmb3IgVFhOICV1IiwgdHhu LT54aWQpOworCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+b3V0LCAic3RyZWFtaW5nIGNoYW5nZSBm b3IgVFhOICVsbHUiLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHR4bi0+eGlkKTsKIAll bHNlCiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoY3R4LT5vdXQsICJzdHJlYW1pbmcgY2hhbmdl IGZvciB0cmFuc2FjdGlvbiIpOwogCU91dHB1dFBsdWdpbldyaXRlKGN0eCwgdHJ1ZSk7CkBAIC05 NzUsNyArOTg2LDggQEAgcGdfZGVjb2RlX3N0cmVhbV90cnVuY2F0ZShMb2dpY2FsRGVjb2RpbmdD b250ZXh0ICpjdHgsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAogCU91dHB1dFBsdWdpblByZXBh cmVXcml0ZShjdHgsIHRydWUpOwogCWlmIChkYXRhLT5pbmNsdWRlX3hpZHMpCi0JCWFwcGVuZFN0 cmluZ0luZm8oY3R4LT5vdXQsICJzdHJlYW1pbmcgdHJ1bmNhdGUgZm9yIFRYTiAldSIsIHR4bi0+ eGlkKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgInN0cmVhbWluZyB0cnVuY2F0ZSBm b3IgVFhOICVsbHUiLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHR4bi0+eGlkKTsKIAll bHNlCiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoY3R4LT5vdXQsICJzdHJlYW1pbmcgdHJ1bmNh dGUgZm9yIHRyYW5zYWN0aW9uIik7CiAJT3V0cHV0UGx1Z2luV3JpdGUoY3R4LCB0cnVlKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggNzQyMTg1MTAyNy4uODYzYjBlNTYwYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTUxNjIsNyArNTE2Miw4IEBAIGw1OgogCQkJCSAqIFRy YW5zYWN0aW9uSWRJc0luUHJvZ3Jlc3MoKSBzaG91bGQgaGF2ZSByZXR1cm5lZCBmYWxzZS4gIFdl CiAJCQkJICogYXNzdW1lIGl0J3Mgbm8gbG9uZ2VyIGxvY2tlZCBpbiB0aGlzIGNhc2UuCiAJCQkJ ICovCi0JCQkJZWxvZyhXQVJOSU5HLCAiTE9DS19PTkxZIGZvdW5kIGZvciBYaWQgaW4gcHJvZ3Jl c3MgJXUiLCB4bWF4KTsKKwkJCQllbG9nKFdBUk5JTkcsICJMT0NLX09OTFkgZm91bmQgZm9yIFhp ZCBpbiBwcm9ncmVzcyAlbGx1IiwKKwkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhtYXgpOwog CQkJCW9sZF9pbmZvbWFzayB8PSBIRUFQX1hNQVhfSU5WQUxJRDsKIAkJCQlvbGRfaW5mb21hc2sg Jj0gfkhFQVBfWE1BWF9MT0NLX09OTFk7CiAJCQkJZ290byBsNTsKQEAgLTYxNDUsOCArNjE0Niw5 IEBAIEZyZWV6ZU11bHRpWGFjdElkKE11bHRpWGFjdElkIG11bHRpLCB1aW50MTYgdF9pbmZvbWFz aywKIAllbHNlIGlmIChNdWx0aVhhY3RJZFByZWNlZGVzKG11bHRpLCByZWxtaW5teGlkKSkKIAkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJ CQkgZXJybXNnX2ludGVybmFsKCJmb3VuZCBtdWx0aXhhY3QgJXUgZnJvbSBiZWZvcmUgcmVsbWlu bXhpZCAldSIsCi0JCQkJCQkJCSBtdWx0aSwgcmVsbWlubXhpZCkpKTsKKwkJCQkgZXJybXNnX2lu dGVybmFsKCJmb3VuZCBtdWx0aXhhY3QgJWxsdSBmcm9tIGJlZm9yZSByZWxtaW5teGlkICVsbHUi LAorCQkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgbXVsdGksCisJCQkJCQkJCSAodW5zaWdu ZWQgbG9uZyBsb25nKSByZWxtaW5teGlkKSkpOwogCWVsc2UgaWYgKE11bHRpWGFjdElkUHJlY2Vk ZXMobXVsdGksIGN1dG9mZl9tdWx0aSkpCiAJewogCQkvKgpAQCAtNjE1OSw4ICs2MTYxLDkgQEAg RnJlZXplTXVsdGlYYWN0SWQoTXVsdGlYYWN0SWQgbXVsdGksIHVpbnQxNiB0X2luZm9tYXNrLAog CQkJCQkJCQkgSEVBUF9YTUFYX0lTX0xPQ0tFRF9PTkxZKHRfaW5mb21hc2spKSkKIAkJCWVyZXBv cnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCQkg ZXJybXNnX2ludGVybmFsKCJtdWx0aXhhY3QgJXUgZnJvbSBiZWZvcmUgY3V0b2ZmICV1IGZvdW5k IHRvIGJlIHN0aWxsIHJ1bm5pbmciLAotCQkJCQkJCQkJIG11bHRpLCBjdXRvZmZfbXVsdGkpKSk7 CisJCQkJCSBlcnJtc2dfaW50ZXJuYWwoIm11bHRpeGFjdCAlbGx1IGZyb20gYmVmb3JlIGN1dG9m ZiAlbGx1IGZvdW5kIHRvIGJlIHN0aWxsIHJ1bm5pbmciLAorCQkJCQkJCQkJICh1bnNpZ25lZCBs b25nIGxvbmcpIG11bHRpLAorCQkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIGN1dG9mZl9t dWx0aSkpKTsKIAogCQlpZiAoSEVBUF9YTUFYX0lTX0xPQ0tFRF9PTkxZKHRfaW5mb21hc2spKQog CQl7CkBAIC02MTc4LDggKzYxODEsOSBAQCBGcmVlemVNdWx0aVhhY3RJZChNdWx0aVhhY3RJZCBt dWx0aSwgdWludDE2IHRfaW5mb21hc2ssCiAJCQlpZiAoVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhp ZCwgcmVsZnJvemVueGlkKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9EQVRBX0NPUlJVUFRFRCksCi0JCQkJCQkgZXJybXNnX2ludGVybmFsKCJmb3VuZCB1cGRh dGUgeGlkICV1IGZyb20gYmVmb3JlIHJlbGZyb3plbnhpZCAldSIsCi0JCQkJCQkJCQkJIHhpZCwg cmVsZnJvemVueGlkKSkpOworCQkJCQkJIGVycm1zZ19pbnRlcm5hbCgiZm91bmQgdXBkYXRlIHhp ZCAlbGx1IGZyb20gYmVmb3JlIHJlbGZyb3plbnhpZCAlbGx1IiwKKwkJCQkJCQkJCQkgKHVuc2ln bmVkIGxvbmcgbG9uZykgeGlkLAorCQkJCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSByZWxm cm96ZW54aWQpKSk7CiAKIAkJCS8qCiAJCQkgKiBJZiB0aGUgeGlkIGlzIG9sZGVyIHRoYW4gdGhl IGN1dG9mZiwgaXQgaGFzIHRvIGhhdmUgYWJvcnRlZCwKQEAgLTYxOTAsNyArNjE5NCw4IEBAIEZy ZWV6ZU11bHRpWGFjdElkKE11bHRpWGFjdElkIG11bHRpLCB1aW50MTYgdF9pbmZvbWFzaywKIAkJ CQlpZiAoVHJhbnNhY3Rpb25JZERpZENvbW1pdCh4aWQpKQogCQkJCQllcmVwb3J0KEVSUk9SLAog CQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCQkJCSBlcnJtc2df aW50ZXJuYWwoImNhbm5vdCBmcmVlemUgY29tbWl0dGVkIHVwZGF0ZSB4aWQgJXUiLCB4aWQpKSk7 CisJCQkJCQkJIGVycm1zZ19pbnRlcm5hbCgiY2Fubm90IGZyZWV6ZSBjb21taXR0ZWQgdXBkYXRl IHhpZCAlbGx1IiwKKwkJCQkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCkpKTsKIAkJ CQkqZmxhZ3MgfD0gRlJNX0lOVkFMSURBVEVfWE1BWDsKIAkJCQl4aWQgPSBJbnZhbGlkVHJhbnNh Y3Rpb25JZDsKIAkJCX0KQEAgLTYyODEsOCArNjI4Niw5IEBAIEZyZWV6ZU11bHRpWGFjdElkKE11 bHRpWGFjdElkIG11bHRpLCB1aW50MTYgdF9pbmZvbWFzaywKIAkJCWlmIChUcmFuc2FjdGlvbklk UHJlY2VkZXMoeGlkLCByZWxmcm96ZW54aWQpKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQko ZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkJCSBlcnJtc2dfaW50ZXJuYWwo ImZvdW5kIHVwZGF0ZSB4aWQgJXUgZnJvbSBiZWZvcmUgcmVsZnJvemVueGlkICV1IiwKLQkJCQkJ CQkJCQkgeGlkLCByZWxmcm96ZW54aWQpKSk7CisJCQkJCQkgZXJybXNnX2ludGVybmFsKCJmb3Vu ZCB1cGRhdGUgeGlkICVsbHUgZnJvbSBiZWZvcmUgcmVsZnJvemVueGlkICVsbHUiLAorCQkJCQkJ CQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4aWQsCisJCQkJCQkJCQkJICh1bnNpZ25lZCBsb25n IGxvbmcpIHJlbGZyb3plbnhpZCkpKTsKIAogCQkJLyoKIAkJCSAqIEl0J3MgYW4gdXBkYXRlOyBz aG91bGQgd2Uga2VlcCBpdD8gIElmIHRoZSB0cmFuc2FjdGlvbiBpcyBrbm93bgpAQCAtNjMzMSw4 ICs2MzM3LDkgQEAgRnJlZXplTXVsdGlYYWN0SWQoTXVsdGlYYWN0SWQgbXVsdGksIHVpbnQxNiB0 X2luZm9tYXNrLAogCQkJCVRyYW5zYWN0aW9uSWRQcmVjZWRlcyh1cGRhdGVfeGlkLCBjdXRvZmZf eGlkKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBX0NP UlJVUFRFRCksCi0JCQkJCQkgZXJybXNnX2ludGVybmFsKCJmb3VuZCB1cGRhdGUgeGlkICV1IGZy b20gYmVmb3JlIHhpZCBjdXRvZmYgJXUiLAotCQkJCQkJCQkJCSB1cGRhdGVfeGlkLCBjdXRvZmZf eGlkKSkpOworCQkJCQkJIGVycm1zZ19pbnRlcm5hbCgiZm91bmQgdXBkYXRlIHhpZCAlbGx1IGZy b20gYmVmb3JlIHhpZCBjdXRvZmYgJWxsdSIsCisJCQkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxv bmcpIHVwZGF0ZV94aWQsCisJCQkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIGN1dG9mZl94 aWQpKSk7CiAKIAkJCS8qCiAJCQkgKiBXZSBkZXRlcm1pbmVkIHRoYXQgdGhpcyBpcyBhbiBYaWQg Y29ycmVzcG9uZGluZyB0byBhbiB1cGRhdGUKQEAgLTY0OTYsOCArNjUwMyw5IEBAIGhlYXBfcHJl cGFyZV9mcmVlemVfdHVwbGUoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLAogCQlpZiAoVHJhbnNhY3Rp b25JZFByZWNlZGVzKHhpZCwgcmVsZnJvemVueGlkKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCQkgZXJybXNnX2ludGVybmFs KCJmb3VuZCB4bWluICV1IGZyb20gYmVmb3JlIHJlbGZyb3plbnhpZCAldSIsCi0JCQkJCQkJCQkg eGlkLCByZWxmcm96ZW54aWQpKSk7CisJCQkJCSBlcnJtc2dfaW50ZXJuYWwoImZvdW5kIHhtaW4g JWxsdSBmcm9tIGJlZm9yZSByZWxmcm96ZW54aWQgJWxsdSIsCisJCQkJCQkJCQkgKHVuc2lnbmVk IGxvbmcgbG9uZykgeGlkLAorCQkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHJlbGZyb3pl bnhpZCkpKTsKIAogCQl4bWluX2Zyb3plbiA9IFRyYW5zYWN0aW9uSWRQcmVjZWRlcyh4aWQsIGN1 dG9mZl94aWQpOwogCQlpZiAoeG1pbl9mcm96ZW4pCkBAIC02NTA1LDggKzY1MTMsOSBAQCBoZWFw X3ByZXBhcmVfZnJlZXplX3R1cGxlKEhlYXBUdXBsZUhlYWRlciB0dXBsZSwKIAkJCWlmICghVHJh bnNhY3Rpb25JZERpZENvbW1pdCh4aWQpKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkJCSBlcnJtc2dfaW50ZXJuYWwoInVu Y29tbWl0dGVkIHhtaW4gJXUgZnJvbSBiZWZvcmUgeGlkIGN1dG9mZiAldSBuZWVkcyB0byBiZSBm cm96ZW4iLAotCQkJCQkJCQkJCSB4aWQsIGN1dG9mZl94aWQpKSk7CisJCQkJCQkgZXJybXNnX2lu dGVybmFsKCJ1bmNvbW1pdHRlZCB4bWluICVsbHUgZnJvbSBiZWZvcmUgeGlkIGN1dG9mZiAlbGx1 IG5lZWRzIHRvIGJlIGZyb3plbiIsCisJCQkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhp ZCwKKwkJCQkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgY3V0b2ZmX3hpZCkpKTsKIAogCQkJ ZnJ6LT50X2luZm9tYXNrIHw9IEhFQVBfWE1JTl9GUk9aRU47CiAJCQljaGFuZ2VkID0gdHJ1ZTsK QEAgLTY2MzMsOCArNjY0Miw5IEBAIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoSGVhcFR1cGxl SGVhZGVyIHR1cGxlLAogCQlpZiAoVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhpZCwgcmVsZnJvemVu eGlkKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JS VVBURUQpLAotCQkJCQkgZXJybXNnX2ludGVybmFsKCJmb3VuZCB4bWF4ICV1IGZyb20gYmVmb3Jl IHJlbGZyb3plbnhpZCAldSIsCi0JCQkJCQkJCQkgeGlkLCByZWxmcm96ZW54aWQpKSk7CisJCQkJ CSBlcnJtc2dfaW50ZXJuYWwoImZvdW5kIHhtYXggJWxsdSBmcm9tIGJlZm9yZSByZWxmcm96ZW54 aWQgJWxsdSIsCisJCQkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGlkLAorCQkJCQkJCQkJ ICh1bnNpZ25lZCBsb25nIGxvbmcpIHJlbGZyb3plbnhpZCkpKTsKIAogCQlpZiAoVHJhbnNhY3Rp b25JZFByZWNlZGVzKHhpZCwgY3V0b2ZmX3hpZCkpCiAJCXsKQEAgLTY2NDgsOCArNjY1OCw4IEBA IGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLAogCQkJCVRy YW5zYWN0aW9uSWREaWRDb21taXQoeGlkKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9EQVRBX0NPUlJVUFRFRCksCi0JCQkJCQkgZXJybXNnX2ludGVybmFsKCJj YW5ub3QgZnJlZXplIGNvbW1pdHRlZCB4bWF4ICV1IiwKLQkJCQkJCQkJCQkgeGlkKSkpOworCQkJ CQkJIGVycm1zZ19pbnRlcm5hbCgiY2Fubm90IGZyZWV6ZSBjb21taXR0ZWQgeG1heCAlbGx1IiwK KwkJCQkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGlkKSkpOwogCQkJZnJlZXplX3htYXgg PSB0cnVlOwogCQkJLyogTm8gbmVlZCBmb3IgcmVsZnJvemVueGlkX291dCBoYW5kbGluZywgc2lu Y2Ugd2UnbGwgZnJlZXplIHhtYXggKi8KIAkJfQpAQCAtNjY3MCw4ICs2NjgwLDggQEAgaGVhcF9w cmVwYXJlX2ZyZWV6ZV90dXBsZShIZWFwVHVwbGVIZWFkZXIgdHVwbGUsCiAJZWxzZQogCQllcmVw b3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCSBl cnJtc2dfaW50ZXJuYWwoImZvdW5kIHhtYXggJXUgKGluZm9tYXNrIDB4JTA0eCkgbm90IGZyb3pl biwgbm90IG11bHRpLCBub3Qgbm9ybWFsIiwKLQkJCQkJCQkJIHhpZCwgdHVwbGUtPnRfaW5mb21h c2spKSk7CisJCQkJIGVycm1zZ19pbnRlcm5hbCgiZm91bmQgeG1heCAlbGx1IChpbmZvbWFzayAw eCUwNHgpIG5vdCBmcm96ZW4sIG5vdCBtdWx0aSwgbm90IG5vcm1hbCIsCisJCQkJCQkJCSAodW5z aWduZWQgbG9uZyBsb25nKSB4aWQsIHR1cGxlLT50X2luZm9tYXNrKSkpOwogCiAJaWYgKGZyZWV6 ZV94bWF4KQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9o YW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCmluZGV4 IDQ0NGYwMjcxNDkuLmRiYjkzYjFhYTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X2hhbmRsZXIuYwpAQCAtNDI0LDggKzQyNCw4IEBAIHR1cGxlX2xvY2tfcmV0cnk6CiAJCQkJCWlm IChUcmFuc2FjdGlvbklkSXNWYWxpZChTbmFwc2hvdERpcnR5LnhtaW4pKQogCQkJCQkJZXJlcG9y dChFUlJPUiwKIAkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBX0NPUlJVUFRFRCksCi0JCQkJ CQkJCSBlcnJtc2dfaW50ZXJuYWwoInRfeG1pbiAldSBpcyB1bmNvbW1pdHRlZCBpbiB0dXBsZSAo JXUsJXUpIHRvIGJlIHVwZGF0ZWQgaW4gdGFibGUgXCIlc1wiIiwKLQkJCQkJCQkJCQkJCSBTbmFw c2hvdERpcnR5LnhtaW4sCisJCQkJCQkJCSBlcnJtc2dfaW50ZXJuYWwoInRfeG1pbiAlbGx1IGlz IHVuY29tbWl0dGVkIGluIHR1cGxlICgldSwldSkgdG8gYmUgdXBkYXRlZCBpbiB0YWJsZSBcIiVz XCIiLAorCQkJCQkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIFNuYXBzaG90RGlydHkueG1p biwKIAkJCQkJCQkJCQkJCSBJdGVtUG9pbnRlckdldEJsb2NrTnVtYmVyKCZ0dXBsZS0+dF9zZWxm KSwKIAkJCQkJCQkJCQkJCSBJdGVtUG9pbnRlckdldE9mZnNldE51bWJlcigmdHVwbGUtPnRfc2Vs ZiksCiAJCQkJCQkJCQkJCQkgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSkpOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDk0ODJmOTllNjguLmNhMmQwYjYy OTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTcwNSwyMSArNzA1LDIx IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAqcGFyYW1zLAog CQkJCQkJCQkgdmFjcmVsLT5taXNzZWRfZGVhZF9wYWdlcyk7CiAJCQlkaWZmID0gKGludDMyKSAo UmVhZE5leHRUcmFuc2FjdGlvbklkKCkgLSBPbGRlc3RYbWluKTsKIAkJCWFwcGVuZFN0cmluZ0lu Zm8oJmJ1ZiwKLQkJCQkJCQkgXygicmVtb3ZhYmxlIGN1dG9mZjogJXUsIHdoaWNoIHdhcyAlZCBY SURzIG9sZCB3aGVuIG9wZXJhdGlvbiBlbmRlZFxuIiksCi0JCQkJCQkJIE9sZGVzdFhtaW4sIGRp ZmYpOworCQkJCQkJCSBfKCJyZW1vdmFibGUgY3V0b2ZmOiAlbGx1LCB3aGljaCB3YXMgJWQgWElE cyBvbGQgd2hlbiBvcGVyYXRpb24gZW5kZWRcbiIpLAorCQkJCQkJCSAodW5zaWduZWQgbG9uZyBs b25nKSBPbGRlc3RYbWluLCBkaWZmKTsKIAkJCWlmIChmcm96ZW54aWRfdXBkYXRlZCkKIAkJCXsK IAkJCQlkaWZmID0gKGludDMyKSAodmFjcmVsLT5OZXdSZWxmcm96ZW5YaWQgLSB2YWNyZWwtPnJl bGZyb3plbnhpZCk7CiAJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLAotCQkJCQkJCQkgXygibmV3 IHJlbGZyb3plbnhpZDogJXUsIHdoaWNoIGlzICVkIFhJRHMgYWhlYWQgb2YgcHJldmlvdXMgdmFs dWVcbiIpLAotCQkJCQkJCQkgdmFjcmVsLT5OZXdSZWxmcm96ZW5YaWQsIGRpZmYpOworCQkJCQkJ CQkgXygibmV3IHJlbGZyb3plbnhpZDogJWxsdSwgd2hpY2ggaXMgJWQgWElEcyBhaGVhZCBvZiBw cmV2aW91cyB2YWx1ZVxuIiksCisJCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB2YWNyZWwt Pk5ld1JlbGZyb3plblhpZCwgZGlmZik7CiAJCQl9CiAJCQlpZiAobWlubXVsdGlfdXBkYXRlZCkK IAkJCXsKIAkJCQlkaWZmID0gKGludDMyKSAodmFjcmVsLT5OZXdSZWxtaW5NeGlkIC0gdmFjcmVs LT5yZWxtaW5teGlkKTsKIAkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsCi0JCQkJCQkJCSBfKCJu ZXcgcmVsbWlubXhpZDogJXUsIHdoaWNoIGlzICVkIE1YSURzIGFoZWFkIG9mIHByZXZpb3VzIHZh bHVlXG4iKSwKLQkJCQkJCQkJIHZhY3JlbC0+TmV3UmVsbWluTXhpZCwgZGlmZik7CisJCQkJCQkJ CSBfKCJuZXcgcmVsbWlubXhpZDogJWxsdSwgd2hpY2ggaXMgJWQgTVhJRHMgYWhlYWQgb2YgcHJl dmlvdXMgdmFsdWVcbiIpLAorCQkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgdmFjcmVsLT5O ZXdSZWxtaW5NeGlkLCBkaWZmKTsKIAkJCX0KIAkJCWlmICh2YWNyZWwtPmRvX2luZGV4X3ZhY3V1 bWluZykKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9jbG9n ZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2Nsb2dkZXNjLmMKaW5kZXggODc1 MTM3MzJiZS4uYmJiNTkxMDYzMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3Jk ZXNjL2Nsb2dkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2Nsb2dkZXNj LmMKQEAgLTM1LDggKzM1LDggQEAgY2xvZ19kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVy U3RhdGUgKnJlY29yZCkKIAkJeGxfY2xvZ190cnVuY2F0ZSB4bHJlYzsKIAogCQltZW1jcHkoJnhs cmVjLCByZWMsIHNpemVvZih4bF9jbG9nX3RydW5jYXRlKSk7Ci0JCWFwcGVuZFN0cmluZ0luZm8o YnVmLCAicGFnZSAlZDsgb2xkZXN0WGFjdCAldSIsCi0JCQkJCQkgeGxyZWMucGFnZW5vLCB4bHJl Yy5vbGRlc3RYYWN0KTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJwYWdlICVkOyBvbGRlc3RY YWN0ICVsbHUiLAorCQkJCQkJIHhscmVjLnBhZ2VubywgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxy ZWMub2xkZXN0WGFjdCk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv cm1ncmRlc2MvY29tbWl0dHNkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvY29t bWl0dHNkZXNjLmMKaW5kZXggM2E2NTUzOGJiMC4uNGIyZTliYzJmZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2NvbW1pdHRzZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9ybWdyZGVzYy9jb21taXR0c2Rlc2MuYwpAQCAtMzUsOCArMzUsOCBAQCBjb21taXRf dHNfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJewogCQl4 bF9jb21taXRfdHNfdHJ1bmNhdGUgKnRydW5jID0gKHhsX2NvbW1pdF90c190cnVuY2F0ZSAqKSBy ZWM7CiAKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJwYWdlbm8gJWQsIG9sZGVzdFhpZCAldSIs Ci0JCQkJCQkgdHJ1bmMtPnBhZ2VubywgdHJ1bmMtPm9sZGVzdFhpZCk7CisJCWFwcGVuZFN0cmlu Z0luZm8oYnVmLCAicGFnZW5vICVkLCBvbGRlc3RYaWQgJWxsdSIsCisJCQkJCQkgdHJ1bmMtPnBh Z2VubywgKHVuc2lnbmVkIGxvbmcgbG9uZykgdHJ1bmMtPm9sZGVzdFhpZCk7CiAJfQogfQogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvZ2lzdGRlc2MuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9naXN0ZGVzYy5jCmluZGV4IGQwYzhlMjQ3YzEuLjFlODlj OTdkNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9naXN0ZGVzYy5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9naXN0ZGVzYy5jCkBAIC0yNiwxOCAr MjYsMTkgQEAgb3V0X2dpc3R4bG9nUGFnZVVwZGF0ZShTdHJpbmdJbmZvIGJ1ZiwgZ2lzdHhsb2dQ YWdlVXBkYXRlICp4bHJlYykKIHN0YXRpYyB2b2lkCiBvdXRfZ2lzdHhsb2dQYWdlUmV1c2UoU3Ry aW5nSW5mbyBidWYsIGdpc3R4bG9nUGFnZVJldXNlICp4bHJlYykKIHsKLQlhcHBlbmRTdHJpbmdJ bmZvKGJ1ZiwgInJlbCAldS8ldS8ldTsgYmxrICV1OyBsYXRlc3RSZW1vdmVkWGlkICV1OiV1IiwK KwlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInJlbCAldS8ldS8ldTsgYmxrICV1OyBsYXRlc3RSZW1v dmVkWGlkICV1OiVsbHUiLAogCQkJCQkgeGxyZWMtPm5vZGUuc3BjTm9kZSwgeGxyZWMtPm5vZGUu ZGJOb2RlLAogCQkJCQkgeGxyZWMtPm5vZGUucmVsTm9kZSwgeGxyZWMtPmJsb2NrLAogCQkJCQkg RXBvY2hGcm9tRnVsbFRyYW5zYWN0aW9uSWQoeGxyZWMtPmxhdGVzdFJlbW92ZWRGdWxsWGlkKSwK LQkJCQkJIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZEZ1bGxY aWQpKTsKKwkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25J ZCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZEZ1bGxYaWQpKTsKIH0KIAogc3RhdGljIHZvaWQKIG91dF9n aXN0eGxvZ0RlbGV0ZShTdHJpbmdJbmZvIGJ1ZiwgZ2lzdHhsb2dEZWxldGUgKnhscmVjKQogewot CWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiZGVsZXRlOiBsYXRlc3RSZW1vdmVkWGlkICV1LCBuaXRl bXM6ICV1IiwKLQkJCQkJIHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLCB4bHJlYy0+bnRvZGVsZXRl KTsKKwlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgImRlbGV0ZTogbGF0ZXN0UmVtb3ZlZFhpZCAlbGx1 LCBuaXRlbXM6ICV1IiwKKwkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhscmVjLT5sYXRlc3RS ZW1vdmVkWGlkLAorCQkJCQkgeGxyZWMtPm50b2RlbGV0ZSk7CiB9CiAKIHN0YXRpYyB2b2lkCkBA IC01MCw5ICs1MSw5IEBAIG91dF9naXN0eGxvZ1BhZ2VTcGxpdChTdHJpbmdJbmZvIGJ1ZiwgZ2lz dHhsb2dQYWdlU3BsaXQgKnhscmVjKQogc3RhdGljIHZvaWQKIG91dF9naXN0eGxvZ1BhZ2VEZWxl dGUoU3RyaW5nSW5mbyBidWYsIGdpc3R4bG9nUGFnZURlbGV0ZSAqeGxyZWMpCiB7Ci0JYXBwZW5k U3RyaW5nSW5mbyhidWYsICJkZWxldGVYaWQgJXU6JXU7IGRvd25saW5rICV1IiwKKwlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgImRlbGV0ZVhpZCAldTolbGx1OyBkb3dubGluayAldSIsCiAJCQkJCSBF cG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZCh4bHJlYy0+ZGVsZXRlWGlkKSwKLQkJCQkJIFhpZEZy b21GdWxsVHJhbnNhY3Rpb25JZCh4bHJlYy0+ZGVsZXRlWGlkKSwKKwkJCQkJICh1bnNpZ25lZCBs b25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZCh4bHJlYy0+ZGVsZXRlWGlkKSwKIAkJ CQkJIHhscmVjLT5kb3dubGlua09mZnNldCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9ybWdyZGVzYy9oYXNoZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNj L2hhc2hkZXNjLmMKaW5kZXggZWY0NDNiZGIxNi4uOTAzMGU3NGI4OCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hhc2hkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3JtZ3JkZXNjL2hhc2hkZXNjLmMKQEAgLTExMyw5ICsxMTMsOSBAQCBoYXNoX2Rlc2MoU3Ry aW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJewogCQkJCXhsX2hhc2hf dmFjdXVtX29uZV9wYWdlICp4bHJlYyA9ICh4bF9oYXNoX3ZhY3V1bV9vbmVfcGFnZSAqKSByZWM7 CiAKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm50dXBsZXMgJWQsIGxhdGVzdFJlbW92ZWRY aWQgJXUiLAorCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAibnR1cGxlcyAlZCwgbGF0ZXN0UmVt b3ZlZFhpZCAlbGx1IiwKIAkJCQkJCQkJIHhscmVjLT5udHVwbGVzLAotCQkJCQkJCQkgeGxyZWMt PmxhdGVzdFJlbW92ZWRYaWQpOworCQkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMt PmxhdGVzdFJlbW92ZWRYaWQpOwogCQkJCWJyZWFrOwogCQkJfQogCX0KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3JtZ3JkZXNjL2hlYXBkZXNjLmMKaW5kZXggNjIzODA4NWQ2NS4uZjNmYjYxOTcxZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKQEAgLTU4LDI3ICs1OCwyNyBAQCBoZWFw X2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCXsKIAkJeGxf aGVhcF91cGRhdGUgKnhscmVjID0gKHhsX2hlYXBfdXBkYXRlICopIHJlYzsKIAotCQlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgIm9mZiAldSB4bWF4ICV1IGZsYWdzIDB4JTAyWCAiLAorCQlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgIm9mZiAldSB4bWF4ICVsbHUgZmxhZ3MgMHglMDJYICIsCiAJCQkJCQkg eGxyZWMtPm9sZF9vZmZudW0sCi0JCQkJCQkgeGxyZWMtPm9sZF94bWF4LAorCQkJCQkJICh1bnNp Z25lZCBsb25nIGxvbmcpIHhscmVjLT5vbGRfeG1heCwKIAkJCQkJCSB4bHJlYy0+ZmxhZ3MpOwog CQlvdXRfaW5mb2JpdHMoYnVmLCB4bHJlYy0+b2xkX2luZm9iaXRzX3NldCk7Ci0JCWFwcGVuZFN0 cmluZ0luZm8oYnVmLCAiOyBuZXcgb2ZmICV1IHhtYXggJXUiLAorCQlhcHBlbmRTdHJpbmdJbmZv KGJ1ZiwgIjsgbmV3IG9mZiAldSB4bWF4ICVsbHUiLAogCQkJCQkJIHhscmVjLT5uZXdfb2ZmbnVt LAotCQkJCQkJIHhscmVjLT5uZXdfeG1heCk7CisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykg eGxyZWMtPm5ld194bWF4KTsKIAl9CiAJZWxzZSBpZiAoaW5mbyA9PSBYTE9HX0hFQVBfSE9UX1VQ REFURSkKIAl7CiAJCXhsX2hlYXBfdXBkYXRlICp4bHJlYyA9ICh4bF9oZWFwX3VwZGF0ZSAqKSBy ZWM7CiAKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJvZmYgJXUgeG1heCAldSBmbGFncyAweCUw MlggIiwKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJvZmYgJXUgeG1heCAlbGx1IGZsYWdzIDB4 JTAyWCAiLAogCQkJCQkJIHhscmVjLT5vbGRfb2ZmbnVtLAotCQkJCQkJIHhscmVjLT5vbGRfeG1h eCwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJlYy0+b2xkX3htYXgsCiAJCQkJCQkg eGxyZWMtPmZsYWdzKTsKIAkJb3V0X2luZm9iaXRzKGJ1ZiwgeGxyZWMtPm9sZF9pbmZvYml0c19z ZXQpOwotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIjsgbmV3IG9mZiAldSB4bWF4ICV1IiwKKwkJ YXBwZW5kU3RyaW5nSW5mbyhidWYsICI7IG5ldyBvZmYgJXUgeG1heCAlbGx1IiwKIAkJCQkJCSB4 bHJlYy0+bmV3X29mZm51bSwKLQkJCQkJCSB4bHJlYy0+bmV3X3htYXgpOworCQkJCQkJICh1bnNp Z25lZCBsb25nIGxvbmcpIHhscmVjLT5uZXdfeG1heCk7CiAJfQogCWVsc2UgaWYgKGluZm8gPT0g WExPR19IRUFQX1RSVU5DQVRFKQogCXsKQEAgLTEwMyw4ICsxMDMsOSBAQCBoZWFwX2Rlc2MoU3Ry aW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCXsKIAkJeGxfaGVhcF9sb2Nr ICp4bHJlYyA9ICh4bF9oZWFwX2xvY2sgKikgcmVjOwogCi0JCWFwcGVuZFN0cmluZ0luZm8oYnVm LCAib2ZmICV1OiB4aWQgJXU6IGZsYWdzIDB4JTAyWCAiLAotCQkJCQkJIHhscmVjLT5vZmZudW0s IHhscmVjLT5sb2NraW5nX3hpZCwgeGxyZWMtPmZsYWdzKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhi dWYsICJvZmYgJXU6IHhpZCAlbGx1OiBmbGFncyAweCUwMlggIiwKKwkJCQkJCSB4bHJlYy0+b2Zm bnVtLCAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJlYy0+bG9ja2luZ194aWQsCisJCQkJCQkgeGxy ZWMtPmZsYWdzKTsKIAkJb3V0X2luZm9iaXRzKGJ1ZiwgeGxyZWMtPmluZm9iaXRzX3NldCk7CiAJ fQogCWVsc2UgaWYgKGluZm8gPT0gWExPR19IRUFQX0lOUExBQ0UpCkBAIC0xMjUsOCArMTI2LDgg QEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJ ewogCQl4bF9oZWFwX3BydW5lICp4bHJlYyA9ICh4bF9oZWFwX3BydW5lICopIHJlYzsKIAotCQlh cHBlbmRTdHJpbmdJbmZvKGJ1ZiwgImxhdGVzdFJlbW92ZWRYaWQgJXUgbnJlZGlyZWN0ZWQgJXUg bmRlYWQgJXUiLAotCQkJCQkJIHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLAorCQlhcHBlbmRTdHJp bmdJbmZvKGJ1ZiwgImxhdGVzdFJlbW92ZWRYaWQgJWxsdSBucmVkaXJlY3RlZCAldSBuZGVhZCAl dSIsCisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQs CiAJCQkJCQkgeGxyZWMtPm5yZWRpcmVjdGVkLAogCQkJCQkJIHhscmVjLT5uZGVhZCk7CiAJfQpA QCAtMTQwLDE1ICsxNDEsMTUgQEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRl clN0YXRlICpyZWNvcmQpCiAJewogCQl4bF9oZWFwX2ZyZWV6ZV9wYWdlICp4bHJlYyA9ICh4bF9o ZWFwX2ZyZWV6ZV9wYWdlICopIHJlYzsKIAotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgImN1dG9m ZiB4aWQgJXUgbnR1cGxlcyAldSIsCi0JCQkJCQkgeGxyZWMtPmN1dG9mZl94aWQsIHhscmVjLT5u dHVwbGVzKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJjdXRvZmYgeGlkICVsbHUgbnR1cGxl cyAldSIsCisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMtPmN1dG9mZl94aWQsIHhs cmVjLT5udHVwbGVzKTsKIAl9CiAJZWxzZSBpZiAoaW5mbyA9PSBYTE9HX0hFQVAyX1ZJU0lCTEUp CiAJewogCQl4bF9oZWFwX3Zpc2libGUgKnhscmVjID0gKHhsX2hlYXBfdmlzaWJsZSAqKSByZWM7 CiAKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJjdXRvZmYgeGlkICV1IGZsYWdzIDB4JTAyWCIs Ci0JCQkJCQkgeGxyZWMtPmN1dG9mZl94aWQsIHhscmVjLT5mbGFncyk7CisJCWFwcGVuZFN0cmlu Z0luZm8oYnVmLCAiY3V0b2ZmIHhpZCAlbGx1IGZsYWdzIDB4JTAyWCIsCisJCQkJCQkgKHVuc2ln bmVkIGxvbmcgbG9uZykgeGxyZWMtPmN1dG9mZl94aWQsIHhscmVjLT5mbGFncyk7CiAJfQogCWVs c2UgaWYgKGluZm8gPT0gWExPR19IRUFQMl9NVUxUSV9JTlNFUlQpCiAJewpAQCAtMTYxLDggKzE2 Miw5IEBAIGhlYXAyX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCXsKIAkJeGxfaGVhcF9sb2NrX3VwZGF0ZWQgKnhscmVjID0gKHhsX2hlYXBfbG9ja191cGRh dGVkICopIHJlYzsKIAotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm9mZiAldTogeG1heCAldTog ZmxhZ3MgMHglMDJYICIsCi0JCQkJCQkgeGxyZWMtPm9mZm51bSwgeGxyZWMtPnhtYXgsIHhscmVj LT5mbGFncyk7CisJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAib2ZmICV1OiB4bWF4ICVsbHU6IGZs YWdzIDB4JTAyWCAiLAorCQkJCQkJIHhscmVjLT5vZmZudW0sICh1bnNpZ25lZCBsb25nIGxvbmcp IHhscmVjLT54bWF4LAorCQkJCQkJIHhscmVjLT5mbGFncyk7CiAJCW91dF9pbmZvYml0cyhidWYs IHhscmVjLT5pbmZvYml0c19zZXQpOwogCX0KIAllbHNlIGlmIChpbmZvID09IFhMT0dfSEVBUDJf TkVXX0NJRCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9teGFjdGRl c2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9teGFjdGRlc2MuYwppbmRleCA3MDc2 YmUyYjNmLi40Y2Y4YTlhNGIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRl c2MvbXhhY3RkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL214YWN0ZGVz Yy5jCkBAIC0xOSw3ICsxOSw3IEBACiBzdGF0aWMgdm9pZAogb3V0X21lbWJlcihTdHJpbmdJbmZv IGJ1ZiwgTXVsdGlYYWN0TWVtYmVyICptZW1iZXIpCiB7Ci0JYXBwZW5kU3RyaW5nSW5mbyhidWYs ICIldSAiLCBtZW1iZXItPnhpZCk7CisJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlbGx1ICIsICh1 bnNpZ25lZCBsb25nIGxvbmcpIG1lbWJlci0+eGlkKTsKIAlzd2l0Y2ggKG1lbWJlci0+c3RhdHVz KQogCXsKIAkJY2FzZSBNdWx0aVhhY3RTdGF0dXNGb3JLZXlTaGFyZToKQEAgLTY1LDcgKzY1LDgg QEAgbXVsdGl4YWN0X2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCQl4bF9tdWx0aXhhY3RfY3JlYXRlICp4bHJlYyA9ICh4bF9tdWx0aXhhY3RfY3JlYXRlICop IHJlYzsKIAkJaW50CQkJaTsKIAotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiV1IG9mZnNldCAl dSBubWVtYmVycyAlZDogIiwgeGxyZWMtPm1pZCwKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIl bGx1IG9mZnNldCAldSBubWVtYmVycyAlZDogIiwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25n KSB4bHJlYy0+bWlkLAogCQkJCQkJIHhscmVjLT5tb2ZmLCB4bHJlYy0+bm1lbWJlcnMpOwogCQlm b3IgKGkgPSAwOyBpIDwgeGxyZWMtPm5tZW1iZXJzOyBpKyspCiAJCQlvdXRfbWVtYmVyKGJ1Ziwg JnhscmVjLT5tZW1iZXJzW2ldKTsKQEAgLTc0LDggKzc1LDkgQEAgbXVsdGl4YWN0X2Rlc2MoU3Ry aW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCXsKIAkJeGxfbXVsdGl4YWN0 X3RydW5jYXRlICp4bHJlYyA9ICh4bF9tdWx0aXhhY3RfdHJ1bmNhdGUgKikgcmVjOwogCi0JCWFw cGVuZFN0cmluZ0luZm8oYnVmLCAib2Zmc2V0cyBbJXUsICV1KSwgbWVtYmVycyBbJXUsICV1KSIs Ci0JCQkJCQkgeGxyZWMtPnN0YXJ0VHJ1bmNPZmYsIHhscmVjLT5lbmRUcnVuY09mZiwKKwkJYXBw ZW5kU3RyaW5nSW5mbyhidWYsICJvZmZzZXRzIFslbGx1LCAlbGx1KSwgbWVtYmVycyBbJXUsICV1 KSIsCisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMtPnN0YXJ0VHJ1bmNPZmYsCisJ CQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMtPmVuZFRydW5jT2ZmLAogCQkJCQkJIHhs cmVjLT5zdGFydFRydW5jTWVtYiwgeGxyZWMtPmVuZFRydW5jTWVtYik7CiAJfQogfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL25idGRlc2MuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9ybWdyZGVzYy9uYnRkZXNjLmMKaW5kZXggZGZiYmY0ZWJhZi4uYTU1YjY5ZGVkZiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL25idGRlc2MuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvbmJ0ZGVzYy5jCkBAIC02Myw4ICs2Myw5IEBAIGJ0 cmVlX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJewog CQkJCXhsX2J0cmVlX2RlbGV0ZSAqeGxyZWMgPSAoeGxfYnRyZWVfZGVsZXRlICopIHJlYzsKIAot CQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAibGF0ZXN0UmVtb3ZlZFhpZCAldTsgbmRlbGV0ZWQg JXU7IG51cGRhdGVkICV1IiwKLQkJCQkJCQkJIHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLCB4bHJl Yy0+bmRlbGV0ZWQsIHhscmVjLT5udXBkYXRlZCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYs ICJsYXRlc3RSZW1vdmVkWGlkICVsbHU7IG5kZWxldGVkICV1OyBudXBkYXRlZCAldSIsCisJCQkJ CQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwKKwkJCQkJ CQkJIHhscmVjLT5uZGVsZXRlZCwgeGxyZWMtPm51cGRhdGVkKTsKIAkJCQlicmVhazsKIAkJCX0K IAkJY2FzZSBYTE9HX0JUUkVFX01BUktfUEFHRV9IQUxGREVBRDoKQEAgLTgwLDEwICs4MSwxMCBA QCBidHJlZV9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJ CXsKIAkJCQl4bF9idHJlZV91bmxpbmtfcGFnZSAqeGxyZWMgPSAoeGxfYnRyZWVfdW5saW5rX3Bh Z2UgKikgcmVjOwogCi0JCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJsZWZ0ICV1OyByaWdodCAl dTsgbGV2ZWwgJXU7IHNhZmV4aWQgJXU6JXU7ICIsCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYs ICJsZWZ0ICV1OyByaWdodCAldTsgbGV2ZWwgJXU7IHNhZmV4aWQgJXU6JWxsdTsgIiwKIAkJCQkJ CQkJIHhscmVjLT5sZWZ0c2liLCB4bHJlYy0+cmlnaHRzaWIsIHhscmVjLT5sZXZlbCwKIAkJCQkJ CQkJIEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlvbklkKHhscmVjLT5zYWZleGlkKSwKLQkJCQkJCQkJ IFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZCh4bHJlYy0+c2FmZXhpZCkpOworCQkJCQkJCQkgKHVu c2lnbmVkIGxvbmcgbG9uZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKHhscmVjLT5zYWZleGlk KSk7CiAJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJsZWFmbGVmdCAldTsgbGVhZnJpZ2h0ICV1 OyBsZWFmdG9wcGFyZW50ICV1IiwKIAkJCQkJCQkJIHhscmVjLT5sZWFmbGVmdHNpYiwgeGxyZWMt PmxlYWZyaWdodHNpYiwKIAkJCQkJCQkJIHhscmVjLT5sZWFmdG9wcGFyZW50KTsKQEAgLTEwMCwx MSArMTAxLDExIEBAIGJ0cmVlX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCQkJewogCQkJCXhsX2J0cmVlX3JldXNlX3BhZ2UgKnhscmVjID0gKHhsX2J0cmVl X3JldXNlX3BhZ2UgKikgcmVjOwogCi0JCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJyZWwgJXUv JXUvJXU7IGxhdGVzdFJlbW92ZWRYaWQgJXU6JXUiLAorCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVm LCAicmVsICV1LyV1LyV1OyBsYXRlc3RSZW1vdmVkWGlkICV1OiVsbHUiLAogCQkJCQkJCQkgeGxy ZWMtPm5vZGUuc3BjTm9kZSwgeGxyZWMtPm5vZGUuZGJOb2RlLAogCQkJCQkJCQkgeGxyZWMtPm5v ZGUucmVsTm9kZSwKIAkJCQkJCQkJIEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlvbklkKHhscmVjLT5s YXRlc3RSZW1vdmVkRnVsbFhpZCksCi0JCQkJCQkJCSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQo eGxyZWMtPmxhdGVzdFJlbW92ZWRGdWxsWGlkKSk7CisJCQkJCQkJCSAodW5zaWduZWQgbG9uZyBs b25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoeGxyZWMtPmxhdGVzdFJlbW92ZWRGdWxsWGlk KSk7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCWNhc2UgWExPR19CVFJFRV9NRVRBX0NMRUFOVVA6CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mvc3BnZGVzYy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3JtZ3JkZXNjL3NwZ2Rlc2MuYwppbmRleCBkNWQ5MjFhNDJhLi45Mzc2NjJl NWQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mvc3BnZGVzYy5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9zcGdkZXNjLmMKQEAgLTExOCwxMCArMTE4 LDEwIEBAIHNwZ19kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkK IAkJCXsKIAkJCQlzcGd4bG9nVmFjdXVtUmVkaXJlY3QgKnhscmVjID0gKHNwZ3hsb2dWYWN1dW1S ZWRpcmVjdCAqKSByZWM7CiAKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm50b3BsYWNlaG9s ZGVyOiAldSwgZmlyc3RwbGFjZWhvbGRlcjogJXUsIG5ld2VzdHJlZGlyZWN0eGlkOiAldSIsCisJ CQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJudG9wbGFjZWhvbGRlcjogJXUsIGZpcnN0cGxhY2Vo b2xkZXI6ICV1LCBuZXdlc3RyZWRpcmVjdHhpZDogJWxsdSIsCiAJCQkJCQkJCSB4bHJlYy0+blRv UGxhY2Vob2xkZXIsCiAJCQkJCQkJCSB4bHJlYy0+Zmlyc3RQbGFjZWhvbGRlciwKLQkJCQkJCQkJ IHhscmVjLT5uZXdlc3RSZWRpcmVjdFhpZCk7CisJCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25n KSB4bHJlYy0+bmV3ZXN0UmVkaXJlY3RYaWQpOwogCQkJfQogCQkJYnJlYWs7CiAJfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL3N0YW5kYnlkZXNjLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3Mvcm1ncmRlc2Mvc3RhbmRieWRlc2MuYwppbmRleCAyZGJhMzllMzQ5Li5hOWQx ZmE5ZDM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mvc3RhbmRieWRl c2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mvc3RhbmRieWRlc2MuYwpAQCAt MjEsMTUgKzIxLDE1IEBAIHN0YW5kYnlfZGVzY19ydW5uaW5nX3hhY3RzKFN0cmluZ0luZm8gYnVm LCB4bF9ydW5uaW5nX3hhY3RzICp4bHJlYykKIHsKIAlpbnQJCQlpOwogCi0JYXBwZW5kU3RyaW5n SW5mbyhidWYsICJuZXh0WGlkICV1IGxhdGVzdENvbXBsZXRlZFhpZCAldSBvbGRlc3RSdW5uaW5n WGlkICV1IiwKLQkJCQkJIHhscmVjLT5uZXh0WGlkLAotCQkJCQkgeGxyZWMtPmxhdGVzdENvbXBs ZXRlZFhpZCwKLQkJCQkJIHhscmVjLT5vbGRlc3RSdW5uaW5nWGlkKTsKKwlhcHBlbmRTdHJpbmdJ bmZvKGJ1ZiwgIm5leHRYaWQgJWxsdSBsYXRlc3RDb21wbGV0ZWRYaWQgJWxsdSBvbGRlc3RSdW5u aW5nWGlkICVsbHUiLAorCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMtPm5leHRYaWQs CisJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJlYy0+bGF0ZXN0Q29tcGxldGVkWGlkLAor CQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMtPm9sZGVzdFJ1bm5pbmdYaWQpOwogCWlm ICh4bHJlYy0+eGNudCA+IDApCiAJewogCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIjsgJWQgeGFj dHM6IiwgeGxyZWMtPnhjbnQpOwogCQlmb3IgKGkgPSAwOyBpIDwgeGxyZWMtPnhjbnQ7IGkrKykK LQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiICV1IiwgeGxyZWMtPnhpZHNbaV0pOworCQkJYXBw ZW5kU3RyaW5nSW5mbyhidWYsICIgJWxsdSIsICh1bnNpZ25lZCBsb25nIGxvbmcpIHhscmVjLT54 aWRzW2ldKTsKIAl9CiAKIAlpZiAoeGxyZWMtPnN1YnhpZF9vdmVyZmxvdykKQEAgLTQ4LDggKzQ4 LDkgQEAgc3RhbmRieV9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIAkJaW50CQkJaTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgeGxyZWMtPm5sb2NrczsgaSsrKQot CQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJ4aWQgJXUgZGIgJXUgcmVsICV1ICIsCi0JCQkJCQkJ IHhscmVjLT5sb2Nrc1tpXS54aWQsIHhscmVjLT5sb2Nrc1tpXS5kYk9pZCwKKwkJCWFwcGVuZFN0 cmluZ0luZm8oYnVmLCAieGlkICVsbHUgZGIgJXUgcmVsICV1ICIsCisJCQkJCQkJICh1bnNpZ25l ZCBsb25nIGxvbmcpIHhscmVjLT5sb2Nrc1tpXS54aWQsCisJCQkJCQkJIHhscmVjLT5sb2Nrc1tp XS5kYk9pZCwKIAkJCQkJCQkgeGxyZWMtPmxvY2tzW2ldLnJlbE9pZCk7CiAJfQogCWVsc2UgaWYg KGluZm8gPT0gWExPR19SVU5OSU5HX1hBQ1RTKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3JtZ3JkZXNjL3hhY3RkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGFj dGRlc2MuYwppbmRleCBkM2Y2MjVkMDcyLi45Y2ZkZDY1ZDgzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGFjdGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv cm1ncmRlc2MveGFjdGRlc2MuYwpAQCAtMzA0LDcgKzMwNCw3IEBAIHhhY3RfZGVzY19zdWJ4YWN0 cyhTdHJpbmdJbmZvIGJ1ZiwgaW50IG5zdWJ4YWN0cywgVHJhbnNhY3Rpb25JZCAqc3VieGFjdHMp CiAJewogCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIjsgc3VieGFjdHM6Iik7CiAJCWZv ciAoaSA9IDA7IGkgPCBuc3VieGFjdHM7IGkrKykKLQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAi ICV1Iiwgc3VieGFjdHNbaV0pOworCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIgJWxsdSIsICh1 bnNpZ25lZCBsb25nIGxvbmcpIHN1YnhhY3RzW2ldKTsKIAl9CiB9CiAKQEAgLTMzNiw3ICszMzYs NyBAQCB4YWN0X2Rlc2NfY29tbWl0KFN0cmluZ0luZm8gYnVmLCB1aW50OCBpbmZvLCB4bF94YWN0 X2NvbW1pdCAqeGxyZWMsIFJlcE9yaWdpbklkCiAKIAkvKiBJZiB0aGlzIGlzIGEgcHJlcGFyZWQg eGFjdCwgc2hvdyB0aGUgeGlkIG9mIHRoZSBvcmlnaW5hbCB4YWN0ICovCiAJaWYgKFRyYW5zYWN0 aW9uSWRJc1ZhbGlkKHBhcnNlZC50d29waGFzZV94aWQpKQotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1 ZiwgIiV1OiAiLCBwYXJzZWQudHdvcGhhc2VfeGlkKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYs ICIlbGx1OiAiLCAodW5zaWduZWQgbG9uZyBsb25nKSBwYXJzZWQudHdvcGhhc2VfeGlkKTsKIAog CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCB0aW1lc3RhbXB0el90b19zdHIoeGxyZWMtPnhh Y3RfdGltZSkpOwogCkBAIC0zNzIsNyArMzcyLDcgQEAgeGFjdF9kZXNjX2Fib3J0KFN0cmluZ0lu Zm8gYnVmLCB1aW50OCBpbmZvLCB4bF94YWN0X2Fib3J0ICp4bHJlYywgUmVwT3JpZ2luSWQgb3IK IAogCS8qIElmIHRoaXMgaXMgYSBwcmVwYXJlZCB4YWN0LCBzaG93IHRoZSB4aWQgb2YgdGhlIG9y aWdpbmFsIHhhY3QgKi8KIAlpZiAoVHJhbnNhY3Rpb25JZElzVmFsaWQocGFyc2VkLnR3b3BoYXNl X3hpZCkpCi0JCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJXU6ICIsIHBhcnNlZC50d29waGFzZV94 aWQpOworCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVsbHU6ICIsICh1bnNpZ25lZCBsb25nIGxv bmcpIHBhcnNlZC50d29waGFzZV94aWQpOwogCiAJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYs IHRpbWVzdGFtcHR6X3RvX3N0cih4bHJlYy0+eGFjdF90aW1lKSk7CiAKQEAgLTQyOSw3ICs0Mjks NyBAQCB4YWN0X2Rlc2NfYXNzaWdubWVudChTdHJpbmdJbmZvIGJ1ZiwgeGxfeGFjdF9hc3NpZ25t ZW50ICp4bHJlYykKIAlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgInN1YnhhY3RzOiIpOwog CiAJZm9yIChpID0gMDsgaSA8IHhscmVjLT5uc3VieGFjdHM7IGkrKykKLQkJYXBwZW5kU3RyaW5n SW5mbyhidWYsICIgJXUiLCB4bHJlYy0+eHN1YltpXSk7CisJCWFwcGVuZFN0cmluZ0luZm8oYnVm LCAiICVsbHUiLCAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJlYy0+eHN1YltpXSk7CiB9CiAKIHZv aWQKQEAgLTQ2OCw3ICs0NjgsNyBAQCB4YWN0X2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCQkgKiBpbnRlcmVzdGVkIGluIHRoZSB0b3AtbGV2ZWwgeGlkIHRo YXQgaXNzdWVkIHRoZSByZWNvcmQgYW5kIHdoaWNoCiAJCSAqIHhpZHMgYXJlIGJlaW5nIHJlcG9y dGVkIGhlcmUuCiAJCSAqLwotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInh0b3AgJXU6ICIsIHhs cmVjLT54dG9wKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJ4dG9wICVsbHU6ICIsICh1bnNp Z25lZCBsb25nIGxvbmcpIHhscmVjLT54dG9wKTsKIAkJeGFjdF9kZXNjX2Fzc2lnbm1lbnQoYnVm LCB4bHJlYyk7CiAJfQogCWVsc2UgaWYgKGluZm8gPT0gWExPR19YQUNUX0lOVkFMSURBVElPTlMp CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy94bG9nZGVzYy5jCmluZGV4IGMwZGZlYTQwYzcuLmM3 M2U5ZGY2M2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy94bG9nZGVz Yy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy94bG9nZGVzYy5jCkBAIC00NSwy NiArNDUsMjYgQEAgeGxvZ19kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJl Y29yZCkKIAkJQ2hlY2tQb2ludCAqY2hlY2twb2ludCA9IChDaGVja1BvaW50ICopIHJlYzsKIAog CQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInJlZG8gJVgvJVg7ICIKLQkJCQkJCSAidGxpICV1OyBw cmV2IHRsaSAldTsgZnB3ICVzOyB4aWQgJXU6JXU7IG9pZCAldTsgbXVsdGkgJXU7IG9mZnNldCAl dTsgIgotCQkJCQkJICJvbGRlc3QgeGlkICV1IGluIERCICV1OyBvbGRlc3QgbXVsdGkgJXUgaW4g REIgJXU7ICIKLQkJCQkJCSAib2xkZXN0L25ld2VzdCBjb21taXQgdGltZXN0YW1wIHhpZDogJXUv JXU7ICIKLQkJCQkJCSAib2xkZXN0IHJ1bm5pbmcgeGlkICV1OyAlcyIsCisJCQkJCQkgInRsaSAl dTsgcHJldiB0bGkgJXU7IGZwdyAlczsgeGlkICV1OiVsbHU7IG9pZCAldTsgbXVsdGkgJWxsdTsg b2Zmc2V0ICV1OyAiCisJCQkJCQkgIm9sZGVzdCB4aWQgJWxsdSBpbiBEQiAldTsgb2xkZXN0IG11 bHRpICVsbHUgaW4gREIgJXU7ICIKKwkJCQkJCSAib2xkZXN0L25ld2VzdCBjb21taXQgdGltZXN0 YW1wIHhpZDogJWxsdS8lbGx1OyAiCisJCQkJCQkgIm9sZGVzdCBydW5uaW5nIHhpZCAlbGx1OyAl cyIsCiAJCQkJCQkgTFNOX0ZPUk1BVF9BUkdTKGNoZWNrcG9pbnQtPnJlZG8pLAogCQkJCQkJIGNo ZWNrcG9pbnQtPlRoaXNUaW1lTGluZUlELAogCQkJCQkJIGNoZWNrcG9pbnQtPlByZXZUaW1lTGlu ZUlELAogCQkJCQkJIGNoZWNrcG9pbnQtPmZ1bGxQYWdlV3JpdGVzID8gInRydWUiIDogImZhbHNl IiwKIAkJCQkJCSBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25JZChjaGVja3BvaW50LT5uZXh0WGlk KSwKLQkJCQkJCSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY2hlY2twb2ludC0+bmV4dFhpZCks CisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGNo ZWNrcG9pbnQtPm5leHRYaWQpLAogCQkJCQkJIGNoZWNrcG9pbnQtPm5leHRPaWQsCi0JCQkJCQkg Y2hlY2twb2ludC0+bmV4dE11bHRpLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIGNoZWNr cG9pbnQtPm5leHRNdWx0aSwKIAkJCQkJCSBjaGVja3BvaW50LT5uZXh0TXVsdGlPZmZzZXQsCi0J CQkJCQkgY2hlY2twb2ludC0+b2xkZXN0WGlkLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcp IGNoZWNrcG9pbnQtPm9sZGVzdFhpZCwKIAkJCQkJCSBjaGVja3BvaW50LT5vbGRlc3RYaWREQiwK LQkJCQkJCSBjaGVja3BvaW50LT5vbGRlc3RNdWx0aSwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBs b25nKSBjaGVja3BvaW50LT5vbGRlc3RNdWx0aSwKIAkJCQkJCSBjaGVja3BvaW50LT5vbGRlc3RN dWx0aURCLAotCQkJCQkJIGNoZWNrcG9pbnQtPm9sZGVzdENvbW1pdFRzWGlkLAotCQkJCQkJIGNo ZWNrcG9pbnQtPm5ld2VzdENvbW1pdFRzWGlkLAotCQkJCQkJIGNoZWNrcG9pbnQtPm9sZGVzdEFj dGl2ZVhpZCwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBjaGVja3BvaW50LT5vbGRlc3RD b21taXRUc1hpZCwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBjaGVja3BvaW50LT5uZXdl c3RDb21taXRUc1hpZCwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBjaGVja3BvaW50LT5v bGRlc3RBY3RpdmVYaWQsCiAJCQkJCQkgKGluZm8gPT0gWExPR19DSEVDS1BPSU5UX1NIVVRET1dO KSA/ICJzaHV0ZG93biIgOiAib25saW5lIik7CiAJfQogCWVsc2UgaWYgKGluZm8gPT0gWExPR19O RVhUT0lEKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3Rz LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYwppbmRleCA3NmRmZDJi MTNiLi43YmZmZjQ3OGVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9j b21taXRfdHMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYwpA QCAtMjc5LDcgKzI3OSw4IEBAIFRyYW5zYWN0aW9uSWRHZXRDb21taXRUc0RhdGEoVHJhbnNhY3Rp b25JZCB4aWQsIFRpbWVzdGFtcFR6ICp0cywKIAlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHhp ZCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCi0JCQkJIGVycm1zZygiY2Fubm90IHJldHJpZXZlIGNvbW1pdCB0aW1lc3Rh bXAgZm9yIHRyYW5zYWN0aW9uICV1IiwgeGlkKSkpOworCQkJCSBlcnJtc2coImNhbm5vdCByZXRy aWV2ZSBjb21taXQgdGltZXN0YW1wIGZvciB0cmFuc2FjdGlvbiAlbGx1IiwKKwkJCQkJCSh1bnNp Z25lZCBsb25nIGxvbmcpIHhpZCkpKTsKIAllbHNlIGlmICghVHJhbnNhY3Rpb25JZElzTm9ybWFs KHhpZCkpCiAJewogCQkvKiBmcm96ZW4gYW5kIGJvb3RzdHJhcCB4aWRzIGFyZSBhbHdheXMgY29t bWl0dGVkIGZhciBpbiB0aGUgcGFzdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0vbXVsdGl4YWN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhh Y3QuYwppbmRleCA2OWZmMmQxMTFiLi4yYjM2MDI5YjEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9tdWx0aXhhY3QuYwpAQCAtNDUxLDggKzQ1MSw5IEBAIE11bHRpWGFjdElkRXhwYW5kKE11 bHRpWGFjdElkIG11bHRpLCBUcmFuc2FjdGlvbklkIHhpZCwgTXVsdGlYYWN0U3RhdHVzIHN0YXR1 cykKIAkvKiBNdWx0aVhhY3RJZFNldE9sZGVzdE1lbWJlcigpIG11c3QgaGF2ZSBiZWVuIGNhbGxl ZCBhbHJlYWR5LiAqLwogCUFzc2VydChNdWx0aVhhY3RJZElzVmFsaWQoT2xkZXN0TWVtYmVyTVhh Y3RJZFtNeUJhY2tlbmRJZF0pKTsKIAotCWRlYnVnX2Vsb2c1KERFQlVHMiwgIkV4cGFuZDogcmVj ZWl2ZWQgbXVsdGkgJXUsIHhpZCAldSBzdGF0dXMgJXMiLAotCQkJCW11bHRpLCB4aWQsIG14c3Rh dHVzX3RvX3N0cmluZyhzdGF0dXMpKTsKKwlkZWJ1Z19lbG9nNShERUJVRzIsICJFeHBhbmQ6IHJl Y2VpdmVkIG11bHRpICVsbHUsIHhpZCAlbGx1IHN0YXR1cyAlcyIsCisJCQkJKHVuc2lnbmVkIGxv bmcgbG9uZykgbXVsdGksICh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCwKKwkJCQlteHN0YXR1c190 b19zdHJpbmcoc3RhdHVzKSk7CiAKIAkvKgogCSAqIE5vdGU6IHdlIGRvbid0IGFsbG93IGZvciBv bGQgbXVsdGlzIGhlcmUuICBUaGUgcmVhc29uIGlzIHRoYXQgdGhlIG9ubHkKQEAgLTQ3Niw4ICs0 NzcsOCBAQCBNdWx0aVhhY3RJZEV4cGFuZChNdWx0aVhhY3RJZCBtdWx0aSwgVHJhbnNhY3Rpb25J ZCB4aWQsIE11bHRpWGFjdFN0YXR1cyBzdGF0dXMpCiAJCW1lbWJlci5zdGF0dXMgPSBzdGF0dXM7 CiAJCW5ld011bHRpID0gTXVsdGlYYWN0SWRDcmVhdGVGcm9tTWVtYmVycygxLCAmbWVtYmVyKTsK IAotCQlkZWJ1Z19lbG9nNChERUJVRzIsICJFeHBhbmQ6ICV1IGhhcyBubyBtZW1iZXJzLCBjcmVh dGUgc2luZ2xldG9uICV1IiwKLQkJCQkJbXVsdGksIG5ld011bHRpKTsKKwkJZGVidWdfZWxvZzQo REVCVUcyLCAiRXhwYW5kOiAlbGx1IGhhcyBubyBtZW1iZXJzLCBjcmVhdGUgc2luZ2xldG9uICVs bHUiLAorCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSBtdWx0aSwgKHVuc2lnbmVkIGxvbmcgbG9u ZykgbmV3TXVsdGkpOwogCQlyZXR1cm4gbmV3TXVsdGk7CiAJfQogCkBAIC00OTAsOCArNDkxLDgg QEAgTXVsdGlYYWN0SWRFeHBhbmQoTXVsdGlYYWN0SWQgbXVsdGksIFRyYW5zYWN0aW9uSWQgeGlk LCBNdWx0aVhhY3RTdGF0dXMgc3RhdHVzKQogCQlpZiAoVHJhbnNhY3Rpb25JZEVxdWFscyhtZW1i ZXJzW2ldLnhpZCwgeGlkKSAmJgogCQkJKG1lbWJlcnNbaV0uc3RhdHVzID09IHN0YXR1cykpCiAJ CXsKLQkJCWRlYnVnX2Vsb2c0KERFQlVHMiwgIkV4cGFuZDogJXUgaXMgYWxyZWFkeSBhIG1lbWJl ciBvZiAldSIsCi0JCQkJCQl4aWQsIG11bHRpKTsKKwkJCWRlYnVnX2Vsb2c0KERFQlVHMiwgIkV4 cGFuZDogJWxsdSBpcyBhbHJlYWR5IGEgbWVtYmVyIG9mICVsbHUiLAorCQkJCQkJKHVuc2lnbmVk IGxvbmcgbG9uZykgeGlkLCAodW5zaWduZWQgbG9uZyBsb25nKSBtdWx0aSk7CiAJCQlwZnJlZSht ZW1iZXJzKTsKIAkJCXJldHVybiBtdWx0aTsKIAkJfQpAQCAtNTI2LDEyICs1MjcsMTQgQEAgTXVs dGlYYWN0SWRFeHBhbmQoTXVsdGlYYWN0SWQgbXVsdGksIFRyYW5zYWN0aW9uSWQgeGlkLCBNdWx0 aVhhY3RTdGF0dXMgc3RhdHVzKQogCiAJbmV3TWVtYmVyc1tqXS54aWQgPSB4aWQ7CiAJbmV3TWVt YmVyc1tqKytdLnN0YXR1cyA9IHN0YXR1czsKKwogCW5ld011bHRpID0gTXVsdGlYYWN0SWRDcmVh dGVGcm9tTWVtYmVycyhqLCBuZXdNZW1iZXJzKTsKIAogCXBmcmVlKG1lbWJlcnMpOwogCXBmcmVl KG5ld01lbWJlcnMpOwogCi0JZGVidWdfZWxvZzMoREVCVUcyLCAiRXhwYW5kOiByZXR1cm5pbmcg bmV3IG11bHRpICV1IiwgbmV3TXVsdGkpOworCWRlYnVnX2Vsb2czKERFQlVHMiwgIkV4cGFuZDog cmV0dXJuaW5nIG5ldyBtdWx0aSAlbGx1IiwKKwkJCQkodW5zaWduZWQgbG9uZyBsb25nKSBuZXdN dWx0aSk7CiAKIAlyZXR1cm4gbmV3TXVsdGk7CiB9CkBAIC01NTQsNyArNTU3LDcgQEAgTXVsdGlY YWN0SWRJc1J1bm5pbmcoTXVsdGlYYWN0SWQgbXVsdGksIGJvb2wgaXNMb2NrT25seSkKIAlpbnQJ CQlubWVtYmVyczsKIAlpbnQJCQlpOwogCi0JZGVidWdfZWxvZzMoREVCVUcyLCAiSXNSdW5uaW5n ICV1PyIsIG11bHRpKTsKKwlkZWJ1Z19lbG9nMyhERUJVRzIsICJJc1J1bm5pbmcgJWxsdT8iLCAo dW5zaWduZWQgbG9uZyBsb25nKSBtdWx0aSk7CiAKIAkvKgogCSAqICJmYWxzZSIgaGVyZSBtZWFu cyB3ZSBhc3N1bWUgb3VyIGNhbGxlcnMgaGF2ZSBjaGVja2VkIHRoYXQgdGhlIGdpdmVuCkBAIC01 OTQsOCArNTk3LDggQEAgTXVsdGlYYWN0SWRJc1J1bm5pbmcoTXVsdGlYYWN0SWQgbXVsdGksIGJv b2wgaXNMb2NrT25seSkKIAl7CiAJCWlmIChUcmFuc2FjdGlvbklkSXNJblByb2dyZXNzKG1lbWJl cnNbaV0ueGlkKSkKIAkJewotCQkJZGVidWdfZWxvZzQoREVCVUcyLCAiSXNSdW5uaW5nOiBtZW1i ZXIgJWQgKCV1KSBpcyBydW5uaW5nIiwKLQkJCQkJCWksIG1lbWJlcnNbaV0ueGlkKTsKKwkJCWRl YnVnX2Vsb2c0KERFQlVHMiwgIklzUnVubmluZzogbWVtYmVyICVkICglbGx1KSBpcyBydW5uaW5n IiwgaSwKKwkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIG1lbWJlcnNbaV0ueGlkKTsKIAkJCXBm cmVlKG1lbWJlcnMpOwogCQkJcmV0dXJuIHRydWU7CiAJCX0KQEAgLTYwMyw3ICs2MDYsOCBAQCBN dWx0aVhhY3RJZElzUnVubmluZyhNdWx0aVhhY3RJZCBtdWx0aSwgYm9vbCBpc0xvY2tPbmx5KQog CiAJcGZyZWUobWVtYmVycyk7CiAKLQlkZWJ1Z19lbG9nMyhERUJVRzIsICJJc1J1bm5pbmc6ICV1 IGlzIG5vdCBydW5uaW5nIiwgbXVsdGkpOworCWRlYnVnX2Vsb2czKERFQlVHMiwgIklzUnVubmlu ZzogJWxsdSBpcyBub3QgcnVubmluZyIsCisJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgbXVsdGkp OwogCiAJcmV0dXJuIGZhbHNlOwogfQpAQCAtNjU3LDggKzY2MSw4IEBAIE11bHRpWGFjdElkU2V0 T2xkZXN0TWVtYmVyKHZvaWQpCiAKIAkJTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5Mb2NrKTsK IAotCQlkZWJ1Z19lbG9nNChERUJVRzIsICJNdWx0aVhhY3Q6IHNldHRpbmcgT2xkZXN0TWVtYmVy WyVkXSA9ICV1IiwKLQkJCQkJTXlCYWNrZW5kSWQsIG5leHRNWGFjdCk7CisJCWRlYnVnX2Vsb2c0 KERFQlVHMiwgIk11bHRpWGFjdDogc2V0dGluZyBPbGRlc3RNZW1iZXJbJWRdID0gJWxsdSIsCisJ CQkJCU15QmFja2VuZElkLCAodW5zaWduZWQgbG9uZyBsb25nKSBuZXh0TVhhY3QpOwogCX0KIH0K IApAQCAtNzEwLDggKzcxNCw4IEBAIE11bHRpWGFjdElkU2V0T2xkZXN0VmlzaWJsZSh2b2lkKQog CiAJCUxXTG9ja1JlbGVhc2UoTXVsdGlYYWN0R2VuTG9jayk7CiAKLQkJZGVidWdfZWxvZzQoREVC VUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIE9sZGVzdFZpc2libGVbJWRdID0gJXUiLAotCQkJCQlN eUJhY2tlbmRJZCwgb2xkZXN0TVhhY3QpOworCQlkZWJ1Z19lbG9nNChERUJVRzIsICJNdWx0aVhh Y3Q6IHNldHRpbmcgT2xkZXN0VmlzaWJsZVslZF0gPSAlbGx1IiwKKwkJCQkJTXlCYWNrZW5kSWQs ICh1bnNpZ25lZCBsb25nIGxvbmcpIG9sZGVzdE1YYWN0KTsKIAl9CiB9CiAKQEAgLTExODgsNyAr MTE5Miw4IEBAIEdldE5ld011bHRpWGFjdElkKGludCBubWVtYmVycywgTXVsdGlYYWN0T2Zmc2V0 ICpvZmZzZXQpCiAKIAlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCi0JZGVidWdf ZWxvZzQoREVCVUcyLCAiR2V0TmV3OiByZXR1cm5pbmcgJXUgb2Zmc2V0ICV1IiwgcmVzdWx0LCAq b2Zmc2V0KTsKKwlkZWJ1Z19lbG9nNChERUJVRzIsICJHZXROZXc6IHJldHVybmluZyAlbGx1IG9m ZnNldCAldSIsCisJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgcmVzdWx0LCAqb2Zmc2V0KTsKIAly ZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMjM4LDcgKzEyNDMsOCBAQCBHZXRNdWx0aVhhY3RJZE1l bWJlcnMoTXVsdGlYYWN0SWQgbXVsdGksIE11bHRpWGFjdE1lbWJlciAqKm1lbWJlcnMsCiAJTXVs dGlYYWN0T2Zmc2V0IG5leHRPZmZzZXQ7CiAJTXVsdGlYYWN0TWVtYmVyICpwdHI7CiAKLQlkZWJ1 Z19lbG9nMyhERUJVRzIsICJHZXRNZW1iZXJzOiBhc2tlZCBmb3IgJXUiLCBtdWx0aSk7CisJZGVi dWdfZWxvZzMoREVCVUcyLCAiR2V0TWVtYmVyczogYXNrZWQgZm9yICVsbHUiLAorCQkJCSh1bnNp Z25lZCBsb25nIGxvbmcpIG11bHRpKTsKIAogCWlmICghTXVsdGlYYWN0SWRJc1ZhbGlkKG11bHRp KSB8fCBmcm9tX3BndXBncmFkZSkKIAl7CkBAIC0xNTE3LDcgKzE1MjMsOCBAQCBtWGFjdENhY2hl R2V0QnlTZXQoaW50IG5tZW1iZXJzLCBNdWx0aVhhY3RNZW1iZXIgKm1lbWJlcnMpCiAJCSAqLwog CQlpZiAobWVtY21wKG1lbWJlcnMsIGVudHJ5LT5tZW1iZXJzLCBubWVtYmVycyAqIHNpemVvZihN dWx0aVhhY3RNZW1iZXIpKSA9PSAwKQogCQl7Ci0JCQlkZWJ1Z19lbG9nMyhERUJVRzIsICJDYWNo ZUdldDogZm91bmQgJXUiLCBlbnRyeS0+bXVsdGkpOworCQkJZGVidWdfZWxvZzMoREVCVUcyLCAi Q2FjaGVHZXQ6IGZvdW5kICVsbHUiLAorCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgZW50cnkt Pm11bHRpKTsKIAkJCWRsaXN0X21vdmVfaGVhZCgmTVhhY3RDYWNoZSwgaXRlci5jdXIpOwogCQkJ cmV0dXJuIGVudHJ5LT5tdWx0aTsKIAkJfQpAQCAtMTU0MCw3ICsxNTQ3LDggQEAgbVhhY3RDYWNo ZUdldEJ5SWQoTXVsdGlYYWN0SWQgbXVsdGksIE11bHRpWGFjdE1lbWJlciAqKm1lbWJlcnMpCiB7 CiAJZGxpc3RfaXRlcglpdGVyOwogCi0JZGVidWdfZWxvZzMoREVCVUcyLCAiQ2FjaGVHZXQ6IGxv b2tpbmcgZm9yICV1IiwgbXVsdGkpOworCWRlYnVnX2Vsb2czKERFQlVHMiwgIkNhY2hlR2V0OiBs b29raW5nIGZvciAlbGx1IiwKKwkJCQkodW5zaWduZWQgbG9uZyBsb25nKSBtdWx0aSk7CiAKIAlk bGlzdF9mb3JlYWNoKGl0ZXIsICZNWGFjdENhY2hlKQogCXsKQEAgLTE2MjEsOCArMTYyOSw4IEBA IG1YYWN0Q2FjaGVQdXQoTXVsdGlYYWN0SWQgbXVsdGksIGludCBubWVtYmVycywgTXVsdGlYYWN0 TWVtYmVyICptZW1iZXJzKQogCQlNWGFjdENhY2hlTWVtYmVycy0tOwogCiAJCWVudHJ5ID0gZGxp c3RfY29udGFpbmVyKG1YYWN0Q2FjaGVFbnQsIG5vZGUsIG5vZGUpOwotCQlkZWJ1Z19lbG9nMyhE RUJVRzIsICJDYWNoZVB1dDogcHJ1bmluZyBjYWNoZWQgbXVsdGkgJXUiLAotCQkJCQllbnRyeS0+ bXVsdGkpOworCQlkZWJ1Z19lbG9nMyhERUJVRzIsICJDYWNoZVB1dDogcHJ1bmluZyBjYWNoZWQg bXVsdGkgJWxsdSIsCisJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIGVudHJ5LT5tdWx0aSk7CiAK IAkJcGZyZWUoZW50cnkpOwogCX0KQEAgLTE2NjMsMTEgKzE2NzEsMTMgQEAgbXhpZF90b19zdHJp bmcoTXVsdGlYYWN0SWQgbXVsdGksIGludCBubWVtYmVycywgTXVsdGlYYWN0TWVtYmVyICptZW1i ZXJzKQogCiAJaW5pdFN0cmluZ0luZm8oJmJ1Zik7CiAKLQlhcHBlbmRTdHJpbmdJbmZvKCZidWYs ICIldSAlZFsldSAoJXMpIiwgbXVsdGksIG5tZW1iZXJzLCBtZW1iZXJzWzBdLnhpZCwKKwlhcHBl bmRTdHJpbmdJbmZvKCZidWYsICIlbGx1ICVkWyVsbHUgKCVzKSIsICh1bnNpZ25lZCBsb25nIGxv bmcpIG11bHRpLAorCQkJCQkgbm1lbWJlcnMsICh1bnNpZ25lZCBsb25nIGxvbmcpIG1lbWJlcnNb MF0ueGlkLAogCQkJCQkgbXhzdGF0dXNfdG9fc3RyaW5nKG1lbWJlcnNbMF0uc3RhdHVzKSk7CiAK IAlmb3IgKGkgPSAxOyBpIDwgbm1lbWJlcnM7IGkrKykKLQkJYXBwZW5kU3RyaW5nSW5mbygmYnVm LCAiLCAldSAoJXMpIiwgbWVtYmVyc1tpXS54aWQsCisJCWFwcGVuZFN0cmluZ0luZm8oJmJ1Ziwg IiwgJWxsdSAoJXMpIiwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBtZW1iZXJzW2ldLnhp ZCwKIAkJCQkJCSBteHN0YXR1c190b19zdHJpbmcobWVtYmVyc1tpXS5zdGF0dXMpKTsKIAogCWFw cGVuZFN0cmluZ0luZm9DaGFyKCZidWYsICddJyk7CkBAIC0yMTQ0LDggKzIxNTQsOSBAQCBNdWx0 aVhhY3RHZXRDaGVja3B0TXVsdGkoYm9vbCBpc19zaHV0ZG93biwKIAlMV0xvY2tSZWxlYXNlKE11 bHRpWGFjdEdlbkxvY2spOwogCiAJZGVidWdfZWxvZzYoREVCVUcyLAotCQkJCSJNdWx0aVhhY3Q6 IGNoZWNrcG9pbnQgaXMgbmV4dE11bHRpICV1LCBuZXh0T2Zmc2V0ICV1LCBvbGRlc3RNdWx0aSAl dSBpbiBEQiAldSIsCi0JCQkJKm5leHRNdWx0aSwgKm5leHRNdWx0aU9mZnNldCwgKm9sZGVzdE11 bHRpLCAqb2xkZXN0TXVsdGlEQik7CisJCQkJIk11bHRpWGFjdDogY2hlY2twb2ludCBpcyBuZXh0 TXVsdGkgJWxsdSwgbmV4dE9mZnNldCAldSwgb2xkZXN0TXVsdGkgJWxsdSBpbiBEQiAldSIsCisJ CQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgKm5leHRNdWx0aSwgKm5leHRNdWx0aU9mZnNldCwKKwkJ CQkodW5zaWduZWQgbG9uZyBsb25nKSAqb2xkZXN0TXVsdGksICpvbGRlc3RNdWx0aURCKTsKIH0K IAogLyoKQEAgLTIxNzksOCArMjE5MCw4IEBAIHZvaWQKIE11bHRpWGFjdFNldE5leHRNWGFjdChN dWx0aVhhY3RJZCBuZXh0TXVsdGksCiAJCQkJCSAgTXVsdGlYYWN0T2Zmc2V0IG5leHRNdWx0aU9m ZnNldCkKIHsKLQlkZWJ1Z19lbG9nNChERUJVRzIsICJNdWx0aVhhY3Q6IHNldHRpbmcgbmV4dCBt dWx0aSB0byAldSBvZmZzZXQgJXUiLAotCQkJCW5leHRNdWx0aSwgbmV4dE11bHRpT2Zmc2V0KTsK KwlkZWJ1Z19lbG9nNChERUJVRzIsICJNdWx0aVhhY3Q6IHNldHRpbmcgbmV4dCBtdWx0aSB0byAl bGx1IG9mZnNldCAldSIsCisJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgbmV4dE11bHRpLCBuZXh0 TXVsdGlPZmZzZXQpOwogCUxXTG9ja0FjcXVpcmUoTXVsdGlYYWN0R2VuTG9jaywgTFdfRVhDTFVT SVZFKTsKIAlNdWx0aVhhY3RTdGF0ZS0+bmV4dE1YYWN0ID0gbmV4dE11bHRpOwogCU11bHRpWGFj dFN0YXRlLT5uZXh0T2Zmc2V0ID0gbmV4dE11bHRpT2Zmc2V0OwpAQCAtMjM2NSw3ICsyMzc2LDgg QEAgTXVsdGlYYWN0QWR2YW5jZU5leHRNWGFjdChNdWx0aVhhY3RJZCBtaW5NdWx0aSwKIAlMV0xv Y2tBY3F1aXJlKE11bHRpWGFjdEdlbkxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJaWYgKE11bHRpWGFj dElkUHJlY2VkZXMoTXVsdGlYYWN0U3RhdGUtPm5leHRNWGFjdCwgbWluTXVsdGkpKQogCXsKLQkJ ZGVidWdfZWxvZzMoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIG5leHQgbXVsdGkgdG8gJXUi LCBtaW5NdWx0aSk7CisJCWRlYnVnX2Vsb2czKERFQlVHMiwgIk11bHRpWGFjdDogc2V0dGluZyBu ZXh0IG11bHRpIHRvICVsbHUiLAorCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSBtaW5NdWx0aSk7 CiAJCU11bHRpWGFjdFN0YXRlLT5uZXh0TVhhY3QgPSBtaW5NdWx0aTsKIAl9CiAJaWYgKE11bHRp WGFjdE9mZnNldFByZWNlZGVzKE11bHRpWGFjdFN0YXRlLT5uZXh0T2Zmc2V0LCBtaW5NdWx0aU9m ZnNldCkpCkBAIC0yNjE0LDEyICsyNjI2LDEyIEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wg aXNfc3RhcnR1cCkKIAogCQlpZiAob2xkZXN0T2Zmc2V0S25vd24pCiAJCQllcmVwb3J0KERFQlVH MSwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgib2xkZXN0IE11bHRpWGFjdElkIG1lbWJlciBpcyBh dCBvZmZzZXQgJXUiLAotCQkJCQkJCQkJIG9sZGVzdE9mZnNldCkpKTsKKwkJCQkJKGVycm1zZ19p bnRlcm5hbCgib2xkZXN0IE11bHRpWGFjdElkIG1lbWJlciBpcyBhdCBvZmZzZXQgJWxsdSIsCisJ CQkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgb2xkZXN0T2Zmc2V0KSkpOwogCQllbHNlCiAJ CQllcmVwb3J0KExPRywKLQkJCQkJKGVycm1zZygiTXVsdGlYYWN0IG1lbWJlciB3cmFwYXJvdW5k IHByb3RlY3Rpb25zIGFyZSBkaXNhYmxlZCBiZWNhdXNlIG9sZGVzdCBjaGVja3BvaW50ZWQgTXVs dGlYYWN0ICV1IGRvZXMgbm90IGV4aXN0IG9uIGRpc2siLAotCQkJCQkJCW9sZGVzdE11bHRpWGFj dElkKSkpOworCQkJCQkoZXJybXNnKCJNdWx0aVhhY3QgbWVtYmVyIHdyYXBhcm91bmQgcHJvdGVj dGlvbnMgYXJlIGRpc2FibGVkIGJlY2F1c2Ugb2xkZXN0IGNoZWNrcG9pbnRlZCBNdWx0aVhhY3Qg JWxsdSBkb2VzIG5vdCBleGlzdCBvbiBkaXNrIiwKKwkJCQkJCQkodW5zaWduZWQgbG9uZyBsb25n KSBvbGRlc3RNdWx0aVhhY3RJZCkpKTsKIAl9CiAKIAlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdFRy dW5jYXRpb25Mb2NrKTsKQEAgLTI2NDMsOCArMjY1NSw5IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0 KGJvb2wgaXNfc3RhcnR1cCkKIAkJCQkJKGVycm1zZygiTXVsdGlYYWN0IG1lbWJlciB3cmFwYXJv dW5kIHByb3RlY3Rpb25zIGFyZSBub3cgZW5hYmxlZCIpKSk7CiAKIAkJZXJlcG9ydChERUJVRzEs Ci0JCQkJKGVycm1zZ19pbnRlcm5hbCgiTXVsdGlYYWN0IG1lbWJlciBzdG9wIGxpbWl0IGlzIG5v dyAldSBiYXNlZCBvbiBNdWx0aVhhY3QgJXUiLAotCQkJCQkJCQkgb2Zmc2V0U3RvcExpbWl0LCBv bGRlc3RNdWx0aVhhY3RJZCkpKTsKKwkJCQkoZXJybXNnX2ludGVybmFsKCJNdWx0aVhhY3QgbWVt YmVyIHN0b3AgbGltaXQgaXMgbm93ICVsbHUgYmFzZWQgb24gTXVsdGlYYWN0ICVsbHUiLAorCQkJ CQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgb2Zmc2V0U3RvcExpbWl0LAorCQkJCQkJCQkgKHVu c2lnbmVkIGxvbmcgbG9uZykgb2xkZXN0TXVsdGlYYWN0SWQpKSk7CiAJfQogCWVsc2UgaWYgKHBy ZXZPbGRlc3RPZmZzZXRLbm93bikKIAl7CkBAIC0zMDI3LDggKzMwNDAsOCBAQCBUcnVuY2F0ZU11 bHRpWGFjdChNdWx0aVhhY3RJZCBuZXdPbGRlc3RNdWx0aSwgT2lkIG5ld09sZGVzdE11bHRpREIp CiAJZWxzZSBpZiAoIWZpbmRfbXVsdGl4YWN0X3N0YXJ0KG9sZGVzdE11bHRpLCAmb2xkZXN0T2Zm c2V0KSkKIAl7CiAJCWVyZXBvcnQoTE9HLAotCQkJCShlcnJtc2coIm9sZGVzdCBNdWx0aVhhY3Qg JXUgbm90IGZvdW5kLCBlYXJsaWVzdCBNdWx0aVhhY3QgJXUsIHNraXBwaW5nIHRydW5jYXRpb24i LAotCQkJCQkJb2xkZXN0TXVsdGksIGVhcmxpZXN0KSkpOworCQkJCShlcnJtc2coIm9sZGVzdCBN dWx0aVhhY3QgJWxsdSBub3QgZm91bmQsIGVhcmxpZXN0IE11bHRpWGFjdCAlbGx1LCBza2lwcGlu ZyB0cnVuY2F0aW9uIiwKKwkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIG9sZGVzdE11bHRpLCAo dW5zaWduZWQgbG9uZyBsb25nKSBlYXJsaWVzdCkpKTsKIAkJTFdMb2NrUmVsZWFzZShNdWx0aVhh Y3RUcnVuY2F0aW9uTG9jayk7CiAJCXJldHVybjsKIAl9CkBAIC0zMDQ1LDE2ICszMDU4LDE2IEBA IFRydW5jYXRlTXVsdGlYYWN0KE11bHRpWGFjdElkIG5ld09sZGVzdE11bHRpLCBPaWQgbmV3T2xk ZXN0TXVsdGlEQikKIAllbHNlIGlmICghZmluZF9tdWx0aXhhY3Rfc3RhcnQobmV3T2xkZXN0TXVs dGksICZuZXdPbGRlc3RPZmZzZXQpKQogCXsKIAkJZXJlcG9ydChMT0csCi0JCQkJKGVycm1zZygi Y2Fubm90IHRydW5jYXRlIHVwIHRvIE11bHRpWGFjdCAldSBiZWNhdXNlIGl0IGRvZXMgbm90IGV4 aXN0IG9uIGRpc2ssIHNraXBwaW5nIHRydW5jYXRpb24iLAotCQkJCQkJbmV3T2xkZXN0TXVsdGkp KSk7CisJCQkJKGVycm1zZygiY2Fubm90IHRydW5jYXRlIHVwIHRvIE11bHRpWGFjdCAlbGx1IGJl Y2F1c2UgaXQgZG9lcyBub3QgZXhpc3Qgb24gZGlzaywgc2tpcHBpbmcgdHJ1bmNhdGlvbiIsCisJ CQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSBuZXdPbGRlc3RNdWx0aSkpKTsKIAkJTFdMb2NrUmVs ZWFzZShNdWx0aVhhY3RUcnVuY2F0aW9uTG9jayk7CiAJCXJldHVybjsKIAl9CiAKIAllbG9nKERF QlVHMSwgInBlcmZvcm1pbmcgbXVsdGl4YWN0IHRydW5jYXRpb246ICIKLQkJICJvZmZzZXRzIFsl dSwgJXUpLCBvZmZzZXRzIHNlZ21lbnRzIFsleCwgJXgpLCAiCisJCSAib2Zmc2V0cyBbJWxsdSwg JWxsdSksIG9mZnNldHMgc2VnbWVudHMgWyV4LCAleCksICIKIAkJICJtZW1iZXJzIFsldSwgJXUp LCBtZW1iZXJzIHNlZ21lbnRzIFsleCwgJXgpIiwKLQkJIG9sZGVzdE11bHRpLCBuZXdPbGRlc3RN dWx0aSwKKwkJICh1bnNpZ25lZCBsb25nIGxvbmcpIG9sZGVzdE11bHRpLCAodW5zaWduZWQgbG9u ZyBsb25nKSBuZXdPbGRlc3RNdWx0aSwKIAkJIE11bHRpWGFjdElkVG9PZmZzZXRTZWdtZW50KG9s ZGVzdE11bHRpKSwKIAkJIE11bHRpWGFjdElkVG9PZmZzZXRTZWdtZW50KG5ld09sZGVzdE11bHRp KSwKIAkJIG9sZGVzdE9mZnNldCwgbmV3T2xkZXN0T2Zmc2V0LApAQCAtMzMwOCw5ICszMzIxLDEw IEBAIG11bHRpeGFjdF9yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJICAgU2l6ZU9m TXVsdGlYYWN0VHJ1bmNhdGUpOwogCiAJCWVsb2coREVCVUcxLCAicmVwbGF5aW5nIG11bHRpeGFj dCB0cnVuY2F0aW9uOiAiCi0JCQkgIm9mZnNldHMgWyV1LCAldSksIG9mZnNldHMgc2VnbWVudHMg WyV4LCAleCksICIKKwkJCSAib2Zmc2V0cyBbJWxsdSwgJWxsdSksIG9mZnNldHMgc2VnbWVudHMg WyV4LCAleCksICIKIAkJCSAibWVtYmVycyBbJXUsICV1KSwgbWVtYmVycyBzZWdtZW50cyBbJXgs ICV4KSIsCi0JCQkgeGxyZWMuc3RhcnRUcnVuY09mZiwgeGxyZWMuZW5kVHJ1bmNPZmYsCisJCQkg KHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMuc3RhcnRUcnVuY09mZiwKKwkJCSAodW5zaWduZWQg bG9uZyBsb25nKSB4bHJlYy5lbmRUcnVuY09mZiwKIAkJCSBNdWx0aVhhY3RJZFRvT2Zmc2V0U2Vn bWVudCh4bHJlYy5zdGFydFRydW5jT2ZmKSwKIAkJCSBNdWx0aVhhY3RJZFRvT2Zmc2V0U2VnbWVu dCh4bHJlYy5lbmRUcnVuY09mZiksCiAJCQkgeGxyZWMuc3RhcnRUcnVuY01lbWIsIHhscmVjLmVu ZFRydW5jTWVtYiwKQEAgLTMzNTksNyArMzM3Myw3IEBAIHBnX2dldF9tdWx0aXhhY3RfbWVtYmVy cyhQR19GVU5DVElPTl9BUkdTKQogCWlmIChteGlkIDwgRmlyc3RNdWx0aVhhY3RJZCkKIAkJZXJl cG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVF KSwKLQkJCQkgZXJybXNnKCJpbnZhbGlkIE11bHRpWGFjdElkOiAldSIsIG14aWQpKSk7CisJCQkJ IGVycm1zZygiaW52YWxpZCBNdWx0aVhhY3RJZDogJWxsdSIsICh1bnNpZ25lZCBsb25nIGxvbmcp IG14aWQpKSk7CiAKIAlpZiAoU1JGX0lTX0ZJUlNUQ0FMTCgpKQogCXsKQEAgLTMzOTUsNyArMzQw OSw4IEBAIHBnX2dldF9tdWx0aXhhY3RfbWVtYmVycyhQR19GVU5DVElPTl9BUkdTKQogCQlIZWFw VHVwbGUJdHVwbGU7CiAJCWNoYXIJICAgKnZhbHVlc1syXTsKIAotCQl2YWx1ZXNbMF0gPSBwc3By aW50ZigiJXUiLCBtdWx0aS0+bWVtYmVyc1ttdWx0aS0+aXRlcl0ueGlkKTsKKwkJdmFsdWVzWzBd ID0gcHNwcmludGYoIiVsbHUiLAorCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBtdWx0aS0+ bWVtYmVyc1ttdWx0aS0+aXRlcl0ueGlkKTsKIAkJdmFsdWVzWzFdID0gbXhzdGF0dXNfdG9fc3Ry aW5nKG11bHRpLT5tZW1iZXJzW211bHRpLT5pdGVyXS5zdGF0dXMpOwogCiAJCXR1cGxlID0gQnVp bGRUdXBsZUZyb21DU3RyaW5ncyhmdW5jY3h0LT5hdHRpbm1ldGEsIHZhbHVlcyk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS9zbHJ1LmMKaW5kZXggZmFmNTYxZjIyNS4uZWE2NjA4NDQxMCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3NscnUuYwpAQCAtOTQ5LDEzICs5NDksMTUgQEAgU2xydVJlcG9ydElPRXJy b3IoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgVHJhbnNhY3Rpb25JZCB4aWQpCiAJCWNhc2Ug U0xSVV9PUEVOX0ZBSUxFRDoKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlX2Zvcl9m aWxlX2FjY2VzcygpLAotCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgYWNjZXNzIHN0YXR1cyBvZiB0 cmFuc2FjdGlvbiAldSIsIHhpZCksCisJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mgc3Rh dHVzIG9mIHRyYW5zYWN0aW9uICVsbHUiLAorCQkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIHhp ZCksCiAJCQkJCSBlcnJkZXRhaWwoIkNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiOiAlbS4iLCBw YXRoKSkpOwogCQkJYnJlYWs7CiAJCWNhc2UgU0xSVV9TRUVLX0ZBSUxFRDoKIAkJCWVyZXBvcnQo RVJST1IsCiAJCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAotCQkJCQkgZXJybXNnKCJj b3VsZCBub3QgYWNjZXNzIHN0YXR1cyBvZiB0cmFuc2FjdGlvbiAldSIsIHhpZCksCisJCQkJCSBl cnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mgc3RhdHVzIG9mIHRyYW5zYWN0aW9uICVsbHUiLAorCQkJ CQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCksCiAJCQkJCSBlcnJkZXRhaWwoIkNvdWxkIG5v dCBzZWVrIGluIGZpbGUgXCIlc1wiIHRvIG9mZnNldCAlZDogJW0uIiwKIAkJCQkJCQkgICBwYXRo LCBvZmZzZXQpKSk7CiAJCQlicmVhazsKQEAgLTk2MywxMiArOTY1LDE0IEBAIFNscnVSZXBvcnRJ T0Vycm9yKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8sIFRyYW5zYWN0aW9uSWQgeGlkKQogCQkJ aWYgKGVycm5vKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZV9mb3JfZmlsZV9h Y2Nlc3MoKSwKLQkJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mgc3RhdHVzIG9mIHRyYW5z YWN0aW9uICV1IiwgeGlkKSwKKwkJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mgc3RhdHVz IG9mIHRyYW5zYWN0aW9uICVsbHUiLAorCQkJCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSB4aWQp LAogCQkJCQkJIGVycmRldGFpbCgiQ291bGQgbm90IHJlYWQgZnJvbSBmaWxlIFwiJXNcIiBhdCBv ZmZzZXQgJWQ6ICVtLiIsCiAJCQkJCQkJCSAgIHBhdGgsIG9mZnNldCkpKTsKIAkJCWVsc2UKIAkJ CQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycm1zZygiY291bGQgbm90IGFjY2VzcyBzdGF0dXMg b2YgdHJhbnNhY3Rpb24gJXUiLCB4aWQpLAorCQkJCQkJKGVycm1zZygiY291bGQgbm90IGFjY2Vz cyBzdGF0dXMgb2YgdHJhbnNhY3Rpb24gJWxsdSIsCisJCQkJCQkJCSh1bnNpZ25lZCBsb25nIGxv bmcpIHhpZCksCiAJCQkJCQkgZXJyZGV0YWlsKCJDb3VsZCBub3QgcmVhZCBmcm9tIGZpbGUgXCIl c1wiIGF0IG9mZnNldCAlZDogcmVhZCB0b28gZmV3IGJ5dGVzLiIsCiAJCQkJCQkJCSAgIHBhdGgs IG9mZnNldCkpKTsKIAkJCWJyZWFrOwpAQCAtOTc2LDI2ICs5ODAsMzAgQEAgU2xydVJlcG9ydElP RXJyb3IoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgVHJhbnNhY3Rpb25JZCB4aWQpCiAJCQlp ZiAoZXJybm8pCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2RlX2Zvcl9maWxlX2Fj Y2VzcygpLAotCQkJCQkJIGVycm1zZygiY291bGQgbm90IGFjY2VzcyBzdGF0dXMgb2YgdHJhbnNh Y3Rpb24gJXUiLCB4aWQpLAorCQkJCQkJIGVycm1zZygiY291bGQgbm90IGFjY2VzcyBzdGF0dXMg b2YgdHJhbnNhY3Rpb24gJWxsdSIsCisJCQkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCks CiAJCQkJCQkgZXJyZGV0YWlsKCJDb3VsZCBub3Qgd3JpdGUgdG8gZmlsZSBcIiVzXCIgYXQgb2Zm c2V0ICVkOiAlbS4iLAogCQkJCQkJCQkgICBwYXRoLCBvZmZzZXQpKSk7CiAJCQllbHNlCiAJCQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mgc3RhdHVzIG9m IHRyYW5zYWN0aW9uICV1IiwgeGlkKSwKKwkJCQkJCShlcnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mg c3RhdHVzIG9mIHRyYW5zYWN0aW9uICVsbHUiLAorCQkJCQkJCQkodW5zaWduZWQgbG9uZyBsb25n KSB4aWQpLAogCQkJCQkJIGVycmRldGFpbCgiQ291bGQgbm90IHdyaXRlIHRvIGZpbGUgXCIlc1wi IGF0IG9mZnNldCAlZDogd3JvdGUgdG9vIGZldyBieXRlcy4iLAogCQkJCQkJCQkgICBwYXRoLCBv ZmZzZXQpKSk7CiAJCQlicmVhazsKIAkJY2FzZSBTTFJVX0ZTWU5DX0ZBSUxFRDoKIAkJCWVyZXBv cnQoZGF0YV9zeW5jX2VsZXZlbChFUlJPUiksCiAJCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2Vz cygpLAotCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgYWNjZXNzIHN0YXR1cyBvZiB0cmFuc2FjdGlv biAldSIsIHhpZCksCisJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mgc3RhdHVzIG9mIHRy YW5zYWN0aW9uICVsbHUiLAorCQkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCksCiAJCQkJ CSBlcnJkZXRhaWwoIkNvdWxkIG5vdCBmc3luYyBmaWxlIFwiJXNcIjogJW0uIiwKIAkJCQkJCQkg ICBwYXRoKSkpOwogCQkJYnJlYWs7CiAJCWNhc2UgU0xSVV9DTE9TRV9GQUlMRUQ6CiAJCQllcmVw b3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKLQkJCQkJIGVycm1z ZygiY291bGQgbm90IGFjY2VzcyBzdGF0dXMgb2YgdHJhbnNhY3Rpb24gJXUiLCB4aWQpLAorCQkJ CQkgZXJybXNnKCJjb3VsZCBub3QgYWNjZXNzIHN0YXR1cyBvZiB0cmFuc2FjdGlvbiAlbGx1IiwK KwkJCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSB4aWQpLAogCQkJCQkgZXJyZGV0YWlsKCJDb3Vs ZCBub3QgY2xvc2UgZmlsZSBcIiVzXCI6ICVtLiIsCiAJCQkJCQkJICAgcGF0aCkpKTsKIAkJCWJy ZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMKaW5kZXggZGUwOTA2ODM5NS4u ZmNiOTU4MjBhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJh bnMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jCkBAIC0xODMs OCArMTgzLDkgQEAgU3ViVHJhbnNHZXRUb3Btb3N0VHJhbnNhY3Rpb24oVHJhbnNhY3Rpb25JZCB4 aWQpCiAJCSAqIHN0cnVjdHVyZSB0aGF0IGNvdWxkIGxlYWQgdG8gYW4gaW5maW5pdGUgbG9vcCwg c28gZXhpdC4KIAkJICovCiAJCWlmICghVHJhbnNhY3Rpb25JZFByZWNlZGVzKHBhcmVudFhpZCwg cHJldmlvdXNYaWQpKQotCQkJZWxvZyhFUlJPUiwgInBnX3N1YnRyYW5zIGNvbnRhaW5zIGludmFs aWQgZW50cnk6IHhpZCAldSBwb2ludHMgdG8gcGFyZW50IHhpZCAldSIsCi0JCQkJIHByZXZpb3Vz WGlkLCBwYXJlbnRYaWQpOworCQkJZWxvZyhFUlJPUiwgInBnX3N1YnRyYW5zIGNvbnRhaW5zIGlu dmFsaWQgZW50cnk6IHhpZCAlbGx1IHBvaW50cyB0byBwYXJlbnQgeGlkICVsbHUiLAorCQkJCSAo dW5zaWduZWQgbG9uZyBsb25nKSBwcmV2aW91c1hpZCwKKwkJCQkgKHVuc2lnbmVkIGxvbmcgbG9u ZykgcGFyZW50WGlkKTsKIAl9CiAKIAlBc3NlcnQoVHJhbnNhY3Rpb25JZElzVmFsaWQocHJldmlv dXNYaWQpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3RyYW5zYW0u YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3RyYW5zYW0uYwppbmRleCBkYmM1Zjg4NGU4 Li5iMjQzODc4MDk0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFu c2FtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNhbS5jCkBAIC0xNTcs OCArMTU3LDggQEAgVHJhbnNhY3Rpb25JZERpZENvbW1pdChUcmFuc2FjdGlvbklkIHRyYW5zYWN0 aW9uSWQpCiAJCXBhcmVudFhpZCA9IFN1YlRyYW5zR2V0UGFyZW50KHRyYW5zYWN0aW9uSWQpOwog CQlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHBhcmVudFhpZCkpCiAJCXsKLQkJCWVsb2coV0FS TklORywgIm5vIHBnX3N1YnRyYW5zIGVudHJ5IGZvciBzdWJjb21taXR0ZWQgWElEICV1IiwKLQkJ CQkgdHJhbnNhY3Rpb25JZCk7CisJCQllbG9nKFdBUk5JTkcsICJubyBwZ19zdWJ0cmFucyBlbnRy eSBmb3Igc3ViY29tbWl0dGVkIFhJRCAlbGx1IiwKKwkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykg dHJhbnNhY3Rpb25JZCk7CiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAkJcmV0dXJuIFRyYW5zYWN0 aW9uSWREaWRDb21taXQocGFyZW50WGlkKTsKQEAgLTIwNiw4ICsyMDYsOCBAQCBUcmFuc2FjdGlv bklkRGlkQWJvcnQoVHJhbnNhY3Rpb25JZCB0cmFuc2FjdGlvbklkKQogCQlpZiAoIVRyYW5zYWN0 aW9uSWRJc1ZhbGlkKHBhcmVudFhpZCkpCiAJCXsKIAkJCS8qIHNlZSBub3RlcyBpbiBUcmFuc2Fj dGlvbklkRGlkQ29tbWl0ICovCi0JCQllbG9nKFdBUk5JTkcsICJubyBwZ19zdWJ0cmFucyBlbnRy eSBmb3Igc3ViY29tbWl0dGVkIFhJRCAldSIsCi0JCQkJIHRyYW5zYWN0aW9uSWQpOworCQkJZWxv ZyhXQVJOSU5HLCAibm8gcGdfc3VidHJhbnMgZW50cnkgZm9yIHN1YmNvbW1pdHRlZCBYSUQgJWxs dSIsCisJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHRyYW5zYWN0aW9uSWQpOwogCQkJcmV0dXJu IHRydWU7CiAJCX0KIAkJcmV0dXJuIFRyYW5zYWN0aW9uSWREaWRBYm9ydChwYXJlbnRYaWQpOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3BoYXNlLmMKaW5kZXggZGMwMjY2NjkzZS4uZDhmYzJh ZmJjZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90d29waGFzZS5jCkBAIC04NTIsNyArODUy LDggQEAgVHdvUGhhc2VHZXRHWGFjdChUcmFuc2FjdGlvbklkIHhpZCwgYm9vbCBsb2NrX2hlbGQp CiAJCUxXTG9ja1JlbGVhc2UoVHdvUGhhc2VTdGF0ZUxvY2spOwogCiAJaWYgKHJlc3VsdCA9PSBO VUxMKQkJCS8qIHNob3VsZCBub3QgaGFwcGVuICovCi0JCWVsb2coRVJST1IsICJmYWlsZWQgdG8g ZmluZCBHbG9iYWxUcmFuc2FjdGlvbiBmb3IgeGlkICV1IiwgeGlkKTsKKwkJZWxvZyhFUlJPUiwg ImZhaWxlZCB0byBmaW5kIEdsb2JhbFRyYW5zYWN0aW9uIGZvciB4aWQgJWxsdSIsCisJCQkgKHVu c2lnbmVkIGxvbmcgbG9uZykgeGlkKTsKIAogCWNhY2hlZF94aWQgPSB4aWQ7CiAJY2FjaGVkX2d4 YWN0ID0gcmVzdWx0OwpAQCAtMjA5MSw3ICsyMDkyLDggQEAgUmVjb3ZlclByZXBhcmVkVHJhbnNh Y3Rpb25zKHZvaWQpCiAJCQljb250aW51ZTsKIAogCQllcmVwb3J0KExPRywKLQkJCQkoZXJybXNn KCJyZWNvdmVyaW5nIHByZXBhcmVkIHRyYW5zYWN0aW9uICV1IGZyb20gc2hhcmVkIG1lbW9yeSIs IHhpZCkpKTsKKwkJCQkoZXJybXNnKCJyZWNvdmVyaW5nIHByZXBhcmVkIHRyYW5zYWN0aW9uICVs bHUgZnJvbSBzaGFyZWQgbWVtb3J5IiwKKwkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCkp KTsKIAogCQloZHIgPSAoVHdvUGhhc2VGaWxlSGVhZGVyICopIGJ1ZjsKIAkJQXNzZXJ0KFRyYW5z YWN0aW9uSWRFcXVhbHMoaGRyLT54aWQsIHhpZCkpOwpAQCAtMjE4NCwxNSArMjE4NiwxNSBAQCBQ cm9jZXNzVHdvUGhhc2VCdWZmZXIoVHJhbnNhY3Rpb25JZCB4aWQsCiAJCWlmIChmcm9tZGlzaykK IAkJewogCQkJZXJlcG9ydChXQVJOSU5HLAotCQkJCQkoZXJybXNnKCJyZW1vdmluZyBzdGFsZSB0 d28tcGhhc2Ugc3RhdGUgZmlsZSBmb3IgdHJhbnNhY3Rpb24gJXUiLAotCQkJCQkJCXhpZCkpKTsK KwkJCQkJKGVycm1zZygicmVtb3Zpbmcgc3RhbGUgdHdvLXBoYXNlIHN0YXRlIGZpbGUgZm9yIHRy YW5zYWN0aW9uICVsbHUiLAorCQkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCkpKTsKIAkJ CVJlbW92ZVR3b1BoYXNlRmlsZSh4aWQsIHRydWUpOwogCQl9CiAJCWVsc2UKIAkJewogCQkJZXJl cG9ydChXQVJOSU5HLAotCQkJCQkoZXJybXNnKCJyZW1vdmluZyBzdGFsZSB0d28tcGhhc2Ugc3Rh dGUgZnJvbSBtZW1vcnkgZm9yIHRyYW5zYWN0aW9uICV1IiwKLQkJCQkJCQl4aWQpKSk7CisJCQkJ CShlcnJtc2coInJlbW92aW5nIHN0YWxlIHR3by1waGFzZSBzdGF0ZSBmcm9tIG1lbW9yeSBmb3Ig dHJhbnNhY3Rpb24gJWxsdSIsCisJCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgeGlkKSkpOwog CQkJUHJlcGFyZVJlZG9SZW1vdmUoeGlkLCB0cnVlKTsKIAkJfQogCQlyZXR1cm4gTlVMTDsKQEAg LTIyMDQsMTUgKzIyMDYsMTUgQEAgUHJvY2Vzc1R3b1BoYXNlQnVmZmVyKFRyYW5zYWN0aW9uSWQg eGlkLAogCQlpZiAoZnJvbWRpc2spCiAJCXsKIAkJCWVyZXBvcnQoV0FSTklORywKLQkJCQkJKGVy cm1zZygicmVtb3ZpbmcgZnV0dXJlIHR3by1waGFzZSBzdGF0ZSBmaWxlIGZvciB0cmFuc2FjdGlv biAldSIsCi0JCQkJCQkJeGlkKSkpOworCQkJCQkoZXJybXNnKCJyZW1vdmluZyBmdXR1cmUgdHdv LXBoYXNlIHN0YXRlIGZpbGUgZm9yIHRyYW5zYWN0aW9uICVsbHUiLAorCQkJCQkJCSh1bnNpZ25l ZCBsb25nIGxvbmcpIHhpZCkpKTsKIAkJCVJlbW92ZVR3b1BoYXNlRmlsZSh4aWQsIHRydWUpOwog CQl9CiAJCWVsc2UKIAkJewogCQkJZXJlcG9ydChXQVJOSU5HLAotCQkJCQkoZXJybXNnKCJyZW1v dmluZyBmdXR1cmUgdHdvLXBoYXNlIHN0YXRlIGZyb20gbWVtb3J5IGZvciB0cmFuc2FjdGlvbiAl dSIsCi0JCQkJCQkJeGlkKSkpOworCQkJCQkoZXJybXNnKCJyZW1vdmluZyBmdXR1cmUgdHdvLXBo YXNlIHN0YXRlIGZyb20gbWVtb3J5IGZvciB0cmFuc2FjdGlvbiAlbGx1IiwKKwkJCQkJCQkodW5z aWduZWQgbG9uZyBsb25nKSB4aWQpKSk7CiAJCQlQcmVwYXJlUmVkb1JlbW92ZSh4aWQsIHRydWUp OwogCQl9CiAJCXJldHVybiBOVUxMOwpAQCAtMjIzNiwxMyArMjIzOCwxMyBAQCBQcm9jZXNzVHdv UGhhc2VCdWZmZXIoVHJhbnNhY3Rpb25JZCB4aWQsCiAJCWlmIChmcm9tZGlzaykKIAkJCWVyZXBv cnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCQkg ZXJybXNnKCJjb3JydXB0ZWQgdHdvLXBoYXNlIHN0YXRlIGZpbGUgZm9yIHRyYW5zYWN0aW9uICV1 IiwKLQkJCQkJCQl4aWQpKSk7CisJCQkJCSBlcnJtc2coImNvcnJ1cHRlZCB0d28tcGhhc2Ugc3Rh dGUgZmlsZSBmb3IgdHJhbnNhY3Rpb24gJWxsdSIsCisJCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9u ZykgeGlkKSkpOwogCQllbHNlCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJD T0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkJIGVycm1zZygiY29ycnVwdGVkIHR3by1waGFzZSBz dGF0ZSBpbiBtZW1vcnkgZm9yIHRyYW5zYWN0aW9uICV1IiwKLQkJCQkJCQl4aWQpKSk7CisJCQkJ CSBlcnJtc2coImNvcnJ1cHRlZCB0d28tcGhhc2Ugc3RhdGUgaW4gbWVtb3J5IGZvciB0cmFuc2Fj dGlvbiAlbGx1IiwKKwkJCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSB4aWQpKSk7CiAJfQogCiAJ LyoKQEAgLTI0MDMsOCArMjQwNSw4IEBAIFJlY29yZFRyYW5zYWN0aW9uQWJvcnRQcmVwYXJlZChU cmFuc2FjdGlvbklkIHhpZCwKIAkgKiBSZWNvcmRUcmFuc2FjdGlvbkNvbW1pdFByZXBhcmVkIC4u LgogCSAqLwogCWlmIChUcmFuc2FjdGlvbklkRGlkQ29tbWl0KHhpZCkpCi0JCWVsb2coUEFOSUMs ICJjYW5ub3QgYWJvcnQgdHJhbnNhY3Rpb24gJXUsIGl0IHdhcyBhbHJlYWR5IGNvbW1pdHRlZCIs Ci0JCQkgeGlkKTsKKwkJZWxvZyhQQU5JQywgImNhbm5vdCBhYm9ydCB0cmFuc2FjdGlvbiAlbGx1 LCBpdCB3YXMgYWxyZWFkeSBjb21taXR0ZWQiLAorCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhp ZCk7CiAKIAlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIApAQCAtMjUxMSw3ICsyNTEzLDggQEAgUHJl cGFyZVJlZG9BZGQoY2hhciAqYnVmLCBYTG9nUmVjUHRyIHN0YXJ0X2xzbiwKIAkJCQkJCSAgIGZh bHNlIC8qIGJhY2t3YXJkICovICwgZmFsc2UgLyogV0FMICovICk7CiAJfQogCi0JZWxvZyhERUJV RzIsICJhZGRlZCAyUEMgZGF0YSBpbiBzaGFyZWQgbWVtb3J5IGZvciB0cmFuc2FjdGlvbiAldSIs IGd4YWN0LT54aWQpOworCWVsb2coREVCVUcyLCAiYWRkZWQgMlBDIGRhdGEgaW4gc2hhcmVkIG1l bW9yeSBmb3IgdHJhbnNhY3Rpb24gJWxsdSIsCisJCSAodW5zaWduZWQgbG9uZyBsb25nKSBneGFj dC0+eGlkKTsKIH0KIAogLyoKQEAgLTI1NTQsNyArMjU1Nyw4IEBAIFByZXBhcmVSZWRvUmVtb3Zl KFRyYW5zYWN0aW9uSWQgeGlkLCBib29sIGdpdmVXYXJuaW5nKQogCS8qCiAJICogQW5kIG5vdyB3 ZSBjYW4gY2xlYW4gdXAgYW55IGZpbGVzIHdlIG1heSBoYXZlIGxlZnQuCiAJICovCi0JZWxvZyhE RUJVRzIsICJyZW1vdmluZyAyUEMgZGF0YSBmb3IgdHJhbnNhY3Rpb24gJXUiLCB4aWQpOworCWVs b2coREVCVUcyLCAicmVtb3ZpbmcgMlBDIGRhdGEgZm9yIHRyYW5zYWN0aW9uICVsbHUiLAorCQkg KHVuc2lnbmVkIGxvbmcgbG9uZykgeGlkKTsKIAlpZiAoZ3hhY3QtPm9uZGlzaykKIAkJUmVtb3Zl VHdvUGhhc2VGaWxlKHhpZCwgZ2l2ZVdhcm5pbmcpOwogCVJlbW92ZUdYYWN0KGd4YWN0KTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hhY3QuYwppbmRleCA1M2YzZTdmZDFhLi5lMjI1Y2ZjZTI2IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0xNzM4LDggKzE3MzgsOCBAQCBSZWNvcmRUcmFu c2FjdGlvbkFib3J0KGJvb2wgaXNTdWJYYWN0KQogCSAqIENoZWNrIHRoYXQgd2UgaGF2ZW4ndCBh Ym9ydGVkIGhhbGZ3YXkgdGhyb3VnaCBSZWNvcmRUcmFuc2FjdGlvbkNvbW1pdC4KIAkgKi8KIAlp ZiAoVHJhbnNhY3Rpb25JZERpZENvbW1pdCh4aWQpKQotCQllbG9nKFBBTklDLCAiY2Fubm90IGFi b3J0IHRyYW5zYWN0aW9uICV1LCBpdCB3YXMgYWxyZWFkeSBjb21taXR0ZWQiLAotCQkJIHhpZCk7 CisJCWVsb2coUEFOSUMsICJjYW5ub3QgYWJvcnQgdHJhbnNhY3Rpb24gJWxsdSwgaXQgd2FzIGFs cmVhZHkgY29tbWl0dGVkIiwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4aWQpOwogCiAJLyog RmV0Y2ggdGhlIGRhdGEgd2UgbmVlZCBmb3IgdGhlIGFib3J0IHJlY29yZCAqLwogCW5yZWxzID0g c21nckdldFBlbmRpbmdEZWxldGVzKGZhbHNlLCAmcmVscyk7CkBAIC01NDQ5LDIyICs1NDQ5LDI0 IEBAIFNob3dUcmFuc2FjdGlvblN0YXRlUmVjKGNvbnN0IGNoYXIgKnN0ciwgVHJhbnNhY3Rpb25T dGF0ZSBzKQogCXsKIAkJaW50CQkJaTsKIAotCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICIsIGNo aWxkcmVuOiAldSIsIHMtPmNoaWxkWGlkc1swXSk7CisJCWFwcGVuZFN0cmluZ0luZm8oJmJ1Ziwg IiwgY2hpbGRyZW46ICVsbHUiLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHMtPmNoaWxk WGlkc1swXSk7CiAJCWZvciAoaSA9IDE7IGkgPCBzLT5uQ2hpbGRYaWRzOyBpKyspCi0JCQlhcHBl bmRTdHJpbmdJbmZvKCZidWYsICIgJXUiLCBzLT5jaGlsZFhpZHNbaV0pOworCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmLCAiICVsbHUiLAorCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBzLT5j aGlsZFhpZHNbaV0pOwogCX0KIAogCWlmIChzLT5wYXJlbnQpCiAJCVNob3dUcmFuc2FjdGlvblN0 YXRlUmVjKHN0ciwgcy0+cGFyZW50KTsKIAogCWVyZXBvcnQoREVCVUc1LAotCQkJKGVycm1zZ19p bnRlcm5hbCgiJXMoJWQpIG5hbWU6ICVzOyBibG9ja1N0YXRlOiAlczsgc3RhdGU6ICVzLCB4aWQv c3ViaWQvY2lkOiAldS8ldS8ldSVzJXMiLAorCQkJKGVycm1zZ19pbnRlcm5hbCgiJXMoJWQpIG5h bWU6ICVzOyBibG9ja1N0YXRlOiAlczsgc3RhdGU6ICVzLCB4aWQvc3ViaWQvY2lkOiAlbGx1LyVs bHUvJXUlcyVzIiwKIAkJCQkJCQkgc3RyLCBzLT5uZXN0aW5nTGV2ZWwsCiAJCQkJCQkJIFBvaW50 ZXJJc1ZhbGlkKHMtPm5hbWUpID8gcy0+bmFtZSA6ICJ1bm5hbWVkIiwKIAkJCQkJCQkgQmxvY2tT dGF0ZUFzU3RyaW5nKHMtPmJsb2NrU3RhdGUpLAogCQkJCQkJCSBUcmFuc1N0YXRlQXNTdHJpbmco cy0+c3RhdGUpLAotCQkJCQkJCSAodW5zaWduZWQgaW50KSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9u SWQocy0+ZnVsbFRyYW5zYWN0aW9uSWQpLAotCQkJCQkJCSAodW5zaWduZWQgaW50KSBzLT5zdWJU cmFuc2FjdGlvbklkLAorCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRy YW5zYWN0aW9uSWQocy0+ZnVsbFRyYW5zYWN0aW9uSWQpLAorCQkJCQkJCSAodW5zaWduZWQgbG9u ZyBsb25nKSBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCSAodW5zaWduZWQgaW50KSBjdXJy ZW50Q29tbWFuZElkLAogCQkJCQkJCSBjdXJyZW50Q29tbWFuZElkVXNlZCA/ICIgKHVzZWQpIiA6 ICIiLAogCQkJCQkJCSBidWYuZGF0YSkpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Z3JlY292ZXJ5LmMKaW5kZXggMzllZjg2NWVkOS4uNWRiYTY3NzVhYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKQEAgLTUyNSw4ICs1MjUsOCBAQCBJbml0V2Fs UmVjb3ZlcnkoQ29udHJvbEZpbGVEYXRhICpDb250cm9sRmlsZSwgYm9vbCAqd2FzU2h1dGRvd25f cHRyLAogCQkJCQkoZXJybXNnKCJlbnRlcmluZyBzdGFuZGJ5IG1vZGUiKSkpOwogCQllbHNlIGlm IChyZWNvdmVyeVRhcmdldCA9PSBSRUNPVkVSWV9UQVJHRVRfWElEKQogCQkJZXJlcG9ydChMT0cs Ci0JCQkJCShlcnJtc2coInN0YXJ0aW5nIHBvaW50LWluLXRpbWUgcmVjb3ZlcnkgdG8gWElEICV1 IiwKLQkJCQkJCQlyZWNvdmVyeVRhcmdldFhpZCkpKTsKKwkJCQkJKGVycm1zZygic3RhcnRpbmcg cG9pbnQtaW4tdGltZSByZWNvdmVyeSB0byBYSUQgJWxsdSIsCisJCQkJCQkJKHVuc2lnbmVkIGxv bmcgbG9uZykgcmVjb3ZlcnlUYXJnZXRYaWQpKSk7CiAJCWVsc2UgaWYgKHJlY292ZXJ5VGFyZ2V0 ID09IFJFQ09WRVJZX1RBUkdFVF9USU1FKQogCQkJZXJlcG9ydChMT0csCiAJCQkJCShlcnJtc2co InN0YXJ0aW5nIHBvaW50LWluLXRpbWUgcmVjb3ZlcnkgdG8gJXMiLApAQCAtODE1LDE4ICs4MTUs MjEgQEAgSW5pdFdhbFJlY292ZXJ5KENvbnRyb2xGaWxlRGF0YSAqQ29udHJvbEZpbGUsIGJvb2wg Kndhc1NodXRkb3duX3B0ciwKIAkJCQkJCQkgVTY0RnJvbUZ1bGxUcmFuc2FjdGlvbklkKGNoZWNr UG9pbnQubmV4dFhpZCksCiAJCQkJCQkJIGNoZWNrUG9pbnQubmV4dE9pZCkpKTsKIAllcmVwb3J0 KERFQlVHMSwKLQkJCShlcnJtc2dfaW50ZXJuYWwoIm5leHQgTXVsdGlYYWN0SWQ6ICV1OyBuZXh0 IE11bHRpWGFjdE9mZnNldDogJXUiLAotCQkJCQkJCSBjaGVja1BvaW50Lm5leHRNdWx0aSwgY2hl Y2tQb2ludC5uZXh0TXVsdGlPZmZzZXQpKSk7CisJCQkoZXJybXNnX2ludGVybmFsKCJuZXh0IE11 bHRpWGFjdElkOiAlbGx1OyBuZXh0IE11bHRpWGFjdE9mZnNldDogJWxsdSIsCisJCQkJCQkJICh1 bnNpZ25lZCBsb25nIGxvbmcpIGNoZWNrUG9pbnQubmV4dE11bHRpLAorCQkJCQkJCSAodW5zaWdu ZWQgbG9uZyBsb25nKSBjaGVja1BvaW50Lm5leHRNdWx0aU9mZnNldCkpKTsKIAllcmVwb3J0KERF QlVHMSwKLQkJCShlcnJtc2dfaW50ZXJuYWwoIm9sZGVzdCB1bmZyb3plbiB0cmFuc2FjdGlvbiBJ RDogJXUsIGluIGRhdGFiYXNlICV1IiwKLQkJCQkJCQkgY2hlY2tQb2ludC5vbGRlc3RYaWQsIGNo ZWNrUG9pbnQub2xkZXN0WGlkREIpKSk7CisJCQkoZXJybXNnX2ludGVybmFsKCJvbGRlc3QgdW5m cm96ZW4gdHJhbnNhY3Rpb24gSUQ6ICVsbHUsIGluIGRhdGFiYXNlICV1IiwKKwkJCQkJCQkgKHVu c2lnbmVkIGxvbmcgbG9uZykgY2hlY2tQb2ludC5vbGRlc3RYaWQsCisJCQkJCQkJIGNoZWNrUG9p bnQub2xkZXN0WGlkREIpKSk7CiAJZXJlcG9ydChERUJVRzEsCi0JCQkoZXJybXNnX2ludGVybmFs KCJvbGRlc3QgTXVsdGlYYWN0SWQ6ICV1LCBpbiBkYXRhYmFzZSAldSIsCi0JCQkJCQkJIGNoZWNr UG9pbnQub2xkZXN0TXVsdGksIGNoZWNrUG9pbnQub2xkZXN0TXVsdGlEQikpKTsKKwkJCShlcnJt c2dfaW50ZXJuYWwoIm9sZGVzdCBNdWx0aVhhY3RJZDogJWxsdSwgaW4gZGF0YWJhc2UgJXUiLAor CQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBjaGVja1BvaW50Lm9sZGVzdE11bHRpLAorCQkJ CQkJCSBjaGVja1BvaW50Lm9sZGVzdE11bHRpREIpKSk7CiAJZXJlcG9ydChERUJVRzEsCi0JCQko ZXJybXNnX2ludGVybmFsKCJjb21taXQgdGltZXN0YW1wIFhpZCBvbGRlc3QvbmV3ZXN0OiAldS8l dSIsCi0JCQkJCQkJIGNoZWNrUG9pbnQub2xkZXN0Q29tbWl0VHNYaWQsCi0JCQkJCQkJIGNoZWNr UG9pbnQubmV3ZXN0Q29tbWl0VHNYaWQpKSk7CisJCQkoZXJybXNnX2ludGVybmFsKCJjb21taXQg dGltZXN0YW1wIFhpZCBvbGRlc3QvbmV3ZXN0OiAlbGx1LyVsbHUiLAorCQkJCQkJCSAodW5zaWdu ZWQgbG9uZyBsb25nKSBjaGVja1BvaW50Lm9sZGVzdENvbW1pdFRzWGlkLAorCQkJCQkJCSAodW5z aWduZWQgbG9uZyBsb25nKSBjaGVja1BvaW50Lm5ld2VzdENvbW1pdFRzWGlkKSkpOwogCWlmICgh VHJhbnNhY3Rpb25JZElzTm9ybWFsKFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjaGVja1BvaW50 Lm5leHRYaWQpKSkKIAkJZXJlcG9ydChQQU5JQywKIAkJCQkoZXJybXNnKCJpbnZhbGlkIG5leHQg dHJhbnNhY3Rpb24gSUQiKSkpOwpAQCAtMjUxOCwxNSArMjUyMSwxNSBAQCByZWNvdmVyeVN0b3Bz QmVmb3JlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlpZiAoaXNDb21taXQpCiAJCXsKIAkJ CWVyZXBvcnQoTE9HLAotCQkJCQkoZXJybXNnKCJyZWNvdmVyeSBzdG9wcGluZyBiZWZvcmUgY29t bWl0IG9mIHRyYW5zYWN0aW9uICV1LCB0aW1lICVzIiwKLQkJCQkJCQlyZWNvdmVyeVN0b3BYaWQs CisJCQkJCShlcnJtc2coInJlY292ZXJ5IHN0b3BwaW5nIGJlZm9yZSBjb21taXQgb2YgdHJhbnNh Y3Rpb24gJWxsdSwgdGltZSAlcyIsCisJCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgcmVjb3Zl cnlTdG9wWGlkLAogCQkJCQkJCXRpbWVzdGFtcHR6X3RvX3N0cihyZWNvdmVyeVN0b3BUaW1lKSkp KTsKIAkJfQogCQllbHNlCiAJCXsKIAkJCWVyZXBvcnQoTE9HLAotCQkJCQkoZXJybXNnKCJyZWNv dmVyeSBzdG9wcGluZyBiZWZvcmUgYWJvcnQgb2YgdHJhbnNhY3Rpb24gJXUsIHRpbWUgJXMiLAot CQkJCQkJCXJlY292ZXJ5U3RvcFhpZCwKKwkJCQkJKGVycm1zZygicmVjb3Zlcnkgc3RvcHBpbmcg YmVmb3JlIGFib3J0IG9mIHRyYW5zYWN0aW9uICVsbHUsIHRpbWUgJXMiLAorCQkJCQkJCSh1bnNp Z25lZCBsb25nIGxvbmcpIHJlY292ZXJ5U3RvcFhpZCwKIAkJCQkJCQl0aW1lc3RhbXB0el90b19z dHIocmVjb3ZlcnlTdG9wVGltZSkpKSk7CiAJCX0KIAl9CkBAIC0yNjYzLDE2ICsyNjY2LDE2IEBA IHJlY292ZXJ5U3RvcHNBZnRlcihYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJCQl4YWN0X2lu Zm8gPT0gWExPR19YQUNUX0NPTU1JVF9QUkVQQVJFRCkKIAkJCXsKIAkJCQllcmVwb3J0KExPRywK LQkJCQkJCShlcnJtc2coInJlY292ZXJ5IHN0b3BwaW5nIGFmdGVyIGNvbW1pdCBvZiB0cmFuc2Fj dGlvbiAldSwgdGltZSAlcyIsCi0JCQkJCQkJCXJlY292ZXJ5U3RvcFhpZCwKKwkJCQkJCShlcnJt c2coInJlY292ZXJ5IHN0b3BwaW5nIGFmdGVyIGNvbW1pdCBvZiB0cmFuc2FjdGlvbiAlbGx1LCB0 aW1lICVzIiwKKwkJCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgcmVjb3ZlcnlTdG9wWGlkLAog CQkJCQkJCQl0aW1lc3RhbXB0el90b19zdHIocmVjb3ZlcnlTdG9wVGltZSkpKSk7CiAJCQl9CiAJ CQllbHNlIGlmICh4YWN0X2luZm8gPT0gWExPR19YQUNUX0FCT1JUIHx8CiAJCQkJCSB4YWN0X2lu Zm8gPT0gWExPR19YQUNUX0FCT1JUX1BSRVBBUkVEKQogCQkJewogCQkJCWVyZXBvcnQoTE9HLAot CQkJCQkJKGVycm1zZygicmVjb3Zlcnkgc3RvcHBpbmcgYWZ0ZXIgYWJvcnQgb2YgdHJhbnNhY3Rp b24gJXUsIHRpbWUgJXMiLAotCQkJCQkJCQlyZWNvdmVyeVN0b3BYaWQsCisJCQkJCQkoZXJybXNn KCJyZWNvdmVyeSBzdG9wcGluZyBhZnRlciBhYm9ydCBvZiB0cmFuc2FjdGlvbiAlbGx1LCB0aW1l ICVzIiwKKwkJCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgcmVjb3ZlcnlTdG9wWGlkLAogCQkJ CQkJCQl0aW1lc3RhbXB0el90b19zdHIocmVjb3ZlcnlTdG9wVGltZSkpKSk7CiAJCQl9CiAJCQly ZXR1cm4gdHJ1ZTsKQEAgLTI3MDcsOSArMjcxMCw5IEBAIGdldFJlY292ZXJ5U3RvcFJlYXNvbih2 b2lkKQogCiAJaWYgKHJlY292ZXJ5VGFyZ2V0ID09IFJFQ09WRVJZX1RBUkdFVF9YSUQpCiAJCXNu cHJpbnRmKHJlYXNvbiwgc2l6ZW9mKHJlYXNvbiksCi0JCQkJICIlcyB0cmFuc2FjdGlvbiAldSIs CisJCQkJICIlcyB0cmFuc2FjdGlvbiAlbGx1IiwKIAkJCQkgcmVjb3ZlcnlTdG9wQWZ0ZXIgPyAi YWZ0ZXIiIDogImJlZm9yZSIsCi0JCQkJIHJlY292ZXJ5U3RvcFhpZCk7CisJCQkJICh1bnNpZ25l ZCBsb25nIGxvbmcpIHJlY292ZXJ5U3RvcFhpZCk7CiAJZWxzZSBpZiAocmVjb3ZlcnlUYXJnZXQg PT0gUkVDT1ZFUllfVEFSR0VUX1RJTUUpCiAJCXNucHJpbnRmKHJlYXNvbiwgc2l6ZW9mKHJlYXNv biksCiAJCQkJICIlcyAlc1xuIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvbG9naWNhbC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dp Y2FsLmMKaW5kZXggNzg4NzY5ZGQ3My4uNmQ5NWMyZjYxMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9sb2dpY2FsLmMKQEAgLTE2MTYsOCArMTYxNiw4IEBAIExvZ2ljYWxJbmNy ZWFzZVhtaW5Gb3JTbG90KFhMb2dSZWNQdHIgY3VycmVudF9sc24sIFRyYW5zYWN0aW9uSWQgeG1p bikKIAlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKIAogCWlmIChnb3RfbmV3X3htaW4p Ci0JCWVsb2coREVCVUcxLCAiZ290IG5ldyBjYXRhbG9nIHhtaW4gJXUgYXQgJVgvJVgiLCB4bWlu LAotCQkJIExTTl9GT1JNQVRfQVJHUyhjdXJyZW50X2xzbikpOworCQllbG9nKERFQlVHMSwgImdv dCBuZXcgY2F0YWxvZyB4bWluICVsbHUgYXQgJVgvJVgiLAorCQkJICh1bnNpZ25lZCBsb25nIGxv bmcpIHhtaW4sIExTTl9GT1JNQVRfQVJHUyhjdXJyZW50X2xzbikpOwogCiAJLyogY2FuZGlkYXRl IGFscmVhZHkgdmFsaWQgd2l0aCB0aGUgY3VycmVudCBmbHVzaCBwb3NpdGlvbiwgYXBwbHkgKi8K IAlpZiAodXBkYXRlZF94bWluKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9yZW9yZGVyYnVmZmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3Jlb3JkZXJidWZmZXIuYwppbmRleCA2ODg3ZGMyM2Y2Li4yMjY4YTlhZjJhIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIuYwpAQCAtMjQ0OSw4 ICsyNDQ5LDggQEAgUmVvcmRlckJ1ZmZlclByb2Nlc3NUWE4oUmVvcmRlckJ1ZmZlciAqcmIsIFJl b3JkZXJCdWZmZXJUWE4gKnR4biwKIAogCQkvKiB0aGlzIGlzIGp1c3QgYSBzYW5pdHkgY2hlY2sg YWdhaW5zdCBiYWQgb3V0cHV0IHBsdWdpbiBiZWhhdmlvdXIgKi8KIAkJaWYgKEdldEN1cnJlbnRU cmFuc2FjdGlvbklkSWZBbnkoKSAhPSBJbnZhbGlkVHJhbnNhY3Rpb25JZCkKLQkJCWVsb2coRVJS T1IsICJvdXRwdXQgcGx1Z2luIHVzZWQgWElEICV1IiwKLQkJCQkgR2V0Q3VycmVudFRyYW5zYWN0 aW9uSWQoKSk7CisJCQllbG9nKEVSUk9SLCAib3V0cHV0IHBsdWdpbiB1c2VkIFhJRCAlbGx1IiwK KwkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgR2V0Q3VycmVudFRyYW5zYWN0aW9uSWQoKSk7CiAK IAkJLyoKIAkJICogUmVtZW1iZXIgdGhlIGNvbW1hbmQgSUQgYW5kIHNuYXBzaG90IGZvciB0aGUg bmV4dCBzZXQgb2YgY2hhbmdlcyBpbgpAQCAtMjg4OCw3ICsyODg4LDggQEAgUmVvcmRlckJ1ZmZl ckFib3J0T2xkKFJlb3JkZXJCdWZmZXIgKnJiLCBUcmFuc2FjdGlvbklkIG9sZGVzdFJ1bm5pbmdY aWQpCiAKIAkJaWYgKFRyYW5zYWN0aW9uSWRQcmVjZWRlcyh0eG4tPnhpZCwgb2xkZXN0UnVubmlu Z1hpZCkpCiAJCXsKLQkJCWVsb2coREVCVUcyLCAiYWJvcnRpbmcgb2xkIHRyYW5zYWN0aW9uICV1 IiwgdHhuLT54aWQpOworCQkJZWxvZyhERUJVRzIsICJhYm9ydGluZyBvbGQgdHJhbnNhY3Rpb24g JWxsdSIsCisJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHR4bi0+eGlkKTsKIAogCQkJLyogcmVt b3ZlIHBvdGVudGlhbCBvbi1kaXNrIGRhdGEsIGFuZCBkZWFsbG9jYXRlIHRoaXMgdHggKi8KIAkJ CVJlb3JkZXJCdWZmZXJDbGVhbnVwVFhOKHJiLCB0eG4pOwpAQCAtMzUzMCw4ICszNTMxLDggQEAg UmVvcmRlckJ1ZmZlclNlcmlhbGl6ZVRYTihSZW9yZGVyQnVmZmVyICpyYiwgUmVvcmRlckJ1ZmZl clRYTiAqdHhuKQogCVNpemUJCXNwaWxsZWQgPSAwOwogCVNpemUJCXNpemUgPSB0eG4tPnNpemU7 CiAKLQllbG9nKERFQlVHMiwgInNwaWxsICV1IGNoYW5nZXMgaW4gWElEICV1IHRvIGRpc2siLAot CQkgKHVpbnQzMikgdHhuLT5uZW50cmllc19tZW0sIHR4bi0+eGlkKTsKKwllbG9nKERFQlVHMiwg InNwaWxsICV1IGNoYW5nZXMgaW4gWElEICVsbHUgdG8gZGlzayIsCisJCSAodWludDMyKSB0eG4t Pm5lbnRyaWVzX21lbSwgKHVuc2lnbmVkIGxvbmcgbG9uZykgdHhuLT54aWQpOwogCiAJLyogZG8g dGhlIHNhbWUgdG8gYWxsIGNoaWxkIFRYcyAqLwogCWRsaXN0X2ZvcmVhY2goc3VidHhuX2ksICZ0 eG4tPnN1YnR4bnMpCkBAIC0zODA3LDggKzM4MDgsOCBAQCBSZW9yZGVyQnVmZmVyU2VyaWFsaXpl Q2hhbmdlKFJlb3JkZXJCdWZmZXIgKnJiLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJCWVycm5v ID0gc2F2ZV9lcnJubyA/IHNhdmVfZXJybm8gOiBFTk9TUEM7CiAJCWVyZXBvcnQoRVJST1IsCiAJ CQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCi0JCQkJIGVycm1zZygiY291bGQgbm90IHdy aXRlIHRvIGRhdGEgZmlsZSBmb3IgWElEICV1OiAlbSIsCi0JCQkJCQl0eG4tPnhpZCkpKTsKKwkJ CQkgZXJybXNnKCJjb3VsZCBub3Qgd3JpdGUgdG8gZGF0YSBmaWxlIGZvciBYSUQgJWxsdTogJW0i LAorCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgdHhuLT54aWQpKSk7CiAJfQogCXBnc3RhdF9y ZXBvcnRfd2FpdF9lbmQoKTsKIApAQCAtNDQ1MCw5ICs0NDUxLDkgQEAgUmVvcmRlckJ1ZmZlclNl cmlhbGl6ZWRQYXRoKGNoYXIgKnBhdGgsIFJlcGxpY2F0aW9uU2xvdCAqc2xvdCwgVHJhbnNhY3Rp b25JZCB4aWQKIAogCVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKHNlZ25vLCAwLCB3YWxfc2VnbWVu dF9zaXplLCByZWNwdHIpOwogCi0Jc25wcmludGYocGF0aCwgTUFYUEdQQVRILCAicGdfcmVwbHNs b3QvJXMveGlkLSV1LWxzbi0lWC0lWC5zcGlsbCIsCisJc25wcmludGYocGF0aCwgTUFYUEdQQVRI LCAicGdfcmVwbHNsb3QvJXMveGlkLSVsbHUtbHNuLSVYLSVYLnNwaWxsIiwKIAkJCSBOYW1lU3Ry KE15UmVwbGljYXRpb25TbG90LT5kYXRhLm5hbWUpLAotCQkJIHhpZCwgTFNOX0ZPUk1BVF9BUkdT KHJlY3B0cikpOworCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCwgTFNOX0ZPUk1BVF9BUkdT KHJlY3B0cikpOwogfQogCiAvKgpAQCAtNTA4MSw4ICs1MDgyLDggQEAgVXBkYXRlTG9naWNhbE1h cHBpbmdzKEhUQUIgKnR1cGxlY2lkX2RhdGEsIE9pZCByZWxpZCwgU25hcHNob3Qgc25hcHNob3Qp CiAJewogCQlSZXdyaXRlTWFwcGluZ0ZpbGUgKmYgPSAoUmV3cml0ZU1hcHBpbmdGaWxlICopIGxm aXJzdChmaWxlKTsKIAotCQllbG9nKERFQlVHMSwgImFwcGx5aW5nIG1hcHBpbmc6IFwiJXNcIiBp biAldSIsIGYtPmZuYW1lLAotCQkJIHNuYXBzaG90LT5zdWJ4aXBbMF0pOworCQllbG9nKERFQlVH MSwgImFwcGx5aW5nIG1hcHBpbmc6IFwiJXNcIiBpbiAlbGx1IiwgZi0+Zm5hbWUsCisJCQkgKHVu c2lnbmVkIGxvbmcgbG9uZykgc25hcHNob3QtPnN1YnhpcFswXSk7CiAJCUFwcGx5TG9naWNhbE1h cHBpbmdGaWxlKHR1cGxlY2lkX2RhdGEsIHJlbGlkLCBmLT5mbmFtZSk7CiAJCXBmcmVlKGYpOwog CX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc25hcGJ1aWxk LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jCmluZGV4IDEx MTlhMTJkYjkuLjExNWUwNjZkZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvc25hcGJ1aWxkLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9zbmFwYnVpbGQuYwpAQCAtODQ3LDggKzg0Nyw4IEBAIFNuYXBCdWlsZERpc3RyaWJ1dGVOZXdD YXRhbG9nU25hcHNob3QoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxzbikKIAkJaWYg KHJidHhuX3ByZXBhcmVkKHR4bikgfHwgcmJ0eG5fc2tpcF9wcmVwYXJlZCh0eG4pKQogCQkJY29u dGludWU7CiAKLQkJZWxvZyhERUJVRzIsICJhZGRpbmcgYSBuZXcgc25hcHNob3QgdG8gJXUgYXQg JVgvJVgiLAotCQkJIHR4bi0+eGlkLCBMU05fRk9STUFUX0FSR1MobHNuKSk7CisJCWVsb2coREVC VUcyLCAiYWRkaW5nIGEgbmV3IHNuYXBzaG90IHRvICVsbHUgYXQgJVgvJVgiLAorCQkJICh1bnNp Z25lZCBsb25nIGxvbmcpIHR4bi0+eGlkLCBMU05fRk9STUFUX0FSR1MobHNuKSk7CiAKIAkJLyoK IAkJICogaW5jcmVhc2UgdGhlIHNuYXBzaG90J3MgcmVmY291bnQgZm9yIHRoZSB0cmFuc2FjdGlv biB3ZSBhcmUgaGFuZGluZwpAQCAtOTIyLDkgKzkyMiw5IEBAIFNuYXBCdWlsZFB1cmdlQ29tbWl0 dGVkVHhuKFNuYXBCdWlsZCAqYnVpbGRlcikKIAltZW1jcHkoYnVpbGRlci0+Y29tbWl0dGVkLnhp cCwgd29ya3NwYWNlLAogCQkgICBzdXJ2aXZpbmdfeGlkcyAqIHNpemVvZihUcmFuc2FjdGlvbklk KSk7CiAKLQllbG9nKERFQlVHMywgInB1cmdlZCBjb21taXR0ZWQgdHJhbnNhY3Rpb25zIGZyb20g JXUgdG8gJXUsIHhtaW46ICV1LCB4bWF4OiAldSIsCisJZWxvZyhERUJVRzMsICJwdXJnZWQgY29t bWl0dGVkIHRyYW5zYWN0aW9ucyBmcm9tICV1IHRvICV1LCB4bWluOiAlbGx1LCB4bWF4OiAlbGx1 IiwKIAkJICh1aW50MzIpIGJ1aWxkZXItPmNvbW1pdHRlZC54Y250LCAodWludDMyKSBzdXJ2aXZp bmdfeGlkcywKLQkJIGJ1aWxkZXItPnhtaW4sIGJ1aWxkZXItPnhtYXgpOworCQkgKHVuc2lnbmVk IGxvbmcgbG9uZykgYnVpbGRlci0+eG1pbiwgKHVuc2lnbmVkIGxvbmcgbG9uZykgYnVpbGRlci0+ eG1heCk7CiAJYnVpbGRlci0+Y29tbWl0dGVkLnhjbnQgPSBzdXJ2aXZpbmdfeGlkczsKIAogCXBm cmVlKHdvcmtzcGFjZSk7CkBAIC05ODgsOCArOTg4LDggQEAgU25hcEJ1aWxkQ29tbWl0VHhuKFNu YXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24sIFRyYW5zYWN0aW9uSWQgeGlkLAogCQkJ c3ViX25lZWRzX3RpbWV0cmF2ZWwgPSB0cnVlOwogCQkJbmVlZHNfc25hcHNob3QgPSB0cnVlOwog Ci0JCQllbG9nKERFQlVHMSwgImZvdW5kIHN1YnRyYW5zYWN0aW9uICV1OiV1IHdpdGggY2F0YWxv ZyBjaGFuZ2VzIiwKLQkJCQkgeGlkLCBzdWJ4aWQpOworCQkJZWxvZyhERUJVRzEsICJmb3VuZCBz dWJ0cmFuc2FjdGlvbiAlbGx1OiVsbHUgd2l0aCBjYXRhbG9nIGNoYW5nZXMiLAorCQkJCSAodW5z aWduZWQgbG9uZyBsb25nKSB4aWQsICh1bnNpZ25lZCBsb25nIGxvbmcpIHN1YnhpZCk7CiAKIAkJ CVNuYXBCdWlsZEFkZENvbW1pdHRlZFR4bihidWlsZGVyLCBzdWJ4aWQpOwogCkBAIC0xMDE0LDgg KzEwMTQsOCBAQCBTbmFwQnVpbGRDb21taXRUeG4oU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVj UHRyIGxzbiwgVHJhbnNhY3Rpb25JZCB4aWQsCiAJLyogaWYgdG9wLWxldmVsIG1vZGlmaWVkIGNh dGFsb2csIGl0J2xsIG5lZWQgYSBzbmFwc2hvdCAqLwogCWlmIChSZW9yZGVyQnVmZmVyWGlkSGFz Q2F0YWxvZ0NoYW5nZXMoYnVpbGRlci0+cmVvcmRlciwgeGlkKSkKIAl7Ci0JCWVsb2coREVCVUcy LCAiZm91bmQgdG9wIGxldmVsIHRyYW5zYWN0aW9uICV1LCB3aXRoIGNhdGFsb2cgY2hhbmdlcyIs Ci0JCQkgeGlkKTsKKwkJZWxvZyhERUJVRzIsICJmb3VuZCB0b3AgbGV2ZWwgdHJhbnNhY3Rpb24g JWxsdSwgd2l0aCBjYXRhbG9nIGNoYW5nZXMiLAorCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhp ZCk7CiAJCW5lZWRzX3NuYXBzaG90ID0gdHJ1ZTsKIAkJbmVlZHNfdGltZXRyYXZlbCA9IHRydWU7 CiAJCVNuYXBCdWlsZEFkZENvbW1pdHRlZFR4bihidWlsZGVyLCB4aWQpOwpAQCAtMTAyNyw3ICsx MDI3LDggQEAgU25hcEJ1aWxkQ29tbWl0VHhuKFNuYXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0 ciBsc24sIFRyYW5zYWN0aW9uSWQgeGlkLAogCX0KIAllbHNlIGlmIChuZWVkc190aW1ldHJhdmVs KQogCXsKLQkJZWxvZyhERUJVRzIsICJmb3JjZWQgdHJhbnNhY3Rpb24gJXUgdG8gZG8gdGltZXRy YXZlbCIsIHhpZCk7CisJCWVsb2coREVCVUcyLCAiZm9yY2VkIHRyYW5zYWN0aW9uICVsbHUgdG8g ZG8gdGltZXRyYXZlbCIsCisJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGlkKTsKIAogCQlTbmFw QnVpbGRBZGRDb21taXR0ZWRUeG4oYnVpbGRlciwgeGlkKTsKIAl9CkBAIC0xMTQ5LDggKzExNTAs MTEgQEAgU25hcEJ1aWxkUHJvY2Vzc1J1bm5pbmdYYWN0cyhTbmFwQnVpbGQgKmJ1aWxkZXIsIFhM b2dSZWNQdHIgbHNuLCB4bF9ydW5uaW5nX3hhY3QKIAl4bWluID0gUmVvcmRlckJ1ZmZlckdldE9s ZGVzdFhtaW4oYnVpbGRlci0+cmVvcmRlcik7CiAJaWYgKHhtaW4gPT0gSW52YWxpZFRyYW5zYWN0 aW9uSWQpCiAJCXhtaW4gPSBydW5uaW5nLT5vbGRlc3RSdW5uaW5nWGlkOwotCWVsb2coREVCVUcz LCAieG1pbjogJXUsIHhtYXg6ICV1LCBvbGRlc3QgcnVubmluZzogJXUsIG9sZGVzdCB4bWluOiAl dSIsCi0JCSBidWlsZGVyLT54bWluLCBidWlsZGVyLT54bWF4LCBydW5uaW5nLT5vbGRlc3RSdW5u aW5nWGlkLCB4bWluKTsKKwllbG9nKERFQlVHMywgInhtaW46ICVsbHUsIHhtYXg6ICVsbHUsIG9s ZGVzdCBydW5uaW5nOiAlbGx1LCBvbGRlc3QgeG1pbjogJWxsdSIsCisJCSAodW5zaWduZWQgbG9u ZyBsb25nKSBidWlsZGVyLT54bWluLAorCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgYnVpbGRlci0+ eG1heCwKKwkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHJ1bm5pbmctPm9sZGVzdFJ1bm5pbmdYaWQs CisJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bWluKTsKIAlMb2dpY2FsSW5jcmVhc2VYbWluRm9y U2xvdChsc24sIHhtaW4pOwogCiAJLyoKQEAgLTEyMzksOCArMTI0Myw5IEBAIFNuYXBCdWlsZEZp bmRTbmFwc2hvdChTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuLCB4bF9ydW5uaW5n X3hhY3RzICpydW5uCiAJCWVyZXBvcnQoREVCVUcxLAogCQkJCShlcnJtc2dfaW50ZXJuYWwoInNr aXBwaW5nIHNuYXBzaG90IGF0ICVYLyVYIHdoaWxlIGJ1aWxkaW5nIGxvZ2ljYWwgZGVjb2Rpbmcg c25hcHNob3QsIHhtaW4gaG9yaXpvbiB0b28gbG93IiwKIAkJCQkJCQkJIExTTl9GT1JNQVRfQVJH Uyhsc24pKSwKLQkJCQkgZXJyZGV0YWlsX2ludGVybmFsKCJpbml0aWFsIHhtaW4gaG9yaXpvbiBv ZiAldSB2cyB0aGUgc25hcHNob3QncyAldSIsCi0JCQkJCQkJCQlidWlsZGVyLT5pbml0aWFsX3ht aW5faG9yaXpvbiwgcnVubmluZy0+b2xkZXN0UnVubmluZ1hpZCkpKTsKKwkJCQkgZXJyZGV0YWls X2ludGVybmFsKCJpbml0aWFsIHhtaW4gaG9yaXpvbiBvZiAlbGx1IHZzIHRoZSBzbmFwc2hvdCdz ICVsbHUiLAorCQkJCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgYnVpbGRlci0+aW5pdGlhbF94 bWluX2hvcml6b24sCisJCQkJCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSBydW5uaW5nLT5vbGRl c3RSdW5uaW5nWGlkKSkpOwogCiAKIAkJU25hcEJ1aWxkV2FpdFNuYXBzaG90KHJ1bm5pbmcsIGJ1 aWxkZXItPmluaXRpYWxfeG1pbl9ob3Jpem9uKTsKQEAgLTEzMjIsOCArMTMyNyw5IEBAIFNuYXBC dWlsZEZpbmRTbmFwc2hvdChTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuLCB4bF9y dW5uaW5nX3hhY3RzICpydW5uCiAJCWVyZXBvcnQoTE9HLAogCQkJCShlcnJtc2coImxvZ2ljYWwg ZGVjb2RpbmcgZm91bmQgaW5pdGlhbCBzdGFydGluZyBwb2ludCBhdCAlWC8lWCIsCiAJCQkJCQlM U05fRk9STUFUX0FSR1MobHNuKSksCi0JCQkJIGVycmRldGFpbCgiV2FpdGluZyBmb3IgdHJhbnNh Y3Rpb25zIChhcHByb3hpbWF0ZWx5ICVkKSBvbGRlciB0aGFuICV1IHRvIGVuZC4iLAotCQkJCQkJ ICAgcnVubmluZy0+eGNudCwgcnVubmluZy0+bmV4dFhpZCkpKTsKKwkJCQkgZXJyZGV0YWlsKCJX YWl0aW5nIGZvciB0cmFuc2FjdGlvbnMgKGFwcHJveGltYXRlbHkgJWQpIG9sZGVyIHRoYW4gJWxs dSB0byBlbmQuIiwKKwkJCQkJCSAgIHJ1bm5pbmctPnhjbnQsCisJCQkJCQkgICAodW5zaWduZWQg bG9uZyBsb25nKSBydW5uaW5nLT5uZXh0WGlkKSkpOwogCiAJCVNuYXBCdWlsZFdhaXRTbmFwc2hv dChydW5uaW5nLCBydW5uaW5nLT5uZXh0WGlkKTsKIAl9CkBAIC0xMzQ2LDggKzEzNTIsOSBAQCBT bmFwQnVpbGRGaW5kU25hcHNob3QoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxzbiwg eGxfcnVubmluZ194YWN0cyAqcnVubgogCQllcmVwb3J0KExPRywKIAkJCQkoZXJybXNnKCJsb2dp Y2FsIGRlY29kaW5nIGZvdW5kIGluaXRpYWwgY29uc2lzdGVudCBwb2ludCBhdCAlWC8lWCIsCiAJ CQkJCQlMU05fRk9STUFUX0FSR1MobHNuKSksCi0JCQkJIGVycmRldGFpbCgiV2FpdGluZyBmb3Ig dHJhbnNhY3Rpb25zIChhcHByb3hpbWF0ZWx5ICVkKSBvbGRlciB0aGFuICV1IHRvIGVuZC4iLAot CQkJCQkJICAgcnVubmluZy0+eGNudCwgcnVubmluZy0+bmV4dFhpZCkpKTsKKwkJCQkgZXJyZGV0 YWlsKCJXYWl0aW5nIGZvciB0cmFuc2FjdGlvbnMgKGFwcHJveGltYXRlbHkgJWQpIG9sZGVyIHRo YW4gJWxsdSB0byBlbmQuIiwKKwkJCQkJCSAgIHJ1bm5pbmctPnhjbnQsCisJCQkJCQkgICAodW5z aWduZWQgbG9uZyBsb25nKSBydW5uaW5nLT5uZXh0WGlkKSkpOwogCiAJCVNuYXBCdWlsZFdhaXRT bmFwc2hvdChydW5uaW5nLCBydW5uaW5nLT5uZXh0WGlkKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCA0MTcxMzcxMjk2Li5hODgxMWQzZmEyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTEwODgsNyArMTA4OCw4 IEBAIGFwcGx5X2hhbmRsZV9zdHJlYW1fcHJlcGFyZShTdHJpbmdJbmZvIHMpCiAJbG9naWNhbHJl cF9yZWFkX3N0cmVhbV9wcmVwYXJlKHMsICZwcmVwYXJlX2RhdGEpOwogCXNldF9hcHBseV9lcnJv cl9jb250ZXh0X3hhY3QocHJlcGFyZV9kYXRhLnhpZCwgcHJlcGFyZV9kYXRhLnByZXBhcmVfbHNu KTsKIAotCWVsb2coREVCVUcxLCAicmVjZWl2ZWQgcHJlcGFyZSBmb3Igc3RyZWFtZWQgdHJhbnNh Y3Rpb24gJXUiLCBwcmVwYXJlX2RhdGEueGlkKTsKKwllbG9nKERFQlVHMSwgInJlY2VpdmVkIHBy ZXBhcmUgZm9yIHN0cmVhbWVkIHRyYW5zYWN0aW9uICVsbHUiLAorCQkgKHVuc2lnbmVkIGxvbmcg bG9uZykgcHJlcGFyZV9kYXRhLnhpZCk7CiAKIAkvKiBSZXBsYXkgYWxsIHRoZSBzcG9vbGVkIG9w ZXJhdGlvbnMuICovCiAJYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcyhwcmVwYXJlX2RhdGEueGlkLCBw cmVwYXJlX2RhdGEucHJlcGFyZV9sc24pOwpAQCAtMTQ3OSw3ICsxNDgwLDggQEAgYXBwbHlfaGFu ZGxlX3N0cmVhbV9jb21taXQoU3RyaW5nSW5mbyBzKQogCXhpZCA9IGxvZ2ljYWxyZXBfcmVhZF9z dHJlYW1fY29tbWl0KHMsICZjb21taXRfZGF0YSk7CiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRf eGFjdCh4aWQsIGNvbW1pdF9kYXRhLmNvbW1pdF9sc24pOwogCi0JZWxvZyhERUJVRzEsICJyZWNl aXZlZCBjb21taXQgZm9yIHN0cmVhbWVkIHRyYW5zYWN0aW9uICV1IiwgeGlkKTsKKwllbG9nKERF QlVHMSwgInJlY2VpdmVkIGNvbW1pdCBmb3Igc3RyZWFtZWQgdHJhbnNhY3Rpb24gJWxsdSIsCisJ CSAodW5zaWduZWQgbG9uZyBsb25nKSB4aWQpOwogCiAJYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcyh4 aWQsIGNvbW1pdF9kYXRhLmNvbW1pdF9sc24pOwogCkBAIC0zMjk1LDE0ICszMjk3LDE2IEBAIHN1 YnhhY3RfaW5mb19hZGQoVHJhbnNhY3Rpb25JZCB4aWQpCiBzdGF0aWMgaW5saW5lIHZvaWQKIHN1 YnhhY3RfZmlsZW5hbWUoY2hhciAqcGF0aCwgT2lkIHN1YmlkLCBUcmFuc2FjdGlvbklkIHhpZCkK IHsKLQlzbnByaW50ZihwYXRoLCBNQVhQR1BBVEgsICIldS0ldS5zdWJ4YWN0cyIsIHN1YmlkLCB4 aWQpOworCXNucHJpbnRmKHBhdGgsIE1BWFBHUEFUSCwgIiV1LSVsbHUuc3VieGFjdHMiLCBzdWJp ZCwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4aWQpOwogfQogCiAvKiBmb3JtYXQgZmlsZW5h bWUgZm9yIGZpbGUgY29udGFpbmluZyBzZXJpYWxpemVkIGNoYW5nZXMgKi8KIHN0YXRpYyBpbmxp bmUgdm9pZAogY2hhbmdlc19maWxlbmFtZShjaGFyICpwYXRoLCBPaWQgc3ViaWQsIFRyYW5zYWN0 aW9uSWQgeGlkKQogewotCXNucHJpbnRmKHBhdGgsIE1BWFBHUEFUSCwgIiV1LSV1LmNoYW5nZXMi LCBzdWJpZCwgeGlkKTsKKwlzbnByaW50ZihwYXRoLCBNQVhQR1BBVEgsICIldS0lbGx1LmNoYW5n ZXMiLCBzdWJpZCwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4aWQpOwogfQogCiAvKgpAQCAt MzQ2NCw3ICszNDY4LDcgQEAgVHdvUGhhc2VUcmFuc2FjdGlvbkdpZChPaWQgc3ViaWQsIFRyYW5z YWN0aW9uSWQgeGlkLCBjaGFyICpnaWQsIGludCBzemdpZCkKIAkJCQkoZXJyY29kZShFUlJDT0RF X1BST1RPQ09MX1ZJT0xBVElPTiksCiAJCQkJIGVycm1zZ19pbnRlcm5hbCgiaW52YWxpZCB0d28t cGhhc2UgdHJhbnNhY3Rpb24gSUQiKSkpOwogCi0Jc25wcmludGYoZ2lkLCBzemdpZCwgInBnX2dp ZF8ldV8ldSIsIHN1YmlkLCB4aWQpOworCXNucHJpbnRmKGdpZCwgc3pnaWQsICJwZ19naWRfJXVf JWxsdSIsIHN1YmlkLCAodW5zaWduZWQgbG9uZyBsb25nKSB4aWQpOwogfQogCiAvKgpAQCAtMzk4 MCwzMyArMzk4NCwzMyBAQCBhcHBseV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAJCQkJCSAg IGVycmFyZy0+b3JpZ2luX25hbWUsCiAJCQkJCSAgIGxvZ2ljYWxyZXBfbWVzc2FnZV90eXBlKGVy cmFyZy0+Y29tbWFuZCkpOwogCQllbHNlIGlmIChYTG9nUmVjUHRySXNJbnZhbGlkKGVycmFyZy0+ ZmluaXNoX2xzbikpCi0JCQllcnJjb250ZXh0KCJwcm9jZXNzaW5nIHJlbW90ZSBkYXRhIGZvciBy ZXBsaWNhdGlvbiBvcmlnaW4gXCIlc1wiIGR1cmluZyBcIiVzXCIgaW4gdHJhbnNhY3Rpb24gJXUi LAorCQkJZXJyY29udGV4dCgicHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3IgcmVwbGljYXRpb24g b3JpZ2luIFwiJXNcIiBkdXJpbmcgXCIlc1wiIGluIHRyYW5zYWN0aW9uICVsbHUiLAogCQkJCQkg ICBlcnJhcmctPm9yaWdpbl9uYW1lLAogCQkJCQkgICBsb2dpY2FscmVwX21lc3NhZ2VfdHlwZShl cnJhcmctPmNvbW1hbmQpLAotCQkJCQkgICBlcnJhcmctPnJlbW90ZV94aWQpOworCQkJCQkgICAo dW5zaWduZWQgbG9uZyBsb25nKSBlcnJhcmctPnJlbW90ZV94aWQpOwogCQllbHNlCi0JCQllcnJj b250ZXh0KCJwcm9jZXNzaW5nIHJlbW90ZSBkYXRhIGZvciByZXBsaWNhdGlvbiBvcmlnaW4gXCIl c1wiIGR1cmluZyBcIiVzXCIgaW4gdHJhbnNhY3Rpb24gJXUgZmluaXNoZWQgYXQgJVgvJVgiLAor CQkJZXJyY29udGV4dCgicHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3IgcmVwbGljYXRpb24gb3Jp Z2luIFwiJXNcIiBkdXJpbmcgXCIlc1wiIGluIHRyYW5zYWN0aW9uICVsbHUgZmluaXNoZWQgYXQg JVgvJVgiLAogCQkJCQkgICBlcnJhcmctPm9yaWdpbl9uYW1lLAogCQkJCQkgICBsb2dpY2FscmVw X21lc3NhZ2VfdHlwZShlcnJhcmctPmNvbW1hbmQpLAotCQkJCQkgICBlcnJhcmctPnJlbW90ZV94 aWQsCisJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIGVycmFyZy0+cmVtb3RlX3hpZCwKIAkJ CQkJICAgTFNOX0ZPUk1BVF9BUkdTKGVycmFyZy0+ZmluaXNoX2xzbikpOwogCX0KIAllbHNlIGlm IChlcnJhcmctPnJlbW90ZV9hdHRudW0gPCAwKQotCQllcnJjb250ZXh0KCJwcm9jZXNzaW5nIHJl bW90ZSBkYXRhIGZvciByZXBsaWNhdGlvbiBvcmlnaW4gXCIlc1wiIGR1cmluZyBcIiVzXCIgZm9y IHJlcGxpY2F0aW9uIHRhcmdldCByZWxhdGlvbiBcIiVzLiVzXCIgaW4gdHJhbnNhY3Rpb24gJXUg ZmluaXNoZWQgYXQgJVgvJVgiLAorCQllcnJjb250ZXh0KCJwcm9jZXNzaW5nIHJlbW90ZSBkYXRh IGZvciByZXBsaWNhdGlvbiBvcmlnaW4gXCIlc1wiIGR1cmluZyBcIiVzXCIgZm9yIHJlcGxpY2F0 aW9uIHRhcmdldCByZWxhdGlvbiBcIiVzLiVzXCIgaW4gdHJhbnNhY3Rpb24gJWxsdSBmaW5pc2hl ZCBhdCAlWC8lWCIsCiAJCQkJICAgZXJyYXJnLT5vcmlnaW5fbmFtZSwKIAkJCQkgICBsb2dpY2Fs cmVwX21lc3NhZ2VfdHlwZShlcnJhcmctPmNvbW1hbmQpLAogCQkJCSAgIGVycmFyZy0+cmVsLT5y ZW1vdGVyZWwubnNwbmFtZSwKIAkJCQkgICBlcnJhcmctPnJlbC0+cmVtb3RlcmVsLnJlbG5hbWUs Ci0JCQkJICAgZXJyYXJnLT5yZW1vdGVfeGlkLAorCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcp IGVycmFyZy0+cmVtb3RlX3hpZCwKIAkJCQkgICBMU05fRk9STUFUX0FSR1MoZXJyYXJnLT5maW5p c2hfbHNuKSk7CiAJZWxzZQotCQllcnJjb250ZXh0KCJwcm9jZXNzaW5nIHJlbW90ZSBkYXRhIGZv ciByZXBsaWNhdGlvbiBvcmlnaW4gXCIlc1wiIGR1cmluZyBcIiVzXCIgZm9yIHJlcGxpY2F0aW9u IHRhcmdldCByZWxhdGlvbiBcIiVzLiVzXCIgY29sdW1uIFwiJXNcIiBpbiB0cmFuc2FjdGlvbiAl dSBmaW5pc2hlZCBhdCAlWC8lWCIsCisJCWVycmNvbnRleHQoInByb2Nlc3NpbmcgcmVtb3RlIGRh dGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiBcIiVzXCIgZHVyaW5nIFwiJXNcIiBmb3IgcmVwbGlj YXRpb24gdGFyZ2V0IHJlbGF0aW9uIFwiJXMuJXNcIiBjb2x1bW4gXCIlc1wiIGluIHRyYW5zYWN0 aW9uICVsbHUgZmluaXNoZWQgYXQgJVgvJVgiLAogCQkJCSAgIGVycmFyZy0+b3JpZ2luX25hbWUs CiAJCQkJICAgbG9naWNhbHJlcF9tZXNzYWdlX3R5cGUoZXJyYXJnLT5jb21tYW5kKSwKIAkJCQkg ICBlcnJhcmctPnJlbC0+cmVtb3RlcmVsLm5zcG5hbWUsCiAJCQkJICAgZXJyYXJnLT5yZWwtPnJl bW90ZXJlbC5yZWxuYW1lLAogCQkJCSAgIGVycmFyZy0+cmVsLT5yZW1vdGVyZWwuYXR0bmFtZXNb ZXJyYXJnLT5yZW1vdGVfYXR0bnVtXSwKLQkJCQkgICBlcnJhcmctPnJlbW90ZV94aWQsCisJCQkJ ICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgZXJyYXJnLT5yZW1vdGVfeGlkLAogCQkJCSAgIExTTl9G T1JNQVRfQVJHUyhlcnJhcmctPmZpbmlzaF9sc24pKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHJlY2VpdmVyLmMKaW5kZXggM2M5NDExZTIyMS4uOWM4YTU4YTc3NiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYworKysgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCkBAIC0xMjE2LDggKzEyMTYsOSBAQCBYTG9nV2FsUmN2 U2VuZEhTRmVlZGJhY2soYm9vbCBpbW1lZCkKIAlpZiAobmV4dFhpZCA8IGNhdGFsb2dfeG1pbikK IAkJY2F0YWxvZ194bWluX2Vwb2NoLS07CiAKLQllbG9nKERFQlVHMiwgInNlbmRpbmcgaG90IHN0 YW5kYnkgZmVlZGJhY2sgeG1pbiAldSBlcG9jaCAldSBjYXRhbG9nX3htaW4gJXUgY2F0YWxvZ194 bWluX2Vwb2NoICV1IiwKLQkJIHhtaW4sIHhtaW5fZXBvY2gsIGNhdGFsb2dfeG1pbiwgY2F0YWxv Z194bWluX2Vwb2NoKTsKKwllbG9nKERFQlVHMiwgInNlbmRpbmcgaG90IHN0YW5kYnkgZmVlZGJh Y2sgeG1pbiAlbGx1IGVwb2NoICV1IGNhdGFsb2dfeG1pbiAlbGx1IGNhdGFsb2dfeG1pbl9lcG9j aCAldSIsCisJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bWluLCB4bWluX2Vwb2NoLAorCQkgKHVu c2lnbmVkIGxvbmcgbG9uZykgY2F0YWxvZ194bWluLCBjYXRhbG9nX3htaW5fZXBvY2gpOwogCiAJ LyogQ29uc3RydWN0IHRoZSBtZXNzYWdlIGFuZCBzZW5kIGl0LiAqLwogCXJlc2V0U3RyaW5nSW5m bygmcmVwbHlfbWVzc2FnZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDYz YTgxODE0MGIuLjQwNGMwZTc4M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBA IC0yMjY2LDEwICsyMjY2LDEwIEBAIFByb2Nlc3NTdGFuZGJ5SFNGZWVkYmFja01lc3NhZ2Uodm9p ZCkKIAkJLyogQ29weSBiZWNhdXNlIHRpbWVzdGFtcHR6X3RvX3N0ciByZXR1cm5zIGEgc3RhdGlj IGJ1ZmZlciAqLwogCQlyZXBseVRpbWVTdHIgPSBwc3RyZHVwKHRpbWVzdGFtcHR6X3RvX3N0cihy ZXBseVRpbWUpKTsKIAotCQllbG9nKERFQlVHMiwgImhvdCBzdGFuZGJ5IGZlZWRiYWNrIHhtaW4g JXUgZXBvY2ggJXUsIGNhdGFsb2dfeG1pbiAldSBlcG9jaCAldSByZXBseV90aW1lICVzIiwKLQkJ CSBmZWVkYmFja1htaW4sCisJCWVsb2coREVCVUcyLCAiaG90IHN0YW5kYnkgZmVlZGJhY2sgeG1p biAlbGx1IGVwb2NoICV1LCBjYXRhbG9nX3htaW4gJWxsdSBlcG9jaCAldSByZXBseV90aW1lICVz IiwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBmZWVkYmFja1htaW4sCiAJCQkgZmVlZGJhY2tF cG9jaCwKLQkJCSBmZWVkYmFja0NhdGFsb2dYbWluLAorCQkJICh1bnNpZ25lZCBsb25nIGxvbmcp IGZlZWRiYWNrQ2F0YWxvZ1htaW4sCiAJCQkgZmVlZGJhY2tDYXRhbG9nRXBvY2gsCiAJCQkgcmVw bHlUaW1lU3RyKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2Fy cmF5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwppbmRleCAyNWMzMTBm Njc1Li42MTEwNTRjN2E2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9j YXJyYXkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwpAQCAtMTEw MSw5ICsxMTAxLDkgQEAgUHJvY0FycmF5QXBwbHlSZWNvdmVyeUluZm8oUnVubmluZ1RyYW5zYWN0 aW9ucyBydW5uaW5nKQogCQkJZWxzZQogCQkJCWVsb2codHJhY2VfcmVjb3ZlcnkoREVCVUcxKSwK IAkJCQkJICJyZWNvdmVyeSBzbmFwc2hvdCB3YWl0aW5nIGZvciBub24tb3ZlcmZsb3dlZCBzbmFw c2hvdCBvciAiCi0JCQkJCSAidW50aWwgb2xkZXN0IGFjdGl2ZSB4aWQgb24gc3RhbmRieSBpcyBh dCBsZWFzdCAldSAobm93ICV1KSIsCi0JCQkJCSBzdGFuZGJ5U25hcHNob3RQZW5kaW5nWG1pbiwK LQkJCQkJIHJ1bm5pbmctPm9sZGVzdFJ1bm5pbmdYaWQpOworCQkJCQkgInVudGlsIG9sZGVzdCBh Y3RpdmUgeGlkIG9uIHN0YW5kYnkgaXMgYXQgbGVhc3QgJWxsdSAobm93ICVsbHUpIiwKKwkJCQkJ ICh1bnNpZ25lZCBsb25nIGxvbmcpIHN0YW5kYnlTbmFwc2hvdFBlbmRpbmdYbWluLAorCQkJCQkg KHVuc2lnbmVkIGxvbmcgbG9uZykgcnVubmluZy0+b2xkZXN0UnVubmluZ1hpZCk7CiAJCQlyZXR1 cm47CiAJCX0KIAl9CkBAIC0xMTg3LDggKzExODcsOCBAQCBQcm9jQXJyYXlBcHBseVJlY292ZXJ5 SW5mbyhSdW5uaW5nVHJhbnNhY3Rpb25zIHJ1bm5pbmcpCiAJCQlpZiAoaSA+IDAgJiYgVHJhbnNh Y3Rpb25JZEVxdWFscyh4aWRzW2kgLSAxXSwgeGlkc1tpXSkpCiAJCQl7CiAJCQkJZWxvZyhERUJV RzEsCi0JCQkJCSAiZm91bmQgZHVwbGljYXRlZCB0cmFuc2FjdGlvbiAldSBmb3IgS25vd25Bc3Np Z25lZFhpZHMgaW5zZXJ0aW9uIiwKLQkJCQkJIHhpZHNbaV0pOworCQkJCQkgImZvdW5kIGR1cGxp Y2F0ZWQgdHJhbnNhY3Rpb24gJWxsdSBmb3IgS25vd25Bc3NpZ25lZFhpZHMgaW5zZXJ0aW9uIiwK KwkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZHNbaV0pOwogCQkJCWNvbnRpbnVlOwogCQkJ fQogCQkJS25vd25Bc3NpZ25lZFhpZHNBZGQoeGlkc1tpXSwgeGlkc1tpXSwgdHJ1ZSk7CkBAIC0x MjcyLDkgKzEyNzIsOSBAQCBQcm9jQXJyYXlBcHBseVJlY292ZXJ5SW5mbyhSdW5uaW5nVHJhbnNh Y3Rpb25zIHJ1bm5pbmcpCiAJZWxzZQogCQllbG9nKHRyYWNlX3JlY292ZXJ5KERFQlVHMSksCiAJ CQkgInJlY292ZXJ5IHNuYXBzaG90IHdhaXRpbmcgZm9yIG5vbi1vdmVyZmxvd2VkIHNuYXBzaG90 IG9yICIKLQkJCSAidW50aWwgb2xkZXN0IGFjdGl2ZSB4aWQgb24gc3RhbmRieSBpcyBhdCBsZWFz dCAldSAobm93ICV1KSIsCi0JCQkgc3RhbmRieVNuYXBzaG90UGVuZGluZ1htaW4sCi0JCQkgcnVu bmluZy0+b2xkZXN0UnVubmluZ1hpZCk7CisJCQkgInVudGlsIG9sZGVzdCBhY3RpdmUgeGlkIG9u IHN0YW5kYnkgaXMgYXQgbGVhc3QgJWxsdSAobm93ICVsbHUpIiwKKwkJCSAodW5zaWduZWQgbG9u ZyBsb25nKSBzdGFuZGJ5U25hcHNob3RQZW5kaW5nWG1pbiwKKwkJCSAodW5zaWduZWQgbG9uZyBs b25nKSBydW5uaW5nLT5vbGRlc3RSdW5uaW5nWGlkKTsKIH0KIAogLyoKQEAgLTQwMDUsNyArNDAw NSw4IEBAIFhpZENhY2hlUmVtb3ZlUnVubmluZ1hpZHMoVHJhbnNhY3Rpb25JZCB4aWQsCiAJCSAq IGRlYnVnIHdhcm5pbmcuCiAJCSAqLwogCQlpZiAoaiA8IDAgJiYgIU15UHJvYy0+c3VieGlkU3Rh dHVzLm92ZXJmbG93ZWQpCi0JCQllbG9nKFdBUk5JTkcsICJkaWQgbm90IGZpbmQgc3ViWElEICV1 IGluIE15UHJvYyIsIGFueGlkKTsKKwkJCWVsb2coV0FSTklORywgImRpZCBub3QgZmluZCBzdWJY SUQgJWxsdSBpbiBNeVByb2MiLAorCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBhbnhpZCk7CiAJ fQogCiAJZm9yIChqID0gTXlQcm9jLT5zdWJ4aWRTdGF0dXMuY291bnQgLSAxOyBqID49IDA7IGot LSkKQEAgLTQwMjEsNyArNDAyMiw4IEBAIFhpZENhY2hlUmVtb3ZlUnVubmluZ1hpZHMoVHJhbnNh Y3Rpb25JZCB4aWQsCiAJfQogCS8qIE9yZGluYXJpbHkgd2Ugc2hvdWxkIGhhdmUgZm91bmQgaXQs IHVubGVzcyB0aGUgY2FjaGUgaGFzIG92ZXJmbG93ZWQgKi8KIAlpZiAoaiA8IDAgJiYgIU15UHJv Yy0+c3VieGlkU3RhdHVzLm92ZXJmbG93ZWQpCi0JCWVsb2coV0FSTklORywgImRpZCBub3QgZmlu ZCBzdWJYSUQgJXUgaW4gTXlQcm9jIiwgeGlkKTsKKwkJZWxvZyhXQVJOSU5HLCAiZGlkIG5vdCBm aW5kIHN1YlhJRCAlbGx1IGluIE15UHJvYyIsCisJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGlk KTsKIAogCS8qIEFsc28gYWR2YW5jZSBnbG9iYWwgbGF0ZXN0Q29tcGxldGVkWGlkIHdoaWxlIGhv bGRpbmcgdGhlIGxvY2sgKi8KIAlNYWludGFpbkxhdGVzdENvbXBsZXRlZFhpZChsYXRlc3RYaWQp OwpAQCAtNDM5OCw4ICs0NDAwLDggQEAgUmVjb3JkS25vd25Bc3NpZ25lZFRyYW5zYWN0aW9uSWRz KFRyYW5zYWN0aW9uSWQgeGlkKQogCUFzc2VydChUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQpKTsK IAlBc3NlcnQoVHJhbnNhY3Rpb25JZElzVmFsaWQobGF0ZXN0T2JzZXJ2ZWRYaWQpKTsKIAotCWVs b2codHJhY2VfcmVjb3ZlcnkoREVCVUc0KSwgInJlY29yZCBrbm93biB4YWN0ICV1IGxhdGVzdE9i c2VydmVkWGlkICV1IiwKLQkJIHhpZCwgbGF0ZXN0T2JzZXJ2ZWRYaWQpOworCWVsb2codHJhY2Vf cmVjb3ZlcnkoREVCVUc0KSwgInJlY29yZCBrbm93biB4YWN0ICVsbHUgbGF0ZXN0T2JzZXJ2ZWRY aWQgJWxsdSIsCisJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4aWQsICh1bnNpZ25lZCBsb25nIGxv bmcpIGxhdGVzdE9ic2VydmVkWGlkKTsKIAogCS8qCiAJICogV2hlbiBhIG5ld2x5IG9ic2VydmVk IHhpZCBhcnJpdmVzLCBpdCBpcyBmcmVxdWVudGx5IHRoZSBjYXNlIHRoYXQgaXQgaXMKQEAgLTQ5 MDksNyArNDkxMSw4IEBAIEtub3duQXNzaWduZWRYaWRzUmVtb3ZlKFRyYW5zYWN0aW9uSWQgeGlk KQogewogCUFzc2VydChUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQpKTsKIAotCWVsb2codHJhY2Vf cmVjb3ZlcnkoREVCVUc0KSwgInJlbW92ZSBLbm93bkFzc2lnbmVkWGlkICV1IiwgeGlkKTsKKwll bG9nKHRyYWNlX3JlY292ZXJ5KERFQlVHNCksICJyZW1vdmUgS25vd25Bc3NpZ25lZFhpZCAlbGx1 IiwKKwkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCk7CiAKIAkvKgogCSAqIE5vdGU6IHdlIGNh bm5vdCBjb25zaWRlciBpdCBhbiBlcnJvciB0byByZW1vdmUgYW4gWElEIHRoYXQncyBub3QKQEAg LTQ5NjksNyArNDk3Miw4IEBAIEtub3duQXNzaWduZWRYaWRzUmVtb3ZlUHJlY2VkaW5nKFRyYW5z YWN0aW9uSWQgcmVtb3ZlWGlkKQogCQlyZXR1cm47CiAJfQogCi0JZWxvZyh0cmFjZV9yZWNvdmVy eShERUJVRzQpLCAicHJ1bmUgS25vd25Bc3NpZ25lZFhpZHMgdG8gJXUiLCByZW1vdmVYaWQpOwor CWVsb2codHJhY2VfcmVjb3ZlcnkoREVCVUc0KSwgInBydW5lIEtub3duQXNzaWduZWRYaWRzIHRv ICVsbHUiLAorCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgcmVtb3ZlWGlkKTsKIAogCS8qCiAJICog TWFyayBlbnRyaWVzIGludmFsaWQgc3RhcnRpbmcgYXQgdGhlIHRhaWwuICBTaW5jZSBhcnJheSBp cyBzb3J0ZWQsIHdlCkBAIC01MTU3LDcgKzUxNjEsOCBAQCBLbm93bkFzc2lnbmVkWGlkc0Rpc3Bs YXkoaW50IHRyYWNlX2xldmVsKQogCQlpZiAoS25vd25Bc3NpZ25lZFhpZHNWYWxpZFtpXSkKIAkJ ewogCQkJbnhpZHMrKzsKLQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgIlslZF09JXUgIiwgaSwg S25vd25Bc3NpZ25lZFhpZHNbaV0pOworCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLCAiWyVkXT0l bGx1ICIsIGksCisJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIEtub3duQXNzaWduZWRYaWRz W2ldKTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3Rh bmRieS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCmluZGV4IDI4NTA4Njcz MjMuLmM5MGJiMDYzYmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5k YnkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKQEAgLTk5NSwxNCAr OTk1LDE0IEBAIFN0YW5kYnlSZWxlYXNlTG9ja0xpc3QoTGlzdCAqbG9ja3MpCiAJCUxPQ0tUQUcJ CWxvY2t0YWc7CiAKIAkJZWxvZyh0cmFjZV9yZWNvdmVyeShERUJVRzQpLAotCQkJICJyZWxlYXNp bmcgcmVjb3ZlcnkgbG9jazogeGlkICV1IGRiICV1IHJlbCAldSIsCi0JCQkgbG9jay0+eGlkLCBs b2NrLT5kYk9pZCwgbG9jay0+cmVsT2lkKTsKKwkJCSAicmVsZWFzaW5nIHJlY292ZXJ5IGxvY2s6 IHhpZCAlbGx1IGRiICV1IHJlbCAldSIsCisJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgbG9jay0+ eGlkLCBsb2NrLT5kYk9pZCwgbG9jay0+cmVsT2lkKTsKIAkJU0VUX0xPQ0tUQUdfUkVMQVRJT04o bG9ja3RhZywgbG9jay0+ZGJPaWQsIGxvY2stPnJlbE9pZCk7CiAJCWlmICghTG9ja1JlbGVhc2Uo JmxvY2t0YWcsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2ssIHRydWUpKQogCQl7CiAJCQllbG9nKExPRywK LQkJCQkgIlJlY292ZXJ5TG9ja0xpc3RzIGNvbnRhaW5zIGVudHJ5IGZvciBsb2NrIG5vIGxvbmdl ciByZWNvcmRlZCBieSBsb2NrIG1hbmFnZXI6IHhpZCAldSBkYXRhYmFzZSAldSByZWxhdGlvbiAl dSIsCi0JCQkJIGxvY2stPnhpZCwgbG9jay0+ZGJPaWQsIGxvY2stPnJlbE9pZCk7CisJCQkJICJS ZWNvdmVyeUxvY2tMaXN0cyBjb250YWlucyBlbnRyeSBmb3IgbG9jayBubyBsb25nZXIgcmVjb3Jk ZWQgYnkgbG9jayBtYW5hZ2VyOiB4aWQgJWxsdSBkYXRhYmFzZSAldSByZWxhdGlvbiAldSIsCisJ CQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIGxvY2stPnhpZCwgbG9jay0+ZGJPaWQsIGxvY2stPnJl bE9pZCk7CiAJCQlBc3NlcnQoZmFsc2UpOwogCQl9CiAJfQpAQCAtMTMwNiwyMCArMTMwNiwyMCBA QCBMb2dDdXJyZW50UnVubmluZ1hhY3RzKFJ1bm5pbmdUcmFuc2FjdGlvbnMgQ3VyclJ1bm5pbmdY YWN0cykKIAogCWlmIChDdXJyUnVubmluZ1hhY3RzLT5zdWJ4aWRfb3ZlcmZsb3cpCiAJCWVsb2co dHJhY2VfcmVjb3ZlcnkoREVCVUcyKSwKLQkJCSAic25hcHNob3Qgb2YgJXUgcnVubmluZyB0cmFu c2FjdGlvbnMgb3ZlcmZsb3dlZCAobHNuICVYLyVYIG9sZGVzdCB4aWQgJXUgbGF0ZXN0IGNvbXBs ZXRlICV1IG5leHQgeGlkICV1KSIsCisJCQkgInNuYXBzaG90IG9mICV1IHJ1bm5pbmcgdHJhbnNh Y3Rpb25zIG92ZXJmbG93ZWQgKGxzbiAlWC8lWCBvbGRlc3QgeGlkICVsbHUgbGF0ZXN0IGNvbXBs ZXRlICVsbHUgbmV4dCB4aWQgJWxsdSkiLAogCQkJIEN1cnJSdW5uaW5nWGFjdHMtPnhjbnQsCiAJ CQkgTFNOX0ZPUk1BVF9BUkdTKHJlY3B0ciksCi0JCQkgQ3VyclJ1bm5pbmdYYWN0cy0+b2xkZXN0 UnVubmluZ1hpZCwKLQkJCSBDdXJyUnVubmluZ1hhY3RzLT5sYXRlc3RDb21wbGV0ZWRYaWQsCi0J CQkgQ3VyclJ1bm5pbmdYYWN0cy0+bmV4dFhpZCk7CisJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykg Q3VyclJ1bm5pbmdYYWN0cy0+b2xkZXN0UnVubmluZ1hpZCwKKwkJCSAodW5zaWduZWQgbG9uZyBs b25nKSBDdXJyUnVubmluZ1hhY3RzLT5sYXRlc3RDb21wbGV0ZWRYaWQsCisJCQkgKHVuc2lnbmVk IGxvbmcgbG9uZykgQ3VyclJ1bm5pbmdYYWN0cy0+bmV4dFhpZCk7CiAJZWxzZQogCQllbG9nKHRy YWNlX3JlY292ZXJ5KERFQlVHMiksCi0JCQkgInNuYXBzaG90IG9mICV1KyV1IHJ1bm5pbmcgdHJh bnNhY3Rpb24gaWRzIChsc24gJVgvJVggb2xkZXN0IHhpZCAldSBsYXRlc3QgY29tcGxldGUgJXUg bmV4dCB4aWQgJXUpIiwKKwkJCSAic25hcHNob3Qgb2YgJXUrJXUgcnVubmluZyB0cmFuc2FjdGlv biBpZHMgKGxzbiAlWC8lWCBvbGRlc3QgeGlkICVsbHUgbGF0ZXN0IGNvbXBsZXRlICVsbHUgbmV4 dCB4aWQgJWxsdSkiLAogCQkJIEN1cnJSdW5uaW5nWGFjdHMtPnhjbnQsIEN1cnJSdW5uaW5nWGFj dHMtPnN1YnhjbnQsCiAJCQkgTFNOX0ZPUk1BVF9BUkdTKHJlY3B0ciksCi0JCQkgQ3VyclJ1bm5p bmdYYWN0cy0+b2xkZXN0UnVubmluZ1hpZCwKLQkJCSBDdXJyUnVubmluZ1hhY3RzLT5sYXRlc3RD b21wbGV0ZWRYaWQsCi0JCQkgQ3VyclJ1bm5pbmdYYWN0cy0+bmV4dFhpZCk7CisJCQkgKHVuc2ln bmVkIGxvbmcgbG9uZykgQ3VyclJ1bm5pbmdYYWN0cy0+b2xkZXN0UnVubmluZ1hpZCwKKwkJCSAo dW5zaWduZWQgbG9uZyBsb25nKSBDdXJyUnVubmluZ1hhY3RzLT5sYXRlc3RDb21wbGV0ZWRYaWQs CisJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgQ3VyclJ1bm5pbmdYYWN0cy0+bmV4dFhpZCk7CiAK IAkvKgogCSAqIEVuc3VyZSBydW5uaW5nX3hhY3RzIGluZm9ybWF0aW9uIGlzIHN5bmNlZCB0byBk aXNrIG5vdCB0b28gZmFyIGluIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9s bWdyL3ByZWRpY2F0ZS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jCmlu ZGV4IGJlYTVkODEwZTAuLmYwZTRhYzg4OTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvbG1nci9wcmVkaWNhdGUuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGlj YXRlLmMKQEAgLTQxNjgsNyArNDE2OCw4IEBAIENoZWNrRm9yU2VyaWFsaXphYmxlQ29uZmxpY3RP dXQoUmVsYXRpb24gcmVsYXRpb24sIFRyYW5zYWN0aW9uSWQgeGlkLCBTbmFwc2hvdCBzCiAJCQkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfVF9SX1NFUklBTElaQVRJT05f RkFJTFVSRSksCiAJCQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgc2VyaWFsaXplIGFjY2VzcyBkdWUg dG8gcmVhZC93cml0ZSBkZXBlbmRlbmNpZXMgYW1vbmcgdHJhbnNhY3Rpb25zIiksCi0JCQkJCQkg ZXJyZGV0YWlsX2ludGVybmFsKCJSZWFzb24gY29kZTogQ2FuY2VsZWQgb24gY29uZmxpY3Qgb3V0 IHRvIG9sZCBwaXZvdCAldS4iLCB4aWQpLAorCQkJCQkJIGVycmRldGFpbF9pbnRlcm5hbCgiUmVh c29uIGNvZGU6IENhbmNlbGVkIG9uIGNvbmZsaWN0IG91dCB0byBvbGQgcGl2b3QgJWxsdS4iLAor CQkJCQkJCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSB4aWQpLAogCQkJCQkJIGVycmhpbnQoIlRo ZSB0cmFuc2FjdGlvbiBtaWdodCBzdWNjZWVkIGlmIHJldHJpZWQuIikpKTsKIAogCQkJaWYgKFN4 YWN0SGFzU3VtbWFyeUNvbmZsaWN0SW4oTXlTZXJpYWxpemFibGVYYWN0KQpAQCAtNDE3Niw3ICs0 MTc3LDggQEAgQ2hlY2tGb3JTZXJpYWxpemFibGVDb25mbGljdE91dChSZWxhdGlvbiByZWxhdGlv biwgVHJhbnNhY3Rpb25JZCB4aWQsIFNuYXBzaG90IHMKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9UX1JfU0VSSUFMSVpBVElPTl9GQUlMVVJFKSwKIAkJCQkJCSBl cnJtc2coImNvdWxkIG5vdCBzZXJpYWxpemUgYWNjZXNzIGR1ZSB0byByZWFkL3dyaXRlIGRlcGVu ZGVuY2llcyBhbW9uZyB0cmFuc2FjdGlvbnMiKSwKLQkJCQkJCSBlcnJkZXRhaWxfaW50ZXJuYWwo IlJlYXNvbiBjb2RlOiBDYW5jZWxlZCBvbiBpZGVudGlmaWNhdGlvbiBhcyBhIHBpdm90LCB3aXRo IGNvbmZsaWN0IG91dCB0byBvbGQgY29tbWl0dGVkIHRyYW5zYWN0aW9uICV1LiIsIHhpZCksCisJ CQkJCQkgZXJyZGV0YWlsX2ludGVybmFsKCJSZWFzb24gY29kZTogQ2FuY2VsZWQgb24gaWRlbnRp ZmljYXRpb24gYXMgYSBwaXZvdCwgd2l0aCBjb25mbGljdCBvdXQgdG8gb2xkIGNvbW1pdHRlZCB0 cmFuc2FjdGlvbiAlbGx1LiIsCisJCQkJCQkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIHhpZCks CiAJCQkJCQkgZXJyaGludCgiVGhlIHRyYW5zYWN0aW9uIG1pZ2h0IHN1Y2NlZWQgaWYgcmV0cmll ZC4iKSkpOwogCiAJCQlNeVNlcmlhbGl6YWJsZVhhY3QtPmZsYWdzIHw9IFNYQUNUX0ZMQUdfU1VN TUFSWV9DT05GTElDVF9PVVQ7CkBAIC00ODA2LDcgKzQ4MDgsOCBAQCBPbkNvbmZsaWN0X0NoZWNr Rm9yU2VyaWFsaXphdGlvbkZhaWx1cmUoY29uc3QgU0VSSUFMSVpBQkxFWEFDVCAqcmVhZGVyLAog CQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9UX1JfU0VSSUFMSVpBVElP Tl9GQUlMVVJFKSwKIAkJCQkJIGVycm1zZygiY291bGQgbm90IHNlcmlhbGl6ZSBhY2Nlc3MgZHVl IHRvIHJlYWQvd3JpdGUgZGVwZW5kZW5jaWVzIGFtb25nIHRyYW5zYWN0aW9ucyIpLAotCQkJCQkg ZXJyZGV0YWlsX2ludGVybmFsKCJSZWFzb24gY29kZTogQ2FuY2VsZWQgb24gY29uZmxpY3Qgb3V0 IHRvIHBpdm90ICV1LCBkdXJpbmcgcmVhZC4iLCB3cml0ZXItPnRvcFhpZCksCisJCQkJCSBlcnJk ZXRhaWxfaW50ZXJuYWwoIlJlYXNvbiBjb2RlOiBDYW5jZWxlZCBvbiBjb25mbGljdCBvdXQgdG8g cGl2b3QgJWxsdSwgZHVyaW5nIHJlYWQuIiwKKwkJCQkJCQkJCQkodW5zaWduZWQgbG9uZyBsb25n KSB3cml0ZXItPnRvcFhpZCksCiAJCQkJCSBlcnJoaW50KCJUaGUgdHJhbnNhY3Rpb24gbWlnaHQg c3VjY2VlZCBpZiByZXRyaWVkLiIpKSk7CiAJCX0KIAkJd3JpdGVyLT5mbGFncyB8PSBTWEFDVF9G TEFHX0RPT01FRDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9sb2NrZnVuY3Mu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9sb2NrZnVuY3MuYwppbmRleCAwMjNhMDA0YWM4Li4z NTljZGU4NzcyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbG9ja2Z1bmNzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2xvY2tmdW5jcy5jCkBAIC03OSw3ICs3OSw4IEBA IFZYSURHZXREYXR1bShCYWNrZW5kSWQgYmlkLCBMb2NhbFRyYW5zYWN0aW9uSWQgbHhpZCkKIAkg Ki8KIAljaGFyCQl2eGlkc3RyWzMyXTsKIAotCXNucHJpbnRmKHZ4aWRzdHIsIHNpemVvZih2eGlk c3RyKSwgIiVkLyV1IiwgYmlkLCBseGlkKTsKKwlzbnByaW50Zih2eGlkc3RyLCBzaXplb2Yodnhp ZHN0ciksICIlZC8lbGx1IiwgYmlkLAorCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIGx4aWQpOwog CiAJcmV0dXJuIENTdHJpbmdHZXRUZXh0RGF0dW0odnhpZHN0cik7CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9lcnJvci9jc3Zsb2cuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9y L2NzdmxvZy5jCmluZGV4IDVjNDliYzQyMDkuLjVlN2Q4NDJkYTMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2Vycm9yL2NzdmxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9y L2NzdmxvZy5jCkBAIC0xNTMsMTEgKzE1MywxMiBAQCB3cml0ZV9jc3Zsb2coRXJyb3JEYXRhICpl ZGF0YSkKIAkvKiBWaXJ0dWFsIHRyYW5zYWN0aW9uIGlkICovCiAJLyoga2VlcCBWWElEIGZvcm1h dCBpbiBzeW5jIHdpdGggbG9ja2Z1bmNzLmMgKi8KIAlpZiAoTXlQcm9jICE9IE5VTEwgJiYgTXlQ cm9jLT5iYWNrZW5kSWQgIT0gSW52YWxpZEJhY2tlbmRJZCkKLQkJYXBwZW5kU3RyaW5nSW5mbygm YnVmLCAiJWQvJXUiLCBNeVByb2MtPmJhY2tlbmRJZCwgTXlQcm9jLT5seGlkKTsKKwkJYXBwZW5k U3RyaW5nSW5mbygmYnVmLCAiJWQvJWxsdSIsIE15UHJvYy0+YmFja2VuZElkLAorCQkJCQkJICh1 bnNpZ25lZCBsb25nIGxvbmcpIE15UHJvYy0+bHhpZCk7CiAJYXBwZW5kU3RyaW5nSW5mb0NoYXIo JmJ1ZiwgJywnKTsKIAogCS8qIFRyYW5zYWN0aW9uIGlkICovCi0JYXBwZW5kU3RyaW5nSW5mbygm YnVmLCAiJXUiLCBHZXRUb3BUcmFuc2FjdGlvbklkSWZBbnkoKSk7CisJYXBwZW5kU3RyaW5nSW5m bygmYnVmLCAiJWxsdSIsICh1bnNpZ25lZCBsb25nIGxvbmcpIEdldFRvcFRyYW5zYWN0aW9uSWRJ ZkFueSgpKTsKIAlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmYnVmLCAnLCcpOwogCiAJLyogRXJyb3Ig c2V2ZXJpdHkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwppbmRleCA1NWVlNTQyM2FmLi5iNmM2ZWRj MjA2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCkBAIC0yNzUyLDEyICsyNzUyLDE0IEBAIGxvZ19s aW5lX3ByZWZpeChTdHJpbmdJbmZvIGJ1ZiwgRXJyb3JEYXRhICplZGF0YSkKIAkJCQkJewogCQkJ CQkJY2hhcgkJc3RyZmJ1ZlsxMjhdOwogCi0JCQkJCQlzbnByaW50ZihzdHJmYnVmLCBzaXplb2Yo c3RyZmJ1ZikgLSAxLCAiJWQvJXUiLAotCQkJCQkJCQkgTXlQcm9jLT5iYWNrZW5kSWQsIE15UHJv Yy0+bHhpZCk7CisJCQkJCQlzbnByaW50ZihzdHJmYnVmLCBzaXplb2Yoc3RyZmJ1ZikgLSAxLCAi JWQvJWxsdSIsCisJCQkJCQkJCSBNeVByb2MtPmJhY2tlbmRJZCwKKwkJCQkJCQkJICh1bnNpZ25l ZCBsb25nIGxvbmcpIE15UHJvYy0+bHhpZCk7CiAJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1Ziwg IiUqcyIsIHBhZGRpbmcsIHN0cmZidWYpOwogCQkJCQl9CiAJCQkJCWVsc2UKLQkJCQkJCWFwcGVu ZFN0cmluZ0luZm8oYnVmLCAiJWQvJXUiLCBNeVByb2MtPmJhY2tlbmRJZCwgTXlQcm9jLT5seGlk KTsKKwkJCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJWQvJWxsdSIsIE15UHJvYy0+YmFja2Vu ZElkLAorCQkJCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBNeVByb2MtPmx4aWQpOwogCQkJ CX0KIAkJCQllbHNlIGlmIChwYWRkaW5nICE9IDApCiAJCQkJCWFwcGVuZFN0cmluZ0luZm9TcGFj ZXMoYnVmLApAQCAtMjc2NSw5ICsyNzY3LDExIEBAIGxvZ19saW5lX3ByZWZpeChTdHJpbmdJbmZv IGJ1ZiwgRXJyb3JEYXRhICplZGF0YSkKIAkJCQlicmVhazsKIAkJCWNhc2UgJ3gnOgogCQkJCWlm IChwYWRkaW5nICE9IDApCi0JCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJSp1IiwgcGFkZGlu ZywgR2V0VG9wVHJhbnNhY3Rpb25JZElmQW55KCkpOworCQkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1 ZiwgIiUqbGx1IiwgcGFkZGluZywKKwkJCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBHZXRU b3BUcmFuc2FjdGlvbklkSWZBbnkoKSk7CiAJCQkJZWxzZQotCQkJCQlhcHBlbmRTdHJpbmdJbmZv KGJ1ZiwgIiV1IiwgR2V0VG9wVHJhbnNhY3Rpb25JZElmQW55KCkpOworCQkJCQlhcHBlbmRTdHJp bmdJbmZvKGJ1ZiwgIiVsbHUiLAorCQkJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIEdldFRv cFRyYW5zYWN0aW9uSWRJZkFueSgpKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgJ2UnOgogCQkJCWlm IChwYWRkaW5nICE9IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9lcnJvci9qc29u bG9nLmMgYi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9qc29ubG9nLmMKaW5kZXggMjdhZDc2ODZk OC4uZGYxZWQxNGMwMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvanNvbmxv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2pzb25sb2cuYwpAQCAtMTk4LDEyICsx OTgsMTIgQEAgd3JpdGVfanNvbmxvZyhFcnJvckRhdGEgKmVkYXRhKQogCS8qIFZpcnR1YWwgdHJh bnNhY3Rpb24gaWQgKi8KIAkvKiBrZWVwIFZYSUQgZm9ybWF0IGluIHN5bmMgd2l0aCBsb2NrZnVu Y3MuYyAqLwogCWlmIChNeVByb2MgIT0gTlVMTCAmJiBNeVByb2MtPmJhY2tlbmRJZCAhPSBJbnZh bGlkQmFja2VuZElkKQotCQlhcHBlbmRKU09OS2V5VmFsdWVGbXQoJmJ1ZiwgInZ4aWQiLCB0cnVl LCAiJWQvJXUiLCBNeVByb2MtPmJhY2tlbmRJZCwKLQkJCQkJCQkgIE15UHJvYy0+bHhpZCk7CisJ CWFwcGVuZEpTT05LZXlWYWx1ZUZtdCgmYnVmLCAidnhpZCIsIHRydWUsICIlZC8lbGx1IiwgTXlQ cm9jLT5iYWNrZW5kSWQsCisJCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBNeVByb2MtPmx4 aWQpOwogCiAJLyogVHJhbnNhY3Rpb24gaWQgKi8KLQlhcHBlbmRKU09OS2V5VmFsdWVGbXQoJmJ1 ZiwgInR4aWQiLCBmYWxzZSwgIiV1IiwKLQkJCQkJCSAgR2V0VG9wVHJhbnNhY3Rpb25JZElmQW55 KCkpOworCWFwcGVuZEpTT05LZXlWYWx1ZUZtdCgmYnVmLCAidHhpZCIsIGZhbHNlLCAiJWxsdSIs CisJCQkJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIEdldFRvcFRyYW5zYWN0aW9uSWRJZkFueSgp KTsKIAogCS8qIEVycm9yIHNldmVyaXR5ICovCiAJaWYgKGVkYXRhLT5lbGV2ZWwpCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3BnX2NvbnRyb2xkYXRhLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3BnX2NvbnRyb2xkYXRhLmMKaW5kZXggNzgxZjhiODc1OC4uODhmNmYzM2Vm NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wZ19jb250cm9sZGF0YS5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcGdfY29udHJvbGRhdGEuYwpAQCAtMTY0LDkgKzE2 NCw5IEBAIHBnX2NvbnRyb2xfY2hlY2twb2ludChQR19GVU5DVElPTl9BUkdTKQogCXZhbHVlc1s1 XSA9IEJvb2xHZXREYXR1bShDb250cm9sRmlsZS0+Y2hlY2tQb2ludENvcHkuZnVsbFBhZ2VXcml0 ZXMpOwogCW51bGxzWzVdID0gZmFsc2U7CiAKLQl2YWx1ZXNbNl0gPSBDU3RyaW5nR2V0VGV4dERh dHVtKHBzcHJpbnRmKCIldToldSIsCisJdmFsdWVzWzZdID0gQ1N0cmluZ0dldFRleHREYXR1bShw c3ByaW50ZigiJXU6JWxsdSIsCiAJCQkJCQkJCQkJCSBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25J ZChDb250cm9sRmlsZS0+Y2hlY2tQb2ludENvcHkubmV4dFhpZCksCi0JCQkJCQkJCQkJCSBYaWRG cm9tRnVsbFRyYW5zYWN0aW9uSWQoQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm5leHRYaWQp KSk7CisJCQkJCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRyYW5zYWN0 aW9uSWQoQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm5leHRYaWQpKSk7CiAJbnVsbHNbNl0g PSBmYWxzZTsKIAogCXZhbHVlc1s3XSA9IE9iamVjdElkR2V0RGF0dW0oQ29udHJvbEZpbGUtPmNo ZWNrUG9pbnRDb3B5Lm5leHRPaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvdGlt ZS9zbmFwbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy90aW1lL3NuYXBtZ3IuYwppbmRleCA1YmMy YTE1MTYwLi44ZTAzYTlmMGY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy90aW1lL3Nu YXBtZ3IuYworKysgYi9zcmMvYmFja2VuZC91dGlscy90aW1lL3NuYXBtZ3IuYwpAQCAtMTIwMiwx NCArMTIwMiwxNSBAQCBFeHBvcnRTbmFwc2hvdChTbmFwc2hvdCBzbmFwc2hvdCkKIAkgKi8KIAlp bml0U3RyaW5nSW5mbygmYnVmKTsKIAotCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgInZ4aWQ6JWQv JXVcbiIsIE15UHJvYy0+YmFja2VuZElkLCBNeVByb2MtPmx4aWQpOworCWFwcGVuZFN0cmluZ0lu Zm8oJmJ1ZiwgInZ4aWQ6JWQvJWxsdVxuIiwgTXlQcm9jLT5iYWNrZW5kSWQsCisJCQkJCSAodW5z aWduZWQgbG9uZyBsb25nKSBNeVByb2MtPmx4aWQpOwogCWFwcGVuZFN0cmluZ0luZm8oJmJ1Ziwg InBpZDolZFxuIiwgTXlQcm9jUGlkKTsKIAlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICJkYmlkOiV1 XG4iLCBNeURhdGFiYXNlSWQpOwogCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgImlzbzolZFxuIiwg WGFjdElzb0xldmVsKTsKIAlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICJybzolZFxuIiwgWGFjdFJl YWRPbmx5KTsKIAotCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgInhtaW46JXVcbiIsIHNuYXBzaG90 LT54bWluKTsKLQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICJ4bWF4OiV1XG4iLCBzbmFwc2hvdC0+ eG1heCk7CisJYXBwZW5kU3RyaW5nSW5mbygmYnVmLCAieG1pbjolbGx1XG4iLCAodW5zaWduZWQg bG9uZyBsb25nKSBzbmFwc2hvdC0+eG1pbik7CisJYXBwZW5kU3RyaW5nSW5mbygmYnVmLCAieG1h eDolbGx1XG4iLCAodW5zaWduZWQgbG9uZyBsb25nKSBzbmFwc2hvdC0+eG1heCk7CiAKIAkvKgog CSAqIFdlIG11c3QgaW5jbHVkZSBvdXIgb3duIHRvcCB0cmFuc2FjdGlvbiBJRCBpbiB0aGUgdG9w LXhpZCBkYXRhLCBzaW5jZQpAQCAtMTIyNiw5ICsxMjI3LDEwIEBAIEV4cG9ydFNuYXBzaG90KFNu YXBzaG90IHNuYXBzaG90KQogCQkJCSBUcmFuc2FjdGlvbklkUHJlY2VkZXModG9wWGlkLCBzbmFw c2hvdC0+eG1heCkpID8gMSA6IDA7CiAJYXBwZW5kU3RyaW5nSW5mbygmYnVmLCAieGNudDolZFxu Iiwgc25hcHNob3QtPnhjbnQgKyBhZGRUb3BYaWQpOwogCWZvciAoaSA9IDA7IGkgPCBzbmFwc2hv dC0+eGNudDsgaSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICJ4aXA6JXVcbiIsIHNuYXBz aG90LT54aXBbaV0pOworCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICJ4aXA6JWxsdVxuIiwKKwkJ CQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBzbmFwc2hvdC0+eGlwW2ldKTsKIAlpZiAoYWRkVG9w WGlkKQotCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICJ4aXA6JXVcbiIsIHRvcFhpZCk7CisJCWFw cGVuZFN0cmluZ0luZm8oJmJ1ZiwgInhpcDolbGx1XG4iLCAodW5zaWduZWQgbG9uZyBsb25nKSB0 b3BYaWQpOwogCiAJLyoKIAkgKiBTaW1pbGFybHksIHdlIGFkZCBvdXIgc3ViY29tbWl0dGVkIGNo aWxkIFhJRHMgdG8gdGhlIHN1YnhpZCBkYXRhLiBIZXJlLApAQCAtMTI0Miw5ICsxMjQ0LDExIEBA IEV4cG9ydFNuYXBzaG90KFNuYXBzaG90IHNuYXBzaG90KQogCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKCZidWYsICJzb2Y6MFxuIik7CiAJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgInN4Y250OiVk XG4iLCBzbmFwc2hvdC0+c3VieGNudCArIG5jaGlsZHJlbik7CiAJCWZvciAoaSA9IDA7IGkgPCBz bmFwc2hvdC0+c3VieGNudDsgaSsrKQotCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLCAic3hwOiV1 XG4iLCBzbmFwc2hvdC0+c3VieGlwW2ldKTsKKwkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgInN4 cDolbGx1XG4iLAorCQkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBzbmFwc2hvdC0+c3VieGlw W2ldKTsKIAkJZm9yIChpID0gMDsgaSA8IG5jaGlsZHJlbjsgaSsrKQotCQkJYXBwZW5kU3RyaW5n SW5mbygmYnVmLCAic3hwOiV1XG4iLCBjaGlsZHJlbltpXSk7CisJCQlhcHBlbmRTdHJpbmdJbmZv KCZidWYsICJzeHA6JWxsdVxuIiwKKwkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgY2hpbGRy ZW5baV0pOwogCX0KIAlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICJyZWM6JXVcbiIsIHNuYXBzaG90 LT50YWtlbkR1cmluZ1JlY292ZXJ5KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19hbWNoZWNr L3QvMDA0X3ZlcmlmeV9oZWFwYW0ucGwgYi9zcmMvYmluL3BnX2FtY2hlY2svdC8wMDRfdmVyaWZ5 X2hlYXBhbS5wbAppbmRleCBiYmFkYTE2OGYwLi44MDUwODExMTA1IDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2FtY2hlY2svdC8wMDRfdmVyaWZ5X2hlYXBhbS5wbAorKysgYi9zcmMvYmluL3BnX2Ft Y2hlY2svdC8wMDRfdmVyaWZ5X2hlYXBhbS5wbApAQCAtMzYyLDcgKzM2Miw3IEBAIGZvciAobXkg JHR1cGlkeCA9IDA7ICR0dXBpZHggPCBST1dDT1VOVDsgJHR1cGlkeCsrKQogCiAJCSMgRXhwZWN0 ZWQgY29ycnVwdGlvbiByZXBvcnQKIAkJcHVzaCBAZXhwZWN0ZWQsCi0JCSAgcXIvJHtoZWFkZXJ9 eG1pbiAkeG1pbiBwcmVjZWRlcyByZWxhdGlvbiBmcmVlemUgdGhyZXNob2xkIDA6XGQrLzsKKwkJ ICBxci8ke2hlYWRlcn14bWluICR4bWluIHByZWNlZGVzIHJlbGF0aW9uIGZyZWV6ZSB0aHJlc2hv bGQgXGQrLzsKIAl9CiAJaWYgKCRvZmZudW0gPT0gMikKIAl7CkBAIC0zNzMsNyArMzczLDcgQEAg Zm9yIChteSAkdHVwaWR4ID0gMDsgJHR1cGlkeCA8IFJPV0NPVU5UOyAkdHVwaWR4KyspCiAJCSR0 dXAtPnt0X2luZm9tYXNrfSAmPSB+SEVBUF9YTUlOX0lOVkFMSUQ7CiAKIAkJcHVzaCBAZXhwZWN0 ZWQsCi0JCSAgcXIvJHskaGVhZGVyfXhtaW4gJHhtaW4gcHJlY2VkZXMgb2xkZXN0IHZhbGlkIHRy YW5zYWN0aW9uIElEIDA6XGQrLzsKKwkJICBxci8keyRoZWFkZXJ9eG1pbiAkeG1pbiBwcmVjZWRl cyBvbGRlc3QgdmFsaWQgdHJhbnNhY3Rpb24gSUQgXGQrLzsKIAl9CiAJZWxzaWYgKCRvZmZudW0g PT0gMykKIAl7CkBAIC0zODUsNyArMzg1LDcgQEAgZm9yIChteSAkdHVwaWR4ID0gMDsgJHR1cGlk eCA8IFJPV0NPVU5UOyAkdHVwaWR4KyspCiAJCSR0dXAtPnt0X2luZm9tYXNrfSAmPSB+SEVBUF9Y TUlOX0lOVkFMSUQ7CiAKIAkJcHVzaCBAZXhwZWN0ZWQsCi0JCSAgcXIvJHskaGVhZGVyfXhtaW4g NDAyNjUzMTgzOSBlcXVhbHMgb3IgZXhjZWVkcyBuZXh0IHZhbGlkIHRyYW5zYWN0aW9uIElEIDA6 XGQrLzsKKwkJICBxci8keyRoZWFkZXJ9eG1pbiA0MDI2NTMxODM5IGVxdWFscyBvciBleGNlZWRz IG5leHQgdmFsaWQgdHJhbnNhY3Rpb24gSUQgXGQrLzsKIAl9CiAJZWxzaWYgKCRvZmZudW0gPT0g NCkKIAl7CkBAIC0zOTQsNyArMzk0LDcgQEAgZm9yIChteSAkdHVwaWR4ID0gMDsgJHR1cGlkeCA8 IFJPV0NPVU5UOyAkdHVwaWR4KyspCiAJCSR0dXAtPnt0X2luZm9tYXNrfSAmPSB+SEVBUF9YTUFY X0lOVkFMSUQ7CiAKIAkJcHVzaCBAZXhwZWN0ZWQsCi0JCSAgcXIvJHskaGVhZGVyfXhtYXggNDAy NjUzMTgzOSBlcXVhbHMgb3IgZXhjZWVkcyBuZXh0IHZhbGlkIHRyYW5zYWN0aW9uIElEIDA6XGQr LzsKKwkJICBxci8keyRoZWFkZXJ9eG1heCA0MDI2NTMxODM5IGVxdWFscyBvciBleGNlZWRzIG5l eHQgdmFsaWQgdHJhbnNhY3Rpb24gSUQgXGQrLzsKIAl9CiAJZWxzaWYgKCRvZmZudW0gPT0gNSkK IAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMg Yi9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKaW5kZXggYzM5MGVjNTFj ZS4uMmMxMDMyMjM1NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250 cm9sZGF0YS5jCisrKyBiL3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYwpA QCAtMjQ3LDI5ICsyNDcsMjkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkgICBD b250cm9sRmlsZS0+Y2hlY2tQb2ludENvcHkuUHJldlRpbWVMaW5lSUQpOwogCXByaW50ZihfKCJM YXRlc3QgY2hlY2twb2ludCdzIGZ1bGxfcGFnZV93cml0ZXM6ICVzXG4iKSwKIAkJICAgQ29udHJv bEZpbGUtPmNoZWNrUG9pbnRDb3B5LmZ1bGxQYWdlV3JpdGVzID8gXygib24iKSA6IF8oIm9mZiIp KTsKLQlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBOZXh0WElEOiAgICAgICAgICAldTol dVxuIiksCisJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dFhJRDogICAgICAgICAg JXU6JWxsdVxuIiksCiAJCSAgIEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlvbklkKENvbnRyb2xGaWxl LT5jaGVja1BvaW50Q29weS5uZXh0WGlkKSwKLQkJICAgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklk KENvbnRyb2xGaWxlLT5jaGVja1BvaW50Q29weS5uZXh0WGlkKSk7CisJCSAgICh1bnNpZ25lZCBs b25nIGxvbmcpIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChDb250cm9sRmlsZS0+Y2hlY2tQb2lu dENvcHkubmV4dFhpZCkpOwogCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5leHRPSUQ6 ICAgICAgICAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm5leHRP aWQpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5leHRNdWx0aVhhY3RJZDogICV1 XG4iKSwKLQkJICAgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm5leHRNdWx0aSk7Ci0JcHJp bnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dE11bHRpT2Zmc2V0OiAgJXVcbiIpLAotCQkg ICBDb250cm9sRmlsZS0+Y2hlY2tQb2ludENvcHkubmV4dE11bHRpT2Zmc2V0KTsKLQlwcmludGYo XygiTGF0ZXN0IGNoZWNrcG9pbnQncyBvbGRlc3RYSUQ6ICAgICAgICAldVxuIiksCi0JCSAgIENv bnRyb2xGaWxlLT5jaGVja1BvaW50Q29weS5vbGRlc3RYaWQpOworCXByaW50ZihfKCJMYXRlc3Qg Y2hlY2twb2ludCdzIE5leHRNdWx0aVhhY3RJZDogICVsbHVcbiIpLAorCQkgICAodW5zaWduZWQg bG9uZyBsb25nKSBDb250cm9sRmlsZS0+Y2hlY2tQb2ludENvcHkubmV4dE11bHRpKTsKKwlwcmlu dGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBOZXh0TXVsdGlPZmZzZXQ6ICAlbGx1XG4iKSwKKwkJ ICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm5leHRN dWx0aU9mZnNldCk7CisJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3Mgb2xkZXN0WElEOiAg ICAgICAgJWxsdVxuIiksCisJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIENvbnRyb2xGaWxlLT5j aGVja1BvaW50Q29weS5vbGRlc3RYaWQpOwogCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdz IG9sZGVzdFhJRCdzIERCOiAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRD b3B5Lm9sZGVzdFhpZERCKTsKLQlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBvbGRlc3RB Y3RpdmVYSUQ6ICAldVxuIiksCi0JCSAgIENvbnRyb2xGaWxlLT5jaGVja1BvaW50Q29weS5vbGRl c3RBY3RpdmVYaWQpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIG9sZGVzdE11bHRp WGlkOiAgICV1XG4iKSwKLQkJICAgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm9sZGVzdE11 bHRpKTsKKwlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBvbGRlc3RBY3RpdmVYSUQ6ICAl bGx1XG4iKSwKKwkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgQ29udHJvbEZpbGUtPmNoZWNrUG9p bnRDb3B5Lm9sZGVzdEFjdGl2ZVhpZCk7CisJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3Mg b2xkZXN0TXVsdGlYaWQ6ICAgJWxsdVxuIiksCisJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIENv bnRyb2xGaWxlLT5jaGVja1BvaW50Q29weS5vbGRlc3RNdWx0aSk7CiAJcHJpbnRmKF8oIkxhdGVz dCBjaGVja3BvaW50J3Mgb2xkZXN0TXVsdGkncyBEQjogJXVcbiIpLAogCQkgICBDb250cm9sRmls ZS0+Y2hlY2tQb2ludENvcHkub2xkZXN0TXVsdGlEQik7Ci0JcHJpbnRmKF8oIkxhdGVzdCBjaGVj a3BvaW50J3Mgb2xkZXN0Q29tbWl0VHNYaWQ6JXVcbiIpLAotCQkgICBDb250cm9sRmlsZS0+Y2hl Y2tQb2ludENvcHkub2xkZXN0Q29tbWl0VHNYaWQpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2tw b2ludCdzIG5ld2VzdENvbW1pdFRzWGlkOiV1XG4iKSwKLQkJICAgQ29udHJvbEZpbGUtPmNoZWNr UG9pbnRDb3B5Lm5ld2VzdENvbW1pdFRzWGlkKTsKKwlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9p bnQncyBvbGRlc3RDb21taXRUc1hpZDolbGx1XG4iKSwKKwkJICAgKHVuc2lnbmVkIGxvbmcgbG9u ZykgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm9sZGVzdENvbW1pdFRzWGlkKTsKKwlwcmlu dGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBuZXdlc3RDb21taXRUc1hpZDolbGx1XG4iKSwKKwkJ ICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5Lm5ld2Vz dENvbW1pdFRzWGlkKTsKIAlwcmludGYoXygiVGltZSBvZiBsYXRlc3QgY2hlY2twb2ludDogICAg ICAgICAgICAlc1xuIiksCiAJCSAgIGNrcHR0aW1lX3N0cik7CiAJcHJpbnRmKF8oIkZha2UgTFNO IGNvdW50ZXIgZm9yIHVubG9nZ2VkIHJlbHM6ICAgJVgvJVhcbiIpLApkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXgg Nzg2ZDU5MmUyYi4uMDMyZmU1ZTc5NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0zMTE1LDkgKzMxMTUsMTAg QEAgZHVtcERhdGFiYXNlKEFyY2hpdmUgKmZvdXQpCiAJewogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cihjcmVhUXJ5LCAiXG4tLSBGb3IgYmluYXJ5IHVwZ3JhZGUsIHNldCBkYXRmcm96ZW54aWQgYW5k IGRhdG1pbm14aWQuXG4iKTsKIAkJYXBwZW5kUFFFeHBCdWZmZXIoY3JlYVFyeSwgIlVQREFURSBw Z19jYXRhbG9nLnBnX2RhdGFiYXNlXG4iCi0JCQkJCQkgICJTRVQgZGF0ZnJvemVueGlkID0gJyV1 JywgZGF0bWlubXhpZCA9ICcldSdcbiIKKwkJCQkJCSAgIlNFVCBkYXRmcm96ZW54aWQgPSAnJWxs dScsIGRhdG1pbm14aWQgPSAnJWxsdSdcbiIKIAkJCQkJCSAgIldIRVJFIGRhdG5hbWUgPSAiLAot CQkJCQkJICBmcm96ZW54aWQsIG1pbm14aWQpOworCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25n KSBmcm96ZW54aWQsCisJCQkJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIG1pbm14aWQpOwogCQlh cHBlbmRTdHJpbmdMaXRlcmFsQUgoY3JlYVFyeSwgZGF0bmFtZSwgZm91dCk7CiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKGNyZWFRcnksICI7XG4iKTsKIAl9CkBAIC0xNTU1Niw5ICsxNTU1NywxMCBA QCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8p CiAJCXsKIAkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICJcbi0tIEZvciBiaW5hcnkgdXBncmFk ZSwgc2V0IGhlYXAncyByZWxmcm96ZW54aWQgYW5kIHJlbG1pbm14aWRcbiIpOwogCQkJYXBwZW5k UFFFeHBCdWZmZXIocSwgIlVQREFURSBwZ19jYXRhbG9nLnBnX2NsYXNzXG4iCi0JCQkJCQkJICAi U0VUIHJlbGZyb3plbnhpZCA9ICcldScsIHJlbG1pbm14aWQgPSAnJXUnXG4iCisJCQkJCQkJICAi U0VUIHJlbGZyb3plbnhpZCA9ICclbGx1JywgcmVsbWlubXhpZCA9ICclbGx1J1xuIgogCQkJCQkJ CSAgIldIRVJFIG9pZCA9ICIsCi0JCQkJCQkJICB0YmluZm8tPmZyb3plbnhpZCwgdGJpbmZvLT5t aW5teGlkKTsKKwkJCQkJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIHRiaW5mby0+ZnJvemVueGlk LAorCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgdGJpbmZvLT5taW5teGlkKTsKIAkJCWFw cGVuZFN0cmluZ0xpdGVyYWxBSChxLCBxdWFscmVsbmFtZSwgZm91dCk7CiAJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxLCAiOjpwZ19jYXRhbG9nLnJlZ2NsYXNzO1xuIik7CiAKQEAgLTE1NTcwLDEw ICsxNTU3MiwxMSBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJ bmZvICp0YmluZm8pCiAJCQkJICovCiAJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIlxuLS0g Rm9yIGJpbmFyeSB1cGdyYWRlLCBzZXQgdG9hc3QncyByZWxmcm96ZW54aWQgYW5kIHJlbG1pbm14 aWRcbiIpOwogCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICJVUERBVEUgcGdfY2F0YWxvZy5wZ19j bGFzc1xuIgotCQkJCQkJCQkgICJTRVQgcmVsZnJvemVueGlkID0gJyV1JywgcmVsbWlubXhpZCA9 ICcldSdcbiIKKwkJCQkJCQkJICAiU0VUIHJlbGZyb3plbnhpZCA9ICclbGx1JywgcmVsbWlubXhp ZCA9ICclbGx1J1xuIgogCQkJCQkJCQkgICJXSEVSRSBvaWQgPSAnJXUnO1xuIiwKLQkJCQkJCQkJ ICB0YmluZm8tPnRvYXN0X2Zyb3plbnhpZCwKLQkJCQkJCQkJICB0YmluZm8tPnRvYXN0X21pbm14 aWQsIHRiaW5mby0+dG9hc3Rfb2lkKTsKKwkJCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSB0 YmluZm8tPnRvYXN0X2Zyb3plbnhpZCwKKwkJCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSB0 YmluZm8tPnRvYXN0X21pbm14aWQsCisJCQkJCQkJCSAgdGJpbmZvLT50b2FzdF9vaWQpOwogCQkJ fQogCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyBi L3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYwppbmRleCBkNDc3MmEyOTY1Li42MjZm MTYwOGJjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKKysr IGIvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5jCkBAIC0xNzgsNyArMTc4LDggQEAg bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJCQlleGl0KDEpOwogCQkJCX0KIAkJCQlp ZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChzZXRfb2xkZXN0X3hpZCkpCi0JCQkJCXBnX2ZhdGFs KCJvbGRlc3QgdHJhbnNhY3Rpb24gSUQgKC11KSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVh bCB0byAldSIsIEZpcnN0Tm9ybWFsVHJhbnNhY3Rpb25JZCk7CisJCQkJCXBnX2ZhdGFsKCJvbGRl c3QgdHJhbnNhY3Rpb24gSUQgKC11KSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAl bGx1IiwKKwkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgRmlyc3ROb3JtYWxUcmFuc2FjdGlv bklkKTsKIAkJCQlicmVhazsKIAogCQkJY2FzZSAneCc6CkBAIC0xOTEsNyArMTkyLDggQEAgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJCQlleGl0KDEpOwogCQkJCX0KIAkJCQlpZiAo IVRyYW5zYWN0aW9uSWRJc05vcm1hbChzZXRfeGlkKSkKLQkJCQkJcGdfZmF0YWwoInRyYW5zYWN0 aW9uIElEICgteCkgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXUiLCBGaXJzdE5v cm1hbFRyYW5zYWN0aW9uSWQpOworCQkJCQlwZ19mYXRhbCgidHJhbnNhY3Rpb24gSUQgKC14KSBt dXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlbGx1IiwKKwkJCQkJCQkgKHVuc2lnbmVk IGxvbmcgbG9uZykgRmlyc3ROb3JtYWxUcmFuc2FjdGlvbklkKTsKIAkJCQlicmVhazsKIAogCQkJ Y2FzZSAnYyc6CkBAIC03MjMsMjkgKzcyNSwyOSBAQCBQcmludENvbnRyb2xWYWx1ZXMoYm9vbCBn dWVzc2VkKQogCQkgICBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5UaGlzVGltZUxpbmVJRCk7 CiAJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3MgZnVsbF9wYWdlX3dyaXRlczogJXNcbiIp LAogCQkgICBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5mdWxsUGFnZVdyaXRlcyA/IF8oIm9u IikgOiBfKCJvZmYiKSk7Ci0JcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dFhJRDog ICAgICAgICAgJXU6JXVcbiIpLAorCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5leHRY SUQ6ICAgICAgICAgICV1OiVsbHVcbiIpLAogCQkgICBFcG9jaEZyb21GdWxsVHJhbnNhY3Rpb25J ZChDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0WGlkKSwKLQkJICAgWGlkRnJvbUZ1bGxU cmFuc2FjdGlvbklkKENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm5leHRYaWQpKTsKKwkJICAg KHVuc2lnbmVkIGxvbmcgbG9uZykgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKENvbnRyb2xGaWxl LmNoZWNrUG9pbnRDb3B5Lm5leHRYaWQpKTsKIAlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQn cyBOZXh0T0lEOiAgICAgICAgICAldVxuIiksCiAJCSAgIENvbnRyb2xGaWxlLmNoZWNrUG9pbnRD b3B5Lm5leHRPaWQpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5leHRNdWx0aVhh Y3RJZDogICV1XG4iKSwKLQkJICAgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHkubmV4dE11bHRp KTsKLQlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBOZXh0TXVsdGlPZmZzZXQ6ICAldVxu IiksCi0JCSAgIENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm5leHRNdWx0aU9mZnNldCk7Ci0J cHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3Mgb2xkZXN0WElEOiAgICAgICAgJXVcbiIpLAot CQkgICBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5vbGRlc3RYaWQpOworCXByaW50ZihfKCJM YXRlc3QgY2hlY2twb2ludCdzIE5leHRNdWx0aVhhY3RJZDogICVsbHVcbiIpLAorCQkgICAodW5z aWduZWQgbG9uZyBsb25nKSBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0TXVsdGkpOwor CXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5leHRNdWx0aU9mZnNldDogICVsbHVcbiIp LAorCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5u ZXh0TXVsdGlPZmZzZXQpOworCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIG9sZGVzdFhJ RDogICAgICAgICVsbHVcbiIpLAorCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250cm9sRmls ZS5jaGVja1BvaW50Q29weS5vbGRlc3RYaWQpOwogCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2lu dCdzIG9sZGVzdFhJRCdzIERCOiAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUuY2hlY2tQb2lu dENvcHkub2xkZXN0WGlkREIpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIG9sZGVz dEFjdGl2ZVhJRDogICV1XG4iKSwKLQkJICAgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHkub2xk ZXN0QWN0aXZlWGlkKTsKLQlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBvbGRlc3RNdWx0 aVhpZDogICAldVxuIiksCi0JCSAgIENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm9sZGVzdE11 bHRpKTsKKwlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBvbGRlc3RBY3RpdmVYSUQ6ICAl bGx1XG4iKSwKKwkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgQ29udHJvbEZpbGUuY2hlY2tQb2lu dENvcHkub2xkZXN0QWN0aXZlWGlkKTsKKwlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBv bGRlc3RNdWx0aVhpZDogICAlbGx1XG4iKSwKKwkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgQ29u dHJvbEZpbGUuY2hlY2tQb2ludENvcHkub2xkZXN0TXVsdGkpOwogCXByaW50ZihfKCJMYXRlc3Qg Y2hlY2twb2ludCdzIG9sZGVzdE11bHRpJ3MgREI6ICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUu Y2hlY2tQb2ludENvcHkub2xkZXN0TXVsdGlEQik7Ci0JcHJpbnRmKF8oIkxhdGVzdCBjaGVja3Bv aW50J3Mgb2xkZXN0Q29tbWl0VHNYaWQ6JXVcbiIpLAotCQkgICBDb250cm9sRmlsZS5jaGVja1Bv aW50Q29weS5vbGRlc3RDb21taXRUc1hpZCk7Ci0JcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50 J3MgbmV3ZXN0Q29tbWl0VHNYaWQ6JXVcbiIpLAotCQkgICBDb250cm9sRmlsZS5jaGVja1BvaW50 Q29weS5uZXdlc3RDb21taXRUc1hpZCk7CisJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3Mg b2xkZXN0Q29tbWl0VHNYaWQ6JWxsdVxuIiksCisJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIENv bnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm9sZGVzdENvbW1pdFRzWGlkKTsKKwlwcmludGYoXygi TGF0ZXN0IGNoZWNrcG9pbnQncyBuZXdlc3RDb21taXRUc1hpZDolbGx1XG4iKSwKKwkJICAgKHVu c2lnbmVkIGxvbmcgbG9uZykgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHkubmV3ZXN0Q29tbWl0 VHNYaWQpOwogCXByaW50ZihfKCJNYXhpbXVtIGRhdGEgYWxpZ25tZW50OiAgICAgICAgICAgICAg ICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUubWF4QWxpZ24pOwogCS8qIHdlIGRvbid0IHByaW50 IGZsb2F0Rm9ybWF0IHNpbmNlIGNhbid0IHNheSBtdWNoIHVzZWZ1bCBhYm91dCBpdCAqLwpAQCAt NzkyLDE4ICs3OTQsMTggQEAgUHJpbnROZXdDb250cm9sVmFsdWVzKHZvaWQpCiAKIAlpZiAoc2V0 X214aWQgIT0gMCkKIAl7Ci0JCXByaW50ZihfKCJOZXh0TXVsdGlYYWN0SWQ6ICAgICAgICAgICAg ICAgICAgICAgICV1XG4iKSwKLQkJCSAgIENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm5leHRN dWx0aSk7Ci0JCXByaW50ZihfKCJPbGRlc3RNdWx0aVhpZDogICAgICAgICAgICAgICAgICAgICAg ICV1XG4iKSwKLQkJCSAgIENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm9sZGVzdE11bHRpKTsK KwkJcHJpbnRmKF8oIk5leHRNdWx0aVhhY3RJZDogICAgICAgICAgICAgICAgICAgICAgJWxsdVxu IiksCisJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250cm9sRmlsZS5jaGVja1BvaW50Q29w eS5uZXh0TXVsdGkpOworCQlwcmludGYoXygiT2xkZXN0TXVsdGlYaWQ6ICAgICAgICAgICAgICAg ICAgICAgICAlbGx1XG4iKSwKKwkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIENvbnRyb2xGaWxl LmNoZWNrUG9pbnRDb3B5Lm9sZGVzdE11bHRpKTsKIAkJcHJpbnRmKF8oIk9sZGVzdE11bHRpJ3Mg REI6ICAgICAgICAgICAgICAgICAgICAgJXVcbiIpLAogCQkJICAgQ29udHJvbEZpbGUuY2hlY2tQ b2ludENvcHkub2xkZXN0TXVsdGlEQik7CiAJfQogCiAJaWYgKHNldF9teG9mZiAhPSAtMSkKIAl7 Ci0JCXByaW50ZihfKCJOZXh0TXVsdGlPZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAgICV1XG4i KSwKLQkJCSAgIENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm5leHRNdWx0aU9mZnNldCk7CisJ CXByaW50ZihfKCJOZXh0TXVsdGlPZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAgICVsbHVcbiIp LAorCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHku bmV4dE11bHRpT2Zmc2V0KTsKIAl9CiAKIAlpZiAoc2V0X29pZCAhPSAwKQpAQCAtODE0LDEwICs4 MTYsMTAgQEAgUHJpbnROZXdDb250cm9sVmFsdWVzKHZvaWQpCiAKIAlpZiAoc2V0X3hpZCAhPSAw KQogCXsKLQkJcHJpbnRmKF8oIk5leHRYSUQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JXVcbiIpLAotCQkJICAgWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKENvbnRyb2xGaWxlLmNoZWNr UG9pbnRDb3B5Lm5leHRYaWQpKTsKLQkJcHJpbnRmKF8oIk9sZGVzdFhJRDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgJXVcbiIpLAotCQkJICAgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHku b2xkZXN0WGlkKTsKKwkJcHJpbnRmKF8oIk5leHRYSUQ6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJWxsdVxuIiksCisJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBYaWRGcm9tRnVsbFRy YW5zYWN0aW9uSWQoQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHkubmV4dFhpZCkpOworCQlwcmlu dGYoXygiT2xkZXN0WElEOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbGx1XG4iKSwKKwkJ CSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm9sZGVz dFhpZCk7CiAJCXByaW50ZihfKCJPbGRlc3RYSUQncyBEQjogICAgICAgICAgICAgICAgICAgICAg ICV1XG4iKSwKIAkJCSAgIENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm9sZGVzdFhpZERCKTsK IAl9CkBAIC04MzAsMTMgKzgzMiwxMyBAQCBQcmludE5ld0NvbnRyb2xWYWx1ZXModm9pZCkKIAog CWlmIChzZXRfb2xkZXN0X2NvbW1pdF90c194aWQgIT0gMCkKIAl7Ci0JCXByaW50ZihfKCJvbGRl c3RDb21taXRUc1hpZDogICAgICAgICAgICAgICAgICAgICV1XG4iKSwKLQkJCSAgIENvbnRyb2xG aWxlLmNoZWNrUG9pbnRDb3B5Lm9sZGVzdENvbW1pdFRzWGlkKTsKKwkJcHJpbnRmKF8oIm9sZGVz dENvbW1pdFRzWGlkOiAgICAgICAgICAgICAgICAgICAgJWxsdVxuIiksCisJCQkgICAodW5zaWdu ZWQgbG9uZyBsb25nKSBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5vbGRlc3RDb21taXRUc1hp ZCk7CiAJfQogCWlmIChzZXRfbmV3ZXN0X2NvbW1pdF90c194aWQgIT0gMCkKIAl7Ci0JCXByaW50 ZihfKCJuZXdlc3RDb21taXRUc1hpZDogICAgICAgICAgICAgICAgICAgICV1XG4iKSwKLQkJCSAg IENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm5ld2VzdENvbW1pdFRzWGlkKTsKKwkJcHJpbnRm KF8oIm5ld2VzdENvbW1pdFRzWGlkOiAgICAgICAgICAgICAgICAgICAgJWxsdVxuIiksCisJCQkg ICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXdlc3RD b21taXRUc1hpZCk7CiAJfQogCiAJaWYgKHNldF93YWxfc2Vnc2l6ZSAhPSAwKQpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9w Z191cGdyYWRlLmMKaW5kZXggZWNiM2UxZjY0Ny4uM2U1ZGI5NjRhYiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdf dXBncmFkZS5jCkBAIC01MzgsMTYgKzUzOCwxOCBAQCBjb3B5X3hhY3RfeGxvZ194aWQodm9pZCkK IAogCXByZXBfc3RhdHVzKCJTZXR0aW5nIG9sZGVzdCBYSUQgZm9yIG5ldyBjbHVzdGVyIik7CiAJ ZXhlY19wcm9nKFVUSUxJVFlfTE9HX0ZJTEUsIE5VTEwsIHRydWUsIHRydWUsCi0JCQkgICJcIiVz L3BnX3Jlc2V0d2FsXCIgLWYgLXUgJXUgXCIlc1wiIiwKLQkJCSAgbmV3X2NsdXN0ZXIuYmluZGly LCBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfb2xkc3R4aWQsCisJCQkgICJcIiVzL3Bn X3Jlc2V0d2FsXCIgLWYgLXUgJWxsdSBcIiVzXCIiLAorCQkJICBuZXdfY2x1c3Rlci5iaW5kaXIs CisJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3Bu dF9vbGRzdHhpZCwKIAkJCSAgbmV3X2NsdXN0ZXIucGdkYXRhKTsKIAljaGVja19vaygpOwogCiAJ Lyogc2V0IHRoZSBuZXh0IHRyYW5zYWN0aW9uIGlkIGFuZCBlcG9jaCBvZiB0aGUgbmV3IGNsdXN0 ZXIgKi8KIAlwcmVwX3N0YXR1cygiU2V0dGluZyBuZXh0IHRyYW5zYWN0aW9uIElEIGFuZCBlcG9j aCBmb3IgbmV3IGNsdXN0ZXIiKTsKIAlleGVjX3Byb2coVVRJTElUWV9MT0dfRklMRSwgTlVMTCwg dHJ1ZSwgdHJ1ZSwKLQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAtZiAteCAldSBcIiVzXCIiLAot CQkJICBuZXdfY2x1c3Rlci5iaW5kaXIsIG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9u eHR4aWQsCisJCQkgICJcIiVzL3BnX3Jlc2V0d2FsXCIgLWYgLXggJWxsdSBcIiVzXCIiLAorCQkJ ICBuZXdfY2x1c3Rlci5iaW5kaXIsCisJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIG9sZF9jbHVz dGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHR4aWQsCiAJCQkgIG5ld19jbHVzdGVyLnBnZGF0YSk7 CiAJZXhlY19wcm9nKFVUSUxJVFlfTE9HX0ZJTEUsIE5VTEwsIHRydWUsIHRydWUsCiAJCQkgICJc IiVzL3BnX3Jlc2V0d2FsXCIgLWYgLWUgJXUgXCIlc1wiIiwKQEAgLTU1NSwxMCArNTU3LDEwIEBA IGNvcHlfeGFjdF94bG9nX3hpZCh2b2lkKQogCQkJICBuZXdfY2x1c3Rlci5wZ2RhdGEpOwogCS8q IG11c3QgcmVzZXQgY29tbWl0IHRpbWVzdGFtcCBsaW1pdHMgYWxzbyAqLwogCWV4ZWNfcHJvZyhV VElMSVRZX0xPR19GSUxFLCBOVUxMLCB0cnVlLCB0cnVlLAotCQkJICAiXCIlcy9wZ19yZXNldHdh bFwiIC1mIC1jICV1LCV1IFwiJXNcIiIsCisJCQkgICJcIiVzL3BnX3Jlc2V0d2FsXCIgLWYgLWMg JWxsdSwlbGx1IFwiJXNcIiIsCiAJCQkgIG5ld19jbHVzdGVyLmJpbmRpciwKLQkJCSAgb2xkX2Ns dXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254dHhpZCwKLQkJCSAgb2xkX2NsdXN0ZXIuY29udHJv bGRhdGEuY2hrcG50X254dHhpZCwKKwkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgb2xkX2NsdXN0 ZXIuY29udHJvbGRhdGEuY2hrcG50X254dHhpZCwKKwkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykg b2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254dHhpZCwKIAkJCSAgbmV3X2NsdXN0ZXIu cGdkYXRhKTsKIAljaGVja19vaygpOwogCkBAIC01ODEsMTEgKzU4MywxMSBAQCBjb3B5X3hhY3Rf eGxvZ194aWQodm9pZCkKIAkJICogY291bnRlcnMgaGVyZSBhbmQgdGhlIG9sZGVzdCBtdWx0aSBw cmVzZW50IG9uIHN5c3RlbS4KIAkJICovCiAJCWV4ZWNfcHJvZyhVVElMSVRZX0xPR19GSUxFLCBO VUxMLCB0cnVlLCB0cnVlLAotCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAtTyAldSAtbSAldSwl dSBcIiVzXCIiLAorCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAtTyAlbGx1IC1tICVsbHUsJWxs dSBcIiVzXCIiLAogCQkJCSAgbmV3X2NsdXN0ZXIuYmluZGlyLAotCQkJCSAgb2xkX2NsdXN0ZXIu Y29udHJvbGRhdGEuY2hrcG50X254dG14b2ZmLAotCQkJCSAgb2xkX2NsdXN0ZXIuY29udHJvbGRh dGEuY2hrcG50X254dG11bHRpLAotCQkJCSAgb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50 X29sZHN0TXVsdGksCisJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBvbGRfY2x1c3Rlci5jb250 cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmYsCisJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBvbGRf Y2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXVsdGksCisJCQkJICAodW5zaWduZWQgbG9u ZyBsb25nKSBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfb2xkc3RNdWx0aSwKIAkJCQkg IG5ld19jbHVzdGVyLnBnZGF0YSk7CiAJCWNoZWNrX29rKCk7CiAJfQpAQCAtNjA5LDEwICs2MTEs MTAgQEAgY29weV94YWN0X3hsb2dfeGlkKHZvaWQpCiAJCSAqIG5leHQ9TWF4TXVsdGlYYWN0SWQs IGJ1dCBtdWx0aXhhY3QuYyBjYW4gY29wZSB3aXRoIHRoYXQganVzdCBmaW5lLgogCQkgKi8KIAkJ ZXhlY19wcm9nKFVUSUxJVFlfTE9HX0ZJTEUsIE5VTEwsIHRydWUsIHRydWUsCi0JCQkJICAiXCIl cy9wZ19yZXNldHdhbFwiIC1tICV1LCV1IFwiJXNcIiIsCisJCQkJICAiXCIlcy9wZ19yZXNldHdh bFwiIC1tICVsbHUsJWxsdSBcIiVzXCIiLAogCQkJCSAgbmV3X2NsdXN0ZXIuYmluZGlyLAotCQkJ CSAgb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254dG11bHRpICsgMSwKLQkJCQkgIG9s ZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRtdWx0aSwKKwkJCQkgICh1bnNpZ25lZCBs b25nIGxvbmcpIG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRtdWx0aSArIDEsCisJ CQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRf bnh0bXVsdGksCiAJCQkJICBuZXdfY2x1c3Rlci5wZ2RhdGEpOwogCQljaGVja19vaygpOwogCX0K QEAgLTY3MSwxNCArNjczLDE0IEBAIHNldF9mcm96ZW54aWRzKGJvb2wgbWlubXhpZF9vbmx5KQog CQkvKiBzZXQgcGdfZGF0YWJhc2UuZGF0ZnJvemVueGlkICovCiAJCVBRY2xlYXIoZXhlY3V0ZVF1 ZXJ5T3JEaWUoY29ubl90ZW1wbGF0ZTEsCiAJCQkJCQkJCSAgIlVQREFURSBwZ19jYXRhbG9nLnBn X2RhdGFiYXNlICIKLQkJCQkJCQkJICAiU0VUCWRhdGZyb3plbnhpZCA9ICcldSciLAotCQkJCQkJ CQkgIG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHR4aWQpKTsKKwkJCQkJCQkJICAi U0VUCWRhdGZyb3plbnhpZCA9ICclbGx1JyIsCisJCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9u Zykgb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254dHhpZCkpOwogCiAJLyogc2V0IHBn X2RhdGFiYXNlLmRhdG1pbm14aWQgKi8KIAlQUWNsZWFyKGV4ZWN1dGVRdWVyeU9yRGllKGNvbm5f dGVtcGxhdGUxLAogCQkJCQkJCSAgIlVQREFURSBwZ19jYXRhbG9nLnBnX2RhdGFiYXNlICIKLQkJ CQkJCQkgICJTRVQJZGF0bWlubXhpZCA9ICcldSciLAotCQkJCQkJCSAgb2xkX2NsdXN0ZXIuY29u dHJvbGRhdGEuY2hrcG50X254dG11bHRpKSk7CisJCQkJCQkJICAiU0VUCWRhdG1pbm14aWQgPSAn JWxsdSciLAorCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgb2xkX2NsdXN0ZXIuY29udHJv bGRhdGEuY2hrcG50X254dG11bHRpKSk7CiAKIAkvKiBnZXQgZGF0YWJhc2UgbmFtZXMgKi8KIAlk YnJlcyA9IGV4ZWN1dGVRdWVyeU9yRGllKGNvbm5fdGVtcGxhdGUxLApAQCAtNzEyLDI0ICs3MTQs MjQgQEAgc2V0X2Zyb3plbnhpZHMoYm9vbCBtaW5teGlkX29ubHkpCiAJCQkvKiBzZXQgcGdfY2xh c3MucmVsZnJvemVueGlkICovCiAJCQlQUWNsZWFyKGV4ZWN1dGVRdWVyeU9yRGllKGNvbm4sCiAJ CQkJCQkJCQkgICJVUERBVEUJcGdfY2F0YWxvZy5wZ19jbGFzcyAiCi0JCQkJCQkJCQkgICJTRVQJ cmVsZnJvemVueGlkID0gJyV1JyAiCisJCQkJCQkJCQkgICJTRVQJcmVsZnJvemVueGlkID0gJyVs bHUnICIKIAkJCS8qIG9ubHkgaGVhcCwgbWF0ZXJpYWxpemVkIHZpZXcsIGFuZCBUT0FTVCBhcmUg dmFjdXVtZWQgKi8KIAkJCQkJCQkJCSAgIldIRVJFCXJlbGtpbmQgSU4gKCIKIAkJCQkJCQkJCSAg Q3BwQXNTdHJpbmcyKFJFTEtJTkRfUkVMQVRJT04pICIsICIKIAkJCQkJCQkJCSAgQ3BwQXNTdHJp bmcyKFJFTEtJTkRfTUFUVklFVykgIiwgIgogCQkJCQkJCQkJICBDcHBBc1N0cmluZzIoUkVMS0lO RF9UT0FTVFZBTFVFKSAiKSIsCi0JCQkJCQkJCQkgIG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNo a3BudF9ueHR4aWQpKTsKKwkJCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgb2xkX2NsdXN0 ZXIuY29udHJvbGRhdGEuY2hrcG50X254dHhpZCkpOwogCiAJCS8qIHNldCBwZ19jbGFzcy5yZWxt aW5teGlkICovCiAJCVBRY2xlYXIoZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwKIAkJCQkJCQkJICAi VVBEQVRFCXBnX2NhdGFsb2cucGdfY2xhc3MgIgotCQkJCQkJCQkgICJTRVQJcmVsbWlubXhpZCA9 ICcldScgIgorCQkJCQkJCQkgICJTRVQJcmVsbWlubXhpZCA9ICclbGx1JyAiCiAJCS8qIG9ubHkg aGVhcCwgbWF0ZXJpYWxpemVkIHZpZXcsIGFuZCBUT0FTVCBhcmUgdmFjdXVtZWQgKi8KIAkJCQkJ CQkJICAiV0hFUkUJcmVsa2luZCBJTiAoIgogCQkJCQkJCQkgIENwcEFzU3RyaW5nMihSRUxLSU5E X1JFTEFUSU9OKSAiLCAiCiAJCQkJCQkJCSAgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfTUFUVklFVykg IiwgIgogCQkJCQkJCQkgIENwcEFzU3RyaW5nMihSRUxLSU5EX1RPQVNUVkFMVUUpICIpIiwKLQkJ CQkJCQkJICBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXVsdGkpKTsKKwkJCQkJ CQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRf bnh0bXVsdGkpKTsKIAkJUFFmaW5pc2goY29ubik7CiAKIAkJLyogUmVzZXQgZGF0YWxsb3djb25u IGZsYWcgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMgYi9z cmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCmluZGV4IDRmMjY1ZWY1NDYuLmNjZjU5ZWQ3 MjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKKysrIGIvc3Jj L2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwpAQCAtNDU1LDEwICs0NTUsMTAgQEAgWExvZ0R1 bXBEaXNwbGF5UmVjb3JkKFhMb2dEdW1wQ29uZmlnICpjb25maWcsIFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCiAJWExvZ1JlY0dldExlbihyZWNvcmQsICZyZWNfbGVuLCAmZnBpX2xlbik7CiAK LQlwcmludGYoInJtZ3I6ICUtMTFzIGxlbiAocmVjL3RvdCk6ICU2dS8lNnUsIHR4OiAlMTB1LCBs c246ICVYLyUwOFgsIHByZXYgJVgvJTA4WCwgIiwKKwlwcmludGYoInJtZ3I6ICUtMTFzIGxlbiAo cmVjL3RvdCk6ICU2dS8lNnUsIHR4OiAlMjBsbHUsIGxzbjogJVgvJTA4WCwgcHJldiAlWC8lMDhY LCAiLAogCQkgICBkZXNjLT5ybV9uYW1lLAogCQkgICByZWNfbGVuLCBYTG9nUmVjR2V0VG90YWxM ZW4ocmVjb3JkKSwKLQkJICAgWExvZ1JlY0dldFhpZChyZWNvcmQpLAorCQkgICAodW5zaWduZWQg bG9uZyBsb25nKSBYTG9nUmVjR2V0WGlkKHJlY29yZCksCiAJCSAgIExTTl9GT1JNQVRfQVJHUyhy ZWNvcmQtPlJlYWRSZWNQdHIpLAogCQkgICBMU05fRk9STUFUX0FSR1MoeGxfcHJldikpOwogCi0t IAoyLjM1LjEKCg== --00000000000006543605dd8e35da--