Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nhNI0-0000eC-GC for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Apr 2022 03:15:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nhNHy-00077z-SU for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Apr 2022 03:15:26 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nhNHy-00077q-05 for pgsql-hackers@lists.postgresql.org; Thu, 21 Apr 2022 03:15:26 +0000 Received: from mail-ed1-x533.google.com ([2a00:1450:4864:20::533]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nhNHt-0006ie-76 for pgsql-hackers@lists.postgresql.org; Thu, 21 Apr 2022 03:15:24 +0000 Received: by mail-ed1-x533.google.com with SMTP id t25so4757697edt.9 for ; Wed, 20 Apr 2022 20:15:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=PIcXFPTOmXQ3imQF/oEsbCQjlJ70cXjvBR0fd0NcbTc=; b=NXzwLIRMcGjfF7Gro4opr7SyJnVrvNXNkNJTVnx4+EIVszsLGdRz7rmFga5wF09zzh FBNXb8lfLYoMLD0H8ZfWqyfOLtnUtlOhEhUAVPxRoAYQcS8gg8nCqx4y9thIdq9xu/xG JsTXEyNYss8jSVGHU9hLNmKU8frIDpYKzQWTXAQ67/LT8dzGp7jX5ueDAWDROKezjiQz pgO/2mVuv9ithKbqCmGJcQqkIjcQrIYpK3xdz79JYaRyQJCDsJL5z6+w8iGmO6svgMaZ RcCPx5Sn3xFx7OvwofHKU0pWH9YdExV3mbDrNIELIImAEUQW8ZazRSeSJ7D7rFF8/s23 iSXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=PIcXFPTOmXQ3imQF/oEsbCQjlJ70cXjvBR0fd0NcbTc=; b=Lm63pswMyh8iEIJJyHKt/iQ1sdxFvyCv8bMnD/MdFtVNceB4IcACkl1NUzA0vEtRKW KLJBECVntp6uPQssnQ1jswGnWx7YwhnF76BxBkGsf50J63DkJMKMOLDvsi1Sl5g4vOlZ mGlhc8BZHz/C69cOf24N1R3ZqnXcKbBv1jlChpTUv9IvN9dzfIUwnp56oXkUAnJgZkGk PQ1Q8Cig+aJ5wGyfhYSYH8AL4jSnnLp+Pqq6bxmI35lLoOVGxu22PjdsfnKvQ8X0RZ4P dDwaN5B+YkuPEDdqweozI1S4A3O8Q7kd1sY3k67YHofT+LCB5F0adLwbsR4y80eRJ0Y0 DhSg== X-Gm-Message-State: AOAM533JzKb5RXvmmdzDYbiWr9a+1jRlvA765eNevKfgpiUkm/gt8KZN j3jo0TY8lBA94/vZUus/filuUkmlVrGHJFGa28E= X-Google-Smtp-Source: ABdhPJygepKZesP1xu0CPj7T4yyCIQzogK4fD3NoFK7yJ3d1iTyKjZj+uh/J7fVbq9fDUW0U15I+U52AvOy5v+3pSIQ= X-Received: by 2002:a05:6402:430b:b0:423:d384:acf7 with SMTP id m11-20020a056402430b00b00423d384acf7mr25064486edc.67.1650510918934; Wed, 20 Apr 2022 20:15:18 -0700 (PDT) MIME-Version: 1.0 References: <00afeb42-19b3-47a6-821e-e78d366eb0b0@www.fastmail.com> In-Reply-To: From: vignesh C Date: Thu, 21 Apr 2022 08:45:07 +0530 Message-ID: Subject: Re: Skipping schema changes in publication To: Amit Kapila Cc: Euler Taveira , Peter Eisentraut , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000000575d205dd2185c1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000575d205dd2185c1 Content-Type: text/plain; charset="UTF-8" On Mon, Apr 18, 2022 at 12:32 PM Amit Kapila wrote: > > On Fri, Apr 15, 2022 at 1:26 AM Euler Taveira wrote: > > > > On Thu, Apr 14, 2022, at 10:47 AM, Peter Eisentraut wrote: > > > > On 12.04.22 08:23, vignesh C wrote: > > > I have also included the implementation for skipping a few tables from > > > all tables publication, the 0002 patch has the implementation for the > > > same. > > > This feature is helpful for use cases where the user wants to > > > subscribe to all the changes except for the changes present in a few > > > tables. > > > Ex: > > > CREATE PUBLICATION pub1 FOR ALL TABLES SKIP TABLE t1,t2; > > > OR > > > ALTER PUBLICATION pub1 ADD SKIP TABLE t1,t2; > > > > We have already allocated the "skip" terminology for skipping > > transactions, which is a dynamic run-time action. We are also using the > > term "skip" elsewhere to skip locked rows, which is similarly a run-time > > action. I think it would be confusing to use the term SKIP for DDL > > construction. > > > > I didn't like the SKIP choice too. We already have EXCEPT for IMPORT FOREIGN > > SCHEMA and if I were to suggest a keyword, it would be EXCEPT. > > > > +1 for EXCEPT. Updated patch by changing the syntax to use EXCEPT instead of SKIP. Regards, Vignesh --0000000000000575d205dd2185c1 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Disposition: attachment; filename="v2-0001-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l28f6eiq0 RnJvbSAyODliNWFjZmMzM2Y3MGY0ODhmNDVlMmNiNTU3MTRkMjAwOTdhYzRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogV2VkLCAyMCBBcHIgMjAyMiAxMToxOTo1MCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjJd IFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFCTEUuCgpB IG5ldyBvcHRpb24gIkVYQ0VQVCBUQUJMRSIgaW4gQ3JlYXRlL0FsdGVyIFB1YmxpY2F0aW9uIGFs bG93cwpvbmUgb3IgbW9yZSB0YWJsZXMgdG8gYmUgZXhjbHVkZWQsIHB1Ymxpc2hlciB3aWxsIGV4 Y2x1ZGUgc2VuZGluZyB0aGUgZGF0YQpvZiB0aGUgdGFibGVzIHByZXNlbnQgaW4gdGhlIGV4Y2Vw dCB0YWJsZSB0byB0aGUgc3Vic2NyaWJlci4KClRoZSBuZXcgc3ludGF4IGFsbG93cyBzcGVjaWZ5 aW5nIHNjaGVtYXMuIEZvciBleGFtcGxlOgpDUkVBVEUgUFVCTElDQVRJT04gcHViMSBGT1IgQUxM IFRBQkxFUyBFWENFUFQgVEFCTEUgdDEsdDI7Ck9SCkFMVEVSIFBVQkxJQ0FUSU9OIHB1YjEgQURE IEVYQ0VQVCBUQUJMRSB0MSx0MjsKCkEgbmV3IGNvbHVtbiBwcmV4Y2VwdCBpcyBhZGRlZCB0byB0 YWJsZSAicGdfcHVibGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0 IHRoZSB1c2VyIHdhbnRzIHRvIGV4Y2x1ZGUgcHVibGlzaGluZyB0aHJvdWdoIHRoZSBwdWJsaWNh dGlvbi4KTW9kaWZpZWQgdGhlIG91dHB1dCBwbHVnaW4gKHBnb3V0cHV0KSB0byBleGNsdWRlIHB1 Ymxpc2hpbmcgdGhlIGNoYW5nZXMgaWYgdGhlCnJlbGF0aW9uIGlzIHBhcnQgb2YgZXhjZXB0IHRh YmxlIHB1YmxpY2F0aW9uLgoKVXBkYXRlcyBwZ19kdW1wIHRvIGlkZW50aWZ5IGFuZCBkdW1wIGV4 Y2VwdCB0YWJsZSBwdWJsaWNhdGlvbnMuIFVwZGF0ZXMgdGhlIFxkCmZhbWlseSBvZiBjb21tYW5k cyB0byBkaXNwbGF5IGV4Y2VwdCB0YWJsZSBwdWJsaWNhdGlvbnMgYW5kIFxkUnArIHZhcmlhbnQg d2lsbApub3cgZGlzcGxheSBhc3NvY2lhdGVkIGV4Y2VwdCB0YWJsZXMgaWYgYW55LgoKQnVtcCBj YXRhbG9nIHZlcnNpb24uCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAg ICAgICAgICAgIHwgICA5ICsrCiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21s ICAgICAgICAgfCAgIDggKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dt bCAgICAgICB8ICAxNCArKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNn bWwgICAgICB8ICAyOSArKysrLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAg ICAgICAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMg ICAgICAgICAgfCAgMzYgKysrKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuYyAgICAgICAgfCAxMDYgKysrKysrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDEwMiArKysrKysrKysrKysrKystLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyAgIHwgIDI1ICsrLS0tCiBzcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAgfCAgMTcgKystCiBzcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMzUgKysrKy0tCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICA3ICsrCiBzcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgMjMgKysrKwogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDI1ICsrKystCiBz cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgMTUgKystCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICAgICAgfCAgIDcgKy0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCAgICAgICAgfCAgIDQgKy0KIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCAgODEgKysrKysrKysrKysr LQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICAgIHwgIDQwICsr KysrKy0KIC4uLi90LzAzM19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAgICAgICB8ICA5 NyArKysrKysrKysrKysrKysrCiAyNCBmaWxlcyBjaGFuZ2VkLCA1ODAgaW5zZXJ0aW9ucygrKSwg MTEzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzM19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGE1 MzNhMjE1M2UuLjc4ZThjMjJhNTkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NDI2LDYgKzY0MjYsMTUg QEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3Jl cGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIGlmIHRoZXJlIGlzIG5vIHB1YmxpY2F0 aW9uIHF1YWxpZnlpbmcgY29uZGl0aW9uLjwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgIDxzdHJ1Y3RmaWVsZD5wcmV4Y2VwdDwv c3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBUcnVlIGlmIHRoZSB0YWJsZSBtdXN0IGJlIGV4Y2x1ZGVkCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAg ICAgICAgPHN0cnVjdGZpZWxkPnByYXR0cnM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQydmVjdG9y PC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggYTBmOWNlY2Qw MS4uMzZlOTQzZDMwNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0x MTYwLDEwICsxMTYwLDEwIEBAIENPTlRFWFQ6ICBwcm9jZXNzaW5nIHJlbW90ZSBkYXRhIGZvciBy ZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBkdXJpbmcgIklOU0VSCiAgIDwvcGFyYT4KIAog ICA8cGFyYT4KLSAgIFRvIGFkZCB0YWJsZXMgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVz dCBoYXZlIG93bmVyc2hpcCByaWdodHMgb24gdGhlCi0gICB0YWJsZS4gVG8gYWRkIGFsbCB0YWJs ZXMgaW4gc2NoZW1hIHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3QgYmUgYQotICAgc3Vw ZXJ1c2VyLiBUbyBjcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgdGFibGVz IG9yIGFsbCB0YWJsZXMgaW4KLSAgIHNjaGVtYSBhdXRvbWF0aWNhbGx5LCB0aGUgdXNlciBtdXN0 IGJlIGEgc3VwZXJ1c2VyLgorICAgVG8gYWRkIHRhYmxlcyBvciBleGNsdWRlIHRhYmxlcyB0byBh IHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGhhdmUKKyAgIG93bmVyc2hpcCByaWdodHMgb24g dGhlIHRhYmxlLiBUbyBhZGQgYWxsIHRhYmxlcyBpbiBzY2hlbWEgdG8gYSBwdWJsaWNhdGlvbiwK KyAgIHRoZSB1c2VyIG11c3QgYmUgYSBzdXBlcnVzZXIuIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9u IHRoYXQgcHVibGlzaGVzIGFsbAorICAgdGFibGVzIG9yIGFsbCB0YWJsZXMgaW4gc2NoZW1hIGF1 dG9tYXRpY2FsbHksIHRoZSB1c2VyIG11c3QgYmUgYSBzdXBlcnVzZXIuCiAgIDwvcGFyYT4KIAog ICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24u c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCBlMmNj ZTQ5NDcxLi4yYThlNGUwNDFiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sCkBAIC0zMCw3ICszMCw3IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAKIDxwaHJhc2U+ d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwv cmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAotICAgIFRBQkxFIFsgT05MWSBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAq IF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFj ZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KKyAgICBbRVhDRVBUXSBU QUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwv cmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29s dW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBd CiAgICAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0K IDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KQEAgLTcwLDggKzcwLDggQEAgQUxURVIg UFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBSRU5BTUUgVE8gPHIKIAogICA8cGFyYT4KICAgIFlvdSBtdXN0IG93biB0aGUgcHVibGlj YXRpb24gdG8gdXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OPC9jb21tYW5kPi4KLSAgIEFk ZGluZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5IHJlcXVpcmVzIG93bmlu ZyB0aGF0IHRhYmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTIElOIFNDSEVNQTwv bGl0ZXJhbD4gYW5kCisgICBBZGRpbmcgYSB0YWJsZSBvciBleGNsdWRpbmcgYSB0YWJsZSB0byBh IHB1YmxpY2F0aW9uIGFkZGl0aW9uYWxseSByZXF1aXJlcworICAgb3duaW5nIHRoYXQgdGFibGUu IFRoZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAogICAg PGxpdGVyYWw+U0VUIEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0 aW9uIHJlcXVpcmVzIHRoZQogICAgaW52b2tpbmcgdXNlciB0byBiZSBhIHN1cGVydXNlci4gIFRv IGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYWxzbyBiZSBhCiAgICBkaXJlY3Qgb3IgaW5kaXJl Y3QgbWVtYmVyIG9mIHRoZSBuZXcgb3duaW5nIHJvbGUuIFRoZSBuZXcgb3duZXIgbXVzdCBoYXZl CkBAIC0yMDAsNiArMjAwLDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNhbGVzX3B1YmxpY2F0aW9u IEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlz dGluZz4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgQWRkaW5nIHRhYmxlcyA8c3RydWN0bmFt ZT51c2Vyczwvc3RydWN0bmFtZT4gYW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3Ry dWN0bmFtZT4gdGhhdCBtdXN0IGJlIGV4Y2x1ZGVkIGZyb20gdGhlCisgICBwdWJsaWNhdGlvbiA8 c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFt bGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gQUREIEVY Q0VQVCBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMgcHJvZHVjdGlvbjsKKzwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgorCiAgIDxwYXJhPgogICAgQWRkIHRhYmxlcyA8c3RydWN0bmFtZT51c2Vyczwv c3RydWN0bmFtZT4sCiAgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT4gYW5k IHNjaGVtYQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24u c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggMjNk ODgzYzE1OC4uYTAzNzlmYjI4NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf cHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlv bi5zZ21sCkBAIC0yMiw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZz eW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+Ci0gICAgWyBGT1IgQUxMIFRBQkxF UworICAgIFsgRk9SIEFMTCBUQUJMRVMgW0VYQ0VQVCBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdXQogICAg ICAgfCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBd ICkgXQogCkBAIC0xNTUsNiArMTU1LDI0IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvdmFybGlzdGVudHJ5PgogCisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxp dGVyYWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9uZSB0aGF0IGV4Y2x1ZGVz IHJlcGxpY2F0aW5nIGNoYW5nZXMgZm9yIHRoZQorICAgICAgc3BlY2lmaWVkIHRhYmxlcy4KKyAg ICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgPGxpdGVyYWw+RVhDRVBUIFRBQkxFPC9s aXRlcmFsPiBjYW4gYmUgc3BlY2lmaWVkIG9ubHkgZm9yCisgICAgICA8bGl0ZXJhbD5GT1IgQUxM IFRBQkxFUzwvbGl0ZXJhbD4gcHVibGljYXRpb24uIEl0IGlzIG5vdCBzdXBwb3J0ZWQgZm9yCisg ICAgICA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgPC9saXRlcmFsPiBwdWJsaWNh dGlvbiBhbmQKKyAgICAgIDxsaXRlcmFsPkZPUiBUQUJMRTwvbGl0ZXJhbD4gcHVibGljYXRpb24u CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAg IDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+V0lUSCAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4u IF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtMzM4LDYgKzM1NiwxNSBA QCBDUkVBVEUgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBGT1IgVEFCTEUgdXNl cnMsIGRlcGFydG1lbnRzLCBBTEwgVEFCTAogQ1JFQVRFIFBVQkxJQ0FUSU9OIHNhbGVzX3B1Ymxp Y2F0aW9uIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogPC9wcm9n cmFtbGlzdGluZz48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0 aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBpbiBhbGwgdGhlIHRhYmxlcyBleGNlcHQgZm9yCisg ICB0aGUgY2hhbmdlcyBvZiA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gYW5kCisgICA8 c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT4gdGFibGU7Cis8cHJvZ3JhbWxpc3Rp bmc+CitDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFIEVYQ0VQ VCBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHM7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKICAgPHBhcmE+CiAgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwg Y2hhbmdlcyBmb3IgdGFibGUgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgYnV0 IHJlcGxpY2F0ZXMgb25seSBjb2x1bW5zIDxzdHJ1Y3RuYW1lPnVzZXJfaWQ8L3N0cnVjdG5hbWU+ IGFuZApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IDVmYzZiMTAzNGEuLjRkMTIzZDFlNWQgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTE4NjgsOCArMTg2OCw5IEBAIHRlc3RkYj0mZ3Q7CiAg ICAgICAgIElmIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNl YWJsZT4gaXMKICAgICAgICAgc3BlY2lmaWVkLCBvbmx5IHRob3NlIHB1YmxpY2F0aW9ucyB3aG9z ZSBuYW1lcyBtYXRjaCB0aGUgcGF0dGVybiBhcmUKICAgICAgICAgbGlzdGVkLgotICAgICAgICBJ ZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0 aGUgdGFibGVzIGFuZAotICAgICAgICBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1Ymxp Y2F0aW9uIGFyZSBzaG93biBhcyB3ZWxsLgorICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFs PiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzLAorICAgICAgICBl eGNlcHQgdGFibGVzIGFuZCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9u IGFyZSBzaG93biBhcworICAgICAgICB3ZWxsLgogICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uYwppbmRleCAyNjMxNTU4ZmYxLi5lNTVhZTQyMTFhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCkBAIC0yOTAsNyArMjkwLDggQEAgR2V0UHViUGFydGl0aW9uT3B0aW9u UmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAog ICogYW5jZXN0b3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAqLwogT2lkCi1HZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50 ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1 Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29s IHB1YmFsbHRhYmxlcykKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAlPaWQJCQl0b3Btb3N0X3JlbGlk ID0gSW52YWxpZE9pZDsKQEAgLTMwMiw4ICszMDMsOSBAQCBHZXRUb3BNb3N0QW5jZXN0b3JJblB1 YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZl bAogCWZvcmVhY2gobGMsIGFuY2VzdG9ycykKIAl7CiAJCU9pZAkJCWFuY2VzdG9yID0gbGZpcnN0 X29pZChsYyk7Ci0JCUxpc3QJICAgKmFwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhh bmNlc3Rvcik7CisJCUxpc3QJICAgKmFwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhh bmNlc3RvciwgZmFsc2UpOwogCQlMaXN0CSAgICphc2NoZW1hUHViaWRzID0gTklMOworCQlMaXN0 CSAgICphZXhjZXB0cHViaWRzOwogCiAJCWxldmVsKys7CiAKQEAgLTMxNyw3ICszMTksOSBAQCBH ZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9y cywgaW50ICphbmNlc3Rvcl9sZXZlbAogCQllbHNlCiAJCXsKIAkJCWFzY2hlbWFQdWJpZHMgPSBH ZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpKTsKLQkJCWlm IChsaXN0X21lbWJlcl9vaWQoYXNjaGVtYVB1YmlkcywgcHVib2lkKSkKKwkJCWFleGNlcHRwdWJp ZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgdHJ1ZSk7CisJCQlpZiAobGlz dF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJpZHMsIHB1Ym9pZCkgfHwKKwkJCQkocHViYWxsdGFibGVz ICYmICFsaXN0X21lbWJlcl9vaWQoYWV4Y2VwdHB1YmlkcywgcHVib2lkKSkpCiAJCQl7CiAJCQkJ dG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOwogCkBAIC0zOTYsNiArNDAwLDkgQEAgcHVibGljYXRp b25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCU9i amVjdElkR2V0RGF0dW0ocHViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9w cnJlbGlkIC0gMV0gPQogCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwl2YWx1ZXNbQW51bV9w Z19wdWJsaWNhdGlvbl9yZWxfcHJleGNlcHQgLSAxXSA9CisJCUJvb2xHZXREYXR1bShwcmktPmV4 Y2VwdCk7CisKIAogCS8qIEFkZCBxdWFsaWZpY2F0aW9ucywgaWYgYXZhaWxhYmxlICovCiAJaWYg KHByaS0+d2hlcmVDbGF1c2UgIT0gTlVMTCkKQEAgLTY2Niw3ICs2NzMsNyBAQCBwdWJsaWNhdGlv bl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLCBib29sIGlmX25vdF9leGlzdHMp CiAKIC8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBvaWRzIGZvciBhIHJlbGF0aW9uICovCiBM aXN0ICoKLUdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKK0dldFJlbGF0aW9uUHVi bGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBiZXhjZXB0KQogewogCUxpc3QJICAgKnJlc3VsdCA9 IE5JTDsKIAlDYXRDTGlzdCAgICpwdWJyZWxsaXN0OwpAQCAtNjgwLDcgKzY4Nyw4IEBAIEdldFJl bGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKIAkJSGVhcFR1cGxlCXR1cCA9ICZwdWJyZWxs aXN0LT5tZW1iZXJzW2ldLT50dXBsZTsKIAkJT2lkCQkJcHViaWQgPSAoKEZvcm1fcGdfcHVibGlj YXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnBycHViaWQ7CiAKLQkJcmVzdWx0ID0gbGFwcGVu ZF9vaWQocmVzdWx0LCBwdWJpZCk7CisJCWlmIChiZXhjZXB0ID09ICgoRm9ybV9wZ19wdWJsaWNh dGlvbl9yZWwpIEdFVFNUUlVDVCh0dXApKS0+cHJleGNlcHQpCisJCQlyZXN1bHQgPSBsYXBwZW5k X29pZChyZXN1bHQsIHB1YmlkKTsKIAl9CiAKIAlSZWxlYXNlU3lzQ2FjaGVMaXN0KHB1YnJlbGxp c3QpOwpAQCAtNzc5LDcgKzc4Nyw3IEBAIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucyh2b2lkKQog ICogcm9vdCBwYXJ0aXRpb25lZCB0YWJsZXMuCiAgKi8KIExpc3QgKgotR2V0QWxsVGFibGVzUHVi bGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQorR2V0QWxsVGFibGVzUHVibGljYXRp b25SZWxhdGlvbnMoT2lkIHB1YmlkLCBib29sIHB1YnZpYXJvb3QpCiB7CiAJUmVsYXRpb24JY2xh c3NSZWw7CiAJU2NhbktleURhdGEga2V5WzFdOwpAQCAtNzg3LDYgKzc5NSwxMyBAQCBHZXRBbGxU YWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhib29sIHB1YnZpYXJvb3QpCiAJSGVhcFR1cGxlCXR1 cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKIAorCS8qCisJICogcGdfcHVibGljYXRpb25f cmVsIGFuZCBwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgIHdpbGwgb25seSBoYXZlIGV4Y2VwdAor CSAqIHRhYmxlcyBpbiBjYXNlIG9mIGFsbCB0YWJsZXMgcHVibGljYXRpb24sIG5vIG5lZWQgdG8g cGFzcyBleGNlcHQgZmxhZworCSAqIHRvIGdldCB0aGUgcmVsYXRpb25zLgorCSAqLworCUxpc3QJ ICAgKmV4Y2VwdHB1YnRhYmxlbGlzdCA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQ VUJMSUNBVElPTl9QQVJUX0FMTCk7CisKIAljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVsYXRpb25S ZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwogCiAJU2NhbktleUluaXQoJmtleVswXSwKQEAg LTgwMiw3ICs4MTcsOCBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhib29sIHB1 YnZpYXJvb3QpCiAJCU9pZAkJCXJlbGlkID0gcmVsRm9ybS0+b2lkOwogCiAJCWlmIChpc19wdWJs aXNoYWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9ybSkgJiYKLQkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0 aXRpb24gJiYgcHVidmlhcm9vdCkpCisJCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1 YnZpYXJvb3QpICYmCisJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdHB1YnRhYmxlbGlzdCwgcmVs aWQpKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBAIC04 MjMsNyArODM5LDggQEAgR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2 aWFyb290KQogCQkJT2lkCQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAKIAkJCWlmIChpc19wdWJs aXNoYWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9ybSkgJiYKLQkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0 aXRpb24pCisJCQkJIXJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmCisJCQkJIWxpc3RfbWVtYmVy X29pZChleGNlcHRwdWJ0YWJsZWxpc3QsIHJlbGlkKSkKIAkJCQlyZXN1bHQgPSBsYXBwZW5kX29p ZChyZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTA3LDcgKzExMjQsOCBAQCBwZ19nZXRfcHVi bGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCSAqLwogCQlpZiAocHVibGljYXRp b24tPmFsbHRhYmxlcykKIAkJewotCQkJdGFibGVzID0gR2V0QWxsVGFibGVzUHVibGljYXRpb25S ZWxhdGlvbnMocHVibGljYXRpb24tPnB1YnZpYXJvb3QpOworCQkJdGFibGVzID0gR2V0QWxsVGFi bGVzUHVibGljYXRpb25SZWxhdGlvbnMocHVibGljYXRpb24tPm9pZCwKKwkJCQkJCQkJCQkJCQkg IHB1YmxpY2F0aW9uLT5wdWJ2aWFyb290KTsKIAkJfQogCQllbHNlCiAJCXsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggNmRmMGU2NjcwZi4uMjU3ZTY2OWU0MyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTI5Nyw3ICsyOTcsNyBAQCBj b250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2VyKE5vZGUgKm5vZGUsIHJmX2NvbnRleHQgKmNv bnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHVi aWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkgYm9vbCBwdWJ2 aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVidmlhcm9vdCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7 CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJl bGF0aW9uKTsKQEAgLTMyNCw3ICszMjQsOCBAQCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1 bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCWlmIChw dWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKIAkJcHVi bGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1Ymlk LCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9u KHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJCQkJCQkJCQkJCSAgcHViYWxsdGFibGVzKTsKIAog CQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlk ID0gcmVsaWQ7CkBAIC0zNzMsNyArMzc0LDcgQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29s dW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKICAqLwog Ym9vbAogcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxh dGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJIGJvb2wgcHVidmlhcm9vdCkK KwkJCQkJCQkJCWJvb2wgcHVidmlhcm9vdCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1 cGxlCXR1cGxlOwogCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWxhdGlvbik7CkBA IC0zOTIsNyArMzkzLDcgQEAgcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lk IHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3IKIAkgKi8KIAlpZiAocHVi dmlhcm9vdCAmJiByZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7Ci0JCXB1Ymxp c2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNl c3RvcnMsIE5VTEwpOworCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5Q dWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMLCBwdWJhbGx0YWJsZXMpOwogCiAJCWlm ICghT2lkSXNWYWxpZChwdWJsaXNoX2FzX3JlbGlkKSkKIAkJCXB1Ymxpc2hfYXNfcmVsaWQgPSBy ZWxpZDsKQEAgLTgzNSw1NCArODM2LDUzIEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCS8qIE1ha2UgdGhlIGNoYW5n ZXMgdmlzaWJsZS4gKi8KIAlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwogCi0JLyogQXNzb2Np YXRlIG9iamVjdHMgd2l0aCB0aGUgcHVibGljYXRpb24uICovCi0JaWYgKHN0bXQtPmZvcl9hbGxf dGFibGVzKQotCXsKLQkJLyogSW52YWxpZGF0ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9u IGluZm8gaXMgcmVidWlsdC4gKi8KLQkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKLQl9 Ci0JZWxzZQotCXsKLQkJT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0 cywgcHN0YXRlLCAmcmVsYXRpb25zLAotCQkJCQkJCQkgICAmc2NoZW1haWRsaXN0KTsKKwlPYmpl Y3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlv bnMsCisJCQkJCQkJCSZzY2hlbWFpZGxpc3QpOwogCi0JCS8qIEZPUiBBTEwgVEFCTEVTIElOIFND SEVNQSByZXF1aXJlcyBzdXBlcnVzZXIgKi8KLQkJaWYgKGxpc3RfbGVuZ3RoKHNjaGVtYWlkbGlz dCkgPiAwICYmICFzdXBlcnVzZXIoKSkKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCWVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkJZXJybXNnKCJtdXN0IGJlIHN1 cGVydXNlciB0byBjcmVhdGUgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9uIikp OworCS8qIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlp ZiAobGlzdF9sZW5ndGgoc2NoZW1haWRsaXN0KSA+IDAgJiYgIXN1cGVydXNlcigpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwK KwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgcHVibGljYXRpb24iKSk7CiAKLQkJaWYgKGxpc3RfbGVuZ3RoKHJlbGF0aW9ucykg PiAwKQotCQl7Ci0JCQlMaXN0CSAgICpyZWxzOworCWlmIChsaXN0X2xlbmd0aChyZWxhdGlvbnMp ID4gMCkKKwl7CisJCUxpc3QJICAgKnJlbHM7CiAKLQkJCXJlbHMgPSBPcGVuVGFibGVMaXN0KHJl bGF0aW9ucyk7Ci0JCQlDaGVja09ialNjaGVtYU5vdEFscmVhZHlJblB1YmxpY2F0aW9uKHJlbHMs IHNjaGVtYWlkbGlzdCwKLQkJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05PQkpfVEFCTEUpOworCQly ZWxzID0gT3BlblRhYmxlTGlzdChyZWxhdGlvbnMpOworCQlDaGVja09ialNjaGVtYU5vdEFscmVh ZHlJblB1YmxpY2F0aW9uKHJlbHMsIHNjaGVtYWlkbGlzdCwKKwkJCQkJCQkJCQkJCVBVQkxJQ0FU SU9OT0JKX1RBQkxFKTsKIAotCQkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0 ZS0+cF9zb3VyY2V0ZXh0LAotCQkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsK KwkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAor CQkJCQkJCQkJcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0JCQlDaGVja1B1YlJlbGF0 aW9uQ29sdW1uTGlzdChyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKLQkJCQkJCQkJICAgcHVi bGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOworCQlDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlzdChy ZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCQkJcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3QpOwogCi0JCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQsIHJlbHMsIHRydWUsIE5V TEwpOwotCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7Ci0JCX0KKwkJUHVibGljYXRpb25BZGRUYWJs ZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKKwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CisJ fQogCi0JCWlmIChsaXN0X2xlbmd0aChzY2hlbWFpZGxpc3QpID4gMCkKLQkJewotCQkJLyoKLQkJ CSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwgdGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQg dG8gcHJldmVudAotCQkJICogY29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24uCi0JCQkgKi8KLQkJ CUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7Ci0JCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMo cHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwotCQl9CisJLyogdGFibGVzIGFkZGVk IHRocm91Z2ggYSBzY2hlbWEgKi8KKwlpZiAobGlzdF9sZW5ndGgoc2NoZW1haWRsaXN0KSA+IDAp CisJeworCQkvKgorCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlv biBpcyBjcmVhdGVkIHRvIHByZXZlbnQKKwkJICogY29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24u CisJCSAqLworCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZGxpc3QpOworCQlQdWJsaWNhdGlvbkFk ZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwogCX0KIAogCXRhYmxl X2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKKwkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3 aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KKwlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJewor CQkvKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1 aWx0LiAqLworCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOworCX0KKwogCUludm9rZU9i amVjdFBvc3RDcmVhdGVIb29rKFB1YmxpY2F0aW9uUmVsYXRpb25JZCwgcHVib2lkLCAwKTsKIAog CWlmICh3YWxfbGV2ZWwgIT0gV0FMX0xFVkVMX0xPR0lDQUwpCkBAIC0xMzU1LDYgKzEzNTUsMTkg QEAgQ2hlY2tBbHRlclB1YmxpY2F0aW9uKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFw VHVwbGUgdHVwLAogCQkJCQkgIExpc3QgKnRhYmxlcywgTGlzdCAqc2NoZW1haWRsaXN0KQogewog CUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRT VFJVQ1QodHVwKTsKKwlMaXN0Q2VsbCAgICpsYzsKKwlib29sCQlub25leGNlcHR0YWJsZSA9IGZh bHNlOworCWJvb2wJCWV4Y2VwdHRhYmxlID0gZmFsc2U7CisKKwlmb3JlYWNoKGxjLCB0YWJsZXMp CisJeworCQlQdWJsaWNhdGlvblRhYmxlICpwdWJfdGFibGUgPSBsZmlyc3Rfbm9kZShQdWJsaWNh dGlvblRhYmxlLCBsYyk7CisKKwkJaWYgKCFwdWJfdGFibGUtPmV4Y2VwdCkKKwkJCW5vbmV4Y2Vw dHRhYmxlID0gdHJ1ZTsKKwkJZWxzZQorCQkJZXhjZXB0dGFibGUgPSB0cnVlOworCX0KIAogCWlm ICgoc3RtdC0+YWN0aW9uID09IEFQX0FkZE9iamVjdHMgfHwgc3RtdC0+YWN0aW9uID09IEFQX1Nl dE9iamVjdHMpICYmCiAJCXNjaGVtYWlkbGlzdCAmJiAhc3VwZXJ1c2VyKCkpCkBAIC0xMzc0LDEy ICsxMzg3LDE5IEBAIENoZWNrQWx0ZXJQdWJsaWNhdGlvbihBbHRlclB1YmxpY2F0aW9uU3RtdCAq c3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCQkgZXJyZGV0YWlsKCJUYWJsZXMgZnJvbSBzY2hlbWEg Y2Fubm90IGJlIGFkZGVkIHRvLCBkcm9wcGVkIGZyb20sIG9yIHNldCBvbiBGT1IgQUxMIFRBQkxF UyBwdWJsaWNhdGlvbnMuIikpKTsKIAogCS8qIENoZWNrIHRoYXQgdXNlciBpcyBhbGxvd2VkIHRv IG1hbmlwdWxhdGUgdGhlIHB1YmxpY2F0aW9uIHRhYmxlcy4gKi8KLQlpZiAodGFibGVzICYmIHB1 YmZvcm0tPnB1YmFsbHRhYmxlcykKKwlpZiAobm9uZXhjZXB0dGFibGUgJiYgdGFibGVzICYmIHB1 YmZvcm0tPnB1YmFsbHRhYmxlcykKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJD T0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJCQkgZXJybXNnKCJwdWJs aWNhdGlvbiBcIiVzXCIgaXMgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUyIsCiAJCQkJCQlOYW1l U3RyKHB1YmZvcm0tPnB1Ym5hbWUpKSwKIAkJCQkgZXJyZGV0YWlsKCJUYWJsZXMgY2Fubm90IGJl IGFkZGVkIHRvIG9yIGRyb3BwZWQgZnJvbSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMuIikp KTsKKworCWlmIChleGNlcHR0YWJsZSAmJiAhcHViZm9ybS0+cHViYWxsdGFibGVzKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJ VEVfU1RBVEUpLAorCQkJCSBlcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBpcyBub3QgZGVmaW5l ZCBhcyBGT1IgQUxMIFRBQkxFUyIsCisJCQkJCQlOYW1lU3RyKHB1YmZvcm0tPnB1Ym5hbWUpKSwK KwkJCQkgZXJyZGV0YWlsKCJleGNlcHQgdGFibGUgY2Fubm90IGJlIGFkZGVkIHRvLCBkcm9wcGVk IGZyb20sIG9yIHNldCBvbiBOT04gQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMuIikpKTsKIH0KIAog LyoKQEAgLTE2NTYsNiArMTY3Niw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQlw dWJfcmVsLT5yZWxhdGlvbiA9IHJlbDsKIAkJcHViX3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53aGVy ZUNsYXVzZTsKIAkJcHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVtbnM7CisJCXB1Yl9yZWwtPmV4 Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCXJl bGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgbXlyZWxpZCk7CiAKQEAgLTE3MjgsNiArMTc0OSw3 IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCiAJCQkJLyogY2hpbGQgaW5oZXJpdHMg Y29sdW1uIGxpc3QgZnJvbSBwYXJlbnQgKi8KIAkJCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29s dW1uczsKKwkJCQlwdWJfcmVsLT5leGNlcHQgPSB0LT5leGNlcHQ7CiAJCQkJcmVscyA9IGxhcHBl bmQocmVscywgcHViX3JlbCk7CiAJCQkJcmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBjaGls ZHJlbGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAyY2Q4NTQ2ZDQ3Li40ZDY2 MGRlNTVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTYyNzQsNyArMTYyNzQsNyBA QCBBVFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShSZWxhdGlvbiByZWwsIGJvb2wgdG9Mb2dnZWQpCiAJ ICogVU5MT0dHRUQgYXMgVU5MT0dHRUQgdGFibGVzIGNhbid0IGJlIHB1Ymxpc2hlZC4KIAkgKi8K IAlpZiAoIXRvTG9nZ2VkICYmCi0JCWxpc3RfbGVuZ3RoKEdldFJlbGF0aW9uUHVibGljYXRpb25z KFJlbGF0aW9uR2V0UmVsaWQocmVsKSkpID4gMCkKKwkJbGlzdF9sZW5ndGgoR2V0UmVsYXRpb25Q dWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBmYWxzZSkpID4gMCkKIAkJZXJlcG9y dChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRF X1NUQVRFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY2hhbmdlIHRhYmxlIFwiJXNcIiB0byB1bmxv Z2dlZCBiZWNhdXNlIGl0IGlzIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIsCkBAIC0xNjQxMSw3ICsx NjQxMSw3IEBAIEFsdGVyVGFibGVOYW1lc3BhY2UoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10 LCBPaWQgKm9sZHNjaGVtYSkKIAl7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlMaXN0CSAgICpzY2hl bWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMobnNwT2lkKTsKLQkJTGlzdAkgICAqcmVs UHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpKTsK KwkJTGlzdAkgICAqcmVsUHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25H ZXRSZWxpZChyZWwpLCBmYWxzZSk7CiAKIAkJZm9yZWFjaChsYywgcmVsUHViaWRzKQogCQl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCBjOTk0MWQ5Y2I0Li4yNTYzOWY2YjAyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTIx OSw2ICsyMTksMTEgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc0NBU2JpdHMoaW50IGNhc19iaXRzLCBp bnQgbG9jYXRpb24sIGNvbnN0IGNoYXIgKmNvbnN0clR5cGUsCiAJCQkgICBib29sICpub19pbmhl cml0LCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcik7CiBzdGF0aWMgdm9pZCBwcmVwcm9jZXNzX3B1 Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwKIAkJCQkJCQkJICAgY29yZV95eXNjYW5f dCB5eXNjYW5uZXIpOworc3RhdGljIHZvaWQgcHJlcHJvY2Vzc19hbGx0YWJsZXNfcHVib2JqX2xp c3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LAorCQkJCQkJCQkJCQkgaW50IGxvY2F0aW9uLAorCQkJ CQkJCQkJCQkgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOworc3RhdGljIHZvaWQgY2hlY2tfZXhj ZXB0X2luX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwKKwkJCQkJCQkJCQkJIGNv cmVfeXlzY2FuX3QgeXlzY2FubmVyKTsKIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1Nl bGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAKICV9CkBA IC00NTUsNyArNDYwLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQl0cmFuc2Zvcm1f ZWxlbWVudF9saXN0IHRyYW5zZm9ybV90eXBlX2xpc3QKIAkJCQlUcmlnZ2VyVHJhbnNpdGlvbnMg VHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0X3ZhY3V1bV9y ZWxhdGlvbl9saXN0Ci0JCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3QKKwkJCQlkcm9w X29wdGlvbl9saXN0IHB1Yl9vYmpfbGlzdCBleGNlcHRfcHViX29ial9saXN0CiAKICV0eXBlIDxu b2RlPglvcHRfcm91dGluZV9ib2R5CiAldHlwZSA8Z3JvdXBjbGF1c2U+IGdyb3VwX2NsYXVzZQpA QCAtNDkzLDcgKzQ5OCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChj aGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bGlzdD4J b3B0X2ludGVydmFsIGludGVydmFsX3NlY29uZAogJXR5cGUgPHN0cj4JCXVuaWNvZGVfbm9ybWFs X2Zvcm0KIAotJXR5cGUgPGJvb2xlYW4+IG9wdF9pbnN0ZWFkCisldHlwZSA8Ym9vbGVhbj4gb3B0 X2luc3RlYWQgb3B0X2V4Y2VwdAogJXR5cGUgPGJvb2xlYW4+IG9wdF91bmlxdWUgb3B0X2NvbmN1 cnJlbnRseSBvcHRfdmVyYm9zZSBvcHRfZnVsbAogJXR5cGUgPGJvb2xlYW4+IG9wdF9mcmVlemUg b3B0X2FuYWx5emUgb3B0X2RlZmF1bHQgb3B0X3JlY2hlY2sKICV0eXBlIDxkZWZlbHQ+CW9wdF9i aW5hcnkgY29weV9kZWxpbWl0ZXIKQEAgLTk4NzksMTIgKzk4ODQsMTcgQEAgQ3JlYXRlUHVibGlj YXRpb25TdG10OgogCQkJCQluLT5vcHRpb25zID0gJDQ7CiAJCQkJCSQkID0gKE5vZGUgKiluOwog CQkJCX0KLQkJCXwgQ1JFQVRFIFBVQkxJQ0FUSU9OIG5hbWUgRk9SIEFMTCBUQUJMRVMgb3B0X2Rl ZmluaXRpb24KKwkJCXwgQ1JFQVRFIFBVQkxJQ0FUSU9OIG5hbWUgRk9SIEFMTCBUQUJMRVMgZXhj ZXB0X3B1Yl9vYmpfbGlzdCBvcHRfZGVmaW5pdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlUHVibGlj YXRpb25TdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlUHVibGljYXRpb25TdG10KTsKIAkJCQkJbi0+ cHVibmFtZSA9ICQzOwotCQkJCQluLT5vcHRpb25zID0gJDc7CisJCQkJCW4tPm9wdGlvbnMgPSAk ODsKKwkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICopJDc7CiAJCQkJCW4tPmZvcl9hbGxfdGFi bGVzID0gdHJ1ZTsKKwkJCQkJcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChuLT5wdWJvYmplY3RzLCB5 eXNjYW5uZXIpOworCQkJCQlwcmVwcm9jZXNzX2FsbHRhYmxlc19wdWJvYmpfbGlzdChuLT5wdWJv YmplY3RzLAorCQkJCQkJCQkJCQkJCSBANiwKKwkJCQkJCQkJCQkJCQkgeXlzY2FubmVyKTsKIAkJ CQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBG T1IgcHViX29ial9saXN0IG9wdF9kZWZpbml0aW9uCkBAIC05ODk0LDYgKzk5MDQsNyBAQCBDcmVh dGVQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSAkNjsKIAkJCQkJbi0+cHVib2Jq ZWN0cyA9IChMaXN0ICopJDU7CiAJCQkJCXByZXByb2Nlc3NfcHVib2JqX2xpc3Qobi0+cHVib2Jq ZWN0cywgeXlzY2FubmVyKTsKKwkJCQkJY2hlY2tfZXhjZXB0X2luX3B1Ym9ial9saXN0KG4tPnB1 Ym9iamVjdHMsIHl5c2Nhbm5lcik7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJOwpA QCAtOTkxMiwyNiArOTkyMywzMCBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAgKiByZWxhdGlv bl9leHByIGhlcmUuCiAgKi8KIFB1YmxpY2F0aW9uT2JqU3BlYzoKLQkJCVRBQkxFIHJlbGF0aW9u X2V4cHIgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQlvcHRfZXhjZXB0IFRBQkxF IHJlbGF0aW9uX2V4cHIgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJewogCQkJ CQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBl ID0gUFVCTElDQVRJT05PQkpfVEFCTEU7CiAJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1 YmxpY2F0aW9uVGFibGUpOwotCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDI7Ci0JCQkJ CSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwotCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xh dXNlID0gJDQ7CisJCQkJCSQkLT5leGNlcHQgPSAkMTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5yZWxh dGlvbiA9ICQzOworCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkNDsKKwkJCQkJJCQtPnB1 YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ1OworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9 CiAJCQl8IEFMTCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQKIAkJCQl7CiAJCQkJCSQkID0gbWFr ZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNB VElPTk9CSl9UQUJMRVNfSU5fU0NIRU1BOwogCQkJCQkkJC0+bmFtZSA9ICQ1OworCQkJCQkkJC0+ ZXhjZXB0ID0gZmFsc2U7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEA1OwogCQkJCX0KIAkJCXwgQUxM IFRBQkxFUyBJTl9QIFNDSEVNQSBDVVJSRU5UX1NDSEVNQQogCQkJCXsKIAkJCQkJJCQgPSBtYWtl Tm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FU SU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BOworCQkJCQkkJC0+ZXhjZXB0ID0gZmFsc2U7CiAJ CQkJCSQkLT5sb2NhdGlvbiA9IEA1OwogCQkJCX0KIAkJCXwgQ29sSWQgb3B0X2NvbHVtbl9saXN0 IE9wdFdoZXJlQ2xhdXNlCkBAIC05OTk1LDYgKzEwMDEwLDE3IEBAIHB1Yl9vYmpfbGlzdDogCVB1 YmxpY2F0aW9uT2JqU3BlYwogCQkJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CiAJOwogCisg ZXhjZXB0X3B1Yl9vYmpfbGlzdDoJcHViX29ial9saXN0CisJCQkJCXsgJCQgPSAkMTsgfQorCQkJ fCAvKkVNUFRZKi8KKwkJCQkJeyAkJCA9IE5VTEw7IH0KKwk7CisKK29wdF9leGNlcHQ6CisJCQlF WENFUFQJCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQg PSBmYWxzZTsgfQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIFBV QkxJQ0FUSU9OIG5hbWUgU0VUICggb3B0aW9ucyApCkBAIC0xODcxMiw2ICsxODczOCw3IEBAIHBy ZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nhbl90 IHl5c2Nhbm5lcikKIAlMaXN0Q2VsbCAgICpjZWxsOwogCVB1YmxpY2F0aW9uT2JqU3BlYyAqcHVi b2JqOwogCVB1YmxpY2F0aW9uT2JqU3BlY1R5cGUgcHJldm9ianR5cGUgPSBQVUJMSUNBVElPTk9C Sl9DT05USU5VQVRJT047CisJYm9vbCBwcmV2ZXhjZXB0b2JqID0gZmFsc2U7CiAKIAlpZiAoIXB1 Ym9ianNwZWNfbGlzdCkKIAkJcmV0dXJuOwpAQCAtMTg3MjksNyArMTg3NTYsMTAgQEAgcHJlcHJv Y2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlz Y2FubmVyKQogCQlwdWJvYmogPSAoUHVibGljYXRpb25PYmpTcGVjICopIGxmaXJzdChjZWxsKTsK IAogCQlpZiAocHVib2JqLT5wdWJvYmp0eXBlID09IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElP TikKKwkJewogCQkJcHVib2JqLT5wdWJvYmp0eXBlID0gcHJldm9ianR5cGU7CisJCQlwdWJvYmot PmV4Y2VwdCA9IHByZXZleGNlcHRvYmo7CisJCX0KIAogCQlpZiAocHVib2JqLT5wdWJvYmp0eXBl ID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxFKQogCQl7CkBAIC0xODc1MCw2ICsxODc4MCw4IEBAIHBy ZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nhbl90 IHl5c2Nhbm5lcikKIAkJCQlwdWJvYmotPnB1YnRhYmxlID0gcHVidGFibGU7CiAJCQkJcHVib2Jq LT5uYW1lID0gTlVMTDsKIAkJCX0KKworCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gcHVi b2JqLT5leGNlcHQ7CiAJCX0KIAkJZWxzZSBpZiAocHVib2JqLT5wdWJvYmp0eXBlID09IFBVQkxJ Q0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEgfHwKIAkJCQkgcHVib2JqLT5wdWJvYmp0eXBlID09 IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BKQpAQCAtMTg3ODQsNiArMTg4MTYs NjAgQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVf eXlzY2FuX3QgeXlzY2FubmVyKQogCQl9CiAKIAkJcHJldm9ianR5cGUgPSBwdWJvYmotPnB1Ym9i anR5cGU7CisJCXByZXZleGNlcHRvYmogPSBwdWJvYmotPmV4Y2VwdDsKKwl9Cit9CisKKy8qCisg KiBQcm9jZXNzIHB1Ym9ianNwZWNfbGlzdCB0byBjaGVjayBpZiBhbnkgb3RoZXIgb3B0aW9uIG90 aGVyIHRoYXQKKyAqICJFWENFUFQgVEFCTEUiIGlzIHNwZWNpZmllZCB3aXRoICJBTEwgVEFCTEVT IiBhbmQgdGhyb3cgYW4KKyAqIGVycm9yLgorICovCitzdGF0aWMgdm9pZAorcHJlcHJvY2Vzc19h bGx0YWJsZXNfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBpbnQgbG9jYXRpb24s CisJCQkJCQkJCSBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKK3sKKwlMaXN0Q2VsbCAgICpjZWxs OworCisJaWYgKCFwdWJvYmpzcGVjX2xpc3QpCisJCXJldHVybjsKKworCWZvcmVhY2goY2VsbCwg cHVib2Jqc3BlY19saXN0KQorCXsKKwkJUHVibGljYXRpb25PYmpTcGVjICpwdWJvYmogPSAoUHVi bGljYXRpb25PYmpTcGVjICopIGxmaXJzdChjZWxsKTsKKworCQkvKiBPbmx5IEVYQ0VQVCBUQUJM RSBvcHRpb24gc3VwcG9ydGVkIHdpdGggQUxMIFRBQkxFUyAqLworCQlpZiAoIXB1Ym9iai0+ZXhj ZXB0KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJCWVycm1zZygib25seSBFWENFUFQgVEFCTEUgY2FuIGJlIHNwZWNpZmllZCB3aXRo IEFMTCBUQUJMRVMgb3B0aW9uIiksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwdWJvYmotPmxv Y2F0aW9uKSk7CisJfQorfQorCisvKgorICogUHJvY2VzcyBwdWJvYmpzcGVjX2xpc3QgdG8gY2hl Y2sgaWYgIkVYQ0VQVCBUQUJMRVMiIGlzIHNwZWNpZmllZAorICogd2l0aCAiQUxMIFRBQkxFUyIg YW5kIHRocm93IGFuIGVycm9yLgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfZXhjZXB0X2luX3B1 Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIp Cit7CisJTGlzdENlbGwgICAqY2VsbDsKKwlQdWJsaWNhdGlvbk9ialNwZWMgKnB1Ym9iajsKKwor CWlmICghcHVib2Jqc3BlY19saXN0KQorCQlyZXR1cm47CisKKwlmb3JlYWNoKGNlbGwsIHB1Ym9i anNwZWNfbGlzdCkKKwl7CisJCXB1Ym9iaiA9IChQdWJsaWNhdGlvbk9ialNwZWMgKikgbGZpcnN0 KGNlbGwpOworCisJCS8qIEVYQ0VQVCBUQUJMRSBvcHRpb24gc3VwcG9ydGVkIG9ubHkgd2l0aCBB TEwgVEFCTEVTICovCisJCWlmIChwdWJvYmotPmV4Y2VwdCkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQllcnJtc2coIkVYQ0VQVCBU QUJMRSBjYW4gYmUgc3BlY2lmaWVkIG9ubHkgd2l0aCBBTEwgVEFCTEVTIG9wdGlvbiIpLAorCQkJ CQlwYXJzZXJfZXJycG9zaXRpb24ocHVib2JqLT5sb2NhdGlvbikpOwogCX0KIH0KIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggYjE5N2JmZDU2NS4u NGRjZDM1ZDFmNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQv cGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1 dC5jCkBAIC0xOTg4LDcgKzE5ODgsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRh ICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAlpZiAoIWVudHJ5LT5yZXBsaWNhdGVfdmFsaWQp CiAJewogCQlPaWQJCQlzY2hlbWFJZCA9IGdldF9yZWxfbmFtZXNwYWNlKHJlbGlkKTsKLQkJTGlz dAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOworCQlMaXN0CSAg ICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2UpOworCQlMaXN0 CSAgICpleGNlcHRUYWJsZVB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCB0 cnVlKTsKIAogCQkvKgogCQkgKiBXZSBkb24ndCBhY3F1aXJlIGEgbG9jayBvbiB0aGUgbmFtZXNw YWNlIHN5c3RlbSB0YWJsZSBhcyB3ZSBidWlsZApAQCAtMjA3NywyMiArMjA3OCw2IEBAIGdldF9y ZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJ T2lkCXB1Yl9yZWxpZCA9IHJlbGlkOwogCQkJaW50CWFuY2VzdG9yX2xldmVsID0gMDsKIAotCQkJ LyoKLQkJCSAqIElmIHRoaXMgaXMgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiwgcGljayB0 aGUgcGFydGl0aW9uIHJvb3QKLQkJCSAqIGFuZCBzZXQgdGhlIGFuY2VzdG9yIGxldmVsIGFjY29y ZGluZ2x5LgotCQkJICovCi0JCQlpZiAocHViLT5hbGx0YWJsZXMpCi0JCQl7Ci0JCQkJcHVibGlz aCA9IHRydWU7Ci0JCQkJaWYgKHB1Yi0+cHVidmlhcm9vdCAmJiBhbV9wYXJ0aXRpb24pCi0JCQkJ ewotCQkJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBnZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhyZWxp ZCk7Ci0KLQkJCQkJcHViX3JlbGlkID0gbGxhc3Rfb2lkKGFuY2VzdG9ycyk7Ci0JCQkJCWFuY2Vz dG9yX2xldmVsID0gbGlzdF9sZW5ndGgoYW5jZXN0b3JzKTsKLQkJCQl9Ci0JCQl9Ci0KIAkJCWlm ICghcHVibGlzaCkKIAkJCXsKIAkJCQlib29sCQlhbmNlc3Rvcl9wdWJsaXNoZWQgPSBmYWxzZTsK QEAgLTIxMTEsNyArMjA5Niw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRh dGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJCWFuY2VzdG9yID0gR2V0VG9wTW9zdEFuY2Vz dG9ySW5QdWJsaWNhdGlvbihwdWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJCSAgIGFuY2VzdG9ycywK LQkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwsCisJ CQkJCQkJCQkJCQkJCQkgICBwdWItPmFsbHRhYmxlcyk7CiAKIAkJCQkJaWYgKGFuY2VzdG9yICE9 IEludmFsaWRPaWQpCiAJCQkJCXsKQEAgLTIxMjYsNiArMjExMiw4IEBAIGdldF9yZWxfc3luY19l bnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJaWYgKGxp c3RfbWVtYmVyX29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAogCQkJCQlsaXN0X21lbWJlcl9vaWQo c2NoZW1hUHViaWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKHB1Yi0+YWxsdGFibGVzICYmCisJCQkJ CSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdFRhYmxlUHViaWRzLCBwdWItPm9pZCkpIHx8CiAJCQkJ CWFuY2VzdG9yX3B1Ymxpc2hlZCkKIAkJCQkJcHVibGlzaCA9IHRydWU7CiAJCQl9CkBAIC0yMjAx LDYgKzIxODksNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxh dGlvbiByZWxhdGlvbikKIAogCQlsaXN0X2ZyZWUocHViaWRzKTsKIAkJbGlzdF9mcmVlKHNjaGVt YVB1Ymlkcyk7CisJCWxpc3RfZnJlZShleGNlcHRUYWJsZVB1Ymlkcyk7CiAJCWxpc3RfZnJlZShy ZWxfcHVibGljYXRpb25zKTsKIAogCQllbnRyeS0+cmVwbGljYXRlX3ZhbGlkID0gdHJ1ZTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDQzZjE0YzIzM2QuLjU2NTkyYWZhYzEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTU2Miw2ICs1NTYyLDggQEAgdm9pZAog UmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRp b25EZXNjICpwdWJkZXNjKQogewogCUxpc3QJICAgKnB1Ym9pZHM7CisJTGlzdAkgICAqYWxsdGFi bGVzcHVib2lkczsKKwlMaXN0CSAgICpleGNlcHRwdWJvaWRzID0gTklMOwogCUxpc3RDZWxsICAg KmxjOwogCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCU9pZAkJCXNjaGVtYWlkOwpAQCAtNTU5NSw3 ICs1NTk3LDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlv biwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRlc2MtPmNvbHNfdmFsaWRfZm9yX2Rl bGV0ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZv LiAqLwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7CisJcHVib2lk cyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxzZSk7CiAJc2NoZW1haWQgPSBS ZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7CiAJcHVib2lkcyA9IGxpc3RfY29uY2F0X3Vu aXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYWlkKSk7CiAKQEAg LTU2MDksMTQgKzU2MTEsMTkgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlv biByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQkJT2lkCQkJYW5jZXN0b3Ig PSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQo cHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKSk7 CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpKTsK IAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpOwogCQkJcHVib2lkcyA9 IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKIAkJCQkJCQkJCQkJIEdldFNjaGVtYVB1 YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJZXhjZXB0cHVib2lkcyA9IGxpc3RfY29uY2F0X3Vu aXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJCQkJCQkJCQkJCSAgIEdldFJlbGF0aW9uUHVibGlj YXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7CiAJCX0KIAl9Ci0JcHVib2lkcyA9IGxpc3RfY29uY2F0 X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxsVGFibGVzUHVibGljYXRpb25zKCkpOwogCisJYWxs dGFibGVzcHVib2lkcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpOworCXB1Ym9pZHMgPSBs aXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCisJCQkJCQkJCQkgbGlzdF9kaWZmZXJlbmNl X29pZChhbGx0YWJsZXNwdWJvaWRzLAorCQkJCQkJCQkJCQkJCQkgZXhjZXB0cHVib2lkcykpOwog CWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewogCQlPaWQJCQlwdWJpZCA9IGxmaXJzdF9vaWQobGMp OwpAQCAtNTY0NSw3ICs1NjUyLDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxh dGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQlpZiAoIXB1YmZvcm0t PnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1YnVwZGF0ZSB8fCBwdWJmb3JtLT5wdWJk ZWxldGUpICYmCiAJCQlwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0 aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkgcHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJCQkJ CQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+cHViYWxsdGFibGVzKSkKIAkJewog CQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJkZXNjLT5yZl92YWxpZF9mb3JfdXBk YXRlID0gZmFsc2U7CkBAIC01NjYyLDcgKzU2NjksNyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRp b25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCWlm ICghcHViZm9ybS0+cHViYWxsdGFibGVzICYmCiAJCQkocHViZm9ybS0+cHVidXBkYXRlIHx8IHB1 YmZvcm0tPnB1YmRlbGV0ZSkgJiYKIAkJCXB1Yl9jb2xsaXN0X2NvbnRhaW5zX2ludmFsaWRfY29s dW1uKHB1YmlkLCByZWxhdGlvbiwgYW5jZXN0b3JzLAotCQkJCQkJCQkJIHB1YmZvcm0tPnB1YnZp YXJvb3QpKQorCQkJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+cHViYWxs dGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJkZXNjLT5j b2xzX3ZhbGlkX2Zvcl91cGRhdGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGQzNTg4NjA3ZTcu LmQyMmE4MWU3OTAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMjg1LDcgKzI4NSw4IEBAIHN0YXRpYyB2b2lk IGR1bXBCbG9iKEFyY2hpdmUgKmZvdXQsIGNvbnN0IEJsb2JJbmZvICpiaW5mbyk7CiBzdGF0aWMg aW50CWR1bXBCbG9icyhBcmNoaXZlICpmb3V0LCBjb25zdCB2b2lkICphcmcpOwogc3RhdGljIHZv aWQgZHVtcFBvbGljeShBcmNoaXZlICpmb3V0LCBjb25zdCBQb2xpY3lJbmZvICpwb2xpbmZvKTsK IHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNh dGlvbkluZm8gKnB1YmluZm8pOwotc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJj aGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbyk7CitzdGF0aWMg dm9pZCBkdW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlv blJlbEluZm8gKnB1YnJpbmZvLAorCQkJCQkJCQkgYm9vbCBiZXhjZXB0KTsKIHN0YXRpYyB2b2lk IGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAq c3ViaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wRGF0YWJhc2UoQXJjaGl2ZSAqQUgpOwogc3RhdGlj IHZvaWQgZHVtcERhdGFiYXNlQ29uZmlnKEFyY2hpdmUgKkFILCBQUUV4cEJ1ZmZlciBvdXRidWYs CkBAIC00MTUwLDYgKzQxNTEsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0 LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWludAkJCWlfcHJyZWxpZDsK IAlpbnQJCQlpX3BycmVscXVhbDsKIAlpbnQJCQlpX3ByYXR0cnM7CisJaW50CQkJaV9wcmV4Y2Vw dDsKIAlpbnQJCQlpLAogCQkJCWosCiAJCQkJbnR1cHM7CkBAIC00MTYyLDcgKzQxNjQsNyBAQCBn ZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBp bnQgbnVtVGFibGVzKQogCS8qIENvbGxlY3QgYWxsIHB1YmxpY2F0aW9uIG1lbWJlcnNoaXAgaW5m by4gKi8KIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNTAwMDApCiAJCWFwcGVuZFBRRXhw QnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQs IHBycmVsaWQsICIKKwkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJl bGlkLCBwcmV4Y2VwdCwiCiAJCQkJCQkJICJwZ19jYXRhbG9nLnBnX2dldF9leHByKHBycXVhbCwg cHJyZWxpZCkgQVMgcHJyZWxxdWFsLCAiCiAJCQkJCQkJICIoQ0FTRVxuIgogCQkJCQkJCSAiICBX SEVOIHByLnByYXR0cnMgSVMgTk9UIE5VTEwgVEhFTlxuIgpAQCAtNDE4OCw2ICs0MTkwLDcgQEAg Z2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwg aW50IG51bVRhYmxlcykKIAlpX3BycmVsaWQgPSBQUWZudW1iZXIocmVzLCAicHJyZWxpZCIpOwog CWlfcHJyZWxxdWFsID0gUFFmbnVtYmVyKHJlcywgInBycmVscXVhbCIpOwogCWlfcHJhdHRycyA9 IFBRZm51bWJlcihyZXMsICJwcmF0dHJzIik7CisJaV9wcmV4Y2VwdCA9IFBRZm51bWJlcihyZXMs ICJwcmV4Y2VwdCIpOwogCiAJLyogdGhpcyBhbGxvY2F0aW9uIG1heSBiZSBtb3JlIHRoYW4gd2Ug bmVlZCAqLwogCXB1YnJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFB1YmxpY2F0aW9u UmVsSW5mbykpOwpAQCAtNDE5OSw2ICs0MjAyLDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJj aGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJT2lkCQkJ cHJyZWxpZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9wcnJlbGlkKSk7CiAJCVB1Ymxp Y2F0aW9uSW5mbyAqcHViaW5mbzsKIAkJVGFibGVJbmZvICAqdGJpbmZvOworCQljaGFyICAgICAg ICpwcmV4Y2VwdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wcmV4Y2VwdCkpOwog CiAJCS8qCiAJCSAqIElnbm9yZSBhbnkgZW50cmllcyBmb3Igd2hpY2ggd2UgYXJlbid0IGludGVy ZXN0ZWQgaW4gZWl0aGVyIHRoZQpAQCAtNDIxOSw3ICs0MjIzLDExIEBAIGdldFB1YmxpY2F0aW9u VGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMp CiAJCQljb250aW51ZTsKIAogCQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlz IHJlbGF0aW9uc2hpcCAqLwotCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNB VElPTl9SRUw7CisJCWlmIChzdHJjbXAocHJleGNlcHQsICJmIikgPT0gMCkKKwkJCXB1YnJpbmZv W2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJZWxzZQorCQkJcHVicmlu Zm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDsKKwogCQlwdWJy aW5mb1tqXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KIAkJCWF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV90YWJsZW9pZCkpOwogCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKQEAgLTQzMTMsMTMgKzQzMjEsMTUgQEAgZHVtcFB1 YmxpY2F0aW9uTmFtZXNwYWNlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uU2NoZW1h SW5mbyAqcHVic2luZm8pCiAgKgkgIGR1bXAgdGhlIGRlZmluaXRpb24gb2YgdGhlIGdpdmVuIHB1 YmxpY2F0aW9uIHRhYmxlIG1hcHBpbmcKICAqLwogc3RhdGljIHZvaWQKLWR1bXBQdWJsaWNhdGlv blRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8p CitkdW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblJl bEluZm8gKnB1YnJpbmZvLAorCQkJCQkgYm9vbCBiZXhjZXB0KQogewogCUR1bXBPcHRpb25zICpk b3B0ID0gZm91dC0+ZG9wdDsKIAlQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8gPSBwdWJyaW5mby0+ cHVibGljYXRpb247CiAJVGFibGVJbmZvICAqdGJpbmZvID0gcHVicmluZm8tPnB1YnRhYmxlOwog CVBRRXhwQnVmZmVyIHF1ZXJ5OwogCWNoYXIJICAgKnRhZzsKKwljaGFyCSAgICpkZXNjcmlwdGlv bjsKIAogCS8qIERvIG5vdGhpbmcgaW4gZGF0YS1vbmx5IGR1bXAgKi8KIAlpZiAoZG9wdC0+ZGF0 YU9ubHkpCkBAIC00MzI5LDggKzQzMzksMTUgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2 ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAogCXF1ZXJ5ID0g Y3JlYXRlUFFFeHBCdWZmZXIoKTsKIAotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQUxURVIg UFVCTElDQVRJT04gJXMgQUREIFRBQkxFIE9OTFkiLAorCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiQUxURVIgUFVCTElDQVRJT04gJXMgQUREICIsCiAJCQkJCSAgZm10SWQocHViaW5mby0+ZG9i ai5uYW1lKSk7CisKKwlpZiAoYmV4Y2VwdCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks ICJFWENFUFQgIik7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIlRBQkxFIE9OTFki KTsKKwlkZXNjcmlwdGlvbiA9IChiZXhjZXB0KSA/ICJQVUJMSUNBVElPTiBFWENFUFQgVEFCTEUi IDogIlBVQkxJQ0FUSU9OIFRBQkxFIjsKKwogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiICVz IiwKIAkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsKIApAQCAtNDM1OSw3ICs0 Mzc2LDcgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGlj YXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gdGFnLAog CQkJCQkJCQkgIC5uYW1lc3BhY2UgPSB0YmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUs CiAJCQkJCQkJCSAgLm93bmVyID0gcHViaW5mby0+cm9sbmFtZSwKLQkJCQkJCQkJICAuZGVzY3Jp cHRpb24gPSAiUFVCTElDQVRJT04gVEFCTEUiLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9IGRl c2NyaXB0aW9uLAogCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QT1NUX0RBVEEsCiAJCQkJ CQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSkpOwogCkBAIC05OTM1LDcgKzk5NTIsMTAg QEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2Jq KQogCQkJZHVtcFB1YmxpY2F0aW9uKGZvdXQsIChjb25zdCBQdWJsaWNhdGlvbkluZm8gKikgZG9i aik7CiAJCQlicmVhazsKIAkJY2FzZSBET19QVUJMSUNBVElPTl9SRUw6Ci0JCQlkdW1wUHVibGlj YXRpb25UYWJsZShmb3V0LCAoY29uc3QgUHVibGljYXRpb25SZWxJbmZvICopIGRvYmopOworCQkJ ZHVtcFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBk b2JqLCBmYWxzZSk7CisJCQlicmVhazsKKwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVM OgorCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5m byAqKSBkb2JqLCB0cnVlKTsKIAkJCWJyZWFrOwogCQljYXNlIERPX1BVQkxJQ0FUSU9OX1RBQkxF X0lOX1NDSEVNQToKIAkJCWR1bXBQdWJsaWNhdGlvbk5hbWVzcGFjZShmb3V0LApAQCAtMTc4Njgs NiArMTc4ODgsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRv YmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fUE9MSUNZOgogCQkJY2FzZSBET19QVUJMSUNB VElPTjoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgorCQkJY2FzZSBET19QVUJMSUNBVElP Tl9FWENFUFRfUkVMOgogCQkJY2FzZSBET19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUE6CiAJ CQljYXNlIERPX1NVQlNDUklQVElPTjoKIAkJCQkvKiBQb3N0LWRhdGEgb2JqZWN0czogbXVzdCBj b21lIGFmdGVyIHRoZSBwb3N0LWRhdGEgYm91bmRhcnkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDFkMjFj MjkwNmYuLjA3YTUwZWNlNjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtODAsNiArODAsNyBAQCB0eXBlZGVm IGVudW0KIAlET19SRUZSRVNIX01BVFZJRVcsCiAJRE9fUE9MSUNZLAogCURPX1BVQkxJQ0FUSU9O LAorCURPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJRE9fUFVCTElDQVRJT05fUkVMLAogCURP X1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlET19TVUJTQ1JJUFRJT04KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wX3NvcnQuYwppbmRleCA1ZGUzMjQxZWI0Li5hMTE2ZjRkYTk3IDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBf c29ydC5jCkBAIC05MCw2ICs5MCw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBS SU9fRktfQ09OU1RSQUlOVCwKIAlQUklPX1BPTElDWSwKIAlQUklPX1BVQkxJQ0FUSU9OLAorCVBS SU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1JFTCwKIAlQUklP X1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlQUklPX1NVQlNDUklQVElPTiwKQEAgLTE0 NCw2ICsxNDUsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQog CVBSSU9fUkVGUkVTSF9NQVRWSUVXLAkJLyogRE9fUkVGUkVTSF9NQVRWSUVXICovCiAJUFJJT19Q T0xJQ1ksCQkJCS8qIERPX1BPTElDWSAqLwogCVBSSU9fUFVCTElDQVRJT04sCQkJLyogRE9fUFVC TElDQVRJT04gKi8KKwlQUklPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCS8qIERPX1BVQkxJQ0FU SU9OX0VYQ0VQVF9SRUwgKi8KIAlQUklPX1BVQkxJQ0FUSU9OX1JFTCwJCS8qIERPX1BVQkxJQ0FU SU9OX1JFTCAqLwogCVBSSU9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAkvKiBET19QVUJM SUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEgKi8KIAlQUklPX1NVQlNDUklQVElPTgkJCS8qIERPX1NV QlNDUklQVElPTiAqLwpAQCAtMTQ4OCw2ICsxNDkwLDExIEBAIGRlc2NyaWJlRHVtcGFibGVPYmpl Y3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJQ VUJMSUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmotPmR1bXBJZCwgb2Jq LT5jYXRJZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9S RUw6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiUFVCTElDQVRJT04gRVhDRVBU IFRBQkxFIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9p ZCk7CisJCQlyZXR1cm47CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BOgog CQkJc25wcmludGYoYnVmLCBidWZzaXplLAogCQkJCQkgIlBVQkxJQ0FUSU9OIFRBQkxFUyBJTiBT Q0hFTUEgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCAxZWNm ZDdhZTIzLi4xODM3YzE4NzhkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMjQ1NCw2 ICsyNDU0LDE1IEBAIG15ICV0ZXN0cyA9ICgKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rp b25fcG9zdF9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVBVEUgUFVCTElDQVRJT04gcHViNScg PT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFBV QkxJQ0FUSU9OIHB1YjUgRk9SIEFMTCBUQUJMRVM7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxR Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjUgRk9SIEFMTCBUQUJMRVMgV0lUSCAocHVibGlzaCA9ICdp bnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkveG0sCisJCWxpa2UgPT4g eyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ1JFQVRF IFNVQlNDUklQVElPTiBzdWIxJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJY3JlYXRl X3NxbCAgID0+ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEKQEAgLTI1NTgsNiArMjU2NywyMCBA QCBteSAldGVzdHMgPSAoCiAJCXVubGlrZSA9PiB7IGV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9 PiAxLCB9LAogCX0sCiAKKwknQUxURVIgUFVCTElDQVRJT04gcHViNSBBREQgRVhDRVBUIFRBQkxF IHRlc3RfdGFibGUnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUyLAorCQljcmVhdGVfc3FsID0+ CisJCSAgJ0FMVEVSIFBVQkxJQ0FUSU9OIHB1YjUgQUREIEVYQ0VQVCBUQUJMRSBkdW1wX3Rlc3Qu dGVzdF90YWJsZTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRFUiBQVUJMSUNBVElPTiBw dWI1IEFERCBFWENFUFQgVEFCTEUgT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZTtcRQorCQkJL3ht LAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAor CQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlleGNs dWRlX3Rlc3RfdGFibGUgICAgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBTQ0hFTUEg cHVibGljJyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eQ1JFQVRFIFNDSEVNQSBwdWJsaWM7L20sCiAK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKaW5kZXggNDM2OWYyMjM1Yi4uODlkYjcwODcxMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTI5NTIsMTUg KzI5NTIsMjAgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFt ZSwKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKIAkJCQkJ CQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0g cHIucHJwdWJpZFxuIgogCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9O IGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVz J1xuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJyBBTkQgcHIucHJleGNlcHQg PSAnZidcbiIKIAkJCQkJCQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVc biIKIAkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJ CQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKIAkJCQkJCQkJICAiV0hF UkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFi bGUoJyVzJylcbiIKKwkJCQkJCQkJICAiCQlBTkQgTk9UIEVYSVNUUyAoU0VMRUNUIDFcbiIKKwkJ CQkJCQkJICAiCQkJCQkJCUZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIK KwkJCQkJCQkJICAiCQkJCQkJCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKKwkJCQkJ CQkJICAiCSAgCSAJCQkJCQlPTiBwci5wcnJlbGlkID0gcGMub2lkXG4iCisJCQkJCQkJCSAgIgkJ CQkJCQlXSEVSRSBwci5wcnJlbGlkID0gJyVzJyBBTkQgcHIucHJwdWJpZCA9IHAub2lkKVxuIgog CQkJCQkJCQkgICJPUkRFUiBCWSAxOyIsCi0JCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkKTsK KwkJCQkJCQkJICBvaWQsIG9pZCwgb2lkLCBvaWQsIG9pZCk7CiAJCQl9CiAJCQllbHNlCiAJCQl7 CkBAIC02MzAzLDYgKzYzMDgsNyBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpw YXR0ZXJuKQogCQkJCQkJCSAgIldIRVJFIGMucmVsbmFtZXNwYWNlID0gbi5vaWRcbiIKIAkJCQkJ CQkgICIgIEFORCBjLm9pZCA9IHByLnBycmVsaWRcbiIKIAkJCQkJCQkgICIgIEFORCBwci5wcnB1 YmlkID0gJyVzJ1xuIgorCQkJCQkJCSAgIiAgQU5EIHByLnByZXhjZXB0ID0gJ2YnXG4iCiAJCQkJ CQkJICAiT1JERVIgQlkgMSwyIiwgcHViaWQpOwogCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0 aW9uRGVzYygmYnVmLCBfKCJUYWJsZXM6IiksIGZhbHNlLCAmY29udCkpCiAJCQkJZ290byBlcnJv cl9yZXR1cm47CkBAIC02MzIyLDYgKzYzMjgsMjEgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29u c3QgY2hhciAqcGF0dGVybikKIAkJCX0KIAkJfQogCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1 MDAwMCkKKwkJeworCQkJLyogR2V0IHRoZSBleGNlcHQgdGFibGVzIGZvciB0aGUgc3BlY2lmaWVk IHB1YmxpY2F0aW9uICovCisJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCSAgIlNF TEVDVCBjb25jYXQoYy5yZWxuYW1lc3BhY2U6OnJlZ25hbWVzcGFjZSwgJy4nLCBjLnJlbG5hbWUp XG4iCisJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIKKwkJCQkJCQkgICIg ICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5w cnJlbGlkXG4iCisJCQkJCQkJICAiV0hFUkUgcHIucHJwdWJpZCA9ICclcydcbiIKKwkJCQkJCQkg ICIgIEFORCBwci5wcmV4Y2VwdCA9ICd0J1xuIgorCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJp ZCk7CisJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsICJFeGNlcHQgdGFi bGVzOiIsCisJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQlnb3RvIGVycm9yX3JldHVybjsK KwkJfQorCiAJCXByaW50VGFibGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5s b2dmaWxlKTsKIAkJcHJpbnRUYWJsZUNsZWFudXAoJmNvbnQpOwogCmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5k ZXggNTg4YzA4NDFmZS4uNzg3MGUxNmFjZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTgyMiw4ICsx ODIyLDExIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGlu dCBlbmQpCiAJCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFN RSBUTyIsICJTRVQiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gQUREICovCiAJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIpKQor CQlDT01QTEVURV9XSVRIKCJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJFWENFUFQgVEFCTEUiLCAi VEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiQUREIiwgIkVYQ0VQVCIpKQogCQlDT01QTEVURV9XSVRIKCJBTEwgVEFCTEVTIElOIFND SEVNQSIsICJUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgfHwKKwkJCSBNYXRjaGVzKCJBTFRFUiIs ICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJFWENFUFQiLCAiVEFCTEUiKSB8 fAogCQkJIChIZWFkTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFE RHxTRVQiLCAiVEFCTEUiKSAmJgogCQkJICBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkpCiAJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CkBAIC0x ODQ1LDEwICsxODQ4LDE0IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQg c3RhcnQsIGludCBlbmQpCiAJCUNPTVBMRVRFX1dJVEgoIiwiKTsKIAkvKiBBTFRFUiBQVUJMSUNB VElPTiA8bmFtZT4gRFJPUCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FU SU9OIiwgTWF0Y2hBbnksICJEUk9QIikpCi0JCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4g U0NIRU1BIiwgIlRBQkxFIik7CisJCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1B IiwgIkVYQ0VQVCBUQUJMRSIsICJUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJEUk9QIiwgIkVYQ0VQVCIpKQorCQlDT01QTEVURV9X SVRIKCJUQUJMRSIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBTRVQgKi8KIAllbHNl IGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiU0VUIikpCi0J CUNPTVBMRVRFX1dJVEgoIigiLCAiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJ Q09NUExFVEVfV0lUSCgiKCIsICJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJFWENFUFQgVEFCTEUi LCAiVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiU0VUIiwgIkVYQ0VQVCIpKQorCQlDT01QTEVURV9XSVRIKCJUQUJMRSIpOwogCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8RFJP UHxTRVQiLCAiQUxMIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiKSkKIAkJQ09NUExFVEVfV0lU SF9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX3NjaGVtYXMKIAkJCQkJCQkJICIgQU5EIG5z cG5hbWUgTk9UIExJS0UgRSdwZ1xcXFxfJSUnIiwKQEAgLTI5ODUsNyArMjk5Miw5IEBAIHBzcWxf Y29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBp ZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxM IikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxz ZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAi QUxMIiwgIlRBQkxFUyIpKQotCQlDT01QTEVURV9XSVRIKCJJTiBTQ0hFTUEiLCAiV0lUSCAoIik7 CisJCUNPTVBMRVRFX1dJVEgoIklOIFNDSEVNQSIsICJXSVRIICgiLCAiRVhDRVBUIFRBQkxFIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJG T1IiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEUi KTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwg IkZPUiIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCiAJ CUNPTVBMRVRFX1dJVEgoIldIRVJFICgiLCAiV0lUSCAoIik7CiAJLyogQ29tcGxldGUgIkNSRUFU RSBQVUJMSUNBVElPTiA8bmFtZT4gRk9SIFRBQkxFIiB3aXRoICI8dGFibGU+LCAuLi4iICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggMjliMTg1NjY2NS4uZWVlZTk2ZjQy ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApAQCAtMTA4LDExICsxMDgsMTIg QEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25SZWxJbmZvCiAJUmVsYXRpb24JcmVsYXRpb247 CiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CiAJTGlzdAkgICAqY29sdW1uczsKKwlib29sCQlleGNl cHQ7CiB9IFB1YmxpY2F0aW9uUmVsSW5mbzsKIAogZXh0ZXJuIFB1YmxpY2F0aW9uICpHZXRQdWJs aWNhdGlvbihPaWQgcHViaWQpOwogZXh0ZXJuIFB1YmxpY2F0aW9uICpHZXRQdWJsaWNhdGlvbkJ5 TmFtZShjb25zdCBjaGFyICpwdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwotZXh0ZXJuIExpc3Qg KkdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCk7CitleHRlcm4gTGlzdCAqR2V0UmVs YXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGJleGNlcHQpOwogCiAvKi0tLS0tLS0t LQogICogRXhwZWN0ZWQgdmFsdWVzIGZvciBwdWJfcGFydG9wdCBwYXJhbWV0ZXIgb2YgR2V0UmVs YXRpb25QdWJsaWNhdGlvbnMoKSwKQEAgLTEzMiw3ICsxMzMsNyBAQCB0eXBlZGVmIGVudW0gUHVi bGljYXRpb25QYXJ0T3B0CiAKIGV4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhP aWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCk7CiBleHRlcm4gTGlzdCAq R2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpOwotZXh0ZXJuIExpc3QgKkdldEFsbFRhYmxl c1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCk7CitleHRlcm4gTGlzdCAqR2V0 QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBib29sIHB1YnZpYXJvb3Qp OwogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uU2NoZW1hcyhPaWQgcHViaWQpOwogZXh0ZXJu IExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9ucyhPaWQgc2NoZW1haWQpOwogZXh0ZXJuIExpc3Qg KkdldFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBzY2hlbWFpZCwKQEAgLTE0Myw3ICsx NDQsNyBAQCBleHRlcm4gTGlzdCAqR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3Qg KnJlc3VsdCwKIAkJCQkJCQkJCQkJUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAogCQkJ CQkJCQkJCQlPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlHZXRUb3BNb3N0QW5jZXN0b3JJblB1Ymxp Y2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKLQkJCQkJCQkJCQkJaW50ICphbmNl c3Rvcl9sZXZlbCk7CisJCQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwsIGJvb2wgcHViYWxs dGFibGVzKTsKIAogZXh0ZXJuIGJvb2wgaXNfcHVibGlzaGFibGVfcmVsYXRpb24oUmVsYXRpb24g cmVsKTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQgcHViaWQpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKaW5kZXggNGZlYjU4MTg5OS4uMmVi MWZiZWFiZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9y ZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCkBAIC0z MSw2ICszMSw3IEBAIENBVEFMT0cocGdfcHVibGljYXRpb25fcmVsLDYxMDYsUHVibGljYXRpb25S ZWxSZWxhdGlvbklkKQogCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KIAlPaWQJCQlwcnB1YmlkIEJL SV9MT09LVVAocGdfcHVibGljYXRpb24pOyAvKiBPaWQgb2YgdGhlIHB1YmxpY2F0aW9uICovCiAJ T2lkCQkJcHJyZWxpZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsJLyogT2lkIG9mIHRoZSByZWxhdGlv biAqLworCWJvb2wJCXByZXhjZXB0IEJLSV9ERUZBVUxUKGYpOwkvKiBleGNlcHQgdGhlIHJlbGF0 aW9uICovCiAKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVs ZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBwcnF1YWw7CQkvKiBxdWFsaWZpY2F0aW9u cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAppbmRleCBhZTg3Y2FmMDg5 Li5hNTE1Y2RiODAyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlv bmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaApAQCAt MzIsOCArMzIsOCBAQCBleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlclB1YmxpY2F0aW9uT3duZXIo Y29uc3QgY2hhciAqbmFtZSwgT2lkIG5ld093bmVySWQpOwogZXh0ZXJuIHZvaWQgQWx0ZXJQdWJs aWNhdGlvbk93bmVyX29pZChPaWQgcHViaWQsIE9pZCBuZXdPd25lcklkKTsKIGV4dGVybiB2b2lk IEludmFsaWRhdGVQdWJsaWNhdGlvblJlbHMoTGlzdCAqcmVsaWRzKTsKIGV4dGVybiBib29sIHB1 Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9u LAotCQkJCQkJCQkJIExpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290KTsKKwkJCQkJCQkJ CQkgICBMaXN0ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCwgYm9vbCBhbGx0YWJsZXMpOwog ZXh0ZXJuIGJvb2wgcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1Ymlk LCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCSBMaXN0ICphbmNlc3RvcnMsIGJvb2wgcHVi dmlhcm9vdCk7CisJCQkJCQkJCQkJCQlMaXN0ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCwg Ym9vbCBhbGx0YWJsZXMpOwogCiAjZW5kaWYJCQkJCQkJLyogUFVCTElDQVRJT05DTURTX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBkYTAyNjU4YzgxLi4zMDhkM2MwN2E4IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCkBAIC00MDAzLDYgKzQwMDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJs aWNhdGlvblRhYmxlCiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBiZSBw dWJsaXNoZWQgKi8KIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8K IAlMaXN0CSAgICpjb2x1bW5zOwkJLyogTGlzdCBvZiBjb2x1bW5zIGluIGEgcHVibGljYXRpb24g dGFibGUgKi8KKwlib29sCQlleGNlcHQ7CQkJLyogZXhjZXB0IHJlbGF0aW9uICovCiB9IFB1Ymxp Y2F0aW9uVGFibGU7CiAKIC8qCkBAIC00MDIzLDYgKzQwMjQsNyBAQCB0eXBlZGVmIHN0cnVjdCBQ dWJsaWNhdGlvbk9ialNwZWMKIAlQdWJsaWNhdGlvbk9ialNwZWNUeXBlIHB1Ym9ianR5cGU7CS8q IHR5cGUgb2YgdGhpcyBwdWJsaWNhdGlvbiBvYmplY3QgKi8KIAljaGFyCSAgICpuYW1lOwogCVB1 YmxpY2F0aW9uVGFibGUgKnB1YnRhYmxlOworCWJvb2wJCWV4Y2VwdDsKIAlpbnQJCQlsb2NhdGlv bjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFB1YmxpY2F0aW9u T2JqU3BlYzsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNh dGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRl eCAzOThjMGYzOGY2Li41ZDIxMzMwOWU0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dApAQCAtMTE2LDYgKzExNiwzNSBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcnRhYmxlIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIFRhYmxlcyBm cm9tIHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0IgogCistLSBzaG91bGQgYmUgYWJsZSB0byBhZGQg ZXhjZXB0IHRhYmxlIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzIEFERCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90Ymwx OworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCBmICAgICAgIHwgZiAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRl c3RwdWJfdGJsMSIKKworLS0gc2hvdWxkIGJlIGFibGUgdG8gc2V0IGV4Y2VwdCB0YWJsZSB0byAn Rk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cmFsbHRhYmxlcyBTRVQgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMjsKK1xkUnArIHRlc3RwdWJf Zm9yYWxsdGFibGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX2ZvcmFsbHRhYmxlcworICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDIiCisKKy0t IHNob3VsZCBiZSBhYmxlIHRvIGRyb3AgZXhjZXB0IHRhYmxlIGZyb20gJ0ZPUiBBTEwgVEFCTEVT JyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgRFJP UCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwyOworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxs dGFibGVzCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgorKDEg cm93KQorCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0 OwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKQEAgLTE0MSw2ICsxNzAsMzAgQEAgQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgU0VUIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJf bm9wazsKIFRhYmxlczoKICAgICAicHViX3Rlc3QudGVzdHB1Yl9ub3BrIgogCistLSBmYWlsIC0g Y2FuJ3QgYWRkIGV4Y2VwdCB0YWJsZSB0byAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBBREQgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJs MTsKK0VSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWJfZm9ydGFibGUiIGlzIG5vdCBkZWZpbmVk IGFzIEZPUiBBTEwgVEFCTEVTCitERVRBSUw6ICBleGNlcHQgdGFibGUgY2Fubm90IGJlIGFkZGVk IHRvLCBkcm9wcGVkIGZyb20sIG9yIHNldCBvbiBOT04gQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMu CistLSBmYWlsIC0gY2FuJ3QgZHJvcCBleGNlcHQgdGFibGUgZnJvbSAnRk9SIFRBQkxFJyBwdWJs aWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBEUk9QIEVYQ0VQVCBU QUJMRSB0ZXN0cHViX3RibDE7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnRhYmxl IiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUworREVUQUlMOiAgZXhjZXB0IHRhYmxl IGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gTk9OIEFMTCBUQUJM RVMgcHVibGljYXRpb25zLgorLS0gZmFpbCAtIGNhbid0IHNldCBleGNlcHQgdGFibGUgdG8gJ0ZP UiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUg U0VUIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0 cHViX2ZvcnRhYmxlIiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUworREVUQUlMOiAg ZXhjZXB0IHRhYmxlIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24g Tk9OIEFMTCBUQUJMRVMgcHVibGljYXRpb25zLgorLS0gZmFpbCAtIGNhbid0IGFkZCBleGNlcHQg dGFibGUgdG8gc2NoZW1hIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cnNjaGVtYSBBREQgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsKK0VSUk9SOiAgcHVibGljYXRp b24gInRlc3RwdWJfZm9yc2NoZW1hIiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUwor REVUQUlMOiAgZXhjZXB0IHRhYmxlIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBv ciBzZXQgb24gTk9OIEFMTCBUQUJMRVMgcHVibGljYXRpb25zLgorLS0gZmFpbCAtIGNhbid0IGRy b3AgZXhjZXB0IHRhYmxlIGZyb20gc2NoZW1hIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcnNjaGVtYSBEUk9QIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7CitFUlJP UjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnNjaGVtYSIgaXMgbm90IGRlZmluZWQgYXMgRk9S IEFMTCBUQUJMRVMKK0RFVEFJTDogIGV4Y2VwdCB0YWJsZSBjYW5ub3QgYmUgYWRkZWQgdG8sIGRy b3BwZWQgZnJvbSwgb3Igc2V0IG9uIE5PTiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucy4KKy0tIGZh aWwgLSBjYW4ndCBzZXQgZXhjZXB0IHRhYmxlIHRvIHNjaGVtYSAgcHVibGljYXRpb24KK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIFNFVCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90 YmwxOworRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3JzY2hlbWEiIGlzIG5vdCBkZWZp bmVkIGFzIEZPUiBBTEwgVEFCTEVTCitERVRBSUw6ICBleGNlcHQgdGFibGUgY2Fubm90IGJlIGFk ZGVkIHRvLCBkcm9wcGVkIGZyb20sIG9yIHNldCBvbiBOT04gQUxMIFRBQkxFUyBwdWJsaWNhdGlv bnMuCiBTRUxFQ1QgcHVibmFtZSwgcHViYWxsdGFibGVzIEZST00gcGdfcHVibGljYXRpb24gV0hF UkUgcHVibmFtZSA9ICd0ZXN0cHViX2ZvcmFsbHRhYmxlcyc7CiAgICAgICAgcHVibmFtZSAgICAg ICAgfCBwdWJhbGx0YWJsZXMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t CkBAIC0xNjUsOCArMjE4LDM0IEBAIFB1YmxpY2F0aW9uczoKICByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAg ICAgIHwgZgogKDEgcm93KQogCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFM TCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsKK1JFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFi bGUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQg dGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCistLSBmYWlsIC0gY2FuJ3Qgc3Bl Y2lmeSBleGNlcHQgdGFibGUgYWxvbmcgd2l0aCB0YWJsZSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGVfZXhjZXB0dGFibGUgRk9SIFRBQkxFIHB1Yl90ZXN0 LnRlc3RwdWJfbm9waywgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsKK0VSUk9SOiAgRVhDRVBU IFRBQkxFIGNhbiBiZSBzcGVjaWZpZWQgb25seSB3aXRoIEFMTCBUQUJMRVMgb3B0aW9uCitMSU5F IDE6IC4uLmFibGVfZXhjZXB0dGFibGUgRk9SIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfbm9waywg RVhDRVBUIFRBQi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KKy0tIGZhaWwgLSBjYW4ndCBzcGVjaWZ5IGV4Y2VwdCB0YWJs ZSBhbG9uZyB3aXRoIHNjaGVtYSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZm9ydGFibGVfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0 LCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxOworRVJST1I6ICBFWENFUFQgVEFCTEUgY2FuIGJl IHNwZWNpZmllZCBvbmx5IHdpdGggQUxMIFRBQkxFUyBvcHRpb24KK0xJTkUgMTogLi4ubGVfZXhj ZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBFWENFUFQgVEFCLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorLS0gZmFpbCAtIGNhbid0IHNwZWNpZnkgb25seSBleGNlcHQgdGFibGUgd2hpbGUg Y3JlYXRlIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZV9l eGNlcHR0YWJsZSBGT1IgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsKK0VSUk9SOiAgRVhDRVBU IFRBQkxFIGNhbiBiZSBzcGVjaWZpZWQgb25seSB3aXRoIEFMTCBUQUJMRVMgb3B0aW9uCitMSU5F IDE6IC4uLkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZV9leGNlcHR0YWJsZSBGT1Ig RVhDRVBUIFRBQi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIERST1AgVEFCTEUgdGVzdHB1Yl90YmwyOwotRFJPUCBQVUJM SUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9m b3JzY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHVi X2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0 dGFibGU7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUg dGVzdHB1Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGll bnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bAppbmRleCA5ZWI4NmZkNTRmLi5hNmU2NTQzZDcxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsCkBAIC03MSw2ICs3MSwxNiBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cnRhYmxlIERST1AgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2ZvcnRhYmxlIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsK IFxkUnArIHRlc3RwdWJfZm9ydGFibGUKIAorLS0gc2hvdWxkIGJlIGFibGUgdG8gYWRkIGV4Y2Vw dCB0YWJsZSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBBREQgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsKK1xk UnArIHRlc3RwdWJfZm9yYWxsdGFibGVzCistLSBzaG91bGQgYmUgYWJsZSB0byBzZXQgZXhjZXB0 IHRhYmxlIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9yYWxsdGFibGVzIFNFVCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwyOworXGRS cCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKKy0tIHNob3VsZCBiZSBhYmxlIHRvIGRyb3AgZXhjZXB0 IHRhYmxlIGZyb20gJ0ZPUiBBTEwgVEFCTEVTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgRFJPUCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwyOwor XGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKKwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAn RVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIEZPUiBBTEwgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CkBAIC04 NSwxMiArOTUsNDAgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgRFJPUCBU QUJMRSBwdWJfdGVzdC50ZXN0cHViX25vcGs7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cnNjaGVtYSBTRVQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9ub3BrOwogXGRScCsgdGVzdHB1Yl9m b3JzY2hlbWEKIAorLS0gZmFpbCAtIGNhbid0IGFkZCBleGNlcHQgdGFibGUgdG8gJ0ZPUiBUQUJM RScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgQUREIEVY Q0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7CistLSBmYWlsIC0gY2FuJ3QgZHJvcCBleGNlcHQgdGFi bGUgZnJvbSAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3J0YWJsZSBEUk9QIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7CistLSBmYWlsIC0gY2Fu J3Qgc2V0IGV4Y2VwdCB0YWJsZSB0byAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBTRVQgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsK KworLS0gZmFpbCAtIGNhbid0IGFkZCBleGNlcHQgdGFibGUgdG8gc2NoZW1hIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBBREQgRVhDRVBUIFRBQkxFIHRl c3RwdWJfdGJsMTsKKy0tIGZhaWwgLSBjYW4ndCBkcm9wIGV4Y2VwdCB0YWJsZSBmcm9tIHNjaGVt YSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgRFJPUCBF WENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxOworLS0gZmFpbCAtIGNhbid0IHNldCBleGNlcHQgdGFi bGUgdG8gc2NoZW1hICBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3Jz Y2hlbWEgU0VUIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7CiBTRUxFQ1QgcHVibmFtZSwgcHVi YWxsdGFibGVzIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2Zv cmFsbHRhYmxlcyc7CiBcZCsgdGVzdHB1Yl90YmwyCiBcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxl cwogCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBU IFRBQkxFIHRlc3RwdWJfdGJsMTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CisKK1xkUnAr IHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisKKy0tIGZhaWwgLSBjYW4ndCBzcGVj aWZ5IGV4Y2VwdCB0YWJsZSBhbG9uZyB3aXRoIHRhYmxlIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZV9leGNlcHR0YWJsZSBGT1IgVEFCTEUgcHViX3Rlc3Qu dGVzdHB1Yl9ub3BrLCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxOworCistLSBmYWlsIC0gY2Fu J3Qgc3BlY2lmeSBleGNlcHQgdGFibGUgYWxvbmcgd2l0aCBzY2hlbWEgcHVibGljYXRpb24KK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlX2V4Y2VwdHRhYmxlIEZPUiBBTEwgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCwgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsKKworLS0g ZmFpbCAtIGNhbid0IHNwZWNpZnkgb25seSBleGNlcHQgdGFibGUgd2hpbGUgY3JlYXRlIHB1Ymxp Y2F0aW9uCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZV9leGNlcHR0YWJsZSBG T1IgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7 Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxl LCB0ZXN0cHViX2ZvcnNjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJs ZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRh Ymxlc19leGNlcHR0YWJsZTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQpOwog Q1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJfdGJs Myk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzNfcmVwX2NoYW5nZXNf ZXhjZXB0X3RhYmxlLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMzX3JlcF9jaGFuZ2Vz X2V4Y2VwdF90YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4x ZjYxNDFjZWNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMz X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApAQCAtMCwwICsxLDk3IEBACisKKyMgQ29weXJp Z2h0IChjKSAyMDIxLTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisK KyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgZXhjZXB0IHRhYmxlIHB1YmxpY2F0aW9u cwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVz dGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKKyMg SW5pdGlhbGl6ZSBwdWJsaXNoZXIgbm9kZQorbXkgJG5vZGVfcHVibGlzaGVyID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsKKyRub2RlX3B1Ymxpc2hlci0+aW5p dChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0 OworCisjIENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUKK215ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0 Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmliZXInKTsKKyRub2RlX3N1YnNjcmli ZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfc3Vic2NyaWJl ci0+c3RhcnQ7CisKKyMgVGVzdCByZXBsaWNhdGlvbiB3aXRoIHB1YmxpY2F0aW9ucyBjcmVhdGVk IHVzaW5nIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRQorIyBvcHRpb24uCisjIENyZWF0ZSBz Y2hlbWFzIGFuZCB0YWJsZXMgb24gcHVibGlzaGVyCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiQ1JFQVRFIFNDSEVNQSBzY2gxIik7Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgc2NoMS50YWIxIEFTIFNFTEVDVCBn ZW5lcmF0ZV9zZXJpZXMoMSwxMCkgQVMgYSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxKGEgaW50KSIpOworCisjIENy ZWF0ZSBzY2hlbWFzIGFuZCB0YWJsZXMgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBp bnQpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBU QUJMRSBwdWJsaWMudGFiMSAoYSBpbnQpIik7CisKKyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlv bgorbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBk Ym5hbWU9cG9zdGdyZXMnOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIEZPUiBBTEwgVEFCTEVTIEVYQ0VQ VCBUQUJMRSBzY2gxLnRhYjEiKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9zY2hlbWEgQ09OTkVDVElPTiAn JHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSIKKyk7CisKKyRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9zY2hlbWEnKTsKKworIyBB bHNvIHdhaXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2gKK215ICRzeW5jZWRfcXVl cnkgPQorICAiU0VMRUNUIGNvdW50KDEpID0gMCBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwgV0hF UkUgc3JzdWJzdGF0ZSBOT1QgSU4gKCdyJywgJ3MnKTsiOworJG5vZGVfc3Vic2NyaWJlci0+cG9s bF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLCAkc3luY2VkX3F1ZXJ5KQorICBvciBkaWUgIlRpbWVk IG91dCB3aGlsZSB3YWl0aW5nIGZvciBzdWJzY3JpYmVyIHRvIHN5bmNocm9uaXplIGRhdGEiOwor CisjIENoZWNrIHRoZSB0YWJsZSBkYXRhIGRvZXMgbm90IHN5bmMgZm9yIGV4Y2x1ZGVkIHRhYmxl CitteSAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRy ZXN1bHQsIHFxKDB8fCksICdjaGVjayB0YWJsZXN5bmMgaXMgZXhjbHVkZWQgZm9yIGV4Y2x1ZGVk IHRhYmxlcycpOworCisjIEluc2VydCBzb21lIGRhdGEgaW50byBmZXcgdGFibGVzIGFuZCB2ZXJp ZnkgdGhhdCBpbnNlcnRlZCBkYXRhIGlzIG5vdAorIyByZXBsaWNhdGVkCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBzY2gxLnRhYjEgVkFMVUVT KGdlbmVyYXRlX3NlcmllcygxMSwyMCkpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3Jf Y2F0Y2h1cCgndGFwX3N1Yl9zY2hlbWEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEp IEZST00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sgcmVwbGljYXRl ZCBpbnNlcnRzIG9uIHN1YnNjcmliZXInKTsKKworIyBBbHRlciBwdWJsaWNhdGlvbiB0byBleGNs dWRlIGRhdGEgY2hhbmdlcyBpbiBwdWJsaWMudGFiMSBhbmQgdmVyaWZ5IHRoYXQKKyMgc3Vic2Ny aWJlciBkb2VzIG5vdCBnZXQgdGhlIG5ldyB0YWJsZSBkYXRhLgorJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKyAgICAgICAgIkFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJf c2NoZW1hIGFkZCBFWENFUFQgVEFCTEUgcHVibGljLnRhYjEiKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgICAgICJJTlNFUlQgSU5UTyBwdWJsaWMudGFiMSBW QUxVRVMoZ2VuZXJhdGVfc2VyaWVzKDEsMTApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRf Zm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1h eChhKSBGUk9NIHB1YmxpYy50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sgcm93 cyBvbiBzdWJzY3JpYmVyIGNhdGNodXAnKTsKKworIyBBbHRlciBwdWJsaWNhdGlvbiB0byBkcm9w IGV4Y2VwdCB0YWJsZSBwdWJsaWMudGFiMSBhbmQgdmVyaWZ5IHRoYXQgc3Vic2NyaWJlcgorIyBn ZXRzIHRoZSBuZXcgdGFibGUgZGF0YS4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisgICAgICAgICJBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBkcm9wIEVY Q0VQVCBUQUJMRSBwdWJsaWMudGFiMSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKyAgICAgICAgIklOU0VSVCBJTlRPIHB1YmxpYy50YWIxIFZBTFVFUyhnZW5lcmF0 ZV9zZXJpZXMoMSwxMCkpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgn dGFwX3N1Yl9zY2hlbWEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorICAgICAgICAiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBG Uk9NIHB1YmxpYy50YWIxIik7CitpcygkcmVzdWx0LCBxcSgxMHwxfDEwKSwgJ2NoZWNrIHJvd3Mg b24gc3Vic2NyaWJlciBjYXRjaHVwJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3Qn KTsKKyRub2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0g CjIuMzIuMAoK --0000000000000575d205dd2185c1--