Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uYUan-006xGo-U6 for pgsql-hackers@arkaria.postgresql.org; Sun, 06 Jul 2025 19:00:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uYUai-00EnhE-Pk for pgsql-hackers@arkaria.postgresql.org; Sun, 06 Jul 2025 18:59:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uYUai-00Enh6-8D for pgsql-hackers@lists.postgresql.org; Sun, 06 Jul 2025 18:59:57 +0000 Received: from mail-yb1-xb29.google.com ([2607:f8b0:4864:20::b29]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uYUae-00669v-1J for pgsql-hackers@lists.postgresql.org; Sun, 06 Jul 2025 18:59:56 +0000 Received: by mail-yb1-xb29.google.com with SMTP id 3f1490d57ef6-e8b3ec5c82eso791769276.0 for ; Sun, 06 Jul 2025 11:59:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751828390; x=1752433190; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=mxlF663Bl26utozs0NE40jFKTvhOl6vBHCA0I9y5oiM=; b=bXU+plTMMQng/i7T2uk5X8mejNYFw+p/lTNj9q+PocIbCt1oktXUWCxiMuJ+3DXZm1 bJLVYodZjKZ21ix3qIEp9ujNT+53qzo62AAAZ8rL0pnquaGv751g15HJjcvcE+76IQi6 PzFRt83lUYqLFqhtjla1saE9TucKO8+5/C4ocFaw1wEB9fvJHDQSROLTzlr86lg+E8I5 FyMnU9Otder3ML7PHUHDq9tBMKe4xiCaACDK4tpvJ8y25z1GoHaknwJhDb4YA5bN1b3l IFK4AtWRT26ZUnMyp7nJ7YKxrGmFz9WSPhFcinrD3NCwCCr4vMRvdBOgSBKcq0CzlBLg aTxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751828390; x=1752433190; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mxlF663Bl26utozs0NE40jFKTvhOl6vBHCA0I9y5oiM=; b=MbYiMJjEBykR4H00Nb2UGAtbYuq6HAoWcvxxwHYVfRzcAeekSqEn0eLfPbCri88yui bQPU3zIHVzM+G/8Z4eu/0oUEaDERZXy0RkyI16lEcylMxh1oX/UFgarSSiGCfY4oZhum hJmWWULMdLxXJuVtGx3DszdB6m4Bq1/jf5JrdZbmdUFKlKF1ol0wXEDaoXHI1s++zVGB PPS3PlW4Bcjrepcl4QbeljzI3I5vZWMb7tKPImrkEaKScZW2fJlvSqE77Wnv61dY5Y6K 38lxwgiD/fkrKH3lEb2NZxflrbWGoTwIiTCpB2a6gVVEwQAk2qWai29krYW2Fne9EVvz wLVQ== X-Gm-Message-State: AOJu0Yx7cEKXrE5yy+duADsW2lpg4m9iZDd6GBHHa+PDBvhsxOD+1h36 SoB/Fvjwpv9gSoTQmT630OvW2U4LfVXwes70dPPgTstXqRXiVWQdtggs8fXGkL0zVPzyLO0HqCP PpqP/vGLP6Y5NAHnkN0rHiQSOL7/YE+F3Ra8V X-Gm-Gg: ASbGncuoe4Pnjbpl4/dhAlhUZLd74Yj3Hi4DfbzcLPGQes0ERnQW2bm8OLXQ7v6Zdne qnKI+xB2kAYHsSCuYO64CcVbtw0pfRK/iOa2UX1ORoo3YC7iL140zJSw7NWU/Caz09Gu7SORz/J BGH54skBwM7kgzjf34FwmdqJNUutl16OaFZjwvEbCLEN+ubGN/iLXWtD0= X-Google-Smtp-Source: AGHT+IHlcxiIwfd+WLBpZDLr0nDETedmp+Bk6Hw5Hv7T6aR6EIucYZj2vnNG+6A8kH/VJeD6EmCkSqygce/vrgMZd70= X-Received: by 2002:a05:690c:8d0d:b0:70e:7e33:fbd6 with SMTP id 00721157ae682-7166b6a2c88mr104241157b3.17.1751828390301; Sun, 06 Jul 2025 11:59:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Arseniy Mukhin Date: Sun, 6 Jul 2025 21:59:39 +0300 X-Gm-Features: Ac12FXxTTQjicgwwGG-D0Zpn3CvbxJhtYayRhfvZ4_pYrE5VrBlqSkcu5GKV78c Message-ID: Subject: Re: amcheck support for BRIN indexes To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000ea00d80639475429" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ea00d80639475429 Content-Type: text/plain; charset="UTF-8" Sorry, forget to run a full test run with the new patch version. Some tests were unhappy with the new unknown support function. Here the new version with the fix. Best regards, Arseniy Mukhin --000000000000ea00d80639475429 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0001-brin-refactoring.patch" Content-Disposition: attachment; filename="v6-0001-brin-refactoring.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mcs1atdx0 RnJvbSBjM2ZjNmUzNjY1ZjY0Nzc4NWNkMTM3YTZmNjA4ZTZlOTc5Y2I1MzdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnNlbml5IE11a2hpbiA8YXJzZW5peS5tdWtoaW4uZGV2QGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAxNiBBcHIgMjAyNSAxMToyNjo0NSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjYgMS81XSBicmluIHJlZmFjdG9yaW5nCgpGb3IgYWRkaW5nIEJSSU4gaW5kZXggc3Vw cG9ydCBpbiBhbWNoZWNrIHdlIG5lZWQgc29tZSB0aW55IGNoYW5nZXMgaW4gQlJJTgpjb3JlIGNv ZGU6CgoqIFdlIG5lZWQgdG8gaGF2ZSB0dXBsZSBkZXNjcmlwdG9yIGZvciBvbi1kaXNrIHN0b3Jh Z2Ugb2YgQlJJTiB0dXBsZXMuCiAgSXQgaXMgYSBwdWJsaWMgZmllbGQgJ2JkX2Rpc2t0ZGVzYycg aW4gQnJpbkRlc2MsIGJ1dCB0byBhY2Nlc3MgaXQgd2UKICBuZWVkIGZ1bmN0aW9uICdicnR1cGxl X2Rpc2tfdHVwZGVzYycgd2hpY2ggaXMgaW50ZXJuYWwuIFRoaXMgY29tbWl0CiAgbWFrZXMgaXQg ZXh0ZXJuLgoKKiBGb3IgbWV0YSBwYWdlIGNoZWNrIHdlIG5lZWQgdG8ga25vdyBwYWdlc19wZXJf cmFuZ2UgdXBwZXIgbGltaXQuIEl0J3MKICBoYXJkY29kZWQgbm93LiBUaGlzIGNvbW1pdCBtb3Zl cyBpdHMgdmFsdWUgdG8gbWFjcm9zIEJSSU5fTUFYX1BBR0VTX1BFUl9SQU5HRQogIHNvIHRoYXQg d2UgY2FuIHVzZSBpdCBpbiBhbWNoZWNrIHRvby4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvYnJp bi9icmluX3R1cGxlLmMgICB8IDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0 aW9ucy5jIHwgMyArKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9icmluLmggICAgICAgICAgICAgIHwg MSArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvYnJpbl90dXBsZS5oICAgICAgICB8IDIgKysKIDQgZmls ZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdHVwbGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9icmluL2JyaW5fdHVwbGUuYwppbmRleCA4NjFmMzk3ZTZkYi4uNGQxZDhkOWFkZGQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdHVwbGUuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvYnJpbi9icmluX3R1cGxlLmMKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIGJyaW5fZGVjb25zdHJ1Y3RfdHVwbGUoQnJpbkRlc2MgKmJyZGVzYywKIC8qCiAg KiBSZXR1cm4gYSB0dXBsZSBkZXNjcmlwdG9yIHVzZWQgZm9yIG9uLWRpc2sgc3RvcmFnZSBvZiBC UklOIHR1cGxlcy4KICAqLwotc3RhdGljIFR1cGxlRGVzYworVHVwbGVEZXNjCiBicnR1cGxlX2Rp c2tfdHVwZGVzYyhCcmluRGVzYyAqYnJkZXNjKQogewogCS8qIFdlIGNhY2hlIHRoZXNlIGluIHRo ZSBCcmluRGVzYyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxv cHRpb25zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYwppbmRleCA1 MDc0N2MxNjM5Ni4uYmM0OTQ4NDczNDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0 aW9ucy5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL2hlYXB0b2FzdC5oIgog I2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvbmJ0cmVl LmgiCisjaW5jbHVkZSAiYWNjZXNzL2JyaW4uaCIKICNpbmNsdWRlICJhY2Nlc3MvcmVsb3B0aW9u cy5oIgogI2luY2x1ZGUgImFjY2Vzcy9zcGdpc3RfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHlwZS5oIgpAQCAtMzQzLDcgKzM0NCw3IEBAIHN0YXRpYyByZWxvcHRfaW50IGludFJl bE9wdHNbXSA9CiAJCQkiTnVtYmVyIG9mIHBhZ2VzIHRoYXQgZWFjaCBwYWdlIHJhbmdlIGNvdmVy cyBpbiBhIEJSSU4gaW5kZXgiLAogCQkJUkVMT1BUX0tJTkRfQlJJTiwKIAkJCUFjY2Vzc0V4Y2x1 c2l2ZUxvY2sKLQkJfSwgMTI4LCAxLCAxMzEwNzIKKwkJfSwgMTI4LCAxLCBCUklOX01BWF9QQUdF U19QRVJfUkFOR0UKIAl9LAogCXsKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L2JyaW4uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9icmluLmgKaW5kZXggODIxZjFlMDI4MDYuLjMz NGNlOTczYjY3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvYnJpbi5oCisrKyBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9icmluLmgKQEAgLTM3LDYgKzM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg QnJpblN0YXRzRGF0YQogCiAKICNkZWZpbmUgQlJJTl9ERUZBVUxUX1BBR0VTX1BFUl9SQU5HRQkx MjgKKyNkZWZpbmUgQlJJTl9NQVhfUEFHRVNfUEVSX1JBTkdFCTEzMTA3MgogI2RlZmluZSBCcmlu R2V0UGFnZXNQZXJSYW5nZShyZWxhdGlvbikgXAogCShBc3NlcnRNYWNybyhyZWxhdGlvbi0+cmRf cmVsLT5yZWxraW5kID09IFJFTEtJTkRfSU5ERVggJiYgXAogCQkJCSByZWxhdGlvbi0+cmRfcmVs LT5yZWxhbSA9PSBCUklOX0FNX09JRCksIFwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9icmluX3R1cGxlLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvYnJpbl90dXBsZS5oCmluZGV4IDAx MGJhNGVhM2MwLi45NDcyY2E2MzhkZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2Jy aW5fdHVwbGUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvYnJpbl90dXBsZS5oCkBAIC0xMDks NCArMTA5LDYgQEAgZXh0ZXJuIEJyaW5NZW1UdXBsZSAqYnJpbl9tZW10dXBsZV9pbml0aWFsaXpl KEJyaW5NZW1UdXBsZSAqZHR1cGxlLAogZXh0ZXJuIEJyaW5NZW1UdXBsZSAqYnJpbl9kZWZvcm1f dHVwbGUoQnJpbkRlc2MgKmJyZGVzYywKIAkJCQkJCQkJCSAgIEJyaW5UdXBsZSAqdHVwbGUsIEJy aW5NZW1UdXBsZSAqZE1lbXR1cGxlKTsKIAorZXh0ZXJuIFR1cGxlRGVzYyBicnR1cGxlX2Rpc2tf dHVwZGVzYyhCcmluRGVzYyAqYnJkZXNjKTsKKwogI2VuZGlmCQkJCQkJCS8qIEJSSU5fVFVQTEVf SCAqLwotLSAKMi40My4wCgo= --000000000000ea00d80639475429 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0003-amcheck-brin_index_check-heap-all-indexed.patch" Content-Disposition: attachment; filename="v6-0003-amcheck-brin_index_check-heap-all-indexed.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mcs1ate32 RnJvbSA5ZTRiZmJkMGM0MzBjZTA5OThkMGI3MzFiZjI3NTZhZjkxZjgwNjU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnNlbml5IE11a2hpbiA8YXJzZW5peS5tdWtoaW4uZGV2QGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAxNiBKdW4gMjAyNSAxODo0MTozNCArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjYgMy81XSBhbWNoZWNrOiBicmluX2luZGV4X2NoZWNrKCkgLSBoZWFwIGFsbCBpbmRl eGVkCgpUaGlzIGNvbW1pdCBleHRlbmRzIGZ1bmN0aW9uYWxpdHkgb2YgYnJpbl9pbmRleF9jaGVj aygpIHdpdGgKaGVhcF9hbGxfY29uc2lzdGVudCBjaGVjazogd2UgdmFsaWRhdGUgZXZlcnkgaW5k ZXggcmFuZ2UgdHVwbGUKYWdhaW5zdCBldmVyeSBoZWFwIHR1cGxlIHdpdGhpbiB0aGUgcmFuZ2Ug dXNpbmcgY29uc2lzdGVudEZuLgpBbHNvLCB3ZSBjaGVjayBoZXJlIHRoYXQgZmllbGRzICdoYXNf bnVsbHMnLCAnYWxsX251bGxzJyBhbmQKJ2VtcHR5X3JhbmdlJyBhcmUgY29uc2lzdGVudCB3aXRo IHRoZSByYW5nZSBoZWFwIGRhdGEuIEl0J3MgdGhlIG1vc3QKZXhwZW5zaXZlIHBhcnQgb2YgdGhl IGJyaW5faW5kZXhfY2hlY2soKSwgc28gaXQncyBvcHRpb25hbC4KLS0tCiBjb250cmliL2FtY2hl Y2svYW1jaGVjay0tMS41LS0xLjYuc3FsICAgfCAgIDYgKy0KIGNvbnRyaWIvYW1jaGVjay9leHBl Y3RlZC9jaGVja19icmluLm91dCB8ICAxOCArLQogY29udHJpYi9hbWNoZWNrL3NxbC9jaGVja19i cmluLnNxbCAgICAgIHwgIDE4ICstCiBjb250cmliL2FtY2hlY2svdC8wMDdfdmVyaWZ5X2JyaW4u cGwgICAgfCAgNTEgKystCiBjb250cmliL2FtY2hlY2svdmVyaWZ5X2JyaW4uYyAgICAgICAgICAg fCA1MDEgKysrKysrKysrKysrKysrKysrKysrKystCiA1IGZpbGVzIGNoYW5nZWQsIDU2MyBpbnNl cnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2sv YW1jaGVjay0tMS41LS0xLjYuc3FsIGIvY29udHJpYi9hbWNoZWNrL2FtY2hlY2stLTEuNS0tMS42 LnNxbAppbmRleCA5ZWMwNDZiYjFjZi4uNjMzN2UwNjViYjEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv YW1jaGVjay9hbWNoZWNrLS0xLjUtLTEuNi5zcWwKKysrIGIvY29udHJpYi9hbWNoZWNrL2FtY2hl Y2stLTEuNS0tMS42LnNxbApAQCAtOCwxMSArOCwxMyBAQAogLS0gYnJpbl9pbmRleF9jaGVjaygp CiAtLQogQ1JFQVRFIEZVTkNUSU9OIGJyaW5faW5kZXhfY2hlY2soaW5kZXggcmVnY2xhc3MsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWd1bGFyX3BhZ2VzX2NoZWNrIGJvb2xl YW4gZGVmYXVsdCBmYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVndWxh cnBhZ2VzY2hlY2sgYm9vbGVhbiBkZWZhdWx0IGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaGVhcGFsbGluZGV4ZWQgYm9vbGVhbiBkZWZhdWx0IGZhbHNlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc2lzdGVudF9vcGVyYXRvcl9uYW1lcyB0ZXh0 W10gZGVmYXVsdCAne30nCiApCiAgICAgUkVUVVJOUyBWT0lECiBBUyAnTU9EVUxFX1BBVEhOQU1F JywgJ2JyaW5faW5kZXhfY2hlY2snCiBMQU5HVUFHRSBDIFNUUklDVCBQQVJBTExFTCBSRVNUUklD VEVEOwogCiAtLSBXZSBkb24ndCB3YW50IHRoaXMgdG8gYmUgYXZhaWxhYmxlIHRvIHB1YmxpYwot UkVWT0tFIEFMTCBPTiBGVU5DVElPTiBicmluX2luZGV4X2NoZWNrKHJlZ2NsYXNzLCBib29sZWFu KSBGUk9NIFBVQkxJQzsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitSRVZPS0UgQUxMIE9O IEZVTkNUSU9OIGJyaW5faW5kZXhfY2hlY2socmVnY2xhc3MsIGJvb2xlYW4sIGJvb2xlYW4sIHRl eHRbXSkgRlJPTSBQVUJMSUM7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2JyaW4ub3V0IGIvY29udHJpYi9hbWNo ZWNrL2V4cGVjdGVkL2NoZWNrX2JyaW4ub3V0CmluZGV4IGJlYmNhOTNkMzJmLi4wYWE5MGRhZmEy MCAxMDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2JyaW4ub3V0Cisr KyBiL2NvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19icmluLm91dApAQCAtNSw3ICs1LDcg QEAgJCQgTEFOR1VBR0Ugc3FsOwogLS0gZW1wdHkgdGFibGUgaW5kZXggc2hvdWxkIGJlIHZhbGlk CiBDUkVBVEUgVEFCTEUgYnJpbnRlc3QgKGEgQklHSU5UKSBXSVRIIChGSUxMRkFDVE9SID0gMTAp OwogQ1JFQVRFIElOREVYIGJyaW50ZXN0X2lkeCBPTiBicmludGVzdCBVU0lORyBCUklOIChhKTsK LVNFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSk7 CitTRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUs IHRydWUpOwogIGJyaW5faW5kZXhfY2hlY2sgCiAtLS0tLS0tLS0tLS0tLS0tLS0KICAKQEAgLTQy LDcgKzQyLDcgQEAgQ1JFQVRFIElOREVYIGJyaW50ZXN0X2lkeCBPTiBicmludGVzdCBVU0lORyBC UklOIChhIGludDhfbWlubWF4X29wcykgV0lUSCAoUEFHRVMKIElOU0VSVCBJTlRPIGJyaW50ZXN0 IChhKSBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDAwMCkgeDsKIC0tIGNyZWF0 ZSBzb21lIGVtcHR5IHJhbmdlcwogREVMRVRFIEZST00gYnJpbnRlc3QgV0hFUkUgYSA+IDIwMDAw IEFORCBhIDwgNDAwMDA7Ci1TRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6 UkVHQ0xBU1MsIHRydWUpOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6 OlJFR0NMQVNTLCB0cnVlLCB0cnVlKTsKICBicmluX2luZGV4X2NoZWNrIAogLS0tLS0tLS0tLS0t LS0tLS0tCiAgCkBAIC01MSw3ICs1MSw3IEBAIFNFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmlu dGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSk7CiAtLSByZWJ1aWxkIGluZGV4CiBEUk9QIElOREVY IGJyaW50ZXN0X2lkeDsKIENSRUFURSBJTkRFWCBicmludGVzdF9pZHggT04gYnJpbnRlc3QgVVNJ TkcgQlJJTiAoYSBpbnQ4X21pbm1heF9vcHMpIFdJVEggKFBBR0VTX1BFUl9SQU5HRSA9IDIpOwot U0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlKTsK K1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSwg dHJ1ZSk7CiAgYnJpbl9pbmRleF9jaGVjayAKIC0tLS0tLS0tLS0tLS0tLS0tLQogIApAQCAtNjUs NyArNjUsNyBAQCBDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0IFVTSU5HIEJS SU4gKGEgaW50OF9taW5tYXhfbXVsdGlfb3BzKSBXSVRICiBJTlNFUlQgSU5UTyBicmludGVzdCAo YSkgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwMDApIHg7CiAtLSBjcmVhdGUg c29tZSBlbXB0eSByYW5nZXMKIERFTEVURSBGUk9NIGJyaW50ZXN0IFdIRVJFIGEgPiAyMDAwMCBB TkQgYSA8IDQwMDAwOwotU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJF R0NMQVNTLCB0cnVlKTsKK1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpS RUdDTEFTUywgdHJ1ZSwgdHJ1ZSk7CiAgYnJpbl9pbmRleF9jaGVjayAKIC0tLS0tLS0tLS0tLS0t LS0tLQogIApAQCAtNzQsNyArNzQsNyBAQCBTRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRl c3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUpOwogLS0gcmVidWlsZCBpbmRleAogRFJPUCBJTkRFWCBi cmludGVzdF9pZHg7CiBDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0IFVTSU5H IEJSSU4gKGEgaW50OF9taW5tYXhfbXVsdGlfb3BzKSBXSVRIIChQQUdFU19QRVJfUkFOR0UgPSAy KTsKLVNFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1 ZSk7CitTRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRy dWUsIHRydWUpOwogIGJyaW5faW5kZXhfY2hlY2sgCiAtLS0tLS0tLS0tLS0tLS0tLS0KICAKQEAg LTg4LDcgKzg4LDcgQEAgQ1JFQVRFIElOREVYIGJyaW50ZXN0X2lkeCBPTiBicmludGVzdCBVU0lO RyBCUklOIChhIGludDhfYmxvb21fb3BzKSBXSVRIIChQQUdFU18KIElOU0VSVCBJTlRPIGJyaW50 ZXN0IChhKSBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDAwMCkgeDsKIC0tIGNy ZWF0ZSBzb21lIGVtcHR5IHJhbmdlcwogREVMRVRFIEZST00gYnJpbnRlc3QgV0hFUkUgYSA+IDIw MDAwIEFORCBhIDwgNDAwMDA7Ci1TRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRlc3RfaWR4 Jzo6UkVHQ0xBU1MsIHRydWUpOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lk eCc6OlJFR0NMQVNTLCB0cnVlLCB0cnVlKTsKICBicmluX2luZGV4X2NoZWNrIAogLS0tLS0tLS0t LS0tLS0tLS0tCiAgCkBAIC05Nyw3ICs5Nyw3IEBAIFNFTEVDVCBicmluX2luZGV4X2NoZWNrKCdi cmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSk7CiAtLSByZWJ1aWxkIGluZGV4CiBEUk9QIElO REVYIGJyaW50ZXN0X2lkeDsKIENSRUFURSBJTkRFWCBicmludGVzdF9pZHggT04gYnJpbnRlc3Qg VVNJTkcgQlJJTiAoYSBpbnQ4X2Jsb29tX29wcykgV0lUSCAoUEFHRVNfUEVSX1JBTkdFID0gMik7 Ci1TRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUp OworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVl LCB0cnVlKTsKICBicmluX2luZGV4X2NoZWNrIAogLS0tLS0tLS0tLS0tLS0tLS0tCiAgCkBAIC0x MTMsNyArMTEzLDcgQEAgU0VMRUNUIEJPWChwb2ludChyYW5kb20oKSAqIDEwMDAsIHJhbmRvbSgp ICogMTAwMCksIHBvaW50KHJhbmRvbSgpICogMTAwMCwgcmFuZG8KIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMDAwKTsKIC0tIGNyZWF0ZSBzb21lIGVtcHR5IHJhbmdlcwogREVMRVRFIEZST00g YnJpbnRlc3QgV0hFUkUgaWQgPiAyMDAwIEFORCBpZCA8IDQwMDA7Ci1TRUxFQ1QgYnJpbl9pbmRl eF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUpOworU0VMRUNUIGJyaW5faW5k ZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlLCB0cnVlLCAneyJAPiJ9Jyk7 CiAgYnJpbl9pbmRleF9jaGVjayAKIC0tLS0tLS0tLS0tLS0tLS0tLQogIApAQCAtMTIyLDcgKzEy Miw3IEBAIFNFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywg dHJ1ZSk7CiAtLSByZWJ1aWxkIGluZGV4CiBEUk9QIElOREVYIGJyaW50ZXN0X2lkeDsKIENSRUFU RSBJTkRFWCBicmludGVzdF9pZHggT04gYnJpbnRlc3QgVVNJTkcgQlJJTiAoYSBCT1hfSU5DTFVT SU9OX09QUykgV0lUSCAoUEFHRVNfUEVSX1JBTkdFID0gMik7Ci1TRUxFQ1QgYnJpbl9pbmRleF9j aGVjaygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUpOworU0VMRUNUIGJyaW5faW5kZXhf Y2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlLCB0cnVlLCAneyJAPiJ9Jyk7CiAg YnJpbl9pbmRleF9jaGVjayAKIC0tLS0tLS0tLS0tLS0tLS0tLQogIApkaWZmIC0tZ2l0IGEvY29u dHJpYi9hbWNoZWNrL3NxbC9jaGVja19icmluLnNxbCBiL2NvbnRyaWIvYW1jaGVjay9zcWwvY2hl Y2tfYnJpbi5zcWwKaW5kZXggMGE1ZTI2ZWE4ZjUuLjBmNTg1NjdmNzZmIDEwMDY0NAotLS0gYS9j b250cmliL2FtY2hlY2svc3FsL2NoZWNrX2JyaW4uc3FsCisrKyBiL2NvbnRyaWIvYW1jaGVjay9z cWwvY2hlY2tfYnJpbi5zcWwKQEAgLTcsNyArNyw3IEBAICQkIExBTkdVQUdFIHNxbDsKIC0tIGVt cHR5IHRhYmxlIGluZGV4IHNob3VsZCBiZSB2YWxpZAogQ1JFQVRFIFRBQkxFIGJyaW50ZXN0IChh IEJJR0lOVCkgV0lUSCAoRklMTEZBQ1RPUiA9IDEwKTsKIENSRUFURSBJTkRFWCBicmludGVzdF9p ZHggT04gYnJpbnRlc3QgVVNJTkcgQlJJTiAoYSk7Ci1TRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygn YnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUpOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2so J2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlLCB0cnVlKTsKIC0tIGNsZWFudXAKIERST1Ag VEFCTEUgYnJpbnRlc3Q7CiAKQEAgLTM1LDEyICszNSwxMiBAQCBDUkVBVEUgSU5ERVggYnJpbnRl c3RfaWR4IE9OIGJyaW50ZXN0IFVTSU5HIEJSSU4gKGEgaW50OF9taW5tYXhfb3BzKSBXSVRIIChQ QUdFUwogSU5TRVJUIElOVE8gYnJpbnRlc3QgKGEpIFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsMTAwMDAwKSB4OwogLS0gY3JlYXRlIHNvbWUgZW1wdHkgcmFuZ2VzCiBERUxFVEUgRlJP TSBicmludGVzdCBXSEVSRSBhID4gMjAwMDAgQU5EIGEgPCA0MDAwMDsKLVNFTEVDVCBicmluX2lu ZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSk7CitTRUxFQ1QgYnJpbl9p bmRleF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUsIHRydWUpOwogCiAtLSBy ZWJ1aWxkIGluZGV4CiBEUk9QIElOREVYIGJyaW50ZXN0X2lkeDsKIENSRUFURSBJTkRFWCBicmlu dGVzdF9pZHggT04gYnJpbnRlc3QgVVNJTkcgQlJJTiAoYSBpbnQ4X21pbm1heF9vcHMpIFdJVEgg KFBBR0VTX1BFUl9SQU5HRSA9IDIpOwotU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0 X2lkeCc6OlJFR0NMQVNTLCB0cnVlKTsKK1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVz dF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSwgdHJ1ZSk7CiAtLSBjbGVhbnVwCiBEUk9QIFRBQkxFIGJy aW50ZXN0OwogCkBAIC01MiwxMiArNTIsMTIgQEAgQ1JFQVRFIElOREVYIGJyaW50ZXN0X2lkeCBP TiBicmludGVzdCBVU0lORyBCUklOIChhIGludDhfbWlubWF4X211bHRpX29wcykgV0lUSAogSU5T RVJUIElOVE8gYnJpbnRlc3QgKGEpIFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAw MDAwKSB4OwogLS0gY3JlYXRlIHNvbWUgZW1wdHkgcmFuZ2VzCiBERUxFVEUgRlJPTSBicmludGVz dCBXSEVSRSBhID4gMjAwMDAgQU5EIGEgPCA0MDAwMDsKLVNFTEVDVCBicmluX2luZGV4X2NoZWNr KCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSk7CitTRUxFQ1QgYnJpbl9pbmRleF9jaGVj aygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUsIHRydWUpOwogCiAtLSByZWJ1aWxkIGlu ZGV4CiBEUk9QIElOREVYIGJyaW50ZXN0X2lkeDsKIENSRUFURSBJTkRFWCBicmludGVzdF9pZHgg T04gYnJpbnRlc3QgVVNJTkcgQlJJTiAoYSBpbnQ4X21pbm1heF9tdWx0aV9vcHMpIFdJVEggKFBB R0VTX1BFUl9SQU5HRSA9IDIpOwotU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lk eCc6OlJFR0NMQVNTLCB0cnVlKTsKK1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9p ZHgnOjpSRUdDTEFTUywgdHJ1ZSwgdHJ1ZSk7CiAtLSBjbGVhbnVwCiBEUk9QIFRBQkxFIGJyaW50 ZXN0OwogCkBAIC02OSwxMiArNjksMTIgQEAgQ1JFQVRFIElOREVYIGJyaW50ZXN0X2lkeCBPTiBi cmludGVzdCBVU0lORyBCUklOIChhIGludDhfYmxvb21fb3BzKSBXSVRIIChQQUdFU18KIElOU0VS VCBJTlRPIGJyaW50ZXN0IChhKSBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDAw MCkgeDsKIC0tIGNyZWF0ZSBzb21lIGVtcHR5IHJhbmdlcwogREVMRVRFIEZST00gYnJpbnRlc3Qg V0hFUkUgYSA+IDIwMDAwIEFORCBhIDwgNDAwMDA7Ci1TRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygn YnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUpOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2so J2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlLCB0cnVlKTsKIAogLS0gcmVidWlsZCBpbmRl eAogRFJPUCBJTkRFWCBicmludGVzdF9pZHg7CiBDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9O IGJyaW50ZXN0IFVTSU5HIEJSSU4gKGEgaW50OF9ibG9vbV9vcHMpIFdJVEggKFBBR0VTX1BFUl9S QU5HRSA9IDIpOwotU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJFR0NM QVNTLCB0cnVlKTsKK1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdD TEFTUywgdHJ1ZSwgdHJ1ZSk7CiAtLSBjbGVhbnVwCiBEUk9QIFRBQkxFIGJyaW50ZXN0OwogCkBA IC04OCwxMiArODgsMTIgQEAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMDApOwogLS0gY3Jl YXRlIHNvbWUgZW1wdHkgcmFuZ2VzCiBERUxFVEUgRlJPTSBicmludGVzdCBXSEVSRSBpZCA+IDIw MDAgQU5EIGlkIDwgNDAwMDsKIAotU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lk eCc6OlJFR0NMQVNTLCB0cnVlKTsKK1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9p ZHgnOjpSRUdDTEFTUywgdHJ1ZSwgdHJ1ZSwgJ3siQD4ifScpOwogCiAtLSByZWJ1aWxkIGluZGV4 CiBEUk9QIElOREVYIGJyaW50ZXN0X2lkeDsKIENSRUFURSBJTkRFWCBicmludGVzdF9pZHggT04g YnJpbnRlc3QgVVNJTkcgQlJJTiAoYSBCT1hfSU5DTFVTSU9OX09QUykgV0lUSCAoUEFHRVNfUEVS X1JBTkdFID0gMik7Ci1TRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6UkVH Q0xBU1MsIHRydWUpOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJF R0NMQVNTLCB0cnVlLCB0cnVlLCAneyJAPiJ9Jyk7CiAtLSBjbGVhbnVwCiBEUk9QIFRBQkxFIGJy aW50ZXN0OwogCmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2svdC8wMDdfdmVyaWZ5X2JyaW4u cGwgYi9jb250cmliL2FtY2hlY2svdC8wMDdfdmVyaWZ5X2JyaW4ucGwKaW5kZXggMmM2MmI3NmNj NzAuLjUxYmZlZDdlMjczIDEwMDY0NAotLS0gYS9jb250cmliL2FtY2hlY2svdC8wMDdfdmVyaWZ5 X2JyaW4ucGwKKysrIGIvY29udHJpYi9hbWNoZWNrL3QvMDA3X3ZlcmlmeV9icmluLnBsCkBAIC0y MDAsNiArMjAwLDU1IEBAIG15IEB0ZXN0cyA9ICgKICAgICAgICAgICAgIHJldHVybiBxcShJTlNF UlQgSU5UTyAkdGVzdF9zdHJ1Y3QtPnt0YWJsZV9uYW1lfSAoYSkgVkFMVUVTICgnYWFhYWEnKTsp OwogICAgICAgICB9LAogICAgICAgICBleHBlY3RlZCAgID0+IHdyYXAoInJldm1hcCBkb2Vzbid0 IHBvaW50IHRvIGluZGV4IHR1cGxlLiBSYW5nZSBibGtubzogMCwgcmV2bWFwIGl0ZW06ICgxLDAp LCBpbmRleCB0dXBsZTogKDIsMSkiKQorICAgIH0sCisgICAgeworICAgICAgICAjIHJhbmdlIGlz IG1hcmtlZCBhcyBlbXB0eV9yYW5nZSwgYnV0IGhlYXAgaGFzIHNvbWUgZGF0YSBmb3IgdGhlIHJh bmdlCisKKyAgICAgICAgZmluZCAgICAgPT4gcGFjaygnTENDJywgMCwgMHg4OCwgMHgwMyksCisg ICAgICAgIHJlcGxhY2UgID0+IHBhY2soJ0xDQycsIDAsIDB4QTgsIDB4MDEpLAorICAgICAgICBi bGtubyAgICAgID0+IDIsICMgcmVndWxhciBwYWdlCisgICAgICAgIHRhYmxlX2RhdGEgPT4gc3Vi IHsKKyAgICAgICAgICAgIG15ICgkdGVzdF9zdHJ1Y3QpID0gQF87CisgICAgICAgICAgICByZXR1 cm4gcXEoSU5TRVJUIElOVE8gJHRlc3Rfc3RydWN0LT57dGFibGVfbmFtZX0gKGEpIFZBTFVFUyAo bnVsbCk7KTsKKyAgICAgICAgfSwKKyAgICAgICAgZXhwZWN0ZWQgICA9PiB3cmFwKCdyYW5nZSBp cyBtYXJrZWQgYXMgZW1wdHkgYnV0IGNvbnRhaW5zIHF1YWxpZmllZCBsaXZlIHR1cGxlcy4gUmFu Z2UgYmxrbm86IDAsIGhlYXAgdGlkICgwLDEpJykKKyAgICB9LAorICAgIHsKKyAgICAgICAgIyBy YW5nZSBoYXNudWxscyAmIGFsbG51bGxzIGFyZSBmYWxzZSwgYnV0IGhlYXAgY29udGFpbnMgbnVs bCB2YWx1ZXMgZm9yIHRoZSByYW5nZQorCisgICAgICAgIGZpbmQgICAgID0+IHBhY2soJ0xDQycs IDAsIDB4ODgsIDB4MDIpLAorICAgICAgICByZXBsYWNlICA9PiBwYWNrKCdMQ0MnLCAwLCAweDg4 LCAweDAwKSwKKyAgICAgICAgYmxrbm8gICAgICA9PiAyLCAjIHJlZ3VsYXIgcGFnZQorICAgICAg ICB0YWJsZV9kYXRhID0+IHN1YiB7CisgICAgICAgICAgICBteSAoJHRlc3Rfc3RydWN0KSA9IEBf OworICAgICAgICAgICAgcmV0dXJuIHFxKElOU0VSVCBJTlRPICR0ZXN0X3N0cnVjdC0+e3RhYmxl X25hbWV9IChhKSBWQUxVRVMgKG51bGwpLCAoJ2FhYWFhJyk7KTsKKyAgICAgICAgfSwKKyAgICAg ICAgZXhwZWN0ZWQgICA9PiB3cmFwKCdyYW5nZSBoYXNudWxscyBhbmQgYWxsbnVsbHMgYXJlIGZh bHNlLCBidXQgY29udGFpbnMgYSBudWxsIHZhbHVlLiBSYW5nZSBibGtubzogMCwgaGVhcCB0aWQg KDAsMSknKQorICAgIH0sCisgICAgeworICAgICAgICAjIHJhbmdlIGFsbG51bGxzIGlzIHRydWUs IGJ1dCBoZWFwIGNvbnRhaW5zIG5vbi1udWxsIHZhbHVlcyBmb3IgdGhlIHJhbmdlCisKKyAgICAg ICAgZmluZCAgICAgPT4gcGFjaygnTENDJywgMCwgMHg4OCwgMHgwMiksCisgICAgICAgIHJlcGxh Y2UgID0+IHBhY2soJ0xDQycsIDAsIDB4ODgsIDB4MDEpLAorICAgICAgICBibGtubyAgICAgID0+ IDIsICMgcmVndWxhciBwYWdlCisgICAgICAgIHRhYmxlX2RhdGEgPT4gc3ViIHsKKyAgICAgICAg ICAgIG15ICgkdGVzdF9zdHJ1Y3QpID0gQF87CisgICAgICAgICAgICByZXR1cm4gcXEoSU5TRVJU IElOVE8gJHRlc3Rfc3RydWN0LT57dGFibGVfbmFtZX0gKGEpIFZBTFVFUyAobnVsbCksICgnYWFh YWEnKTspOworICAgICAgICB9LAorICAgICAgICBleHBlY3RlZCAgID0+IHdyYXAoJ3JhbmdlIGFs bG51bGxzIGlzIHRydWUsIGJ1dCBjb250YWlucyBub25udWxsIHZhbHVlLiBSYW5nZSBibGtubzog MCwgaGVhcCB0aWQgKDAsMiknKQorICAgIH0sCisgICAgeworICAgICAgICAjIGNvbnNpc3RlbnQg ZnVuY3Rpb24gcmV0dXJuIEZBTFNFIGZvciB0aGUgdmFsaWQgaGVhcCB2YWx1ZQorICAgICAgICAj IHJlcGxhY2UgImNjY2NjIiB3aXRoICJiYmJiYiIgc28gdGhhdCBtaW5fbWF4IGluZGV4IHdhcyB0 b28gbmFycm93CisKKyAgICAgICAgZmluZCAgICAgICA9PiAnY2NjY2MnLAorICAgICAgICByZXBs YWNlICAgID0+ICdiYmJiYicsCisgICAgICAgIGJsa25vICAgICAgPT4gMiwgIyByZWd1bGFyIHBh Z2UKKyAgICAgICAgdGFibGVfZGF0YSA9PiBzdWIgeworICAgICAgICAgICAgbXkgKCR0ZXN0X3N0 cnVjdCkgPSBAXzsKKyAgICAgICAgICAgIHJldHVybiBxcShJTlNFUlQgSU5UTyAkdGVzdF9zdHJ1 Y3QtPnt0YWJsZV9uYW1lfSAoYSkgVkFMVUVTICgnYWFhYWEnKSwgKCdjY2NjYycpOyk7CisgICAg ICAgIH0sCisgICAgICAgIGV4cGVjdGVkICAgPT4gd3JhcCgnaGVhcCB0dXBsZSBpbmNvbnNpc3Rl bnQgd2l0aCBpbmRleC4gUmFuZ2UgYmxrbm86IDAsIGhlYXAgdGlkICgwLDIpJykKICAgICB9CiAp OwogCkBAIC0yNDEsNyArMjkwLDcgQEAgZm9yZWFjaCBteSAkdGVzdF9zdHJ1Y3QgKEB0ZXN0cykg ewogJG5vZGUtPnN0YXJ0OwogCiBmb3JlYWNoIG15ICR0ZXN0X3N0cnVjdCAoQHRlc3RzKSB7Ci0g ICAgbXkgKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVz JywgcXEoU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJyR0ZXN0X3N0cnVjdC0+e2luZGV4X25hbWV9 JywgdHJ1ZSkpKTsKKyAgICBteSAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+ cHNxbCgncG9zdGdyZXMnLCBxcShTRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnJHRlc3Rfc3RydWN0 LT57aW5kZXhfbmFtZX0nLCB0cnVlLCB0cnVlKSkpOwogICAgIGxpa2UoJHN0ZGVyciwgJHRlc3Rf c3RydWN0LT57ZXhwZWN0ZWR9KTsKIH0KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9hbWNoZWNrL3Zl cmlmeV9icmluLmMgYi9jb250cmliL2FtY2hlY2svdmVyaWZ5X2JyaW4uYwppbmRleCAwNGU2NTMx NDc5Ni4uMDFhNjliNjE2Y2MgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfYnJp bi5jCisrKyBiL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfYnJpbi5jCkBAIC0zOCw3ICszOCw5IEBA IHR5cGVkZWYgc3RydWN0IEJyaW5DaGVja1N0YXRlCiAKIAkvKiBDaGVjayBhcmd1bWVudHMgKi8K IAotCWJvb2wJCXJlZ3VsYXJfcGFnZXNfY2hlY2s7CisJYm9vbAkJcmVndWxhcnBhZ2VzY2hlY2s7 CisJYm9vbAkJaGVhcGFsbGluZGV4ZWQ7CisJQXJyYXlUeXBlICAqY29uc2lzdGVudF9vcGVyX25h bWVzOwogCiAJLyogQlJJTiBjaGVjayBjb21tb24gZmllbGRzICovCiAKQEAgLTY3LDYgKzY5LDMw IEBAIHR5cGVkZWYgc3RydWN0IEJyaW5DaGVja1N0YXRlCiAJUGFnZQkJcmVncGFnZTsKIAlPZmZz ZXROdW1iZXIgcmVncGFnZW9mZnNldDsKIAorCS8qIEhlYXAgYWxsIGluZGV4ZWQgY2hlY2sgZmll bGRzICovCisKKwlTdHJpbmcJICAqKm9wZXJhdG9yTmFtZXM7CisJQnJpblJldm1hcCAqcmV2bWFw OworCUJ1ZmZlcgkJYnVmOworCUZtZ3JJbmZvICAgKmNvbnNpc3RlbnRGbjsKKwkvKiBTY2FuIGtl eXMgZm9yIHJlZ3VsYXIgdmFsdWVzICovCisJU2NhbktleSAgICAqbm9ubnVsbF9zazsKKwkvKiBT Y2FuIGtleXMgZm9yIG51bGwgdmFsdWVzICovCisJU2NhbktleSAgICAqaXNudWxsX3NrOworCWRv dWJsZQkJcmFuZ2VfY250OworCS8qIGZpcnN0IGJsb2NrIG9mIHRoZSBuZXh0IHJhbmdlICovCisJ QmxvY2tOdW1iZXIgbmV4dHJhbmdlQmxrOworCisJLyoKKwkgKiBjaGVja2FibGVfcmFuZ2Ugc2hv d3MgaWYgY3VycmVudCByYW5nZSBjb3VsZCBiZSBjaGVja2VkIGFuZCBkdHVwCisJICogY29udGFp bnMgdmFsaWQgaW5kZXggdHVwbGUgZm9yIHRoZSByYW5nZS4gSXQgY291bGQgYmUgZmFsc2UgaWYg dGhlCisJICogY3VycmVudCByYW5nZSBpcyBub3Qgc3VtbWFyaXplZCwgb3IgaXQncyBwbGFjZWhv bGRlciwgb3IgaXQncyBqdXN0IGEKKwkgKiBiZWdpbm5pbmcgb2YgdGhlIGNoZWNrCisJICovCisJ Ym9vbAkJY2hlY2thYmxlX3JhbmdlOworCUJyaW5NZW1UdXBsZSAqZHR1cDsKKwlNZW1vcnlDb250 ZXh0IHJhbmdlQ3R4OworCU1lbW9yeUNvbnRleHQgaGVhcHR1cGxlQ3R4OwogfQkJCUJyaW5DaGVj a1N0YXRlOwogCiBzdGF0aWMgdm9pZCBicmluX2NoZWNrKFJlbGF0aW9uIGlkeHJlbCwgUmVsYXRp b24gaGVhcHJlbCwgdm9pZCAqY2FsbGJhY2tfc3RhdGUsIGJvb2wgcmVhZG9ubHkpOwpAQCAtODcs NiArMTEzLDIzIEBAIHN0YXRpYyBib29sIHJldm1hcF9wb2ludHNfdG9faW5kZXhfdHVwbGUoQnJp bkNoZWNrU3RhdGUgKiBzdGF0ZSk7CiAKIHN0YXRpYyBJdGVtSWQgUGFnZUdldEl0ZW1JZENhcmVm dWwoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSk7CiAKK3N0YXRpYyB2b2lkIGNoZWNrX2hlYXBfYWxs X2luZGV4ZWQoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSk7CisKK3N0YXRpYyB2b2lkIGNoZWNrX2Fu ZF9wcmVwYXJlX29wZXJhdG9yX25hbWVzKEJyaW5DaGVja1N0YXRlICogc3RhdGUpOworCitzdGF0 aWMgdm9pZCBicmluX2NoZWNrX2NhbGxiYWNrKFJlbGF0aW9uIGluZGV4LAorCQkJCQkJCQlJdGVt UG9pbnRlciB0aWQsCisJCQkJCQkJCURhdHVtICp2YWx1ZXMsCisJCQkJCQkJCWJvb2wgKmlzbnVs bCwKKwkJCQkJCQkJYm9vbCB0dXBsZUlzQWxpdmUsCisJCQkJCQkJCXZvaWQgKmJyc3RhdGUpOwor CitzdGF0aWMgdm9pZCBjaGVja19oZWFwX3R1cGxlKEJyaW5DaGVja1N0YXRlICogc3RhdGUsIGNv bnN0IERhdHVtICp2YWx1ZXMsIGNvbnN0IGJvb2wgKm51bGxzLCBJdGVtUG9pbnRlciB0aWQpOwor CitzdGF0aWMgU2NhbktleSBwcmVwYXJlX25vbm51bGxfc2Nhbl9rZXkoY29uc3QgQnJpbkNoZWNr U3RhdGUgKiBzdGF0ZSwgQXR0ck51bWJlciBhdHRubyk7CisKK3N0YXRpYyBTY2FuS2V5IHByZXBh cmVfaXNudWxsX3NjYW5fa2V5KEF0dHJOdW1iZXIgYXR0bm8pOworCiBzdGF0aWMgdm9pZCBicmlu X2NoZWNrX2VyZXBvcnQoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSwgY29uc3QgY2hhciAqZm10KTsK IAogc3RhdGljIHZvaWQgcmV2bWFwX2l0ZW1fZXJlcG9ydChCcmluQ2hlY2tTdGF0ZSAqIHN0YXRl LCBjb25zdCBjaGFyICpmbXQpOwpAQCAtOTUsNiArMTM4LDcgQEAgc3RhdGljIHZvaWQgaW5kZXhf dHVwbGVfZXJlcG9ydChCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlLCBjb25zdCBjaGFyICpmbXQpOwog CiBzdGF0aWMgdm9pZCBpbmRleF90dXBsZV9vbmx5X2VyZXBvcnQoQnJpbkNoZWNrU3RhdGUgKiBz dGF0ZSwgY29uc3QgY2hhciAqZm10KTsKIAorc3RhdGljIHZvaWQgYWxsX2NvbnNpc3RfZXJlcG9y dChjb25zdCBCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlLCBjb25zdCBJdGVtUG9pbnRlckRhdGEgKnRp ZCwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiAKIERhdHVtCiBicmluX2luZGV4X2NoZWNrKFBHX0ZV TkNUSU9OX0FSR1MpCkBAIC0xMDIsNyArMTQ2LDkgQEAgYnJpbl9pbmRleF9jaGVjayhQR19GVU5D VElPTl9BUkdTKQogCU9pZAkJCWluZHJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKIAlCcmluQ2hl Y2tTdGF0ZSAqc3RhdGUgPSBwYWxsb2MwKHNpemVvZihCcmluQ2hlY2tTdGF0ZSkpOwogCi0Jc3Rh dGUtPnJlZ3VsYXJfcGFnZXNfY2hlY2sgPSBQR19HRVRBUkdfQk9PTCgxKTsKKwlzdGF0ZS0+cmVn dWxhcnBhZ2VzY2hlY2sgPSBQR19HRVRBUkdfQk9PTCgxKTsKKwlzdGF0ZS0+aGVhcGFsbGluZGV4 ZWQgPSBQR19HRVRBUkdfQk9PTCgyKTsKKwlzdGF0ZS0+Y29uc2lzdGVudF9vcGVyX25hbWVzID0g UEdfR0VUQVJHX0FSUkFZVFlQRV9QKDMpOwogCiAJYW1jaGVja19sb2NrX3JlbGF0aW9uX2FuZF9j aGVjayhpbmRyZWxpZCwKIAkJCQkJCQkJCUJSSU5fQU1fT0lELApAQCAtMTI3LDkgKzE3MywyMSBA QCBicmluX2NoZWNrKFJlbGF0aW9uIGlkeHJlbCwgUmVsYXRpb24gaGVhcHJlbCwgdm9pZCAqY2Fs bGJhY2tfc3RhdGUsIGJvb2wgcmVhZG9ubAogCXN0YXRlLT5iZGVzYyA9IGJyaW5fYnVpbGRfZGVz YyhpZHhyZWwpOwogCXN0YXRlLT5uYXR0cyA9IHN0YXRlLT5iZGVzYy0+YmRfdHVwZGVzYy0+bmF0 dHM7CiAKKwkvKgorCSAqIFdlIGtub3cgaG93IG1hbnkgYXR0cmlidXRlcyBpbmRleCBoYXMsIHNv IGxldCdzIHByb2Nlc3Mgb3BlcmF0b3IgbmFtZXMKKwkgKiBhcnJheQorCSAqLworCWlmIChzdGF0 ZS0+aGVhcGFsbGluZGV4ZWQpCisJeworCQljaGVja19hbmRfcHJlcGFyZV9vcGVyYXRvcl9uYW1l cyhzdGF0ZSk7CisJfQogCiAJY2hlY2tfYnJpbl9pbmRleF9zdHJ1Y3R1cmUoc3RhdGUpOwogCisJ aWYgKHN0YXRlLT5oZWFwYWxsaW5kZXhlZCkKKwl7CisJCWNoZWNrX2hlYXBfYWxsX2luZGV4ZWQo c3RhdGUpOworCX0KIAogCWJyaW5fZnJlZV9kZXNjKHN0YXRlLT5iZGVzYyk7CiB9CkBAIC0xNjAs OCArMjE4LDEzIEBAIGNoZWNrX2JyaW5faW5kZXhfc3RydWN0dXJlKEJyaW5DaGVja1N0YXRlICog c3RhdGUpCiAJLyogQ2hlY2sgcmV2bWFwIGZpcnN0LCBibG9ja3M6IFsxLCBsYXN0UmV2bWFwUGFn ZV0gKi8KIAljaGVja19yZXZtYXAoc3RhdGUpOwogCi0JLyogQ2hlY2sgcmVndWxhciBwYWdlcywg YmxvY2tzOiBbbGFzdFJldm1hcFBhZ2UgKyAxLCBpZHhuYmxvY2tzXSAqLwotCWNoZWNrX3JlZ3Vs YXJfcGFnZXMoc3RhdGUpOworCisJaWYgKHN0YXRlLT5yZWd1bGFycGFnZXNjaGVjaykKKwl7CisJ CS8qIENoZWNrIHJlZ3VsYXIgcGFnZXMsIGJsb2NrczogW2xhc3RSZXZtYXBQYWdlICsgMSwgaWR4 bmJsb2Nrc10gKi8KKwkJY2hlY2tfcmVndWxhcl9wYWdlcyhzdGF0ZSk7CisJfQorCiB9CiAKIC8q IE1ldGEgcGFnZSBjaGVjayBhbmQgc2F2ZSBzb21lIGRhdGEgZm9yIHRoZSBmdXJ0aGVyIGNoZWNr ICovCkBAIC02MTQsMTEgKzY3Nyw2IEBAIGNoZWNrX3JlZ3VsYXJfcGFnZXMoQnJpbkNoZWNrU3Rh dGUgKiBzdGF0ZSkKIAlSZWFkU3RyZWFtQmxvY2tOdW1iZXJDQiBzdHJlYW1fY2I7CiAJQmxvY2tS YW5nZVJlYWRTdHJlYW1Qcml2YXRlIHN0cmVhbV9kYXRhOwogCi0JaWYgKCFzdGF0ZS0+cmVndWxh cl9wYWdlc19jaGVjaykKLQl7Ci0JCXJldHVybjsKLQl9Ci0KIAkvKiByZXNldCBzdGF0ZSAqLwog CXN0YXRlLT5yZXZtYXBCbGsgPSBJbnZhbGlkQmxvY2tOdW1iZXI7CiAJc3RhdGUtPnJldm1hcGJ1 ZiA9IEludmFsaWRCdWZmZXI7CkBAIC02MjgsNyArNjg2LDYgQEAgY2hlY2tfcmVndWxhcl9wYWdl cyhCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlKQogCXN0YXRlLT5yZWdwYWdlb2Zmc2V0ID0gSW52YWxp ZE9mZnNldE51bWJlcjsKIAlzdGF0ZS0+aWR4bmJsb2NrcyA9IFJlbGF0aW9uR2V0TnVtYmVyT2ZC bG9ja3Moc3RhdGUtPmlkeHJlbCk7CiAKLQogCS8qCiAJICogUHJlcGFyZSBzdHJlYW0gZGF0YSBm b3IgcmVndWxhciBwYWdlcyB3YWxrLiBJdCBpcyBzYWZlIHRvIHVzZSBiYXRjaG1vZGUKIAkgKiBh cyBibG9ja19yYW5nZV9yZWFkX3N0cmVhbV9jYiB0YWtlcyBubyBsb2Nrcy4KQEAgLTc4OCw2ICs4 NDUsNDE0IEBAIFBhZ2VHZXRJdGVtSWRDYXJlZnVsKEJyaW5DaGVja1N0YXRlICogc3RhdGUpCiAJ cmV0dXJuIGl0ZW1pZDsKIH0KIAorLyoKKyAqIENoZWNrIHRoYXQgZXZlcnkgaGVhcCB0dXBsZSBh cmUgY29uc2lzdGVudCB3aXRoIHRoZSBpbmRleC4KKyAqCisgKiBIZXJlIHdlIGdlbmVyYXRlIFNj YW5LZXkgZm9yIGV2ZXJ5IGhlYXAgdHVwbGUgYW5kIHRlc3QgaXQgYWdhaW5zdAorICogYXBwcm9w cmlhdGUgcmFuZ2UgdXNpbmcgY29uc2lzdGVudEZuIChmb3IgU2NhbktleSBnZW5lcmF0aW9uIGxv Z2ljIGxvb2sgJ3ByZXBhcmVfbm9ubnVsbF9zY2FuX2tleScpCisgKgorICogQWxzbywgd2UgY2hl Y2sgdGhhdCBmaWVsZHMgJ2VtcHR5X3JhbmdlJywgJ2FsbF9udWxscycgYW5kICdoYXNfbnVsbHMn CisgKiBhcmUgbm90IHRvbyAibmFycm93IiBmb3IgZWFjaCByYW5nZSwgd2hpY2ggbWVhbnM6Cisg KiAxKSBoYXNfbnVsbHMgPSBmYWxzZSwgYnV0IHdlIHNlZSBudWxsIHZhbHVlIChvbmx5IGZvciBv aV9yZWd1bGFyX251bGxzIGlzIHRydWUpCisgKiAyKSBhbGxfbnVsbHMgPSB0cnVlLCBidXQgd2Ug c2VlIG5vbm51bGwgdmFsdWUuCisgKiAzKSBlbXB0eV9yYW5nZSA9IHRydWUsIGJ1dCB3ZSBzZWUg dHVwbGUgd2l0aGluIHRoZSByYW5nZS4KKyAqCisgKiBXZSB1c2UgYWxsb3dTeW5jID0gZmFsc2Us IGJlY2F1c2UgdGhpcyB3YXkKKyAqIHdlIHByb2Nlc3MgZnVsbCByYW5nZXMgb25lIGJ5IG9uZSBm cm9tIHRoZSBmaXJzdCByYW5nZS4KKyAqIEl0J3Mgbm90IG5lY2Vzc2FyeSwgYnV0IG1ha2VzIHRo ZSBjb2RlIHNpbXBsZXIgYW5kIHRoaXMgd2F5CisgKiB3ZSBuZWVkIHRvIGZldGNoIGV2ZXJ5IGlu ZGV4IHR1cGxlIG9ubHkgb25jZS4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX2hlYXBfYWxsX2lu ZGV4ZWQoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSkKK3sKKwlSZWxhdGlvbglpZHhyZWwgPSBzdGF0 ZS0+aWR4cmVsOworCVJlbGF0aW9uCWhlYXByZWwgPSBzdGF0ZS0+aGVhcHJlbDsKKwlkb3VibGUJ CXJlbHR1cGxlczsKKwlJbmRleEluZm8gICppbmRleEluZm87CisKKwkvKiBoZWFwIGFsbCBpbmRl eGVkIGNoZWNrIGZpZWxkcyBpbml0aWFsaXphdGlvbiAqLworCisJc3RhdGUtPnJldm1hcCA9IGJy aW5SZXZtYXBJbml0aWFsaXplKGlkeHJlbCwgJnN0YXRlLT5wYWdlc1BlclJhbmdlKTsKKwlzdGF0 ZS0+ZHR1cCA9IGJyaW5fbmV3X21lbXR1cGxlKHN0YXRlLT5iZGVzYyk7CisJc3RhdGUtPmNoZWNr YWJsZV9yYW5nZSA9IGZhbHNlOworCXN0YXRlLT5jb25zaXN0ZW50Rm4gPSBwYWxsb2MwX2FycmF5 KEZtZ3JJbmZvLCBzdGF0ZS0+bmF0dHMpOworCXN0YXRlLT5yYW5nZV9jbnQgPSAwOworCS8qIG5l eHQgcmFuZ2UgaXMgdGhlIGZpcnN0IHJhbmdlIGluIHRoZSBiZWdpbm5pbmcgKi8KKwlzdGF0ZS0+ bmV4dHJhbmdlQmxrID0gMDsKKwlzdGF0ZS0+bm9ubnVsbF9zayA9IHBhbGxvYzBfYXJyYXkoU2Nh bktleSwgc3RhdGUtPm5hdHRzKTsKKwlzdGF0ZS0+aXNudWxsX3NrID0gcGFsbG9jMF9hcnJheShT Y2FuS2V5LCBzdGF0ZS0+bmF0dHMpOworCXN0YXRlLT5yYW5nZUN0eCA9IEFsbG9jU2V0Q29udGV4 dENyZWF0ZShDdXJyZW50TWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJCQkJImJyaW4gY2hlY2sgcmFu Z2UgY29udGV4dCIsCisJCQkJCQkJCQkJCUFMTE9DU0VUX0RFRkFVTFRfU0laRVMpOworCXN0YXRl LT5oZWFwdHVwbGVDdHggPSBBbGxvY1NldENvbnRleHRDcmVhdGUoQ3VycmVudE1lbW9yeUNvbnRl eHQsCisJCQkJCQkJCQkJCQkiYnJpbiBjaGVjayB0dXBsZSBjb250ZXh0IiwKKwkJCQkJCQkJCQkJ CUFMTE9DU0VUX0RFRkFVTFRfU0laRVMpOworCisJLyoKKwkgKiBQcmVwYXJlICJub24tbnVsbCIg YW5kICJpc19udWxsIiBzY2FuIGtleXMgYW5kIGNvbnNpc3RlbnQgZm4gZm9yIGVhY2gKKwkgKiBh dHRyaWJ1dGUKKwkgKi8KKwlmb3IgKEF0dHJOdW1iZXIgYXR0bm8gPSAxOyBhdHRubyA8PSBzdGF0 ZS0+bmF0dHM7IGF0dG5vKyspCisJeworCQlGbWdySW5mbyAgICp0bXA7CisKKwkJdG1wID0gaW5k ZXhfZ2V0cHJvY2luZm8oaWR4cmVsLCBhdHRubywgQlJJTl9QUk9DTlVNX0NPTlNJU1RFTlQpOwor CQlmbWdyX2luZm9fY29weSgmc3RhdGUtPmNvbnNpc3RlbnRGblthdHRubyAtIDFdLCB0bXAsIEN1 cnJlbnRNZW1vcnlDb250ZXh0KTsKKworCQlzdGF0ZS0+bm9ubnVsbF9za1thdHRubyAtIDFdID0g cHJlcGFyZV9ub25udWxsX3NjYW5fa2V5KHN0YXRlLCBhdHRubyk7CisJCXN0YXRlLT5pc251bGxf c2tbYXR0bm8gLSAxXSA9IHByZXBhcmVfaXNudWxsX3NjYW5fa2V5KGF0dG5vKTsKKwl9CisKKwlp bmRleEluZm8gPSBCdWlsZEluZGV4SW5mbyhpZHhyZWwpOworCisJLyoKKwkgKiBVc2Ugc25hcHNo b3QgdG8gY2hlY2sgb25seSB0aG9zZSB0dXBsZXMgdGhhdCBhcmUgZ3VhcmFudGVlZCB0byBiZQor CSAqIGluZGV4ZWQgYWxyZWFkeS4gVXNpbmcgU25hcHNob3RBbnkgd291bGQgbWFrZSBpdCBtb3Jl IGRpZmZpY3VsdCB0byBzYXkKKwkgKiBpZiB0aGVyZSBpcyBhIGNvcnJ1cHRpb24gb3IgY2hlY2tl ZCB0dXBsZSBqdXN0IGhhdmVuJ3QgYmVlbiBpbmRleGVkCisJICogeWV0LgorCSAqLworCWluZGV4 SW5mby0+aWlfQ29uY3VycmVudCA9IHRydWU7CisJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVp bGRfc2NhbihoZWFwcmVsLCBpZHhyZWwsIGluZGV4SW5mbywgZmFsc2UsIHRydWUsCisJCQkJCQkJ CQkgICBicmluX2NoZWNrX2NhbGxiYWNrLCAodm9pZCAqKSBzdGF0ZSwgTlVMTCk7CisKKwllbG9n KERFQlVHMywgInJhbmdlcyB3ZXJlIGNoZWNrZWQ6ICVmIiwgc3RhdGUtPnJhbmdlX2NudCk7CisJ ZWxvZyhERUJVRzMsICJzY2FuIHRvdGFsIHR1cGxlczogJWYiLCByZWx0dXBsZXMpOworCisJaWYg KHN0YXRlLT5idWYgIT0gSW52YWxpZEJ1ZmZlcikKKwkJUmVsZWFzZUJ1ZmZlcihzdGF0ZS0+YnVm KTsKKworCWJyaW5SZXZtYXBUZXJtaW5hdGUoc3RhdGUtPnJldm1hcCk7CisJTWVtb3J5Q29udGV4 dERlbGV0ZShzdGF0ZS0+cmFuZ2VDdHgpOworCU1lbW9yeUNvbnRleHREZWxldGUoc3RhdGUtPmhl YXB0dXBsZUN0eCk7Cit9CisKKy8qCisgKiBDaGVjayBvcGVyYXRvciBuYW1lcyBhcnJheSBpbnB1 dCBwYXJhbWV0ZXIgYW5kIGNvbnZlcnQgaXQgdG8gYXJyYXkgb2Ygc3RyaW5ncworICogRW1wdHkg aW5wdXQgYXJyYXkgbWVhbnMgd2UgdXNlICI9IiBvcGVyYXRvciBmb3IgZXZlcnkgYXR0cmlidXRl CisgKi8KK3N0YXRpYyB2b2lkCitjaGVja19hbmRfcHJlcGFyZV9vcGVyYXRvcl9uYW1lcyhCcmlu Q2hlY2tTdGF0ZSAqIHN0YXRlKQoreworCU9pZAkJCWVsZW1lbnRfdHlwZSA9IEFSUl9FTEVNVFlQ RShzdGF0ZS0+Y29uc2lzdGVudF9vcGVyX25hbWVzKTsKKwlpbnQxNgkJdHlwbGVuOworCWJvb2wJ CXR5cGJ5dmFsOworCWNoYXIJCXR5cGFsaWduOworCURhdHVtCSAgICp2YWx1ZXM7CisJYm9vbAkg ICAqZWxlbV9udWxsczsKKwlpbnQJCQludW1fZWxlbXM7CisKKwlzdGF0ZS0+b3BlcmF0b3JOYW1l cyA9IHBhbGxvYyhzaXplb2YoU3RyaW5nKSAqIHN0YXRlLT5uYXR0cyk7CisKKwlnZXRfdHlwbGVu Ynl2YWxhbGlnbihlbGVtZW50X3R5cGUsICZ0eXBsZW4sICZ0eXBieXZhbCwgJnR5cGFsaWduKTsK KwlkZWNvbnN0cnVjdF9hcnJheShzdGF0ZS0+Y29uc2lzdGVudF9vcGVyX25hbWVzLCBlbGVtZW50 X3R5cGUsIHR5cGxlbiwgdHlwYnl2YWwsIHR5cGFsaWduLAorCQkJCQkgICZ2YWx1ZXMsICZlbGVt X251bGxzLCAmbnVtX2VsZW1zKTsKKworCS8qIElmIHdlIGhhdmUgc29tZSBpbnB1dCBjaGVjayBp dCBhbmQgY29udmVydCB0byBTdHJpbmcqKiAqLworCWlmIChudW1fZWxlbXMgIT0gMCkKKwl7CisJ CWlmIChudW1fZWxlbXMgIT0gc3RhdGUtPm5hdHRzKQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJIGVy cm1zZygiT3BlcmF0b3IgbmFtZXMgYXJyYXkgbGVuZ3RoICV1LCBidXQgaW5kZXggaGFzICV1IGF0 dHJpYnV0ZXMiLAorCQkJCQkJCW51bV9lbGVtcywgc3RhdGUtPm5hdHRzKSkpOworCQl9CisKKwkJ Zm9yIChpbnQgaSA9IDA7IGkgPCBudW1fZWxlbXM7IGkrKykKKwkJeworCQkJaWYgKGVsZW1fbnVs bHNbaV0pCisJCQl7CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJIGVycm1zZygiT3BlcmF0b3IgbmFtZXMg YXJyYXkgY29udGFpbnMgTlVMTCIpKSk7CisJCQl9CisJCQlzdGF0ZS0+b3BlcmF0b3JOYW1lc1tp XSA9IG1ha2VTdHJpbmcoVGV4dERhdHVtR2V0Q1N0cmluZyh2YWx1ZXNbaV0pKTsKKwkJfQorCX0K KwllbHNlCisJeworCQkvKiBJZiB0aGVyZSBpcyBubyBpbnB1dCBqdXN0IHVzZSAiPSIgb3BlcmF0 b3IgZm9yIGFsbCBhdHRyaWJ1dGVzICovCisJCWZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGUtPm5h dHRzOyBpKyspCisJCXsKKwkJCXN0YXRlLT5vcGVyYXRvck5hbWVzW2ldID0gbWFrZVN0cmluZygi PSIpOworCQl9CisJfQorfQorCisvKgorICogUHJlcGFyZSBTY2FuS2V5IGZvciBpbmRleCBhdHRy aWJ1dGUuCisgKgorICogQ29uc2lzdGVudEZuIHJlcXVpcmVzIFNjYW5LZXksIHNvIHdlIG5lZWQg dG8gZ2VuZXJhdGUgU2NhbktleSBmb3IgZXZlcnkKKyAqIGF0dHJpYnV0ZSBzb21laG93LiBXZSB3 YW50IFNjYW5LZXkgdGhhdCB3b3VsZCByZXN1bHQgaW4gVFJVRSBmb3IgZXZlcnkgaGVhcAorICog dHVwbGUgd2l0aGluIHRoZSByYW5nZSB3aGVuIHdlIHVzZSBpdHMgaW5kZXhlZCB2YWx1ZSBhcyBz a19hcmd1bWVudC4KKyAqIFRvIGdlbmVyYXRlIHN1Y2ggYSBTY2FuS2V5IHdlIG5lZWQgdG8gZGVm aW5lIHRoZSByaWdodCBvcGVyYW5kIHR5cGUgYW5kIHRoZSBzdHJhdGVneSBudW1iZXIuCisgKiBS aWdodCBvcGVyYW5kIHR5cGUgaXMgYSB0eXBlIG9mIGRhdGEgdGhhdCBpbmRleCBpcyBidWlsdCBv biwgc28gaXQncyAnb3BjaW50eXBlJy4KKyAqIFRoZXJlIGlzIG5vIHN0cmF0ZWd5IG51bWJlciB0 aGF0IHdlIGNhbiBhbHdheXMgdXNlLAorICogYmVjYXVzZSBldmVyeSBvcGNsYXNzIGRlZmluZXMg aXRzIG93biBzZXQgb2Ygb3BlcmF0b3JzIGl0IHN1cHBvcnRzIGFuZCBzdHJhdGVneSBudW1iZXIK KyAqIGZvciB0aGUgc2FtZSBvcGVyYXRvciBjYW4gZGlmZmVyIGZyb20gb3BjbGFzcyB0byBvcGNs YXNzLgorICogU28gdG8gZ2V0IHN0cmF0ZWd5IG51bWJlciB3ZSBsb29rIHVwIGFuIG9wZXJhdG9y IHRoYXQgZ2l2ZXMgdXMgZGVzaXJlZCBiZWhhdmlvcgorICogYW5kIHdoaWNoIGJvdGggb3BlcmFu ZCB0eXBlcyBhcmUgJ29wY2ludHlwZScgYW5kIHRoZW4gcmV0cmlldmUgdGhlIHN0cmF0ZWd5IG51 bWJlciBmb3IgaXQuCisgKiBNb3N0IG9mIHRoZSB0aW1lIHdlIGNhbiB1c2UgJz0nLiBXZSBsZXQg dXNlciBkZWZpbmUgb3BlcmF0b3IgbmFtZSBpbiBjYXNlIG9wY2xhc3MgZG9lc24ndAorICogc3Vw cG9ydCAnPScgb3BlcmF0b3IuIEFsc28sIGlmIHN1Y2ggb3BlcmF0b3IgZG9lc24ndCBleGlzdCwg d2UgY2FuJ3QgcHJvY2VlZCB3aXRoIHRoZSBjaGVjay4KKyAqCisgKiBHZW5lcmF0ZWQgb25jZSwg YW5kIHdpbGwgYmUgcmV1c2VkIGZvciBhbGwgaGVhcCB0dXBsZXMuCisgKiBBcmd1bWVudCBmaWVs ZCB3aWxsIGJlIGZpbGxlZCBmb3IgZXZlcnkgaGVhcCB0dXBsZSBiZWZvcmUKKyAqIGNvbnNpc3Rl bnQgZnVuY3Rpb24gaW52b2NhdGlvbiwgc28gbGVhdmUgaXQgTlVMTCBmb3IgYSB3aGlsZS4KKyAq CisgKi8KK3N0YXRpYyBTY2FuS2V5CitwcmVwYXJlX25vbm51bGxfc2Nhbl9rZXkoY29uc3QgQnJp bkNoZWNrU3RhdGUgKiBzdGF0ZSwgQXR0ck51bWJlciBhdHRubykKK3sKKwlTY2FuS2V5CQlzY2Fu S2V5OworCU9pZAkJCW9wT2lkOworCU9pZAkJCW9wRmFtaWx5T2lkOworCWJvb2wJCWRlZmluZWQ7 CisJU3RyYXRlZ3lOdW1iZXIgc3RyYXRlZ3k7CisJUmVnUHJvY2VkdXJlIG9wUmVnUHJvYzsKKwlM aXN0CSAgICpvcGVyTmFtZUxpc3Q7CisJaW50CQkJYXR0aW5kZXggPSBhdHRubyAtIDE7CisJRm9y bV9wZ19hdHRyaWJ1dGUgYXR0ciA9IFR1cGxlRGVzY0F0dHIoc3RhdGUtPmJkZXNjLT5iZF90dXBk ZXNjLCBhdHRpbmRleCk7CisJT2lkCQkJdHlwZSA9IHN0YXRlLT5pZHhyZWwtPnJkX29wY2ludHlw ZVthdHRpbmRleF07CisJU3RyaW5nCSAgICpvcG5hbWUgPSBzdGF0ZS0+b3BlcmF0b3JOYW1lc1th dHRubyAtIDFdOworCisJb3BGYW1pbHlPaWQgPSBzdGF0ZS0+aWR4cmVsLT5yZF9vcGZhbWlseVth dHRpbmRleF07CisJb3Blck5hbWVMaXN0ID0gbGlzdF9tYWtlMShvcG5hbWUpOworCW9wT2lkID0g T3BlcmF0b3JMb29rdXAob3Blck5hbWVMaXN0LCB0eXBlLCB0eXBlLCAmZGVmaW5lZCk7CisKKwlp ZiAob3BPaWQgPT0gSW52YWxpZE9pZCkKKwl7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfRlVOQ1RJT04pLAorCQkJCSBlcnJtc2coIlRoZXJlIGlzIG5v IG9wZXJhdG9yICVzIGZvciB0eXBlICV1IiwKKwkJCQkJCW9wbmFtZS0+c3ZhbCwgdHlwZSkpKTsK Kwl9CisKKwlzdHJhdGVneSA9IGdldF9vcF9vcGZhbWlseV9zdHJhdGVneShvcE9pZCwgb3BGYW1p bHlPaWQpOworCisJaWYgKHN0cmF0ZWd5ID09IDApCisJeworCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coIm9wZXJh dG9yICVzIGlzIG5vdCBhIG1lbWJlciBvZiBvcGVyYXRvciBmYW1pbHkgXCIlc1wiIiwKKwkJCQkJ CW9wbmFtZS0+c3ZhbCwKKwkJCQkJCWdldF9vcGZhbWlseV9uYW1lKG9wRmFtaWx5T2lkLCBmYWxz ZSkpKSk7CisJfQorCisJb3BSZWdQcm9jID0gZ2V0X29wY29kZShvcE9pZCk7CisJc2NhbktleSA9 IHBhbGxvYzAoc2l6ZW9mKFNjYW5LZXlEYXRhKSk7CisJU2NhbktleUVudHJ5SW5pdGlhbGl6ZSgK KwkJCQkJCSAgIHNjYW5LZXksCisJCQkJCQkgICAwLAorCQkJCQkJICAgYXR0bm8sCisJCQkJCQkg ICBzdHJhdGVneSwKKwkJCQkJCSAgIHR5cGUsCisJCQkJCQkgICBhdHRyLT5hdHRjb2xsYXRpb24s CisJCQkJCQkgICBvcFJlZ1Byb2MsCisJCQkJCQkgICAoRGF0dW0pIE5VTEwKKwkJKTsKKwlwZnJl ZShvcGVyTmFtZUxpc3QpOworCisJcmV0dXJuIHNjYW5LZXk7Cit9CisKK3N0YXRpYyBTY2FuS2V5 CitwcmVwYXJlX2lzbnVsbF9zY2FuX2tleShBdHRyTnVtYmVyIGF0dG5vKQoreworCVNjYW5LZXkJ CXNjYW5LZXk7CisKKwlzY2FuS2V5ID0gcGFsbG9jMChzaXplb2YoU2NhbktleURhdGEpKTsKKwlT Y2FuS2V5RW50cnlJbml0aWFsaXplKHNjYW5LZXksCisJCQkJCQkgICBTS19JU05VTEwgfCBTS19T RUFSQ0hOVUxMLAorCQkJCQkJICAgYXR0bm8sCisJCQkJCQkgICBJbnZhbGlkU3RyYXRlZ3ksCisJ CQkJCQkgICBJbnZhbGlkT2lkLAorCQkJCQkJICAgSW52YWxpZE9pZCwKKwkJCQkJCSAgIEludmFs aWRPaWQsCisJCQkJCQkgICAoRGF0dW0pIDApOworCXJldHVybiBzY2FuS2V5OworfQorCisvKgor ICogV2Ugd2FsayBmcm9tIHRoZSBmaXJzdCByYW5nZSAoYmxrbm8gPSAwKSB0byB0aGUgbGFzdCBh cyB0aGUgc2NhbiBwcm9jZWVkLgorICogRm9yIGV2ZXJ5IGhlYXAgdHVwbGUgd2UgY2hlY2sgaWYg d2UgYXJlIGRvbmUgd2l0aCB0aGUgY3VycmVudCByYW5nZSwgYW5kIHdlIG5lZWQgdG8gbW92ZSBm dXJ0aGVyCisgKiB0byB0aGUgY3VycmVudCBoZWFwIHR1cGxlJ3MgcmFuZ2UuIFdoaWxlIG1vdmlu ZyB0byB0aGUgbmV4dCByYW5nZSB3ZSBjaGVjayB0aGF0IGl0J3Mgbm90IGVtcHR5IChiZWNhdXNl CisgKiB3ZSBoYXZlIGF0IGxlYXN0IG9uZSB0dXBsZSBmb3IgdGhpcyByYW5nZSkuCisgKiBFdmVy eSBoZWFwIHR1cGxlIGFyZSBjaGVja2VkIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmFuZ2Ug aXQgYmVsb25ncyB0by4KKyAqIEluIGNhc2Ugb2YgdW5zdW1tYXJpemVkIHJhbmdlcyBhbmQgcGxh Y2Vob2xkZXJzIHdlIHNraXAgYWxsIGNoZWNrcy4KKyAqCisgKiBXaGlsZSBtb3ZpbmcsIHdlIG1h eSBqdW1wIG92ZXIgc29tZSByYW5nZXMsCisgKiBidXQgaXQncyBva2F5IGJlY2F1c2Ugd2Ugd291 bGQgbm90IGJlIGFibGUgdG8gY2hlY2sgdGhlbSBhbnl3YXkuCisgKiBXZSBhbHNvIGNhbid0IHNh eSB3aGV0aGVyIHNraXBwZWQgcmFuZ2VzIHNob3VsZCBiZSBtYXJrZWQgYXMgZW1wdHkgb3Igbm90 LAorICogc2luY2UgaXQncyBwb3NzaWJsZSB0aGF0IHRoZXJlIHdlcmUgc29tZSB0dXBsZXMgYmVm b3JlIHRoYXQgYXJlIG5vdyBkZWxldGVkLgorICoKKyAqLworc3RhdGljIHZvaWQKK2JyaW5fY2hl Y2tfY2FsbGJhY2soUmVsYXRpb24gaW5kZXgsIEl0ZW1Qb2ludGVyIHRpZCwgRGF0dW0gKnZhbHVl cywgYm9vbCAqaXNudWxsLCBib29sIHR1cGxlSXNBbGl2ZSwgdm9pZCAqYnJzdGF0ZSkKK3sKKwlC cmluQ2hlY2tTdGF0ZSAqc3RhdGU7CisJQmxvY2tOdW1iZXIgaGVhcGJsazsKKworCXN0YXRlID0g KEJyaW5DaGVja1N0YXRlICopIGJyc3RhdGU7CisJaGVhcGJsayA9IEl0ZW1Qb2ludGVyR2V0Qmxv Y2tOdW1iZXIodGlkKTsKKworCS8qIElmIHdlIHdlbnQgYmV5b25kIHRoZSBjdXJyZW50IHJhbmdl IGxldCdzIGZldGNoIG5ldyByYW5nZSAqLworCWlmIChoZWFwYmxrID49IHN0YXRlLT5uZXh0cmFu Z2VCbGspCisJeworCQlCcmluVHVwbGUgICp0dXA7CisJCUJyaW5UdXBsZSAgKnR1cGNvcHkgPSBO VUxMOworCQlNZW1vcnlDb250ZXh0IG9sZEN0eDsKKwkJT2Zmc2V0TnVtYmVyIG9mZjsKKwkJU2l6 ZQkJc2l6ZTsKKwkJU2l6ZQkJYnR1cHN6ID0gMDsKKworCQlNZW1vcnlDb250ZXh0UmVzZXQoc3Rh dGUtPnJhbmdlQ3R4KTsKKwkJb2xkQ3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHN0YXRlLT5y YW5nZUN0eCk7CisKKwkJc3RhdGUtPnJhbmdlX2NudCsrOworCisJCS8qIE1vdmUgdG8gdGhlIHJh bmdlIHRoYXQgY29udGFpbnMgY3VycmVudCBoZWFwIHR1cGxlICovCisJCXR1cCA9IGJyaW5HZXRU dXBsZUZvckhlYXBCbG9jayhzdGF0ZS0+cmV2bWFwLCBoZWFwYmxrLCAmc3RhdGUtPmJ1ZiwKKwkJ CQkJCQkJCSAgICZvZmYsICZzaXplLCBCVUZGRVJfTE9DS19TSEFSRSk7CisKKwkJaWYgKHR1cCkK KwkJeworCQkJdHVwY29weSA9IGJyaW5fY29weV90dXBsZSh0dXAsIHNpemUsIHR1cGNvcHksICZi dHVwc3opOworCQkJTG9ja0J1ZmZlcihzdGF0ZS0+YnVmLCBCVUZGRVJfTE9DS19VTkxPQ0spOwor CQkJc3RhdGUtPmR0dXAgPSBicmluX2RlZm9ybV90dXBsZShzdGF0ZS0+YmRlc2MsIHR1cGNvcHks IHN0YXRlLT5kdHVwKTsKKworCQkJLyogV2UgY2FuJ3QgY2hlY2sgcGxhY2Vob2xkZXIgcmFuZ2Vz ICovCisJCQlzdGF0ZS0+Y2hlY2thYmxlX3JhbmdlID0gIXN0YXRlLT5kdHVwLT5idF9wbGFjZWhv bGRlcjsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIFdlIGNhbid0IGNoZWNrIHVuc3VtbWFyaXpl ZCByYW5nZXMuICovCisJCQlzdGF0ZS0+Y2hlY2thYmxlX3JhbmdlID0gZmFsc2U7CisJCX0KKwor CQkvKgorCQkgKiBVcGRhdGUgbmV4dHJhbmdlQmxrIHNvIHdlIGtub3cgd2hlbiB3ZSBhcmUgZG9u ZSB3aXRoIHRoZSBjdXJyZW50CisJCSAqIHJhbmdlCisJCSAqLworCQlzdGF0ZS0+bmV4dHJhbmdl QmxrID0gKGhlYXBibGsgLyBzdGF0ZS0+cGFnZXNQZXJSYW5nZSArIDEpICogc3RhdGUtPnBhZ2Vz UGVyUmFuZ2U7CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZEN0eCk7CisKKwkJLyogUmFu Z2UgbXVzdCBub3QgYmUgZW1wdHkgKi8KKwkJaWYgKHN0YXRlLT5jaGVja2FibGVfcmFuZ2UgJiYg c3RhdGUtPmR0dXAtPmJ0X2VtcHR5X3JhbmdlKQorCQl7CisJCQlhbGxfY29uc2lzdF9lcmVwb3J0 KHN0YXRlLCB0aWQsICJyYW5nZSBpcyBtYXJrZWQgYXMgZW1wdHkgYnV0IGNvbnRhaW5zIHF1YWxp ZmllZCBsaXZlIHR1cGxlcyIpOworCQl9CisKKwl9CisKKwkvKiBDaGVjayB0dXBsZSBpcyBjb25z aXN0ZW50IHdpdGggdGhlIGluZGV4ICovCisJaWYgKHN0YXRlLT5jaGVja2FibGVfcmFuZ2UpCisJ eworCQljaGVja19oZWFwX3R1cGxlKHN0YXRlLCB2YWx1ZXMsIGlzbnVsbCwgdGlkKTsKKwl9CisK K30KKworLyoKKyAqIFdlIGNoZWNrIGhhc251bGxzIGZsYWdzIGZvciBudWxsIHZhbHVlcyBhbmQg b2lfcmVndWxhcl9udWxscyA9IHRydWUsCisgKiBjaGVjayBhbGxudWxscyBpcyBmYWxzZSBmb3Ig YWxsIG5vbm51bGwgdmFsdWVzIG5vdCBtYXR0ZXIgb2lfcmVndWxhcl9udWxscyBpcyBzZXQgb3Ig bm90LAorICogRm9yIGFsbCBvdGhlciBjYXNlcyB3ZSBjYWxsIGNvbnNpc3RlbnRGbiB3aXRoIGFw cHJvcHJpYXRlIHNjYW5LZXk6CisgKiAtIGZvciBvaV9yZWd1bGFyX251bGxzID0gZmFsc2UgYW5k IG51bGwgdmFsdWVzIHdlIHVzZSAnaXNOdWxsJyBzY2FuS2V5LAorICogLSBmb3Igbm9ubnVsbCB2 YWx1ZXMgd2UgdXNlICdub25udWxsJyBzY2FuS2V5CisgKi8KK3N0YXRpYyB2b2lkCitjaGVja19o ZWFwX3R1cGxlKEJyaW5DaGVja1N0YXRlICogc3RhdGUsIGNvbnN0IERhdHVtICp2YWx1ZXMsIGNv bnN0IGJvb2wgKm51bGxzLCBJdGVtUG9pbnRlciB0aWQpCit7CisJaW50CQkJYXR0aW5kZXg7CisJ QnJpbk1lbVR1cGxlICpkdHVwID0gc3RhdGUtPmR0dXA7CisJQnJpbkRlc2MgICAqYmRlc2MgPSBz dGF0ZS0+YmRlc2M7CisJTWVtb3J5Q29udGV4dCBvbGRDdHg7CisKKwlBc3NlcnQoc3RhdGUtPmNo ZWNrYWJsZV9yYW5nZSk7CisKKwlNZW1vcnlDb250ZXh0UmVzZXQoc3RhdGUtPmhlYXB0dXBsZUN0 eCk7CisJb2xkQ3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHN0YXRlLT5oZWFwdHVwbGVDdHgp OworCisJLyogY2hlY2sgZXZlcnkgaW5kZXggYXR0cmlidXRlICovCisJZm9yIChhdHRpbmRleCA9 IDA7IGF0dGluZGV4IDwgc3RhdGUtPm5hdHRzOyBhdHRpbmRleCsrKQorCXsKKwkJQnJpblZhbHVl cyAqYnZhbDsKKwkJRGF0dW0JCWNvbnNpc3RlbnRGblJlc3VsdDsKKwkJYm9vbAkJY29uc2lzdGVu dDsKKwkJU2NhbktleQkJc2NhbktleTsKKwkJYm9vbAkJb2lfcmVndWxhcl9udWxscyA9IGJkZXNj LT5iZF9pbmZvW2F0dGluZGV4XS0+b2lfcmVndWxhcl9udWxsczsKKworCQlidmFsID0gJmR0dXAt PmJ0X2NvbHVtbnNbYXR0aW5kZXhdOworCisJCWlmIChudWxsc1thdHRpbmRleF0pCisJCXsKKwkJ CS8qCisJCQkgKiBVc2UgaGFzbnVsbHMgZmxhZyBmb3Igb2lfcmVndWxhcl9udWxscyBpcyB0cnVl LiBPdGhlcndpc2UsCisJCQkgKiBkZWxlZ2F0ZSBjaGVjayB0byBjb25zaXN0ZW50Rm4KKwkJCSAq LworCQkJaWYgKG9pX3JlZ3VsYXJfbnVsbHMpCisJCQl7CisJCQkJLyogV2UgaGF2ZSBudWxsIHZh bHVlLCBzbyBoYXNudWxscyBvciBhbGxudWxscyBtdXN0IGJlIHRydWUgKi8KKwkJCQlpZiAoIShi dmFsLT5idl9oYXNudWxscyB8fCBidmFsLT5idl9hbGxudWxscykpCisJCQkJeworCQkJCQlhbGxf Y29uc2lzdF9lcmVwb3J0KHN0YXRlLCB0aWQsICJyYW5nZSBoYXNudWxscyBhbmQgYWxsbnVsbHMg YXJlIGZhbHNlLCBidXQgY29udGFpbnMgYSBudWxsIHZhbHVlIik7CisJCQkJfQorCQkJCWNvbnRp bnVlOworCQkJfQorCisJCQkvKgorCQkJICogSW4gY2FzZSBvZiBudWxsIGFuZCBvaV9yZWd1bGFy X251bGxzID0gZmFsc2Ugd2UgdXNlIGlzTnVsbAorCQkJICogc2NhbktleSBmb3IgaW52b2NhdGlv biBvZiBjb25zaXN0ZW50Rm4KKwkJCSAqLworCQkJc2NhbktleSA9IHN0YXRlLT5pc251bGxfc2tb YXR0aW5kZXhdOworCQl9CisJCWVsc2UKKwkJeworCQkJLyogV2UgaGF2ZSBhIG5vbm51bGwgdmFs dWUsIHNvIGFsbG51bGxzIHNob3VsZCBiZSBmYWxzZSAqLworCQkJaWYgKGJ2YWwtPmJ2X2FsbG51 bGxzKQorCQkJeworCQkJCWFsbF9jb25zaXN0X2VyZXBvcnQoc3RhdGUsIHRpZCwgInJhbmdlIGFs bG51bGxzIGlzIHRydWUsIGJ1dCBjb250YWlucyBub25udWxsIHZhbHVlIik7CisJCQl9CisKKwkJ CS8qIHVzZSAiYXR0ciA9IHZhbHVlIiBzY2FuIGtleSBmb3Igbm9ubnVsbCB2YWx1ZXMgKi8KKwkJ CXNjYW5LZXkgPSBzdGF0ZS0+bm9ubnVsbF9za1thdHRpbmRleF07CisJCQlzY2FuS2V5LT5za19h cmd1bWVudCA9IHZhbHVlc1thdHRpbmRleF07CisJCX0KKworCQkvKiBJZiBvaV9yZWd1bGFyX251 bGxzID0gdHJ1ZSB3ZSBzaG91bGQgbmV2ZXIgZ2V0IHRoZXJlIHdpdGggbnVsbCAqLworCQlBc3Nl cnQoIW9pX3JlZ3VsYXJfbnVsbHMgfHwgIW51bGxzW2F0dGluZGV4XSk7CisKKwkJaWYgKHN0YXRl LT5jb25zaXN0ZW50Rm5bYXR0aW5kZXhdLmZuX25hcmdzID49IDQpCisJCXsKKwkJCWNvbnNpc3Rl bnRGblJlc3VsdCA9IEZ1bmN0aW9uQ2FsbDRDb2xsKCZzdGF0ZS0+Y29uc2lzdGVudEZuW2F0dGlu ZGV4XSwKKwkJCQkJCQkJCQkJCSAgIHN0YXRlLT5pZHhyZWwtPnJkX2luZGNvbGxhdGlvblthdHRp bmRleF0sCisJCQkJCQkJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0oc3RhdGUtPmJkZXNjKSwKKwkJ CQkJCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShidmFsKSwKKwkJCQkJCQkJCQkJCSAgIFBvaW50 ZXJHZXREYXR1bSgmc2NhbktleSksCisJCQkJCQkJCQkJCQkgICBJbnQzMkdldERhdHVtKDEpCisJ CQkJKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWNvbnNpc3RlbnRGblJlc3VsdCA9IEZ1bmN0aW9u Q2FsbDNDb2xsKCZzdGF0ZS0+Y29uc2lzdGVudEZuW2F0dGluZGV4XSwKKwkJCQkJCQkJCQkJCSAg IHN0YXRlLT5pZHhyZWwtPnJkX2luZGNvbGxhdGlvblthdHRpbmRleF0sCisJCQkJCQkJCQkJCQkg ICBQb2ludGVyR2V0RGF0dW0oc3RhdGUtPmJkZXNjKSwKKwkJCQkJCQkJCQkJCSAgIFBvaW50ZXJH ZXREYXR1bShidmFsKSwKKwkJCQkJCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShzY2FuS2V5KQor CQkJCSk7CisJCX0KKworCQljb25zaXN0ZW50ID0gRGF0dW1HZXRCb29sKGNvbnNpc3RlbnRGblJl c3VsdCk7CisKKwkJaWYgKCFjb25zaXN0ZW50KQorCQl7CisJCQlhbGxfY29uc2lzdF9lcmVwb3J0 KHN0YXRlLCB0aWQsICJoZWFwIHR1cGxlIGluY29uc2lzdGVudCB3aXRoIGluZGV4Iik7CisJCX0K KworCX0KKworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRDdHgpOworfQogCiAvKiBSZXBvcnQg d2l0aG91dCBhbnkgYWRkaXRpb25hbCBpbmZvICovCiBzdGF0aWMgdm9pZApAQCAtODUzLDMgKzEz MTgsMTkgQEAgcmV2bWFwX2l0ZW1fZXJlcG9ydChCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlLCBjb25z dCBjaGFyICpmbXQpCiAJCQkJCXN0YXRlLT5yZXZtYXBCbGssCiAJCQkJCXN0YXRlLT5yZXZtYXBp ZHgpKSk7CiB9CisKKy8qIFJlcG9ydCB3aXRoIHJhbmdlIGJsa25vLCBoZWFwIHR1cGxlIGluZm8g Ki8KK3N0YXRpYyB2b2lkCithbGxfY29uc2lzdF9lcmVwb3J0KGNvbnN0IEJyaW5DaGVja1N0YXRl ICogc3RhdGUsIGNvbnN0IEl0ZW1Qb2ludGVyRGF0YSAqdGlkLCBjb25zdCBjaGFyICptZXNzYWdl KQoreworCUFzc2VydChzdGF0ZS0+cmFuZ2VCbGtubyAhPSBJbnZhbGlkQmxvY2tOdW1iZXIpOwor CisJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNPREVfSU5ERVhfQ09SUlVQVEVEKSwK KwkJCSBlcnJtc2coIkluZGV4ICVzIGlzIG5vdCBjb25zaXN0ZW50IHdpdGggdGhlIGhlYXAgLSAl cy4gUmFuZ2UgYmxrbm86ICV1LCBoZWFwIHRpZCAoJXUsJXUpIiwKKwkJCQkJUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUoc3RhdGUtPmlkeHJlbCksCisJCQkJCW1lc3NhZ2UsCisJCQkJCXN0YXRlLT5k dHVwLT5idF9ibGtubywKKwkJCQkJSXRlbVBvaW50ZXJHZXRCbG9ja051bWJlcih0aWQpLAorCQkJ CQlJdGVtUG9pbnRlckdldE9mZnNldE51bWJlcih0aWQpKSkpOworfQotLSAKMi40My4wCgo= --000000000000ea00d80639475429 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0002-amcheck-brin_index_check-index-structure-check.patch" Content-Disposition: attachment; filename="v6-0002-amcheck-brin_index_check-index-structure-check.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mcs1ate21 RnJvbSAwNjhiN2QxNjBjM2RmZjQ5NjUzZjhkMWRiN2JkZjBkZWNjZmQ3YjZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnNlbml5IE11a2hpbiA8YXJzZW5peS5tdWtoaW4uZGV2QGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAxNiBKdW4gMjAyNSAxODoxMToyNyArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjYgMi81XSBhbWNoZWNrOiBicmluX2luZGV4X2NoZWNrKCkgLSBpbmRleCBzdHJ1Y3R1 cmUgY2hlY2sKCkFkZHMgYSBuZXcgZnVuY3Rpb24gYnJpbl9pbmRleF9jaGVjaygpIGZvciB2YWxp ZGF0aW5nIEJSSU4gaW5kZXhlcy4KSXQgaW5jdWRlcyBuZXh0IGNoZWNrczoKLSBtZXRhIHBhZ2Ug Y2hlY2tzCi0gcmV2bWFwIHBvaW50ZXJzIGlzIHZhbGlkIGFuZCBwb2ludHMgdG8gaW5kZXggdHVw bGVzIHdpdGggZXhwZWN0ZWQgcmFuZ2UgYmxrbm8KLSBpbmRleCB0dXBsZXMgaGF2ZSBleHBlY3Rl ZCBmb3JtYXQKLSBzb21lIHNwZWNpYWwgY2hlY2tzIGZvciBlbXB0eV9yYW5nZXMKLSBldmVyeSBp bmRleCB0dXBsZSBoYXMgY29ycmVzcG9uZGluZyByZXZtYXAgaXRlbSB0aGF0IHBvaW50cyB0byBp dCAob3B0aW9uYWwpCi0tLQogY29udHJpYi9hbWNoZWNrL01ha2VmaWxlICAgICAgICAgICAgICAg IHwgICA1ICstCiBjb250cmliL2FtY2hlY2svYW1jaGVjay0tMS41LS0xLjYuc3FsICAgfCAgMTgg KwogY29udHJpYi9hbWNoZWNrL2FtY2hlY2suY29udHJvbCAgICAgICAgIHwgICAyICstCiBjb250 cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnJpbi5vdXQgfCAxMzQgKysrKwogY29udHJpYi9h bWNoZWNrL21lc29uLmJ1aWxkICAgICAgICAgICAgIHwgICA0ICsKIGNvbnRyaWIvYW1jaGVjay9z cWwvY2hlY2tfYnJpbi5zcWwgICAgICB8IDEwMiArKysKIGNvbnRyaWIvYW1jaGVjay90LzAwN192 ZXJpZnlfYnJpbi5wbCAgICB8IDI5MSArKysrKysrKwogY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9i cmluLmMgICAgICAgICAgIHwgODU1ICsrKysrKysrKysrKysrKysrKysrKysrKwogOCBmaWxlcyBj aGFuZ2VkLCAxNDA4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgY29udHJpYi9hbWNoZWNrL2FtY2hlY2stLTEuNS0tMS42LnNxbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGNvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19icmluLm91dAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGNvbnRyaWIvYW1jaGVjay9zcWwvY2hlY2tfYnJpbi5zcWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBjb250cmliL2FtY2hlY2svdC8wMDdfdmVyaWZ5X2JyaW4ucGwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBjb250cmliL2FtY2hlY2svdmVyaWZ5X2JyaW4uYwoKZGlmZiAtLWdpdCBhL2NvbnRy aWIvYW1jaGVjay9NYWtlZmlsZSBiL2NvbnRyaWIvYW1jaGVjay9NYWtlZmlsZQppbmRleCAxYjdh NjNjYmFhNC4uYmRmYjI3NGM4OWMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYW1jaGVjay9NYWtlZmls ZQorKysgYi9jb250cmliL2FtY2hlY2svTWFrZWZpbGUKQEAgLTYsMTEgKzYsMTIgQEAgT0JKUyA9 IFwKIAl2ZXJpZnlfY29tbW9uLm8gXAogCXZlcmlmeV9naW4ubyBcCiAJdmVyaWZ5X2hlYXBhbS5v IFwKLQl2ZXJpZnlfbmJ0cmVlLm8KKwl2ZXJpZnlfbmJ0cmVlLm8gXAorCXZlcmlmeV9icmluLm8K IAogRVhURU5TSU9OID0gYW1jaGVjawogREFUQSA9IGFtY2hlY2stLTEuMi0tMS4zLnNxbCBhbWNo ZWNrLS0xLjEtLTEuMi5zcWwgYW1jaGVjay0tMS4wLS0xLjEuc3FsIGFtY2hlY2stLTEuMC5zcWwg XAotCQlhbWNoZWNrLS0xLjMtLTEuNC5zcWwgYW1jaGVjay0tMS40LS0xLjUuc3FsCisJCWFtY2hl Y2stLTEuMy0tMS40LnNxbCBhbWNoZWNrLS0xLjQtLTEuNS5zcWwgYW1jaGVjay0tMS41LS0xLjYu c3FsCiBQR0ZJTEVERVNDID0gImFtY2hlY2sgLSBmdW5jdGlvbiBmb3IgdmVyaWZ5aW5nIHJlbGF0 aW9uIGludGVncml0eSIKIAogUkVHUkVTUyA9IGNoZWNrIGNoZWNrX2J0cmVlIGNoZWNrX2dpbiBj aGVja19oZWFwCmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2svYW1jaGVjay0tMS41LS0xLjYu c3FsIGIvY29udHJpYi9hbWNoZWNrL2FtY2hlY2stLTEuNS0tMS42LnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWVjMDQ2YmIxY2YKLS0tIC9kZXYvbnVsbAorKysg Yi9jb250cmliL2FtY2hlY2svYW1jaGVjay0tMS41LS0xLjYuc3FsCkBAIC0wLDAgKzEsMTggQEAK Ky8qIGNvbnRyaWIvYW1jaGVjay9hbWNoZWNrLS0xLjUtLTEuNi5zcWwgKi8KKworLS0gY29tcGxh aW4gaWYgc2NyaXB0IGlzIHNvdXJjZWQgaW4gcHNxbCwgcmF0aGVyIHRoYW4gdmlhIENSRUFURSBF WFRFTlNJT04KK1xlY2hvIFVzZSAiQUxURVIgRVhURU5TSU9OIGFtY2hlY2sgVVBEQVRFIFRPICcx LjYnIiB0byBsb2FkIHRoaXMgZmlsZS4gXHF1aXQKKworCistLQorLS0gYnJpbl9pbmRleF9jaGVj aygpCistLQorQ1JFQVRFIEZVTkNUSU9OIGJyaW5faW5kZXhfY2hlY2soaW5kZXggcmVnY2xhc3Ms CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWd1bGFyX3BhZ2VzX2NoZWNrIGJv b2xlYW4gZGVmYXVsdCBmYWxzZQorKQorICAgIFJFVFVSTlMgVk9JRAorQVMgJ01PRFVMRV9QQVRI TkFNRScsICdicmluX2luZGV4X2NoZWNrJworTEFOR1VBR0UgQyBTVFJJQ1QgUEFSQUxMRUwgUkVT VFJJQ1RFRDsKKworLS0gV2UgZG9uJ3Qgd2FudCB0aGlzIHRvIGJlIGF2YWlsYWJsZSB0byBwdWJs aWMKK1JFVk9LRSBBTEwgT04gRlVOQ1RJT04gYnJpbl9pbmRleF9jaGVjayhyZWdjbGFzcywgYm9v bGVhbikgRlJPTSBQVUJMSUM7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvY29udHJpYi9hbWNoZWNrL2FtY2hlY2suY29udHJvbCBiL2NvbnRyaWIvYW1jaGVjay9hbWNo ZWNrLmNvbnRyb2wKaW5kZXggYzhiYTZkN2M5YmMuLjJmMzI5ZWYyY2Y0IDEwMDY0NAotLS0gYS9j b250cmliL2FtY2hlY2svYW1jaGVjay5jb250cm9sCisrKyBiL2NvbnRyaWIvYW1jaGVjay9hbWNo ZWNrLmNvbnRyb2wKQEAgLTEsNSArMSw1IEBACiAjIGFtY2hlY2sgZXh0ZW5zaW9uCiBjb21tZW50 ID0gJ2Z1bmN0aW9ucyBmb3IgdmVyaWZ5aW5nIHJlbGF0aW9uIGludGVncml0eScKLWRlZmF1bHRf dmVyc2lvbiA9ICcxLjUnCitkZWZhdWx0X3ZlcnNpb24gPSAnMS42JwogbW9kdWxlX3BhdGhuYW1l ID0gJyRsaWJkaXIvYW1jaGVjaycKIHJlbG9jYXRhYmxlID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvY29u dHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2JyaW4ub3V0IGIvY29udHJpYi9hbWNoZWNrL2V4 cGVjdGVkL2NoZWNrX2JyaW4ub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5iZWJjYTkzZDMyZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYW1jaGVjay9leHBl Y3RlZC9jaGVja19icmluLm91dApAQCAtMCwwICsxLDEzNCBAQAorLS0gaGVscGVyIGZ1bmMKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OICByYW5kb21fc3RyaW5nKCBJTlQgKSBSRVRVUk5TIFRF WFQgQVMgJCQKK1NFTEVDVCBzdHJpbmdfYWdnKHN1YnN0cmluZygnMDEyMzQ1Njc4OWFiY2RlZmdo aWprbG1ub3BxcnN0dXZ3eHl6JywgY2VpbChyYW5kb20oKSAqIDM2KTo6SU5URUdFUiwgMSksICcn KSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkMSk7CiskJCBMQU5HVUFHRSBzcWw7CistLSBlbXB0 eSB0YWJsZSBpbmRleCBzaG91bGQgYmUgdmFsaWQKK0NSRUFURSBUQUJMRSBicmludGVzdCAoYSBC SUdJTlQpIFdJVEggKEZJTExGQUNUT1IgPSAxMCk7CitDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4 IE9OIGJyaW50ZXN0IFVTSU5HIEJSSU4gKGEpOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2Jy aW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlKTsKKyBicmluX2luZGV4X2NoZWNrIAorLS0tLS0t LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKKy0tIGNsZWFudXAKK0RST1AgVEFCTEUgYnJpbnRl c3Q7CistLSBtdWx0aSBhdHRyaWJ1dGVzIHdpdGggdmFybGVuYSBhdHRyaWJ1dGUgdGVzdAorQ1JF QVRFIFRBQkxFIGJyaW50ZXN0IChpZCBCSUdTRVJJQUwsIGEgVEVYVCkgV0lUSCAoRklMTEZBQ1RP UiA9IDEwKTsKK0NSRUFURSBJTkRFWCBicmludGVzdF9pZHggT04gYnJpbnRlc3QgVVNJTkcgQlJJ TiAoYSBURVhUX21pbm1heF9vcHMsIGlkIGludDhfbWlubWF4X29wcykgV0lUSCAoUEFHRVNfUEVS X1JBTkdFID0gMik7CitJTlNFUlQgSU5UTyBicmludGVzdCAoYSkgU0VMRUNUIHJhbmRvbV9zdHJp bmcoKHggJSAxMDApKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDUwMDApIHg7CistLSBjcmVhdGUg c29tZSBlbXB0eSByYW5nZXMKK0RFTEVURSBGUk9NIGJyaW50ZXN0IFdIRVJFIGlkID4gMjAwMCBB TkQgaWQgPCA0MDAwOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJF R0NMQVNTKTsKKyBicmluX2luZGV4X2NoZWNrIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKKy0tIHJlYnVpbGQgaW5kZXgKK0RST1AgSU5ERVggYnJpbnRlc3RfaWR4OworQ1JFQVRF IElOREVYIGJyaW50ZXN0X2lkeCBPTiBicmludGVzdCBVU0lORyBCUklOIChhIFRFWFRfbWlubWF4 X29wcykgV0lUSCAoUEFHRVNfUEVSX1JBTkdFID0gMik7CitTRUxFQ1QgYnJpbl9pbmRleF9jaGVj aygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MpOworIGJyaW5faW5kZXhfY2hlY2sgCistLS0tLS0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0gY2xlYW51cAorRFJPUCBUQUJMRSBicmludGVz dDsKKy0tIG1pbl9tYXggb3BjbGFzcworQ1JFQVRFIFRBQkxFIGJyaW50ZXN0IChhIEJJR0lOVCkg V0lUSCAoRklMTEZBQ1RPUiA9IDEwKTsKK0NSRUFURSBJTkRFWCBicmludGVzdF9pZHggT04gYnJp bnRlc3QgVVNJTkcgQlJJTiAoYSBpbnQ4X21pbm1heF9vcHMpIFdJVEggKFBBR0VTX1BFUl9SQU5H RSA9IDIpOworSU5TRVJUIElOVE8gYnJpbnRlc3QgKGEpIFNFTEVDVCB4IEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsMTAwMDAwKSB4OworLS0gY3JlYXRlIHNvbWUgZW1wdHkgcmFuZ2VzCitERUxFVEUg RlJPTSBicmludGVzdCBXSEVSRSBhID4gMjAwMDAgQU5EIGEgPCA0MDAwMDsKK1NFTEVDVCBicmlu X2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSk7CisgYnJpbl9pbmRl eF9jaGVjayAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLSByZWJ1aWxkIGlu ZGV4CitEUk9QIElOREVYIGJyaW50ZXN0X2lkeDsKK0NSRUFURSBJTkRFWCBicmludGVzdF9pZHgg T04gYnJpbnRlc3QgVVNJTkcgQlJJTiAoYSBpbnQ4X21pbm1heF9vcHMpIFdJVEggKFBBR0VTX1BF Ul9SQU5HRSA9IDIpOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJF R0NMQVNTLCB0cnVlKTsKKyBicmluX2luZGV4X2NoZWNrIAorLS0tLS0tLS0tLS0tLS0tLS0tCisg CisoMSByb3cpCisKKy0tIGNsZWFudXAKK0RST1AgVEFCTEUgYnJpbnRlc3Q7CistLSBtdWx0aV9t aW5fbWF4IG9wY2xhc3MKK0NSRUFURSBUQUJMRSBicmludGVzdCAoYSBCSUdJTlQpIFdJVEggKEZJ TExGQUNUT1IgPSAxMCk7CitDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0IFVT SU5HIEJSSU4gKGEgaW50OF9taW5tYXhfbXVsdGlfb3BzKSBXSVRIIChQQUdFU19QRVJfUkFOR0Ug PSAyKTsKK0lOU0VSVCBJTlRPIGJyaW50ZXN0IChhKSBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwMDAwMCkgeDsKKy0tIGNyZWF0ZSBzb21lIGVtcHR5IHJhbmdlcworREVMRVRFIEZS T00gYnJpbnRlc3QgV0hFUkUgYSA+IDIwMDAwIEFORCBhIDwgNDAwMDA7CitTRUxFQ1QgYnJpbl9p bmRleF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUpOworIGJyaW5faW5kZXhf Y2hlY2sgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0gcmVidWlsZCBpbmRl eAorRFJPUCBJTkRFWCBicmludGVzdF9pZHg7CitDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9O IGJyaW50ZXN0IFVTSU5HIEJSSU4gKGEgaW50OF9taW5tYXhfbXVsdGlfb3BzKSBXSVRIIChQQUdF U19QRVJfUkFOR0UgPSAyKTsKK1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgn OjpSRUdDTEFTUywgdHJ1ZSk7CisgYnJpbl9pbmRleF9jaGVjayAKKy0tLS0tLS0tLS0tLS0tLS0t LQorIAorKDEgcm93KQorCistLSBjbGVhbnVwCitEUk9QIFRBQkxFIGJyaW50ZXN0OworLS0gYmxv b20gb3BjbGFzcworQ1JFQVRFIFRBQkxFIGJyaW50ZXN0IChhIEJJR0lOVCkgV0lUSCAoRklMTEZB Q1RPUiA9IDEwKTsKK0NSRUFURSBJTkRFWCBicmludGVzdF9pZHggT04gYnJpbnRlc3QgVVNJTkcg QlJJTiAoYSBpbnQ4X2Jsb29tX29wcykgV0lUSCAoUEFHRVNfUEVSX1JBTkdFID0gMik7CitJTlNF UlQgSU5UTyBicmludGVzdCAoYSkgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAw MDApIHg7CistLSBjcmVhdGUgc29tZSBlbXB0eSByYW5nZXMKK0RFTEVURSBGUk9NIGJyaW50ZXN0 IFdIRVJFIGEgPiAyMDAwMCBBTkQgYSA8IDQwMDAwOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2so J2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlKTsKKyBicmluX2luZGV4X2NoZWNrIAorLS0t LS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKKy0tIHJlYnVpbGQgaW5kZXgKK0RST1AgSU5E RVggYnJpbnRlc3RfaWR4OworQ1JFQVRFIElOREVYIGJyaW50ZXN0X2lkeCBPTiBicmludGVzdCBV U0lORyBCUklOIChhIGludDhfYmxvb21fb3BzKSBXSVRIIChQQUdFU19QRVJfUkFOR0UgPSAyKTsK K1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSk7 CisgYnJpbl9pbmRleF9jaGVjayAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCist LSBjbGVhbnVwCitEUk9QIFRBQkxFIGJyaW50ZXN0OworLS0gaW5jbHVzaW9uIG9wY2xhc3MKK0NS RUFURSBUQUJMRSBicmludGVzdCAoaWQgU0VSSUFMIFBSSU1BUlkgS0VZLCBhIEJPWCk7CitDUkVB VEUgSU5ERVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0IFVTSU5HIEJSSU4gKGEgQk9YX0lOQ0xV U0lPTl9PUFMpIFdJVEggKFBBR0VTX1BFUl9SQU5HRSA9IDIpOworSU5TRVJUIElOVE8gYnJpbnRl c3QgKGEpCitTRUxFQ1QgQk9YKHBvaW50KHJhbmRvbSgpICogMTAwMCwgcmFuZG9tKCkgKiAxMDAw KSwgcG9pbnQocmFuZG9tKCkgKiAxMDAwLCByYW5kb20oKSAqIDEwMDApKQorRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMTAwMDApOworLS0gY3JlYXRlIHNvbWUgZW1wdHkgcmFuZ2VzCitERUxFVEUg RlJPTSBicmludGVzdCBXSEVSRSBpZCA+IDIwMDAgQU5EIGlkIDwgNDAwMDsKK1NFTEVDVCBicmlu X2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSk7CisgYnJpbl9pbmRl eF9jaGVjayAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLSByZWJ1aWxkIGlu ZGV4CitEUk9QIElOREVYIGJyaW50ZXN0X2lkeDsKK0NSRUFURSBJTkRFWCBicmludGVzdF9pZHgg T04gYnJpbnRlc3QgVVNJTkcgQlJJTiAoYSBCT1hfSU5DTFVTSU9OX09QUykgV0lUSCAoUEFHRVNf UEVSX1JBTkdFID0gMik7CitTRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6 UkVHQ0xBU1MsIHRydWUpOworIGJyaW5faW5kZXhfY2hlY2sgCistLS0tLS0tLS0tLS0tLS0tLS0K KyAKKygxIHJvdykKKworLS0gY2xlYW51cAorRFJPUCBUQUJMRSBicmludGVzdDsKKy0tIGNsZWFu dXAKK0RST1AgRlVOQ1RJT04gcmFuZG9tX3N0cmluZzsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1j aGVjay9tZXNvbi5idWlsZCBiL2NvbnRyaWIvYW1jaGVjay9tZXNvbi5idWlsZAppbmRleCAxZjBj MzQ3ZWQ1NC4uYmE4MTZjMmZhZjAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYW1jaGVjay9tZXNvbi5i dWlsZAorKysgYi9jb250cmliL2FtY2hlY2svbWVzb24uYnVpbGQKQEAgLTUsNiArNSw3IEBAIGFt Y2hlY2tfc291cmNlcyA9IGZpbGVzKAogICAndmVyaWZ5X2dpbi5jJywKICAgJ3ZlcmlmeV9oZWFw YW0uYycsCiAgICd2ZXJpZnlfbmJ0cmVlLmMnLAorICAndmVyaWZ5X2JyaW4uYycKICkKIAogaWYg aG9zdF9zeXN0ZW0gPT0gJ3dpbmRvd3MnCkBAIC0yNyw2ICsyOCw3IEBAIGluc3RhbGxfZGF0YSgK ICAgJ2FtY2hlY2stLTEuMi0tMS4zLnNxbCcsCiAgICdhbWNoZWNrLS0xLjMtLTEuNC5zcWwnLAog ICAnYW1jaGVjay0tMS40LS0xLjUuc3FsJywKKyAgJ2FtY2hlY2stLTEuNS0tMS42LnNxbCcsCiAg IGt3YXJnczogY29udHJpYl9kYXRhX2FyZ3MsCiApCiAKQEAgLTQwLDYgKzQyLDcgQEAgdGVzdHMg Kz0gewogICAgICAgJ2NoZWNrX2J0cmVlJywKICAgICAgICdjaGVja19naW4nLAogICAgICAgJ2No ZWNrX2hlYXAnLAorICAgICAgJ2NoZWNrX2JyaW4nCiAgICAgXSwKICAgfSwKICAgJ3RhcCc6IHsK QEAgLTUwLDYgKzUzLDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDA0X3ZlcmlmeV9uYnRyZWVf dW5pcXVlLnBsJywKICAgICAgICd0LzAwNV9waXRyLnBsJywKICAgICAgICd0LzAwNl92ZXJpZnlf Z2luLnBsJywKKyAgICAgICd0LzAwN192ZXJpZnlfYnJpbi5wbCcsCiAgICAgXSwKICAgfSwKIH0K ZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay9zcWwvY2hlY2tfYnJpbi5zcWwgYi9jb250cmli L2FtY2hlY2svc3FsL2NoZWNrX2JyaW4uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi4wYTVlMjZlYThmNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYW1jaGVj ay9zcWwvY2hlY2tfYnJpbi5zcWwKQEAgLTAsMCArMSwxMDIgQEAKKy0tIGhlbHBlciBmdW5jCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiAgcmFuZG9tX3N0cmluZyggSU5UICkgUkVUVVJOUyBU RVhUIEFTICQkCitTRUxFQ1Qgc3RyaW5nX2FnZyhzdWJzdHJpbmcoJzAxMjM0NTY3ODlhYmNkZWZn aGlqa2xtbm9wcXJzdHV2d3h5eicsIGNlaWwocmFuZG9tKCkgKiAzNik6OklOVEVHRVIsIDEpLCAn JykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgJDEpOworJCQgTEFOR1VBR0Ugc3FsOworCisKKy0t IGVtcHR5IHRhYmxlIGluZGV4IHNob3VsZCBiZSB2YWxpZAorQ1JFQVRFIFRBQkxFIGJyaW50ZXN0 IChhIEJJR0lOVCkgV0lUSCAoRklMTEZBQ1RPUiA9IDEwKTsKK0NSRUFURSBJTkRFWCBicmludGVz dF9pZHggT04gYnJpbnRlc3QgVVNJTkcgQlJJTiAoYSk7CitTRUxFQ1QgYnJpbl9pbmRleF9jaGVj aygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xBU1MsIHRydWUpOworLS0gY2xlYW51cAorRFJPUCBUQUJM RSBicmludGVzdDsKKworCistLSBtdWx0aSBhdHRyaWJ1dGVzIHdpdGggdmFybGVuYSBhdHRyaWJ1 dGUgdGVzdAorQ1JFQVRFIFRBQkxFIGJyaW50ZXN0IChpZCBCSUdTRVJJQUwsIGEgVEVYVCkgV0lU SCAoRklMTEZBQ1RPUiA9IDEwKTsKK0NSRUFURSBJTkRFWCBicmludGVzdF9pZHggT04gYnJpbnRl c3QgVVNJTkcgQlJJTiAoYSBURVhUX21pbm1heF9vcHMsIGlkIGludDhfbWlubWF4X29wcykgV0lU SCAoUEFHRVNfUEVSX1JBTkdFID0gMik7CitJTlNFUlQgSU5UTyBicmludGVzdCAoYSkgU0VMRUNU IHJhbmRvbV9zdHJpbmcoKHggJSAxMDApKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDUwMDApIHg7 CistLSBjcmVhdGUgc29tZSBlbXB0eSByYW5nZXMKK0RFTEVURSBGUk9NIGJyaW50ZXN0IFdIRVJF IGlkID4gMjAwMCBBTkQgaWQgPCA0MDAwOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50 ZXN0X2lkeCc6OlJFR0NMQVNTKTsKKworLS0gcmVidWlsZCBpbmRleAorRFJPUCBJTkRFWCBicmlu dGVzdF9pZHg7CitDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0IFVTSU5HIEJS SU4gKGEgVEVYVF9taW5tYXhfb3BzKSBXSVRIIChQQUdFU19QRVJfUkFOR0UgPSAyKTsKK1NFTEVD VCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUyk7CistLSBjbGVhbnVw CitEUk9QIFRBQkxFIGJyaW50ZXN0OworCisKKworLS0gbWluX21heCBvcGNsYXNzCitDUkVBVEUg VEFCTEUgYnJpbnRlc3QgKGEgQklHSU5UKSBXSVRIIChGSUxMRkFDVE9SID0gMTApOworQ1JFQVRF IElOREVYIGJyaW50ZXN0X2lkeCBPTiBicmludGVzdCBVU0lORyBCUklOIChhIGludDhfbWlubWF4 X29wcykgV0lUSCAoUEFHRVNfUEVSX1JBTkdFID0gMik7CitJTlNFUlQgSU5UTyBicmludGVzdCAo YSkgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwMDApIHg7CistLSBjcmVhdGUg c29tZSBlbXB0eSByYW5nZXMKK0RFTEVURSBGUk9NIGJyaW50ZXN0IFdIRVJFIGEgPiAyMDAwMCBB TkQgYSA8IDQwMDAwOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJF R0NMQVNTLCB0cnVlKTsKKworLS0gcmVidWlsZCBpbmRleAorRFJPUCBJTkRFWCBicmludGVzdF9p ZHg7CitDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0IFVTSU5HIEJSSU4gKGEg aW50OF9taW5tYXhfb3BzKSBXSVRIIChQQUdFU19QRVJfUkFOR0UgPSAyKTsKK1NFTEVDVCBicmlu X2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSk7CistLSBjbGVhbnVw CitEUk9QIFRBQkxFIGJyaW50ZXN0OworCisKKworLS0gbXVsdGlfbWluX21heCBvcGNsYXNzCitD UkVBVEUgVEFCTEUgYnJpbnRlc3QgKGEgQklHSU5UKSBXSVRIIChGSUxMRkFDVE9SID0gMTApOwor Q1JFQVRFIElOREVYIGJyaW50ZXN0X2lkeCBPTiBicmludGVzdCBVU0lORyBCUklOIChhIGludDhf bWlubWF4X211bHRpX29wcykgV0lUSCAoUEFHRVNfUEVSX1JBTkdFID0gMik7CitJTlNFUlQgSU5U TyBicmludGVzdCAoYSkgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwMDApIHg7 CistLSBjcmVhdGUgc29tZSBlbXB0eSByYW5nZXMKK0RFTEVURSBGUk9NIGJyaW50ZXN0IFdIRVJF IGEgPiAyMDAwMCBBTkQgYSA8IDQwMDAwOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50 ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlKTsKKworLS0gcmVidWlsZCBpbmRleAorRFJPUCBJTkRF WCBicmludGVzdF9pZHg7CitDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0IFVT SU5HIEJSSU4gKGEgaW50OF9taW5tYXhfbXVsdGlfb3BzKSBXSVRIIChQQUdFU19QRVJfUkFOR0Ug PSAyKTsKK1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywg dHJ1ZSk7CistLSBjbGVhbnVwCitEUk9QIFRBQkxFIGJyaW50ZXN0OworCisKKworLS0gYmxvb20g b3BjbGFzcworQ1JFQVRFIFRBQkxFIGJyaW50ZXN0IChhIEJJR0lOVCkgV0lUSCAoRklMTEZBQ1RP UiA9IDEwKTsKK0NSRUFURSBJTkRFWCBicmludGVzdF9pZHggT04gYnJpbnRlc3QgVVNJTkcgQlJJ TiAoYSBpbnQ4X2Jsb29tX29wcykgV0lUSCAoUEFHRVNfUEVSX1JBTkdFID0gMik7CitJTlNFUlQg SU5UTyBicmludGVzdCAoYSkgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwMDAp IHg7CistLSBjcmVhdGUgc29tZSBlbXB0eSByYW5nZXMKK0RFTEVURSBGUk9NIGJyaW50ZXN0IFdI RVJFIGEgPiAyMDAwMCBBTkQgYSA8IDQwMDAwOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2Jy aW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlKTsKKworLS0gcmVidWlsZCBpbmRleAorRFJPUCBJ TkRFWCBicmludGVzdF9pZHg7CitDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0 IFVTSU5HIEJSSU4gKGEgaW50OF9ibG9vbV9vcHMpIFdJVEggKFBBR0VTX1BFUl9SQU5HRSA9IDIp OworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVl KTsKKy0tIGNsZWFudXAKK0RST1AgVEFCTEUgYnJpbnRlc3Q7CisKKworLS0gaW5jbHVzaW9uIG9w Y2xhc3MKK0NSRUFURSBUQUJMRSBicmludGVzdCAoaWQgU0VSSUFMIFBSSU1BUlkgS0VZLCBhIEJP WCk7CitDUkVBVEUgSU5ERVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0IFVTSU5HIEJSSU4gKGEg Qk9YX0lOQ0xVU0lPTl9PUFMpIFdJVEggKFBBR0VTX1BFUl9SQU5HRSA9IDIpOworSU5TRVJUIElO VE8gYnJpbnRlc3QgKGEpCitTRUxFQ1QgQk9YKHBvaW50KHJhbmRvbSgpICogMTAwMCwgcmFuZG9t KCkgKiAxMDAwKSwgcG9pbnQocmFuZG9tKCkgKiAxMDAwLCByYW5kb20oKSAqIDEwMDApKQorRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMDApOworLS0gY3JlYXRlIHNvbWUgZW1wdHkgcmFuZ2Vz CitERUxFVEUgRlJPTSBicmludGVzdCBXSEVSRSBpZCA+IDIwMDAgQU5EIGlkIDwgNDAwMDsKKwor U0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlKTsK KworLS0gcmVidWlsZCBpbmRleAorRFJPUCBJTkRFWCBicmludGVzdF9pZHg7CitDUkVBVEUgSU5E RVggYnJpbnRlc3RfaWR4IE9OIGJyaW50ZXN0IFVTSU5HIEJSSU4gKGEgQk9YX0lOQ0xVU0lPTl9P UFMpIFdJVEggKFBBR0VTX1BFUl9SQU5HRSA9IDIpOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2so J2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlKTsKKy0tIGNsZWFudXAKK0RST1AgVEFCTEUg YnJpbnRlc3Q7CisKKworLS0gY2xlYW51cAorRFJPUCBGVU5DVElPTiByYW5kb21fc3RyaW5nOwpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay90 LzAwN192ZXJpZnlfYnJpbi5wbCBiL2NvbnRyaWIvYW1jaGVjay90LzAwN192ZXJpZnlfYnJpbi5w bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmM2MmI3NmNjNzAKLS0t IC9kZXYvbnVsbAorKysgYi9jb250cmliL2FtY2hlY2svdC8wMDdfdmVyaWZ5X2JyaW4ucGwKQEAg LTAsMCArMSwyOTEgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjUsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3MgRkFUQUwg PT4gJ2FsbCc7CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOworCit1c2UgVGVzdDo6TW9yZTsKKworbXkgJG5vZGU7CitteSAkYmxr c2l6ZTsKK215ICRtZXRhX3BhZ2VfYmxrbm8gPSAwOworCisjCisjIFRlc3Qgc2V0LXVwCisjCisk bm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygndGVzdCcpOworJG5vZGUtPmlu aXQobm9fZGF0YV9jaGVja3N1bXMgPT4gMSk7Ciskbm9kZS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVz cWwuY29uZicsICdhdXRvdmFjdXVtPW9mZicpOworJG5vZGUtPnN0YXJ0OworJGJsa3NpemUgPSBp bnQoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnU0hPVyBibG9ja19zaXplOycpKTsKKyRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgRVhURU5TSU9OIGFtY2hlY2spKTsK KworIyBUZXN0cworbXkgQHRlc3RzID0gKAorICAgIHsKKyAgICAgICAgIyBpbnZhbGlkIG1ldGEg cGFnZSB0eXBlCisKKyAgICAgICAgZmluZCAgICAgPT4gcGFjaygnUycsIDB4RjA5MSksCisgICAg ICAgIHJlcGxhY2UgID0+IHBhY2soJ1MnLCAweEFBQUEpLAorICAgICAgICBibGtubyAgICA9PiAk bWV0YV9wYWdlX2Jsa25vLAorICAgICAgICBleHBlY3RlZCA9PiB3cmFwKCdtZXRhcGFnZSBpcyBj b3JydXB0ZWQnKQorICAgIH0sCisgICAgeworICAgICAgICAjIGludmFsaWQgbWV0YSBwYWdlIG1h Z2ljIHdvcmQKKworICAgICAgICBmaW5kICAgICA9PiBwYWNrKCdMJywgMHhBODEwOUNGQSksCisg ICAgICAgIHJlcGxhY2UgID0+IHBhY2soJ0wnLCAweEJCMTA5Q0ZCKSwKKyAgICAgICAgYmxrbm8g ICAgPT4gJG1ldGFfcGFnZV9ibGtubywKKyAgICAgICAgZXhwZWN0ZWQgPT4gd3JhcCgnbWV0YXBh Z2UgaXMgY29ycnVwdGVkJyksCisgICAgfSwKKyAgICB7CisgICAgICAgICMgaW52YWxpZCBtZXRh IHBhZ2UgaW5kZXggdmVyc2lvbgorCisgICAgICAgIGZpbmQgICAgID0+IHBhY2soJ0wqJywgMHhB ODEwOUNGQSwgMSksCisgICAgICAgIHJlcGxhY2UgID0+IHBhY2soJ0wqJywgMHhBODEwOUNGQSwg MiksCisgICAgICAgIGJsa25vICAgID0+ICRtZXRhX3BhZ2VfYmxrbm8sCisgICAgICAgIGV4cGVj dGVkID0+IHdyYXAoJ21ldGFwYWdlIGlzIGNvcnJ1cHRlZCcpCisgICAgfSwKKyAgICB7CisgICAg ICAgICMgcGFnZXNfcGVyX3JhbmdlIGJlbG93IGxvd2VyIGxpbWl0CisKKyAgICAgICAgZmluZCAg ICAgPT4gcGFjaygnTConLCAweEE4MTA5Q0ZBLCAxLCAxMjgpLAorICAgICAgICByZXBsYWNlICA9 PiBwYWNrKCdMKicsIDB4QTgxMDlDRkEsIDEsIDApLAorICAgICAgICBibGtubyAgICA9PiAkbWV0 YV9wYWdlX2Jsa25vLAorICAgICAgICBleHBlY3RlZCA9PiB3cmFwKCdtZXRhcGFnZSBpcyBjb3Jy dXB0ZWQnKQorICAgIH0sCisgICAgeworICAgICAgICAjIHBhZ2VzX3Blcl9yYW5nZSBhYm92ZSB1 cHBlciBsaW1pdAorCisgICAgICAgIGZpbmQgICAgID0+IHBhY2soJ0wqJywgMHhBODEwOUNGQSwg MSwgMTI4KSwKKyAgICAgICAgcmVwbGFjZSAgPT4gcGFjaygnTConLCAweEE4MTA5Q0ZBLCAxLCAx MzEwNzMpLAorICAgICAgICBibGtubyAgICA9PiAkbWV0YV9wYWdlX2Jsa25vLAorICAgICAgICBl eHBlY3RlZCA9PiB3cmFwKCdtZXRhcGFnZSBpcyBjb3JydXB0ZWQnKQorICAgIH0sCisgICAgewor ICAgICAgICAjIGxhc3RfcmV2bWFwX3BhZ2UgYmVsb3cgbG93ZXIgbGltaXQKKworICAgICAgICBm aW5kICAgICA9PiBwYWNrKCdMKicsIDB4QTgxMDlDRkEsIDEsIDEyOCwgMSksCisgICAgICAgIHJl cGxhY2UgID0+IHBhY2soJ0wqJywgMHhBODEwOUNGQSwgMSwgMTI4LCAwKSwKKyAgICAgICAgYmxr bm8gICAgPT4gJG1ldGFfcGFnZV9ibGtubywKKyAgICAgICAgZXhwZWN0ZWQgPT4gd3JhcCgnbWV0 YXBhZ2UgaXMgY29ycnVwdGVkJyksCisgICAgfSwKKyAgICB7CisKKyAgICAgICAgIyBsYXN0X3Jl dm1hcF9wYWdlIGJleW9uZCBpbmRleCByZWxhdGlvbiBzaXplCisKKyAgICAgICAgZmluZCAgICAg PT4gcGFjaygnTConLCAweEE4MTA5Q0ZBLCAxLCAxMjgsIDEpLAorICAgICAgICByZXBsYWNlICA9 PiBwYWNrKCdMKicsIDB4QTgxMDlDRkEsIDEsIDEyOCwgMTAwKSwKKyAgICAgICAgYmxrbm8gICAg PT4gJG1ldGFfcGFnZV9ibGtubywKKyAgICAgICAgZXhwZWN0ZWQgPT4gd3JhcCgnbWV0YXBhZ2Ug aXMgY29ycnVwdGVkJyksCisgICAgfSwKKyAgICB7CisgICAgICAgICMgaW52YWxpZCByZXZtYXAg cGFnZSB0eXBlCisKKyAgICAgICAgZmluZCAgICAgPT4gcGFjaygnUycsIDB4RjA5MiksCisgICAg ICAgIHJlcGxhY2UgID0+IHBhY2soJ1MnLCAweEFBQUEpLAorICAgICAgICBibGtubyAgICA9PiAx LCAjIHJldm1hcCBwYWdlCisgICAgICAgIGV4cGVjdGVkID0+IHdyYXAoJ3Jldm1hcCBwYWdlIGlz IGV4cGVjdGVkIGF0IGJsb2NrIDEsIGxhc3QgcmV2bWFwIHBhZ2UgMScpLAorICAgIH0sCisgICAg eworICAgICAgICAjIHJldm1hcCBpdGVtIHBvaW50cyBiZXlvbmQgaW5kZXggcmVsYXRpb24gc2l6 ZQorICAgICAgICAjIHJlcGxhY2UgKDIsMSkgd2l0aCAoMTAwLDEpCisKKyAgICAgICAgZmluZCAg ICAgPT4gcGFjaygnUyonLCAwLCAyLCAxKSwKKyAgICAgICAgcmVwbGFjZSAgPT4gcGFjaygnUyon LCAwLCAxMDAsIDEpLAorICAgICAgICBibGtubyAgICA9PiAxLCAjIHJldm1hcCBwYWdlCisgICAg ICAgIGV4cGVjdGVkID0+IHdyYXAoJ3Jldm1hcCBpdGVtIHBvaW50cyB0byBhIG5vbiBleGlzdGlu ZyBibG9jayAxMDAsICcKKyAgICAgICAgICAgIC4gJ2luZGV4IG1heCBibG9jayAyLiBSYW5nZSBi bGtubzogMCwgcmV2bWFwIGl0ZW06ICgxLDApJykKKyAgICB9LAorICAgIHsKKyAgICAgICAgIyBp bnZhbGlkIHJlZ3VsYXIgcGFnZSB0eXBlCisKKyAgICAgICAgZmluZCAgICAgPT4gcGFjaygnUycs IDB4RjA5MyksCisgICAgICAgIHJlcGxhY2UgID0+IHBhY2soJ1MnLCAweEFBQUEpLAorICAgICAg ICBibGtubyAgICA9PiAyLCAjIHJlZ3VsYXIgcGFnZQorICAgICAgICBleHBlY3RlZCA9PiB3cmFw KCdyZXZtYXAgaXRlbSBwb2ludHMgdG8gdGhlIHBhZ2Ugd2hpY2ggaXMgbm90IHJlZ3VsYXIgKGJs a25vOiAyKS4gJworICAgICAgICAgICAgLiAnUmFuZ2UgYmxrbm86IDAsIHJldm1hcCBpdGVtOiAo MSwwKScpCisgICAgfSwKKyAgICB7CisgICAgICAgICMgcmV2bWFwIGl0ZW0gcG9pbnRzIGJleW9u ZCByZWd1bGFyIHBhZ2UgbWF4IG9mZnNldAorICAgICAgICAjIHJlcGxhY2UgKDIsMSkgd2l0aCAo MiwyKQorCisgICAgICAgIGZpbmQgICAgID0+IHBhY2soJ1MqJywgMCwgMiwgMSksCisgICAgICAg IHJlcGxhY2UgID0+IHBhY2soJ1MqJywgMCwgMiwgMiksCisgICAgICAgIGJsa25vICAgID0+IDEs ICMgcmV2bWFwIHBhZ2UKKyAgICAgICAgZXhwZWN0ZWQgPT4gd3JhcCgncmV2bWFwIGl0ZW0gb2Zm c2V0IG51bWJlciAyIGlzIGdyZWF0ZXIgdGhhbiByZWd1bGFyIHBhZ2UgMiBtYXggb2Zmc2V0IDEu ICcKKyAgICAgICAgICAgIC4gJ1JhbmdlIGJsa25vOiAwLCByZXZtYXAgaXRlbTogKDEsMCknKQor ICAgIH0sCisgICAgeworICAgICAgICAjIGludmFsaWQgaW5kZXggdHVwbGUgcmFuZ2UgYmxrbm8K KworICAgICAgICBmaW5kICAgICA9PiBwYWNrKCdMQ0MnLCAwLCAweEE4LCAweDAxKSwKKyAgICAg ICAgcmVwbGFjZSAgPT4gcGFjaygnTENDJywgMSwgMHhBOCwgMHgwMSksCisgICAgICAgIGJsa25v ICAgID0+IDIsICMgcmVndWxhciBwYWdlCisgICAgICAgIGV4cGVjdGVkID0+IHdyYXAoJ2luZGV4 IHR1cGxlIGhhcyBpbnZhbGlkIGJsa25vIDEuIFJhbmdlIGJsa25vOiAwLCByZXZtYXAgaXRlbTog KDEsMCksIGluZGV4IHR1cGxlOiAoMiwxKScpCisgICAgfSwKKyAgICB7CisgICAgICAgICMgcmFu Z2UgYmV5b25kIHRoZSB0YWJsZSBzaXplIGFuZCBpcyBub3QgZW1wdHkKKworICAgICAgICBmaW5k ICAgICA9PiBwYWNrKCdMQ0MnLCAwLCAweEE4LCAweDAxKSwKKyAgICAgICAgcmVwbGFjZSAgPT4g cGFjaygnTENDJywgMCwgMHg4OCwgMHgwMSksCisgICAgICAgIGJsa25vICAgID0+IDIsICMgcmVn dWxhciBwYWdlCisgICAgICAgIGV4cGVjdGVkID0+IHdyYXAoJ3RoZSByYW5nZSBpcyBiZXlvbmQg dGhlIHRhYmxlIHNpemUsIGJ1dCBpcyBub3QgbWFya2VkIGFzIGVtcHR5LCB0YWJsZSBzaXplOiAw IGJsb2Nrcy4gJworICAgICAgICAgICAgLiAnUmFuZ2UgYmxrbm86IDAsIHJldm1hcCBpdGVtOiAo MSwwKSwgaW5kZXggdHVwbGU6ICgyLDEpJykKKyAgICB9LAorICAgIHsKKyAgICAgICAgIyBjb3Jy dXB0IGluZGV4IHR1cGxlIGRhdGEgb2Zmc2V0CisgICAgICAgICMgaGVyZSAgMHgwMCwgMHgwMCwg MHgwMCBpcyBwYWRkaW5nIGFuZCAnLicgaXMgdmFybGVuYSBsZW4gYnl0ZQorCisgICAgICAgIGZp bmQgICAgICAgPT4gcGFjaygnTENDQ0MnLCAwLCAweDA4LCAweDAwLCAweDAwLCAweDAwKSAuICco LiknIC4gJ2FhYWFhJywKKyAgICAgICAgcmVwbGFjZSAgICA9PiBwYWNrKCdMQ0NDQycsIDAsIDB4 MUYsIDB4MDAsIDB4MDAsIDB4MDApIC4gJyQxJyAuICdhYWFhYScsCisgICAgICAgIGJsa25vICAg ICAgPT4gMiwgIyByZWd1bGFyIHBhZ2UKKyAgICAgICAgdGFibGVfZGF0YSA9PiBzdWIgeworICAg ICAgICAgICAgbXkgKCR0ZXN0X3N0cnVjdCkgPSBAXzsKKyAgICAgICAgICAgIHJldHVybiBxcShJ TlNFUlQgSU5UTyAkdGVzdF9zdHJ1Y3QtPnt0YWJsZV9uYW1lfSAoYSkgVkFMVUVTICgnYWFhYWEn KTspOworICAgICAgICB9LAorICAgICAgICBleHBlY3RlZCAgID0+IHFyL2luZGV4IHR1cGxlIGhl YWRlciBsZW5ndGggMzEgaXMgZ3JlYXRlciB0aGFuIHR1cGxlIGxlbiAuLlwuIFxRUmFuZ2UgYmxr bm86IDAsIHJldm1hcCBpdGVtOiAoMSwwKSwgaW5kZXggdHVwbGU6ICgyLDEpXEUvCisgICAgfSwK KyAgICB7CisgICAgICAgICMgZW1wdHkgcmFuZ2UgaW5kZXggdHVwbGUgZG9lc24ndCBoYXZlIG51 bGwgYml0bWFwCisKKyAgICAgICAgZmluZCAgICAgPT4gcGFjaygnTENDJywgMCwgMHhBOCwgMHgw MSksCisgICAgICAgIHJlcGxhY2UgID0+IHBhY2soJ0xDQycsIDAsIDB4MjgsIDB4MDEpLAorICAg ICAgICBibGtubyAgICA9PiAyLCAjIHJlZ3VsYXIgcGFnZQorICAgICAgICBleHBlY3RlZCA9PiB3 cmFwKCdlbXB0eSByYW5nZSBpbmRleCB0dXBsZSBkb2VzblwndCBoYXZlIG51bGwgYml0bWFwLiAn CisgICAgICAgICAgICAuICdSYW5nZSBibGtubzogMCwgcmV2bWFwIGl0ZW06ICgxLDApLCBpbmRl eCB0dXBsZTogKDIsMSknKQorICAgIH0sCisgICAgeworICAgICAgICAjIGVtcHR5IHJhbmdlIGlu ZGV4IHR1cGxlIGFsbF9udWxscyAtPiBmYWxzZQorCisgICAgICAgIGZpbmQgICAgID0+IHBhY2so J0xDQycsIDAsIDB4QTgsIDB4MDEpLAorICAgICAgICByZXBsYWNlICA9PiBwYWNrKCdMQ0MnLCAw LCAweEE4LCAweDAwKSwKKyAgICAgICAgYmxrbm8gICAgPT4gMiwgIyByZWd1bGFyIHBhZ2UKKyAg ICAgICAgZXhwZWN0ZWQgPT4gd3JhcCgnZW1wdHkgcmFuZ2UgaW5kZXggdHVwbGUgYXR0cmlidXRl IDAgd2l0aCBhbGxudWxscyBpcyBmYWxzZS4gJworICAgICAgICAgICAgLiAnUmFuZ2UgYmxrbm86 IDAsIHJldm1hcCBpdGVtOiAoMSwwKSwgaW5kZXggdHVwbGU6ICgyLDEpJykKKyAgICB9LAorICAg IHsKKyAgICAgICAgIyBlbXB0eSByYW5nZSBpbmRleCB0dXBsZSBoYXNfbnVsbHMgLT4gdHJ1ZQor CisgICAgICAgIGZpbmQgICAgID0+IHBhY2soJ0xDQycsIDAsIDB4QTgsIDB4MDEpLAorICAgICAg ICByZXBsYWNlICA9PiBwYWNrKCdMQ0MnLCAwLCAweEE4LCAweDAzKSwKKyAgICAgICAgYmxrbm8g ICAgPT4gMiwgIyByZWd1bGFyIHBhZ2UKKyAgICAgICAgZXhwZWN0ZWQgPT4gd3JhcCgnZW1wdHkg cmFuZ2UgaW5kZXggdHVwbGUgYXR0cmlidXRlIDAgd2l0aCBoYXNudWxscyBpcyB0cnVlLiAnCisg ICAgICAgICAgICAuICdSYW5nZSBibGtubzogMCwgcmV2bWFwIGl0ZW06ICgxLDApLCBpbmRleCB0 dXBsZTogKDIsMSknKQorICAgIH0sCisgICAgeworICAgICAgICAjIGludmFsaWQgaW5kZXggdHVw bGUgZGF0YQorICAgICAgICAjIHJlcGxhY2UgdmFybGVuYSBsZW4gd2l0aCBGRiAtIHNob3VsZCB3 b3JrIHdpdGggYW55IGVuZGlhbm5lc3MKKworICAgICAgICBmaW5kICAgICAgID0+IHBhY2soJ0xD Q0NDJywgMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHgwMCkgLiAnLicgLiAnYWFhYWEnLAorICAgICAg ICByZXBsYWNlICAgID0+IHBhY2soJ0xDQ0NDQycsIDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4MDAs IDB4RkYpIC4gJ2FhYWFhJywKKyAgICAgICAgYmxrbm8gICAgICA9PiAyLCAjIHJlZ3VsYXIgcGFn ZQorICAgICAgICB0YWJsZV9kYXRhID0+IHN1YiB7CisgICAgICAgICAgICBteSAoJHRlc3Rfc3Ry dWN0KSA9IEBfOworICAgICAgICAgICAgcmV0dXJuIHFxKElOU0VSVCBJTlRPICR0ZXN0X3N0cnVj dC0+e3RhYmxlX25hbWV9IChhKSBWQUxVRVMgKCdhYWFhYScpOyk7CisgICAgICAgIH0sCisgICAg ICAgIGV4cGVjdGVkICAgPT4gcXIvYXR0cmlidXRlIDAgc3RvcmVkIHZhbHVlIDAgd2l0aCBsZW5n dGggLTEgZW5kcyBhdCBvZmZzZXQgMTI3IGJleW9uZCB0b3RhbCB0dXBsZSBsZW5ndGggLi5cLlxR IFJhbmdlIGJsa25vOiAwLCByZXZtYXAgaXRlbTogKDEsMCksIGluZGV4IHR1cGxlOiAoMiwxKVxF LworICAgIH0sCisgICAgeworICAgICAgICAjIG9ycGhhbiBpbmRleCB0dXBsZQorICAgICAgICAj IHJlcGxhY2UgdmFsaWQgcmV2bWFwIGl0ZW0gd2l0aCAoMCwwKQorCisgICAgICAgIGZpbmQgICAg ICAgPT4gcGFjaygnUyonLCAwLCAyLCAxKSwKKyAgICAgICAgcmVwbGFjZSAgICA9PiBwYWNrKCdT KicsIDAsIDAsIDApLAorICAgICAgICBibGtubyAgICAgID0+IDEsICMgcmV2bWFwIHBhZ2UKKyAg ICAgICAgdGFibGVfZGF0YSA9PiBzdWIgeworICAgICAgICAgICAgbXkgKCR0ZXN0X3N0cnVjdCkg PSBAXzsKKyAgICAgICAgICAgIHJldHVybiBxcShJTlNFUlQgSU5UTyAkdGVzdF9zdHJ1Y3QtPnt0 YWJsZV9uYW1lfSAoYSkgVkFMVUVTICgnYWFhYWEnKTspOworICAgICAgICB9LAorICAgICAgICBl eHBlY3RlZCAgID0+IHdyYXAoInJldm1hcCBkb2Vzbid0IHBvaW50IHRvIGluZGV4IHR1cGxlLiBS YW5nZSBibGtubzogMCwgcmV2bWFwIGl0ZW06ICgxLDApLCBpbmRleCB0dXBsZTogKDIsMSkiKQor ICAgIH0KKyk7CisKKworIyBpbml0IHRlc3QgZGF0YQorbXkgJGkgPSAxOworZm9yZWFjaCBteSAk dGVzdF9zdHJ1Y3QgKEB0ZXN0cykgeworCisgICAgJHRlc3Rfc3RydWN0LT57dGFibGVfbmFtZX0g PSAndCcgLiAkaSsrOworICAgICR0ZXN0X3N0cnVjdC0+e2luZGV4X25hbWV9ID0gJHRlc3Rfc3Ry dWN0LT57dGFibGVfbmFtZX0gLiAnX2JyaW5faWR4JzsKKworICAgIG15ICR0ZXN0X2RhdGFfc3Fs ID0gJyc7CisgICAgaWYgKGV4aXN0cyAkdGVzdF9zdHJ1Y3QtPnt0YWJsZV9kYXRhfSkgeworICAg ICAgICAkdGVzdF9kYXRhX3NxbCA9ICR0ZXN0X3N0cnVjdC0+e3RhYmxlX2RhdGF9LT4oJHRlc3Rf c3RydWN0KTsKKyAgICB9CisKKyAgICAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKAor ICAgICAgICBDUkVBVEUgVEFCTEUgJHRlc3Rfc3RydWN0LT57dGFibGVfbmFtZX0gKGEgVEVYVCk7 CisgICAgICAgICR0ZXN0X2RhdGFfc3FsCisgICAgICAgIENSRUFURSBJTkRFWCAkdGVzdF9zdHJ1 Y3QtPntpbmRleF9uYW1lfSBPTiAkdGVzdF9zdHJ1Y3QtPnt0YWJsZV9uYW1lfSBVU0lORyBCUklO IChhKTsKKyAgICApKTsKKworICAgICR0ZXN0X3N0cnVjdC0+e3JlbHBhdGh9ID0gcmVsYXRpb25f ZmlsZXBhdGgoJHRlc3Rfc3RydWN0LT57aW5kZXhfbmFtZX0pOworfQorCisjIGNvcnJ1cHQgaW5k ZXgKKyRub2RlLT5zdG9wOworCitmb3JlYWNoIG15ICR0ZXN0X3N0cnVjdCAoQHRlc3RzKSB7Cisg ICAgc3RyaW5nX3JlcGxhY2VfYmxvY2soCisgICAgICAgICR0ZXN0X3N0cnVjdC0+e3JlbHBhdGh9 LAorICAgICAgICAkdGVzdF9zdHJ1Y3QtPntmaW5kfSwKKyAgICAgICAgJHRlc3Rfc3RydWN0LT57 cmVwbGFjZX0sCisgICAgICAgICR0ZXN0X3N0cnVjdC0+e2Jsa25vfQorICAgICk7Cit9CisKKyMg YXNzZXJ0aW9ucworJG5vZGUtPnN0YXJ0OworCitmb3JlYWNoIG15ICR0ZXN0X3N0cnVjdCAoQHRl c3RzKSB7CisgICAgbXkgKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwo J3Bvc3RncmVzJywgcXEoU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJyR0ZXN0X3N0cnVjdC0+e2lu ZGV4X25hbWV9JywgdHJ1ZSkpKTsKKyAgICBsaWtlKCRzdGRlcnIsICR0ZXN0X3N0cnVjdC0+e2V4 cGVjdGVkfSk7Cit9CisKKworIyBIZWxwZXJzCisKKyMgUmV0dXJucyB0aGUgZmlsZXN5c3RlbSBw YXRoIGZvciB0aGUgbmFtZWQgcmVsYXRpb24uCitzdWIgcmVsYXRpb25fZmlsZXBhdGggeworICAg IG15ICgkcmVsbmFtZSkgPSBAXzsKKworICAgIG15ICRwZ2RhdGEgPSAkbm9kZS0+ZGF0YV9kaXI7 CisgICAgbXkgJHJlbCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKyAgICAgICAgcXEo U0VMRUNUIHBnX3JlbGF0aW9uX2ZpbGVwYXRoKCckcmVsbmFtZScpKSk7CisgICAgZGllICJwYXRo IG5vdCBmb3VuZCBmb3IgcmVsYXRpb24gJHJlbG5hbWUiIHVubGVzcyBkZWZpbmVkICRyZWw7Cisg ICAgcmV0dXJuICIkcGdkYXRhLyRyZWwiOworfQorCitzdWIgc3RyaW5nX3JlcGxhY2VfYmxvY2sg eworICAgIG15ICgkZmlsZW5hbWUsICRmaW5kLCAkcmVwbGFjZSwgJGJsa25vKSA9IEBfOworCisg ICAgbXkgJGZoOworICAgIG9wZW4oJGZoLCAnKzwnLCAkZmlsZW5hbWUpIG9yIEJBSUxfT1VUKCJv cGVuIGZhaWxlZDogJCEiKTsKKyAgICBiaW5tb2RlICRmaDsKKworICAgIG15ICRvZmZzZXQgPSAk Ymxrbm8gKiAkYmxrc2l6ZTsKKyAgICBteSAkYnVmZmVyOworCisgICAgc3lzc2VlaygkZmgsICRv ZmZzZXQsIDApIG9yIEJBSUxfT1VUKCJzZWVrIGZhaWxlZDogJCEiKTsKKyAgICBzeXNyZWFkKCRm aCwgJGJ1ZmZlciwgJGJsa3NpemUpIG9yIEJBSUxfT1VUKCJyZWFkIGZhaWxlZDogJCEiKTsKKwor ICAgICRidWZmZXIgPX4gcy8kZmluZC8nIicgLiAkcmVwbGFjZSAuICciJy9nZWU7CisKKyAgICBz eXNzZWVrKCRmaCwgJG9mZnNldCwgMCkgb3IgQkFJTF9PVVQoInNlZWsgZmFpbGVkOiAkISIpOwor ICAgIHN5c3dyaXRlKCRmaCwgJGJ1ZmZlcikgb3IgQkFJTF9PVVQoIndyaXRlIGZhaWxlZDogJCEi KTsKKworICAgIGNsb3NlKCRmaCkgb3IgQkFJTF9PVVQoImNsb3NlIGZhaWxlZDogJCEiKTsKKwor ICAgIHJldHVybjsKK30KKworc3ViIHdyYXAKK3sKKyAgICBteSAkaW5wdXQgPSBAXzsKKyAgICBy ZXR1cm4gcXIvXFEkaW5wdXRcRS8KK30KKworZG9uZV90ZXN0aW5nKCk7ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9icmluLmMg Yi9jb250cmliL2FtY2hlY2svdmVyaWZ5X2JyaW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMDRlNjUzMTQ3OTYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2Ft Y2hlY2svdmVyaWZ5X2JyaW4uYwpAQCAtMCwwICsxLDg1NSBAQAorLyotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKgorICogdmVyaWZ5X2JyaW4uYworICoJICBGdW5jdGlvbnMgdG8gY2hlY2sgcG9zdGdyZXNx bCBicmluIGluZGV4ZXMgZm9yIGNvcnJ1cHRpb24KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYt MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKgkgIGNvbnRy aWIvYW1jaGVjay92ZXJpZnlfYnJpbi5jCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1 ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5j bHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIKKyNpbmNs dWRlICJhY2Nlc3MvdHJhbnNhbS5oIgorI2luY2x1ZGUgImFjY2Vzcy9icmluLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9pbmRleC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1fZC5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNs dWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJzdG9yYWdlL3NtZ3IuaCIKKyNpbmNsdWRl ICJ1dGlscy9ndWMuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2luY2x1ZGUgImFj Y2Vzcy9icmluX3BhZ2UuaCIKKyNpbmNsdWRlICJhY2Nlc3MvYnJpbl9yZXZtYXAuaCIKKyNpbmNs dWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ2ZXJpZnlfY29tbW9uLmgiCisjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgorCisKK1BH X0ZVTkNUSU9OX0lORk9fVjEoYnJpbl9pbmRleF9jaGVjayk7CisKK3R5cGVkZWYgc3RydWN0IEJy aW5DaGVja1N0YXRlCit7CisKKwkvKiBDaGVjayBhcmd1bWVudHMgKi8KKworCWJvb2wJCXJlZ3Vs YXJfcGFnZXNfY2hlY2s7CisKKwkvKiBCUklOIGNoZWNrIGNvbW1vbiBmaWVsZHMgKi8KKworCVJl bGF0aW9uCWlkeHJlbDsKKwlSZWxhdGlvbgloZWFwcmVsOworCUJyaW5EZXNjICAgKmJkZXNjOwor CWludAkJCW5hdHRzOworCUJsb2NrTnVtYmVyIHBhZ2VzUGVyUmFuZ2U7CisKKwkvKiBJbmRleCBz dHJ1Y3R1cmUgY2hlY2sgZmllbGRzICovCisKKwlCdWZmZXJBY2Nlc3NTdHJhdGVneSBjaGVja3N0 cmF0ZWd5OworCUJsb2NrTnVtYmVyIGlkeG5ibG9ja3M7CisJQmxvY2tOdW1iZXIgaGVhcG5ibG9j a3M7CisJQmxvY2tOdW1iZXIgbGFzdFJldm1hcFBhZ2U7CisJLyogQ3VycmVudCByYW5nZSBibGtu byAqLworCUJsb2NrTnVtYmVyIHJhbmdlQmxrbm87CisJLyogQ3VycmVudCByZXZtYXAgaXRlbSAq LworCUJsb2NrTnVtYmVyIHJldm1hcEJsazsKKwlCdWZmZXIJCXJldm1hcGJ1ZjsKKwlQYWdlCQly ZXZtYXBwYWdlOworCXVpbnQzMgkJcmV2bWFwaWR4OworCS8qIEN1cnJlbnQgaW5kZXggdHVwbGUg Ki8KKwlCbG9ja051bWJlciByZWdwYWdlQmxrOworCUJ1ZmZlcgkJcmVncGFnZWJ1ZjsKKwlQYWdl CQlyZWdwYWdlOworCU9mZnNldE51bWJlciByZWdwYWdlb2Zmc2V0OworCit9CQkJQnJpbkNoZWNr U3RhdGU7CisKK3N0YXRpYyB2b2lkIGJyaW5fY2hlY2soUmVsYXRpb24gaWR4cmVsLCBSZWxhdGlv biBoZWFwcmVsLCB2b2lkICpjYWxsYmFja19zdGF0ZSwgYm9vbCByZWFkb25seSk7CisKK3N0YXRp YyB2b2lkIGNoZWNrX2JyaW5faW5kZXhfc3RydWN0dXJlKEJyaW5DaGVja1N0YXRlICogcFN0YXRl KTsKKworc3RhdGljIHZvaWQgY2hlY2tfbWV0YShCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlKTsKKwor c3RhdGljIHZvaWQgY2hlY2tfcmV2bWFwKEJyaW5DaGVja1N0YXRlICogc3RhdGUpOworCitzdGF0 aWMgdm9pZCBjaGVja19yZXZtYXBfaXRlbShCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlKTsKKworc3Rh dGljIHZvaWQgY2hlY2tfaW5kZXhfdHVwbGUoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSwgQnJpblR1 cGxlICp0dXBsZSwgSXRlbUlkIGxwKTsKKworc3RhdGljIHZvaWQgY2hlY2tfcmVndWxhcl9wYWdl cyhCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlKTsKKworc3RhdGljIGJvb2wgcmV2bWFwX3BvaW50c190 b19pbmRleF90dXBsZShCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlKTsKKworc3RhdGljIEl0ZW1JZCBQ YWdlR2V0SXRlbUlkQ2FyZWZ1bChCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlKTsKKworc3RhdGljIHZv aWQgYnJpbl9jaGVja19lcmVwb3J0KEJyaW5DaGVja1N0YXRlICogc3RhdGUsIGNvbnN0IGNoYXIg KmZtdCk7CisKK3N0YXRpYyB2b2lkIHJldm1hcF9pdGVtX2VyZXBvcnQoQnJpbkNoZWNrU3RhdGUg KiBzdGF0ZSwgY29uc3QgY2hhciAqZm10KTsKKworc3RhdGljIHZvaWQgaW5kZXhfdHVwbGVfZXJl cG9ydChCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlLCBjb25zdCBjaGFyICpmbXQpOworCitzdGF0aWMg dm9pZCBpbmRleF90dXBsZV9vbmx5X2VyZXBvcnQoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSwgY29u c3QgY2hhciAqZm10KTsKKworCitEYXR1bQorYnJpbl9pbmRleF9jaGVjayhQR19GVU5DVElPTl9B UkdTKQoreworCU9pZAkJCWluZHJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlCcmluQ2hlY2tT dGF0ZSAqc3RhdGUgPSBwYWxsb2MwKHNpemVvZihCcmluQ2hlY2tTdGF0ZSkpOworCisJc3RhdGUt PnJlZ3VsYXJfcGFnZXNfY2hlY2sgPSBQR19HRVRBUkdfQk9PTCgxKTsKKworCWFtY2hlY2tfbG9j a19yZWxhdGlvbl9hbmRfY2hlY2soaW5kcmVsaWQsCisJCQkJCQkJCQlCUklOX0FNX09JRCwKKwkJ CQkJCQkJCWJyaW5fY2hlY2ssCisJCQkJCQkJCQlTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2ssCisJ CQkJCQkJCQlzdGF0ZSk7CisKKwlQR19SRVRVUk5fVk9JRCgpOworfQorCisvKgorICogTWFpbiBj aGVjayBmdW5jdGlvbgorICovCitzdGF0aWMgdm9pZAorYnJpbl9jaGVjayhSZWxhdGlvbiBpZHhy ZWwsIFJlbGF0aW9uIGhlYXByZWwsIHZvaWQgKmNhbGxiYWNrX3N0YXRlLCBib29sIHJlYWRvbmx5 KQoreworCUJyaW5DaGVja1N0YXRlICpzdGF0ZSA9IChCcmluQ2hlY2tTdGF0ZSAqKSBjYWxsYmFj a19zdGF0ZTsKKworCS8qIEluaXRpYWxpemUgY2hlY2sgY29tbW9uIGZpZWxkcyAqLworCXN0YXRl LT5pZHhyZWwgPSBpZHhyZWw7CisJc3RhdGUtPmhlYXByZWwgPSBoZWFwcmVsOworCXN0YXRlLT5i ZGVzYyA9IGJyaW5fYnVpbGRfZGVzYyhpZHhyZWwpOworCXN0YXRlLT5uYXR0cyA9IHN0YXRlLT5i ZGVzYy0+YmRfdHVwZGVzYy0+bmF0dHM7CisKKworCWNoZWNrX2JyaW5faW5kZXhfc3RydWN0dXJl KHN0YXRlKTsKKworCisJYnJpbl9mcmVlX2Rlc2Moc3RhdGUtPmJkZXNjKTsKK30KKworLyoKKyAq IENoZWNrIHRoYXQgaW5kZXggaGFzIGV4cGVjdGVkIHN0cnVjdHVyZQorICoKKyAqICBTb21lIGNo ZWNrIGV4cGVjdGF0aW9uczoKKyAqIC0gd2UgaG9sZCBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2ss IHNvIHJldm1hcCBjb3VsZCBub3QgYmUgZXh0ZW5kZWQgKGkuZS4gbm8gZXZhY3VhdGlvbikgd2hp bGUgY2hlY2sgYXMgd2VsbCBhcworICogICBhbGwgcmVndWxhciBwYWdlcyBzaG91bGQgc3RheSBy ZWd1bGFyIGFuZCByYW5nZXMgY291bGQgbm90IGJlIHN1bW1hcml6ZWQgYW5kIGRlc3VtbWFyaXpl ZC4KKyAqICAgTmV2ZXJ0aGVsZXNzLCBjb25jdXJyZW50IHVwZGF0ZXMgY291bGQgbGVhZCB0byBu ZXcgcmVndWxhciBwYWdlIGFsbG9jYXRpb25zCisgKiAgIGFuZCBtb3Zpbmcgb2YgaW5kZXggdHVw bGVzLgorICogLSBpZiByZXZtYXAgcG9pbnRlciBpcyB2YWxpZCB0aGVyZSBzaG91bGQgYmUgdmFs aWQgaW5kZXggdHVwbGUgaXQgcG9pbnRzIHRvLgorICogLSB0aGVyZSBhcmUgbm8gb3JwaGFuIGlu ZGV4IHR1cGxlcyAoaWYgdGhlcmUgaXMgYW4gaW5kZXggdHVwbGUsIHRoZSByZXZtYXAgaXRlbSBw b2ludHMgdG8gdGhpcyB0dXBsZSBhbHNvIG11c3QgZXhpc3QpCisgKiAtIGl0J3MgcG9zc2libGUg dG8gZW5jb3VudGVyIHBsYWNlaG9sZGVyIHR1cGxlcyAoYXMgYSByZXN1bHQgb2YgY3Jhc2gpCisg KiAtIGl0J3MgcG9zc2libGUgdG8gZW5jb3VudGVyIG5ldyBwYWdlcyBpbnN0ZWFkIG9mIHJlZ3Vs YXIgKGFzIGEgcmVzdWx0IG9mIGNyYXNoKQorICogLSBpdCdzIHBvc3NpYmxlIHRvIGVuY291bnRl ciBwYWdlcyB3aXRoIGV2YWN1YXRpb24gYml0IChhcyBhIHJlc3VsdCBvZiBjcmFzaCkKKyAqCisg Ki8KK3N0YXRpYyB2b2lkCitjaGVja19icmluX2luZGV4X3N0cnVjdHVyZShCcmluQ2hlY2tTdGF0 ZSAqIHN0YXRlKQoreworCS8qIEluZGV4IHN0cnVjdHVyZSBjaGVjayBmaWVsZHMgaW5pdGlhbGl6 YXRpb24gKi8KKwlzdGF0ZS0+Y2hlY2tzdHJhdGVneSA9IEdldEFjY2Vzc1N0cmF0ZWd5KEJBU19C VUxLUkVBRCk7CisKKwljaGVja19tZXRhKHN0YXRlKTsKKworCS8qIENoZWNrIHJldm1hcCBmaXJz dCwgYmxvY2tzOiBbMSwgbGFzdFJldm1hcFBhZ2VdICovCisJY2hlY2tfcmV2bWFwKHN0YXRlKTsK KworCS8qIENoZWNrIHJlZ3VsYXIgcGFnZXMsIGJsb2NrczogW2xhc3RSZXZtYXBQYWdlICsgMSwg aWR4bmJsb2Nrc10gKi8KKwljaGVja19yZWd1bGFyX3BhZ2VzKHN0YXRlKTsKK30KKworLyogTWV0 YSBwYWdlIGNoZWNrIGFuZCBzYXZlIHNvbWUgZGF0YSBmb3IgdGhlIGZ1cnRoZXIgY2hlY2sgKi8K K3N0YXRpYyB2b2lkCitjaGVja19tZXRhKEJyaW5DaGVja1N0YXRlICogc3RhdGUpCit7CisJQnVm ZmVyCQltZXRhYnVmOworCVBhZ2UJCW1ldGFwYWdlOworCUJyaW5NZXRhUGFnZURhdGEgKm1ldGFk YXRhOworCisJLyogTWV0YSBwYWdlIGNoZWNrICovCisJbWV0YWJ1ZiA9IFJlYWRCdWZmZXJFeHRl bmRlZChzdGF0ZS0+aWR4cmVsLCBNQUlOX0ZPUktOVU0sIEJSSU5fTUVUQVBBR0VfQkxLTk8sIFJC TV9OT1JNQUwsCisJCQkJCQkJCSBzdGF0ZS0+Y2hlY2tzdHJhdGVneSk7CisJTG9ja0J1ZmZlciht ZXRhYnVmLCBCVUZGRVJfTE9DS19TSEFSRSk7CisJbWV0YXBhZ2UgPSBCdWZmZXJHZXRQYWdlKG1l dGFidWYpOworCW1ldGFkYXRhID0gKEJyaW5NZXRhUGFnZURhdGEgKikgUGFnZUdldENvbnRlbnRz KG1ldGFwYWdlKTsKKwlzdGF0ZS0+aWR4bmJsb2NrcyA9IFJlbGF0aW9uR2V0TnVtYmVyT2ZCbG9j a3Moc3RhdGUtPmlkeHJlbCk7CisKKworCWlmICghQlJJTl9JU19NRVRBX1BBR0UobWV0YXBhZ2Up IHx8CisJCW1ldGFkYXRhLT5icmluTWFnaWMgIT0gQlJJTl9NRVRBX01BR0lDIHx8CisJCW1ldGFk YXRhLT5icmluVmVyc2lvbiAhPSBCUklOX0NVUlJFTlRfVkVSU0lPTiB8fAorCQltZXRhZGF0YS0+ cGFnZXNQZXJSYW5nZSA8IDEgfHwgbWV0YWRhdGEtPnBhZ2VzUGVyUmFuZ2UgPiBCUklOX01BWF9Q QUdFU19QRVJfUkFOR0UgfHwKKwkJbWV0YWRhdGEtPmxhc3RSZXZtYXBQYWdlIDw9IEJSSU5fTUVU QVBBR0VfQkxLTk8gfHwgbWV0YWRhdGEtPmxhc3RSZXZtYXBQYWdlID49IHN0YXRlLT5pZHhuYmxv Y2tzKQorCXsKKwkJYnJpbl9jaGVja19lcmVwb3J0KHN0YXRlLCAibWV0YXBhZ2UgaXMgY29ycnVw dGVkIik7CisJfQorCisJc3RhdGUtPmxhc3RSZXZtYXBQYWdlID0gbWV0YWRhdGEtPmxhc3RSZXZt YXBQYWdlOworCXN0YXRlLT5wYWdlc1BlclJhbmdlID0gbWV0YWRhdGEtPnBhZ2VzUGVyUmFuZ2U7 CisJVW5sb2NrUmVsZWFzZUJ1ZmZlcihtZXRhYnVmKTsKK30KKworLyoKKyAqIFdhbGsgcmV2bWFw IHBhZ2UgYnkgcGFnZSBmcm9tIHRoZSBiZWdpbm5pbmcgYW5kIGNoZWNrIGV2ZXJ5IHJldm1hcCBp dGVtLgorICogQWxzbyBjaGVjayB0aGF0IGFsbCBwYWdlcyB3aXRoaW4gWzEsIGxhc3RSZXZtYXBQ YWdlXSBhcmUgcmV2bWFwIHBhZ2VzLgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfcmV2bWFwKEJy aW5DaGVja1N0YXRlICogc3RhdGUpCit7CisJUmVsYXRpb24JaWR4cmVsID0gc3RhdGUtPmlkeHJl bDsKKwlCbG9ja051bWJlciBsYXN0UmV2bWFwUGFnZSA9IHN0YXRlLT5sYXN0UmV2bWFwUGFnZTsK KwlSZWFkU3RyZWFtICpzdHJlYW07CisJaW50CQkJc3RyZWFtX2ZsYWdzOworCVJlYWRTdHJlYW1C bG9ja051bWJlckNCIHN0cmVhbV9jYjsKKwlCbG9ja1JhbmdlUmVhZFN0cmVhbVByaXZhdGUgc3Ry ZWFtX2RhdGE7CisKKwlzdGF0ZS0+cmFuZ2VCbGtubyA9IDA7CisJc3RhdGUtPnJlZ3BhZ2VidWYg PSBJbnZhbGlkQnVmZmVyOworCXN0YXRlLT5oZWFwbmJsb2NrcyA9IFJlbGF0aW9uR2V0TnVtYmVy T2ZCbG9ja3Moc3RhdGUtPmhlYXByZWwpOworCisKKwkvKgorCSAqIFByZXBhcmUgc3RyZWFtIGRh dGEgZm9yIHJldm1hcCB3YWxrLiBJdCBpcyBzYWZlIHRvIHVzZSBiYXRjaG1vZGUgYXMKKwkgKiBi bG9ja19yYW5nZV9yZWFkX3N0cmVhbV9jYiB0YWtlcyBubyBsb2Nrcy4KKwkgKi8KKwlzdHJlYW1f ZmxhZ3MgPSBSRUFEX1NUUkVBTV9TRVFVRU5USUFMIHwgUkVBRF9TVFJFQU1fVVNFX0JBVENISU5H OworCS8qIEZpcnN0IHJldm1hcCBwYWdlIGlzIHJpZ2h0IGFmdGVyIG1ldGEgcGFnZSAqLworCXN0 cmVhbV9kYXRhLmN1cnJlbnRfYmxvY2tudW0gPSBCUklOX01FVEFQQUdFX0JMS05PICsgMTsKKwlz dHJlYW1fZGF0YS5sYXN0X2V4Y2x1c2l2ZSA9IGxhc3RSZXZtYXBQYWdlICsgMTsKKworCXN0cmVh bV9jYiA9IGJsb2NrX3JhbmdlX3JlYWRfc3RyZWFtX2NiOworCXN0cmVhbSA9IHJlYWRfc3RyZWFt X2JlZ2luX3JlbGF0aW9uKHN0cmVhbV9mbGFncywKKwkJCQkJCQkJCQlHZXRBY2Nlc3NTdHJhdGVn eShCQVNfQlVMS1JFQUQpLAorCQkJCQkJCQkJCWlkeHJlbCwKKwkJCQkJCQkJCQlNQUlOX0ZPUktO VU0sCisJCQkJCQkJCQkJc3RyZWFtX2NiLAorCQkJCQkJCQkJCSZzdHJlYW1fZGF0YSwKKwkJCQkJ CQkJCQkwKTsKKworCS8qIFdhbGsgZWFjaCByZXZtYXAgcGFnZSAqLworCXdoaWxlICgoc3RhdGUt PnJldm1hcGJ1ZiA9IHJlYWRfc3RyZWFtX25leHRfYnVmZmVyKHN0cmVhbSwgTlVMTCkpICE9IElu dmFsaWRCdWZmZXIpCisJeworCQlzdGF0ZS0+cmV2bWFwQmxrID0gQnVmZmVyR2V0QmxvY2tOdW1i ZXIoc3RhdGUtPnJldm1hcGJ1Zik7CisJCUxvY2tCdWZmZXIoc3RhdGUtPnJldm1hcGJ1ZiwgQlVG RkVSX0xPQ0tfU0hBUkUpOworCQlzdGF0ZS0+cmV2bWFwcGFnZSA9IEJ1ZmZlckdldFBhZ2Uoc3Rh dGUtPnJldm1hcGJ1Zik7CisKKwkJLyoKKwkJICogUGFnZXMgd2l0aCBibG9jayBudW1iZXJzIGlu IFsxLCBsYXN0UmV2bWFwUGFnZV0gc2hvdWxkIGJlIHJldm1hcAorCQkgKiBwYWdlcworCQkgKi8K KwkJaWYgKCFCUklOX0lTX1JFVk1BUF9QQUdFKHN0YXRlLT5yZXZtYXBwYWdlKSkKKwkJeworCQkJ YnJpbl9jaGVja19lcmVwb3J0KHN0YXRlLCBwc3ByaW50ZigicmV2bWFwIHBhZ2UgaXMgZXhwZWN0 ZWQgYXQgYmxvY2sgJXUsIGxhc3QgcmV2bWFwIHBhZ2UgJXUiLAorCQkJCQkJCQkJCQkgICBzdGF0 ZS0+cmV2bWFwQmxrLAorCQkJCQkJCQkJCQkgICBsYXN0UmV2bWFwUGFnZSkpOworCQl9CisJCUxv Y2tCdWZmZXIoc3RhdGUtPnJldm1hcGJ1ZiwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKKworCQkvKiBX YWxrIGFuZCBjaGVjayBhbGwgYnJpbiB0dXBsZXMgZnJvbSB0aGUgY3VycmVudCByZXZtYXAgcGFn ZSAqLworCQlzdGF0ZS0+cmV2bWFwaWR4ID0gMDsKKwkJd2hpbGUgKHN0YXRlLT5yZXZtYXBpZHgg PCBSRVZNQVBfUEFHRV9NQVhJVEVNUykKKwkJeworCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsK KworCQkJLyogQ2hlY2sgcmV2bWFwIGl0ZW0gKi8KKwkJCWNoZWNrX3Jldm1hcF9pdGVtKHN0YXRl KTsKKworCQkJc3RhdGUtPnJhbmdlQmxrbm8gKz0gc3RhdGUtPnBhZ2VzUGVyUmFuZ2U7CisJCQlz dGF0ZS0+cmV2bWFwaWR4Kys7CisJCX0KKworCQllbG9nKERFQlVHMywgIkNvbXBsZXRlIHJldm1h cCBwYWdlIGNoZWNrOiAlZCIsIHN0YXRlLT5yZXZtYXBCbGspOworCisJCVJlbGVhc2VCdWZmZXIo c3RhdGUtPnJldm1hcGJ1Zik7CisJfQorCisJcmVhZF9zdHJlYW1fZW5kKHN0cmVhbSk7CisKKwlp ZiAoQnVmZmVySXNWYWxpZChzdGF0ZS0+cmVncGFnZWJ1ZikpCisJeworCQlSZWxlYXNlQnVmZmVy KHN0YXRlLT5yZWdwYWdlYnVmKTsKKwl9Cit9CisKKy8qCisgKiBDaGVjayByZXZtYXAgaXRlbS4K KyAqCisgKiBXZSBjaGVjayByZXZtYXAgaXRlbSBwb2ludGVyIGl0c2VsZiBhbmQgaWYgaXQgaXMg b2sgd2UgY2hlY2sgdGhlIGluZGV4IHR1cGxlIGl0IHBvaW50cyB0by4KKyAqCisgKiBUbyBhdm9p ZCBkZWFkbG9jayB3ZSBuZWVkIHRvIHVubG9jayByZXZtYXAgcGFnZSBiZWZvcmUgbG9ja2luZyBy ZWd1bGFyIHBhZ2UsCisgKiBzbyB3aGVuIHdlIGdldCB0aGUgbG9jayBvbiB0aGUgcmVndWxhciBw YWdlIG91ciBpbmRleCB0dXBsZSBwb2ludGVyIG1heSBubyBsb25nZXIgYmUgcmVsZXZhbnQuCisg KiBTbyBmb3Igc29tZSBjaGVja3MgYmVmb3JlIHJlcG9ydGluZyBhbiBlcnJvciB3ZSBuZWVkIHRv IG1ha2Ugc3VyZSB0aGF0IG91ciBwb2ludGVyIGlzIHN0aWxsIHJlbGV2YW50IGFuZCBpZiBpdCdz IG5vdCAtIHJldHJ5LgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfcmV2bWFwX2l0ZW0oQnJpbkNo ZWNrU3RhdGUgKiBzdGF0ZSkKK3sKKwlJdGVtUG9pbnRlckRhdGEgKnJldm1hcHRpZHM7CisJUmV2 bWFwQ29udGVudHMgKmNvbnRlbnRzOworCUl0ZW1Qb2ludGVyRGF0YSAqaXB0cjsKKwlJdGVtSWQJ CWxwOworCUJyaW5UdXBsZSAgKnR1cDsKKwlSZWxhdGlvbglpZHhyZWwgPSBzdGF0ZS0+aWR4cmVs OworCisJLyogTG9vcCB0byByZXRyeSByZXZtYXAgaXRlbSBjaGVjayBpZiB0aGVyZSB3YXMgYSBj b25jdXJyZW50IHVwZGF0ZS4gKi8KKwlmb3IgKDs7KQorCXsKKwkJTG9ja0J1ZmZlcihzdGF0ZS0+ cmV2bWFwYnVmLCBCVUZGRVJfTE9DS19TSEFSRSk7CisKKwkJY29udGVudHMgPSAoUmV2bWFwQ29u dGVudHMgKikgUGFnZUdldENvbnRlbnRzKEJ1ZmZlckdldFBhZ2Uoc3RhdGUtPnJldm1hcGJ1Zikp OworCQlyZXZtYXB0aWRzID0gY29udGVudHMtPnJtX3RpZHM7CisJCS8qIFBvaW50ZXIgZm9yIHRo ZSByYW5nZSB3aXRoIHN0YXJ0IGF0IHN0YXRlLT5yYW5nZUJsa25vICovCisJCWlwdHIgPSByZXZt YXB0aWRzICsgc3RhdGUtPnJldm1hcGlkeDsKKworCQkvKiBBdCBmaXJzdCBjaGVjayByZXZtYXAg aXRlbSBwb2ludGVyICovCisKKwkJLyoKKwkJICogVHVwbGUgcG9pbnRlciBpcyBpbnZhbGlkIG1l YW5zIHJhbmdlIGlzbid0IHN1bW1hcml6ZWQsIGp1c3QgbW92ZQorCQkgKiBmdXJ0aGVyCisJCSAq LworCQlpZiAoIUl0ZW1Qb2ludGVySXNWYWxpZChpcHRyKSkKKwkJeworCQkJZWxvZyhERUJVRzMs ICJSYW5nZSAldSBpcyBub3Qgc3VtbWFyaXplZCIsIHN0YXRlLT5yYW5nZUJsa25vKTsKKwkJCUxv Y2tCdWZmZXIoc3RhdGUtPnJldm1hcGJ1ZiwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKKwkJCWJyZWFr OworCQl9CisKKwkJLyoKKwkJICogUG9pbnRlciBpcyB2YWxpZCwgaXQgc2hvdWxkIHBvaW50cyB0 byBpbmRleCB0dXBsZSBmb3IgdGhlIHJhbmdlCisJCSAqIHdpdGggYmxrbm8gcmFuZ2VCbGtuby4g UmVtZW1iZXIgaXQgYW5kIHVubG9jayByZXZtYXAgcGFnZSB0byBhdm9pZAorCQkgKiBkZWFkbG9j aworCQkgKi8KKwkJc3RhdGUtPnJlZ3BhZ2VCbGsgPSBJdGVtUG9pbnRlckdldEJsb2NrTnVtYmVy KGlwdHIpOworCQlzdGF0ZS0+cmVncGFnZW9mZnNldCA9IEl0ZW1Qb2ludGVyR2V0T2Zmc2V0TnVt YmVyKGlwdHIpOworCisJCUxvY2tCdWZmZXIoc3RhdGUtPnJldm1hcGJ1ZiwgQlVGRkVSX0xPQ0tf VU5MT0NLKTsKKworCQkvKgorCQkgKiBDaGVjayBpZiB0aGUgcmVncGFnZSBibG9jayBudW1iZXIg aXMgZ3JlYXRlciB0aGFuIHRoZSByZWxhdGlvbgorCQkgKiBzaXplLiBUbyBhdm9pZCBmZXRjaGlu ZyB0aGUgbnVtYmVyIG9mIGJsb2NrcyBmb3IgZWFjaCB0dXBsZSwgdXNlCisJCSAqIGNhY2hlZCB2 YWx1ZSBmaXJzdAorCQkgKi8KKwkJaWYgKHN0YXRlLT5yZWdwYWdlQmxrID49IHN0YXRlLT5pZHhu YmxvY2tzKQorCQl7CisJCQkvKgorCQkJICogUmVndWxhciBwYWdlcyBtYXkgaGF2ZSBiZWVuIGFk ZGVkLCBzbyByZWZyZXNoIGlkeG5ibG9ja3MgYW5kCisJCQkgKiByZWNoZWNrCisJCQkgKi8KKwkJ CXN0YXRlLT5pZHhuYmxvY2tzID0gUmVsYXRpb25HZXROdW1iZXJPZkJsb2NrcyhpZHhyZWwpOwor CQkJaWYgKHN0YXRlLT5yZWdwYWdlQmxrID49IHN0YXRlLT5pZHhuYmxvY2tzKQorCQkJeworCQkJ CXJldm1hcF9pdGVtX2VyZXBvcnQoc3RhdGUsCisJCQkJCQkJCQlwc3ByaW50ZigicmV2bWFwIGl0 ZW0gcG9pbnRzIHRvIGEgbm9uIGV4aXN0aW5nIGJsb2NrICV1LCBpbmRleCBtYXggYmxvY2sgJXUi LAorCQkJCQkJCQkJCQkgc3RhdGUtPnJlZ3BhZ2VCbGssCisJCQkJCQkJCQkJCSBzdGF0ZS0+aWR4 bmJsb2NrcyAtIDEpKTsKKwkJCX0KKwkJfQorCisJCS8qCisJCSAqIFRvIGF2b2lkIHNvbWUgcGlu L3VucGluIGN5Y2xlcyB3ZSBjYWNoZSBsYXN0IHVzZWQgcmVndWxhciBwYWdlLgorCQkgKiBDaGVj ayBpZiB3ZSBuZWVkIGRpZmZlcmVudCByZWd1bGFyIHBhZ2UgYW5kIGZldGNoIGl0LgorCQkgKi8K KwkJaWYgKCFCdWZmZXJJc1ZhbGlkKHN0YXRlLT5yZWdwYWdlYnVmKSB8fCBCdWZmZXJHZXRCbG9j a051bWJlcihzdGF0ZS0+cmVncGFnZWJ1ZikgIT0gc3RhdGUtPnJlZ3BhZ2VCbGspCisJCXsKKwkJ CWlmIChCdWZmZXJJc1ZhbGlkKHN0YXRlLT5yZWdwYWdlYnVmKSkKKwkJCXsKKwkJCQlSZWxlYXNl QnVmZmVyKHN0YXRlLT5yZWdwYWdlYnVmKTsKKwkJCX0KKwkJCXN0YXRlLT5yZWdwYWdlYnVmID0g UmVhZEJ1ZmZlckV4dGVuZGVkKGlkeHJlbCwgTUFJTl9GT1JLTlVNLCBzdGF0ZS0+cmVncGFnZUJs aywgUkJNX05PUk1BTCwKKwkJCQkJCQkJCQkJCSAgIHN0YXRlLT5jaGVja3N0cmF0ZWd5KTsKKwkJ fQorCisJCUxvY2tCdWZmZXIoc3RhdGUtPnJlZ3BhZ2VidWYsIEJVRkZFUl9MT0NLX1NIQVJFKTsK KwkJc3RhdGUtPnJlZ3BhZ2UgPSBCdWZmZXJHZXRQYWdlKHN0YXRlLT5yZWdwYWdlYnVmKTsKKwor CQkvKiBSZXZtYXAgc2hvdWxkIGFsd2F5cyBwb2ludCB0byBhIHJlZ3VsYXIgcGFnZSAqLworCQlp ZiAoIUJSSU5fSVNfUkVHVUxBUl9QQUdFKHN0YXRlLT5yZWdwYWdlKSkKKwkJeworCQkJcmV2bWFw X2l0ZW1fZXJlcG9ydChzdGF0ZSwKKwkJCQkJCQkJcHNwcmludGYoInJldm1hcCBpdGVtIHBvaW50 cyB0byB0aGUgcGFnZSB3aGljaCBpcyBub3QgcmVndWxhciAoYmxrbm86ICV1KSIsCisJCQkJCQkJ CQkJIHN0YXRlLT5yZWdwYWdlQmxrKSk7CisKKwkJfQorCisJCS8qIENoZWNrIGl0ZW0gb2Zmc2V0 IGlzIHZhbGlkICovCisJCWlmIChzdGF0ZS0+cmVncGFnZW9mZnNldCA+IFBhZ2VHZXRNYXhPZmZz ZXROdW1iZXIoc3RhdGUtPnJlZ3BhZ2UpKQorCQl7CisKKwkJCS8qIElmIGNvbmN1cnJlbnQgdXBk YXRlIG1vdmVkIG91ciB0dXBsZSB3ZSBuZWVkIHRvIHJldHJ5ICovCisJCQlpZiAoIXJldm1hcF9w b2ludHNfdG9faW5kZXhfdHVwbGUoc3RhdGUpKQorCQkJeworCQkJCUxvY2tCdWZmZXIoc3RhdGUt PnJlZ3BhZ2VidWYsIEJVRkZFUl9MT0NLX1VOTE9DSyk7CisJCQkJY29udGludWU7CisJCQl9CisK KwkJCXJldm1hcF9pdGVtX2VyZXBvcnQoc3RhdGUsCisJCQkJCQkJCXBzcHJpbnRmKCJyZXZtYXAg aXRlbSBvZmZzZXQgbnVtYmVyICV1IGlzIGdyZWF0ZXIgdGhhbiByZWd1bGFyIHBhZ2UgJXUgbWF4 IG9mZnNldCAldSIsCisJCQkJCQkJCQkJIHN0YXRlLT5yZWdwYWdlb2Zmc2V0LAorCQkJCQkJCQkJ CSBzdGF0ZS0+cmVncGFnZUJsaywKKwkJCQkJCQkJCQkgUGFnZUdldE1heE9mZnNldE51bWJlcihz dGF0ZS0+cmVncGFnZSkpKTsKKwkJfQorCisJCWVsb2coREVCVUczLCAiUHJvY2VzcyByYW5nZTog JXUsIGlwdHI6ICgldSwldSkiLCBzdGF0ZS0+cmFuZ2VCbGtubywgc3RhdGUtPnJlZ3BhZ2VCbGss IHN0YXRlLT5yZWdwYWdlb2Zmc2V0KTsKKworCQkvKgorCQkgKiBSZXZtYXAgcG9pbnRlciBpcyBP Sy4gSXQgcG9pbnRzIHRvIGV4aXN0aW5nIHJlZ3VsYXIgcGFnZSwgb2Zmc2V0CisJCSAqIGFsc28g aXMgb2suIExldCdzIGNoZWNrIGluZGV4IHR1cGxlIGl0IHBvaW50cyB0by4KKwkJICovCisKKwkJ bHAgPSBQYWdlR2V0SXRlbUlkQ2FyZWZ1bChzdGF0ZSk7CisKKwkJLyogUmV2bWFwIHNob3VsZCBw b2ludCB0byBOT1JNQUwgdHVwbGVzIG9ubHkgKi8KKwkJaWYgKCFJdGVtSWRJc1VzZWQobHApKQor CQl7CisKKwkJCS8qIElmIGNvbmN1cnJlbnQgdXBkYXRlIG1vdmVkIG91ciB0dXBsZSB3ZSBuZWVk IHRvIHJldHJ5ICovCisJCQlpZiAoIXJldm1hcF9wb2ludHNfdG9faW5kZXhfdHVwbGUoc3RhdGUp KQorCQkJeworCQkJCUxvY2tCdWZmZXIoc3RhdGUtPnJlZ3BhZ2VidWYsIEJVRkZFUl9MT0NLX1VO TE9DSyk7CisJCQkJY29udGludWU7CisJCQl9CisKKwkJCWluZGV4X3R1cGxlX2VyZXBvcnQoc3Rh dGUsICJyZXZtYXAgaXRlbSBwb2ludHMgdG8gdW51c2VkIGluZGV4IHR1cGxlIik7CisJCX0KKwor CisJCXR1cCA9IChCcmluVHVwbGUgKikgUGFnZUdldEl0ZW0oc3RhdGUtPnJlZ3BhZ2UsIGxwKTsK KworCQkvKiBDaGVjayBpZiByYW5nZSBibG9jayBudW1iZXIgaXMgYXMgZXhwZWN0ZWQgKi8KKwkJ aWYgKHR1cC0+YnRfYmxrbm8gIT0gc3RhdGUtPnJhbmdlQmxrbm8pCisJCXsKKworCQkJLyogSWYg Y29uY3VycmVudCB1cGRhdGUgbW92ZWQgb3VyIHR1cGxlIHdlIG5lZWQgdG8gcmV0cnkgKi8KKwkJ CWlmICghcmV2bWFwX3BvaW50c190b19pbmRleF90dXBsZShzdGF0ZSkpCisJCQl7CisJCQkJTG9j a0J1ZmZlcihzdGF0ZS0+cmVncGFnZWJ1ZiwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKKwkJCQljb250 aW51ZTsKKwkJCX0KKworCQkJaW5kZXhfdHVwbGVfZXJlcG9ydChzdGF0ZSwgcHNwcmludGYoImlu ZGV4IHR1cGxlIGhhcyBpbnZhbGlkIGJsa25vICV1IiwgdHVwLT5idF9ibGtubykpOworCQl9CisK KwkJLyoKKwkJICogSWYgdGhlIHJhbmdlIGlzIGJleW9uZCB0aGUgdGFibGUgc2l6ZSAtIHRoZSBy YW5nZSBtdXN0IGJlIGVtcHR5LgorCQkgKiBJdCdzIHZhbGlkIHNpdHVhdGlvbiBmb3IgZW1wdHkg dGFibGUgbm93LgorCQkgKi8KKwkJaWYgKHN0YXRlLT5yYW5nZUJsa25vID49IHN0YXRlLT5oZWFw bmJsb2NrcykKKwkJeworCQkJaWYgKCFCcmluVHVwbGVJc0VtcHR5UmFuZ2UodHVwKSkKKwkJCXsK KwkJCQlpbmRleF90dXBsZV9lcmVwb3J0KHN0YXRlLAorCQkJCQkJCQkJcHNwcmludGYoInRoZSBy YW5nZSBpcyBiZXlvbmQgdGhlIHRhYmxlIHNpemUsICIKKwkJCQkJCQkJCQkJICJidXQgaXMgbm90 IG1hcmtlZCBhcyBlbXB0eSwgdGFibGUgc2l6ZTogJXUgYmxvY2tzIiwKKwkJCQkJCQkJCQkJIHN0 YXRlLT5oZWFwbmJsb2NrcykpOworCQkJfQorCQl9CisKKwkJLyogQ2hlY2sgaW5kZXggdHVwbGUg aXRzZWxmICovCisJCWNoZWNrX2luZGV4X3R1cGxlKHN0YXRlLCB0dXAsIGxwKTsKKworCQlMb2Nr QnVmZmVyKHN0YXRlLT5yZWdwYWdlYnVmLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCQlicmVhazsK Kwl9Cit9CisKKy8qCisgKiBDaGVjayB0aGF0IGluZGV4IHR1cGxlIGhhcyBleHBlY3RlZCBzdHJ1 Y3R1cmUuCisgKgorICogVGhpcyBmdW5jdGlvbiBmb2xsb3dzIHRoZSBsb2dpYyBwZXJmb3JtZWQg YnkgYnJpbl9kZWZvcm1fdHVwbGUoKS4KKyAqIEFmdGVyIHRoaXMgY2hlY2sgaXMgY29tcGxldGUg d2UgYXJlIHN1cmUgdGhhdCBicmluX2RlZm9ybV90dXBsZSBjYW4gcHJvY2VzcyBpdC4KKyAqCisg KiBJbiBjYXNlIG9mIGVtcHR5IHJhbmdlIGNoZWNrIHRoYXQgZm9yIGFsbCBhdHRyaWJ1dGVzIGFs bG51bGxzIGFyZSB0cnVlLCBoYXNudWxscyBhcmUgZmFsc2UgYW5kCisgKiB0aGVyZSBpcyBubyBk YXRhLiBBbGwgY29yZSBvcGNsYXNzZXMgZXhwZWN0IGFsbG51bGxzIGlzIHRydWUgZm9yIGVtcHR5 IHJhbmdlLgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfaW5kZXhfdHVwbGUoQnJpbkNoZWNrU3Rh dGUgKiBzdGF0ZSwgQnJpblR1cGxlICp0dXBsZSwgSXRlbUlkIGxwKQoreworCisJY2hhcgkgICAq dHA7CQkJCS8qIHR1cGxlIGRhdGEgKi8KKwl1aW50MTYJCW9mZjsKKwliaXRzOAkgICAqbnVsbGJp dHM7CisJVHVwbGVEZXNjCWRpc2t0ZGVzYzsKKwlpbnQJCQlzdG9yZWQ7CisJYm9vbAkJZW1wdHlf cmFuZ2UgPSBCcmluVHVwbGVJc0VtcHR5UmFuZ2UodHVwbGUpOworCWJvb2wJCWhhc251bGxiaXRt YXAgPSBCcmluVHVwbGVIYXNOdWxscyh0dXBsZSk7CisJdWludDgJCWhvZmYgPSBCcmluVHVwbGVE YXRhT2Zmc2V0KHR1cGxlKTsKKwl1aW50MTYJCXR1cGxlbiA9IEl0ZW1JZEdldExlbmd0aChscCk7 CisKKworCS8qIENoZWNrIHRoYXQgaGVhZGVyIGxlbmd0aCBpcyBub3QgZ3JlYXRlciB0aGFuIHR1 cGxlIGxlbmd0aCAqLworCWlmIChob2ZmID4gdHVwbGVuKQorCXsKKwkJaW5kZXhfdHVwbGVfZXJl cG9ydChzdGF0ZSwgcHNwcmludGYoImluZGV4IHR1cGxlIGhlYWRlciBsZW5ndGggJXUgaXMgZ3Jl YXRlciB0aGFuIHR1cGxlIGxlbiAldSIsIGhvZmYsIHR1cGxlbikpOworCX0KKworCS8qIElmIHR1 cGxlIGhhcyBudWxsIGJpdG1hcCAtIGluaXRpYWxpemUgaXQgKi8KKwlpZiAoaGFzbnVsbGJpdG1h cCkKKwl7CisJCW51bGxiaXRzID0gKGJpdHM4ICopICgoY2hhciAqKSB0dXBsZSArIFNpemVPZkJy aW5UdXBsZSk7CisJfQorCWVsc2UKKwl7CisJCW51bGxiaXRzID0gTlVMTDsKKwl9CisKKwkvKiBF bXB0eSByYW5nZSBpbmRleCB0dXBsZSBjaGVja3MgKi8KKwlpZiAoZW1wdHlfcmFuZ2UpCisJewor CQkvKiBFbXB0eSByYW5nZSB0dXBsZSBzaG91bGQgaGF2ZSBudWxsIGJpdG1hcCAqLworCQlpZiAo IWhhc251bGxiaXRtYXApCisJCXsKKwkJCWluZGV4X3R1cGxlX2VyZXBvcnQoc3RhdGUsICJlbXB0 eSByYW5nZSBpbmRleCB0dXBsZSBkb2Vzbid0IGhhdmUgbnVsbCBiaXRtYXAiKTsKKwkJfQorCisJ CUFzc2VydChudWxsYml0cyAhPSBOVUxMKTsKKworCQkvKiBDaGVjayBldmVyeSBhdHRyaWJ1dGUg aGFzIGFsbG51bGxzIGlzIHRydWUgYW5kIGhhc251bGxzIGlzIGZhbHNlICovCisJCWZvciAoaW50 IGF0dGluZGV4ID0gMDsgYXR0aW5kZXggPCBzdGF0ZS0+bmF0dHM7ICsrYXR0aW5kZXgpCisJCXsK KworCQkJLyogQXR0cmlidXRlIGFsbG51bGxzIHNob3VsZCBiZSB0cnVlIGZvciBlbXB0eSByYW5n ZSAqLworCQkJaWYgKGF0dF9pc251bGwoYXR0aW5kZXgsIG51bGxiaXRzKSkKKwkJCXsKKwkJCQlp bmRleF90dXBsZV9lcmVwb3J0KHN0YXRlLAorCQkJCQkJCQkJcHNwcmludGYoImVtcHR5IHJhbmdl IGluZGV4IHR1cGxlIGF0dHJpYnV0ZSAlZCB3aXRoIGFsbG51bGxzIGlzIGZhbHNlIiwKKwkJCQkJ CQkJCQkJIGF0dGluZGV4KSk7CisJCQl9CisKKwkJCS8qIEF0dHJpYnV0ZSBoYXNudWxscyBzaG91 bGQgYmUgZmFsc2UgZm9yIGVtcHR5IHJhbmdlICovCisJCQlpZiAoIWF0dF9pc251bGwoc3RhdGUt Pm5hdHRzICsgYXR0aW5kZXgsIG51bGxiaXRzKSkKKwkJCXsKKwkJCQlpbmRleF90dXBsZV9lcmVw b3J0KHN0YXRlLAorCQkJCQkJCQkJcHNwcmludGYoImVtcHR5IHJhbmdlIGluZGV4IHR1cGxlIGF0 dHJpYnV0ZSAlZCB3aXRoIGhhc251bGxzIGlzIHRydWUiLAorCQkJCQkJCQkJCQkgYXR0aW5kZXgp KTsKKwkJCX0KKwkJfQorCisJCS8qIFdlIGFyZSBkb25lIHdpdGggZW1wdHkgcmFuZ2UgdHVwbGUg Ki8KKwkJcmV0dXJuOworCX0KKworCS8qCisJICogUmFuZ2UgaXMgbWFya2VkIGFzIG5vdCBlbXB0 eSBzbyB3ZSBjYW4gaGF2ZSBzb21lIGRhdGEgaW4gdGhlIHR1cGxlLgorCSAqIFdhbGsgYWxsIGF0 dHJpYnV0ZXMgYW5kIGNoZWNrcyB0aGF0IGFsbCBzdG9yZWQgdmFsdWVzIGZpdCBpbnRvIHRoZQor CSAqIHR1cGxlCisJICovCisKKwl0cCA9IChjaGFyICopIHR1cGxlICsgQnJpblR1cGxlRGF0YU9m ZnNldCh0dXBsZSk7CisJc3RvcmVkID0gMDsKKwlvZmYgPSAwOworCisJZGlza3RkZXNjID0gYnJ0 dXBsZV9kaXNrX3R1cGRlc2Moc3RhdGUtPmJkZXNjKTsKKworCWZvciAoaW50IGF0dGluZGV4ID0g MDsgYXR0aW5kZXggPCBzdGF0ZS0+bmF0dHM7ICsrYXR0aW5kZXgpCisJeworCQlCcmluT3BjSW5m byAqb3BjbGFzcyA9IHN0YXRlLT5iZGVzYy0+YmRfaW5mb1thdHRpbmRleF07CisKKwkJLyoKKwkJ ICogaWYgYWxsbnVsbHMgaXMgc2V0IHdlIGhhdmUgbm8gZGF0YSBmb3IgdGhpcyBhdHRyaWJ1dGUs IG1vdmUgdG8gdGhlCisJCSAqIG5leHQKKwkJICovCisJCWlmIChoYXNudWxsYml0bWFwICYmICFh dHRfaXNudWxsKGF0dGluZGV4LCBudWxsYml0cykpCisJCXsKKwkJCXN0b3JlZCArPSBvcGNsYXNz LT5vaV9uc3RvcmVkOworCQkJY29udGludWU7CisJCX0KKworCQkvKiBXYWxrIGFsbCBzdG9yZWQg dmFsdWVzIGZvciB0aGUgY3VycmVudCBhdHRyaWJ1dGUgKi8KKwkJZm9yIChpbnQgZGF0dW1ubyA9 IDA7IGRhdHVtbm8gPCBvcGNsYXNzLT5vaV9uc3RvcmVkOyBkYXR1bW5vKyspCisJCXsKKwkJCUNv bXBhY3RBdHRyaWJ1dGUgKnRoaXNhdHQgPSBUdXBsZURlc2NDb21wYWN0QXR0cihkaXNrdGRlc2Ms IHN0b3JlZCk7CisKKwkJCWlmICh0aGlzYXR0LT5hdHRsZW4gPT0gLTEpCisJCQl7CisJCQkJb2Zm ID0gYXR0X3BvaW50ZXJfYWxpZ25ieShvZmYsCisJCQkJCQkJCQkJICB0aGlzYXR0LT5hdHRhbGln bmJ5LAorCQkJCQkJCQkJCSAgLTEsCisJCQkJCQkJCQkJICB0cCArIG9mZik7CisJCQl9CisJCQll bHNlCisJCQl7CisJCQkJb2ZmID0gYXR0X25vbWluYWxfYWxpZ25ieShvZmYsIHRoaXNhdHQtPmF0 dGFsaWduYnkpOworCQkJfQorCisJCQkvKiBDaGVjayB0aGF0IHdlIGFyZSBzdGlsbCBpbiB0aGUg dHVwbGUgKi8KKwkJCWlmIChob2ZmICsgb2ZmID4gdHVwbGVuKQorCQkJeworCQkJCWluZGV4X3R1 cGxlX2VyZXBvcnQoc3RhdGUsCisJCQkJCQkJCQlwc3ByaW50ZigiYXR0cmlidXRlICV1IHN0b3Jl ZCB2YWx1ZSAldSB3aXRoIGxlbmd0aCAlZCAiCisJCQkJCQkJCQkJCSAic3RhcnRzIGF0IG9mZnNl dCAldSBiZXlvbmQgdG90YWwgdHVwbGUgbGVuZ3RoICV1IiwKKwkJCQkJCQkJCQkJIGF0dGluZGV4 LCBkYXR1bW5vLCB0aGlzYXR0LT5hdHRsZW4sIG9mZiwgdHVwbGVuKSk7CisJCQl9CisKKwkJCW9m ZiA9IGF0dF9hZGRsZW5ndGhfcG9pbnRlcihvZmYsIHRoaXNhdHQtPmF0dGxlbiwgdHAgKyBvZmYp OworCisJCQkvKiBDaGVjayB0aGF0IHdlIGFyZSBzdGlsbCBpbiB0aGUgdHVwbGUgKi8KKwkJCWlm IChob2ZmICsgb2ZmID4gdHVwbGVuKQorCQkJeworCQkJCWluZGV4X3R1cGxlX2VyZXBvcnQoc3Rh dGUsCisJCQkJCQkJCQlwc3ByaW50ZigiYXR0cmlidXRlICV1IHN0b3JlZCB2YWx1ZSAldSB3aXRo IGxlbmd0aCAlZCAiCisJCQkJCQkJCQkJCSAiZW5kcyBhdCBvZmZzZXQgJXUgYmV5b25kIHRvdGFs IHR1cGxlIGxlbmd0aCAldSIsCisJCQkJCQkJCQkJCSBhdHRpbmRleCwgZGF0dW1ubywgdGhpc2F0 dC0+YXR0bGVuLCBvZmYsIHR1cGxlbikpOworCQkJfQorCQkJc3RvcmVkKys7CisJCX0KKworCX0K KworfQorCisvKgorICogQ2hlY2sgYWxsIHBhZ2VzIHdpdGhpbiB0aGUgcmFuZ2UgW2xhc3RSZXZt YXBQYWdlICsgMSwgaW5kZXhuYmxvY2tzXSBhcmUgcmVndWxhciBwYWdlcyBvciBuZXcKKyAqIGFu ZCB0aGVyZSBpcyBhIHBvaW50ZXIgaW4gcmV2bWFwIHRvIGVhY2ggTk9STUFMIGluZGV4IHR1cGxl LgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfcmVndWxhcl9wYWdlcyhCcmluQ2hlY2tTdGF0ZSAq IHN0YXRlKQoreworCVJlYWRTdHJlYW0gKnN0cmVhbTsKKwlpbnQJCQlzdHJlYW1fZmxhZ3M7CisJ UmVhZFN0cmVhbUJsb2NrTnVtYmVyQ0Igc3RyZWFtX2NiOworCUJsb2NrUmFuZ2VSZWFkU3RyZWFt UHJpdmF0ZSBzdHJlYW1fZGF0YTsKKworCWlmICghc3RhdGUtPnJlZ3VsYXJfcGFnZXNfY2hlY2sp CisJeworCQlyZXR1cm47CisJfQorCisJLyogcmVzZXQgc3RhdGUgKi8KKwlzdGF0ZS0+cmV2bWFw QmxrID0gSW52YWxpZEJsb2NrTnVtYmVyOworCXN0YXRlLT5yZXZtYXBidWYgPSBJbnZhbGlkQnVm ZmVyOworCXN0YXRlLT5yZXZtYXBpZHggPSAtMTsKKwlzdGF0ZS0+cmVncGFnZUJsayA9IEludmFs aWRCbG9ja051bWJlcjsKKwlzdGF0ZS0+cmVncGFnZWJ1ZiA9IEludmFsaWRCdWZmZXI7CisJc3Rh dGUtPnJlZ3BhZ2VvZmZzZXQgPSBJbnZhbGlkT2Zmc2V0TnVtYmVyOworCXN0YXRlLT5pZHhuYmxv Y2tzID0gUmVsYXRpb25HZXROdW1iZXJPZkJsb2NrcyhzdGF0ZS0+aWR4cmVsKTsKKworCisJLyoK KwkgKiBQcmVwYXJlIHN0cmVhbSBkYXRhIGZvciByZWd1bGFyIHBhZ2VzIHdhbGsuIEl0IGlzIHNh ZmUgdG8gdXNlIGJhdGNobW9kZQorCSAqIGFzIGJsb2NrX3JhbmdlX3JlYWRfc3RyZWFtX2NiIHRh a2VzIG5vIGxvY2tzLgorCSAqLworCXN0cmVhbV9mbGFncyA9IFJFQURfU1RSRUFNX1NFUVVFTlRJ QUwgfCBSRUFEX1NUUkVBTV9VU0VfQkFUQ0hJTkcgfCBSRUFEX1NUUkVBTV9GVUxMOworCS8qIEZp cnN0IHJlZ3VsYXIgcGFnZSBpcyByaWdodCBhZnRlciB0aGUgbGFzdCByZXZtYXAgcGFnZSAqLwor CXN0cmVhbV9kYXRhLmN1cnJlbnRfYmxvY2tudW0gPSBzdGF0ZS0+bGFzdFJldm1hcFBhZ2UgKyAx OworCXN0cmVhbV9kYXRhLmxhc3RfZXhjbHVzaXZlID0gc3RhdGUtPmlkeG5ibG9ja3M7CisKKwlz dHJlYW1fY2IgPSBibG9ja19yYW5nZV9yZWFkX3N0cmVhbV9jYjsKKwlzdHJlYW0gPSByZWFkX3N0 cmVhbV9iZWdpbl9yZWxhdGlvbihzdHJlYW1fZmxhZ3MsCisJCQkJCQkJCQkJR2V0QWNjZXNzU3Ry YXRlZ3koQkFTX0JVTEtSRUFEKSwKKwkJCQkJCQkJCQlzdGF0ZS0+aWR4cmVsLAorCQkJCQkJCQkJ CU1BSU5fRk9SS05VTSwKKwkJCQkJCQkJCQlzdHJlYW1fY2IsCisJCQkJCQkJCQkJJnN0cmVhbV9k YXRhLAorCQkJCQkJCQkJCTApOworCisJd2hpbGUgKChzdGF0ZS0+cmVncGFnZWJ1ZiA9IHJlYWRf c3RyZWFtX25leHRfYnVmZmVyKHN0cmVhbSwgTlVMTCkpICE9IEludmFsaWRCdWZmZXIpCisJewor CQlPZmZzZXROdW1iZXIgbWF4b2ZmOworCisJCXN0YXRlLT5yZWdwYWdlQmxrID0gQnVmZmVyR2V0 QmxvY2tOdW1iZXIoc3RhdGUtPnJlZ3BhZ2VidWYpOworCQlMb2NrQnVmZmVyKHN0YXRlLT5yZWdw YWdlYnVmLCBCVUZGRVJfTE9DS19TSEFSRSk7CisJCXN0YXRlLT5yZWdwYWdlID0gQnVmZmVyR2V0 UGFnZShzdGF0ZS0+cmVncGFnZWJ1Zik7CisKKwkJLyogU2tpcCBuZXcgcGFnZXMgKi8KKwkJaWYg KFBhZ2VJc05ldyhzdGF0ZS0+cmVncGFnZSkpCisJCXsKKwkJCVVubG9ja1JlbGVhc2VCdWZmZXIo c3RhdGUtPnJlZ3BhZ2VidWYpOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoIUJSSU5fSVNf UkVHVUxBUl9QQUdFKHN0YXRlLT5yZWdwYWdlKSkKKwkJeworCQkJYnJpbl9jaGVja19lcmVwb3J0 KHN0YXRlLCBwc3ByaW50ZigiZXhwZWN0ZWQgbmV3IG9yIHJlZ3VsYXIgcGFnZSBhdCBibG9jayAl dSIsIHN0YXRlLT5yZWdwYWdlQmxrKSk7CisJCX0KKworCQkvKiBDaGVjayB0aGF0IGFsbCBOT1JN QUwgaW5kZXggdHVwbGVzIHdpdGhpbiB0aGUgcGFnZSBhcmUgbm90IG9ycGhhbnMgKi8KKwkJbWF4 b2ZmID0gUGFnZUdldE1heE9mZnNldE51bWJlcihzdGF0ZS0+cmVncGFnZSk7CisJCWZvciAoc3Rh dGUtPnJlZ3BhZ2VvZmZzZXQgPSBGaXJzdE9mZnNldE51bWJlcjsgc3RhdGUtPnJlZ3BhZ2VvZmZz ZXQgPD0gbWF4b2ZmOyBzdGF0ZS0+cmVncGFnZW9mZnNldCsrKQorCQl7CisJCQlJdGVtSWQJCWxw OworCQkJQnJpblR1cGxlICAqdHVwOworCQkJQmxvY2tOdW1iZXIgcmV2bWFwQmxrOworCisJCQls cCA9IFBhZ2VHZXRJdGVtSWRDYXJlZnVsKHN0YXRlKTsKKworCQkJaWYgKEl0ZW1JZElzVXNlZChs cCkpCisJCQl7CisJCQkJdHVwID0gKEJyaW5UdXBsZSAqKSBQYWdlR2V0SXRlbShzdGF0ZS0+cmVn cGFnZSwgbHApOworCisJCQkJLyogR2V0IHJldm1hcCBibG9jayBudW1iZXIgZm9yIGluZGV4IHR1 cGxlIGJsa25vICovCisJCQkJcmV2bWFwQmxrID0gKCh0dXAtPmJ0X2Jsa25vIC8gc3RhdGUtPnBh Z2VzUGVyUmFuZ2UpIC8gUkVWTUFQX1BBR0VfTUFYSVRFTVMpICsgMTsKKwkJCQlpZiAocmV2bWFw QmxrID4gc3RhdGUtPmxhc3RSZXZtYXBQYWdlKQorCQkJCXsKKwkJCQkJaW5kZXhfdHVwbGVfb25s eV9lcmVwb3J0KHN0YXRlLCBwc3ByaW50Zigibm8gcmV2bWFwIHBhZ2UgZm9yIHRoZSBpbmRleCB0 dXBsZSB3aXRoIGJsa25vICV1IiwKKwkJCQkJCQkJCQkJCQkJCSB0dXAtPmJ0X2Jsa25vKSk7CisJ CQkJfQorCisJCQkJLyogRmV0Y2ggYW5vdGhlciByZXZtYXAgcGFnZSBpZiBuZWVkZWQgKi8KKwkJ CQlpZiAoc3RhdGUtPnJldm1hcEJsayAhPSByZXZtYXBCbGspCisJCQkJeworCQkJCQlpZiAoQmxv Y2tOdW1iZXJJc1ZhbGlkKHN0YXRlLT5yZXZtYXBCbGspKQorCQkJCQl7CisJCQkJCQlSZWxlYXNl QnVmZmVyKHN0YXRlLT5yZXZtYXBidWYpOworCQkJCQl9CisJCQkJCXN0YXRlLT5yZXZtYXBCbGsg PSByZXZtYXBCbGs7CisJCQkJCXN0YXRlLT5yZXZtYXBidWYgPSBSZWFkQnVmZmVyRXh0ZW5kZWQo c3RhdGUtPmlkeHJlbCwgTUFJTl9GT1JLTlVNLCBzdGF0ZS0+cmV2bWFwQmxrLCBSQk1fTk9STUFM LAorCQkJCQkJCQkJCQkJCQkgIHN0YXRlLT5jaGVja3N0cmF0ZWd5KTsKKwkJCQl9CisKKwkJCQlz dGF0ZS0+cmV2bWFwaWR4ID0gKHR1cC0+YnRfYmxrbm8gLyBzdGF0ZS0+cGFnZXNQZXJSYW5nZSkg JSBSRVZNQVBfUEFHRV9NQVhJVEVNUzsKKwkJCQlzdGF0ZS0+cmFuZ2VCbGtubyA9IHR1cC0+YnRf Ymxrbm87CisKKwkJCQkvKiBjaGVjayB0aGF0IHJldm1hcCBpdGVtIHBvaW50cyB0byBpbmRleCB0 dXBsZSAqLworCQkJCWlmICghcmV2bWFwX3BvaW50c190b19pbmRleF90dXBsZShzdGF0ZSkpCisJ CQkJeworCQkJCQlpbmRleF90dXBsZV9lcmVwb3J0KHN0YXRlLCBwc3ByaW50ZigicmV2bWFwIGRv ZXNuJ3QgcG9pbnQgdG8gaW5kZXggdHVwbGUiKSk7CisJCQkJfQorCisJCQl9CisJCX0KKworCQlV bmxvY2tSZWxlYXNlQnVmZmVyKHN0YXRlLT5yZWdwYWdlYnVmKTsKKwl9CisKKwlyZWFkX3N0cmVh bV9lbmQoc3RyZWFtKTsKKworCWlmIChzdGF0ZS0+cmV2bWFwYnVmICE9IEludmFsaWRCdWZmZXIp CisJeworCQlSZWxlYXNlQnVmZmVyKHN0YXRlLT5yZXZtYXBidWYpOworCX0KK30KKworLyoKKyAq IENoZWNrIGlmIHRoZSByZXZtYXAgaXRlbSBwb2ludHMgdG8gdGhlIGluZGV4IHR1cGxlIChyZWdw YWdlQmxrLCByZWdwYWdlb2Zmc2V0KS4KKyAqIFdlIGhhdmUgbG9ja2VkIHJlZyBwYWdlLCBhbmQg bG9jayByZXZtYXAgcGFnZSBoZXJlLgorICogSXQncyBhIHZhbGlkIGxvY2sgb3JkZXJpbmcsIHNv IG5vIGRlYWRsb2NrIGlzIHBvc3NpYmxlLgorICovCitzdGF0aWMgYm9vbAorcmV2bWFwX3BvaW50 c190b19pbmRleF90dXBsZShCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlKQoreworCUl0ZW1Qb2ludGVy RGF0YSAqcmV2bWFwdGlkczsKKwlSZXZtYXBDb250ZW50cyAqY29udGVudHM7CisJSXRlbVBvaW50 ZXJEYXRhICp0aWQ7CisJYm9vbAkJcG9pbnRzOworCisJTG9ja0J1ZmZlcihzdGF0ZS0+cmV2bWFw YnVmLCBCVUZGRVJfTE9DS19TSEFSRSk7CisJY29udGVudHMgPSAoUmV2bWFwQ29udGVudHMgKikg UGFnZUdldENvbnRlbnRzKEJ1ZmZlckdldFBhZ2Uoc3RhdGUtPnJldm1hcGJ1ZikpOworCXJldm1h cHRpZHMgPSBjb250ZW50cy0+cm1fdGlkczsKKwl0aWQgPSByZXZtYXB0aWRzICsgc3RhdGUtPnJl dm1hcGlkeDsKKworCXBvaW50cyA9IEl0ZW1Qb2ludGVyR2V0QmxvY2tOdW1iZXJOb0NoZWNrKHRp ZCkgPT0gc3RhdGUtPnJlZ3BhZ2VCbGsgJiYKKwkJSXRlbVBvaW50ZXJHZXRPZmZzZXROdW1iZXJO b0NoZWNrKHRpZCkgPT0gc3RhdGUtPnJlZ3BhZ2VvZmZzZXQ7CisKKwlMb2NrQnVmZmVyKHN0YXRl LT5yZXZtYXBidWYsIEJVRkZFUl9MT0NLX1VOTE9DSyk7CisJcmV0dXJuIHBvaW50czsKK30KKwor LyoKKyAqIFBhZ2VHZXRJdGVtSWQoKSB3cmFwcGVyIHRoYXQgdmFsaWRhdGVzIHJldHVybmVkIGxp bmUgcG9pbnRlci4KKyAqCisgKiBpdGVtSWQgaW4gYnJpbiBpbmRleCBjb3VsZCBiZSBVTlVTRUQg b3IgTk9STUFMLgorICovCitzdGF0aWMgSXRlbUlkCitQYWdlR2V0SXRlbUlkQ2FyZWZ1bChCcmlu Q2hlY2tTdGF0ZSAqIHN0YXRlKQoreworCVBhZ2UJCXBhZ2UgPSBzdGF0ZS0+cmVncGFnZTsKKwlP ZmZzZXROdW1iZXIgb2Zmc2V0ID0gc3RhdGUtPnJlZ3BhZ2VvZmZzZXQ7CisJSXRlbUlkCQlpdGVt aWQgPSBQYWdlR2V0SXRlbUlkKHBhZ2UsIG9mZnNldCk7CisKKwlpZiAoSXRlbUlkR2V0T2Zmc2V0 KGl0ZW1pZCkgKyBJdGVtSWRHZXRMZW5ndGgoaXRlbWlkKSA+CisJCUJMQ0tTWiAtIE1BWEFMSUdO KHNpemVvZihCcmluU3BlY2lhbFNwYWNlKSkpCisJCWluZGV4X3R1cGxlX2VyZXBvcnQoc3RhdGUs CisJCQkJCQkJcHNwcmludGYoImxpbmUgcG9pbnRlciBwb2ludHMgcGFzdCBlbmQgb2YgdHVwbGUg c3BhY2UgaW4gaW5kZXguICIKKwkJCQkJCQkJCSAibHBfb2ZmPSV1LCBscF9sZW49JXUgbHBfZmxh Z3M9JXUiLAorCQkJCQkJCQkJIEl0ZW1JZEdldE9mZnNldChpdGVtaWQpLAorCQkJCQkJCQkJIEl0 ZW1JZEdldExlbmd0aChpdGVtaWQpLAorCQkJCQkJCQkJIEl0ZW1JZEdldEZsYWdzKGl0ZW1pZCkK KwkJCQkJCQkJCSApCisJCQkpOworCisJLyogVmVyaWZ5IHRoYXQgbGluZSBwb2ludGVyIGlzIExQ X05PUk1BTCBvciBMUF9VTlVTRUQgKi8KKwlpZiAoISgoSXRlbUlkSXNOb3JtYWwoaXRlbWlkKSAm JiBJdGVtSWRIYXNTdG9yYWdlKGl0ZW1pZCkpIHx8CisJCSAgKCFJdGVtSWRJc1VzZWQoaXRlbWlk KSAmJiAhSXRlbUlkSGFzU3RvcmFnZShpdGVtaWQpKSkpCisJeworCQlpbmRleF90dXBsZV9lcmVw b3J0KHN0YXRlLAorCQkJCQkJCXBzcHJpbnRmKCJpbnZhbGlkIGxpbmUgcG9pbnRlciBzdG9yYWdl IGluIGluZGV4LiAiCisJCQkJCQkJCQkgImxwX29mZj0ldSwgbHBfbGVuPSV1IGxwX2ZsYWdzPSV1 IiwKKwkJCQkJCQkJCSBJdGVtSWRHZXRPZmZzZXQoaXRlbWlkKSwKKwkJCQkJCQkJCSBJdGVtSWRH ZXRMZW5ndGgoaXRlbWlkKSwKKwkJCQkJCQkJCSBJdGVtSWRHZXRGbGFncyhpdGVtaWQpCisJCQkJ CQkJCQkgKSk7CisJfQorCisJcmV0dXJuIGl0ZW1pZDsKK30KKworCisvKiBSZXBvcnQgd2l0aG91 dCBhbnkgYWRkaXRpb25hbCBpbmZvICovCitzdGF0aWMgdm9pZAorYnJpbl9jaGVja19lcmVwb3J0 KEJyaW5DaGVja1N0YXRlICogc3RhdGUsIGNvbnN0IGNoYXIgKmZtdCkKK3sKKwllcmVwb3J0KEVS Uk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9JTkRFWF9DT1JSVVBURUQpLAorCQkJIGVycm1zZygi SW5kZXggJXMgaXMgY29ycnVwdGVkIC0gJXMiLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShzdGF0 ZS0+aWR4cmVsKSwgZm10KSkpOworfQorCisvKiBSZXBvcnQgd2l0aCByYW5nZSBibGtubywgcmV2 bWFwIGl0ZW0gaW5mbywgaW5kZXggdHVwbGUgaW5mbyAqLwordm9pZAoraW5kZXhfdHVwbGVfZXJl cG9ydChCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlLCBjb25zdCBjaGFyICpmbXQpCit7CisJQXNzZXJ0 KHN0YXRlLT5yYW5nZUJsa25vICE9IEludmFsaWRCbG9ja051bWJlcik7CisJQXNzZXJ0KHN0YXRl LT5yZXZtYXBCbGsgIT0gSW52YWxpZEJsb2NrTnVtYmVyKTsKKwlBc3NlcnQoc3RhdGUtPnJldm1h cGlkeCA+PSAwICYmIHN0YXRlLT5yZXZtYXBpZHggPCBSRVZNQVBfUEFHRV9NQVhJVEVNUyk7CisJ QXNzZXJ0KHN0YXRlLT5yZWdwYWdlQmxrICE9IEludmFsaWRCbG9ja051bWJlcik7CisJQXNzZXJ0 KHN0YXRlLT5yZWdwYWdlb2Zmc2V0ICE9IEludmFsaWRPZmZzZXROdW1iZXIpOworCisJZXJlcG9y dChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNPREVfSU5ERVhfQ09SUlVQVEVEKSwKKwkJCSBlcnJt c2coIkluZGV4ICVzIGlzIGNvcnJ1cHRlZCAtICVzLiBSYW5nZSBibGtubzogJXUsIHJldm1hcCBp dGVtOiAoJXUsJXUpLCBpbmRleCB0dXBsZTogKCV1LCV1KSIsCisJCQkJCVJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHN0YXRlLT5pZHhyZWwpLAorCQkJCQlmbXQsCisJCQkJCXN0YXRlLT5yYW5nZUJs a25vLAorCQkJCQlzdGF0ZS0+cmV2bWFwQmxrLAorCQkJCQlzdGF0ZS0+cmV2bWFwaWR4LAorCQkJ CQlzdGF0ZS0+cmVncGFnZUJsaywKKwkJCQkJc3RhdGUtPnJlZ3BhZ2VvZmZzZXQpKSk7Cit9CisK Ky8qIFJlcG9ydCB3aXRoIGluZGV4IHR1cGxlIGluZm8gKi8KK3ZvaWQKK2luZGV4X3R1cGxlX29u bHlfZXJlcG9ydChCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlLCBjb25zdCBjaGFyICpmbXQpCit7CisJ QXNzZXJ0KHN0YXRlLT5yZWdwYWdlQmxrICE9IEludmFsaWRCbG9ja051bWJlcik7CisJQXNzZXJ0 KHN0YXRlLT5yZWdwYWdlb2Zmc2V0ICE9IEludmFsaWRPZmZzZXROdW1iZXIpOworCisJZXJlcG9y dChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNPREVfSU5ERVhfQ09SUlVQVEVEKSwKKwkJCSBlcnJt c2coIkluZGV4ICVzIGlzIGNvcnJ1cHRlZCAtICVzLiBJbmRleCB0dXBsZTogKCV1LCV1KSIsCisJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHN0YXRlLT5pZHhyZWwpLAorCQkJCQlmbXQsCisJ CQkJCXN0YXRlLT5yZWdwYWdlQmxrLAorCQkJCQlzdGF0ZS0+cmVncGFnZW9mZnNldCkpKTsKK30K KworLyogUmVwb3J0IHdpdGggcmFuZ2UgYmxrbm8sIHJldm1hcCBpdGVtIGluZm8gKi8KK3ZvaWQK K3Jldm1hcF9pdGVtX2VyZXBvcnQoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSwgY29uc3QgY2hhciAq Zm10KQoreworCUFzc2VydChzdGF0ZS0+cmFuZ2VCbGtubyAhPSBJbnZhbGlkQmxvY2tOdW1iZXIp OworCUFzc2VydChzdGF0ZS0+cmV2bWFwQmxrICE9IEludmFsaWRCbG9ja051bWJlcik7CisJQXNz ZXJ0KHN0YXRlLT5yZXZtYXBpZHggPj0gMCAmJiBzdGF0ZS0+cmV2bWFwaWR4IDwgUkVWTUFQX1BB R0VfTUFYSVRFTVMpOworCisJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNPREVfSU5E RVhfQ09SUlVQVEVEKSwKKwkJCSBlcnJtc2coIkluZGV4ICVzIGlzIGNvcnJ1cHRlZCAtICVzLiBS YW5nZSBibGtubzogJXUsIHJldm1hcCBpdGVtOiAoJXUsJXUpLiIsCisJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHN0YXRlLT5pZHhyZWwpLAorCQkJCQlmbXQsCisJCQkJCXN0YXRlLT5yYW5n ZUJsa25vLAorCQkJCQlzdGF0ZS0+cmV2bWFwQmxrLAorCQkJCQlzdGF0ZS0+cmV2bWFwaWR4KSkp OworfQotLSAKMi40My4wCgo= --000000000000ea00d80639475429 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0005-using-withinRange-function-for-heap-all-indexed-c.patch" Content-Disposition: attachment; filename="v6-0005-using-withinRange-function-for-heap-all-indexed-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mcs1ate44 RnJvbSAzNDM3NWVhZmVjODI4YmM5NmZmYmJiZDZlMmViNDMyZWY1NDI0ZGFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnNlbml5IE11a2hpbiA8YXJzZW5peS5tdWtoaW4uZGV2QGdt YWlsLmNvbT4KRGF0ZTogU3VuLCA2IEp1bCAyMDI1IDIxOjQ3OjA1ICswMzAwClN1YmplY3Q6IFtQ QVRDSCB2NiA1LzVdIHVzaW5nIHdpdGhpblJhbmdlIGZ1bmN0aW9uIGZvciBoZWFwIGFsbCBpbmRl eGVkIGNoZWNrCgotLS0KIGNvbnRyaWIvYW1jaGVjay9hbWNoZWNrLS0xLjUtLTEuNi5zcWwgICB8 ICAgNSArLQogY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2JyaW4ub3V0IHwgICA0ICst CiBjb250cmliL2FtY2hlY2svc3FsL2NoZWNrX2JyaW4uc3FsICAgICAgfCAgIDQgKy0KIGNvbnRy aWIvYW1jaGVjay92ZXJpZnlfYnJpbi5jICAgICAgICAgICB8IDI5MiArKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgMjQ4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay9hbWNoZWNrLS0xLjUtLTEuNi5zcWwg Yi9jb250cmliL2FtY2hlY2svYW1jaGVjay0tMS41LS0xLjYuc3FsCmluZGV4IDYzMzdlMDY1YmIx Li5kNGY0NDQ5NWJiYSAxMDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL2FtY2hlY2stLTEuNS0t MS42LnNxbAorKysgYi9jb250cmliL2FtY2hlY2svYW1jaGVjay0tMS41LS0xLjYuc3FsCkBAIC05 LDEyICs5LDExIEBACiAtLQogQ1JFQVRFIEZVTkNUSU9OIGJyaW5faW5kZXhfY2hlY2soaW5kZXgg cmVnY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWd1bGFycGFnZXNj aGVjayBib29sZWFuIGRlZmF1bHQgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoZWFwYWxsaW5kZXhlZCBib29sZWFuIGRlZmF1bHQgZmFsc2UsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zaXN0ZW50X29wZXJhdG9yX25hbWVzIHRleHRbXSBkZWZh dWx0ICd7fScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYXBhbGxpbmRleGVk IGJvb2xlYW4gZGVmYXVsdCBmYWxzZQogKQogICAgIFJFVFVSTlMgVk9JRAogQVMgJ01PRFVMRV9Q QVRITkFNRScsICdicmluX2luZGV4X2NoZWNrJwogTEFOR1VBR0UgQyBTVFJJQ1QgUEFSQUxMRUwg UkVTVFJJQ1RFRDsKIAogLS0gV2UgZG9uJ3Qgd2FudCB0aGlzIHRvIGJlIGF2YWlsYWJsZSB0byBw dWJsaWMKLVJFVk9LRSBBTEwgT04gRlVOQ1RJT04gYnJpbl9pbmRleF9jaGVjayhyZWdjbGFzcywg Ym9vbGVhbiwgYm9vbGVhbiwgdGV4dFtdKSBGUk9NIFBVQkxJQzsKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCitSRVZPS0UgQUxMIE9OIEZVTkNUSU9OIGJyaW5faW5kZXhfY2hlY2socmVnY2xh c3MsIGJvb2xlYW4sIGJvb2xlYW4pIEZST00gUFVCTElDOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19icmluLm91 dCBiL2NvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19icmluLm91dAppbmRleCAwYWE5MGRh ZmEyMC4uMDUwNjc4NThhYTkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9j aGVja19icmluLm91dAorKysgYi9jb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnJpbi5v dXQKQEAgLTExMyw3ICsxMTMsNyBAQCBTRUxFQ1QgQk9YKHBvaW50KHJhbmRvbSgpICogMTAwMCwg cmFuZG9tKCkgKiAxMDAwKSwgcG9pbnQocmFuZG9tKCkgKiAxMDAwLCByYW5kbwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTAwMDApOwogLS0gY3JlYXRlIHNvbWUgZW1wdHkgcmFuZ2VzCiBERUxF VEUgRlJPTSBicmludGVzdCBXSEVSRSBpZCA+IDIwMDAgQU5EIGlkIDwgNDAwMDsKLVNFTEVDVCBi cmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSwgdHJ1ZSwgJ3si QD4ifScpOworU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNT LCB0cnVlLCB0cnVlKTsKICBicmluX2luZGV4X2NoZWNrIAogLS0tLS0tLS0tLS0tLS0tLS0tCiAg CkBAIC0xMjIsNyArMTIyLDcgQEAgU0VMRUNUIGJyaW5faW5kZXhfY2hlY2soJ2JyaW50ZXN0X2lk eCc6OlJFR0NMQVNTLCB0cnVlLCB0cnVlLCAneyJAPiJ9Jyk7CiAtLSByZWJ1aWxkIGluZGV4CiBE Uk9QIElOREVYIGJyaW50ZXN0X2lkeDsKIENSRUFURSBJTkRFWCBicmludGVzdF9pZHggT04gYnJp bnRlc3QgVVNJTkcgQlJJTiAoYSBCT1hfSU5DTFVTSU9OX09QUykgV0lUSCAoUEFHRVNfUEVSX1JB TkdFID0gMik7Ci1TRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRlc3RfaWR4Jzo6UkVHQ0xB U1MsIHRydWUsIHRydWUsICd7IkA+In0nKTsKK1NFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmlu dGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSwgdHJ1ZSk7CiAgYnJpbl9pbmRleF9jaGVjayAKIC0t LS0tLS0tLS0tLS0tLS0tLQogIApkaWZmIC0tZ2l0IGEvY29udHJpYi9hbWNoZWNrL3NxbC9jaGVj a19icmluLnNxbCBiL2NvbnRyaWIvYW1jaGVjay9zcWwvY2hlY2tfYnJpbi5zcWwKaW5kZXggMGY1 ODU2N2Y3NmYuLjc5OTNlZTBmNGQ5IDEwMDY0NAotLS0gYS9jb250cmliL2FtY2hlY2svc3FsL2No ZWNrX2JyaW4uc3FsCisrKyBiL2NvbnRyaWIvYW1jaGVjay9zcWwvY2hlY2tfYnJpbi5zcWwKQEAg LTg4LDEyICs4OCwxMiBAQCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwMCk7CiAtLSBjcmVh dGUgc29tZSBlbXB0eSByYW5nZXMKIERFTEVURSBGUk9NIGJyaW50ZXN0IFdIRVJFIGlkID4gMjAw MCBBTkQgaWQgPCA0MDAwOwogCi1TRUxFQ1QgYnJpbl9pbmRleF9jaGVjaygnYnJpbnRlc3RfaWR4 Jzo6UkVHQ0xBU1MsIHRydWUsIHRydWUsICd7IkA+In0nKTsKK1NFTEVDVCBicmluX2luZGV4X2No ZWNrKCdicmludGVzdF9pZHgnOjpSRUdDTEFTUywgdHJ1ZSwgdHJ1ZSk7CiAKIC0tIHJlYnVpbGQg aW5kZXgKIERST1AgSU5ERVggYnJpbnRlc3RfaWR4OwogQ1JFQVRFIElOREVYIGJyaW50ZXN0X2lk eCBPTiBicmludGVzdCBVU0lORyBCUklOIChhIEJPWF9JTkNMVVNJT05fT1BTKSBXSVRIIChQQUdF U19QRVJfUkFOR0UgPSAyKTsKLVNFTEVDVCBicmluX2luZGV4X2NoZWNrKCdicmludGVzdF9pZHgn OjpSRUdDTEFTUywgdHJ1ZSwgdHJ1ZSwgJ3siQD4ifScpOworU0VMRUNUIGJyaW5faW5kZXhfY2hl Y2soJ2JyaW50ZXN0X2lkeCc6OlJFR0NMQVNTLCB0cnVlLCB0cnVlKTsKIC0tIGNsZWFudXAKIERS T1AgVEFCTEUgYnJpbnRlc3Q7CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlf YnJpbi5jIGIvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9icmluLmMKaW5kZXggMDFhNjliNjE2Y2Mu LmE2MDQ5OTk3OGIzIDEwMDY0NAotLS0gYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X2JyaW4uYwor KysgYi9jb250cmliL2FtY2hlY2svdmVyaWZ5X2JyaW4uYwpAQCAtNDAsNyArNDAsNiBAQCB0eXBl ZGVmIHN0cnVjdCBCcmluQ2hlY2tTdGF0ZQogCiAJYm9vbAkJcmVndWxhcnBhZ2VzY2hlY2s7CiAJ Ym9vbAkJaGVhcGFsbGluZGV4ZWQ7Ci0JQXJyYXlUeXBlICAqY29uc2lzdGVudF9vcGVyX25hbWVz OwogCiAJLyogQlJJTiBjaGVjayBjb21tb24gZmllbGRzICovCiAKQEAgLTcxLDE0ICs3MCw5IEBA IHR5cGVkZWYgc3RydWN0IEJyaW5DaGVja1N0YXRlCiAKIAkvKiBIZWFwIGFsbCBpbmRleGVkIGNo ZWNrIGZpZWxkcyAqLwogCi0JU3RyaW5nCSAgKipvcGVyYXRvck5hbWVzOwogCUJyaW5SZXZtYXAg KnJldm1hcDsKIAlCdWZmZXIJCWJ1ZjsKLQlGbWdySW5mbyAgICpjb25zaXN0ZW50Rm47Ci0JLyog U2NhbiBrZXlzIGZvciByZWd1bGFyIHZhbHVlcyAqLwotCVNjYW5LZXkgICAgKm5vbm51bGxfc2s7 Ci0JLyogU2NhbiBrZXlzIGZvciBudWxsIHZhbHVlcyAqLwotCVNjYW5LZXkgICAgKmlzbnVsbF9z azsKKwlGbWdySW5mbyAgICp3aXRoaW5SYW5nZUZuOwogCWRvdWJsZQkJcmFuZ2VfY250OwogCS8q IGZpcnN0IGJsb2NrIG9mIHRoZSBuZXh0IHJhbmdlICovCiAJQmxvY2tOdW1iZXIgbmV4dHJhbmdl QmxrOwpAQCAtMTE1LDggKzEwOSw2IEBAIHN0YXRpYyBJdGVtSWQgUGFnZUdldEl0ZW1JZENhcmVm dWwoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSk7CiAKIHN0YXRpYyB2b2lkIGNoZWNrX2hlYXBfYWxs X2luZGV4ZWQoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSk7CiAKLXN0YXRpYyB2b2lkIGNoZWNrX2Fu ZF9wcmVwYXJlX29wZXJhdG9yX25hbWVzKEJyaW5DaGVja1N0YXRlICogc3RhdGUpOwotCiBzdGF0 aWMgdm9pZCBicmluX2NoZWNrX2NhbGxiYWNrKFJlbGF0aW9uIGluZGV4LAogCQkJCQkJCQlJdGVt UG9pbnRlciB0aWQsCiAJCQkJCQkJCURhdHVtICp2YWx1ZXMsCkBAIC0xMjYsMTAgKzExOCw2IEBA IHN0YXRpYyB2b2lkIGJyaW5fY2hlY2tfY2FsbGJhY2soUmVsYXRpb24gaW5kZXgsCiAKIHN0YXRp YyB2b2lkIGNoZWNrX2hlYXBfdHVwbGUoQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSwgY29uc3QgRGF0 dW0gKnZhbHVlcywgY29uc3QgYm9vbCAqbnVsbHMsIEl0ZW1Qb2ludGVyIHRpZCk7CiAKLXN0YXRp YyBTY2FuS2V5IHByZXBhcmVfbm9ubnVsbF9zY2FuX2tleShjb25zdCBCcmluQ2hlY2tTdGF0ZSAq IHN0YXRlLCBBdHRyTnVtYmVyIGF0dG5vKTsKLQotc3RhdGljIFNjYW5LZXkgcHJlcGFyZV9pc251 bGxfc2Nhbl9rZXkoQXR0ck51bWJlciBhdHRubyk7Ci0KIHN0YXRpYyB2b2lkIGJyaW5fY2hlY2tf ZXJlcG9ydChCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlLCBjb25zdCBjaGFyICpmbXQpOwogCiBzdGF0 aWMgdm9pZCByZXZtYXBfaXRlbV9lcmVwb3J0KEJyaW5DaGVja1N0YXRlICogc3RhdGUsIGNvbnN0 IGNoYXIgKmZtdCk7CkBAIC0xNDgsNyArMTM2LDYgQEAgYnJpbl9pbmRleF9jaGVjayhQR19GVU5D VElPTl9BUkdTKQogCiAJc3RhdGUtPnJlZ3VsYXJwYWdlc2NoZWNrID0gUEdfR0VUQVJHX0JPT0wo MSk7CiAJc3RhdGUtPmhlYXBhbGxpbmRleGVkID0gUEdfR0VUQVJHX0JPT0woMik7Ci0Jc3RhdGUt PmNvbnNpc3RlbnRfb3Blcl9uYW1lcyA9IFBHX0dFVEFSR19BUlJBWVRZUEVfUCgzKTsKIAogCWFt Y2hlY2tfbG9ja19yZWxhdGlvbl9hbmRfY2hlY2soaW5kcmVsaWQsCiAJCQkJCQkJCQlCUklOX0FN X09JRCwKQEAgLTE3MywxNSArMTYwLDYgQEAgYnJpbl9jaGVjayhSZWxhdGlvbiBpZHhyZWwsIFJl bGF0aW9uIGhlYXByZWwsIHZvaWQgKmNhbGxiYWNrX3N0YXRlLCBib29sIHJlYWRvbmwKIAlzdGF0 ZS0+YmRlc2MgPSBicmluX2J1aWxkX2Rlc2MoaWR4cmVsKTsKIAlzdGF0ZS0+bmF0dHMgPSBzdGF0 ZS0+YmRlc2MtPmJkX3R1cGRlc2MtPm5hdHRzOwogCi0JLyoKLQkgKiBXZSBrbm93IGhvdyBtYW55 IGF0dHJpYnV0ZXMgaW5kZXggaGFzLCBzbyBsZXQncyBwcm9jZXNzIG9wZXJhdG9yIG5hbWVzCi0J ICogYXJyYXkKLQkgKi8KLQlpZiAoc3RhdGUtPmhlYXBhbGxpbmRleGVkKQotCXsKLQkJY2hlY2tf YW5kX3ByZXBhcmVfb3BlcmF0b3JfbmFtZXMoc3RhdGUpOwotCX0KLQogCWNoZWNrX2JyaW5faW5k ZXhfc3RydWN0dXJlKHN0YXRlKTsKIAogCWlmIChzdGF0ZS0+aGVhcGFsbGluZGV4ZWQpCkBAIC04 NDgsOCArODI2LDggQEAgUGFnZUdldEl0ZW1JZENhcmVmdWwoQnJpbkNoZWNrU3RhdGUgKiBzdGF0 ZSkKIC8qCiAgKiBDaGVjayB0aGF0IGV2ZXJ5IGhlYXAgdHVwbGUgYXJlIGNvbnNpc3RlbnQgd2l0 aCB0aGUgaW5kZXguCiAgKgotICogSGVyZSB3ZSBnZW5lcmF0ZSBTY2FuS2V5IGZvciBldmVyeSBo ZWFwIHR1cGxlIGFuZCB0ZXN0IGl0IGFnYWluc3QKLSAqIGFwcHJvcHJpYXRlIHJhbmdlIHVzaW5n IGNvbnNpc3RlbnRGbiAoZm9yIFNjYW5LZXkgZ2VuZXJhdGlvbiBsb2dpYyBsb29rICdwcmVwYXJl X25vbm51bGxfc2Nhbl9rZXknKQorICogV2UgdXNlIHdpdGhpblJhbmdlIGZ1bmN0aW9uIGZvciBl dmVyeSBub25udWxsIHZhbHVlIChpbiBjYXNlCisgKiBvZiBpb19yZWd1bGFyX251bGxzID0gZmFs c2Ugd2UgdXNlIHdpdGhpblJhbmdlIGZ1bmN0aW9uIGZvciBudWxsIHZhbHVlcyB0b28pLgogICoK ICAqIEFsc28sIHdlIGNoZWNrIHRoYXQgZmllbGRzICdlbXB0eV9yYW5nZScsICdhbGxfbnVsbHMn IGFuZCAnaGFzX251bGxzJwogICogYXJlIG5vdCB0b28gIm5hcnJvdyIgZm9yIGVhY2ggcmFuZ2Us IHdoaWNoIG1lYW5zOgpAQCAtODc1LDEyICs4NTMsMTAgQEAgY2hlY2tfaGVhcF9hbGxfaW5kZXhl ZChCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlKQogCXN0YXRlLT5yZXZtYXAgPSBicmluUmV2bWFwSW5p dGlhbGl6ZShpZHhyZWwsICZzdGF0ZS0+cGFnZXNQZXJSYW5nZSk7CiAJc3RhdGUtPmR0dXAgPSBi cmluX25ld19tZW10dXBsZShzdGF0ZS0+YmRlc2MpOwogCXN0YXRlLT5jaGVja2FibGVfcmFuZ2Ug PSBmYWxzZTsKLQlzdGF0ZS0+Y29uc2lzdGVudEZuID0gcGFsbG9jMF9hcnJheShGbWdySW5mbywg c3RhdGUtPm5hdHRzKTsKKwlzdGF0ZS0+d2l0aGluUmFuZ2VGbiA9IHBhbGxvYzBfYXJyYXkoRm1n ckluZm8sIHN0YXRlLT5uYXR0cyk7CiAJc3RhdGUtPnJhbmdlX2NudCA9IDA7CiAJLyogbmV4dCBy YW5nZSBpcyB0aGUgZmlyc3QgcmFuZ2UgaW4gdGhlIGJlZ2lubmluZyAqLwogCXN0YXRlLT5uZXh0 cmFuZ2VCbGsgPSAwOwotCXN0YXRlLT5ub25udWxsX3NrID0gcGFsbG9jMF9hcnJheShTY2FuS2V5 LCBzdGF0ZS0+bmF0dHMpOwotCXN0YXRlLT5pc251bGxfc2sgPSBwYWxsb2MwX2FycmF5KFNjYW5L ZXksIHN0YXRlLT5uYXR0cyk7CiAJc3RhdGUtPnJhbmdlQ3R4ID0gQWxsb2NTZXRDb250ZXh0Q3Jl YXRlKEN1cnJlbnRNZW1vcnlDb250ZXh0LAogCQkJCQkJCQkJCQkiYnJpbiBjaGVjayByYW5nZSBj b250ZXh0IiwKIAkJCQkJCQkJCQkJQUxMT0NTRVRfREVGQVVMVF9TSVpFUyk7CkBAIC04ODgsMTkg Kzg2NCwzMiBAQCBjaGVja19oZWFwX2FsbF9pbmRleGVkKEJyaW5DaGVja1N0YXRlICogc3RhdGUp CiAJCQkJCQkJCQkJCQkiYnJpbiBjaGVjayB0dXBsZSBjb250ZXh0IiwKIAkJCQkJCQkJCQkJCUFM TE9DU0VUX0RFRkFVTFRfU0laRVMpOwogCi0JLyoKLQkgKiBQcmVwYXJlICJub24tbnVsbCIgYW5k ICJpc19udWxsIiBzY2FuIGtleXMgYW5kIGNvbnNpc3RlbnQgZm4gZm9yIGVhY2gKLQkgKiBhdHRy aWJ1dGUKLQkgKi8KKwkvKiBQcmVwYXJlIHdpdGhpblJhbmdlIGZ1bmN0aW9uIGZvciBlYWNoIGF0 dHJpYnV0ZSAqLwogCWZvciAoQXR0ck51bWJlciBhdHRubyA9IDE7IGF0dG5vIDw9IHN0YXRlLT5u YXR0czsgYXR0bm8rKykKIAl7Ci0JCUZtZ3JJbmZvICAgKnRtcDsKKwkJaWYgKFJlZ1Byb2NlZHVy ZUlzVmFsaWQoaW5kZXhfZ2V0cHJvY2lkKHN0YXRlLT5pZHhyZWwsIGF0dG5vLCBCUklOX1BST0NO VU1fV0lUSElOUkFOR0UpKSkKKwkJeworCQkJRm1nckluZm8gICAqZm4gPSBpbmRleF9nZXRwcm9j aW5mbyhpZHhyZWwsIGF0dG5vLCBCUklOX1BST0NOVU1fV0lUSElOUkFOR0UpOwogCi0JCXRtcCA9 IGluZGV4X2dldHByb2NpbmZvKGlkeHJlbCwgYXR0bm8sIEJSSU5fUFJPQ05VTV9DT05TSVNURU5U KTsKLQkJZm1ncl9pbmZvX2NvcHkoJnN0YXRlLT5jb25zaXN0ZW50Rm5bYXR0bm8gLSAxXSwgdG1w LCBDdXJyZW50TWVtb3J5Q29udGV4dCk7CisJCQlmbWdyX2luZm9fY29weSgmc3RhdGUtPndpdGhp blJhbmdlRm5bYXR0bm8gLSAxXSwgZm4sIEN1cnJlbnRNZW1vcnlDb250ZXh0KTsKKwkJfQorCQll bHNlCisJCXsKKwkJCS8qCisJCQkgKiBJZiB0aGVyZSBpcyBubyB3aXRoaW5SYW5nZSBmdW5jdGlv biBmb3IgdGhlIGF0dHJpYnV0ZSwgbm90aWNlCisJCQkgKiB1c2VyIGFib3V0IGl0LiBXZSBjb250 aW51ZSBoZWFwIGFsbCBpbmRleGVkIGNoZWNrIGV2ZW4gZm9yCisJCQkgKiBpbmRleGVzIHdpdGgg anVzdCBvbmUgYXR0cmlidXRlIGFzIGV2ZW4gd2l0aG91dCBzdXBwb3J0CisJCQkgKiBmdW5jdGlv biBzb21lIGVycm9ycyBjb3VsZCBiZSBkZXRlY3RlZC4KKwkJCSAqLworCQkJZXJlcG9ydChOT1RJ Q0UsCisJCQkJCWVycm1zZygiTWlzc2luZyBzdXBwb3J0IGZ1bmN0aW9uICVkIGZvciBhdHRyaWJ1 dGUgJWQgb2YgaW5kZXggXCIlc1wiLiAiCisJCQkJCQkgICAiU2tpcCBoZWFwIGFsbCBpbmRleGVk IGNoZWNrIGZvciB0aGlzIGF0dHJpYnV0ZS4iLAorCQkJCQkJICAgQlJJTl9QUk9DTlVNX1dJVEhJ TlJBTkdFLAorCQkJCQkJICAgYXR0bm8sCisJCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShzdGF0ZS0+aWR4cmVsKQorCQkJCQkJICAgKSk7CisJCX0KIAotCQlzdGF0ZS0+bm9ubnVsbF9z a1thdHRubyAtIDFdID0gcHJlcGFyZV9ub25udWxsX3NjYW5fa2V5KHN0YXRlLCBhdHRubyk7Ci0J CXN0YXRlLT5pc251bGxfc2tbYXR0bm8gLSAxXSA9IHByZXBhcmVfaXNudWxsX3NjYW5fa2V5KGF0 dG5vKTsKIAl9CiAKIAlpbmRleEluZm8gPSBCdWlsZEluZGV4SW5mbyhpZHhyZWwpOwpAQCAtOTI2 LDE1MiArOTE1LDYgQEAgY2hlY2tfaGVhcF9hbGxfaW5kZXhlZChCcmluQ2hlY2tTdGF0ZSAqIHN0 YXRlKQogCU1lbW9yeUNvbnRleHREZWxldGUoc3RhdGUtPmhlYXB0dXBsZUN0eCk7CiB9CiAKLS8q Ci0gKiBDaGVjayBvcGVyYXRvciBuYW1lcyBhcnJheSBpbnB1dCBwYXJhbWV0ZXIgYW5kIGNvbnZl cnQgaXQgdG8gYXJyYXkgb2Ygc3RyaW5ncwotICogRW1wdHkgaW5wdXQgYXJyYXkgbWVhbnMgd2Ug dXNlICI9IiBvcGVyYXRvciBmb3IgZXZlcnkgYXR0cmlidXRlCi0gKi8KLXN0YXRpYyB2b2lkCi1j aGVja19hbmRfcHJlcGFyZV9vcGVyYXRvcl9uYW1lcyhCcmluQ2hlY2tTdGF0ZSAqIHN0YXRlKQot ewotCU9pZAkJCWVsZW1lbnRfdHlwZSA9IEFSUl9FTEVNVFlQRShzdGF0ZS0+Y29uc2lzdGVudF9v cGVyX25hbWVzKTsKLQlpbnQxNgkJdHlwbGVuOwotCWJvb2wJCXR5cGJ5dmFsOwotCWNoYXIJCXR5 cGFsaWduOwotCURhdHVtCSAgICp2YWx1ZXM7Ci0JYm9vbAkgICAqZWxlbV9udWxsczsKLQlpbnQJ CQludW1fZWxlbXM7Ci0KLQlzdGF0ZS0+b3BlcmF0b3JOYW1lcyA9IHBhbGxvYyhzaXplb2YoU3Ry aW5nKSAqIHN0YXRlLT5uYXR0cyk7Ci0KLQlnZXRfdHlwbGVuYnl2YWxhbGlnbihlbGVtZW50X3R5 cGUsICZ0eXBsZW4sICZ0eXBieXZhbCwgJnR5cGFsaWduKTsKLQlkZWNvbnN0cnVjdF9hcnJheShz dGF0ZS0+Y29uc2lzdGVudF9vcGVyX25hbWVzLCBlbGVtZW50X3R5cGUsIHR5cGxlbiwgdHlwYnl2 YWwsIHR5cGFsaWduLAotCQkJCQkgICZ2YWx1ZXMsICZlbGVtX251bGxzLCAmbnVtX2VsZW1zKTsK LQotCS8qIElmIHdlIGhhdmUgc29tZSBpbnB1dCBjaGVjayBpdCBhbmQgY29udmVydCB0byBTdHJp bmcqKiAqLwotCWlmIChudW1fZWxlbXMgIT0gMCkKLQl7Ci0JCWlmIChudW1fZWxlbXMgIT0gc3Rh dGUtPm5hdHRzKQotCQl7Ci0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RF X0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJIGVycm1zZygiT3BlcmF0b3IgbmFtZXMg YXJyYXkgbGVuZ3RoICV1LCBidXQgaW5kZXggaGFzICV1IGF0dHJpYnV0ZXMiLAotCQkJCQkJCW51 bV9lbGVtcywgc3RhdGUtPm5hdHRzKSkpOwotCQl9Ci0KLQkJZm9yIChpbnQgaSA9IDA7IGkgPCBu dW1fZWxlbXM7IGkrKykKLQkJewotCQkJaWYgKGVsZW1fbnVsbHNbaV0pCi0JCQl7Ci0JCQkJZXJl cG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFM VUUpLAotCQkJCQkJIGVycm1zZygiT3BlcmF0b3IgbmFtZXMgYXJyYXkgY29udGFpbnMgTlVMTCIp KSk7Ci0JCQl9Ci0JCQlzdGF0ZS0+b3BlcmF0b3JOYW1lc1tpXSA9IG1ha2VTdHJpbmcoVGV4dERh dHVtR2V0Q1N0cmluZyh2YWx1ZXNbaV0pKTsKLQkJfQotCX0KLQllbHNlCi0JewotCQkvKiBJZiB0 aGVyZSBpcyBubyBpbnB1dCBqdXN0IHVzZSAiPSIgb3BlcmF0b3IgZm9yIGFsbCBhdHRyaWJ1dGVz ICovCi0JCWZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGUtPm5hdHRzOyBpKyspCi0JCXsKLQkJCXN0 YXRlLT5vcGVyYXRvck5hbWVzW2ldID0gbWFrZVN0cmluZygiPSIpOwotCQl9Ci0JfQotfQotCi0v KgotICogUHJlcGFyZSBTY2FuS2V5IGZvciBpbmRleCBhdHRyaWJ1dGUuCi0gKgotICogQ29uc2lz dGVudEZuIHJlcXVpcmVzIFNjYW5LZXksIHNvIHdlIG5lZWQgdG8gZ2VuZXJhdGUgU2NhbktleSBm b3IgZXZlcnkKLSAqIGF0dHJpYnV0ZSBzb21laG93LiBXZSB3YW50IFNjYW5LZXkgdGhhdCB3b3Vs ZCByZXN1bHQgaW4gVFJVRSBmb3IgZXZlcnkgaGVhcAotICogdHVwbGUgd2l0aGluIHRoZSByYW5n ZSB3aGVuIHdlIHVzZSBpdHMgaW5kZXhlZCB2YWx1ZSBhcyBza19hcmd1bWVudC4KLSAqIFRvIGdl bmVyYXRlIHN1Y2ggYSBTY2FuS2V5IHdlIG5lZWQgdG8gZGVmaW5lIHRoZSByaWdodCBvcGVyYW5k IHR5cGUgYW5kIHRoZSBzdHJhdGVneSBudW1iZXIuCi0gKiBSaWdodCBvcGVyYW5kIHR5cGUgaXMg YSB0eXBlIG9mIGRhdGEgdGhhdCBpbmRleCBpcyBidWlsdCBvbiwgc28gaXQncyAnb3BjaW50eXBl Jy4KLSAqIFRoZXJlIGlzIG5vIHN0cmF0ZWd5IG51bWJlciB0aGF0IHdlIGNhbiBhbHdheXMgdXNl LAotICogYmVjYXVzZSBldmVyeSBvcGNsYXNzIGRlZmluZXMgaXRzIG93biBzZXQgb2Ygb3BlcmF0 b3JzIGl0IHN1cHBvcnRzIGFuZCBzdHJhdGVneSBudW1iZXIKLSAqIGZvciB0aGUgc2FtZSBvcGVy YXRvciBjYW4gZGlmZmVyIGZyb20gb3BjbGFzcyB0byBvcGNsYXNzLgotICogU28gdG8gZ2V0IHN0 cmF0ZWd5IG51bWJlciB3ZSBsb29rIHVwIGFuIG9wZXJhdG9yIHRoYXQgZ2l2ZXMgdXMgZGVzaXJl ZCBiZWhhdmlvcgotICogYW5kIHdoaWNoIGJvdGggb3BlcmFuZCB0eXBlcyBhcmUgJ29wY2ludHlw ZScgYW5kIHRoZW4gcmV0cmlldmUgdGhlIHN0cmF0ZWd5IG51bWJlciBmb3IgaXQuCi0gKiBNb3N0 IG9mIHRoZSB0aW1lIHdlIGNhbiB1c2UgJz0nLiBXZSBsZXQgdXNlciBkZWZpbmUgb3BlcmF0b3Ig bmFtZSBpbiBjYXNlIG9wY2xhc3MgZG9lc24ndAotICogc3VwcG9ydCAnPScgb3BlcmF0b3IuIEFs c28sIGlmIHN1Y2ggb3BlcmF0b3IgZG9lc24ndCBleGlzdCwgd2UgY2FuJ3QgcHJvY2VlZCB3aXRo IHRoZSBjaGVjay4KLSAqCi0gKiBHZW5lcmF0ZWQgb25jZSwgYW5kIHdpbGwgYmUgcmV1c2VkIGZv ciBhbGwgaGVhcCB0dXBsZXMuCi0gKiBBcmd1bWVudCBmaWVsZCB3aWxsIGJlIGZpbGxlZCBmb3Ig ZXZlcnkgaGVhcCB0dXBsZSBiZWZvcmUKLSAqIGNvbnNpc3RlbnQgZnVuY3Rpb24gaW52b2NhdGlv biwgc28gbGVhdmUgaXQgTlVMTCBmb3IgYSB3aGlsZS4KLSAqCi0gKi8KLXN0YXRpYyBTY2FuS2V5 Ci1wcmVwYXJlX25vbm51bGxfc2Nhbl9rZXkoY29uc3QgQnJpbkNoZWNrU3RhdGUgKiBzdGF0ZSwg QXR0ck51bWJlciBhdHRubykKLXsKLQlTY2FuS2V5CQlzY2FuS2V5OwotCU9pZAkJCW9wT2lkOwot CU9pZAkJCW9wRmFtaWx5T2lkOwotCWJvb2wJCWRlZmluZWQ7Ci0JU3RyYXRlZ3lOdW1iZXIgc3Ry YXRlZ3k7Ci0JUmVnUHJvY2VkdXJlIG9wUmVnUHJvYzsKLQlMaXN0CSAgICpvcGVyTmFtZUxpc3Q7 Ci0JaW50CQkJYXR0aW5kZXggPSBhdHRubyAtIDE7Ci0JRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ciA9 IFR1cGxlRGVzY0F0dHIoc3RhdGUtPmJkZXNjLT5iZF90dXBkZXNjLCBhdHRpbmRleCk7Ci0JT2lk CQkJdHlwZSA9IHN0YXRlLT5pZHhyZWwtPnJkX29wY2ludHlwZVthdHRpbmRleF07Ci0JU3RyaW5n CSAgICpvcG5hbWUgPSBzdGF0ZS0+b3BlcmF0b3JOYW1lc1thdHRubyAtIDFdOwotCi0Jb3BGYW1p bHlPaWQgPSBzdGF0ZS0+aWR4cmVsLT5yZF9vcGZhbWlseVthdHRpbmRleF07Ci0Jb3Blck5hbWVM aXN0ID0gbGlzdF9tYWtlMShvcG5hbWUpOwotCW9wT2lkID0gT3BlcmF0b3JMb29rdXAob3Blck5h bWVMaXN0LCB0eXBlLCB0eXBlLCAmZGVmaW5lZCk7Ci0KLQlpZiAob3BPaWQgPT0gSW52YWxpZE9p ZCkKLQl7Ci0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURf RlVOQ1RJT04pLAotCQkJCSBlcnJtc2coIlRoZXJlIGlzIG5vIG9wZXJhdG9yICVzIGZvciB0eXBl ICV1IiwKLQkJCQkJCW9wbmFtZS0+c3ZhbCwgdHlwZSkpKTsKLQl9Ci0KLQlzdHJhdGVneSA9IGdl dF9vcF9vcGZhbWlseV9zdHJhdGVneShvcE9pZCwgb3BGYW1pbHlPaWQpOwotCi0JaWYgKHN0cmF0 ZWd5ID09IDApCi0JewotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfV1JP TkdfT0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2coIm9wZXJhdG9yICVzIGlzIG5vdCBhIG1lbWJl ciBvZiBvcGVyYXRvciBmYW1pbHkgXCIlc1wiIiwKLQkJCQkJCW9wbmFtZS0+c3ZhbCwKLQkJCQkJ CWdldF9vcGZhbWlseV9uYW1lKG9wRmFtaWx5T2lkLCBmYWxzZSkpKSk7Ci0JfQotCi0Jb3BSZWdQ cm9jID0gZ2V0X29wY29kZShvcE9pZCk7Ci0Jc2NhbktleSA9IHBhbGxvYzAoc2l6ZW9mKFNjYW5L ZXlEYXRhKSk7Ci0JU2NhbktleUVudHJ5SW5pdGlhbGl6ZSgKLQkJCQkJCSAgIHNjYW5LZXksCi0J CQkJCQkgICAwLAotCQkJCQkJICAgYXR0bm8sCi0JCQkJCQkgICBzdHJhdGVneSwKLQkJCQkJCSAg IHR5cGUsCi0JCQkJCQkgICBhdHRyLT5hdHRjb2xsYXRpb24sCi0JCQkJCQkgICBvcFJlZ1Byb2Ms Ci0JCQkJCQkgICAoRGF0dW0pIE5VTEwKLQkJKTsKLQlwZnJlZShvcGVyTmFtZUxpc3QpOwotCi0J cmV0dXJuIHNjYW5LZXk7Ci19Ci0KLXN0YXRpYyBTY2FuS2V5Ci1wcmVwYXJlX2lzbnVsbF9zY2Fu X2tleShBdHRyTnVtYmVyIGF0dG5vKQotewotCVNjYW5LZXkJCXNjYW5LZXk7Ci0KLQlzY2FuS2V5 ID0gcGFsbG9jMChzaXplb2YoU2NhbktleURhdGEpKTsKLQlTY2FuS2V5RW50cnlJbml0aWFsaXpl KHNjYW5LZXksCi0JCQkJCQkgICBTS19JU05VTEwgfCBTS19TRUFSQ0hOVUxMLAotCQkJCQkJICAg YXR0bm8sCi0JCQkJCQkgICBJbnZhbGlkU3RyYXRlZ3ksCi0JCQkJCQkgICBJbnZhbGlkT2lkLAot CQkJCQkJICAgSW52YWxpZE9pZCwKLQkJCQkJCSAgIEludmFsaWRPaWQsCi0JCQkJCQkgICAoRGF0 dW0pIDApOwotCXJldHVybiBzY2FuS2V5OwotfQotCiAvKgogICogV2Ugd2FsayBmcm9tIHRoZSBm aXJzdCByYW5nZSAoYmxrbm8gPSAwKSB0byB0aGUgbGFzdCBhcyB0aGUgc2NhbiBwcm9jZWVkLgog ICogRm9yIGV2ZXJ5IGhlYXAgdHVwbGUgd2UgY2hlY2sgaWYgd2UgYXJlIGRvbmUgd2l0aCB0aGUg Y3VycmVudCByYW5nZSwgYW5kIHdlIG5lZWQgdG8gbW92ZSBmdXJ0aGVyCkBAIC0xMTU1LDEwICs5 OTgsOCBAQCBicmluX2NoZWNrX2NhbGxiYWNrKFJlbGF0aW9uIGluZGV4LCBJdGVtUG9pbnRlciB0 aWQsIERhdHVtICp2YWx1ZXMsIGJvb2wgKmlzbnVsbAogCiAvKgogICogV2UgY2hlY2sgaGFzbnVs bHMgZmxhZ3MgZm9yIG51bGwgdmFsdWVzIGFuZCBvaV9yZWd1bGFyX251bGxzID0gdHJ1ZSwKLSAq IGNoZWNrIGFsbG51bGxzIGlzIGZhbHNlIGZvciBhbGwgbm9ubnVsbCB2YWx1ZXMgbm90IG1hdHRl ciBvaV9yZWd1bGFyX251bGxzIGlzIHNldCBvciBub3QsCi0gKiBGb3IgYWxsIG90aGVyIGNhc2Vz IHdlIGNhbGwgY29uc2lzdGVudEZuIHdpdGggYXBwcm9wcmlhdGUgc2NhbktleToKLSAqIC0gZm9y IG9pX3JlZ3VsYXJfbnVsbHMgPSBmYWxzZSBhbmQgbnVsbCB2YWx1ZXMgd2UgdXNlICdpc051bGwn IHNjYW5LZXksCi0gKiAtIGZvciBub25udWxsIHZhbHVlcyB3ZSB1c2UgJ25vbm51bGwnIHNjYW5L ZXkKKyAqIGNoZWNrIGFsbG51bGxzIGlzIGZhbHNlIGZvciBhbGwgbm9ubnVsbCB2YWx1ZXMgbm90 IG1hdHRlciBvaV9yZWd1bGFyX251bGxzIGlzIHRydWUgb3Igbm90LAorICogV2UgdXNlIHdpdGhp blJhbmdlRm4gZm9yIGFsbCBub25udWxsIHZhbHVlcyBhbmQgbnVsbCB2YWx1ZXMgaWYgaW9fcmVn dWxhcl9udWxscyA9IGZhbHNlLgogICovCiBzdGF0aWMgdm9pZAogY2hlY2tfaGVhcF90dXBsZShC cmluQ2hlY2tTdGF0ZSAqIHN0YXRlLCBjb25zdCBEYXR1bSAqdmFsdWVzLCBjb25zdCBib29sICpu dWxscywgSXRlbVBvaW50ZXIgdGlkKQpAQCAtMTE3Nyw3OCArMTAxOCw0NyBAQCBjaGVja19oZWFw X3R1cGxlKEJyaW5DaGVja1N0YXRlICogc3RhdGUsIGNvbnN0IERhdHVtICp2YWx1ZXMsIGNvbnN0 IGJvb2wgKm51bGxzLAogCWZvciAoYXR0aW5kZXggPSAwOyBhdHRpbmRleCA8IHN0YXRlLT5uYXR0 czsgYXR0aW5kZXgrKykKIAl7CiAJCUJyaW5WYWx1ZXMgKmJ2YWw7Ci0JCURhdHVtCQljb25zaXN0 ZW50Rm5SZXN1bHQ7Ci0JCWJvb2wJCWNvbnNpc3RlbnQ7Ci0JCVNjYW5LZXkJCXNjYW5LZXk7CisJ CURhdHVtCQl3aXRoaW5SYW5nZUZuUmVzdWx0OworCQlib29sCQl3aXRoaW5SYW5nZTsKIAkJYm9v bAkJb2lfcmVndWxhcl9udWxscyA9IGJkZXNjLT5iZF9pbmZvW2F0dGluZGV4XS0+b2lfcmVndWxh cl9udWxsczsKIAogCQlidmFsID0gJmR0dXAtPmJ0X2NvbHVtbnNbYXR0aW5kZXhdOwogCi0JCWlm IChudWxsc1thdHRpbmRleF0pCisJCS8qCisJCSAqIFVzZSBoYXNudWxscyBmbGFnIGZvciBvaV9y ZWd1bGFyX251bGxzIGlzIHRydWUuIE90aGVyd2lzZSwgZGVsZWdhdGUKKwkJICogY2hlY2sgdG8g d2l0aGluUmFuZ2VGbgorCQkgKi8KKwkJaWYgKG51bGxzW2F0dGluZGV4XSAmJiBvaV9yZWd1bGFy X251bGxzKQogCQl7Ci0JCQkvKgotCQkJICogVXNlIGhhc251bGxzIGZsYWcgZm9yIG9pX3JlZ3Vs YXJfbnVsbHMgaXMgdHJ1ZS4gT3RoZXJ3aXNlLAotCQkJICogZGVsZWdhdGUgY2hlY2sgdG8gY29u c2lzdGVudEZuCi0JCQkgKi8KLQkJCWlmIChvaV9yZWd1bGFyX251bGxzKQorCQkJLyogV2UgaGF2 ZSBudWxsIHZhbHVlLCBzbyBoYXNudWxscyBvciBhbGxudWxscyBtdXN0IGJlIHRydWUgKi8KKwkJ CWlmICghKGJ2YWwtPmJ2X2hhc251bGxzIHx8IGJ2YWwtPmJ2X2FsbG51bGxzKSkKIAkJCXsKLQkJ CQkvKiBXZSBoYXZlIG51bGwgdmFsdWUsIHNvIGhhc251bGxzIG9yIGFsbG51bGxzIG11c3QgYmUg dHJ1ZSAqLwotCQkJCWlmICghKGJ2YWwtPmJ2X2hhc251bGxzIHx8IGJ2YWwtPmJ2X2FsbG51bGxz KSkKLQkJCQl7Ci0JCQkJCWFsbF9jb25zaXN0X2VyZXBvcnQoc3RhdGUsIHRpZCwgInJhbmdlIGhh c251bGxzIGFuZCBhbGxudWxscyBhcmUgZmFsc2UsIGJ1dCBjb250YWlucyBhIG51bGwgdmFsdWUi KTsKLQkJCQl9Ci0JCQkJY29udGludWU7CisJCQkJYWxsX2NvbnNpc3RfZXJlcG9ydChzdGF0ZSwg dGlkLCAicmFuZ2UgaGFzbnVsbHMgYW5kIGFsbG51bGxzIGFyZSBmYWxzZSwgYnV0IGNvbnRhaW5z IGEgbnVsbCB2YWx1ZSIpOwogCQkJfQotCi0JCQkvKgotCQkJICogSW4gY2FzZSBvZiBudWxsIGFu ZCBvaV9yZWd1bGFyX251bGxzID0gZmFsc2Ugd2UgdXNlIGlzTnVsbAotCQkJICogc2NhbktleSBm b3IgaW52b2NhdGlvbiBvZiBjb25zaXN0ZW50Rm4KLQkJCSAqLwotCQkJc2NhbktleSA9IHN0YXRl LT5pc251bGxfc2tbYXR0aW5kZXhdOworCQkJY29udGludWU7CiAJCX0KLQkJZWxzZQotCQl7Ci0J CQkvKiBXZSBoYXZlIGEgbm9ubnVsbCB2YWx1ZSwgc28gYWxsbnVsbHMgc2hvdWxkIGJlIGZhbHNl ICovCi0JCQlpZiAoYnZhbC0+YnZfYWxsbnVsbHMpCi0JCQl7Ci0JCQkJYWxsX2NvbnNpc3RfZXJl cG9ydChzdGF0ZSwgdGlkLCAicmFuZ2UgYWxsbnVsbHMgaXMgdHJ1ZSwgYnV0IGNvbnRhaW5zIG5v bm51bGwgdmFsdWUiKTsKLQkJCX0KIAotCQkJLyogdXNlICJhdHRyID0gdmFsdWUiIHNjYW4ga2V5 IGZvciBub25udWxsIHZhbHVlcyAqLwotCQkJc2NhbktleSA9IHN0YXRlLT5ub25udWxsX3NrW2F0 dGluZGV4XTsKLQkJCXNjYW5LZXktPnNrX2FyZ3VtZW50ID0gdmFsdWVzW2F0dGluZGV4XTsKKwkJ LyogSWYgd2UgaGF2ZSBhIG5vbm51bGwgdmFsdWUgYWxsbnVsbHMgc2hvdWxkIGJlIGZhbHNlICov CisJCWlmICghbnVsbHNbYXR0aW5kZXhdICYmIGJ2YWwtPmJ2X2FsbG51bGxzKQorCQl7CisJCQlh bGxfY29uc2lzdF9lcmVwb3J0KHN0YXRlLCB0aWQsICJyYW5nZSBhbGxudWxscyBpcyB0cnVlLCBi dXQgY29udGFpbnMgbm9ubnVsbCB2YWx1ZSIpOwogCQl9CiAKIAkJLyogSWYgb2lfcmVndWxhcl9u dWxscyA9IHRydWUgd2Ugc2hvdWxkIG5ldmVyIGdldCB0aGVyZSB3aXRoIG51bGwgKi8KIAkJQXNz ZXJ0KCFvaV9yZWd1bGFyX251bGxzIHx8ICFudWxsc1thdHRpbmRleF0pOwogCi0JCWlmIChzdGF0 ZS0+Y29uc2lzdGVudEZuW2F0dGluZGV4XS5mbl9uYXJncyA+PSA0KQotCQl7Ci0JCQljb25zaXN0 ZW50Rm5SZXN1bHQgPSBGdW5jdGlvbkNhbGw0Q29sbCgmc3RhdGUtPmNvbnNpc3RlbnRGblthdHRp bmRleF0sCi0JCQkJCQkJCQkJCQkgICBzdGF0ZS0+aWR4cmVsLT5yZF9pbmRjb2xsYXRpb25bYXR0 aW5kZXhdLAotCQkJCQkJCQkJCQkJICAgUG9pbnRlckdldERhdHVtKHN0YXRlLT5iZGVzYyksCi0J CQkJCQkJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0oYnZhbCksCi0JCQkJCQkJCQkJCQkgICBQb2lu dGVyR2V0RGF0dW0oJnNjYW5LZXkpLAotCQkJCQkJCQkJCQkJICAgSW50MzJHZXREYXR1bSgxKQot CQkJCSk7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQljb25zaXN0ZW50Rm5SZXN1bHQgPSBGdW5jdGlv bkNhbGwzQ29sbCgmc3RhdGUtPmNvbnNpc3RlbnRGblthdHRpbmRleF0sCi0JCQkJCQkJCQkJCQkg ICBzdGF0ZS0+aWR4cmVsLT5yZF9pbmRjb2xsYXRpb25bYXR0aW5kZXhdLAotCQkJCQkJCQkJCQkJ ICAgUG9pbnRlckdldERhdHVtKHN0YXRlLT5iZGVzYyksCi0JCQkJCQkJCQkJCQkgICBQb2ludGVy R2V0RGF0dW0oYnZhbCksCi0JCQkJCQkJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0oc2NhbktleSkK LQkJCQkpOwotCQl9Ci0KLQkJY29uc2lzdGVudCA9IERhdHVtR2V0Qm9vbChjb25zaXN0ZW50Rm5S ZXN1bHQpOworCQl3aXRoaW5SYW5nZUZuUmVzdWx0ID0gRnVuY3Rpb25DYWxsNENvbGwoJnN0YXRl LT53aXRoaW5SYW5nZUZuW2F0dGluZGV4XSwKKwkJCQkJCQkJCQkJCXN0YXRlLT5pZHhyZWwtPnJk X2luZGNvbGxhdGlvblthdHRpbmRleF0sCisJCQkJCQkJCQkJCQlQb2ludGVyR2V0RGF0dW0oYmRl c2MpLAorCQkJCQkJCQkJCQkJUG9pbnRlckdldERhdHVtKGJ2YWwpLAorCQkJCQkJCQkJCQkJdmFs dWVzW2F0dGluZGV4XSwKKwkJCQkJCQkJCQkJCW51bGxzW2F0dGluZGV4XSk7CiAKLQkJaWYgKCFj b25zaXN0ZW50KQorCQl3aXRoaW5SYW5nZSA9IERhdHVtR2V0Qm9vbCh3aXRoaW5SYW5nZUZuUmVz dWx0KTsKKwkJaWYgKCF3aXRoaW5SYW5nZSkKIAkJewogCQkJYWxsX2NvbnNpc3RfZXJlcG9ydChz dGF0ZSwgdGlkLCAiaGVhcCB0dXBsZSBpbmNvbnNpc3RlbnQgd2l0aCBpbmRleCIpOwogCQl9Ci0K IAl9CiAKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkQ3R4KTsKLS0gCjIuNDMuMAoK --000000000000ea00d80639475429 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0004-Adds-new-BRIN-support-function-withinRange.patch" Content-Disposition: attachment; filename="v6-0004-Adds-new-BRIN-support-function-withinRange.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mcs1ate33 RnJvbSA1MzM1YzMyOTU2ZTI5NGI1Nzc1ZTc4ZTRlMTVkNDc0NmFjNTMwNTRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnNlbml5IE11a2hpbiA8YXJzZW5peS5tdWtoaW4uZGV2QGdt YWlsLmNvbT4KRGF0ZTogU2F0LCA1IEp1bCAyMDI1IDIzOjEwOjU1ICswMzAwClN1YmplY3Q6IFtQ QVRDSCB2NiA0LzVdIEFkZHMgbmV3IEJSSU4gc3VwcG9ydCBmdW5jdGlvbiAnd2l0aGluUmFuZ2Un CgpUaGVyZSBpcyBubyBzdHJhaWdodGZvcndhcmQgd2F5IHRvIHNheSBpZiBzb21lIGluZGV4ZWQg dmFsdWUgaXMgY292ZXJlZApieSB0aGUgcmFuZ2UgdmFsdWUgb3Igbm90LiBUaGUgbmV3IHN1cHBv cnQgZnVuY3Rpb24gcHJvdmlkZXMgc3VjaCBhCmZ1bmN0aW9uYWxpdHkuIENvbW1pdCBhZGRzIGlt cGxlbWVudGF0aW9ucyBmb3IgYWxsIGNvcmUgQlJJTgpvcGNsYXNzZXM6IG1pbm1heCwgbWlubWF4 X211bHRpLCBibG9vbSwgaW5jbHVzaW9uLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW5fYmxvb20uYyAgICAgICAgfCAgNDQgKysrKwogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bl9pbmNsdXNpb24uYyAgICB8ICA2OCArKysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW5fbWlubWF4LmMgICAgICAgfCAgNTcgKysrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9i cmluX21pbm1heF9tdWx0aS5jIHwgMTM2ICsrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNz L2JyaW4vYnJpbl92YWxpZGF0ZS5jICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvYnJp bl9pbnRlcm5hbC5oICAgICAgICAgIHwgIDEzICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ft cHJvYy5kYXQgICAgICAgICAgIHwgMjE2ICsrKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgIHwgIDE2ICsrCiA4IGZpbGVzIGNoYW5n ZWQsIDUxMCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Jsb29tLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJp bi9icmluX2Jsb29tLmMKaW5kZXggODJiNDI1Y2UzN2QuLjRmYTVlMzlmMGFjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Jsb29tLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCkBAIC01ODQsNiArNTg0LDUwIEBAIGJyaW5fYmxvb21f YWRkX3ZhbHVlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUEdfUkVUVVJOX0JPT0wodXBkYXRlZCk7CiB9 CiAKKworLyoKKyAqIElmIHRoZSBwYXNzZWQgdmFsdWUgaXMgb3V0c2lkZSB0aGUgbWlubWF4X211 bHRpIHJhbmdlIHJldHVybiBmYWxzZS4KKyAqIE90aGVyd2lzZSwgcmV0dXJuIHRydWUuCisgKi8K K0RhdHVtCiticmluX2Jsb29tX3dpdGhpbl9yYW5nZShQR19GVU5DVElPTl9BUkdTKQoreworCUJy aW5EZXNjICAgKmJkZXNjID0gKEJyaW5EZXNjICopIFBHX0dFVEFSR19QT0lOVEVSKDApOworCUJy aW5WYWx1ZXMgKmNvbHVtbiA9IChCcmluVmFsdWVzICopIFBHX0dFVEFSR19QT0lOVEVSKDEpOwor CURhdHVtCQl2YWwgPSBQR19HRVRBUkdfREFUVU0oMik7CisJYm9vbAkJaXNudWxsIFBHX1VTRURf Rk9SX0FTU0VSVFNfT05MWSA9IFBHX0dFVEFSR19EQVRVTSgzKTsKKwlPaWQJCQljb2xsb2lkID0g UEdfR0VUX0NPTExBVElPTigpOworCUZtZ3JJbmZvICAgKmhhc2hGbjsKKwl1aW50MzIJCWhhc2hW YWx1ZTsKKwlib29sCQljb250YWluczsKKwlBdHRyTnVtYmVyCWF0dG5vOworCUJsb29tRmlsdGVy ICpmaWx0ZXI7CisKKwlBc3NlcnQoIWlzbnVsbCk7CisKKwlhdHRubyA9IGNvbHVtbi0+YnZfYXR0 bm87CisKKwkvKiBUaGUgcmFuZ2UgaXMgZW1wdHksIHJldHVybiBmYWxzZSAqLworCWlmIChjb2x1 bW4tPmJ2X2FsbG51bGxzKQorCXsKKwkJUEdfUkVUVVJOX0JPT0woZmFsc2UpOworCX0KKworCWZp bHRlciA9IChCbG9vbUZpbHRlciAqKSBQR19ERVRPQVNUX0RBVFVNKGNvbHVtbi0+YnZfdmFsdWVz WzBdKTsKKworCS8qCisJICogQ29tcHV0ZSB0aGUgaGFzaCBvZiB0aGUgbmV3IHZhbHVlLCB1c2lu ZyB0aGUgc3VwcGxpZWQgaGFzaCBmdW5jdGlvbiwKKwkgKiBhbmQgdGhlbiBjaGVjayBpZiBibG9v bSBmaWx0ZXIgY29udGFpbnMgdGhlIHZhbHVlLgorCSAqLworCWhhc2hGbiA9IGJsb29tX2dldF9w cm9jaW5mbyhiZGVzYywgYXR0bm8sIFBST0NOVU1fSEFTSCk7CisKKwloYXNoVmFsdWUgPSBEYXR1 bUdldFVJbnQzMihGdW5jdGlvbkNhbGwxQ29sbChoYXNoRm4sIGNvbGxvaWQsIHZhbCkpOworCisJ Y29udGFpbnMgPSBibG9vbV9jb250YWluc192YWx1ZShmaWx0ZXIsIGhhc2hWYWx1ZSk7CisKKwlQ R19SRVRVUk5fQk9PTChjb250YWlucyk7Cit9CisKIC8qCiAgKiBHaXZlbiBhbiBpbmRleCB0dXBs ZSBjb3JyZXNwb25kaW5nIHRvIGEgY2VydGFpbiBwYWdlIHJhbmdlIGFuZCBhIHNjYW4ga2V5LAog ICogcmV0dXJuIHdoZXRoZXIgdGhlIHNjYW4ga2V5IGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgaW5k ZXggdHVwbGUncyBibG9vbQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bl9pbmNsdXNpb24uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5faW5jbHVzaW9uLmMK aW5kZXggYjg2Y2E1NzQ0YTMuLjBiNjlkYTNkZTkxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvYnJpbi9icmluX2luY2x1c2lvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW5faW5jbHVzaW9uLmMKQEAgLTIzNyw2ICsyMzcsNzQgQEAgYnJpbl9pbmNsdXNpb25fYWRk X3ZhbHVlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUEdfUkVUVVJOX0JPT0wodHJ1ZSk7CiB9CiAKKy8q CisgKiBJZiB0aGUgcGFzc2VkIHZhbHVlIGlzIG91dHNpZGUgdGhlIGluY2x1c2lvbiByYW5nZSBy ZXR1cm4gZmFsc2UuCisgKiBPdGhlcndpc2UsIHJldHVybiB0cnVlLgorICovCitEYXR1bQorYnJp bl9pbmNsdXNpb25fd2l0aGluX3JhbmdlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJQnJpbkRlc2Mg ICAqYmRlc2MgPSAoQnJpbkRlc2MgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7CisJQnJpblZhbHVl cyAqY29sdW1uID0gKEJyaW5WYWx1ZXMgKikgUEdfR0VUQVJHX1BPSU5URVIoMSk7CisJRGF0dW0J CW5ld3ZhbCA9IFBHX0dFVEFSR19EQVRVTSgyKTsKKwlib29sCQlpc251bGwgUEdfVVNFRF9GT1Jf QVNTRVJUU19PTkxZID0gUEdfR0VUQVJHX0JPT0woMyk7CisJT2lkCQkJY29sbG9pZCA9IFBHX0dF VF9DT0xMQVRJT04oKTsKKwlGbWdySW5mbyAgICpmaW5mbzsKKwlib29sCQl3aXRoaW5fcmFuZ2U7 CisJQXR0ck51bWJlcglhdHRubzsKKworCUFzc2VydCghaXNudWxsKTsKKworCWF0dG5vID0gY29s dW1uLT5idl9hdHRubzsKKworCS8qIFRoZSByYW5nZSBpcyBlbXB0eSwgcmV0dXJuIGZhbHNlICov CisJaWYgKGNvbHVtbi0+YnZfYWxsbnVsbHMpCisJeworCQlQR19SRVRVUk5fQk9PTChmYWxzZSk7 CisJfQorCisJLyoKKwkgKiBDb25zaXN0ZW50IGZ1bmN0aW9uIHJldHVybnMgVFJVRSBmb3IgYW55 IHZhbHVlIGlmIHRoZSByYW5nZSBjb250YWlucworCSAqIHVubWVyZ2VhYmxlIHZhbHVlcy4gV2Ug Zm9sbG93IHRoZSBzYW1lIGxvZ2ljIGhlcmUuCisJICovCisJaWYgKERhdHVtR2V0Qm9vbChjb2x1 bW4tPmJ2X3ZhbHVlc1tJTkNMVVNJT05fVU5NRVJHRUFCTEVdKSkKKwkJUEdfUkVUVVJOX0JPT0wo dHJ1ZSk7CisKKwkvKgorCSAqIElmIHRoZSBvcGNsYXNzIHN1cHBvcnRzIHRoZSBjb25jZXB0IG9m IGVtcHR5IHZhbHVlcywgdGVzdCB0aGUgcGFzc2VkCisJICogdmFsdWUgZm9yIGVtcHRpbmVzcwor CSAqLworCWZpbmZvID0gaW5jbHVzaW9uX2dldF9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIFBST0NO VU1fRU1QVFksIHRydWUpOworCWlmIChmaW5mbyAhPSBOVUxMICYmIERhdHVtR2V0Qm9vbChGdW5j dGlvbkNhbGwxQ29sbChmaW5mbywgY29sbG9pZCwgbmV3dmFsKSkpCisJeworCQkvKiBWYWx1ZSBp cyBlbXB0eSBidXQgdGhlIHJhbmdlIGRvZXNuJ3QgY29udGFpbiBlbXB0eSBlbGVtZW50ICovCisJ CWlmICghRGF0dW1HZXRCb29sKGNvbHVtbi0+YnZfdmFsdWVzW0lOQ0xVU0lPTl9DT05UQUlOU19F TVBUWV0pKQorCQl7CisJCQlQR19SRVRVUk5fQk9PTChmYWxzZSk7CisJCX0KKworCQkvKiBWYWx1 ZSBpcyBlbXB0eSBhbmQgdGhlIHJhbmdlIGNvbnRhaW5zIGVtcHR5IGVsZW1lbnQgKi8KKwkJUEdf UkVUVVJOX0JPT0wodHJ1ZSk7CisJfQorCisJLyogVXNlIGNvbnRhaW5zIGZ1bmN0aW9uIHRvIGNo ZWNrIGlmIHRoZSByYW5nZSBjb250YWlucyB0aGUgdmFsdWUgKi8KKwlmaW5mbyA9IGluY2x1c2lv bl9nZXRfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBQUk9DTlVNX0NPTlRBSU5TLCB0cnVlKTsKKwor CS8qIENvbnRhaW5zIGZ1bmN0aW9uIGlzIG9wdGlvbmFsLCBidXQgdGhpcyBpbXBsZW1lbnRhdGlv biBuZWVkcyBpdCAqLworCWlmIChmaW5mbyA9PSBOVUxMKQorCXsKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9GVU5DVElPTiksCisJCQkJIGVycm1zZygi VGhlIG9wZXJhdG9yIGNsYXNzIGlzIG1pc3Npbmcgc3VwcG9ydCBmdW5jdGlvbiAlZCBmb3IgY29s dW1uICVkLiIsCisJCQkJCQlQUk9DTlVNX0NPTlRBSU5TLCBhdHRubykpKTsKKwl9CisKKwl3aXRo aW5fcmFuZ2UgPSBEYXR1bUdldEJvb2woRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQs CisJCQkJCQkJCQkJCQkgIGNvbHVtbi0+YnZfdmFsdWVzW0lOQ0xVU0lPTl9VTklPTl0sCisJCQkJ CQkJCQkJCQkgIG5ld3ZhbCkpOworCVBHX1JFVFVSTl9CT09MKHdpdGhpbl9yYW5nZSk7Cit9CisK IC8qCiAgKiBCUklOIGluY2x1c2lvbiBjb25zaXN0ZW50IGZ1bmN0aW9uCiAgKgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXguYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW5fbWlubWF4LmMKaW5kZXggZDIxYWIzYTY2OGMuLjM3YTVkZDEwM2RlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlubWF4LmMKQEAgLTEyNCw2ICsxMjQsNjMgQEAg YnJpbl9taW5tYXhfYWRkX3ZhbHVlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUEdfUkVUVVJOX0JPT0wo dXBkYXRlZCk7CiB9CiAKKy8qCisgKiBJZiB0aGUgcGFzc2VkIHZhbHVlIGlzIG91dHNpZGUgdGhl IG1pbi9tYXggcmFuZ2UgcmV0dXJuIGZhbHNlLgorICogT3RoZXJ3aXNlLCByZXR1cm4gdHJ1ZS4K KyAqLworRGF0dW0KK2JyaW5fbWlubWF4X3dpdGhpbl9yYW5nZShQR19GVU5DVElPTl9BUkdTKQor eworCUJyaW5EZXNjICAgKmJkZXNjID0gKEJyaW5EZXNjICopIFBHX0dFVEFSR19QT0lOVEVSKDAp OworCUJyaW5WYWx1ZXMgKmNvbHVtbiA9IChCcmluVmFsdWVzICopIFBHX0dFVEFSR19QT0lOVEVS KDEpOworCURhdHVtCQl2YWwgPSBQR19HRVRBUkdfREFUVU0oMik7CisJYm9vbAkJaXNudWxsIFBH X1VTRURfRk9SX0FTU0VSVFNfT05MWSA9IFBHX0dFVEFSR19EQVRVTSgzKTsKKwlPaWQJCQljb2xs b2lkID0gUEdfR0VUX0NPTExBVElPTigpOworCUZtZ3JJbmZvICAgKmNtcEZuOworCURhdHVtCQlj b21wYXI7CisJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cjsKKwlBdHRyTnVtYmVyCWF0dG5vOworCisJ QXNzZXJ0KCFpc251bGwpOworCisJYXR0bm8gPSBjb2x1bW4tPmJ2X2F0dG5vOworCWF0dHIgPSBU dXBsZURlc2NBdHRyKGJkZXNjLT5iZF90dXBkZXNjLCBhdHRubyAtIDEpOworCisJLyogVGhlIHJh bmdlIGlzIGVtcHR5LCByZXR1cm4gZmFsc2UgKi8KKwlpZiAoY29sdW1uLT5idl9hbGxudWxscykK Kwl7CisJCVBHX1JFVFVSTl9CT09MKGZhbHNlKTsKKwl9CisKKwkvKiBDaGVjayBpZiB0aGUgdmFs dWVzIGlzIGxlc3MgdGhhbiB0aGUgcmFuZ2UgbWluaW11bS4gKi8KKworCWNtcEZuID0gbWlubWF4 X2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIGF0dHItPmF0dHR5cGlkLAorCQkJ CQkJCQkJCSBCVExlc3NTdHJhdGVneU51bWJlcik7CisKKwljb21wYXIgPSBGdW5jdGlvbkNhbGwy Q29sbChjbXBGbiwgY29sbG9pZCwgdmFsLCBjb2x1bW4tPmJ2X3ZhbHVlc1swXSk7CisJaWYgKERh dHVtR2V0Qm9vbChjb21wYXIpKQorCXsKKwkJUEdfUkVUVVJOX0JPT0woZmFsc2UpOworCX0KKwor CS8qIENoZWNrIGlmIHRoZSB2YWx1ZXMgaXMgZ3JlYXRlciB0aGFuIHRoZSByYW5nZSBtYXhpbXVt LiAqLworCisJY21wRm4gPSBtaW5tYXhfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRu bywgYXR0ci0+YXR0dHlwaWQsCisJCQkJCQkJCQkJIEJUR3JlYXRlclN0cmF0ZWd5TnVtYmVyKTsK KworCWNvbXBhciA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGNtcEZuLCBjb2xsb2lkLCB2YWwsIGNvbHVt bi0+YnZfdmFsdWVzWzFdKTsKKwlpZiAoRGF0dW1HZXRCb29sKGNvbXBhcikpCisJeworCQlQR19S RVRVUk5fQk9PTChmYWxzZSk7CisJfQorCisJLyoKKwkgKiBUaGUgdmFsdWUgaXMgZ3JlYXRlciB0 aGFuIC8gZXF1YWxzIHRoZSBtaW5pbXVtIGFuZCBpcyBsZXNzIHRoYW4gLworCSAqIGVxdWFscyB0 aGUgbWF4aW11bSBzbyBpdCdzIHdpdGhpbiB0aGUgcmFuZ2UKKwkgKi8KKwlQR19SRVRVUk5fQk9P TCh0cnVlKTsKK30KKwogLyoKICAqIEdpdmVuIGFuIGluZGV4IHR1cGxlIGNvcnJlc3BvbmRpbmcg dG8gYSBjZXJ0YWluIHBhZ2UgcmFuZ2UgYW5kIGEgc2NhbiBrZXksCiAgKiByZXR1cm4gd2hldGhl ciB0aGUgc2NhbiBrZXkgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBpbmRleCB0dXBsZSdzIG1pbi9t YXgKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlubWF4X211bHRp LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5jCmluZGV4IDBk MTUwN2EyYTM2Li4yMTQxYzQ3YmM3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2Jy aW4vYnJpbl9taW5tYXhfbXVsdGkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmlu X21pbm1heF9tdWx0aS5jCkBAIC0yNzAsNiArMjcwLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgY29tcGFy ZV9jb250ZXh0CiBzdGF0aWMgaW50CWNvbXBhcmVfdmFsdWVzKGNvbnN0IHZvaWQgKmEsIGNvbnN0 IHZvaWQgKmIsIHZvaWQgKmFyZyk7CiAKIAorc3RhdGljIFJhbmdlcyAqZGVzZXJpYWxpemVfcmFu Z2VfdmFsdWUoQnJpbkRlc2MgKmJkZXNjLCBCcmluVmFsdWVzICpjb2x1bW4sIE9pZCBjb2xsb2lk LCBjb25zdCBGb3JtRGF0YV9wZ19hdHRyaWJ1dGUgKmF0dHIsCisJCQkJCQkJCQkgICBBdHRyTnVt YmVyIGF0dG5vKTsKKwogI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKIC8qCiAgKiBDaGVjayB0 aGF0IHRoZSBvcmRlciBvZiB0aGUgYXJyYXkgdmFsdWVzIGlzIGNvcnJlY3QsIHVzaW5nIHRoZSBj bXAKQEAgLTI0MjEsNyArMjQyNCw2IEBAIGJyaW5fbWlubWF4X211bHRpX2FkZF92YWx1ZShQR19G VU5DVElPTl9BUkdTKQogCUZvcm1fcGdfYXR0cmlidXRlIGF0dHI7CiAJQXR0ck51bWJlcglhdHRu bzsKIAlSYW5nZXMJICAgKnJhbmdlczsKLQlTZXJpYWxpemVkUmFuZ2VzICpzZXJpYWxpemVkID0g TlVMTDsKIAogCUFzc2VydCghaXNudWxsKTsKIApAQCAtMjQ4OSw1NSArMjQ5MSwxMTkgQEAgYnJp bl9taW5tYXhfbXVsdGlfYWRkX3ZhbHVlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCWVsc2UgaWYg KCFyYW5nZXMpCiAJewotCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKKwkJcmFuZ2VzID0gZGVzZXJp YWxpemVfcmFuZ2VfdmFsdWUoYmRlc2MsIGNvbHVtbiwgY29sbG9pZCwgYXR0ciwgYXR0bm8pOwor CX0KIAotCQlpbnQJCQltYXh2YWx1ZXM7Ci0JCUJsb2NrTnVtYmVyIHBhZ2VzUGVyUmFuZ2UgPSBC cmluR2V0UGFnZXNQZXJSYW5nZShiZGVzYy0+YmRfaW5kZXgpOworCS8qCisJICogVHJ5IHRvIGFk ZCB0aGUgbmV3IHZhbHVlIHRvIHRoZSByYW5nZS4gV2UgbmVlZCB0byB1cGRhdGUgdGhlIG1vZGlm aWVkCisJICogZmxhZywgc28gdGhhdCB3ZSBzZXJpYWxpemUgdGhlIHVwZGF0ZWQgc3VtbWFyeSBs YXRlci4KKwkgKi8KKwltb2RpZmllZCB8PSByYW5nZV9hZGRfdmFsdWUoYmRlc2MsIGNvbGxvaWQs IGF0dG5vLCBhdHRyLCByYW5nZXMsIG5ld3ZhbCk7CiAKLQkJb2xkY3R4ID0gTWVtb3J5Q29udGV4 dFN3aXRjaFRvKGNvbHVtbi0+YnZfY29udGV4dCk7CiAKLQkJc2VyaWFsaXplZCA9IChTZXJpYWxp emVkUmFuZ2VzICopIFBHX0RFVE9BU1RfREFUVU0oY29sdW1uLT5idl92YWx1ZXNbMF0pOworCVBH X1JFVFVSTl9CT09MKG1vZGlmaWVkKTsKK30KIAotCQkvKgotCQkgKiBEZXRlcm1pbmUgdGhlIGlu c2VydCBidWZmZXIgc2l6ZSAtIHdlIHVzZSAxMHggdGhlIHRhcmdldCwgY2FwcGVkIHRvCi0JCSAq IHRoZSBtYXhpbXVtIG51bWJlciBvZiB2YWx1ZXMgaW4gdGhlIGhlYXAgcmFuZ2UuIFRoaXMgaXMg bW9yZSB0aGFuCi0JCSAqIGVub3VnaCwgY29uc2lkZXJpbmcgdGhlIGFjdHVhbCBudW1iZXIgb2Yg cm93cyBwZXIgcGFnZSBpcyBsaWtlbHkKLQkJICogbXVjaCBsb3dlciwgYnV0IG1laC4KLQkJICov Ci0JCW1heHZhbHVlcyA9IE1pbihzZXJpYWxpemVkLT5tYXh2YWx1ZXMgKiBNSU5NQVhfQlVGRkVS X0ZBQ1RPUiwKLQkJCQkJCU1heEhlYXBUdXBsZXNQZXJQYWdlICogcGFnZXNQZXJSYW5nZSk7CiAK LQkJLyogYnV0IGFsd2F5cyBhdCBsZWFzdCB0aGUgb3JpZ2luYWwgdmFsdWUgKi8KLQkJbWF4dmFs dWVzID0gTWF4KG1heHZhbHVlcywgc2VyaWFsaXplZC0+bWF4dmFsdWVzKTsKKy8qCisgKiBEZXNl cmlhbGl6ZSByYW5nZSB2YWx1ZSBhbmQgc2F2ZSBpdCBpbiBiZGVzYy0+YnZfbWVtX3ZhbHVlIGZv ciBmdXR1cmUgdXNlCisgKi8KK1JhbmdlcyAqCitkZXNlcmlhbGl6ZV9yYW5nZV92YWx1ZShCcmlu RGVzYyAqYmRlc2MsIEJyaW5WYWx1ZXMgKmNvbHVtbiwgT2lkIGNvbGxvaWQsIGNvbnN0IEZvcm1E YXRhX3BnX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkJCUF0dHJOdW1iZXIgYXR0bm8pCit7CisJTWVt b3J5Q29udGV4dCBvbGRjdHg7CisJU2VyaWFsaXplZFJhbmdlcyAqc2VyaWFsaXplZCA9IE5VTEw7 CisJUmFuZ2VzCSAgICpyYW5nZXM7CiAKLQkJLyogYWx3YXlzIGNhcCBieSBNSU4vTUFYICovCi0J CW1heHZhbHVlcyA9IE1heChtYXh2YWx1ZXMsIE1JTk1BWF9CVUZGRVJfTUlOKTsKLQkJbWF4dmFs dWVzID0gTWluKG1heHZhbHVlcywgTUlOTUFYX0JVRkZFUl9NQVgpOworCWludAkJCW1heHZhbHVl czsKKwlCbG9ja051bWJlciBwYWdlc1BlclJhbmdlID0gQnJpbkdldFBhZ2VzUGVyUmFuZ2UoYmRl c2MtPmJkX2luZGV4KTsKIAotCQlyYW5nZXMgPSBicmluX3JhbmdlX2Rlc2VyaWFsaXplKG1heHZh bHVlcywgc2VyaWFsaXplZCk7CisJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGNvbHVt bi0+YnZfY29udGV4dCk7CiAKLQkJcmFuZ2VzLT5hdHRubyA9IGF0dG5vOwotCQlyYW5nZXMtPmNv bGxvaWQgPSBjb2xsb2lkOwotCQlyYW5nZXMtPnR5cGlkID0gYXR0ci0+YXR0dHlwaWQ7CisJc2Vy aWFsaXplZCA9IChTZXJpYWxpemVkUmFuZ2VzICopIFBHX0RFVE9BU1RfREFUVU0oY29sdW1uLT5i dl92YWx1ZXNbMF0pOwogCi0JCS8qIHdlJ2xsIGNlcnRhaW5seSBuZWVkIHRoZSBjb21wYXJhdG9y LCBzbyBqdXN0IGxvb2sgaXQgdXAgbm93ICovCi0JCXJhbmdlcy0+Y21wID0gbWlubWF4X211bHRp X2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIGF0dHItPmF0dHR5cGlkLAotCQkJ CQkJCQkJCQkJCQkgQlRMZXNzU3RyYXRlZ3lOdW1iZXIpOworCS8qCisJICogRGV0ZXJtaW5lIHRo ZSBpbnNlcnQgYnVmZmVyIHNpemUgLSB3ZSB1c2UgMTB4IHRoZSB0YXJnZXQsIGNhcHBlZCB0byB0 aGUKKwkgKiBtYXhpbXVtIG51bWJlciBvZiB2YWx1ZXMgaW4gdGhlIGhlYXAgcmFuZ2UuIFRoaXMg aXMgbW9yZSB0aGFuIGVub3VnaCwKKwkgKiBjb25zaWRlcmluZyB0aGUgYWN0dWFsIG51bWJlciBv ZiByb3dzIHBlciBwYWdlIGlzIGxpa2VseSBtdWNoIGxvd2VyLAorCSAqIGJ1dCBtZWguCisJICov CisJbWF4dmFsdWVzID0gTWluKHNlcmlhbGl6ZWQtPm1heHZhbHVlcyAqIE1JTk1BWF9CVUZGRVJf RkFDVE9SLAorCQkJCQlNYXhIZWFwVHVwbGVzUGVyUGFnZSAqIHBhZ2VzUGVyUmFuZ2UpOwogCi0J CWNvbHVtbi0+YnZfbWVtX3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHJhbmdlcyk7Ci0JCWNvbHVt bi0+YnZfc2VyaWFsaXplID0gYnJpbl9taW5tYXhfbXVsdGlfc2VyaWFsaXplOworCS8qIGJ1dCBh bHdheXMgYXQgbGVhc3QgdGhlIG9yaWdpbmFsIHZhbHVlICovCisJbWF4dmFsdWVzID0gTWF4KG1h eHZhbHVlcywgc2VyaWFsaXplZC0+bWF4dmFsdWVzKTsKIAotCQlNZW1vcnlDb250ZXh0U3dpdGNo VG8ob2xkY3R4KTsKKwkvKiBhbHdheXMgY2FwIGJ5IE1JTi9NQVggKi8KKwltYXh2YWx1ZXMgPSBN YXgobWF4dmFsdWVzLCBNSU5NQVhfQlVGRkVSX01JTik7CisJbWF4dmFsdWVzID0gTWluKG1heHZh bHVlcywgTUlOTUFYX0JVRkZFUl9NQVgpOworCisJcmFuZ2VzID0gYnJpbl9yYW5nZV9kZXNlcmlh bGl6ZShtYXh2YWx1ZXMsIHNlcmlhbGl6ZWQpOworCisJcmFuZ2VzLT5hdHRubyA9IGF0dG5vOwor CXJhbmdlcy0+Y29sbG9pZCA9IGNvbGxvaWQ7CisJcmFuZ2VzLT50eXBpZCA9IGF0dHItPmF0dHR5 cGlkOworCisJLyogd2UnbGwgY2VydGFpbmx5IG5lZWQgdGhlIGNvbXBhcmF0b3IsIHNvIGp1c3Qg bG9vayBpdCB1cCBub3cgKi8KKwlyYW5nZXMtPmNtcCA9IG1pbm1heF9tdWx0aV9nZXRfc3RyYXRl Z3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBhdHRyLT5hdHR0eXBpZCwKKwkJCQkJCQkJCQkJCQkg QlRMZXNzU3RyYXRlZ3lOdW1iZXIpOworCisJY29sdW1uLT5idl9tZW1fdmFsdWUgPSBQb2ludGVy R2V0RGF0dW0ocmFuZ2VzKTsKKwljb2x1bW4tPmJ2X3NlcmlhbGl6ZSA9IGJyaW5fbWlubWF4X211 bHRpX3NlcmlhbGl6ZTsKKworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjdHgpOworCisJcmV0 dXJuIHJhbmdlczsKK30KKworLyoKKyAqIElmIHRoZSBwYXNzZWQgdmFsdWUgaXMgb3V0c2lkZSB0 aGUgbWlubWF4X211bHRpIHJhbmdlIHJldHVybiBmYWxzZS4KKyAqIE90aGVyd2lzZSwgcmV0dXJu IHRydWUuCisgKi8KK0RhdHVtCiticmluX21pbm1heF9tdWx0aV93aXRoaW5fcmFuZ2UoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwlCcmluRGVzYyAgICpiZGVzYyA9IChCcmluRGVzYyAqKSBQR19HRVRB UkdfUE9JTlRFUigwKTsKKwlCcmluVmFsdWVzICpjb2x1bW4gPSAoQnJpblZhbHVlcyAqKSBQR19H RVRBUkdfUE9JTlRFUigxKTsKKwlEYXR1bQkJdmFsID0gUEdfR0VUQVJHX0RBVFVNKDIpOworCWJv b2wJCWlzbnVsbCBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFkgPSBQR19HRVRBUkdfREFUVU0oMyk7 CisJT2lkCQkJY29sbG9pZCA9IFBHX0dFVF9DT0xMQVRJT04oKTsKKwlib29sCQljb250YWlucyA9 IGZhbHNlOworCUZvcm1fcGdfYXR0cmlidXRlIGF0dHI7CisJQXR0ck51bWJlcglhdHRubzsKKwlS YW5nZXMJICAgKnJhbmdlczsKKwlGbWdySW5mbyAgICpjbXBGbjsKKworCUFzc2VydCghaXNudWxs KTsKKworCWF0dG5vID0gY29sdW1uLT5idl9hdHRubzsKKwlhdHRyID0gVHVwbGVEZXNjQXR0cihi ZGVzYy0+YmRfdHVwZGVzYywgYXR0bm8gLSAxKTsKKworCS8qIHVzZSB0aGUgYWxyZWFkeSBkZXNl cmlhbGl6ZWQgdmFsdWUsIGlmIHBvc3NpYmxlICovCisJcmFuZ2VzID0gKFJhbmdlcyAqKSBEYXR1 bUdldFBvaW50ZXIoY29sdW1uLT5idl9tZW1fdmFsdWUpOworCisJLyogVGhlIHJhbmdlIGlzIGVt cHR5LCByZXR1cm4gZmFsc2UgKi8KKwlpZiAoY29sdW1uLT5idl9hbGxudWxscykKKwl7CisJCVBH X1JFVFVSTl9CT09MKGZhbHNlKTsKKwl9CisJZWxzZSBpZiAoIXJhbmdlcykKKwl7CisJCXJhbmdl cyA9IGRlc2VyaWFsaXplX3JhbmdlX3ZhbHVlKGJkZXNjLCBjb2x1bW4sIGNvbGxvaWQsIGF0dHIs IGF0dG5vKTsKIAl9CiAKLQkvKgotCSAqIFRyeSB0byBhZGQgdGhlIG5ldyB2YWx1ZSB0byB0aGUg cmFuZ2UuIFdlIG5lZWQgdG8gdXBkYXRlIHRoZSBtb2RpZmllZAotCSAqIGZsYWcsIHNvIHRoYXQg d2Ugc2VyaWFsaXplIHRoZSB1cGRhdGVkIHN1bW1hcnkgbGF0ZXIuCi0JICovCi0JbW9kaWZpZWQg fD0gcmFuZ2VfYWRkX3ZhbHVlKGJkZXNjLCBjb2xsb2lkLCBhdHRubywgYXR0ciwgcmFuZ2VzLCBu ZXd2YWwpOworCS8qIHdlJ2xsIGNlcnRhaW5seSBuZWVkIHRoZSBjb21wYXJhdG9yLCBzbyBqdXN0 IGxvb2sgaXQgdXAgbm93ICovCisJY21wRm4gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0ZWd5X3By b2NpbmZvKGJkZXNjLCBhdHRubywgYXR0ci0+YXR0dHlwaWQsCisJCQkJCQkJCQkJCSAgIEJUTGVz c1N0cmF0ZWd5TnVtYmVyKTsKIAorCS8qIGNvbXByZWhlbnNpdmUgY2hlY2tzIG9mIHRoZSBpbnB1 dCByYW5nZXMgKi8KKwlBc3NlcnRDaGVja1JhbmdlcyhyYW5nZXMsIGNtcEZuLCBjb2xsb2lkKTsK IAotCVBHX1JFVFVSTl9CT09MKG1vZGlmaWVkKTsKKwkvKiBVc2UgJ2Z1bGwgPSB0cnVlJyBoZXJl LCBhcyB3ZSBkb24ndCB3YW50IGFueSBmYWxzZSBuZWdhdGl2ZXMgKi8KKwljb250YWlucyA9IHJh bmdlX2NvbnRhaW5zX3ZhbHVlKGJkZXNjLCBjb2xsb2lkLCBhdHRubywgYXR0ciwgcmFuZ2VzLCB2 YWwsIHRydWUpOworCisJUEdfUkVUVVJOX0JPT0woY29udGFpbnMpOwogfQogCiAvKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jCmluZGV4IDkxNWI4NjI4YjQ2Li4yYzU5ZDdl Y2NhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYwpAQCAtODQsNiAr ODQsNyBAQCBicmludmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQkJCQkJCQkJCTEsIDEsIElO VEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlJJTl9QUk9DTlVNX0FERFZBTFVFOgor CQkJY2FzZSBCUklOX1BST0NOVU1fV0lUSElOUkFOR0U6CiAJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCiAJCQkJCQkJCQkJCTQs IDQsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElO VEVSTkFMT0lEKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9icmluX2ludGVybmFs LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvYnJpbl9pbnRlcm5hbC5oCmluZGV4IGQwOTNhMGJmMTMw Li41ZGY4Nzc2MWNmMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2JyaW5faW50ZXJu YWwuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvYnJpbl9pbnRlcm5hbC5oCkBAIC02NywxMiAr NjcsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgQnJpbkRlc2MKICAqIG9wY2xhc3NlcyBjYW4gZGVmaW5l IG1vcmUgZnVuY3Rpb24gc3VwcG9ydCBudW1iZXJzLCB3aGljaCBtdXN0IGZhbGwgaW50bwogICog QlJJTl9GSVJTVF9PUFRJT05BTF9QUk9DTlVNIC4uIEJSSU5fTEFTVF9PUFRJT05BTF9QUk9DTlVN LgogICovCi0jZGVmaW5lIEJSSU5fUFJPQ05VTV9PUENJTkZPCQkxCi0jZGVmaW5lIEJSSU5fUFJP Q05VTV9BRERWQUxVRQkJMgotI2RlZmluZSBCUklOX1BST0NOVU1fQ09OU0lTVEVOVAkJMwotI2Rl ZmluZSBCUklOX1BST0NOVU1fVU5JT04JCQk0Ci0jZGVmaW5lIEJSSU5fTUFOREFUT1JZX05QUk9D UwkJNAotI2RlZmluZSBCUklOX1BST0NOVU1fT1BUSU9OUyAJCTUJLyogb3B0aW9uYWwgKi8KKyNk ZWZpbmUgQlJJTl9QUk9DTlVNX09QQ0lORk8JCSAgICAxCisjZGVmaW5lIEJSSU5fUFJPQ05VTV9B RERWQUxVRQkJICAgIDIKKyNkZWZpbmUgQlJJTl9QUk9DTlVNX0NPTlNJU1RFTlQJCSAgICAzCisj ZGVmaW5lIEJSSU5fUFJPQ05VTV9VTklPTgkJCSAgICA0CisjZGVmaW5lIEJSSU5fTUFOREFUT1JZ X05QUk9DUwkJICAgIDQKKyNkZWZpbmUgQlJJTl9QUk9DTlVNX09QVElPTlMgCQkgICAgNQkvKiBv cHRpb25hbCAqLworI2RlZmluZSBCUklOX1BST0NOVU1fV0lUSElOUkFOR0UgCQk2CS8qIG9wdGlv bmFsICovCiAvKiBwcm9jZWR1cmUgbnVtYmVycyB1cCB0byAxMCBhcmUgcmVzZXJ2ZWQgZm9yIEJS SU4gZnV0dXJlIGV4cGFuc2lvbiAqLwogI2RlZmluZSBCUklOX0ZJUlNUX09QVElPTkFMX1BST0NO VU0gMTEKICNkZWZpbmUgQlJJTl9MQVNUX09QVElPTkFMX1BST0NOVU0JMTUKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfYW1wcm9jLmRhdAppbmRleCBlMzQ3NzUwMGJhYS4uYzM5NDdiYmM0MTAgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2FtcHJvYy5kYXQKQEAgLTg0Nyw2ICs4NDcsOSBAQAogICBhbXByb2MgPT4gJ2JyaW5f bWlubWF4X2NvbnNpc3RlbnQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9ieXRlYV9taW5t YXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2J5dGVhJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICdieXRlYScsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24n IH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9ieXRlYV9taW5tYXhfb3BzJywgYW1wcm9jbGVm dHR5cGUgPT4gJ2J5dGVhJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdieXRlYScsIGFtcHJvY251 bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfd2l0aGluX3JhbmdlJyB9LAogCiAj IGJsb29tIGJ5dGVhCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9ieXRlYV9ibG9vbV9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAnYnl0ZWEnLApAQCAtODYzLDYgKzg2Niw5IEBACiB7IGFtcHJvY2Zh bWlseSA9PiAnYnJpbi9ieXRlYV9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnl0ZWEn LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2J5dGVhJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1w cm9jID0+ICdicmluX2Jsb29tX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9i eXRlYV9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnl0ZWEnLAorICBhbXByb2NyaWdo dHR5cGUgPT4gJ2J5dGVhJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Js b29tX3dpdGhpbl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2J5dGVhX2Jsb29t X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdieXRlYScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn Ynl0ZWEnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNoYnl0ZWEnIH0sCiAKQEAg LTg3OCw2ICs4ODQsOSBAQAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0s CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9jaGFyX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAnY2hhcicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnY2hhcicsIGFtcHJvY251bSA9PiAn NCcsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn YnJpbi9jaGFyX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnY2hhcicsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAnY2hhcicsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJp bl9taW5tYXhfd2l0aGluX3JhbmdlJyB9LAogCiAjIGJsb29tICJjaGFyIgogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vY2hhcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnY2hhcicsCkBA IC04OTIsNiArOTAxLDkgQEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdjaGFyJywgYW1wcm9jbnVt ID0+ICc0JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3VuaW9uJyB9LAogeyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vY2hhcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnY2hhcicsCiAgIGFt cHJvY3JpZ2h0dHlwZSA9PiAnY2hhcicsIGFtcHJvY251bSA9PiAnNScsIGFtcHJvYyA9PiAnYnJp bl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vY2hhcl9ibG9vbV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnY2hhcicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnY2hh cicsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV93aXRoaW5fcmFu Z2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9jaGFyX2Jsb29tX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdjaGFyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdjaGFyJywgYW1wcm9jbnVt ID0+ICcxMScsIGFtcHJvYyA9PiAnaGFzaGNoYXInIH0sCiAKQEAgLTkwNyw2ICs5MTksOSBAQAog ICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9uYW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbmFtZScsCiAgIGFt cHJvY3JpZ2h0dHlwZSA9PiAnbmFtZScsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJp bl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9uYW1lX21pbm1heF9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbmFtZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbmFt ZScsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfd2l0aGluX3Jh bmdlJyB9LAogCiAjIGJsb29tIG5hbWUKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25hbWVfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ25hbWUnLApAQCAtOTIxLDYgKzkzNiw5IEBACiAg IGFtcHJvY3JpZ2h0dHlwZSA9PiAnbmFtZScsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAn YnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25hbWVfYmxvb21f b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ25hbWUnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ25h bWUnLCBhbXByb2NudW0gPT4gJzUnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwK K3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL25hbWVfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ25hbWUnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ25hbWUnLCBhbXByb2NudW0gPT4gJzYn LAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fd2l0aGluX3JhbmdlJyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vbmFtZV9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbmFtZScsCiAg IGFtcHJvY3JpZ2h0dHlwZSA9PiAnbmFtZScsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4g J2hhc2huYW1lJyB9LAogCkBAIC05MzYsNiArOTU0LDkgQEAKICAgYW1wcm9jID0+ICdicmluX21p bm1heF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9taW5t YXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDgnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2ludDgnLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9 LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9taW5tYXhfb3BzJywgYW1wcm9jbGVm dHR5cGUgPT4gJ2ludDgnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDgnLCBhbXByb2NudW0g PT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3dpdGhpbl9yYW5nZScgfSwKIAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ2ludDInLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDInLCBhbXByb2NudW0gPT4gJzEn LApAQCAtOTQ4LDYgKzk2OSw5IEBACiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfY29uc2lzdGVu dCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICdpbnQyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywgYW1wcm9j bnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFt aWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbnQy JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1w cm9jID0+ICdicmluX21pbm1heF93aXRoaW5fcmFuZ2UnIH0sCiAKIHsgYW1wcm9jZmFtaWx5ID0+ ICdicmluL2ludGVnZXJfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbnQ0JywKICAg YW1wcm9jcmlnaHR0eXBlID0+ICdpbnQ0JywgYW1wcm9jbnVtID0+ICcxJywKQEAgLTk2MCw2ICs5 ODQsOSBAQAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0sCiB7IGFtcHJv Y2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn aW50NCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50NCcsIGFtcHJvY251bSA9PiAnNCcsIGFt cHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9p bnRlZ2VyX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50NCcsCisgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnaW50NCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9t aW5tYXhfd2l0aGluX3JhbmdlJyB9LAogCiAjIG1pbm1heCBtdWx0aSBpbnRlZ2VyOiBpbnQyLCBp bnQ0LCBpbnQ4CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50MicsCkBAIC05NzcsNiArMTAwNCw5IEBACiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnaW50MicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50MicsIGFtcHJvY251bSA9 PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1w cm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdpbnQyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywgYW1wcm9jbnVtID0+ ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV93aXRoaW5fcmFuZ2UnIH0sCiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAnaW50MicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50MicsIGFtcHJvY251 bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX2Rpc3RhbmNlX2ludDIn IH0sCkBAIC05OTYsNiArMTAyNiw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2Vy X21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50NCcsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnaW50NCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9t aW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJf bWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbnQ0JywKKyAgYW1wcm9jcmln aHR0eXBlID0+ICdpbnQ0JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21p bm1heF9tdWx0aV93aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRl Z2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50NCcsCiAgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAnaW50NCcsIGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ2Jy aW5fbWlubWF4X211bHRpX2Rpc3RhbmNlX2ludDQnIH0sCkBAIC0xMDE1LDYgKzEwNDgsOSBAQAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2ludDgnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDgnLCBhbXByb2Nu dW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAnaW50OCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251 bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfd2l0aGluX3JhbmdlJyB9 LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9taW5tYXhfbXVsdGlfb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ2ludDgnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDgnLCBhbXBy b2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV9p bnQ4JyB9LApAQCAtMTAzMiw2ICsxMDY4LDkgQEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQ4 JywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3VuaW9uJyB9LAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnaW50OCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAnNScs IGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vaW50ZWdlcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50OCcsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJp bl9ibG9vbV93aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2Vy X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbnQ4JywKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICdpbnQ4JywgYW1wcm9jbnVtID0+ICcxMScsIGFtcHJvYyA9PiAnaGFzaGludDgnIH0sCiAK QEAgLTEwNDcsNiArMTA4Niw5IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50MicsIGFtcHJv Y251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1wcm9jZmFt aWx5ID0+ICdicmluL2ludGVnZXJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDIn LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDInLCBhbXByb2NudW0gPT4gJzUnLCBhbXByb2Mg PT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVn ZXJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDInLAorICBhbXByb2NyaWdodHR5 cGUgPT4gJ2ludDInLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21f d2l0aGluX3JhbmdlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9ibG9vbV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50MicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50 MicsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2hhc2hpbnQyJyB9LAogCkBAIC0xMDYy LDYgKzExMDQsOSBAQAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDQnLCBhbXByb2NudW0gPT4g JzQnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fdW5pb24nIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAn YnJpbi9pbnRlZ2VyX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbnQ0JywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdpbnQ0JywgYW1wcm9jbnVtID0+ICc1JywgYW1wcm9jID0+ICdicmlu X2Jsb29tX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX2Jsb29t X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbnQ0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdp bnQ0JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Jsb29tX3dpdGhpbl9y YW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfYmxvb21fb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ2ludDQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDQnLCBhbXBy b2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNoaW50NCcgfSwKIApAQCAtMTA3Nyw2ICsxMTIy LDkgQEAKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2Nm YW1pbHkgPT4gJ2JyaW4vdGV4dF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RleHQn LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RleHQnLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2Mg PT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGV4dF9t aW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RleHQnLAorICBhbXByb2NyaWdodHR5cGUg PT4gJ3RleHQnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3dp dGhpbl9yYW5nZScgfSwKIAogIyBibG9vbSB0ZXh0CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90 ZXh0X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0ZXh0JywKQEAgLTEwOTEsNiArMTEz OSw5IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGV4dCcsIGFtcHJvY251bSA9PiAnNCcsIGFt cHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3Rl eHRfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RleHQnLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ3RleHQnLCBhbXByb2NudW0gPT4gJzUnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0 aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RleHRfYmxvb21fb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ3RleHQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ3RleHQnLCBhbXByb2Nu dW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fd2l0aGluX3JhbmdlJyB9LAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vdGV4dF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn dGV4dCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGV4dCcsIGFtcHJvY251bSA9PiAnMTEnLCBh bXByb2MgPT4gJ2hhc2h0ZXh0JyB9LAogCkBAIC0xMTA1LDYgKzExNTYsOSBAQAogICBhbXByb2Mg PT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9v aWRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdvaWQnLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ29pZCcsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5p b24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9vaWRfbWlubWF4X29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdvaWQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ29pZCcsIGFtcHJvY251bSA9 PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfd2l0aGluX3JhbmdlJyB9LAogCiAjIG1p bm1heCBtdWx0aSBvaWQKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL29pZF9taW5tYXhfbXVsdGlf b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ29pZCcsCkBAIC0xMTIyLDYgKzExNzYsOSBAQAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vb2lkX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAnb2lkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzUn LAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2Zh bWlseSA9PiAnYnJpbi9vaWRfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdv aWQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ29pZCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFt cHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfd2l0aGluX3JhbmdlJyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vb2lkX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lk JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1w cm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV9pbnQ0JyB9LApAQCAtMTEzOSw2ICsx MTk2LDkgQEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzQnLCBh bXByb2MgPT4gJ2JyaW5fYmxvb21fdW5pb24nIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9v aWRfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ29pZCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnb2lkJywgYW1wcm9jbnVtID0+ICc1JywgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlv bnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9vaWRfYmxvb21fb3BzJywgYW1wcm9jbGVm dHR5cGUgPT4gJ29pZCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnb2lkJywgYW1wcm9jbnVtID0+ ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Jsb29tX3dpdGhpbl9yYW5nZScgfSwKIHsgYW1wcm9j ZmFtaWx5ID0+ICdicmluL29pZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lkJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ ICdoYXNob2lkJyB9LAogCkBAIC0xMTUzLDYgKzEyMTMsOSBAQAogICBhbXByb2MgPT4gJ2JyaW5f bWlubWF4X2NvbnNpc3RlbnQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aWRfbWlubWF4 X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aWQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3Rp ZCcsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aWRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICd0aWQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpZCcsIGFtcHJvY251bSA9PiAnNicsCisg IGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfd2l0aGluX3JhbmdlJyB9LAogCiAjIGJsb29tIHRpZAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlkX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICd0aWQnLApAQCAtMTE2Nyw2ICsxMjMwLDkgQEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aWQn LCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fdW5pb24nIH0sCiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi90aWRfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3Rp ZCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGlkJywgYW1wcm9jbnVtID0+ICc1JywgYW1wcm9j ID0+ICdicmluX2Jsb29tX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aWRf Ymxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpZCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9 PiAndGlkJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Jsb29tX3dpdGhp bl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpZF9ibG9vbV9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAndGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aWQnLCBhbXByb2Nu dW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNodGlkJyB9LAogCkBAIC0xMTg2LDYgKzEyNTIsOSBA QAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlkX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAndGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aWQnLCBhbXByb2NudW0g PT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi90aWRfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICd0aWQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpZCcsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfd2l0aGluX3JhbmdlJyB9LAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vdGlkX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAndGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aWQnLCBhbXByb2NudW0gPT4gJzExJywK ICAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV90aWQnIH0sCkBAIC0xMjAz LDYgKzEyNzIsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2Zsb2F0 NCcsIGFtcHJvY251bSA9PiAnNCcsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0s Cit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ2Zsb2F0NCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZmxvYXQ0JywgYW1wcm9jbnVt ID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF93aXRoaW5fcmFuZ2UnIH0sCiAKIHsg YW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnZmxvYXQ4JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdmbG9hdDgnLCBhbXByb2NudW0gPT4g JzEnLApAQCAtMTIxNiw2ICsxMjg4LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0 X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ4JywKICAgYW1wcm9jcmlnaHR0 eXBlID0+ICdmbG9hdDgnLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlu bWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDgnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2Zsb2F0 OCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfd2l0aGluX3Jh bmdlJyB9LAogCiAjIG1pbm1heCBtdWx0aSBmbG9hdAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v ZmxvYXRfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDQnLApAQCAt MTIzMyw2ICsxMzA4LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X21pbm1heF9t dWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ0JywKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICdmbG9hdDQnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4 X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9taW5tYXhf bXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0NCcsCisgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnZmxvYXQ0JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1h eF9tdWx0aV93aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9t aW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0NCcsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnZmxvYXQ0JywgYW1wcm9jbnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJp bl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfZmxvYXQ0JyB9LApAQCAtMTI1Miw2ICsxMzMwLDkgQEAK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAnZmxvYXQ4JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdmbG9hdDgnLCBhbXBy b2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0s Cit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2Zsb2F0OCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZmxvYXQ4JywgYW1w cm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV93aXRoaW5fcmFu Z2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9taW5tYXhfbXVsdGlfb3BzJywg YW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0OCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZmxvYXQ4 JywgYW1wcm9jbnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlz dGFuY2VfZmxvYXQ4JyB9LApAQCAtMTI3MSw2ICsxMzUyLDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ ICdicmluL2Zsb2F0X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDQnLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ2Zsb2F0NCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9 PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRf Ymxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0NCcsCisgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnZmxvYXQ0JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Jsb29t X3dpdGhpbl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X2Jsb29tX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2Zs b2F0NCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2hhc2hmbG9hdDQnIH0sCiAKQEAg LTEyODgsNiArMTM3Miw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9ibG9vbV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ4JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdm bG9hdDgnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9u cycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X2Jsb29tX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdmbG9hdDgnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2Zsb2F0OCcsIGFtcHJv Y251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV93aXRoaW5fcmFuZ2UnIH0sCiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnZmxvYXQ4JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdmbG9hdDgnLCBhbXByb2NudW0gPT4g JzExJywgYW1wcm9jID0+ICdoYXNoZmxvYXQ4JyB9LAogCkBAIC0xMzA0LDYgKzEzOTEsOSBAQAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbWFjYWRkcl9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ21hY2FkZHInLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2Nu dW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2Nm YW1pbHkgPT4gJ2JyaW4vbWFjYWRkcl9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21h Y2FkZHInLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzYn LAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3dpdGhpbl9yYW5nZScgfSwKIAogIyBtaW5tYXgg bXVsdGkgbWFjYWRkcgogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbWFjYWRkcl9taW5tYXhfbXVs dGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHInLApAQCAtMTMyMSw2ICsxNDExLDkg QEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHJfbWlubWF4X211bHRpX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdtYWNhZGRy JywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9vcHRp b25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbWFjYWRkcl9taW5tYXhfbXVsdGlfb3Bz JywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHInLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ21h Y2FkZHInLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRp X3dpdGhpbl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHJfbWlubWF4 X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyJywKICAgYW1wcm9jcmlnaHR0 eXBlID0+ICdtYWNhZGRyJywgYW1wcm9jbnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJpbl9t aW5tYXhfbXVsdGlfZGlzdGFuY2VfbWFjYWRkcicgfSwKQEAgLTEzNDEsNiArMTQzNCw5IEBACiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICdtYWNhZGRyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdtYWNhZGRyJywgYW1wcm9jbnVt ID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlvbnMnIH0sCit7IGFtcHJvY2Zh bWlseSA9PiAnYnJpbi9tYWNhZGRyX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNh ZGRyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdtYWNhZGRyJywgYW1wcm9jbnVtID0+ICc2JywK KyAgYW1wcm9jID0+ICdicmluX2Jsb29tX3dpdGhpbl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL21hY2FkZHJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHIn LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzExJywgYW1w cm9jID0+ICdoYXNobWFjYWRkcicgfSwKIApAQCAtMTM1Nyw2ICsxNDUzLDkgQEAKIHsgYW1wcm9j ZmFtaWx5ID0+ICdicmluL21hY2FkZHI4X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn bWFjYWRkcjgnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHI4JywgYW1wcm9jbnVtID0+ ICc0JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5 ID0+ICdicmluL21hY2FkZHI4X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbWFjYWRk cjgnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHI4JywgYW1wcm9jbnVtID0+ICc2JywK KyAgYW1wcm9jID0+ICdicmluX21pbm1heF93aXRoaW5fcmFuZ2UnIH0sCiAKICMgbWlubWF4IG11 bHRpIG1hY2FkZHI4CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyOF9taW5tYXhfbXVs dGlfb3BzJywKQEAgLTEzNzQsNiArMTQ3Myw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9t YWNhZGRyOF9taW5tYXhfbXVsdGlfb3BzJywKICAgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHI4 JywgYW1wcm9jcmlnaHR0eXBlID0+ICdtYWNhZGRyOCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFt cHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdicmluL21hY2FkZHI4X21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbWFj YWRkcjgnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHI4JywgYW1wcm9jbnVtID0+ICc2 JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV93aXRoaW5fcmFuZ2UnIH0sCiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyOF9taW5tYXhfbXVsdGlfb3BzJywKICAgYW1wcm9j bGVmdHR5cGUgPT4gJ21hY2FkZHI4JywgYW1wcm9jcmlnaHR0eXBlID0+ICdtYWNhZGRyOCcsCiAg IGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX2Rpc3RhbmNl X21hY2FkZHI4JyB9LApAQCAtMTM5NCw2ICsxNDk2LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL21hY2FkZHI4X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyOCcsCiAg IGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRkcjgnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXBy b2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL21h Y2FkZHI4X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyOCcsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAnbWFjYWRkcjgnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4g J2JyaW5fYmxvb21fd2l0aGluX3JhbmdlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbWFj YWRkcjhfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHI4JywKICAgYW1wcm9j cmlnaHR0eXBlID0+ICdtYWNhZGRyOCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2hh c2htYWNhZGRyOCcgfSwKIApAQCAtMTQwOSw2ICsxNTE0LDkgQEAKICAgYW1wcm9jID0+ICdicmlu X21pbm1heF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0d29ya19t aW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXByb2NyaWdodHR5cGUg PT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9u JyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0d29ya19taW5tYXhfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2luZXQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2Nu dW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3dpdGhpbl9yYW5nZScgfSwKIAog IyBtaW5tYXggbXVsdGkgaW5ldAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0d29ya19taW5t YXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLApAQCAtMTQyNiw2ICsxNTM0 LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfbWlubWF4X211bHRpX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0Jywg YW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9vcHRpb25z JyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0d29ya19taW5tYXhfbXVsdGlfb3BzJywg YW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBh bXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX3dpdGhpbl9y YW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfbWlubWF4X211bHRpX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0 JywgYW1wcm9jbnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlz dGFuY2VfaW5ldCcgfSwKQEAgLTE0NDMsNiArMTU1NCw5IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9 PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicg fSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfYmxvb21fb3BzJywgYW1wcm9jbGVm dHR5cGUgPT4gJ2luZXQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0g PT4gJzUnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5 ID0+ICdicmluL25ldHdvcmtfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAor ICBhbXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2Mg PT4gJ2JyaW5fYmxvb21fd2l0aGluX3JhbmdlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v bmV0d29ya19ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2hhc2hpbmV0 JyB9LAogCkBAIC0xNDU5LDYgKzE1NzMsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0 d29ya19pbmNsdXNpb25fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5f aW5jbHVzaW9uX3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0d29ya19pbmNs dXNpb25fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAorICBhbXByb2NyaWdodHR5cGUg PT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5faW5jbHVzaW9u X3dpdGhpbl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfaW5jbHVz aW9uX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICdpbmV0JywgYW1wcm9jbnVtID0+ICcxMScsIGFtcHJvYyA9PiAnaW5ldF9tZXJnZScgfSwKIHsg YW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfaW5jbHVzaW9uX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdpbmV0JywKQEAgLTE0NzksNiArMTU5Niw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAn YnJpbi9icGNoYXJfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdicGNoYXInLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ2JwY2hhcicsIGFtcHJvY251bSA9PiAnNCcsCiAgIGFtcHJvYyA9 PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9icGNoYXJf bWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdicGNoYXInLAorICBhbXByb2NyaWdodHR5 cGUgPT4gJ2JwY2hhcicsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5t YXhfd2l0aGluX3JhbmdlJyB9LAogCiAjIGJsb29tIGNoYXJhY3RlcgogeyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vYnBjaGFyX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdicGNoYXInLApA QCAtMTQ5NSw2ICsxNjE1LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2JwY2hhcl9ibG9v bV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICdicGNoYXInLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0 aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2JwY2hhcl9ibG9vbV9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNoYXInLCBh bXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fd2l0aGluX3JhbmdlJyB9 LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYnBjaGFyX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdicGNoYXInLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2JwY2hhcicsIGFtcHJvY251 bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2hhc2hicGNoYXInIH0sCiAKQEAgLTE1MTAsNiArMTYzMyw5 IEBACiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfY29uc2lzdGVudCcgfSwKIHsgYW1wcm9jZmFt aWx5ID0+ICdicmluL3RpbWVfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1lJywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpbWVfbWlu bWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aW1lJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF93aXRo aW5fcmFuZ2UnIH0sCiAKICMgbWlubWF4IG11bHRpIHRpbWUgd2l0aG91dCB0aW1lIHpvbmUKIHsg YW1wcm9jZmFtaWx5ID0+ICdicmluL3RpbWVfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICd0aW1lJywKQEAgLTE1MjcsNiArMTY1Myw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAn YnJpbi90aW1lX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZScsCiAg IGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZScsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9 PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmlu L3RpbWVfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICd0aW1lJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdi cmluX21pbm1heF9tdWx0aV93aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi90aW1lX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZScsCiAgIGFt cHJvY3JpZ2h0dHlwZSA9PiAndGltZScsIGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4g J2JyaW5fbWlubWF4X211bHRpX2Rpc3RhbmNlX3RpbWUnIH0sCkBAIC0xNTQ0LDYgKzE2NzMsOSBA QAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWUnLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2Mg PT4gJ2JyaW5fYmxvb21fdW5pb24nIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX2Js b29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aW1lJywgYW1wcm9jbnVtID0+ICc1JywgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlvbnMn IH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICd0aW1lJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1lJywgYW1wcm9jbnVtID0+ ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Jsb29tX3dpdGhpbl9yYW5nZScgfSwKIHsgYW1wcm9j ZmFtaWx5ID0+ICdicmluL3RpbWVfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWUn LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWUnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9j ID0+ICd0aW1lX2hhc2gnIH0sCiAKQEAgLTE1NjAsNiArMTY5Miw5IEBACiB7IGFtcHJvY2ZhbWls eSA9PiAnYnJpbi9kYXRldGltZV9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWVz dGFtcCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wJywgYW1wcm9jbnVtID0+ICc0 JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdicmluL2RhdGV0aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1w JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1lc3RhbXAnLCBhbXByb2NudW0gPT4gJzYnLAor ICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3dpdGhpbl9yYW5nZScgfSwKIAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1l c3RhbXB0eicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wdHonLCBhbXByb2NudW0g PT4gJzEnLApAQCAtMTU3Myw2ICsxNzA4LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Rh dGV0aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wdHonLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgYW1wcm9jbnVtID0+ICc0JywKICAgYW1w cm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Rh dGV0aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wdHonLAorICBh bXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1w cm9jID0+ICdicmluX21pbm1heF93aXRoaW5fcmFuZ2UnIH0sCiAKIHsgYW1wcm9jZmFtaWx5ID0+ ICdicmluL2RhdGV0aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZGF0ZScsCiAg IGFtcHJvY3JpZ2h0dHlwZSA9PiAnZGF0ZScsIGFtcHJvY251bSA9PiAnMScsCkBAIC0xNTg1LDYg KzE3MjMsOSBAQAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0sCiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ2RhdGUnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2RhdGUnLCBhbXByb2NudW0gPT4gJzQn LCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vZGF0ZXRpbWVfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdi cmluX21pbm1heF93aXRoaW5fcmFuZ2UnIH0sCiAKICMgbWlubWF4IG11bHRpIGRhdGV0aW1lIChk YXRlLCB0aW1lc3RhbXAsIHRpbWVzdGFtcHR6KQogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0 ZXRpbWVfbWlubWF4X211bHRpX29wcycsCkBAIC0xNjAyLDYgKzE3NDMsOSBAQAogeyBhbXByb2Nm YW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRpX29wcycsCiAgIGFtcHJvY2xlZnR0 eXBlID0+ICd0aW1lc3RhbXAnLCBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcCcsCiAgIGFt cHJvY251bSA9PiAnNScsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwK K3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX21pbm1heF9tdWx0aV9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1lc3Rh bXAnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX3dp dGhpbl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX21pbm1heF9t dWx0aV9vcHMnLAogICBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wJywgYW1wcm9jcmlnaHR0 eXBlID0+ICd0aW1lc3RhbXAnLAogICBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdicmlu X21pbm1heF9tdWx0aV9kaXN0YW5jZV90aW1lc3RhbXAnIH0sCkBAIC0xNjIxLDYgKzE3NjUsOSBA QAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRpX29wcycsCiAg IGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXB0eicsIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGlt ZXN0YW1wdHonLAogICBhbXByb2NudW0gPT4gJzUnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211 bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9taW5tYXhf bXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywKKyAgYW1wcm9jcmln aHR0eXBlID0+ICd0aW1lc3RhbXB0eicsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAn YnJpbl9taW5tYXhfbXVsdGlfd2l0aGluX3JhbmdlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vZGF0ZXRpbWVfbWlubWF4X211bHRpX29wcycsCiAgIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1l c3RhbXB0eicsIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wdHonLAogICBhbXByb2NudW0g PT4gJzExJywgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV90aW1lc3RhbXAn IH0sCkBAIC0xNjQwLDYgKzE3ODcsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRp bWVfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1wcm9j cmlnaHR0eXBlID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmlu X21pbm1heF9tdWx0aV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRp bWVfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKKyAgYW1wcm9j cmlnaHR0eXBlID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmlu X21pbm1heF9tdWx0aV93aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9k YXRldGltZV9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2RhdGUnLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ2RhdGUnLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV9kYXRlJyB9LApAQCAtMTY2MCw2ICsxODEwLDkg QEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICd0aW1lc3RhbXAnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcCcs IGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAor eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ3RpbWVzdGFtcCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wJywgYW1w cm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Jsb29tX3dpdGhpbl9yYW5nZScgfSwK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICd0aW1lc3RhbXAnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcCcsIGFt cHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ3RpbWVzdGFtcF9oYXNoJyB9LApAQCAtMTY3 OSw2ICsxODMyLDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXB0eicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9 PiAndGltZXN0YW1wdHonLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxv b21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXB0eicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9 PiAndGltZXN0YW1wdHonLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxv b21fd2l0aGluX3JhbmdlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywKICAgYW1wcm9jcmlnaHR0 eXBlID0+ICd0aW1lc3RhbXB0eicsIGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ3Rp bWVzdGFtcF9oYXNoJyB9LApAQCAtMTY5NSw2ICsxODUxLDkgQEAKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3VuaW9u JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfYmxvb21fb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2RhdGUnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2RhdGUnLCBhbXByb2Nu dW0gPT4gJzUnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFt aWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRl JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1w cm9jID0+ICdicmluX2Jsb29tX3dpdGhpbl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICcxMScsIGFtcHJvYyA9PiAnaGFz aGludDQnIH0sCiAKQEAgLTE3MTEsNiArMTg3MCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi9pbnRlcnZhbF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludGVydmFsJywKICAg YW1wcm9jcmlnaHR0eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY251bSA9PiAnNCcsCiAgIGFtcHJv YyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRl cnZhbF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludGVydmFsJywKKyAgYW1wcm9j cmlnaHR0eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAn YnJpbl9taW5tYXhfd2l0aGluX3JhbmdlJyB9LAogCiAjIG1pbm1heCBtdWx0aSBpbnRlcnZhbAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZXJ2YWxfbWlubWF4X211bHRpX29wcycsCkBAIC0x NzI4LDYgKzE4OTAsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZXJ2YWxfbWlubWF4 X211bHRpX29wcycsCiAgIGFtcHJvY2xlZnR0eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY3JpZ2h0 dHlwZSA9PiAnaW50ZXJ2YWwnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5f bWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlcnZh bF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludGVydmFsJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9 PiAnYnJpbl9taW5tYXhfbXVsdGlfd2l0aGluX3JhbmdlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4g J2JyaW4vaW50ZXJ2YWxfbWlubWF4X211bHRpX29wcycsCiAgIGFtcHJvY2xlZnR0eXBlID0+ICdp bnRlcnZhbCcsIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50ZXJ2YWwnLAogICBhbXByb2NudW0gPT4g JzExJywgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV9pbnRlcnZhbCcgfSwK QEAgLTE3NDgsNiArMTkxMyw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlcnZhbF9i bG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50ZXJ2YWwnLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ2ludGVydmFsJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX2Js b29tX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlcnZhbF9ibG9vbV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50ZXJ2YWwnLAorICBhbXByb2NyaWdodHR5cGUgPT4g J2ludGVydmFsJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Jsb29tX3dp dGhpbl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFsX2Jsb29tX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbnRlcnZhbCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn aW50ZXJ2YWwnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdpbnRlcnZhbF9oYXNoJyB9 LAogCkBAIC0xNzY0LDYgKzE5MzIsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGltZXR6 X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXR6JywKICAgYW1wcm9jcmlnaHR0 eXBlID0+ICd0aW1ldHonLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlu bWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGltZXR6X21pbm1heF9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXR6JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1l dHonLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3dpdGhpbl9y YW5nZScgfSwKIAogIyBtaW5tYXggbXVsdGkgdGltZSB3aXRoIHRpbWUgem9uZQogeyBhbXByb2Nm YW1pbHkgPT4gJ2JyaW4vdGltZXR6X21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAndGltZXR6JywKQEAgLTE3ODEsNiArMTk1Miw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi90aW1ldHpfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1ldHonLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJv YyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdi cmluL3RpbWV0el9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWV0eics CisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXR6JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1w cm9jID0+ICdicmluX21pbm1heF9tdWx0aV93aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWls eSA9PiAnYnJpbi90aW1ldHpfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0 aW1ldHonLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAnMTEn LAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX2Rpc3RhbmNlX3RpbWV0eicgfSwKQEAg LTE4MDAsNiArMTk3NCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1ldHpfYmxvb21f b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWV0eicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn dGltZXR6JywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlv bnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1ldHpfYmxvb21fb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ3RpbWV0eicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXR6JywgYW1w cm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Jsb29tX3dpdGhpbl9yYW5nZScgfSwK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpbWV0el9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAndGltZXR6JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1ldHonLCBhbXByb2NudW0g PT4gJzExJywgYW1wcm9jID0+ICd0aW1ldHpfaGFzaCcgfSwKIApAQCAtMTgxNCw2ICsxOTkxLDkg QEAKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vYml0X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYml0JywKICAg YW1wcm9jcmlnaHR0eXBlID0+ICdiaXQnLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2Jy aW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYml0X21pbm1heF9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYml0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdiaXQn LCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3dpdGhpbl9yYW5n ZScgfSwKIAogIyBtaW5tYXggYml0IHZhcnlpbmcKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3Zh cmJpdF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3ZhcmJpdCcsCkBAIC0xODI4LDYg KzIwMDgsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdmFyYml0X21pbm1heF9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAndmFyYml0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd2YXJiaXQn LCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAor eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdmFyYml0X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAndmFyYml0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd2YXJiaXQnLCBhbXByb2NudW0g PT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3dpdGhpbl9yYW5nZScgfSwKIAogIyBt aW5tYXggbnVtZXJpYwogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbnVtZXJpY19taW5tYXhfb3Bz JywgYW1wcm9jbGVmdHR5cGUgPT4gJ251bWVyaWMnLApAQCAtMTg0Miw2ICsyMDI1LDkgQEAKIHsg YW1wcm9jZmFtaWx5ID0+ICdicmluL251bWVyaWNfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICdudW1lcmljJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdudW1lcmljJywgYW1wcm9jbnVt ID0+ICc0JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFt aWx5ID0+ICdicmluL251bWVyaWNfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdudW1l cmljJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdudW1lcmljJywgYW1wcm9jbnVtID0+ICc2JywK KyAgYW1wcm9jID0+ICdicmluX21pbm1heF93aXRoaW5fcmFuZ2UnIH0sCiAKICMgbWlubWF4IG11 bHRpIG51bWVyaWMKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL251bWVyaWNfbWlubWF4X211bHRp X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdudW1lcmljJywKQEAgLTE4NTksNiArMjA0NSw5IEBA CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9udW1lcmljX21pbm1heF9tdWx0aV9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnbnVtZXJpYycsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbnVtZXJpYycs IGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9u cycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL251bWVyaWNfbWlubWF4X211bHRpX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdudW1lcmljJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdudW1l cmljJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV93 aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9udW1lcmljX21pbm1heF9t dWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVtZXJpYycsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlu bWF4X211bHRpX2Rpc3RhbmNlX251bWVyaWMnIH0sCkBAIC0xODc5LDYgKzIwNjgsOSBAQAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vbnVtZXJpY19ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnbnVtZXJpYycsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9 PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vbnVtZXJpY19ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVtZXJp YycsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAnNicsCisg IGFtcHJvYyA9PiAnYnJpbl9ibG9vbV93aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9udW1lcmljX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdudW1lcmljJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICdudW1lcmljJywgYW1wcm9jbnVtID0+ICcxMScsIGFtcHJv YyA9PiAnaGFzaF9udW1lcmljJyB9LAogCkBAIC0xODk0LDYgKzIwODYsOSBAQAogICBhbXByb2Mg PT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi91 dWlkX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCiAgIGFtcHJvY3JpZ2h0 dHlwZSA9PiAndXVpZCcsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhf dW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi91dWlkX21pbm1heF9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAndXVpZCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndXVpZCcsIGFtcHJv Y251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfd2l0aGluX3JhbmdlJyB9LAog CiAjIG1pbm1heCBtdWx0aSB1dWlkCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi91dWlkX21pbm1h eF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCkBAIC0xOTExLDYgKzIxMDYs OSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdXVpZF9taW5tYXhfbXVsdGlfb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ3V1aWQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3V1aWQnLCBhbXBy b2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0s Cit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi91dWlkX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAndXVpZCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndXVpZCcsIGFtcHJvY251 bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfd2l0aGluX3JhbmdlJyB9 LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdXVpZF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ3V1aWQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3V1aWQnLCBhbXByb2Nu dW0gPT4gJzExJywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV91dWlk JyB9LApAQCAtMTkyOCw2ICsyMTI2LDkgQEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd1dWlkJywg YW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3VuaW9uJyB9LAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vdXVpZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVp ZCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndXVpZCcsIGFtcHJvY251bSA9PiAnNScsIGFtcHJv YyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdXVp ZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCisgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAndXVpZCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV93 aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi91dWlkX2Jsb29tX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICd1dWlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd1dWlkJywg YW1wcm9jbnVtID0+ICcxMScsIGFtcHJvYyA9PiAndXVpZF9oYXNoJyB9LAogCkBAIC0xOTQ0LDYg KzIxNDUsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcmFuZ2VfaW5jbHVzaW9uX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55 cmFuZ2UnLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5faW5jbHVzaW9uX3Vu aW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcmFuZ2VfaW5jbHVzaW9uX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55cmFu Z2UnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5faW5jbHVzaW9uX3dpdGhp bl9yYW5nZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3JhbmdlX2luY2x1c2lvbl9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2Fu eXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAncmFuZ2VfbWVyZ2UoYW55 cmFuZ2UsYW55cmFuZ2UpJyB9LApAQCAtMTk2Nyw2ICsyMTcxLDkgQEAKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL3BnX2xzbl9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BnX2xzbics CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncGdfbHNuJywgYW1wcm9jbnVtID0+ICc0JywKICAgYW1w cm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3Bn X2xzbl9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BnX2xzbicsCisgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAncGdfbHNuJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmlu X21pbm1heF93aXRoaW5fcmFuZ2UnIH0sCiAKICMgbWlubWF4IG11bHRpIHBnX2xzbgogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vcGdfbHNuX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAncGdfbHNuJywKQEAgLTE5ODQsNiArMjE5MSw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAn YnJpbi9wZ19sc25fbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdwZ19sc24n LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3BnX2xzbicsIGFtcHJvY251bSA9PiAnNScsCiAgIGFt cHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdicmluL3BnX2xzbl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BnX2xz bicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncGdfbHNuJywgYW1wcm9jbnVtID0+ICc2JywKKyAg YW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV93aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2Zh bWlseSA9PiAnYnJpbi9wZ19sc25fbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdwZ19sc24nLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3BnX2xzbicsIGFtcHJvY251bSA9PiAn MTEnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX2Rpc3RhbmNlX3BnX2xzbicgfSwK QEAgLTIwMDMsNiArMjIxMyw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9wZ19sc25fYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BnX2xzbicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9 PiAncGdfbHNuJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX2Jsb29tX29w dGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9wZ19sc25fYmxvb21fb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ3BnX2xzbicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncGdfbHNuJywg YW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2Jsb29tX3dpdGhpbl9yYW5nZScg fSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3BnX2xzbl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAncGdfbHNuJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19sc24nLCBhbXByb2Nu dW0gPT4gJzExJywgYW1wcm9jID0+ICdwZ19sc25faGFzaCcgfSwKIApAQCAtMjAxOSw2ICsyMjMy LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2JveF9pbmNsdXNpb25fb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2JveCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVt ID0+ICc0JywKICAgYW1wcm9jID0+ICdicmluX2luY2x1c2lvbl91bmlvbicgfSwKK3sgYW1wcm9j ZmFtaWx5ID0+ICdicmluL2JveF9pbmNsdXNpb25fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Jv eCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1w cm9jID0+ICdicmluX2luY2x1c2lvbl93aXRoaW5fcmFuZ2UnIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9ib3hfaW5jbHVzaW9uX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdib3gnLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2Jv dW5kX2JveCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2JveF9pbmNsdXNpb25fb3BzJywg YW1wcm9jbGVmdHR5cGUgPT4gJ2JveCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBkNDY1 MDk0N2M2My4uZmIxZmExNTgxYjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtODkwNCw2 ICs4OTA0LDEwIEBACiB7IG9pZCA9PiAnMzM4NicsIGRlc2NyID0+ICdCUklOIG1pbm1heCBzdXBw b3J0JywKICAgcHJvbmFtZSA9PiAnYnJpbl9taW5tYXhfdW5pb24nLCBwcm9yZXR0eXBlID0+ICdi b29sJywKICAgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFsIGludGVybmFsIGludGVybmFsJywgcHJv c3JjID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgb2lkID0+ICc5NjM3JywgZGVzY3IgPT4g J0JSSU4gbWlubWF4IHN1cHBvcnQnLAorICBwcm9uYW1lID0+ICdicmluX21pbm1heF93aXRoaW5f cmFuZ2UnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFs IGludGVybmFsIGludGVybmFsIGludGVybmFsJywKKyAgcHJvc3JjID0+ICdicmluX21pbm1heF93 aXRoaW5fcmFuZ2UnIH0sCiAKICMgQlJJTiBtaW5tYXggbXVsdGkKIHsgb2lkID0+ICc0NjE2Jywg ZGVzY3IgPT4gJ0JSSU4gbXVsdGkgbWlubWF4IHN1cHBvcnQnLApAQCAtODkyNSw2ICs4OTI5LDEw IEBACiAgIHByb25hbWUgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnLCBwcm9pc3N0cmlj dCA9PiAnZicsCiAgIHByb3JldHR5cGUgPT4gJ3ZvaWQnLCBwcm9hcmd0eXBlcyA9PiAnaW50ZXJu YWwnLAogICBwcm9zcmMgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IG9pZCA9 PiAnOTYzOCcsIGRlc2NyID0+ICdCUklOIG11bHRpIG1pbm1heCBzdXBwb3J0JywKKyAgcHJvbmFt ZSA9PiAnYnJpbl9taW5tYXhfbXVsdGlfd2l0aGluX3JhbmdlJywgcHJvcmV0dHlwZSA9PiAnYm9v bCcsCisgIHByb2FyZ3R5cGVzID0+ICdpbnRlcm5hbCBpbnRlcm5hbCBpbnRlcm5hbCBpbnRlcm5h bCcsCisgIHByb3NyYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfd2l0aGluX3JhbmdlJyB9LAogCiB7 IG9pZCA9PiAnNDYyMScsIGRlc2NyID0+ICdCUklOIG11bHRpIG1pbm1heCBpbnQyIGRpc3RhbmNl JywKICAgcHJvbmFtZSA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfaW50MicsIHByb3Jl dHR5cGUgPT4gJ2Zsb2F0OCcsCkBAIC05MDExLDYgKzkwMTksMTAgQEAKICAgcHJvbmFtZSA9PiAn YnJpbl9pbmNsdXNpb25fdW5pb24nLCBwcm9yZXR0eXBlID0+ICdib29sJywKICAgcHJvYXJndHlw ZXMgPT4gJ2ludGVybmFsIGludGVybmFsIGludGVybmFsJywKICAgcHJvc3JjID0+ICdicmluX2lu Y2x1c2lvbl91bmlvbicgfSwKK3sgb2lkID0+ICc5NjM5JywgZGVzY3IgPT4gJ0JSSU4gaW5jbHVz aW9uIHN1cHBvcnQnLAorICBwcm9uYW1lID0+ICdicmluX2luY2x1c2lvbl93aXRoaW5fcmFuZ2Un LCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFsIGludGVy bmFsIGludGVybmFsIGludGVybmFsJywKKyAgcHJvc3JjID0+ICdicmluX2luY2x1c2lvbl93aXRo aW5fcmFuZ2UnIH0sCiAKICMgQlJJTiBibG9vbQogeyBvaWQgPT4gJzQ1OTEnLCBkZXNjciA9PiAn QlJJTiBibG9vbSBzdXBwb3J0JywKQEAgLTkwMzAsNiArOTA0MiwxMCBAQAogeyBvaWQgPT4gJzQ1 OTUnLCBkZXNjciA9PiAnQlJJTiBibG9vbSBzdXBwb3J0JywKICAgcHJvbmFtZSA9PiAnYnJpbl9i bG9vbV9vcHRpb25zJywgcHJvaXNzdHJpY3QgPT4gJ2YnLCBwcm9yZXR0eXBlID0+ICd2b2lkJywK ICAgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFsJywgcHJvc3JjID0+ICdicmluX2Jsb29tX29wdGlv bnMnIH0sCit7IG9pZCA9PiAnOTY0MCcsIGRlc2NyID0+ICdCUklOIGJsb29tIHN1cHBvcnQnLAor ICBwcm9uYW1lID0+ICdicmluX2Jsb29tX3dpdGhpbl9yYW5nZScsIHByb3JldHR5cGUgPT4gJ2Jv b2wnLAorICBwcm9hcmd0eXBlcyA9PiAnaW50ZXJuYWwgaW50ZXJuYWwgaW50ZXJuYWwgaW50ZXJu YWwnLAorICBwcm9zcmMgPT4gJ2JyaW5fYmxvb21fd2l0aGluX3JhbmdlJyB9LAogCiAjIHVzZXJs b2NrIHJlcGxhY2VtZW50cwogeyBvaWQgPT4gJzI4ODAnLCBkZXNjciA9PiAnb2J0YWluIGV4Y2x1 c2l2ZSBhZHZpc29yeSBsb2NrJywKLS0gCjIuNDMuMAoK --000000000000ea00d80639475429--