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.96) (envelope-from ) id 1wXG9G-0039v8-3B for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Jun 2026 10:27:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wXG9F-00AbWq-2s for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Jun 2026 10:27:01 +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.96) (envelope-from ) id 1wXG9F-00AbWi-1I for pgsql-hackers@lists.postgresql.org; Wed, 10 Jun 2026 10:27:01 +0000 Received: from mail-lj1-x230.google.com ([2a00:1450:4864:20::230]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wXG9C-00000002JRJ-3hHc for pgsql-hackers@lists.postgresql.org; Wed, 10 Jun 2026 10:27:00 +0000 Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-3967725a77fso64979021fa.1 for ; Wed, 10 Jun 2026 03:26:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781087216; cv=none; d=google.com; s=arc-20240605; b=PG7IrdoWBRGg4wqjd1ue4SWOyzM8SszZr/FfDcvsjsej+Q96krUymnyEaQkOSMPXEi PR0+2WPuKqhp8UAL9boO3nVYIYxdfkb7bkq6G2uWC5sP2kf9d6qRoxyxAoOTI0leUZH3 TQWGt3s3yBUv7NT63aI0E6lQHDL19U7Mvd+/bw4W+jO3YA8xLJEKm0NpsjSmoDZBk1uw 6Q3w0olItSzzNRznt8wnxNJG9NOAykLQamNH1+0VCGLHdv2wmmjlnZotv+ns8FdLyoSE aeP7E7ktT1ZsWobMi9HHQ7CmchQNnhp1+2VstZ8QsATS/egakW8CH1G3nMeOJgoh6Z3K YuQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=4/2VWSkr871gHq0OylEZzG8tCYPHxBzDY9Y8ZaLwGq8=; fh=TP2GSt3bZ81aPqdQXr2zKKtrjceDKt7HITGRcKd5nUk=; b=HwjpQY7au6SYL4LareXdZhXioJUYGtrtKJspSR1UEI4opAONmo72GOeLqnM7Q5Z3Pt Onbigwc8alwrpgL7f+iQB+fsIo25E/a6lkwxBXRXspzLjUopmhpBEnTxH5hvpIqBgJR3 DDJXCV8AOrM7Zl+vERgDrF07Roz5Kuc7OHdklXJWYeLf8X3E4unRQh9y+NVVLIw1+03v p6p3aFlaGPjRaMV1wYXAvtwp6NT3Zb2Hykd39eAQ6CNj2faA9y6y3HL3BR1Vgk2mByjA DoaDixXoE9UDOvm2/t/fFM3q7xDRyNr9+Ay1/i+Wi8GfyMjls1YuyMHt0yAzGHr5XRXQ UJeg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781087216; x=1781692016; darn=lists.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=4/2VWSkr871gHq0OylEZzG8tCYPHxBzDY9Y8ZaLwGq8=; b=FuOdJVuOJTkdGhR+/cKlytr349NtxRUDj06vOy+275ZgEC5YdFeuZs6ABu8decyAQU XkdHfSHCBguM0pYK85zH+e+YSzIUprDMcHyV/uS1dIQHVP+yNiTJkG/gpLijyCVv/rBd voMWI40M57pAzeojcg60MhffabWLqBDtYIBdXkRdVGpTiZ+9/AGt/y3JdIkW/8JFC9v9 MhfYzsl/apgDzTQ7ZQeOPWlQdxzarPteQUXcf0X+runMmLW3hExr7tPyOFPJ91mV7tC8 /1wFj5bEkVgxA3wMUzBurxUfzZkELsKtu00OlSQdLLTI5mNQlFOjFhURTby+IxVmbEpm YuHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781087216; x=1781692016; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4/2VWSkr871gHq0OylEZzG8tCYPHxBzDY9Y8ZaLwGq8=; b=nD5fOFKK1cNU3OASB96pSZK8g5Go7I/m8/dK5E+BmNhyZZj/dsigsZ8MWOvnYs2oXf jzyXpYoE/cZi+VZX4ycXkzsggjdeMt+rrYP/+2LcgL14jNEGT2YQa15+TT+8wc8EqK5F 36feWYGGgkiawQyoZByR/e11DfZZgFnmjNwJ0pY9//8DAsIhtBA+RrYGGmal0t7DY+to 3VKckyiiakKYwXrvcVg1TrRQhpe4juGrZ1/WjdkVHer74ZpRjyadS0LYnPJi2DgKCw96 isd3hKqVKx0hOnkahPeSfeX/7TzFuNED6+ozP0TcaZHOfnrcD1nKn867tc68LewQ06ze YpDg== X-Forwarded-Encrypted: i=1; AFNElJ9WJ2fGgbwOE6Qm5lHo54zj05yY78zXP9iEjY8xwn11Wz2bK1p4hhpeEh39vSH/kTbv2mHRd+Ww1EZLE6p6@lists.postgresql.org X-Gm-Message-State: AOJu0Yz5Yk6pYUASR6SG0hs0VP3O+vQOh1sMX348WAjS+xC5wGmRSzkD W0jK9d2celvjwkxZxWoztkUXl9Y2oof259lF/G5hObYazzVqvZ2AgO1a7Q8V0WJG40fPpVCX4DQ ZO1hehE8nicdeZ4YAA9adtskq8lpHQg== X-Gm-Gg: Acq92OHGkpokQ/MbNyoKCm56qLdNNqENisy26/ZHbXjqK4fX5AemUyo9XJ4un3rD9UU bIW5irXhDYGbv0PLQqeTBXts4H56/8dA3jA5QJC5Ah1dYpspg2rQxpebM/QJTG/Q3Q43L9yK3HZ h24wWe9mK8UHpSpIaNCMZ7vLlvd+wSV2PPQwlKr4CbwwPuk5H7KQ3AZJRR7IX2Q9w9c8dpHj9KW KcxheO0+t96Eot21zooXyea3ASI5Keb6ECnwr+t47DFko61ZBiny2gHR/I7dW66VljuTnD09KHJ POKVF2KbLEJg3YZVibQDQ72A1js7CguY3aSMGhDio0tdK/kYLA== X-Received: by 2002:a05:6512:3da7:b0:5aa:703e:ce64 with SMTP id 2adb3069b0e04-5acf6be8948mr2137079e87.14.1781087216040; Wed, 10 Jun 2026 03:26:56 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Wed, 10 Jun 2026 15:56:42 +0530 X-Gm-Features: AVVi8CdvWGZlnyBprGOsVp68BCYolMKZhOg5rHJApwt5R93ut8jL4sr7q8aIjfI Message-ID: Subject: Re: Support EXCEPT for TABLES IN SCHEMA publications To: Peter Smith Cc: Zsolt Parragi , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000d3a2240653e3aed1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d3a2240653e3aed1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 10, 2026 at 10:07=E2=80=AFAM Peter Smith wrote: > > Hi Nisha. > > Some review comments for v11-0001. > > (I had no new review comments for v11-0002, v11-0003) > Thanks for the review. I've addressed all the comments as suggested and attached the updated v12 patch set. -- Thanks, Nisha --000000000000d3a2240653e3aed1 Content-Type: application/octet-stream; name="v12-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Disposition: attachment; filename="v12-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq7xbd330 RnJvbSBhNDJhZjUwZTlkNWZiMGQ2NTcxNWI2NDAwNjM3Yzg2MjViZjI3NzExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBNb24sIDQgTWF5IDIwMjYgMTI6NDk6MjcgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MiAxLzNdIFN1cHBvcnQgRVhDRVBUIGNsYXVzZSBmb3Igc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9u cwoKRXh0ZW5kIHRhYmxlIGV4Y2x1c2lvbiBzdXBwb3J0IGluIHB1YmxpY2F0aW9ucyB0byBhbGxv dyBzcGVjaWZpYwp0YWJsZXMgdG8gYmUgZXhjbHVkZWQgZnJvbSBzY2hlbWEtbGV2ZWwgcHVibGlj YXRpb25zIHVzaW5nIGFuCkVYQ0VQVCBjbGF1c2UgaW4gQ1JFQVRFIFBVQkxJQ0FUSU9OLgoKU3Vw cG9ydGVkIHN5bnRheDoKQ1JFQVRFIFBVQkxJQ0FUSU9OIDxwdWI+IEZPUiBUQUJMRVMgSU4gU0NI RU1BIHMgRVhDRVBUIChUQUJMRSB0MSwuLi4pOwotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1 YmxpY2F0aW9uLnNnbWwgICAgfCAgMjkgKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jICAgICAgICB8IDE2MSArKysrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICB8IDEzNyArKysrKysrKysrKysrKystLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICB8ICAxMCArKwogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICB8ICA1NCArKysrKystCiBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIHwgIDMwICsrKy0KIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgfCAgMTggKysrCiBzcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgIHwgIDM1ICsrKystCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICAgIHwgICAzICstCiBzcmMvaW5j bHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICB8IDE0NCArKysrKysrKysrKysrKysrLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICB8ICA4OCArKysrKysrKysr LQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCAgICAgICB8IDEzMyArKysr KysrKysrKysrKystCiAxNSBmaWxlcyBjaGFuZ2VkLCA3OTEgaW5zZXJ0aW9ucygrKSwgNTcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24u c2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggOWU3ODY4 NDg3ZGUuLjE0MzNkMjY2MGZlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBs aWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwK QEAgLTExNyw3ICsxMTcsOCBAQAogICAgb3IgPGxpdGVyYWw+Rk9SIEFMTCBTRVFVRU5DRVM8L2xp dGVyYWw+LiBVbmxpa2UgdGFibGVzLCBzZXF1ZW5jZXMgY2FuIGJlCiAgICBzeW5jaHJvbml6ZWQg YXQgYW55IHRpbWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUKICAgIDx4cmVmIGxpbmtlbmQ9 ImxvZ2ljYWwtcmVwbGljYXRpb24tc2VxdWVuY2VzIi8+LiBXaGVuIGEgcHVibGljYXRpb24gaXMK LSAgIGNyZWF0ZWQgd2l0aCA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4sIGEgdGFi bGUgb3Igc2V0IG9mIHRhYmxlcyBjYW4KKyAgIGNyZWF0ZWQgd2l0aCA8bGl0ZXJhbD5GT1IgQUxM IFRBQkxFUzwvbGl0ZXJhbD4gb3IKKyAgIDxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9s aXRlcmFsPiwgYSB0YWJsZSBvciBzZXQgb2YgdGFibGVzIGNhbgogICAgYmUgZXhwbGljaXRseSBl eGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uIHVzaW5nIHRoZQogICAgPGxpbmsgbGlua2VuZD0ic3Fs LWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItZXhjZXB0LXRhYmxlIj48bGl0ZXJhbD5FWENF UFQ8L2xpdGVyYWw+PC9saW5rPgogICAgY2xhdXNlLgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1 YmxpY2F0aW9uLnNnbWwKaW5kZXggZjgyZDY0MGU2Y2EuLmQ1Yzg4ZjIwNmYwIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI4LDcgKzI4LDcgQEAgQ1JFQVRF IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4KIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1Ymxp Y2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAogICAgIFRB QkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVw bGFjZWFibGU+IFssIC4uLiBdCi0gICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hF TUEgfSBbLCAuLi4gXQorICAgIFRBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlc19pbl9zY2hlbWE8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQogCiA8cGhy YXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fYWxsX29i amVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAtMzksNiArMzksMTAg QEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4KIAogICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJs ZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXQogCis8 cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVzX2luX3NjaGVt YTwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0g WyBFWENFUFQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29i amVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQorCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IGlz OjwvcGhyYXNlPgogCiAgICAgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh YmxlX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdCkBAIC0xNDIsNiArMTQ2LDggQEAgQ1JF QVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT4KICAgICAgPHBhcmE+CiAgICAgICBNYXJrcyB0aGUgcHVibGljYXRpb24gYXMgb25l IHRoYXQgcmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFibGVzIGluCiAgICAgICB0aGUgc3Bl Y2lmaWVkIGxpc3Qgb2Ygc2NoZW1hcywgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBm dXR1cmUuCisgICAgICBUYWJsZXMgbGlzdGVkIGluIHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVy YWw+IGNsYXVzZSBmb3IgYSBnaXZlbiBzY2hlbWEKKyAgICAgIGFyZSBleGNsdWRlZCBmcm9tIHRo ZSBwdWJsaWNhdGlvbi4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgpAQCAtMTczLDcgKzE3 OSw3IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0 aW9uIGFzIG9uZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgogICAg ICAgdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4g VGFibGVzIGxpc3RlZCBpbgotICAgICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2Ug YXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLgorICAgICAgdGhlIDxsaXRlcmFsPkVY Q0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4K ICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTE5 OCw3ICsyMDQsMTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgog ICAgICAgVGhpcyBjbGF1c2Ugc3BlY2lmaWVzIGEgbGlzdCBvZiB0YWJsZXMgdG8gYmUgZXhjbHVk ZWQgZnJvbSB0aGUKLSAgICAgIHB1YmxpY2F0aW9uLgorICAgICAgcHVibGljYXRpb24uIEl0IGNh biBiZSB1c2VkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yCisgICAg ICA8bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4K KyAgICAgPHBhcmE+CisgICAgICBGb3IgPGxpdGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xp dGVyYWw+IHB1YmxpY2F0aW9ucywgdGhlCisgICAgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+ IGNsYXVzZSBpcyBzY2hlbWEtc2NvcGVkOiB0aGUgZXhjbHVzaW9uIGFwcGxpZXMKKyAgICAgIG9u bHkgd2l0aGluIHRoZSBzY2hlbWEgdG8gd2hpY2ggaXQgd2FzIGF0dGFjaGVkLiAgRm9yCisgICAg ICA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4gcHVibGljYXRpb25zLCB0aGUgZXhj bHVzaW9uIGFwcGxpZXMgdG8KKyAgICAgIHRoZSB0YWJsZSByZWdhcmRsZXNzIG9mIHRoZSBzY2hl bWEgaXQgaXMgaW4uCiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+CiAgICAgICBGb3IgaW5oZXJp dGVkIHRhYmxlcywgaWYgPGxpdGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkIGJlZm9y ZSB0aGUKQEAgLTUxNSw2ICs1MjksMTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25f cHVibGljYXRpb24gRk9SIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50cywgVEFCTEVTIEkKIENSRUFU RSBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBGT1IgVEFCTEVTIElOIFNDSEVNQSBtYXJr ZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBD cmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBmb3IgYWxsIHRo ZSB0YWJsZXMgcHJlc2VudCBpbgorICAgdGhlIHNjaGVtYSA8c3RydWN0bmFtZT5zYWxlczwvc3Ry dWN0bmFtZT4sIGV4Y2VwdAorICAgPHN0cnVjdG5hbWU+aW50ZXJuYWw8L3N0cnVjdG5hbWU+IGFu ZCA8c3RydWN0bmFtZT5kcmFmdHM8L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQ1JF QVRFIFBVQkxJQ0FUSU9OIHNhbGVzX2ZpbHRlcmVkIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNhbGVz IEVYQ0VQVCAoVEFCTEUgaW50ZXJuYWwsIGRyYWZ0cyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8 L3BhcmE+CisKICAgPHBhcmE+CiAgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hl cyBhbGwgY2hhbmdlcyBmb3IgdGFibGUgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAog ICAgYnV0IHJlcGxpY2F0ZXMgb25seSBjb2x1bW5zIDxzdHJ1Y3RuYW1lPnVzZXJfaWQ8L3N0cnVj dG5hbWU+IGFuZApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDVjNDU3ZDlh Y2E4Li40MDg5YjUwNWY4OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAt NDQ0LDEzICs0NDQsMTkgQEAgR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJl c3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAogICoKICAqIE5vdGUgdGhhdCB0 aGUgbGlzdCBvZiBhbmNlc3RvcnMgc2hvdWxkIGJlIG9yZGVyZWQgc3VjaCB0aGF0IHRoZSB0b3Bt b3N0CiAgKiBhbmNlc3RvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgorICoKKyAqIGV4Y2Vw dF9wdWJpZHMgaXMgYSBsaXN0IG9mIHB1YmxpY2F0aW9uIE9JRHMgd2hvc2Ugc2NoZW1hIG1lbWJl cnNoaXAKKyAqIHNob3VsZCBiZSBpZ25vcmVkIGZvciB0aGUgYW5jZXN0b3IgKGJlY2F1c2UgdGhl IGFuY2VzdG9yIGlzIGluIHRoZWlyCisgKiBFWENFUFQgY2xhdXNlKS4KICAqLwogT2lkCi1HZXRU b3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywg aW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lk IHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBM aXN0ICpleGNlcHRfcHViaWRzKQogewogCUxpc3RDZWxsICAgKmxjOwogCU9pZAkJCXRvcG1vc3Rf cmVsaWQgPSBJbnZhbGlkT2lkOwogCWludAkJCWxldmVsID0gMDsKKwlib29sCQljaGVja19zY2hl bWFzID0gIWxpc3RfbWVtYmVyX29pZChleGNlcHRfcHViaWRzLCBwdWJvaWQpOwogCiAJLyoKIAkg KiBGaW5kIHRoZSAidG9wbW9zdCIgYW5jZXN0b3IgdGhhdCBpcyBpbiB0aGlzIHB1YmxpY2F0aW9u LgpAQCAtNDcwLDcgKzQ3Niw3IEBAIEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lk IHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLCBpbnQgKmFuY2VzdG9yX2xldmVsCiAJCQlpZiAoYW5j ZXN0b3JfbGV2ZWwpCiAJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7CiAJCX0KLQkJZWxzZQor CQllbHNlIGlmIChjaGVja19zY2hlbWFzKQogCQl7CiAJCQlhc2NoZW1hUHViaWRzID0gR2V0U2No ZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKSk7CiAJCQlpZiAobGlz dF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJpZHMsIHB1Ym9pZCkpCkBAIC01NDUsMTggKzU1MSwzMCBA QCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8g KnByaSwKIAkgKiBkdXBsaWNhdGVzLCBpdCdzIGhlcmUganVzdCB0byBwcm92aWRlIG5pY2VyIGVy cm9yIG1lc3NhZ2UgaW4gY29tbW9uCiAJICogY2FzZS4gVGhlIHJlYWwgcHJvdGVjdGlvbiBpcyB0 aGUgdW5pcXVlIGtleSBvbiB0aGUgY2F0YWxvZy4KIAkgKi8KLQlpZiAoU2VhcmNoU3lzQ2FjaGVF eGlzdHMyKFBVQkxJQ0FUSU9OUkVMTUFQLCBPYmplY3RJZEdldERhdHVtKHJlbGlkKSwKLQkJCQkJ CQkgIE9iamVjdElkR2V0RGF0dW0ocHViaWQpKSkKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFVC TElDQVRJT05SRUxNQVAsIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAorCQkJCQkJICBPYmplY3RJ ZEdldERhdHVtKHB1YmlkKSk7CisKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCXsKKwkJ Ym9vbAkJaXNfZXhjZXB0ID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1 cCkpLT5wcmV4Y2VwdDsKKworCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAkJdGFibGVfY2xvc2Uo cmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAogCQlpZiAoaWZfbm90X2V4aXN0cykKIAkJCXJldHVy biBJbnZhbGlkT2JqZWN0QWRkcmVzczsKIAotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2Rl KEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCi0JCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wi IGlzIGFscmVhZHkgbWVtYmVyIG9mIHB1YmxpY2F0aW9uIFwiJXNcIiIsCi0JCQkJCQlSZWxhdGlv bkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpLCBwdWItPm5hbWUpKSk7CisJCWlmIChpc19leGNl cHQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9P QkpFQ1QpLAorCQkJCQkgZXJybXNnKCJ0YWJsZSBcIiVzXCIgY2Fubm90IGJlIGFkZGVkIGJlY2F1 c2UgaXQgaXMgZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbiBcIiVzXCIiLAorCQkJCQkJCVJlbGF0 aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKHRhcmdldHJlbCksCisJCQkJCQkJcHViLT5uYW1l KSkpOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RV UExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgYWxyZWFk eSBtZW1iZXIgb2YgcHVibGljYXRpb24gXCIlc1wiIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZSh0YXJnZXRyZWwpLCBwdWItPm5hbWUpKSk7CiAJfQogCiAJY2hlY2tfcHVibGljYXRp b25fYWRkX3JlbGF0aW9uKHByaSk7CkBAIC05ODIsMTIgKzEwMDAsMTMgQEAgR2V0SW5jbHVkZWRQ dWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFy dG9wdCkKICAqIEdldHMgbGlzdCBvZiB0YWJsZSBvaWRzIHRoYXQgd2VyZSBzcGVjaWZpZWQgaW4g dGhlIEVYQ0VQVCBjbGF1c2UgZm9yIGEKICAqIHB1YmxpY2F0aW9uLgogICoKLSAqIFRoaXMgc2hv dWxkIG9ubHkgYmUgdXNlZCBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMuCisgKiBUaGlzIGlz IHVzZWQgZm9yIEZPUiBBTEwgVEFCTEVTIGFuZCBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNh dGlvbnMsCisgKiBib3RoIG9mIHdoaWNoIHN1cHBvcnQgRVhDRVBUIFRBQkxFLgogICovCiBMaXN0 ICoKIEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBh cnRPcHQgcHViX3BhcnRvcHQpCiB7Ci0JQXNzZXJ0KEdldFB1YmxpY2F0aW9uKHB1YmlkKS0+YWxs dGFibGVzKTsKKwlBc3NlcnQoR2V0UHVibGljYXRpb24ocHViaWQpLT5hbGx0YWJsZXMgfHwgaXNf c2NoZW1hX3B1YmxpY2F0aW9uKHB1YmlkKSk7CiAKIAlyZXR1cm4gZ2V0X3B1YmxpY2F0aW9uX3Jl bGF0aW9ucyhwdWJpZCwgcHViX3BhcnRvcHQsIHRydWUpOwogfQpAQCAtMTA0OSwxNSArMTA2OCwx NSBAQCBHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgcmVsa2luZCwg Ym9vbCBwdWJ2aWFyb290KQogCVRhYmxlU2NhbkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJdHVwbGU7 CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwotCUxpc3QJICAgKmV4Y2VwdGxpc3QgPSBOSUw7CisJ TGlzdAkgICAqZXhjZXB0X3JlbGlkcyA9IE5JTDsKIAogCUFzc2VydCghKHJlbGtpbmQgPT0gUkVM S0lORF9TRVFVRU5DRSAmJiBwdWJ2aWFyb290KSk7CiAKIAkvKiBFWENFUFQgZmlsdGVyaW5nIGFw cGxpZXMgb25seSB0byByZWxhdGlvbnMsIG5vdCBzZXF1ZW5jZXMgKi8KIAlpZiAocmVsa2luZCA9 PSBSRUxLSU5EX1JFTEFUSU9OKQotCQlleGNlcHRsaXN0ID0gR2V0RXhjbHVkZWRQdWJsaWNhdGlv blRhYmxlcyhwdWJpZCwgcHVidmlhcm9vdCA/Ci0JCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BB UlRfUk9PVCA6Ci0JCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BBUlRfTEVBRik7CisJCWV4Y2Vw dF9yZWxpZHMgPSBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLCBwdWJ2aWFyb290 ID8KKwkJCQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9ST09UIDoKKwkJCQkJCQkJCQkJCQkg UFVCTElDQVRJT05fUEFSVF9MRUFGKTsKIAogCWNsYXNzUmVsID0gdGFibGVfb3BlbihSZWxhdGlv blJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CiAKQEAgLTEwNzUsNyArMTA5NCw3IEBAIEdl dEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgY2hhciByZWxraW5kLCBib29sIHB1 YnZpYXJvb3QpCiAKIAkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAm JgogCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSAmJgotCQkJIWxp c3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCByZWxpZCkpCisJCQkhbGlzdF9tZW1iZXJfb2lkKGV4 Y2VwdF9yZWxpZHMsIHJlbGlkKSkKIAkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVs aWQpOwogCX0KIApAQCAtMTA5Nyw3ICsxMTE2LDcgQEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlv bnMoT2lkIHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKIAogCQkJaWYgKGlz X3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgogCQkJCSFyZWxGb3JtLT5yZWxp c3BhcnRpdGlvbiAmJgotCQkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0bGlzdCwgcmVsaWQpKQor CQkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0X3JlbGlkcywgcmVsaWQpKQogCQkJCXJlc3VsdCA9 IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwogCQl9CiAKQEAgLTEyMzIsMjIgKzEyNTEsNjcg QEAgR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLCBQdWJsaWNhdGlv blBhcnRPcHQgcHViX3BhcnRvcHQpCiAKIC8qCiAgKiBHZXRzIHRoZSBsaXN0IG9mIGFsbCByZWxh dGlvbnMgcHVibGlzaGVkIGJ5IEZPUiBUQUJMRVMgSU4gU0NIRU1BCi0gKiBwdWJsaWNhdGlvbi4K KyAqIHB1YmxpY2F0aW9uLCBleGNsdWRpbmcgYW55IHRhYmxlcyBsaXN0ZWQgaW4gdGhlIEVYQ0VQ VCBjbGF1c2UuCiAgKi8KIExpc3QgKgogR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMo T2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCiB7CiAJTGlzdAkgICAq cmVzdWx0ID0gTklMOwogCUxpc3QJICAgKnB1YnNjaGVtYWxpc3QgPSBHZXRQdWJsaWNhdGlvblNj aGVtYXMocHViaWQpOworCUxpc3QJICAgKmV4Y2VwdF9yZWxpZHMgPSBOSUw7CiAJTGlzdENlbGwg ICAqY2VsbDsKIAorCS8qIGdldCB0aGUgbGlzdCBvZiB0YWJsZXMgZXhjbHVkZWQgdmlhIEVYQ0VQ VCBUQUJMRSBmb3IgdGhpcyBwdWJsaWNhdGlvbiAqLworCWlmIChwdWJzY2hlbWFsaXN0ICE9IE5J TCkKKwkJZXhjZXB0X3JlbGlkcyA9IEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMocHViaWQs IHB1Yl9wYXJ0b3B0KTsKKwogCWZvcmVhY2goY2VsbCwgcHVic2NoZW1hbGlzdCkKIAl7CiAJCU9p ZAkJCXNjaGVtYWlkID0gbGZpcnN0X29pZChjZWxsKTsKIAkJTGlzdAkgICAqc2NoZW1hUmVscyA9 IE5JTDsKIAogCQlzY2hlbWFSZWxzID0gR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoc2No ZW1haWQsIHB1Yl9wYXJ0b3B0KTsKLQkJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBzY2hl bWFSZWxzKTsKKworCQlpZiAoZXhjZXB0X3JlbGlkcyAhPSBOSUwpCisJCXsKKwkJCS8qIGZpbHRl ciBvdXQgYW55IHRhYmxlcyB0aGF0IGFwcGVhciBpbiB0aGUgRVhDRVBUIGxpc3QgKi8KKwkJCUxp c3RDZWxsICAgKnJsYzsKKworCQkJZm9yZWFjaChybGMsIHNjaGVtYVJlbHMpCisJCQl7CisJCQkJ T2lkCQkJcmVsaWQgPSBsZmlyc3Rfb2lkKHJsYyk7CisJCQkJYm9vbAkJZXhjbHVkZWQgPSBsaXN0 X21lbWJlcl9vaWQoZXhjZXB0X3JlbGlkcywgcmVsaWQpOworCisJCQkJLyoKKwkJCQkgKiBBbHNv IGV4Y2x1ZGUgYW55IHJlbGF0aW9uIHdob3NlIHBhcnRpdGlvbiBhbmNlc3RvciBpcyBpbgorCQkJ CSAqIHRoZSBFWENFUFQgbGlzdC4gIFRoaXMgbWF0dGVycyB3aGVuIHB1Yl9wYXJ0b3B0IGlzCisJ CQkJICogUFVCTElDQVRJT05fUEFSVF9ST09UOiB0aGUgZXhjZXB0IGxpc3QgaG9sZHMgb25seSB0 aGUgcm9vdAorCQkJCSAqIE9JRCwgYnV0IHRoZSBzY2hlbWEgc2NhbiBtYXkgYWxzbyByZXR1cm4g aW5kaXZpZHVhbAorCQkJCSAqIHBhcnRpdGlvbiByZWxhdGlvbnMgdGhhdCBsaXZlIGluIHRoZSBz YW1lIHNjaGVtYS4KKwkJCQkgKi8KKwkJCQlpZiAoIWV4Y2x1ZGVkICYmIGdldF9yZWxfcmVsaXNw YXJ0aXRpb24ocmVsaWQpKQorCQkJCXsKKwkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3Bh cnRpdGlvbl9hbmNlc3RvcnMocmVsaWQpOworCQkJCQlMaXN0Q2VsbCAgICphbGM7CisKKwkJCQkJ Zm9yZWFjaChhbGMsIGFuY2VzdG9ycykKKwkJCQkJeworCQkJCQkJaWYgKGxpc3RfbWVtYmVyX29p ZChleGNlcHRfcmVsaWRzLCBsZmlyc3Rfb2lkKGFsYykpKQorCQkJCQkJeworCQkJCQkJCWV4Y2x1 ZGVkID0gdHJ1ZTsKKwkJCQkJCQlicmVhazsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCQlsaXN0X2Zy ZWUoYW5jZXN0b3JzKTsKKwkJCQl9CisKKwkJCQlpZiAoIWV4Y2x1ZGVkKQorCQkJCQlyZXN1bHQg PSBsYXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKKwkJCX0KKwkJCWxpc3RfZnJlZShzY2hlbWFS ZWxzKTsKKwkJfQorCQllbHNlCisJCQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIHNjaGVt YVJlbHMpOwogCX0KIAogCXJldHVybiByZXN1bHQ7CkBAIC0xMzI0LDYgKzEzODgsNyBAQCBpc190 YWJsZV9wdWJsaXNoYWJsZV9pbl9wdWJsaWNhdGlvbihPaWQgcmVsaWQsIFB1YmxpY2F0aW9uICpw dWIpCiB7CiAJYm9vbAkJcmVsaXNwYXJ0aXRpb247CiAJTGlzdAkgICAqYW5jZXN0b3JzID0gTklM OworCUhlYXBUdXBsZQl0dXA7CiAKIAkvKgogCSAqIEZvciBub24tcHVidmlhcm9vdCBwdWJsaWNh dGlvbnMsIGEgcGFydGl0aW9uZWQgdGFibGUgaXMgbmV2ZXIgdGhlCkBAIC0xMzgwLDIwICsxNDQ1 LDYyIEBAIGlzX3RhYmxlX3B1Ymxpc2hhYmxlX2luX3B1YmxpY2F0aW9uKE9pZCByZWxpZCwgUHVi bGljYXRpb24gKnB1YikKIAkgKiBJZiBpdCdzIGZhbHNlLCB0aGUgcGFydGl0aW9uIGlzIGNvdmVy ZWQgYnkgaXRzIGFuY2VzdG9yJ3MgcHJlc2VuY2UgaW4KIAkgKiB0aGUgcHVibGljYXRpb24sIGl0 IHNob3VsZCBiZSBpbmNsdWRlZCAocmV0dXJuIHRydWUpLgogCSAqLwotCWlmIChyZWxpc3BhcnRp dGlvbiAmJgotCQlPaWRJc1ZhbGlkKEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHVi LT5vaWQsIGFuY2VzdG9ycywgTlVMTCkpKQotCQlyZXR1cm4gIXB1Yi0+cHVidmlhcm9vdDsKKwlp ZiAocmVsaXNwYXJ0aXRpb24pCisJeworCQlPaWQJCQlhbmNlc3Rvcl9vaWQ7CisKKwkJYW5jZXN0 b3Jfb2lkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWItPm9pZCwgYW5jZXN0 b3JzLCBOVUxMLCBOSUwpOworCQlpZiAoT2lkSXNWYWxpZChhbmNlc3Rvcl9vaWQpKQorCQl7CisJ CQkvKgorCQkJICogVGhlIGFuY2VzdG9yIHdhcyBmb3VuZCBpbiB0aGUgcHVibGljYXRpb24gKHZp YSBleHBsaWNpdAorCQkJICogbWVtYmVyc2hpcCBvciBzY2hlbWEgbWVtYmVyc2hpcCksIGJ1dCBp dCBtYXkgYmUgZXhjbHVkZWQuIENoZWNrCisJCQkgKiBmb3IgYSBwcmV4Y2VwdCByb3cgYmVmb3Jl IGNvbmNsdWRpbmcgdGhlIHBhcnRpdGlvbiBpcworCQkJICogcHVibGlzaGVkLgorCQkJICovCisJ CQl0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJT05SRUxNQVAsCisJCQkJCQkJCSAgT2Jq ZWN0SWRHZXREYXR1bShhbmNlc3Rvcl9vaWQpLAorCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0o cHViLT5vaWQpKTsKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQl7CisJCQkJYm9v bAkJaXNfZXhjZXB0OworCisJCQkJaXNfZXhjZXB0ID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3Jl bCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdDsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK KwkJCQlpZiAoaXNfZXhjZXB0KQorCQkJCQlyZXR1cm4gZmFsc2U7CisJCQl9CisJCQlyZXR1cm4g IXB1Yi0+cHVidmlhcm9vdDsKKwkJfQorCX0KIAogCS8qCiAJICogQ2hlY2sgd2hldGhlciB0aGUg dGFibGUgaXMgZXhwbGljaXRseSBwdWJsaXNoZWQgdmlhIHBnX3B1YmxpY2F0aW9uX3JlbAogCSAq IG9yIHBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS4KKwkgKgorCSAqIEEgcGdfcHVibGljYXRpb25f cmVsIHJvdyB3aXRoIHByZXhjZXB0PXRydWUgbWVhbnMgdGhlIHRhYmxlIGlzCisJICogZXhwbGlj aXRseSBleGNsdWRlZCB2aWEgRVhDRVBUIGFuZCBtdXN0IG5vdCBiZSByZXBvcnRlZCBhcyBwdWJs aXNoZWQsCisJICogZXZlbiBpZiBpdHMgc2NoZW1hIGlzIG90aGVyd2lzZSBpbmNsdWRlZC4gIEEg cm93IHdpdGggcHJleGNlcHQ9ZmFsc2UKKwkgKiBtZWFucyBpdCBpcyBleHBsaWNpdGx5IGluY2x1 ZGVkLiAgSWYgbm8gcGdfcHVibGljYXRpb25fcmVsIHJvdyBleGlzdHMsCisJICogdGhlIHRhYmxl IGlzIHB1Ymxpc2hlZCBpZmYgaXRzIHNjaGVtYSBhcHBlYXJzIGluCisJICogcGdfcHVibGljYXRp b25fbmFtZXNwYWNlLgogCSAqLwotCXJldHVybiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFBVQkxJ Q0FUSU9OUkVMTUFQLAotCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAotCQkJCQkJ CQkgIE9iamVjdElkR2V0RGF0dW0ocHViLT5vaWQpKSB8fAotCQkJU2VhcmNoU3lzQ2FjaGVFeGlz dHMyKFBVQkxJQ0FUSU9OTkFNRVNQQUNFTUFQLAotCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0o Z2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpKSwKLQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHB1 Yi0+b2lkKSkpOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUyKFBVQkxJQ0FUSU9OUkVMTUFQLAor CQkJCQkJICBPYmplY3RJZEdldERhdHVtKHJlbGlkKSwKKwkJCQkJCSAgT2JqZWN0SWRHZXREYXR1 bShwdWItPm9pZCkpOworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJeworCQlib29sCQlp c19leGNlcHQ7CisKKwkJaXNfZXhjZXB0ID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VU U1RSVUNUKHR1cCkpLT5wcmV4Y2VwdDsKKwkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCXJldHVy biAhaXNfZXhjZXB0OworCX0KKworCXJldHVybiBTZWFyY2hTeXNDYWNoZUV4aXN0czIoUFVCTElD QVRJT05OQU1FU1BBQ0VNQVAsCisJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKGdldF9yZWxfbmFt ZXNwYWNlKHJlbGlkKSksCisJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKHB1Yi0+b2lkKSk7CiB9 CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IDQ0MGFkYjM1 NmFkLi40OWY2MTczYmUxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMK QEAgLTE4MSw3ICsxODEsNyBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUg KnBzdGF0ZSwKICAqLwogc3RhdGljIHZvaWQKIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExp c3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAotCQkJCQkJICAgTGlzdCAq KnJlbHMsIExpc3QgKipleGNlcHRyZWxzLCBMaXN0ICoqc2NoZW1hcykKKwkJCQkJCSAgIExpc3Qg KipyZWxzLCBMaXN0ICoqZXhjZXB0X3B1YnRhYmxlcywgTGlzdCAqKnNjaGVtYXMpCiB7CiAJTGlz dENlbGwgICAqY2VsbDsKIAlQdWJsaWNhdGlvbk9ialNwZWMgKnB1Ym9iajsKQEAgLTIwMCw3ICsy MDAsNyBAQCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3Qs IFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJewogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9FWENFUFRf VEFCTEU6CiAJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gdHJ1ZTsKLQkJCQkqZXhjZXB0 cmVscyA9IGxhcHBlbmQoKmV4Y2VwdHJlbHMsIHB1Ym9iai0+cHVidGFibGUpOworCQkJCSpleGNl cHRfcHVidGFibGVzID0gbGFwcGVuZCgqZXhjZXB0X3B1YnRhYmxlcywgcHVib2JqLT5wdWJ0YWJs ZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFOgogCQkJCXB1Ym9i ai0+cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNlOwpAQCAtMjI0LDYgKzIyNCwzOCBAQCBPYmplY3Rz SW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAogCQkJCS8qIEZpbHRlciBvdXQgZHVwbGljYXRlcyBpZiB1c2VyIHNwZWNpZmllcyAi c2NoMSwgc2NoMSIgKi8KIAkJCQkqc2NoZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9vaWQoKnNj aGVtYXMsIHNjaGVtYWlkKTsKKworCQkJCS8qCisJCQkJICogUXVhbGlmeSB1bnF1YWxpZmllZCBF WENFUFQgdGFibGUgbmFtZXMgd2l0aCB0aGUgcmVzb2x2ZWQKKwkJCQkgKiBjdXJyZW50IHNjaGVt YSBhbmQgcmVqZWN0IGFueSBleHBsaWNpdGx5IGNyb3NzLXNjaGVtYQorCQkJCSAqIGVudHJpZXMu ICBUaGlzIG1pcnJvcnMgdGhlIHBhcnNlLXRpbWUgaGFuZGxpbmcgZG9uZSBmb3IKKwkJCQkgKiBU QUJMRVNfSU5fU0NIRU1BIGluIHByZXByb2Nlc3NfcHVib2JqX2xpc3QoKSwgZGVmZXJyZWQgaGVy ZQorCQkJCSAqIGJlY2F1c2UgQ1VSUkVOVF9TQ0hFTUEgaXMgbm90IGtub3duIHVudGlsIGV4ZWN1 dGlvbiB0aW1lLgorCQkJCSAqLworCQkJCWlmIChwdWJvYmotPmV4Y2VwdF90YWJsZXMgIT0gTklM KQorCQkJCXsKKwkJCQkJY2hhcgkgICAqY3VyX3NjaGVtYV9uYW1lID0gZ2V0X25hbWVzcGFjZV9u YW1lKHNjaGVtYWlkKTsKKworCQkJCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvbk9ialNwZWMsIGVv YmosIHB1Ym9iai0+ZXhjZXB0X3RhYmxlcykKKwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAqZW9i al9zY2hlbWFuYW1lID0KKwkJCQkJCQllb2JqLT5wdWJ0YWJsZS0+cmVsYXRpb24tPnNjaGVtYW5h bWU7CisJCQkJCQljb25zdCBjaGFyICplb2JqX3JlbG5hbWUgPQorCQkJCQkJCWVvYmotPnB1YnRh YmxlLT5yZWxhdGlvbi0+cmVsbmFtZTsKKworCQkJCQkJaWYgKGVvYmpfc2NoZW1hbmFtZSA9PSBO VUxMKQorCQkJCQkJCWVvYmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+c2NoZW1hbmFtZSA9IGN1cl9z Y2hlbWFfbmFtZTsKKwkJCQkJCWVsc2UgaWYgKHN0cmNtcChlb2JqX3NjaGVtYW5hbWUsIGN1cl9z Y2hlbWFfbmFtZSkgIT0gMCkKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJCQkJZXJybXNnKCJ0 YWJsZSBcIiVzXCIgaW4gRVhDRVBUIGNsYXVzZSBkb2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hIFwi JXNcIiIsCisJCQkJCQkJCQkJICAgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoZW9ial9zY2hl bWFuYW1lLCBlb2JqX3JlbG5hbWUpLAorCQkJCQkJCQkJCSAgIGN1cl9zY2hlbWFfbmFtZSkpOwor CisJCQkJCQkqZXhjZXB0X3B1YnRhYmxlcyA9IGxhcHBlbmQoKmV4Y2VwdF9wdWJ0YWJsZXMsCisJ CQkJCQkJCQkJCQkJZW9iai0+cHVidGFibGUpOworCQkJCQl9CisJCQkJfQogCQkJCWJyZWFrOwog CQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGRuJ3QgaGFwcGVuICovCkBAIC0zMDUsNyArMzM3LDcg QEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVs YXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAlpZiAocHVidmlhcm9vdCAmJiByZWxhdGlvbi0+cmRf cmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7CiAJCXB1Ymxpc2hfYXNfcmVsaWQKLQkJCT0gR2V0VG9w TW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJCT0g R2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMLCBO SUwpOwogCiAJCWlmICghT2lkSXNWYWxpZChwdWJsaXNoX2FzX3JlbGlkKSkKIAkJCXB1Ymxpc2hf YXNfcmVsaWQgPSByZWxpZDsKQEAgLTM4OSw3ICs0MjEsNyBAQCBwdWJfY29udGFpbnNfaW52YWxp ZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAog CSAqLwogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9u KQogCXsKLQkJcHVibGlzaF9hc19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRp b24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCk7CisJCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsIE5JTCk7CiAK IAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxp ZCA9IHJlbGlkOwpAQCAtODQ5LDcgKzg4MSw3IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCWNoYXIJCXB1Ymxpc2hf Z2VuZXJhdGVkX2NvbHVtbnM7CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKIAlMaXN0CSAgICpyZWxh dGlvbnMgPSBOSUw7Ci0JTGlzdAkgICAqZXhjZXB0cmVsYXRpb25zID0gTklMOworCUxpc3QJICAg KmV4Y2VwdF9wdWJ0YWJsZXMgPSBOSUw7CiAJTGlzdAkgICAqc2NoZW1haWRsaXN0ID0gTklMOwog CiAJLyogbXVzdCBoYXZlIENSRUFURSBwcml2aWxlZ2Ugb24gZGF0YWJhc2UgKi8KQEAgLTkzNiwx NiArOTY4LDE2IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRl UHVibGljYXRpb25TdG10ICpzdG10KQogCiAJLyogQXNzb2NpYXRlIG9iamVjdHMgd2l0aCB0aGUg cHVibGljYXRpb24uICovCiAJT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2Jq ZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAotCQkJCQkJCSAgICZleGNlcHRyZWxhdGlvbnMsICZz Y2hlbWFpZGxpc3QpOworCQkJCQkJCSAgICZleGNlcHRfcHVidGFibGVzLCAmc2NoZW1haWRsaXN0 KTsKIAogCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKIAl7CiAJCS8qIFByb2Nlc3MgRVhDRVBU IHRhYmxlIGxpc3QgKi8KLQkJaWYgKGV4Y2VwdHJlbGF0aW9ucyAhPSBOSUwpCisJCWlmIChleGNl cHRfcHVidGFibGVzICE9IE5JTCkKIAkJewogCQkJTGlzdAkgICAqcmVsczsKIAotCQkJcmVscyA9 IE9wZW5UYWJsZUxpc3QoZXhjZXB0cmVsYXRpb25zKTsKKwkJCXJlbHMgPSBPcGVuVGFibGVMaXN0 KGV4Y2VwdF9wdWJ0YWJsZXMpOwogCQkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxz LCB0cnVlLCBOVUxMKTsKIAkJCUNsb3NlVGFibGVMaXN0KHJlbHMpOwogCQl9CkBAIC05NTksNiAr OTkxLDggQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJs aWNhdGlvblN0bXQgKnN0bXQpCiAJfQogCWVsc2UgaWYgKCFzdG10LT5mb3JfYWxsX3NlcXVlbmNl cykKIAl7CisJCUxpc3QJICAgKmV4cGxpY2l0cmVsaWRzID0gTklMOworCiAJCS8qIEZPUiBUQUJM RVMgSU4gU0NIRU1BIHJlcXVpcmVzIHN1cGVydXNlciAqLwogCQlpZiAoc2NoZW1haWRsaXN0ICE9 IE5JTCAmJiAhc3VwZXJ1c2VyKCkpCiAJCQllcmVwb3J0KEVSUk9SLApAQCAtOTc3LDYgKzEwMTEs MTkgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNh dGlvblN0bXQgKnN0bXQpCiAJCQkJCQkJCQkgICBzY2hlbWFpZGxpc3QgIT0gTklMLAogCQkJCQkJ CQkJICAgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCisJCQkvKgorCQkJICogQ29sbGVj dCBleHBsaWNpdCB0YWJsZSBPSURzIG5vdywgYmVmb3JlIHdlIGNsb3NlIHRoZSByZWxhdGlvbgor CQkJICogbGlzdCwgc28gdGhhdCBleGNlcHQtdGFibGUgdmFsaWRhdGlvbiBiZWxvdyBjYW4gY2hl Y2sgZm9yCisJCQkgKiBjb250cmFkaWN0aW9ucyB3aXRob3V0IHJlbHlpbmcgb24gYSBjYXRhbG9n IHNjYW4gdGhhdCBtaWdodCBub3QKKwkJCSAqIHlldCBzZWUgdGhlIGp1c3QtaW5zZXJ0ZWQgcm93 cy4KKwkJCSAqLworCQkJaWYgKGV4Y2VwdF9wdWJ0YWJsZXMgIT0gTklMKQorCQkJeworCQkJCWZv cmVhY2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5mbywgcHJpLCByZWxzKQorCQkJCQlleHBsaWNpdHJl bGlkcyA9IGxhcHBlbmRfb2lkKGV4cGxpY2l0cmVsaWRzLAorCQkJCQkJCQkJCQkJIFJlbGF0aW9u R2V0UmVsaWQocHJpLT5yZWxhdGlvbikpOworCQkJfQorCiAJCQlQdWJsaWNhdGlvbkFkZFRhYmxl cyhwdWJvaWQsIHJlbHMsIHRydWUsIE5VTEwpOwogCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CiAJ CX0KQEAgLTk4OSw2ICsxMDM2LDM0IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCQkJICovCiAJCQlMb2NrU2NoZW1h TGlzdChzY2hlbWFpZGxpc3QpOwogCQkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9pZCwgc2No ZW1haWRsaXN0LCB0cnVlLCBOVUxMKTsKKworCQkJaWYgKGV4Y2VwdF9wdWJ0YWJsZXMgIT0gTklM KQorCQkJeworCQkJCUxpc3QJICAgKmV4Y2VwdF9yZWxzOworCisJCQkJZXhjZXB0X3JlbHMgPSBP cGVuVGFibGVMaXN0KGV4Y2VwdF9wdWJ0YWJsZXMpOworCisJCQkJLyoKKwkJCQkgKiBWYWxpZGF0 ZSB0aGF0IGVhY2ggZXhjbHVkZWQgdGFibGUgaXMgbm90IGFsc28gaW4gdGhlCisJCQkJICogZXhw bGljaXQgdGFibGUgbGlzdCAod2hpY2ggd291bGQgYmUgY29udHJhZGljdG9yeSkuIFVzZSB0aGUK KwkJCQkgKiBpbi1tZW1vcnkgZXhwbGljaXRyZWxpZHMgY29sbGVjdGVkIGFib3ZlIHJhdGhlciB0 aGFuCisJCQkJICogcmUtcmVhZGluZyB0aGUgY2F0YWxvZywgd2hpY2ggbWF5IG5vdCB5ZXQgc2Vl IHRoZQorCQkJCSAqIGp1c3QtaW5zZXJ0ZWQgcm93cy4KKwkJCQkgKi8KKwkJCQlmb3JlYWNoX3B0 cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwgZXhjZXB0X3JlbHMpCisJCQkJeworCQkJCQlPaWQJ CQlleGNlcHRfcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHByaS0+cmVsYXRpb24pOworCisJCQkJ CWlmIChsaXN0X21lbWJlcl9vaWQoZXhwbGljaXRyZWxpZHMsIGV4Y2VwdF9yZWxpZCkpCisJCQkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAorCQkJCQkJCQllcnJtc2coInRhYmxlIFwiJXNcIiBjYW5ub3QgYXBwZWFyIGlu IGJvdGggdGhlIHRhYmxlIGxpc3QgYW5kIHRoZSBFWENFUFQgY2xhdXNlIiwKKwkJCQkJCQkJCSAg IFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKHByaS0+cmVsYXRpb24pKSk7CisJCQkJ fQorCisJCQkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCBleGNlcHRfcmVscywgdHJ1ZSwg TlVMTCk7CisJCQkJQ2xvc2VUYWJsZUxpc3QoZXhjZXB0X3JlbHMpOworCQkJfQogCQl9CiAJfQog CkBAIC0xNjgzLDEyICsxNzU4LDEyIEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAllbHNlCiAJewogCQlMaXN0CSAgICpy ZWxhdGlvbnMgPSBOSUw7Ci0JCUxpc3QJICAgKmV4Y2VwdHJlbGF0aW9ucyA9IE5JTDsKKwkJTGlz dAkgICAqZXhjZXB0X3B1YnRhYmxlcyA9IE5JTDsKIAkJTGlzdAkgICAqc2NoZW1haWRsaXN0ID0g TklMOwogCQlPaWQJCQlwdWJpZCA9IHB1YmZvcm0tPm9pZDsKIAogCQlPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJ CSAgICZleGNlcHRyZWxhdGlvbnMsICZzY2hlbWFpZGxpc3QpOworCQkJCQkJCQkgICAmZXhjZXB0 X3B1YnRhYmxlcywgJnNjaGVtYWlkbGlzdCk7CiAKIAkJQ2hlY2tBbHRlclB1YmxpY2F0aW9uKHN0 bXQsIHR1cCwgcmVsYXRpb25zLCBzY2hlbWFpZGxpc3QpOwogCkBAIC0xNzExLDcgKzE3ODYsNyBA QCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0 bXQgKnN0bXQpCiAJCQkJCWVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0 IiwKIAkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpKTsKIAotCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNh dChyZWxhdGlvbnMsIGV4Y2VwdHJlbGF0aW9ucyk7CisJCXJlbGF0aW9ucyA9IGxpc3RfY29uY2F0 KHJlbGF0aW9ucywgZXhjZXB0X3B1YnRhYmxlcyk7CiAJCUFsdGVyUHVibGljYXRpb25UYWJsZXMo c3RtdCwgdHVwLCByZWxhdGlvbnMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkJCSAgIHNj aGVtYWlkbGlzdCAhPSBOSUwpOwogCQlBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhzdG10LCB0dXAs IHNjaGVtYWlkbGlzdCk7CkBAIC0xODI5LDYgKzE5MDQsNDYgQEAgUmVtb3ZlUHVibGljYXRpb25T Y2hlbWFCeUlkKE9pZCBwc29pZCkKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2sp OwogfQogCisvKgorICogUmVtb3ZlIGFueSBFWENFUFQgY2xhdXNlIGVudHJpZXMgZm9yIGEgcmVs YXRpb24gZnJvbSBzY2hlbWEgcHVibGljYXRpb25zLgorICogQ2FsbGVkIHdoZW4gYSB0YWJsZSBj aGFuZ2VzIHNjaGVtYSAoQUxURVIgVEFCTEUgLi4uIFNFVCBTQ0hFTUEpLCBzbyB0aGF0CisgKiBh IHNjaGVtYS1zY29wZWQgZXhjbHVzaW9uIGRvZXMgbm90IHNpbGVudGx5IGZvbGxvdyB0aGUgdGFi bGUgdG8gaXRzIG5ldworICogc2NoZW1hLgorICovCit2b2lkCitSZW1vdmVQdWJsaWNhdGlvbkV4 Y2VwdEZvclJlbGF0aW9uKE9pZCByZWxpZCkKK3sKKwlMaXN0CSAgICpwdWJpZHM7CisJT2JqZWN0 QWRkcmVzcyBvYmo7CisKKwlwdWJpZHMgPSBHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25z KHJlbGlkKTsKKworCWZvcmVhY2hfb2lkKHB1YmlkLCBwdWJpZHMpCisJeworCQlPaWQJCQlwcm9p ZDsKKworCQkvKgorCQkgKiBUaGlzIHByb2JsZW0gZG9lcyBub3QgYXBwbHkgdG8gRk9SIEFMTCBU QUJMRVMgcHVibGljYXRpb25zLCBiZWNhdXNlCisJCSAqIHRoZWlyIEVYQ0VQVCBjbGF1c2UgaXMg cHVibGljYXRpb24tc2NvcGVkLCBub3Qgc2NoZW1hLXNjb3BlZDogdGhlCisJCSAqIGV4Y2x1c2lv biBzaG91bGQgcGVyc2lzdCByZWdhcmRsZXNzIG9mIHdoYXQgc2NoZW1hIHRoZSB0YWJsZSBpcyBp bi4KKwkJICovCisJCWlmICghaXNfc2NoZW1hX3B1YmxpY2F0aW9uKHB1YmlkKSkKKwkJCWNvbnRp bnVlOworCisJCXByb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLAorCQkJ CQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJCU9iamVjdElkR2V0RGF0 dW0ocmVsaWQpLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJCWlmIChPaWRJ c1ZhbGlkKHByb2lkKSkKKwkJeworCQkJT2JqZWN0QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9u UmVsUmVsYXRpb25JZCwgcHJvaWQpOworCQkJcGVyZm9ybURlbGV0aW9uKCZvYmosIERST1BfQ0FT Q0FERSwgMCk7CisJCX0KKwl9CisKKwlsaXN0X2ZyZWUocHViaWRzKTsKK30KKwogLyoKICAqIE9w ZW4gcmVsYXRpb25zIHNwZWNpZmllZCBieSBhIFB1YmxpY2F0aW9uVGFibGUgbGlzdC4KICAqIFRo ZSByZXR1cm5lZCB0YWJsZXMgYXJlIGxvY2tlZCBpbiBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sg bW9kZSBpbiBvcmRlciB0bwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBhMzNlMjJlOGU2 MS4uYmQ5NmI0ZmQwMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC02Myw2ICs2Myw3 IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2V4dGVuc2lvbi5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3JlcGFjay5oIgorI2luY2x1ZGUg ImNvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv dGFibGVzcGFjZS5oIgpAQCAtMTkyOTAsNiArMTkyOTEsMTUgQEAgQWx0ZXJUYWJsZU5hbWVzcGFj ZUludGVybmFsKFJlbGF0aW9uIHJlbCwgT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCwKIAlBbHRl ckNvbnN0cmFpbnROYW1lc3BhY2VzKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgb2xkTnNwT2lkLCBu c3BPaWQsCiAJCQkJCQkJICBmYWxzZSwgb2Jqc01vdmVkKTsKIAorCS8qCisJICogUmVtb3ZlIGFu eSBFWENFUFQgY2xhdXNlIGVudHJpZXMgZm9yIHRoaXMgcmVsYXRpb24gZnJvbSBzY2hlbWEKKwkg KiBwdWJsaWNhdGlvbnMuICBBIHNjaGVtYS1zY29wZWQgZXhjbHVzaW9uIGlzIG5vIGxvbmdlciBt ZWFuaW5nZnVsIG9uY2UKKwkgKiB0aGUgdGFibGUgbW92ZXMgdG8gYSBkaWZmZXJlbnQgc2NoZW1h LgorCSAqLworCWlmIChyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8 CisJCXJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJ CVJlbW92ZVB1YmxpY2F0aW9uRXhjZXB0Rm9yUmVsYXRpb24oUmVsYXRpb25HZXRSZWxpZChyZWwp KTsKKwogCXRhYmxlX2Nsb3NlKGNsYXNzUmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIH0KIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggZmY0ZTEzODhjNTUuLjZhN2ExYmM1ZjhkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTU4 LDYgKzU4LDcgQEAKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rl cy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VyLmgiCisjaW5jbHVkZSAidXRp bHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRldGltZS5oIgogI2luY2x1ZGUgInV0 aWxzL3htbC5oIgogCkBAIC0xMTI3Miw3ICsxMTI3Myw3IEBAIEFsdGVyT3duZXJTdG10OiBBTFRF UiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKICAq IHB1Yl9vYmogaXMgb25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJsZSBbLCAuLi5dCi0gKgkJVEFC TEVTIElOIFNDSEVNQSBzY2hlbWEgWywgLi4uXQorICoJCVRBQkxFUyBJTiBTQ0hFTUEgc2NoZW1h IFtFWENFUFQgKFRBQkxFIHRhYmxlIFssIC4uLl0gKV0gWywgLi4uXQogICoKICAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KIApAQCAtMTEzMzIsMjMgKzExMzMzLDI2IEBAIFB1YmxpY2F0aW9uT2JqU3Bl YzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+ d2hlcmVDbGF1c2UgPSAkNDsKIAkJCQl9Ci0JCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJZAor CQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQgb3B0X3B1Yl9leGNlcHRfY2xhdXNlCiAJCQkJ ewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJv Ymp0eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQTsKIAkJCQkJJCQtPm5hbWUg PSAkNDsKKwkJCQkJJCQtPmV4Y2VwdF90YWJsZXMgPSAkNTsKIAkJCQkJJCQtPmxvY2F0aW9uID0g QDQ7CiAJCQkJfQotCQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEKKwkJCXwg VEFCTEVTIElOX1AgU0NIRU1BIENVUlJFTlRfU0NIRU1BIG9wdF9wdWJfZXhjZXB0X2NsYXVzZQog CQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkkJC0+ cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BOworCQkJCQkk JC0+ZXhjZXB0X3RhYmxlcyA9ICQ1OwogCQkJCQkkJC0+bG9jYXRpb24gPSBANDsKIAkJCQl9Ci0J CQl8IENvbElkIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJfCBDb2xJZCBvcHRf Y29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2Ugb3B0X3B1Yl9leGNlcHRfY2xhdXNlCiAJCQkJewog CQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0 eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OOworCQkJCQkkJC0+ZXhjZXB0X3RhYmxl cyA9ICQ0OwogCQkJCQkvKgogCQkJCQkgKiBJZiBlaXRoZXIgYSByb3cgZmlsdGVyIG9yIGNvbHVt biBsaXN0IGlzIHNwZWNpZmllZCwgY3JlYXRlCiAJCQkJCSAqIGEgUHVibGljYXRpb25UYWJsZSBv YmplY3QuCkBAIC0xMTM5MiwxMCArMTEzOTYsMTEgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJ CQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMjsKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNs YXVzZSA9ICQzOwogCQkJCX0KLQkJCXwgQ1VSUkVOVF9TQ0hFTUEKKwkJCXwgQ1VSUkVOVF9TQ0hF TUEgb3B0X3B1Yl9leGNlcHRfY2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1Ymxp Y2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09O VElOVUFUSU9OOworCQkJCQkkJC0+ZXhjZXB0X3RhYmxlcyA9ICQyOwogCQkJCQkkJC0+bG9jYXRp b24gPSBAMTsKIAkJCQl9CiAJCQkJOwpAQCAtMjA3ODQsNiArMjA3ODksOCBAQCBwcmVwcm9jZXNz X3B1Yl9hbGxfb2JqdHlwZV9saXN0KExpc3QgKmFsbF9vYmplY3RzX2xpc3QsIExpc3QgKipwdWJv YmplY3RzLAogLyoKICAqIFByb2Nlc3MgcHVib2Jqc3BlY19saXN0IHRvIGNoZWNrIGZvciBlcnJv cnMgaW4gYW55IG9mIHRoZSBvYmplY3RzIGFuZAogICogY29udmVydCBQVUJMSUNBVElPTk9CSl9D T05USU5VQVRJT04gaW50byBhcHByb3ByaWF0ZSBQdWJsaWNhdGlvbk9ialNwZWNUeXBlLgorICog QWxzbyBmbGF0dGVucyBleGNlcHRfdGFibGVzIGZyb20gVEFCTEVTIElOIFNDSEVNQSBub2RlcyBp bnRvIHRoZSBsaXN0IHNvCisgKiB0aGF0IE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKCkgc2Vl cyB0aGVtIGFzIHRvcC1sZXZlbCBFWENFUFRfVEFCTEUgZW50cmllcy4KICAqLwogc3RhdGljIHZv aWQKIHByZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5 c2Nhbl90IHl5c2Nhbm5lcikKQEAgLTIwODEyLDYgKzIwODE5LDEzIEBAIHByZXByb2Nlc3NfcHVi b2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikK IAogCQlpZiAocHVib2JqLT5wdWJvYmp0eXBlID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxFKQogCQl7 CisJCQkvKiBFWENFUFQgaXMgbm90IHZhbGlkIGZvciB0YWJsZSBvYmplY3RzICovCisJCQlpZiAo cHVib2JqLT5leGNlcHRfdGFibGVzICE9IE5JTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ ZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJtc2coIkVYQ0VQVCBpcyBu b3QgYWxsb3dlZCBmb3IgVEFCTEUgcHVibGljYXRpb24gb2JqZWN0cyIpLAorCQkJCQkJcGFyc2Vy X2VycnBvc2l0aW9uKHB1Ym9iai0+bG9jYXRpb24pKTsKKwogCQkJLyogcmVsYXRpb24gbmFtZSBv ciBwdWJ0YWJsZSBtdXN0IGJlIHNldCBmb3IgdGhpcyB0eXBlIG9mIG9iamVjdCAqLwogCQkJaWYg KCFwdWJvYmotPm5hbWUgJiYgIXB1Ym9iai0+cHVidGFibGUpCiAJCQkJZXJlcG9ydChFUlJPUiwK QEAgLTIwODYwLDYgKzIwODc0LDM2IEBAIHByZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVi b2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIAkJCQkJCWVycmNvZGUoRVJS Q09ERV9TWU5UQVhfRVJST1IpLAogCQkJCQkJZXJybXNnKCJpbnZhbGlkIHNjaGVtYSBuYW1lIiks CiAJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHVib2JqLT5sb2NhdGlvbikpOworCisJCQkvKgor CQkJICogRm9yIFRBQkxFU19JTl9TQ0hFTUEsIHF1YWxpZnkgdW5xdWFsaWZpZWQgRVhDRVBUIHRh YmxlIG5hbWVzCisJCQkgKiB3aXRoIHRoZSBwYXJlbnQgc2NoZW1hIGFuZCByZWplY3QgY3Jvc3Mt c2NoZW1hIGVudHJpZXMgYXQgcGFyc2UKKwkJCSAqIHRpbWUsIHRoZW4gZmxhdHRlbiBpbnRvIHRo ZSB0b3AtbGV2ZWwgbGlzdC4KKwkJCSAqCisJCQkgKiBGb3IgVEFCTEVTX0lOX0NVUl9TQ0hFTUEg dGhlIHNjaGVtYSBuYW1lIGlzIG5vdCB5ZXQga25vd24sIHNvCisJCQkgKiBza2lwIGJvdGggc3Rl cHMgaGVyZTsgT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoKSB3aWxsCisJCQkgKiBxdWFsaWZ5 IG5hbWVzIGFuZCB2YWxpZGF0ZSBzY2hlbWEgbWVtYmVyc2hpcCBhdCBleGVjdXRpb24gdGltZS4K KwkJCSAqLworCQkJaWYgKHB1Ym9iai0+cHVib2JqdHlwZSA9PSBQVUJMSUNBVElPTk9CSl9UQUJM RVNfSU5fU0NIRU1BKQorCQkJeworCQkJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uT2JqU3BlYywg ZW9iaiwgcHVib2JqLT5leGNlcHRfdGFibGVzKQorCQkJCXsKKwkJCQkJY29uc3QgY2hhciAqZW9i al9zY2hlbWFuYW1lID0gZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5zY2hlbWFuYW1lOworCQkJ CQljb25zdCBjaGFyICplb2JqX3JlbG5hbWUgPSBlb2JqLT5wdWJ0YWJsZS0+cmVsYXRpb24tPnJl bG5hbWU7CisKKwkJCQkJaWYgKGVvYmpfc2NoZW1hbmFtZSA9PSBOVUxMKQorCQkJCQkJZW9iai0+ cHVidGFibGUtPnJlbGF0aW9uLT5zY2hlbWFuYW1lID0gcHVib2JqLT5uYW1lOworCQkJCQllbHNl IGlmIChzdHJjbXAoZW9ial9zY2hlbWFuYW1lLCBwdWJvYmotPm5hbWUpICE9IDApCisJCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVG SU5JVElPTiksCisJCQkJCQkJCWVycm1zZygidGFibGUgXCIlc1wiIGluIEVYQ0VQVCBjbGF1c2Ug ZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSBcIiVzXCIiLAorCQkJCQkJCQkJICAgcXVvdGVfcXVh bGlmaWVkX2lkZW50aWZpZXIoZW9ial9zY2hlbWFuYW1lLCBlb2JqX3JlbG5hbWUpLAorCQkJCQkJ CQkJICAgcHVib2JqLT5uYW1lKSwKKwkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKGVvYmotPmxv Y2F0aW9uKSk7CisJCQkJfQorCQkJCXB1Ym9ianNwZWNfbGlzdCA9IGxpc3RfY29uY2F0KHB1Ym9i anNwZWNfbGlzdCwgcHVib2JqLT5leGNlcHRfdGFibGVzKTsKKwkJCQlwdWJvYmotPmV4Y2VwdF90 YWJsZXMgPSBOSUw7CisJCQl9CiAJCX0KIAogCQlwcmV2b2JqdHlwZSA9IHB1Ym9iai0+cHVib2Jq dHlwZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0 cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4 IDRlY2ZjYmZmN2FiLi43ZWU4NGVjMWM4MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9w Z291dHB1dC9wZ291dHB1dC5jCkBAIC0yMDk3LDYgKzIwOTcsNyBAQCBnZXRfcmVsX3N5bmNfZW50 cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJICogYXJlIGFic29y YmVkIHdoaWxlIGRlY29kaW5nIFdBTC4KIAkJICovCiAJCUxpc3QJICAgKnNjaGVtYVB1YmlkcyA9 IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFJZCk7CisJCUxpc3QJICAgKmV4Y2VwdF9wdWJp ZHM7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlPaWQJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7 CiAJCWludAkJCXB1Ymxpc2hfYW5jZXN0b3JfbGV2ZWwgPSAwOwpAQCAtMjEwNCw2ICsyMTA1LDI4 IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0 aW9uKQogCQljaGFyCQlyZWxraW5kID0gZ2V0X3JlbF9yZWxraW5kKHJlbGlkKTsKIAkJTGlzdAkg ICAqcmVsX3B1YmxpY2F0aW9ucyA9IE5JTDsKIAorCQkvKgorCQkgKiBGb3IgdGhlIHNjaGVtYSBF WENFUFQgY2hlY2ssIHdlIG11c3QgbG9vayB1cCB0aGUgdG9wLW1vc3QgYW5jZXN0b3IKKwkJICog cmF0aGVyIHRoYW4gdGhlIHJlbGF0aW9uIGl0c2VsZi4gIGNoZWNrX3B1YmxpY2F0aW9uX2FkZF9y ZWxhdGlvbigpCisJCSAqIHByZXZlbnRzIGluZGl2aWR1YWwgcGFydGl0aW9ucyBmcm9tIGFwcGVh cmluZyBpbiB0aGUgRVhDRVBUIGNsYXVzZSwKKwkJICogc28gb25seSBhIHJvb3QgKG5vbi1wYXJ0 aXRpb24pIHRhYmxlIGNhbiBoYXZlIHByZXhjZXB0ID0gdHJ1ZS4KKwkJICogVXNpbmcgdGhlIHBh cnRpdGlvbidzIG93biBPSUQgd291bGQgYWx3YXlzIHJldHVybiBOSUwgYW5kIG1pc3MgdGhlCisJ CSAqIGV4Y2x1c2lvbi4KKwkJICovCisJCU9pZAkJCXJvb3RfcmVsaWQ7CisKKwkJaWYgKGFtX3Bh cnRpdGlvbikKKwkJeworCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNl c3RvcnMocmVsaWQpOworCisJCQlyb290X3JlbGlkID0gbGxhc3Rfb2lkKGFuY2VzdG9ycyk7CisJ CQlsaXN0X2ZyZWUoYW5jZXN0b3JzKTsKKwkJfQorCQllbHNlCisJCQlyb290X3JlbGlkID0gcmVs aWQ7CisKKwkJZXhjZXB0X3B1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMo cm9vdF9yZWxpZCk7CisKIAkJLyogUmVsb2FkIHB1YmxpY2F0aW9ucyBpZiBuZWVkZWQgYmVmb3Jl IHVzZS4gKi8KIAkJaWYgKCFwdWJsaWNhdGlvbnNfdmFsaWQpCiAJCXsKQEAgLTIyNjcsNyArMjI5 MCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJl bGF0aW9uKQogCiAJCQkJCWFuY2VzdG9yID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihwdWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJCSAgIGFuY2VzdG9ycywKLQkJCQkJCQkJCQkJCQkJ CSAgICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwsCisJCQkJCQkJCQkJCQkJCQkg ICBleGNlcHRfcHViaWRzKTsKIAogCQkJCQlpZiAoYW5jZXN0b3IgIT0gSW52YWxpZE9pZCkKIAkJ CQkJewpAQCAtMjI4MSw3ICsyMzA1LDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0 YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCQkJfQogCiAJCQkJaWYgKGxpc3RfbWVtYmVy X29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAotCQkJCQlsaXN0X21lbWJlcl9vaWQoc2NoZW1hUHVi aWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKGxpc3RfbWVtYmVyX29pZChzY2hlbWFQdWJpZHMsIHB1 Yi0+b2lkKSAmJgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChleGNlcHRfcHViaWRzLCBwdWItPm9p ZCkpIHx8CiAJCQkJCWFuY2VzdG9yX3B1Ymxpc2hlZCkKIAkJCQkJcHVibGlzaCA9IHRydWU7CiAJ CQl9CkBAIC0yMzYwLDYgKzIzODUsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRh ICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQlsaXN0X2ZyZWUocHViaWRzKTsKIAkJbGlz dF9mcmVlKHNjaGVtYVB1Ymlkcyk7CisJCWxpc3RfZnJlZShleGNlcHRfcHViaWRzKTsKIAkJbGlz dF9mcmVlKHJlbF9wdWJsaWNhdGlvbnMpOwogCiAJCWVudHJ5LT5yZXBsaWNhdGVfdmFsaWQgPSB0 cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCA3ZjliMmI3MWEzNi4uYTlhZTZkMzEyNTEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC03 MDM4LDYgKzcwMzgsMjQgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVy bikKIAkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlcyBm cm9tIHNjaGVtYXM6IiksCiAJCQkJCQkJCQkJCQl0cnVlLCAmY29udCkpCiAJCQkJCWdvdG8gZXJy b3JfcmV0dXJuOworCisJCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJCXsKKwkJ CQkJLyoKKwkJCQkJICogR2V0IHRhYmxlcyBpbiB0aGUgRVhDRVBUIGNsYXVzZSBmb3IgdGhpcyBz Y2hlbWEKKwkJCQkJICogcHVibGljYXRpb24uCisJCQkJCSAqLworCQkJCQlwcmludGZQUUV4cEJ1 ZmZlcigmYnVmLAorCQkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJlbG5hbWVzcGFjZTo6cmVn bmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxv Zy5wZ19jbGFzcyBjXG4iCisJCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJs aWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCQkgICJXSEVS RSBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkJICAiICBBTkQgcHIucHJleGNlcHRcbiIK KwkJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJCWlmICghYWRkRm9vdGVyVG9Q dWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwKKwkJCQkJCQkJCQkJCQl0 cnVlLCAmY29udCkpCisJCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCQl9CiAJCQl9CiAJCX0K IAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGRlNTQ3YThjYjM3Li41M2JiN2M4Njc5 YiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTA2NSw2ICsxMDY1LDI0IEBAIHN0YXRpYyBj b25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfdHJpZ2dlcl9vZl90YWJsZSA9IHsKICJTRUxFQ1Qg bnNwbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlICJcCiAiIFdIRVJFIG5zcG5hbWUg TElLRSAnJXMnIgogCisjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9zY2hlbWEg XAorIlNFTEVDVCBuLm5zcG5hbWUgfHwgJy4nIHx8IGMucmVsbmFtZSAiXAorIiAgRlJPTSBwZ19j YXRhbG9nLnBnX2NsYXNzIGMgIlwKKyIgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFj ZSBuIE9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UgIlwKKyIgV0hFUkUgYy5yZWxraW5kIElOICgi IENwcEFzU3RyaW5nMihSRUxLSU5EX1JFTEFUSU9OKSAiLCAiIFwKKwkJCQkJCUNwcEFzU3RyaW5n MihSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiKSAiXAorIiAgIEFORCAobi5uc3BuYW1lIHx8 ICcuJyB8fCBjLnJlbG5hbWUpIExJS0UgJyVzJyAiXAorIiAgIEFORCBuLm5zcG5hbWUgPSAnJXMn IgorCisjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9jdXJyZW50X3NjaGVtYSBc CisiU0VMRUNUIGMucmVsbmFtZSAiXAorIiAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgIlwK KyIgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gYy5yZWxu YW1lc3BhY2UgIlwKKyIgV0hFUkUgYy5yZWxraW5kIElOICgiIENwcEFzU3RyaW5nMihSRUxLSU5E X1JFTEFUSU9OKSAiLCAiIFwKKwkJCQkJCUNwcEFzU3RyaW5nMihSRUxLSU5EX1BBUlRJVElPTkVE X1RBQkxFKSAiKSAiXAorIiAgIEFORCBjLnJlbG5hbWUgTElLRSAnJXMnICJcCisiICAgQU5EIG4u bnNwbmFtZSA9IHBnX2NhdGFsb2cuY3VycmVudF9zY2hlbWEoKSIKKwogLyogVXNlIENPTVBMRVRF X1dJVEhfUVVFUllfVkVSQkFUSU0gd2l0aCB0aGVzZSBxdWVyaWVzIGZvciBHVUMgbmFtZXM6ICov CiAjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29mX2FsdGVyX3N5c3RlbV9zZXRfdmFycyBcCiAiU0VM RUNUIHBnX2NhdGFsb2cubG93ZXIobmFtZSkgRlJPTSBwZ19jYXRhbG9nLnBnX3NldHRpbmdzICJc CkBAIC0zNzg3LDggKzM4MDUsMjEgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5f aWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUllfUExVUyhRdWVyeV9mb3JfbGlzdF9vZl9zY2hlbWFz CiAJCQkJCQkJCSAiIEFORCBuc3BuYW1lIE5PVCBMSUtFIEUncGdcXFxcXyUlJyIsCiAJCQkJCQkJ CSAiQ1VSUkVOVF9TQ0hFTUEiKTsKLQllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hB bnkpICYmICghZW5kc193aXRoKHByZXZfd2QsICcsJykpKQotCQlDT01QTEVURV9XSVRIKCJXSVRI ICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFu eSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnkpICYmICFlbmRzX3dp dGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiRVhDRVBUICggVEFCTEUiLCAiV0lU SCAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJGT1IiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIikp CisJCUNPTVBMRVRFX1dJVEgoIiggVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1B IiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIpKQorCQlDT01QTEVURV9XSVRIKCJUQUJMRSIpOwor CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9S IiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCAiQ1VSUkVOVF9TQ0hFTUEiLCAiRVhDRVBUIiwg IigiLCAiVEFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9RVUVSWV9WRVJCQVRJTShRdWVyeV9mb3Jf bGlzdF9vZl90YWJsZXNfaW5fY3VycmVudF9zY2hlbWEpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNS RUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIsICJT Q0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIikpCisJeworCQlzZXRfY29t cGxldGlvbl9yZWZlcmVuY2UocHJldjRfd2QpOworCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJB VElNKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9zY2hlbWEpOworCX0KKwllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMi LCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIsIE1hdGNo QW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCIpIik7 CiAJLyogQ29tcGxldGUgIkNSRUFURSBQVUJMSUNBVElPTiA8bmFtZT4gWy4uLl0gV0lUSCIgKi8K IAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueU4sICJX SVRIIiwgIigiKSkKIAkJQ09NUExFVEVfV0lUSCgicHVibGlzaCIsICJwdWJsaXNoX2dlbmVyYXRl ZF9jb2x1bW5zIiwgInB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290Iik7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggODliNGJiMTRmNjIuLjUzZTNkN2M2ZjNkIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC0xOTEsNyArMTkxLDggQEAgZXh0ZXJuIExp c3QgKkdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1bHQsCiAJCQkJCQkJ CQkJCVB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAkJCQkJCQkJCQkJT2lkIHJlbGlk KTsKIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lk LCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwpOworCQkJ CQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLAorCQkJCQkJCQkJCQlMaXN0ICpleGNlcHRfcHVi aWRzKTsKIAogZXh0ZXJuIGJvb2wgaXNfcHVibGlzaGFibGVfcmVsYXRpb24oUmVsYXRpb24gcmVs KTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQgcHViaWQpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAppbmRleCA0Y2Y0NWMxN2NjNS4uOTNjNzczMzE0 MzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCkBAIC0yNyw2ICsyNyw3 IEBAIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCk7CiBleHRlcm4gdm9pZCBSZW1vdmVQdWJsaWNhdGlvbkJ5 SWQoT2lkIHB1YmlkKTsKIGV4dGVybiB2b2lkIFJlbW92ZVB1YmxpY2F0aW9uUmVsQnlJZChPaWQg cHJvaWQpOwogZXh0ZXJuIHZvaWQgUmVtb3ZlUHVibGljYXRpb25TY2hlbWFCeUlkKE9pZCBwc29p ZCk7CitleHRlcm4gdm9pZCBSZW1vdmVQdWJsaWNhdGlvbkV4Y2VwdEZvclJlbGF0aW9uKE9pZCBy ZWxpZCk7CiAKIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyUHVibGljYXRpb25Pd25lcihjb25z dCBjaGFyICpuYW1lLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBBbHRlclB1YmxpY2F0 aW9uT3duZXJfb2lkKE9pZCBwdWJpZCwgT2lkIG5ld093bmVySWQpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCmluZGV4IDkxMzc3YTZjZGUzLi45OGEwM2MwZWVkYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aApAQCAtNDQ5Myw2ICs0NDkzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25PYmpTcGVj CiAJUHVibGljYXRpb25PYmpTcGVjVHlwZSBwdWJvYmp0eXBlOwkvKiB0eXBlIG9mIHRoaXMgcHVi bGljYXRpb24gb2JqZWN0ICovCiAJY2hhcgkgICAqbmFtZTsKIAlQdWJsaWNhdGlvblRhYmxlICpw dWJ0YWJsZTsKKwlMaXN0CSAgICpleGNlcHRfdGFibGVzOwkvKiB0YWJsZXMgc3BlY2lmaWVkIGlu IHRoZSBFWENFUFQgY2xhdXNlIChmb3IKKwkJCQkJCQkJICogVEFCTEVTIElOIFNDSEVNQSkgKi8K IAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3du ICovCiB9IFB1YmxpY2F0aW9uT2JqU3BlYzsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dAppbmRleCAyOWU1NGIyMTRhMC4uYmEwMWM3MjBkNGUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC0yNzAsNiArMjcwLDEyIEBAIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTIgRk9SIEFM TCBUQUJMRVMgRVhDRVBUICh0ZXN0CiBFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJ0 ZXN0cHViX3RibDEiCiBMSU5FIDE6IC4uLl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUyIEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCAodGVzdHB1Yl90Yi4uLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIGZhaWwgLSBFWENFUFQg aXMgbm90IGFsbG93ZWQgZm9yIEZPUiBUQUJMRSBwdWJsaWNhdGlvbnMKK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX2V4Y2VwdF9lcnIKKyAgICBGT1IgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0 cHViX3RibDIgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibDMpOworRVJST1I6ICBFWENFUFQgaXMg bm90IGFsbG93ZWQgZm9yIFRBQkxFIHB1YmxpY2F0aW9uIG9iamVjdHMKK0xJTkUgMjogICAgIEZP UiBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMiBFWENFUFQgKFRBQkxFIHRlc3RwLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC0tIFNFVCBBTEwgVEFCTEVTL1NFUVVFTkNF UwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NzAs NyArNDc2LDEwMyBAQCBISU5UOiAgQ2hhbmdlIHRoZSBwdWJsaWNhdGlvbidzIEVYQ0VQVCBjbGF1 c2UgdXNpbmcgQUxURVIgUFVCTElDQVRJT04gLi4uIFNFVCBBTAogUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKIERST1AgVEFCTEUgdGVzdHB1Yl9yb290LCB0ZXN0cHViX3BhcnQxLCB0YWJfbWFp bjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yjg7Ci0tLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9u cyB3aXRoIFNFUVVFTkNFUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCistLSBFWENFUFQgdGVzdHMgZm9yIFRBQkxFUyBJTiBTQ0hFTUEKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXMgPSAnRVJST1InOworLS0gQ3JlYXRlIHRhYmxlcyBpbiBwdWJfdGVzdCBmb3IgdGhlc2UgdGVz dHMKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSAoYSBpbnQgcHJpbWFyeSBr ZXksIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczIgKHggaW50 IHByaW1hcnkga2V5LCB5IHRleHQpOworLS0gQ3JlYXRlIHNhbWUtbmFtZWQgdGFibGVzIGluIHB1 YmxpYyB0byB2ZXJpZnkgdW5xdWFsaWZpZWQgRVhDRVBUIGVudHJpZXMKKy0tIGFyZSBxdWFsaWZp ZWQgd2l0aCB0aGUgbmFtZWQgc2NoZW1hLCBub3QgcHVibGljCitDUkVBVEUgVEFCTEUgdGVzdHB1 Yl9ub3BrIChmb28gaW50LCBiYXIgaW50KTsKK0NSRUFURSBUQUJMRSB0ZXN0cHViX3RibF9zMSAo YSBpbnQgcHJpbWFyeSBrZXksIGIgdGV4dCk7CistLSBCYXNpYzogZXhjbHVkZSBvbmUgdGFibGUg ZnJvbSBhIHNjaGVtYSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2No ZW1hX2V4Y2VwdDEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNj cmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAK K1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAg ICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiCisKKy0tIEV4Y2x1ZGUgbXVsdGlwbGUgdGFibGVz IHVzaW5nIHVucXVhbGlmaWVkIG5hbWVzOyBzYW1lLW5hbWVkIHRhYmxlcyBleGlzdCBpbgorLS0g cHVibGljIHRvIGNvbmZpcm0gdW5xdWFsaWZpZWQgbmFtZXMgcmVzb2x2ZSB0byBwdWJfdGVzdCwg bm90IHB1YmxpYworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKyAg ICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJfbm9w aywgdGVzdHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MgorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZy b20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVz dC50ZXN0cHViX25vcGsiCisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorCistLSBmYWls OiBFWENFUFQgdGFibGUgYmVsb25ncyB0byBhIGRpZmZlcmVudCBzY2hlbWEKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdF93cm9uZ3NjaGVtYQorICAgIEZPUiBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7CitFUlJPUjog IHRhYmxlICJwdWJsaWMudGVzdHB1Yl90YmwxIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJl bG9uZyB0byBzY2hlbWEgInB1Yl90ZXN0IgorTElORSAyOiAgICAgRk9SIFRBQkxFUyBJTiBTQ0hF TUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHAuLi4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gZmFpbDogY3Jv c3Mtc2NoZW1hIEVYQ0VQVCBub3QgYWxsb3dlZDsgZWFjaCBFWENFUFQgaXMgYm91bmQgdG8gaXRz IGltbWVkaWF0ZSBzY2hlbWEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9jcm9z c3NjaGVtYQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBwdWJsaWMgRVhDRVBU IChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgcHVibGljLnRlc3RwdWJfdGJsMSk7CitF UlJPUjogIHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIgaW4gRVhDRVBUIGNsYXVzZSBk b2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hICJwdWJsaWMiCitMSU5FIDI6IC4uLlIgVEFCTEVTIElO IFNDSEVNQSBwdWJfdGVzdCwgcHVibGljIEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudC4uLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KKy0tIE11bHRpcGxlIHNjaGVtYXMgZWFjaCB3aXRoIHRoZWlyIG93biBFWENFUFQgY2xhdXNl CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpCisgICAgRk9S IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMSksCisgICAgICAgICAgICAgICAgICBwdWJsaWMgRVhDRVBUIChUQUJMRSB0ZXN0cHVi X3RibDEpOworXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X3NjaGVtYV9leGNlcHRfbXVsdGkKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNj aGVtYXM6CisgICAgInB1Yl90ZXN0IgorICAgICJwdWJsaWMiCitFeGNlcHQgdGFibGVzOgorICAg ICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKwor LS0gZmFpbDogdGFibGUgYXBwZWFycyBpbiBib3RoIHRoZSBleHBsaWNpdCB0YWJsZSBsaXN0IGFu ZCB0aGUgRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2Nv bmZsaWN0CisgICAgRk9SIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBUQUJMRVMgSU4g U0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOwor RVJST1I6ICB0YWJsZSAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiIGNhbm5vdCBhcHBlYXIgaW4g Ym90aCB0aGUgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1c2UKKy0tIGZhaWw6IG5vbmV4 aXN0ZW50IHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X2V4Y2VwdF9ub3JlbAorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAo VEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUpOworRVJST1I6ICByZWxhdGlvbiAicHVi X3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUiIGRvZXMgbm90IGV4aXN0CistLSBmYWlsOiBwYXJ0aXRp b24gY2Fubm90IGFwcGVhciBpbiBFWENFUFQgY2xhdXNlOyBvbmx5IHJvb3QgdGFibGVzIGFyZSBh bGxvd2VkCitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyAoYSBpbnQpIFBB UlRJVElPTiBCWSBMSVNUIChhKTsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRf cyBQQVJUSVRJT04gT0YgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBGT1IgVkFMVUVTIElOICgx KTsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9wYXJ0aXRpb24KKyAgICBGT1Ig VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJf cGFydF9zKTsKK0VSUk9SOiAgY2Fubm90IHNwZWNpZnkgcmVsYXRpb24gInB1Yl90ZXN0LnRlc3Rw dWJfcGFydF9zIiBpbiB0aGUgcHVibGljYXRpb24gRVhDRVBUIGNsYXVzZQorREVUQUlMOiAgVGhp cyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgaW5kaXZpZHVhbCBwYXJ0aXRpb25zLgor LS0gZmFpbDogVEFCTEUga2V5d29yZCBpcyByZXF1aXJlZCBmb3IgdGhlIGZpcnN0IGVudHJ5IGlu IHRoZSBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfbm9r dworICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAodGVzdHB1Yl9ub3Br KTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgInRlc3RwdWJfbm9wayIKK0xJTkUg MjogICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAodGVzdHB1Yl9ub3Br KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor LS0gQ2xlYW51cAorUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK0RST1AgVEFCTEUgcHViX3Rl c3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOworRFJPUCBUQUJMRSBw dWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zIENBU0NBREU7CitEUk9QIFRBQkxFIHRlc3RwdWJfbm9w aywgdGVzdHB1Yl90YmxfczE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aTsK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gVGVzdHMg Zm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBDUkVBVEUgU0VRVUVOQ0UgcmVncmVzc19wdWJfc2VxMDsK IENSRUFURSBTRVFVRU5DRSBwdWJfdGVzdC5yZWdyZXNzX3B1Yl9zZXExOwogLS0gRk9SIEFMTCBT RVFVRU5DRVMKQEAgLTE5NTMsNiArMjA1NSwyNyBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi MV9mb3JzY2hlbWEgQUREIFRBQkxFUyBJTiBTQ0hFTUEgZm9vLCBiYXIgKGEsIGIpOwogRVJST1I6 ICBjb2x1bW4gc3BlY2lmaWNhdGlvbiBub3QgYWxsb3dlZCBmb3Igc2NoZW1hCiBMSU5FIDE6IC4u LlRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIEFERCBUQUJMRVMgSU4gU0NIRU1BIGZvbywgYmFyIChh LCBiKS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KKy0tIEVYQ0VQVCBjbGF1c2Ugd2l0aCBDVVJSRU5UX1NDSEVNQTogY3Jv c3Mtc2NoZW1hIGVudHJ5IG11c3QgYmUgcmVqZWN0ZWQKK1NFVCBzZWFyY2hfcGF0aCA9IHB1Yl90 ZXN0MTsKKy0tIHF1YWxpZmllZCBuYW1lIGZyb20gd3Jvbmcgc2NoZW1hIC0+IGVycm9yCitDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9jdXJzY2hfZXhjZXB0IEZPUiBUQUJMRVMgSU4gU0NIRU1B IENVUlJFTlRfU0NIRU1BIEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QyLnRibDEpOworRVJST1I6ICB0 YWJsZSAicHViX3Rlc3QyLnRibDEiIGluIEVYQ0VQVCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRv IHNjaGVtYSAicHViX3Rlc3QxIgorLS0gdW5xdWFsaWZpZWQgbmFtZSBpbXBsaWNpdGx5IHF1YWxp ZmllZCB3aXRoIGN1cnJlbnQgc2NoZW1hIChwdWJfdGVzdDEudGJsKQorU0VUIGNsaWVudF9taW5f bWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4 Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBDVVJSRU5UX1NDSEVNQSBFWENFUFQgKFRBQkxFIHRi bCk7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworXGRScCsgdGVzdHB1Yl9jdXJzY2hfZXhj ZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2N1cnNjaF9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNj cmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAK K1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0MSIKK0V4Y2VwdCB0YWJsZXM6Cisg ICAgInB1Yl90ZXN0MS50YmwiCisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9jdXJzY2hfZXhj ZXB0OworUkVTRVQgc2VhcmNoX3BhdGg7CiAtLSBjbGVhbnVwIHB1Yl90ZXN0MSBzY2hlbWEgZm9y IGludmFsaWRhdGlvbiB0ZXN0cwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjJfZm9yc2NoZW1h IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDE7CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3Rw dWIzX2ZvcnNjaGVtYSwgdGVzdHB1YjRfZm9yc2NoZW1hLCB0ZXN0cHViNV9mb3JzY2hlbWEsIHRl c3RwdWI2X2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3J0YWJsZTsKQEAgLTIzMDQsNiArMjQyNyw3IEBA IERST1AgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXJfZHVtbXk7CiAtLSBUZXN0IHBnX2dl dF9wdWJsaWNhdGlvbl90YWJsZXModGV4dFtdLCBvaWQpIGZ1bmN0aW9uCiBDUkVBVEUgU0NIRU1B IGdwdF90ZXN0X3NjaDsKIENSRUFURSBUQUJMRSBncHRfdGVzdF9zY2gudGJsX3NjaCAoaWQgaW50 KTsKK0NSRUFURSBUQUJMRSBncHRfdGVzdF9zY2gudGJsX3NjaDIgKGlkIGludCk7CiBDUkVBVEUg VEFCTEUgdGJsX25vcm1hbCAoaWQgaW50KTsKIENSRUFURSBUQUJMRSB0YmxfcGFyZW50IChpZDEg aW50LCBpZDIgaW50LCBpZDMgaW50KSBQQVJUSVRJT04gQlkgUkFOR0UgKGlkMSk7CiBDUkVBVEUg VEFCTEUgdGJsX3BhcnQxIFBBUlRJVElPTiBPRiB0YmxfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAo MSkgVE8gKDEwKTsKQEAgLTIzMTQsNiArMjQzOCw3IEBAIENSRUFURSBQVUJMSUNBVElPTiBwdWJf YWxsX25vX3ZpYXJvb3QgRk9SIEFMTCBUQUJMRVMgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9u CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9leGNlcHQgRk9SIEFMTCBUQUJMRVMgRVhDRVBU IChUQUJMRSB0YmxfcGFyZW50LCBncHRfdGVzdF9zY2gudGJsX3NjaCkgV0lUSCAocHVibGlzaF92 aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfYWxsX2V4 Y2VwdF9ub192aWFyb290IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgdGJsX3BhcmVudCwg Z3B0X3Rlc3Rfc2NoLnRibF9zY2gpIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0g ZmFsc2UpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9zY2hlbWEgRk9SIFRBQkxFUyBJTiBTQ0hF TUEgZ3B0X3Rlc3Rfc2NoOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9zY2hlbWFfZXhjZXB0IEZP UiBUQUJMRVMgSU4gU0NIRU1BIGdwdF90ZXN0X3NjaCBFWENFUFQgKFRBQkxFIGdwdF90ZXN0X3Nj aC50Ymxfc2NoKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfbm9ybWFsIEZPUiBUQUJMRSB0Ymxf bm9ybWFsIFdIRVJFIChpZCA8IDEwKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfcGFydF9sZWFm IEZPUiBUQUJMRSB0YmxfcGFydDEgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBm YWxzZSk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX3BhcnRfcGFyZW50IEZPUiBUQUJMRSB0Ymxf cGFyZW50IChpZDEsIGlkMikgV0hFUkUgKGlkMSA9IDEwKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdCA9IHRydWUpOwpAQCAtMjQ2NSw2ICsyNTkwLDE4IEBAIFNFTEVDVCAqIEZST00g dGVzdF9ncHQoQVJSQVlbJ3B1Yl9hbGxfZXhjZXB0X25vX3ZpYXJvb3QnXSwgJ3RibF9wYXJ0MScp OyAtLSBubyByCiAtLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tCiAoMCByb3dzKQog CistLSB0ZXN0IGZvciBFWENFUFQgY2xhdXNlIHdpdGggc2NoZW1hIHB1YmxpY2F0aW9uCitTRUxF Q1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfc2NoZW1hX2V4Y2VwdCddLCAnZ3B0X3Rlc3Rf c2NoLnRibF9zY2gnKTsgLS0gbm8gcmVzdWx0IChleGNsdWRlZCkKKyBwdWJuYW1lIHwgcmVsbmFt ZSB8IGF0dHJzIHwgcXVhbCAKKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0KKygw IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVzdF9ncHQoQVJSQVlbJ3B1Yl9zY2hlbWFfZXhjZXB0 J10sICdncHRfdGVzdF9zY2gudGJsX3NjaDInKTsgLS0gb25lIHJvdyAoaW5jbHVkZWQgdmlhIHNj aGVtYSkKKyAgICAgIHB1Ym5hbWUgICAgICB8IHJlbG5hbWUgIHwgYXR0cnMgfCBxdWFsIAorLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tCisgcHViX3NjaGVtYV9l eGNlcHQgfCB0Ymxfc2NoMiB8IDEgICAgIHwgCisoMSByb3cpCisKIC0tIHR3byByb3dzIHdpdGgg ZGlmZmVyZW50IHJvdyBmaWx0ZXIKIFNFTEVDVCAqIEZST00gdGVzdF9ncHQoQVJSQVlbJ3B1Yl9h bGwnLCAncHViX25vcm1hbCddLCAndGJsX25vcm1hbCcpOwogICBwdWJuYW1lICAgfCAgcmVsbmFt ZSAgIHwgYXR0cnMgfCAgIHF1YWwgICAgCkBAIC0yNTE3LDYgKzI2NTQsNyBAQCBEUk9QIFBVQkxJ Q0FUSU9OIHB1Yl9hbGxfbm9fdmlhcm9vdDsKIERST1AgUFVCTElDQVRJT04gcHViX2FsbF9leGNl cHQ7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0X25vX3ZpYXJvb3Q7CiBEUk9QIFBV QkxJQ0FUSU9OIHB1Yl9zY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9zY2hlbWFfZXhjZXB0 OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfbm9ybWFsOwogRFJPUCBQVUJMSUNBVElPTiBwdWJfcGFy dF9sZWFmOwogRFJPUCBQVUJMSUNBVElPTiBwdWJfcGFydF9wYXJlbnQ7CkBAIC0yNTI1LDcgKzI2 NjMsOSBAQCBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9wYXJ0X3BhcmVudF9jaGlsZDsKIERST1AgVklF VyBncHRfdGVzdF92aWV3OwogRFJPUCBUQUJMRSB0Ymxfbm9ybWFsLCB0YmxfcGFyZW50LCB0Ymxf cGFydDE7CiBEUk9QIFNDSEVNQSBncHRfdGVzdF9zY2ggQ0FTQ0FERTsKLU5PVElDRTogIGRyb3Ag Y2FzY2FkZXMgdG8gdGFibGUgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gKK05PVElDRTogIGRyb3AgY2Fz Y2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxl IGdwdF90ZXN0X3NjaC50Ymxfc2NoCitkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGdwdF90ZXN0X3Nj aC50Ymxfc2NoMgogLS0gc3RhZ2Ugb2JqZWN0cyBmb3IgcGdfZHVtcCB0ZXN0cwogQ1JFQVRFIFND SEVNQSBwdWJtZSBDUkVBVEUgVEFCTEUgdDAgKGMgaW50LCBkIGludCkgQ1JFQVRFIFRBQkxFIHQx IChjIGludCk7CiBDUkVBVEUgU0NIRU1BIHB1Ym1lMiBDUkVBVEUgVEFCTEUgdDAgKGMgaW50LCBk IGludCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXggMDQxZTE0YTRkZTYu LjRiYzBlMmZmMjNkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlv bi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMjMs NiArMTIzLDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2Vw dHRhYmxlMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKFRBQkwKIFxkIHRlc3RwdWJfdGJsMQogLS0g ZmFpbCAtIGZpcnN0IHRhYmxlIGluIHRoZSBFWENFUFQgbGlzdCBzaG91bGQgdXNlIFRBQkxFIGtl eXdvcmQKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJs ZTIgRk9SIEFMTCBUQUJMRVMgRVhDRVBUICh0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMik7Cist LSBmYWlsIC0gRVhDRVBUIGlzIG5vdCBhbGxvd2VkIGZvciBGT1IgVEFCTEUgcHVibGljYXRpb25z CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfZXJyCisgICAgRk9SIFRBQkxFIHRl c3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyIEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwzKTsKIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBTRVQgQUxM IFRBQkxFUy9TRVFVRU5DRVMKQEAgLTIyMCw3ICsyMjMsNzEgQEAgUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKIERST1AgVEFCTEUgdGVzdHB1Yl9yb290LCB0ZXN0cHViX3BhcnQxLCB0YWJfbWFp bjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yjg7CiAKLS0tLSBUZXN0cyBmb3IgcHVibGljYXRp b25zIHdpdGggU0VRVUVOQ0VTCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKy0tIEVYQ0VQVCB0ZXN0cyBmb3IgVEFCTEVTIElOIFNDSEVNQQorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTRVQgY2xpZW50X21pbl9tZXNz YWdlcyA9ICdFUlJPUic7CistLSBDcmVhdGUgdGFibGVzIGluIHB1Yl90ZXN0IGZvciB0aGVzZSB0 ZXN0cworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIChhIGludCBwcmltYXJ5 IGtleSwgYiB0ZXh0KTsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMiAoeCBp bnQgcHJpbWFyeSBrZXksIHkgdGV4dCk7CistLSBDcmVhdGUgc2FtZS1uYW1lZCB0YWJsZXMgaW4g cHVibGljIHRvIHZlcmlmeSB1bnF1YWxpZmllZCBFWENFUFQgZW50cmllcworLS0gYXJlIHF1YWxp ZmllZCB3aXRoIHRoZSBuYW1lZCBzY2hlbWEsIG5vdCBwdWJsaWMKK0NSRUFURSBUQUJMRSB0ZXN0 cHViX25vcGsgKGZvbyBpbnQsIGJhciBpbnQpOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsX3Mx IChhIGludCBwcmltYXJ5IGtleSwgYiB0ZXh0KTsKKworLS0gQmFzaWM6IGV4Y2x1ZGUgb25lIHRh YmxlIGZyb20gYSBzY2hlbWEgcHVibGljYXRpb24KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X3NjaGVtYV9leGNlcHQxCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBU IChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9l eGNlcHQxCisKKy0tIEV4Y2x1ZGUgbXVsdGlwbGUgdGFibGVzIHVzaW5nIHVucXVhbGlmaWVkIG5h bWVzOyBzYW1lLW5hbWVkIHRhYmxlcyBleGlzdCBpbgorLS0gcHVibGljIHRvIGNvbmZpcm0gdW5x dWFsaWZpZWQgbmFtZXMgcmVzb2x2ZSB0byBwdWJfdGVzdCwgbm90IHB1YmxpYworQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJfbm9waywgdGVzdHB1Yl90YmxfczEpOwor XGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MgorCistLSBmYWlsOiBFWENFUFQgdGFibGUgYmVs b25ncyB0byBhIGRpZmZlcmVudCBzY2hlbWEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4 Y2VwdF93cm9uZ3NjaGVtYQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQ VCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7CisKKy0tIGZhaWw6IGNyb3NzLXNjaGVtYSBF WENFUFQgbm90IGFsbG93ZWQ7IGVhY2ggRVhDRVBUIGlzIGJvdW5kIHRvIGl0cyBpbW1lZGlhdGUg c2NoZW1hCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfY3Jvc3NzY2hlbWEKKyAg ICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCwgcHVibGljIEVYQ0VQVCAoVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1YmxpYy50ZXN0cHViX3RibDEpOworCistLSBNdWx0aXBs ZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVpciBvd24gRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aQorICAgIEZPUiBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpLAorICAg ICAgICAgICAgICAgICAgcHVibGljIEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwxKTsKK1xkUnAr IHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aQorCistLSBmYWlsOiB0YWJsZSBhcHBlYXJzIGlu IGJvdGggdGhlIGV4cGxpY2l0IHRhYmxlIGxpc3QgYW5kIHRoZSBFWENFUFQgY2xhdXNlCitDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfY29uZmxpY3QKKyAgICBGT1IgVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl90YmxfczEsIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CisKKy0tIGZhaWw6IG5vbmV4aXN0ZW50IHRh YmxlIGluIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9u b3JlbAorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVi X3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUpOworCistLSBmYWlsOiBwYXJ0aXRpb24gY2Fubm90IGFw cGVhciBpbiBFWENFUFQgY2xhdXNlOyBvbmx5IHJvb3QgdGFibGVzIGFyZSBhbGxvd2VkCitDUkVB VEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyAoYSBpbnQpIFBBUlRJVElPTiBCWSBM SVNUIChhKTsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyBQQVJUSVRJT04g T0YgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBGT1IgVkFMVUVTIElOICgxKTsKK0NSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9wYXJ0aXRpb24KKyAgICBGT1IgVEFCTEVTIElOIFND SEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydF9zKTsKKwor LS0gZmFpbDogVEFCTEUga2V5d29yZCBpcyByZXF1aXJlZCBmb3IgdGhlIGZpcnN0IGVudHJ5IGlu IHRoZSBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfbm9r dworICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAodGVzdHB1Yl9ub3Br KTsKKworLS0gQ2xlYW51cAorUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK0RST1AgVEFCTEUg cHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOworRFJPUCBU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zIENBU0NBREU7CitEUk9QIFRBQkxFIHRlc3Rw dWJfbm9waywgdGVzdHB1Yl90YmxfczE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1h X2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9t dWx0aTsKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCist LSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIENSRUFURSBTRVFVRU5DRSByZWdyZXNzX3B1 Yl9zZXEwOwogQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0LnJlZ3Jlc3NfcHViX3NlcTE7CiAKQEAg LTExODksNiArMTI1NiwxOCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEg U0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxLCBwdWJfdGVzdDE7CiBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgQUREIFRBQkxFUyBJTiBTQ0hFTUEgZm9vIChhLCBiKTsK IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBBREQgVEFCTEVTIElOIFNDSEVN QSBmb28sIGJhciAoYSwgYik7CiAKKy0tIEVYQ0VQVCBjbGF1c2Ugd2l0aCBDVVJSRU5UX1NDSEVN QTogY3Jvc3Mtc2NoZW1hIGVudHJ5IG11c3QgYmUgcmVqZWN0ZWQKK1NFVCBzZWFyY2hfcGF0aCA9 IHB1Yl90ZXN0MTsKKy0tIHF1YWxpZmllZCBuYW1lIGZyb20gd3Jvbmcgc2NoZW1hIC0+IGVycm9y CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9jdXJzY2hfZXhjZXB0IEZPUiBUQUJMRVMgSU4g U0NIRU1BIENVUlJFTlRfU0NIRU1BIEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QyLnRibDEpOworLS0g dW5xdWFsaWZpZWQgbmFtZSBpbXBsaWNpdGx5IHF1YWxpZmllZCB3aXRoIGN1cnJlbnQgc2NoZW1h IChwdWJfdGVzdDEudGJsKQorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVN QSBDVVJSRU5UX1NDSEVNQSBFWENFUFQgKFRBQkxFIHRibCk7CitSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOworXGRScCsgdGVzdHB1Yl9jdXJzY2hfZXhjZXB0CitEUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWJfY3Vyc2NoX2V4Y2VwdDsKK1JFU0VUIHNlYXJjaF9wYXRoOworCiAtLSBjbGVhbnVwIHB1 Yl90ZXN0MSBzY2hlbWEgZm9yIGludmFsaWRhdGlvbiB0ZXN0cwogQUxURVIgUFVCTElDQVRJT04g dGVzdHB1YjJfZm9yc2NoZW1hIERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDE7CiBEUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWIzX2ZvcnNjaGVtYSwgdGVzdHB1YjRfZm9yc2NoZW1hLCB0ZXN0 cHViNV9mb3JzY2hlbWEsIHRlc3RwdWI2X2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3J0YWJsZTsKQEAg LTE0NDMsNiArMTUyMiw3IEBAIERST1AgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXJfZHVt bXk7CiAtLSBUZXN0IHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXModGV4dFtdLCBvaWQpIGZ1bmN0 aW9uCiBDUkVBVEUgU0NIRU1BIGdwdF90ZXN0X3NjaDsKIENSRUFURSBUQUJMRSBncHRfdGVzdF9z Y2gudGJsX3NjaCAoaWQgaW50KTsKK0NSRUFURSBUQUJMRSBncHRfdGVzdF9zY2gudGJsX3NjaDIg KGlkIGludCk7CiBDUkVBVEUgVEFCTEUgdGJsX25vcm1hbCAoaWQgaW50KTsKIENSRUFURSBUQUJM RSB0YmxfcGFyZW50IChpZDEgaW50LCBpZDIgaW50LCBpZDMgaW50KSBQQVJUSVRJT04gQlkgUkFO R0UgKGlkMSk7CiBDUkVBVEUgVEFCTEUgdGJsX3BhcnQxIFBBUlRJVElPTiBPRiB0YmxfcGFyZW50 IEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwKTsKQEAgLTE0NTQsNiArMTUzNCw3IEBAIENSRUFU RSBQVUJMSUNBVElPTiBwdWJfYWxsX25vX3ZpYXJvb3QgRk9SIEFMTCBUQUJMRVMgV0lUSCAocHVi bGlzaF92aWFfcGFydGl0aW9uCiBDUkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9leGNlcHQgRk9S IEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSB0YmxfcGFyZW50LCBncHRfdGVzdF9zY2gudGJsX3Nj aCkgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKIENSRUFURSBQVUJM SUNBVElPTiBwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAo VEFCTEUgdGJsX3BhcmVudCwgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gpIFdJVEggKHB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290ID0gZmFsc2UpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9zY2hlbWEg Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgZ3B0X3Rlc3Rfc2NoOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1 Yl9zY2hlbWFfZXhjZXB0IEZPUiBUQUJMRVMgSU4gU0NIRU1BIGdwdF90ZXN0X3NjaCBFWENFUFQg KFRBQkxFIGdwdF90ZXN0X3NjaC50Ymxfc2NoKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfbm9y bWFsIEZPUiBUQUJMRSB0Ymxfbm9ybWFsIFdIRVJFIChpZCA8IDEwKTsKIENSRUFURSBQVUJMSUNB VElPTiBwdWJfcGFydF9sZWFmIEZPUiBUQUJMRSB0YmxfcGFydDEgV0lUSCAocHVibGlzaF92aWFf cGFydGl0aW9uX3Jvb3QgPSBmYWxzZSk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX3BhcnRfcGFy ZW50IEZPUiBUQUJMRSB0YmxfcGFyZW50IChpZDEsIGlkMikgV0hFUkUgKGlkMSA9IDEwKSBXSVRI IChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUpOwpAQCAtMTUxMCw2ICsxNTkxLDEw IEBAIFNFTEVDVCAqIEZST00gdGVzdF9ncHQoQVJSQVlbJ3B1Yl9hbGxfZXhjZXB0X25vX3ZpYXJv b3QnXSwgJ2dwdF90ZXN0X3NjaC50Ymxfc2NoCiBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZ WydwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290J10sICd0YmxfcGFyZW50Jyk7IC0tIG5vIHJlc3Vs dCAoZXhjbHVkZWQpCiBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxsX2V4Y2Vw dF9ub192aWFyb290J10sICd0YmxfcGFydDEnKTsgLS0gbm8gcmVzdWx0CiAKKy0tIHRlc3QgZm9y IEVYQ0VQVCBjbGF1c2Ugd2l0aCBzY2hlbWEgcHVibGljYXRpb24KK1NFTEVDVCAqIEZST00gdGVz dF9ncHQoQVJSQVlbJ3B1Yl9zY2hlbWFfZXhjZXB0J10sICdncHRfdGVzdF9zY2gudGJsX3NjaCcp OyAtLSBubyByZXN1bHQgKGV4Y2x1ZGVkKQorU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsn cHViX3NjaGVtYV9leGNlcHQnXSwgJ2dwdF90ZXN0X3NjaC50Ymxfc2NoMicpOyAtLSBvbmUgcm93 IChpbmNsdWRlZCB2aWEgc2NoZW1hKQorCiAtLSB0d28gcm93cyB3aXRoIGRpZmZlcmVudCByb3cg ZmlsdGVyCiBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxsJywgJ3B1Yl9ub3Jt YWwnXSwgJ3RibF9ub3JtYWwnKTsKIApAQCAtMTUzOCw2ICsxNjIzLDcgQEAgRFJPUCBQVUJMSUNB VElPTiBwdWJfYWxsX25vX3ZpYXJvb3Q7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0 OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290OwogRFJPUCBQVUJM SUNBVElPTiBwdWJfc2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiBwdWJfc2NoZW1hX2V4Y2VwdDsK IERST1AgUFVCTElDQVRJT04gcHViX25vcm1hbDsKIERST1AgUFVCTElDQVRJT04gcHViX3BhcnRf bGVhZjsKIERST1AgUFVCTElDQVRJT04gcHViX3BhcnRfcGFyZW50OwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzN19leGNlcHQucGwKaW5kZXggOGM1OGQyODJlZWUuLjE4YzdiMmMxZmNhIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCisrKyBiL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwKQEAgLTI0LDE0ICsyNCwxNyBAQCBteSAkcmVz dWx0OwogCiBzdWIgdGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24KIHsKLQlteSAoJHB1YnZpYXJv b3QpID0gQF87CisJbXkgKCRwdWJ2aWFyb290LCAkcHVic3FsKSA9IEBfOworCSRwdWJzcWwgLy89 CisJICAiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBGT1IgQUxMIFRBQkxFUyBFWENF UFQgKFRBQkxFIHJvb3QxKSI7CisJJHB1YnNxbCAuPSAiIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290ID0gJHB1YnZpYXJvb3QpIjsKIAogCSMgSWYgdGhlIHJvb3QgcGFydGl0aW9uZWQg dGFibGUgaXMgaW4gdGhlIEVYQ0VQVCBjbGF1c2UsIGFsbCBpdHMKIAkjIHBhcnRpdGlvbnMgYXJl IGV4Y2x1ZGVkIGZyb20gcHVibGljYXRpb24sIHJlZ2FyZGxlc3Mgb2YgdGhlCiAJIyBwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdCBzZXR0aW5nLgogCSRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KAogCQkncG9zdGdyZXMnLCBxcSgKLQkJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBG T1IgQUxMIFRBQkxFUyBFWENFUFQgKFRBQkxFIHJvb3QxKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdCA9ICRwdWJ2aWFyb290KTsKKwkJJHB1YnNxbDsKIAkJSU5TRVJUIElOVE8gcm9v dDEgVkFMVUVTICgxKSwgKDEwMSk7CiAJKSk7CiAJJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCkBAIC0yMjMsNiArMjI2LDEzMSBAQCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoCiB0ZXN0X2V4Y2VwdF9yb290X3BhcnRpdGlvbignZmFsc2UnKTsKIHRlc3RfZXhjZXB0 X3Jvb3RfcGFydGl0aW9uKCd0cnVlJyk7CiAKKyMgU2FtZSB2YWxpZGF0aW9uIHVzaW5nIFRBQkxF UyBJTiBTQ0hFTUEgaW5zdGVhZCBvZiBGT1IgQUxMIFRBQkxFUy4KK215ICRzY2hlbWFfcHViID0K KyAgIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEg cHVibGljIEVYQ0VQVCAoVEFCTEUgcHVibGljLnJvb3QxKSI7Cit0ZXN0X2V4Y2VwdF9yb290X3Bh cnRpdGlvbignZmFsc2UnLCAkc2NoZW1hX3B1Yik7Cit0ZXN0X2V4Y2VwdF9yb290X3BhcnRpdGlv bigndHJ1ZScsICRzY2hlbWFfcHViKTsKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorIyBFWENFUFQgdGVzdCBjYXNlcyBmb3IgVEFCTEVTIElOIFNDSEVN QQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIENy ZWF0ZSBhIGRlZGljYXRlZCBzY2hlbWEgd2l0aCB0d28gdGFibGVzOiBvbmUgdG8gYmUgcHVibGlz aGVkIGFuZCBvbmUgdG8gYmUKKyMgZXhjbHVkZWQuICBBbHNvIGNyZWF0ZSBpbmhlcml0ZWQgdGFi bGVzIHRvIHZlcmlmeSBPTkxZIHNlbWFudGljcy4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBTQ0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUg c2NoMS50YWJfcHVibGlzaGVkIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSw1KSBBUyBhOwor CUNSRUFURSBUQUJMRSBzY2gxLnRhYl9leGNsdWRlZCBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVz KDEsNSkgQVMgYTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5wYXJlbnQgKGEgaW50KTsKKwlDUkVBVEUg VEFCTEUgc2NoMS5jaGlsZCAoYiBpbnQpIElOSEVSSVRTIChzY2gxLnBhcmVudCk7CispKTsKKwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBT Q0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWJfcHVibGlzaGVkIChhIGludCk7CisJ Q1JFQVRFIFRBQkxFIHNjaDEudGFiX2V4Y2x1ZGVkIChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNj aDEucGFyZW50IChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEuY2hpbGQgKGIgaW50KSBJTkhF UklUUyAoc2NoMS5wYXJlbnQpOworKSk7CisKKyMgQmFzaWMgdGVzdDogaW5pdGlhbCBzeW5jIHJl c3BlY3RzIEVYQ0VQVC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBQVUJMSUNBVElPTiBzY2hfcHViIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNjaDEgRVhD RVBUIChUQUJMRSBzY2gxLnRhYl9leGNsdWRlZCkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gc2NoX3N1YiBDT05ORUNU SU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHNjaF9wdWIiCispOworJG5vZGVf c3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAn c2NoX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX3B1Ymxpc2hlZCIpOwor aXMoJHJlc3VsdCwgcXEoNSksCisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBpbml0aWFsIHN5 bmMgY29waWVzIGluY2x1ZGVkIHRhYmxlJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFi X2V4Y2x1ZGVkIik7CitpcygkcmVzdWx0LCBxcSgwKSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENF UFQ6IGluaXRpYWwgc3luYyBza2lwcyBleGNsdWRlZCB0YWJsZScpOworCisjIERNTDogb25seSB0 aGUgaW5jbHVkZWQgdGFibGUgc2hvdWxkIGJlIHJlcGxpY2F0ZWQuCiskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYl9wdWJs aXNoZWQgVkFMVUVTICg2KTsKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYl9leGNsdWRlZCBWQUxVRVMg KDYpOworKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3NjaF9zdWInKTsK KworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9wdWJsaXNoZWQiKTsKK2lzKCRyZXN1bHQs IHFxKDYpLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogRE1MIG9uIGluY2x1ZGVkIHRhYmxl IGlzIHJlcGxpY2F0ZWQnKTsKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfZXhjbHVkZWQi KTsKK2lzKCRyZXN1bHQsIHFxKDApLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogRE1MIG9u IGV4Y2x1ZGVkIHRhYmxlIGlzIG5vdCByZXBsaWNhdGVkJyk7CisKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2No X3B1YicpOworCisjIEluaGVyaXRlZCB0YWJsZXM6IGV4Y2x1ZGluZyB0aGUgcGFyZW50ICh3aXRo b3V0IE9OTFkpIGFsc28gZXhjbHVkZXMgdGhlIGNoaWxkLgorJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHNjaF9wdWIgRk9SIFRBQkxF UyBJTiBTQ0hFTUEgc2NoMSBFWENFUFQgKFRBQkxFIHNjaDEucGFyZW50KSIKKyk7Ciskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBz Y2hfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1 YiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9k ZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEuY2hpbGQgVkFMVUVTIChnZW5lcmF0ZV9zZXJp ZXMoMSw1KSwgZ2VuZXJhdGVfc2VyaWVzKDEsNSkpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgnc2NoX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLmNoaWxk Iik7CitpcygkcmVzdWx0LCBxcSgwKSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IGV4Y2x1 ZGluZyBwYXJlbnQgKHdpdGhvdXQgT05MWSkgYWxzbyBleGNsdWRlcyBjaGlsZCcKKyk7CisKKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04g c2NoX3N1YicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1Ag UFVCTElDQVRJT04gc2NoX3B1YicpOworCisjIFRlc3QgdGhhdCBFWENFUFQgKFRBQkxFIE9OTFkg cGFyZW50KSBleGNsdWRlcyBvbmx5IHRoZSBwYXJlbnQgaXRzZWxmLCBub3QgaXRzCisjIGNoaWxk LiAgVHJ1bmNhdGUgY2hpbGQgZmlyc3Qgc28gcm93cyBmcm9tIHRoZSBwcmV2aW91cyB0ZXN0IGFy ZSBub3QgY29waWVkIGJ5CisjIHRoZSBpbml0aWFsIHRhYmxlIHN5bmMgb2YgdGhlIG5leHQgc3Vi c2NyaXB0aW9uLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1RSVU5D QVRFIHNjaDEuY2hpbGQnKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAnVFJVTkNBVEUgc2NoMS5jaGlsZCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHNjaF9wdWIgRk9SIFRBQkxFUyBJTiBTQ0hF TUEgc2NoMSBFWENFUFQgKFRBQkxFIE9OTFkgc2NoMS5wYXJlbnQpIgorKTsKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHNjaF9z dWIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBzY2hfcHViIgor KTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1 Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS5jaGlsZCBWQUxVRVMgKGdlbmVyYXRlX3Nlcmllcygx LDUpLCBnZW5lcmF0ZV9zZXJpZXMoMSw1KSkiCispOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCdzY2hfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEuY2hpbGQiKTsK K2lzKCRyZXN1bHQsIHFxKDUpLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogT05MWSBwYXJl bnQgaW4gRVhDRVBUIGRvZXMgbm90IGV4Y2x1ZGUgY2hpbGQnKTsKKworJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiBzY2hfc3ViJyk7Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiBz Y2hfcHViJyk7CisKKyMgQ2xlYW51cCBzY2hlbWEgdGFibGVzIGJlZm9yZSB0aGUgbXVsdGktcHVi bGljYXRpb24gc2VjdGlvbi4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdEUk9QIFNDSEVNQSBzY2gxIENBU0NBREUnKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAnRFJPUCBTQ0hFTUEgc2NoMSBDQVNDQURFJyk7CisKICMgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICMgVGVzdCB3aGVuIGEgc3Vic2Ny aXB0aW9uIGlzIHN1YnNjcmliaW5nIHRvIG11bHRpcGxlIHB1YmxpY2F0aW9ucwogIyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjU0LDYgKzM4Miw3IEBA ICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAogCURST1AgUFVCTElDQVRJT04gdGFwX3B1YjI7 CiAJVFJVTkNBVEUgdGFiMTsKICkpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViJyk7CiAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXEoVFJVTkNBVEUgdGFiMSkpOwogCiAjIE9LIHdoZW4gYSB0 YWJsZSBpcyBleGNsdWRlZCBieSBwdWIxIEVYQ0VQVCBjbGF1c2UsIGJ1dCBpdCBpcyBpbmNsdWRl ZCBieSBwdWIyCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000d3a2240653e3aed1 Content-Type: application/octet-stream; name="v12-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Disposition: attachment; filename="v12-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq7xbf941 RnJvbSA1NGRmYjJhMTNlOTE1ZTE1YzJkYTU1ODAxOTg0ODUzMDc0Njg2NGYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBGcmksIDI5IE1heSAyMDI2IDIwOjA0OjU3ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTIgMi8zXSBBZGQgRVhDRVBUIHN1cHBvcnQgdG8gQUxURVIgUFVCTElDQVRJT04gQUREIFRBQkxF UyBJTgogU0NIRU1BCgpFeHRlbmQgdGhlIEVYQ0VQVCBjbGF1c2Ugc3VwcG9ydCB0byBhbGxvdyB0 YWJsZXMgdG8gYmUgZXhjbHVkZWQgd2hlbgphZGRpbmcgYSBzY2hlbWEgdG8gYSBwdWJsaWNhdGlv biB2aWEgQUxURVIgUFVCTElDQVRJT04gLi4uIEFERC4KClN5bnRheDoKICBBTFRFUiBQVUJMSUNB VElPTiBwdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcyBFWENFUFQgKFRBQkxFIHMudDEpOwoKU2lu Y2UgcGdfZHVtcCB1c2VzIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQsIHN1cHBvcnQgZm9yIGl0 IGlzCmluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9w dWJsaWNhdGlvbi5zZ21sICAgfCAgNTIgKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cv cGdfcHVibGljYXRpb24uYyAgICAgIHwgIDE5ICsrLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgIHwgIDMwICsrKysrLQogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgfCAgMjQgKysrKysKIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgIHwgIDE3ICsrKysKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IHwgIDMyICsrKysrKy0KIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgIHwgIDIwICsrKy0KIHNyYy90ZXN0L3N1YnNjcmlw dGlvbi90LzAzN19leGNlcHQucGwgICAgIHwgIDMyICsrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwg MzE4IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbAppbmRleCA1MjExNGExNmEzOS4uOGQ5ZDM1NzNiZDcgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTMxLDcgKzMxLDcgQEAgQUxURVIg UFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBSRU5BTUUgVE8gPHIKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFz ZT4KIAogICAgIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9hbmRf Y29sdW1uczwvcmVwbGFjZWFibGU+IFssIC4uLiBdCi0gICAgVEFCTEVTIElOIFNDSEVNQSB7IDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwg Q1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorICAgIFRBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc19pbl9zY2hlbWE8L3JlcGxhY2VhYmxlPiBbLCAu Li4gXQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fYWxsX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAt NDcsNiArNDcsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKIAogICAgIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4u IF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lv bjwvcmVwbGFjZWFibGU+ICkgXQogCis8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dGFibGVzX2luX3NjaGVtYTwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisg ICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2Vh YmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWyBFWENFUFQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQor CiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxl X29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCiAgICAgVEFCTEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBd CkBAIC0xMTAsNiArMTE0LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICA8bGl0ZXJh bD5BREQgVEFCTEU8L2xpdGVyYWw+LgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgPGxp dGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlIHVzZWQgd2l0aAorICAgPGxpdGVy YWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGV4Y2x1ZGUgc3BlY2lmaWMgdGFi bGVzIGZyb20gdGhlCisgICBwdWJsaWNhdGlvbi4gVXNpbmcgPGxpdGVyYWw+RFJPUCBUQUJMRVMg SU4gU0NIRU1BPC9saXRlcmFsPiBvbiBhIHB1YmxpY2F0aW9uCisgICB3aWxsIGF1dG9tYXRpY2Fs bHkgYWxzbyByZW1vdmUgYW55IGFzc29jaWF0ZWQgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPgor ICAgZW50cmllcy4KKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIGZvdXJ0aCB2YXJpYW50 IG9mIHRoaXMgY29tbWFuZCBsaXN0ZWQgaW4gdGhlIHN5bm9wc2lzIGNhbiBjaGFuZ2UKICAgIGFs bCBvZiB0aGUgcHVibGljYXRpb24gcHJvcGVydGllcyBzcGVjaWZpZWQgaW4KQEAgLTE5OCw2ICsy MTAsMzQgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+RVhD RVBUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9vYmplY3Q8 L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgV2hlbiB1c2VkIHdpdGggPGxpdGVyYWw+QUREIFRBQkxFUyBJ TiBTQ0hFTUE8L2xpdGVyYWw+LCBzcGVjaWZpZXMKKyAgICAgIHRhYmxlcyB0byBiZSBleGNsdWRl ZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4gIEVhY2ggbmFtZWQKKyAgICAgIHRhYmxlIG11c3QgYmVs b25nIHRvIHRoZSBzY2hlbWEgc3BlY2lmaWVkIGluIHRoZSBzYW1lCisgICAgICA8bGl0ZXJhbD5U QUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBjbGF1c2UuICBUYWJsZSBuYW1lcyBtYXkgYmUKKyAg ICAgIHNjaGVtYS1xdWFsaWZpZWQgb3IgdW5xdWFsaWZpZWQ7IHVucXVhbGlmaWVkIG5hbWVzIGFy ZSBpbXBsaWNpdGx5CisgICAgICBxdWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hIG5hbWVkIGluIHRo ZSBzYW1lIGNsYXVzZS4gIFNlZQorICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXB1Ymxp Y2F0aW9uIi8+IGZvciBmdXJ0aGVyIGRldGFpbHMgb24gdGhlCisgICAgICBzZW1hbnRpY3Mgb2Yg PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAg ICAgIEZvciA8bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gcHVibGljYXRp b25zLCB0aGUKKyAgICAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGlzIHNjaGVt YS1zY29wZWQuICBJZiBhIHRhYmxlIGxpc3RlZCBpbgorICAgICAgdGhlIDxsaXRlcmFsPkVYQ0VQ VDwvbGl0ZXJhbD4gY2xhdXNlIGlzIGxhdGVyIG1vdmVkIHRvIGEgZGlmZmVyZW50IHNjaGVtYQor ICAgICAgdXNpbmcgPGNvbW1hbmQ+QUxURVIgVEFCTEUgLi4uIFNFVCBTQ0hFTUE8L2NvbW1hbmQ+ LCB0aGUgZXhjbHVzaW9uIGlzCisgICAgICByZW1vdmVkOyB0aGUgdGFibGUgd2lsbCB0aGVuIGJl IHB1Ymxpc2hlZCBpZiBpdHMgbmV3IHNjaGVtYSBpcyBwYXJ0IG9mIGEKKyAgICAgIHB1YmxpY2F0 aW9uLiAgSWYgdGhlIHRhYmxlIGlzIHN1YnNlcXVlbnRseSBtb3ZlZCBiYWNrIHRvIHRoZSBvcmln aW5hbAorICAgICAgc2NoZW1hLCB0aGUgZXhjbHVzaW9uIGlzIG5vdCByZXN0b3JlZCwgYW5kIG11 c3QgYmUgcmUtZXN0YWJsaXNoZWQKKyAgICAgIGV4cGxpY2l0bHkgdXNpbmcgPGNvbW1hbmQ+QUxU RVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LiAgRHJvcHBpbmcgYSB0YWJsZQorICAgICAgYWx3YXlz IHJlbW92ZXMgaXQgZnJvbSB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UsIHJl Z2FyZGxlc3Mgb2YKKyAgICAgIHB1YmxpY2F0aW9uIHR5cGUuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg PHRlcm0+PGxpdGVyYWw+U0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1Ymxp Y2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4K ICAgICA8bGlzdGl0ZW0+CkBAIC0yODgsNiArMzI4LDE2IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNh bGVzX3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8 L3Byb2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBBZGQgc2NoZW1hIDxz dHJ1Y3RuYW1lPnNhbGVzPC9zdHJ1Y3RuYW1lPiB0byB0aGUgcHVibGljYXRpb24KKyAgIDxzdHJ1 Y3RuYW1lPnNhbGVzX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiwgZXhjbHVkaW5nIHRoZQorICAg PHN0cnVjdG5hbWU+c2FsZXMuaW50ZXJuYWw8L3N0cnVjdG5hbWU+IGFuZAorICAgPHN0cnVjdG5h bWU+c2FsZXMuZHJhZnRzPC9zdHJ1Y3RuYW1lPiB0YWJsZXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitB TFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgVEFCTEVTIElOIFNDSEVNQSBz YWxlcyBFWENFUFQgKFRBQkxFIGludGVybmFsLCBkcmFmdHMpOworPC9wcm9ncmFtbGlzdGluZz4K KyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgQWRkIHRhYmxlcyA8c3RydWN0bmFtZT51c2Vyczwv c3RydWN0bmFtZT4sCiAgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT4gYW5k IHNjaGVtYQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDQwODliNTA1Zjg5 Li5kMWZmODgzOTAzNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtNjQ5 LDE1ICs2NDksMTggQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGlj YXRpb25SZWxJbmZvICpwcmksCiAJICogaGVyZSwgYXMgQ3JlYXRlUHVibGljYXRpb24oKSBmdW5j dGlvbiBpbnZhbGlkYXRlcyBhbGwgcmVsYXRpb25zIGFzIHBhcnQKIAkgKiBvZiBkZWZpbmluZyBh IEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLgogCSAqCi0JICogRm9yIEFMVEVSIFBVQkxJQ0FU SU9OLCBpbnZhbGlkYXRpb24gaXMgbmVlZGVkIG9ubHkgd2hlbiBhZGRpbmcgYW4KLQkgKiBFWENF UFQgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhbHJlYWR5IG1hcmtlZCBhcyBBTEwgVEFCTEVTLiBG b3IKLQkgKiBwdWJsaWNhdGlvbnMgdGhhdCB3ZXJlIG9yaWdpbmFsbHkgZW1wdHkgb3IgZGVmaW5l ZCBhcyBBTEwgU0VRVUVOQ0VTIGFuZAotCSAqIGFyZSBiZWluZyBjb252ZXJ0ZWQgdG8gQUxMIFRB QkxFUywgaW52YWxpZGF0aW9uIGlzIHNraXBwZWQgaGVyZSwgYXMKLQkgKiBBbHRlclB1YmxpY2F0 aW9uQWxsRmxhZ3MoKSBmdW5jdGlvbiBpbnZhbGlkYXRlcyBhbGwgcmVsYXRpb25zIHdoaWxlCi0J ICogbWFya2luZyB0aGUgcHVibGljYXRpb24gYXMgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbi4KKwkg KiBGb3IgQUxURVIgUFVCTElDQVRJT04sIGludmFsaWRhdGlvbiBpcyBuZWVkZWQgd2hlbiBhZGRp bmcgYW4gRVhDRVBUCisJICogdGFibGUgdG8gZWl0aGVyIGEgRk9SIEFMTCBUQUJMRVMgcHVibGlj YXRpb24gKHB1Yi0+YWxsdGFibGVzIGlzIHRydWUpCisJICogb3IgYSBGT1IgVEFCTEVTIElOIFND SEVNQSBwdWJsaWNhdGlvbiAoaXNfc2NoZW1hX3B1YmxpY2F0aW9uIGlzIHRydWUpLgorCSAqIFRo ZSBleGNlcHRpb246IHdoZW4gYSBwdWJsaWNhdGlvbiBpcyBiZWluZyBjb252ZXJ0ZWQgdG8gRk9S IEFMTCBUQUJMRVMKKwkgKiAocHViLT5hbGx0YWJsZXMgaXMgc3RpbGwgZmFsc2UgYXQgdGhpcyBw b2ludCksCisJICogQWx0ZXJQdWJsaWNhdGlvbkFsbEZsYWdzKCkgd2lsbCBwZXJmb3JtIGEgZnVs bCBpbnZhbGlkYXRpb24sIHNvIHdlIHNraXAKKwkgKiBpdCBoZXJlLgogCSAqLwotCWludmFsX2V4 Y2VwdF90YWJsZSA9IChhbHRlcl9zdG10ICE9IE5VTEwpICYmIHB1Yi0+YWxsdGFibGVzICYmCi0J CShhbHRlcl9zdG10LT5mb3JfYWxsX3RhYmxlcyAmJiBwcmktPmV4Y2VwdCk7CisJaW52YWxfZXhj ZXB0X3RhYmxlID0gKGFsdGVyX3N0bXQgIT0gTlVMTCkgJiYgcHJpLT5leGNlcHQgJiYKKwkJKHB1 Yi0+YWxsdGFibGVzCisJCSA/IGFsdGVyX3N0bXQtPmZvcl9hbGxfdGFibGVzCisJCSA6IGlzX3Nj aGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpOwogCiAJaWYgKCFwcmktPmV4Y2VwdCB8fCBpbnZhbF9l eGNlcHRfdGFibGUpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRl eCA0OWY2MTczYmUxNy4uYmU0ZDU3OGI3YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0 aW9uY21kcy5jCkBAIC03MCw2ICs3MCwxMyBAQCBzdGF0aWMgdm9pZCBQdWJsaWNhdGlvbkRyb3BU YWJsZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIHZv aWQgUHVibGljYXRpb25BZGRTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2NoZW1hcywgYm9vbCBp Zl9ub3RfZXhpc3RzLAogCQkJCQkJCQkgIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KTsKIHN0 YXRpYyB2b2lkIFB1YmxpY2F0aW9uRHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFz LCBib29sIG1pc3Npbmdfb2spOworc3RhdGljIHZvaWQgQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMo QWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJCQkJCQlIZWFwVHVwbGUgdHVwLCBMaXN0 ICpzY2hlbWFpZGxpc3QsCisJCQkJCQkJCQlMaXN0ICpleGNlcHRfcHVidGFibGVzKTsKK3N0YXRp YyB2b2lkIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsCisJCQkJCQkJCQkJCSAgIEhlYXBUdXBsZSB0dXAsCisJCQkJCQkJCQkJCSAg IExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJCQkJCSAgIExpc3QgKnNjaGVtYWlkbGlz dCk7CiBzdGF0aWMgY2hhciBkZWZHZXRHZW5lcmF0ZWRDb2xzT3B0aW9uKERlZkVsZW0gKmRlZik7 CiAKIApAQCAtMTUwMCw3ICsxNTA3LDggQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKICAqLwogc3RhdGljIHZvaWQKIEFs dGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAotCQkJCQkJ SGVhcFR1cGxlIHR1cCwgTGlzdCAqc2NoZW1haWRsaXN0KQorCQkJCQkJSGVhcFR1cGxlIHR1cCwg TGlzdCAqc2NoZW1haWRsaXN0LAorCQkJCQkJTGlzdCAqZXhjZXB0X3B1YnRhYmxlcykKIHsKIAlG b3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RS VUNUKHR1cCk7CiAKQEAgLTE1NzcsNiArMTU4NSw5NyBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1h cyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJICovCiAJCVB1YmxpY2F0aW9uQWRkU2No ZW1hcyhwdWJmb3JtLT5vaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgc3RtdCk7CiAJfQorCisJLyoK KwkgKiBJbmNyZW1lbnQgdGhlIGNvbW1hbmQgY291bnRlciBzbyB0aGF0IGlzX3NjaGVtYV9wdWJs aWNhdGlvbigpIGluCisJICogR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcygpIGNhbiBzZWUg dGhlIGp1c3QtaW5zZXJ0ZWQgc2NoZW1hCisJICogcm93cyB3aGVuIEFsdGVyUHVibGljYXRpb25T Y2hlbWFFeGNlcHRUYWJsZXMgcnVucyBuZXh0LgorCSAqLworCWlmIChzdG10LT5hY3Rpb24gPT0g QVBfQWRkT2JqZWN0cyB8fCBzdG10LT5hY3Rpb24gPT0gQVBfU2V0T2JqZWN0cykKKwkJQ29tbWFu ZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCUFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJs ZXMoc3RtdCwgdHVwLCBleGNlcHRfcHVidGFibGVzLCBzY2hlbWFpZGxpc3QpOworfQorCisvKgor ICogQWx0ZXIgdGhlIEVYQ0VQVCBsaXN0IG9mIGEgc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9uLgor ICoKKyAqIEFkZHMsIHJlbW92ZXMsIG9yIHJlcGxhY2VzIGV4Y2VwdC10YWJsZSBlbnRyaWVzIGlu IHBnX3B1YmxpY2F0aW9uX3JlbAorICogKHJvd3Mgd2l0aCBwcmV4Y2VwdCA9IHRydWUpLiAgVGhl c2UgZW50cmllcyBzdXBwcmVzcyBwdWJsaWNhdGlvbiBvZiB0aGUKKyAqIG5hbWVkIHRhYmxlcyB0 aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBjb3ZlcmVkIGJ5IGEgRk9SIFRBQkxFUyBJTiBTQ0hFTUEK KyAqIGNsYXVzZS4KKyAqLworc3RhdGljIHZvaWQKK0FsdGVyUHVibGljYXRpb25TY2hlbWFFeGNl cHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJCQkJIEhlYXBUdXBsZSB0 dXAsIExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJIExpc3QgKnNjaGVtYWlkbGlzdCkK K3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikg R0VUU1RSVUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CisKKwkvKgorCSAq IE5vdGhpbmcgdG8gZG8gaWYgbm8gRVhDRVBUIGVudHJpZXMuCisJICovCisJaWYgKCFleGNlcHRf cHVidGFibGVzKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBF WENFUFQgZW50cmllcyBmb3Igc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9ucworCSAqIG9ubHkuICBG b3IgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb25zLCBFWENFUFQgZW50cmllcyBhcmUgYWxyZWFk eQorCSAqIHByb2Nlc3NlZCBieSBBbHRlclB1YmxpY2F0aW9uVGFibGVzKCkuCisJICovCisJaWYg KHNjaGVtYWlkbGlzdCA9PSBOSUwgJiYgIWlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpCisJ CXJldHVybjsKKworCS8qCisJICogRHJvcHBpbmcgYSBzY2hlbWEgZnJvbSBhIHB1YmxpY2F0aW9u IHJlbW92ZXMgYWxsIGl0cyBFWENFUFQgZW50cmllcyB2aWEKKwkgKiBjYXNjYWRlLiBUaGUgY29u Y2VwdCBvZiAiZHJvcCBhbGwgc2NoZW1hIHRhYmxlcyBmcm9tIHRoZSBwdWJsaWNhdGlvbgorCSAq IEVYQ0VQVCB0aGVzZSBvbmVzIiBpcyBub3Qgc3VwcG9ydGVkLgorCSAqLworCWlmIChzdG10LT5h Y3Rpb24gPT0gQVBfRHJvcE9iamVjdHMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coIkVYQ0VQVCBjbGF1 c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIERST1AgaW4gQUxURVIgUFVCTElDQVRJT04iKSkpOwor CisJLyoKKwkgKiBYWFggRVhDRVBUIHdpdGggU0VUIGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50 ZWQuICBXb3JrYXJvdW5kOiBEUk9QIGFuZAorCSAqIHJlLUFERCB0aGUgc2NoZW1hIHdpdGggdGhl IGRlc2lyZWQgRVhDRVBUIGxpc3QuCisJICovCisJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9TZXRP YmplY3RzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJFWENFUFQgY2xhdXNlIGlzIG5vdCBzdXBwb3J0 ZWQgd2l0aCBTRVQgaW4gQUxURVIgUFVCTElDQVRJT04iKSwKKwkJCQkgZXJyaGludCgiRHJvcCBh bmQgcmUtYWRkIHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVzaXJlZCBFWENFUFQgbGlzdC4iKSkpOwor CisJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzKQorCXsKKwkJTGlzdAkgICAqcmVs czsKKwkJTGlzdAkgICAqZXhwbGljaXRyZWxpZHM7CisKKwkJcmVscyA9IE9wZW5UYWJsZUxpc3Qo ZXhjZXB0X3B1YnRhYmxlcyk7CisKKwkJZXhwbGljaXRyZWxpZHMgPSBHZXRJbmNsdWRlZFB1Ymxp Y2F0aW9uUmVsYXRpb25zKHB1YmlkLAorCQkJCQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9S T09UKTsKKworCQkvKgorCQkgKiBWYWxpZGF0ZSB0aGF0IGVhY2ggZXhjbHVkZWQgdGFibGUgaXMg bm90IGFsc28gaW4gdGhlIGV4cGxpY2l0IHRhYmxlCisJCSAqIGxpc3QgKHdoaWNoIHdvdWxkIGJl IGNvbnRyYWRpY3RvcnkpLgorCQkgKi8KKwkJZm9yZWFjaF9wdHIoUHVibGljYXRpb25SZWxJbmZv LCBwcmksIHJlbHMpCisJCXsKKwkJCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChwcmkt PnJlbGF0aW9uKTsKKworCQkJaWYgKGxpc3RfbWVtYmVyX29pZChleHBsaWNpdHJlbGlkcywgcmVs aWQpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLAorCQkJCQkJZXJybXNnKCJ0YWJsZSBcIiVzXCIgY2Fubm90IGFwcGVh ciBpbiBib3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNsYXVzZSIsCisJCQkJCQkJ ICAgUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUocHJpLT5yZWxhdGlvbikpKTsKKwkJ fQorCisJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1YmlkLCByZWxzLCBmYWxzZSwgc3RtdCk7CisK KwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CisJfQogfQogCiAvKgpAQCAtMTc4NiwxMCArMTg4NSwx MiBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQpCiAJCQkJCWVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwKIAkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpKTsKIAotCQlyZWxhdGlvbnMgPSBsaXN0X2Nv bmNhdChyZWxhdGlvbnMsIGV4Y2VwdF9wdWJ0YWJsZXMpOworCQlpZiAoc3RtdC0+Zm9yX2FsbF90 YWJsZXMpCisJCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsIGV4Y2VwdF9wdWJ0 YWJsZXMpOworCiAJCUFsdGVyUHVibGljYXRpb25UYWJsZXMoc3RtdCwgdHVwLCByZWxhdGlvbnMs IHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwpOwot CQlBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhzdG10LCB0dXAsIHNjaGVtYWlkbGlzdCk7CisJCUFs dGVyUHVibGljYXRpb25TY2hlbWFzKHN0bXQsIHR1cCwgc2NoZW1haWRsaXN0LCBleGNlcHRfcHVi dGFibGVzKTsKIAkJQWx0ZXJQdWJsaWNhdGlvbkFsbEZsYWdzKHN0bXQsIHJlbCwgdHVwKTsKIAl9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCmluZGV4IGEwZjdmOGUyMTY4Li44NWFiM2IwMDg3NSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j CkBAIC01MDE5LDYgKzUwMTksNyBAQCBkdW1wUHVibGljYXRpb25OYW1lc3BhY2UoQXJjaGl2ZSAq Zm91dCwgY29uc3QgUHVibGljYXRpb25TY2hlbWFJbmZvICpwdWJzaW5mbykKIAlQdWJsaWNhdGlv bkluZm8gKnB1YmluZm8gPSBwdWJzaW5mby0+cHVibGljYXRpb247CiAJUFFFeHBCdWZmZXIgcXVl cnk7CiAJY2hhcgkgICAqdGFnOworCWJvb2wJCWhhc19leGNlcHQgPSBmYWxzZTsKIAogCS8qIERv IG5vdGhpbmcgaWYgbm90IGR1bXBpbmcgc2NoZW1hICovCiAJaWYgKCFkb3B0LT5kdW1wU2NoZW1h KQpAQCAtNTAyOSw3ICs1MDMwLDM0IEBAIGR1bXBQdWJsaWNhdGlvbk5hbWVzcGFjZShBcmNoaXZl ICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblNjaGVtYUluZm8gKnB1YnNpbmZvKQogCXF1ZXJ5ID0g Y3JlYXRlUFFFeHBCdWZmZXIoKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQUxURVIg UFVCTElDQVRJT04gJXMgIiwgZm10SWQocHViaW5mby0+ZG9iai5uYW1lKSk7Ci0JYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICJBREQgVEFCTEVTIElOIFNDSEVNQSAlcztcbiIsIGZtdElkKHNjaGVt YWluZm8tPmRvYmoubmFtZSkpOworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQUREIFRBQkxF UyBJTiBTQ0hFTUEgJXMiLCBmbXRJZChzY2hlbWFpbmZvLT5kb2JqLm5hbWUpKTsKKworCS8qCisJ ICogQXBwZW5kIEVYQ0VQVCBjbGF1c2UgZm9yIGFueSB0YWJsZXMgdGhhdCBiZWxvbmcgdG8gdGhp cyBzY2hlbWEKKwkgKiBhbmQgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLgorCSAq LworCWZvciAoU2ltcGxlUHRyTGlzdENlbGwgKmNlbGwgPSBwdWJpbmZvLT5leGNlcHRfdGFibGVz LmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQorCXsKKwkJVGFibGVJbmZvICAqdGJpbmZv ID0gKFRhYmxlSW5mbyAqKSBjZWxsLT5wdHI7CisKKwkJaWYgKHN0cmNtcCh0YmluZm8tPmRvYmou bmFtZXNwYWNlLT5kb2JqLm5hbWUsIHNjaGVtYWluZm8tPmRvYmoubmFtZSkgPT0gMCkKKwkJewor CQkJaWYgKCFoYXNfZXhjZXB0KQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiIEVYQ0VQVCAoIik7CisJCQkJaGFzX2V4Y2VwdCA9IHRydWU7CisJCQl9CisJCQllbHNlCisJ CQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsICIpOworCisJCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIlRBQkxFIE9OTFkgJXMiLCBmbXRJZCh0YmluZm8tPmRvYmoubmFtZSkpOwor CQl9CisJfQorCisJaWYgKGhhc19leGNlcHQpCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiKSIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICI7XG4iKTsKIAogCS8qCiAJ ICogVGhlcmUgaXMgbm8gcG9pbnQgaW4gY3JlYXRpbmcgZHJvcCBxdWVyeSBhcyB0aGUgZHJvcCBp cyBkb25lIGJ5IHNjaGVtYQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCAzZWU5ZmRhNTBl NC4uYjhmNGFhNzY5ZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1w LnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0zMjQyLDYgKzMy NDIsMzAgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9w b3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFURSBQVUJMSUNBVElPTiBwdWIxMScgPT4g eworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBV QkxJQ0FUSU9OIHB1YjExIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBFWENFUFQgKFRB QkxFIHRlc3RfdGFibGUpOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJMSUNB VElPTiBwdWIxMSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5j YXRlJyk7XEUKKwkJCS4qPworCQkJXFFBTFRFUiBQVUJMSUNBVElPTiBwdWIxMSBBREQgVEFCTEVT IElOIFNDSEVNQSBkdW1wX3Rlc3QgRVhDRVBUIChUQUJMRSBPTkxZIHRlc3RfdGFibGUpO1xFCisJ CQkveG1zLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwg fSwKKwl9LAorCisJJ0NSRUFURSBQVUJMSUNBVElPTiBwdWIxMicgPT4geworCQljcmVhdGVfb3Jk ZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEy IEZPUiBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RfdGFibGUs IGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJsZSk7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxR Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUs IGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJLio/CisJCQlcUUFMVEVSIFBVQkxJQ0FUSU9OIHB1 YjEyIEFERCBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBFWENFUFQgKFRBQkxFIE9OTFkgdGVz dF90YWJsZSwgVEFCTEUgT05MWSB0ZXN0X3NlY29uZF90YWJsZSk7XEUKKwkJCS94bXMsCisJCWxp a2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKIAkn Q1JFQVRFIFNVQlNDUklQVElPTiBzdWIxJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJ Y3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIxCmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMKaW5kZXggNTNiYjdjODY3OWIuLmEyOTA5MDJkNjFlIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CkBAIC0yMzczLDYgKzIzNzMsMjMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5f aWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUllfUExVUyhRdWVyeV9mb3JfbGlzdF9vZl9zY2hlbWFz CiAJCQkJCQkJCSAiIEFORCBuc3BuYW1lIE5PVCBMSUtFIEUncGdcXFxcXyUlJyIsCiAJCQkJCQkJ CSAiQ1VSUkVOVF9TQ0hFTUEiKTsKKwkvKiBBZnRlciBhIHNpbmdsZSBzY2hlbWEgbmFtZSBpbiBB REQgY29udGV4dCwgb2ZmZXIgRVhDRVBUICggVEFCTEUgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJB TFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIsICJJTiIsICJT Q0hFTUEiLCBNYXRjaEFueSkgJiYKKwkJCSAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNP TVBMRVRFX1dJVEgoIkVYQ0VQVCAoIFRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1B IiwgTWF0Y2hBbnksICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCBUQUJMRSIpOworCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAi VEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiKSkKKwkJQ09N UExFVEVfV0lUSCgiVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCAiQ1VSUkVO VF9TQ0hFTUEiLCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9RVUVS WV9WRVJCQVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNfaW5fY3VycmVudF9zY2hlbWEpOwor CWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQi LCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFC TEUiKSkKKwl7CisJCXNldF9jb21wbGV0aW9uX3JlZmVyZW5jZShwcmV2NF93ZCk7CisJCUNPTVBM RVRFX1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX3NjaGVt YSk7CisJfQorCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwg IigiLCAiVEFCTEUiLCBNYXRjaEFueU4pICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJ Q09NUExFVEVfV0lUSCgiKSIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBTRVQgKCAq LwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksIE1h dGNoQW55TiwgIlNFVCIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEgoInB1Ymxpc2giLCAicHVibGlz aF9nZW5lcmF0ZWRfY29sdW1ucyIsICJwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCIpOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCBiYTAxYzcyMGQ0ZS4u M2M0NTIxMzliZjkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGlj YXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0 CkBAIC01NjQsMTIgKzU2NCw0MiBAQCBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRf bm9rdwogRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAidGVzdHB1Yl9ub3BrIgogTElO RSAyOiAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHViX25v cGspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQ VCB0ZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhj ZXB0OworLS0gZmFpbDogbm9uLWV4aXN0aW5nIHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUpOworRVJST1I6 ICByZWxhdGlvbiAicHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUiIGRvZXMgbm90IGV4aXN0Cist LSBmYWlsOiBFWENFUFQgdGFibGUgYmVsb25ncyB0byBhIGRpZmZlcmVudCBzY2hlbWEKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7CitFUlJPUjogIHRhYmxl ICJwdWJsaWMudGVzdHB1Yl90YmwxIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0 byBzY2hlbWEgInB1Yl90ZXN0IgorTElORSAxOiAuLi54Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXMuLi4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBmYWlsOiBU QUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUgZmlyc3QgZW50cnkgaW4gRVhDRVBUIGNs YXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHViX25vcGspOworRVJST1I6ICBzeW50YXgg ZXJyb3IgYXQgb3IgbmVhciAidGVzdHB1Yl9ub3BrIgorTElORSAxOiAuLi5sdGVyX2V4Y2VwdCBB REQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm8uLi4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CistLSBBREQ6IHF1YWxpZmllZCBhbmQgdW5xdWFsaWZpZWQgbmFtZXM7IHVucXVhbGlmaWVkIGlz IGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBU IChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgdGVzdHB1Yl90YmxfczIpOworXGRScCsg dGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMg fCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAg ICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QiCitF eGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKyAgICAicHViX3Rl c3QudGVzdHB1Yl90YmxfczIiCisKIC0tIENsZWFudXAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXM7CiBEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMjsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOwog RFJPUCBUQUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxOwotRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHVi X3NjaGVtYV9leGNlcHRfbXVsdGk7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4 Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0 aSwgdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIC0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDRiYzBlMmZmMjNkLi4yNDAxOTBhYTQxZiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMjc4LDEyICsyNzgsMzAgQEAgQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X3BhcnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZXhjZXB0X25va3cKICAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKHRlc3RwdWJfbm9wayk7CiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIHRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTgor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CisKKy0tIGZhaWw6IG5vbi1leGlzdGluZyB0 YWJsZSBpbiBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4 Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0 Lm5vbmV4aXN0ZW50X3RhYmxlKTsKKworLS0gZmFpbDogRVhDRVBUIHRhYmxlIGJlbG9uZ3MgdG8g YSBkaWZmZXJlbnQgc2NoZW1hCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2Vw dCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0 cHViX3RibDEpOworCistLSBmYWlsOiBUQUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUg Zmlyc3QgZW50cnkgaW4gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9h bHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHVi X25vcGspOworCistLSBBREQ6IHF1YWxpZmllZCBhbmQgdW5xdWFsaWZpZWQgbmFtZXM7IHVucXVh bGlmaWVkIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNjaGVtYQorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgdGVzdHB1Yl90YmxfczIp OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKwogLS0gQ2xlYW51cAogUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MyOwogRFJPUCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9z IENBU0NBREU7CiBEUk9QIFRBQkxFIHRlc3RwdWJfbm9waywgdGVzdHB1Yl90YmxfczE7Ci1EUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1 Yl9zY2hlbWFfZXhjZXB0MSwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MiwgdGVzdHB1Yl9zY2hlbWFf ZXhjZXB0X211bHRpLCB0ZXN0cHViX2FsdGVyX2V4Y2VwdDsKIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdp dGggU0VRVUVOQ0VTCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhj ZXB0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbAppbmRleCAxOGM3 YjJjMWZjYS4uMGJhNmQ2ZjhiYjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzN19leGNlcHQucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5w bApAQCAtMzQ3LDYgKzM0NywzOCBAQCBpcygkcmVzdWx0LCBxcSg1KSwKICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOwog JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04g c2NoX3B1YicpOwogCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisjIEFMVEVSIFBVQkxJQ0FUSU9OIEVYQ0VQVCBmb3IgVEFCTEVTIElOIFNDSEVNQQorIyA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIFRydW5jYXRl IHN1YnNjcmliZXIgdGFibGVzIHRvIHJlbW92ZSBkYXRhIGFjY3VtdWxhdGVkIGZyb20gcHJldmlv dXMgdGVzdHMuCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwknVFJV TkNBVEUgc2NoMS50YWJfcHVibGlzaGVkLCBzY2gxLnRhYl9leGNsdWRlZCwgc2NoMS5wYXJlbnQs IHNjaDEuY2hpbGQnKTsKKworIyBBREQ6IGFkZCBhIHNjaGVtYSB3aXRoIGFuIGV4Y2VwdGVkIHRh YmxlOyB2ZXJpZnkgdGhlIGV4Y2VwdCBlbnRyeSB0YWtlcyBlZmZlY3QuCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFBVQkxJQ0FUSU9OIHNjaF9wdWIiKTsK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FU SU9OIHNjaF9wdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEgc2NoMSBFWENFUFQgKFRBQkxFIHNjaDEu dGFiX2V4Y2x1ZGVkKSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzY2hfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJf Y29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1YiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0 X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRy ZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlzaGVkIik7CitpcygkcmVzdWx0LCBxcSg2 KSwKKwknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogaW5jbHVkZWQgdGFi bGUgc3luY2VkJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIik7Citp cygkcmVzdWx0LCBxcSgwKSwKKwknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQ VDogZXhjbHVkZWQgdGFibGUgbm90IHN5bmNlZCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWIn KTsKKwogIyBDbGVhbnVwIHNjaGVtYSB0YWJsZXMgYmVmb3JlIHRoZSBtdWx0aS1wdWJsaWNhdGlv biBzZWN0aW9uLgogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1Ag U0NIRU1BIHNjaDEgQ0FTQ0FERScpOwogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICdEUk9QIFNDSEVNQSBzY2gxIENBU0NBREUnKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0 LTE1NSkKCg== --000000000000d3a2240653e3aed1 Content-Type: application/octet-stream; name="v12-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Disposition: attachment; filename="v12-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq7xbh942 RnJvbSA5ODlhYTAxN2Q0MDc0ZTRhZjJjYTBmNjhhYjc1Mjg5YTFmM2ZhZDY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUdWUsIDIgSnVuIDIwMjYgMTE6Mzk6MzYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MiAzLzNdIEFkZCBFWENFUFQgc3VwcG9ydCB0byBBTFRFUiBQVUJMSUNBVElPTiBTRVQgVEFCTEVT IElOCiBTQ0hFTUEKCkV4dGVuZCBBbHRlclB1YmxpY2F0aW9uRXhjZXB0VGFibGVzKCkgd2l0aCB0 aGUgQVBfU2V0T2JqZWN0cyBjYXNlLAp3aGljaCByZWRlZmluZXMgdGhlIHB1YmxpY2F0aW9uIGFu ZCByZXBsYWNlcyB0aGUgZW50aXJlIEVYQ0VQVCBsaXN0LgoKU3ludGF4OgpBTFRFUiBQVUJMSUNB VElPTiBwdWIgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcyBFWENFUFQgKFRBQkxFIHQxKTsKClRoaXMg cGF0Y2ggYWxzbyBjbGVhbnMgdXAgRVhDRVBUIGVudHJpZXMgd2hlbiBhIHNjaGVtYSBpcyBkcm9w cGVkCmZyb20gdGhlIHB1YmxpY2F0aW9uLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbCAgICAgfCAgMjcgKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgICAgICB8IDEzNSArKysrKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyB8ICAxMCArLQogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICB8ICAxNyArKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgfCAgODYgKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICB8ICAzOCArKysrKysKIHNyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgICAgICAgfCAgODUgKysrKysrKysrKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDM3MSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggOGQ5ZDM1NzNiZDcuLjRiZTA4 NWVmMWIyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCkBAIC05Nyw3 ICs5NywxMSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICAgdXNlZCB3aXRoIGEgcHVibGlj YXRpb24gZGVmaW5lZCB3aXRoIDxsaXRlcmFsPkZPUiBUQUJMRTwvbGl0ZXJhbD4gb3IKICAgIDxs aXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwgcmVwbGFjZXMgdGhlIGxpc3Qg b2YgdGFibGVzL3NjaGVtYXMKICAgIGluIHRoZSBwdWJsaWNhdGlvbiB3aXRoIHRoZSBzcGVjaWZp ZWQgbGlzdDsgdGhlIGV4aXN0aW5nIHRhYmxlcyBvciBzY2hlbWFzCi0gICB0aGF0IHdlcmUgcHJl c2VudCBpbiB0aGUgcHVibGljYXRpb24gd2lsbCBiZSByZW1vdmVkLgorICAgdGhhdCB3ZXJlIHBy ZXNlbnQgaW4gdGhlIHB1YmxpY2F0aW9uIHdpbGwgYmUgcmVtb3ZlZC4gIFdoZW4KKyAgIDxsaXRl cmFsPlNFVCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBpcyB1c2VkIHdpdGggYW4KKyAgIDxs aXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlLCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciBl YWNoIHNjaGVtYSBhcmUKKyAgIHJlcGxhY2VkIHdpdGggdGhlIHNwZWNpZmllZCBsaXN0OyBpZiA8 bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGlzIG9taXR0ZWQKKyAgIGZvciBhIHNjaGVtYSwgYW55 IGV4aXN0aW5nIGV4Y2x1c2lvbnMgZm9yIHRoYXQgc2NoZW1hIGFyZSBjbGVhcmVkLgogICA8L3Bh cmE+CiAKICAgPHBhcmE+CkBAIC0xMTYsMTAgKzEyMCw4IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRP IDxyCiAKICAgPHBhcmE+CiAgICBUaGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2Ug Y2FuIGJlIHVzZWQgd2l0aAotICAgPGxpdGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVy YWw+IHRvIGV4Y2x1ZGUgc3BlY2lmaWMgdGFibGVzIGZyb20gdGhlCi0gICBwdWJsaWNhdGlvbi4g VXNpbmcgPGxpdGVyYWw+RFJPUCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBvbiBhIHB1Ymxp Y2F0aW9uCi0gICB3aWxsIGF1dG9tYXRpY2FsbHkgYWxzbyByZW1vdmUgYW55IGFzc29jaWF0ZWQg PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPgotICAgZW50cmllcy4KKyAgIDxsaXRlcmFsPkFERCBU QUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBleGNsdWRlIHNwZWNpZmljIHRhYmxlcyBmcm9t IGEKKyAgIHNjaGVtYS1sZXZlbCBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpA QCAtMjE0LDcgKzIxNiw4IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICAgPHRlcm0+PGxp dGVyYWw+RVhDRVBUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJs ZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8 bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgotICAgICAgV2hlbiB1c2VkIHdpdGggPGxpdGVyYWw+QURE IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LCBzcGVjaWZpZXMKKyAgICAgIFdoZW4gdXNlZCB3 aXRoIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPgorICAgICAgb3IgPGxp dGVyYWw+U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LCBzcGVjaWZpZXMKICAgICAgIHRh YmxlcyB0byBiZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4gIEVhY2ggbmFtZWQKICAg ICAgIHRhYmxlIG11c3QgYmVsb25nIHRvIHRoZSBzY2hlbWEgc3BlY2lmaWVkIGluIHRoZSBzYW1l CiAgICAgICA8bGl0ZXJhbD5UQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBjbGF1c2UuICBUYWJs ZSBuYW1lcyBtYXkgYmUKQEAgLTMzOCw2ICszNDEsMTggQEAgQUxURVIgUFVCTElDQVRJT04gc2Fs ZXNfcHVibGljYXRpb24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgc2FsZXMgRVhDRVBUIChUQUJMRSBp bnQKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFJlcGxhY2Ug dGhlIHNjaGVtYSBsaXN0IG9mIDxzdHJ1Y3RuYW1lPnNhbGVzX3B1YmxpY2F0aW9uPC9zdHJ1Y3Ru YW1lPiB3aXRoCisgICA8c3RydWN0bmFtZT5zYWxlczwvc3RydWN0bmFtZT4sIGV4Y2x1ZGluZyBv bmx5CisgICA8c3RydWN0bmFtZT5zYWxlcy5kcmFmdHM8L3N0cnVjdG5hbWU+LiBPdGhlciB0aGFu CisgICA8c3RydWN0bmFtZT5zYWxlcy5kcmFmdHM8L3N0cnVjdG5hbWU+LCBhbnkgcHJldmlvdXNs eSBleGNsdWRlZCB0YWJsZXMgZm9yIHNjaGVtYQorICAgPHN0cnVjdG5hbWU+c2FsZXM8L3N0cnVj dG5hbWU+IGFyZSBubyBsb25nZXIgZXhjbHVkZWQuIEFueSBzY2hlbWFzIHByZXZpb3VzbHkgaW4K KyAgIDxzdHJ1Y3RuYW1lPnNhbGVzX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiBhcmUgcmVtb3Zl ZDoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHNhbGVzX3B1YmxpY2F0aW9u IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHNhbGVzIEVYQ0VQVCAoVEFCTEUgZHJhZnRzKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIEFkZCB0YWJsZXMgPHN0cnVj dG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0 cnVjdG5hbWU+IGFuZCBzY2hlbWEKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMK aW5kZXggYmU0ZDU3OGI3YjQuLmJhMjE3NDE4YTNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuYwpAQCAtMTU4OCw4ICsxNTg4LDggQEAgQWx0ZXJQdWJsaWNhdGlvblNjaGVt YXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAKIAkvKgogCSAqIEluY3JlbWVudCB0aGUg Y29tbWFuZCBjb3VudGVyIHNvIHRoYXQgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKCkgaW4KLQkgKiBH ZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKCkgY2FuIHNlZSB0aGUganVzdC1pbnNlcnRlZCBz Y2hlbWEKLQkgKiByb3dzIHdoZW4gQWx0ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyBy dW5zIG5leHQuCisJICogR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcygpIGNhbiBzZWUgdGhl IGp1c3QtaW5zZXJ0ZWQgc2NoZW1hIHJvd3MKKwkgKiB3aGVuIEFsdGVyUHVibGljYXRpb25TY2hl bWFFeGNlcHRUYWJsZXMgcnVucyBuZXh0LgogCSAqLwogCWlmIChzdG10LT5hY3Rpb24gPT0gQVBf QWRkT2JqZWN0cyB8fCBzdG10LT5hY3Rpb24gPT0gQVBfU2V0T2JqZWN0cykKIAkJQ29tbWFuZENv dW50ZXJJbmNyZW1lbnQoKTsKQEAgLTE2MDcsMTYgKzE2MDcsMTggQEAgQWx0ZXJQdWJsaWNhdGlv blNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAgKi8KIHN0YXRpYyB2b2lkCiBB bHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpz dG10LAotCQkJCQkJCSBIZWFwVHVwbGUgdHVwLCBMaXN0ICpleGNlcHRfcHVidGFibGVzLAotCQkJ CQkJCSBMaXN0ICpzY2hlbWFpZGxpc3QpCisJCQkJCQkJCSAgIEhlYXBUdXBsZSB0dXAsIExpc3Qg KmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJCSAgIExpc3QgKnNjaGVtYWlkbGlzdCkKIHsKIAlG b3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RS VUNUKHR1cCk7CiAJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CiAKIAkvKgotCSAqIE5vdGhp bmcgdG8gZG8gaWYgbm8gRVhDRVBUIGVudHJpZXMuCisJICogTm90aGluZyB0byBkbyBpZiB0aGVy ZSBhcmUgbm8gRVhDRVBUIGVudHJpZXMsIHVubGVzcyBoYW5kbGluZyB0aGUgU0VUCisJICogY29t bWFuZCwgYmVjYXVzZSBpZiB0aGUgdXNlciBoYXMgcmVtb3ZlZCBhbGwgZXhjZXB0aW9ucyB3ZSBu ZWVkIHRvIGRyb3AKKwkgKiBhbnkgZXhpc3Rpbmcgb25lcy4KIAkgKi8KLQlpZiAoIWV4Y2VwdF9w dWJ0YWJsZXMpCisJaWYgKCFleGNlcHRfcHVidGFibGVzICYmIHN0bXQtPmFjdGlvbiAhPSBBUF9T ZXRPYmplY3RzKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtMTYzNywxNiArMTYzOSw2IEBAIEFsdGVy UHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJt c2coIkVYQ0VQVCBjbGF1c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIERST1AgaW4gQUxURVIgUFVC TElDQVRJT04iKSkpOwogCi0JLyoKLQkgKiBYWFggRVhDRVBUIHdpdGggU0VUIGlzIG5vdCBjdXJy ZW50bHkgaW1wbGVtZW50ZWQuICBXb3JrYXJvdW5kOiBEUk9QIGFuZAotCSAqIHJlLUFERCB0aGUg c2NoZW1hIHdpdGggdGhlIGRlc2lyZWQgRVhDRVBUIGxpc3QuCi0JICovCi0JaWYgKHN0bXQtPmFj dGlvbiA9PSBBUF9TZXRPYmplY3RzKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkgZXJybXNnKCJFWENFUFQgY2xhdXNl IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBTRVQgaW4gQUxURVIgUFVCTElDQVRJT04iKSwKLQkJCQkg ZXJyaGludCgiRHJvcCBhbmQgcmUtYWRkIHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVzaXJlZCBFWENF UFQgbGlzdC4iKSkpOwotCiAJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzKQogCXsK IAkJTGlzdAkgICAqcmVsczsKQEAgLTE2NzQsNiArMTY2Niw4NCBAQCBBbHRlclB1YmxpY2F0aW9u U2NoZW1hRXhjZXB0VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCiAJCVB1Ymxp Y2F0aW9uQWRkVGFibGVzKHB1YmlkLCByZWxzLCBmYWxzZSwgc3RtdCk7CiAKKwkJQ2xvc2VUYWJs ZUxpc3QocmVscyk7CisJfQorCWVsc2UJCQkJCQkvKiBBUF9TZXRPYmplY3RzICovCisJeworCQlM aXN0CSAgICpvbGRleGNlcHRyZWxpZHMgPSBOSUw7CisJCUxpc3QJICAgKm5ld2V4Y2VwdHJlbGlk cyA9IE5JTDsKKwkJTGlzdAkgICAqZGVscmVsaWRzID0gTklMOworCQlMaXN0CSAgICpyZWxzOwor CQlMaXN0CSAgICpleHBsaWNpdHJlbGlkczsKKworCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNl cHRfcHVidGFibGVzKTsKKworCQkvKiBDb2xsZWN0IE9JRHMgb2YgdGhlIGRlc2lyZWQgbmV3IEVY Q0VQVCBsaXN0LiAqLworCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwgcmVs cykKKwkJCW5ld2V4Y2VwdHJlbGlkcyA9IGxhcHBlbmRfb2lkKG5ld2V4Y2VwdHJlbGlkcywKKwkJ CQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbikpOworCisJCWV4cGxpY2l0 cmVsaWRzID0gR2V0SW5jbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwKKwkJCQkJCQkJ CQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisKKwkJLyoKKwkJICogVmFsaWRhdGUgdGhh dCBlYWNoIGV4Y2x1ZGVkIHRhYmxlIGlzIG5vdCBhbHNvIGluIHRoZSBleHBsaWNpdCB0YWJsZQor CQkgKiBsaXN0ICh3aGljaCB3b3VsZCBiZSBjb250cmFkaWN0b3J5KS4KKwkJICovCisJCWZvcmVh Y2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5mbywgcHJpLCByZWxzKQorCQl7CisJCQlPaWQJCQlyZWxp ZCA9IFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbik7CisKKwkJCWlmIChsaXN0X21lbWJl cl9vaWQoZXhwbGljaXRyZWxpZHMsIHJlbGlkKSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCWVycm1zZygi dGFibGUgXCIlc1wiIGNhbm5vdCBhcHBlYXIgaW4gYm90aCB0aGUgdGFibGUgbGlzdCBhbmQgdGhl IEVYQ0VQVCBjbGF1c2UiLAorCQkJCQkJCSAgIFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25O YW1lKHByaS0+cmVsYXRpb24pKSk7CisJCX0KKworCQkvKgorCQkgKiBHZXQgdGhlIGN1cnJlbnQg c2V0IG9mIEVYQ0VQVCBlbnRyaWVzLiAgT25seSBGT1IgQUxMIFRBQkxFUyBhbmQKKwkJICogc2No ZW1hLWxldmVsIHB1YmxpY2F0aW9ucyBjYW4gaGF2ZSBFWENFUFQgZW50cmllczsgZm9yIGFueSBv dGhlcgorCQkgKiBwdWJsaWNhdGlvbiB0eXBlIG9sZGV4Y2VwdHJlbGlkcyBzdGF5cyBOSUwuCisJ CSAqCisJCSAqIE5vdGU6IHdlIGNoZWNrIGlzX3NjaGVtYV9wdWJsaWNhdGlvbigpIGFnYWluc3Qg dGhlIGN1cnJlbnQgY2F0YWxvZworCQkgKiBzdGF0ZSAoYmVmb3JlIEFsdGVyUHVibGljYXRpb25T Y2hlbWFzIGhhcyBydW4pLCBzbyBpZiB0aGUgY2FsbGVyIGlzCisJCSAqIGRvaW5nIFNFVCBUQUJM RSB0MSB0byBjb252ZXJ0IGEgc2NoZW1hIHB1YmxpY2F0aW9uIGludG8gYSBwbGFpbgorCQkgKiB0 YWJsZSBwdWJsaWNhdGlvbiwgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKCkgc3RpbGwgcmV0dXJucyB0 cnVlIGhlcmUuCisJCSAqIFRoYXQgaXMgaW50ZW50aW9uYWw6IGl0IGxldHMgdXMgZGlzY292ZXIg YW5kIGNsZWFuIHVwIGFueSBzdGFsZQorCQkgKiBFWENFUFQgZW50cmllcyB0aGF0IGJlbG9uZyB0 byB0aGUgb2xkIHNjaGVtYSBkZWZpbml0aW9uLgorCQkgKi8KKwkJaWYgKEdldFB1YmxpY2F0aW9u KHB1YmlkKS0+YWxsdGFibGVzIHx8IGlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpCisJCQlv bGRleGNlcHRyZWxpZHMgPSBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLAorCQkJ CQkJCQkJCQkJCQkgICBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJCS8qIEJ1aWxkIGEgbGlz dCBvZiBvbGQgRVhDRVBUIGVudHJpZXMgbm90IHByZXNlbnQgaW4gdGhlIG5ldyBsaXN0LiAqLwor CQlmb3JlYWNoX29pZChvbGRyZWxpZCwgb2xkZXhjZXB0cmVsaWRzKQorCQl7CisJCQlpZiAoIWxp c3RfbWVtYmVyX29pZChuZXdleGNlcHRyZWxpZHMsIG9sZHJlbGlkKSkKKwkJCQlkZWxyZWxpZHMg PSBsYXBwZW5kX29pZChkZWxyZWxpZHMsIG9sZHJlbGlkKTsKKwkJfQorCisJCS8qIERyb3Agb2xk IEVYQ0VQVCBlbnRyaWVzIG5vdCBwcmVzZW50IGluIHRoZSBuZXcgbGlzdC4gKi8KKwkJZm9yZWFj aF9vaWQocmVsaWQsIGRlbHJlbGlkcykKKwkJeworCQkJT2lkCQkJcHJvaWQ7CisJCQlPYmplY3RB ZGRyZXNzIG9iajsKKworCQkJcHJvaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFVCTElDQVRJT05SRUxN QVAsCisJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJCQlPYmpl Y3RJZEdldERhdHVtKHJlbGlkKSwKKwkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0ocHViaWQpKTsK KwkJCWlmIChPaWRJc1ZhbGlkKHByb2lkKSkKKwkJCXsKKwkJCQlPYmplY3RBZGRyZXNzU2V0KG9i aiwgUHVibGljYXRpb25SZWxSZWxhdGlvbklkLCBwcm9pZCk7CisJCQkJcGVyZm9ybURlbGV0aW9u KCZvYmosIERST1BfQ0FTQ0FERSwgMCk7CisJCQl9CisJCX0KKworCQkvKiBBZGQgbmV3IEVYQ0VQ VCBlbnRyaWVzLCBza2lwcGluZyBhbnkgYWxyZWFkeSBwcmVzZW50LiAqLworCQlQdWJsaWNhdGlv bkFkZFRhYmxlcyhwdWJpZCwgcmVscywgdHJ1ZSwgc3RtdCk7CisKIAkJQ2xvc2VUYWJsZUxpc3Qo cmVscyk7CiAJfQogfQpAQCAtMjM2Myw2ICsyNDMzLDcgQEAgUHVibGljYXRpb25Ecm9wU2NoZW1h cyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMsIGJvb2wgbWlzc2luZ19vaykKIAlmb3JlYWNoKGxj LCBzY2hlbWFzKQogCXsKIAkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rfb2lkKGxjKTsKKwkJTGlz dAkgICAqZXhjZXB0X3JlbGlkczsKIAogCQlwc2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FU SU9OTkFNRVNQQUNFTUFQLAogCQkJCQkJCSAgIEFudW1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNl X29pZCwKQEAgLTIzNzksOCArMjQ1MCw0MCBAQCBQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBw dWJpZCwgTGlzdCAqc2NoZW1hcywgYm9vbCBtaXNzaW5nX29rKQogCQkJCQkJCWdldF9uYW1lc3Bh Y2VfbmFtZShzY2hlbWFpZCkpKSk7CiAJCX0KIAorCQkvKgorCQkgKiBDb2xsZWN0IEVYQ0VQVCBl bnRyaWVzIGZvciB0YWJsZXMgYmVsb25naW5nIHRvIHRoaXMgc2NoZW1hIGJlZm9yZQorCQkgKiBy ZW1vdmluZyB0aGUgc2NoZW1hIGVudHJ5LgorCQkgKi8KKwkJZXhjZXB0X3JlbGlkcyA9IEdldEV4 Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisK IAkJT2JqZWN0QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uTmFtZXNwYWNlUmVsYXRpb25JZCwg cHNpZCk7CiAJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCisJCS8q CisJCSAqIERyb3AgYW55IHByZXhjZXB0IHJvd3MgZm9yIHRhYmxlcyBiZWxvbmdpbmcgdG8gdGhp cyBzY2hlbWEuIFRoZXNlCisJCSAqIHJvd3MgaGF2ZSBubyBwZ19kZXBlbmQgZW50cnkgcG9pbnRp bmcgYXQgdGhlCisJCSAqIHBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSByb3csIHNvIHRoZXkgYXJl IG5vdCBjYXNjYWRlZCBieSB0aGUKKwkJICogcGVyZm9ybURlbGV0aW9uKCkgY2FsbCBhYm92ZSBh bmQgbXVzdCBiZSBjbGVhbmVkIHVwIGV4cGxpY2l0bHkuCisJCSAqLworCQlmb3JlYWNoX29pZChy ZWxpZCwgZXhjZXB0X3JlbGlkcykKKwkJeworCQkJT2lkCQkJcHJvaWQ7CisKKwkJCWlmIChnZXRf cmVsX25hbWVzcGFjZShyZWxpZCkgIT0gc2NoZW1haWQpCisJCQkJY29udGludWU7CisKKwkJCXBy b2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLAorCQkJCQkJCQkJQW51bV9w Z19wdWJsaWNhdGlvbl9yZWxfb2lkLAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCks CisJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJCQlpZiAoT2lkSXNWYWxpZChw cm9pZCkpCisJCQl7CisJCQkJT2JqZWN0QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uUmVsUmVs YXRpb25JZCwgcHJvaWQpOworCQkJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUs IDApOworCQkJfQorCQl9CisKKwkJbGlzdF9mcmVlKGV4Y2VwdF9yZWxpZHMpOwogCX0KIH0KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggN2VlODRl YzFjODMuLjk4MzFiZTU0YjQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9w Z291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0 L3Bnb3V0cHV0LmMKQEAgLTIyMjksNyArMjIyOSw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJICovCiAJCQlpZiAocHViLT5h bGx0YWJsZXMpCiAJCQl7Ci0JCQkJTGlzdAkgICAqZXhjZXB0cHViaWRzID0gTklMOworCQkJCUxp c3QJICAgKmV4Y2VwdF9wdWJpZHMgPSBOSUw7CiAKIAkJCQlpZiAoYW1fcGFydGl0aW9uKQogCQkJ CXsKQEAgLTIyNTIsNyArMjI1Miw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEg KmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJCQkgKiBjbGF1c2UuIFRoZXJlZm9yZSwgZm9y IGEgcGFydGl0aW9uLCBleGNsdXNpb24gbXVzdCBiZQogCQkJCQkgKiBldmFsdWF0ZWQgYXQgdGhl IHRvcC1tb3N0IGFuY2VzdG9yLgogCQkJCQkgKi8KLQkJCQkJZXhjZXB0cHViaWRzID0gR2V0UmVs YXRpb25FeGNsdWRlZFB1YmxpY2F0aW9ucyhsYXN0X2FuY2VzdG9yX3JlbGlkKTsKKwkJCQkJZXhj ZXB0X3B1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMobGFzdF9hbmNlc3Rv cl9yZWxpZCk7CiAJCQkJfQogCQkJCWVsc2UKIAkJCQl7CkBAIC0yMjYwLDEzICsyMjYwLDEzIEBA IGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9u KQogCQkJCQkgKiBGb3IgYSByZWd1bGFyIHRhYmxlIG9yIGEgcm9vdCBwYXJ0aXRpb25lZCB0YWJs ZSwgY2hlY2sKIAkJCQkJICogZXhjbHVzaW9uIG9uIHRhYmxlIGl0c2VsZi4KIAkJCQkJICovCi0J CQkJCWV4Y2VwdHB1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMocHViX3Jl bGlkKTsKKwkJCQkJZXhjZXB0X3B1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlv bnMocHViX3JlbGlkKTsKIAkJCQl9CiAKLQkJCQlpZiAoIWxpc3RfbWVtYmVyX29pZChleGNlcHRw dWJpZHMsIHB1Yi0+b2lkKSkKKwkJCQlpZiAoIWxpc3RfbWVtYmVyX29pZChleGNlcHRfcHViaWRz LCBwdWItPm9pZCkpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwogCi0JCQkJbGlzdF9mcmVlKGV4Y2Vw dHB1Ymlkcyk7CisJCQkJbGlzdF9mcmVlKGV4Y2VwdF9wdWJpZHMpOwogCiAJCQkJaWYgKCFwdWJs aXNoKQogCQkJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCBhMjkwOTAyZDYx ZS4uZThiZmIzNmNiMWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIzOTAsNiArMjM5MCwy MyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAl9CiAJZWxzZSBpZiAo TWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMi LCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIsIE1hdGNo QW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQogCQlDT01QTEVURV9XSVRIKCIpIik7 CisJLyogQWZ0ZXIgYSBzaW5nbGUgc2NoZW1hIG5hbWUgaW4gU0VUIGNvbnRleHQsIG9mZmVyIEVY Q0VQVCAoIFRBQkxFICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnkpICYm CisJCQkgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQg KCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJTRVQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBU IikpCisJCUNPTVBMRVRFX1dJVEgoIiggVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRF UiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hF TUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNF VCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgIkNVUlJFTlRfU0NIRU1BIiwgIkVYQ0VQVCIs ICIoIiwgIlRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9y X2xpc3Rfb2ZfdGFibGVzX2luX2N1cnJlbnRfc2NoZW1hKTsKKwllbHNlIGlmIChNYXRjaGVzKCJB TFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJT Q0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIikpCisJeworCQlzZXRfY29t cGxldGlvbl9yZWZlcmVuY2UocHJldjRfd2QpOworCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJB VElNKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9zY2hlbWEpOworCX0KKwllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiU0VUIiwgIlRBQkxFUyIs ICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIiwgTWF0Y2hB bnlOKSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIikiKTsK IAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCBNYXRjaEFueU4sICJTRVQiLCAiKCIp KQogCQlDT01QTEVURV9XSVRIKCJwdWJsaXNoIiwgInB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMi LCAicHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QiKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggM2M0NTIxMzliZjkuLmY3ZjM5NGEzNWJmIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtNTk0LDYgKzU5NCw5MiBA QCBFeGNlcHQgdGFibGVzOgogICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKICAgICAicHVi X3Rlc3QudGVzdHB1Yl90YmxfczIiCiAKKy0tIFNFVDogcmVwbGFjZSB0aGUgZXhjZXB0IGxpc3Qg KGtlZXAgc2FtZSBzY2hlbWEsIGRpZmZlcmVudCBleGNlcHQgdGFibGUpCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBF WENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyKTsKK1xkUnArIHRlc3RwdWJfYWx0 ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3Qg fCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAg ICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxl czoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczIiCisKKy0tIGZhaWw6IHRhYmxlIGluIEVY Q0VQVCBjbGF1c2UgYWxzbyBhcHBlYXJzIGluIHRoZSBleHBsaWNpdCB0YWJsZSBsaXN0CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl90YmxfczEsIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3RibF9zMSk7CitFUlJPUjogIHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3Ri bF9zMSIgY2Fubm90IGFwcGVhciBpbiBib3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBU IGNsYXVzZQorLS0gZXJyb3I6IGV4Y2VwdCB0YWJsZSdzIHNjaGVtYSAocHVibGljKSBub3QgaW4g dGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1hIGxpc3QgKHB1Yl90ZXN0KQorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhD RVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1YmxpYy50 ZXN0cHViX3RibDEiIGluIEVYQ0VQVCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAi cHViX3Rlc3QiCitMSU5FIDE6IC4uLnhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0 IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlcy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFNFVDogdW5xdWFsaWZpZWQg bmFtZSBpbiBFWENFUFQgaXMgaW1wbGljaXRseSBxdWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAg ICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRh YmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiCisKKy0tIFNFVCB3aXRob3V0IEVY Q0VQVCBjbGVhcnMgdGhlIGV4aXN0aW5nIGV4Y2VwdCBsaXN0CitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xkUnAr IHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5z IHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAg ICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0Igor CistLSBTRVQgdG8gYSBkaWZmZXJlbnQgc2NoZW1hIHJlbW92ZXMgb2xkIHNjaGVtYSdzIEVYQ0VQ VCBlbnRyaWVzCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsX3MxKTsKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1B IHB1YmxpYzsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9h bHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6Cisg ICAgInB1YmxpYyIKKworLS0gZmFpbDogbm9uZXhpc3RlbnQgdGFibGUgaW4gRVhDRVBUIGNsYXVz ZSAoU0VUIHBhdGgpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQg VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0 ZW50X3RhYmxlKTsKK0VSUk9SOiAgcmVsYXRpb24gInB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxl IiBkb2VzIG5vdCBleGlzdAorLS0gU0VUOiBtdWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVp ciBvd24gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNl cHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50 ZXN0cHViX3RibF9zMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEVYQ0VQVCAoVEFCTEUgdGVzdHB1 Yl90YmwxKTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9h bHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6Cisg ICAgInB1Yl90ZXN0IgorICAgICJwdWJsaWMiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVz dC50ZXN0cHViX3RibF9zMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKworLS0gZXJyb3I6 IEVYQ0VQVCBpcyBub3QgYWxsb3dlZCB3aXRoIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyKTsKK0VSUk9SOiAgRVhDRVBUIGNsYXVzZSBpcyBu b3Qgc3VwcG9ydGVkIHdpdGggRFJPUCBpbiBBTFRFUiBQVUJMSUNBVElPTgorLS0gRFJPUCBUQUJM RVMgSU4gU0NIRU1BIHJlbW92ZXMgYXNzb2NpYXRlZCBFWENFUFQgZW50cmllcworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2FsdGVy X2V4Y2VwdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2Vx dWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJh dGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9u ZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAi cHVibGljIgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKwogLS0g Q2xlYW51cAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rlc3Qu dGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHVibGljYXRpb24uc3FsCmluZGV4IDI0MDE5MGFhNDFmLi4zNjc0NDM3ZWQ1MCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMjk2LDYgKzI5Niw0NCBAQCBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKHRlcwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQURE IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMSwgdGVzdHB1Yl90YmxfczIpOwogXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKIAor LS0gU0VUOiByZXBsYWNlIHRoZSBleGNlcHQgbGlzdCAoa2VlcCBzYW1lIHNjaGVtYSwgZGlmZmVy ZW50IGV4Y2VwdCB0YWJsZSkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0 IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl90YmxfczIpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gZmFpbDogdGFi bGUgaW4gRVhDRVBUIGNsYXVzZSBhbHNvIGFwcGVhcnMgaW4gdGhlIGV4cGxpY2l0IHRhYmxlIGxp c3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3RibF9zMSwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKTsKKworLS0gZXJyb3I6IGV4Y2VwdCB0YWJsZSdz IHNjaGVtYSAocHVibGljKSBub3QgaW4gdGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1hIGxpc3QgKHB1 Yl90ZXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmwxKTsK KworLS0gU0VUOiB1bnF1YWxpZmllZCBuYW1lIGluIEVYQ0VQVCBpcyBpbXBsaWNpdGx5IHF1YWxp ZmllZCB3aXRoIHRoZSBzY2hlbWEKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhj ZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90 YmxfczEpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gU0VUIHdpdGhvdXQgRVhD RVBUIGNsZWFycyB0aGUgZXhpc3RpbmcgZXhjZXB0IGxpc3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsg dGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gU0VUIHRvIGEgZGlmZmVyZW50IHNjaGVtYSByZW1v dmVzIG9sZCBzY2hlbWEncyBFWENFUFQgZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJM RSB0ZXN0cHViX3RibF9zMSk7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2Vw dCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2Vw dAorCistLSBmYWlsOiBub25leGlzdGVudCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlIChTRVQgcGF0 aCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4g U0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUp OworCistLSBTRVQ6IG11bHRpcGxlIHNjaGVtYXMgZWFjaCB3aXRoIHRoZWlyIG93biBFWENFUFQg Y2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVT IElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3Mx KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwdWJsaWMgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibDEpOworXGRS cCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gZXJyb3I6IEVYQ0VQVCBpcyBub3QgYWxsb3dl ZCB3aXRoIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1Ag VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJf dGJsX3MyKTsKKworLS0gRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHJlbW92ZXMgYXNzb2NpYXRlZCBF WENFUFQgZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJP UCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQK KwogLS0gQ2xlYW51cAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCBiL3NyYy90ZXN0L3N1YnNj cmlwdGlvbi90LzAzN19leGNlcHQucGwKaW5kZXggMGJhNmQ2ZjhiYjIuLjAxZWFmYjViN2M4IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCisrKyBiL3Ny Yy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwKQEAgLTM3Niw2ICszNzYsNjEgQEAg JHJlc3VsdCA9CiBpcygkcmVzdWx0LCBxcSgwKSwKIAknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4g U0NIRU1BIEVYQ0VQVDogZXhjbHVkZWQgdGFibGUgbm90IHN5bmNlZCcpOwogCisjIFNFVDogcmVw bGFjZSB0aGUgZXhjZXB0IGxpc3Q7IHRhYl9leGNsdWRlZCBpcyBub3cgaW5jbHVkZWQgYW5kIHRh Yl9wdWJsaXNoZWQgaXMgZXhjbHVkZWQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiBzY2hfcHViIFNFVCBUQUJMRVMgSU4gU0NIRU1B IHNjaDEgRVhDRVBUIChUQUJMRSBzY2gxLnRhYl9wdWJsaXNoZWQpIgorKTsKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gc2NoX3N1 YiBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJz Y3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUlOU0VSVCBJTlRPIHNjaDEudGFi X3B1Ymxpc2hlZCBWQUxVRVMgKDcpOworCUlOU0VSVCBJTlRPIHNjaDEudGFiX2V4Y2x1ZGVkIFZB TFVFUyAoNyk7CispKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2NoX3N1 YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIFdIRVJFIGEgPSA3 Iik7CitpcygkcmVzdWx0LCBxcSgxKSwKKwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1B IEVYQ0VQVDogbmV3bHkgaW5jbHVkZWQgdGFibGUgaXMgcmVwbGljYXRlZCcKKyk7CiskcmVzdWx0 ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBj b3VudCgqKSBGUk9NIHNjaDEudGFiX3B1Ymxpc2hlZCBXSEVSRSBhID0gNyIpOworaXMoJHJlc3Vs dCwgcXEoMCksCisJJ0FMVEVSIC4uLiBTRVQgVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IG5vdy1l eGNsdWRlZCB0YWJsZSBpcyBub3QgcmVwbGljYXRlZCcKKyk7CisKKyMgU0VUIHdpdGhvdXQgRVhD RVBUOiBjbGVhcnMgdGhlIGV4Y2VwdCBsaXN0OyBib3RoIHRhYmxlcyBhcmUgbm93IHB1Ymxpc2hl ZC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJ Q0FUSU9OIHNjaF9wdWIgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgc2NoMSIpOworJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiBzY2hfc3Vi IFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNj cmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJSU5TRVJUIElOVE8gc2NoMS50YWJf cHVibGlzaGVkIFZBTFVFUyAoOCk7CisJSU5TRVJUIElOVE8gc2NoMS50YWJfZXhjbHVkZWQgVkFM VUVTICg4KTsKKykpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzY2hfc3Vi Jyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlzaGVkIFdIRVJFIGEgPSA4 Iik7CitpcygkcmVzdWx0LCBxcSgxKSwKKwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1B IChubyBFWENFUFQpOiB0YWJfcHVibGlzaGVkIHJlcGxpY2F0ZWQgYWZ0ZXIgZXhjZXB0IGxpc3Qg Y2xlYXJlZCcKKyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIFdIRVJF IGEgPSA4Iik7CitpcygkcmVzdWx0LCBxcSgxKSwKKwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4g U0NIRU1BIChubyBFWENFUFQpOiB0YWJfZXhjbHVkZWQgcmVwbGljYXRlZCBhZnRlciBleGNlcHQg bGlzdCBjbGVhcmVkJworKTsKKwogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICdEUk9QIFNVQlNDUklQVElPTiBzY2hfc3ViJyk7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiBzY2hfcHViJyk7CiAKQEAgLTQ0Myw2 ICs0OTgsMzYgQEAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9Q IFNVQlNDUklQVElPTiB0YXBfc3ViJyk7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViMScpOwogJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gdGFwX3B1YjInKTsKIAorIyBP SyB3aGVuIGEgdGFibGUgaXMgZXhjbHVkZWQgYnkgYSBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVCBw dWJsaWNhdGlvbiwKKyMgYnV0IGlzIGluY2x1ZGVkIGJ5IGFub3RoZXIgcHVibGljYXRpb24uCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnVFJVTkNBVEUgdGFiMScpOwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdUUlVOQ0FURSB0YWIxJyk7 CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFU RSBQVUJMSUNBVElPTiB0YXBfcHViMSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWMgRVhDRVBU IChUQUJMRSBwdWJsaWMudGFiMSk7CisJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWIyIEZPUiBU QUJMRSB0YWIxOworCUlOU0VSVCBJTlRPIHRhYjEgVkFMVUVTKDEpOworKSk7Ciskbm9kZV9zdWJz Y3JpYmVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1YiBD T05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWIxLCB0YXBf cHViMiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygk bm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHFxKElOU0VSVCBJTlRPIHRhYjEgVkFMVUVTKDIpKSk7Ciskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIxIE9S REVSIEJZIGEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxCisyKSwKKwkiVEFCTEVTIElOIFNDSEVNQSBF WENFUFQ6IHRhYmxlIGV4Y2x1ZGVkIGluIHNjaGVtYSBwdWIgYnV0IGluY2x1ZGVkIGJ5IGFub3Ro ZXIgcHViIGlzIHJlcGxpY2F0ZWQiCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWInKTsKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIxJyk7Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0 YXBfcHViMicpOworCiAkbm9kZV9wdWJsaXNoZXItPnN0b3AoJ2Zhc3QnKTsKIAogZG9uZV90ZXN0 aW5nKCk7Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000d3a2240653e3aed1--