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 1sKFo8-0096W8-Po for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Jun 2024 11:18:25 +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 1sKFo5-005FJ6-Uu for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Jun 2024 11:18:22 +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 1sKFo5-005FGU-12 for pgsql-hackers@lists.postgresql.org; Thu, 20 Jun 2024 11:18:22 +0000 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sKFo1-002dXW-M5 for pgsql-hackers@postgresql.org; Thu, 20 Jun 2024 11:18:19 +0000 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-62fe76c0a61so15063317b3.0 for ; Thu, 20 Jun 2024 04:18:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1718882295; x=1719487095; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=OcEKJtoM3nmpgTOc5Q4X5D34vjEwaieFcUDNkWE9fvQ=; b=RpOwtRjLAVLqPyUlC6noRE9Wj0oZ8kQQ3zE1hlfaT89k/7eNisK1sA+JeWJg+gBhKQ tyK/3pw0PTFh8MHK0px9dokYGdU0hTcWQyEsOhiFSjSGFVyicsanJwS+bLo46vyoqSQM onQw+SPnmAcxnhQwI85t/ZgegK56GhUTOfo/oTQMgWC8CQvmeCPgd+nbHLVQjxly+RbP SowFwi6XdLuLuBKsgudkfmtApJh4kDioXXh6s8sbA0qcqrwf+YELVuIkoPlrlvjy/3Ty ZgAxqdJvX4zJc3dt3pwTCd/zdyuxI7bv7i4gRN7BXx7KJeNh7PX5fYmHeJN8RZBvADQV efCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718882295; x=1719487095; h=cc: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=OcEKJtoM3nmpgTOc5Q4X5D34vjEwaieFcUDNkWE9fvQ=; b=Z/5KA61vCb1yODOhhe8/KvOG85+MslbRNkd+iyLnVHanaHgNO7xfdOoq6NvCK6nruT YuqVNvHGS/wcRDuwb0ve5i4zLmx6F7wUP3LnL/H1rlsDimTglAOKWNwLv9/ZGwYyl68V c8tnyMkqm9KZPwmbvkry3o9dLh6qlfzNerzRAIXsfwK7E+xqom0PULRzh+YumpkG3u7Z wC1634Jmpb8J8laveKnFFj0QPODJ5NMWxePiCY+fQwItVjUjozVoV0bQ+2WDh/vBslWo nCtT97RRob1LmppaGhWfJrfQmHIrb6xARqK7uPCYsDu+AW0UuyXc0Hh7WtO3MUMikYcP H0WQ== X-Forwarded-Encrypted: i=1; AJvYcCVl1we7CDCQpCZOEG/OMZ4sikgvttBzeib6oUDwBScAOW94o4JXgJtrXWLcSxQGhMrAM0RWtjdPvdMS6dlG62jxIyGJJgDHwSdh5agR X-Gm-Message-State: AOJu0YzM1kxucljFqfCUW352j1yU4/H5tJxyKm9Kr00uDODEn4Kb8m6O XgpkuFRnDY6hTVWPAd2ErfsHYMX8xAnOGA6lWn52i3VpaNMNEsjo9gVS32Ga3ZaXuQiSun7WOOj w/mE9ymrNPS36MV504ZKoAsHc7hIKPJZYarKjkA== X-Google-Smtp-Source: AGHT+IHkA8zs6KgnYmSzAQjlwfQI+zKGyCz+PzUxg+Mag9UYcVdL5MKdPJPE1byr04hnBpJCRSU3Nca24qCnRD18mSo= X-Received: by 2002:a81:4320:0:b0:618:90cc:bc4a with SMTP id 00721157ae682-6394ab9a704mr44530687b3.26.1718882295378; Thu, 20 Jun 2024 04:18:15 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jelte Fennema-Nio Date: Thu, 20 Jun 2024 13:18:03 +0200 Message-ID: Subject: Re: Extension security improvement: Add support for extensions with an owned schema To: "David G. Johnston" Cc: Jeff Davis , PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000a0d6bc061b507875" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a0d6bc061b507875 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 19 Jun 2024 at 17:22, David G. Johnston wrote: > > On Wed, Jun 19, 2024 at 8:19=E2=80=AFAM Jelte Fennema-Nio = wrote: > >> >> Because part of it would >> only be relevant once we support upgrading from PG18. So for now the >> upgrade_code I haven't actually run. > > > Does it apply against v16? If so, branch off there, apply it, then upgra= de from the v16 branch to master. I realized it's possible to do an "upgrade" with pg_upgrade from v17 to v17. So I was able to test both the pre and post PG18 upgrade logic manually by changing the version in this line: if (fout->remoteVersion >=3D 180000) As expected the new pg_upgrade code was severely broken. Attached is a new patch where the pg_upgrade code now actually works. --000000000000a0d6bc061b507875 Content-Type: application/octet-stream; name="v3-0001-Add-support-for-extensions-with-an-owned-schema.patch" Content-Disposition: attachment; filename="v3-0001-Add-support-for-extensions-with-an-owned-schema.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lxn5d3wv0 RnJvbSAyZjAxMThiNWUzMDk3MWNiZjMwNWJhOTUxZWJlNjdjMDY3ODUyYTk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8amVsdGUuZmVubmVtYUBtaWNy b3NvZnQuY29tPgpEYXRlOiBGcmksIDMxIE1heSAyMDI0IDAyOjA0OjMxIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCB2M10gQWRkIHN1cHBvcnQgZm9yIGV4dGVuc2lvbnMgd2l0aCBhbiBvd25lZCBzY2hl bWEKCldyaXRpbmcgdGhlIHNxbCBtaWdyYXRpb24gc2NyaXB0cyB0aGF0IGFyZSBydW4gYnkgQ1JF QVRFIEVYVEVOU0lPTiBhbmQKQUxURVIgRVhURU5TSU9OIFVQREFURSBhcmUgc2VjdXJpdHkgbWlu ZWZpZWxkcyBmb3IgZXh0ZW5zaW9uIGF1dGhvcnMuCk9uZSBiaWcgcmVhc29uIGZvciB0aGlzIGlz IHRoYXQgc2VhcmNoX3BhdGggaXMgc2V0IHRvIHRoZSBzY2hlbWEgb2YgdGhlCmV4dGVuc2lvbiB3 aGlsZSBydW5uaW5nIHRoZXNlIHNjcmlwdHMsIGFuZCB0aHVzIGlmIGEgdXNlciB3aXRoIGxvd2Vy CnByaXZpbGVnZXMgY2FuIGNyZWF0ZSBmdW5jdGlvbnMgb3Igb3BlcmF0b3JzIGluIHRoYXQgc2No ZW1hIHRoZXkgY2FuIGRvCmFsbCBraW5kcyBvZiBzZWFyY2hfcGF0aCBjb25mdXNpb24gYXR0YWNr cyBpZiBub3QgZXZlcnkgZnVuY3Rpb24gYW5kCm9wZXJhdG9yIHRoYXQgaXMgdXNlZCBpbiB0aGUg c2NyaXB0IGlzIHNjaGVtYSBxdWFsaWZpZWQuIFdoaWxlIGRvaW5nCnN1Y2ggc2NoZW1hIHF1YWxp ZmljYXRpb24gaXMgcG9zc2libGUsIGl0IHJlbGllcyBvbiB0aGUgYXV0aG9yIHRvIG5ldmVyCm1h a2UgYSBtaXN0YWtlIGluIGFueSBvZiB0aGUgc3FsIGZpbGVzLiBBbmQgc2FkbHkgaHVtYW5zIGhh dmUgYSB0ZW5kZW5jeQp0byBtYWtlIG1pc3Rha2VzLgoKVGhpcyBwYXRjaCBhZGRzIGEgbmV3ICJv d25lZF9zY2hlbWEiIG9wdGlvbiB0byB0aGUgZXh0ZW5zaW9uIGNvbnRyb2wKZmlsZSB0aGF0IGNh biBiZSBzZXQgdG8gdHJ1ZSB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgZXh0ZW5zaW9uIHdhbnRzIHRv Cm93biB0aGUgc2NoZW1hIGluIHdoaWNoIGl0IGlzIGluc3RhbGxlZC4gV2hhdCB0aGF0IG1lYW5z IGlzIHRoYXQgdGhlCnNjaGVtYSBzaG91bGQgbm90IGV4aXN0IGJlZm9yZSBjcmVhdGluZyB0aGUg ZXh0ZW5zaW9uLCBhbmQgd2lsbCBiZQpjcmVhdGVkIGR1cmluZyBleHRlbnNpb24gY3JlYXRpb24u IFRoaXMgdGh1cyBnaXZlcyB0aGUgZXh0ZW5zaW9uIGF1dGhvcgphbiBlYXN5IHdheSB0byB1c2Ug YSBzYWZlIHNlYXJjaF9wYXRoLCB3aGlsZSBzdGlsbCBhbGxvd2luZyBhbGwgb2JqZWN0cwp0byBi ZSBncm91cGVkIHRvZ2V0aGVyIGluIGEgc2NoZW1hLiBUaGUgaW1wbGVtZW50YXRpb24gYWxzbyBo YXMgdGhlCnBsZWFzYW50IHNpZGUgZWZmZWN0IHRoYXQgdGhlIHNjaGVtYSB3aWxsIGJlIGF1dG9t YXRpY2FsbHkgZHJvcHBlZCB3aGVuCnRoZSBleHRlbnNpb24gaXMgZHJvcHBlZC4KLS0tCiBkb2Mv c3JjL3NnbWwvZXh0ZW5kLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKysKIGRvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2V4dGVuc2lvbi5zZ21sICAgICAgICB8ICAgMyArLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMgICAgICAgICAgICAgIHwgMTQyICsrKysrKysrKysr KystLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jICAgIHwg IDQ1ICsrKystLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAg IHwgIDUyICsrKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2V4dGVuc2lvbi5oICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAg IHwgICAyICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9leHRlbnNpb24uaCAgICAgICAgICAgICAg fCAgIDQgKy0KIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL01ha2VmaWxlICAgICB8 ICAgNyArLQogLi4uL2V4cGVjdGVkL3Rlc3RfZXh0ZW5zaW9ucy5vdXQgICAgICAgICAgICAgIHwg IDUwICsrKysrKwogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvbWVzb24uYnVpbGQg IHwgICA0ICsKIC4uLi90ZXN0X2V4dGVuc2lvbnMvc3FsL3Rlc3RfZXh0ZW5zaW9ucy5zcWwgICB8 ICAyNyArKysrCiAuLi4vdGVzdF9leHRfb3duZWRfc2NoZW1hLS0xLjAuc3FsICAgICAgICAgICAg fCAgIDIgKwogLi4uL3Rlc3RfZXh0X293bmVkX3NjaGVtYS5jb250cm9sICAgICAgICAgICAgIHwg ICA1ICsKIC4uLnRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS0tMS4wLnNxbCB8ICAg MiArCiAuLi4vdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLmNvbnRyb2wgfCAgIDQg KwogMTcgZmlsZXMgY2hhbmdlZCwgMzAyIGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3Rf ZXh0X293bmVkX3NjaGVtYS0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21v ZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS5jb250cm9sCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRf b3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLS0xLjAuc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9j YXRhYmxlLmNvbnRyb2wKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZXh0ZW5kLnNnbWwgYi9k b2Mvc3JjL3NnbWwvZXh0ZW5kLnNnbWwKaW5kZXggMjE4OTQwZWU1Y2UuLjM2ZGM2OTJhYmVmIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZXh0ZW5kLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2V4 dGVuZC5zZ21sCkBAIC04MDksNiArODA5LDE5IEBAIFJFVFVSTlMgYW55Y29tcGF0aWJsZSBBUyAu Li4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJs aXN0ZW50cnkgaWQ9ImV4dGVuZC1leHRlbnNpb25zLWZpbGVzLW93bmVkLXNjaGVtYSI+CisgICAg ICA8dGVybT48dmFybmFtZT5vd25lZF9zY2hlbWE8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90 eXBlPik8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEFu IGV4dGVuc2lvbiBpcyA8Zmlyc3R0ZXJtPm93bmVkX3NjaGVtYTwvZmlyc3R0ZXJtPiBpZiBpdCBy ZXF1aXJlcyBhCisgICAgICAgIG5ldyBkZWRpY2F0ZWQgc2NoZW1hIGZvciBpdHMgb2JqZWN0cy4g U3VjaCBhIHJlcXVpcmVtZW50IGNhbiBtYWtlCisgICAgICAgIHNlY3VyaXR5IGNvbmNlcm5zIHJl bGF0ZWQgdG8gPGxpdGVyYWw+c2VhcmNoX3BhdGg8L2xpdGVyYWw+IGluamVjdGlvbgorICAgICAg ICBtdWNoIGVhc2llciB0byByZWFzb24gYWJvdXQuIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPmZh bHNlPC9saXRlcmFsPiwKKyAgICAgICAgaS5lLiwgdGhlIGV4dGVuc2lvbiBjYW4gYmUgaW5zdGFs bGVkIGludG8gYW4gZXhpc3Rpbmcgc2NoZW1hLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlz dGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImV4 dGVuZC1leHRlbnNpb25zLWZpbGVzLXNjaGVtYSI+CiAgICAgICA8dGVybT48dmFybmFtZT5zY2hl bWE8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KTwvdGVybT4KICAgICAgIDxsaXN0aXRl bT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2V4dGVuc2lvbi5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZXh0ZW5zaW9uLnNnbWwKaW5kZXggY2EyYjgwZDY2OWMu LjZlNzY3YzdiZmNhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9leHRlbnNp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9leHRlbnNpb24uc2dtbApAQCAt MTAyLDcgKzEwMiw4IEBAIENSRUFURSBFWFRFTlNJT04gWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4dGVuc2lvbl9uYW1lCiAgICAgICAgPHBhcmE+CiAg ICAgICAgIFRoZSBuYW1lIG9mIHRoZSBzY2hlbWEgaW4gd2hpY2ggdG8gaW5zdGFsbCB0aGUgZXh0 ZW5zaW9uJ3MKICAgICAgICAgb2JqZWN0cywgZ2l2ZW4gdGhhdCB0aGUgZXh0ZW5zaW9uIGFsbG93 cyBpdHMgY29udGVudHMgdG8gYmUKLSAgICAgICAgcmVsb2NhdGVkLiAgVGhlIG5hbWVkIHNjaGVt YSBtdXN0IGFscmVhZHkgZXhpc3QuCisgICAgICAgIHJlbG9jYXRlZC4gIFRoZSBuYW1lZCBzY2hl bWEgbXVzdCBhbHJlYWR5IGV4aXN0IGlmIHRoZSBleHRlbnNpb24ncworICAgICAgICBjb250cm9s IGZpbGUgZG9lcyBub3Qgc3BlY2lmeSA8bGl0ZXJhbD5vd25lZF9zY2hlbWE8L2xpdGVyYWw+Lgog ICAgICAgICBJZiBub3Qgc3BlY2lmaWVkLCBhbmQgdGhlIGV4dGVuc2lvbidzIGNvbnRyb2wgZmls ZSBkb2VzIG5vdCBzcGVjaWZ5IGEKICAgICAgICAgc2NoZW1hIGVpdGhlciwgdGhlIGN1cnJlbnQg ZGVmYXVsdCBvYmplY3QgY3JlYXRpb24gc2NoZW1hIGlzIHVzZWQuCiAgICAgICAgPC9wYXJhPgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9leHRlbnNpb24uYwppbmRleCAxNjQzYzhjNjlhMC4uZTk2NDQ4ODEyOGMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCkBAIC04Myw2ICs4Myw4IEBAIHR5cGVkZWYgc3RydWN0 IEV4dGVuc2lvbkNvbnRyb2xGaWxlCiAJCQkJCQkJCQkgKiBNT0RVTEVfUEFUSE5BTUUgKi8KIAlj aGFyCSAgICpjb21tZW50OwkJLyogY29tbWVudCwgaWYgYW55ICovCiAJY2hhcgkgICAqc2NoZW1h OwkJCS8qIHRhcmdldCBzY2hlbWEgKGFsbG93ZWQgaWYgIXJlbG9jYXRhYmxlKSAqLworCWJvb2wJ CW93bmVkX3NjaGVtYTsJLyogaWYgdGhlIHNjaGVtYSBzaG91bGQgYmUgb3duZWQgYnkgdGhlCisJ CQkJCQkJCSAqIGV4dGVuc2lvbiAqLwogCWJvb2wJCXJlbG9jYXRhYmxlOwkvKiBpcyBBTFRFUiBF WFRFTlNJT04gU0VUIFNDSEVNQSBzdXBwb3J0ZWQ/ICovCiAJYm9vbAkJc3VwZXJ1c2VyOwkJLyog bXVzdCBiZSBzdXBlcnVzZXIgdG8gaW5zdGFsbD8gKi8KIAlib29sCQl0cnVzdGVkOwkJLyogYWxs b3cgYmVjb21pbmcgc3VwZXJ1c2VyIG9uIHRoZSBmbHk/ICovCkBAIC01NjEsNiArNTYzLDE0IEBA IHBhcnNlX2V4dGVuc2lvbl9jb250cm9sX2ZpbGUoRXh0ZW5zaW9uQ29udHJvbEZpbGUgKmNvbnRy b2wsCiAJCXsKIAkJCWNvbnRyb2wtPnNjaGVtYSA9IHBzdHJkdXAoaXRlbS0+dmFsdWUpOwogCQl9 CisJCWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAib3duZWRfc2NoZW1hIikgPT0gMCkKKwkJ eworCQkJaWYgKCFwYXJzZV9ib29sKGl0ZW0tPnZhbHVlLCAmY29udHJvbC0+b3duZWRfc2NoZW1h KSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BB UkFNRVRFUl9WQUxVRSksCisJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgXCIlc1wiIHJlcXVpcmVz IGEgQm9vbGVhbiB2YWx1ZSIsCisJCQkJCQkJCWl0ZW0tPm5hbWUpKSk7CisJCX0KIAkJZWxzZSBp ZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJyZWxvY2F0YWJsZSIpID09IDApCiAJCXsKIAkJCWlmICgh cGFyc2VfYm9vbChpdGVtLT52YWx1ZSwgJmNvbnRyb2wtPnJlbG9jYXRhYmxlKSkKQEAgLTE1NDcs OCArMTU1NywxMSBAQCBDcmVhdGVFeHRlbnNpb25JbnRlcm5hbChjaGFyICpleHRlbnNpb25OYW1l LAogCSAqLwogCWlmIChzY2hlbWFOYW1lKQogCXsKLQkJLyogSWYgdGhlIHVzZXIgaXMgZ2l2aW5n IHVzIHRoZSBzY2hlbWEgbmFtZSwgaXQgbXVzdCBleGlzdCBhbHJlYWR5LiAqLwotCQlzY2hlbWFP aWQgPSBnZXRfbmFtZXNwYWNlX29pZChzY2hlbWFOYW1lLCBmYWxzZSk7CisJCS8qCisJCSAqIElm IHRoZSB1c2VyIGlzIGdpdmluZyB1cyB0aGUgc2NoZW1hIG5hbWUsIGl0IG11c3QgZXhpc3QgYWxy ZWFkeSBpZgorCQkgKiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHdhbnQgdG8gb3duIHRoZSBzY2hl bWEKKwkJICovCisJCXNjaGVtYU9pZCA9IGdldF9uYW1lc3BhY2Vfb2lkKHNjaGVtYU5hbWUsIGNv bnRyb2wtPm93bmVkX3NjaGVtYSk7CiAJfQogCiAJaWYgKGNvbnRyb2wtPnNjaGVtYSAhPSBOVUxM KQpAQCAtMTU3MCw3ICsxNTgzLDEwIEBAIENyZWF0ZUV4dGVuc2lvbkludGVybmFsKGNoYXIgKmV4 dGVuc2lvbk5hbWUsCiAKIAkJLyogQWx3YXlzIHVzZSB0aGUgc2NoZW1hIGZyb20gY29udHJvbCBm aWxlIGZvciBjdXJyZW50IGV4dGVuc2lvbi4gKi8KIAkJc2NoZW1hTmFtZSA9IGNvbnRyb2wtPnNj aGVtYTsKKwl9CiAKKwlpZiAoc2NoZW1hTmFtZSkKKwl7CiAJCS8qIEZpbmQgb3IgY3JlYXRlIHRo ZSBzY2hlbWEgaW4gY2FzZSBpdCBkb2VzIG5vdCBleGlzdC4gKi8KIAkJc2NoZW1hT2lkID0gZ2V0 X25hbWVzcGFjZV9vaWQoc2NoZW1hTmFtZSwgdHJ1ZSk7CiAKQEAgLTE1OTEsOCArMTYwNywyMiBA QCBDcmVhdGVFeHRlbnNpb25JbnRlcm5hbChjaGFyICpleHRlbnNpb25OYW1lLAogCQkJICovCiAJ CQlzY2hlbWFPaWQgPSBnZXRfbmFtZXNwYWNlX29pZChzY2hlbWFOYW1lLCBmYWxzZSk7CiAJCX0K KwkJZWxzZSBpZiAoY29udHJvbC0+b3duZWRfc2NoZW1hKQorCQl7CisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9TQ0hFTUEpLAorCQkJCQkgZXJybXNn KCJzY2hlbWEgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCQlzY2hlbWFOYW1lKSkpOwor CQl9CisKIAl9Ci0JZWxzZSBpZiAoIU9pZElzVmFsaWQoc2NoZW1hT2lkKSkKKwllbHNlIGlmIChj b250cm9sLT5vd25lZF9zY2hlbWEpCisJeworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX1NDSEVNQSksCisJCQkJIGVycm1zZygibm8gc2NoZW1hIGhhcyBi ZWVuIHNlbGVjdGVkIHRvIGNyZWF0ZSBpbiIpKSk7CisJfQorCWVsc2UKIAl7CiAJCS8qCiAJCSAq IE5laXRoZXIgdXNlciBub3IgYXV0aG9yIG9mIHRoZSBleHRlbnNpb24gc3BlY2lmaWVkIHNjaGVt YTsgdXNlIHRoZQpAQCAtMTY1OSw2ICsxNjg5LDcgQEAgQ3JlYXRlRXh0ZW5zaW9uSW50ZXJuYWwo Y2hhciAqZXh0ZW5zaW9uTmFtZSwKIAkgKi8KIAlhZGRyZXNzID0gSW5zZXJ0RXh0ZW5zaW9uVHVw bGUoY29udHJvbC0+bmFtZSwgZXh0b3duZXIsCiAJCQkJCQkJCSAgIHNjaGVtYU9pZCwgY29udHJv bC0+cmVsb2NhdGFibGUsCisJCQkJCQkJCSAgIGNvbnRyb2wtPm93bmVkX3NjaGVtYSwKIAkJCQkJ CQkJICAgdmVyc2lvbk5hbWUsCiAJCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShOVUxMKSwKIAkJ CQkJCQkJICAgUG9pbnRlckdldERhdHVtKE5VTEwpLApAQCAtMTg2NCw3ICsxODk1LDggQEAgQ3Jl YXRlRXh0ZW5zaW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlRXh0ZW5zaW9uU3RtdCAqc3Rt dCkKICAqLwogT2JqZWN0QWRkcmVzcwogSW5zZXJ0RXh0ZW5zaW9uVHVwbGUoY29uc3QgY2hhciAq ZXh0TmFtZSwgT2lkIGV4dE93bmVyLAotCQkJCQkgT2lkIHNjaGVtYU9pZCwgYm9vbCByZWxvY2F0 YWJsZSwgY29uc3QgY2hhciAqZXh0VmVyc2lvbiwKKwkJCQkJIE9pZCBzY2hlbWFPaWQsIGJvb2wg cmVsb2NhdGFibGUsIGJvb2wgb3duZWRTY2hlbWEsCisJCQkJCSBjb25zdCBjaGFyICpleHRWZXJz aW9uLAogCQkJCQkgRGF0dW0gZXh0Q29uZmlnLCBEYXR1bSBleHRDb25kaXRpb24sCiAJCQkJCSBM aXN0ICpyZXF1aXJlZEV4dGVuc2lvbnMpCiB7CkBAIC0xODk0LDYgKzE5MjYsNyBAQCBJbnNlcnRF eHRlbnNpb25UdXBsZShjb25zdCBjaGFyICpleHROYW1lLCBPaWQgZXh0T3duZXIsCiAJdmFsdWVz W0FudW1fcGdfZXh0ZW5zaW9uX2V4dG93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGV4dE93 bmVyKTsKIAl2YWx1ZXNbQW51bV9wZ19leHRlbnNpb25fZXh0bmFtZXNwYWNlIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKHNjaGVtYU9pZCk7CiAJdmFsdWVzW0FudW1fcGdfZXh0ZW5zaW9uX2V4dHJl bG9jYXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0ocmVsb2NhdGFibGUpOworCXZhbHVlc1tBbnVt X3BnX2V4dGVuc2lvbl9leHRvd25lZHNjaGVtYSAtIDFdID0gQm9vbEdldERhdHVtKG93bmVkU2No ZW1hKTsKIAl2YWx1ZXNbQW51bV9wZ19leHRlbnNpb25fZXh0dmVyc2lvbiAtIDFdID0gQ1N0cmlu Z0dldFRleHREYXR1bShleHRWZXJzaW9uKTsKIAogCWlmIChleHRDb25maWcgPT0gUG9pbnRlckdl dERhdHVtKE5VTEwpKQpAQCAtMTkzOCw2ICsxOTcxLDE3IEBAIEluc2VydEV4dGVuc2lvblR1cGxl KGNvbnN0IGNoYXIgKmV4dE5hbWUsIE9pZCBleHRPd25lciwKIAlyZWNvcmRfb2JqZWN0X2FkZHJl c3NfZGVwZW5kZW5jaWVzKCZteXNlbGYsIHJlZm9ianMsIERFUEVOREVOQ1lfTk9STUFMKTsKIAlm cmVlX29iamVjdF9hZGRyZXNzZXMocmVmb2Jqcyk7CiAKKwlpZiAob3duZWRTY2hlbWEpCisJewor CQlPYmplY3RBZGRyZXNzIHNjaGVtYUFkZHJlc3MgPSB7CisJCQkuY2xhc3NJZCA9IE5hbWVzcGFj ZVJlbGF0aW9uSWQsCisJCQkub2JqZWN0SWQgPSBzY2hlbWFPaWQsCisJCX07CisKKwkJcmVjb3Jk RGVwZW5kZW5jeU9uKCZzY2hlbWFBZGRyZXNzLCAmbXlzZWxmLCBERVBFTkRFTkNZX0VYVEVOU0lP Tik7CisJfQorCisKIAkvKiBQb3N0IGNyZWF0aW9uIGhvb2sgZm9yIG5ldyBleHRlbnNpb24gKi8K IAlJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9vayhFeHRlbnNpb25SZWxhdGlvbklkLCBleHRlbnNp b25PaWQsIDApOwogCkBAIC0yNzg1LDExICsyODI5LDEwIEBAIEFsdGVyRXh0ZW5zaW9uTmFtZXNw YWNlKGNvbnN0IGNoYXIgKmV4dGVuc2lvbk5hbWUsIGNvbnN0IGNoYXIgKm5ld3NjaGVtYSwgT2lk ICpvCiAJSGVhcFR1cGxlCWRlcFR1cDsKIAlPYmplY3RBZGRyZXNzZXMgKm9ianNNb3ZlZDsKIAlP YmplY3RBZGRyZXNzIGV4dEFkZHI7CisJYm9vbAkJb3duZWRTY2hlbWE7CiAKIAlleHRlbnNpb25P aWQgPSBnZXRfZXh0ZW5zaW9uX29pZChleHRlbnNpb25OYW1lLCBmYWxzZSk7CiAKLQluc3BPaWQg PSBMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShuZXdzY2hlbWEpOwotCiAJLyoKIAkgKiBQZXJtaXNz aW9uIGNoZWNrOiBtdXN0IG93biBleHRlbnNpb24uICBOb3RlIHRoYXQgd2UgZG9uJ3QgYm90aGVy IHRvCiAJICogY2hlY2sgb3duZXJzaGlwIG9mIHRoZSBpbmRpdmlkdWFsIG1lbWJlciBvYmplY3Rz IC4uLgpAQCAtMjc5OCwyMiArMjg0MSw2IEBAIEFsdGVyRXh0ZW5zaW9uTmFtZXNwYWNlKGNvbnN0 IGNoYXIgKmV4dGVuc2lvbk5hbWUsIGNvbnN0IGNoYXIgKm5ld3NjaGVtYSwgT2lkICpvCiAJCWFj bGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgT0JKRUNUX0VYVEVOU0lPTiwKIAkJCQkJ ICAgZXh0ZW5zaW9uTmFtZSk7CiAKLQkvKiBQZXJtaXNzaW9uIGNoZWNrOiBtdXN0IGhhdmUgY3Jl YXRpb24gcmlnaHRzIGluIHRhcmdldCBuYW1lc3BhY2UgKi8KLQlhY2xyZXN1bHQgPSBvYmplY3Rf YWNsY2hlY2soTmFtZXNwYWNlUmVsYXRpb25JZCwgbnNwT2lkLCBHZXRVc2VySWQoKSwgQUNMX0NS RUFURSk7Ci0JaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKLQkJYWNsY2hlY2tfZXJyb3Io YWNscmVzdWx0LCBPQkpFQ1RfU0NIRU1BLCBuZXdzY2hlbWEpOwotCi0JLyoKLQkgKiBJZiB0aGUg c2NoZW1hIGlzIGN1cnJlbnRseSBhIG1lbWJlciBvZiB0aGUgZXh0ZW5zaW9uLCBkaXNhbGxvdyBt b3ZpbmcKLQkgKiB0aGUgZXh0ZW5zaW9uIGludG8gdGhlIHNjaGVtYS4gIFRoYXQgd291bGQgY3Jl YXRlIGEgZGVwZW5kZW5jeSBsb29wLgotCSAqLwotCWlmIChnZXRFeHRlbnNpb25PZk9iamVjdChO YW1lc3BhY2VSZWxhdGlvbklkLCBuc3BPaWQpID09IGV4dGVuc2lvbk9pZCkKLQkJZXJlcG9ydChF UlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NU QVRFKSwKLQkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBleHRlbnNpb24gXCIlc1wiIGludG8gc2No ZW1hIFwiJXNcIiAiCi0JCQkJCQkiYmVjYXVzZSB0aGUgZXh0ZW5zaW9uIGNvbnRhaW5zIHRoZSBz Y2hlbWEiLAotCQkJCQkJZXh0ZW5zaW9uTmFtZSwgbmV3c2NoZW1hKSkpOwotCiAJLyogTG9jYXRl IHRoZSBwZ19leHRlbnNpb24gdHVwbGUgKi8KIAlleHRSZWwgPSB0YWJsZV9vcGVuKEV4dGVuc2lv blJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCkBAIC0yODM3LDE0ICsyODY0LDM4IEBA IEFsdGVyRXh0ZW5zaW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKmV4dGVuc2lvbk5hbWUsIGNvbnN0 IGNoYXIgKm5ld3NjaGVtYSwgT2lkICpvCiAKIAlzeXN0YWJsZV9lbmRzY2FuKGV4dFNjYW4pOwog Ci0JLyoKLQkgKiBJZiB0aGUgZXh0ZW5zaW9uIGlzIGFscmVhZHkgaW4gdGhlIHRhcmdldCBzY2hl bWEsIGp1c3Qgc2lsZW50bHkgZG8KLQkgKiBub3RoaW5nLgotCSAqLwotCWlmIChleHRGb3JtLT5l eHRuYW1lc3BhY2UgPT0gbnNwT2lkKQorCW93bmVkU2NoZW1hID0gZXh0Rm9ybS0+ZXh0b3duZWRz Y2hlbWE7CisKKwlpZiAoIW93bmVkU2NoZW1hKQogCXsKLQkJdGFibGVfY2xvc2UoZXh0UmVsLCBS b3dFeGNsdXNpdmVMb2NrKTsKLQkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOworCQluc3BP aWQgPSBMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShuZXdzY2hlbWEpOworCisJCS8qIFBlcm1pc3Np b24gY2hlY2s6IG11c3QgaGF2ZSBjcmVhdGlvbiByaWdodHMgaW4gdGFyZ2V0IG5hbWVzcGFjZSAq LworCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soTmFtZXNwYWNlUmVsYXRpb25JZCwgbnNw T2lkLCBHZXRVc2VySWQoKSwgQUNMX0NSRUFURSk7CisJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hF Q0tfT0spCisJCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9TQ0hFTUEsIG5ld3Nj aGVtYSk7CisKKwkJLyoKKwkJICogSWYgdGhlIHNjaGVtYSBpcyBjdXJyZW50bHkgYSBtZW1iZXIg b2YgdGhlIGV4dGVuc2lvbiwgZGlzYWxsb3cKKwkJICogbW92aW5nIHRoZSBleHRlbnNpb24gaW50 byB0aGUgc2NoZW1hLiAgVGhhdCB3b3VsZCBjcmVhdGUgYQorCQkgKiBkZXBlbmRlbmN5IGxvb3Au CisJCSAqLworCQlpZiAoZ2V0RXh0ZW5zaW9uT2ZPYmplY3QoTmFtZXNwYWNlUmVsYXRpb25JZCwg bnNwT2lkKSA9PSBleHRlbnNpb25PaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJIGVycm1z ZygiY2Fubm90IG1vdmUgZXh0ZW5zaW9uIFwiJXNcIiBpbnRvIHNjaGVtYSBcIiVzXCIgIgorCQkJ CQkJCSJiZWNhdXNlIHRoZSBleHRlbnNpb24gY29udGFpbnMgdGhlIHNjaGVtYSIsCisJCQkJCQkJ ZXh0ZW5zaW9uTmFtZSwgbmV3c2NoZW1hKSkpOworCisJCS8qCisJCSAqIElmIHRoZSBleHRlbnNp b24gaXMgYWxyZWFkeSBpbiB0aGUgdGFyZ2V0IHNjaGVtYSwganVzdCBzaWxlbnRseSBkbworCQkg KiBub3RoaW5nLgorCQkgKi8KKwkJaWYgKGV4dEZvcm0tPmV4dG5hbWVzcGFjZSA9PSBuc3BPaWQp CisJCXsKKwkJCXRhYmxlX2Nsb3NlKGV4dFJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisJCQlyZXR1 cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJCX0KIAl9CiAKIAkvKiBDaGVjayBleHRlbnNpb24g aXMgc3VwcG9zZWQgdG8gYmUgcmVsb2NhdGFibGUgKi8KQEAgLTI5MTcsNiArMjk2OCwxMyBAQCBB bHRlckV4dGVuc2lvbk5hbWVzcGFjZShjb25zdCBjaGFyICpleHRlbnNpb25OYW1lLCBjb25zdCBj aGFyICpuZXdzY2hlbWEsIE9pZCAqbwogCQkJfQogCQl9CiAKKwkJLyoKKwkJICogV2UgZG9uJ3Qg YWN0dWFsbHkgaGF2ZSB0byBtb3ZlIGFueSBvYmplY3RzIGFueXRoaW5nIGZvciBvd25lZAorCQkg KiBzY2hlbWFzLCBiZWNhdXNlIHdlIHNpbXBseSByZW5hbWUgdGhlIHNjaGVtYS4KKwkJICovCisJ CWlmIChvd25lZFNjaGVtYSkKKwkJCWNvbnRpbnVlOworCiAJCS8qCiAJCSAqIE90aGVyd2lzZSwg aWdub3JlIG5vbi1tZW1iZXJzaGlwIGRlcGVuZGVuY2llcy4gIChDdXJyZW50bHksIHRoZQogCQkg KiBvbmx5IG90aGVyIGNhc2Ugd2UgY291bGQgc2VlIGhlcmUgaXMgYSBub3JtYWwgZGVwZW5kZW5j eSBmcm9tCkBAIC0yOTYwLDE4ICszMDE4LDI2IEBAIEFsdGVyRXh0ZW5zaW9uTmFtZXNwYWNlKGNv bnN0IGNoYXIgKmV4dGVuc2lvbk5hbWUsIGNvbnN0IGNoYXIgKm5ld3NjaGVtYSwgT2lkICpvCiAK IAlyZWxhdGlvbl9jbG9zZShkZXBSZWwsIEFjY2Vzc1NoYXJlTG9jayk7CiAKLQkvKiBOb3cgYWRq dXN0IHBnX2V4dGVuc2lvbi5leHRuYW1lc3BhY2UgKi8KLQlleHRGb3JtLT5leHRuYW1lc3BhY2Ug PSBuc3BPaWQ7CisJaWYgKG93bmVkU2NoZW1hKQorCXsKKwkJUmVuYW1lU2NoZW1hKGdldF9uYW1l c3BhY2VfbmFtZShvbGROc3BPaWQpLCBuZXdzY2hlbWEpOworCQl0YWJsZV9jbG9zZShleHRSZWws IFJvd0V4Y2x1c2l2ZUxvY2spOworCX0KKwllbHNlCisJeworCQkvKiBOb3cgYWRqdXN0IHBnX2V4 dGVuc2lvbi5leHRuYW1lc3BhY2UgKi8KKwkJZXh0Rm9ybS0+ZXh0bmFtZXNwYWNlID0gbnNwT2lk OwogCi0JQ2F0YWxvZ1R1cGxlVXBkYXRlKGV4dFJlbCwgJmV4dFR1cC0+dF9zZWxmLCBleHRUdXAp OworCQlDYXRhbG9nVHVwbGVVcGRhdGUoZXh0UmVsLCAmZXh0VHVwLT50X3NlbGYsIGV4dFR1cCk7 CiAKLQl0YWJsZV9jbG9zZShleHRSZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCQl0YWJsZV9jbG9z ZShleHRSZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCi0JLyogdXBkYXRlIGRlcGVuZGVuY3kgdG8g cG9pbnQgdG8gdGhlIG5ldyBzY2hlbWEgKi8KLQlpZiAoY2hhbmdlRGVwZW5kZW5jeUZvcihFeHRl bnNpb25SZWxhdGlvbklkLCBleHRlbnNpb25PaWQsCi0JCQkJCQkJTmFtZXNwYWNlUmVsYXRpb25J ZCwgb2xkTnNwT2lkLCBuc3BPaWQpICE9IDEpCi0JCWVsb2coRVJST1IsICJjb3VsZCBub3QgY2hh bmdlIHNjaGVtYSBkZXBlbmRlbmN5IGZvciBleHRlbnNpb24gJXMiLAotCQkJIE5hbWVTdHIoZXh0 Rm9ybS0+ZXh0bmFtZSkpOworCQkvKiB1cGRhdGUgZGVwZW5kZW5jeSB0byBwb2ludCB0byB0aGUg bmV3IHNjaGVtYSAqLworCQlpZiAoY2hhbmdlRGVwZW5kZW5jeUZvcihFeHRlbnNpb25SZWxhdGlv bklkLCBleHRlbnNpb25PaWQsCisJCQkJCQkJCU5hbWVzcGFjZVJlbGF0aW9uSWQsIG9sZE5zcE9p ZCwgbnNwT2lkKSAhPSAxKQorCQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBjaGFuZ2Ugc2NoZW1h IGRlcGVuZGVuY3kgZm9yIGV4dGVuc2lvbiAlcyIsCisJCQkJIE5hbWVTdHIoZXh0Rm9ybS0+ZXh0 bmFtZSkpOworCX0KIAogCUludm9rZU9iamVjdFBvc3RBbHRlckhvb2soRXh0ZW5zaW9uUmVsYXRp b25JZCwgZXh0ZW5zaW9uT2lkLCAwKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3Jh ZGVfc3VwcG9ydC5jCmluZGV4IGM1NGIwOGZlMTgwLi4wNTIwNWNmYjdmNCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYwpAQCAtMTksNiArMTksNyBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgorI2luY2x1ZGUgImNv bW1hbmRzL3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJy ZXBsaWNhdGlvbi9sb2dpY2FsLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vb3JpZ2luLmgiCkBA IC0xODUsMTIgKzE4NiwxNCBAQCBEYXR1bQogYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4 dGVuc2lvbihQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmV4dE5hbWU7Ci0JdGV4dAkg ICAqc2NoZW1hTmFtZTsKKwljaGFyCSAgICpzY2hlbWFOYW1lOwogCWJvb2wJCXJlbG9jYXRhYmxl OworCWJvb2wJCW93bmVkc2NoZW1hOwogCXRleHQJICAgKmV4dFZlcnNpb247CiAJRGF0dW0JCWV4 dENvbmZpZzsKIAlEYXR1bQkJZXh0Q29uZGl0aW9uOwogCUxpc3QJICAgKnJlcXVpcmVkRXh0ZW5z aW9uczsKKwlPaWQJCQlzY2hlbWFPaWQ7CiAKIAlDSEVDS19JU19CSU5BUllfVVBHUkFERTsKIApA QCAtMTk4LDI4ICsyMDEsMzAgQEAgYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4dGVuc2lv bihQR19GVU5DVElPTl9BUkdTKQogCWlmIChQR19BUkdJU05VTEwoMCkgfHwKIAkJUEdfQVJHSVNO VUxMKDEpIHx8CiAJCVBHX0FSR0lTTlVMTCgyKSB8fAotCQlQR19BUkdJU05VTEwoMykpCisJCVBH X0FSR0lTTlVMTCgzKSB8fAorCQlQR19BUkdJU05VTEwoNCkpCiAJCWVsb2coRVJST1IsICJudWxs IGFyZ3VtZW50IHRvIGJpbmFyeV91cGdyYWRlX2NyZWF0ZV9lbXB0eV9leHRlbnNpb24gaXMgbm90 IGFsbG93ZWQiKTsKIAogCWV4dE5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKLQlzY2hlbWFO YW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJc2NoZW1hTmFtZSA9IHRleHRfdG9fY3N0cmlu ZyhQR19HRVRBUkdfVEVYVF9QUCgxKSk7CiAJcmVsb2NhdGFibGUgPSBQR19HRVRBUkdfQk9PTCgy KTsKLQlleHRWZXJzaW9uID0gUEdfR0VUQVJHX1RFWFRfUFAoMyk7CisJb3duZWRzY2hlbWEgPSBQ R19HRVRBUkdfQk9PTCgzKTsKKwlleHRWZXJzaW9uID0gUEdfR0VUQVJHX1RFWFRfUFAoNCk7CiAK LQlpZiAoUEdfQVJHSVNOVUxMKDQpKQorCWlmIChQR19BUkdJU05VTEwoNSkpCiAJCWV4dENvbmZp ZyA9IFBvaW50ZXJHZXREYXR1bShOVUxMKTsKIAllbHNlCi0JCWV4dENvbmZpZyA9IFBHX0dFVEFS R19EQVRVTSg0KTsKKwkJZXh0Q29uZmlnID0gUEdfR0VUQVJHX0RBVFVNKDUpOwogCi0JaWYgKFBH X0FSR0lTTlVMTCg1KSkKKwlpZiAoUEdfQVJHSVNOVUxMKDYpKQogCQlleHRDb25kaXRpb24gPSBQ b2ludGVyR2V0RGF0dW0oTlVMTCk7CiAJZWxzZQotCQlleHRDb25kaXRpb24gPSBQR19HRVRBUkdf REFUVU0oNSk7CisJCWV4dENvbmRpdGlvbiA9IFBHX0dFVEFSR19EQVRVTSg2KTsKIAogCXJlcXVp cmVkRXh0ZW5zaW9ucyA9IE5JTDsKLQlpZiAoIVBHX0FSR0lTTlVMTCg2KSkKKwlpZiAoIVBHX0FS R0lTTlVMTCg3KSkKIAl7Ci0JCUFycmF5VHlwZSAgKnRleHRBcnJheSA9IFBHX0dFVEFSR19BUlJB WVRZUEVfUCg2KTsKKwkJQXJyYXlUeXBlICAqdGV4dEFycmF5ID0gUEdfR0VUQVJHX0FSUkFZVFlQ RV9QKDcpOwogCQlEYXR1bQkgICAqdGV4dERhdHVtczsKIAkJaW50CQkJbmRhdHVtczsKIAkJaW50 CQkJaTsKQEAgLTIzNCwxMCArMjM5LDI4IEBAIGJpbmFyeV91cGdyYWRlX2NyZWF0ZV9lbXB0eV9l eHRlbnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIAkJfQogCX0KIAorCWlmIChvd25lZHNjaGVtYSkK Kwl7CisJCUNyZWF0ZVNjaGVtYVN0bXQgKmNzc3RtdCA9IG1ha2VOb2RlKENyZWF0ZVNjaGVtYVN0 bXQpOworCisJCWNzc3RtdC0+c2NoZW1hbmFtZSA9IHNjaGVtYU5hbWU7CisJCWNzc3RtdC0+YXV0 aHJvbGUgPSBOVUxMOwkvKiB3aWxsIGJlIGNyZWF0ZWQgYnkgY3VycmVudCB1c2VyICovCisJCWNz c3RtdC0+c2NoZW1hRWx0cyA9IE5JTDsKKwkJY3NzdG10LT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7 CisJCXNjaGVtYU9pZCA9IENyZWF0ZVNjaGVtYUNvbW1hbmQoY3NzdG10LCAiKGdlbmVyYXRlZCBD UkVBVEUgU0NIRU1BIGNvbW1hbmQpIiwKKwkJCQkJCQkJCQktMSwgLTEpOworCisJfQorCWVsc2UK Kwl7CisJCXNjaGVtYU9pZCA9IGdldF9uYW1lc3BhY2Vfb2lkKHNjaGVtYU5hbWUsIGZhbHNlKTsK Kwl9CisKIAlJbnNlcnRFeHRlbnNpb25UdXBsZSh0ZXh0X3RvX2NzdHJpbmcoZXh0TmFtZSksCiAJ CQkJCQkgR2V0VXNlcklkKCksCi0JCQkJCQkgZ2V0X25hbWVzcGFjZV9vaWQodGV4dF90b19jc3Ry aW5nKHNjaGVtYU5hbWUpLCBmYWxzZSksCisJCQkJCQkgc2NoZW1hT2lkLAogCQkJCQkJIHJlbG9j YXRhYmxlLAorCQkJCQkJIG93bmVkc2NoZW1hLAogCQkJCQkJIHRleHRfdG9fY3N0cmluZyhleHRW ZXJzaW9uKSwKIAkJCQkJCSBleHRDb25maWcsCiAJCQkJCQkgZXh0Q29uZGl0aW9uLApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKaW5kZXggZTMyNDA3MDgyODQuLjNmZTI0OGZmZjQyIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE3MDcs NiArMTcwNywxOCBAQCBjaGVja0V4dGVuc2lvbk1lbWJlcnNoaXAoRHVtcGFibGVPYmplY3QgKmRv YmosIEFyY2hpdmUgKmZvdXQpCiAJaWYgKGV4dCA9PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CiAK KwkvKgorCSAqIElmIHRoaXMgaXMgdGhlICJvd25lZF9zY2hlbSIgb2YgdGhlIGV4dGVuc2lvbiwg dGhlbiB3ZSBkb24ndCB3YW50IHRvCisJICogY3JlYXRlIGl0IG1hbnVhbGx5LCBiZWNhdXNlIGl0 IGdldHMgY3JlYXRlZCB0b2dldGhlciB3aXRoIHRoZQorCSAqIGV4dGVuc2lvbi4KKwkgKi8KKwlp ZiAoZG9iai0+b2JqVHlwZSA9PSBET19OQU1FU1BBQ0UgJiYgZXh0LT5vd25lZHNjaGVtYSAmJiBz dHJjbXAoZXh0LT5uYW1lc3BhY2UsIGRvYmotPm5hbWUpID09IDApCisJeworCQlOYW1lc3BhY2VJ bmZvICpuc2luZm8gPSAoTmFtZXNwYWNlSW5mbyAqKSBkb2JqOworCisJCW5zaW5mby0+Y3JlYXRl ID0gZmFsc2U7CisJfQorCiAJZG9iai0+ZXh0X21lbWJlciA9IHRydWU7CiAKIAkvKiBSZWNvcmQg ZGVwZW5kZW5jeSBzbyB0aGF0IGdldERlcGVuZGVuY2llcyBuZWVkbid0IGRlYWwgd2l0aCB0aGF0 ICovCkBAIC01NTEyLDcgKzU1MjQsNyBAQCBiaW5hcnlfdXBncmFkZV9leHRlbnNpb25fbWVtYmVy KFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVmZmVyLAogCQkJCQkJCQljb25zdCBjaGFyICpvYmpuYW1l LAogCQkJCQkJCQljb25zdCBjaGFyICpvYmpuYW1lc3BhY2UpCiB7Ci0JRHVtcGFibGVPYmplY3Qg KmV4dG9iaiA9IE5VTEw7CisJRXh0ZW5zaW9uSW5mbyAqZXh0ID0gTlVMTDsKIAlpbnQJCQlpOwog CiAJaWYgKCFkb2JqLT5leHRfbWVtYmVyKQpAQCAtNTUyNiwxOSArNTUzOCwzMiBAQCBiaW5hcnlf dXBncmFkZV9leHRlbnNpb25fbWVtYmVyKFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVmZmVyLAogCSAq LwogCWZvciAoaSA9IDA7IGkgPCBkb2JqLT5uRGVwczsgaSsrKQogCXsKLQkJZXh0b2JqID0gZmlu ZE9iamVjdEJ5RHVtcElkKGRvYmotPmRlcGVuZGVuY2llc1tpXSk7CisJCUR1bXBhYmxlT2JqZWN0 ICpleHRvYmogPSBmaW5kT2JqZWN0QnlEdW1wSWQoZG9iai0+ZGVwZW5kZW5jaWVzW2ldKTsKKwog CQlpZiAoZXh0b2JqICYmIGV4dG9iai0+b2JqVHlwZSA9PSBET19FWFRFTlNJT04pCisJCXsKKwkJ CWV4dCA9IChFeHRlbnNpb25JbmZvICopIGV4dG9iajsKIAkJCWJyZWFrOwotCQlleHRvYmogPSBO VUxMOworCQl9CiAJfQotCWlmIChleHRvYmogPT0gTlVMTCkKKwlpZiAoZXh0ID09IE5VTEwpCiAJ CXBnX2ZhdGFsKCJjb3VsZCBub3QgZmluZCBwYXJlbnQgZXh0ZW5zaW9uIGZvciAlcyAlcyIsCiAJ CQkJIG9ianR5cGUsIG9iam5hbWUpOwogCisJLyoKKwkgKiBJZiB0aGUgb2JqZWN0IGlzIHRoZSAi b3duZWRfc2NoZW1hIiBvZiB0aGUgZXh0ZW5zaW9uLCB3ZSBkb24ndCBuZWVkIHRvCisJICogYWRk IGl0IHRvIHRoZSBleHRlbnNpb24gYmVjYXVzZSBpdCB3YXMgYWxyZWFkeSBtYWRlIGEgbWVtYmVy IG9mIHRoZQorCSAqIGV4dGVuc2lvbiB3aGVuIHRoZSBleHRlbnNpb24gd2FzIGNyZWF0ZWQuCisJ ICovCisJaWYgKGRvYmotPm9ialR5cGUgPT0gRE9fTkFNRVNQQUNFICYmIGV4dC0+b3duZWRzY2hl bWEgJiYgc3RyY21wKGV4dC0+bmFtZXNwYWNlLCBkb2JqLT5uYW1lKSA9PSAwKQorCXsKKwkJcmV0 dXJuOworCX0KKwogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHVwZ3JhZGVfYnVmZmVyLAogCQkJCQkJ ICJcbi0tIEZvciBiaW5hcnkgdXBncmFkZSwgaGFuZGxlIGV4dGVuc2lvbiBtZW1iZXJzaGlwIHRo ZSBoYXJkIHdheVxuIik7CiAJYXBwZW5kUFFFeHBCdWZmZXIodXBncmFkZV9idWZmZXIsICJBTFRF UiBFWFRFTlNJT04gJXMgQUREICVzICIsCi0JCQkJCSAgZm10SWQoZXh0b2JqLT5uYW1lKSwKKwkJ CQkJICBmbXRJZChleHQtPmRvYmoubmFtZSksCiAJCQkJCSAgb2JqdHlwZSk7CiAJaWYgKG9iam5h bWVzcGFjZSAmJiAqb2JqbmFtZXNwYWNlKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcih1cGdyYWRlX2J1 ZmZlciwgIiVzLiIsIGZtdElkKG9iam5hbWVzcGFjZSkpOwpAQCAtNTcwMiw2ICs1NzI3LDcgQEAg Z2V0RXh0ZW5zaW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUV4dGVuc2lvbnMpCiAJaW50CQkJ aV9leHRuYW1lOwogCWludAkJCWlfbnNwbmFtZTsKIAlpbnQJCQlpX2V4dHJlbG9jYXRhYmxlOwor CWludAkJCWlfZXh0b3duZWRzY2hlbWE7CiAJaW50CQkJaV9leHR2ZXJzaW9uOwogCWludAkJCWlf ZXh0Y29uZmlnOwogCWludAkJCWlfZXh0Y29uZGl0aW9uOwpAQCAtNTcxMCw3ICs1NzM2LDE0IEBA IGdldEV4dGVuc2lvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1FeHRlbnNpb25zKQogCiAJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJTRUxFQ1QgeC50YWJsZW9pZCwgeC5vaWQsICIKIAkJ CQkJCSAieC5leHRuYW1lLCBuLm5zcG5hbWUsIHguZXh0cmVsb2NhdGFibGUsIHguZXh0dmVyc2lv biwgeC5leHRjb25maWcsIHguZXh0Y29uZGl0aW9uICIKLQkJCQkJCSAiRlJPTSBwZ19leHRlbnNp b24geCAiCisJCSk7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxODAwMDApCisJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCB4LmV4dG93bmVkc2NoZW1hICIpOworCWVsc2UK KwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsIGZhbHNlIEFTIGV4dG93bmVkc2NoZW1h ICIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJGUk9NIHBnX2V4dGVuc2lvbiB4 ICIKIAkJCQkJCSAiSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IHguZXh0bmFtZXNwYWNl Iik7CiAKIAlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RV UExFU19PSyk7CkBAIC01NzI0LDYgKzU3NTcsNyBAQCBnZXRFeHRlbnNpb25zKEFyY2hpdmUgKmZv dXQsIGludCAqbnVtRXh0ZW5zaW9ucykKIAlpX2V4dG5hbWUgPSBQUWZudW1iZXIocmVzLCAiZXh0 bmFtZSIpOwogCWlfbnNwbmFtZSA9IFBRZm51bWJlcihyZXMsICJuc3BuYW1lIik7CiAJaV9leHRy ZWxvY2F0YWJsZSA9IFBRZm51bWJlcihyZXMsICJleHRyZWxvY2F0YWJsZSIpOworCWlfZXh0b3du ZWRzY2hlbWEgPSBQUWZudW1iZXIocmVzLCAiZXh0b3duZWRzY2hlbWEiKTsKIAlpX2V4dHZlcnNp b24gPSBQUWZudW1iZXIocmVzLCAiZXh0dmVyc2lvbiIpOwogCWlfZXh0Y29uZmlnID0gUFFmbnVt YmVyKHJlcywgImV4dGNvbmZpZyIpOwogCWlfZXh0Y29uZGl0aW9uID0gUFFmbnVtYmVyKHJlcywg ImV4dGNvbmRpdGlvbiIpOwpAQCAtNTczNyw2ICs1NzcxLDcgQEAgZ2V0RXh0ZW5zaW9ucyhBcmNo aXZlICpmb3V0LCBpbnQgKm51bUV4dGVuc2lvbnMpCiAJCWV4dGluZm9baV0uZG9iai5uYW1lID0g cGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2V4dG5hbWUpKTsKIAkJZXh0aW5mb1tpXS5u YW1lc3BhY2UgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfbnNwbmFtZSkpOwogCQll eHRpbmZvW2ldLnJlbG9jYXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV9leHRyZWxvY2F0 YWJsZSkpID09ICd0JzsKKwkJZXh0aW5mb1tpXS5vd25lZHNjaGVtYSA9ICooUFFnZXR2YWx1ZShy ZXMsIGksIGlfZXh0b3duZWRzY2hlbWEpKSA9PSAndCc7CiAJCWV4dGluZm9baV0uZXh0dmVyc2lv biA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9leHR2ZXJzaW9uKSk7CiAJCWV4dGlu Zm9baV0uZXh0Y29uZmlnID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2V4dGNvbmZp ZykpOwogCQlleHRpbmZvW2ldLmV4dGNvbmRpdGlvbiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJl cywgaSwgaV9leHRjb25kaXRpb24pKTsKQEAgLTEwNjA1LDkgKzEwNjQwLDkgQEAgZHVtcE5hbWVz cGFjZShBcmNoaXZlICpmb3V0LCBjb25zdCBOYW1lc3BhY2VJbmZvICpuc3BpbmZvKQogCXsKIAkJ Lyogc2VlIHNlbGVjdER1bXBhYmxlTmFtZXNwYWNlKCkgKi8KIAkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoZGVscSwKLQkJCQkJCQkgIi0tICpub3QqIGRyb3BwaW5nIHNjaGVtYSwgc2luY2UgaW5pdGRi IGNyZWF0ZXMgaXRcbiIpOworCQkJCQkJCSAiLS0gKm5vdCogZHJvcHBpbmcgc2NoZW1hLCBzaW5j ZSBpbml0ZGIgb3IgQ1JFQVRFIEVYVEVOU0lPTiBjcmVhdGVzIGl0XG4iKTsKIAkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocSwKLQkJCQkJCQkgIi0tICpub3QqIGNyZWF0aW5nIHNjaGVtYSwgc2luY2Ug aW5pdGRiIGNyZWF0ZXMgaXRcbiIpOworCQkJCQkJCSAiLS0gKm5vdCogY3JlYXRpbmcgc2NoZW1h LCBzaW5jZSBpbml0ZGIgb3IgQ1JFQVRFIEVYVEVOU0lPTiBjcmVhdGVzIGl0XG4iKTsKIAl9CiAK IAlpZiAoZG9wdC0+YmluYXJ5X3VwZ3JhZGUpCkBAIC0xMDcxOSw2ICsxMDc1NCw3IEBAIGR1bXBF eHRlbnNpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgRXh0ZW5zaW9uSW5mbyAqZXh0aW5mbykKIAkJ YXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHEsIGV4dGluZm8tPm5hbWVzcGFjZSwgZm91dCk7CiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHEsICIsICIpOwogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiJXMs ICIsIGV4dGluZm8tPnJlbG9jYXRhYmxlID8gInRydWUiIDogImZhbHNlIik7CisJCWFwcGVuZFBR RXhwQnVmZmVyKHEsICIlcywgIiwgZXh0aW5mby0+b3duZWRzY2hlbWEgPyAidHJ1ZSIgOiAiZmFs c2UiKTsKIAkJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHEsIGV4dGluZm8tPmV4dHZlcnNpb24sIGZv dXQpOwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiLCAiKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXgg ODY1ODIzODY4ZjEuLjZjNmVhNmEwMTkxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTE4MSw2ICsxODEsNyBA QCB0eXBlZGVmIHN0cnVjdCBfZXh0ZW5zaW9uSW5mbwogCUR1bXBhYmxlT2JqZWN0IGRvYmo7CiAJ Y2hhcgkgICAqbmFtZXNwYWNlOwkJLyogc2NoZW1hIGNvbnRhaW5pbmcgZXh0ZW5zaW9uJ3Mgb2Jq ZWN0cyAqLwogCWJvb2wJCXJlbG9jYXRhYmxlOworCWJvb2wJCW93bmVkc2NoZW1hOwogCWNoYXIJ ICAgKmV4dHZlcnNpb247CiAJY2hhcgkgICAqZXh0Y29uZmlnOwkJLyogaW5mbyBhYm91dCBjb25m aWd1cmF0aW9uIHRhYmxlcyAqLwogCWNoYXIJICAgKmV4dGNvbmRpdGlvbjsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZXh0ZW5zaW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2V4dGVuc2lvbi5oCmluZGV4IGNkZmFjYzA5MzAzLi5hYjIwZmZmODhlYSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19leHRlbnNpb24uaAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2V4dGVuc2lvbi5oCkBAIC0zNCw2ICszNCw3IEBAIENBVEFMT0cocGdfZXh0ZW5z aW9uLDMwNzksRXh0ZW5zaW9uUmVsYXRpb25JZCkKIAlPaWQJCQlleHRuYW1lc3BhY2UgQktJX0xP T0tVUChwZ19uYW1lc3BhY2UpOwkvKiBuYW1lc3BhY2Ugb2YKIAkJCQkJCQkJCQkJCQkJICogY29u dGFpbmVkIG9iamVjdHMgKi8KIAlib29sCQlleHRyZWxvY2F0YWJsZTsgLyogaWYgdHJ1ZSwgYWxs b3cgQUxURVIgRVhURU5TSU9OIFNFVCBTQ0hFTUEgKi8KKwlib29sCQlleHRvd25lZHNjaGVtYTsg LyogaWYgdHJ1ZSwgc2NoZW1hIGlzIG93bmVkIGJ5IGV4dGVuc2lvbiAqLwogCiAjaWZkZWYgQ0FU QUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAkv KiBleHR2ZXJzaW9uIG1heSBuZXZlciBiZSBudWxsLCBidXQgdGhlIG90aGVycyBjYW4gYmUuICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA2YTU0NzZkM2M0Yy4uYjgzMTRjYzQyODggMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTE0MjAsNyArMTE0MjAsNyBAQAogeyBvaWQgPT4g JzM1OTEnLCBkZXNjciA9PiAnZm9yIHVzZSBieSBwZ191cGdyYWRlJywKICAgcHJvbmFtZSA9PiAn YmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4dGVuc2lvbicsIHByb2lzc3RyaWN0ID0+ICdm JywKICAgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9wYXJhbGxlbCA9PiAndScsIHByb3JldHR5cGUg PT4gJ3ZvaWQnLAotICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0IGJvb2wgdGV4dCBfb2lkIF90 ZXh0IF90ZXh0JywKKyAgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCBib29sIGJvb2wgdGV4dCBf b2lkIF90ZXh0IF90ZXh0JywKICAgcHJvc3JjID0+ICdiaW5hcnlfdXBncmFkZV9jcmVhdGVfZW1w dHlfZXh0ZW5zaW9uJyB9LAogeyBvaWQgPT4gJzQwODMnLCBkZXNjciA9PiAnZm9yIHVzZSBieSBw Z191cGdyYWRlJywKICAgcHJvbmFtZSA9PiAnYmluYXJ5X3VwZ3JhZGVfc2V0X3JlY29yZF9pbml0 X3ByaXZzJywgcHJvdm9sYXRpbGUgPT4gJ3YnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvZXh0ZW5zaW9uLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHRlbnNpb24uaAppbmRl eCBjNmYzZjg2N2ViNy4uOGU3ZmE1NzQwMzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL2V4dGVuc2lvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4dGVuc2lvbi5oCkBA IC0zNiw3ICszNiw5IEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZUV4dGVuc2lvbihQYXJz ZVN0YXRlICpwc3RhdGUsIENyZWF0ZUV4dGVuc2lvblN0bXQgKnN0CiBleHRlcm4gdm9pZCBSZW1v dmVFeHRlbnNpb25CeUlkKE9pZCBleHRJZCk7CiAKIGV4dGVybiBPYmplY3RBZGRyZXNzIEluc2Vy dEV4dGVuc2lvblR1cGxlKGNvbnN0IGNoYXIgKmV4dE5hbWUsIE9pZCBleHRPd25lciwKLQkJCQkJ CQkJCQkgIE9pZCBzY2hlbWFPaWQsIGJvb2wgcmVsb2NhdGFibGUsIGNvbnN0IGNoYXIgKmV4dFZl cnNpb24sCisJCQkJCQkJCQkJICBPaWQgc2NoZW1hT2lkLCBib29sIHJlbG9jYXRhYmxlLAorCQkJ CQkJCQkJCSAgYm9vbCBvd25lZFNjaGVtYSwKKwkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmV4dFZl cnNpb24sCiAJCQkJCQkJCQkJICBEYXR1bSBleHRDb25maWcsIERhdHVtIGV4dENvbmRpdGlvbiwK IAkJCQkJCQkJCQkgIExpc3QgKnJlcXVpcmVkRXh0ZW5zaW9ucyk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2V4dGVuc2lvbnMvTWFrZWZpbGUKaW5kZXggMDUyNzJlNmE0MGIuLjI4ZjIwMjkwMTkw IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9NYWtlZmlsZQor KysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9NYWtlZmlsZQpAQCAtOSw3ICs5 LDggQEAgRVhURU5TSU9OID0gdGVzdF9leHQxIHRlc3RfZXh0MiB0ZXN0X2V4dDMgdGVzdF9leHQ0 IHRlc3RfZXh0NSB0ZXN0X2V4dDYgXAogICAgICAgICAgICAgdGVzdF9leHRfZXh0c2NoZW1hIFwK ICAgICAgICAgICAgIHRlc3RfZXh0X2V2dHRyaWcgXAogICAgICAgICAgICAgdGVzdF9leHRfc2V0 X3NjaGVtYSBcCi0gICAgICAgICAgICB0ZXN0X2V4dF9yZXFfc2NoZW1hMSB0ZXN0X2V4dF9yZXFf c2NoZW1hMiB0ZXN0X2V4dF9yZXFfc2NoZW1hMworICAgICAgICAgICAgdGVzdF9leHRfcmVxX3Nj aGVtYTEgdGVzdF9leHRfcmVxX3NjaGVtYTIgdGVzdF9leHRfcmVxX3NjaGVtYTMgXAorICAgICAg ICAgICAgdGVzdF9leHRfb3duZWRfc2NoZW1hIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0 YWJsZQogCiBEQVRBID0gdGVzdF9leHQxLS0xLjAuc3FsIHRlc3RfZXh0Mi0tMS4wLnNxbCB0ZXN0 X2V4dDMtLTEuMC5zcWwgXAogICAgICAgIHRlc3RfZXh0NC0tMS4wLnNxbCB0ZXN0X2V4dDUtLTEu MC5zcWwgdGVzdF9leHQ2LS0xLjAuc3FsIFwKQEAgLTIzLDcgKzI0LDkgQEAgREFUQSA9IHRlc3Rf ZXh0MS0tMS4wLnNxbCB0ZXN0X2V4dDItLTEuMC5zcWwgdGVzdF9leHQzLS0xLjAuc3FsIFwKICAg ICAgICB0ZXN0X2V4dF9zZXRfc2NoZW1hLS0xLjAuc3FsIFwKICAgICAgICB0ZXN0X2V4dF9yZXFf c2NoZW1hMS0tMS4wLnNxbCBcCiAgICAgICAgdGVzdF9leHRfcmVxX3NjaGVtYTItLTEuMC5zcWwg XAotICAgICAgIHRlc3RfZXh0X3JlcV9zY2hlbWEzLS0xLjAuc3FsCisgICAgICAgdGVzdF9leHRf cmVxX3NjaGVtYTMtLTEuMC5zcWwgXAorICAgICAgIHRlc3RfZXh0X293bmVkX3NjaGVtYS0tMS4w LnNxbCBcCisgICAgICAgdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLS0xLjAuc3Fs CiAKIFJFR1JFU1MgPSB0ZXN0X2V4dGVuc2lvbnMgdGVzdF9leHRkZXBlbmQKIApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvZXhwZWN0ZWQvdGVzdF9leHRlbnNp b25zLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL2V4cGVjdGVkL3Rlc3Rf ZXh0ZW5zaW9ucy5vdXQKaW5kZXggZjM1N2NjMjFhYWEuLmMwYTJiN2IzMTVlIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9leHBlY3RlZC90ZXN0X2V4dGVuc2lv bnMub3V0CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL2V4cGVjdGVkL3Rl c3RfZXh0ZW5zaW9ucy5vdXQKQEAgLTYyNiwzICs2MjYsNTMgQEAgU0VMRUNUIHRlc3Rfc19kZXAu ZGVwX3JlcTIoKTsKIAogRFJPUCBFWFRFTlNJT04gdGVzdF9leHRfcmVxX3NjaGVtYTEgQ0FTQ0FE RTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gZXh0ZW5zaW9uIHRlc3RfZXh0X3JlcV9zY2hl bWEyCistLQorLS0gVGVzdCBvd25lZCBzY2hlbWEgZXh0ZW5zaW9ucworLS0KK0NSRUFURSBTQ0hF TUEgdGVzdF9leHRfb3duZWRfc2NoZW1hOworLS0gRmFpbHMgZm9yIGFuIGFscmVhZHkgZXhpc3Rp bmcgc2NoZW1hIHRvIGJlIHByb3ZpZGVkCitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVk X3NjaGVtYSBTQ0hFTUEgdGVzdF9leHRfb3duZWRfc2NoZW1hOworRVJST1I6ICBzY2hlbWEgInRl c3RfZXh0X293bmVkX3NjaGVtYSIgYWxyZWFkeSBleGlzdHMKKy0tIEZhaWxzIGJlY2F1c2UgYSBk aWZmZXJlbnQgc2NoZW1hIGlzIHNldCBpbiBjb250cm9sIGZpbGUKK0NSRUFURSBFWFRFTlNJT04g dGVzdF9leHRfb3duZWRfc2NoZW1hIFNDSEVNQSB0ZXN0X3NjaGVtYTsKK0VSUk9SOiAgZXh0ZW5z aW9uICJ0ZXN0X2V4dF9vd25lZF9zY2hlbWEiIG11c3QgYmUgaW5zdGFsbGVkIGluIHNjaGVtYSAi dGVzdF9leHRfb3duZWRfc2NoZW1hIgorRFJPUCBTQ0hFTUEgdGVzdF9leHRfb3duZWRfc2NoZW1h OworQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitcZHgrIHRlc3RfZXh0 X293bmVkX3NjaGVtYTsKK09iamVjdHMgaW4gZXh0ZW5zaW9uICJ0ZXN0X2V4dF9vd25lZF9zY2hl bWEiCisgICAgICAgICAgIE9iamVjdCBkZXNjcmlwdGlvbiAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmdW5jdGlvbiB0ZXN0X2V4dF9vd25l ZF9zY2hlbWEub3duZWQxKCkKKyBzY2hlbWEgdGVzdF9leHRfb3duZWRfc2NoZW1hCisoMiByb3dz KQorCitEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitDUkVBVEUgU0NIRU1B IGFscmVhZHlfZXhpc3Rpbmc7CistLSBGYWlscyBmb3IgYW4gYWxyZWFkeSBleGlzdGluZyBzY2hl bWEgdG8gYmUgcHJvdmlkZWQKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1h X3JlbG9jYXRhYmxlIFNDSEVNQSBhbHJlYWR5X2V4aXN0aW5nOworRVJST1I6ICBzY2hlbWEgImFs cmVhZHlfZXhpc3RpbmciIGFscmVhZHkgZXhpc3RzCistLSBGYWlscyBiZWNhdXNlIG5vIHNjaGVt YSBpcyBzZXQgaW4gY29udHJvbCBmaWxlCitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVk X3NjaGVtYV9yZWxvY2F0YWJsZTsKK0VSUk9SOiAgbm8gc2NoZW1hIGhhcyBiZWVuIHNlbGVjdGVk IHRvIGNyZWF0ZSBpbgorQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVs b2NhdGFibGUgU0NIRU1BIHRlc3Rfc2NoZW1hOworXGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWFf cmVsb2NhdGFibGUKK09iamVjdHMgaW4gZXh0ZW5zaW9uICJ0ZXN0X2V4dF9vd25lZF9zY2hlbWFf cmVsb2NhdGFibGUiCisgICAgICBPYmplY3QgZGVzY3JpcHRpb24gICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZnVuY3Rpb24gdGVzdF9zY2hlbWEub3duZWQyKCkKKyBz Y2hlbWEgdGVzdF9zY2hlbWEKKygyIHJvd3MpCisKKy0tIEZhaWxzIGJlY2F1c2Ugc2NoZW1hIGFs cmVhZHkgZXhpc3RzCitBTFRFUiBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9j YXRhYmxlIFNFVCBTQ0hFTUEgYWxyZWFkeV9leGlzdGluZzsKK0VSUk9SOiAgc2NoZW1hICJhbHJl YWR5X2V4aXN0aW5nIiBhbHJlYWR5IGV4aXN0cworQUxURVIgRVhURU5TSU9OIHRlc3RfZXh0X293 bmVkX3NjaGVtYV9yZWxvY2F0YWJsZSBTRVQgU0NIRU1BIHNvbWVfb3RoZXJfbmFtZTsKK1xkeCsg dGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlCitPYmplY3RzIGluIGV4dGVuc2lvbiAi dGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlIgorICAgICAgICBPYmplY3QgZGVzY3Jp cHRpb24gICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZnVu Y3Rpb24gc29tZV9vdGhlcl9uYW1lLm93bmVkMigpCisgc2NoZW1hIHNvbWVfb3RoZXJfbmFtZQor KDIgcm93cykKKworRFJPUCBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRh YmxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvbWVzb24u YnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9tZXNvbi5idWlsZAppbmRl eCBjNWYzNDI0ZGE1MS4uNTJlODg0MTQ4MGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9leHRlbnNpb25zL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9l eHRlbnNpb25zL21lc29uLmJ1aWxkCkBAIC00Miw2ICs0MiwxMCBAQCB0ZXN0X2luc3RhbGxfZGF0 YSArPSBmaWxlcygKICAgJ3Rlc3RfZXh0X3JlcV9zY2hlbWEzLmNvbnRyb2wnLAogICAndGVzdF9l eHRfc2V0X3NjaGVtYS0tMS4wLnNxbCcsCiAgICd0ZXN0X2V4dF9zZXRfc2NoZW1hLmNvbnRyb2wn LAorICAndGVzdF9leHRfb3duZWRfc2NoZW1hLS0xLjAuc3FsJywKKyAgJ3Rlc3RfZXh0X293bmVk X3NjaGVtYS5jb250cm9sJywKKyAgJ3Rlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS0t MS4wLnNxbCcsCisgICd0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUuY29udHJvbCcs CiApCiAKIHRlc3RzICs9IHsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRl bnNpb25zL3NxbC90ZXN0X2V4dGVuc2lvbnMuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4 dGVuc2lvbnMvc3FsL3Rlc3RfZXh0ZW5zaW9ucy5zcWwKaW5kZXggNjQyYzgyZmY1ZDMuLjEzNjk2 N2RiMzk1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9zcWwv dGVzdF9leHRlbnNpb25zLnNxbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9u cy9zcWwvdGVzdF9leHRlbnNpb25zLnNxbApAQCAtMjk5LDMgKzI5OSwzMCBAQCBBTFRFUiBFWFRF TlNJT04gdGVzdF9leHRfcmVxX3NjaGVtYTEgU0VUIFNDSEVNQSB0ZXN0X3NfZGVwMjsgIC0tIG5v dyBvawogU0VMRUNUIHRlc3Rfc19kZXAyLmRlcF9yZXExKCk7CiBTRUxFQ1QgdGVzdF9zX2RlcC5k ZXBfcmVxMigpOwogRFJPUCBFWFRFTlNJT04gdGVzdF9leHRfcmVxX3NjaGVtYTEgQ0FTQ0FERTsK KworLS0KKy0tIFRlc3Qgb3duZWQgc2NoZW1hIGV4dGVuc2lvbnMKKy0tCisKK0NSRUFURSBTQ0hF TUEgdGVzdF9leHRfb3duZWRfc2NoZW1hOworLS0gRmFpbHMgZm9yIGFuIGFscmVhZHkgZXhpc3Rp bmcgc2NoZW1hIHRvIGJlIHByb3ZpZGVkCitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVk X3NjaGVtYSBTQ0hFTUEgdGVzdF9leHRfb3duZWRfc2NoZW1hOworLS0gRmFpbHMgYmVjYXVzZSBh IGRpZmZlcmVudCBzY2hlbWEgaXMgc2V0IGluIGNvbnRyb2wgZmlsZQorQ1JFQVRFIEVYVEVOU0lP TiB0ZXN0X2V4dF9vd25lZF9zY2hlbWEgU0NIRU1BIHRlc3Rfc2NoZW1hOworRFJPUCBTQ0hFTUEg dGVzdF9leHRfb3duZWRfc2NoZW1hOworQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9z Y2hlbWE7CitcZHgrIHRlc3RfZXh0X293bmVkX3NjaGVtYTsKK0RST1AgRVhURU5TSU9OIHRlc3Rf ZXh0X293bmVkX3NjaGVtYTsKKworQ1JFQVRFIFNDSEVNQSBhbHJlYWR5X2V4aXN0aW5nOworLS0g RmFpbHMgZm9yIGFuIGFscmVhZHkgZXhpc3Rpbmcgc2NoZW1hIHRvIGJlIHByb3ZpZGVkCitDUkVB VEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZSBTQ0hFTUEgYWxy ZWFkeV9leGlzdGluZzsKKy0tIEZhaWxzIGJlY2F1c2Ugbm8gc2NoZW1hIGlzIHNldCBpbiBjb250 cm9sIGZpbGUKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRh YmxlOworQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUg U0NIRU1BIHRlc3Rfc2NoZW1hOworXGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFi bGUKKy0tIEZhaWxzIGJlY2F1c2Ugc2NoZW1hIGFscmVhZHkgZXhpc3RzCitBTFRFUiBFWFRFTlNJ T04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlIFNFVCBTQ0hFTUEgYWxyZWFkeV9l eGlzdGluZzsKK0FMVEVSIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFi bGUgU0VUIFNDSEVNQSBzb21lX290aGVyX25hbWU7CitcZHgrIHRlc3RfZXh0X293bmVkX3NjaGVt YV9yZWxvY2F0YWJsZQorRFJPUCBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9j YXRhYmxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVz dF9leHRfb3duZWRfc2NoZW1hLS0xLjAuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVu c2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hLS0xLjAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi42NzJhYjhlNjA3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS0tMS4wLnNx bApAQCAtMCwwICsxLDIgQEAKK0NSRUFURSBGVU5DVElPTiBvd25lZDEoKSBSRVRVUk5TIHRleHQK K0xBTkdVQUdFIFNRTCBBUyAkJCBTRUxFQ1QgMSAkJDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS5jb250cm9sIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hLmNvbnRy b2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUzMWMzOGRhZWZkCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9l eHRfb3duZWRfc2NoZW1hLmNvbnRyb2wKQEAgLTAsMCArMSw1IEBACitjb21tZW50ID0gJ1Rlc3Qg ZXh0ZW5zaW9uIHdpdGggYW4gb3duZWQgc2NoZW1hJworZGVmYXVsdF92ZXJzaW9uID0gJzEuMCcK K3JlbG9jYXRhYmxlID0gZmFsc2UKK3NjaGVtYSA9IHRlc3RfZXh0X293bmVkX3NjaGVtYQorb3du ZWRfc2NoZW1hID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVu c2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLS0xLjAuc3FsIGIvc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRh YmxlLS0xLjAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZmNj YWY0YWY4MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNp b25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS0tMS4wLnNxbApAQCAtMCwwICsx LDIgQEAKK0NSRUFURSBGVU5DVElPTiBvd25lZDIoKSBSRVRVUk5TIHRleHQKK0xBTkdVQUdFIFNR TCBBUyAkJCBTRUxFQ1QgMSAkJDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9l eHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS5jb250cm9sIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9j YXRhYmxlLmNvbnRyb2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNj ZGExZTEyMzQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVu c2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLmNvbnRyb2wKQEAgLTAsMCAr MSw0IEBACitjb21tZW50ID0gJ1Rlc3QgZXh0ZW5zaW9uIHdpdGggYW4gb3duZWQgc2NoZW1hJwor ZGVmYXVsdF92ZXJzaW9uID0gJzEuMCcKK3JlbG9jYXRhYmxlID0gdHJ1ZQorb3duZWRfc2NoZW1h ID0gdHJ1ZQoKYmFzZS1jb21taXQ6IGFiNDM0NmViYmZlZjQ0ZGI4NTczMjFkNzRiYzBjMzFlMDNh NzI1MTQKLS0gCjIuMzQuMQoK --000000000000a0d6bc061b507875--