Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sVG6N-008uab-RJ for pgsql-hackers@arkaria.postgresql.org; Sat, 20 Jul 2024 19:50:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sVG5N-001hLT-2k for pgsql-hackers@arkaria.postgresql.org; Sat, 20 Jul 2024 19:49:41 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sVG5M-001hLL-6S for pgsql-hackers@lists.postgresql.org; Sat, 20 Jul 2024 19:49:40 +0000 Received: from mail-yw1-x1133.google.com ([2607:f8b0:4864:20::1133]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sVG57-000bBj-Hb for pgsql-hackers@lists.postgresql.org; Sat, 20 Jul 2024 19:49:39 +0000 Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-662dc911cf2so30221547b3.1 for ; Sat, 20 Jul 2024 12:49:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721504962; x=1722109762; 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=PCpZrDiBDb6JpFEQO5CD4RCw1A3YTptMrOVlSQtCRMI=; b=Iuy9XdCq55ZZPrZMk2aBB5QzIWJ+MQvp9ZxehDN/wC1gb68lH4TWjAHqV925/ZB52d JM1Zq27/WKqWd1Ubtyz9qyPsI9BHzmvDNH/GPDp2Jr31pob/sfIvCdmSiJyQMP2ZWZDI KBlDe2/KQ4UH4KlHgJkTDqf29AVbszSxnaZRjRIyz6pQ9y0KXMnKIboCKhxHFw6B6AXp ugpu2lreuigU+f2Je6+qVfBPt3G7Y7nmABIUDaW+Xe7JGfsAZa6yX+9FTQqTs6lWAisO Cxc2WrKtd8O9DBKEv4BgLQ1ykcSRsD78FYwhtBGHIV00/blz7Y4CnMYVkJOY50QJYOIz mrWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721504962; x=1722109762; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=PCpZrDiBDb6JpFEQO5CD4RCw1A3YTptMrOVlSQtCRMI=; b=iOfOTKsE68d9qqnoVeCYYDYJdYklqhQtnqnp0SKCyaYyQCuNzQyEJScqRui2nrwb+F /xfvAM63NR5dKthJcIcpnOTOxomuBLN4Wju/ZFbAJkZLrp8Oo3iYWIctVahPf/unihST 2eiVeOI0e6XIL0Ey9c7+FDjLFbYS1MAwG08uoakaEHFmlPFLGqzfzo1ZzWP7wvzcdQbh SIlPzg9iiEuabsp/m235wG8Ho983WqMvfz4S92gAeGf0Ve3WcaLYl7sgdBPM3ZEbmtaW l7wDNMo6OXaN+Na0MyNsH69g1EZXMYH1XhERU2/hgG6/NzOGw8wUJumdIACDQJp5MLx6 54KA== X-Forwarded-Encrypted: i=1; AJvYcCUxMa8bgSWF8Mze8J66nnmz3Cyj2CivShSuA9NO2ISxfIDcB788oLPv53DNH6phHJYJC4gmaJA+8XyMvC2QGFUWamEDIE/KvU7LzD7zHwdb2l3i X-Gm-Message-State: AOJu0YzAMChy1Kww/PDdCqnuOORxW1eQv+I1nsWCx+O97rlZt1nt1uWQ ac8kIWJVpvsa/Tfiowtom3/o93dEg/XXiHfpFob6Ds2c880paaa5UeGJOGNOW7roPDGpQ9XGq4M AyyrVI75epHif++ZcK7btp5VI+ao= X-Google-Smtp-Source: AGHT+IHvu3W2dcia0h5c4tGiFk5vbD2/GHhN4fm+fxXDxqSZRmR+vuJjAdc0OMJJfSgquN1N2WRD4nNMmHl0kJe/JGk= X-Received: by 2002:a05:690c:2a8f:b0:632:77ca:dafd with SMTP id 00721157ae682-66a63a71b17mr40037147b3.10.1721504962377; Sat, 20 Jul 2024 12:49:22 -0700 (PDT) MIME-Version: 1.0 References: <20200924035637.GF28585@paquier.xyz> <20201001033824.GC8130@paquier.xyz> <51a9a68e8a998d04df17417d45c1dbd4@xs4all.nl> <89817942c99da01cd5e7850fe418436b@xs4all.nl> <56ca532c37eb0b540961f74a7bd5db39@xs4all.nl> <8181bd3abc647bdae5a4f78e71e62478a98c75f4.camel@cybertec.at> In-Reply-To: <8181bd3abc647bdae5a4f78e71e62478a98c75f4.camel@cybertec.at> From: Pavel Stehule Date: Sat, 20 Jul 2024 21:48:43 +0200 Message-ID: Subject: Re: proposal: schema variables To: Laurenz Albe Cc: Erik Rijkers , Michael Paquier , Zhihong Yu , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000c41737061db31bff" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c41737061db31bff Content-Type: multipart/alternative; boundary="000000000000c41736061db31bfb" --000000000000c41736061db31bfb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable p=C3=A1 19. 7. 2024 v 13:41 odes=C3=ADlatel Laurenz Albe napsal: > On Sat, 2021-04-10 at 08:58 +0200, Pavel Stehule wrote: > > I am sending a strongly updated patch for schema variables. > > > > I rewrote an execution of a LET statement. In the previous > implementation I hacked > > STMT_SELECT. Now, I introduced a new statement STMT_LET, and I > implemented a new > > executor node SetVariable. Now I think this implementation is much > cleaner. > > Implementation with own executor node reduces necessary work on PL side > - and allows > > the LET statement to be prepared - what is important from a security > view. > > > > I'll try to write a second implementation based on a cleaner > implementation like > > utility command too. I expect so this version will be more simple, but > utility > > commands cannot be prepared, and probably, there should be special > support for > > any PL. I hope a cleaner implementation can help to move this patch. > > > > We can choose one variant in the next step and this variant can be > finalized. > > > > Notes, comments? > > Thank you! > > I tried to give the patch a spin, but it doesn't apply any more, > and there are too many conflicts for me to fix manually. > > > just fresh rebase I'll reply to your comments tomorrow. Regards Pavel --000000000000c41736061db31bfb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
p=C3=A1 19. 7. 2024 v=C2=A013:41 odes= =C3=ADlatel Laurenz Albe <la= urenz.albe@cybertec.at> napsal:
On Sat, 2021-04-10 at 08:58 +0200, Pavel Stehule wro= te:
> I am sending a strongly updated patch for schema variables.
>
> I rewrote an execution of a LET statement. In the previous implementat= ion I hacked
> STMT_SELECT. Now, I introduced a new statement STMT_LET, and I impleme= nted a new
> executor node SetVariable. Now I think this implementation is much cle= aner.
> Implementation with own executor node reduces necessary work on PL sid= e - and allows
> the LET statement to be prepared - what is important from a security v= iew.
>
> I'll try to write a second implementation based on a cleaner imple= mentation like
> utility command too. I expect so this version will be more simple, but= utility
> commands cannot be prepared, and probably, there should be special sup= port for
> any PL. I hope a cleaner implementation can help to move this patch. >
> We can choose one variant in the next step and this variant can be fin= alized.
>
> Notes, comments?

Thank you!

I tried to give the patch a spin, but it doesn't apply any more,
and there are too many conflicts for me to fix manually.



just fresh rebase

I'll reply to your comments tomorrow.

=C2=A0Regards

Pavel
--000000000000c41736061db31bfb-- --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20240720-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhhm3 RnJvbSAyOWQwMjcxOGEyNzRlNmFkM2I2NDA0ZmJiNDNkMjNkNTMyMTE0ZjdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzE5XSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYyICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggOTJkOTgzYWM3 NDguLmQwNmViYWJhNmY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCBjOGRkZWZjMjBl NC4uYzc5Njg1ODcxMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTEwMiw3ICsxMDIsMTMgQEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJn LCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAogCWVsb2coREVCVUcxLCAicGdfdmFy aWFibGVfY2FjaGVfY2FsbGJhY2sgJXUgJXUiLCBjYWNoZWlkLCBoYXNodmFsdWUpOwogCi0JQXNz ZXJ0KHNlc3Npb252YXJzKTsKKwkvKgorCSAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSBvZiBzZXNz aW9udmFycyBiZWluZyBpbml0aWFsaXplZCwgZXZlbiB3aGVuCisJICogcmVjZWl2aW5nIGFuIGlu dmFsaWRhdGlvbiBjYWxsYmFjaywgYXMgRElTQ0FSRCBbIEFMTCB8IFZBUklBQkxFUyBdCisJICog ZGVzdHJveXMgdGhlIGhhc2ggdGFibGUgZW50aXJlbHkuCisJICovCisJaWYgKCFzZXNzaW9udmFy cykKKwkJcmV0dXJuOwogCiAJLyoKIAkgKiBXaGVuIHRoZSBoYXNodmFsdWUgaXMgbm90IHNwZWNp ZmllZCwgdGhlbiB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsCkBAIC03MDIsMyArNzA4LDIzIEBAIHBn X3Nlc3Npb25fdmFyaWFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXR1cm4gKERhdHVtKSAw OwogfQorCisvKgorICogRmFzdCBkcm9wIG9mIHRoZSBjb21wbGV0ZSBjb250ZW50IG9mIGFsbCBz ZXNzaW9uIHZhcmlhYmxlcyBoYXNoIHRhYmxlLCBhbmQKKyAqIGNsZWFudXAgb2YgYW55IGxpc3Qg dGhhdCB3b3VsZG4ndCBiZSByZWxldmFudCBhbnltb3JlLgorICogVGhpcyBpcyB1c2VkIGJ5IERJ U0NBUkQgVkFSSUFCTEVTIChhbmQgRElTQ0FSRCBBTEwpIGNvbW1hbmQuCisgKi8KK3ZvaWQKK1Jl c2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKQoreworCS8qIERlc3Ryb3kgaGFzaCB0YWJsZSBhbmQg cmVzZXQgcmVsYXRlZCBtZW1vcnkgY29udGV4dCAqLworCWlmIChzZXNzaW9udmFycykKKwl7CisJ CWhhc2hfZGVzdHJveShzZXNzaW9udmFycyk7CisJCXNlc3Npb252YXJzID0gTlVMTDsKKwl9CisK KwkvKiBSZWxlYXNlIG1lbW9yeSBhbGxvY2F0ZWQgYnkgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlp ZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAhPSBOVUxMKQorCQlNZW1vcnlDb250ZXh0UmVzZXQo U1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBmNTM2NzM2OWNmNy4u NGFjMzE5YmYyMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA3NCw3ICsyMDc0LDEzIEBAIERpc2NhcmRT dG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJQUJMRVMKKwkJCQl7CisJCQkJCURpc2Nh cmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwogCisJCQkJCW4tPnRhcmdldCA9IERJ U0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYwppbmRleCA2NjJkYmNkMWRkNi4uZGI2MDA0YTA1Y2UgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CkBAIC0yOTU5LDYgKzI5NTksOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkK IAkJCQljYXNlIERJU0NBUkRfU0VRVUVOQ0VTOgogCQkJCQl0YWcgPSBDTURUQUdfRElTQ0FSRF9T RVFVRU5DRVM7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgRElTQ0FSRF9WQVJJQUJMRVM6CisJCQkJ CXRhZyA9IENNRFRBR19ESVNDQVJEX1ZBUklBQkxFUzsKKwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVs dDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXgg N2UwNmEzNzMwMzEuLjExMDBlYmNhYjhkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0zNzQwLDcgKzM3 NDAsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIpKQotCQlD T01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsKKwkJQ09N UExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZBUklBQkxF UyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYjNmMDNjNjU4MjcuLjQ0M2FmYmFmZDRhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yOSw0ICsyOSw2IEBA IGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwg Ym9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0CiBleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAogCQkJ CQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOwog CitleHRlcm4gdm9pZCBSZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCk7CisKICNlbmRpZgpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDc0YmY1YWY3NzY2Li5mYmFiMzM4YTkzOCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMzk2NSw2ICszOTY1LDcgQEAgdHlwZWRlZiBlbnVtIERpc2NhcmRN b2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NFUVVFTkNFUywKIAlESVNDQVJEX1RFTVAs CisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRNb2RlOwogCiB0eXBlZGVmIHN0cnVjdCBE aXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9z cmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBhOTIxYWYyNDg2Zi4uYmQ3OTY0YWVh NmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgUEdfQ01EVEFHKENN RFRBR19ESVNDQVJEX0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJU0NBUkQg U0VRVUVOQ0VTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FS RF9URU1QLCAiRElTQ0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhD TURUQUdfRElTQ0FSRF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklBQkxFUyIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBmYWxzZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VTUyBNRVRI T0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdHUkVHQVRF LCAiRFJPUCBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGUwZDVhYzEyYWI4Li42 Mzc0MDJlNTJjMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKQEAgLTk0MiwzICs5NDIsNjUgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIu OiJEQk5BTUUiLmI7CiBEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUi OwogRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBtZW1vcnkg Y2xlYW5pbmcgYnkgRElTQ0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJj aGFyOworTEVUIHZhcjEgPSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0t CisgSGVsbG8KKygxIHJvdykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAor LS0tLS0tCisgCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7Cisg dmFyMSAKKy0tLS0tLQorIEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tIGluaXRpYWwgdGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlv bgorLS0gc2hvdWxkIGJlIHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0tIHNob3Vs ZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FI T0onOworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9z ZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAg fCB0CisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHplcm8gYWdh aW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQg CistLS0tLS0tCisgICAgIDAKKygxIHJvdykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbAppbmRleCAxZjcyYjQwNWEyZC4uM2YwYzhlZjRlOGUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTY2MywzICs2NjMsMzkgQEAg RFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1B IDoiREJOQU1FIjsKIAogUkVTRVQgc2VhcmNoX3BhdGg7CisKKy0tIG1lbW9yeSBjbGVhbmluZyBi eSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CitMRVQg dmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFy MTsKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJM RVM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBpbml0aWFsIHRl c3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6 ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CisK Ky0tIHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworCitMRVQgdmFyMSA9ICdBSE9KJzsKKworU0VMRUNUIG5hbWUsIHR5cG5h bWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor CitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Ci0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20240720-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhhv4 RnJvbSA2ZmE2MTY3NmNhZTNiNmIyOTY2YTZiYzJiNmZjNTczNDJkMTNiNWYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTg6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA1 LzE5XSBtZW1vcnkgY2xlYW5pbmcgYWZ0ZXIgRFJPUCBWQVJJQUJMRQoKQWNjZXB0IG9mIHNpbnZh bCBtZXNzYWdlIGludmFsaWRhdGVzIGVudHJpZXMgaW4gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZS4g VGhlc2UgZW50cmllcwphcmUgdmFsaWRhdGVkIGJlZm9yZSBhbnkgcmVhZCBvciB3cml0ZSBvcGVy YXRpb25zIG9uIHNlc3Npb24gdmFyaWFibGVzLiBXaGVuIHRoZSBlbnRyeQpjYW5ub3QgYmUgdmFs aWRhdGVkLCB0aGVuIGl0IGlzIHJlbW92ZWQuIFRoZSByZW1vdmluZyBjYW4gYmUgZGVsYXllZCB3 aGVuIHZhcmlhYmxlCmlzIGRyb3BwZWQgaW5zaWRlIGN1cnJlbnQgdHJhbnNhY3Rpb24uIFRoaXMg dHJhbnNhY3Rpb24gY2FuIGJlIGFib3J0ZWQgYW5kIGluIHRoaXMgY2FzZQp3ZSB3YW50IHRvIHBy ZXNlcnZlIGNvbnRlbnQgb2YgdGhlIHZhcmlhYmxlLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jICAgICAgIHwgMTc3ICsrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDMgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgMTA5ICsrKysrKysrKwogc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMTkgKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMjEg KysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCA2ODIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24v c3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmlu ZGV4IGQxMTlhYjkwOWRjLi4yZDNlZDg2MDdhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3Qu YwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfZW51bS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Rh YmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t b24vcGdfcHJuZy5oIgpAQCAtMjMwNSw2ICsyMzA2LDkgQEAgQ29tbWl0VHJhbnNhY3Rpb24odm9p ZCkKIAkgKi8KIAlzbWdyRG9QZW5kaW5nU3luY3ModHJ1ZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsK IAorCS8qIFJlbW92ZSB2YWx1ZXMgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1l bW9yeSAqLworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoKTsKKwogCS8qIGNsb3NlIGxh cmdlIG9iamVjdHMgYmVmb3JlIGxvd2VyLWxldmVsIGNsZWFudXAgKi8KIAlBdEVPWGFjdF9MYXJn ZU9iamVjdCh0cnVlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDFjNzMxODFj M2RhLi4wYjIxMjA0YmM0NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMjIsNiAr MjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVp bHRpbnMuaCIKQEAgLTI1NCw0ICsyNTUsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKiBEbyB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgaWYgbmVlZGVkIGluIGxvY2Fs IG1lbW9yeSAqLworCVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggYzc5Njg1ODcxMjUuLmQ5 MTY5ODIwYTdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0x NCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNj ZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJs ZVJlY2VpdmVyLmgiCkBAIC03NSw2ICs3NiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVE YXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBk b21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8qCisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5z YWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2 YXJpYWJsZSBpZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5mb3JtYXRpb24gdG8gYXZvaWQgZnJlZWlu ZyBtZW1vcnkgZm9yCisJICogdmFyaWFibGUgZHJvcHBlZCBieSB0aGUgbG9jYWwgYmFja2VuZCB0 aGF0IG1heSBiZSBldmVudHVhbGx5CisJICogcm9sbGJhY2tlZC4KKwkgKi8KKwlMb2NhbFRyYW5z YWN0aW9uSWQgZHJvcF9seGlkOworCiAJLyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVz Y3JpcHRpb24gY2FuIGJlIG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZQogCSAqIHNpbnZhbCBtZXNz YWdlLiBXZSBoYXZlIHRvIGNoZWNrIGFsd2F5cyBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlCkBAIC05 MSw2ICsxMDAsMTkgQEAgc3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0 YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU1Zh cmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CiAKKy8qIHRydWUgYWZ0ZXIgYWNjZXB0ZWQgc2lu dmFsIG1lc3NhZ2UgKi8KK3N0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKKwor LyoKKyAqIFRoZSBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGlt bWVkaWF0ZWx5LiBXaGVuIGl0CisgKiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFu c2FjdGlvbiBlbmQuIEJ1dCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCisgKiB3ZSBjYW5u b3QgZG8gaXQsIGJlY2F1c2Ugd2UgbG9zdCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSBjYXRhbG9nLiBT byB3ZQorICogdHJ5IHRvIGRvIGl0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIGJlZm9yZSBhbnkg Z2V0IG9yIHNldCBvZiBhbnkgc2Vzc2lvbgorICogdmFyaWFibGUuIFdlIGRvbid0IHdhbnQgdG8g cmVwZWF0IHRoaXMgb3BlbmluZyBjbGVhbmluZyBpbiB0cmFuc2FjdGlvbiwKKyAqIFNvIHdlIHN0 b3JlIHRoZSBpZCBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgb3BlbmluZyB2YWxpZGF0aW9uIHdh cyBkb25lLgorICovCitzdGF0aWMgTG9jYWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0g SW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZv ciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTIzLDYgKzE0NSw0MCBA QCBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50 MzIgaGFzaHZhbHVlKQogCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09 IGhhc2h2YWx1ZSkKIAkJewogCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKworCQkJbmVlZHNf dmFsaWRhdGlvbiA9IHRydWU7CisJCX0KKwl9Cit9CisKKy8qCisgKiBIYW5kbGUgdGhlIGxvY2Fs IG1lbW9yeSBjbGVhbnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KKyAqCisgKiBDYWxs ZXIgc2hvdWxkIHRha2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50cnkgZmly c3QuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQp Cit7CisJQXNzZXJ0KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlkLmx4aWQp KTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCWJvb2wJCWZvdW5kOworCQlTVmFyaWFibGUJ c3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJ CQkJCQkJCQkgICBIQVNIX0ZJTkQsICZmb3VuZCk7CisKKwkJaWYgKGZvdW5kKQorCQl7CisJCQkv KgorCQkJICogU2F2ZSB0aGUgY3VycmVudCB0b3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQg dG8gbWFrZSBzdXJlIHdlCisJCQkgKiBkb24ndCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgbG9j YWwgdmFyaWFibGUgc3RvcmFnZSBpbgorCQkJICogdmFsaWRhdGVfYWxsX3Nlc3Npb25fdmFyaWFi bGVzLCBhcyB0aGUgRFJPUCBWQVJJQUJMRSB3aWxsIHNlbmQKKwkJCSAqIGFuIGludmFsaWRhdGlv biBtZXNzYWdlLgorCQkJICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJc3Zhci0+ ZHJvcF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisKKwkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0 cnVlOwogCQl9CiAJfQogfQpAQCAtMTc2LDYgKzIzMiw4MyBAQCBpc19zZXNzaW9uX3ZhcmlhYmxl X3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBJdCBj aGVja3MgYWxsIHBvc3NpYmx5IGludmFsaWQgZW50cmllcyBhZ2FpbnN0IHRoZSBzeXN0ZW0gY2F0 YWxvZy4KKyAqIER1cmluZyB0aGlzIHZhbGlkYXRpb24sIHRoZSBzeXN0ZW0gY2FjaGUgY2FuIGJl IGludmFsaWRhdGVkLCBhbmQgdGhlCisgKiBzb21lIHNpbnZhbCBtZXNzYWdlIGNhbiBiZSBhY2Nl cHRlZC4gVGhpcyByb3V0aW5lIGRvZXNuJ3QgZW5zdXJlCisgKiBhbGwgbGl2aW5nIGVudHJpZXMg b2Ygc2Vzc2lvbnZhcnMgd2lsbCBoYXZlIGlzX3ZhbGlkIGZsYWcsIGJ1dCBpdCBlbnN1cmVzCisg KiB0aGF0IGFsbCBlbnRyaWVzIGFyZSBjaGVja2VkIG9uY2UuCisgKgorICogVGhpcyByb3V0aW5l IGlzIGNhbGxlZCBiZWZvcmUgYW55IHVzYWdlIChyZWFkLCB3cml0ZSwgZGVidWcpIG9mIHNlc3Np b24KKyAqIHZhcmlhYmxlcyAob25seSBvbmNlIGluIGEgdHJhbnNhY3Rpb24pIG9yIGF0IGEgdHJh bnNhY3Rpb24gZW5kLiAgQXQgdGhlCisgKiBlbmQgb2YgdHJhbnNhY3Rpb24gKHNwZWNpZmllZCBi eSB0cnVlIG9mIGFyZ3VtZW50IGF0RU9YKSB3ZSBjYW4KKyAqIHRocm93IGFsbCBpbnZhbGlkIHZh cmlhYmxlcy4gSW5zaWRlIHRoZSB0cmFuc2FjdGlvbiAoYXRFT1ggaXMgZmFsc2UpIHdlIHdhbnQK KyAqIHRvIHBvc3Rwb25lIGNsZWFuaW5nIG9mIHZhcmlhYmxlcyBkcm9wcGVkIGluc2lkZSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbi4KKyAqIFRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGNhbiBiZSBh Ym9ydGVkLCB0aGUgcmVsYXRlZCBkcm9wIGNvbW1hbmQgd2lsbCBiZQorICogYWJvcnRlZCB0b28u IEluIHRoaXMgY2FzZSB3ZSBkb24ndCB3YW50IGxvc2UgdGhlIGNvbnRlbnQgb2YgdGhlIHZhcmlh YmxlLAorICogYW5kIHRoZXJlZm9yZSB3ZSBuZWVkIHRvIGhvbGQgdGhlIGNvbnRlbnQgb2YgdGhl IGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNh Y3Rpb24gKHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgZHJvcHBlZCkuCisgKi8KK3N0YXRpYyB2b2lk CityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQoreworCUhBU0hf U0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIFRoZSB2YWxp ZGF0aW9uIHJlcXVpcmVzIGFuIGFjY2VzcyB0byBzeXN0ZW0gY2F0YWxvZywgYW5kIHRoZW4gdGhl CisJICogc2Vzc2lvbiBzdGF0ZSBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkgKi8KKwlB c3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0aW9uIHx8 ICFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGlzIGZsYWcgaGVy ZSwgYmVmb3JlIHdlIHN0YXJ0IHRoZSB2YWxpZGF0aW9uLiBJdCBjYW4gYmUgc2V0IHRvCisJICog b24gYnkgaW5jb21taW5nIHNpbnZhbCBtZXNzYWdlLgorCSAqLworCW5lZWRzX3ZhbGlkYXRpb24g PSBmYWxzZTsKKworCWVsb2coREVCVUcxLCAiZWZmZWN0aXZlIGNhbGwgb2YgdmFsaWRhdGVfYWxs X3Nlc3Npb25fdmFyaWFibGVzKCkiKTsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lv bnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3Rh dHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCWlmICgh YXRFT1ggJiYgc3Zhci0+ZHJvcF9seGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJeworCQkJ CW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQlpZiAo IWlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCisJCQl7CisJCQkJT2lkCQkJdmFyaWQg PSBzdmFyLT52YXJpZDsKKworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsK KwkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7 CisJCQkJc3ZhciA9IE5VTEw7CisJCQl9CisJCQllbHNlCisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOworCQl9CisJfQorfQorCisvKgorICogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVkIHNlc3Np b24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9TZXNzaW9u VmFyaWFibGVzKHZvaWQpCit7CisJLyogV2UgY2Fubm90IHRvIGRvIGl0IHdoZW4gdHJhbnNhY3Rp b24gaXMgYWJvcnRlZCAqLworCUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwlyZW1v dmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKK30KKwogLyoKICAqIFVwZGF0ZSBh dHRyaWJ1dGVzIGNhY2hlZCBpbiBzdmFyCiAgKi8KQEAgLTIwNSw2ICszMzgsOCBAQCBzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJc3Zhci0+ZG9tYWlu X2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IElu dmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQgPSBJbnZhbGlkVHJh bnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+dmFsdWUgPSAoRGF0 dW0pIDA7CiAKQEAgLTMzNSwyNiArNDcwLDQ0IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2 YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxl cygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQg fHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJeworCQkvKiBUaHJv dyBpbnZhbGlkIGVudHJpZXMsIHNraXAgZW50cmllcyBkcm9wcGVkIGJ5IHRoaXMgdHJhbnNhY3Rp b24uICovCisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKKworCQkv KiBEb24ndCByZXBlYXQgaXQgaW4gdGhpcyB0cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRfbHhp ZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3Nl YXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQp OwogCiAJaWYgKGZvdW5kKQogCXsKKwkJLyoKKwkJICogVGhlIHNlc3Npb24gdmFyaWFibGUgY2Fu IGJlIGRyb3BwZWQgYnkgRFJPUCBWQVJJQUJMRSBjb21tYW5kLAorCQkgKiBidXQgZWZmZWN0IG9m IHRoaXMgY29tbWFuZCBjYW4gYmUgcmV2ZXJ0ZWQgYnkgUk9MTEJBQ0sgdG8gc2F2ZXBvaW50LAor CQkgKiBzbyB3ZSBjYW4gd29yayBoZXJlIHdpdGggcmVhZGFibGUgdmFsdWUgaW4gdmFyaWFibGUg bWFya2VkIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCQl7CiAJ CQkvKgogCQkJICogVGhlIHZhcmlhYmxlIGNhbiBiZSBmbGFnZ2VkIGFzIGludmFsaWQgYnkgcHJv Y2Vzc2luZyBpbnZhbGlkYXRpb24KIAkJCSAqIG1lc3NhZ2UsIGJ1dCBjYW4gYmUgdmFsaWRhdGVk IGJ5IHJlY2hlY2sgYWdhaW5zdCBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqCisJCQkgKiBJZiB3ZSBh Y2Nlc3MgdGhpcyBzZXNzaW9uIHZhcmlhYmxlLCB0aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUK KwkJCSAqIHBvc3NpYmx5IHZhbGlkYXRlZC4gVGhlIG9pZCBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgcmVsYXRlZAorCQkJICogc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NrZWQgYWxyZWFkeSwgYW5k IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzCisJCQkgKiBzaG91bGQgdG8gcmVtb3Zl IHZhcmlhYmxlcyBkcm9wcGVkIGJ5IG90aGVyIHRyYW5zYWN0aW9ucy4KIAkJCSAqLwogCQkJaWYg KGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCiAJCQkJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOwogCQkJZWxzZQotCQkJCS8qCi0JCQkJICogV2hlbiB0aGUgdmFsdWUgY2Fubm90IGJlIHZh bGlkYXRlZCwgd2UgY2FuIHNhZmVseSB0aHJvdyBpdC4KLQkJCQkgKiBUaGVyZSBpcyBvaWQgaW4g Y2F0YWxvZywgYnV0IGl0IGlzIHJlbGF0ZWQgdG8gZGlmZmVyZW50Ci0JCQkJICogc2Vzc2lvbiB2 YXJpYWJsZSAoZGlmZmVyZW50IGNyZWF0ZV9sc24pLgotCQkJCSAqLwotCQkJCWZyZWVfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCXsKKwkJCQkvKiBXZSBkb24ndCBleHBlY3QgaXQg Ki8KKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBzdGF0ZSBvZiBzZXNzaW9uIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCQkJfQogCQl9CiAJfQogCWVsc2UKQEAgLTQxNSw2ICs1NjgsMTYgQEAg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQog CWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAK KwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2 YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIFRocm93IGludmFs aWQgZW50cmllcywgc2tpcCBlbnRyaWVzIGRyb3BwZWQgYnkgdGhpcyB0cmFuc2FjdGlvbi4gKi8K KwkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoZmFsc2UpOworCisJCS8qIERvbid0 IHJlcGVhdCBpdCBpbiB0aGlzIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRlZF9seGlkID0gTXlQ cm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNl c3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CiAKQEAg LTYyMiw2ICs3ODUsOCBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CiAJZWxvZyhERUJVRzEsICJwZ19zZXNzaW9uX3ZhcmlhYmxlcyBzdGFydCIpOwogCisJcmVtb3Zl X2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoZmFsc2UpOworCiAJSW5pdE1hdGVyaWFsaXplZFNS RihmY2luZm8sIDApOwogCiAJaWYgKHNlc3Npb252YXJzKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oCmluZGV4IDQ0M2FmYmFmZDRhLi4wZDRjNjM1YWU3YiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOSBAQAogI2luY2x1 ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgog CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsK K2V4dGVybiB2b2lkIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXModm9pZCk7CisKIGV4dGVy biB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlz TnVsbCk7CiBleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVjayhP aWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vz c2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBi L3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjk2OGNjZTA4OTUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQK QEAgLTAsMCArMSwxMDkgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRyb3AgdmFsCitzdGVwIGxldDogTEVUIG15dmFy ID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAK KygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNF TEVDVCBteXZhcjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKKworc3Rh cnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCitzdGVwIGxldDogTEVU IG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQor dGVzdCAKKygxIHJvdykKKworc3RlcCBzMTogQkVHSU47CitzdGVwIGRyb3A6IERST1AgVkFSSUFC TEUgbXl2YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4gIm15dmFy IiBkb2VzIG5vdCBleGlzdAorc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGluZyBwZXJtdXRh dGlvbjogbGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBsZXQ6IExFVCBteXZh ciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3Qg CisoMSByb3cpCisKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0t LS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBE Uk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBB UyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWV8cmVtb3ZlZAorLS0tLS0tKy0tLS0rLS0t LS0tLQorKDAgcm93cykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQor ICAgICAKKygxIHJvdykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7Citz dGVwIHZhbDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitz dGVwIHMxOiBCRUdJTjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0r LS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9w OiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0t LSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VM RUNUIG15dmFyOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9M TEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBs ZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBD UkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAn dGVzdCc7CitzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15 dmFyNCBBUyB0ZXh0Oworc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9w NDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFy MzsKK3N0ZXAgaW52YWwzOiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFi bGU7Cis/Y29sdW1uPworLS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2Fy ZDogRElTQ0FSRCBWQVJJQUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VM RUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAK KygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hl ZHVsZSBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggNmRhOThj ZmZhY2EuLjA0NmJiMWE0OTdmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0 aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUK QEAgLTExNywzICsxMTcsNCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDog c2VyaWFsaXphYmxlLXBhcmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDog bG9jay1ub3dhaXQKK3Rlc3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5jODY0ZmVlNDAwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBU ZXN0IHNlc3Npb24gdmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAK K3sKKyAgICBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sK KyAgICBEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3Rl cCBzMQkJeyBCRUdJTjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAg dmFsCXsgU0VMRUNUIG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJl bW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNL OyB9CisKK3Nlc3Npb24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9Citz dGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9u IHMzCitzdGVwIHMzCQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVz dCc7IH0KK3N0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQor c3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBW QVJJQUJMRSBteXZhcjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZS T00gcGdfZm9yZWlnbl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7 IH0KK3N0ZXAgc2MzCQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBG Uk9NIHBnX3ZhcmlhYmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBW QVJJQUJMRSBteXZhcjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15 dmFyMzsgfQorCisjIENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBs ZWFkIHRvIGFuIGVycm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1 dCB3aXRoIGFuIGV4cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRy b3AgdmFsIHNyMQorIyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUg c2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRy b3AgY3JlYXRlIGRiZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZh cmlhYmxlIHNob3VsZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2Fj dGlvbiB0byBtYWtlIHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4K KyMgY2FsbGluZyB0aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0 YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3Ig RElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3Rl cmVkCitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3Az IGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCA2Mzc0MDJlNTJjMC4uMzc0OGUxNDM5YmQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0xMDA0LDMgKzEwMDQsMjIyIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CiAtLS0tLS0tCiAgICAgIDAKICgxIHJvdykKKworLS0gZHJvcHBlZCB2YXJpYWJs ZXMgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkKKy0tIGF0IHRoZSBlbmQgb2YgdHJhbnNh Y3Rpb24gb3IgYmVmb3JlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGlu IG5leHQgdHJhbnNhY3Rpb24uCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBu YW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KyBuYW1lIHwgICAgICB0eXBuYW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIx IHwgY2hhcmFjdGVyIHZhcnlpbmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQor CistLSB0aGUgY29udGVudCBvZiB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gdmFyaWFi bGUgaXMgZHJvcHBlZAorLS0gYnkgYWJvcnRlZCB0cmFuc2FjdGlvbgorQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0Fob2onOworQkVHSU47CitEUk9QIFZBUklB QkxFIHZhcjE7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIGNvbHVtbiAi dmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAg ICBeCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorIEFob2oKKygxIHJvdykKKworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTAw OworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0 ICdBaG9qJworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIEFob2oKKygxIHJvdykKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZh cjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cp CisKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNh bl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2 YXIxIHwgaW50ZWdlciB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJM RSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEg PSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisK KyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91 cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIx IHwgaW50ZWdlciB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMg aW50OworTEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQg czE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hp bmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0t LS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsK KyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisg ICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJ TjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOwor ICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7Cisg dmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0JFR0lO OworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xl YW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgU0FWRVBPSU5UIHMyOworICAt LSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAg U0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xMQkFD SyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9u IHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cp CisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgMTAKKygxIHJvdykKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVH SU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2 YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggM2YwYzhlZjRlOGUuLjQ2NDNjZjEzOGFlIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC02OTksMyArNjk5LDEy NCBAQCBESVNDQVJEIFZBUklBQkxFUzsKIAogLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KIFNFTEVD VCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIGRyb3BwZWQgdmFy aWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gbWVtb3J5CistLSBhdCB0aGUgZW5kIG9mIHRy YW5zYWN0aW9uIG9yIGJlZm9yZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSBpbiBuZXh0IHRyYW5zYWN0aW9uLgorCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1l LCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIHRoZSBjb250ZW50IG9m IHZhbHVlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBi eSBhYm9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOwor TEVUIHZhcjEgPSAnQWhvaic7CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCB2YXIxOworCitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgdmFyMTsKKworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hv dWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxk IGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIx OworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAg TEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwg Y2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOworICBDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsK KyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFy MiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0 b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExC QUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VM RUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFy aWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7 CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CitST0xMQkFDSzsKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhl ciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworCisgIFNBVkVQT0lOVCBzMjsKKyAg LS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisg IFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkg dG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworQ09NTUlU OworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0 cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsg RFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7 IFJPTExCQUNLOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklB QkxFIHZhcjEsIHZhcjI7Ci0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20240720-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhhf2 RnJvbSAxZGViMmQzN2MxMmI0MTliZjI4ZjNlNTRjYTU5YTkxZTZjNDRjOWRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzE5XSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IGUx OTBlZjczODljLi5jOGRkZWZjMjBlNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNjAwLDMgKzYwMCwxMDUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Npb25f dmFyaWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVuY3Rp b24gZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhlCisg KiBjb250ZW50IG9mIHNlc3Npb252YXJzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9yZSBkaXNwbGF5 IGVudHJpZXMgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9wcGVkIGJ1 dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVkIGlu dmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdfRlVO Q1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMgOAor CisJZWxvZyhERUJVRzEsICJwZ19zZXNzaW9uX3ZhcmlhYmxlcyBzdGFydCIpOworCisJSW5pdE1h dGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJzKQorCXsKKwkJUmV0 dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZv OworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3ZhcjsKKworCQloYXNo X3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAoKHN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJCXsKKwkJCURhdHVt CQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJYm9vbAkJbnVsbHNb TlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxlCXRwOworCQkJYm9v bAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2 YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7CisKKwkJCXZhbHVl c1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFsdWVzWzNdID0gT2Jq ZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qIGNoZWNrIGlmIHNlc3Npb24gdmFy aWFibGUgaXMgdmlzaWJsZSBpbiBzeXN0ZW0gY2F0YWxvZyAqLworCQkJdHAgPSBTZWFyY2hTeXND YWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJ LyoKKwkJCSAqIFNlc3Npb252YXJzIGNhbiBob2xkIGRhdGEgb2YgdmFyaWFibGVzIHJlbW92ZWQg ZnJvbSBjYXRhbG9nLAorCQkJICogKGFuZCBub3QgcHVyZ2VkKSBhbmQgdGhlbiBuYW1lc3BhY2Vu YW1lIGFuZCBuYW1lIGNhbm5vdCBiZSByZWFkCisJCQkgKiBmcm9tIGNhdGFsb2cuCisJCQkgKi8K KwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxl IHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKTsKKworCQkJCS8qIFdo ZW4gd2Ugc2VlIGRhdGEgaW4gY2F0YWxvZyAqLworCQkJCWlmIChzdmFyLT5jcmVhdGVfbHNuID09 IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJeworCQkJCQkvKiBhbmQgd2hlbiB3aGVuIHRo ZXNlIGRhdGEgYXJlIG5vdCBvdXQgb2YgZGF0ZSAqLworCQkJCQl2YWx1ZXNbMV0gPSBDU3RyaW5n R2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52 YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKE5h bWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlkKSk7CisJCQkJCXZhbHVlc1s1XSA9IEJv b2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVzWzZdID0gQm9vbEdldERhdHVtKAorCQkJ CQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgc3Zhci0+dmFyaWQs CisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpID09IEFDTENIRUNLX09L KTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3Rf YWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJ CSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhcl9p c192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0K KworCQkJaWYgKCF2YXJfaXNfdmFsaWQpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBXaGVuIHNlc3Np b24gdmFyaWFibGUgd2FzIHJlbW92ZWQgZnJvbSBjYXRhbG9nLCBidXQgd2UKKwkJCQkgKiBoYXZl bid0IHByb2Nlc3NlZCB0aGUgaW52bGlkYXRpb24geWV0LiBJbiB0aGlzIGNhc2UsIHdlIGNhbgor CQkJCSAqIGRpc3BsYXkgb25seSBmZXcgb2lkcy4gT3RoZXIgZGF0YSBhcmUgbm90IGF2YWlsYWJs ZQorCQkJCSAqICh3aXRob3V0IEZvcm1fcGdfdmFyaWFibGUgcmVjb3JkKSwgb3IgY2FuIGJlIGxv c3QgKGJlY2F1c2UKKwkJCQkgKiB0aGVyZSBpcyBub3QgcHJvdGVjdGlvbiBieSBkZXBlbmRlbmN5 IChtb3JlKS4KKwkJCQkgKi8KKwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0 cnVlOworCQkJCW51bGxzWzRdID0gdHJ1ZTsKKwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVs bHNbN10gPSB0cnVlOworCisJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKHRydWUpOworCQkJ fQorCisJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5z ZXREZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCWVsb2coREVCVUcxLCAicGdfc2Vz c2lvbl92YXJpYWJsZXMgZW5kIik7CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggNjQ0YmViOTA0MzIuLjM5NGY1MGE1NWJmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTEyMjExLDQgKzEyMjExLDEyIEBACiAgIHByb2FyZ25hbWVzID0+ICd7 c3VtbWFyaXplZF90bGksc3VtbWFyaXplZF9sc24scGVuZGluZ19sc24sc3VtbWFyaXplcl9waWR9 JywKICAgcHJvc3JjID0+ICdwZ19nZXRfd2FsX3N1bW1hcml6ZXJfc3RhdGUnIH0sCiAKK3sgb2lk ID0+ICc4NDg4JywgZGVzY3IgPT4gJ2xpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcycsCisg IHByb25hbWUgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJywgcHJvcm93cyA9PiAnMTAwMCcsIHBy b3JldHNldCA9PiAndCcsCisgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvYWxsYXJn dHlwZXMgPT4gJ3tvaWQsdGV4dCx0ZXh0LG9pZCx0ZXh0LGJvb2wsYm9vbCxib29sfScsCisgIHBy b2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7dmFy aWQsc2NoZW1hLG5hbWUsdHlwaWQsdHlwbmFtZSxyZW1vdmVkLGNhbl9zZWxlY3QsY2FuX3VwZGF0 ZX0nLAorICBwcm9zcmMgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJyB9LAorCiBdCi0tIAoyLjQ1 LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20240720-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhh51 RnJvbSA2MWIyYzE5MTE3ZTNmNTdmNzc3MzY4MGU1ZDQ1MzE0OWI0ZjY1YjZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MTldIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGRlZGljYXRlZCBo YXNoIHRhYmxlLiBUaGUKd3JpdGUgYWNjZXNzIGlzIGRvbmUgYnkgTEVUIGNvbW1hbmQuIFRoZSBy ZWFkIGFjY2VzcyBpcyBieSBTRUxFQ1QgY29tbWFuZC4KVGhlIGFjY2VzcyByaWdodHMgc2hvdWxk IGJlIGNoZWNrZWQuCgpUaGUgaWRlbnRpZmllcnMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgc2hvdWxk IGJlIHNoYWRvd2VkIGJ5IHBvc3NpYmxlIGNvbHVtbidzCmlkZW50aWZpZXJzIGFsd2F5cy4gVGhp cyBpcyBieSBkZXNpZ24gZmVhdHVyZS4gV2UgZG9uJ3Qgd2FudCB0byBicmVhayBhbgphcHBsaWNh dGlvbiBieSBjcmVhdGluZyBzb21lIHNlc3Npb24gdmFyaWFibGUgdGhhdCBpcyBiYWRseSBuYW1l ZC4KClRoZSBsaW1pdHMgb2YgdGhpcyBwYXRjaCAoc29sdmVkIGJ5IG90aGVyIHBhdGNoZXMpOgoK LSBzZXNzaW9uIHZhcmlhYmxlcyBibG9jayBwYXJhbGxlbCBleGVjdXRpb24KLSBzZXNzaW9uIHZh cmlhYmxlcyBibG9ja3Mgc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVhdGlvbiAoaW4gcGxwZ3NxbCkK LSBTUUwgZnVuY3Rpb25zIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBpbmxpbmVkCi0g Q0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCAodXNhZ2Ugb2YgZGlyZWN0IGFjY2VzcyB0 byBleHByZXNzIGV4ZWN1dG9yKQotIG1lbW9yeSB1c2VkIGJ5IGRyb3BwZWQgc2Vzc2lvbiB2YXJp YWJsZXMgaXMgbm90IHJlbGVhc2VkCgpJbXBsZW1lbnRhdGlvbnMgb2YgRVhQTEFJTiBMRVQgYW5k IFBSRVBBUkUgTEVUIHN0YXRlbWVudHMKYXJlIGluIHNlcGFyYXRlIHBhdGNoZXMgKGZvciBiZXR0 ZXIgcmVhZGFiaWxpdHkpCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAg ICAgICAgICAgIHwgIDEzICsKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAzOSArCiBkb2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sICAgICAgICAg ICAgICAgfCAgMjQgKwogZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCAgICAgICAgICAgICAgICAg ICAgIHwgIDEyICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAg ICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwg ICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAg MSArCiBkb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgOTcg KysKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDUgKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICAgICAgICAgIHwgMzI2ICsrKysr KysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgMiAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDYwMiArKysrKysr KysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAgNDIg Kwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDQ3ICsK IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jICAgICAgfCAyMDEgKysrKwog c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgIDEwICsKIHNy Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgOCArCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICAgICAgfCAxMzggKystCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyAgICAgfCAgIDMgKwogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgIDM1ICstCiBzcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAgfCAyNzkgKysrKystCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDkgKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAyMjQgKysrKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFj a2VuZC90Y29wL2Rlc3QuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2JhY2tl bmQvdGNvcC9wcXVlcnkuYyAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAxNiArCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgNDYgKwogc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDQxICstCiBzcmMvYmFja2VuZC91dGls cy9mbWdyL2ZtZ3IuYyAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgMzIgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y2Rlc2MuaCAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmggICAgICB8ICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aCAgICAgICAgICAgICAgICAgfCAgMTkgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDE3ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAg ICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAg ICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCAgICAg ICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAg ICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAgICAgICAgICAgICB8 ICAgMyArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwg ODg3ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsICAgIHwgNjA0ICsrKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QgICAgICAgICAgICAgIHwgICA1ICsKIDU3IGZpbGVzIGNoYW5nZWQsIDM5MTIgaW5z ZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2V4ZWN1 dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVk ZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA1YmExODg5 OTM0NS4uNWQ0OTU1NTQ0MjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05Nzc3LDYgKzk3NzcsMTkgQEAg U0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxh Y2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jv dz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFy Y3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPlhMb2dSZWNQdHI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBMU04gb2YgdGhlIHRyYW5zYWN0aW9uIHdoZXJl IHZhcmlhYmxlIHdhcyBjcmVhdGVkLiBJdCBpcyB1c2VkCisgICAgICAgKGluIGNvbWJpbmF0aW9u IHdpdGggPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KSBhcyBldmVyeXRpbWUKKyAgICAg ICB1bmlxdWUgaWRlbnRpZmllci4gT25seSA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4g Y2Fubm90IGJlCisgICAgICAgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLCBiZWNhdXNlIHVudXNlZCA8 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICBjYW4gYmUgcmV1c2VkLgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFt ZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dt bC9kZGwuc2dtbAppbmRleCBlZTFkOGVhMDYwYy4uOTI3MzA3OTlmNDAgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzMTYs NiArNTMxNiw0NSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdI RVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAgICAgY29tbWFuZHMuICBBIHNl c3Npb24gdmFyaWFibGUgY2FuIGJlIGNyZWF0ZWQgYnkgdGhlIDxjb21tYW5kPkNSRUFURQogICAg IFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLgogICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAg ICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIHNldCB3aXRoIHRoZSA8Y29tbWFu ZD5MRVQ8L2NvbW1hbmQ+IFNRTAorICAgIGNvbW1hbmQuICBXaGlsZSBzZXNzaW9uIHZhcmlhYmxl cyBzaGFyZSBwcm9wZXJ0aWVzIHdpdGggdGFibGVzLCB0aGVpciB2YWx1ZQorICAgIGNhbm5vdCBi ZSB1cGRhdGVkIHdpdGggYW4gPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiBjb21tYW5kLiBUaGUg dmFsdWUgb2YgYQorICAgIHNlc3Npb24gdmFyaWFibGUgbWF5IGJlIHJldHJpZXZlZCBieSB0aGUg PGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiBTUUwKKyAgICBjb21tYW5kLgorPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xFVCB2YXIxID0gY3VycmVudF9k YXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgb3IKKworPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgQVMgaW50 ZWdlcjsKK0dSQU5UIFJFQUQgT04gVkFSSUFCTEUgcHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQ VUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lkID0gKFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJF IHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOworU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBh IHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmll dmluZworICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIGEgPGxpdGVyYWw+TlVMTDwvbGl0 ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCisgICAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVs c2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUKKyAgICA8Y29tbWFuZD5MRVQ8L2Nv bW1hbmQ+IGNvbW1hbmQuIFRoZSBjb250ZW50IG9mIGEgdmFyaWFibGUgaXMgbm90CisgICAgdHJh bnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBQTCBs YW5ndWFnZXMuCisgICAgVGhlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBwZXJzaXN0ZW50LCBidXQg dGhlIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaXMKKyAgICB0ZW1wb3JhcnkgYW5kIG5v dCBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCisgICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93 ZWQgYnkgY29sdW1uIHJlZmVyZW5jZXMgaW4gYSBxdWVyeS4gV2hlbgorICAgIGEgcXVlcnkgY29u dGFpbnMgaWRlbnRpZmllcnMgb3IgcXVhbGlmaWVkIGlkZW50aWZpZXJzIHRoYXQgY291bGQgYmUg dXNlZCBhcworICAgIGJvdGggYSBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXJzIGFuZCBhcyBj b2x1bW4gaWRlbnRpZmllciwgdGhlbiB0aGUKKyAgICBjb2x1bW4gaWRlbnRpZmllciBpcyBwcmVm ZXJyZWQgZXZlcnkgdGltZS4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0i ZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21s IGIvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbAppbmRleCAxNWIyYWY5OWRjYS4uNTc4 Yjk3YWZlZWYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9ldmVudC10cmlnZ2VyLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbApAQCAtNDMyLDYgKzQzMiwxNCBAQAog ICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5 PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+Cisg ICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5BTFRFUiBW QVJJQUJMRTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+ PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRl ciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNl bnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249 ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxp Z249ImxlZnQiPjwvZW50cnk+CisgICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAg PGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5BTFRFUiBWSUVXPC9saXRlcmFsPjwvZW50cnk+ CiAgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50 cnk+CkBAIC03MjgsNiArNzM2LDE0IEBACiAgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48 bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+ PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnkgYWxp Z249ImxlZnQiPjxsaXRlcmFsPkNSRUFURSBWQVJJQUJMRTwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CisgICAgICAgPC9y b3c+CiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5D UkVBVEUgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRl ciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpAQCAtMTAyNCw2ICsxMDQwLDE0IEBACiAg ICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+ CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KKyAg ICAgICA8cm93PgorICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRlcmFsPkRST1AgVkFS SUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxs aXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIi PjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50 ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJj ZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWdu PSJsZWZ0Ij48L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxl bnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+RFJPUCBWSUVXPC9saXRlcmFsPjwvZW50cnk+CiAg ICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50cnk+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bs cGdzcWwuc2dtbAppbmRleCA5YjE5NzcwMjJhYi4uZDRjZDBmYjcyMDQgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApA QCAtNjAxNyw2ICs2MDE3LDE4IEBAICQkIExBTkdVQUdFIHBscGdzcWwgU1RSSUNUIElNTVVUQUJM RTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgPC9wYXJhPgogICAgPC9zZWN0Mz4KKworICAgPHNl Y3QzIGlkPSJwbHBnc3FsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgICA8dGl0bGU+PGNvbW1hbmQ+ U2Vzc2lvbiB2YXJpYWJsZXM8L2NvbW1hbmQ+PC90aXRsZT4KKworICAgIDxwYXJhPgorICAgICBU aGUgPGFwcGxpY2F0aW9uPlBML3BnU1FMPC9hcHBsaWNhdGlvbj4gbGFuZ3VhZ2UgaGFzIG5vIHBh Y2thZ2VzLCBhbmQKKyAgICAgdGhlcmVmb3JlIG5vIHBhY2thZ2UgdmFyaWFibGVzIG9yIHBhY2th Z2UgY29uc3RhbnRzLgorICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ IGhhcyBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGNy ZWF0ZWQgYnkgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiwKKyAgICAgYXMgZGVz Y3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPi4KKyAgICA8L3Bh cmE+CisgICA8L3NlY3QzPgogICA8L3NlY3QyPgogCiAgIDxzZWN0MiBpZD0icGxwZ3NxbC1wb3J0 aW5nLWFwcGVuZGl4Ij4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCAyZjY3ZGUzZTIxYi4uY2Mz YmQ1YWI1NDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTE1OCw2ICsxNTgsNyBAQCBDb21w bGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4K IDwhRU5USVRZIGdyYW50ICAgICAgICAgICAgICBTWVNURU0gImdyYW50LnNnbWwiPgogPCFFTlRJ VFkgaW1wb3J0Rm9yZWlnblNjaGVtYSBTWVNURU0gImltcG9ydF9mb3JlaWduX3NjaGVtYS5zZ21s Ij4KIDwhRU5USVRZIGluc2VydCAgICAgICAgICAgICBTWVNURU0gImluc2VydC5zZ21sIj4KKzwh RU5USVRZIGxldCAgICAgICAgICAgICAgICBTWVNURU0gImxldC5zZ21sIj4KIDwhRU5USVRZIGxp c3RlbiAgICAgICAgICAgICBTWVNURU0gImxpc3Rlbi5zZ21sIj4KIDwhRU5USVRZIGxvYWQgICAg ICAgICAgICAgICBTWVNURU0gImxvYWQuc2dtbCI+CiA8IUVOVElUWSBsb2NrICAgICAgICAgICAg ICAgU1lTVEVNICJsb2NrLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCmlu ZGV4IGQ4NzU3MGU3ZDhiLi5kMjAzNjM1MWU1MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFi bGUuc2dtbApAQCAtMTczLDYgKzE3Myw3IEBAIEFMVEVSIFZBUklBQkxFIGJvbyBTRVQgU0NIRU1B IHByaXZhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2Vj dDE+CiA8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFy aWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXgg NmE1MGRjYmU5MzYuLjcwYTFhMDk1OTVkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxl LnNnbWwKQEAgLTE1MSw2ICsxNTEsNyBAQCBTRUxFQ1QgdmFyMTsKICAgPHNpbXBsZWxpc3QgdHlw ZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUi Lz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIv PjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+ CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJs ZS5zZ21sCmluZGV4IDViZGIzNTYwZjBiLi42Nzk4OGI1ZmNkOCAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9w X3ZhcmlhYmxlLnNnbWwKQEAgLTExMSw2ICsxMTEsNyBAQCBEUk9QIFZBUklBQkxFIHZhcjE7CiAg IDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQu c2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjM5NjhlZGRkOTAK LS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCkBAIC0wLDAgKzEs OTcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1l bnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWxldCI+CisgPGluZGV4dGVybSB6b25l PSJzcWwtbGV0Ij4KKyAgPHByaW1hcnk+TEVUPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisg PGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNl Y29uZGFyeT5jaGFuZ2luZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+ CisgIDxyZWZlbnRyeXRpdGxlPkxFVDwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9t YW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZt aXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+TEVUPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWU8 L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9w c2lzPgorTEVUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxl PC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJl c3Npb248L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAg VGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZCBhc3NpZ25zIGEgdmFsdWUgdG8gdGhl IHNwZWNpZmllZCBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJp YWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPnNlc3Npb25f dmFyaWFibGU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48bGl0ZXJhbD5zcWxfZXhwcmVzc2lvbjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEFuIFNRTCBleHByZXNzaW9uIChjYW4gYmUgc3Vi cXVlcnkgaW4gcGFyZW50aGVzaXMpLiBUaGUgcmVzdWx0IG11c3QKKyAgICAgIGJlIG9mIGNhc3Rh YmxlIHRvIHRoZSBzYW1lIGRhdGEgdHlwZSBhcyB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoaW4KKyAg ICAgIGltcGxpY2l0IG9yIGFzc2lnbm1lbnQgY29udGV4dCkuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisKKyAg PHBhcmE+CisgICBFeGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIG15 dmFyIEFTIGludGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xFVCBteXZhciA9IChTRUxFQ1Qgc3Vt KHZhbCkgRlJPTSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGlzIGEgPHByb2R1Y3RuYW1lPlBv c3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2lt cGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0 ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3Jl YXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRy b3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwv cmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggMjU1NzhmMzk0NmMuLjEzZTRhZGM1ZGYzIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sCkBAIC0xODYsNiArMTg2LDcgQEAKICAgICZncmFudDsKICAgICZpbXBv cnRGb3JlaWduU2NoZW1hOwogICAgJmluc2VydDsKKyAgICZsZXQ7CiAgICAmbGlzdGVuOwogICAg JmxvYWQ7CiAgICAmbG9jazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5k ZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggNWE1ZTNmN2I1 NmEuLjE3MTE5ZjYxNWVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg2NSw2ICsx ODY1LDExIEBAIGZpbmRfZXhwcl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJ UGFyYW0JICAgKnBhcmFtID0gKFBhcmFtICopIG5vZGU7CiAKKwkJLyogQSB2YXJpYWJsZSBwYXJh bWV0ZXIgZGVwZW5kcyBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBh cmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJs ZVJlbGF0aW9uSWQsIHBhcmFtLT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFk ZHJzKTsKKwogCQkvKiBBIHBhcmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3Mg ZGF0YXR5cGUgKi8KIAkJYWRkX29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+ cGFyYW10eXBlLCAwLAogCQkJCQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNw YWNlLmMKaW5kZXggYzE4MjRmOTExNWYuLmY4MWUwMDY0MjRlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNw YWNlLmMKQEAgLTM0MDIsNiArMzQwMiwzMzIgQEAgTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAq bnNwbmFtZSwKIAlyZXR1cm4gdmFyb2lkOwogfQogCisvKgorICogVGhlIGlucHV0IGxpc3QgY29u dGFpbnMgbmFtZXMgd2l0aCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucyB1c2VkIGFzIHRoZSBsZWZ0 CisgKiBwYXJ0IG9mIExFVCBzdGF0ZW1lbnQuIFRoZSBmb2xsb3dpbmcgcm91dGluZSByZXR1cm5z IGEgbmV3IGxpc3Qgd2l0aCBvbmx5CisgKiBpbml0aWFsIHN0cmluZ3MgKG5hbWVzKSAtIHdpdGhv dXQgaW5kaXJlY3Rpb24gZXhwcmVzc2lvbnMuCisgKi8KK0xpc3QgKgorTmFtZXNGcm9tTGlzdChM aXN0ICpuYW1lcykKK3sKKwlMaXN0Q2VsbCAgICpsOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsK KworCWZvcmVhY2gobCwgbmFtZXMpCisJeworCQlOb2RlCSAgICpuID0gbGZpcnN0KGwpOworCisJ CWlmIChJc0EobiwgU3RyaW5nKSkKKwkJeworCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4p OworCQl9CisJCWVsc2UKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8q CisgKiBJZGVudGlmeVZhcmlhYmxlIC0gdHJ5IHRvIGZpbmQgdmFyaWFibGUgaWRlbnRpZmllZCBi eSBsaXN0IG9mIG5hbWVzLgorICoKKyAqIEJlZm9yZSB0aGlzIGNhbGwgd2UgZG9uJ3Qga25vdywg aG93IHRoZXNlIGZpZWxkcyBzaG91bGQgYmUgbWFwcGVkIHRvCisgKiBzY2hlbWEgbmFtZSwgdmFy aWFibGUgbmFtZSBhbmQgYXR0cmlidXRlIG5hbWUuIEluIHRoaXMgcm91dGluZQorICogd2UgdHJ5 IHRvIGFwcGx5IHBhc3NlZCBuYW1lcyB0byBhbGwgcG9zc2libGUgY29tYmluYXRpb25zIG9mIHNj aGVtYSBuYW1lLAorICogdmFyaWFibGUgbmFtZSBhbmQgYXR0cmlidXRlIG5hbWUsIGFuZCB3ZSBj b3VudCB2YWxpZCBjb21iaW5hdGlvbnMuCisgKgorICogUmV0dXJucyBvaWQgb2YgaWRlbnRpZmll ZCB2YXJpYWJsZS4gV2hlbiBsYXN0IGZpZWxkIG9mIG5hbWVzIGxpc3QgaXMKKyAqIGlkZW50aWZp ZWQgYXMgYW4gYXR0cmlidXRlLCB0aGVuIHRoZSBhcmd1bWVudCBhdHRybmFtZSBjb250YWlucyB0 aGUgbmFtZSBvZgorICogdGhpcyBmaWVsZC4KKyAqCisgKiBXaGVuIHRoZXJlIGlzIGlzIG5vIHZh bGlkIGNvbWJpbmF0aW9ucywgd2UgY2FuIGJlIHN1cmUgdGhlIHNwZWNpZmllZCBsaXN0IG9mCisg KiBuYW1lcyBjYW5ub3QgaWRlbnRpZnkgYSBzZXNzaW9uIHZhcmlhYmxlLiBJbiB0aGlzIGNhc2Ug d2UgcmV0dXJuIEludmFsaWRPaWQuCisgKgorICogV2UgY2FuIGZpbmQgbW9yZSB2YWxpZCBjb21i aW5hdGlvbiB0aGFuIG9uZS4KKyAqIEV4YW1wbGU6IHVzZXJzIGNhbiBoYXZlIHNlc3Npb24gdmFy aWFibGUgeCBpbiBzY2hlbWEgeSwgYW5kCisgKiBzZXNzaW9uIHZhcmlhYmxlIHkgd2l0aCBhdHRy aWJ1dGUgeCBpbnNpZGUgc29tZSBzY2hlbWEgZnJvbQorICogc2VhcmNoIHBhdGguIEluIHRoaXMg c2l0dWF0aW9uIHRoZSBtZWFuaW5nIG9mIGV4cHJlc3Npb24gInkiLiJ4IgorICogaXMgYW1iaWd1 b3VzLiBJbiB0aGlzIGNhc2UgdGhpcyByb3V0aW5lIHJldHVybnMgb2lkIG9mIHZhcmlhYmxlCisg KiB4IGluIHNjaGVtYSB5LCBhbmQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgIm5vdF91bmlxdWUiIGlz IHNldCB0bworICogdHJ1ZS4gSW4gdGhpcyBjYXNlIHRoaXMgdmFyaWFibGUgaXMgbG9ja2VkLgor ICoKKyAqIFRoZSBBY2Nlc3NTaGFyZUxvY2sgaXMgY3JlYXRlZCBvbiByZWxhdGVkIHNlc3Npb24g dmFyaWFibGUuIFRoZSBsb2NrCisgKiB3aWxsIGJlIGtlcHQgZm9yIHRoZSB3aG9sZSB0cmFuc2Fj dGlvbi4KKyAqCisgKiBOb3RlOiB0aGUgb3V0IGF0dHJuYW1lIHNob3VsZCBiZSB1c2VkIG9ubHkg d2hlbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICogaXMgaWRlbnRpZmllZC4gV2hlbiB0aGUgc2Vz c2lvbiB2YXJpYWJsZSBpcyBub3QgaWRlbnRpZmllZCwgdGhlbiB0aGlzCisgKiBvdXRwdXQgdmFy aWFibGUgY2FuIGhvbGQgcmVmZXJlbmNlIHRvIHNvbWUgc3RyaW5nLCBidXQgaXNuJ3Qgc3VyZQor ICogYWJvdXQgaXRzIHNlbWFudGljcy4KKyAqCisgKiBXaGVuIHdlIHVzZSB0aGlzIHJvdXRpbmUg Zm9yIGlkZW50aWZpY2F0aW9uIG9mIHNoYWRvd2VkIHZhcmlhYmxlLAorICogd2UgZG9uJ3Qgd2Fu dCB0byByYWlzZSBhbnkgZXJyb3IuIFNoYWRvd2luZyBjb2x1bW4gcmVmZXJlbmNlIGlzIGNvcnJl Y3QsCisgKiBhbmQgd2UgZG9uJ3Qgd2FudCB0byBicmVhayBleGVjdXRpb24gZHVlIHNoYWRvd2lu ZyBjaGVjay4KKyAqLworT2lkCitJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoq YXR0cm5hbWUsIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcikKK3sKKwlOb2RlCSAgICpm aWVsZDEgPSBOVUxMOworCU5vZGUJICAgKmZpZWxkMiA9IE5VTEw7CisJTm9kZQkgICAqZmllbGQz ID0gTlVMTDsKKwlOb2RlCSAgICpmaWVsZDQgPSBOVUxMOworCWNoYXIJICAgKmEgPSBOVUxMOwor CWNoYXIJICAgKmIgPSBOVUxMOworCWNoYXIJICAgKmMgPSBOVUxMOworCWNoYXIJICAgKmQgPSBO VUxMOworCU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsKKwlPaWQJCQlvbGRfdmFyaWQgPSBJbnZh bGlkT2lkOworCXVpbnQ2NAkJaW52YWxfY291bnQ7CisJYm9vbAkJcmV0cnkgPSBmYWxzZTsKKwor CS8qCisJICogRERMIG9wZXJhdGlvbnMgY2FuIGNoYW5nZSB0aGUgcmVzdWx0cyBvZiBhIG5hbWUg bG9va3VwLiAgU2luY2UgYWxsIHN1Y2gKKwkgKiBvcGVyYXRpb25zIHdpbGwgZ2VuZXJhdGUgaW52 YWxpZGF0aW9uIG1lc3NhZ2VzLCB3ZSBrZWVwIHRyYWNrIG9mCisJICogd2hldGhlciBhbnkgc3Vj aCBtZXNzYWdlcyBzaG93IHVwIHdoaWxlIHdlJ3JlIHBlcmZvcm1pbmcgdGhlIG9wZXJhdGlvbiwK KwkgKiBhbmQgcmV0cnkgdW50aWwgZWl0aGVyICgxKSBubyBtb3JlIGludmFsaWRhdGlvbiBtZXNz YWdlcyBzaG93IHVwIG9yICgyKQorCSAqIHRoZSBhbnN3ZXIgZG9lc24ndCBjaGFuZ2UuCisJICov CisJZm9yICg7OykKKwl7CisJCU9pZAkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBJbnZhbGlkT2lk OworCQlPaWQJCQl2YXJvaWRfd2l0aF9hdHRyID0gSW52YWxpZE9pZDsKKworCQkqbm90X3VuaXF1 ZSA9IGZhbHNlOworCQkqYXR0cm5hbWUgPSBOVUxMOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisK KwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXI7CisKKwkJc3dpdGNo IChsaXN0X2xlbmd0aChuYW1lcykpCisJCXsKKwkJCWNhc2UgMToKKwkJCQlmaWVsZDEgPSBsaW5p dGlhbChuYW1lcyk7CisKKwkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisKKwkJCQl2 YXJpZCA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIHN0clZhbChmaWVsZDEpLCB0cnVlKTsKKwkJCQli cmVhazsKKworCQkJY2FzZSAyOgorCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQlm aWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcp KTsKKwkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisKKwkJCQlpZiAoSXNBKGZpZWxkMiwgU3RyaW5n KSkKKwkJCQl7CisJCQkJCS8qIHdoZW4gYm90aCBmaWVsZHMgYXJlIG9mIHN0cmluZyB0eXBlICov CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKworCQkJCQkvKgorCQkJCQkgKiBhLmIgY2FuIG1l YW4gInNjaGVtYSIuInZhcmlhYmxlIiBvciAidmFyaWFibGUiLiJmaWVsZCIuCisJCQkJCSAqIENo ZWNrIGJvdGggdmFyaWFudHMsIGFuZCByZXR1cm5zIEludmFsaWRPaWQgd2l0aAorCQkJCQkgKiBu b3RfdW5pcXVlIGZsYWcsIHdoZW4gYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlCisJCQkJCSAqIHBv c3NpYmxlLgorCQkJCQkgKi8KKwkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlh YmxlKGEsIGIsIHRydWUpOworCQkJCQl2YXJvaWRfd2l0aF9hdHRyID0gTG9va3VwVmFyaWFibGUo TlVMTCwgYSwgdHJ1ZSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCS8qIFRoZSBsYXN0 IGZpZWxkIG9mIGxpc3QgY2FuIGJlIHN0YXIgdG9vLiAqLworCQkJCQlBc3NlcnQoSXNBKGZpZWxk MiwgQV9TdGFyKSk7CisKKwkJCQkJLyoKKwkJCQkJICogSW4gdGhpcyBjYXNlLCB0aGUgZmllbGQx IHNob3VsZCBiZSB2YXJpYWJsZSBuYW1lLiBCdXQKKwkJCQkJICogZGlyZWN0IHVuYm94aW5nIG9m IGNvbXBvc2l0ZSBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QKKwkJCQkJICogc3VwcG9ydGVkIG5v dywgYW5kIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byB0cnkgbG9va3VwCisJCQkJCSAqIHJlbGF0ZWQg dmFyaWFibGUuCisJCQkJCSAqCisJCQkJCSAqIFVuYm94aW5nIGlzIHN1cHBvcnRlZCBieSBzeW50 YXggKHZhcikuKgorCQkJCQkgKi8KKwkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJfQorCisJ CQkJaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJv aWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSpub3RfdW5pcXVlID0gdHJ1ZTsKKwkJCQkJdmFy aWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJc1ZhbGlk KHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJCXsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91 dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIp KQorCQkJCXsKKwkJCQkJKmF0dHJuYW1lID0gYjsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9h dHRyOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSAzOgorCQkJCXsKKwkJCQkJYm9vbAkJ ZmllbGQxX2lzX2NhdGFsb2cgPSBmYWxzZTsKKworCQkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1l cyk7CisJCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCQkJCQlmaWVsZDMgPSBsdGhpcmQo bmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0 KElzQShmaWVsZDIsIFN0cmluZykpOworCisJCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJ YiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCWlmIChJc0EoZmllbGQzLCBTdHJpbmcpKQorCQkJ CQl7CisJCQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBhLmIu YyBjYW4gbWVhbiBjYXRhbG9nLnNjaGVtYS52YXJpYWJsZSBvcgorCQkJCQkJICogc2NoZW1hLnZh cmlhYmxlLmZpZWxkLgorCQkJCQkJICoKKwkJCQkJCSAqIENoZWNrIGJvdGggdmFyaWFudHMsIGFu ZCBzZXQgbm90X3VuaXF1ZSBmbGFnLCB3aGVuCisJCQkJCQkgKiBib3RoIGludGVycHJldGF0aW9u cyBhcmUgcG9zc2libGUuCisJCQkJCQkgKgorCQkJCQkJICogV2hlbiB0aGlyZCBub2RlIGlzIHN0 YXIsIG9ubHkgcG9zc2libGUKKwkJCQkJCSAqIGludGVycHJldGF0aW9uIGlzIHNjaGVtYS52YXJp YWJsZS4qLCBidXQgdGhpcworCQkJCQkJICogcGF0dGVybiBpcyBub3Qgc3VwcG9ydGVkIG5vdy4K KwkJCQkJCSAqLworCQkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEsIGIs IHRydWUpOworCisJCQkJCQkvKgorCQkJCQkJICogY2hlY2sgcGF0dGVybiBjYXRhbG9nLnNjaGVt YS52YXJpYWJsZSBvbmx5IHdoZW4KKwkJCQkJCSAqIHRoZXJlIGlzIHBvc3NpYmlsaXR5IHRvIHN1 Y2Nlc3MuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUo TXlEYXRhYmFzZUlkKSkgPT0gMCkKKwkJCQkJCXsKKwkJCQkJCQlmaWVsZDFfaXNfY2F0YWxvZyA9 IHRydWU7CisJCQkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGIsIGMs IHRydWUpOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0 KElzQShmaWVsZDMsIEFfU3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0K KworCQkJCQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlk KHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7CisJ CQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAo T2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQkJeworCQkJCQkJdmFyaWQgPSB2 YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFy b2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSphdHRybmFtZSA9IGM7CisJCQkJCQl2YXJp ZCA9IHZhcm9pZF93aXRoX2F0dHI7CisJCQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBXaGVuIHdl IGRpZG4ndCBmaW5kIHZhcmlhYmxlLCB3ZSBjYW4gKHdoZW4gaXQgaXMKKwkJCQkJICogYWxsb3dl ZCkgcmFpc2UgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlIGVycm9yLgorCQkJCQkgKi8KKwkJCQkJ aWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSAmJiAhbm9lcnJvciAmJiAhZmllbGQxX2lzX2NhdGFsb2cp CisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5j ZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco bmFtZXMpKSkpOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSA0OgorCQkJCXsKKwkJCQkJ ZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsK KwkJCQkJZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKwkJCQkJZmllbGQ0ID0gbGZvdXJ0aChuYW1l cyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNB KGZpZWxkMiwgU3RyaW5nKSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQzLCBTdHJpbmcpKTsKKwor CQkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKwkJCQkJ YyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgImEi IGlzIHVzZWQgYXMgY2F0YWxvZyBuYW1lIC0gY2hlY2sgaXQuCisJCQkJCSAqLworCQkJCQlpZiAo c3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQkJCXsK KwkJCQkJCWlmICghbm9lcnJvcikKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkJIGVycm1zZygi Y3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJ CQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCQl9CisJCQkJCWVsc2UKKwkJ CQkJeworCQkJCQkJaWYgKElzQShmaWVsZDQsIFN0cmluZykpCisJCQkJCQl7CisJCQkJCQkJZCA9 IHN0clZhbChmaWVsZDQpOworCQkJCQkJfQorCQkJCQkJZWxzZQorCQkJCQkJeworCQkJCQkJCUFz c2VydChJc0EoZmllbGQ0LCBBX1N0YXIpKTsKKwkJCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJ CQkJCX0KKworCQkJCQkJKmF0dHJuYW1lID0gZDsKKwkJCQkJCXZhcmlkID0gTG9va3VwVmFyaWFi bGUoYiwgYywgdHJ1ZSk7CisJCQkJCX0KKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWRlZmF1bHQ6 CisJCQkJaWYgKCFub2Vycm9yKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkgZXJybXNnKCJpbXByb3BlciBxdWFsaWZp ZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogJXMiLAorCQkJCQkJCQkJTmFtZUxpc3RU b1N0cmluZyhuYW1lcykpKSk7CisJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCX0KKworCQkvKgor CQkgKiBJZiwgdXBvbiByZXRyeSwgd2UgZ2V0IGJhY2sgdGhlIHNhbWUgT0lEIHdlIGRpZCBsYXN0 IHRpbWUsIHRoZW4gdGhlCisJCSAqIGludmFsaWRhdGlvbiBtZXNzYWdlcyB3ZSBwcm9jZXNzZWQg ZGlkIG5vdCBjaGFuZ2UgdGhlIGZpbmFsIGFuc3dlci4KKwkJICogU28gd2UncmUgZG9uZS4KKwkJ ICoKKwkJICogSWYgd2UgZ290IGEgZGlmZmVyZW50IE9JRCwgd2UndmUgbG9ja2VkIHRoZSB2YXJp YWJsZSB0aGF0IHVzZWQgdG8KKwkJICogaGF2ZSB0aGlzIG5hbWUgcmF0aGVyIHRoYW4gdGhlIG9u ZSB0aGF0IGRvZXMgbm93LiAgU28gcmVsZWFzZSB0aGUKKwkJICogbG9jay4KKwkJICovCisJCWlm IChyZXRyeSkKKwkJeworCQkJaWYgKG9sZF92YXJpZCA9PSB2YXJpZCkKKwkJCQlicmVhazsKKwor CQkJaWYgKE9pZElzVmFsaWQob2xkX3ZhcmlkKSkKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChW YXJpYWJsZVJlbGF0aW9uSWQsIG9sZF92YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJfQor CisJCS8qCisJCSAqIExvY2sgdGhlIHZhcmlhYmxlLiAgVGhpcyB3aWxsIGFsc28gYWNjZXB0IGFu eSBwZW5kaW5nIGludmFsaWRhdGlvbgorCQkgKiBtZXNzYWdlcy4gIElmIHdlIGdvdCBiYWNrIElu dmFsaWRPaWQsIGluZGljYXRpbmcgbm90IGZvdW5kLCB0aGVuCisJCSAqIHRoZXJlJ3Mgbm90aGlu ZyB0byBsb2NrLCBidXQgd2UgYWNjZXB0IGludmFsaWRhdGlvbiBtZXNzYWdlcworCQkgKiBhbnl3 YXksIHRvIGZsdXNoIGFueSBuZWdhdGl2ZSBjYXRjYWNoZSBlbnRyaWVzIHRoYXQgbWF5IGJlCisJ CSAqIGxpbmdlcmluZy4KKwkJICovCisJCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCQlBY2Nl cHRJbnZhbGlkYXRpb25NZXNzYWdlcygpOworCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcmlkKSkK KwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nl c3NTaGFyZUxvY2spOworCisJCWlmIChpbnZhbF9jb3VudCA9PSBTaGFyZWRJbnZhbGlkTWVzc2Fn ZUNvdW50ZXIpCisJCQlicmVhazsKKworCQlyZXRyeSA9IHRydWU7CisJCW9sZF92YXJpZCA9IHZh cmlkOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJfQorCisJcmV0dXJuIHZhcmlkOworfQorCiAv KgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCiAgKgkJR2l2ZW4gYSBwb3NzaWJseS1xdWFs aWZpZWQgbmFtZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIFN0cmluZyBub2RlcywKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYwppbmRleCBmNjUxMjE0NDBhOS4uMWM3MzE4MWMzZGEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJwYXJzZXIv cGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRp bHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcGdfbHNuLmgiCiAjaW5jbHVkZSAidXRp bHMvc3lzY2FjaGUuaCIKIAogc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCkBAIC0xMDEsNiArMTAyLDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCiAJdmFyaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJp YWJsZU9pZEluZGV4SWQsIEFudW1fcGdfdmFyaWFibGVfb2lkKTsKIAogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFsdWVzW0Fu dW1fcGdfdmFyaWFibGVfdmFyY3JlYXRlX2xzbiAtIDFdID0gTFNOR2V0RGF0dW0oR2V0WExvZ0lu c2VydFJlY1B0cigpKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lIC0gMV0gPSBO YW1lR2V0RGF0dW0oJnZhcm5hbWUpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVz cGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpOwogCXZhbHVlc1tBbnVt X3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyVHlwZSk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL01ha2VmaWxlCmluZGV4IDQ4ZjczNDhmOTFjLi4xY2ZhZWNhNTFlYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvTWFrZWZpbGUKQEAgLTUwLDYgKzUwLDcgQEAgT0JKUyA9IFwKIAlzY2hlbWFjbWRzLm8gXAog CXNlY2xhYmVsLm8gXAogCXNlcXVlbmNlLm8gXAorCXNlc3Npb25fdmFyaWFibGUubyBcCiAJc3Rh dHNjbWRzLm8gXAogCXN1YnNjcmlwdGlvbmNtZHMubyBcCiAJdGFibGVjbWRzLm8gXApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9tZXNvbi5idWlsZAppbmRleCA2ZGQwMGE0YWJkZS4uY2E2MjFiZTVlY2IgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL21lc29uLmJ1aWxkCkBAIC0zOCw2ICszOCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBm aWxlcygKICAgJ3NjaGVtYWNtZHMuYycsCiAgICdzZWNsYWJlbC5jJywKICAgJ3NlcXVlbmNlLmMn LAorICAnc2Vzc2lvbl92YXJpYWJsZS5jJywKICAgJ3N0YXRzY21kcy5jJywKICAgJ3N1YnNjcmlw dGlvbmNtZHMuYycsCiAgICd0YWJsZWNtZHMuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUxOTBl ZjczODljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCkBAIC0wLDAgKzEsNjAyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBz ZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCSAgc2Vzc2lvbiB2YXJpYWJsZSBjcmVhdGlvbi9tYW5pcHVs YXRpb24gY29tbWFuZHMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdy ZXMuaCIKKworI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVj ZWl2ZXIuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisj aW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1n ci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInRjb3AvdGNvcHByb3Qu aCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2RhdHVtLmgi CisjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIK KyNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIK KworLyoKKyAqIFZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBi YWNrZW5kIGxvY2FsIG1lbW9yeQorICogaW5zaWRlIHNlc3Npb252YXJzIGhhc2ggdGFibGUgaW4g YmluYXJ5IGZvcm1hdCBpbnNpZGUgYSBkZWRpY2F0ZWQgbWVtb3J5CisgKiBjb250ZXh0IFNWYXJp YWJsZU1lbW9yeUNvbnRleHQuICBUaGUgaGFzaCBrZXkgaXMgb2lkCisgKiBvZiByZWxhdGVkIGVu dHJ5IGluIHBnX3ZhcmlhYmxlIHRhYmxlLiBCdXQgbG9uZyB0ZXJtIHVuYW1iaWd1aXR5IG9mIG9p ZCBpcworICogbm90IGd1YXJhbnRlZWQuIEFzIGFuIGV4YW1wbGUsIGZvciBhIHZhbHVlIHdpdGgg b25lIG9pZCBhIHNlc3Npb24gY2FuIGJlCisgKiBpbmFjdGl2ZSBmb3IgbG9uZyB0aW1lLCB3aGls ZSBpbiB0aGUgbWVhbnRpbWUgdGhlIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogY2FuIGJl IGRyb3BwZWQgaW4gYW5vdGhlciBzZXNzaW9uLCBhc3NpZ25lZCBvaWQgY2FuIGJlIHJlbGVhc2Vk LCBhbmQKKyAqIHRoZW9yZXRpY2FseSB0aGlzIG9pZCBjYW4gYmUgYXNzaWduZWQgdG8gZGlmZmVy ZW50IHNlc3Npb24gdmFyaWFibGUuCisgKiBBdCB0aGUgZW5kLCB0aGUgcmVhZGluZyBvZiB2YWx1 ZSBzdG9yZWQgaW4gb2xkIHNlc3Npb24gc2hvdWxkIHRvIGZhaWwsCisgKiBiZWNhdXNlIHJlbGF0 ZWQgZW50cnkgaW4gcGdfdmFyaWFibGUgd2lsbCBub3QgYmUgY29uc2lzdGVudCB3aXRoCisgKiBz dG9yZWQgdmFsdWUuIFRoaXMgaXMgcmVhc29uIHdoeSB3ZSBkbyBjaGVjayBjb25zaXN0ZW5jeSBi ZXR3ZWVuIHN0b3JlZAorICogdmFsdWUgYW5kIGNhdGFsb2cgYnkgY3JlYXRlX2xzbiB2YWx1ZS4K KyAqCisgKiBCZWZvcmUgYW55IHVzYWdlIChub3Qgb25seSByZWFkIGluIHRyYW5zYWN0aW9uKSB3 ZSBuZWVkIHRvIGNoZWNrIGNvbnNpc3RlbmN5CisgKiB3aXRoIHBnX3ZhcmlhYmxlIGVudHJ5LiBX aGVuIHRoZXJlIGlzIG5vdCBlbnRyeSB3aXRoIHN0b3JlZCBvaWQsIHRoZSByZWxhdGVkCisgKiB2 YXJpYWJsZSB3YXMgZHJvcHBlZCwgYW5kIHN0b3JlZCB2YWx1ZSBpcyBub3QgY29uc2lzdGVudC4g V2hlbiBlbnRyeSB3aXRoCisgKiBrbm93biBvaWQsIGJ1dCBsc24gbnVtYmVyIGlzIGRpZmZlcmVu dCwgZW50cnkgb2YgcGdfdmFyaWFibGUgd2FzIGNyZWF0ZWQKKyAqIGZvciBkaWZmZXJlbnQgdmFy aWFibGUgYW5kIHN0b3JlZCB2YWx1ZSBpcyBub3QgY29uc2lzdGVudCBhZ2Fpbi4KKyAqLwordHlw ZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQoreworCU9pZAkJCXZhcmlkOwkJCS8qIHBnX3Zhcmlh YmxlIE9JRCBvZiB0aGUgdmFyaWFibGUgKGhhc2gga2V5KSAqLworCVhMb2dSZWNQdHIJY3JlYXRl X2xzbjsKKworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7CisKKwlPaWQJCQl0eXBpZDsK KwlpbnQxNgkJdHlwbGVuOworCWJvb2wJCXR5cGJ5dmFsOworCisJYm9vbAkJaXNfZG9tYWluOwor CisJLyoKKwkgKiBkb21haW5fY2hlY2tfZXh0cmEgaG9sZHMgYW4gZXh0cmEgKGNhY2hlKSBmb3Ig ZG9tYWluIGNoZWNrLgorCSAqIFRoaXMgZXh0cmEgaXMgdXN1YWxseSBzdG9yZWQgaW4gZm5fbWN4 dC4gV2UgZG8gbm90IGhhdmUgc2FtZQorCSAqIG1lbW9yeSBjb250ZXh0IGZvciBzZXNzaW9uIHZh cmlhYmxlcywgYnV0IHdlIGNhbiB1c2UKKwkgKiBUb3BUcmFuc2FjdGlvbkNvbnRleHQgaW5zdGVh ZC4gRnJlc2ggZXh0cmEgaXMgZm9yY2VkIHdoZW4KKwkgKiB3ZSBkZXRlY3Qgd2UgYXJlIGluIGEg ZGlmZmVyZW50IHRyYW5zYWN0aW9uIChkaWZmZXJlbnQKKwkgKiBsb2NhbCB0cmFuc2FjdGlvbiBp ZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZCkuCisJICovCisJdm9pZAkgICAqZG9tYWluX2NoZWNr X2V4dHJhOworCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKKwor CS8qCisJICogU3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9uIGNhbiBiZSBvdXRkYXRl ZCB3aGVuIHdlIHJlY2VpdmUKKwkgKiBzaW52YWwgbWVzc2FnZS4gV2UgaGF2ZSB0byBjaGVjayBh bHdheXMgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZQorCSAqIHRydXN0ZnVsLgorCSAqLworCWJvb2wJ CWlzX3ZhbGlkOworCisJdWludDMyCQloYXNodmFsdWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNp bnZhbCBtZXNzYWdlICovCit9IFNWYXJpYWJsZURhdGE7CisKK3R5cGVkZWYgU1ZhcmlhYmxlRGF0 YSAqU1ZhcmlhYmxlOworCitzdGF0aWMgSFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNo IHRhYmxlIGZvciBzZXNzaW9uIHZhcmlhYmxlcyAqLworCitzdGF0aWMgTWVtb3J5Q29udGV4dCBT VmFyaWFibGVNZW1vcnlDb250ZXh0ID0gTlVMTDsKKworLyoKKyAqIENhbGxiYWNrIGZ1bmN0aW9u IGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK3Bn X3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBo YXNodmFsdWUpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsK KworCWVsb2coREVCVUcxLCAicGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2sgJXUgJXUiLCBjYWNo ZWlkLCBoYXNodmFsdWUpOworCisJQXNzZXJ0KHNlc3Npb252YXJzKTsKKworCS8qCisJICogV2hl biB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gd2UgaGF2ZSB0byByZWNoZWNr IGFsbAorCSAqIGN1cnJlbnRseSB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBTaW5jZSB3ZSBjYW4n dCBndWFyYW50ZWUgdGhlIGV4YWN0CisJICogc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGl0cyBoYXNo VmFsdWUsIHdlIGFsc28gaGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsCisJICogaXRlbXMgb2YgdGhl IHNlc3Npb252YXJzIGhhc2ggdGFibGUuCisJICovCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBz ZXNzaW9udmFycyk7CisKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFy Y2goJnN0YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+ aGFzaHZhbHVlID09IGhhc2h2YWx1ZSkKKwkJeworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsK KwkJfQorCX0KK30KKworLyoKKyAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQor ICovCitzdGF0aWMgdm9pZAorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBz dmFyKQoreworCS8qIENsZWFuIGN1cnJlbnQgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkK Kwl7CisJCWlmICghc3Zhci0+dHlwYnl2YWwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zh ci0+dmFsdWUpKTsKKworCQlzdmFyLT5pc251bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVl ID0gKERhdHVtKSAwOworfQorCisvKgorICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGlu IHBnX3ZhcmlhYmxlIGlzIGNvbnNpc3RlbnQgd2l0aAorICogdGhlIGdpdmVuIHNlc3Npb24gdmFy aWFibGUuCisgKi8KK3N0YXRpYyBib29sCitpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJp YWJsZSBzdmFyKQoreworCUhlYXBUdXBsZQl0cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKwor CUFzc2VydChPaWRJc1ZhbGlkKHN2YXItPnZhcmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hl MShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhl YXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJLyoKKwkJICogSW4gdGhpcyBjYXNlLCB0aGUgb25s eSBvaWQgY2Fubm90IGJlIHVzZWQgYXMgdW5pcXVlIGlkZW50aWZpZXIsCisJCSAqIGJlY2F1c2Ug dGhlIG9pZCBjb3VudGVyIGNhbiB3cmFwYXJvdW5kLCBhbmQgdGhlIG9pZCBjYW4gYmUgdXNlZCBm b3IKKwkJICogbmV3IG90aGVyIHNlc3Npb24gdmFyaWFibGUuIFdlIGRvIGEgc2Vjb25kIGNoZWNr IGFnYWluc3QgNjRiaXQKKwkJICogdW5pcXVlIGlkZW50aWZpZXIuCisJCSAqLworCQlpZiAoc3Zh ci0+Y3JlYXRlX2xzbiA9PSAoKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0cCkpLT52YXJj cmVhdGVfbHNuKQorCQkJcmVzdWx0ID0gdHJ1ZTsKKworCQlSZWxlYXNlU3lzQ2FjaGUodHApOwor CX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBVcGRhdGUgYXR0cmlidXRlcyBjYWNo ZWQgaW4gc3ZhcgorICovCitzdGF0aWMgdm9pZAorc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJp YWJsZSB2YXJmb3JtOworCisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXN2YXItPnZhcmlkID0gdmFyaWQ7 CisJc3Zhci0+Y3JlYXRlX2xzbiA9IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc247CisKKwlzdmFyLT50 eXBpZCA9IHZhcmZvcm0tPnZhcnR5cGU7CisKKwlnZXRfdHlwbGVuYnl2YWwoc3Zhci0+dHlwaWQs ICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBieXZhbCk7CisKKwlzdmFyLT5pc19kb21haW4gPSAo Z2V0X3R5cHR5cGUodmFyZm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOworCXN2YXIt PmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4 aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOworCisJc3Zhci0+aXNudWxsID0gdHJ1ZTsK KwlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKKworCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwor CXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKKwkJ CQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1 cCk7Cit9CisKKy8qCisgKiBBc3NpZ24gc29tZSBjb250ZW50IHRvIHRoZSBzZXNzaW9uIHZhcmlh YmxlLiBJdCdzIGNvcGllZCB0bworICogU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpZiBuZWNlc3Nh cnkuCisgKgorICogSWYgYW55IGVycm9yIGhhcHBlbnMsIHRoZSBleGlzdGluZyB2YWx1ZSBzaG91 bGRuJ3QgYmUgbW9kaWZpZWQuCisgKi8KK3N0YXRpYyB2b2lkCitzZXRfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQoreworCURhdHVtCQlu ZXd2YWw7CisJU1ZhcmlhYmxlRGF0YSBsb2NzdmFyLAorCQkJICAgKl9zdmFyOworCisJQXNzZXJ0 KHN2YXIpOworCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CisKKwkvKgor CSAqIFVzZSB0eXBieXZhbCwgdHlwYnlsZW4gZnJvbSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgd2hl biB0aGV5IGFyZQorCSAqIHRydXN0YWJsZSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBu b3QgYWNjZXB0ZWQgZm9yIHRoaXMgdmFyaWFibGUpLgorCSAqIFdoZW4gdGhlIHZhcmlhYmxlIGlz IHBvc3NpYmx5IGludmFsaWQsIGZvcmNlIHNldHVwLgorCSAqCisJICogRG8gbm90IGRvIGl0IGFn YWluc3QgcGFzc2VkIHN2YXIsIGl0IHNob3VsZCBiZSB1bmNoYW5nZWQsIHdoZW4gYW4KKwkgKiBh c3NpZ25tZW50IGlzIG5vdCBzdWNjZXNzZnVsICh0aGUgZGF0dW1Db3B5IGNhbiBmYWlsKS4KKwkg Ki8KKwlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgm bG9jc3Zhciwgc3Zhci0+dmFyaWQpOworCQlfc3ZhciA9ICZsb2NzdmFyOworCX0KKwllbHNlCisJ CV9zdmFyID0gc3ZhcjsKKworCWlmICghaXNudWxsKQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRj eHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJ bmV3dmFsID0gZGF0dW1Db3B5KHZhbHVlLCBfc3Zhci0+dHlwYnl2YWwsIF9zdmFyLT50eXBsZW4p OworCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCX0KKwllbHNlCisJCW5ld3Zh bCA9IHZhbHVlOworCisJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCisJLyog V2UgY2FuIG92ZXJ3cml0ZSBvbGQgdmFyaWFibGUgbm93LiBObyBlcnJvciBleHBlY3RlZCAqLwor CWlmIChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3ZhciwgX3N2YXIsIHNpemVvZihTVmFyaWFi bGVEYXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKKwlzdmFyLT5pc251bGwgPSBpc251 bGw7CisKKwkvKgorCSAqIFhYWCBXaGlsZSB1bmxpa2VseSwgYW4gZXJyb3IgaGVyZSBpcyBwb3Nz aWJsZS4gSXQgd291bGRuJ3QgbGVhayBtZW1vcnkKKwkgKiBhcyB0aGUgYWxsb2NhdGVkIGNodW5r IGhhcyBhbHJlYWR5IGJlZW4gY29ycmVjdGx5IGFzc2lnbmVkIHRvIHRoZQorCSAqIHNlc3Npb24g dmFyaWFibGUsIGJ1dCB3b3VsZCBjb250cmFkaWN0IHRoaXMgZnVuY3Rpb24gY29udHJhY3QsIHdo aWNoIGlzCisJICogdGhhdCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBlaXRoZXIgc3VjY2VlZCBvciBs ZWF2ZSB0aGUgY3VycmVudCB2YWx1ZQorCSAqIHVudG91Y2hlZC4KKwkgKi8KKwllbG9nKERFQlVH MSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcgdmFsdWUiLAor CQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFy LT52YXJpZCkpLAorCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShzdmFyLT52YXJpZCksCisJ CSBzdmFyLT52YXJpZCk7Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUgZm9yIHN0 b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2Vzc2lv bnZhcnNfaGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJQXNzZXJ0 KCFzZXNzaW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJeworCQkv KiBSZWFkIHNpbnZhbCBtZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFj ayhWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2ssCisJ CQkJCQkJCQkgIChEYXR1bSkgMCk7CisKKwkJLyogV2UgbmVlZCBvdXIgb3duIGxvbmcgbGl2ZWQg bWVtb3J5IGNvbnRleHQgKi8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJCQlBbGxvY1Nl dENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vzc2lvbiB2YXJp YWJsZXMiLAorCQkJCQkJCQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsKKwl9CisKKwlt ZW1zZXQoJnZhcnNfY3RsLCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0bC5rZXlzaXpl ID0gc2l6ZW9mKE9pZCk7CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNWYXJpYWJsZURh dGEpOworCXZhcnNfY3RsLmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0OworCisJc2Vzc2lv bnZhcnMgPSBoYXNoX2NyZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZhcnNfY3RsLAor CQkJCQkJCSAgSEFTSF9FTEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7Cit9CisKKy8q CisgKiBTZWFyY2ggYSBzZWVzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxlIGdpdmVuIGl0 cyBvaWQuIElmIGl0CisgKiBkb2Vzbid0IGV4aXN0LCB0aGVuIGluc2VydCBpdCB0aGVyZS4KKyAq CisgKiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHBlcm1pc3Npb24gY2hlY2tzLgor ICoKKyAqIEFzIHNpZGUgZWZmZWN0IHRoaXMgZnVuY3Rpb24gYWNxdWlyZXMgQWNjZXNzU2hhcmVM b2NrIG9uCisgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUg dHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9zZXNzaW9uX3ZhcmlhYmxl KE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIFBy b3RlY3QgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIGFnYWluc3QgZHJvcCB1bnRpbCB0cmFuc2FjdGlv biBlbmQgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwg MCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNz aW9udmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2go c2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKwor CWlmIChmb3VuZCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkg KiBUaGUgdmFyaWFibGUgY2FuIGJlIGZsYWdnZWQgYXMgaW52YWxpZCBieSBwcm9jZXNzaW5nIGlu dmFsaWRhdGlvbgorCQkJICogbWVzc2FnZSwgYnV0IGNhbiBiZSB2YWxpZGF0ZWQgYnkgcmVjaGVj ayBhZ2FpbnN0IHN5c3RlbSBjYXRhbG9nLgorCQkJICovCisJCQlpZiAoaXNfc2Vzc2lvbl92YXJp YWJsZV92YWxpZChzdmFyKSkKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCQllbHNlCisJ CQkJLyoKKwkJCQkgKiBXaGVuIHRoZSB2YWx1ZSBjYW5ub3QgYmUgdmFsaWRhdGVkLCB3ZSBjYW4g c2FmZWx5IHRocm93IGl0LgorCQkJCSAqIFRoZXJlIGlzIG9pZCBpbiBjYXRhbG9nLCBidXQgaXQg aXMgcmVsYXRlZCB0byBkaWZmZXJlbnQKKwkJCQkgKiBzZXNzaW9uIHZhcmlhYmxlIChkaWZmZXJl bnQgY3JlYXRlX2xzbikuCisJCQkJICovCisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVl KHN2YXIpOworCQl9CisJfQorCWVsc2UKKwkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKworCS8q CisJICogRm9yY2Ugc2V0dXAgZm9yIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgdmFyaWFibGVzIG9yIHZh cmlhYmxlcyB0aGF0IGNhbm5vdAorCSAqIGJlIHZhbGlkYXRlZC4KKwkgKi8KKwlpZiAoIXN2YXIt PmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCk7CisK KwkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMg YXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFJFQUQpIiwKKwkJCSBnZXRfbmFt ZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkg Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8q IEVuc3VyZSBzbyByZXR1cm5lZCBkYXRhIGlzIHN0aWxsIGNvcnJlY3QgZG9tYWluICovCisJaWYg KHN2YXItPmlzX2RvbWFpbikKKwl7CisJCS8qCisJCSAqIFN0b3JlIGRvbWFpbl9jaGVjayBleHRy YSBpbiBUb3BUcmFuc2FjdGlvbkNvbnRleHQuIFdoZW4gd2UgYXJlIGluCisJCSAqIG90aGVyIHRy YW5zYWN0aW9uLCB0aGUgZG9tYWluX2NoZWNrX2V4dHJhIGNhY2hlIGlzIG5vdCB2YWxpZAorCQkg KiBhbnltb3JlLgorCQkgKi8KKwkJaWYgKHN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkICE9 IE15UHJvYy0+dnhpZC5seGlkKQorCQkJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsK KworCQlkb21haW5fY2hlY2soc3Zhci0+dmFsdWUsIHN2YXItPmlzbnVsbCwKKwkJCQkJIHN2YXIt PnR5cGlkLCAmc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhLAorCQkJCQkgVG9wVHJhbnNhY3Rpb25D b250ZXh0KTsKKworCQlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IE15UHJvYy0+dnhp ZC5seGlkOworCX0KKworCXJldHVybiBzdmFyOworfQorCisvKgorICogU3RvcmUgdGhlIGdpdmVu IHZhbHVlIGluIGFuIFNWYXJpYWJsZSwgYW5kIGNhY2hlIGl0IGlmIG5vdCBhbHJlYWR5IHByZXNl bnQuCisgKgorICogQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uIGNo ZWNrcy4KKyAqCisgKiBBcyBzaWRlIGVmZmVjdCB0aGlzIGZ1bmN0aW9uIGFjcXVpcmVzIEFjY2Vz c1NoYXJlTG9jayBvbgorICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHRoZSBlbmQg b2YgdGhlIHRyYW5zYWN0aW9uLgorICovCit2b2lkCitTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZh cmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9v bAkJZm91bmQ7CisKKwkvKiBQcm90ZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IGRy b3AgdW50aWwgdHJhbnNhY3Rpb24gZW5kICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252 YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcygpOworCisJc3ZhciA9IChTVmFy aWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hf RU5URVIsICZmb3VuZCk7CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJp YWJsZShzdmFyLCB2YXJpZCk7CisKKwkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwi JXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5 IFdSSVRFKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zh ci0+dmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkvKgorCSAqIFRoaXMgc2hvdWxkIGVpdGhl ciBzdWNjZWVkIG9yIGZhaWwgd2l0aG91dCBjaGFuZ2luZyB0aGUgY3VycmVudGx5CisJICogc3Rv cmVkIHZhbHVlLgorCSAqLworCXNldF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhbHVlLCBpc051 bGwpOworfQorCisvKgorICogV3JhcHBlciBhcm91bmQgU2V0U2Vzc2lvblZhcmlhYmxlIGFmdGVy IGNoZWNraW5nIGZvciBjb3JyZWN0IHBlcm1pc3Npb24uCisgKi8KK3ZvaWQKK1NldFNlc3Npb25W YXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNO dWxsKQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkvKgorCSAqIElzIGNhbGxlciBhbGxv d2VkIHRvIHVwZGF0ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8KKwkgKi8KKwlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0VXNlcklkKCksIEFD TF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vy cm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsIHZhbHVlLCBpc051bGwpOwor fQorCisvKgorICogUmV0dXJucyBjb3B5IG9mIHZhbHVlIHN0b3JlZCBpbiB2YXJpYWJsZS4KKyAq Lworc3RhdGljIGlubGluZSBEYXR1bQorY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJp YWJsZSBzdmFyLCBib29sICppc051bGwpCit7CisJRGF0dW0JCXZhbHVlOworCisJLyogZm9yY2Ug Y29weSBvZiBub24gTlVMTCB2YWx1ZSAqLworCWlmICghc3Zhci0+aXNudWxsKQorCXsKKwkJdmFs dWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50eXBsZW4p OworCQkqaXNOdWxsID0gZmFsc2U7CisJfQorCWVsc2UKKwl7CisJCXZhbHVlID0gKERhdHVtKSAw OworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gdmFsdWU7Cit9CisKKy8qCisgKiBS ZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgKGluIGN1 cnJlbnQgbWVtb3J5CisgKiBjb250ZXh0KSBzcGVjaWZpZWQgYnkgaXRzIG9pZC4gQ2FsbGVyIGlz IHJlc3BvbnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uCisgKiBjaGVja3MuCisgKi8KK0RhdHVt CitHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlwaWQp Cit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUodmFy aWQpOworCisJLyoKKwkgKiBBbHRob3VnaCBzdmFyIGlzIGZyZXNobHkgdmFsaWRhdGVkIGluIHRo aXMgcG9pbnQsIHRoZSBzdmFyLT5pc192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgZHVlIHBvc3Np YmxlIGFjY2VwdGluZyBpbnZhbGlkYXRpb24gbWVzc2FnZSBpbnNpZGUgZG9tYWluCisJICogY2hl Y2suIE5vdywgdGhlIHZhbGlkYXRpb24gaXMgZG9uZSBhZnRlciBsb2NrLCB0aGF0IGNhbiBhbHNv IGFjY2VwdAorCSAqIGludmFsaWRhdGlvbiBtZXNzYWdlLCBzbyB2YWxpZGF0aW9uIHNob3VsZCBi ZSB0cnVzdGZ1bC4KKwkgKgorCSAqIEZvciBub3csIHdlIGRvbid0IG5lZWQgdG8gcmVwZWF0IHZh bGlkYXRpb24uIE9ubHkgc3ZhciBzaG91bGQgYmUgdmFsaWQKKwkgKiBwb2ludGVyLgorCSAqLwor CUFzc2VydChzdmFyKTsKKworCSp0eXBpZCA9IHN2YXItPnR5cGlkOworCisJcmV0dXJuIGNvcHlf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCisvKgorICogUmV0dXJu cyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBi eSBpdHMgb2lkCisgKiB3aXRoIGEgY2hlY2sgb2YgdGhlIGV4cGVjdGVkIHR5cGUuIExpa2UgcHJl dmlvdXMgR2V0U2Vzc2lvblZhcmlhYmxlLCB0aGUKKyAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBm b3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK0RhdHVtCitHZXRTZXNzaW9uVmFyaWFi bGVXaXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0ZWRfdHlw aWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUo dmFyaWQpOworCisJQXNzZXJ0KHN2YXIgJiYgc3Zhci0+aXNfdmFsaWQpOworCisJaWYgKGV4cGVj dGVkX3R5cGlkICE9IHN2YXItPnR5cGlkKQorCQllbG9nKEVSUk9SLCAidHlwZSBvZiB2YXJpYWJs ZSBcIiVzLiVzXCIgaXMgZGlmZmVyZW50IHRoYW4gZXhwZWN0ZWQiLAorCQkJIGdldF9uYW1lc3Bh Y2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCSBnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwlyZXR1cm4gY29weV9zZXNzaW9uX3Zh cmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBBc3NpZ24gcmVzdWx0IG9m IGV2YWx1YXRlZCBleHByZXNzaW9uIHRvIHNlc3Npb24gdmFyaWFibGUKKyAqLwordm9pZAorRXhl Y3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0U3RtdCAqc3RtdCwKKwkJ CSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlF bnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5CSAgICpxdWVyeSA9IGNh c3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3cml0dGVuOworCURlc3RS ZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBsYW5uZWRTdG10ICpwbGFu OworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9IHF1ZXJ5LT5yZXN1bHRW YXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwkvKgorCSAqIElzIGl0 IGFsbG93ZWQgdG8gd3JpdGUgdG8gc2Vzc2lvbiB2YXJpYWJsZT8KKwkgKi8KKwlhY2xyZXN1bHQg PSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0VXNlcklkKCks IEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNr X2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHZhcmlkKSk7CisKKwkvKiBDcmVhdGUgZGVzdCByZWNlaXZlciBmb3IgTEVUICovCisJZGVz dCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlkKTsKKworCS8qIHJ1biByZXdyaXRl ciAqLworCXF1ZXJ5ID0gY29weU9iamVjdChxdWVyeSk7CisKKwlyZXdyaXR0ZW4gPSBRdWVyeVJl d3JpdGUocXVlcnkpOworCisJQXNzZXJ0KGxpc3RfbGVuZ3RoKHJld3JpdHRlbikgPT0gMSk7CisK KwlxdWVyeSA9IGxpbml0aWFsX25vZGUoUXVlcnksIHJld3JpdHRlbik7CisJQXNzZXJ0KHF1ZXJ5 LT5jb21tYW5kVHlwZSA9PSBDTURfU0VMRUNUKTsKKworCS8qIHBsYW4gdGhlIHF1ZXJ5ICovCisJ cGxhbiA9IHBnX3BsYW5fcXVlcnkocXVlcnksIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJ IENVUlNPUl9PUFRfUEFSQUxMRUxfT0ssIHBhcmFtcyk7CisKKwkvKgorCSAqIFVzZSBhIHNuYXBz aG90IHdpdGggYW4gdXBkYXRlZCBjb21tYW5kIElEIHRvIGVuc3VyZSB0aGlzIHF1ZXJ5IHNlZXMK KwkgKiByZXN1bHRzIG9mIGFueSBwcmV2aW91c2x5IGV4ZWN1dGVkIHF1ZXJpZXMuICAoVGhpcyBj b3VsZCBvbmx5IG1hdHRlciBpZgorCSAqIHRoZSBwbGFubmVyIGV4ZWN1dGVkIGFuIGFsbGVnZWRs eS1zdGFibGUgZnVuY3Rpb24gdGhhdCBjaGFuZ2VkIHRoZQorCSAqIGRhdGFiYXNlIGNvbnRlbnRz LCBidXQgbGV0J3MgZG8gaXQgYW55d2F5IHRvIGJlIHBhcmFsbGVsIHRvIHRoZSBFWFBMQUlOCisJ ICogY29kZSBwYXRoLikKKwkgKi8KKwlQdXNoQ29waWVkU25hcHNob3QoR2V0QWN0aXZlU25hcHNo b3QoKSk7CisJVXBkYXRlQWN0aXZlU25hcHNob3RDb21tYW5kSWQoKTsKKworCS8qIENyZWF0ZSBh IFF1ZXJ5RGVzYywgcmVkaXJlY3Rpbmcgb3V0cHV0IHRvIG91ciB0dXBsZSByZWNlaXZlciAqLwor CXF1ZXJ5RGVzYyA9IENyZWF0ZVF1ZXJ5RGVzYyhwbGFuLCBwc3RhdGUtPnBfc291cmNldGV4dCwK KwkJCQkJCQkJR2V0QWN0aXZlU25hcHNob3QoKSwgSW52YWxpZFNuYXBzaG90LAorCQkJCQkJCQlk ZXN0LCBwYXJhbXMsIHF1ZXJ5RW52LCAwKTsKKworCS8qIGNhbGwgRXhlY3V0b3JTdGFydCB0byBw cmVwYXJlIHRoZSBwbGFuIGZvciBleGVjdXRpb24gKi8KKwlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVz YywgMCk7CisKKwkvKgorCSAqIFJ1biB0aGUgcGxhbiB0byBjb21wbGV0aW9uLiBUaGUgcmVzdWx0 IHNob3VsZCBiZSBvbmx5IG9uZSByb3cuIEZvciBhbgorCSAqIGNoZWNrIHRvb19tYW55X3Jvd3Mg d2UgbmVlZCB0byByZWFkIHR3byByb3dzLgorCSAqLworCUV4ZWN1dG9yUnVuKHF1ZXJ5RGVzYywg Rm9yd2FyZFNjYW5EaXJlY3Rpb24sIDJMLCB0cnVlKTsKKworCS8qIHNhdmUgdGhlIHJvd2NvdW50 IGlmIHdlJ3JlIGdpdmVuIGEgcWMgdG8gZmlsbCAqLworCWlmIChxYykKKwkJU2V0UXVlcnlDb21w bGV0aW9uKHFjLCBDTURUQUdfTEVULCBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcHJvY2Vzc2VkKTsK KworCS8qIGFuZCBjbGVhbiB1cCAqLworCUV4ZWN1dG9yRmluaXNoKHF1ZXJ5RGVzYyk7CisJRXhl Y3V0b3JFbmQocXVlcnlEZXNjKTsKKworCUZyZWVRdWVyeURlc2MocXVlcnlEZXNjKTsKKworCVBv cEFjdGl2ZVNuYXBzaG90KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9N YWtlZmlsZSBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCmluZGV4IDExMTE4ZDBjZTAy Li43MTI0OGEzNGYyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKQEAgLTc2LDYgKzc2LDcgQEAgT0JK UyA9IFwKIAlub2RlV2luZG93QWdnLm8gXAogCW5vZGVXb3JrdGFibGVzY2FuLm8gXAogCXNwaS5v IFwKKwlzdmFyaWFibGVSZWNlaXZlci5vIFwKIAl0cXVldWUubyBcCiAJdHN0b3JlUmVjZWl2ZXIu bwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCBjY2Q0ODYzNzc4NC4uOTcyMjMzZWMyNWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImNh dGFsb2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5o IgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9k ZVN1YnBsYW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05ODcsNiArOTg4LDQ3IEBAIEV4 ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJc2NyYXRj aC5kLnBhcmFtLnBhcmFtdHlwZSA9IHBhcmFtLT5wYXJhbXR5cGU7CiAJCQkJCQlFeHByRXZhbFB1 c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CiAJCQkJCQlicmVhazsKKworCQkJCQljYXNlIFBBUkFN X1ZBUklBQkxFOgorCQkJCQkJeworCQkJCQkJCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxl cyA9IDA7CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVz ID0gTlVMTDsKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJaWYg KHN0YXRlLT5wYXJlbnQgJiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJCQkJ CQllc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNzaW9u X3ZhcmlhYmxlczsKKwkJCQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBh cmVudC0+c3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJCQkJ CQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJpYWJsZXMpOworCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBV c2UgYnVmZmVyZWQgc2Vzc2lvbiB2YXJpYWJsZXMgd2hlbiB0aGUKKwkJCQkJCQkgKiBidWZmZXIg d2l0aCBjb3BpZWQgdmFsdWVzIGlzIGF2YWlhYmxlCisJCQkJCQkJICogKHN0YW5kYXJkIHF1ZXJ5 IGV4ZWN1dG9yIG1vZGUpCisJCQkJCQkJICovCisKKwkJCQkJCQkvKiBQYXJhbWV0ZXIgc2FuaXR5 IGNoZWNrcy4gKi8KKwkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25f dmFyaWFibGVzKQorCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJM RSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3Zh cmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQlpZiAodmFyLT50eXBpZCAhPSBwYXJh bS0+cGFyYW10eXBlKQorCQkJCQkJCQllbG9nKEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1 ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJBTV9WQVJJQUJMRSB0eXBlIik7CisKKwkJCQkJCQkvKgor CQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCisJCQkJCQkJICog Y29uc3RhbnQuCisJCQkJCQkJICovCisJCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNU OworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7CisJCQkJCQkJ c2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCUV4cHJFdmFs UHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCX0KKwkJCQkJCWJyZWFrOworCiAJCQkJ CWNhc2UgUEFSQU1fRVhURVJOOgogCiAJCQkJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5k ZXggNGQ3YzkyZDYzYzEuLmYyZmI2ODBkZWZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAg LTQzLDcgKzQzLDkgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFs b2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wYXJ0aXRpb24uaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvbWF0dmlldy5oIgor I2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5k cy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJl eGVjdXRvci9ub2RlU3VicGxhbi5oIgpAQCAtMTk2LDYgKzE5OCw1MSBAQCBzdGFuZGFyZF9FeGVj dXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogCUFzc2VydChxdWVy eURlc2MtPnNvdXJjZVRleHQgIT0gTlVMTCk7CiAJZXN0YXRlLT5lc19zb3VyY2VUZXh0ID0gcXVl cnlEZXNjLT5zb3VyY2VUZXh0OwogCisJLyoKKwkgKiBUaGUgZXhlY3V0b3IgZG9lc24ndCB3b3Jr IHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgZGlyZWN0bHkuIFZhbHVlcyBvZgorCSAqIHJlbGF0ZWQg c2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGNvcGllZCB0byBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlz IGFycmF5CisJICogaXMgcGFzc2VkIHRvIGV4ZWN1dG9yLgorCSAqLworCWlmIChxdWVyeURlc2Mt PnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisJ CWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJ biB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2 ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQg c2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFs bGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVz Yy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpOworCisJCS8qIENyZWF0ZSB0aGUgYXJy YXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLwor CQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICop CisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFs dWUpKTsKKworCQkvKiBGaWxsIHRoZSBhcnJheSAqLworCQlmb3JlYWNoKGxjLCBxdWVyeURlc2Mt PnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlBY2xSZXN1bHQJYWNscmVz dWx0OworCQkJT2lkCQkJdmFyaWQgPSBsZmlyc3Rfb2lkKGxjKTsKKworCQkJYWNscmVzdWx0ID0g b2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdldFVzZXJJZCgpLCBB Q0xfU0VMRUNUKTsKKwkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJYWNsY2hl Y2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJCQkJICAgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFi bGVzW2ldLnZhcmlkID0gdmFyaWQ7CisJCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ld LnZhbHVlID0gR2V0U2Vzc2lvblZhcmlhYmxlKHZhcmlkLAorCQkJCQkJCQkJCQkJCQkJCQkgICAm ZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS5pc251bGwsCisJCQkJCQkJCQkJCQkJCQkJ CSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnR5cGlkKTsKKworCQkJaSsrOwor CQl9CisKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBuU2Vzc2lvblZhcmlh YmxlczsKKwl9CisKIAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmlyb25tZW50LCBpZiBh bnksIGZyb20gcXVlcnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAppbmRleCBi NTExYTQyOWFkZi4uYjY2NjJjNmU4ZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCkBAIC02 NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ25vZGVXaW5kb3dBZ2cu YycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5jJywKKyAgJ3N2YXJpYWJsZVJl Y2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVjZWl2ZXIuYycsCiApCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNzZjZDhhMGZiMzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEsMjAxIEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisgKgkgIEFuIGltcGxl bWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVzdWx0IHZhbHVlIGlu CisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNs dWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisjaW5jbHVkZSAiYWNj ZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCisjaW5jbHVkZSAidXRp bHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogVGhpcyBEZXN0UmVjZWl2ZXIgaXMgdXNlZCBieSB0 aGUgTEVUIGNvbW1hbmQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCB0bworICogc2Vzc2lvbiB2YXJp YWJsZS4gIFRoZSByZXN1bHQgaGFzIHRvIGhhdmUgb25seSBvbmUgdHVwbGUgd2l0aCBvbmx5IG9u ZQorICogbm90IGRlbGV0ZWQgYXR0cmlidXRlLiAgVGhlIHJvdyBjb3VudGVyIChmaWVsZCAicm93 cyIpIGlzIGluY3JlbWVudGVkCisgKiBhZnRlciByZWNlaXZpbmcgb2YgYW55IHJvdywgYW5kIHRo ZSBlcnJvciBpcyByYWlzZWQgd2hlbiB0aGVyZSBhcmUgbm8gcm93cworICogb3IgdGhlcmUgYXJl IG1vcmUgdGhhbiBvbmUgcmVjZWl2ZWQgcm93cy4gIEJlY2F1c2UgcmVjZWl2ZWQgdHVwbGUgY2Fu IGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRlcywgd2UgbmVlZCB0byBmaW5kIHdpcnN0IG5vdCBk ZWxldGVkIGF0dHJpYnV0ZQorICogKGZpZWxkICJzbG90X29mZnNldCIpLiBUaGUgdmFsdWUgaXMg ZGV0b2FzdGVkIGJlZm9yZSBzdG9yaW5nIHRvIHNlc3Npb24KKyAqIHZhcmlhYmxlLgorICovCit0 eXBlZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZlciBwdWI7CisJT2lkCQkJdmFyaWQ7CisJYm9v bAkJbmVlZF9kZXRvYXN0OwkJLyogd2UgbmVlZCBkZXRvYXN0IGF0dHI/ICovCisJaW50CQkJc2xv dF9vZmZzZXQ7CQkvKiBwb3NpdGlvbiBvZiBub3QgZGVsZXRlZCBhdHRyICovCisJaW50CQkJcm93 czsJCQkJLyogcm93IGNvdW50ZXIgKi8KK30gU1ZhcmlhYmxlU3RhdGU7CisKKy8qCisgKiBQcmVw YXJlIHRvIHJlY2VpdmUgdHVwbGVzIGZyb20gZXhlY3V0b3IuCisgKi8KK3N0YXRpYyB2b2lkCitz dmFyaWFibGVTdGFydHVwUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9u LCBUdXBsZURlc2MgdHlwZWluZm8pCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAoU1Zh cmlhYmxlU3RhdGUgKikgc2VsZjsKKwlpbnQJCQluYXR0cyA9IHR5cGVpbmZvLT5uYXR0czsKKwlp bnQJCQlvdXRjb2xzID0gMDsKKwlpbnQJCQlpOworCUxPQ0tUQUcJCWxvY2t0YWcgUEdfVVNFRF9G T1JfQVNTRVJUU19PTkxZOworCisJQXNzZXJ0KG15U3RhdGUtPnB1Yi5teWRlc3QgPT0gRGVzdFZh cmlhYmxlKTsKKwlBc3NlcnQoT2lkSXNWYWxpZChteVN0YXRlLT52YXJpZCkpOworCUFzc2VydChT ZWFyY2hTeXNDYWNoZUV4aXN0czEoVkFSSUFCTEVPSUQsIG15U3RhdGUtPnZhcmlkKSk7CisKKyNp ZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisKKwlTRVRfTE9DS1RBR19PQkpFQ1QobG9ja3RhZywK KwkJCQkJICAgTXlEYXRhYmFzZUlkLAorCQkJCQkgICBWYXJpYWJsZVJlbGF0aW9uSWQsCisJCQkJ CSAgIG15U3RhdGUtPnZhcmlkLAorCQkJCQkgICAwKTsKKworCUFzc2VydChMb2NrSGVsZEJ5TWUo JmxvY2t0YWcsIEFjY2Vzc1NoYXJlTG9jaywgZmFsc2UpKTsKKworI2VuZGlmCisKKwlmb3IgKGkg PSAwOyBpIDwgbmF0dHM7IGkrKykKKwl7CisJCUZvcm1fcGdfYXR0cmlidXRlIGF0dHIgPSBUdXBs ZURlc2NBdHRyKHR5cGVpbmZvLCBpKTsKKwkJT2lkCQkJdHlwaWQ7CisJCU9pZAkJCWNvbGxpZDsK KwkJaW50MzIJCXR5cG1vZDsKKworCQlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQorCQkJY29udGlu dWU7CisKKwkJaWYgKCsrb3V0Y29scyA+IDEpCisJCQljb250aW51ZTsKKworCQlnZXRfc2Vzc2lv bl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQobXlTdGF0ZS0+dmFyaWQsCisJCQkJCQkJCQkJ CQkmdHlwaWQsCisJCQkJCQkJCQkJCQkmdHlwbW9kLAorCQkJCQkJCQkJCQkJJmNvbGxpZCk7CisK KwkJLyoKKwkJICogZG91YmxlIGNoZWNrIC0gdGhlIHR5cGUgYW5kIHR5cG1vZCBvZiB0YXJnZXQg dmFyaWFibGUgc2hvdWxkIGJlCisJCSAqIHNhbWUgYXMgdHlwZSBhbmQgdHlwbW9kIG9mIGFzc2ln bm1lbnQgZXhwcmVzc2lvbi4gSXQgc2hvdWxkIGJlLCB0aGUKKwkJICogZXhwcmVzc2lvbiBpcyB3 cmFwcGVkIGJ5IGNhc3QgdG8gdGFyZ2V0IHR5cGUgYW5kIHR5cG1vZC4KKwkJICovCisJCWlmIChh dHRyLT5hdHR0eXBpZCAhPSB0eXBpZCB8fAorCQkJKGF0dHItPmF0dHR5cG1vZCA+PSAwICYmCisJ CQkgYXR0ci0+YXR0dHlwbW9kICE9IHR5cG1vZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQko ZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaXMgb2YgdHlwZSAlcyIKKwkJCQkJCQkiIGJ1dCBleHByZXNzaW9u IGlzIG9mIHR5cGUgJXMiLAorCQkJCQkJCWZvcm1hdF90eXBlX3dpdGhfdHlwZW1vZCh0eXBpZCwg dHlwbW9kKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QoYXR0ci0+YXR0dHlwaWQs CisJCQkJCQkJCQkJCQkJIGF0dHItPmF0dHR5cG1vZCkpKSk7CisKKwkJbXlTdGF0ZS0+bmVlZF9k ZXRvYXN0ID0gYXR0ci0+YXR0bGVuID09IC0xOworCQlteVN0YXRlLT5zbG90X29mZnNldCA9IGk7 CisJfQorCisJaWYgKG91dGNvbHMgIT0gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1zZ19wbHVyYWwoImFzc2lnbm1lbnQg ZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW4iLAorCQkJCQkJCSAgICJhc3NpZ25tZW50IGV4 cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1ucyIsCisJCQkJCQkJICAgb3V0Y29scywKKwkJCQkJ CQkgICBvdXRjb2xzKSkpOworCisJbXlTdGF0ZS0+cm93cyA9IDA7Cit9CisKKy8qCisgKiBSZWNl aXZlIGEgdHVwbGUgZnJvbSB0aGUgZXhlY3V0b3IgYW5kIHN0b3JlIGl0IGluIHNlc3Npb24gdmFy aWFibGUuCisgKi8KK3N0YXRpYyBib29sCitzdmFyaWFibGVSZWNlaXZlU2xvdChUdXBsZVRhYmxl U2xvdCAqc2xvdCwgRGVzdFJlY2VpdmVyICpzZWxmKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0 YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlz bnVsbDsKKwlib29sCQlmcmVldmFsID0gZmFsc2U7CisKKwkvKiBNYWtlIHN1cmUgdGhlIHR1cGxl IGlzIGZ1bGx5IGRlY29uc3RydWN0ZWQgKi8KKwlzbG90X2dldGFsbGF0dHJzKHNsb3QpOworCisJ dmFsdWUgPSBzbG90LT50dHNfdmFsdWVzW215U3RhdGUtPnNsb3Rfb2Zmc2V0XTsKKwlpc251bGwg PSBzbG90LT50dHNfaXNudWxsW215U3RhdGUtPnNsb3Rfb2Zmc2V0XTsKKworCWlmIChteVN0YXRl LT5uZWVkX2RldG9hc3QgJiYgIWlzbnVsbCAmJiBWQVJBVFRfSVNfRVhURVJOQUwoRGF0dW1HZXRQ b2ludGVyKHZhbHVlKSkpCisJeworCQl2YWx1ZSA9IFBvaW50ZXJHZXREYXR1bShkZXRvYXN0X2V4 dGVybmFsX2F0dHIoKHN0cnVjdCB2YXJsZW5hICopCisJCQkJCQkJCQkJCQkJICBEYXR1bUdldFBv aW50ZXIodmFsdWUpKSk7CisJCWZyZWV2YWwgPSB0cnVlOworCX0KKworCW15U3RhdGUtPnJvd3Mg Kz0gMTsKKworCWlmIChteVN0YXRlLT5yb3dzID4gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1RPT19NQU5ZX1JPV1MpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24g cmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3ciKSkpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlKG15 U3RhdGUtPnZhcmlkLCB2YWx1ZSwgaXNudWxsKTsKKworCWlmIChmcmVldmFsKQorCQlwZnJlZShE YXR1bUdldFBvaW50ZXIodmFsdWUpKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogQ2xl YW4gdXAgYXQgZW5kIG9mIGFuIGV4ZWN1dG9yIHJ1bgorICovCitzdGF0aWMgdm9pZAorc3Zhcmlh YmxlU2h1dGRvd25SZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJaWYgKCgoU1Zhcmlh YmxlU3RhdGUgKikgc2VsZiktPnJvd3MgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX05PX0RBVEFfRk9VTkQpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0 dXJuZWQgbm8gcm93cyIpKSk7Cit9CisKKy8qCisgKiBEZXN0cm95IHJlY2VpdmVyIHdoZW4gZG9u ZSB3aXRoIGl0CisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXIoRGVz dFJlY2VpdmVyICpzZWxmKQoreworCXBmcmVlKHNlbGYpOworfQorCisvKgorICogSW5pdGlhbGx5 IGNyZWF0ZSBhIERlc3RSZWNlaXZlciBvYmplY3QuCisgKi8KK0Rlc3RSZWNlaXZlciAqCitDcmVh dGVWYXJpYWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlU3RhdGUgKnNl bGYgPSAoU1ZhcmlhYmxlU3RhdGUgKikgcGFsbG9jMChzaXplb2YoU1ZhcmlhYmxlU3RhdGUpKTsK KworCXNlbGYtPnB1Yi5yZWNlaXZlU2xvdCA9IHN2YXJpYWJsZVJlY2VpdmVTbG90OworCXNlbGYt PnB1Yi5yU3RhcnR1cCA9IHN2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcjsKKwlzZWxmLT5wdWIuclNo dXRkb3duID0gc3ZhcmlhYmxlU2h1dGRvd25SZWNlaXZlcjsKKwlzZWxmLT5wdWIuckRlc3Ryb3kg PSBzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXI7CisJc2VsZi0+cHViLm15ZGVzdCA9IERlc3RWYXJp YWJsZTsKKworCXNlbGYtPnZhcmlkID0gdmFyaWQ7CisKKwlyZXR1cm4gKERlc3RSZWNlaXZlciAq KSBzZWxmOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCBkMmUyYWY0ZjgxMS4uMDdmZTA1ZGVh ZmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC00MzI4LDYgKzQzMjgsMTYgQEAgcmF3X2V4cHJl c3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJ CX0KIAkJCWJyZWFrOworCQljYXNlIFRfTGV0U3RtdDoKKwkJCXsKKwkJCQlMZXRTdG10ICAgICpz dG10ID0gKExldFN0bXQgKikgbm9kZTsKKworCQkJCWlmIChXQUxLKHN0bXQtPnRhcmdldCkpCisJ CQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0bXQtPnF1ZXJ5KSkKKwkJCQkJcmV0dXJu IHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKIAkJCXsKIAkJ CQlQTEFzc2lnblN0bXQgKnN0bXQgPSAoUExBc3NpZ25TdG10ICopIG5vZGU7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggNDcxMWY5MTIzOTAuLjcxM2IzOTZlM2Q5IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC0zMjMsNiArMzIzLDcgQEAgc3RhbmRh cmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1 cnNvck9wdGlvbnMsCiAJZ2xvYi0+bGFzdFBsYW5Ob2RlSWQgPSAwOwogCWdsb2ItPnRyYW5zaWVu dFBsYW4gPSBmYWxzZTsKIAlnbG9iLT5kZXBlbmRzT25Sb2xlID0gZmFsc2U7CisJZ2xvYi0+c2Vz c2lvblZhcmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFz aWJsZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTU1Nyw2ICs1 NTgsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlf c3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xv Yi0+cGFyYW1FeGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3 ZSBtaWdodCBhcyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2Ut PnV0aWxpdHlTdG10OworCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Npb25W YXJpYWJsZXM7CiAJcmVzdWx0LT5zdG10X2xvY2F0aW9uID0gcGFyc2UtPnN0bXRfbG9jYXRpb247 CiAJcmVzdWx0LT5zdG10X2xlbiA9IHBhcnNlLT5zdG10X2xlbjsKIApAQCAtNzI3LDYgKzcyOSwx MiBAQCBzdWJxdWVyeV9wbGFubmVyKFBsYW5uZXJHbG9iYWwgKmdsb2IsIFF1ZXJ5ICpwYXJzZSwg UGxhbm5lckluZm8gKnBhcmVudF9yb290LAogCSAqLwogCXB1bGxfdXBfc3VicXVlcmllcyhyb290 KTsKIAorCS8qCisJICogQ2hlY2sgaWYgc29tZSBzdWJxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFi bGUuIEZsYWcgaGFzU2Vzc2lvblZhcmlhYmxlcworCSAqIHNob3VsZCBiZSB0cnVlIGlmIHF1ZXJ5 IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBhbnkgc2Vzc2lvbiB2YXJpYWJsZS4KKwkgKi8KKwlwdWxs X3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8qCiAJICogSWYgdGhpcyBpcyBh IHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50byBhbiBhcHBlbmRyZWwuIFdl CiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBhcHBseWluZyBwdWxsX3VwX3N1 YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRl eCA3YWVkODQ1ODRjNi4uM2YzNjY5N2Y2NjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRy ZWZzLmMKQEAgLTIwOSw3ICsyMDksOSBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVybmluZ19jbGF1 c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpzZXRfd2luZG93 YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJ CQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAqcGxhbik7Ci0K K3N0YXRpYyBib29sIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpu b2RlLAorCQkJCQkJCQkJCQkJIFBsYW5uZXJJbmZvICpyb290KTsKK3N0YXRpYyB2b2lkIHJlY29y ZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB2YXJpZCk7 CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTEzMDgsNiArMTMxMCw1MCBAQCBzZXRf cGxhbl9yZWZzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRvZmZzZXQpCiAJ cmV0dXJuIHBsYW47CiB9CiAKKy8qCisgKiBTZWFyY2ggdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgaW4gc3VicXVlcmllcworICovCit2b2lkCitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxl cyhQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSByb290LT5wYXJzZTsK KworCWlmIChxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCXJvb3QtPmhhc1Nlc3Np b25WYXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJeworCQkodm9pZCkgcXVlcnlfdHJlZV93 YWxrZXIocXVlcnksCisJCQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxr ZXIsCisJCQkJCQkJCSAodm9pZCAqKSByb290LCAwKTsKKwl9Cit9CisKK3N0YXRpYyBib29sCitw dWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lcklu Zm8gKnJvb3QpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChJ c0Eobm9kZSwgUXVlcnkpKQorCXsKKwkJUXVlcnkJICAgKnF1ZXJ5ID0gKFF1ZXJ5ICopIG5vZGU7 CisKKwkJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlyb290LT5oYXNT ZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCS8qIFJl Y3Vyc2UgaW50byBzdWJzZWxlY3RzICovCisJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcigoUXVl cnkgKikgbm9kZSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtl ciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KKwlyZXR1cm4gZXhwcmVzc2lvbl90 cmVlX3dhbGtlcihub2RlLCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJ CQkJCQkJCSAgKHZvaWQgKikgcm9vdCk7Cit9CisKIC8qCiAgKiBzZXRfaW5kZXhvbmx5c2Nhbl9y ZWZlcmVuY2VzCiAgKgkJRG8gc2V0X3BsYW5fcmVmZXJlbmNlcyBwcm9jZXNzaW5nIG9uIGFuIElu ZGV4T25seVNjYW4KQEAgLTE5NTYsOCArMjAwMiw5IEBAIGNvcHlWYXIoVmFyICp2YXIpCiAgKiBU aGlzIGlzIGNvZGUgdGhhdCBpcyBjb21tb24gdG8gYWxsIHZhcmlhbnRzIG9mIGV4cHJlc3Npb24t Zml4aW5nLgogICogV2UgbXVzdCBsb29rIHVwIG9wZXJhdG9yIG9wY29kZSBpbmZvIGZvciBPcEV4 cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCiAgKiBhZGQgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5v ZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBhbmQKLSAqIGFkZCBQbGFuSW52YWxJ dGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIHJvb3QtPmdsb2ItPmludmFsSXRl bXMuCi0gKiBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygp IGV4cHJlc3Npb25zLgorICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVu Y3Rpb25zIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBpbnRvCisgKiByb290LT5nbG9iLT5pbnZhbEl0 ZW1zLiAgV2UgYWxzbyBmaWxsIGluIGNvbHVtbiBpbmRleCBsaXN0cyBmb3IgR1JPVVBJTkcoKQor ICogZXhwcmVzc2lvbnMuCiAgKgogICogV2UgYXNzdW1lIGl0J3Mgb2theSB0byB1cGRhdGUgb3Bj b2RlIGluZm8gaW4tcGxhY2UuICBTbyB0aGlzIGNvdWxkIHBvc3NpYmx5CiAgKiBzY3JpYmJsZSBv biB0aGUgcGxhbm5lcidzIGlucHV0IGRhdGEgc3RydWN0dXJlcywgYnV0IGl0J3MgT0suCkBAIC0y MDQ3LDE1ICsyMDk0LDI4IEBAIGZpeF9leHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9vdCwgTm9k ZSAqbm9kZSkKIAkJCQlnLT5jb2xzID0gY29sczsKIAkJfQogCX0KKwllbHNlIGlmIChJc0Eobm9k ZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAoUGFyYW0gKikgbm9kZTsKKworCQlpZiAo cC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmVjb3JkX3BsYW5fdmFyaWFibGVf ZGVwZW5kZW5jeShyb290LCBwLT5wYXJhbXZhcmlkKTsKKwl9CiB9CiAKIC8qCiAgKiBmaXhfcGFy YW1fbm9kZQogICoJCURvIHNldF9wbGFuX3JlZmVyZW5jZXMgcHJvY2Vzc2luZyBvbiBhIFBhcmFt CisgKgkJQ29sbGVjdCBzZXNzaW9uIHZhcmlhYmxlcyBsaXN0IGFuZCByZXBsYWNlIHZhcmlhYmxl IG9pZCBieQorICoJCWluZGV4IHRvIGNvbGxlY3RlZCBsaXN0LgogICoKICAqIElmIGl0J3MgYSBQ QVJBTV9NVUxUSUVYUFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgUGFyYW0gZnJv bQogICogcm9vdC0+bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3aXNlIG5vIGNoYW5nZSBpcyBuZWVk ZWQuCiAgKiBKdXN0IGZvciBwYXJhbm9pYSdzIHNha2UsIHdlIG1ha2UgYSBjb3B5IG9mIHRoZSBu b2RlIGluIGVpdGhlciBjYXNlLgorICoKKyAqIElmIGl0J3MgYSBQQVJBTV9WQVJJQUJMRSwgdGhl biB3ZSBjb2xsZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaW4KKyAqIGxpc3Qgcm9vdC0+Z2xv Yi0+c2Vzc2lvblZhcmlhYmxlLiBXZSBzaG91bGQgYXNzaWduIFBhcmFtIHBhcmFtdmFyaWQKKyAq IHRvbywgYW5kIGl0IGlzIHBvc2l0aW9uIG9mIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSBpbiBt ZW50aW9uZWQgbGlzdC4KICAqLwogc3RhdGljIE5vZGUgKgogZml4X3BhcmFtX25vZGUoUGxhbm5l ckluZm8gKnJvb3QsIFBhcmFtICpwKQpAQCAtMjA3NCw2ICsyMTM0LDQxIEBAIGZpeF9wYXJhbV9u b2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKIAkJCWVsb2coRVJST1IsICJ1bmV4cGVj dGVkIFBBUkFNX01VTFRJRVhQUiBJRDogJWQiLCBwLT5wYXJhbWlkKTsKIAkJcmV0dXJuIGNvcHlP YmplY3QobGlzdF9udGgocGFyYW1zLCBjb2xubyAtIDEpKTsKIAl9CisKKwlpZiAocC0+cGFyYW1r aW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisJCWludAkJCW4g PSAwOworCQlib29sCQlmb3VuZCA9IGZhbHNlOworCisJCS8qIFdlIHdpbGwgbW9kaWZ5IG9iamVj dCAqLworCQlwID0gKFBhcmFtICopIGNvcHlPYmplY3QocCk7CisKKwkJLyoKKwkJICogTm93LCB3 ZSBjYW4gYWN0dWFsaXplIGxpc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMsIGFuZCB3ZSBjYW4KKwkJ ICogY29tcGxldGUgcGFyYW1pZCBwYXJhbWV0ZXIuCisJCSAqLworCQlmb3JlYWNoKGxjLCByb290 LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlpZiAobGZpcnN0X29pZChsYykgPT0g cC0+cGFyYW12YXJpZCkKKwkJCXsKKwkJCQlwLT5wYXJhbWlkID0gbjsKKwkJCQlmb3VuZCA9IHRy dWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQluICs9IDE7CisJCX0KKworCQlpZiAoIWZvdW5kKQor CQl7CisJCQlyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gbGFwcGVuZF9vaWQocm9vdC0+ Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcywKKwkJCQkJCQkJCQkJCQkgICBwLT5wYXJhbXZhcmlkKTsK KwkJCXAtPnBhcmFtaWQgPSBuOworCQl9CisKKwkJcmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJ cmV0dXJuIChOb2RlICopIGNvcHlPYmplY3QocCk7CiB9CiAKQEAgLTIxMzUsNyArMjIzMCwxMCBA QCBmaXhfYWx0ZXJuYXRpdmVfc3VicGxhbihQbGFubmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVT dWJQbGFuICphc3BsYW4sCiAgKiByZXBsYWNpbmcgQWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJl IHJlcGxhY2VkIGJ5IGluaXRwbGFuIG91dHB1dCBQYXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVz dCBpbXBsZW1lbnRhdGlvbiBmb3IgQWx0ZXJuYXRpdmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAg b3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFu ZCBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+ cmVsYXRpb25PaWRzLgorICogYWRkaW5nIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBp bnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcywKKyAqIGFuZCBhc3NpZ25pbmcgcGFyYW12YXJp ZCB0byBQQVJBTV9WQVJJQUJMRSBwYXJhbXMsIGFuZCBjb2xsZWN0aW5nCisgKiBvZiBPSURzIG9m IHNlc3Npb24gdmFyaWFibGVzIGluIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgbGlzdAor ICogKHBhcmFtdmFyaWQgaXMgYW4gcG9zaXRpb24gb2YgcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxl IGluIHRoaXMgbGlzdCkuCiAgKgogICogJ25vZGUnOiB0aGUgZXhwcmVzc2lvbiB0byBiZSBtb2Rp ZmllZAogICogJ3J0b2Zmc2V0JzogaG93IG11Y2ggdG8gaW5jcmVtZW50IHZhcm5vcyBieQpAQCAt MjE1Nyw3ICsyMjU1LDggQEAgZml4X3NjYW5fZXhwcihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAq bm9kZSwgaW50IHJ0b2Zmc2V0LCBkb3VibGUgbnVtX2V4ZWMpCiAJCXJvb3QtPm11bHRpZXhwcl9w YXJhbXMgIT0gTklMIHx8CiAJCXJvb3QtPmdsb2ItPmxhc3RQSElkICE9IDAgfHwKIAkJcm9vdC0+ bWlubWF4X2FnZ3MgIT0gTklMIHx8Ci0JCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMpCisJ CXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMgfHwKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlh YmxlcykKIAl7CiAJCXJldHVybiBmaXhfc2Nhbl9leHByX211dGF0b3Iobm9kZSwgJmNvbnRleHQp OwogCX0KQEAgLTM1MjAsNiArMzYxOSwyNSBAQCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3ko UGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCkKIAl9CiB9CiAKKy8qCisgKiBSZWNvcmQgZGVw ZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFibGUuIFRoZSB2YXJpYWJsZSBjYW4gYmUgdXNlZCBh cyBhCisgKiBzZXNzaW9uIHZhcmlhYmxlIGluIGV4cHJlc3Npb24gbGlzdCwgb3IgdGFyZ2V0IG9m IExFVCBzdGF0ZW1lbnQuCisgKi8KK3N0YXRpYyB2b2lkCityZWNvcmRfcGxhbl92YXJpYWJsZV9k ZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpCit7CisJUGxhbkludmFsSXRl bSAqaW52YWxfaXRlbSA9IG1ha2VOb2RlKFBsYW5JbnZhbEl0ZW0pOworCisJLyogcGFyYW1pZCBp cyBzdGlsbCBzZXNzaW9uIHZhcmlhYmxlIGlkICovCisJaW52YWxfaXRlbS0+Y2FjaGVJZCA9IFZB UklBQkxFT0lEOworCWludmFsX2l0ZW0tPmhhc2hWYWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVl MShWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwor CisJLyogQXBwZW5kIHRoaXMgdmFyaWFibGUgdG8gZ2xvYmFsLCByZWdpc3RlciBkZXBlbmRlbmN5 ICovCisJcm9vdC0+Z2xvYi0+aW52YWxJdGVtcyA9IGxhcHBlbmQocm9vdC0+Z2xvYi0+aW52YWxJ dGVtcywKKwkJCQkJCQkJCSBpbnZhbF9pdGVtKTsKK30KKwogLyoKICAqIGV4dHJhY3RfcXVlcnlf ZGVwZW5kZW5jaWVzCiAgKgkJR2l2ZW4gYSByZXdyaXR0ZW4sIGJ1dCBub3QgeWV0IHBsYW5uZWQs IHF1ZXJ5IG9yIHF1ZXJpZXMKQEAgLTM2MDUsOSArMzcyMyw5IEBAIGV4dHJhY3RfcXVlcnlfZGVw ZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCX0K IAogCQkJLyoKLQkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0 aG9zZSAoc3VjaCBhcyBFWFBMQUlOKQotCQkJICogdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1dC1u b3QtcGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwgd2UKLQkJCSAqIGp1c3QgbmVlZCB0byB0cmFu c2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCisJCQkgKiBJZ25vcmUg b3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQTEFJTgor CQkJICogb3IgTEVUKSB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1ZXJ5 LiAgRm9yIHRob3NlLAorCQkJICogd2UganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRlbnRp b24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KIAkJCSAqLwogCQkJcXVlcnkgPSBVdGlsaXR5Q29u dGFpbnNRdWVyeShxdWVyeS0+dXRpbGl0eVN0bXQpOwogCQkJaWYgKHF1ZXJ5ID09IE5VTEwpCkBA IC0zNjMwLDYgKzM3NDgsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5v ZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJCQlsYXBwZW5kX29pZChjb250ZXh0 LT5nbG9iLT5yZWxhdGlvbk9pZHMsIHJ0ZS0+cmVsaWQpOwogCQl9CiAKKwkJLyogUmVjb3JkIGRl cGVuZGVuY3kgb24gdGFyZ2VyIHZhcmlhYmxlIG9mIExFVCBjb21tYW5kICovCisJCWlmIChPaWRJ c1ZhbGlkKHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSkpCisJCQlyZWNvcmRfcGxhbl92YXJpYWJsZV9k ZXBlbmRlbmN5KGNvbnRleHQsIHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSk7CisKIAkJLyogQW5kIHJl Y3Vyc2UgaW50byB0aGUgcXVlcnkncyBzdWJleHByZXNzaW9ucyAqLwogCQlyZXR1cm4gcXVlcnlf dHJlZV93YWxrZXIocXVlcnksIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlciwKIAkJ CQkJCQkJICh2b2lkICopIGNvbnRleHQsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9w cmVwam9pbnRyZWUuYwppbmRleCA5NjllMjU3ZjcwYi4uYTIyZWEwMzcyOTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xMzE0LDYgKzEzMTQsOSBAQCBw dWxsX3VwX3NpbXBsZV9zdWJxdWVyeShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRub2RlLCBS YW5nZVRibEVudHJ5ICpydGUsCiAJLyogSWYgc3VicXVlcnkgaGFkIGFueSBSTFMgY29uZGl0aW9u cywgbm93IG1haW4gcXVlcnkgZG9lcyB0b28gKi8KIAlwYXJzZS0+aGFzUm93U2VjdXJpdHkgfD0g c3VicXVlcnktPmhhc1Jvd1NlY3VyaXR5OwogCisJLyogSWYgc3VicXVlcnkgaGFkIHNlc3Npb24g dmFyaWFibGVzLCBub3cgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNlLT5oYXNTZXNzaW9u VmFyaWFibGVzIHw9IHN1YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJLyoKIAkgKiBz dWJxdWVyeSB3b24ndCBiZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFzV2luZG93RnVuY3Ms IG9yCiAJICogaGFzVGFyZ2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24gdGhvc2UgZmxhZ3MK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCBiNGUwODVlOWQ0Yi4uMWIxZmI2 ZWNmODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI0LDYgKzI0LDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAj aW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAt OTM1LDYgKzkzNiwxMyBAQCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpub2RlLCBt YXhfcGFyYWxsZWxfaGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+cGFyYW1r aW5kID09IFBBUkFNX0VYVEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkvKiBXZSBkb2Vzbid0 IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChw YXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFs bGVsX2hhemFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJl dHVybiB0cnVlOworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8 fAogCQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBh cmFtaWQpKQogCQl7CkBAIC0yMzg5LDYgKzIzOTcsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVk X3Nhb3Bfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRo ZSBQYXJhbS4KICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rp b25zIHRvIGNvbnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0 aGVpciBjb250YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Np b24gdmFyaWFibGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0t LS0tLS0tLS0tLQogICovCiBOb2RlICoKQEAgLTI1MTUsNiArMjUyNCwyOSBAQCBldmFsX2NvbnN0 X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0K KwkJCQllbHNlIGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJ CQkgY29udGV4dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQli b29sCQl0eXBCeVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKwor CQkJCQlnZXRfdHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4s ICZ0eXBCeVZhbCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hl Y2socGFyYW0tPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkJCQkJCSAgICZpc251bGwsCisJCQkJCQkJ CQkJCQkJCSAgIHBhcmFtLT5wYXJhbXR5cGUpOworCisJCQkJCXJldHVybiAoTm9kZSAqKSBtYWtl Q29uc3QocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW10eXBtb2Qs CisJCQkJCQkJCQkJCSAgcGFyYW0tPnBhcmFtY29sbGlkLAorCQkJCQkJCQkJCQkgIChpbnQpIHR5 cExlbiwKKwkJCQkJCQkJCQkJICBwdmFsLAorCQkJCQkJCQkJCQkgIGlzbnVsbCwKKwkJCQkJCQkJ CQkJICB0eXBCeVZhbCk7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBOb3QgcmVwbGFjZWFibGUs IHNvIGp1c3QgY29weSB0aGUgUGFyYW0gKG5vIG5lZWQgdG8KQEAgLTQ3MDYsNyArNDczOCw4IEBA IGlubGluZV9mdW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRf Y29sbGlkLAogCQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRD b3VudCB8fAogCQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJbGlzdF9sZW5ndGgocXVl cnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKQorCQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJn ZXRMaXN0KSAhPSAxKSB8fAorCQlxdWVyeXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCWdv dG8gZmFpbDsKIAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNv bHZlIGl0ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCAyOGZlZDlkODdmNi4uOTljZDA1OTFmOGQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMjUsOSArMjUsMTIgQEAKICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL25h bWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9kZWZyZW0uaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgi CiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC01MCw2ICs1Myw3IEBACiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUu aCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgog CkBAIC04Miw2ICs4Niw4IEBAIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ3JlYXRlVGFibGVBc1N0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBDcmVhdGVUYWJsZUFzU3RtdCAqc3Rt dCk7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJCQkJCQkJQ2FsbFN0bXQgKnN0bXQpOworc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1MZXRTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkgICBMZXRTdG10ICpzdG10KTsKIHN0YXRpYyB2 b2lkIHRyYW5zZm9ybUxvY2tpbmdDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXJ5 LAogCQkJCQkJCQkgICBMb2NraW5nQ2xhdXNlICpsYywgYm9vbCBwdXNoZWREb3duKTsKICNpZmRl ZiBSQVdfRVhQUkVTU0lPTl9DT1ZFUkFHRV9URVNUCkBAIC0zMjUsNiArMzMxLDcgQEAgdHJhbnNm b3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJY2FzZSBUX1Vw ZGF0ZVN0bXQ6CiAJCWNhc2UgVF9EZWxldGVTdG10OgogCQljYXNlIFRfTWVyZ2VTdG10OgorCQlj YXNlIFRfTGV0U3RtdDoKIAkJCSh2b2lkKSB0ZXN0X3Jhd19leHByZXNzaW9uX2NvdmVyYWdlKHBh cnNlVHJlZSwgTlVMTCk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTQwMyw2ICs0MTAsMTEg QEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJ CQkJCQkJCSAgIChDYWxsU3RtdCAqKSBwYXJzZVRyZWUpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBU X0xldFN0bXQ6CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1MZXRTdG10KHBzdGF0ZSwKKwkJCQkJCQkJ CSAgKExldFN0bXQgKikgcGFyc2VUcmVlKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAKIAkJ CS8qCkBAIC00NTQsNiArNDY2LDcgQEAgc3RtdF9yZXF1aXJlc19wYXJzZV9hbmFseXNpcyhSYXdT dG10ICpwYXJzZVRyZWUpCiAJCWNhc2UgVF9TZWxlY3RTdG10OgogCQljYXNlIFRfUmV0dXJuU3Rt dDoKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlyZXN1bHQg PSB0cnVlOwogCQkJYnJlYWs7CiAKQEAgLTU2Miw2ICs1NzUsNyBAQCB0cmFuc2Zvcm1EZWxldGVT dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRv d0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9 IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNB Z2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFy aWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC05 ODgsNiArMTAwMiw3IEBAIHRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJ bnNlcnRTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rh cmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlx cnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsK IAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTQ1Myw2ICsx NDY4LDcgQEAgdHJhbnNmb3JtU2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0 bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5j czsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnkt Pmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMg PSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2gobCwgc3RtdC0+bG9j a2luZ0NsYXVzZSkKIAl7CkBAIC0xNjc5LDEyICsxNjk1LDI1MCBAQCB0cmFuc2Zvcm1WYWx1ZXND bGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+am9pbnRy ZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKIAogCXFyeS0+aGFz U3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFi bGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29s bGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKIAlyZXR1cm4gcXJ5OwogfQogCisvKgorICogdHJhbnNm b3JtTGV0U3RtdCAtCisgKgkgIHRyYW5zZm9ybSBhbiBMZXQgU3RhdGVtZW50CisgKi8KK3N0YXRp YyBRdWVyeSAqCit0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAq c3RtdCkKK3sKKwlRdWVyeQkgICAqcXVlcnk7CisJUXVlcnkJICAgKnJlc3VsdDsKKwlMaXN0CSAg ICpleHByTGlzdCA9IE5JTDsKKwlMaXN0CSAgICpleHByTGlzdENvZXIgPSBOSUw7CisJTGlzdENl bGwgICAqbGM7CisJTGlzdENlbGwgICAqaW5kaXJlY3Rpb25faGVhZCA9IE5VTEw7CisJUXVlcnkJ ICAgKnNlbGVjdFF1ZXJ5OworCU9pZAkJCXZhcmlkOworCWNoYXIJICAgKmF0dHJuYW1lID0gTlVM TDsKKwlib29sCQlub3RfdW5pcXVlOworCWJvb2wJCWlzX3Jvd3R5cGU7CisJT2lkCQkJdHlwaWQ7 CisJaW50MzIJCXR5cG1vZDsKKwlPaWQJCQljb2xsaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsK KwlMaXN0CSAgICpuYW1lcyA9IE5VTEw7CisJaW50CQkJaW5kaXJlY3Rpb25fc3RhcnQ7CisJaW50 CQkJaSA9IDA7CisKKwkvKiBUaGVyZSBjYW4ndCBiZSBhbnkgb3V0ZXIgV0lUSCB0byB3b3JyeSBh Ym91dCAqLworCUFzc2VydChwc3RhdGUtPnBfY3RlbmFtZXNwYWNlID09IE5JTCk7CisKKwluYW1l cyA9IE5hbWVzRnJvbUxpc3Qoc3RtdC0+dGFyZ2V0KTsKKworCS8qCisJICogVGhlIEFjY2Vzc1No YXJlTG9jayBpcyBjcmVhdGVkIG9uIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZS4gVGhlIGxvY2sK KwkgKiB3aWxsIGJlIGtlcHQgZm9yIHRoZSB3aG9sZSB0cmFuc2FjdGlvbi4KKwkgKi8KKwl2YXJp ZCA9IElkZW50aWZ5VmFyaWFibGUobmFtZXMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNl KTsKKwlpZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJtc2coInRhcmdldCBcIiVzXCIgb2Yg TEVUIGNvbW1hbmQgaXMgYW1iaWd1b3VzIiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMp KSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisK KwlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzXCIgZG9lc24ndCBleGlzdCIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSks CisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJ LyoKKwkgKiBDYWxjdWxhdGUgc3RhcnQgb2YgcG9zc2libGUgcG9zaXRpb24gb2YgYW4gaW5kaXJl Y3Rpb24gaW4gbGlzdCwgYW5kCisJICogd2hlbiBpdCBpcyBpbnNpZGUgdGhlIGxpc3QsIHN0b3Jl IHBvaW50ZXIgb24gZmlyc3Qgbm9kZSBvZiBpbmRpcmVjdGlvbi4KKwkgKi8KKwlpbmRpcmVjdGlv bl9zdGFydCA9IGxpc3RfbGVuZ3RoKG5hbWVzKSAtIChhdHRybmFtZSA/IDEgOiAwKTsKKwlpZiAo bGlzdF9sZW5ndGgoc3RtdC0+dGFyZ2V0KSA+IGluZGlyZWN0aW9uX3N0YXJ0KQorCQlpbmRpcmVj dGlvbl9oZWFkID0gbGlzdF9udGhfY2VsbChzdG10LT50YXJnZXQsIGluZGlyZWN0aW9uX3N0YXJ0 KTsKKworCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5 cGlkLCAmdHlwbW9kLCAmY29sbGlkKTsKKworCWlzX3Jvd3R5cGUgPSB0eXBlX2lzX3Jvd3R5cGUo dHlwaWQpOworCisJaWYgKGF0dHJuYW1lICYmICFpc19yb3d0eXBlKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2co InR5cGUgXCIlc1wiIG9mIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBub3Qg YSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCksCisJCQkJCQln ZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSks CisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSksCisJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdldFVzZXJJZCgpLCBBQ0xf VVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJv cihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpOwor CisJLyoKKwkgKiBUaGUgYmVoYXZpb3Igb2YgRVhQUl9LSU5EX0xFVF9UQVJHRVQgaXMgYWxtb3N0 IHNhbWUgbGlrZQorCSAqIEVYUFJfS0lORF9VUERBVEVfVEFSR0VULiBFWFBSX0tJTkRfTEVUX1RB UkdFVCB3YXMgaW50cm9kdWNlZCB0byBiZQorCSAqIHBvc3NpYmxlIHRvIHJhaXNlIG1vcmUgY29y cmVjdCBlcnJvcnMsIHdoZXJlIHRoZSBjb21tYW5kIExFVCBpcworCSAqIG1lbnRpb25lZCAoaW5z dGVhZCBVUERBVEUgY29tbWFuZCkuCisJICovCisJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJf S0lORF9MRVRfVEFSR0VUOworCisJc2VsZWN0UXVlcnkgPSB0cmFuc2Zvcm1TdG10KHBzdGF0ZSwg c3RtdC0+cXVlcnkpOworCisJLyogVGhlIGdyYW1tYXIgc2hvdWxkIGhhdmUgcHJvZHVjZWQgYSBT RUxFQ1QgKi8KKwlBc3NlcnQoSXNBKHNlbGVjdFF1ZXJ5LCBRdWVyeSkgJiYgc2VsZWN0UXVlcnkt PmNvbW1hbmRUeXBlID09IENNRF9TRUxFQ1QpOworCisJLyotLS0tLS0tLS0tCisJICogR2VuZXJh dGUgYW4gZXhwcmVzc2lvbiBsaXN0IGZvciB0aGUgTEVUIHRoYXQgc2VsZWN0cyBhbGwgdGhlCisJ ICogbm9uLXJlc2p1bmsgY29sdW1ucyBmcm9tIHRoZSBzdWJxdWVyeS4KKwkgKi0tLS0tLS0tLS0K KwkgKi8KKwlleHByTGlzdCA9IE5JTDsKKwlmb3JlYWNoKGxjLCBzZWxlY3RRdWVyeS0+dGFyZ2V0 TGlzdCkKKwl7CisJCVRhcmdldEVudHJ5ICp0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxj KTsKKworCQlpZiAodGxlLT5yZXNqdW5rKQorCQkJY29udGludWU7CisKKwkJZXhwckxpc3QgPSBs YXBwZW5kKGV4cHJMaXN0LCB0bGUtPmV4cHIpOworCX0KKworCS8qIGRvbid0IGFsbG93IG11bHRp Y29sdW1uIHJlc3VsdCAqLworCWlmIChsaXN0X2xlbmd0aChleHByTGlzdCkgIT0gMSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVy cm1zZ19wbHVyYWwoImFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW4iLAor CQkJCQkJCSAgICJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1ucyIsCisJ CQkJCQkJICAgbGlzdF9sZW5ndGgoZXhwckxpc3QpLAorCQkJCQkJCSAgIGxpc3RfbGVuZ3RoKGV4 cHJMaXN0KSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCisJCQkJCQkJCQlleHBy TG9jYXRpb24oKE5vZGUgKikgZXhwckxpc3QpKSkpOworCisJZXhwckxpc3RDb2VyID0gTklMOwor CisJZm9yZWFjaChsYywgZXhwckxpc3QpCisJeworCQlFeHByCSAgICpleHByID0gKEV4cHIgKikg bGZpcnN0KGxjKTsKKwkJRXhwcgkgICAqY29lcmNlZF9leHByOworCQlQYXJhbQkgICAqcGFyYW07 CisJCU9pZAkJCWV4cHJ0eXBpZDsKKworCQlpZiAoSXNBKGV4cHIsIENvbnN0KSAmJiAoKENvbnN0 ICopIGV4cHIpLT5jb25zdGlzbnVsbCkKKwkJeworCQkJLyogdXNlIGtub3duIHR5cGUgZm9yIE5V TEwgdmFsdWUgKi8KKwkJCWV4cHIgPSAoRXhwciAqKSBtYWtlTnVsbENvbnN0KHR5cGlkLCB0eXBt b2QsIGNvbGxpZCk7CisJCX0KKworCQkvKiBub3cgd2UgY2FuIHJlYWQgdHlwZSBvZiBleHByZXNz aW9uICovCisJCWV4cHJ0eXBpZCA9IGV4cHJUeXBlKChOb2RlICopIGV4cHIpOworCisJCXBhcmFt ID0gbWFrZU5vZGUoUGFyYW0pOworCQlwYXJhbS0+cGFyYW1raW5kID0gUEFSQU1fVkFSSUFCTEU7 CisJCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBp ZDsKKwkJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOworCisJCWlmIChpbmRpcmVjdGlvbl9o ZWFkKQorCQl7CisJCQlib29sCQl0YXJnZXRJc0FycmF5OworCQkJY2hhcgkgICAqdGFyZ2V0TmFt ZTsKKworCQkJdGFyZ2V0TmFtZSA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpOwor CQkJdGFyZ2V0SXNBcnJheSA9IE9pZElzVmFsaWQoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkpOwor CisJCQlwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwkJCWNvZXJjZWRf ZXhwciA9IChFeHByICopCisJCQkJdHJhbnNmb3JtQXNzaWdubWVudEluZGlyZWN0aW9uKHBzdGF0 ZSwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgcGFyYW0sCisJCQkJCQkJCQkJCSAgIHRhcmdldE5h bWUsCisJCQkJCQkJCQkJCSAgIHRhcmdldElzQXJyYXksCisJCQkJCQkJCQkJCSAgIHR5cGlkLAor CQkJCQkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJCQkJCSAgIEludmFsaWRPaWQsCisJCQkJCQkJ CQkJCSAgIHN0bXQtPnRhcmdldCwKKwkJCQkJCQkJCQkJICAgaW5kaXJlY3Rpb25faGVhZCwKKwkJ CQkJCQkJCQkJICAgKE5vZGUgKikgZXhwciwKKwkJCQkJCQkJCQkJICAgQ09FUkNJT05fUExQR1NR TCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+bG9jYXRpb24pOworCQl9CisJCWVsc2UKKwkJCWNvZXJj ZWRfZXhwciA9IChFeHByICopCisJCQkJY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwKKwkJ CQkJCQkJCSAgKE5vZGUgKikgZXhwciwKKwkJCQkJCQkJCSAgZXhwcnR5cGlkLAorCQkJCQkJCQkJ ICB0eXBpZCwgdHlwbW9kLAorCQkJCQkJCQkJICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJ CQkJICBDT0VSQ0VfSU1QTElDSVRfQ0FTVCwKKwkJCQkJCQkJCSAgc3RtdC0+bG9jYXRpb24pOwor CisJCWlmIChjb2VyY2VkX2V4cHIgPT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJs ZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSAlcywiCisJCQkJCQkJIiBidXQgZXhwcmVzc2lvbiBpcyBv ZiB0eXBlICVzIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2 YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAorCQkJCQkJCWZvcm1hdF90eXBl X2JlKGV4cHJ0eXBpZCkpLAorCQkJCQkgZXJyaGludCgiWW91IHdpbGwgbmVlZCB0byByZXdyaXRl IG9yIGNhc3QgdGhlIGV4cHJlc3Npb24uIiksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oKE5vZGUgKikgZXhwcikpKSk7CisKKwkJZXhwckxpc3RDb2VyID0g bGFwcGVuZChleHByTGlzdENvZXIsIGNvZXJjZWRfZXhwcik7CisJfQorCisJLyoKKwkgKiBHZW5l cmF0ZSBxdWVyeSdzIHRhcmdldCBsaXN0IHVzaW5nIHRoZSBjb21wdXRlZCBsaXN0IG9mIGV4cHJl c3Npb25zLgorCSAqLworCXF1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCXF1ZXJ5LT5jb21tYW5k VHlwZSA9IENNRF9TRUxFQ1Q7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdENvZXIpCisJeworCQlF eHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJVGFyZ2V0RW50cnkgKnRsZTsK KworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoZXhwciwKKwkJCQkJCQkgIGkgKyAxLAorCQkJCQkJ CSAgRmlndXJlQ29sbmFtZSgoTm9kZSAqKSBleHByKSwKKwkJCQkJCQkgIGZhbHNlKTsKKwkJcXVl cnktPnRhcmdldExpc3QgPSBsYXBwZW5kKHF1ZXJ5LT50YXJnZXRMaXN0LCB0bGUpOworCX0KKwor CS8qIGRvbmUgYnVpbGRpbmcgdGhlIHJhbmdlIHRhYmxlIGFuZCBqb2ludHJlZSAqLworCXF1ZXJ5 LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOworCXF1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9t RXhwcihwc3RhdGUtPnBfam9pbmxpc3QsIE5VTEwpOworCisJcXVlcnktPmhhc1RhcmdldFNSRnMg PSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKKwlxdWVyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUt PnBfaGFzU3ViTGlua3M7CisJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBf aGFzU2Vzc2lvblZhcmlhYmxlczsKKworCS8qIFRoaXMgaXMgdG9wIHF1ZXJ5ICovCisJcXVlcnkt PmNhblNldFRhZyA9IHRydWU7CisKKwkvKgorCSAqIFNhdmUgdGFyZ2V0IHNlc3Npb24gdmFyaWFi bGUgaWQuIFRoaXMgdmFsdWUgaXMgdXNlZCBtdWx0aXBsZSB0aW1lczogYnkKKwkgKiBxdWVyeSBy ZXdyaXRlciAoZm9yIGdldHRpbmcgcmVsYXRlZCBkZWZleHByKSwgYnkgcGxhbm5lciAoZm9yIGFj cXVpcmluZworCSAqIEFjY2Vzc1NoYXJlTG9jayBvbiB0YXJnZXQgdmFyaWFibGUpLCBhbmQgYnkg ZXhlY3V0b3IgKHdlIG5lZWQgdG8ga25vdworCSAqIHRhcmdldCB2YXJpYWJsZSBpZCkuCisJICov CisJcXVlcnktPnJlc3VsdFZhcmlhYmxlID0gdmFyaWQ7CisKKwlhc3NpZ25fcXVlcnlfY29sbGF0 aW9ucyhwc3RhdGUsIHF1ZXJ5KTsKKworCXN0bXQtPnF1ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CisK KwkvKiByZXByZXNlbnQgdGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5IFF1ZXJ5ICovCisJcmVzdWx0 ID0gbWFrZU5vZGUoUXVlcnkpOworCXJlc3VsdC0+Y29tbWFuZFR5cGUgPSBDTURfVVRJTElUWTsK KwlyZXN1bHQtPnV0aWxpdHlTdG10ID0gKE5vZGUgKikgc3RtdDsKKworCXJldHVybiByZXN1bHQ7 Cit9CisKIC8qCiAgKiB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10IC0KICAqCSAgdHJhbnNmb3Jt cyBhIHNldC1vcGVyYXRpb25zIHRyZWUKQEAgLTE5MzAsNiArMjE4NCw3IEBAIHRyYW5zZm9ybVNl dE9wZXJhdGlvblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFy eS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNU YXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0 YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIGxvY2tpbmdDbGF1c2UpCiAJewpAQCAt MjQwNCw2ICsyNjU5LDcgQEAgdHJhbnNmb3JtUmV0dXJuU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IFJldHVyblN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNX aW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JG czsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25W YXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVy eV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjQ3MSw2ICsyNzI3LDcgQEAgdHJhbnNm b3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiAKIAlx cnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc1N1 YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxl cyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxh dGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0yNjU4LDkgKzI5MTUsMTUgQEAgdHJhbnNmb3JtUExB c3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCS8qCiAJ ICogVHJhbnNmb3JtIHRoZSB0YXJnZXQgcmVmZXJlbmNlLiAgVHlwaWNhbGx5IHdlIHdpbGwgZ2V0 IGJhY2sgYSBQYXJhbQogCSAqIG5vZGUsIGJ1dCB0aGVyZSdzIG5vIHJlYXNvbiB0byBiZSB0b28g cGlja3kgYWJvdXQgaXRzIHR5cGUuCisJICoKKwkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMgc2hv dWxkIG5vdCBiZSB1c2VkIGFzIHRhcmdldCBvZiBQTC9wZ1NRTCBhc3NpZ24KKwkgKiBzdGF0ZW1l bnQuIFNvIHdlIHNob3VsZCB0byB1c2UgZGVkaWNhdGVkIGV4cHJlc3Npb24ga2luZCwgYW5kIGRp c2FsbG93CisJICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhlcmUuIFRoZSBkZWRpY2F0ZWQgY29udGV4 dCBhbGxvd3MgdG8gZWxpbWluYXRlCisJICogZmFsc2UgYWxhcm0gd2FybmluZ3MgcmVsYXRlZCB0 byBwb3NzaWJpbGl0eSBvZiB0YXJnZXQgUEwvcGdTUUwgdmFyaWFibGUKKwkgKiBzaGFkb3dzIGEg c2Vzc2lvbiB2YXJpYWJsZS4KIAkgKi8KIAl0YXJnZXQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwg KE5vZGUgKikgY3JlZiwKLQkJCQkJCSAgIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUKTsKKwkJCQkJ CSAgIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUKTsKIAl0YXJnZXR0eXBlID0gZXhwclR5cGUodGFy Z2V0KTsKIAl0YXJnZXR0eXBtb2QgPSBleHByVHlwbW9kKHRhcmdldCk7CiAJdGFyZ2V0Y29sbGF0 aW9uID0gZXhwckNvbGxhdGlvbih0YXJnZXQpOwpAQCAtMjcwMiw2ICsyOTY1LDEwIEBAIHRyYW5z Zm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkK IAkgKi8KIAl0eXBlX2lkID0gZXhwclR5cGUoKE5vZGUgKikgdGxlLT5leHByKTsKIAorCS8qCisJ ICogRm9yIGluZGlyZWN0aW9uIHByb2Nlc3NpbmcgYW5kIGFkZGl0aW9uYWwgY2FzdHMgd2UgY2Fu IHVzZSBleHByX2tpbmQKKwkgKiBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVAorCSAqLwogCXBzdGF0 ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVDsKIAogCWlmIChpbmRpcmVj dGlvbikKQEAgLTI4NDQsNiArMzExMSw4IEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkJCQkJCQkgICAoTG9ja2luZ0NsYXVz ZSAqKSBsZmlyc3QobCksIGZhbHNlKTsKIAl9CiAKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMg PSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCWFzc2lnbl9xdWVyeV9jb2xsYXRp b25zKHBzdGF0ZSwgcXJ5KTsKIAogCS8qIHRoaXMgbXVzdCBiZSBkb25lIGFmdGVyIGNvbGxhdGlv bnMsIGZvciByZWxpYWJsZSBjb21wYXJpc29uIG9mIGV4cHJzICovCkBAIC0zMTE3LDYgKzMzODYs MTQgQEAgdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYWxsU3RtdCAqc3Rt dCkKIAkJCQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2NhbGwtPmxvY2F0aW9uKTsKIAor CS8qCisJICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVudCBhcmUgZXZhbHVhdGVkIGJ5 IGRpcmVjdAorCSAqIGV4cHJlc3Npb24gZXhlY3V0b3IgY2FsbC4gVGhpcyBwYXRoIGlzIHVuc3Vw cG9ydGVkIHlldCwKKwkgKiBzbyBibG9jayBpdC4gSXQgd2lsbCBiZSBlbmFibGVkIGJ5IHNvbWUg b3RoZXIgcGF0Y2guCisJICovCisJaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQor CQllbG9nKEVSUk9SLCAic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1 bWVudCIpOworCiAJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIG5vZGUpOwogCiAJZmV4 cHIgPSBjYXN0Tm9kZShGdW5jRXhwciwgbm9kZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA1N2I1ZjY4ODJi MS4uZjUzNjczNjljZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAJCURyb3BUcmFuc2Zvcm1TdG10CiAJCURyb3BVc2VyTWFwcGluZ1N0 bXQgRXhwbGFpblN0bXQgRmV0Y2hTdG10CiAJCUdyYW50U3RtdCBHcmFudFJvbGVTdG10IEltcG9y dEZvcmVpZ25TY2hlbWFTdG10IEluZGV4U3RtdCBJbnNlcnRTdG10Ci0JCUxpc3RlblN0bXQgTG9h ZFN0bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10IFByZXBh cmFibGVTdG10CisJCUxldFN0bXQgTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0 bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKIAkJQ3JlYXRlRnVu Y3Rpb25TdG10IEFsdGVyRnVuY3Rpb25TdG10IFJlaW5kZXhTdG10IFJlbW92ZUFnZ3JTdG10CiAJ CVJlbW92ZUZ1bmNTdG10IFJlbW92ZU9wZXJTdG10IFJlbmFtZVN0bXQgUmV0dXJuU3RtdCBSZXZv a2VTdG10IFJldm9rZVJvbGVTdG10CiAJCVJ1bGVBY3Rpb25TdG10IFJ1bGVBY3Rpb25TdG10T3JF bXB0eSBSdWxlU3RtdApAQCAtNDU3LDYgKzQ1Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7 CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZhY3V1bV9y ZWxhdGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAogCQkJCWRyb3Bfb3B0aW9uX2xp c3QgcHViX29ial9saXN0CisJCQkJbGV0X3RhcmdldAogCiAldHlwZSA8bm9kZT4Jb3B0X3JvdXRp bmVfYm9keQogJXR5cGUgPGdyb3VwY2xhdXNlPiBncm91cF9jbGF1c2UKQEAgLTc0OSw3ICs3NTAs NyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwg TGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCUtFRVAgS0VZIEtFWVMKIAogCUxBQkVMIExB TkdVQUdFIExBUkdFX1AgTEFTVF9QIExBVEVSQUxfUAotCUxFQURJTkcgTEVBS1BST09GIExFQVNU IExFRlQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAorCUxFQURJTkcgTEVBS1BS T09GIExFQVNUIExFRlQgTEVUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlM T0NBTFRJTUUgTE9DQUxUSU1FU1RBTVAgTE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAog CU1BUFBJTkcgTUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVSR0Vf QUNUSU9OIE1FVEhPRApAQCAtMTEwMCw2ICsxMTAxLDcgQEAgc3RtdDoKIAkJCXwgSW1wb3J0Rm9y ZWlnblNjaGVtYVN0bXQKIAkJCXwgSW5kZXhTdG10CiAJCQl8IEluc2VydFN0bXQKKwkJCXwgTGV0 U3RtdAogCQkJfCBMaXN0ZW5TdG10CiAJCQl8IFJlZnJlc2hNYXRWaWV3U3RtdAogCQkJfCBMb2Fk U3RtdApAQCAtMTI3NjgsNiArMTI3NzAsNDcgQEAgb3B0X2hvbGQ6IC8qIEVNUFRZICovCQkJCQkJ eyAkJCA9IDA7IH0KIAkJCXwgV0lUSE9VVCBIT0xECQkJCQl7ICQkID0gMDsgfQogCQk7CiAKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWToKKyAqCQkJCUxFVCBTVEFURU1FTlRT CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworTGV0U3RtdDoJTEVUIGxldF90YXJnZXQgJz0n IGFfZXhwcgorCQkJCXsKKwkJCQkJTGV0U3RtdAkgICAqbiA9IG1ha2VOb2RlKExldFN0bXQpOwor CQkJCQlTZWxlY3RTdG10ICpzZWxlY3Q7CisJCQkJCVJlc1RhcmdldCAgKnJlczsKKworCQkJCQlu LT50YXJnZXQgPSAkMjsKKworCQkJCQlzZWxlY3QgPSBtYWtlTm9kZShTZWxlY3RTdG10KTsKKwkJ CQkJcmVzID0gbWFrZU5vZGUoUmVzVGFyZ2V0KTsKKworCQkJCQkvKiBDcmVhdGUgdGFyZ2V0IGxp c3QgZm9yIGltcGxpY2l0IHF1ZXJ5ICovCisJCQkJCXJlcy0+bmFtZSA9IE5VTEw7CisJCQkJCXJl cy0+aW5kaXJlY3Rpb24gPSBOSUw7CisJCQkJCXJlcy0+dmFsID0gKE5vZGUgKikgJDQ7CisJCQkJ CXJlcy0+bG9jYXRpb24gPSBANDsKKworCQkJCQlzZWxlY3QtPnRhcmdldExpc3QgPSBsaXN0X21h a2UxKHJlcyk7CisJCQkJCW4tPnF1ZXJ5ID0gKE5vZGUgKikgc2VsZWN0OworCisJCQkJCW4tPmxv Y2F0aW9uID0gQDI7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKworbGV0X3Rh cmdldDoKKwkJCUNvbElkIG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJJCQgPSBsaXN0X21h a2UxKG1ha2VTdHJpbmcoJDEpKTsKKwkJCQkJaWYgKCQyKQorCQkJCQkJICAkJCA9IGxpc3RfY29u Y2F0KCQkLAorCQkJCQkJCQkJCSAgIGNoZWNrX2luZGlyZWN0aW9uKCQyLCB5eXNjYW5uZXIpKTsK KwkJCQl9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJCVFVRVJZOgpAQCAt MTc3OTksNiArMTc4NDIsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IExBUkdFX1AKIAkJ CXwgTEFTVF9QCiAJCQl8IExFQUtQUk9PRgorCQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElT VEVOCiAJCQl8IExPQUQKQEAgLTE4NDEyLDYgKzE4NDU2LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3Jk OgogCQkJfCBMRUFLUFJPT0YKIAkJCXwgTEVBU1QKIAkJCXwgTEVGVAorCQkJfCBMRVQKIAkJCXwg TEVWRUwKIAkJCXwgTElLRQogCQkJfCBMSVNURU4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCBi ZWU3ZDgzNDZhMy4uYjQ5NGM4ODVlOWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTU3Nyw2 ICs1NzcsMTEgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpw c3RhdGUsIE5vZGUgKmV4cHIpCiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwogCisJCWNh c2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6 CisJCQllcnJraW5kID0gdHJ1ZTsKKwkJCWJyZWFrOworCiAJCQkvKgogCQkJICogVGhlcmUgaXMg aW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCiAJCQkgKiBj b21waWxlciB3aWxsIHdhcm4gaWYgd2UgYWRkIGEgbmV3IFBhcnNlRXhwcktpbmQgd2l0aG91dApA QCAtOTY3LDYgKzk3MiwxMCBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpw c3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgog CQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RB UkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVlOwor CQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1 bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDg1 NzdmMjc4MDY1Li43M2JlMmE4ZTEwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0xOCw2 ICsxOCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5o IgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgpA QCAtMzQsMTggKzM1LDE5IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90 eXBlLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMu aCIKICNpbmNsdWRlICJ1dGlscy9qc29uYi5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5o IgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInV0aWxzL3R5cGNhY2hl LmgiCiAjaW5jbHVkZSAidXRpbHMveG1sLmgiCiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBib29s CQlUcmFuc2Zvcm1fbnVsbF9lcXVhbHMgPSBmYWxzZTsKIAotCiBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKTsKIHN0YXRpYyBO b2RlICp0cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVm KTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1BRXhwck9wKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9F eHByICphKTsKQEAgLTEwOCw2ICsxMTAsOSBAQCBzdGF0aWMgRXhwciAqbWFrZV9kaXN0aW5jdF9v cChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm9wbmFtZSwKIAkJCQkJCQkgIE5vZGUgKmx0cmVl LCBOb2RlICpydHJlZSwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0 X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRp c3RpbmN0YSwgTm9kZSAqYXJnKTsKK3N0YXRpYyBOb2RlICptYWtlUGFyYW1TZXNzaW9uVmFyaWFi bGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJICBPaWQgdmFyaWQsIE9pZCB0eXBpZCwg aW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAorCQkJCQkJCQkJICBjaGFyICphdHRybmFtZSwgaW50 IGxvY2F0aW9uKTsKIAogCiAvKgpAQCAtNTAxLDYgKzUwNiw4OSBAQCB0cmFuc2Zvcm1JbmRpcmVj dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBleHByZXNzaW9uIGtp bmQgaXMgdmFsaWQgZm9yIHNlc3Npb24gdmFyaWFibGVzCisgKiBTZXNzaW9uIHZhcmlhYmxlcyBj YW4gYmUgdXNlZCBldmVyeXdoZXJlIHdoZXJlIGV4dGVybmFsIHBhcmFtZXRlcnMgY2FuIGJlCisg KiB1c2VkLiBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQgaW4gRERMIGNvbW1hbmRz IG9yIGluIGNvbnN0cmFpbnRzLgorICoKKyAqIEFuIGlkZW50aWZpZXIgY2FuIGJlIHBhcnNlZCBh cyBhIHNlc3Npb24gdmFyaWFibGUgb25seSBmb3IgZXhwcmVzc2lvbiBraW5kcworICogd2hlcmUg c2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsbG93ZWQuIFRoaXMgaXMgdGhlIHByaW1hcnkgdXNhZ2Ug b2YgdGhpcworICogZnVuY3Rpb24uCisgKgorICogU2Vjb25kIHVzYWdlIG9mIHRoaXMgZnVuY3Rp b24gaXMgdG8gZGVjaWRlIHdoZXRoZXIgImNvbHVtbiBkb2VzIG5vdCBleGlzdCIgb3IKKyAqICJj b2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIGJl IHByaW50ZWQuCisgKiBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24g dmFyaWFibGVzIGNhbm5vdCBiZSB1c2VkLCB3ZSByYWlzZQorICogdGhlIGZpcnN0IGZvcm0gb2Yg ZXJyb3IgbWVzc2FnZS4KKyAqLworc3RhdGljIGJvb2wKK2V4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKK3sKKwlib29sCQlyZXN1bHQg PSBmYWxzZTsKKworCXN3aXRjaCAocF9leHByX2tpbmQpCisJeworCQljYXNlIEVYUFJfS0lORF9O T05FOgorCQkJQXNzZXJ0KGZhbHNlKTsJCS8qIGNhbid0IGhhcHBlbiAqLworCQkJcmV0dXJuIGZh bHNlOworCisJCQkvKiBhbGxvdyAqLworCQljYXNlIEVYUFJfS0lORF9PVEhFUjoKKwkJY2FzZSBF WFBSX0tJTkRfSk9JTl9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9TVUJTRUxFQ1Q6CisJCWNh c2UgRVhQUl9LSU5EX0ZST01fRlVOQ1RJT046CisJCWNhc2UgRVhQUl9LSU5EX1dIRVJFOgorCQlj YXNlIEVYUFJfS0lORF9IQVZJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0ZJTFRFUjoKKwkJY2FzZSBF WFBSX0tJTkRfV0lORE9XX1BBUlRJVElPTjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX09SREVS OgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUkFOR0U6CisJCWNhc2UgRVhQUl9LSU5E X1dJTkRPV19GUkFNRV9ST1dTOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfR1JPVVBT OgorCQljYXNlIEVYUFJfS0lORF9TRUxFQ1RfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9JTlNF UlRfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfU09VUkNFOgorCQljYXNlIEVYUFJf S0lORF9VUERBVEVfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9XSEVOOgorCQljYXNl IEVYUFJfS0lORF9NRVJHRV9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX0dST1VQX0JZOgor CQljYXNlIEVYUFJfS0lORF9PUkRFUl9CWToKKwkJY2FzZSBFWFBSX0tJTkRfRElTVElOQ1RfT046 CisJCWNhc2UgRVhQUl9LSU5EX0xJTUlUOgorCQljYXNlIEVYUFJfS0lORF9PRkZTRVQ6CisJCWNh c2UgRVhQUl9LSU5EX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgorCQljYXNl IEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgorCQljYXNlIEVYUFJfS0lORF9BTFRFUl9DT0xfVFJB TlNGT1JNOgorCQljYXNlIEVYUFJfS0lORF9FWEVDVVRFX1BBUkFNRVRFUjoKKwkJY2FzZSBFWFBS X0tJTkRfUE9MSUNZOgorCQljYXNlIEVYUFJfS0lORF9DQUxMX0FSR1VNRU5UOgorCQljYXNlIEVY UFJfS0lORF9DT1BZX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJcmVz dWx0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCisJCQkvKiBub3QgYWxsb3cgKi8KKwkJY2FzZSBFWFBS X0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKKwkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgor CQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJ T05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKKwkJY2FzZSBF WFBSX0tJTkRfSU5ERVhfUFJFRElDQVRFOgorCQljYXNlIEVYUFJfS0lORF9TVEFUU19FWFBSRVNT SU9OOgorCQljYXNlIEVYUFJfS0lORF9UUklHR0VSX1dIRU46CisJCWNhc2UgRVhQUl9LSU5EX1BB UlRJVElPTl9CT1VORDoKKwkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0VYUFJFU1NJT046CisJ CWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5f VVNJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FT U0lHTl9UQVJHRVQ6CisJCQlyZXN1bHQgPSBmYWxzZTsKKwkJCWJyZWFrOworCX0KKworCXJldHVy biByZXN1bHQ7Cit9CisKIC8qCiAgKiBUcmFuc2Zvcm0gYSBDb2x1bW5SZWYuCiAgKgpAQCAtNTc3 LDYgKzY2NSw4IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVt blJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKIAkJY2FzZSBFWFBSX0tJ TkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2Fz ZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoK IAkJCS8qIG9rYXkgKi8KIAkJCWJyZWFrOwogCkBAIC04NDgsNiArOTM4LDY0IEBAIHRyYW5zZm9y bUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOwogCX0KIAorCS8qCisJ ICogVGhlcmUgYXJlIGNvbnRleHRzIHdoZXJlIHNlc3Npb24ncyB2YXJpYWJsZXMgYXJlIG5vdCBh bGxvd2VkLiBUaGUKKwkgKiBxdWVzdGlvbiBpcyBpZiB3ZSB3YW50IHRvIGlkZW50aWZ5IHNlc3Np b24ncyB2YXJpYWJsZXMgaW4gdGhlc2UKKwkgKiBjb250ZXh0cz8gVGhlIGNvZGUgY2FuIGJlIG1v cmUgc2ltcGxlLCB3aGVuIHdlIGRvbid0IGRvIGl0LCBidXQgdGhlbiB3ZQorCSAqIGNhbm5vdCB0 byByYWlzZSBtYXliZSB1c2VmdWwgbWVzc2FnZSBsaWtlICJ5b3UgY2Fubm90IHRvIHVzZSBzZXNz aW9uCisJICogdmFyaWFibGVzIGhlcmUiLgorCSAqLworCWlmIChleHByX2tpbmRfYWxsb3dzX3Nl c3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCXsKKwkJT2lkCQkJdmFyaWQg PSBJbnZhbGlkT2lkOworCQljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJCWJvb2wJCW5vdF91 bmlxdWU7CisKKwkJLyoKKwkJICogU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHNoYWRvd2VkIGJ5IGNv bHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMgb3IKKwkJICogcm91dGluZSdzIGFyZ3VtZW50cy4g V2UgZG9uJ3Qgd2FudCB0byB1c2Ugc2Vzc2lvbiB2YXJpYWJsZQorCQkgKiB3aGVuIGl0IGlzIG5v dCBleGFjdGx5IHNoYWRvd2VkLCBidXQgUlRFIGxpa2UgdGhpcyBpcyB2YWxpZDoKKwkJICoKKwkJ ICogQ1JFQVRFIFRZUEUgVCBBUyAoYyBpbnQpOyBDUkVBVEUgVkFSSUFCTEUgZm9vIEFTIFQ7IENS RUFURSBUQUJMRQorCQkgKiBmb28oYSBpbnQsIGIgaW50KTsKKwkJICoKKwkJICogU0VMRUNUIGZv by5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CisJCSAqCisJCSAqIFRoaXMgY2FzZSBjYW4gYmUg bWVzc3kgYW5kIHRoZW4gd2UgZGlzYWxsb3cgaXQuIFdoZW4gd2Uga25vdyB0aGF0IGEKKwkJICog cG9zc2libGUgdmFyaWFibGUgd2lsbCBiZSBzaGFkb3dlZCwgd2UgZG9uJ3QgdHJ5IHRvIGlkZW50 aWZ5CisJCSAqIHZhcmlhYmxlLgorCQkgKi8KKwkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBj cmVyciA9PSBDUkVSUl9OT19DT0xVTU4pKQorCQl7CisJCQkvKgorCQkJICogVGhlIEFjY2Vzc1No YXJlTG9jayBpcyBjcmVhdGVkIG9uIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZS4gVGhlCisJCQkg KiBsb2NrIHdpbGwgYmUga2VwdCBmb3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLgorCQkJICovCisJ CQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUsICZub3Rf dW5pcXVlLCBmYWxzZSk7CisKKwkJCWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCXsKKwkJCQlP aWQJCQl0eXBpZDsKKwkJCQlpbnQzMgkJdHlwbW9kOworCQkJCU9pZAkJCWNvbGxpZDsKKworCQkJ CWlmIChub3RfdW5pcXVlKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJp YWJsZSByZWZlcmVuY2UgXCIlc1wiIGlzIGFtYmlndW91cyIsCisJCQkJCQkJCQlOYW1lTGlzdFRv U3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBjcmVmLT5sb2NhdGlvbikpKTsKKworCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlw bW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJCQkJCQkmY29sbGlk KTsKKworCQkJCW5vZGUgPSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRlLAorCQkJCQkJ CQkJCQkJdmFyaWQsIHR5cGlkLCB0eXBtb2QsIGNvbGxpZCwKKwkJCQkJCQkJCQkJCWF0dHJuYW1l LCBjcmVmLT5sb2NhdGlvbik7CisJCQl9CisJCX0KKwl9CisKIAkvKgogCSAqIFRocm93IGVycm9y IGlmIG5vIHRyYW5zbGF0aW9uIGZvdW5kLgogCSAqLwpAQCAtODgyLDYgKzEwMzAsNzIgQEAgdHJh bnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCXJl dHVybiBub2RlOwogfQogCisvKgorICogR2VuZXJhdGUgcGFyYW0gdmFyaWFibGUgZm9yIHJlZmVy ZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBOb2RlICoKK21ha2VQYXJhbVNl c3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkgT2lkIHZhcmlkLCBPaWQg dHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJCSBjaGFyICphdHRybmFtZSwg aW50IGxvY2F0aW9uKQoreworCVBhcmFtCSAgICpwYXJhbTsKKworCXBhcmFtID0gbWFrZU5vZGUo UGFyYW0pOworCisJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCXBhcmFtLT5w YXJhbXZhcmlkID0gdmFyaWQ7CisJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCXBhcmFtLT5w YXJhbXR5cG1vZCA9IHR5cG1vZDsKKwlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xsaWQ7CisKKwlw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwlpZiAoYXR0cm5hbWUgIT0g TlVMTCkKKwl7CisJCVR1cGxlRGVzYwl0dXBkZXNjOworCQlpbnQJCQlpOworCisJCXR1cGRlc2Mg PSBsb29rdXBfcm93dHlwZV90dXBkZXNjX25vZXJyb3IodHlwaWQsIHR5cG1vZCwgdHJ1ZSk7CisJ CWlmICghdHVwZGVzYykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf V1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMg b2YgdHlwZSBcIiVzXCIsIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCQln ZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSks CisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0 X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0 aW9uKSkpOworCisJCWZvciAoaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQorCQl7CisJ CQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpOworCisJ CQlpZiAoc3RyY21wKGF0dHJuYW1lLCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpID09IDAgJiYKKwkJ CQkhYXR0LT5hdHRpc2Ryb3BwZWQpCisJCQl7CisJCQkJLyogU3VjY2Vzcywgc28gZ2VuZXJhdGUg YSBGaWVsZFNlbGVjdCBleHByZXNzaW9uICovCisJCQkJRmllbGRTZWxlY3QgKmZzZWxlY3QgPSBt YWtlTm9kZShGaWVsZFNlbGVjdCk7CisKKwkJCQlmc2VsZWN0LT5hcmcgPSAoRXhwciAqKSBwYXJh bTsKKwkJCQlmc2VsZWN0LT5maWVsZG51bSA9IGkgKyAxOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5 cGUgPSBhdHQtPmF0dHR5cGlkOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cG1vZCA9IGF0dC0+YXR0 dHlwbW9kOworCQkJCS8qIHNhdmUgYXR0cmlidXRlJ3MgY29sbGF0aW9uIGZvciBwYXJzZV9jb2xs YXRlLmMgKi8KKwkJCQlmc2VsZWN0LT5yZXN1bHRjb2xsaWQgPSBhdHQtPmF0dGNvbGxhdGlvbjsK KworCQkJCVJlbGVhc2VUdXBsZURlc2ModHVwZGVzYyk7CisJCQkJcmV0dXJuIChOb2RlICopIGZz ZWxlY3Q7CisJCQl9CisJCX0KKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGNv bHVtbiBcIiVzXCIgaW4gdmFyaWFibGUiLCBhdHRybmFtZSksCisJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCX0KKworCXJldHVybiAoTm9kZSAqKSBwYXJhbTsK K30KKwogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAqcHN0YXRl LCBQYXJhbVJlZiAqcHJlZikKIHsKQEAgLTE4MTYsNiArMjAzMCw3IEBAIHRyYW5zZm9ybVN1Ykxp bmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lO RF9WQUxVRVM6CiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CiAJCWNhc2UgRVhQUl9L SU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQkvKiBva2F5 ICovCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKQEAgLTE4 NTksNiArMjA3NCw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJM aW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQkJZXJy ID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9u Iik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCWVyciA9 IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgYXMgdGFyZ2V0IG9mIGFzc2lnbiBzdGF0ZW1lbnQiKTsK KwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZh dWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0zMTk2LDYgKzM0MTQsMTAgQEAgUGFyc2VF eHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJCXJldHVybiAiR0VORVJBVEVE IEFTIjsKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCXJldHVybiAiQ1lDTEUiOwor CQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJcmV0dXJuICJBU1NJR04iOworCQlj YXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJcmV0dXJuICJMRVQiOwogCiAJCQkvKgogCQkJ ICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQg dGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA5YjIzMzQ0YTNiMS4uOWFhNGY2MDc2OGIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjY1Niw2ICsyNjU2LDggQEAgY2hlY2tfc3Jm X2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBs b2NhdGlvbikKIAkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxs b3dlZCBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7CiAJCWNh c2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6 CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJy ZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYyBiL3NyYy9iYWNrZW5k L3Rjb3AvZGVzdC5jCmluZGV4IDk2ZjgwYjMwNDYzLi5kYWM3OGJhNWNjZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKQEAg LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRl ICJleGVjdXRvci90cXVldWUuaCIKICNpbmNsdWRlICJleGVjdXRvci90c3RvcmVSZWNlaXZlci5o IgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAibGli cHEvbGlicHEuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgogCkBAIC0xNTUsNiArMTU2 LDkgQEAgQ3JlYXRlRGVzdFJlY2VpdmVyKENvbW1hbmREZXN0IGRlc3QpCiAKIAkJY2FzZSBEZXN0 RXhwbGFpblNlcmlhbGl6ZToKIAkJCXJldHVybiBDcmVhdGVFeHBsYWluU2VyaWFsaXplRGVzdFJl Y2VpdmVyKE5VTEwpOworCisJCWNhc2UgRGVzdFZhcmlhYmxlOgorCQkJcmV0dXJuIENyZWF0ZVZh cmlhYmxlRGVzdFJlY2VpdmVyKEludmFsaWRPaWQpOwogCX0KIAogCS8qIHNob3VsZCBuZXZlciBn ZXQgaGVyZSAqLwpAQCAtMTkxLDYgKzE5NSw3IEBAIEVuZENvbW1hbmQoY29uc3QgUXVlcnlDb21w bGV0aW9uICpxYywgQ29tbWFuZERlc3QgZGVzdCwgYm9vbCBmb3JjZV91bmRlY29yYXRlZF9vCiAJ CWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBE ZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9 CiB9CkBAIC0yMzcsNiArMjQyLDcgQEAgTnVsbENvbW1hbmQoQ29tbWFuZERlc3QgZGVzdCkKIAkJ Y2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERl c3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0K IH0KQEAgLTI4MSw2ICsyODcsNyBAQCBSZWFkeUZvclF1ZXJ5KENvbW1hbmREZXN0IGRlc3QpCiAJ CWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBE ZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9 CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jIGIvc3JjL2JhY2tlbmQv dGNvcC9wcXVlcnkuYwppbmRleCAwYzQ1ZmNmMzE4Zi4uODViODA5Y2IwNzEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnku YwpAQCAtODYsNiArODYsOSBAQCBDcmVhdGVRdWVyeURlc2MoUGxhbm5lZFN0bXQgKnBsYW5uZWRz dG10LAogCXFkLT5xdWVyeUVudiA9IHF1ZXJ5RW52OwogCXFkLT5pbnN0cnVtZW50X29wdGlvbnMg PSBpbnN0cnVtZW50X29wdGlvbnM7CS8qIGluc3RydW1lbnRhdGlvbiB3YW50ZWQ/ICovCiAKKwlx ZC0+bnVtX3Nlc3Npb25fdmFyaWFibGVzID0gMDsKKwlxZC0+c2Vzc2lvbl92YXJpYWJsZXMgPSBO VUxMOworCiAJLyogbnVsbCB0aGVzZSBmaWVsZHMgdW50aWwgc2V0IGJ5IEV4ZWN1dG9yU3RhcnQg Ki8KIAlxZC0+dHVwRGVzYyA9IE5VTEw7CiAJcWQtPmVzdGF0ZSA9IE5VTEw7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CmluZGV4IGNlOGRiN2NkYTQzLi42NjJkYmNkMWRkNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTQ5LDYg KzQ5LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgpAQCAtMjM1LDYgKzIzNiw3IEBAIENsYXNzaWZ5VXRp bGl0eUNvbW1hbmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkKIAogCQljYXNlIFRfQ2FsbFN0 bXQ6CiAJCWNhc2UgVF9Eb1N0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJewogCQkJCS8qCiAJ CQkJICogQ29tbWFuZHMgaW5zaWRlIHRoZSBETyBibG9jayBvciB0aGUgY2FsbGVkIHByb2NlZHVy ZSBtaWdodApAQCAtMTA2NCw2ICsxMDY2LDExIEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBs YW5uZWRTdG10ICpwc3RtdCwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfTGV0U3RtdDoK KwkJCUV4ZWN1dGVMZXRTdG10KHBzdGF0ZSwgKExldFN0bXQgKikgcGFyc2V0cmVlLCBwYXJhbXMs CisJCQkJCQkgICBxdWVyeUVudiwgcWMpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCS8q IEFsbCBvdGhlciBzdGF0ZW1lbnQgdHlwZXMgaGF2ZSBldmVudCB0cmlnZ2VyIHN1cHBvcnQgKi8K IAkJCVByb2Nlc3NVdGlsaXR5U2xvdyhwc3RhdGUsIHBzdG10LCBxdWVyeVN0cmluZywKQEAgLTIy MDMsNiArMjIxMCwxMCBAQCBVdGlsaXR5Q29udGFpbnNRdWVyeShOb2RlICpwYXJzZXRyZWUpCiAJ CQkJcmV0dXJuIFV0aWxpdHlDb250YWluc1F1ZXJ5KHFyeS0+dXRpbGl0eVN0bXQpOwogCQkJcmV0 dXJuIHFyeTsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXFyeSA9IGNhc3ROb2RlKFF1ZXJ5LCAo KExldFN0bXQgKikgcGFyc2V0cmVlKS0+cXVlcnkpOworCQkJcmV0dXJuIHFyeTsKKwogCQlkZWZh dWx0OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtMjQwMSw2ICsyNDEyLDEwIEBAIENyZWF0ZUNv bW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJdGFnID0gQ01EVEFHX1NFTEVDVDsKIAkJCWJy ZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJdGFnID0gQ01EVEFHX0xFVDsKKwkJCWJyZWFr OworCiAJCQkvKiB1dGlsaXR5IHN0YXRlbWVudHMgLS0tIHNhbWUgd2hldGhlciByYXcgb3IgY29v a2VkICovCiAJCWNhc2UgVF9UcmFuc2FjdGlvblN0bXQ6CiAJCQl7CkBAIC0zMjg2LDYgKzMzMDEs NyBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJYnJlYWs7CiAKIAkJ Y2FzZSBUX1BMQXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlsZXYgPSBMT0dTVE1U X0FMTDsKIAkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggNjUzNjg1 YmZmYzUuLmEwZWRkNWUwNDkzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0zNyw2 ICszNyw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdGF0aXN0aWNfZXh0LmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJl bS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjb21tb24v a2V5d29yZHMuaCIKQEAgLTUxOSw2ICs1MjAsNyBAQCBzdGF0aWMgY2hhciAqZ2VuZXJhdGVfZnVu Y3Rpb25fbmFtZShPaWQgZnVuY2lkLCBpbnQgbmFyZ3MsCiBzdGF0aWMgY2hhciAqZ2VuZXJhdGVf b3BlcmF0b3JfbmFtZShPaWQgb3BlcmlkLCBPaWQgYXJnMSwgT2lkIGFyZzIpOwogc3RhdGljIHZv aWQgYWRkX2Nhc3RfdG8oU3RyaW5nSW5mbyBidWYsIE9pZCB0eXBpZCk7CiBzdGF0aWMgY2hhciAq Z2VuZXJhdGVfcXVhbGlmaWVkX3R5cGVfbmFtZShPaWQgdHlwaWQpOworc3RhdGljIGNoYXIgKmdl bmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpOwogc3RhdGljIHRleHQgKnN0 cmluZ190b190ZXh0KGNoYXIgKnN0cik7CiBzdGF0aWMgY2hhciAqZmxhdHRlbl9yZWxvcHRpb25z KE9pZCByZWxpZCk7CiBzdGF0aWMgdm9pZCBnZXRfcmVsb3B0aW9ucyhTdHJpbmdJbmZvIGJ1Ziwg RGF0dW0gcmVsb3B0aW9ucyk7CkBAIC04MzUxLDYgKzgzNTMsMTQgQEAgZ2V0X3BhcmFtZXRlcihQ YXJhbSAqcGFyYW0sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAkJcmV0dXJuOwogCX0KIAor CS8qIHRyYW5zbGF0ZSBwYXJhbXZhcmlkIHRvIHNlc3Npb24gdmFyaWFibGUgbmFtZSAqLworCWlm IChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJYXBwZW5kU3RyaW5n SW5mbyhjb250ZXh0LT5idWYsICIlcyIsCisJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCXJldHVybjsKKwl9CisKIAkvKgogCSAqIEFs dGVybmF0aXZlbHksIG1heWJlIGl0J3MgYSBzdWJwbGFuIG91dHB1dCwgd2hpY2ggd2UgcHJpbnQg YXMgYQogCSAqIHJlZmVyZW5jZSB0byB0aGUgc3VicGxhbi4gIChXZSBjb3VsZCBkcmlsbCBkb3du IGludG8gdGhlIHN1YnBsYW4gYW5kCkBAIC0xMzEzMSw2ICsxMzE0MSw0MiBAQCBnZW5lcmF0ZV9j b2xsYXRpb25fbmFtZShPaWQgY29sbGlkKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBn ZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUKKyAqCQlDb21wdXRlIHRoZSBuYW1lIHRvIGRp c3BsYXkgZm9yIGEgc2Vzc2lvbiB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgT0lECisgKgorICogVGhl IHJlc3VsdCBpbmNsdWRlcyBhbGwgbmVjZXNzYXJ5IHF1b3RpbmcgYW5kIHNjaGVtYS1wcmVmaXhp bmcuCisgKi8KK3N0YXRpYyBjaGFyICoKK2dlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShP aWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07 CisJY2hhcgkgICAqdmFybmFtZTsKKwljaGFyCSAgICpuc3BuYW1lOworCWNoYXIJICAgKnJlc3Vs dDsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1 bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1Is ICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZv cm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lID0gTmFt ZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKworCWlmICghVmFyaWFibGVJc1Zpc2libGUodmFyaWQp KQorCQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAodmFyZm9ybS0+dmFybmFt ZXNwYWNlKTsKKwllbHNlCisJCW5zcG5hbWUgPSBOVUxMOworCisJcmVzdWx0ID0gcXVvdGVfcXVh bGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwgdmFybmFtZSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUo dHVwKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBHaXZlbiBhIEMgc3RyaW5nLCBw cm9kdWNlIGEgVEVYVCBkYXR1bS4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9wbGFuY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmlu ZGV4IDVhZjFhMTY4ZWMyLi45MjI4NGY3N2M3OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNh Y2hlLmMKQEAgLTU4LDYgKzU4LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKQEAgLTE2Miw2ICsxNjMsNyBAQCBJ bml0UGxhbkNhY2hlKHZvaWQpCiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQU1PUE9Q SUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNj YWNoZUNhbGxiYWNrKEZPUkVJR05TRVJWRVJPSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0 dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05EQVRBV1JBUFBF Uk9JRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CisJQ2FjaGVSZWdpc3RlclN5 c2NhY2hlQ2FsbGJhY2soVkFSSUFCTEVPSUQsIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrLCAoRGF0 dW0pIDApOwogfQogCiAvKgpAQCAtMTkwMywxOCArMTkwNSwzMyBAQCBTY2FuUXVlcnlGb3JMb2Nr cyhRdWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVpcmUpCiAKIAkvKgogCSAqIFJlY3Vyc2UgaW50 byBzdWJsaW5rIHN1YnF1ZXJpZXMsIHRvby4gIEJ1dCB3ZSBhbHJlYWR5IGRpZCB0aGUgb25lcyBp bgotCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuCisJICogdGhlIHJ0YWJsZSBhbmQgY3RlTGlz dC4gV2UgbmVlZCB0byBmb3JjZSByZWN1cnNpdmUgY2FsbCBmb3Igc2Vzc2lvbgorCSAqIHZhcmlh YmxlcyB0b28sIHRvIGZpbmQgYW5kIGxvY2sgdmFyaWFibGVzIHVzZWQgaW4gcXVlcnkgKHNlZQor CSAqIFNjYW5RdWVyeVdhbGtlcikuCiAJICovCi0JaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3Mp CisJaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3MgfHwKKwkJcGFyc2V0cmVlLT5oYXNTZXNzaW9u VmFyaWFibGVzKQogCXsKIAkJcXVlcnlfdHJlZV93YWxrZXIocGFyc2V0cmVlLCBTY2FuUXVlcnlX YWxrZXIsCiAJCQkJCQkgICh2b2lkICopICZhY3F1aXJlLAogCQkJCQkJICBRVFdfSUdOT1JFX1JD X1NVQlFVRVJJRVMpOwogCX0KKworCS8qIFByb2Nlc3Mgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlp ZiAoT2lkSXNWYWxpZChwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlKSkKKwl7CisJCWlmIChhY3F1 aXJlKQorCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVl LT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJCQkgICAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQllbHNl CisJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+ cmVzdWx0VmFyaWFibGUsCisJCQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2spOworCX0KIH0KIAog LyoKLSAqIFdhbGtlciB0byBmaW5kIHN1Ymxpbmsgc3VicXVlcmllcyBmb3IgU2NhblF1ZXJ5Rm9y TG9ja3MKKyAqIFdhbGtlciB0byBmaW5kIHN1Ymxpbmsgc3VicXVlcmllcyBvciByZWZlcmVuY2Vk IHNlc3Npb24gdmFyaWFibGVzCisgKiBmb3IgU2NhblF1ZXJ5Rm9yTG9ja3MKICAqLwogc3RhdGlj IGJvb2wKIFNjYW5RdWVyeVdhbGtlcihOb2RlICpub2RlLCBib29sICphY3F1aXJlKQpAQCAtMTky OSw2ICsxOTQ2LDIwIEBAIFNjYW5RdWVyeVdhbGtlcihOb2RlICpub2RlLCBib29sICphY3F1aXJl KQogCQlTY2FuUXVlcnlGb3JMb2NrcyhjYXN0Tm9kZShRdWVyeSwgc3ViLT5zdWJzZWxlY3QpLCAq YWNxdWlyZSk7CiAJCS8qIEZhbGwgdGhyb3VnaCB0byBwcm9jZXNzIGxlZnRoYW5kIGFyZ3Mgb2Yg U3ViTGluayAqLwogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0J ICAgKnAgPSAoUGFyYW0gKikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZB UklBQkxFKQorCQl7CisJCQlpZiAoYWNxdWlyZSkKKwkJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFy aWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkgICAwLCBBY2Nlc3NTaGFy ZUxvY2spOworCQkJZWxzZQorCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRp b25JZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQl9 CisJfQogCiAJLyoKIAkgKiBEbyBOT1QgcmVjdXJzZSBpbnRvIFF1ZXJ5IG5vZGVzLCBiZWNhdXNl IFNjYW5RdWVyeUZvckxvY2tzIGFscmVhZHkKQEAgLTIwNjAsNyArMjA5MSw5IEBAIFBsYW5DYWNo ZVJlbENhbGxiYWNrKERhdHVtIGFyZywgT2lkIHJlbGlkKQogCiAvKgogICogUGxhbkNhY2hlT2Jq ZWN0Q2FsbGJhY2sKLSAqCQlTeXNjYWNoZSBpbnZhbCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgUFJP Q09JRCBhbmQgVFlQRU9JRCBjYWNoZXMKKyAqCQlTeXNjYWNoZSBpbnZhbCBjYWxsYmFjayBmdW5j dGlvbiBmb3IgVFlQRU9JRCwgUFJPQ09JRCwgTkFNRVNQQUNFT0lELAorICogT1BFUk9JRCwgQU1P UE9QSUQsIEZPUkVJR05TRVJWRVJPSUQsIEZPUkVJR05EQVRBV1JBUFBFUk9JRCBhbmQgVkFSSUFC TEVPSUQKKyAqIGNhY2hlcy4KICAqCiAgKiBJbnZhbGlkYXRlIGFsbCBwbGFucyBtZW50aW9uaW5n IHRoZSBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGhhc2ggdmFsdWUsCiAgKiBvciBhbGwgcGxh bnMgbWVudGlvbmluZyBhbnkgbWVtYmVyIG9mIHRoaXMgY2FjaGUgaWYgaGFzaHZhbHVlID09IDAu CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2ZtZ3IvZm1nci5jCmluZGV4IGU0OGE4NmJlNTRiLi5lYWFlMGM1YTkzMyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvZm1nci9mbWdyLmMKQEAgLTIwMjYsOSArMjAyNiwxMyBAQCBnZXRfY2FsbF9leHByX2FyZ19z dGFibGUoTm9kZSAqZXhwciwgaW50IGFyZ251bSkKIAkgKi8KIAlpZiAoSXNBKGFyZywgQ29uc3Qp KQogCQlyZXR1cm4gdHJ1ZTsKLQlpZiAoSXNBKGFyZywgUGFyYW0pICYmCi0JCSgoUGFyYW0gKikg YXJnKS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKLQkJcmV0dXJuIHRydWU7CisJaWYgKElz QShhcmcsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIGFyZzsKKworCQlp ZiAocC0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTiB8fCBwLT5wYXJhbWtpbmQgPT0gUEFSQU1f VkFSSUFCTEUpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CiAKIAlyZXR1cm4gZmFsc2U7CiB9CmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMKaW5kZXggOWE3ODg1NTZlOTQuLjdlMDZhMzczMDMxIDEwMDY0NAotLS0gYS9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CkBAIC0xNzA5LDggKzE3MDksOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwg aW50IHN0YXJ0LCBpbnQgZW5kKQogCQkiQUJPUlQiLCAiQUxURVIiLCAiQU5BTFlaRSIsICJCRUdJ TiIsICJDQUxMIiwgIkNIRUNLUE9JTlQiLCAiQ0xPU0UiLCAiQ0xVU1RFUiIsCiAJCSJDT01NRU5U IiwgIkNPTU1JVCIsICJDT1BZIiwgIkNSRUFURSIsICJERUFMTE9DQVRFIiwgIkRFQ0xBUkUiLAog CQkiREVMRVRFIEZST00iLCAiRElTQ0FSRCIsICJETyIsICJEUk9QIiwgIkVORCIsICJFWEVDVVRF IiwgIkVYUExBSU4iLAotCQkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1B IiwgIklOU0VSVCBJTlRPIiwgIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLAotCQkiTUVSR0UgSU5U TyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwKKwkJIkZFVENIIiwgIkdSQU5UIiwgIklN UE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQgSU5UTyIsICJMRVQiLAorCQkiTElTVEVOIiwg IkxPQUQiLCAiTE9DSyIsICJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUi LAogCQkiUkVBU1NJR04iLCAiUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyIsICJSRUlOREVYIiwg IlJFTEVBU0UiLAogCQkiUkVTRVQiLCAiUkVWT0tFIiwgIlJPTExCQUNLIiwKIAkJIlNBVkVQT0lO VCIsICJTRUNVUklUWSBMQUJFTCIsICJTRUxFQ1QiLCAiU0VUIiwgIlNIT1ciLCAiU1RBUlQiLApA QCAtNDI4OCw2ICs0Mjg4LDE0IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBp bnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBTFVFUyIpICYmICFU YWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxVRVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwog CisvKiBMRVQgKi8KKwkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdnZXN0IGEgbGlzdCBvZiB2 YXJpYWJsZXMgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwkJQ09NUExFVEVfV0lUSF9T Q0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwkvKiBDb21wbGV0ZSBM RVQgPHZhcmlhYmxlPiB3aXRoICI9IiAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBN YXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIj0iKTsKKwogLyogTE9DSyAqLwogCS8qIENvbXBs ZXRlIExPQ0sgW1RBQkxFXSBbT05MWV0gd2l0aCBhIGxpc3Qgb2YgdGFibGVzICovCiAJZWxzZSBp ZiAoTWF0Y2hlcygiTE9DSyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1l c3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5kZXggNDE3MmIwY2Qy NjguLjg1NWNhNTMwOTY0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFj ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTE3MSw3ICsxNzEs OSBAQCBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBhdGhNYXRjaGVyKE1lbW9y eUNvbnRleHQgY29udGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkNvcHlTZWFyY2hQ YXRoTWF0Y2hlcihTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gYm9vbCBTZWFyY2hQ YXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiAK K2V4dGVybiBMaXN0ICpOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKTsKIGV4dGVybiBPaWQJTG9v a3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hhciAqdmFybmFtZSwgYm9v bCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJSWRlbnRpZnlWYXJpYWJsZShMaXN0ICpuYW1lcywg Y2hhciAqKmF0dHJuYW1lLCBib29sICpub3RfdW5pcXVlLCBib29sIG5vZXJyb3IpOwogCiBleHRl cm4gT2lkCWdldF9jb2xsYXRpb25fb2lkKExpc3QgKmNvbGxuYW1lLCBib29sIG1pc3Npbmdfb2sp OwogZXh0ZXJuIE9pZAlnZXRfY29udmVyc2lvbl9vaWQoTGlzdCAqY29ubmFtZSwgYm9vbCBtaXNz aW5nX29rKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCAxMGZiYTgwNTg0Ny4uMWY0 MTEyNzkwYWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTI2LDYgKzI2LDEwIEBA CiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkJcGdfdmFyaWFibGUgZGVmaW5pdGlvbi4gIGNwcCB0 dXJucyB0aGlzIGludG8KICAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ192YXJpYWJsZQor ICoKKyAqIFRoZSBjb2x1bW4gdmFyY3JlYXRlX2xzbiBvZiBYbG9nUmVjUHRyIHR5cGUgKDgtYnl0 ZSkgc2hvdWxkIGJlIG9uIHBvc2l0aW9uCisgKiBkaXZpc2libGUgYnkgOCB1bmNvbmRpdGlvbmFs bHkgYW5kIGJlZm9yZSB2YXJuYW1lIGNvbHVtbiBvZiBOYW1lRGF0YSB0eXBlLgorICogc2VlIHNh bml0eV9jaGVjazpjaGVja19jb2x1bW5zCiAgKiAtLS0tLS0tLS0tLS0tLS0tCiAgKi8KIENBVEFM T0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCkBAIC0zNSw2ICszOSw5IEBA IENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogT0lEIG9m IGVudHJ5IGluIHBnX3R5cGUgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCU9pZAkJCXZhcnR5cGUg QktJX0xPT0tVUChwZ190eXBlKTsKIAorCS8qIHVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQs IGNyZWF0ZV9sc25dICovCisJWExvZ1JlY1B0cgl2YXJjcmVhdGVfbHNuOworCiAJLyogdmFyaWFi bGUgbmFtZSAqLwogCU5hbWVEYXRhCXZhcm5hbWU7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjNm MDNjNjU4MjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgKQEAgLTAsMCArMSwzMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog c2Vzc2lvbnZhcmlhYmxlLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc2Vzc2lvbnZhcmlhYmxlLmMu CisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0 LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworCisjaWZuZGVmIFNFU1NJT05WQVJJQUJMRV9ICisjZGVmaW5lIFNFU1NJT05WQVJJQUJM RV9ICisKKyNpbmNsdWRlICJub2Rlcy9wYXJhbXMuaCIKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5v ZGVzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKyNpbmNsdWRlICJ0Y29wL2Nt ZHRhZy5oIgorI2luY2x1ZGUgInV0aWxzL3F1ZXJ5ZW52aXJvbm1lbnQuaCIKKworZXh0ZXJuIHZv aWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxs KTsKK2V4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2 YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKK2V4dGVybiBEYXR1bSBHZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlwaWQpOworZXh0ZXJuIERh dHVtIEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2soT2lkIHZhcmlkLCBib29sICppc051 bGwsIE9pZCBleHBlY3RlZF90eXBpZCk7CisKK2V4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCisJ CQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpxYyk7 CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCBi L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKaW5kZXggMGE3Mjc0ZTI2YzguLmQxYjJm NTllMGNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oCisrKyBi L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKQEAgLTQ4LDYgKzQ4LDEwIEBAIHR5cGVk ZWYgc3RydWN0IFF1ZXJ5RGVzYwogCUVTdGF0ZQkgICAqZXN0YXRlOwkJCS8qIGV4ZWN1dG9yJ3Mg cXVlcnktd2lkZSBzdGF0ZSAqLwogCVBsYW5TdGF0ZSAgKnBsYW5zdGF0ZTsJCS8qIHRyZWUgb2Yg cGVyLXBsYW4tbm9kZSBzdGF0ZSAqLwogCisJLyogcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFi bGVzIGJ1ZmZlciAqLworCWludAkJCW51bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwlTZXNzaW9uVmFy aWFibGVWYWx1ZSAqc2Vzc2lvbl92YXJpYWJsZXM7CisKIAkvKiBUaGlzIGZpZWxkIGlzIHNldCBi eSBFeGVjdXRvclJ1biAqLwogCWJvb2wJCWFscmVhZHlfZXhlY3V0ZWQ7CS8qIHRydWUgaWYgcHJl dmlvdXNseSBleGVjdXRlZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9z dmFyaWFibGVSZWNlaXZlci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2 ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGI0NGQ4Yjk0YzYK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZl ci5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2YXJpYWJs ZVJlY2VpdmVyLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoK KyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVn ZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUv ZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICov CisKKyNpZm5kZWYgU1ZBUklBQkxFX1JFQ0VJVkVSX0gKKyNkZWZpbmUgU1ZBUklBQkxFX1JFQ0VJ VkVSX0gKKworI2luY2x1ZGUgInRjb3AvZGVzdC5oIgorCitleHRlcm4gRGVzdFJlY2VpdmVyICpD cmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpOworCisjZW5kaWYJCQkJCQkJLyog U1ZBUklBQkxFX1JFQ0VJVkVSX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4 ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggY2FjNjg0ZDli M2EuLmJlYzdiMDQzZGEzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNjA5LDYgKzYwOSwxOCBA QCB0eXBlZGVmIHN0cnVjdCBBc3luY1JlcXVlc3QKIAkJCQkJCQkJICogdHVwbGVzKSAqLwogfSBB c3luY1JlcXVlc3Q7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqIFNlc3Npb25WYXJpYWJsZVZh bHVlCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IFNlc3Npb25WYXJp YWJsZVZhbHVlCit7CisJT2lkCQkJdmFyaWQ7CisJT2lkCQkJdHlwaWQ7CisJYm9vbAkJaXNudWxs OworCURhdHVtCQl2YWx1ZTsKK30gU2Vzc2lvblZhcmlhYmxlVmFsdWU7CisKIC8qIC0tLS0tLS0t LS0tLS0tLS0KICAqCSAgRVN0YXRlIGluZm9ybWF0aW9uCiAgKgpAQCAtNjYxLDYgKzY3MywxMyBA QCB0eXBlZGVmIHN0cnVjdCBFU3RhdGUKIAlQYXJhbUxpc3RJbmZvIGVzX3BhcmFtX2xpc3RfaW5m bzsJLyogdmFsdWVzIG9mIGV4dGVybmFsIHBhcmFtcyAqLwogCVBhcmFtRXhlY0RhdGEgKmVzX3Bh cmFtX2V4ZWNfdmFsczsJLyogdmFsdWVzIG9mIGludGVybmFsIHBhcmFtcyAqLwogCisJLyogVmFy aWFibGVzIGluZm86ICovCisJLyogbnVtYmVyIG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8K KwlpbnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisKKwkvKiBhcnJheSBvZiBjb3BpZWQg dmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzICovCisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVz X3Nlc3Npb25fdmFyaWFibGVzOworCiAJUXVlcnlFbnZpcm9ubWVudCAqZXNfcXVlcnlFbnY7CS8q IHF1ZXJ5IGVudmlyb25tZW50ICovCiAKIAkvKiBPdGhlciB3b3JraW5nIHN0YXRlOiAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDgwZWE1OTI4ZWVmLi43NGJmNWFmNzc2NiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJ ICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOwogCisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlPaWQJCQly ZXN1bHRWYXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhhdmluZ1F1 YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK IAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMTYwLDYgKzE2Myw4IEBA IHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJYm9vbAkJaGFzRm9yVXBkYXRlIHBnX25vZGVfYXR0cihx dWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiByZXdyaXRlciBoYXMgYXBwbGllZCBzb21lIFJMUyBw b2xpY3kgKi8KIAlib29sCQloYXNSb3dTZWN1cml0eSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxl X2lnbm9yZSk7CisJLyogdXNlcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWJvb2wJCWhhc1Nlc3Np b25WYXJpYWJsZXMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGlzIGEg UkVUVVJOIHN0YXRlbWVudCAqLwogCWJvb2wJCWlzUmV0dXJuIHBnX25vZGVfYXR0cihxdWVyeV9q dW1ibGVfaWdub3JlKTsKIApAQCAtMjA5NSw2ICsyMTAwLDE4IEBAIHR5cGVkZWYgc3RydWN0IE1l cmdlU3RtdAogCVdpdGhDbGF1c2UgKndpdGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLwogfSBN ZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlMZXQgU3RhdGVtZW50 CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IExldFN0bXQK K3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnRhcmdldDsJCQkvKiB0YXJnZXQgdmFyaWFi bGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3VyY2UgZXhwcmVzc2lvbiAqLworCWludAkJ CWxvY2F0aW9uOworfSBMZXRTdG10OworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJ U2VsZWN0IFN0YXRlbWVudAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhu b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggMTRjY2ZjMWFjMWMu LmMxNjM4NTUxMmZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaApAQCAtMTYzLDYgKzE2Myw5IEBAIHR5 cGVkZWYgc3RydWN0IFBsYW5uZXJHbG9iYWwKIAogCS8qIHBhcnRpdGlvbiBkZXNjcmlwdG9ycyAq LwogCVBhcnRpdGlvbkRpcmVjdG9yeSBwYXJ0aXRpb25fZGlyZWN0b3J5IHBnX25vZGVfYXR0cihy ZWFkX3dyaXRlX2lnbm9yZSk7CisKKwkvKiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMg Ki8KKwlMaXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwogfSBQbGFubmVyR2xvYmFsOwogCiAvKiBt YWNybyBmb3IgZmV0Y2hpbmcgdGhlIFBsYW4gYXNzb2NpYXRlZCB3aXRoIGEgU3ViUGxhbiBub2Rl ICovCkBAIC01MDgsNiArNTExLDggQEAgc3RydWN0IFBsYW5uZXJJbmZvCiAJYm9vbAkJcGxhY2Vo b2xkZXJzRnJvemVuOwogCS8qIHRydWUgaWYgcGxhbm5pbmcgYSByZWN1cnNpdmUgV0lUSCBpdGVt ICovCiAJYm9vbAkJaGFzUmVjdXJzaW9uOworCS8qIHRydWUgaWYgc2Vzc2lvbiB2YXJpYWJsZXMg d2VyZSB1c2VkICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCS8qCiAJICogSW5m b3JtYXRpb24gYWJvdXQgYWdncmVnYXRlcy4gRmlsbGVkIGJ5IHByZXByb2Nlc3NfYWdncmVmcygp LgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCAxYWVlYWVjOTVlMS4uNmI5Yjk5MDRmZGIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BsYW5ub2Rlcy5oCkBAIC00OSw3ICs0OSw3IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRT dG10CiAKIAlOb2RlVGFnCQl0eXBlOwogCi0JQ21kVHlwZQkJY29tbWFuZFR5cGU7CS8qIHNlbGVj dHxpbnNlcnR8dXBkYXRlfGRlbGV0ZXxtZXJnZXx1dGlsaXR5ICovCisJQ21kVHlwZQkJY29tbWFu ZFR5cGU7CS8qIHNlbGVjdHxsZXR8aW5zZXJ0fHVwZGF0ZXxkZWxldGV8bWVyZ2V8dXRpbGl0eSAq LwogCiAJdWludDY0CQlxdWVyeUlkOwkJLyogcXVlcnkgaWRlbnRpZmllciAoY29waWVkIGZyb20g UXVlcnkpICovCiAKQEAgLTk0LDYgKzk0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQK IAogCU5vZGUJICAgKnV0aWxpdHlTdG10OwkvKiBub24tbnVsbCBpZiB0aGlzIGlzIHV0aWxpdHkg c3RtdCAqLwogCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsJLyogT0lEcyBmb3IgUEFSQU1f VkFSSUFCTEUgUGFyYW1zICovCisKIAkvKiBzdGF0ZW1lbnQgbG9jYXRpb24gaW4gc291cmNlIHN0 cmluZyAoY29waWVkIGZyb20gUXVlcnkpICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsJLyog c3RhcnQgbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xlbjsJ CS8qIGxlbmd0aCBpbiBieXRlczsgMCBtZWFucyAicmVzdCBvZiBzdHJpbmciICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oCmluZGV4IGVhNDc2NTJhZGI4Li43MjJkZjY5OTUzNyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5v ZGVzLmgKQEAgLTM2MSw2ICszNjEsOSBAQCB0eXBlZGVmIHN0cnVjdCBDb25zdAogICoJCQkJb2Yg dGhlIGBwYXJhbWlkJyBmaWVsZCBjb250YWluIHRoZSBTdWJMaW5rJ3Mgc3ViTGlua0lkLCBhbmQK ICAqCQkJCXRoZSBsb3ctb3JkZXIgMTYgYml0cyBjb250YWluIHRoZSBjb2x1bW4gbnVtYmVyLiAg KFRoaXMgdHlwZQogICoJCQkJb2YgUGFyYW0gaXMgYWxzbyBjb252ZXJ0ZWQgdG8gUEFSQU1fRVhF QyBkdXJpbmcgcGxhbm5pbmcuKQorICoKKyAqCQlQQVJBTV9WQVJJQUJMRTogIFRoZSBwYXJhbWV0 ZXIgaXMgYW4gYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUKKyAqCQkJCXBhcmFtaWQgaG9sZHMg dmFyaWQuCiAgKi8KIHR5cGVkZWYgZW51bSBQYXJhbUtpbmQKIHsKQEAgLTM2OCw2ICszNzEsNyBA QCB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiAJUEFSQU1fRVhFQywKIAlQQVJBTV9TVUJMSU5LLAog CVBBUkFNX01VTFRJRVhQUiwKKwlQQVJBTV9WQVJJQUJMRSwKIH0gUGFyYW1LaW5kOwogCiB0eXBl ZGVmIHN0cnVjdCBQYXJhbQpAQCAtMzgwLDYgKzM4NCw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFt CiAJaW50MzIJCXBhcmFtdHlwbW9kIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK IAkvKiBPSUQgb2YgY29sbGF0aW9uLCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8KIAlPaWQJCQlw YXJhbWNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJLyogT0lEIG9m IHNlc3Npb24gdmFyaWFibGUgaWYgaXQgaXMgdXNlZCAqLworCU9pZAkJCXBhcmFtdmFyaWQ7CiAJ LyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlv bjsKIH0gUGFyYW07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4u aCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCmluZGV4IGFhZmMxNzM3OTIxLi5k ZTQ3MTY5MmU4MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgK KysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAgLTEyMCw0ICsxMjAsNiBA QCBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5KFBsYW5uZXJJbmZv ICpyb290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5k ZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGV4dHJhY3Rf cXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4 dCk7CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJ bmZvICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aAppbmRleCBjODg0Y2Q1YzQ2Ny4uMmU4OGQ3ZDk1MDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTI1 Niw2ICsyNTYsNyBAQCBQR19LRVlXT1JEKCJsZWFkaW5nIiwgTEVBRElORywgUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYWtwcm9vZiIsIExFQUtQUk9PRiwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVhc3QiLCBMRUFTVCwg Q09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlZnQiLCBMRUZULCBU WVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgibGV0IiwgTEVU LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZXZlbCIsIExF VkVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaWtlIiwg TElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxp bWl0IiwgTElNSVQsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKaW5kZXggNWI3ODFkODdhOWQuLjZkOTM2OTE5NjU5IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKQEAgLTgyLDYgKzgyLDggQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBS X0tJTkRfQ09QWV9XSEVSRSwJCS8qIFdIRVJFIGNvbmRpdGlvbiBpbiBDT1BZIEZST00gKi8KIAlF WFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTiwgLyogZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvciBh IGNvbHVtbiAqLwogCUVYUFJfS0lORF9DWUNMRV9NQVJLLAkJLyogY3ljbGUgbWFyayB2YWx1ZSAq LworCUVYUFJfS0lORF9BU1NJR05fVEFSR0VULAkvKiBQTC9wZ1NRTCBhc3NpZ25tZW50IHRhcmdl dCAqLworCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJLyogTEVUIHRhcmdldCAqLwogfSBQYXJzZUV4 cHJLaW5kOwogCiAKQEAgLTIyNSw2ICsyMjcsNyBAQCBzdHJ1Y3QgUGFyc2VTdGF0ZQogCWJvb2wJ CXBfaGFzVGFyZ2V0U1JGczsKIAlib29sCQlwX2hhc1N1YkxpbmtzOwogCWJvb2wJCXBfaGFzTW9k aWZ5aW5nQ1RFOworCWJvb2wJCXBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCU5vZGUJICAgKnBf bGFzdF9zcmY7CQkvKiBtb3N0IHJlY2VudCBzZXQtcmV0dXJuaW5nIGZ1bmMvb3AgZm91bmQgKi8K IApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVk ZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCA5NDY1ZGY3YjJmZi4uYTkyMWFmMjQ4NmYgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oCkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01EVEFHKENNRFRBR19HUkFO VCwgIkdSQU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19HUkFOVF9S T0xFLCAiR1JBTlQgUk9MRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0lNUE9SVF9GT1JFSUdOX1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsIHRydWUsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5TRVJUIiwgZmFsc2UsIGZh bHNlLCB0cnVlKQorUEdfQ01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBmYWxzZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19MSVNURU4sICJMSVNURU4iLCBmYWxzZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxFIiwgZmFsc2UsIGZhbHNl LCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oIGIvc3JjL2luY2x1 ZGUvdGNvcC9kZXN0LmgKaW5kZXggYTNkNTIxYjZmOTcuLjI4NmU1NzFmMjdjIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaApA QCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIGVudW0KIAlEZXN0VHJhbnNpZW50UmVsLAkJCS8qIHJl c3VsdHMgc2VudCB0byB0cmFuc2llbnQgcmVsYXRpb24gKi8KIAlEZXN0VHVwbGVRdWV1ZSwJCQkJ LyogcmVzdWx0cyBzZW50IHRvIHR1cGxlIHF1ZXVlICovCiAJRGVzdEV4cGxhaW5TZXJpYWxpemUs CQkvKiByZXN1bHRzIGFyZSBzZXJpYWxpemVkIGFuZCBkaXNjYXJkZWQgKi8KKwlEZXN0VmFyaWFi bGUsCQkJCS8qIHJlc3VsdHMgc2VudHMgdG8gc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBDb21tYW5k RGVzdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKaW5kZXggMjM5YjMy NTBhOTUuLmE5ZTFlMzIzYWQxIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhl Yy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTgxMDEsNyArODEwMSw4 IEBAIGV4ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhwciAqZXhwcikKIAkJcXVlcnktPnNv cnRDbGF1c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5LT5saW1pdENvdW50 IHx8Ci0JCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQorCQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAor CQlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyoKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXgg YWNhNzY2MDQyZGIuLmUwZDVhYzEyYWI4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNTUsMyArNTUsODkwIEBAIFNFVCBST0xFIFRP IERFRkFVTFQ7CiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CiBEUk9QIFNDSEVNQSBzdmFy dGVzdDsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworLS0gY2hlY2sgYWNjZXNz IHJpZ2h0cworQ1JFQVRFIFJPTEUgcmVncmVzc19ub293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngoaW50KQorUkVUVVJO UyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiBzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1Qg JDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbCBTRUNVUklUWSBERUZJTkVSOworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJF VFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJF VFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklORVI7 CitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAor LS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZngoMjApOworIHNxbGZ4IAorLS0t LS0tLQorICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhfc2Qg CistLS0tLS0tLS0tCisgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeCgyMCk7 CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNU IHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3NkIAorLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgMzAKKygxIHJvdykKKworLS0gc2hvdWxkIHRvIGZhaWwKK1NFVCBST0xFIFRPIHJlZ3Jl c3Nfbm9vd25lcjsKK1NFTEVDVCB2YXIxOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitTRUxFQ1Qgc3FsZngoMjApOworRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgU1FMIGZ1bmN0 aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKK1NFTEVDVCBwbHBnc3FsZngoMjApOworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgU1FM IGV4cHJlc3Npb24gIiQxICsgdmFyMSIKK1BML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRl Z2VyKSBsaW5lIDEgYXQgUkVUVVJOCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBzcWxmeF9zZCgy MCk7Cisgc3FsZnhfc2QgCistLS0tLS0tLS0tCisgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNU IHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3NkIAorLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgMzAKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBP TiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKy0tIHNob3VsZCBiZSBvaworU0VU IFJPTEUgVE8gcmVncmVzc19ub293bmVyOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor ICAgMTAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0KKyAg ICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKyBwbHBnc3FsZnggCistLS0t LS0tLS0tLQorICAgICAgICAzMAorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJP UCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBzcWxmeChpbnQpOworRFJPUCBGVU5DVElP TiBwbHBnc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gc3FsZnhfc2QoaW50KTsKK0RST1AgRlVO Q1RJT04gcGxwZ3NxbGZ4X3NkKGludCk7CitEUk9QIFJPTEUgcmVncmVzc19ub293bmVyOworLS0g dXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVy aWM7CistLSB1c2UgdmFyaWFibGVzIGluIHZpZXdzCitDUkVBVEUgVklFVyB0ZXN0X3ZpZXcgQVMg U0VMRUNUIENPQUxFU0NFKHZhcjEgKyB2LCAwKSBBUyByZXN1bHQgRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwyKSBnKHYpOworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0t LS0KKyAgICAgIDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVD VCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICA0LjE0CisgICA1LjE0 CisoMiByb3dzKQorCistLSBzdGFydCBhIG5ldyBzZXNzaW9uCitcYworU0VMRUNUICogRlJPTSB0 ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgIDAKKyAgICAgIDAKKygyIHJvd3Mp CisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAK Ky0tLS0tLS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dzKQorCistLSBzaG91bGQgZmFpbCwg ZGVwZW5kZW5jeQorRFJPUCBWQVJJQUJMRSB2YXIxOworRVJST1I6ICBjYW5ub3QgZHJvcCBzZXNz aW9uIHZhcmlhYmxlIHZhcjEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVU QUlMOiAgdmlldyB0ZXN0X3ZpZXcgZGVwZW5kcyBvbiBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0hJ TlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0 b28uCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworTk9USUNF OiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHRlc3RfdmlldworQ1JFQVRFIFZBUklBQkxFIHZhcjEg dGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7CistLSB1c2UgdmFyaWFibGVzIGluIFNR TCBmdW5jdGlvbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKQor UkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VB R0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngyKCB2YXJjaGFyKQorUkVU VVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIyIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ug c3FsOworTEVUIHZhcjEgPSAnc3RyMSc7CitMRVQgdmFyMiA9ICdzdHIyJzsKK1NFTEVDVCBzcWxm eDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAgIHNxbGZ4MSAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0KKyBzdHIxLCBzdHIyLCBIZWxsbworKDEgcm93KQorCistLSBpbmxpbmluZyBpcyBibG9j a2VkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdI ZWxsbycpKTsKKyAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgUmVzdWx0CisgICBPdXRwdXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFj dGVyIHZhcnlpbmcpKQorKDIgcm93cykKKworRFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7 CitEUk9QIEZVTkNUSU9OIHNxbGZ4Mih2YXJjaGFyKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVkFSSUFCTEUgdmFyMjsKKy0tIGFjY2VzcyBmcm9tIGNhY2hlZCBwbGFucyBzaG91bGQgdG8g d29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVHSU4gUkVUVVJO IHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7 CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDMuMTQKKygxIHJvdykKKworTEVUIHZh cjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0t LS0tLQorICAgICAgNi4yOAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBkZXBl bmRlbmN5IChwbGFuIGludmFsaWRhdGlvbikgc2hvdWxkIHRvIHdvcmsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIG51bWVyaWM7CitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VMRUNUIHBscGdzcWxm eCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICA5LjQyCisoMSByb3cpCisKK0xF VCB2YXIxID0gMy4xNCAqIDQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0t LS0tLS0tLS0KKyAgICAgMTIuNTYKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBGVU5DVElPTiBwbHBnc3FsZngoKTsKK3NldCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsK Ky0tIHVzYWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91bGQgdG8gd29yaworQ1JFQVRF IFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgbnVtZXJpY1tdOworRE8g JCQKK0JFR0lOCisgIExFVCB2YXIyID0gJ3t9Jzo6aW50W107CisgIEZPUiBpIElOIDEuLjEwCisg IExPT1AKKyAgICBMRVQgdmFyMSA9IGk7CisgICAgTEVUIHZhcjJbdmFyMV0gPSBpOworICBFTkQg TE9PUDsKKyAgUkFJU0UgTk9USUNFICdyZXN1bHQgYXJyYXk6ICUnLCB2YXIyOworRU5EOworJCQ7 CitOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgsOSwxMH0KK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKy0tIENBTEwgc3RhdGVtZW50IGlzIG5v dCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitD UkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywg YXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBp cyBub3Qgc3VwcG9ydGVkIHlldCkKK0NBTEwgcCh2KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJs ZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBF TkQgJCQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJn dW1lbnQKK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJDQUxMIHAodikiCitQTC9wZ1NRTCBmdW5j dGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgQ0FMTAorRFJPUCBQUk9DRURVUkUgcChp bnQpOworRFJPUCBWQVJJQUJMRSB2OworLS0gdGVzdCBzZWFyY2ggcGF0aAorQ1JFQVRFIFNDSEVN QSBzdmFydGVzdDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIG51bWVyaWM7Cist LSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSBwaSgpOworRVJST1I6ICBzZXNzaW9uIHZhcmlh YmxlICJ2YXIxIiBkb2Vzbid0IGV4aXN0CitMSU5FIDE6IExFVCB2YXIxID0gcGkoKTsKKyAgICAg ICAgICAgIF4KK1NFTEVDVCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRvZXMgbm90IGV4 aXN0CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJl IG9rCitMRVQgc3ZhcnRlc3QudmFyMSA9IHBpKCk7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKyAg ICAgICB2YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgMy4xNDE1OTI2NTM1ODk3OQor KDEgcm93KQorCitTRVQgc2VhcmNoX3BhdGggVE8gc3ZhcnRlc3Q7CistLSBzaG91bGQgYmUgb2sK K0xFVCB2YXIxID0gcGkoKSArIDEwOworU0VMRUNUIHZhcjE7CisgICAgICAgdmFyMSAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLQorIDEzLjE0MTU5MjY1MzU4OTgKKygxIHJvdykKKworUkVTRVQg c2VhcmNoX3BhdGg7CitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0LnZhcjEKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHRleHQ7CistLSB2YXJpYWJsZXMgY2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8g dHJhbnNhY3Rpb24KK0JFR0lOOworU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK0xFVCB2YXIx ID0gJ2hlbGxvJzsKK0NPTU1JVDsKK1NFTEVDVCB2YXIxOworIHZhcjEgIAorLS0tLS0tLQorIGhl bGxvCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3Qgb2YgZG9tYWlucwor Q1JFQVRFIERPTUFJTiBpbnRfZG9tYWluIEFTIGludCBOT1QgTlVMTCBDSEVDSyAoVkFMVUUgPiAx MDApOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50X2RvbWFpbjsKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgZG9tYWluIGludF9kb21haW4gZG9lcyBub3QgYWxsb3cg bnVsbCB2YWx1ZXMKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDAwOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xF VCB2YXIxID0gMTA7CitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gaW50X2RvbWFpbiB2aW9sYXRl cyBjaGVjayBjb25zdHJhaW50ICJpbnRfZG9tYWluX2NoZWNrIgorLS0gc2hvdWxkIGZhaWwKK0xF VCB2YXIxID0gTlVMTDsKKy0tIG5vdGUgLSBkb21haW4gZGVmYXVsdHMgYXJlIG5vdCBzdXBwb3J0 ZWQgeWV0IChsaWtlIFBMcGdTUUwpCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIERPTUFJTiBp bnRfZG9tYWluOworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsK K1NFTEVDVCBzdmFydGVzdC52YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisK K1NFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHN2YXJ0ZXN0OworU0VMRUNUIHZhcjE7CisgdmFy MSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FE RTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBk cm9wIGNhc2NhZGVzIHRvIHRhYmxlIGZvbworZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlh YmxlIHZhcjEKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2 YXIyIEFTIGludFtdOworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKK0xF VCB2YXIyW3ZhcjFdID0gMDsKK1NFTEVDVCB2YXIyOworICAgdmFyMiAgICAKKy0tLS0tLS0tLS0t CisgWzI6Ml09ezB9CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOwor TEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKK1NFTEVDVCB2YXIyOworIHZh cjIgCistLS0tLS0KKyB7fQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Cist LSB0aGUgTEVUIHN0YXRlbWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAq IEZST00geDsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkxFVCIKK0xJTkUgMTog V0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworICAgICAgICAgICAg ICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwg MSk7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMik7CitF UlJPUjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3cKK0xFVCB2YXIxID0g Z2VuZXJhdGVfc2VyaWVzKDEsIDApOworRVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG5vIHJv d3MKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGNvbXBvc2l0ZSB2YXJpYWJsZXMKK0NSRUFURSBU WVBFIHN2X3h5eiBBUyAoeCBpbnQsIHkgaW50LCB6IG51bWVyaWMoMTAsMikpOworQ1JFQVRFIFZB UklBQkxFIHYxIEFTIHN2X3h5ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CitMRVQg djEgPSAoMSwgMiwgMy4xNCk7CitMRVQgdjIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworLS0gc2hv dWxkIHdvcmsgdG9vIC0gdGhlcmUgYXJlIHByZXBhcmVkIGNhc3RzCitMRVQgdjEgPSAoMSwgMiwg Myk7CitTRUxFQ1QgdjE7CisgICAgIHYxICAgICAKKy0tLS0tLS0tLS0tLQorICgxLDIsMy4wMCkK KygxIHJvdykKKworU0VMRUNUIHYyOworICAgICAgdjIgICAgICAgCistLS0tLS0tLS0tLS0tLS0K KyAoMTAsMjAsMzEuNDApCisoMSByb3cpCisKK1NFTEVDVCAodjEpLio7CisgeCB8IHkgfCAgeiAg IAorLS0tKy0tLSstLS0tLS0KKyAxIHwgMiB8IDMuMDAKKygxIHJvdykKKworU0VMRUNUICh2Miku KjsKKyB4ICB8IHkgIHwgICB6ICAgCistLS0tKy0tLS0rLS0tLS0tLQorIDEwIHwgMjAgfCAzMS40 MAorKDEgcm93KQorCitTRUxFQ1QgdjEueCArIHYxLno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0t CisgICAgIDQuMDAKKygxIHJvdykKKworU0VMRUNUIHYyLnggKyB2Mi56OworID9jb2x1bW4/IAor LS0tLS0tLS0tLQorICAgIDQxLjQwCisoMSByb3cpCisKKy0tIGFjY2VzcyB0byBjb21wb3NpdGUg ZmllbGRzIHNob3VsZCBiZSBzYWZlIHRvbworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9y b2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGZhaWwK K1NFTEVDVCB2Mi54OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSB2MgorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFZB UklBQkxFIHYyOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0NSRUFURSBUWVBF IHQxIEFTIChhIGludCwgYiBudW1lcmljLCBjIHRleHQpOworQ1JFQVRFIFZBUklBQkxFIHYxIEFT IHQxOworTEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycpOworU0VMRUNUIHYxOworICAgICAgICAg ICAgIHYxICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxLDMu MTQxNTkyNjUzNTg5NzksaGVsbG8pCisoMSByb3cpCisKK0xFVCB2MS5iID0gMTAuMjIyMjsKK1NF TEVDVCB2MTsKKyAgICAgICAgdjEgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMSwx MC4yMjIyLGhlbGxvKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNu J3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQg IngiIG9mIGNvbHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0 YSB0eXBlIHQxCitMSU5FIDE6IExFVCB2MS54ID0gMTA7CisgICAgICAgICAgICBeCistLSBzaG91 bGQgZmFpbCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAoTlVMTDo6 dDEpLio7CitFUlJPUjogIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAzIGNvbHVtbnMK K0xJTkUgMTogTEVUIHYxID0gKE5VTEw6OnQxKS4qOworICAgICAgICAgICAgICAgICAgXgorLS0g YWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0eXBlcworLS0gc2hvdWxk IGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7CisgICAg IHYxICAgICAgCistLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIyMikKKygxIHJvdykKKworLS0gc2hv dWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CitTRUxFQ1QgdjE7 CisgICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyLCkKKygxIHJvdykK KworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1QgdjE7CisgICAgICB2MSAgICAgIAor LS0tLS0tLS0tLS0tLS0KKyAoMTAsMTAuMywyMCkKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9r CitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitTRUxFQ1QgdjE7CisgICB2MSAgICAK Ky0tLS0tLS0tLQorICgxMCwyMCkKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIGRpc2FsbG93 IGRhdGEgdHlwZSBjaGFuZ2UKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGMgVFlQRSBp bnQ7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0MSIgYmVjYXVzZSBzZXNzaW9uIHZhcmlh YmxlICJwdWJsaWMudjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFRZUEUgdDE7 CistLSB0aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0b28KK0NS RUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJpYywgYyBkYXRlKTsKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVzdDsKK0xFVCB2YXIxID0gKDEwLCBwaSgpLCAnMjAyMy0w NS0yNicpOworU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICB2YXIxICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLDMuMTQxNTkyNjUzNTg5 NzksMDUtMjYtMjAyMykKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kK K0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7CitFUlJPUjog IGNhbm5vdCBhbHRlciB0YWJsZSAic3Zhcl90ZXN0IiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy52YXIxIiB1c2VzIGl0CistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rl c3Q7CitFUlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlIHN2YXJfdGVzdCBiZWNhdXNlIG90aGVyIG9i amVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5k cyBvbiB0eXBlIHN2YXJfdGVzdAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3Ag dGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFC TEUgc3Zhcl90ZXN0OworLS0gYXJyYXlzIGFyZSBzdXBwb3J0ZWQKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIG51bWVyaWNbXTsKK0xFVCB2YXIxID0gQVJSQVlbMS4xLDIuMV07CitMRVQgdmFyMVsx XSA9IDEwLjE7CitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgIAorLS0tLS0tLS0tLS0tCisgezEw LjEsMi4xfQorKDEgcm93KQorCistLSBMRVQgdGFyZ2V0IGRvZXNuJ3QgYWxsb3cgc3JmLCBzaG91 bGQgZmFpbAorTEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEsMyldID0gMTAwOworRVJST1I6ICBz ZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gTEVUCitMSU5FIDE6IExF VCB2YXIxW2dlbmVyYXRlX3NlcmllcygxLDMpXSA9IDEwMDsKKyAgICAgICAgICAgICAgICAgXgor RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBU WVBFIHQxIEFTIChhIG51bWVyaWMsIGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHQxOworTEVUIHZhcjEgPSAoMTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEg PSAxMC4yOworU0VMRUNUIHZhcjE7CisgICAgICAgIHZhcjEgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAoMTAuMiwiezAuMCwwLjB9IikKKygxIHJvdykKKworTEVUIHZhcjEuYlsxXSA9 IDEwLjM7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgdmFyMSAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKDEwLjIsInsxMC4zLDAuMH0iKQorKDEgcm93KQorCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIFRZUEUgdDE7CistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5z CitTRVQgcGFyYWxsZWxfc2V0dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9 IDA7CitTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFs bGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9IDI7CistLSB0ZXN0IG9uIHF1ZXJ5IHdpdGggd29ya2Vy cworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChhIGludCk7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3Qg U0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKK0FOQUxZWkUgc3Zhcl90ZXN0 OworQ1JFQVRFIFZBUklBQkxFIHplcm8gaW50OworTEVUIHplcm8gPSAwOworLS0gcmVzdWx0IHNo b3VsZCBiZSAxMDAKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0g emVybzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDEwMAorKDEgcm93KQorCistLSBwYXJhbGxlbCBl eGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU IGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQWdncmVnYXRlCisgICAtPiAgU2VxIFNjYW4gb24gc3Zhcl90ZXN0CisgICAgICAgICBG aWx0ZXI6ICgoYSAlIDEwKSA9IHplcm8pCisoMyByb3dzKQorCitMRVQgemVybyA9IChTRUxFQ1Qg Y291bnQoKikgRlJPTSBzdmFyX3Rlc3QpOworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxF Q1QgemVybzsKKyB6ZXJvIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxF IHplcm87CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7 CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3Nj YW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CistLSB0aGUg cmVzdWx0IG9mIHZpZXcgc2hvdWxkIGJlIHNhbWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CitDUkVBVEUgVklFVyB2YXIx dmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSwgMCkgQVMgcmVzdWx0OworU0VMRUNUICogRlJP TSB2YXIxdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAxMAorKDEgcm93KQorCitTRVQg ZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb247CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworIHJl c3VsdCAKKy0tLS0tLS0tCisgICAgIDEwCisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9x dWVyeSBUTyBvZmY7CitEUk9QIFZJRVcgdmFyMXZpZXc7CitEUk9QIFZBUklBQkxFIHZhcjE7CitD UkVBVEUgVkFSSUFCTEUgdmFyaWQgaW50OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChpZCBpbnQs IHYgaW50KTsKK0xFVCB2YXJpZCA9IDE7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgVkFMVUVTKHZh cmlkLCAxMDApOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCistLS0tKy0t LS0tCisgIDEgfCAxMDAKKygxIHJvdykKKworVVBEQVRFIHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBX SEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCist LS0tKy0tLS0tCisgIDEgfCAyMDAKKygxIHJvdykKKworREVMRVRFIEZST00gc3Zhcl90ZXN0IFdI RVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8IHYgCistLS0t Ky0tLQorKDAgcm93cykKKworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZh cmlkOworLS0gdmlzaWJpbGl0eSBjaGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dl ZCBhbHdheXMKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxu YW1lIEZST00gcGdfY2xhc3MgdmFyMSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOwor IHJlbG5hbWUgIAorLS0tLS0tLS0tLQorIHBnX2NsYXNzCisoMSByb3cpCisKK0RST1AgVkFSSUFC TEUgdmFyMTsKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyB4eHRh YiBWQUxVRVMoMzMzKTsKK0NSRUFURSBUWVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOworQ1JFQVRF IFZBUklBQkxFIHh4dGFiIEFTIHh4dHlwZTsKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygxMCk7 CistLSBpdCBpcyBhbWJpZ3VvdXMsIGJ1dCBjb2x1bW5zIGFyZSBwcmVmZXJyZWQKK1NFTEVDVCB4 eHRhYi5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiBy b3dzKQorCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisgYXZhciAK Ky0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCitDUkVBVEUgVkFSSUFCTEUgcHVibGlj LmF2YXIgQVMgaW50OworLS0gc2hvdWxkIGJlIG9rLCBzZWUgdGhlIHRhYmxlCitTRUxFQ1QgYXZh ciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKwor LS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAor LS0tLS0tCisgICAgIAorICAgICAKKygyIHJvd3MpCisKK0RST1AgVkFSSUFCTEUgeHh0YWI7CitT RUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAx MAorKDIgcm93cykKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuYXZhcjsKK0RST1AgVFlQRSB4eHR5 cGU7CitEUk9QIFRBQkxFIHh4dGFiOworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBi eSB0YWJsZSBvciBieSBhbGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBp bnQsIGIgaW50LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGlj LnN2YXJfdHlwZTsKK0NSRUFURSBUQUJMRSBwdWJsaWMuc3ZhcihhIGludCwgYiBpbnQpOworSU5T RVJUIElOVE8gcHVibGljLnN2YXIgVkFMVUVTKDEwLCAyMCk7CitMRVQgcHVibGljLnN2YXIgPSAo MTAwLCAyMDAsIDMwMCk7CistLSBzaG91bGQgYmUgb2sKKy0tIHNob3cgdGFibGUKK1NFTEVDVCAq IEZST00gcHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJv dykKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworIGEgIAorLS0tLQorIDEwCiso MSByb3cpCisKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAorLS0t LSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVi bGljLnN2YXI7CisgICAgIHN2YXIgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMDAsMjAwLDMw MCkKKygxIHJvdykKKworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CisgIGMgIAorLS0tLS0KKyAzMDAK KygxIHJvdykKKworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKyAgYSAgfCAgYiAgfCAgYyAgCist LS0tLSstLS0tLSstLS0tLQorIDEwMCB8IDIwMCB8IDMwMAorKDEgcm93KQorCistLSB0aGUgdmFy aWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9N IHB1YmxpYy5zdmFyOworRVJST1I6ICBjb2x1bW4gc3Zhci5jIGRvZXMgbm90IGV4aXN0CitMSU5F IDE6IFNFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisgICAgICAgICAgICAg ICBeCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00g cHVibGljLnN2YXIgeDsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zh ci5hIEZST00gcHVibGljLnN2YXI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNU IHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIw CisoMSByb3cpCisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKKyAgICAg c3ZhciAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93KQorCitT RUxFQ1QgcHVibGljLnN2YXIuYzsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxF Q1QgKHB1YmxpYy5zdmFyKS4qOworICBhICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0tKy0tLS0t CisgMTAwIHwgMjAwIHwgMzAwCisoMSByb3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dl ZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CitF UlJPUjogIGNvbHVtbiBzdmFyLmMgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHB1Ymxp Yy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNhbiBiZSBm aXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4Owor ICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgcHVibGljLnN2YXI7 CitEUk9QIFRBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUWVBFIHB1YmxpYy5zdmFyX3R5cGU7CitD UkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworQ1JFQVRFIFZBUklBQkxF IHZfYWIgQVMgYWI7CitDUkVBVEUgVEFCTEUgdl9hYiAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOwor SU5TRVJUIElOVE8gdl9hYiBWQUxVRVMoMTAsMjApOworLS0gd2Ugc2hvdWxkIHRvIHNlZSB0YWJs ZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKwor Q1JFQVRFIFNDSEVNQSB2X2FiOworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOwor LS0gd2Ugc2hvdWxkIHRvIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisgYSAg CistLS0tCisgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2 X2FiOworRFJPUCBUWVBFIGFiOworQ1JFQVRFIFRZUEUgdF9hbV90eXBlIEFTIChiIGludCk7CitD UkVBVEUgU0NIRU1BIHh4eF9hbTsKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CitDUkVBVEUg VkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhfYW0gPSBST1coMTApOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgeHh4X2FtOworIHh4eF9hbSAKKy0tLS0tLS0tCisgKDEwKQor KDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtLmIgQVMgaW50OworTEVUIDoiREJOQU1F Ii54eHhfYW0uYiA9IDIwOworLS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxFQ1QgeHh4X2FtOwor IHh4eF9hbSAKKy0tLS0tLS0tCisgKDEwKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCwgdGhl IHJlZmVyZW5jZSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgeHh4X2FtLmI7CitFUlJPUjog IHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJ4eHhfYW0uYiIgaXMgYW1iaWd1b3VzCitMSU5F IDE6IFNFTEVDVCB4eHhfYW0uYjsKKyAgICAgICAgICAgICAgIF4KKy0tIGVuaGFuY2VkIHJlZmVy ZW5jZXMgc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLnh4eF9hbS5iOworIGIgIAorLS0tLQor IDEwCisoMSByb3cpCisKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisgYiAgCistLS0tCisg MjAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBpbnQpOworSU5TRVJUIElOVE8g eHh4X2FtIFZBTFVFUygxMCk7CistLSB3ZSBzaG91bGQgdG8gc2VlIHRhYmxlCitTRUxFQ1QgeHh4 X2FtLmIgRlJPTSB4eHhfYW07CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHgu YiBGUk9NIHh4eF9hbSB4OworIGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0RST1AgVEFCTEUg eHh4X2FtOworRFJPUCBWQVJJQUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJQUJMRSB4eHhf YW0uYjsKK0RST1AgU0NIRU1BIHh4eF9hbTsKK0NSRUFURSBTQ0hFTUEgOiJEQk5BTUUiOworQ1JF QVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiIEFTIHRfYW1fdHlwZTsK K0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMgaW50OworU0VUIHNlYXJj aF9wYXRoIFRPIDoiREJOQU1FIjsKKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NFTEVDVCA6IkRC TkFNRSIuYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInJlZ3Jlc3Npb24u YiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6IFNFTEVDVCAicmVncmVzc2lvbiIuYjsKKyAgICAgICAg ICAgICAgIF4KKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxFQ1QgOiJEQk5BTUUiLjoi REJOQU1FIi5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAicmVncmVzc2lv bi5yZWdyZXNzaW9uLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgInJlZ3Jlc3Npb24i LiJyZWdyZXNzaW9uIi5iOworICAgICAgICAgICAgICAgXgorQ1JFQVRFIFRBQkxFIDoiREJOQU1F IihiIGludCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCA6IkRCTkFNRSIuYiBGUk9NIDoiREJO QU1FIjsKKyBiIAorLS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIDoiREJOQU1FIjsKK0RST1Ag VkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIu OiJEQk5BTUUiLjoiREJOQU1FIjsKK0RST1AgU0NIRU1BIDoiREJOQU1FIjsKK1JFU0VUIHNlYXJj aF9wYXRoOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IDQyZGZiOTVhMDIyLi4xZjcyYjQwNWEyZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtNTksMyArNTksNjA3IEBAIERST1AgVkFSSUFCTEUgc3ZhcnRl c3QudmFyMTsKIERST1AgU0NIRU1BIHN2YXJ0ZXN0OwogCiBEUk9QIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKKworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cworQ1JFQVRFIFJPTEUgcmVncmVz c19ub293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHNxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSAr IHZhcjEgJCQgTEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxm eF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdF IHNxbCBTRUNVUklUWSBERUZJTkVSOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBn c3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5E ICQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdz cWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBF TkQgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklUWSBERUZJTkVSOworCitMRVQgdmFyMSA9IDEw OworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitTRUxF Q1Qgc3FsZnhfc2QoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4 X3NkKDIwKTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25l cjsKKworU0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeCgy MCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKK1NFTEVDVCBwbHBn c3FsZnhfc2QoMjApOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHZhcjEgVE8gcmVncmVzc19ub293bmVyOworCistLSBzaG91bGQgYmUgb2sKK1NFVCBS T0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKworU0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjAp OworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZB UklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHNxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHBs cGdzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBzcWxmeF9zZChpbnQpOworRFJPUCBGVU5DVElP TiBwbHBnc3FsZnhfc2QoaW50KTsKKworRFJPUCBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsKKworLS0g dXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVy aWM7CisKKy0tIHVzZSB2YXJpYWJsZXMgaW4gdmlld3MKK0NSRUFURSBWSUVXIHRlc3RfdmlldyBB UyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYsIDApIEFTIHJlc3VsdCBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKK0xFVCB2YXIxID0gMy4x NDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworCistLSBzdGFydCBhIG5ldyBzZXNzaW9uCitc YworCitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAq IEZST00gdGVzdF92aWV3OworCistLSBzaG91bGQgZmFpbCwgZGVwZW5kZW5jeQorRFJPUCBWQVJJ QUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURF OworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgdGV4 dDsKKworLS0gdXNlIHZhcmlhYmxlcyBpbiBTUUwgZnVuY3Rpb25zCitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBzcWxmeDEodmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1Qg dmFyMSB8fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gc3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2 YXIyIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworCitMRVQgdmFyMSA9ICdzdHIxJzsK K0xFVCB2YXIyID0gJ3N0cjInOworCitTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisK Ky0tIGlubGluaW5nIGlzIGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VM RUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCitEUk9QIEZVTkNUSU9OIHNxbGZ4MSh2YXJj aGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNoYXIpOworRFJPUCBWQVJJQUJMRSB2YXIx OworRFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBhY2Nlc3MgZnJvbSBjYWNoZWQgcGxhbnMgc2hv dWxkIHRvIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CisKK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVH SU4gUkVUVVJOIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitzZXQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNU IHBscGdzcWxmeCgpOworTEVUIHZhcjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlv bikgc2hvdWxkIHRvIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CisKK0xF VCB2YXIxID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQg KiA0OworU0VMRUNUIHBscGdzcWxmeCgpOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZV TkNUSU9OIHBscGdzcWxmeCgpOworCitzZXQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CisK Ky0tIHVzYWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91bGQgdG8gd29yaworQ1JFQVRF IFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgbnVtZXJpY1tdOworCitE TyAkJAorQkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4gMS4uMTAK KyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7CisgIEVO RCBMT09QOworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitFTkQ7Cisk JDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBDQUxM IHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2Vz cyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZB UklBQkxFIHYgaW50OworCitDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4g UkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hv dWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYpOworCitE TyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKKworRFJPUCBQUk9DRURVUkUgcChpbnQpOwor RFJPUCBWQVJJQUJMRSB2OworCistLSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NIRU1BIHN2 YXJ0ZXN0OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKKworLS0g c2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gcGkoKTsKK1NFTEVDVCB2YXIxOworCistLSBzaG91 bGQgYmUgb2sKK0xFVCBzdmFydGVzdC52YXIxID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIx OworCitTRVQgc2VhcmNoX3BhdGggVE8gc3ZhcnRlc3Q7CisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSBwaSgpICsgMTA7CitTRUxFQ1QgdmFyMTsKKworUkVTRVQgc2VhcmNoX3BhdGg7CitE Uk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0 ZXh0OworCistLSB2YXJpYWJsZXMgY2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24K K0JFR0lOOworU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsK K0NPTU1JVDsKKworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVz dCBvZiBkb21haW5zCitDUkVBVEUgRE9NQUlOIGludF9kb21haW4gQVMgaW50IE5PVCBOVUxMIENI RUNLIChWQUxVRSA+IDEwMCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnRfZG9tYWluOwor CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZh cjEgPSAxMDAwOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEw OworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBOVUxMOworCistLSBub3RlIC0gZG9tYWlu IGRlZmF1bHRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCAobGlrZSBQTHBnU1FMKQorCitEUk9QIFZB UklBQkxFIHZhcjE7CitEUk9QIERPTUFJTiBpbnRfZG9tYWluOworCitDUkVBVEUgU0NIRU1BIHN2 YXJ0ZXN0IENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9vKGEgaW50 KTsKK0xFVCBzdmFydGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NF VCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHN2YXJ0ZXN0OworCitTRUxFQ1QgdmFyMTsKKworRFJP UCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xFVCB2 YXIyID0gJ3t9Jzo6aW50W107CisKK0xFVCB2YXIyW3ZhcjFdID0gMDsKKworU0VMRUNUIHZhcjI7 CisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xF VCB2YXIyID0gJ3t9Jzo6aW50W107CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZh cjEsIHZhcjI7CisKKy0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGlu IENURQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQgdmFyMSA9 IDEwMCkgU0VMRUNUICogRlJPTSB4OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEpOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMik7CitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsKKworRFJP UCBWQVJJQUJMRSB2YXIxOworCistLSBjb21wb3NpdGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBz dl94eXogQVMgKHggaW50LCB5IGludCwgeiBudW1lcmljKDEwLDIpKTsKKworQ1JFQVRFIFZBUklB QkxFIHYxIEFTIHN2X3h5ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CisKK0xFVCB2 MSA9ICgxLCAyLCAzLjE0KTsKK0xFVCB2MiA9ICgxMCwgMjAsIDMuMTQgKiAxMCk7CisKKy0tIHNo b3VsZCB3b3JrIHRvbyAtIHRoZXJlIGFyZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0gKDEsIDIs IDMpOworCitTRUxFQ1QgdjE7CitTRUxFQ1QgdjI7CitTRUxFQ1QgKHYxKS4qOworU0VMRUNUICh2 MikuKjsKKworU0VMRUNUIHYxLnggKyB2MS56OworU0VMRUNUIHYyLnggKyB2Mi56OworCistLSBh Y2Nlc3MgdG8gY29tcG9zaXRlIGZpZWxkcyBzaG91bGQgYmUgc2FmZSB0b28KK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9y b2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHYyLng7CisKK1NFVCBST0xFIFRPIERFRkFV TFQ7CisKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFZBUklBQkxFIHYyOworCitEUk9QIFJPTEUg cmVncmVzc192YXJfdGVzdF9yb2xlOworCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVt ZXJpYywgYyB0ZXh0KTsKKworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEs IHBpKCksICdoZWxsbycpOworU0VMRUNUIHYxOworTEVUIHYxLmIgPSAxMC4yMjIyOworU0VMRUNU IHYxOworCistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54 ID0gMTA7CisKKy0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkK K0xFVCB2MSA9IChOVUxMOjp0MSkuKjsKKworLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRF IG9uIGNvbXBvc2l0ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1Ag QVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0 MSBBREQgQVRUUklCVVRFIGMgaW50OworU0VMRUNUIHYxOworCitMRVQgdjEgPSAoMTAsIDEwLjMs IDIwKTsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1Ag QVRUUklCVVRFIGI7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWlsLCBkaXNhbGxvdyBkYXRh IHR5cGUgY2hhbmdlCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBjIFRZUEUgaW50Owor CitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBUWVBFIHQxOworCistLSB0aGUgdGFibGUgdHlwZSBj YW4gYmUgdXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3Qo YSBpbnQsIGIgbnVtZXJpYywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJf dGVzdDsKKworTEVUIHZhcjEgPSAoMTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFy MTsKKworLS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVz dCBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxF IHN2YXJfdGVzdDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7 CisKKy0tIGFycmF5cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1l cmljW107CitMRVQgdmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4xOwor U0VMRUNUIHZhcjE7CisKKy0tIExFVCB0YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3VsZCBm YWlsCitMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworLS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQxIEFT IChhIG51bWVyaWMsIGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOwor TEVUIHZhcjEgPSAoMTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4yOwor U0VMRUNUIHZhcjE7CitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVDVCB2YXIxOworCitEUk9Q IFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CisKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFy YWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90 dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NF VCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKworLS0gdGVzdCBvbiBxdWVy eSB3aXRoIHdvcmtlcnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQpOworSU5TRVJUIElO VE8gc3Zhcl90ZXN0IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitBTkFM WVpFIHN2YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJvIGludDsKK0xFVCB6ZXJvID0gMDsK KworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVz dCBXSEVSRSBhJTEwID0gemVybzsKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgeWV0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJf dGVzdCBXSEVSRSBhJTEwID0gemVybzsKKworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZS T00gc3Zhcl90ZXN0KTsKKworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVybzsK KworRFJPUCBWQVJJQUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK1JFU0VUIHBh cmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWlu X3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Bl cl9nYXRoZXI7CisKKy0tIHRoZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUgc2FtZSBpbiBwYXJh bGxlbCBtb2RlIHRvbworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAx MDsKKworQ1JFQVRFIFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEsIDApIEFT IHJlc3VsdDsKKworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVs X3F1ZXJ5IFRPIG9uOworCitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworCitTRVQgZGVidWdfcGFy YWxsZWxfcXVlcnkgVE8gb2ZmOworCitEUk9QIFZJRVcgdmFyMXZpZXc7CitEUk9QIFZBUklBQkxF IHZhcjE7CisKK0NSRUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUgc3Zhcl90 ZXN0KGlkIGludCwgdiBpbnQpOworCitMRVQgdmFyaWQgPSAxOworSU5TRVJUIElOVE8gc3Zhcl90 ZXN0IFZBTFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworVVBEQVRF IHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBz dmFyX3Rlc3Q7CitERUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVD VCAqIEZST00gc3Zhcl90ZXN0OworCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0RST1AgVkFSSUFC TEUgdmFyaWQ7CisKKworLS0gdmlzaWJpbGl0eSBjaGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBi ZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1Qg dmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3MgdmFyMSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdf Y2xhc3MnOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFy IGludCk7CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygzMzMpOworCitDUkVBVEUgVFlQRSB4 eHR5cGUgQVMgKGF2YXIgaW50KTsKKworQ1JFQVRFIFZBUklBQkxFIHh4dGFiIEFTIHh4dHlwZTsK KworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEwKTsKKworLS0gaXQgaXMgYW1iaWd1b3VzLCBi dXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOwor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisKK0NSRUFURSBWQVJJ QUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJs ZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVi bGljLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSB4eHRhYjsKKworU0VMRUNUIHh4 dGFiLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuYXZhcjsKKworRFJP UCBUWVBFIHh4dHlwZTsKKworRFJPUCBUQUJMRSB4eHRhYjsKKworLS0gVGhlIHZhcmlhYmxlIGNh biBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBhbGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2 YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGlj LnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKKworQ1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEg aW50LCBiIGludCk7CisKK0lOU0VSVCBJTlRPIHB1YmxpYy5zdmFyIFZBTFVFUygxMCwgMjApOwor CitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7CisKKy0tIHNob3VsZCBiZSBvawor LS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLmEg RlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0g c2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7 CitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQs IHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCist LSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGlj LnN2YXIgeDsKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIu KiBGUk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2 YXI7CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisKKy0t IHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zh ci5jIEZST00gcHVibGljLnN2YXI7CisKKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNU IHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworCitEUk9QIFZBUklBQkxFIHB1Ymxp Yy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90 eXBlOworCitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworCitDUkVB VEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsKKworQ1JFQVRFIFRBQkxFIHZfYWIgKGEgaW50ZWdlciwg YiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVTKDEwLDIwKTsKKworLS0gd2Ugc2hv dWxkIHRvIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisKK0NSRUFURSBTQ0hF TUEgdl9hYjsKKworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOworCistLSB3ZSBz aG91bGQgdG8gc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKworRFJPUCBWQVJJ QUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOworCitDUkVBVEUgVFlQ RSB0X2FtX3R5cGUgQVMgKGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworCitTRVQgc2Vh cmNoX3BhdGggVE8gcHVibGljOworCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlw ZTsKK0xFVCB4eHhfYW0gPSBST1coMTApOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhf YW07CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4 eF9hbS5iID0gMjA7CisKKy0tIHNob3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsKKwor LS0gc2hvdWxkIGZhaWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNU IHh4eF9hbS5iOworCistLSBlbmhhbmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNU IHB1YmxpYy54eHhfYW0uYjsKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisKK0NSRUFURSBU QUJMRSB4eHhfYW0oYiAgaW50KTsKK0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworCist LSB3ZSBzaG91bGQgdG8gc2VlIHRhYmxlCitTRUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CitT RUxFQ1QgeC5iIEZST00geHh4X2FtIHg7CisKK0RST1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJ QUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJQUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1B IHh4eF9hbTsKKworQ1JFQVRFIFNDSEVNQSA6IkRCTkFNRSI7CisKK0NSRUFURSBWQVJJQUJMRSA6 IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFC TEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iIEFTIGludDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIDoi REJOQU1FIjsKKworLS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOwor CistLSBzaG91bGQgYmUgYW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIu YjsKKworQ1JFQVRFIFRBQkxFIDoiREJOQU1FIihiIGludCk7CisKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIDoiREJOQU1FIi5iIEZST00gOiJEQk5BTUUiOworCitEUk9QIFRBQkxFIDoiREJOQU1F IjsKKworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxF IDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOwor CitSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYTE4ZTgx MTI1YjUuLmJiOWQ4MzE0ODFkIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTQ5NCw2 ICsxNDk0LDcgQEAgTGFyZ2VPYmplY3REZXNjCiBMYXRjaAogTGF1bmNoZXJMYXN0U3RhcnRUaW1l c0VudHJ5CiBMZXJwRnVuYworTGV0U3RtdAogTGV4RGVzY3IKIExleGVtZUVudHJ5CiBMZXhlbWVI YXNoS2V5CkBAIC0yNTkwLDYgKzI1OTEsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQog U2Vzc2lvbgogU2Vzc2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlh YmxlVmFsdWUKIFNldENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0 Q29uc3RyYWludFRyaWdnZXJEYXRhCkBAIC0yNzgyLDYgKzI3ODQsOSBAQCBTdXBwb3J0UmVxdWVz dFJvd3MKIFN1cHBvcnRSZXF1ZXN0U2VsZWN0aXZpdHkKIFN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkK IFN1cHBvcnRSZXF1ZXN0V0Z1bmNNb25vdG9uaWMKK1NWYXJpYWJsZQorU1ZhcmlhYmxlRGF0YQor U1ZhcmlhYmxlU3RhdGUKIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDUu MgoK --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20240720-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhi05 RnJvbSA1MDY3YzRmZDdlYmY5ZGM2MGQ1NTc4MGU1NjhmNjkxODg3M2EzMGQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTY6MDg6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2 LzE5XSBwbHBnc3FsIHRlc3RzCgotLS0KIHNyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUub3V0IHwgMzgyICsrKysrKysrKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3Jj L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9zcmMvc3FsL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5zcWwgICAgICB8IDI4OSArKysrKysrKysrKysrCiA0IGZpbGVzIGNo YW5nZWQsIDY3NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5v dXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZp bGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKaW5kZXggNjNjYjk2ZmFlM2UuLmJiY2Fl MjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi42ZThiNDEzNGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMzgy IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CistLSBwYXNz aW5nIHBhcmFtZXRlcnMgdG8gRE8gYmxvY2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug J3ZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyOworRU5EOwor JCQ7CitOT1RJQ0U6ICB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzIDMuMTQxNTkyNjUzNTg5 NzkKKy0tIHBhc3Npbmcgb3V0cHV0IGZyb20gRE8gYmxvY2s7CitETyAkJAorQkVHSU4KKyAgTEVU IHBscGdzcWxfc3ZfdmFyID0gMiAqIHBpKCk7CitFTkQKKyQkOworU0VMRUNUIHBscGdzcWxfc3Zf dmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKyAgcGlfbXVsdGlwbHlfMiAgIAorLS0tLS0tLS0tLS0t LS0tLS0tCisgNi4yODMxODUzMDcxNzk1OQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyOworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIy IEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB1cGRhdGVyX2Z1bmMoKQor UkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gcGxwZ3Nx bF9zdl92YXIxICsgMTAwOworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gcGxwZ3NxbF9zdl92YXIy ICsgMTAwMDAwMDAwMDAwOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMyA9IHBscGdzcWxfc3ZfdmFyMyB8fCBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAw MCkpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9U SUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIyID0g JScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9ICUn LCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7Cist LSBleGVjdXRlIHVuZGVyIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygp OworIHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVh ZGVyX2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVw ZGF0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJf ZnVuYygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAw My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRl cl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91 dCBvZiB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMgCist LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9USUNF OiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAg bGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0tLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0tLS0t LS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIFBML3BnU1FMIGJsb2NrCitETyAk JAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5j KCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsK K0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2 NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNFOiAgdmFyMSA9 IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxkIGJlIGNvcnJl Y3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxf c3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBzaG91bGQgdG8g d29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsKKyAgUEVS Rk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQRVJGT1JN IHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAg dmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIK K05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKK0RST1Ag RlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOworRFJPUCBG VU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBj YWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUg diBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTsK KyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2OworICBM RVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBnc3FsX3N2 X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAw fQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAwfQor Tk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwg cGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9OIFNDSEVN QSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3Jv bGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xFVCBwbHBn c3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBw bHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklO RVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFyMQor Q09OVEVYVDogIFNRTCBleHByZXNzaW9uICJwbHBnc3FsX3N2X3ZhcjEiCitQTC9wZ1NRTCBmdW5j dGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxU OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitTRVQg Uk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOworTk9USUNFOiAgMTAKKyB2YXJf cmVhZF9mdW5jIAorLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgY3Jhc2gKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBk b2VzIG5vdCBleGlzdAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorUVVFUlk6 ICBwbHBnc3FsX3N2X3ZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9m dW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBGVU5DVElP TiB2YXJfcmVhZF9mdW5jOworUkVWT0tFIEFMTCBPTiBTQ0hFTUEgcHVibGljIEZST00gcmVncmVz c192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4 ZWNfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHJldHVybnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX2ludChpbnQpCitS RVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IENPQUxFU0NF KHBscGdzcWxfc3ZfdmFyMSArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjE7CitF TkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192 YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBp bmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg MgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEp IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0t LQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAgICA3 CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAgMTEK KyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdz cWxfc3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9u dW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIGluY192 YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDIK KygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEu MCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0t LS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAgICAg IDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAgICAx MQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitEUk9QIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworRFJPUCBGVU5DVElPTiBpbmNfdmFy X2ludDsKK0RST1AgRlVOQ1RJT04gaW5jX3Zhcl9udW07CistLSBwbHBnc3FsIHZhcmlhYmxlcyBh cmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdz cWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisg IHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9U SUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBt eWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElD RSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAg c2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAw MAorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjE7CistLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKK0NSRUFURSBG VU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVu YyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNU SU9OIGdmdW5jKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdiA9ICdCT09NISc7CisgIFJFVFVSTiB0OworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK3NlbGVjdCBmZnVuYygpOworIGZmdW5jIAorLS0tLS0tLQorIGFiYworKDEgcm93KQorCitE Uk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVz b24uYnVpbGQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKaW5kZXggM2RkNzM0Yjc3 NmIuLjM5MDVjMGI2ZDQ1IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVp bGQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCkBAIC04OCw2ICs4OCw3IEBA IHRlc3RzICs9IHsKICAgICAgICdwbHBnc3FsX3RyYXAnLAogICAgICAgJ3BscGdzcWxfdHJpZ2dl cicsCiAgICAgICAncGxwZ3NxbF92YXJwcm9wcycsCisgICAgICAncGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3Jj L3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4zOThlN2ZlMmE3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBn c3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgor ICBMRVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBn c3FsX3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2 YXIyID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFy MyA9ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CisKKy0tIGV4ZWN1dGUgdW5kZXIgdHJhbnNhY3Rpb24KK0JFR0lOOworU0VMRUNUIHdyaXRl cl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsK K1NFTEVDVCByZWFkZXJfZnVuYygpOworRU5EOworCistLSBleGVjdXRlIG91dCBvZiB0cmFuc2Fj dGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVD VCB1cGRhdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworCistLSBleGVjdXRlIGlu c2lkZSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOwor ICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxhbiBjYWNoZXMgc2hv dWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIg QVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsK KworLS0gc2hvdWxkIHRvIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRl cl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1 bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKwor RFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitE Uk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBvZiBjb3JyZWN0 IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQK K0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92 YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUn LCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltw bHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFy MjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKKwor RFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKKworQ1JFQVRF IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RST1AgRlVOQ1RJ T04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3Fs X3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9OIFNDSEVNQSBw dWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUs IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJf cm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2 YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNF ICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklU WSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyX3JlYWRfZnVu YygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9v d25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwor CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKKy0tIHNob3VsZCB0byBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3JlYWRf ZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFyX293 bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0g cmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFT IGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVNDRShw bHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VMRUNU IGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5jX3Zh cl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0UocGxw Z3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VMRUNU IGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNUIGlu Y192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04gaW5j X3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZhcmlh YmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xB UkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx MDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBS QUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3Zh cjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUg aXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJ U0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxkIG5v dCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBw bHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMg dGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitSRVRV Uk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOworICBS RVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygpOwor CitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworCitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDUuMgoK --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0008-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20240720-0008-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhid7 RnJvbSAyYjYyODE0YmNmZmYwNGNhYzlmNzYyMDJiZTIzYTk5NTM4NzBjOWQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE4OjI4OjA3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOC8xOV0gRVhQTEFJTiBMRVQgc3VwcG9ydAoKRW5oYW5jaW5nIEV4cGxhaW5PbmVQbGFu IGlzIG5lY2Vzc2FyeSB0byBiZSBFWFBMQUlOIEFOQUxZWkUgTEVUIGZ1bGx5IHdvcmthYmxlLgpJ biB0aGlzIGNhc2Ugd2Ugd2FudCB0byBiZSByZXN1bHQgb2YgcXVlcnkgb3IgZXhwcmVzc2lvbiB3 cml0dGVuIHRvIHRhcmdldCB2YXJpYWJsZS4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4u c2dtbCAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICA1ICsrLQogc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRz L2V4cGxhaW4uaCAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA0MCArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMSArKysrKysrKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2V4 cGxhaW4uc2dtbAppbmRleCBkYjlkM2E4NTQ5YS4uY2FjY2M3MDY1OGMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFp bi5zZ21sCkBAIC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAg PGNvbW1hbmQ+Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVD VVRFPC9jb21tYW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwK KyAgICBvciA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0 dGluZyB0aGUgY29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxw cm9ncmFtbGlzdGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDU3NzFhYWJm NDBhLi44ZWQyODcxNWYzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTgsNiArMTgsNyBA QAogI2luY2x1ZGUgImNvbW1hbmRzL2NyZWF0ZWFzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNpbmNs dWRlICJqaXQvaml0LmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKQEAgLTUwNyw4ICs1 MDgsOSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29y T3B0aW9ucywKIAl9CiAKIAkvKiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0cHV0 ICovCi0JRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgZXMsIHF1ZXJ5U3RyaW5nLCBwYXJhbXMs IHF1ZXJ5RW52LAotCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2Fn ZSA6IE5VTEwpLAorCUV4cGxhaW5PbmVQbGFuKHBsYW4sIGludG8sIHF1ZXJ5LT5yZXN1bHRWYXJp YWJsZSwgZXMsIHF1ZXJ5U3RyaW5nLAorCQkJCSAgIHBhcmFtcywgcXVlcnlFbnYsICZwbGFuZHVy YXRpb24sCisJCQkJICAgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCiAJCQkJICAg ZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIH0KIApAQCAtNTkyLDYgKzU5NCwy NSBAQCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50 bywgRXhwbGFpblN0YXRlICplcywKIAkJZWxzZQogCQkJRXhwbGFpbkR1bW15R3JvdXAoIk5vdGlm eSIsIE5VTEwsIGVzKTsKIAl9CisJZWxzZSBpZiAoSXNBKHV0aWxpdHlTdG10LCBMZXRTdG10KSkK Kwl7CisJCUxldFN0bXQgICAgKmxldHN0bXQgPSAoTGV0U3RtdCAqKSB1dGlsaXR5U3RtdDsKKwkJ TGlzdAkgICAqcmV3cml0dGVuOworCQlRdWVyeQkgICAqcXVlcnk7CisKKwkJaWYgKGVzLT5mb3Jt YXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMt PnN0ciwgIlNFVCBTRVNTSU9OIFZBUklBQkxFXG4iKTsKKwkJZWxzZQorCQkJRXhwbGFpbkR1bW15 R3JvdXAoIlNldCBTZXNzaW9uIFZhcmlhYmxlIiwgTlVMTCwgZXMpOworCisJCXJld3JpdHRlbiA9 IFF1ZXJ5UmV3cml0ZShjYXN0Tm9kZShRdWVyeSwgY29weU9iamVjdChsZXRzdG10LT5xdWVyeSkp KTsKKworCQlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKwkJcXVlcnkgPSBs aW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCQlFeHBsYWluT25lUXVlcnkocXVlcnks CisJCQkJCQlDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBOVUxMLCBlcywKKwkJCQkJCXF1ZXJ5U3Ry aW5nLCBwYXJhbXMsIHF1ZXJ5RW52KTsKKwl9CiAJZWxzZQogCXsKIAkJaWYgKGVzLT5mb3JtYXQg PT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKQEAgLTYxNSw4ICs2MzYsOCBAQCBFeHBsYWluT25lVXRp bGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICpl cywKICAqIHRvIGNhbGwgaXQuCiAgKi8KIHZvaWQKLUV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10 ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKLQkJCSAg IGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKK0V4cGxhaW5P bmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgT2lkIHRh cmdldHZhciwKKwkJCSAgIEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5n LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52 LCBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRpb24sCiAJCQkgICBjb25zdCBCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2UsCiAJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3Vu dGVycykKQEAgLTY2NSw2ICs2ODYsOCBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxh bm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJICovCiAJaWYg KGludG8pCiAJCWRlc3QgPSBDcmVhdGVJbnRvUmVsRGVzdFJlY2VpdmVyKGludG8pOworCWVsc2Ug aWYgKE9pZElzVmFsaWQodGFyZ2V0dmFyKSkKKwkJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJl Y2VpdmVyKHRhcmdldHZhcik7CiAJZWxzZSBpZiAoZXMtPnNlcmlhbGl6ZSAhPSBFWFBMQUlOX1NF UklBTElaRV9OT05FKQogCQlkZXN0ID0gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZl cihlcyk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDA3MjU3ZDRkYjk0Li4zNjRk Zjc3N2VhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtNjU1LDggKzY1NSw5IEBAIEV4cGxh aW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBF eHBsYWluU3RhdGUgKmVzLAogCQlQbGFubmVkU3RtdCAqcHN0bXQgPSBsZmlyc3Rfbm9kZShQbGFu bmVkU3RtdCwgcCk7CiAKIAkJaWYgKHBzdG10LT5jb21tYW5kVHlwZSAhPSBDTURfVVRJTElUWSkK LQkJCUV4cGxhaW5PbmVQbGFuKHBzdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLCBwYXJhbUxJ LCBxdWVyeUVudiwKLQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1 c2FnZSA6IE5VTEwpLAorCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQs IGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksCisJCQkJCQkgICBxdWVyeUVudiwgJnBsYW5kdXJh dGlvbiwKKwkJCQkJCSAgIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAogCQkJCQkJ ICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIAkJZWxzZQogCQkJRXhwbGFp bk9uZVV0aWxpdHkocHN0bXQtPnV0aWxpdHlTdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggNGFjMzE5YmYyMjUuLmZjYWNlZjI3NmNmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTEyMTMyLDcgKzEyMTMyLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQK IAkJCXwgQ3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4 ZWN1dGVTdG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0 ZVN0bXQKKwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwog CQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IDli OGIzNTFkOWEyLi44OTY1NjYyNTA2NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaApAQCAtMTAxLDcg KzEwMSw4IEBAIGV4dGVybiB2b2lkIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10 LCBJbnRvQ2xhdXNlICppbnRvLAogCQkJCQkJCSAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkJICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYpOwogCi1leHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVk U3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sCitleHRlcm4gdm9pZCBFeHBsYWlu T25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsCisJCQkJCQkgICBJbnRvQ2xhdXNlICpp bnRvLCBPaWQgdGFyZ2V0dmFyLAogCQkJCQkJICAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsCiAJCQkJCQkgICBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRp b24sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CmluZGV4IDlhMmQ2YjFjN2I2Li41YzkwZTYzMzlkMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEyNDUsMyArMTI0NSw0MyBAQCBT RVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJM RSBwdWJsaWMueHh0YWI7CiBEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKK0NSRUFURSBWQVJJQUJM RSB2YXIxIGJpZ2ludDsKK0NSRUFURSBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQpOwor SU5TRVJUIElOVE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsMTApOworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3Rf dGFibGUpOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNT SU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdhdGUK KyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUgcm93cykK KworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAg CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VN TUFSWSBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90 YWJsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJ QUJMRQorIFJlc3VsdCAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAg ICAtPiAgQWdncmVnYXRlIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCiso NSByb3dzKQorCistLSBzaG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFyX3Rh Yl90ZXN0X3RhYmxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IDY2ZGE5MmMyMjBmLi4zZDE0NmQyZWMzYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtODQwLDMgKzg0MCwyNCBAQCBTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogCiBEUk9QIFRBQkxFIHB1YmxpYy54 eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IGJpZ2ludDsKKworQ1JFQVRFIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZShhIGludCk7CisKK0lO U0VSVCBJTlRPIHZhcl90YWJfdGVzdF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDEwKTsKKworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworCitFWFBMQUlO IChDT1NUUyBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVz dF90YWJsZSk7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hvdWxkIGJl IDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJf dGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20240720-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhi76 RnJvbSA4ODY1NzZhOWNkNWE2MzYwODQ2NjVhNDc5N2Q2ZTZmN2ZhMzQ0MjExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE3OjU1OjI0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNy8xOV0gR1VDIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCgpJbnNp ZGUgYW4gcXVlcnkgdGhlIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZC4gVGhpcyBi ZWhhdmlvdXIgaXMgYnkgZGVzaWduLApiZWNhdXNlIHRoaXMgZW5zdXJpbmcgc28gbmV3IHZhcmlh YmxlcyBkb2Vzbid0IGJyZWFrIGV4aXN0aW5nIHF1ZXJpZXMuIEJ1dCB0aGlzCmJlaGF2aW91ciBj YW4gYmUgY29uZnVzaW5nLCBiZWNhdXNlIHNoYWRvd2luZyBpcyBxdWlldC4KCldoZW4gbmV3IEdV QyBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBpcyBvbiwgdGhlbiB0aGUgd2Fy bmluZwppcyBkaXNwbGF5ZWQsIHdoZW4gc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2Vk LCBidXQgaXQgaXMgbm90IHVzZWQKZHVlIHNoYWRvd2luZy4gVGhpcyBmZWF0dXJlIHNob3VsZCB0 byBoZWxwIHdpdGggaW52ZXN0aWdhdGlvbiBvZiB1bmV4cGVjdGVkCmJlaGF2aW91ci4KCk5vdGU6 IFBMcGdTUUwgaGFzIGFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHByaW9yaXR5IG9mIGlkZW50aWZp ZXIncyBzcGFjZXMKKFNRTCBvciBQTHBnU1FMKS4gRGVmYXVsdCBiZWhhdmlvdXIgZG9lc24ndCBh bGxvd3MgY29sbGlzaW9ucy4gSSBiZWxpZXZlCnRoaXMgZGVmYXVsdCBpcyB0aGUgYmVzdC4gSSBj YW5ub3QgdG8gaW1wbGVtZW50IHNpbWlsYXIgdmVyeSBzdHJpY3QKYmVoYXZpb3VyIHRvIHNlc3Np b24gdmFyaWFibGVzLCBiZWNhdXNlIG9uZSB1bmhhcHB5IG5hbWVkIHNlc3Npb24gdmFyaWFibGUK Y2FuIGJyZWFrcyBhbiBhcHBsaWNhdGlvbnMuIFRoZSBwcm9ibGVtcyByZWxhdGVkIHRvIGJhZGx5 IG5hbWVkIFBMcGdTUUwncwp2YXJpYmxlIGlzIGxpbWl0dGVkIGp1c3QgdG8gb25seSBvbmUgcm91 dGluZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAg fCA2MCArKysrKysrKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAg ICAgICAgICAgICAgIHwgNDggKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAxMCArKysrCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfZXhwci5oICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIyICsrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIwICsrKysrKysKIDkgZmlsZXMg Y2hhbmdlZCwgMjI0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4 IDNkZWMwYjdjZmViLi45ZjE0YWQzNmY4MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZp Zy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTA2ODUsNiArMTA2ODUs NjYgQEAgZHluYW1pY19saWJyYXJ5X3BhdGggPSAnQzpcdG9vbHNccG9zdGdyZXNxbDtIOlxteV9w cm9qZWN0XGxpYjskbGliZGlyJwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50 cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLWFtYmln dWl0eS13YXJuaW5nIiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJu aW5nIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJt PgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAg IDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBXaGVuIG9uLCBhIHdhcm5pbmcgaXMgcmFpc2VkIHdoZW4gYW55IGlkZW50 aWZpZXIgaW4gYSBxdWVyeSBjb3VsZCBiZQorICAgICAgICB1c2VkIGFzIGJvdGggYSBjb2x1bW4g aWRlbnRpZmllciwgcm91dGluZSB2YXJpYWJsZSBvciBhIHNlc3Npb24KKyAgICAgICAgdmFyaWFi bGUgaWRlbnRpZmllci4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPi4KKyAg ICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFNlc3Npb24gdmFyaWFibGVzIGNh biBiZSBzaGFkb3dlZCBieSBjb2x1bW4gcmVmZXJlbmNlcyBpbiBhIHF1ZXJ5LCB0aGlzCisgICAg ICAgIGlzIGFuIGV4cGVjdGVkIGJlaGF2aW9yLiAgUHJldmlvdXNseSB3b3JraW5nIHF1ZXJpZXMg c2hvdWxkbid0IGVycm9yIG91dAorICAgICAgICBieSBjcmVhdGluZyBhbnkgc2Vzc2lvbiB2YXJp YWJsZSwgc28gc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsd2F5cyBzaGFkb3dlZAorICAgICAgICBp ZiBhbiBpZGVudGlmaWVyIGlzIGFtYmlndW91cy4gIFZhcmlhYmxlcyBzaG91bGQgYmUgcmVmZXJl bmNlZCB1c2luZworICAgICAgICBhbnVuYW1iaWd1b3VzIGlkZW50aWZpZXIgd2l0aG91dCBhbnkg cG9zc2liaWxpdHkgZm9yIGEgY29sbGlzaW9uIHdpdGgKKyAgICAgICAgaWRlbnRpZmllciBvZiBv dGhlciBkYXRhYmFzZSBvYmplY3RzIChjb2x1bW4gbmFtZXMgb3IgcmVjb3JkIGZpZWxkcyBuYW1l cykuCisgICAgICAgIFRoZSB3YXJuaW5nIG1lc3NhZ2VzIGVtaXR0ZWQgd2hlbiBlbmFibGluZyA8 dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwvdmFybmFtZT4KKyAg ICAgICAgY2FuIGhlbHAgZmluZGluZyBzdWNoIGlkZW50aWZpZXIgY29sbGlzaW9uLgorPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitJTlNFUlQgSU5UTyBmb28gVkFM VUVTKDEwKTsKK0NSRUFURSBWQVJJQUJMRSBhIGludDsKK0xFVCBhID0gMTAwOworU0VMRUNUIGEg RlJPTSBmb287Cis8L3Byb2dyYW1saXN0aW5nPgorCis8c2NyZWVuPgorIGEKKy0tLS0KKyAxMAor KDEgcm93KQorPC9zY3JlZW4+CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK1NFTEVDVCBhIEZST00gZm9vOworPC9wcm9n cmFtbGlzdGluZz4KKworPHNjcmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBp cyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgYSBGUk9NIGZvbzsKKyAgICAgICAgICAgICAgIF4K K0RFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCBy b3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUg bmFtZS4KKyBhCistLS0tCisgMTAKKygxIHJvdykKKzwvc2NyZWVuPgorICAgICAgIDwvcGFyYT4K KyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGlu Y3JlYXNlIGxvZyBzaXplLCBzbyBpdCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuICBG b3IgdGVzdGluZyBvciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaXQncyByZWNvbW1lbmRlZCB0 bworICAgICAgICBlbmFibGUgaXQgaWYgeW91IHVzZSBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAg ICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg ICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVm bGFiZWw9InN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFt ZT5zdGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90 eXBlPikKICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25k YXJ5PnN0YW5kYXJkIGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA5 MjczMDc5OWY0MC4uMGQxNmYxZDE2ZmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzNTMsNyArNTM1MywxMSBAQCBTRUxF Q1QgY3VycmVudF91c2VyX2lkOwogICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hh ZG93ZWQgYnkgY29sdW1uIHJlZmVyZW5jZXMgaW4gYSBxdWVyeS4gV2hlbgogICAgIGEgcXVlcnkg Y29udGFpbnMgaWRlbnRpZmllcnMgb3IgcXVhbGlmaWVkIGlkZW50aWZpZXJzIHRoYXQgY291bGQg YmUgdXNlZCBhcwogICAgIGJvdGggYSBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXJzIGFuZCBh cyBjb2x1bW4gaWRlbnRpZmllciwgdGhlbiB0aGUKLSAgICBjb2x1bW4gaWRlbnRpZmllciBpcyBw cmVmZXJyZWQgZXZlcnkgdGltZS4KKyAgICBjb2x1bW4gaWRlbnRpZmllciBpcyBwcmVmZXJyZWQg ZXZlcnkgdGltZS4gV2FybmluZ3MgY2FuIGJlIGVtaXR0ZWQgd2hlbgorICAgIHRoaXMgc2l0dWF0 aW9uIGhhcHBlbnMgYnkgZW5hYmxpbmcgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgPHhyZWYKKyAg ICBsaW5rZW5kPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1aXR5LXdhcm5pbmciLz4uIFVz ZXIgY2FuIGV4cGxpY2l0bHkKKyAgICBxdWFsaWZ5IHRoZSBzb3VyY2Ugb2JqZWN0IGJ5IHN5bnRh eCA8bGl0ZXJhbD50YWJsZS5jb2x1bW48L2xpdGVyYWw+IG9yCisgICAgPGxpdGVyYWw+dmFyaWFi bGUuY29sdW1uPC9saXRlcmFsPi4KICAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKaW5kZXggNzNiZTJhOGUxMGEuLmYwZWJiY2Y1YmViIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKQEAgLTQ3LDYgKzQ3LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJv b2wJCVRyYW5zZm9ybV9udWxsX2VxdWFscyA9IGZhbHNlOworYm9vbAkJc2Vzc2lvbl92YXJpYWJs ZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBmYWxzZTsKIAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUV4 cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CiBzdGF0aWMgTm9kZSAq dHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZik7CkBA IC05NDMsNyArOTQ0LDggQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q29sdW1uUmVmICpjcmVmKQogCSAqIHF1ZXN0aW9uIGlzIGlmIHdlIHdhbnQgdG8gaWRlbnRpZnkg c2Vzc2lvbidzIHZhcmlhYmxlcyBpbiB0aGVzZQogCSAqIGNvbnRleHRzPyBUaGUgY29kZSBjYW4g YmUgbW9yZSBzaW1wbGUsIHdoZW4gd2UgZG9uJ3QgZG8gaXQsIGJ1dCB0aGVuIHdlCiAJICogY2Fu bm90IHRvIHJhaXNlIG1heWJlIHVzZWZ1bCBtZXNzYWdlIGxpa2UgInlvdSBjYW5ub3QgdG8gdXNl IHNlc3Npb24KLQkgKiB2YXJpYWJsZXMgaGVyZSIuCisJICogdmFyaWFibGVzIGhlcmUiLiBPbiBz ZWNvbmQgaGFuZCwgaW4gdGhpcyBjYXNlIHRoZSB3YXJuaW5ncyBhYm91dAorCSAqIHNlc3Npb24n cyB2YXJpYWJsZSBzaGFkb3dpbmcgY2FuIGJlIG1lc3N5LgogCSAqLwogCWlmIChleHByX2tpbmRf YWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQogCXsKQEAgLTk2 MiwxMCArOTY0LDQ4IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENv bHVtblJlZiAqY3JlZikKIAkJICogU0VMRUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287 CiAJCSAqCiAJCSAqIFRoaXMgY2FzZSBjYW4gYmUgbWVzc3kgYW5kIHRoZW4gd2UgZGlzYWxsb3cg aXQuIFdoZW4gd2Uga25vdyB0aGF0IGEKLQkJICogcG9zc2libGUgdmFyaWFibGUgd2lsbCBiZSBz aGFkb3dlZCwgd2UgZG9uJ3QgdHJ5IHRvIGlkZW50aWZ5Ci0JCSAqIHZhcmlhYmxlLgorCQkgKiBw b3NzaWJsZSB2YXJpYWJsZSB3aWxsIGJlIHNoYWRvd2VkLCB3ZSB0cnkgdG8gaWRlbnRpZnkgdmFy aWFibGUKKwkJICogb25seSB3aGVuIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n IGlzIHJlcXVlc3RlZC4KIAkJICovCi0JCWlmICghbm9kZSAmJiAhKHJlbG5hbWUgJiYgY3JlcnIg PT0gQ1JFUlJfTk9fQ09MVU1OKSkKKwkJaWYgKG5vZGUgfHwgKHJlbG5hbWUgJiYgY3JlcnIgPT0g Q1JFUlJfTk9fQ09MVU1OKSkKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgcGF0aCB3ZSBqdXN0 IHRyeSAoaWYgaXQgaXMgd2FudGVkKSBkZXRlY3QgaWYgc2Vzc2lvbgorCQkJICogdmFyaWFibGUg aXMgc2hhZG93ZWQuCisJCQkgKi8KKwkJCWlmIChzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZykKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFRoZSBBY2Nlc3NTaGFyZUxvY2sgaXMgY3Jl YXRlZCBvbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUuCisJCQkJICogVGhlIGxvY2sgd2lsbCBi ZSBrZXB0IGZvciB0aGUgd2hvbGUgdHJhbnNhY3Rpb24uCisJCQkJICovCisJCQkJdmFyaWQgPSBJ ZGVudGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgdHJ1 ZSk7CisKKwkJCQlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQkJeworCQkJCQkvKiBUaGlzIHBh dGggd2lsbCBlbmRpbmcgYnkgV0FSTklORy4gVW5sb2NrIHZhcmlhYmxlIGZpcnN0ICovCisJCQkJ CVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vz c1NoYXJlTG9jayk7CisKKwkJCQkJaWYgKG5vZGUpCisJCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJ CQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX0NPTFVNTiksCisJCQkJCQkJCSBlcnJt c2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGlzIHNoYWRvd2VkIiwKKwkJCQkJCQkJCQlOYW1l TGlzdFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJTZXNzaW9u IHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxl cyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuIiksCisJCQkJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKKwkJCQkJZWxz ZQorCQkJCQkJLyogc2Vzc2lvbiB2YXJpYWJsZSBpcyBzaGFkb3dlZCBieSBSVEUgKi8KKwkJCQkJ CWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfQ09M VU1OKSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgc2hh ZG93ZWQiLAorCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSksCisJCQkJCQkJCSBlcnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBz aGFkb3dlZCBieSB0YWJsZXMgb3IgdGFibGUncyBhbGlhc2VzIHdpdGggdGhlIHNhbWUgbmFtZS4i KSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkp OworCQkJCX0KKwkJCX0KKwkJfQorCQllbHNlCiAJCXsKIAkJCS8qCiAJCQkgKiBUaGUgQWNjZXNz U2hhcmVMb2NrIGlzIGNyZWF0ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLiBUaGUKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNjMwZWQwZjE2MjkuLjY4MWU5ZDk0MmJh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTU0NCw2ICsxNTQ0LDE2IEBA IHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZhbHNlLAogCQlO VUxMLCBOVUxMLCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmciLCBQR0NfVVNFUlNFVCwgREVWRUxPUEVSX09QVElPTlMsCisJCQlnZXR0ZXh0X25v b3AoIlJhaXNlIHdhcm5pbmcgd2hlbiByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlIGlz IGFtYmlndW91cy4iKSwKKwkJCU5VTEwsCisJCQlHVUNfTk9UX0lOX1NBTVBMRQorCQl9LAorCQkm c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcsCisJCWZhbHNlLAorCQlOVUxMLCBO VUxMLCBOVUxMCisJfSwKIAl7CiAJCXsiZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkiLCBQ R0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAogCQkJZ2V0dGV4dF9ub29wKCJTZXRz IHRoZSBkZWZhdWx0IHJlYWQtb25seSBzdGF0dXMgb2YgbmV3IHRyYW5zYWN0aW9ucy4iKSwKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IDliNDZkZmQ5ZWNjLi4wZDY0YjMwMGY4YSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xNyw2ICsxNyw3IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJz ICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7CitleHRl cm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzsK IAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpl eHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdz cWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAppbmRleCA2ZThi NDEzNGMwNi4uZWMwN2YxY2JhZTkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBl Y3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0zNTQsNiArMzU0LDM5 IEBAICQkOwogTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKIE5PVElDRTogIHBscGdz cWwgdmFyaWFibGUgaXMgMTAwMAogTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorLS0gYWdhaW50 IHdpdGggc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcob24pCitTRVQgc2Vzc2lv bl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CitETyAkJAorPDxteWJsb2NrPj4K K0RFQ0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3Zh cjEgPSAxMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZworICBwbHBnc3Fs X3N2X3ZhcjEgOj0gMTAwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisg IC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBw dWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5p bmcKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMg JScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHNob3VsZCB0byBwcmludCBwbHBn c3FsIHZhcmlhYmxlIHdpdGggd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElD RSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAg c2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAw MAorV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgInBscGdzcWxfc3ZfdmFyMSIgaXMgc2hhZG93 ZWQKK0xJTkUgMTogcGxwZ3NxbF9zdl92YXIxCisgICAgICAgIF4KK0RFVEFJTDogIFNlc3Npb24g dmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVz IGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KK1FVRVJZOiAgcGxw Z3NxbF9zdl92YXIxCitOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCitTRVQgc2Vzc2lvbl92YXJp YWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2 X3ZhcjE7CiAtLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKIENSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9z cWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwv cGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbAppbmRleCAzOThlN2ZlMmE3Yy4uZWY3MDVhNGNj ODcgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlLnNxbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5zcWwKQEAgLTI2MCw2ICsyNjAsMzUgQEAgQkVHSU4KIEVORDsKICQkOwogCistLSBh Z2FpbnQgd2l0aCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyhvbikKKworU0VU IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworCitETyAkJAorPDxt eWJsb2NrPj4KK0RFQ0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBn c3FsX3N2X3ZhcjEgPSAxMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZwor ICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3 YXJuaW5nCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9USUNFICdzZXNzaW9uIHZhcmlhYmxl IGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRo b3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFy aWFibGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHNob3VsZCB0byBw cmludCBwbHBnc3FsIHZhcmlhYmxlIHdpdGggd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJB SVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOwor CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworCiBEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKIAogLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUg Y29ycnVwdGVkCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CmluZGV4IDM3NDhlMTQzOWJkLi45YTJkNmIxYzdiNiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEyMjMsMyArMTIyMywy NSBAQCBTRUxFQ1QgdmFyMTsKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOwor LS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZworQ1JFQVRFIFNDSEVN QSB4eHRhYjsKK0NSRUFURSBWQVJJQUJMRSB4eHRhYi5hdmFyIGludDsKK0NSRUFURSBUQUJMRSBw dWJsaWMueHh0YWIoYXZhciBpbnQpOworSU5TRVJUIElOVE8gcHVibGljLnh4dGFiIFZBTFVFUygx KTsKK0xFVCB4eHRhYi5hdmFyID0gMjA7CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdhcm5pbmcsIHNob3cgMQorU0VM RUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJp YWJsZSAieHh0YWIuYXZhciIgaXMgc2hhZG93ZWQKK0xJTkUgMTogU0VMRUNUIHh4dGFiLmF2YXIg RlJPTSBwdWJsaWMueHh0YWI7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBTZXNzaW9uIHZh cmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBh bmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuCisgYXZhciAKKy0tLS0t LQorICAgIDEKKygxIHJvdykKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJu aW5nIFRPIG9mZjsKK0RST1AgVEFCTEUgcHVibGljLnh4dGFiOworRFJPUCBTQ0hFTUEgeHh0YWIg Q0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB4eHRh Yi5hdmFyCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXgg NDY0M2NmMTM4YWUuLjY2ZGE5MmMyMjBmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsCkBAIC04MjAsMyArODIwLDIzIEBAIEJFR0lOOyBEUk9QIFZBUklBQkxF IHZhcjE7IFJPTExCQUNLOwogU0VMRUNUIHZhcjE7CiAKIERST1AgVkFSSUFCTEUgdmFyMSwgdmFy MjsKKworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZworQ1JFQVRF IFNDSEVNQSB4eHRhYjsKKworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50OworCitDUkVB VEUgVEFCTEUgcHVibGljLnh4dGFiKGF2YXIgaW50KTsKKworSU5TRVJUIElOVE8gcHVibGljLnh4 dGFiIFZBTFVFUygxKTsKKworTEVUIHh4dGFiLmF2YXIgPSAyMDsKKworU0VUIHNlc3Npb25fdmFy aWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworLS0tIHNob3VsZCB0byByYWlzZSB3YXJu aW5nLCBzaG93IDEKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworCitTRVQg c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworCitEUk9QIFRBQkxF IHB1YmxpYy54eHRhYjsKK0RST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7Ci0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20240720-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhg60 RnJvbSBiNjEyOTBmMWZkZDUwZTIwYmVlNTZjYTRhNjkwMzVjOGQzMDEwNjA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzE5XSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIwICsrKysrKysrKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIwICsrCiBkb2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sICAgICAgICAg ICAgICAgfCAgMjQgKysKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAg ICAgICB8ICAxNiArKwogZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAg ICAgIHwgICAzICsKIC4uLi9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCAg ICB8ICAyNiArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAg IHwgMTc4ICsrKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgICAgICAg ICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sICAg ICAgICAgICB8ICAgNyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAg ICAgICAgIHwgMTU3ICsrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUu c2dtbCAgICAgICAgICAgfCAxMTcgKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dt bCAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBkb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUu c2dtbCAgICAgICAgICAgICAgfCAgMTEgKwogZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbCAg ICAgICAgICAgICAgICAgIHwgICA3ICsKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCAgICAg ICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAg ICAgICAgICAgIHwgIDc3ICsrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMg ICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jICAgICAg ICAgICAgICAgfCAxMzggKysrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRy ZXNzLmMgICAgICAgICAgIHwgMTIxICsrKysrKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z aGRlcGVuZC5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYyAgICAgICAgICAgICB8IDI1NSArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2FsdGVyLmMgICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvZXZlbnRfdHJpZ2dlci5jICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgNDIgKysrCiBzcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxMDUgKysrKysrKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMTYgKysKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAxMTMgKysrKysrKysKIHNyYy9iaW4vcGdfZHVt cC9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BnX2R1bXAv ZHVtcHV0aWxzLmMgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICAgOSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jICAgICAgICAgICAgICAgICAgICAgfCAxOTggKysrKysrKysrKysrKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxOSArKwogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcGdfZHVt cC9wZ19yZXN0b3JlLmMgICAgICAgICAgICAgICAgICB8ICAgOSArLQogc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDY0ICsrKysrCiBzcmMvYmluL3BzcWwv Y29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDg2ICsrKysrKwogc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9o ZWxwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgNDQgKystCiBzcmMvaW5jbHVkZS9jYXRh bG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL2NhdGFs b2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L25hbWVzcGFjZS5oICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfZGVmYXVsdF9hY2wuaCAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDgxICsrKysrKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE2ICsrCiBzcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmggICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL3V0aWxzL2FjbC5oICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aCAgICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBl bmRlbmN5Lm91dCAgICAgIHwgIDE2ICsrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpv aW5zLm91dCAgICAgICAgfCAgIDQgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91 dCAgICAgICAgICAgIHwgIDUwICsrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCAgICB8ICA1NyArKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3ku c3FsICAgICAgICAgICB8ICAxMyArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbCAgICAg ICAgICAgICAgICAgfCAgMjEgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbCAgICB8ICA2MSArKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3Qg ICAgICAgICAgICAgIHwgICA0ICsKIDY3IGZpbGVzIGNoYW5nZWQsIDIzODggaW5zZXJ0aW9ucygr KSwgMjkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYv ZHJvcF92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z192YXJpYWJsZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGI2NTRmYWUx YjJmLi41YmExODg5OTM0NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTM2OSw2ICszNjksMTEgQEAKICAg ICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXVzZXItbWFwcGluZyI+PHN0cnVj dG5hbWU+cGdfdXNlcl9tYXBwaW5nPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAg PGVudHJ5Pm1hcHBpbmdzIG9mIHVzZXJzIHRvIGZvcmVpZ24gc2VydmVyczwvZW50cnk+CiAgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy12YXJpYWJsZSI+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC9saW5r PjwvZW50cnk+CisgICAgICA8ZW50cnk+c2Vzc2lvbiB2YXJpYWJsZXM8L2VudHJ5PgorICAgICA8 L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC05NzI2LDQg Kzk3MzEsMTE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291 bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFibGU+CiAgPC9zZWN0 MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0aXRsZT48c3RydWN0 bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9u ZT0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJpYWJsZTwvcHJpbWFy eT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgdGFibGUgPHN0cnVjdG5hbWU+ cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0CisgICBz ZXNzaW9uIHZhcmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3Ry dWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdy b3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERl c2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVh ZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAg ICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48c3RydWN0bmFt ZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0Zmll bGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUg dmFyaWFibGUncyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFybmFt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlw ZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLW5hbWVzcGFj ZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZp ZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgdGhpcyB2YXJpYWJsZQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVj dGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgT3duZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVs ZD4gcmVjb3JkcyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBwbGllZCBhdCB2YXJpYWJs ZSBjcmVhdGlvbiB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0KKyAgICAgICBsZW5ndGgg b2YgYSA8dHlwZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMgcGFzc2VkIHRvCisgICAg ICAgdHlwZS1zcGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0aCBjb2VyY2lvbiBmdW5j dGlvbnMuCisgICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJlIC0xIGZvciB0eXBlcyB0 aGF0IGRvIG5vdCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPi4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctY29sbGF0aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVjdG5hbWU+PC9saW5r Pi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhlIHZhcmlhYmxlLCBvciB6 ZXJvIGlmIHRoZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNvbGxhdGFibGUgZGF0YSB0 eXBlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8L3N0cnVjdGZpZWxkPiA8 dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWdyYW50 Ii8+IGFuZAorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2UiLz4KKyAgICAgICBmb3Ig ZGV0YWlscworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgPC90Ym9k eT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8L2NoYXB0ZXI+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5k ZXggNjI2ZDM1NTE0Y2MuLmVlMWQ4ZWEwNjBjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01Mjk4LDYgKzUyOTgsMjYgQEAg RVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZn dDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgPC9wYXJhPgogIDwvc2VjdDE+CiAKKyAgPHNlY3Qx IGlkPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgorICAgPHRpdGxlPlNlc3Npb24gVmFyaWFibGVz PC90aXRsZT4KKworICAgPGluZGV4dGVybSB6b25lPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgor ICAgIDxwcmltYXJ5PlNlc3Npb24gdmFyaWFibGVzPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+ CisKKyAgIDxpbmRleHRlcm0+CisgICAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFy eT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBh cmUgZGF0YWJhc2Ugb2JqZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUuCisgICAgU2Vzc2lvbiB2 YXJpYWJsZXMsIGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5kIHRoZWly IGFjY2VzcworICAgIGlzIGNvbnRyb2xsZWQgdmlhIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBh bmQgPGNvbW1hbmQ+UkVWT0tFPC9jb21tYW5kPgorICAgIGNvbW1hbmRzLiAgQSBzZXNzaW9uIHZh cmlhYmxlIGNhbiBiZSBjcmVhdGVkIGJ5IHRoZSA8Y29tbWFuZD5DUkVBVEUKKyAgICBWQVJJQUJM RTwvY29tbWFuZD4gY29tbWFuZC4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKwogIDxzZWN0MSBp ZD0iZGRsLW90aGVycyI+CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4K IApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbCBiL2RvYy9zcmMv c2dtbC9ldmVudC10cmlnZ2VyLnNnbWwKaW5kZXggOGUwMDljY2EwNTAuLjE1YjJhZjk5ZGNhIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9ldmVudC10cmlnZ2VyLnNnbWwKQEAgLTQyNCw2ICs0MjQsMTQgQEAKICAgICAgICAgPGVu dHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAg PGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgogICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+ CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+QUxURVIgVkFSSUFCTEU8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8 L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFs Plg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRl cmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxs aXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48 L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeSBhbGln bj0ibGVmdCI+PGxpdGVyYWw+QUxURVIgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8 ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpAQCAtNzEy LDYgKzcyMCwxNCBAQAogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwv bGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAg ICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48 bGl0ZXJhbD5DUkVBVEUgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5 IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVu dHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAg PGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg ICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAg IDxyb3c+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+Q1JFQVRFIFZJRVc8 L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFs Plg8L2xpdGVyYWw+PC9lbnRyeT4KQEAgLTEwMDAsNiArMTAxNiwxNCBAQAogICAgICAgICA8ZW50 cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8 ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4K KyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5EUk9QIFZBUklBQkxFPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9s aXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5Y PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJh bD5YPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0 ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9l bnRyeT4KKyAgICAgICA8L3Jvdz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnkgYWxpZ249 ImxlZnQiPjxsaXRlcmFsPkRST1AgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50 cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dt bAppbmRleCA0MDVmZTZkYzhiOS4uYTMxOTk0ZWZlNmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNjU0 LDYgKzE2NTQsMjIgQEAKICAgIDwvZ2xvc3NkZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xv c3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2Vzc2lvbi12YXJpYWJsZSI+CisgICA8Z2xvc3N0ZXJtPlNl c3Npb24gdmFyaWFibGU8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAg ICAgQSBwZXJzaXN0ZW50IGRhdGFiYXNlIG9iamVjdCB0aGF0IGhvbGRzIGEgdmFsdWUgaW4gc2Vz c2lvbiBtZW1vcnkuICBUaGlzCisgICAgIG1lbW9yeSBpcyBub3Qgc2hhcmVkIGFjcm9zcyBzZXNz aW9ucywgYW5kIGFmdGVyIHNlc3Npb24gZW5kLCB0aGlzIG1lbW9yeQorICAgICAodGhlIHZhbHVl KSBpcyByZWxlYXNlZC4gVGhlIGFjY2VzcyAocmVhZCBvciB3cml0ZSkgdG8gc2Vzc2lvbiB2YXJp YWJsZXMKKyAgICAgaXMgY29udHJvbGxlZCBieSBhY2Nlc3MgcmlnaHRzIHNpbWlsYXJseSB0byBv dGhlciBkYXRhYmFzZSBvYmplY3QgYWNjZXNzCisgICAgIHJpZ2h0cy4KKyAgICA8L3BhcmE+Cisg ICAgPHBhcmE+CisgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0i ZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+Cisg IDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9y eSI+CiAgICA8Z2xvc3N0ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2Rl Zj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCBmNWJlNjM4ODY3YS4uMmY2N2RlM2UyMWIgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTQ3LDYgKzQ3LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1 c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBhbHRl clR5cGUgICAgICAgICAgU1lTVEVNICJhbHRlcl90eXBlLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJV c2VyICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdXNlci5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNl ck1hcHBpbmcgICBTWVNURU0gImFsdGVyX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGFs dGVyVmFyaWFibGUgICAgICBTWVNURU0gImFsdGVyX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkg YWx0ZXJWaWV3ICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdmlldy5zZ21sIj4KIDwhRU5USVRZIGFu YWx5emUgICAgICAgICAgICBTWVNURU0gImFuYWx5emUuc2dtbCI+CiA8IUVOVElUWSBiZWdpbiAg ICAgICAgICAgICAgU1lTVEVNICJiZWdpbi5zZ21sIj4KQEAgLTk5LDYgKzEwMCw3IEBAIENvbXBs ZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5Lgog PCFFTlRJVFkgY3JlYXRlVHlwZSAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3R5cGUuc2dtbCI+CiA8 IUVOVElUWSBjcmVhdGVVc2VyICAgICAgICAgU1lTVEVNICJjcmVhdGVfdXNlci5zZ21sIj4KIDwh RU5USVRZIGNyZWF0ZVVzZXJNYXBwaW5nICBTWVNURU0gImNyZWF0ZV91c2VyX21hcHBpbmcuc2dt bCI+Cis8IUVOVElUWSBjcmVhdGVWYXJpYWJsZSAgICAgU1lTVEVNICJjcmVhdGVfdmFyaWFibGUu c2dtbCI+CiA8IUVOVElUWSBjcmVhdGVWaWV3ICAgICAgICAgU1lTVEVNICJjcmVhdGVfdmlldy5z Z21sIj4KIDwhRU5USVRZIGRlYWxsb2NhdGUgICAgICAgICBTWVNURU0gImRlYWxsb2NhdGUuc2dt bCI+CiA8IUVOVElUWSBkZWNsYXJlICAgICAgICAgICAgU1lTVEVNICJkZWNsYXJlLnNnbWwiPgpA QCAtMTQ3LDYgKzE0OSw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZp bGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZHJvcFR5cGUgICAgICAgICAgIFNZU1RF TSAiZHJvcF90eXBlLnNnbWwiPgogPCFFTlRJVFkgZHJvcFVzZXIgICAgICAgICAgIFNZU1RFTSAi ZHJvcF91c2VyLnNnbWwiPgogPCFFTlRJVFkgZHJvcFVzZXJNYXBwaW5nICAgIFNZU1RFTSAiZHJv cF91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBkcm9wVmFyaWFibGUgICAgICAgU1lTVEVN ICJkcm9wX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgZHJvcFZpZXcgICAgICAgICAgIFNZU1RF TSAiZHJvcF92aWV3LnNnbWwiPgogPCFFTlRJVFkgZW5kICAgICAgICAgICAgICAgIFNZU1RFTSAi ZW5kLnNnbWwiPgogPCFFTlRJVFkgZXhlY3V0ZSAgICAgICAgICAgIFNZU1RFTSAiZXhlY3V0ZS5z Z21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxl Z2VzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21s CmluZGV4IDg5YWFjZWM0ZmFiLi5hZTkwMmQ3ZjM3MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCkBAIC01MSw2ICs1MSwxMCBAQCBHUkFOVCB7 IHsgVVNBR0UgfCBDUkVBVEUgfQogICAgIE9OIFNDSEVNQVMKICAgICBUTyB7IFsgR1JPVVAgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQ VUJMSUMgfSBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQogCitHUkFOVCB7IFNFTEVDVCB8 IFVQREFURSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisgICAgVE8g eyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVw bGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KKwogUkVW T0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgeyB7IFNFTEVDVCB8IElOU0VSVCB8IFVQREFU RSB8IERFTEVURSB8IFRSVU5DQVRFIHwgUkVGRVJFTkNFUyB8IFRSSUdHRVIgfCBNQUlOVEFJTiB9 CiAgICAgWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CkBAIC04Myw2ICs4NywxMiBAQCBS RVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICBPTiBTQ0hFTUFTCiAgICAgRlJPTSB7IFsg R1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNl YWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCiAgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCitS RVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywg Li4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisgICAgRlJPTSB7 IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBs YWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQog PC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xMTcsMTQgKzEyNywxNCBAQCBS RVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgPHBhcmE+CiAgICBDdXJyZW50bHksCiAgICBv bmx5IHRoZSBwcml2aWxlZ2VzIGZvciBzY2hlbWFzLCB0YWJsZXMgKGluY2x1ZGluZyB2aWV3cyBh bmQgZm9yZWlnbgotICAgdGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIGFuZCB0eXBlcyAo aW5jbHVkaW5nIGRvbWFpbnMpIGNhbiBiZQotICAgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQs IGZ1bmN0aW9ucyBpbmNsdWRlIGFnZ3JlZ2F0ZXMgYW5kIHByb2NlZHVyZXMuCi0gICBUaGUgd29y ZHMgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Uk9VVElORVM8L2xp dGVyYWw+IGFyZQotICAgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuICAoPGxpdGVyYWw+Uk9V VElORVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZAotICAgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3Rh bmRhcmQgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2VuCi0gICB0b2dldGhl ci4gIEluIGVhcmxpZXIgUG9zdGdyZVNRTCByZWxlYXNlcywgb25seSB0aGUKLSAgIHdvcmQgPGxp dGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdCBwb3NzaWJs ZSB0byBzZXQKLSAgIGRlZmF1bHQgcHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1 cmVzIHNlcGFyYXRlbHkuKQorICAgdGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHR5cGVz IChpbmNsdWRpbmcgZG9tYWlucykgYW5kIHNlc3Npb24KKyAgIHZhcmlhYmxlcyBjYW4gYmUgYWx0 ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlIGFnZ3JlZ2F0ZXMKKyAg IGFuZCBwcm9jZWR1cmVzLiAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4g YW5kCisgICA8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gYXJlIGVxdWl2YWxlbnQgaW4gdGhp cyBjb21tYW5kLgorICAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQg Z29pbmcgZm9yd2FyZCBhcyB0aGUgc3RhbmRhcmQKKyAgIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQg cHJvY2VkdXJlcyB0YWtlbiB0b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdyZVNRTAorICAgcmVs ZWFzZXMsIG9ubHkgdGhlIHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3YXMgYWxs b3dlZC4gIEl0IGlzIG5vdAorICAgcG9zc2libGUgdG8gc2V0IGRlZmF1bHQgcHJpdmlsZWdlcyBm b3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHkuKQogICA8L3BhcmE+CiAKICAg PHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ4NzU3MGU3ZDhiCi0tLSAvZGV2L251bGwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBACis8IS0t Citkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1l bnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgorIDxpbmRl eHRlcm0gem9uZT0ic3FsLWFsdGVydmFyaWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBWQVJJQUJM RTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNl c3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3NlY29uZGFy eT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBW QVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxy ZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3Jl Zm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8L3JlZm5h bWU+CisgIDxyZWZwdXJwb3NlPgorICAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgc2Vzc2lv biB2YXJpYWJsZQorICA8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9w c2lzZGl2PgorPHN5bm9wc2lzPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENV UlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVkFSSUFC TEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQg U0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNl YWJsZT4KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5B TFRFUiBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9m IGFuCisgICBleGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJm b3JtczoKKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48 bGl0ZXJhbD5PV05FUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJp YWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hh bmdlcyB0aGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48bGl0ZXJhbD5TRVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9uIHZhcmlh YmxlIGludG8gYW5vdGhlciBzY2hlbWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKworICA8 cGFyYT4KKyAgIE9ubHkgdGhlIG93bmVyIG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYWx0 ZXIgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Npb24gdmFy aWFibGUgZnJvbSBvbmUgc2NoZW1hIHRvIGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0IGFsc28g aGF2ZSB0aGUgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIG5ldyBz Y2hlbWEgKG9yCisgICBiZSBhIHN1cGVydXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1vdmUgdGhl IHNlc3Npb24gdmFyaWFibGUgb3duZXJzaGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhlciwKKyAg IHRoZSB1c2VyIG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhl IG5ldworICAgb3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8bGl0ZXJh bD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFyaWFibGUn cyBzY2hlbWEgKG9yIGJlIGEgc3VwZXJ1c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisgICBlbmZv cmNlIHRoYXQgYWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxk bid0IGRvIGJ5CisgICBkcm9wcGluZyBhbmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2YXJpYWJs ZS4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJh bWV0ZXJzPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+ CisgICAgICAgIFRoZSBuYW1lIChwb3NzaWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgZXhp c3Rpbmcgc2Vzc2lvbiB2YXJpYWJsZQorICAgICAgICB0byBhbHRlci4KKyAgICAgICA8L3BhcmE+ CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19u YW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+ CisgICAgICAgIFRoZSBuZXcgbmFtZSBmb3IgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAg PC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgVGhlIHVzZXIgbmFtZSBvZiB0aGUgbmV3IG93bmVyIG9mIHRoZSBz ZXNzaW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAg IDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJt PgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IHNjaGVt YSBmb3IgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0 aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3Bh cmE+CisgIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgorPHByb2dy YW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3Byb2dyYW1s aXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9m IHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRl cmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28g T1dORVIgVE8gam9lOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgVG8gY2hhbmdlIHRoZSBzY2hlbWEgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+ Ym9vPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8cHJvZ3Jh bWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOworPC9wcm9n cmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFi bGVzIGFuZCB0aGlzIGNvbW1hbmQgaW4gcGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FMIGV4dGVu c2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1hbHRl cnZhcmlhYmxlLXNlZS1hbHNvIj4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2lt cGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3Jl YXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRy b3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwv cmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCmluZGV4IDViNDNjNTZiMTMzLi4yMWNkODA4MThm YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jb21tZW50LnNnbWwKQEAgLTY1LDYgKzY1LDcgQEAgQ09NTUVOVCBPTgogICBU UkFOU0ZPUk0gRk9SIDxyZXBsYWNlYWJsZT50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiBMQU5HVUFH RSA8cmVwbGFjZWFibGU+bGFuZ19uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBUUklHR0VSIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPiBPTiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IHwK ICAgVFlQRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxh Y2VhYmxlPiB8CisgIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmpl Y3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPgogfSBJUyB7IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zdHJpbmdfbGl0ZXJhbDwvcmVwbGFjZWFibGU+IHwgTlVMTCB9CiAKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKaW5kZXggZWQ2OTI5OGNjYzYuLmE4MzRjODc2YmM5 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbApAQCAtMTAzLDkgKzEwMywxMCBAQCBD UkVBVEUgU0NIRU1BIElGIE5PVCBFWElTVFMgQVVUSE9SSVpBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cm9sZV9zcAogICAgICAgICBzY2hlbWEuIEN1cnJlbnRseSwgb25seSA8 Y29tbWFuZD5DUkVBVEUKICAgICAgICAgVEFCTEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUg VklFVzwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURQogICAgICAgICBJTkRFWDwvY29tbWFuZD4s IDxjb21tYW5kPkNSRUFURSBTRVFVRU5DRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURQotICAg ICAgICBUUklHR0VSPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFyZSBh Y2NlcHRlZCBhcyBjbGF1c2VzCi0gICAgICAgIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUgU0NIRU1B PC9jb21tYW5kPi4gT3RoZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkKLSAgICAgICAgYmUgY3JlYXRl ZCBpbiBzZXBhcmF0ZSBjb21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCisgICAg ICAgIFRSSUdHRVI8L2NvbW1hbmQ+LCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21t YW5kPkNSRUFURQorICAgICAgICBWQVJJQUJMRTwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNs YXVzZXMgd2l0aGluIDxjb21tYW5kPkNSRUFURQorICAgICAgICBTQ0hFTUE8L2NvbW1hbmQ+LiBP dGhlciBraW5kcyBvZiBvYmplY3RzIG1heSBiZSBjcmVhdGVkIGluIHNlcGFyYXRlCisgICAgICAg IGNvbW1hbmRzIGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KICAgICAgICA8L3BhcmE+CiAg ICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42 YTUwZGNiZTkzNgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxNTcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZl bnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1jcmVh dGV2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkNSRUFURSBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3By aW1hcnk+CisgIDxzZWNvbmRhcnk+ZGVmaW5pbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4K KworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5DUkVBVEUgVkFSSUFCTEU8L3JlZmVudHJ5 dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0g TGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5h bWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBv c2U+ZGVmaW5lIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+ CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUgVkFSSUFCTEUgWyBJRiBO T1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVw bGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xs YXRpb248L3JlcGxhY2VhYmxlPiBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+Cisg PHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAg VGhlIDxjb21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBjcmVhdGVzIGEg c2Vzc2lvbiB2YXJpYWJsZS4KKyAgIFNlc3Npb24gdmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywg ZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nlc3MgaXMKKyAgIGNvbnRyb2xsZWQg dmlhIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+UkVWT0tFPC9jb21tYW5k PgorICAgY29tbWFuZHMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSB2YWx1ZSBvZiBh IHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmll dmluZworICAgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBlaXRoZXIgYSBOVUxM LCB1bmxlc3MgaXRzIHZhbHVlIGlzIHNldCB0bworICAgc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1 cnJlbnQgc2Vzc2lvbiB3aXRoIGEgTEVUIGNvbW1hbmQuIFRoZSBjb250ZW50IG9mCisgICBhIHNl c3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlICBzYW1lIGFz IHJlZ3VsYXIKKyAgIHZhcmlhYmxlcyBpbiBQTCBsYW5ndWFnZXMuCisgIDwvcGFyYT4KKworICA8 cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5k PlNFTEVDVDwvY29tbWFuZD4gU1FMCisgICBjb21tYW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdp dGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gU1FMIGNvbW1hbmQuCisgICBXaGlsZSBzZXNz aW9uIHZhcmlhYmxlcyBzaGFyZSBwcm9wZXJ0aWVzIHdpdGggdGFibGVzLCB0aGVpciB2YWx1ZSBj YW5ub3QgYmUKKyAgIGNoYW5nZWQgd2l0aCBhbiA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+IGNv bW1hbmQuCisgIDwvcGFyYT4KKworICA8bm90ZT4KKyAgIDxwYXJhPgorICAgIEluc2lkZSBhIHF1 ZXJ5IG9yIGFuIGV4cHJlc3Npb24sIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dl ZCBieQorICAgIGNvbHVtbiBvciBieSByb3V0aW5lJ3MgdmFyaWFibGUgb3Igcm91dGluZSBhcmd1 bWVudC4gU3VjaCBjb2xsaXNpb25zIG9mCisgICAgaWRlbnRpZmllcnMgY2FuIGJlIHJlc29sdmVk IGJ5IHVzaW5nIHF1YWxpZmllZCBpZGVudGlmaWVycy4gU2Vzc2lvbiB2YXJpYWJsZXMKKyAgICBj YW4gdXNlIHNjaGVtYSBuYW1lLCBjb2x1bW5zIGNhbiB1c2UgdGFibGUgYWxpYXNlcywgcm91dGlu ZSB2YXJpYWJsZXMKKyAgICBjYW4gdXNlIGJsb2NrIGxhYmVscywgYW5kIHJvdXRpbmUgYXJndW1l bnRzIGNhbiB1c2UgdGhlIHJvdXRpbmUgbmFtZS4KKyAgIDwvcGFyYT4KKyAgPC9ub3RlPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKwor ICA8dmFyaWFibGVsaXN0PgorCisgICA8dmFybGlzdGVudHJ5ICBpZD0ic3FsLWNyZWF0ZXZhcmlh YmxlLWlmLW5vdC1leGlzdHMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIE5PVCBFWElTVFM8L2xp dGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3Qg dGhyb3cgYW4gZXJyb3IgaWYgdGhlIG5hbWUgYWxyZWFkeSBleGlzdHMuIEEgbm90aWNlIGlzIGlz c3VlZCBpbgorICAgICAgdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFy aWFibGUtbmFtZSI+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgVGhlIG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIHNlc3Npb24g dmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kYXRhX3R5cGUi PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIGRhdGEgdHlwZSBvZiB0 aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2 YXJpYWJsZS1jb2xsYXRlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5DT0xMQVRFIDxyZXBsYWNlYWJs ZT5jb2xsYXRpb248L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5DT0xMQVRFPC9saXRlcmFsPiBjbGF1 c2UgYXNzaWducyBhIGNvbGxhdGlvbiB0byB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgKHdo aWNoIG11c3QgYmUgb2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZSkuICBJZiBub3Qgc3BlY2lmaWVk LAorICAgICAgdGhlIGRhdGEgdHlwZSdzIGRlZmF1bHQgY29sbGF0aW9uIGlzIHVzZWQuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJp YWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPk5vdGVzPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFVzZSB0aGUgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29t bWFuZD4gY29tbWFuZCB0byByZW1vdmUgYSBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJh PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICBDcmVhdGUgYW4gZGF0ZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFs PnZhcjE8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgZGF0ZTsKK0xFVCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dy YW1saXN0aW5nPgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+ Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxl bGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2 YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZh cmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3Jl ZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uNWJkYjM1NjBmMGIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDExNyBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWRyb3B2YXJpYWJsZSI+CisgPGluZGV4dGVy bSB6b25lPSJzcWwtZHJvcHZhcmlhYmxlIj4KKyAgPHByaW1hcnk+RFJPUCBWQVJJQUJMRTwvcHJp bWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24g dmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+cmVtb3Zpbmc8L3NlY29uZGFyeT4KKyA8 L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIFZBUklBQkxF PC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2Np bmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4K KworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5EUk9QIFZBUklBQkxFPC9yZWZuYW1lPgorICA8 cmVmcHVycG9zZT5yZW1vdmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVm bmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0RST1AgVkFSSUFCTEUg WyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IFssIC4uLl0gWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorPC9zeW5vcHNpcz4KKyA8L3Jl ZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxl PgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFuZD4gcmVtb3Zl cyBhIHNlc3Npb24gdmFyaWFibGUuCisgICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIG9ubHkgYmUg cmVtb3ZlZCBieSBpdHMgb3duZXIgb3IgYSBzdXBlcnVzZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZh cmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJ U1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg RG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGRvZXMgbm90IGV4 aXN0LiBBIG5vdGljZSBpcworICAgICAgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFt ZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiBhIHNlc3Npb24gdmFyaWFibGUuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEF1dG9tYXRpY2FsbHkgZHJvcCBv YmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChzdWNoIGFzCisgICAg ICB2aWV3cyksIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9i amVjdHMKKyAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgc2Vzc2lv biB2YXJpYWJsZSBpZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzIGlzCisgICAgICB0 aGUgZGVmYXVsdC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbW92ZSB0aGUgc2Vz c2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKworPHByb2dyYW1saXN0aW5n PgorRFJPUCBWQVJJQUJMRSB2YXIxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisg IDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQg aXMgYQorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24u CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFs c288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxp c3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvZ3JhbnQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCA5OTlm NjU3ZDVjMC4uNzhmZjEwZmNmNWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKQEAgLTEwMSw2ICsxMDEsMTIg QEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFj ZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgICBbIFdJVEggeyBBRE1JTiB8IElOSEVSSVQg fCBTRVQgfSB7IE9QVElPTiB8IFRSVUUgfCBGQUxTRSB9IF0KICAgICBbIEdSQU5URUQgQlkgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFi bGU+IF0KIAorR1JBTlQgeyBTRUxFQ1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQor ICAgIE9OIFZBUklBQkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4g WywgLi4uXQorICAgICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAg VE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVw bGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZ IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxh Y2VhYmxlPiBdCisKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAg IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBs YWNlYWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmVzdG9yZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwKaW5kZXggMmUzYmE4MDI1ODEuLjk1MmY1 MmIxZjlkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2LDYgKzEwNiwxNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlz dGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9uPi1BIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJs ZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0tdmFyaWFibGU9PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2VhYmxlPjwv b3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg UmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11bHRpcGxlIHNlc3Npb24g dmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBtdWx0aXBsZSA8b3B0aW9u Pi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+ CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICA8dGVy bT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+PG9wdGlvbj4tLWNsZWFu PC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKaW5kZXggOGRmNDkyMjgxYTEuLjYyNmMw MjMxZDBkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKQEAgLTEzNyw2ICsxMzcsMTMgQEAgUkVWT0tFIFsg eyBBRE1JTiB8IElOSEVSSVQgfCBTRVQgfSBPUFRJT04gRk9SIF0KICAgfCBDVVJSRU5UX1JPTEUK ICAgfCBDVVJSRU5UX1VTRVIKICAgfCBTRVNTSU9OX1VTRVIKKworUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklW SUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uXQorICAgICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uXSB9CisgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBDQVND QURFIHwgUkVTVFJJQ1QgXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJl bmNlLnNnbWwKaW5kZXggZmY4NWFjZTgzZmMuLjI1NTc4ZjM5NDZjIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21s CkBAIC03NSw2ICs3NSw3IEBACiAgICAmYWx0ZXJUeXBlOwogICAgJmFsdGVyVXNlcjsKICAgICZh bHRlclVzZXJNYXBwaW5nOworICAgJmFsdGVyVmFyaWFibGU7CiAgICAmYWx0ZXJWaWV3OwogICAg JmFuYWx5emU7CiAgICAmYmVnaW47CkBAIC0xMjcsNiArMTI4LDcgQEAKICAgICZjcmVhdGVUeXBl OwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7CisgICAmY3JlYXRlVmFy aWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAgICZkZWFsbG9jYXRlOwogICAgJmRlY2xhcmU7CkBA IC0xNzUsNiArMTc3LDcgQEAKICAgICZkcm9wVHlwZTsKICAgICZkcm9wVXNlcjsKICAgICZkcm9w VXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlhYmxlOwogICAgJmRyb3BWaWV3OwogICAgJmVuZDsK ICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMTU4OWE3NWZkNTMuLjdhOTBmY2Zj NDU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTQ1LDYgKzQ1LDcgQEAgT0JKUyA9IFwKIAlwZ19z aGRlcGVuZC5vIFwKIAlwZ19zdWJzY3JpcHRpb24ubyBcCiAJcGdfdHlwZS5vIFwKKwlwZ192YXJp YWJsZS5vIFwKIAlzdG9yYWdlLm8gXAogCXRvYXN0aW5nLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5k ZXggYTQ0Y2NlZTNiNjguLjY5NjhiMWU2ZWJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRh bG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTY0LDYg KzY0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50 X3RyaWdnZXIuaCIKQEAgLTI5MCw2ICsyOTEsOSBAQCByZXN0cmljdF9hbmRfY2hlY2tfZ3JhbnQo Ym9vbCBpc19ncmFudCwgQWNsTW9kZSBhdmFpbF9nb3B0aW9ucywgYm9vbCBhbGxfcHJpdnMsCiAJ CWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdI VFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJ CXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZh dWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0 eXBlKTsKIAkJCS8qIG5vdCByZWFjaGVkLCBidXQga2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAt NTM0LDYgKzUzOCwxMCBAQCBFeGVjdXRlR3JhbnRTdG10KEdyYW50U3RtdCAqc3RtdCkKIAkJCWFs bF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWVycm9ybXNn ID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBwYXJhbWV0ZXIi KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2Vz ID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgi aW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJl YWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5v Ymp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIHN0bXQtPm9ianR5cGUpOwpAQCAtNjM5LDYgKzY0Nyw5 IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJbnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpF Q1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4ZWNHcmFudF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJYnJl YWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwg VmFyaWFibGVSZWxhdGlvbklkLCBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRSwgTlVMTCk7CisJCQli cmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10 Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgaXN0bXQtPm9ianR5cGUpOwpAQCAtODI5LDYgKzg0 MCwxOCBAQCBvYmplY3ROYW1lc1RvT2lkcyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iam5h bWVzLCBib29sIGlzX2dyYW50KQogCQkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywg cGFyYW1ldGVySWQpOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgor CQkJZm9yZWFjaChjZWxsLCBvYmpuYW1lcykKKwkJCXsKKwkJCQlSYW5nZVZhciAgICp2YXJ2YXIg PSAoUmFuZ2VWYXIgKikgbGZpcnN0KGNlbGwpOworCQkJCU9pZAkJCXJlbE9pZDsKKworCQkJCXJl bE9pZCA9IExvb2t1cFZhcmlhYmxlKHZhcnZhci0+c2NoZW1hbmFtZSwKKwkJCQkJCQkJCQl2YXJ2 YXItPnJlbG5hbWUsCisJCQkJCQkJCQkJZmFsc2UpOworCQkJCW9iamVjdHMgPSBsYXBwZW5kX29p ZChvYmplY3RzLCByZWxPaWQpOworCQkJfQorCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQp IG9ianR5cGUpOwpAQCAtOTE4LDYgKzk0MSwzMiBAQCBvYmplY3RzSW5TY2hlbWFUb09pZHMoT2Jq ZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpuc3BuYW1lcykKIAkJCQkJdGFibGVfY2xvc2UocmVsLCBB Y2Nlc3NTaGFyZUxvY2spOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJCXsKKwkJCQkJU2NhbktleURhdGEga2V5OworCQkJCQlSZWxhdGlvbglyZWw7CisJ CQkJCVRhYmxlU2NhbkRlc2Mgc2NhbjsKKwkJCQkJSGVhcFR1cGxlCXR1cGxlOworCisJCQkJCVNj YW5LZXlJbml0KCZrZXksCisJCQkJCQkJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlLAor CQkJCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJCU9iamVjdElk R2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKworCQkJCQlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxl UmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nh bl9jYXRhbG9nKHJlbCwgMSwgJmtleSk7CisKKwkJCQkJd2hpbGUgKCh0dXBsZSA9IGhlYXBfZ2V0 bmV4dChzY2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbikpICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJ CU9pZAkJCW9pZCA9ICgoRm9ybV9wZ19wcm9jKSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJ CQkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgb2lkKTsKKwkJCQkJfQorCisJCQkJ CXRhYmxlX2VuZHNjYW4oc2Nhbik7CisJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVM b2NrKTsKKwkJCQl9CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZCBub3Qg aGFwcGVuICovCiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlw ZTogJWQiLApAQCAtMTA3Nyw2ICsxMTI2LDEwIEBAIEV4ZWNBbHRlckRlZmF1bHRQcml2aWxlZ2Vz U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10ICpzCiAJ CQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1NDSEVNQTsKIAkJCWVycm9ybXNnID0g Z2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzY2hlbWEiKTsKIAkJ CWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNM X0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxp ZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJ CWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBl OiAlZCIsCiAJCQkJIChpbnQpIGFjdGlvbi0+b2JqdHlwZSk7CkBAIC0xMjY4LDYgKzEzMjEsMTIg QEAgU2V0RGVmYXVsdEFDTChJbnRlcm5hbERlZmF1bHRBQ0wgKmlhY2xzKQogCQkJCXRoaXNfcHJp dmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1NDSEVNQTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0JK RUNUX1ZBUklBQkxFOgorCQkJb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJQUJMRTsKKwkJCWlmIChp YWNscy0+YWxsX3ByaXZzICYmIHRoaXNfcHJpdmlsZWdlcyA9PSBBQ0xfTk9fUklHSFRTKQorCQkJ CXRoaXNfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CisK IAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVk IiwKIAkJCQkgKGludCkgaWFjbHMtPm9ianR5cGUpOwpAQCAtMTUxMSw2ICsxNTcwLDkgQEAgUmVt b3ZlUm9sZUZyb21PYmplY3RBQ0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmppZCkK IAkJCWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCQlpYWNscy5vYmp0eXBlID0gT0JKRUNU X1NDSEVNQTsKIAkJCQlicmVhazsKKwkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCWlh Y2xzLm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0Ogog CQkJCS8qIFNob3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVk IGRlZmF1bHQgQUNMIHR5cGU6ICVkIiwKQEAgLTE1NzEsNiArMTYzMyw5IEBAIFJlbW92ZVJvbGVG cm9tT2JqZWN0QUNMKE9pZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNl IFBhcmFtZXRlckFjbFJlbGF0aW9uSWQ6CiAJCQkJaXN0bXQub2JqdHlwZSA9IE9CSkVDVF9QQVJB TUVURVJfQUNMOwogCQkJCWJyZWFrOworCQkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQkJ aXN0bXQub2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6 CiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgb2JqZWN0IGNsYXNzICV1IiwgY2xhc3NpZCk7 CiAJCQkJYnJlYWs7CkBAIC0yODEwLDYgKzI4NzUsOSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1 bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX1RZUEU6CiAJ CQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciB0eXBlICVzIik7 CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJCQltc2cgPSBn ZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICVzIik7 CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRl eHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFrOwpA QCAtMjkyMSw2ICsyOTg5LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2Jq ZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0 dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHR5cGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJ CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBi ZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2Fz ZSBPQkpFQ1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBv ZiB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTMwNjksNiArMzE0MCw4IEBAIHBnX2FjbG1h c2soT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRudW0s IE9pZCByb2xlaWQsCiAJCQlyZXR1cm4gQUNMX05PX1JJR0hUUzsKIAkJY2FzZSBPQkpFQ1RfVFlQ RToKIAkJCXJldHVybiBvYmplY3RfYWNsbWFzayhUeXBlUmVsYXRpb25JZCwgb2JqZWN0X29pZCwg cm9sZWlkLCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiBv YmplY3RfYWNsbWFzayhWYXJpYWJsZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFz aywgaG93KTsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0 IHR5cGU6ICVkIiwKIAkJCQkgKGludCkgb2JqdHlwZSk7CkBAIC00MzM2LDYgKzQ0MDksMTAgQEAg Z2V0X3VzZXJfZGVmYXVsdF9hY2woT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCwgT2lk IG5zcF9vaWQpCiAJCQlkZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX05BTUVTUEFDRTsKIAkJCWJy ZWFrOwogCisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFD TE9CSl9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsK IAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDA0ODljYmFiY2I4Li41YTVlM2Y3YjU2 YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTY1LDEyICs2NSwxNCBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Bv bGljeS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIgorI2luY2x1ZGUg ImNvbW1hbmRzL3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dl ci5oIgpAQCAtMTQ0NCw2ICsxNDQ2LDEwIEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVz cyAqb2JqZWN0LCBpbnQgZmxhZ3MpCiAJCQlSZW1vdmVQdWJsaWNhdGlvbkJ5SWQob2JqZWN0LT5v YmplY3RJZCk7CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCURy b3BWYXJpYWJsZUJ5SWQob2JqZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNlIENh c3RSZWxhdGlvbklkOgogCQljYXNlIENvbGxhdGlvblJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29udmVy c2lvblJlbGF0aW9uSWQ6CkBAIC0xNDY3LDYgKzE0NzMsNyBAQCBkb0RlbGV0aW9uKGNvbnN0IE9i amVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdzKQogCQkJRHJvcE9iamVjdEJ5SWQob2JqZWN0 KTsKIAkJCWJyZWFrOwogCisKIAkJCS8qCiAJCQkgKiBUaGVzZSBnbG9iYWwgb2JqZWN0IHR5cGVz IGFyZSBub3Qgc3VwcG9ydGVkIGhlcmUuCiAJCQkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCmlu ZGV4IDJmM2RlZDhhMGU3Li5iZmRiNGRhMzMwMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCkBA IC0zMiw2ICszMiw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BnX3NoZGVwZW5k LmMnLAogICAncGdfc3Vic2NyaXB0aW9uLmMnLAogICAncGdfdHlwZS5jJywKKyAgJ3BnX3Zhcmlh YmxlLmMnLAogICAnc3RvcmFnZS5jJywKICAgJ3RvYXN0aW5nLmMnLAogKQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFt ZXNwYWNlLmMKaW5kZXggNDNiNzA3Njk5ZDcuLmMxODI0ZjkxMTVmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFt ZXNwYWNlLmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3BhcnNl ci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1vbi9oYXNoZm5fdW5zdGFi bGUuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05NzEsNiArOTcyLDY5IEBAIFJlbGF0aW9u SXNWaXNpYmxlRXh0KE9pZCByZWxpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJs ZTsKIH0KIAorLyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxlCisgKgkJRGV0ZXJtaW5lIHdoZXRoZXIg YSB2YXJpYWJsZSAoaWRlbnRpZmllZCBieSBPSUQpIGlzIHZpc2libGUgaW4gdGhlCisgKgkJY3Vy cmVudCBzZWFyY2ggcGF0aC4gVmlzaWJsZSBtZWFucyAid291bGQgYmUgZm91bmQgYnkgc2VhcmNo aW5nCisgKgkJZm9yIHRoZSB1bnF1YWxpZmllZCB2YXJpYWJsZSBuYW1lIi4KKyAqLworYm9vbAor VmFyaWFibGVJc1Zpc2libGUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl2YXJ0dXA7CisJRm9y bV9wZ192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKwlib29sCQl2aXNp YmxlOworCisJdmFydHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdl dERhdHVtKHZhcmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHZhcnR1cCkpCisJCWVsb2co RVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFy aWQpOworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHZhcnR1cCk7CisK KwlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkvKgorCSAqIFF1aWNrIGNoZWNrOiBpZiBp dCBhaW4ndCBpbiB0aGUgcGF0aCBhdCBhbGwsIGl0IGFpbid0IHZpc2libGUuIEl0ZW1zIGluCisJ ICogdGhlIHN5c3RlbSBuYW1lc3BhY2UgYXJlIHN1cmVseSBpbiB0aGUgcGF0aCBhbmQgc28gd2Ug bmVlZG4ndCBldmVuIGRvCisJICogbGlzdF9tZW1iZXJfb2lkKCkgZm9yIHRoZW0uCisJICovCisJ dmFybmFtZXNwYWNlID0gdmFyZm9ybS0+dmFybmFtZXNwYWNlOworCWlmICh2YXJuYW1lc3BhY2Ug IT0gUEdfQ0FUQUxPR19OQU1FU1BBQ0UgJiYKKwkJIWxpc3RfbWVtYmVyX29pZChhY3RpdmVTZWFy Y2hQYXRoLCB2YXJuYW1lc3BhY2UpKQorCQl2aXNpYmxlID0gZmFsc2U7CisJZWxzZQorCXsKKwkJ LyoKKwkJICogSWYgaXQgaXMgaW4gdGhlIHBhdGgsIGl0IG1pZ2h0IHN0aWxsIG5vdCBiZSB2aXNp YmxlOyBpdCBjb3VsZCBiZQorCQkgKiBoaWRkZW4gYnkgYW5vdGhlciB2YXJpYWJsZSBvZiB0aGUg c2FtZSBuYW1lIGVhcmxpZXIgaW4gdGhlIHBhdGguIFNvCisJCSAqIHdlIG11c3QgZG8gYSBzbG93 IGNoZWNrIGZvciBjb25mbGljdGluZyByZWxhdGlvbnMuCisJCSAqLworCQljaGFyCSAgICp2YXJu YW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKwkJTGlzdENlbGwgICAqbDsKKworCQl2 aXNpYmxlID0gZmFsc2U7CisJCWZvcmVhY2gobCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJ T2lkCQkJbmFtZXNwYWNlSWQgPSBsZmlyc3Rfb2lkKGwpOworCisJCQlpZiAobmFtZXNwYWNlSWQg PT0gdmFybmFtZXNwYWNlKQorCQkJeworCQkJCS8qIEZvdW5kIGl0IGZpcnN0IGluIHBhdGggKi8K KwkJCQl2aXNpYmxlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChPaWRJc1ZhbGlk KGdldF92YXJuYW1lX3ZhcmlkKHZhcm5hbWUsIG5hbWVzcGFjZUlkKSkpCisJCQl7CisJCQkJLyog Rm91bmQgc29tZXRoaW5nIGVsc2UgZmlyc3QgaW4gcGF0aCAqLworCQkJCWJyZWFrOworCQkJfQor CQl9CisJfQorCisJUmVsZWFzZVN5c0NhY2hlKHZhcnR1cCk7CisKKwlyZXR1cm4gdmlzaWJsZTsK K30KIAogLyoKICAqIFR5cGVuYW1lR2V0VHlwaWQKQEAgLTMyNzQsNiArMzMzOCw2OSBAQCBUU0Nv bmZpZ0lzVmlzaWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlzX21pc3NpbmcpCiAJcmV0dXJuIHZp c2libGU7CiB9CiAKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHNwZWNp ZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmllci4KKyAqCisgKiBJZiBub3QgZm91 bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBlbHNlIHRocm93cyBlcnJvci4K KyAqLworT2lkCitMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLAorCQkJICAgY29u c3QgY2hhciAqdmFybmFtZSwKKwkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sKKwlPaWQJCQluYW1l c3BhY2VJZDsKKwlPaWQJCQl2YXJvaWQgPSBJbnZhbGlkT2lkOworCUxpc3RDZWxsICAgKmw7CisK KwlpZiAobnNwbmFtZSkKKwl7CisJCW5hbWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3Bh Y2UobnNwbmFtZSwgbWlzc2luZ19vayk7CisKKwkJLyoKKwkJICogSWYgbnNwbmFtZSBpcyBub3Qg YSBrbm93biBuYW1lc3BhY2UsIHRoZW4gbnNwbmFtZS52YXJuYW1lIGNhbm5vdCBiZQorCQkgKiBh bnkgdXNhYmxlIHNlc3Npb24gdmFyaWFibGUuCisJCSAqLworCQlpZiAoT2lkSXNWYWxpZChuYW1l c3BhY2VJZCkpCisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVO U1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJu YW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJCX0KKwl9 CisJZWxzZQorCXsKKwkJLyogSXRlcmF0ZSBvdmVyIHNjaGVtYXMgaW4gc2VhcmNoX3BhdGggKi8K KwkJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJCWZvcmVhY2gobCwgYWN0aXZlU2VhcmNo UGF0aCkKKwkJeworCQkJbmFtZXNwYWNlSWQgPSBsZmlyc3Rfb2lkKGwpOworCisJCQl2YXJvaWQg PSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwK KwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkJCQkgT2JqZWN0SWRH ZXREYXR1bShuYW1lc3BhY2VJZCkpOworCisJCQlpZiAoT2lkSXNWYWxpZCh2YXJvaWQpKQorCQkJ CWJyZWFrOworCQl9CisJfQorCisJaWYgKCFPaWRJc1ZhbGlkKHZhcm9pZCkgJiYgIW1pc3Npbmdf b2spCisJeworCQlpZiAobnNwbmFtZSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFi bGUgXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQluc3BuYW1lLCB2YXJuYW1lKSkp OworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBkb2Vz IG5vdCBleGlzdCIsCisJCQkJCQkJdmFybmFtZSkpKTsKKwl9CisKKwlyZXR1cm4gdmFyb2lkOwor fQogCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCkBAIC01MDc1LDMgKzUyMDIsMTQg QEAgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEoUEdfRlVOQ1RJT05fQVJHUykKIAogCVBHX1JFVFVS Tl9CT09MKGlzT3RoZXJUZW1wTmFtZXNwYWNlKG9pZCkpOwogfQorCitEYXR1bQorcGdfdmFyaWFi bGVfaXNfdmlzaWJsZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCW9pZCA9IFBHX0dFVEFS R19PSUQoMCk7CisKKwlpZiAoIVNlYXJjaFN5c0NhY2hlRXhpc3RzMShWQVJJQUJMRU9JRCwgT2Jq ZWN0SWRHZXREYXR1bShvaWQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9C T09MKFZhcmlhYmxlSXNWaXNpYmxlKG9pZCkpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJl c3MuYwppbmRleCA4NWE3YjdlNjQxYS4uZWU3MGVlZWVkNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5jCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190 ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZy ZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC02MzYsNiArNjM3 LDIwIEBAIHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0UHJvcGVydHlbXSA9 CiAJCU9CSkVDVF9VU0VSX01BUFBJTkcsCiAJCWZhbHNlCiAJfSwKKwl7CisJCSJzZXNzaW9uIHZh cmlhYmxlIiwKKwkJVmFyaWFibGVSZWxhdGlvbklkLAorCQlWYXJpYWJsZU9pZEluZGV4SWQsCisJ CVZBUklBQkxFT0lELAorCQlWQVJJQUJMRU5BTUVOU1AsCisJCUFudW1fcGdfdmFyaWFibGVfb2lk LAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFt ZXNwYWNlLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyLAorCQlBbnVtX3BnX3ZhcmlhYmxl X3ZhcmFjbCwKKwkJT0JKRUNUX1ZBUklBQkxFLAorCQl0cnVlCisJfQogfTsKIAogLyoKQEAgLTgz MSw2ICs4NDYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCX0sCiAJ ewogCQkic3RhdGlzdGljcyBvYmplY3QiLCBPQkpFQ1RfU1RBVElTVElDX0VYVAorCX0sCisJewor CQkic2Vzc2lvbiB2YXJpYWJsZSIsIE9CSkVDVF9WQVJJQUJMRQogCX0KIH07CiAKQEAgLTg1Niw2 ICs4NzQsNyBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfYXR0cmRl ZihPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCQlib29sIG1pc3Npbmdfb2spOwogc3Rh dGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3R5cGUoT2JqZWN0VHlwZSBvYmp0 eXBlLAogCQkJCQkJCQkJCQkgVHlwZU5hbWUgKnR5cGVuYW1lLCBib29sIG1pc3Npbmdfb2spOwor c3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9i amVjdCwgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3Rf YWRkcmVzc19vcGNmKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqZWN0LAogCQkJCQkJCQkJ CQkgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRk cmVzc19vcGZfbWVtYmVyKE9iamVjdFR5cGUgb2JqdHlwZSwKQEAgLTExMjYsNiArMTE0NSw5IEBA IGdldF9vYmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJ CQkJCQkJCQkJCQkJCSBtaXNzaW5nX29rKTsKIAkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsK IAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCWFkZHJlc3MgPSBnZXRf b2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwgbWlzc2luZ19v ayk7CisJCQkJYnJlYWs7CiAJCQkJLyogbm8gZGVmYXVsdCwgdG8gbGV0IGNvbXBpbGVyIHdhcm4g YWJvdXQgbWlzc2luZyBjYXNlICovCiAJCX0KIApAQCAtMjAwMCwxNiArMjAyMiwyMCBAQCBnZXRf b2JqZWN0X2FkZHJlc3NfZGVmYWNsKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQlj YXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQlvYmp0eXBlX3N0ciA9ICJzY2hlbWFzIjsKIAkJ CWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCW9ianR5cGVfc3RyID0gInZh cmlhYmxlcyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJybXNn KCJ1bnJlY29nbml6ZWQgZGVmYXVsdCBBQ0wgb2JqZWN0IHR5cGUgXCIlY1wiIiwgb2JqdHlwZSks Ci0JCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJlIFwiJWNcIiwgXCIlY1wiLCBc IiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCisJCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlw ZXMgYXJlIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIuIiwK IAkJCQkJCQkgREVGQUNMT0JKX1JFTEFUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpfU0VRVUVOQ0Us CiAJCQkJCQkJIERFRkFDTE9CSl9GVU5DVElPTiwKIAkJCQkJCQkgREVGQUNMT0JKX1RZUEUsCi0J CQkJCQkJIERFRkFDTE9CSl9OQU1FU1BBQ0UpKSk7CisJCQkJCQkJIERFRkFDTE9CSl9OQU1FU1BB Q0UsCisJCQkJCQkJIERFRkFDTE9CSl9WQVJJQUJMRSkpKTsKIAl9CiAKIAkvKgpAQCAtMjA5Myw2 ICsyMTE5LDI0IEBAIHRleHRhcnJheV90b19zdHJ2YWx1ZWxpc3QoQXJyYXlUeXBlICphcnIpCiAJ cmV0dXJuIGxpc3Q7CiB9CiAKKy8qCisgKiBGaW5kIHRoZSBPYmplY3RBZGRyZXNzIGZvciBhIHNl c3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2dldF9vYmplY3RfYWRk cmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlPYmplY3RB ZGRyZXNzIGFkZHJlc3M7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7CisJY2hhcgkgICAqdmFy bmFtZSA9IE5VTEw7CisKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJlc3MsIFZhcmlhYmxlUmVsYXRp b25JZCwgSW52YWxpZE9pZCk7CisKKwlEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUob2JqZWN0LCAm bnNwbmFtZSwgJnZhcm5hbWUpOworCWFkZHJlc3Mub2JqZWN0SWQgPSBMb29rdXBWYXJpYWJsZShu c3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKKworCXJldHVybiBhZGRyZXNzOworfQorCiAv KgogICogU1FMLWNhbGxhYmxlIHZlcnNpb24gb2YgZ2V0X29iamVjdF9hZGRyZXNzCiAgKi8KQEAg LTIyODcsNiArMjMzMSw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdT KQogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgogCQljYXNlIE9CSkVDVF9PUENMQVNTOgog CQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlvYmpu b2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVU SE9EOgpAQCAtMjQ1OCw2ICsyNTAzLDcgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9s ZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJY2FzZSBP QkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNl IE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJaWYg KCFvYmplY3Rfb3duZXJjaGVjayhhZGRyZXNzLmNsYXNzSWQsIGFkZHJlc3Mub2JqZWN0SWQsIHJv bGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBvYmp0eXBlLAog CQkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSkpOwpAQCAt MzQ0Niw2ICszNDkyLDMyIEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJl c3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2Ug VmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKm5zcG5hbWU7CisJCQkJSGVh cFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwkJCQl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmpl Y3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsCisJCQkJCQkg b2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdF VFNUUlVDVCh0dXApOworCisJCQkJaWYgKFZhcmlhYmxlSXNWaXNpYmxlKG9iamVjdC0+b2JqZWN0 SWQpKQorCQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQllbHNlCisJCQkJCW5zcG5hbWUgPSBnZXRf bmFtZXNwYWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKworCQkJCWFwcGVuZFN0cmlu Z0luZm8oJmJ1ZmZlciwgXygic2Vzc2lvbiB2YXJpYWJsZSAlcyIpLAorCQkJCQkJCQkgcXVvdGVf cXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJCQkJCQkJCQkJCQkJCU5hbWVTdHIodmFy Zm9ybS0+dmFybmFtZSkpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFr OworCQkJfQorCiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlvbklkOgogCQkJewogCQkJCUhlYXBUdXBs ZQl0dXA7CkBAIC0zNzk4LDYgKzM4NzAsMTYgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3Qg T2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJCQkJCQkJIF8oImRl ZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2NoZW1hcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAog CQkJCQkJCQkJCSByb2xlbmFtZSk7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpf VkFSSUFCTEU6CisJCQkJCQlpZiAobnNwbmFtZSkKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZi dWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNlc3Npb24g dmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIGluIHNjaGVtYSAlcyIpLAorCQkJCQkJCQkJ CQkgcm9sZW5hbWUsIG5zcG5hbWUpOworCQkJCQkJZWxzZQorCQkJCQkJCWFwcGVuZFN0cmluZ0lu Zm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vz c2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMiKSwKKwkJCQkJCQkJCQkJIHJvbGVu YW1lKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJLyogc2hvdWxkbid0IGdl dCBoZXJlICovCiAJCQkJCQlpZiAobnNwbmFtZSkKQEAgLTQ2MTQsNiArNDY5NiwxMCBAQCBnZXRP YmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1p c3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJ0cmFuc2Zvcm0i KTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZygmYnVmZmVyLCAic2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CisK IAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1 Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CkBAIC01NzIwLDYgKzU4MDYsMTAgQEAgZ2V0T2JqZWN0 SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCiAJCQkJCQkJCQkJCSAgICIgb24gc2NoZW1hcyIpOwog CQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJCQkgICAiIG9uIHNlc3Npb24gdmFy aWFibGVzIik7CisJCQkJCQlicmVhazsKIAkJCQl9CiAKIAkJCQlpZiAob2JqbmFtZSkKQEAgLTU5 NjAsNiArNjA1MCwzMyBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJl c3MgKm9iamVjdCwKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklk OgorCQkJeworCQkJCWNoYXIJICAgKnNjaGVtYTsKKwkJCQljaGFyCSAgICp2YXJuYW1lOworCQkJ CUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJCQkJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+ b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLAorCQkJ CQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxl KSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCXNjaGVtYSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90 ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJCQkJdmFybmFtZSA9IE5hbWVTdHIodmFyZm9y bS0+dmFybmFtZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIlcyIsCisJCQkJ CQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihzY2hlbWEsIHZhcm5hbWUpKTsKKworCQkJ CWlmIChvYmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTIoc2NoZW1hLCB2YXJuYW1l KTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIG9i amVjdC0+Y2xhc3NJZCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z aGRlcGVuZC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCmluZGV4IDc1M2Fm Yjg4NDUzLi4xZWEzZDZkYjA1YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z aGRlcGVuZC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYwpAQCAtNDYs NiArNDYsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVy LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRz L2RlZnJlbS5oIgpAQCAtMTcxNCw2ICsxNzE1LDcgQEAgc2hkZXBSZWFzc2lnbk93bmVkX093bmVy KEZvcm1fcGdfc2hkZXBlbmQgc2RlcEZvcm0sIE9pZCBuZXdyb2xlKQogCQljYXNlIERhdGFiYXNl UmVsYXRpb25JZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CiAJCWNhc2UgVFNEaWN0aW9u YXJ5UmVsYXRpb25JZDoKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQlBbHRlck9iamVj dE93bmVyX2ludGVybmFsKHNkZXBGb3JtLT5jbGFzc2lkLAogCQkJCQkJCQkJICBzZGVwRm9ybS0+ b2JqaWQsCiAJCQkJCQkJCQkgIG5ld3JvbGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjUxMjE0NDBhOQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMCwwICsx LDI1NSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFyaWFibGUuYworICoJCXNl c3Npb24gdmFyaWFibGVzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoK KyAqIElERU5USUZJQ0FUSU9OCisgKgkJc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j CisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisK KyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5 LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFt ZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5o IgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNj YWNoZS5oIgorCitzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hh ciAqdmFyTmFtZSwKKwkJCQkJCQkJCSBPaWQgdmFyTmFtZXNwYWNlLAorCQkJCQkJCQkJIE9pZCB2 YXJUeXBlLAorCQkJCQkJCQkJIGludDMyIHZhclR5cG1vZCwKKwkJCQkJCQkJCSBPaWQgdmFyT3du ZXIsCisJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKKwkJCQkJCQkJCSBib29sIGlmX25vdF9l eGlzdHMpOworCisKKy8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3ZhcmlhYmxlIHRhYmxlCisg Ki8KK3N0YXRpYyBPYmplY3RBZGRyZXNzCitjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFy TmFtZSwKKwkJCQlPaWQgdmFyTmFtZXNwYWNlLAorCQkJCU9pZCB2YXJUeXBlLAorCQkJCWludDMy IHZhclR5cG1vZCwKKwkJCQlPaWQgdmFyT3duZXIsCisJCQkJT2lkIHZhckNvbGxhdGlvbiwKKwkJ CQlib29sIGlmX25vdF9leGlzdHMpCit7CisJQWNsCQkgICAqdmFyYWNsOworCU5hbWVEYXRhCXZh cm5hbWU7CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfdmFyaWFibGVdOworCURhdHVtCQl2YWx1ZXNb TmF0dHNfcGdfdmFyaWFibGVdOworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCVR1 cGxlRGVzYwl0dXBkZXNjOworCU9iamVjdEFkZHJlc3MgbXlzZWxmLAorCQkJCXJlZmVyZW5jZWQ7 CisJT2JqZWN0QWRkcmVzc2VzICphZGRyczsKKwlPaWQJCQl2YXJpZDsKKworCUFzc2VydCh2YXJO YW1lKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJOYW1lc3BhY2UpKTsKKwlBc3NlcnQoT2lkSXNW YWxpZCh2YXJUeXBlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyT3duZXIpKTsKKworCXJlbCA9 IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8q CisJICogQ2hlY2sgZm9yIGR1cGxpY2F0ZXMuIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IHJlYWxs eSBwcmV2ZW50CisJICogZHVwbGljYXRlcywgaXQncyBoZXJlIGp1c3QgdG8gcHJvdmlkZSBuaWNl ciBlcnJvciBtZXNzYWdlIGluIGNvbW1vbgorCSAqIGNhc2UuIFRoZSByZWFsIHByb3RlY3Rpb24g aXMgdGhlIHVuaXF1ZSBrZXkgb24gdGhlIGNhdGFsb2cuCisJICovCisJaWYgKFNlYXJjaFN5c0Nh Y2hlRXhpc3RzMihWQVJJQUJMRU5BTUVOU1AsCisJCQkJCQkJICBQb2ludGVyR2V0RGF0dW0odmFy TmFtZSksCisJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFjZSkpKQorCXsKKwkJ aWYgKGlmX25vdF9leGlzdHMpCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycmNvZGUoRVJS Q09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBc IiVzXCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nIiwKKwkJCQkJCQl2YXJOYW1lKSkpOworCQll bHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9P QkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4 aXN0cyIsCisJCQkJCQkJdmFyTmFtZSkpKTsKKworCQl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1 c2l2ZUxvY2spOworCisJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVzczsKKwl9CisKKwltZW1z ZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6 ZW9mKG51bGxzKSk7CisKKwluYW1lc3RyY3B5KCZ2YXJuYW1lLCB2YXJOYW1lKTsKKworCXZhcmlk ID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBBbnVtX3BnX3Zh cmlhYmxlX29pZCk7CisKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAxXSA9IE9iamVj dElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUgLSAx XSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFy bmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFjZSk7CisJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJUeXBl KTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMyR2V0RGF0 dW0odmFyVHlwbW9kKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAtIDFdID0g T2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFy Y29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisKKwl2YXJh Y2wgPSBnZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAorCQkJ CQkJCQkgIHZhck5hbWVzcGFjZSk7CisJaWYgKHZhcmFjbCAhPSBOVUxMKQorCQl2YWx1ZXNbQW51 bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1bSh2YXJhY2wpOworCWVs c2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IHRydWU7CisKKwl0dXBk ZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxlKHR1 cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJ QXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCWFkZHJzID0gbmV3X29iamVjdF9hZGRyZXNz ZXMoKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBWYXJpYWJsZVJlbGF0aW9uSWQsIHZh cmlkKTsKKworCS8qIGRlcGVuZGVuY3kgb24gbmFtZXNwYWNlICovCisJT2JqZWN0QWRkcmVzc1Nl dChyZWZlcmVuY2VkLCBOYW1lc3BhY2VSZWxhdGlvbklkLCB2YXJOYW1lc3BhY2UpOworCWFkZF9l eGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5j eSBvbiB1c2VkIHR5cGUgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFR5cGVSZWxh dGlvbklkLCB2YXJUeXBlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQs IGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gY29sbGF0aW9uICovCisJaWYgKE9pZElzVmFs aWQodmFyQ29sbGF0aW9uKSAmJgorCQl2YXJDb2xsYXRpb24gIT0gREVGQVVMVF9DT0xMQVRJT05f T0lEKQorCXsKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBDb2xsYXRpb25SZWxhdGlv bklkLCB2YXJDb2xsYXRpb24pOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5j ZWQsIGFkZHJzKTsKKwl9CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5kZW5jaWVzKCZt eXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9vYmplY3RfYWRkcmVzc2Vz KGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KKwlyZWNvcmREZXBlbmRlbmN5 T25Pd25lcihWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CisKKwkvKiBkZXBl bmRlbmNpZXMgb24gcm9sZXMgbWVudGlvbmVkIGluIGRlZmF1bHQgQUNMICovCisJcmVjb3JkRGVw ZW5kZW5jeU9uTmV3QWNsKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIHZhck93bmVyLCB2 YXJhY2wpOworCisJLyogZGVwZW5kZW5jeSBvbiBleHRlbnNpb24gKi8KKwlyZWNvcmREZXBlbmRl bmN5T25DdXJyZW50RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNlKTsKKworCWhlYXBfZnJlZXR1cGxl KHR1cCk7CisKKwkvKiBQb3N0IGNyZWF0aW9uIGhvb2sgZm9yIG5ldyBmdW5jdGlvbiAqLworCUlu dm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDApOwor CisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBteXNlbGY7 Cit9CisKKy8qCisgKiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCisgKgorICogVXNlZCBieSBDUkVB VEUgVkFSSUFCTEUgY29tbWFuZAorICovCitPYmplY3RBZGRyZXNzCitDcmVhdGVWYXJpYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQoreworCU9pZAkJ CW5hbWVzcGFjZWlkOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lkCQkJdHlwaWQ7CisJaW50 MzIJCXR5cG1vZDsKKwlPaWQJCQl2YXJvd25lciA9IEdldFVzZXJJZCgpOworCU9pZAkJCWNvbGxh dGlvbjsKKwlPaWQJCQl0eXBjb2xsYXRpb247CisJT2JqZWN0QWRkcmVzcyB2YXJpYWJsZTsKKwor CW5hbWVzcGFjZWlkID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKHN0 bXQtPnZhcmlhYmxlLCBOb0xvY2ssIE5VTEwpOworCisJdHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0 YXRlLCBzdG10LT50eXBlTmFtZSwgJnR5cGlkLCAmdHlwbW9kKTsKKworCS8qIERpc2FsbG93IHBz ZXVkb3R5cGVzICovCisJaWYgKGdldF90eXB0eXBlKHR5cGlkKSA9PSBUWVBUWVBFX1BTRVVETykK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBF KSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSAl cyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpKSk7CisKKwlhY2xyZXN1bHQgPSBvYmpl Y3RfYWNsY2hlY2soVHlwZVJlbGF0aW9uSWQsIHR5cGlkLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdF KTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcl90eXBl KGFjbHJlc3VsdCwgdHlwaWQpOworCisJdHlwY29sbGF0aW9uID0gZ2V0X3R5cGNvbGxhdGlvbih0 eXBpZCk7CisKKwlpZiAoc3RtdC0+Y29sbENsYXVzZSkKKwkJY29sbGF0aW9uID0gTG9va3VwQ29s bGF0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2UtPmNvbGxuYW1lLAorCQkJ CQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pOworCWVsc2UKKwkJY29sbGF0aW9uID0g dHlwY29sbGF0aW9uOzsKKworCS8qIENvbXBsYWluIGlmIENPTExBVEUgaXMgYXBwbGllZCB0byBh biB1bmNvbGxhdGFibGUgdHlwZSAqLworCWlmIChPaWRJc1ZhbGlkKGNvbGxhdGlvbikgJiYgIU9p ZElzVmFsaWQodHlwY29sbGF0aW9uKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJjb2xsYXRpb25zIGFyZSBu b3Qgc3VwcG9ydGVkIGJ5IHR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwK KwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRp b24pKSk7CisKKwl2YXJpYWJsZSA9IGNyZWF0ZV92YXJpYWJsZShzdG10LT52YXJpYWJsZS0+cmVs bmFtZSwKKwkJCQkJCQkgICBuYW1lc3BhY2VpZCwKKwkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkg ICB0eXBtb2QsCisJCQkJCQkJICAgdmFyb3duZXIsCisJCQkJCQkJICAgY29sbGF0aW9uLAorCQkJ CQkJCSAgIHN0bXQtPmlmX25vdF9leGlzdHMpOworCisJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9y IHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6JWQpIHdhcyBjcmVhdGVkIGluIHBnX3Zhcmlh YmxlIiwKKwkJIHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLCB2YXJpYWJsZS5vYmplY3RJZCk7CisK KwkvKiBXZSB3YW50IFNlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzIHRvIHNlZSB0aGUg Y2F0YWxvZyBjaGFuZ2VzLiAqLworCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisKKwlyZXR1 cm4gdmFyaWFibGU7Cit9CisKKy8qCisgKiBEcm9wIHZhcmlhYmxlIGJ5IE9JRCwgYW5kIHJlZ2lz dGVyIHRoZSBuZWVkZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogY2xlYW51cC4KKyAqLwordm9pZAor RHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpCit7CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBs ZQl0dXA7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVz aXZlTG9jayk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElk R2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisK KwlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOworCisJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2FsdGVyLmMKaW5kZXggNGY5OWViYjQ0NzAuLjYzZmE5OWZhZDM0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Fs dGVyLmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX2RpY3QuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3BhcnNlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHNfdGVtcGxhdGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb2xsYXRpb25jbWRzLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgpAQCAtMTM5LDYgKzE0MCwxMCBAQCBy ZXBvcnRfbmFtZXNwYWNlX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBjb25zdCBjaGFyICpuYW1lLCBP aWQgbnNwT2lkKQogCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CiAJCQltc2dmbXQgPSBn ZXR0ZXh0X25vb3AoInRleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24gXCIlc1wiIGFscmVhZHkgZXhp c3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKIAkJCWJyZWFrOworCQljYXNlIFZhcmlhYmxlUmVsYXRp b25JZDoKKwkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkpOworCQkJbXNnZm10ID0gZ2V0dGV4 dF9ub29wKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEg XCIlc1wiIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBv cnRlZCBvYmplY3QgY2xhc3M6ICV1IiwgY2xhc3NJZCk7CiAJCQlicmVhazsKQEAgLTQxOCw2ICs0 MjMsNyBAQCBFeGVjUmVuYW1lU3RtdChSZW5hbWVTdG10ICpzdG10KQogCQljYXNlIE9CSkVDVF9U U1RFTVBMQVRFOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoKIAkJY2FzZSBPQkpFQ1RfU1VC U0NSSVBUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlPYmplY3RBZGRy ZXNzIGFkZHJlc3M7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKQEAgLTU2MSw2ICs1NjcsNyBAQCBF eGVjQWx0ZXJPYmplY3RTY2hlbWFTdG10KEFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqc3RtdCwKIAkJ Y2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2Fz ZSBPQkpFQ1RfVFNURU1QTEFURToKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJCQkJ UmVsYXRpb24JY2F0YWxvZzsKIAkJCQlSZWxhdGlvbglyZWxhdGlvbjsKQEAgLTY0NSw2ICs2NTIs NyBAQCBBbHRlck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lk IG5zcE9pZCwKIAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgogCQljYXNlIFRTVGVtcGxh dGVSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoKKwkJY2FzZSBWYXJpYWJs ZVJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKIApAQCAtODc1LDYgKzg4 Myw3IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAkJY2FzZSBP QkpFQ1RfVEFCTEVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9C SkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJ CVJlbGF0aW9uCXJlbGF0aW9uOwogCQkJCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9kcm9wY21kcy5jCmluZGV4IDg1ZWVjN2UzOTQ3Li4zY2NlMTdlOTJhZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9kcm9wY21kcy5jCkBAIC00NzYsNiArNDc2LDEwIEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5n KE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CiAJCQluYW1l ID0gc3RyVmFsKG9iamVjdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJ CQltc2cgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4 aXN0LCBza2lwcGluZyIpOworCQkJbmFtZSA9IE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlz dCwgb2JqZWN0KSk7CisJCQlicmVhazsKIAogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2Ug T0JKRUNUX0RBVEFCQVNFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRf dHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IDdh NWVkNmI5ODUwLi42ZDQxYWE3ZWMzZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXZlbnRfdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIu YwpAQCAtMjE1Niw2ICsyMTU2LDggQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0VHlw ZSBvYmp0eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNFIjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToK IAkJCXJldHVybiAiVFlQRSI7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuICJW QVJJQUJMRSI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBP QkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpAQCAtMjIzOSw2 ICsyMjQxLDggQEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlw ZSkKIAkJCXJldHVybiAiVEFCTEVTUEFDRVMiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0 dXJuICJUWVBFUyI7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJM RVMiOwogCQkJLyogdGhlc2UgY3VycmVudGx5IGFyZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNU X0FDQ0VTU19NRVRIT0Q6CiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNs YWJlbC5jCmluZGV4IDU2MDcyNzNiZjlmLi5jMDI2YWI1ZGNiOCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNs YWJlbC5jCkBAIC05Miw2ICs5Miw3IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmplY3RUeXBlKE9iamVj dFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JKRUNUX1RT VEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKKwkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CiAJCQlyZXR1cm4gZmFsc2U7CiAKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j CmluZGV4IDcyMWQyNDc4M2I0Li5iYzg1Njk5MjJmMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9zdG9yYWdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlX3hsb2cuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3RvYXN0aW5nLmgiCkBAIC02NzI0LDYgKzY3MjUsOCBAQCBBVFR5cGVkVGFibGVS ZWN1cnNpb24oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQs CiAgKiBFdmVudHVhbGx5LCB3ZSdkIGxpa2UgdG8gcHJvcGFnYXRlIHRoZSBjaGVjayBvciByZXdy aXRlIG9wZXJhdGlvbgogICogaW50byBzdWNoIHRhYmxlcywgYnV0IGZvciBub3csIGp1c3QgZXJy b3Igb3V0IGlmIHdlIGZpbmQgYW55LgogICoKKyAqIENoZWNrIGlmIHRoZSB0eXBlICJ0eXBlT2lk IiBpcyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlhYmxlIHRvby4KKyAqCiAgKiBD YWxsZXIgc2hvdWxkIHByb3ZpZGUgZWl0aGVyIHRoZSBhc3NvY2lhdGVkIHJlbGF0aW9uIG9mIGEg cm93dHlwZSwKICAqIG9yIGEgdHlwZSBuYW1lIChub3QgYm90aCkgZm9yIHVzZSBpbiB0aGUgZXJy b3IgbWVzc2FnZSwgaWYgYW55LgogICoKQEAgLTY3ODYsNiArNjc4OSw0NSBAQCBmaW5kX2NvbXBv c2l0ZV90eXBlX2RlcGVuZGVuY2llcyhPaWQgdHlwZU9pZCwgUmVsYXRpb24gb3JpZ1JlbGF0aW9u LAogCQkJY29udGludWU7CiAJCX0KIAorCQkvKiBEb24ndCBhbGxvdyBjaGFuZ2Ugb2YgdHlwZSB1 c2VkIGJ5IHNlc3Npb24ncyB2YXJpYWJsZSAqLworCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09 IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJeworCQkJT2lkCQkJdmFyaWQgPSBwZ19kZXBlbmQtPm9i amlkOworCisJCQlpZiAob3JpZ1R5cGVOYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJj YW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiB1c2VzIGl0IiwKKwkJCQkJCQkJb3JpZ1R5cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNl X25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0 aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSkKKwkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lv biB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+ cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJt c2coImNhbm5vdCBhbHRlciBmb3JlaWduIHRhYmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFy aWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtp bmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAorCQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJl bGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+ cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkg ZXJybXNnKCJjYW5ub3QgYWx0ZXIgdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9y aWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZSh2YXJpZCkpKSk7CisKKwkJCWNvbnRpbnVlOworCQl9CisKIAkJLyogRWxzZSwgaWdub3JlIGRl cGVuZGVlcyB0aGF0IGFyZW4ndCByZWxhdGlvbnMgKi8KIAkJaWYgKHBnX2RlcGVuZC0+Y2xhc3Np ZCAhPSBSZWxhdGlvblJlbGF0aW9uSWQpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGEw NDNmZDRjNjY5Li41N2I1ZjY4ODJiMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01Myw2ICs1Myw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJncmFtcGFyc2UuaCIKQEAgLTI5NSw4ICsyOTYsOCBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlz dCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlDb25zdHJhaW50c1NldFN0bXQgQ29weVN0bXQg Q3JlYXRlQXNTdG10IENyZWF0ZUNhc3RTdG10CiAJCUNyZWF0ZURvbWFpblN0bXQgQ3JlYXRlRXh0 ZW5zaW9uU3RtdCBDcmVhdGVHcm91cFN0bXQgQ3JlYXRlT3BDbGFzc1N0bXQKIAkJQ3JlYXRlT3BG YW1pbHlTdG10IEFsdGVyT3BGYW1pbHlTdG10IENyZWF0ZVBMYW5nU3RtdAotCQlDcmVhdGVTY2hl bWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQgQ3JlYXRlVGFi bGVTcGFjZVN0bXQKLQkJQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVh dGVGb3JlaWduVGFibGVTdG10CisJCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2Vzc2lvblZhclN0 bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3RtdAorCQlDcmVhdGVUYWJs ZVNwYWNlU3RtdCBDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZv cmVpZ25UYWJsZVN0bXQKIAkJQ3JlYXRlQXNzZXJ0aW9uU3RtdCBDcmVhdGVUcmFuc2Zvcm1TdG10 IENyZWF0ZVRyaWdTdG10IENyZWF0ZUV2ZW50VHJpZ1N0bXQKIAkJQ3JlYXRlVXNlclN0bXQgQ3Jl YXRlVXNlck1hcHBpbmdTdG10IENyZWF0ZVJvbGVTdG10IENyZWF0ZVBvbGljeVN0bXQKIAkJQ3Jl YXRlZGJTdG10IERlY2xhcmVDdXJzb3JTdG10IERlZmluZVN0bXQgRGVsZXRlU3RtdCBEaXNjYXJk U3RtdCBEb1N0bXQKQEAgLTc5MCw4ICs3OTEsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CVVFU0NBUEUgVU5CT1VOREVEIFVOQ09ORElUSU9OQUwgVU5DT01NSVRURUQgVU5FTkNSWVBURUQg VU5JT04gVU5JUVVFIFVOS05PV04KIAlVTkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNF UiBVU0lORwogCi0JVkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVF UyBWQVJDSEFSIFZBUklBRElDIFZBUllJTkcKLQlWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdT IFZPTEFUSUxFCisJVkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVF UyBWQVJDSEFSIFZBUklBQkxFIFZBUklBQkxFUworCVZBUklBRElDIFZBUllJTkcgVkVSQk9TRSBW RVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQQUNFX1Ag V0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAgLTEwNjEs NiArMTA2Miw3IEBAIHN0bXQ6CiAJCQl8IENyZWF0ZVBvbGljeVN0bXQKIAkJCXwgQ3JlYXRlUExh bmdTdG10CiAJCQl8IENyZWF0ZVNjaGVtYVN0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQK IAkJCXwgQ3JlYXRlU2VxU3RtdAogCQkJfCBDcmVhdGVTdG10CiAJCQl8IENyZWF0ZVN1YnNjcmlw dGlvblN0bXQKQEAgLTE2MDUsNiArMTYwNyw3IEBAIHNjaGVtYV9zdG10OgogCQkJfCBDcmVhdGVU cmlnU3RtdAogCQkJfCBHcmFudFN0bXQKIAkJCXwgVmlld1N0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lv blZhclN0bXQKIAkJOwogCiAKQEAgLTUyMDIsNiArNTIwNSwzNCBAQCBjcmVhdGVfZXh0ZW5zaW9u X29wdF9pdGVtOgogCQkJCX0KIAkJOwogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJ UVVFUlkgOgorICoJCQkJQ1JFQVRFIFZBUklBQkxFIHZhcm5hbWUgW0FTXSB0eXBlCisgKgorICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworCitDcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCUNSRUFURSBW QVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNl CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNl c3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAkMzsKKwkJCQkJbi0+dHlwZU5hbWUg PSAkNTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQlu LT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJ CQl8IENSRUFURSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2Fz IFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZh clN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZhcmlh YmxlID0gJDY7CisJCQkJCW4tPnR5cGVOYW1lID0gJDg7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAo Q29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CisJCQkJ CSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAg KgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBAIC03MDA2 LDYgKzcwMzcsNyBAQCBvYmplY3RfdHlwZV9hbnlfbmFtZToKIAkJCXwgVEVYVF9QIFNFQVJDSCBE SUNUSU9OQVJZCQkJCXsgJCQgPSBPQkpFQ1RfVFNESUNUSU9OQVJZOyB9CiAJCQl8IFRFWFRfUCBT RUFSQ0ggVEVNUExBVEUJCQkJeyAkJCA9IE9CSkVDVF9UU1RFTVBMQVRFOyB9CiAJCQl8IFRFWFRf UCBTRUFSQ0ggQ09ORklHVVJBVElPTgkJCXsgJCQgPSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOyB9 CisJCQl8IFZBUklBQkxFCQkJCQkJCQl7ICQkID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJCTsKIAog LyoKQEAgLTc4ODIsNiArNzkxNCwxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpz ID0gJDI7CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IFZBUklBQkxFIHF1YWxpZmllZF9uYW1l X2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Mo c2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVD VDsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQy OworCQkJCQkkJCA9IG47CisJCQkJfQogCQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIG5hbWVf bGlzdAogCQkJCXsKIAkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhz aXplb2YoUHJpdlRhcmdldCkpOwpAQCAtNzkyNyw2ICs3OTY3LDE0IEBAIHByaXZpbGVnZV90YXJn ZXQ6CiAJCQkJCW4tPm9ianMgPSAkNTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgQUxMIFZB UklBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4g PSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFy Z3R5cGUgPSBBQ0xfVEFSR0VUX0FMTF9JTl9TQ0hFTUE7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpF Q1RfVkFSSUFCTEU7CisJCQkJCW4tPm9ianMgPSAkNTsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJ OwogCiAKQEAgLTgxMjQsNiArODE3Miw3IEBAIGRlZmFjbF9wcml2aWxlZ2VfdGFyZ2V0OgogCQkJ fCBTRVFVRU5DRVMJCXsgJCQgPSBPQkpFQ1RfU0VRVUVOQ0U7IH0KIAkJCXwgVFlQRVNfUAkJeyAk JCA9IE9CSkVDVF9UWVBFOyB9CiAJCQl8IFNDSEVNQVMJCXsgJCQgPSBPQkpFQ1RfU0NIRU1BOyB9 CisJCQl8IFZBUklBQkxFUwkJeyAkJCA9IE9CSkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIApAQCAt OTkwNiw2ICs5OTU1LDI0IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVf d2l0aF9hcmd0eXBlcyBSRU5BTUUgVE8gbmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7 CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9u YW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUo UmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJ CW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXduYW1lID0gJDY7CisJCQkJCW4t Pm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBB TFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsK KwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCQkJCQluLT5yZW5h bWVUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsK KwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJ JCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIG9wdF9jb2x1bW46IENPTFVNTgpAQCAtMTAy NjcsNiArMTAzMzQsMjQgQEAgQWx0ZXJPYmplY3RTY2hlbWFTdG10OgogCQkJCQluLT5taXNzaW5n X29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZB UklBQkxFIGFueV9uYW1lIFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RT Y2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+ b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikg JDM7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7 CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBF WElTVFMgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNj aGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5v YmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAk NTsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwor CQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CkBAIC0xMDU0OCw2ICsxMDYzMywxNCBAQCBBbHRlck93bmVyU3RtdDogQUxURVIgQUdHUkVHQVRF IGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9XTkVSIFRPIFJvbGVTcGVjCiAJCQkJCW4tPm5ld293 bmVyID0gJDY7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklB QkxFIGFueV9uYW1lIE9XTkVSIFRPIFJvbGVTcGVjCisJCQkJeworCQkJCQlBbHRlck93bmVyU3Rt dCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9C SkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5l d293bmVyID0gJDY7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAKQEAgLTE3 ODc4LDYgKzE3OTcxLDggQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBWQUxJREFURQogCQkJ fCBWQUxJREFUT1IKIAkJCXwgVkFMVUVfUAorCQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMK IAkJCXwgVkFSWUlORwogCQkJfCBWRVJTSU9OX1AKIAkJCXwgVklFVwpAQCAtMTg1MzMsNiArMTg2 MjgsOCBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZBTFVFX1AKIAkJCXwgVkFMVUVTCiAJ CQl8IFZBUkNIQVIKKwkJCXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUklBRElD CiAJCQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lPTl9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQu YwppbmRleCBkNWMyYjJmZjBiMC4uMmZiYTkwYzk1YTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0 aWxjbWQuYwpAQCAtMTA3LDYgKzEwNyw3IEBAIHR5cGVkZWYgc3RydWN0CiAJTGlzdAkgICAqaW5k ZXhlczsJCS8qIENSRUFURSBJTkRFWCBpdGVtcyAqLwogCUxpc3QJICAgKnRyaWdnZXJzOwkJLyog Q1JFQVRFIFRSSUdHRVIgaXRlbXMgKi8KIAlMaXN0CSAgICpncmFudHM7CQkJLyogR1JBTlQgaXRl bXMgKi8KKwlMaXN0CSAgICp2YXJpYWJsZXM7CQkvKiBDUkVBVEUgVkFSSUFCTEUgaXRlbXMgKi8K IH0gQ3JlYXRlU2NoZW1hU3RtdENvbnRleHQ7CiAKIApAQCAtMzk2Niw2ICszOTY3LDcgQEAgdHJh bnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNo YXIgKnNjaGVtYU5hbWUpCiAJY3h0LmluZGV4ZXMgPSBOSUw7CiAJY3h0LnRyaWdnZXJzID0gTklM OwogCWN4dC5ncmFudHMgPSBOSUw7CisJY3h0LnZhcmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICog UnVuIHRocm91Z2ggZWFjaCBzY2hlbWEgZWxlbWVudCBpbiB0aGUgc2NoZW1hIGVsZW1lbnQgbGlz dC4gU2VwYXJhdGUKQEAgLTQwMzQsNiArNDAzNiwxNSBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFT dG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAkJ CQljeHQuZ3JhbnRzID0gbGFwcGVuZChjeHQuZ3JhbnRzLCBlbGVtZW50KTsKIAkJCQlicmVhazsK IAorCQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vz c2lvblZhclN0bXQgKmVscCA9IChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBlbGVtZW50OworCisJ CQkJCXNldFNjaGVtYU5hbWUoY3h0LnNjaGVtYW5hbWUsICZlbHAtPnZhcmlhYmxlLT5zY2hlbWFu YW1lKTsKKwkJCQkJY3h0LnZhcmlhYmxlcyA9IGxhcHBlbmQoY3h0LnZhcmlhYmxlcywgZWxlbWVu dCk7CisJCQkJfQorCQkJCWJyZWFrOworCiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1 bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJCSAoaW50KSBub2RlVGFnKGVsZW1lbnQp KTsKQEAgLTQwNDcsNiArNDA1OCw3IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50 cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCXJlc3VsdCA9IGxp c3RfY29uY2F0KHJlc3VsdCwgY3h0LmluZGV4ZXMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJl c3VsdCwgY3h0LnRyaWdnZXJzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC5n cmFudHMpOworCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnZhcmlhYmxlcyk7CiAK IAlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5 LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCBmYTY2YjgwMTdlZC4uY2U4ZGI3 Y2RhNDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiY2F0YWxv Zy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfaW5oZXJpdHMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVy LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKQEAgLTE4Miw2ICsxODMsNyBAQCBDbGFz c2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9D cmVhdGVSYW5nZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVSb2xlU3RtdDoKIAkJY2FzZSBUX0NyZWF0 ZVNjaGVtYVN0bXQ6CisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKIAkJY2FzZSBUX0Ny ZWF0ZVNlcVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdGF0c1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVT dG10OgpAQCAtMTM4Niw2ICsxMzg4LDEwIEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCQkJfQogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZh clN0bXQ6CisJCQkJYWRkcmVzcyA9IENyZWF0ZVZhcmlhYmxlKHBzdGF0ZSwgKENyZWF0ZVNlc3Np b25WYXJTdG10ICopIHBhcnNldHJlZSk7CisJCQkJYnJlYWs7CisKIAkJCQkvKgogCQkJCSAqICoq KioqKioqKioqKiogb2JqZWN0IGNyZWF0aW9uIC8gZGVzdHJ1Y3Rpb24gKioqKioqKioqKioqKioK IAkJCQkgKi8KQEAgLTIzMzgsNiArMjM0NCw5IEBAIEFsdGVyT2JqZWN0VHlwZUNvbW1hbmRUYWco T2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJdGFn ID0gQ01EVEFHX0FMVEVSX1NUQVRJU1RJQ1M7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVm YXVsdDoKIAkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJYnJlYWs7CkBAIC0yNjQ2LDYgKzI2 NTUsOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVD VF9TVEFUSVNUSUNfRVhUOgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9TVEFUSVNUSUNTOwogCQkJ CQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQkJdGFnID0gQ01EVEFHX0RS T1BfVkFSSUFCTEU7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1bHQ6CiAJCQkJCXRhZyA9IENNRFRB R19VTktOT1dOOwogCQkJfQpAQCAtMzIyMiw2ICszMjM0LDEwIEBAIENyZWF0ZUNvbW1hbmRUYWco Tm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVNlc3Np b25WYXJTdG10OgorCQkJdGFnID0gQ01EVEFHX0NSRUFURV9WQVJJQUJMRTsKKwkJCWJyZWFrOwor CiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdBUk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAl ZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcocGFyc2V0cmVlKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvYWNsLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKaW5kZXgg ZDdiMzkxNDBiM2QuLjVmODBhZjRmNWUwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvYWNsLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBAIC04NTAsNiArODUw LDEwIEBAIGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCkKIAkJCXdv cmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExf UklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CisJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKKwkJCW93bmVyX2RlZmF1bHQgPSBB Q0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhF UlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCAoaW50KSBvYmp0eXBlKTsKIAkJ CXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICov CkBAIC05NDcsNiArOTUxLDkgQEAgYWNsZGVmYXVsdF9zcWwoUEdfRlVOQ1RJT05fQVJHUykKIAkJ Y2FzZSAnVCc6CiAJCQlvYmp0eXBlID0gT0JKRUNUX1RZUEU7CiAJCQlicmVhazsKKwkJY2FzZSAn Vic6CisJCQlvYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGFiYnJldmlhdGlvbjog JWMiLCBvYmp0eXBlYyk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCA0 OGEyODBkMDg5Yi4uOWE1ZTIzNjY1Y2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5j CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyYW5zZm9ybS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNj YWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJ1dGlscy9h cnJheS5oIgpAQCAtMzcxNCwzICszNzE1LDExNSBAQCBnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lk IHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAKIAlyZXR1cm4gc3VibmFtZTsKIH0KKworLyoJCQkJ LS0tLS0tLS0tLSBQR19WQVJJQUJMRSBDQUNIRSAtLS0tLS0tLS0tCQkJCSAqLworCisvKgorICog Z2V0X3Zhcm5hbWVfdmFyaWQKKyAqCQlHaXZlbiBuYW1lIGFuZCBuYW1lc3BhY2Ugb2YgdmFyaWFi bGUsIGxvb2sgdXAgdGhlIE9JRC4KKyAqLworT2lkCitnZXRfdmFybmFtZV92YXJpZChjb25zdCBj aGFyICp2YXJuYW1lLCBPaWQgdmFybmFtZXNwYWNlKQoreworCXJldHVybiBHZXRTeXNDYWNoZU9p ZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJCSAgIFBvaW50 ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0odmFybmFtZXNw YWNlKSk7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJUmV0dXJu cyBhIHBhbGxvYydkIGNvcHkgb2YgdGhlIG5hbWUgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxl LgorICovCitjaGFyICoKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKQorewor CUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZh cm5hbWU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlk KTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2 YXJuYW1lID0gcHN0cmR1cChOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKTsKKworCVJlbGVhc2VT eXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWU7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lc3BhY2UKKyAqCQlSZXR1cm5zIHRoZSBwZ19uYW1lc3BhY2UgT0lEIGFz c29jaWF0ZWQgd2l0aCBhIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOwor CUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJuYW1lc3BhY2U7CisKKwl0dXAg PSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsK KworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1f cGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+ dmFybmFtZXNwYWNlOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFt ZXNwYWNlOworfQorCisvKgorICogUmV0dXJucyB0aGUgdHlwZSwgdHlwbW9kIGFuZCBjb2xsaWQg b2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nlc3Npb25fdmFy aWFibGVfdHlwZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3Zhcmlh YmxlIHZhcmZvcm07CisJT2lkCQkJdmFydHlwZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShW QVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJ c1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNz aW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxl KSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcnR5cGUgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJUmVs ZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFydHlwZTsKK30KKworLyoKKyAqIFJldHVy bnMgdGhlIHR5cGUsIHR5cG1vZCBhbmQgY29sbGlkIG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlh YmxlLgorICovCit2b2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQo T2lkIHZhcmlkLCBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJCU9pZCAqY29s bGlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJ dHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlk KSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJm b3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJKnR5cGlkID0gdmFy Zm9ybS0+dmFydHlwZTsKKwkqdHlwbW9kID0gdmFyZm9ybS0+dmFydHlwbW9kOworCSpjb2xsaWQg PSB2YXJmb3JtLT52YXJjb2xsYXRpb247CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKK30KZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYyBiL3NyYy9iaW4vcGdfZHVtcC9jb21t b24uYwppbmRleCBjMzIzYjViZDNkOS4uNDA3OWFkNjAzYWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9jb21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKQEAgLTI0Nyw2 ICsyNDcsOSBAQCBnZXRTY2hlbWFEYXRhKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzUHRy KQogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHN1YnNjcmlwdGlvbiBtZW1iZXJzaGlwIG9mIHRhYmxl cyIpOwogCWdldFN1YnNjcmlwdGlvblRhYmxlcyhmb3V0KTsKIAorCXBnX2xvZ19pbmZvKCJyZWFk aW5nIHZhcmlhYmxlcyIpOworCWdldFZhcmlhYmxlcyhmb3V0KTsKKwogCWZyZWUoaW5oaW5mbyk7 CQkJCS8qIG5vdCBuZWVkZWQgYW55IGxvbmdlciAqLwogCiAJKm51bVRhYmxlc1B0ciA9IG51bVRh YmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYyBiL3NyYy9iaW4v cGdfZHVtcC9kdW1wdXRpbHMuYwppbmRleCA1NjQ5ODU5YWExZS4uNTBkZTVkMGVhMjkgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYworKysgYi9zcmMvYmluL3BnX2R1bXAv ZHVtcHV0aWxzLmMKQEAgLTUxMSw2ICs1MTEsMTIgQEAgZG8geyBcCiAJCUNPTlZFUlRfUFJJVign cicsICJTRUxFQ1QiKTsKIAkJQ09OVkVSVF9QUklWKCd3JywgIlVQREFURSIpOwogCX0KKwllbHNl IGlmIChzdHJjbXAodHlwZSwgIlZBUklBQkxFIikgPT0gMCB8fAorCQkJIHN0cmNtcCh0eXBlLCAi VkFSSUFCTEVTIikgPT0gMCkKKwl7CisJCUNPTlZFUlRfUFJJVigncicsICJTRUxFQ1QiKTsKKwkJ Q09OVkVSVF9QUklWKCd3JywgIlVQREFURSIpOworCX0KIAllbHNlCiAJCWFib3J0KCk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9w Z19iYWNrdXAuaAppbmRleCBmYmY1ZjFjNTE1ZS4uZTgxY2ZkZTI3NGUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw LmgKQEAgLTEzMywxMiArMTMzLDE0IEBAIHR5cGVkZWYgc3RydWN0IF9yZXN0b3JlT3B0aW9ucwog CWludAkJCXNlbEZ1bmN0aW9uOwogCWludAkJCXNlbFRyaWdnZXI7CiAJaW50CQkJc2VsVGFibGU7 CisJaW50CQkJc2VsVmFyaWFibGU7CiAJU2ltcGxlU3RyaW5nTGlzdCBpbmRleE5hbWVzOwogCVNp bXBsZVN0cmluZ0xpc3QgZnVuY3Rpb25OYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHNjaGVtYU5h bWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1hRXhjbHVkZU5hbWVzOwogCVNpbXBsZVN0cmlu Z0xpc3QgdHJpZ2dlck5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3QgdGFibGVOYW1lczsKKwlTaW1w bGVTdHJpbmdMaXN0IHZhcmlhYmxlTmFtZXM7CiAKIAlpbnQJCQl1c2VEQjsKIAlDb25uUGFyYW1z CWNwYXJhbXM7CQkvKiBwYXJhbWV0ZXJzIHRvIHVzZSBpZiB1c2VEQiAqLwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDY4ZTMyMTIxMmQ5Li43Njg0NmNjNzYzMiAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMzA5OCw2ICszMDk4LDE0IEBAIF90b2NF bnRyeVJlcXVpcmVkKFRvY0VudHJ5ICp0ZSwgdGVTZWN0aW9uIGN1clNlY3Rpb24sIEFyY2hpdmVI YW5kbGUgKkFIKQogCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dHJpZ2dl ck5hbWVzLCB0ZS0+dGFnKSkKIAkJCQkJcmV0dXJuIDA7CiAJCQl9CisJCQllbHNlIGlmIChzdHJj bXAodGUtPmRlc2MsICJWQVJJQUJMRSIpID09IDApCisJCQl7CisJCQkJaWYgKCFyb3B0LT5zZWxW YXJpYWJsZSkKKwkJCQkJcmV0dXJuIDA7CisJCQkJaWYgKHJvcHQtPnZhcmlhYmxlTmFtZXMuaGVh ZCAhPSBOVUxMICYmCisJCQkJCSFzaW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT52YXJp YWJsZU5hbWVzLCB0ZS0+dGFnKSkKKwkJCQkJcmV0dXJuIDA7CisJCQl9CiAJCQllbHNlCiAJCQkJ cmV0dXJuIDA7CiAJCX0KQEAgLTM2NDcsNiArMzY1NSw3IEBAIF9nZXRPYmplY3REZXNjcmlwdGlv bihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAkJc3RyY21wKHR5cGUsICJU RVhUIFNFQVJDSCBESUNUSU9OQVJZIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VB UkNIIENPTkZJR1VSQVRJT04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVFlQRSIpID09IDAg fHwKKwkJc3RyY21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJW SUVXIikgPT0gMCB8fAogCS8qIG5vbi1zY2hlbWEtc3BlY2lmaWVkIG9iamVjdHMgKi8KIAkJc3Ry Y21wKHR5cGUsICJEQVRBQkFTRSIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGI4YjE4ODhiZDMz Li4zMjU4ZTZhYzE2NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0zMjQsNiArMzI0LDcgQEAgc3RhdGljIHZv aWQgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAq cHViaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBQdWJsaWNhdGlvblJlbEluZm8gKnB1YnJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBT dWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAqc3ViaW5m byk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29u c3QgU3ViUmVsSW5mbyAqc3VicmluZm8pOworc3RhdGljIHZvaWQgZHVtcFZhcmlhYmxlKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1w RGF0YWJhc2UoQXJjaGl2ZSAqZm91dCk7CiBzdGF0aWMgdm9pZCBkdW1wRGF0YWJhc2VDb25maWco QXJjaGl2ZSAqQUgsIFBRRXhwQnVmZmVyIG91dGJ1ZiwKIAkJCQkJCQkgICBjb25zdCBjaGFyICpk Ym5hbWUsIE9pZCBkYm9pZCk7CkBAIC01MzEzLDYgKzUzMTQsMTkzIEBAIGdldF9uZXh0X3Bvc3Np YmxlX2ZyZWVfcGdfdHlwZV9vaWQoQXJjaGl2ZSAqZm91dCwgUFFFeHBCdWZmZXIgdXBncmFkZV9x dWVyeSkKIAlyZXR1cm4gbmV4dF9wb3NzaWJsZV9mcmVlX29pZDsKIH0KIAorLyoKKyAqIGdldFZh cmlhYmxlcworICoJICBnZXQgaW5mb3JtYXRpb24gYWJvdXQgdmFyaWFibGVzCisgKi8KK3ZvaWQK K2dldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBH cmVzdWx0ICAgKnJlczsKKwlWYXJpYWJsZUluZm8gKnZhcmluZm87CisJaW50CQkJaV90YWJsZW9p ZDsKKwlpbnQJCQlpX29pZDsKKwlpbnQJCQlpX3Zhcm5hbWU7CisJaW50CQkJaV92YXJuYW1lc3Bh Y2U7CisJaW50CQkJaV92YXJ0eXBlOworCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlpX3Zh cm93bmVyOworCWludAkJCWlfdmFyY29sbGF0aW9uOworCWludAkJCWlfdmFyYWNsOworCWludAkJ CWlfYWNsZGVmYXVsdDsKKwlpbnQJCQlpLAorCQkJCW50dXBzOworCisJaWYgKGZvdXQtPnJlbW90 ZVZlcnNpb24gPCAxNzAwMDApCisJCXJldHVybjsKKworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZm ZXIoKTsKKworCXJlc2V0UFFFeHBCdWZmZXIocXVlcnkpOworCisJLyogR2V0IHRoZSB2YXJpYWJs ZXMgaW4gY3VycmVudCBkYXRhYmFzZS4gKi8KKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJ CQkJICAiU0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgInYu dmFybmFtZXNwYWNlLFxuIgorCQkJCQkgICJ2LnZhcnR5cGUsXG4iCisJCQkJCSAgInBnX2NhdGFs b2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxcbiIK KwkJCQkJICAiQ0FTRSBXSEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKKwkJ CQkJICAiVEhFTiB2LnZhcmNvbGxhdGlvbiBFTFNFIDAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIK KwkJCQkJICAidi52YXJvd25lcixcbiIKKwkJCQkJICAidi52YXJhY2wsXG4iCisJCQkJCSAgImFj bGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCisJCQkJCSAgIkZST00g cGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2XG4iCisJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ190 eXBlIHQgIgorCQkJCQkgICJPTiAodi52YXJ0eXBlID0gdC5vaWQpIik7CisKKwlyZXMgPSBFeGVj dXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisKKwludHVw cyA9IFBRbnR1cGxlcyhyZXMpOworCisJaV90YWJsZW9pZCA9IFBRZm51bWJlcihyZXMsICJ0YWJs ZW9pZCIpOworCWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOworCWlfdmFybmFtZSA9IFBR Zm51bWJlcihyZXMsICJ2YXJuYW1lIik7CisJaV92YXJuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVz LCAidmFybmFtZXNwYWNlIik7CisJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cGUi KTsKKwlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIpOworCWlfdmFy Y29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOworCisJaV92YXJvd25l ciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOworCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJl cywgInZhcmFjbCIpOworCWlfYWNsZGVmYXVsdCA9IFBRZm51bWJlcihyZXMsICJhY2xkZWZhdWx0 Iik7CisKKwl2YXJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFZhcmlhYmxlSW5mbykp OworCisJZm9yIChpID0gMDsgaSA8IG50dXBzOyBpKyspCisJeworCQlUeXBlSW5mbyAgICp2dHlw ZTsKKworCQl2YXJpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX1ZBUklBQkxFOworCQl2YXJpbmZv W2ldLmRvYmouY2F0SWQudGFibGVvaWQgPQorCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3RhYmxlb2lkKSk7CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2 YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmdmFyaW5mb1tpXS5kb2JqKTsK KwkJdmFyaW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf dmFybmFtZSkpOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZXNwYWNlID0KKwkJCWZpbmROYW1lc3Bh Y2UoYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5hbWVzcGFjZSkpKTsKKworCQl2YXJp bmZvW2ldLnZhcnR5cGUgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwZSkpOwor CQl2YXJpbmZvW2ldLnZhcnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf dmFydHlwbmFtZSkpOworCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZh bHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKKworCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0g cGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOworCQl2YXJpbmZvW2ldLmRh Y2wuYWNsZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0 KSk7CisJCXZhcmluZm9baV0uZGFjbC5wcml2dHlwZSA9IDA7CisJCXZhcmluZm9baV0uZGFjbC5p bml0cHJpdnMgPSBOVUxMOworCQl2YXJpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdl dHZhbHVlKHJlcywgaSwgaV92YXJvd25lcikpOworCisJCS8qIERlY2lkZSB3aGV0aGVyIHdlIHdh bnQgdG8gZHVtcCBpdCAqLworCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHZhcmluZm9baV0uZG9i aiksIGZvdXQpOworCisJCS8qIERvIG5vdCB0cnkgdG8gZHVtcCBBQ0wgaWYgbm8gQUNMIGV4aXN0 cy4gKi8KKwkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfdmFyYWNsKSkKKwkJCXZhcmluZm9b aV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09NUE9ORU5UX0FDTDsKKworCQlpZiAoc3RybGVu KHZhcmluZm9baV0ucm9sbmFtZSkgPT0gMCkKKwkJCXBnX2xvZ193YXJuaW5nKCJvd25lciBvZiB2 YXJpYWJsZSBcIiVzXCIgYXBwZWFycyB0byBiZSBpbnZhbGlkIiwKKwkJCQkJCSAgIHZhcmluZm9b aV0uZG9iai5uYW1lKTsKKworCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQg Ki8KKwkJc2VsZWN0RHVtcGFibGVPYmplY3QoJih2YXJpbmZvW2ldLmRvYmopLCBmb3V0KTsKKwor CQl2dHlwZSA9IGZpbmRUeXBlQnlPaWQodmFyaW5mb1tpXS52YXJ0eXBlKTsKKwkJYWRkT2JqZWN0 RGVwZW5kZW5jeSgmdmFyaW5mb1tpXS5kb2JqLCB2dHlwZS0+ZG9iai5kdW1wSWQpOworCX0KKwlQ UWNsZWFyKHJlcyk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworfQorCisvKgorICog ZHVtcFZhcmlhYmxlCisgKgkgIGR1bXAgdGhlIGRlZmluaXRpb24gb2YgdGhlIGdpdmVuIHNlc3Np b24gdmFyaWFibGUKKyAqLworc3RhdGljIHZvaWQKK2R1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBm b3V0LT5kb3B0OworCisJUFFFeHBCdWZmZXIgZGVscTsKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlj aGFyCSAgICpxdWFsdmFybmFtZTsKKwljb25zdCBjaGFyICp2YXJ0eXBuYW1lOworCU9pZAkJCXZh cmNvbGxhdGlvbjsKKworCS8qIFNraXAgaWYgbm90IHRvIGJlIGR1bXBlZCAqLworCWlmICghdmFy aW5mby0+ZG9iai5kdW1wIHx8IGRvcHQtPmRhdGFPbmx5KQorCQlyZXR1cm47CisKKwlkZWxxID0g Y3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlx dWFsdmFybmFtZSA9IHBnX3N0cmR1cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CisJ dmFydHlwbmFtZSA9IHZhcmluZm8tPnZhcnR5cG5hbWU7CisJdmFyY29sbGF0aW9uID0gdmFyaW5m by0+dmFyY29sbGF0aW9uOworCisJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFC TEUgJXM7XG4iLAorCQkJCQkgIHF1YWx2YXJuYW1lKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiQ1JFQVRFIFZBUklBQkxFICVzIEFTICVzIiwKKwkJCQkJICBxdWFsdmFybmFtZSwgdmFy dHlwbmFtZSk7CisKKwlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQorCXsKKwkJQ29sbElu Zm8gICAqY29sbDsKKworCQljb2xsID0gZmluZENvbGxhdGlvbkJ5T2lkKHZhcmNvbGxhdGlvbik7 CisJCWlmIChjb2xsKQorCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgQ09MTEFURSAlcyIs CisJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CisJfQorCisJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICI7XG4iKTsKKworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1Q X0NPTVBPTkVOVF9ERUZJTklUSU9OKQorCQlBcmNoaXZlRW50cnkoZm91dCwgdmFyaW5mby0+ZG9i ai5jYXRJZCwgdmFyaW5mby0+ZG9iai5kdW1wSWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9 IHZhcmluZm8tPmRvYmoubmFtZSwKKwkJCQkJCQkJICAubmFtZXNwYWNlID0gdmFyaW5mby0+ZG9i ai5uYW1lc3BhY2UtPmRvYmoubmFtZSwKKwkJCQkJCQkJICAub3duZXIgPSB2YXJpbmZvLT5yb2xu YW1lLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9ICJWQVJJQUJMRSIsCisJCQkJCQkJCSAgLnNl Y3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnkt PmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10ID0gZGVscS0+ZGF0YSkpOworCisJLyogRHVtcCBj b21tZW50IGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVO VF9DT01NRU5UKQorCQlkdW1wQ29tbWVudChmb3V0LCAiVkFSSUFCTEUiLCBxdWFsdmFybmFtZSwK KwkJCQkJTlVMTCwgdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJdmFyaW5mby0+ZG9iai5jYXRJZCwg MCwgdmFyaW5mby0+ZG9iai5kdW1wSWQpOworCisJLyogRHVtcCBBQ0wgaWYgYW55ICovCisJaWYg KHZhcmluZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0FDTCkKKwl7CisJCWNoYXIJICAg KnF2YXJuYW1lID0gcGdfc3RyZHVwKGZtdElkKHZhcmluZm8tPmRvYmoubmFtZSkpOworCisJCWR1 bXBBQ0woZm91dCwgdmFyaW5mby0+ZG9iai5kdW1wSWQsIEludmFsaWREdW1wSWQsICJWQVJJQUJM RSIsCisJCQkJcXZhcm5hbWUsIE5VTEwsCisJCQkJdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRv YmoubmFtZSwgTlVMTCwgdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkmdmFyaW5mby0+ZGFjbCk7CisK KwkJZnJlZShxdmFybmFtZSk7CisJfQorCisJZGVzdHJveVBRRXhwQnVmZmVyKGRlbHEpOworCWRl c3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisKKwlmcmVlKHF1YWx2YXJuYW1lKTsKK30KKwogc3Rh dGljIHZvaWQKIGJpbmFyeV91cGdyYWRlX3NldF90eXBlX29pZHNfYnlfdHlwZV9vaWQoQXJjaGl2 ZSAqZm91dCwKIAkJCQkJCQkJCQkgUFFFeHBCdWZmZXIgdXBncmFkZV9idWZmZXIsCkBAIC05ODc1 LDcgKzEwMDYzLDggQEAgZ2V0QWRkaXRpb25hbEFDTHMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJZG9i ai0+b2JqVHlwZSA9PSBET19UQUJMRSB8fAogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1BST0NM QU5HIHx8CiAJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fRkRXIHx8Ci0JCQkJCWRvYmotPm9ialR5 cGUgPT0gRE9fRk9SRUlHTl9TRVJWRVIpCisJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fRk9SRUlH Tl9TRVJWRVIgfHwKKwkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19WQVJJQUJMRSkKIAkJCQl7CiAJ CQkJCUR1bXBhYmxlT2JqZWN0V2l0aEFjbCAqZGFvYmogPSAoRHVtcGFibGVPYmplY3RXaXRoQWNs ICopIGRvYmo7CiAKQEAgLTEwNDc0LDYgKzEwNjYzLDkgQEAgZHVtcER1bXBhYmxlT2JqZWN0KEFy Y2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNlIERPX1NVQlNDUklQVElP Tl9SRUw6CiAJCQlkdW1wU3Vic2NyaXB0aW9uVGFibGUoZm91dCwgKGNvbnN0IFN1YlJlbEluZm8g KikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19WQVJJQUJMRToKKwkJCWR1bXBWYXJpYWJs ZShmb3V0LCAoVmFyaWFibGVJbmZvICopIGRvYmopOworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFJF X0RBVEFfQk9VTkRBUlk6CiAJCWNhc2UgRE9fUE9TVF9EQVRBX0JPVU5EQVJZOgogCQkJLyogbmV2 ZXIgZHVtcGVkLCBub3RoaW5nIHRvIGRvICovCkBAIC0xNDkyMyw2ICsxNTExNSw5IEBAIGR1bXBE ZWZhdWx0QUNMKEFyY2hpdmUgKmZvdXQsIGNvbnN0IERlZmF1bHRBQ0xJbmZvICpkYWNsaW5mbykK IAkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNFOgogCQkJdHlwZSA9ICJTQ0hFTUFTIjsKIAkJCWJy ZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCXR5cGUgPSAiVkFSSUFCTEVTIjsK KwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJCQlw Z19mYXRhbCgidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGluIGRlZmF1bHQgcHJpdmlsZWdlczog JWQiLApAQCAtMTgzNzAsNiArMTg1NjUsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1w YWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fQ09OVkVSU0lPTjoK IAkJCWNhc2UgRE9fVEFCTEU6CiAJCQljYXNlIERPX1RBQkxFX0FUVEFDSDoKKwkJCWNhc2UgRE9f VkFSSUFCTEU6CiAJCQljYXNlIERPX0FUVFJERUY6CiAJCQljYXNlIERPX1BST0NMQU5HOgogCQkJ Y2FzZSBET19DQVNUOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNGIyZTU4NzBhOWMuLjM2YTY5YTA4MzI0IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKQEAgLTUyLDYgKzUyLDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9fVEFCTEUsCiAJ RE9fVEFCTEVfQVRUQUNILAogCURPX0FUVFJERUYsCisJRE9fVkFSSUFCTEUsCiAJRE9fSU5ERVgs CiAJRE9fSU5ERVhfQVRUQUNILAogCURPX1NUQVRTRVhULApAQCAtNjkyLDYgKzY5MywyMyBAQCB0 eXBlZGVmIHN0cnVjdCBfU3ViUmVsSW5mbwogCWNoYXIJICAgKnNyc3VibHNuOwogfSBTdWJSZWxJ bmZvOwogCisvKgorICogVGhlIFZhcmlhYmxlSW5mbyBzdHJ1Y3QgaXMgdXNlZCB0byByZXByZXNl bnQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwor eworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJRHVtcGFibGVBY2wgZGFjbDsKKwlPaWQJCQl2YXJ0 eXBlOworCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJY2hhcgkgICAqdmFyYWNsOworCWNoYXIJICAg KnJ2YXJhY2w7CisJY2hhcgkgICAqaW5pdHZhcmFjbDsKKwljaGFyCSAgICppbml0cnZhcmFjbDsK KwlPaWQJCQl2YXJjb2xsYXRpb247CisJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Yg b3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLworfSBWYXJpYWJsZUluZm87CisKIC8qCiAgKgljb21t b24gdXRpbGl0eSBmdW5jdGlvbnMKICAqLwpAQCAtNzc1LDUgKzc5Myw2IEBAIGV4dGVybiB2b2lk IGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10s CiAJCQkJCQkJCSBpbnQgbnVtVGFibGVzKTsKIGV4dGVybiB2b2lkIGdldFN1YnNjcmlwdGlvbnMo QXJjaGl2ZSAqZm91dCk7CiBleHRlcm4gdm9pZCBnZXRTdWJzY3JpcHRpb25UYWJsZXMoQXJjaGl2 ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCk7CiAKICNl bmRpZgkJCQkJCQkvKiBQR19EVU1QX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCA0Y2I3 NTRjYWE1NS4uZWJiOWJmMDM3YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w X3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTc4LDYgKzc4 LDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19EVU1NWV9UWVBFLAogCVBS SU9fQVRUUkRFRiwKIAlQUklPX0xBUkdFX09CSkVDVCwKKwlQUklPX1ZBUklBQkxFLAogCVBSSU9f UFJFX0RBVEFfQk9VTkRBUlksCQkvKiBib3VuZGFyeSEgKi8KIAlQUklPX1RBQkxFX0RBVEEsCiAJ UFJJT19TRVFVRU5DRV9TRVQsCkBAIC0xMTksNiArMTIwLDcgQEAgc3RhdGljIGNvbnN0IGludCBk Yk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlbRE9fVEFCTEVdID0gUFJJT19UQUJMRSwKIAlbRE9f VEFCTEVfQVRUQUNIXSA9IFBSSU9fVEFCTEVfQVRUQUNILAogCVtET19BVFRSREVGXSA9IFBSSU9f QVRUUkRFRiwKKwlbRE9fVkFSSUFCTEVdID0gUFJJT19WQVJJQUJMRSwKIAlbRE9fSU5ERVhdID0g UFJJT19JTkRFWCwKIAlbRE9fSU5ERVhfQVRUQUNIXSA9IFBSSU9fSU5ERVhfQVRUQUNILAogCVtE T19TVEFUU0VYVF0gPSBQUklPX1NUQVRTRVhULApAQCAtMTQ5MCw2ICsxNDkyLDEwIEBAIGRlc2Ny aWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVm c2l6ZSkKIAkJCQkJICJQT1NULURBVEEgQk9VTkRBUlkgIChJRCAlZCkiLAogCQkJCQkgb2JqLT5k dW1wSWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJc25wcmludGYoYnVm LCBidWZzaXplLAorCQkJCQkgIlZBUklBQkxFICVzICAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBv YmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJfQogCS8qIHNob3VsZG4n dCBnZXQgaGVyZSAqLwogCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCmlu ZGV4IGRmMTE5NTkxY2NhLi5hN2MzYWU5YmZkMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX3Jlc3RvcmUuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCkBAIC0xMDUs NiArMTA1LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsidHJpZ2dlciIsIDEs IE5VTEwsICdUJ30sCiAJCXsidXNlLWxpc3QiLCAxLCBOVUxMLCAnTCd9LAogCQl7InVzZXJuYW1l IiwgMSwgTlVMTCwgJ1UnfSwKKwkJeyJ2YXJpYWJsZSIsIDEsIE5VTEwsICdBJ30sCiAJCXsidmVy Ym9zZSIsIDAsIE5VTEwsICd2J30sCiAJCXsic2luZ2xlLXRyYW5zYWN0aW9uIiwgMCwgTlVMTCwg JzEnfSwKIApAQCAtMTU1LDcgKzE1Niw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQog CQl9CiAJfQogCi0Jd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImFjQ2Q6ZWY6 RjpoOkk6ajpsTDpuOk46T3A6UDpSc1M6dDpUOlU6dndXeDEiLAorCXdoaWxlICgoYyA9IGdldG9w dF9sb25nKGFyZ2MsIGFyZ3YsICJBOmFjQ2Q6ZWY6RjpoOkk6ajpsTDpuOk46T3A6UDpSc1M6dDpU OlU6dndXeDEiLAogCQkJCQkJCWNtZG9wdHMsIE5VTEwpKSAhPSAtMSkKIAl7CiAJCXN3aXRjaCAo YykKQEAgLTE2Myw2ICsxNjQsMTEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQlj YXNlICdhJzoJCQkvKiBEdW1wIGRhdGEgb25seSAqLwogCQkJCW9wdHMtPmRhdGFPbmx5ID0gMTsK IAkJCQlicmVhazsKKwkJCWNhc2UgJ0EnOgkJCS8qIHZBcmlhYmxlICovCisJCQkJb3B0cy0+c2Vs VHlwZXMgPSAxOworCQkJCW9wdHMtPnNlbFZhcmlhYmxlID0gMTsKKwkJCQlzaW1wbGVfc3RyaW5n X2xpc3RfYXBwZW5kKCZvcHRzLT52YXJpYWJsZU5hbWVzLCBvcHRhcmcpOworCQkJCWJyZWFrOwog CQkJY2FzZSAnYyc6CQkJLyogY2xlYW4gKGkuZS4sIGRyb3ApIHNjaGVtYSBwcmlvciB0byBjcmVh dGUgKi8KIAkJCQlvcHRzLT5kcm9wU2NoZW1hID0gMTsKIAkJCQlicmVhazsKQEAgLTQ2Myw2ICs0 NjksNyBAQCB1c2FnZShjb25zdCBjaGFyICpwcm9nbmFtZSkKIAogCXByaW50ZihfKCJcbk9wdGlv bnMgY29udHJvbGxpbmcgdGhlIHJlc3RvcmU6XG4iKSk7CiAJcHJpbnRmKF8oIiAgLWEsIC0tZGF0 YS1vbmx5ICAgICAgICAgICAgICByZXN0b3JlIG9ubHkgdGhlIGRhdGEsIG5vIHNjaGVtYVxuIikp OworCXByaW50ZihfKCIgIC1BLCAtLXZhcmlhYmxlPU5BTUUgICAgICAgICAgcmVzdG9yZSBuYW1l ZCBzZXNzaW9uIHZhcmlhYmxlXG4iKSk7CiAJcHJpbnRmKF8oIiAgLWMsIC0tY2xlYW4gICAgICAg ICAgICAgICAgICBjbGVhbiAoZHJvcCkgZGF0YWJhc2Ugb2JqZWN0cyBiZWZvcmUgcmVjcmVhdGlu Z1xuIikpOwogCXByaW50ZihfKCIgIC1DLCAtLWNyZWF0ZSAgICAgICAgICAgICAgICAgY3JlYXRl IHRoZSB0YXJnZXQgZGF0YWJhc2VcbiIpKTsKIAlwcmludGYoXygiICAtZSwgLS1leGl0LW9uLWVy cm9yICAgICAgICAgIGV4aXQgb24gZXJyb3IsIGRlZmF1bHQgaXMgdG8gY29udGludWVcbiIpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggZDNkZDg3ODRkNjQuLmQ2MmRiMjQyMjg3IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNzg5LDYgKzc4OSwxNiBAQCBteSAldGVzdHMg PSAoCiAJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCiAJICB9LAogCisJJ0FMVEVSIERF RkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNF TEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDJworCSAgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NTYsCisJCWNyZWF0ZV9zcWwgICA9PiAnQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xF IHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJM SUM7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZP UiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBU TyBQVUJMSUM7XEUveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0 YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAorCSAgfSwKKwogCSdB TFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUnID0+IHsKIAkJcmVnZXhwID0+IHFyL14K IAkJCVxRQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIFdJVEggXEUKQEAgLTE2Mzgs NiArMTY0OCwyMyBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDT01NRU5UIE9OIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDcxLAor CQljcmVhdGVfc3FsICAgPT4gJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxl MQorCQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gdmFyaWFibGVcJzsnLAorCQlyZWdleHAgPT4KKwkJ ICBxci9eXFFDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgSVMgJ2NvbW1l bnQgb24gdmFyaWFibGUnO1xFL20sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVk dW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhICAgICA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlv bmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NPUFkgdGVzdF90 YWJsZScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNCwKIAkJY3JlYXRlX3NxbCA9PiAnSU5TRVJU IElOVE8gZHVtcF90ZXN0LnRlc3RfdGFibGUgKGNvbDEpICcKQEAgLTM4OTYsNiArMzkyMywyNCBA QCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJp YWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVB VEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAg PT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGludGVnZXI7JywKKwkJ cmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEg QVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBf dGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5s aWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1w X21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3Zp ZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUg VklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CkBAIC00MzU4LDYgKzQ0MDMsMjUgQEAgbXkgJXRlc3Rz ID0gKAogCQlsaWtlID0+IHt9LAogCX0sCiAKKwknR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1 bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDczLAorCQljcmVhdGVf c3FsID0+CisJCSAgJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUx IFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1w X3Rlc3Rfcm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQkl ZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAor CQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlub19w cml2cyAgICAgICAgICAgICAgICAgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9 PiAxLAorCQl9LAorCX0sCisKIAknUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBtYXR2aWV3JyA9 PiB7CiAJCXJlZ2V4cCA9PiBxci9eXFFSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIGR1bXBfdGVz dC5tYXR2aWV3O1xFL20sCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21t YW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDE4MDc4MWVjZDA1Li4yNmE5YTNm YWM3YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3Bz cWwvY29tbWFuZC5jCkBAIC05ODYsNiArOTg2LDkgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNjYW5T dGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkKIAkJ CQkJCWJyZWFrOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgJ1YnOgkJCS8qIFZhcmlhYmxl cyAqLworCQkJCXN1Y2Nlc3MgPSBsaXN0VmFyaWFibGVzKHBhdHRlcm4sIHNob3dfdmVyYm9zZSk7 CisJCQkJYnJlYWs7CiAJCQljYXNlICd4JzoJCQkvKiBFeHRlbnNpb25zICovCiAJCQkJaWYgKHNo b3dfdmVyYm9zZSkKIAkJCQkJc3VjY2VzcyA9IGxpc3RFeHRlbnNpb25Db250ZW50cyhwYXR0ZXJu KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKaW5kZXggN2M5YTFmMjM0YzYuLjBjNGMzNTAzYjZjIDEwMDY0NAotLS0gYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTE0 OCw2ICs1MTQ4LDkyIEBAIGVycm9yX3JldHVybjoKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qCisg KiBcZFYKKyAqCisgKiBsaXN0VmFyaWFibGVzKCkKKyAqLworYm9vbAorbGlzdFZhcmlhYmxlcyhj b25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCit7CisJUFFFeHBCdWZmZXJEYXRhIGJ1 ZjsKKwlQR3Jlc3VsdCAgICpyZXM7CisJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsK KwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKworCWluaXRQUUV4cEJ1ZmZlcigm YnVmKTsKKworCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIlNFTEVDVCBuLm5zcG5h bWUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHYudmFybmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJ CSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBc IiVzXCIsXG4iCisJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5w Z19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCisJCQkJCSAgIiAgIFdIRVJF IGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJj b2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdf Y2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkg IGdldHRleHRfbm9vcCgiU2NoZW1hIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRp b24iKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIikpOworCisJaWYgKHZlcmJvc2UpCisJ eworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICAiKTsKKwkJcHJpbnRBQ0xDb2x1 bW4oJmJ1ZiwgInYudmFyYWNsIik7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkg ICIsXG4gIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKHYub2lkLCAncGdfdmFyaWFibGUnKSBB UyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOworCX0KKwor CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBn X3ZhcmlhYmxlIHYiCisJCQkJCQkgIlxuICAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1l c3BhY2UgbiBPTiBuLm9pZCA9IHYudmFybmFtZXNwYWNlIik7CisKKwlhcHBlbmRQUUV4cEJ1ZmZl clN0cigmYnVmLCAiXG5XSEVSRSB0cnVlXG4iKTsKKwlpZiAoIXBhdHRlcm4pCisJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZidWYsICIgICAgICBBTkQgbi5uc3BuYW1lIDw+ICdwZ19jYXRhbG9nJ1xu IgorCQkJCQkJCSAiICAgICAgQU5EIG4ubnNwbmFtZSA8PiAnaW5mb3JtYXRpb25fc2NoZW1hJ1xu Iik7CisKKwlpZiAoIXZhbGlkYXRlU1FMTmFtZVBhdHRlcm4oJmJ1ZiwgcGF0dGVybiwgdHJ1ZSwg ZmFsc2UsCisJCQkJCQkJCSJuLm5zcG5hbWUiLCAidi52YXJuYW1lIiwgTlVMTCwKKwkJCQkJCQkJ InBnX2NhdGFsb2cucGdfdmFyaWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCQkJCQkJCQlOVUxM LCAzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9S REVSIEJZIDEsMjsiKTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBC dWZmZXIoJmJ1Zik7CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogTW9z dCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGFyZSBjb250ZW50IHRvIHByaW50IGFuIGVtcHR5IHRh YmxlIHdoZW4KKwkgKiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgb2JqZWN0cy4gIFdlIGludGVudGlv bmFsbHkgZGV2aWF0ZSBmcm9tIHRoYXQKKwkgKiBoZXJlLCBidXQgb25seSBpbiAhcXVpZXQgbW9k ZSwgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4KKwkgKi8KKwlpZiAoUFFudHVwbGVzKHJlcykgPT0g MCAmJiAhcHNldC5xdWlldCkKKwl7CisJCWlmIChwYXR0ZXJuKQorCQkJcGdfbG9nX2Vycm9yKCJE aWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFyaWFibGUgbmFtZWQgXCIlc1wiLiIsCisJCQkJCQkg cGF0dGVybik7CisJCWVsc2UKKwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNz aW9uIHZhcmlhYmxlcy4iKTsKKwl9CisJZWxzZQorCXsKKwkJbXlvcHQubnVsbFByaW50ID0gTlVM TDsKKwkJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIHZhcmlhYmxlcyIpOworCQlteW9wdC50cmFu c2xhdGVfaGVhZGVyID0gdHJ1ZTsKKwkJbXlvcHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xh dGVfY29sdW1uczsKKwkJbXlvcHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5z bGF0ZV9jb2x1bW5zKTsKKworCQlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91 dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisJfQorCisJUFFjbGVhcihyZXMpOworCXJldHVybiB0 cnVlOworfQogCiAvKgogICogXGRGcApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmggYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAppbmRleCAyNzNmOTc0NTM4ZS4uNGUxNWExODBl YTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5oCkBAIC0xNDksNCArMTQ5LDcgQEAgZXh0ZXJuIGJvb2wgbGlzdE9wRmFtaWx5 RnVuY3Rpb25zKGNvbnN0IGNoYXIgKmFjY2Vzc19tZXRob2RfcGF0dGVybiwKIC8qIFxkbCBvciBc bG9fbGlzdCAqLwogZXh0ZXJuIGJvb2wgbGlzdExhcmdlT2JqZWN0cyhib29sIHZlcmJvc2UpOwog CisvKiBcZFYgKi8KK2V4dGVybiBib29sIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVy biwgYm9vbCB2YXJib3NlKTsKKwogI2VuZGlmCQkJCQkJCS8qIERFU0NSSUJFX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmluZGV4IDZm NThhMTEwNzQ4Li5hZDQyYjY4M2Y3OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2hlbHAuYwor KysgYi9zcmMvYmluL3BzcWwvaGVscC5jCkBAIC0yNjUsNiArMjY1LDcgQEAgc2xhc2hVc2FnZSh1 bnNpZ25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJSEVMUDAoIiAgXFxkVFtTK10gW1BBVFRFUk5dICAg ICAgbGlzdCBkYXRhIHR5cGVzXG4iKTsKIAlIRUxQMCgiICBcXGR1W1MrXSBbUEFUVEVSTl0gICAg ICBsaXN0IHJvbGVzXG4iKTsKIAlIRUxQMCgiICBcXGR2W1MrXSBbUEFUVEVSTl0gICAgICBsaXN0 IHZpZXdzXG4iKTsKKwlIRUxQMCgiICBcXGRWICAgICBbUEFUVEVSTl0gICAgICBsaXN0IHZhcmlh Ymxlc1xuIik7CiAJSEVMUDAoIiAgXFxkeFsrXSAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbnNp b25zXG4iKTsKIAlIRUxQMCgiICBcXGRYICAgICBbUEFUVEVSTl0gICAgICBsaXN0IGV4dGVuZGVk IHN0YXRpc3RpY3NcbiIpOwogCUhFTFAwKCIgIFxcZHlbK10gIFtQQVRURVJOXSAgICAgIGxpc3Qg ZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IGQ0NTNlMjI0ZDkzLi45YTc4 ODU1NmU5NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtOTYzLDYgKzk2MywxMyBAQCBzdGF0aWMgY29u c3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX3RyaWdnZXJfb2ZfdGFibGUgPSB7CiAJLnJlZm5hbWVz cGFjZSA9ICJjMS5yZWxuYW1lc3BhY2UiLAogfTsKIAorc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5 IFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyA9IHsKKwkubWluX3NlcnZlcl92ZXJzaW9uID0g MTUwMDAwLAorCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIsCisJLnZpc2Nv bmRpdGlvbiA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwku bmFtZXNwYWNlID0gInYudmFybmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gInYudmFybmFtZSIsCit9 OwogCiAvKgogICogUXVlcmllcyB0byBnZXQgbGlzdHMgb2YgbmFtZXMgb2YgdmFyaW91cyBraW5k cyBvZiB0aGluZ3MsIHBvc3NpYmx5CkBAIC0xMjgzLDYgKzEyOTAsNyBAQCBzdGF0aWMgY29uc3Qg cGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJ CQkgKiBUQUJMRSAuLi4gKi8KIAl7IlVTRVIiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcywgTlVM TCwgTlVMTCwgS2V5d29yZHNfZm9yX3VzZXJfdGhpbmd9LAogCXsiVVNFUiBNQVBQSU5HIEZPUiIs IE5VTEwsIE5VTEwsIE5VTEx9LAorCXsiVkFSSUFCTEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9y X2xpc3Rfb2ZfdmFyaWFibGVzfSwKIAl7IlZJRVciLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xp c3Rfb2Zfdmlld3N9LAogCXtOVUxMfQkJCQkJCS8qIGVuZCBvZiBsaXN0ICovCiB9OwpAQCAtMTcy Miw3ICsxNzMwLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFy dCwgaW50IGVuZCkKIAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIs ICJcXGRpIiwgIlxcZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRP IiwgIlxcZHAiLCAiXFxkUCIsICJcXGRQaSIsICJcXGRQdCIsCiAJCSJcXGRyZHMiLCAiXFxkcmci LCAiXFxkUnMiLCAiXFxkUnAiLCAiXFxkcyIsCi0JCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJc XGR1IiwgIlxcZHgiLCAiXFxkWCIsICJcXGR5IiwKKwkJIlxcZHQiLCAiXFxkVCIsICJcXGR2Iiwg IlxcZHUiLCAiXFxkeCIsICJcXGRYIiwgIlxcZHkiLCAiXFxkViIsCiAJCSJcXGVjaG8iLCAiXFxl ZGl0IiwgIlxcZWYiLCAiXFxlbGlmIiwgIlxcZWxzZSIsICJcXGVuY29kaW5nIiwKIAkJIlxcZW5k aWYiLCAiXFxlcnJ2ZXJib3NlIiwgIlxcZXYiLAogCQkiXFxmIiwKQEAgLTIyMjQsNiArMjIzMiw5 IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQp CiAJCQkJCQkJCQkJICAiQUxMIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiU1lTVEVN IiwgIlNFVCIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiVE8iKTsKKwkvKiBBTFRFUiBW QVJJQUJMRSA8bmFtZT4gKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJWQVJJQUJMRSIs IE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNF VCBTQ0hFTUEiKTsKIAkvKiBBTFRFUiBWSUVXIDxuYW1lPiAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IkFMVEVSIiwgIlZJRVciLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFMVEVSIENPTFVN TiIsICJPV05FUiBUTyIsICJSRU5BTUUiLCAiUkVTRVQiLCAiU0VUIik7CkBAIC0yODA0LDcgKzI4 MTUsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNFIiwgIlNF UlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxFIiwKIAkJ CQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwKLQkJCQkJ ICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJRVciKTsKKwkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwg IlZBUklBQkxFIiwgIlZJRVciKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwg IkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlz dF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIs ICJDT05TVFJBSU5UIikpCkBAIC0zMjY2LDcgKzMyNzcsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogLyogQ1JFQVRFIFRBQkxFIC0tLSBp cyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkv KiBDb21wbGV0ZSAiQ1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1w IG9iamVjdHMgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9S QVJZIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZJRVciKTsKKwkJ Q09NUExFVEVfV0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOwog CS8qIENvbXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUsIFNFUVVFTkNFIG9yIE1B VFZJRVcgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJ ewpAQCAtMzU4Niw2ICszNTk3LDEzIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0 LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hB bnlFeGNlcHQoIiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JF QVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2Ug VGFpbE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGgg QVMgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hB bnkpKQorCQlDT01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJ QUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxu YW1lPiB3aXRoIEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5 X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2Vk IGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0 ZSBDUkVBVEUgWyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBA IC0zODQ5LDYgKzM4NjcsMTIgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGlu dCBzdGFydCwgaW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlRSQU5TRk9STSIs ICJGT1IiLCBNYXRjaEFueSwgIkxBTkdVQUdFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRI KCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CiAKKwkvKiBEUk9QIFZBUklBQkxFICovCisJZWxzZSBp ZiAoTWF0Y2hlcygiRFJPUCIsICJWQVJJQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9R VUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkRS T1AiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAi UkVTVFJJQ1QiKTsKKwogLyogRVhFQ1VURSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkVYRUNVVEUi KSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcmVwYXJlZF9zdGF0 ZW1lbnRzKTsKQEAgLTQwNTIsNyArNDA3Niw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFy ICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSAqIG9iamVjdHMgc3VwcG9ydGVkLgogCQkg Ki8KIAkJaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJERUZBVUxUIiwgIlBSSVZJTEVHRVMiKSkK LQkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBS T0NFRFVSRVMiLCAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIpOworCQkJQ09NUExFVEVf V0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJS T1VUSU5FUyIsICJUWVBFUyIsICJTQ0hFTUFTIiwgIlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlD T01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJs ZXMsCiAJCQkJCQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIsCkBAIC00MDc0LDcgKzQw OTgsOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCQkJCQkJCQkJCQkiU0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAogCQkJCQkJ CQkJCQkiVEFCTEVTUEFDRSIsCi0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJCSJUWVBF IiwKKwkJCQkJCQkJCQkJIlZBUklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJH UkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1hdGNoZXMo IlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJBTEwi KSkKQEAgLTQwODIsNyArNDEwNyw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0 LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQkJCSAgIlBST0NFRFVSRVMgSU4gU0NIRU1BIiwKIAkJ CQkJICAiUk9VVElORVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiU0VRVUVOQ0VTIElOIFNDSEVNQSIs Ci0JCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiKTsKKwkJCQkJICAiVEFCTEVTIElOIFNDSEVNQSIs CisJCQkJCSAgIlZBUklBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygi R1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikgfHwKIAkJCSBUYWlsTWF0 Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFueSwgIk9OIiwg IkZPUkVJR04iKSkKIAkJQ09NUExFVEVfV0lUSCgiREFUQSBXUkFQUEVSIiwgIlNFUlZFUiIpOwpA QCAtNDExOCw2ICs0MTQ0LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGlu dCBzdGFydCwgaW50IGVuZCkKIAkJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfdGFibGVzcGFjZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVFlQRSIpKQogCQkJQ09N UExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwkJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIikpCisJCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCQllbHNlIGlmIChUYWlsTWF0 Y2hlcygiR1JBTlQiLCBNYXRjaEFueSwgTWF0Y2hBbnksIE1hdGNoQW55KSkKIAkJCUNPTVBMRVRF X1dJVEgoIlRPIik7CiAJCWVsc2UKQEAgLTQ0MjEsNyArNDQ0OSw3IEBAIHBzcWxfY29tcGxldGlv bihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAKIC8qIFBSRVBBUkUgeHgg QVMgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnksICJBUyIpKQotCQlD T01QTEVURV9XSVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBG Uk9NIik7CisJCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8i LCAiREVMRVRFIEZST00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRSQU5TQUNUSU9OIGlz IG1pc3Npbmcgb24gcHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNhY3Rpb24KQEAgLTQ4 ODksNiArNDkxNyw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfcm9s ZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHYqIikpCiAJCUNPTVBMRVRFX1dJVEhf U0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzKTsKKwllbHNlIGlmIChUYWlsTWF0 Y2hlc0NTKCJcXGRWKiIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3Jf bGlzdF9vZl92YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHgqIikpCiAJ CUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZXh0ZW5zaW9ucyk7CiAJZWxz ZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkWCoiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDE2N2Y5 MWE2ZTNmLi41MDdmMzgwODIxOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtl ZmlsZQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSw4IEBA IENBVEFMT0dfSEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAogCXBn X3B1YmxpY2F0aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBcCi0JcGdfc3Vic2NyaXB0 aW9uX3JlbC5oCisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ192YXJpYWJsZS5oCiAKIEdF TkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvbWVzb24uYnVpbGQKaW5kZXggZjcwZDFkYWJhNTIuLjZlZWM3OWQyZWVjIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvbWVzb24uYnVpbGQKQEAgLTY5LDYgKzY5LDcgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwogICAn cGdfcHVibGljYXRpb25fcmVsLmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgnLAogICAncGdfc3Vi c2NyaXB0aW9uX3JlbC5oJywKKyAgJ3BnX3ZhcmlhYmxlLmgnLAogXQogCiAjIFRoZSAuZGF0IGZp bGVzIHdlIG5lZWQgY2FuIGp1c3QgYmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5LgpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKaW5kZXggOGQ0MzRkNDhkNTcuLjQxNzJiMGNkMjY4IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKQEAgLTk3LDYgKzk3LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlk KGNvbnN0IGNoYXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkRXh0ZW5k ZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBib29sIFR5cGVJ c1Zpc2libGUoT2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zpc2libGUoT2lk IHZhcmlkKTsKKwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1bmNuYW1lR2V0Q2FuZGlkYXRl cyhMaXN0ICpuYW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdzLCBMaXN0ICphcmduYW1lcywK IAkJCQkJCQkJCQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBAIC0xNjksMTEgKzE3MSwxMiBA QCBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBhdGhNYXRjaGVyKE1lbW9yeUNv bnRleHQgY29udGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkNvcHlTZWFyY2hQYXRo TWF0Y2hlcihTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gYm9vbCBTZWFyY2hQYXRo TWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiAKK2V4 dGVybiBPaWQJTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hhciAq dmFybmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKKwogZXh0ZXJuIE9pZAlnZXRfY29sbGF0aW9uX29p ZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X2NvbnZl cnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCUZp bmREZWZhdWx0Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2VuY29kaW5nLCBpbnQzMiB0b19lbmNv ZGluZyk7CiAKLQogLyogaW5pdGlhbGl6YXRpb24gJiB0cmFuc2FjdGlvbiBjbGVhbnVwIGNvZGUg Ki8KIGV4dGVybiB2b2lkIEluaXRpYWxpemVTZWFyY2hQYXRoKHZvaWQpOwogZXh0ZXJuIHZvaWQg QXRFT1hhY3RfTmFtZXNwYWNlKGJvb2wgaXNDb21taXQsIGJvb2wgcGFyYWxsZWwpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCmluZGV4IGQyNzJjZGYwOGI0Li41MjlkNTNjNmJiNiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAtNjgsNiArNjgsNyBAQCBNQUtF X1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRfYWNsX3JvbGVfbnNwX29ial9p bmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9GVU5DVElPTgkJJ2YnIC8qIGZ1bmN0aW9uICov CiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUgKi8KICNkZWZpbmUgREVGQUNM T0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLworI2RlZmluZSBERUZBQ0xPQkpfVkFS SUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RPX0NM SUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDczZDljZjg1ODI2Li42 NDRiZWI5MDQzMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC02NDQ1LDYgKzY0NDUsOSBA QAogICBwcm9uYW1lID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEw JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlw ZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0sCit7 IG9pZCA9PiAnOTIyMScsIGRlc2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4g c2VhcmNoIHBhdGg/JywKKyAgcHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScsIHBy b2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29s JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJs ZScgfSwKIAogeyBvaWQgPT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50IHNl c3Npb25cJ3MgdGVtcCBzY2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3RlbXBf c2NoZW1hJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjEwZmJhODA1ODQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBn X3ZhcmlhYmxlLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0ZW0g Y2F0YWxvZyAocGdfdmFyaWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgorICog Tk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVy aXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpZm5kZWYgUEdfVkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNpbmNs dWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVfZC5oIgorI2luY2x1ZGUgInV0aWxzL2Fj bC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfdmFyaWFibGUgZGVmaW5pdGlvbi4g IGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ192YXJp YWJsZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIs VmFyaWFibGVSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KKworCS8qIE9J RCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlPaWQJCQl2YXJ0 eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CisKKwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFtZURh dGEJdmFybmFtZTsKKworCS8qIE9JRCBvZiBuYW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJsZSBj bGFzcyAqLworCU9pZAkJCXZhcm5hbWVzcGFjZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CisK KwkvKiB2YXJpYWJsZSBvd25lciAqLworCU9pZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdfYXV0 aGlkKTsKKworCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCisJaW50MzIJCXZhcnR5 cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKKwkvKiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlPaWQJ CQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQoMCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9u KTsKKworCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRz IHN0YXJ0IGhlcmUgKi8KKworCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0JCXZh cmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOworCisjZW5kaWYKK30gRm9ybURhdGFfcGdfdmFy aWFibGU7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNvcnJl c3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHBn X3ZhcmlhYmxlIHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIEZv cm1EYXRhX3BnX3ZhcmlhYmxlICpGb3JtX3BnX3ZhcmlhYmxlOworCitERUNMQVJFX1RPQVNUKHBn X3ZhcmlhYmxlLCA5MjIzLCA5MjI0KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ192 YXJpYWJsZV9vaWRfaW5kZXgsIDkyMjUsIFZhcmlhYmxlT2lkSW5kZXhJZCwgcGdfdmFyaWFibGUs IGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ192YXJpYWJsZV92 YXJuYW1lX25zcF9pbmRleCwgOTIyNiwgVmFyaWFibGVOYW1lTnNwSW5kZXhJZCwgcGdfdmFyaWFi bGUsIGJ0cmVlKHZhcm5hbWUgbmFtZV9vcHMsIHZhcm5hbWVzcGFjZSBvaWRfb3BzKSk7CisKK2V4 dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJ CQkJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KTsKK2V4dGVybiB2b2lkIERyb3BWYXJp YWJsZUJ5SWQoT2lkIHZhcmlkKTsKKworTUFLRV9TWVNDQUNIRShWQVJJQUJMRU5BTUVOU1AsIHBn X3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2luZGV4LCA4KTsKK01BS0VfU1lTQ0FDSEUoVkFSSUFCTEVP SUQsIHBnX3ZhcmlhYmxlX29pZF9pbmRleCwgOCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQR19WQVJJ QUJMRV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggODVhNjJiNTM4ZTUuLjgwZWE1OTI4 ZWVmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMzA5LDYgKzIzMDksNyBAQCB0eXBlZGVm IGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9UU1RFTVBMQVRFLAogCU9CSkVDVF9UWVBFLAogCU9C SkVDVF9VU0VSX01BUFBJTkcsCisJT0JKRUNUX1ZBUklBQkxFLAogCU9CSkVDVF9WSUVXLAogfSBP YmplY3RUeXBlOwogCkBAIC0zNDI1LDYgKzM0MjYsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJT dGF0c1N0bXQKIAlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBpZiBzdGF0aXN0aWNz IG9iamVjdCBpcyBtaXNzaW5nICovCiB9IEFsdGVyU3RhdHNTdG10OwogCisKKy8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCQl7Q3JlYXRlfEFsdGVyfSBWQVJJQUJMRSBTdGF0ZW1lbnQKKyAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lv blZhclN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZhcmlhYmxlOwkJLyog dGhlIHZhcmlhYmxlIHRvIGNyZWF0ZSAqLworCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhl IHR5cGUgb2YgdmFyaWFibGUgKi8KKwlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOworCWJvb2wJ CWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KK30g Q3JlYXRlU2Vzc2lvblZhclN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJ CUNyZWF0ZSBGdW5jdGlvbiBTdGF0ZW1lbnQKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAppbmRleCBmN2ZlODM0Y2Y0NS4uYzg4NGNkNWM0NjcgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmgKQEAgLTQ4Niw2ICs0ODYsOCBAQCBQR19LRVlXT1JEKCJ2YWxpZGF0b3IiLCBWQUxJREFUT1Is IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVlIiwgVkFM VUVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWVz IiwgVkFMVUVTLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFy Y2hhciIsIFZBUkNIQVIsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JE KCJ2YXJpYWJsZSIsIFZBUklBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQ R19LRVlXT1JEKCJ2YXJpYWJsZXMiLCBWQVJJQUJMRVMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmlhZGljIiwgVkFSSUFESUMsIFJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJ5aW5nIiwgVkFSWUlORywgVU5SRVNFUlZF RF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInZlcmJvc2UiLCBWRVJCT1NFLCBUWVBF X0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCA3 ZmRjZWM2ZGQ5My4uOTQ2NWRmN2IyZmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21k dGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC02OCw2ICs2 OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJBTlNGT1JNLCAiQUxURVIgVFJBTlNGT1JN IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUklHR0VSLCAi QUxURVIgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxU RVJfVFlQRSwgIkFMVEVSIFRZUEUiLCB0cnVlLCB0cnVlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQUxURVJfVVNFUl9NQVBQSU5HLCAiQUxURVIgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WQVJJQUJMRSwgIkFMVEVSIFZBUklBQkxF IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WSUVXLCAiQUxU RVIgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQU5BTFlaRSwg IkFOQUxZWkUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19CRUdJTiwg IkJFR0lOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEyMyw2ICsxMjQsNyBAQCBQR19DTURU QUcoQ01EVEFHX0NSRUFURV9UUkFOU0ZPUk0sICJDUkVBVEUgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJJR0dFUiwgIkNSRUFURSBUUklH R0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFlQRSwg IkNSRUFURSBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVB VEVfVVNFUl9NQVBQSU5HLCAiQ1JFQVRFIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZBUklBQkxFLCAiQ1JFQVRFIFZBUklBQkxFIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVklFVywgIkNSRUFU RSBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9DQVRF LCAiREVBTExPQ0FURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RF QUxMT0NBVEVfQUxMLCAiREVBTExPQ0FURSBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAt MTc1LDYgKzE3Nyw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUkFOU0ZPUk0sICJEUk9QIFRS QU5TRk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUklH R0VSLCAiRFJPUCBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19EUk9QX1RZUEUsICJEUk9QIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0RST1BfVVNFUl9NQVBQSU5HLCAiRFJPUCBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfVkFSSUFCTEUsICJEUk9QIFZBUklBQkxF IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZJRVcsICJEUk9Q IFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYRUNVVEUsICJF WEVDVVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhQTEFJTiwg IkVYUExBSU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dXRpbHMvYWNsLmggYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAppbmRleCA3MzFkODRiMmE5My4u OThhYWI5ODIyOWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCisrKyBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2FjbC5oCkBAIC0xNjksNiArMTY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg QXJyYXlUeXBlIEFjbDsKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdF fEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVB VEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQorI2RlZmluZSBB Q0xfQUxMX1JJR0hUU19WQVJJQUJMRQkJKEFDTF9TRUxFQ1R8QUNMX1VQREFURSkKIAogLyogb3Bl cmF0aW9uIGNvZGVzIGZvciBwZ18qX2FjbG1hc2sgKi8KIHR5cGVkZWYgZW51bQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lz Y2FjaGUuaAppbmRleCAyMDQ0NmY2ZjgzNi4uOGEzNjg0ZTcxMWYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oCkBAIC0xMzQsNiArMTM0LDcgQEAgZXh0ZXJuIGNoYXIgZ2V0X2Z1bmNfcHJva2luZChPaWQg ZnVuY2lkKTsKIGV4dGVybiBib29sIGdldF9mdW5jX2xlYWtwcm9vZihPaWQgZnVuY2lkKTsKIGV4 dGVybiBSZWdQcm9jZWR1cmUgZ2V0X2Z1bmNfc3VwcG9ydChPaWQgZnVuY2lkKTsKIGV4dGVybiBP aWQJZ2V0X3JlbG5hbWVfcmVsaWQoY29uc3QgY2hhciAqcmVsbmFtZSwgT2lkIHJlbG5hbWVzcGFj ZSk7CitleHRlcm4gT2lkCWdldF92YXJuYW1lX3ZhcmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9p ZCB2YXJuYW1lc3BhY2UpOwogZXh0ZXJuIGNoYXIgKmdldF9yZWxfbmFtZShPaWQgcmVsaWQpOwog ZXh0ZXJuIE9pZAlnZXRfcmVsX25hbWVzcGFjZShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRf cmVsX3R5cGVfaWQoT2lkIHJlbGlkKTsKQEAgLTIwNiw2ICsyMDcsMTQgQEAgZXh0ZXJuIGNoYXIg KmdldF9wdWJsaWNhdGlvbl9uYW1lKE9pZCBwdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVy biBPaWQJZ2V0X3N1YnNjcmlwdGlvbl9vaWQoY29uc3QgY2hhciAqc3VibmFtZSwgYm9vbCBtaXNz aW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBi b29sIG1pc3Npbmdfb2spOwogCitleHRlcm4gY2hhciAqZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZShPaWQgdmFyaWQpOworZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uo T2lkIHZhcmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZShPaWQgdmFy aWQpOworZXh0ZXJuIHZvaWQgZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlk KE9pZCB2YXJpZCwKKwkJCQkJCQkJCQkJCQlPaWQgKnR5cGlkLAorCQkJCQkJCQkJCQkJCWludDMy ICp0eXBtb2QsCisJCQkJCQkJCQkJCQkJT2lkICpjb2xsaWQpOworCiAjZGVmaW5lIHR5cGVfaXNf YXJyYXkodHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKIC8q IHR5cGVfaXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBhcnJheXMgYW5kIGRvbWFp bnMgb3ZlciBhcnJheXMgKi8KICNkZWZpbmUgdHlwZV9pc19hcnJheV9kb21haW4odHlwaWQpICAo Z2V0X2Jhc2VfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKaW5kZXggNzRkOWZmMjk5OGQuLjY4ZGNhOWVjMGQ5 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKQEAgLTE1MSwzICsx NTEsMTkgQEAgb3duZXIgb2YgdHlwZSBkZXB0ZXN0X3QKIERST1AgT1dORUQgQlkgcmVncmVzc19k ZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIy OwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworLS0gZGVwZW5kZW5jeSBvbiB0eXBlCitD UkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChh IGludCwgYiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5 cGU7CistLSBzaG91bGQgdG8gZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWluOworRVJST1I6ICBj YW5ub3QgZHJvcCB0eXBlIHZhcmRvbWFpbiBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9u IGl0CitERVRBSUw6ICBjb2x1bW4gYyBvZiBjb21wb3NpdGUgdHlwZSB2YXJ0eXBlIGRlcGVuZHMg b24gdHlwZSB2YXJkb21haW4KK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRo ZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFRZUEUgdmFydHlwZTsKK0VSUk9SOiAgY2Fu bm90IGRyb3AgdHlwZSB2YXJ0eXBlIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQK K0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdmFydHlwZQor SElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3Rz IHRvby4KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01B SU4gdmFyZG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAy MTVlYjg5OWJlMy4uZDk5NTMzMjE0MDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2lkam9pbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9p bnMub3V0CkBAIC0yNjYsMyArMjY2LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0 aW9uIHtzdWJkYmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdf c3Vic2NyaXB0aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVj a2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnN1YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29p ZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBn X2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFydHlwZX0gPT4g cGdfdHlwZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zhcm5hbWVzcGFj ZX0gPT4gcGdfbmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7 dmFyb3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFi bGUge3ZhcmNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wc3FsLm91dAppbmRleCAzYmJlNGM1Zjk3NC4uYzg5MDY3NDkwZjcgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wc3FsLm91dApAQCAtNTgyOCw2ICs1ODI4LDMwIEBAIENPTU1JVDsKICMgZmluYWwg T05fRVJST1JfUk9MTEJBQ0s6IG9mZgogRFJPUCBUQUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBz cWxfZXJyb3I7CistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAg ICAgT3duZXIgICAgICAgICAgfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8 IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCAgICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitHUkFOVCBTRUxFQ1QgT04g VkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3Nv bWUgZGVzY3JpcHRpb24nOworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAg ICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisg cHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJs ZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192 YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc192 YXJpYWJsZV9vd25lcjsKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFt ZXMKIFxkQSByZWdyZXNzaW9uLmhlYXAKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFu eSBkb3R0ZWQgbmFtZXMpOiByZWdyZXNzaW9uLmhlYXAKQEAgLTYwNDksNiArNjA3MywxMiBAQCBj cm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1 YmxpYy5mdW5jX2RlcHNfc3RhdAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRv dHRlZCBuYW1lcyk6IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2dAogaW1wcm9w ZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IG5vbmVzdWNoLm15ZXZ0 CitcZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK2ltcHJvcGVyIHF1YWxpZmllZCBuYW1l ICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRW IHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFy ZSBub3QgaW1wbGVtZW50ZWQ6IHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1 Y2gucHVibGljLnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVu dGVkOiBub25lc3VjaC5wdWJsaWMudmFyCiAtLSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3Rl ZCBuYW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRo b2QiCiBMaXN0IG9mIGFjY2VzcyBtZXRob2RzCkBAIC02MjgzLDYgKzYzMTMsMTIgQEAgTGlzdCBv ZiBzY2hlbWFzCiAtLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLQogKDAgcm93cykKIAorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVy IAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQor CiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkQSAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCiBpbXByb3BlciBxdWFsaWZp ZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5hY2Nlc3MubWV0aG9kIgpAQCAtNjQ1Miw2ICs2NDg4LDEyIEBAIGltcHJvcGVyIHF1YWxpZmll ZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo Lmluc3RhCiAKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBp bXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJy ZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKICAgICAgIExp c3Qgb2YgcmVsYXRpb25zCkBAIC02NTg1LDYgKzY2MjcsMTIgQEAgTGlzdCBvZiB0ZXh0IHNlYXJj aCB0ZW1wbGF0ZXMKIC0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0KICgwIHJvd3MpCiAKK1xkViByZWdyZXNzaW9uLiJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwor IFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQg d2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBc ZHQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVs YXRpb24iCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJu by5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9u IgpAQCAtNjYzMiw2ICs2NjgwLDggQEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90 IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW0KIGNyb3NzLWRh dGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2Ui LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFi YXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFi YXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYg Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCitj cm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRh dGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogLS0gY2hlY2sgXGRy ZyBhbmQgXGR1CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUwOwogQ1JFQVRFIFJPTEUgcmVn cmVzc19kdV9yb2xlMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vz c2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFjYTc2 NjA0MmRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTAsMCArMSw1NyBAQAorQ1JFQVRFIFJPTEUgcmVncmVzc192 YXJpYWJsZV9vd25lcjsKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OworLS0gc2hvdWxkIGZhaWwsIHBzZXVkb3R5cGVzIGFyZSBub3QgYWxsb3dlZAorQ1JFQVRF IFZBUklBQkxFIHZhcjIgQVMgYW55ZWxlbWVudDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBj YW5ub3QgYmUgcHNldWRvLXR5cGUgYW55ZWxlbWVudAorLS0gc2hvdWxkIGJlIG9rLCBkbyBub3Ro aW5nCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIyOworTk9USUNFOiAgc2Vzc2lvbiB2YXJp YWJsZSAidmFyMiIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCistLSBkbyBub3RoaW5nCitDUkVB VEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyB2YXIxIEFTIGludDsKK05PVElDRTogIHNlc3Npb24g dmFyaWFibGUgInZhcjEiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZworLS0gc2hvdWxkIGZhaWwK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAi dmFyMSIgYWxyZWFkeSBleGlzdHMKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBJRiBF WElTVFMgdmFyMTsKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSB2YXJpYWJs ZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQsICdwZ192 YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyAgICBv YmpfZGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHNvbWUgdmFyaWFi bGUgY29tbWVudAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLS0gY2hlY2sgYWNj ZXNzIHJpZ2h0cyBhbmQgc3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0Owor R1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JFQVRFIFJPTEUgcmVncmVz c192YXJpYWJsZV9yZWFkZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc3Zh cnRlc3QudmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworQUxURVIgVkFSSUFCTEUg c3ZhcnRlc3QudmFyMSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFS SUFCTEUgc3ZhcnRlc3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFy dGVzdC52YXJ4eCBTRVQgU0NIRU1BIHB1YmxpYzsKK0RST1AgVkFSSUFCTEUgcHVibGljLnZhcnh4 OworQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X293bmVyCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3QKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJM RVMgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRo IGRlZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFV TFQ7CitcZFYrIHN2YXJ0ZXN0LnZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5h bWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8ICAgICAg ICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9u IAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVy PXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjE7CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggMjQyOWVjMmJi YWEuLmVkNjg5M2Q0Nzk2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTExMSw3 ICsxMTEsNyBAQCB0ZXN0OiBqc29uIGpzb25iIGpzb25fZW5jb2RpbmcganNvbnBhdGgganNvbnBh dGhfZW5jb2RpbmcganNvbmJfanNvbnBhdGggc3FsanNvbgogIyBOQjogdGVtcC5zcWwgZG9lcyBh IHJlY29ubmVjdCB3aGljaCB0cmFuc2llbnRseSB1c2VzIDIgY29ubmVjdGlvbnMsCiAjIHNvIGtl ZXAgdGhpcyBwYXJhbGxlbCBncm91cCB0byBhdCBtb3N0IDE5IHRlc3RzCiAjIC0tLS0tLS0tLS0K LXRlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVu Y3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHlt b3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwKK3Rlc3Q6IHBs YW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFy ZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlzbSBy b3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwgc2Vzc2lvbl92YXJpYWJsZXMK IAogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKaW5kZXggOGQ3NGVkNzEyMmMuLmYyNGRmOWE3ODg2IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbApAQCAtMTE0LDMgKzExNCwxNiBAQCBEUk9Q IFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfZGVwX3VzZXIy LCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1Ag VVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKworLS0gZGVwZW5kZW5jeSBvbiB0eXBlCitDUkVBVEUg RE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChhIGludCwg YiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5cGU7CisK Ky0tIHNob3VsZCB0byBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21haW47CitEUk9QIFRZUEUgdmFy dHlwZTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERP TUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCmluZGV4IDNiM2M2ZjZlMjk0Li5iODBk NTZhMjdhZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKQEAgLTE1OTEsNiArMTU5MSwxOSBAQCBDT01N SVQ7CiBEUk9QIFRBQkxFIGJsYTsKIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIAorLS0gc2Vz c2lvbiB2YXJpYWJsZSB0ZXN0CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CitcZFYrIHZhcjEKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBk ZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworU0VUIFJPTEUg VE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCiAtLSBjaGVj ayBkZXNjcmliaW5nIGludmFsaWQgbXVsdGlwYXJ0IG5hbWVzCiBcZEEgcmVncmVzc2lvbi5oZWFw CiBcZEEgbm9uZXN1Y2guaGVhcApAQCAtMTcwMiw2ICsxNzE1LDkgQEAgRFJPUCBGVU5DVElPTiBw c3FsX2Vycm9yOwogXGRYIG5vbmVzdWNoLnB1YmxpYy5mdW5jX2RlcHNfc3RhdAogXGR5IHJlZ3Jl c3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2dAorXGRWIGhvc3QucmVncmVzc2lvbi5wdWJs aWMudmFyCitcZFYgcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK1xkViBub25lc3VjaC5wdWJs aWMudmFyCiAKIC0tIGNoZWNrIHRoYXQgZG90cyB3aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVudHMg YXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE3NDMsNiAr MTc1OSw4IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5pbnN0YWxs ZWQuZXh0ZW5zaW9uIgogXGRYICJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5v LnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8uc3VjaC52YXJpYWJsZSIKKwogCiAtLSBhZ2Fp biwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkQSAibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC0xNzgzLDYgKzE4MDEsNyBAQCBEUk9Q IEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZHggIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0 YWxsZWQuZXh0ZW5zaW9uIgogXGRYICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQu c3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIi CitcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIAogLS0gYWdhaW4sIGJ1 dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMu CiBcZHQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9u IgpAQCAtMTgwNyw2ICsxODI2LDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRQIHJl Z3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5wYXJ0aXRpb25lZC5yZWxhdGlvbiIK IFxkVCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRY IHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNz IgorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIAog LS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFs aWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4MzIsNiArMTg1Miw3IEBAIERST1AgRlVOQ1RJT04g cHNxbF9lcnJvcjsKIFxkUCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5wYXJ0aXRpb25lZC5yZWxhdGlvbiIKIFxkVCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3Vj aC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIAogLS0gY2hl Y2sgXGRyZyBhbmQgXGR1CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUwOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi40MmRmYjk1YTAyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMCwwICsxLDYxIEBACitDUkVB VEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCistLSBzaG91bGQgYmUgb2sKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGZhaWwsIHBzZXVkb3R5cGVzIGFy ZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgYW55ZWxlbWVudDsKKworLS0g c2hvdWxkIGJlIG9rLCBkbyBub3RoaW5nCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIyOwor CistLSBkbyBub3RoaW5nCitDUkVBVEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyB2YXIxIEFTIGlu dDsKKworLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0g c2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIxOworCistLSBjaGVjayBj b21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDT01NRU5U IE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFyaWFibGUgY29tbWVudCc7CitTRUxFQ1QgcGdf Y2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUnKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0t IGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBz dmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJs ZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworCitDUkVB VEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxM IE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsK KworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxl X293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitB TFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBTRVQgU0NIRU1BIHB1YmxpYzsKKworRFJPUCBW QVJJQUJMRSBwdWJsaWMudmFyeHg7CisKK0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUworICAgRk9S IFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4gU0NIRU1BIHN2YXJ0ZXN0CisgICBH UkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCist LSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8g cmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFT IGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1xkVisgc3ZhcnRlc3QudmFyMQorCitEUk9Q IFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworCitEUk9Q IFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5k ZXggYjRkN2Y5MjE3Y2UuLmExOGU4MTEyNWI1IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApA QCAtNTMzLDYgKzUzMyw3IEBAIENyZWF0ZVJvbGVTdG10CiBDcmVhdGVTY2hlbWFTdG10CiBDcmVh dGVTY2hlbWFTdG10Q29udGV4dAogQ3JlYXRlU2VxU3RtdAorQ3JlYXRlU2Vzc2lvblZhclN0bXQK IENyZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAogQ3JlYXRlU3RtdENvbnRleHQKQEAgLTg3Miw2 ICs4NzMsNyBAQCBGb3JtRGF0YV9wZ190c19wYXJzZXIKIEZvcm1EYXRhX3BnX3RzX3RlbXBsYXRl CiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9wZ191c2VyX21hcHBpbmcKK0Zvcm1EYXRhX3Bn X3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZQogRm9ybV9wZ19hZ2dyZWdhdGUK IEZvcm1fcGdfYW0KQEAgLTkzMSw2ICs5MzMsNyBAQCBGb3JtX3BnX3RzX3BhcnNlcgogRm9ybV9w Z190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBGb3JtX3BnX3VzZXJfbWFwcGluZworRm9ybV9w Z192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJsb2NrTnVtYmVyQXJyYXkKIEZyZWVMaXN0RGF0 YQpAQCAtMzA2MSw2ICszMDY0LDcgQEAgVmFyU3RyaW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9ydAog VmFyaWFibGUKIFZhcmlhYmxlQXNzaWduSG9vaworVmFyaWFibGVJbmZvCiBWYXJpYWJsZVNldEtp bmQKIFZhcmlhYmxlU2V0U3RtdAogVmFyaWFibGVTaG93U3RtdAotLSAKMi40NS4yCgo= --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0009-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20240720-0009-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhii8 RnJvbSA0MmQ0NjE3OTdiNzMyMDViZmEzZWYyMTJmYWI3M2ZlZWZkYzFkZmJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 LzE5XSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjExLi40NWQ3MmIxZDUyYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wcmVwYXJlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wcmVwYXJlLnNnbWwK QEAgLTExNiw4ICsxMTYsOCBAQCBQUkVQQVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBBbnkgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiwgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKLSAgICAg IDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgb3Ig PGNvbW1hbmQ+VkFMVUVTPC9jb21tYW5kPgotICAgICAgc3RhdGVtZW50LgorICAgICAgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+TUVSR0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5W QUxVRVM8L2NvbW1hbmQ+LAorICAgICAgb3IgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBzdGF0ZW1l bnQuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCBmY2FjZWYyNzZjZi4uYzE3YTcxZjY2NTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt MTIxNjMsNyArMTIxNjMsOCBAQCBQcmVwYXJhYmxlU3RtdDoKIAkJCXwgSW5zZXJ0U3RtdAogCQkJ fCBVcGRhdGVTdG10CiAJCQl8IERlbGV0ZVN0bXQKLQkJCXwgTWVyZ2VTdG10CQkJCQkJLyogYnkg ZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCisJCQl8IE1lcmdlU3RtdAorCQkJfCBMZXRTdG10CQkJ CQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggZGU5YWU5YjQ4MzQuLmI0YjliNWI2MWM4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdp dGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlD b21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJ TGlzdENlbGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBu b3Qgc3VwcG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnks IExldFN0bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lU SCBxdWVyeSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9u KSk7CisKIAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRo Q2xhdXNlLT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21t b25UYWJsZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IDExMDBlYmNh YjhkLi42MTllNDBhNmU3YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtNDI4OCw5ICs0Mjg4LDkgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAll bHNlIGlmIChUYWlsTWF0Y2hlcygiVkFMVUVTIikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwg IlZBTFVFUyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7CiAKLS8qIExFVCAqLworLyogTEVULCBF WFBMQUlOIExFVCwgUFJFUEFSRSBMRVQgKi8KIAkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdn ZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KLQllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwll bHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJs ZT4gd2l0aCAiPSIgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCA1YzkwZTYzMzlkMi4uZGE1YWI0ZGU4ZmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00MDMsOSArNDAzLDkgQEAgRFJPUCBWQVJJ QUJMRSB2YXIxLCB2YXIyOwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93 ZWQgaW4gQ1RFCiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2 YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICJMRVQiCitFUlJPUjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUg MTogV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAg ICAgICAgICAgIF4KKyAgICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0g Z2VuZXJhdGVfc2VyaWVzKDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTEyODMsNSArMTI4Myw4 MiBAQCBTRUxFQ1QgdmFyMTsKICAgIDEwCiAoMSByb3cpCiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9IChTRUxFQ1Qg Y291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworTEVUIHZhcjEgPSBOVUxMOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAx CisgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJf dGVzdF90YWJsZQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElN SU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYpIEVYRUNVVEUgcDE7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdCAoYWN0dWFs IHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlIChhY3R1 YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rl c3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCisoNSByb3dzKQorCistLSBzaG91bGQg YmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NF VCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKK0RFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklB QkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIG51bWVyaWM7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxh bjsKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAkMTsKK1BSRVBBUkUgcDIgQVMg U0VMRUNUIHZhcjE7CitFWEVDVVRFIHAxKHBpKCkgKyAxMDApOworRVhFQ1VURSBwMjsKKyAgICAg IHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLQorIDEwMy4xNDE1OTI2NTM1OQorKDEgcm93 KQorCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0CitEUk9QIFZBUklB QkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworLS0gc2hvdWxkIGJlIE5V TEwKK0VYRUNVVEUgcDI7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworREVBTExP Q0FURSBwMTsKK0RFQUxMT0NBVEUgcDI7CitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgcGxhbl9j YWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWNbXTsKK1BSRVBBUkUgcDEoaW50LCBudW1lcmljKSBBUyBMRVQgdmFyMVskMV0gPSAkMjsK K0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VYRUNV VEUgcDEoMiwgMTAuMyk7CitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgICAKKy0tLS0tLS0tLS0t LS0KKyB7MTAuMiwxMC4zfQorKDEgcm93KQorCitERUFMTE9DQVRFIHAxOworRFJPUCBWQVJJQUJM RSB2YXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IDNkMTQ2ZDJlYzNjLi4wMTgyYjYyYWI1NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtODU5LDUgKzg1OSw2MiBAQCBFWFBMQUlOIChDT1NUUyBPRkYs IFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291 bnQoKgogLS0gc2hvdWxkIGJlIDEwCiBTRUxFQ1QgdmFyMTsKIAorU0VUIHBsYW5fY2FjaGVfbW9k ZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VM RUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworTEVUIHZhcjEgPSBOVUxM OworCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDE7CisKKy0tIHNob3VsZCBiZSBOVUxM CitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpF LCBTVU1NQVJZIE9GRikgRVhFQ1VURSBwMTsKKworLS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFy MTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCitERUFMTE9DQVRFIHAxOwor CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAk MTsKK1BSRVBBUkUgcDIgQVMgU0VMRUNUIHZhcjE7CisKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7 CitFWEVDVVRFIHAyOworCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0 CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCist LSBzaG91bGQgYmUgTlVMTAorRVhFQ1VURSBwMjsKKworREVBTExPQ0FURSBwMTsKK0RFQUxMT0NB VEUgcDI7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWNbXTsKKwor UFJFUEFSRSBwMShpbnQsIG51bWVyaWMpIEFTIExFVCB2YXIxWyQxXSA9ICQyOworCitMRVQgdmFy MSA9ICd7fSc6Om51bWVyaWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRFIHAxKDIs IDEwLjMpOworCitTRUxFQ1QgdmFyMTsKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUg dmFyMTsKLS0gCjIuNDUuMgoK --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0010-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20240720-0010-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhio9 RnJvbSBkMzZiOTJiZWZjZjA2MDhjNDBiMjBkM2Y5YjZmODk0ZDJjZjcwMWMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjE6MzY6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDEw LzE5XSBpbXBsZW1lbnRhdGlvbiBvZiB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMKClRoZSB0 ZW1wb3JhcnkgdmFyaWFibGVzIGFyZSBjcmVhdGVkIGluc2lkZSB0ZW1wIHNjaGVtYSBhbmQgdGhl eSBhcmUgZHJvcHBlZCBieSBkcm9wcGluZwp0aGlzIHNjaGVtYS4gRm9yIGNvbnNpc3RlbmN5IHdp dGggdGVtcCB0YWJsZXMsIHRoZSBDUkVBVEUgVEVNUCBWQVJJQUJMRSBjb21tYW5kIHN1cHBvcnRz Ck9OIENPTU1JVCBEUk9QIGNsYXVzZS4gVGhlIHRlbXBvcmFyeSB2YXJpYWJsZXMgd2l0aCB0aGlz IGNsYXVzZSBhcmUgY29sbGVjdGVkIGluIHhhY3RfZHJvcF9pdGVtcwpsaXN0LiBUaGlzIGxpc3Qg c2hvdWxkIGJlIGNhcmVmdWxseSBtYWludGFpbmVkIGFuZCBjYW4gY29udGFpbiBvbmx5IHZhbGlk IGVudHJpZXMgKG5vdAp5ZXQgZHJvcHBlZCkuIEZyb20gdGhpcyByZWFzb25zIG5vdyB0aGUgc3Vi Y29tbWl0IGFuZCBzdWJhYm9ydGluZyBoYXZlIHRvIGJlIGhhbmRsZWQuCi0tLQogZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIGRvYy9zcmMvc2dt bC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDE1ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94YWN0LmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAyNCArKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE5MCArKysrKysrKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgMjIgKy0KIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgIDkgKwogc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA3ICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICAgMyArLQogLi4uL2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTMwICsrKysrKysrKysrLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgIDY2ICsrKysrKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDIz IGZpbGVzIGNoYW5nZWQsIDUyMCBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCmluZGV4IDVkNDk1NTU0NDI5Li5mNDVkM2YyNzNmNyAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAg LTk4MzIsNiArOTgzMiwxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0 aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJh PjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJlb3hhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQWN0aW9uIHBlcmZvcm1l ZCBhdCBlbmQgb2YgdHJhbnNhY3Rpb246CisgICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gPSBu byBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xpdGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMv c2dtbC9kZGwuc2dtbAppbmRleCAwZDE2ZjFkMTZmYS4uMjhmMDMxYjU3MjYgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUz NDUsOCArNTM0NSw5IEBAIFNFTEVDVCBjdXJyZW50X3VzZXJfaWQ7CiAgICAgYmVlbiBzZXQgdG8g c29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUKICAgICA8Y29t bWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuIFRoZSBjb250ZW50IG9mIGEgdmFyaWFibGUgaXMg bm90CiAgICAgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcyByZWd1bGFyIHZhcmlh YmxlcyBpbiBQTCBsYW5ndWFnZXMuCi0gICAgVGhlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBwZXJz aXN0ZW50LCBidXQgdGhlIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaXMKLSAgICB0ZW1w b3JhcnkgYW5kIG5vdCBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRhYmxl cykuCisgICAgVGhlIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBwZXJzaXN0ZW50IG9yIGNhbiBi ZSB0ZW1wb3JhcnkuIEluIGJvdGggY2FzZXMsCisgICAgdGhlIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2 YXJpYWJsZXMgaXMgdGVtcG9yYXJ5IGFuZCBub3Qgc2hhcmVkIChsaWtlIHRoZQorICAgIGNvbnRl bnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggNzBhMWEwOTU5NWQuLmNjMjc2Yjc4ZTcy IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDcgKzI2LDggQEAg UG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+ Ci1DUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCitDUkVBVEUgWyB7 IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFU RSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4g XQorICAgIFsgT04gQ09NTUlUIERST1AgXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2 PgogIDxyZWZzZWN0MT4KQEAgLTExMCw2ICsxMTEsMTggQEAgQ1JFQVRFIFZBUklBQkxFIFsgSUYg Tk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWIKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50 cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1vbi1jb21taXQtZHJvcCI+CisgICAgPHRlcm0+PGxp dGVyYWw+T04gQ09NTUlUIERST1A8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+T04gQ09NTUlUIERST1A8L2xpdGVyYWw+IGNs YXVzZSBzcGVjaWZpZXMgdGhlIGJlaGF2aW91ciBvZiBhCisgICAgICB0ZW1wb3Jhcnkgc2Vzc2lv biB2YXJpYWJsZSBhdCB0cmFuc2FjdGlvbiBjb21taXQuIFdpdGggdGhpcyBjbGF1c2UsIHRoZQor ICAgICAgc2Vzc2lvbiB2YXJpYWJsZSBpcyBkcm9wcGVkIGF0IGNvbW1pdCB0aW1lLiBUaGUgY2xh dXNlIGlzIG9ubHkgYWxsb3dlZAorICAgICAgZm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgPC92YXJp YWJsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmluZGV4 IDJkM2VkODYwN2FiLi5kODc3ZTE4Zjk2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwpA QCAtMjMwNyw3ICsyMzA3LDcgQEAgQ29tbWl0VHJhbnNhY3Rpb24odm9pZCkKIAlzbWdyRG9QZW5k aW5nU3luY3ModHJ1ZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsKIAogCS8qIFJlbW92ZSB2YWx1ZXMg b2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1lbW9yeSAqLwotCUF0UHJlRU9YYWN0 X1Nlc3Npb25WYXJpYWJsZXMoKTsKKwlBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKHRydWUp OwogCiAJLyogY2xvc2UgbGFyZ2Ugb2JqZWN0cyBiZWZvcmUgbG93ZXItbGV2ZWwgY2xlYW51cCAq LwogCUF0RU9YYWN0X0xhcmdlT2JqZWN0KHRydWUpOwpAQCAtMjg5OSw2ICsyODk5LDcgQEAgQWJv cnRUcmFuc2FjdGlvbih2b2lkKQogCUF0QWJvcnRfUG9ydGFscygpOwogCXNtZ3JEb1BlbmRpbmdT eW5jcyhmYWxzZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsKIAlBdEVPWGFjdF9MYXJnZU9iamVjdChm YWxzZSk7CisJQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhmYWxzZSk7CiAJQXRBYm9ydF9O b3RpZnkoKTsKIAlBdEVPWGFjdF9SZWxhdGlvbk1hcChmYWxzZSwgaXNfcGFyYWxsZWxfd29ya2Vy KTsKIAlBdEFib3J0X1R3b3BoYXNlKCk7CkBAIC01MTc1LDYgKzUxNzYsOCBAQCBDb21taXRTdWJU cmFuc2FjdGlvbih2b2lkKQogCUF0RU9TdWJYYWN0X1NQSSh0cnVlLCBzLT5zdWJUcmFuc2FjdGlv bklkKTsKIAlBdEVPU3ViWGFjdF9vbl9jb21taXRfYWN0aW9ucyh0cnVlLCBzLT5zdWJUcmFuc2Fj dGlvbklkLAogCQkJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CisJQXRFT1N1 YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAorCQkJCQkJ CQkgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAlBdEVPU3ViWGFjdF9OYW1lc3BhY2Uo dHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2Fj dGlvbklkKTsKIAlBdEVPU3ViWGFjdF9GaWxlcyh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLApA QCAtNTMzOSw2ICs1MzQyLDggQEAgQWJvcnRTdWJUcmFuc2FjdGlvbih2b2lkKQogCQlBdEVPU3Vi WGFjdF9TUEkoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9vbl9j b21taXRfYWN0aW9ucyhmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJCQkJCQkJCSAgcy0+ cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKKwkJQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxl cyhmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKKwkJCQkJCQkJCSBzLT5wYXJlbnQtPnN1YlRy YW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9OYW1lc3BhY2UoZmFsc2UsIHMtPnN1YlRyYW5z YWN0aW9uSWQsCiAJCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVP U3ViWGFjdF9GaWxlcyhmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf dmFyaWFibGUuYwppbmRleCAwYjIxMjA0YmM0Ny4uZTlhNmY3NTVmZGMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMKQEAgLTM2LDcgKzM2LDggQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3Jl YXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJCQkJCQkgaW50MzIgdmFyVHlw bW9kLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9u LAotCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cyk7CisJCQkJCQkJCQkgYm9vbCBpZl9ub3Rf ZXhpc3RzLAorCQkJCQkJCQkJIFZhcmlhYmxlRU9YQWN0aW9uIGVveGFjdGlvbik7CiAKIAogLyoK QEAgLTQ5LDcgKzUwLDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJ CQkJaW50MzIgdmFyVHlwbW9kLAogCQkJCU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFyQ29sbGF0 aW9uLAotCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKKwkJCQlib29sIGlmX25vdF9leGlzdHMsCisJ CQkJVmFyaWFibGVFT1hBY3Rpb24gZW94YWN0aW9uKQogewogCUFjbAkJICAgKnZhcmFjbDsKIAlO YW1lRGF0YQl2YXJuYW1lOwpAQCAtMTEwLDYgKzExMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25z dCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFd ID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKIAl2YWx1ZXNbQW51bV9w Z192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0 aW9uKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJlb3hhY3Rpb24gLSAxXSA9IENoYXJH ZXREYXR1bShlb3hhY3Rpb24pOwogCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9hY2woT0JK RUNUX1ZBUklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwpAQCAtMTgz LDYgKzE4NiwxMyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNl c3Npb25WYXJTdG10ICpzdG10KQogCU9pZAkJCXR5cGNvbGxhdGlvbjsKIAlPYmplY3RBZGRyZXNz IHZhcmlhYmxlOwogCisJLyogQ2hlY2sgY29uc2lzdGVuY3kgb2YgYXJndW1lbnRzICovCisJaWYg KHN0bXQtPmVveGFjdGlvbiA9PSBWQVJJQUJMRV9FT1hfRFJPUAorCQkmJiBzdG10LT52YXJpYWJs ZS0+cmVscGVyc2lzdGVuY2UgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJ CSBlcnJtc2coIk9OIENPTU1JVCBEUk9QIGNhbiBvbmx5IGJlIHVzZWQgb24gdGVtcG9yYXJ5IHZh cmlhYmxlcyIpKSk7CisKIAluYW1lc3BhY2VpZCA9CiAJCVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVh dGlvbk5hbWVzcGFjZShzdG10LT52YXJpYWJsZSwgTm9Mb2NrLCBOVUxMKTsKIApAQCAtMjIyLDcg KzIzMiw4IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lv blZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgdHlwbW9kLAogCQkJCQkJCSAgIHZhcm93bmVyLAog CQkJCQkJCSAgIGNvbGxhdGlvbiwKLQkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzKTsKKwkJ CQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAorCQkJCQkJCSAgIHN0bXQtPmVveGFjdGlvbik7 CiAKIAllbG9nKERFQlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9p ZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFyaWFibGUiLAogCQkgc3RtdC0+dmFyaWFibGUtPnJl bG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsKQEAgLTIzMCw2ICsyNDEsOCBAQCBDcmVhdGVWYXJp YWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCS8q IFdlIHdhbnQgU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nlc3MgdG8gc2VlIHRoZSBjYXRh bG9nIGNoYW5nZXMuICovCiAJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKIAorCVNlc3Npb25W YXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKHZhcmlhYmxlLm9iamVjdElkLCBzdG10LT5lb3hhY3Rp b24pOworCiAJcmV0dXJuIHZhcmlhYmxlOwogfQogCkBAIC0yNDIsNiArMjU1LDcgQEAgRHJvcFZh cmlhYmxlQnlJZChPaWQgdmFyaWQpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7 CisJY2hhcgkJZW94YWN0aW9uOwogCiAJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9u SWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCkBAIC0yNTAsNiArMjY0LDggQEAgRHJvcFZhcmlhYmxl QnlJZChPaWQgdmFyaWQpCiAJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCiAJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAorCWVv eGFjdGlvbiA9ICgoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCkpLT52YXJlb3hhY3Rp b247CisKIAlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwogCiAJUmVsZWFz ZVN5c0NhY2hlKHR1cCk7CkBAIC0yNTcsNSArMjczLDUgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQg dmFyaWQpCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAogCS8qIERvIHRo ZSBuZWNlc3NhcnkgY2xlYW51cCBpZiBuZWVkZWQgaW4gbG9jYWwgbWVtb3J5ICovCi0JU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkKTsKKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9z dHByb2Nlc3ModmFyaWQsIGVveGFjdGlvbik7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMKaW5kZXggZDkxNjk4MjBhN2YuLjU0OGE5OTMwMjY3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNiw2ICsxNiw4IEBACiAKICNpbmNsdWRl ICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNs dWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVj dXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTMxLDYg KzMzLDE5IEBACiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2luY2x1ZGUgInV0aWxzL3N5 c2NhY2hlLmgiCiAKK3R5cGVkZWYgc3RydWN0IFNWYXJpYWJsZVhBY3REcm9wSXRlbQoreworCU9p ZAkJCXZhcmlkOwkJCS8qIHZhcmlkIG9mIHNlc3Npb24gdmFyaWFibGUgKi8KKworCS8qCisJICog Y3JlYXRpbmdfc3ViaWQgaXMgdGhlIElEIG9mIHRoZSBjcmVhdGluZyBzdWJ4YWN0LiBJZiB0aGUg YWN0aW9uIHdhcworCSAqIHVucmVnaXN0ZXJlZCBkdXJpbmcgdGhlIGN1cnJlbnQgdHJhbnNhY3Rp b24sIGRlbGV0aW5nX3N1YmlkIGlzIHRoZSBJRAorCSAqIG9mIHRoZSBkZWxldGluZyBzdWJ4YWN0 LCBvdGhlcndpc2UgSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQuCisJICovCisJU3ViVHJhbnNhY3Rp b25JZCBjcmVhdGluZ19zdWJpZDsKKwlTdWJUcmFuc2FjdGlvbklkIGRlbGV0aW5nX3N1YmlkOwor fSBTVmFyaWFibGVYQWN0RHJvcEl0ZW07CisKIC8qCiAgKiBWYWx1ZXMgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCBsb2NhbCBtZW1vcnkKICAqIGluc2lkZSBz ZXNzaW9udmFycyBoYXNoIHRhYmxlIGluIGJpbmFyeSBmb3JtYXQgaW5zaWRlIGEgZGVkaWNhdGVk IG1lbW9yeQpAQCAtMTEzLDYgKzEyOCwxMiBAQCBzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9u ID0gZmFsc2U7CiAgKi8KIHN0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQg PSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxkcyBvZiBT VmFyaWFibGVYQWN0RHJvcEl0ZW0gdHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJvcF9pdGVt cyA9IE5JTDsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ry b3AoT2lkIHZhcmlkKTsKK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94 YWN0X2Ryb3AoT2lkIHZhcmlkKTsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNz aW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTUxLDE2ICsxNzIsNDUgQEAgcGdf dmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhh c2h2YWx1ZSkKIAl9CiB9CiAKKy8qCisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8gc2V0dXAg bG9jYWwgbWVtb3J5IG1hbmFnZW1lbnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoKKyAqIENh bGxlciBzaG91bGQgYWxyZWFkeSBoYXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRyeSBpbiBj YXRhbG9nCisgKiBhbmQgbWFkZSB0aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJp YWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBlb3hhY3Rpb24pCit7CisJLyoK KwkgKiBGb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcywgd2UgbmVlZCB0byBjcmVhdGUgYSBuZXcgZW5k IG9mIHhhY3QgYWN0aW9uIHRvCisJICogZW5zdXJlIGRlbGV0aW9uIGZyb20gY2F0YWxvZy4KKwkg Ki8KKwlpZiAoZW94YWN0aW9uID09IFZBUklBQkxFX0VPWF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlz VGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisK KwkJcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AodmFyaWQpOworCX0KK30KKwog LyoKICAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEgRFJPUCBWQVJJQUJM RSBjb21tYW5kLgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9mIHJlbW92aW5nIHRo ZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAotU2Vzc2lvblZhcmlhYmxlRHJv cFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhP aWQgdmFyaWQsIGNoYXIgZW94YWN0aW9uKQogewogCUFzc2VydChMb2NhbFRyYW5zYWN0aW9uSWRJ c1ZhbGlkKE15UHJvYy0+dnhpZC5seGlkKSk7CiAKKwlpZiAoZW94YWN0aW9uID09IFZBUklBQkxF X0VPWF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxl X3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJaWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9vbAkJ Zm91bmQ7CkBAIC0xODMsNiArMjMzLDU3IEBAIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vz cyhPaWQgdmFyaWQpCiAJfQogfQogCisvKgorICogUmVnaXN0cmF0aW9uIG9mIGFjdGlvbnMgdG8g YmUgZXhlY3V0ZWQgb24gc2Vzc2lvbiB2YXJpYWJsZXMgYXQgdHJhbnNhY3Rpb24KKyAqIGVuZCB0 aW1lLiBXZSB3YW50IHRvIGRyb3AgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIHdpdGggY2xh dXNlIE9OIENPTU1JVAorICogRFJPUC4KKyAqLworCisvKgorICogUmVnaXN0ZXIgYSBzZXNzaW9u IHZhcmlhYmxlIHhhY3QgYWN0aW9uLgorICovCitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc2Vzc2lv bl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVhBY3REcm9wSXRl bSAqeGFjdF9haTsKKwlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKworCW9sZGN4dCA9IE1lbW9yeUNv bnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNvbnRleHQpOworCisJeGFjdF9haSA9IChTVmFyaWFi bGVYQWN0RHJvcEl0ZW0gKikKKwkJcGFsbG9jKHNpemVvZihTVmFyaWFibGVYQWN0RHJvcEl0ZW0p KTsKKworCXhhY3RfYWktPnZhcmlkID0gdmFyaWQ7CisKKwl4YWN0X2FpLT5jcmVhdGluZ19zdWJp ZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJeGFjdF9haS0+ZGVsZXRpbmdfc3Vi aWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKworCXhhY3RfZHJvcF9pdGVtcyA9IGxjb25z KHhhY3RfYWksIHhhY3RfZHJvcF9pdGVtcyk7CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xk Y3h0KTsKK30KKworLyoKKyAqIFVucmVnaXN0ZXIgYW4gaWQgb2YgYSBnaXZlbiBzZXNzaW9uIHZh cmlhYmxlIGZyb20gZHJvcCBsaXN0LiBJbiB0aGlzCisgKiBtb21lbnQsIHRoZSBhY3Rpb24gaXMg anVzdCBtYXJrZWQgYXMgZGVsZXRlZCBieSBzZXR0aW5nIGRlbGV0aW5nX3N1YmlkLiBUaGUKKyAq IGNhbGxpbmcgZXZlbiBtaWdodCBiZSByb2xsYmFja2VkLCBpbiB3aGljaCBjYXNlIHdlIHNob3Vs ZCBub3QgbG9zZSB0aGlzCisgKiBhY3Rpb24uCisgKi8KK3N0YXRpYyB2b2lkCit1bnJlZ2lzdGVy X3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKK3sKKwlMaXN0Q2VsbCAgICps OworCisJZm9yZWFjaChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJv cEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QobCk7 CisKKwkJaWYgKHhhY3RfYWktPnZhcmlkID09IHZhcmlkKQorCQkJeGFjdF9haS0+ZGVsZXRpbmdf c3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCX0KK30KKwogLyoKICAqIFJl bGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCkBAIC0yOTgsMTUgKzM5OSw5MiBA QCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQogfQogCiAvKgot ICogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5 LgorICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlh YmxlcywKKyAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4K ICAqLwogdm9pZAotQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyh2b2lkKQorQXRQcmVFT1hh Y3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQogewotCS8qIFdlIGNhbm5vdCB0byBk byBpdCB3aGVuIHRyYW5zYWN0aW9uIGlzIGFib3J0ZWQgKi8KLQlBc3NlcnQoSXNUcmFuc2FjdGlv blN0YXRlKCkpOworCWlmIChpc0NvbW1pdCkKKwl7CisJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCisJ CXsKKwkJCUxpc3RDZWxsICAgKmw7CisKKwkJCWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQor CQkJeworCQkJCVNWYXJpYWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haSA9CisJCQkJCShTVmFyaWFi bGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGwpOworCisJCQkJLyogSXRlcmF0ZSBvbmx5IG92ZXIg ZW50cmllcyB0aGF0IGFyZSBzdGlsbCBwZW5kaW5nICovCisJCQkJaWYgKHhhY3RfYWktPmRlbGV0 aW5nX3N1YmlkID09IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCQkJCXsKKwkJCQkJT2JqZWN0 QWRkcmVzcyBvYmplY3Q7CisKKwkJCQkJb2JqZWN0LmNsYXNzSWQgPSBWYXJpYWJsZVJlbGF0aW9u SWQ7CisJCQkJCW9iamVjdC5vYmplY3RJZCA9IHhhY3RfYWktPnZhcmlkOworCQkJCQlvYmplY3Qu b2JqZWN0U3ViSWQgPSAwOworCisJCQkJCS8qCisJCQkJCSAqIFNpbmNlIHRoaXMgaXMgYW4gYXV0 b21hdGljIGRyb3AsIHJhdGhlciB0aGFuIG9uZQorCQkJCQkgKiBkaXJlY3RseSBpbml0aWF0ZWQg YnkgdGhlIHVzZXIsIHdlIHBhc3MgdGhlCisJCQkJCSAqIFBFUkZPUk1fREVMRVRJT05fSU5URVJO QUwgZmxhZy4KKwkJCQkJICovCisJCQkJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSAo b2lkOiV1KSB3aWxsIGJlIGRlbGV0ZWQgKGZvcmNlZCBieSBPTiBDT01NSVQgRFJPUCBjbGF1c2Up IiwKKwkJCQkJCSB4YWN0X2FpLT52YXJpZCk7CisKKwkJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmpl Y3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAor CQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9RVUlFVExZKTsKKwkJCQl9CisJCQl9CisJCX0KIAot CXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHRydWUpOworCQlyZW1vdmVfaW52YWxp ZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUgdG8gY2xl YW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVsYXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQKKwkg KiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0ZWQgdHJhbnNhY3Rpb24uCisJICovCisJbGlzdF9m cmVlX2RlZXAoeGFjdF9kcm9wX2l0ZW1zKTsKKwl4YWN0X2Ryb3BfaXRlbXMgPSBOVUxMOworfQor CisvKgorICogUG9zdC1zdWJjb21taXQgb3IgcG9zdC1zdWJhYm9ydCBjbGVhbnVwIG9mIHhhY3Qg ZHJvcCBsaXN0LgorICoKKyAqIER1cmluZyBzdWJhYm9ydCwgd2UgY2FuIGltbWVkaWF0ZWx5IHJl bW92ZSBlbnRyaWVzIGNyZWF0ZWQgZHVyaW5nIHRoaXMKKyAqIHN1YnRyYW5zYWN0aW9uLiBEdXJp bmcgc3ViY29tbWl0LCBqdXN0IHRyYW5zZmVyIGVudHJpZXMgbWFya2VkIGR1cmluZworICogdGhp cyBzdWJ0cmFuc2FjdGlvbiBhcyBiZWluZyB0aGUgcGFyZW50J3MgcmVzcG9uc2liaWxpdHkuCisg Ki8KK3ZvaWQKK0F0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKKwkJ CQkJCQkgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklk IHBhcmVudFN1YmlkKQoreworCUxpc3RDZWxsICAgKmN1cl9pdGVtOworCisJZm9yZWFjaChjdXJf aXRlbSwgeGFjdF9kcm9wX2l0ZW1zKQorCXsKKwkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0 X2FpID0KKwkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGN1cl9pdGVtKTsKKwor CQlpZiAoIWlzQ29tbWl0ICYmIHhhY3RfYWktPmNyZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJ CXsKKwkJCS8qIGN1cl9pdGVtIG11c3QgYmUgcmVtb3ZlZCAqLworCQkJeGFjdF9kcm9wX2l0ZW1z ID0gZm9yZWFjaF9kZWxldGVfY3VycmVudCh4YWN0X2Ryb3BfaXRlbXMsIGN1cl9pdGVtKTsKKwkJ CXBmcmVlKHhhY3RfYWkpOworCQl9CisJCWVsc2UKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBi ZSBwcmVzZXJ2ZWQgKi8KKwkJCWlmICh4YWN0X2FpLT5jcmVhdGluZ19zdWJpZCA9PSBteVN1Ymlk KQorCQkJCXhhY3RfYWktPmNyZWF0aW5nX3N1YmlkID0gcGFyZW50U3ViaWQ7CisJCQlpZiAoeGFj dF9haS0+ZGVsZXRpbmdfc3ViaWQgPT0gbXlTdWJpZCkKKwkJCQl4YWN0X2FpLT5kZWxldGluZ19z dWJpZCA9IGlzQ29tbWl0ID8gcGFyZW50U3ViaWQgOiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsK KwkJfQorCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwppbmRleCBmZGFkODMzODMyNC4uNmY3NGYx NGY2YWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy92aWV3LmMKQEAgLTQ4NCw3ICs0ODQsNyBAQCBEZWZpbmVWaWV3KFZp ZXdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkgKi8KIAl2aWV3ID0gY29w eU9iamVjdChzdG10LT52aWV3KTsJLyogZG9uJ3QgY29ycnVwdCBvcmlnaW5hbCBjb21tYW5kICov CiAJaWYgKHZpZXctPnJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVAot CQkmJiBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb24odmlld1BhcnNlKSkKKwkJJiYgaXNRdWVyeVVz aW5nVGVtcE9iamVjdCh2aWV3UGFyc2UpKQogCXsKIAkJdmlldy0+cmVscGVyc2lzdGVuY2UgPSBS RUxQRVJTSVNURU5DRV9URU1QOwogCQllcmVwb3J0KE5PVElDRSwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmlu ZGV4IDk5Y2QwNTkxZjhkLi4xZjg3N2IzMzBmMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMzA2 LDEwICszMzA2LDEwIEBAIHRyYW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpCiAJCSAqIGNyZWF0aW9uIHF1ZXJ5LiBJdCB3 b3VsZCBiZSBoYXJkIHRvIHJlZnJlc2ggZGF0YSBvciBpbmNyZW1lbnRhbGx5CiAJCSAqIG1haW50 YWluIGl0IGlmIGEgc291cmNlIGRpc2FwcGVhcmVkLgogCQkgKi8KLQkJaWYgKGlzUXVlcnlVc2lu Z1RlbXBSZWxhdGlvbihxdWVyeSkpCisJCWlmIChpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHF1ZXJ5 KSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVz ZSB0ZW1wb3JhcnkgdGFibGVzIG9yIHZpZXdzIikpKTsKKwkJCQkJIGVycm1zZygibWF0ZXJpYWxp emVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzLCB2aWV3cyBvciBzZXNzaW9u IHZhcmlhYmxlcyIpKSk7CiAKIAkJLyoKIAkJICogQSBtYXRlcmlhbGl6ZWQgdmlldyB3b3VsZCBl aXRoZXIgbmVlZCB0byBzYXZlIHBhcmFtZXRlcnMgZm9yIHVzZSBpbgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXgg YzE3YTcxZjY2NTYuLjI2YWRkNTk5YWM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTQ4MCw2ICs0ODAsNyBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlz dCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPGl2YWw+CSBPcHRUZW1wCiAldHlwZSA8 aXZhbD4JIE9wdE5vTG9nCiAldHlwZSA8b25jb21taXQ+IE9uQ29tbWl0T3B0aW9uCisldHlwZSA8 aXZhbD4JIE9uRU9YQWN0aW9uT3B0aW9uCiAKICV0eXBlIDxpdmFsPglmb3JfbG9ja2luZ19zdHJl bmd0aAogJXR5cGUgPG5vZGU+CWZvcl9sb2NraW5nX2l0ZW0KQEAgLTUyMjEsMjYgKzUyMjIsMzkg QEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAog Q3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUg b3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJQ1JFQVRFIE9wdFRlbXAgVkFS SUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBP bkVPWEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBt YWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDM7Ci0J CQkJCW4tPnR5cGVOYW1lID0gJDU7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVz ZSAqKSAkNjsKKwkJCQkJJDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPnZhcmlhYmxl ID0gJDQ7CisJCQkJCW4tPnR5cGVOYW1lID0gJDY7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29s bGF0ZUNsYXVzZSAqKSAkNzsKKwkJCQkJbi0+ZW94YWN0aW9uID0gJDg7CiAJCQkJCW4tPmlmX25v dF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JF QVRFIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5h bWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1Ag Tk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlIE9uRU9YQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAq biA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJbi0+dmFyaWFibGUgPSAk NjsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkODsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRl Q2xhdXNlICopICQ5OworCQkJCQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+dmFy aWFibGUgPSAkNzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQxMDsKKwkJCQkJbi0+ZW94YWN0aW9uID0gJDExOwogCQkJCQlu LT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJ OwogCisvKgorICogVGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBkcm9wcGVkIG9u IHN1Y2Nlc3NmdWwKKyAqIHRyYW5zYWN0aW9uIGVuZCBsaWtlIHRhYmxlcy4KKyAqLworT25FT1hB Y3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJPUAkJCQkJeyAkJCA9IFZBUklBQkxFX0VPWF9EUk9Q OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX0VPWF9OT09QOyB9CisJ CTsKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFt ZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5k ZXggMmY2NGVhZjBlMzcuLmJkZTViMTExOGM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRp b24uYwpAQCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyB2b2lkIGV4cGFuZFR1cGxlRGVzYyhUdXBs ZURlc2MgdHVwZGVzYywgQWxpYXMgKmVyZWYsCiBzdGF0aWMgaW50CXNwZWNpYWxBdHROdW0oY29u c3QgY2hhciAqYXR0bmFtZSk7CiBzdGF0aWMgYm9vbCBydGVfdmlzaWJsZV9pZl9sYXRlcmFsKFBh cnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VUYmxFbnRyeSAqcnRlKTsKIHN0YXRpYyBib29sIHJ0ZV92 aXNpYmxlX2lmX3F1YWxpZmllZChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0 ZSk7Ci1zdGF0aWMgYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKE5vZGUgKm5v ZGUsIHZvaWQgKmNvbnRleHQpOworc3RhdGljIGJvb2wgaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93 YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKIAogLyoKQEAgLTM4MjEsMTMgKzM4 MjEsMTMgQEAgcnRlX3Zpc2libGVfaWZfcXVhbGlmaWVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFu Z2VUYmxFbnRyeSAqcnRlKQogICogdGhlIHF1ZXJ5IGlzIGEgdGVtcG9yYXJ5IHJlbGF0aW9uICh0 YWJsZSwgdmlldywgb3IgbWF0ZXJpYWxpemVkIHZpZXcpLgogICovCiBib29sCi1pc1F1ZXJ5VXNp bmdUZW1wUmVsYXRpb24oUXVlcnkgKnF1ZXJ5KQoraXNRdWVyeVVzaW5nVGVtcE9iamVjdChRdWVy eSAqcXVlcnkpCiB7Ci0JcmV0dXJuIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoKE5v ZGUgKikgcXVlcnksIE5VTEwpOworCXJldHVybiBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtl cigoTm9kZSAqKSBxdWVyeSwgTlVMTCk7CiB9CiAKIHN0YXRpYyBib29sCi1pc1F1ZXJ5VXNpbmdU ZW1wUmVsYXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCitpc1F1ZXJ5VXNp bmdUZW1wT2JqZWN0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogewogCWlmIChu b2RlID09IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKQEAgLTM4NTMsMTMgKzM4NTMsMjMgQEAgaXNR dWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQog CQl9CiAKIAkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAotCQkJCQkJCQkgaXNRdWVy eVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlciwKKwkJCQkJCQkJIGlzUXVlcnlVc2luZ1RlbXBPYmpl Y3Rfd2Fsa2VyLAogCQkJCQkJCQkgY29udGV4dCwKIAkJCQkJCQkJIFFUV19JR05PUkVfSk9JTkFM SUFTRVMpOwogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAg KnAgPSAoUGFyYW0gKikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklB QkxFKQorCQl7CisJCQlpZiAoaXNBbnlUZW1wTmFtZXNwYWNlKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZShwLT5wYXJhbXZhcmlkKSkpCisJCQkJcmV0dXJuIHRydWU7CisJCX0KKwl9CiAK IAlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLAotCQkJCQkJCQkgIGlzUXVlcnlV c2luZ1RlbXBSZWxhdGlvbl93YWxrZXIsCisJCQkJCQkJCSAgaXNRdWVyeVVzaW5nVGVtcE9iamVj dF93YWxrZXIsCiAJCQkJCQkJCSAgY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggMGM0YzM1MDNi NmMuLjdhNzFiMGE4OTJkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTE1OSw3ICs1MTU5LDcgQEAgbGlzdFZhcmlh Ymxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRh IGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9w dDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9v bCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CiAKQEAg LTUxNjksMTIgKzUxNjksMTYgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUs IHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1l IEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4i CiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYu dmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIs XG4iCi0JCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMg XCIlc1wiXG4iLAorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3du ZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBDQVNFIHYudmFyZW94YWN0aW9uXG4iCisJCQkJ CSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKKwkJCQkJICAiICBFTkQg YXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiksCiAJCQkJCSAgZ2V0 dGV4dF9ub29wKCJOYW1lIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIiksCiAJCQkJCSAg Z2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKLQkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIikp OworCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlRy YW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIAogCWlmICh2ZXJib3NlKQogCXsKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuYwppbmRleCA2MTllNDBhNmU3Yy4uMmZmYzI3ZDAyMmUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAg LTM1OTksNyArMzU5OSw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQg c3RhcnQsIGludCBlbmQpCiAJfQogLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGlu c2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBD UkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KLQllbHNlIGlmIChUYWlsTWF0Y2hlcygi Q1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJD UkVBVEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiVEVNUHxU RU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7 CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQogCQkv KiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgdHlwZXMgKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCAxZjQxMTI3OTBhZi4uYWZhZGQ2ODczYTIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTU0LDYgKzU0LDkgQEAgQ0FUQUxPRyhwZ192YXJp YWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3Mg dHlwZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEpOwogCisJLyogYWN0aW9u IG9uIHRyYW5zYWN0aW9uIGVuZCAqLworCWNoYXIJCXZhcmVveGFjdGlvbiBCS0lfREVGQVVMVChu KTsKKwogCS8qIHZhcmlhYmxlIGNvbGxhdGlvbiAqLwogCU9pZAkJCXZhcmNvbGxhdGlvbiBCS0lf REVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24pOwogCkBAIC02Niw2ICs2OSwx MiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogI2VuZGlm CiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwogCit0eXBlZGVmIGVudW0gVmFyaWFibGVFT1hBY3Rp b24KK3sKKwlWQVJJQUJMRV9FT1hfTk9PUCA9ICduJywJLyogTk9PUCAqLworCVZBUklBQkxFX0VP WF9EUk9QID0gJ2QnLAkvKiBPTiBDT01NSVQgRFJPUCAqLworfQkJCVZhcmlhYmxlRU9YQWN0aW9u OworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNwb25k cyB0byBhIHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCiAgKgkJdGhlIGZvcm1hdCBvZiBwZ192YXJp YWJsZSByZWxhdGlvbi4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRl eCAwZDRjNjM1YWU3Yi4uN2M4Y2VlYTIwYzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgKQEAgLTIxLDggKzIxLDExIEBACiAjaW5jbHVkZSAidGNvcC9jbWR0YWcuaCIK ICNpbmNsdWRlICJ1dGlscy9xdWVyeWVudmlyb25tZW50LmgiCiAKLWV4dGVybiB2b2lkIFNlc3Np b25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpOwotZXh0ZXJuIHZvaWQgQXRQcmVF T1hhY3RfU2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKK2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJs ZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBlb3hhY3Rpb24pOworZXh0ZXJuIHZv aWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBlb3hhY3Rp b24pOworZXh0ZXJuIHZvaWQgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29t bWl0KTsKK2V4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0Nv bW1pdCwgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAorCQkJCQkJCQkJCSBTdWJUcmFuc2FjdGlv bklkIHBhcmVudFN1YmlkKTsKIAogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2 YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiB2b2lkIFNldFNlc3Npb25W YXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNO dWxsKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBmYmFiMzM4YTkzOC4uNDRiNWFjZDdjZjAg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0NTUsNiArMzQ1NSw3IEBAIHR5cGVkZWYgc3Ry dWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUg dHlwZSBvZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJ aWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCWNo YXIJCWVveGFjdGlvbjsJCS8qIG9uIGNvbW1pdCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZh clN0bXQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA3MjJkZjY5OTUzNy4uMTg1MjdkMGY4 NWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC01MSw3ICs1MSw5IEBAIHR5cGVkZWYgc3RydWN0 IEFsaWFzCiAJTGlzdAkgICAqY29sbmFtZXM7CQkvKiBvcHRpb25hbCBsaXN0IG9mIGNvbHVtbiBh bGlhc2VzICovCiB9IEFsaWFzOwogCi0vKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0 ZW1wb3JhcnkgcmVsYXRpb25zICovCisvKgorICogV2hhdCB0byBkbyBhdCBjb21taXQgdGltZSBm b3IgdGVtcG9yYXJ5IHJlbGF0aW9ucyBvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqLwogdHlwZWRl ZiBlbnVtIE9uQ29tbWl0QWN0aW9uCiB7CiAJT05DT01NSVRfTk9PUCwJCQkJLyogTm8gT04gQ09N TUlUIGNsYXVzZSAoZG8gbm90aGluZykgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9yZWxhdGlvbi5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgK aW5kZXggYmVhMmRhNTQ5NjEuLjU4NWVhZGY2NTI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfcmVsYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVs YXRpb24uaApAQCAtMTI0LDYgKzEyNCw2IEBAIGV4dGVybiBpbnQJYXR0bmFtZUF0dE51bShSZWxh dGlvbiByZCwgY29uc3QgY2hhciAqYXR0bmFtZSwgYm9vbCBzeXNDb2xPSyk7CiBleHRlcm4gY29u c3QgTmFtZURhdGEgKmF0dG51bUF0dE5hbWUoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7CiBleHRl cm4gT2lkCWF0dG51bVR5cGVJZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBPaWQJ YXR0bnVtQ29sbGF0aW9uSWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7Ci1leHRlcm4gYm9vbCBp c1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb24oUXVlcnkgKnF1ZXJ5KTsKK2V4dGVybiBib29sIGlzUXVl cnlVc2luZ1RlbXBPYmplY3QoUXVlcnkgKnF1ZXJ5KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNF X1JFTEFUSU9OX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9z ZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9u LXZhcmlhYmxlLm91dAppbmRleCAyOTY4Y2NlMDg5NS4uOWZiYmY5MDU3YTYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAorKysgYi9z cmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAgLTg1LDEw ICs4NSwxMSBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKLXN0YXJ0aW5nIHBlcm11 dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBk aXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBv X2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCiBz dGVwIGNyZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsKIHN0ZXAgbGV0Mzog TEVUIG15dmFyMyA9ICd0ZXN0JzsKIHN0ZXAgczM6IEJFR0lOOworc3RlcCBvX2NfZDogQ1JFQVRF IFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsKIHN0ZXAg Y3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owogc3RlcCBsZXQ0OiBMRVQg bXl2YXI0ID0gJ3Rlc3QnOwogc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjIGIv c3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwppbmRleCBjODY0 ZmVlNDAwNi4uNDVlNjVkNDA4NWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVj cy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nl c3Npb24tdmFyaWFibGUuc3BlYwpAQCAtMjQsNiArMjQsNyBAQCBzdGVwIGNyZWF0ZQkJeyBDUkVB VEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQogc2Vzc2lvbiBzMwogc3RlcCBzMwkJCXsgQkVH SU47IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CitzdGVwIG9fY19kCQl7 IENSRUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7 IH0KIHN0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQogc3Rl cCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KIHN0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJ QUJMRSBteXZhcjQ7IH0KQEAgLTQ3LDQgKzQ4LDQgQEAgcGVybXV0YXRpb24gbGV0IHZhbCBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29u Y3VycmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcg dmFsIHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMg aGF2ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBjcmVh dGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJtdXRhdGlv biBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBk aXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggYzg5MDY3 NDkwZjcuLmFkN2NkMWNhMzkwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU4 MzMsMjAgKzU4MzMsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8 IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2 YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAg ICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlw ZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRl c2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8 IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAg ICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAg fCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1Ymxp YyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29s bGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAg RGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNv bWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTYzMTQsOSArNjMxNCw5IEBAIExpc3Qg b2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8 IE93bmVyIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0t LS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEg cXVhbGlmaWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODksOSBAQCBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5p bnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJv cGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKLSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFt ZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBi dXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgpAQCAtNjYyOCw5ICs2NjI4LDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgw IHJvd3MpCiAKIFxkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFi bGUiCi0gICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBl IHwgQ29sbGF0aW9uIHwgT3duZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBT Y2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGgg ZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBkYTVh YjRkZThmYi4uMGMxY2Y3MTBiM2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUsMTEgQEAgU0VUIFJPTEUgVE8gcmVn cmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGlu dDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0LnZhcjEKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJp YWJsZXMKLSAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBP d25lciAgICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAg ICAgICAgICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRlc3QgfCB2YXIx IHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAgICAgICAgICB8 ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29s bGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8IERl c2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg c3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy PXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25l ciB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0xMzYyLDMg KzEzNjIsMTIzIEBAIFNFTEVDVCB2YXIxOwogCiBERUFMTE9DQVRFIHAxOwogRFJPUCBWQVJJQUJM RSB2YXIxOworLS0gdGVtcG9yYXJ5IHZhcmlhYmxlcworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CistLSB0aGlzIHZpZXcgc2hvdWxkIGJlIHRlbXBvcmFyeQorQ1JFQVRFIFZJRVcg dmFyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgdmFyMTsKK05PVElDRTogIHZpZXcgInZhcl90ZXN0X3Zp ZXciIHdpbGwgYmUgYSB0ZW1wb3JhcnkgdmlldworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7 CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdmFyX3Rlc3RfdmlldworQkVHSU47Cisg IENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQg dmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJv dykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBE Uk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor ICAxMDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAK Ky0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAg ICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBp bnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZh cjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf dmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAg MAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQor CitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERS T1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsK Ky0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVS RSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisK Ky0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBD UkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZh cjEgPSAxMDA7CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBST0xM QkFDSyBUTyBzMTsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJv dykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDAxODJi NjJhYjU1Li5jOTExZDFiMmNiYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtNzkyLDYgKzc5Miw3IEBAIEJFR0lOOwogICBEUk9QIFZBUklBQkxFIHZh cjE7CiAgIFNFTEVDVCB2YXIyOwogUk9MTEJBQ0s7CisKIC0tIHNob3VsZCBiZSBvawogU0VMRUNU IHZhcjE7CiAKQEAgLTkxOCwzICs5MTksNjggQEAgU0VMRUNUIHZhcjE7CiAKIERFQUxMT0NBVEUg cDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMKK0NSRUFU RSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBiZSB0ZW1w b3JhcnkKK0NSRUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CisKK0RST1Ag VkFSSUFCTEUgdmFyMSBDQVNDQURFOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUg dmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1Qg dmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybwor U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47Cisg IENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQg dmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIHpl cm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFy MSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50 IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf dmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxF Q1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JF QVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIx ID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJl IHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAn dmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMg aW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FWRVBPSU5UIHMxOwor ICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1QgdmFyMTsK K0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zh cmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNU IGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKZGlmZiAtLWdpdCBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKaW5kZXggYmI5ZDgzMTQ4MWQuLjkxYTk2M2Y5NTcwIDEwMDY0NAotLS0gYS9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdApAQCAtMjc4Nyw2ICsyNzg3LDcgQEAgU3VwcG9ydFJlcXVlc3RXRnVuY01vbm90b25p YwogU1ZhcmlhYmxlCiBTVmFyaWFibGVEYXRhCiBTVmFyaWFibGVTdGF0ZQorU1ZhcmlhYmxlWEFj dERyb3BJdGVtCiBTeW4KIFN5bmNPcHMKIFN5bmNSZXBDb25maWdEYXRhCi0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20240720-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhix11 RnJvbSBjZTllM2FiZTMzMjZiMDdjOGMxZGEzMzc4Y2Q1NWUwMWVhOWI0ZjFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxMDo0NDoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MTldIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNzaW9u cwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1bHQg ZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9udmFy cwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNzZnVs bHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFnIGZv ciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21sL2Rk bC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKystCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAyMSArKystLQogZG9jL3NyYy9zZ21sL3Jl Zi9kaXNjYXJkLnNnbWwgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8IDI3ICsrKysrKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgODcgKysrKysrKysrKysrKysrKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAgICAgICAgIHwgIDIgKwogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgIDQgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAzNiArKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAzICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ub2RlLmggICAgICAgICAgICAgICB8ICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8IDM2ICsrKystLS0tCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA3MyArKysrKysrKysrKysrKy0tCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCA0OCArKysrKysrKysr CiAyMCBmaWxlcyBjaGFuZ2VkLCAzNTMgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCBkMjk5NWE3OGVjMS4uMjcwYWE3MThkOTggMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC05ODY2LDYgKzk4NjYsMTQgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dmFyZGVmZXhwcjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX25v ZGVfdHJlZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBp bnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFyaWFibGUgZGVmYXVsdCB2YWx1ZQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91 cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAppbmRleCAyOGYwMzFiNTcyNi4uZWI3OGZkYzUyOGMgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAg LTUzNDEsMTMgKzUzNDEsMTIgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKIAogICAgPHBhcmE+ CiAgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUgY3Vy cmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCi0gICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMg YSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMKLSAgICBiZWVu IHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHVzaW5nIHRoZQot ICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gVGhlIGNvbnRlbnQgb2YgYSB2YXJp YWJsZSBpcyBub3QKLSAgICB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzIHJlZ3Vs YXIgdmFyaWFibGVzIGluIFBMIGxhbmd1YWdlcy4KLSAgICBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHBlcnNpc3RlbnQgb3IgY2FuIGJlIHRlbXBvcmFyeS4gSW4gYm90aCBjYXNlcywKLSAg ICB0aGUgY29udGVudCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpcyB0ZW1wb3JhcnkgYW5kIG5vdCBz aGFyZWQgKGxpa2UgdGhlCi0gICAgY29udGVudCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgICBh IHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBlaXRoZXIgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFs PiBvciBhIGRlZmF1bHQKKyAgICB2YWx1ZSwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMgYmVlbiBzZXQg dG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQKKyAgICBzZXNzaW9uIHVzaW5nIHRoZSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuIFRoZSBjb250ZW50IG9mIGEgdmFyaWFibGUK KyAgICBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcyByZWd1bGFyIHZh cmlhYmxlcyBpbiBQTCBsYW5ndWFnZXMuCisgICAgVGhlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBw ZXJzaXN0ZW50LCBidXQgdGhlIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMKKyAgICBpcyB0 ZW1wb3JhcnkgYW5kIG5vdCBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRh YmxlcykuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKaW5kZXggNTBjZjMxNmNkZjEuLjZkNmUyOWFjNGIyIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JB UlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KLSAgICBb IHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCisgICAgWyBE RUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3JlcGxh Y2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9 IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC00Miwx MCArNDIsMTAgQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InAKIAogICA8cGFyYT4KICAgIFRoZSB2 YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lv bi4gUmV0cmlldmluZwotICAgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBlaXRo ZXIgYSBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlzIHNldCB0bwotICAgc29tZXRoaW5nIGVsc2Ug aW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgTEVUIGNvbW1hbmQuIFRoZSBjb250ZW50IG9m Ci0gICBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhl ICBzYW1lIGFzIHJlZ3VsYXIKLSAgIHZhcmlhYmxlcyBpbiBQTCBsYW5ndWFnZXMuCisgICBhIHNl c3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIGVpdGhlciBhIE5VTEwgb3IgYSBkZWZhdWx0 IHZhbHVlLCB1bmxlc3MKKyAgIGl0cyB2YWx1ZSBpcyBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4g dGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgTEVUCisgICBjb21tYW5kLiBUaGUgY29udGVudCBv ZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlCisg ICBzYW1lIGFzIHJlZ3VsYXIgdmFyaWFibGVzIGluIFBMIGxhbmd1YWdlcy4KICAgPC9wYXJhPgog CiAgIDxwYXJhPgpAQCAtMTExLDYgKzExMSwxNyBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRF TVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAog ICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBp ZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRlZmF1bHQiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkRFRkFV TFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPkRFRkFV TFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUgdXNlZCB0byBhc3NpZ24gYSBkZWZhdWx0CisgICAg ICB2YWx1ZSB0byBhIHNlc3Npb24gdmFyaWFibGUuIFRoaXMgZXhwcmVzc2lvbiBpcyBldmFsdWF0 ZWQgd2hlbiB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgaXMgZmlyc3QgYWNjZXNzZWQgZm9y IHJlYWRpbmcgYW5kIGhhZCBub3QgeWV0IGJlZW4gYXNzaWduZWQgYSB2YWx1ZS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3Rl bnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KICAgICA8dGVybT48 bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbAppbmRleCA2MWI5NjdmOWM5Yi4uNmIwY2I5NTAzNGYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv ZGlzY2FyZC5zZ21sCkBAIC03MSw3ICs3MSw4IEBAIERJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNF UVVFTkNFUyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogICAgIDxsaXN0aXRlbT4K ICAgICAgPHBhcmE+CiAgICAgICBSZXNldHMgdGhlIHZhbHVlIG9mIGFsbCBzZXNzaW9uIHZhcmlh Ymxlcy4gSWYgYSB2YXJpYWJsZQotICAgICAgaXMgbGF0ZXIgcmV1c2VkLCBpdCBpcyByZS1pbml0 aWFsaXplZCB0byA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPi4KKyAgICAgIGlzIGxhdGVyIHJldXNl ZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gZWl0aGVyCisgICAgICA8bGl0ZXJhbD5OVUxMPC9s aXRlcmFsPiBvciBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCBl OWE2Zjc1NWZkYy4uNmE0NjQ2MWYwMzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAg LTI0LDYgKzI0LDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgor I2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vf Y29sbGF0ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHByLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUg InV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMzcsNiArNDAsNyBAQCBzdGF0aWMgT2JqZWN0QWRkcmVz cyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBPaWQgdmFy T3duZXIsCiAJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKIAkJCQkJCQkJCSBib29sIGlmX25v dF9leGlzdHMsCisJCQkJCQkJCQkgTm9kZSAqdmFyRGVmZXhwciwKIAkJCQkJCQkJCSBWYXJpYWJs ZUVPWEFjdGlvbiBlb3hhY3Rpb24pOwogCiAKQEAgLTUxLDYgKzU1LDcgQEAgY3JlYXRlX3Zhcmlh YmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJD b2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCU5vZGUgKnZhckRlZmV4cHIs CiAJCQkJVmFyaWFibGVFT1hBY3Rpb24gZW94YWN0aW9uKQogewogCUFjbAkJICAgKnZhcmFjbDsK QEAgLTExNCw2ICsxMTksMTEgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUs CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyZW94YWN0 aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0oZW94YWN0aW9uKTsKIAorCWlmICh2YXJEZWZleHByKQor CQl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJkZWZleHByIC0gMV0gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKG5vZGVUb1N0cmluZyh2YXJEZWZleHByKSk7CisJZWxzZQorCQludWxsc1tBbnVtX3Bn X3ZhcmlhYmxlX3ZhcmRlZmV4cHIgLSAxXSA9IHRydWU7CisKIAl2YXJhY2wgPSBnZXRfdXNlcl9k ZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkgIHZhck5hbWVz cGFjZSk7CiAJaWYgKHZhcmFjbCAhPSBOVUxMKQpAQCAtMTUwLDYgKzE2MCwxMSBAQCBjcmVhdGVf dmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVw ZW5kZW5jaWVzKCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CiAJZnJlZV9vYmpl Y3RfYWRkcmVzc2VzKGFkZHJzKTsKIAorCS8qIGRlcGVuZGVuY3kgb24gZGVmYXVsdCBleHByICov CisJaWYgKHZhckRlZmV4cHIpCisJCXJlY29yZERlcGVuZGVuY3lPbkV4cHIoJm15c2VsZiwgKE5v ZGUgKikgdmFyRGVmZXhwciwKKwkJCQkJCQkgICBOSUwsIERFUEVOREVOQ1lfTk9STUFMKTsKKwog CS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KIAlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CiAKQEAgLTE4NSw2ICsyMDAsNyBAQCBD cmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpz dG10KQogCU9pZAkJCWNvbGxhdGlvbjsKIAlPaWQJCQl0eXBjb2xsYXRpb247CiAJT2JqZWN0QWRk cmVzcyB2YXJpYWJsZTsKKwlOb2RlCSAgICpjb29rZWRfZGVmYXVsdCA9IE5VTEw7CiAKIAkvKiBD aGVjayBjb25zaXN0ZW5jeSBvZiBhcmd1bWVudHMgKi8KIAlpZiAoc3RtdC0+ZW94YWN0aW9uID09 IFZBUklBQkxFX0VPWF9EUk9QCkBAIC0yMjYsNiArMjQyLDE2IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQlmb3Jt YXRfdHlwZV9iZSh0eXBpZCkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10 LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKIAorCWlmIChzdG10LT5kZWZleHByKQorCXsKKwkJ Y29va2VkX2RlZmF1bHQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgc3RtdC0+ZGVmZXhwciwKKwkJ CQkJCQkJCSAgIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUKTsKKworCQljb29rZWRfZGVmYXVs dCA9IGNvZXJjZV90b19zcGVjaWZpY190eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCSBjb29rZWRf ZGVmYXVsdCwgdHlwaWQsICJERUZBVUxUIik7CisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0 YXRlLCBjb29rZWRfZGVmYXVsdCk7CisJfQorCiAJdmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUo c3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsCiAJCQkJCQkJICAgbmFtZXNwYWNlaWQsCiAJCQkJCQkJ ICAgdHlwaWQsCkBAIC0yMzMsNiArMjU5LDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICB2YXJvd25lciwK IAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJ CQkJCQkgICBjb29rZWRfZGVmYXVsdCwKIAkJCQkJCQkgICBzdG10LT5lb3hhY3Rpb24pOwogCiAJ ZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6JWQp IHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYwppbmRleCBmY2M5ZjE2MTZmMS4uYThmNjNlNzhhNjEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJl eGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNs dWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5j bHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5o IgogI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgpAQCAtNTIzLDExICs1MjQsNjggQEAgQXRFT1N1 YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LAogCX0KIH0KIAorLyoKKyAqIGV2 YWx1YXRlIGFuIGV4cHJlc3Npb24KKyAqLworc3RhdGljIHZvaWQKK2V2YWxfYXNzaWduX2RlZmV4 cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCit7CisJRGF0dW0JCWRlZmV4cHJfdmFs dWU7CisJYm9vbAkJaXNudWxsOworCisJQXNzZXJ0KHN2YXIpOworCUFzc2VydChzdmFyLT5pc192 YWxpZCk7CisJQXNzZXJ0KEhlYXBUdXBsZUlzVmFsaWQodHVwKSk7CisKKwlkZWZleHByX3ZhbHVl ID0gU3lzQ2FjaGVHZXRBdHRyKFZBUklBQkxFT0lELAorCQkJCQkJCQkJdHVwLAorCQkJCQkJCQkJ QW51bV9wZ192YXJpYWJsZV92YXJkZWZleHByLAorCQkJCQkJCQkJJmlzbnVsbCk7CisKKwlpZiAo IWlzbnVsbCkKKwl7CisJCUVTdGF0ZQkgICAqZXN0YXRlOworCQlFeHByU3RhdGUgICpkZWZleHBy czsKKwkJRXhwcgkgICAqZGVmZXhwcjsKKwkJY2hhcgkgICAqZGVmZXhwcl9zdHI7CisJCURhdHVt CQl2YWx1ZTsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJZXN0YXRlID0gQ3JlYXRlRXhl Y3V0b3JTdGF0ZSgpOworCisJCWRlZmV4cHJfc3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkZWZl eHByX3ZhbHVlKTsKKwkJZGVmZXhwciA9IChFeHByICopIHN0cmluZ1RvTm9kZShkZWZleHByX3N0 cik7CisKKwkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlf Y3h0KTsKKworCQlkZWZleHByID0gZXhwcmVzc2lvbl9wbGFubmVyKChFeHByICopIGRlZmV4cHIp OworCQlkZWZleHBycyA9IEV4ZWNJbml0RXhwcihkZWZleHByLCBOVUxMKTsKKworCQl2YWx1ZSA9 IEV4ZWNFdmFsRXhwclN3aXRjaENvbnRleHQoZGVmZXhwcnMsCisJCQkJCQkJCQkJICBHZXRQZXJU dXBsZUV4cHJDb250ZXh0KGVzdGF0ZSksCisJCQkJCQkJCQkJICAmaXNudWxsKTsKKworCQlNZW1v cnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJb2xk Y3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJ CQlzdmFyLT52YWx1ZSA9IGRhdHVtQ29weSh2YWx1ZSwgc3Zhci0+dHlwYnl2YWwsIHN2YXItPnR5 cGxlbik7CisJCQlzdmFyLT5pc251bGwgPSBmYWxzZTsKKworCQkJTWVtb3J5Q29udGV4dFN3aXRj aFRvKG9sZGN4dCk7CisJCX0KKworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCX0KK30K KwogLyoKICAqIFVwZGF0ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiBzdmFyCiAgKi8KIHN0YXRpYyB2 b2lkCi1zZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCitz ZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNf d3JpdGUpCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CkBA IC01NzcsNiArNjM1LDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3Zhciwg T2lkIHZhcmlkKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJ QUJMRU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCisJaWYgKCFp c193cml0ZSkKKwkJZXZhbF9hc3NpZ25fZGVmZXhwcihzdmFyLCB0dXApOworCiAJUmVsZWFzZVN5 c0NhY2hlKHR1cCk7CiB9CiAKQEAgLTYwNiw3ICs2NjcsNyBAQCBzZXRfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCSAqLwogCWlmICgh c3Zhci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFyLCBz dmFyLT52YXJpZCk7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZh cmlkLCBmYWxzZSk7CiAJCV9zdmFyID0gJmxvY3N2YXI7CiAJfQogCWVsc2UKQEAgLTc0OCw3ICs4 MDksMjUgQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCSAqLwogCWlmICghc3Zh ci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsK KwkJLyogaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gdXNlIGRlZmV4cCBpZiBpdCBpcyBkZWZpbmVk ICovCisJCVBHX1RSWSgpOworCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBjYXNlLCB0aGUgc2V0 dXAgY2FuIGV4ZWN1dGUgZGVmYXVsdCBleHByZXNzaW9uLiBXaGVuCisJCQkgKiB0aGUgZXhlY3V0 aW9uIG9mIGRlZmF1bHQgZXhwcmVzc2lvbiBmYWlscywgdGhlbiB3ZSBuZWVkIHRvCisJCQkgKiBy ZW1vdmUgZW50cnkgZnJvbSBzZXNzaW9uIHZhcnMuCisJCQkgKi8KKwkJCXNldHVwX3Nlc3Npb25f dmFyaWFibGUoc3ZhciwgdmFyaWQsIGZhbHNlKTsKKwkJfQorCQlQR19DQVRDSCgpOworCQl7CisJ CQkvKiBUaGlzIGVudHJ5IGNhbm5vdCBiZSB2YWxpZCwgcmVtb3ZlIGZyb20gc2Vzc2lvbnZhcnMg Ki8KKwkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxM KTsKKworCQkJLyogcHJvcGFnYXRlIHRoZSBlcnJvciAqLworCQkJUEdfUkVfVEhST1coKTsKKwkJ fQorCQlQR19FTkRfVFJZKCk7CiAKIAkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwi JXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5 IFJFQUQpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKHZhcmlkKSksCkBAIC04MTIsNyArODkxLDcgQEAgU2V0U2Vzc2lvblZhcmlhYmxlKE9p ZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCiAJaWYgKCFmb3VuZCkKIAl7Ci0J CXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCQlzZXR1cF9zZXNzaW9uX3Zh cmlhYmxlKHN2YXIsIHZhcmlkLCB0cnVlKTsKIAogCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFy aWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVt aXR0ZWQgYnkgV1JJVEUpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA2ZTkxZGFhODRk YS4uNzQ2Mjc5NzRkZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjUzLDYgKzY1Myw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bGlzdD4JCXBhcnRpdGlvbnNfbGlzdAogJXR5cGUgPGxp c3Q+CQloYXNoX3BhcnRib3VuZAogJXR5cGUgPGRlZmVsdD4JCWhhc2hfcGFydGJvdW5kX2VsZW0K KyV0eXBlIDxub2RlPgkJT3B0U2Vzc2lvblZhckRlZkV4cHIKIAogJXR5cGUgPG5vZGU+CWpzb25f Zm9ybWF0X2NsYXVzZQogCQkJCWpzb25fZm9ybWF0X2NsYXVzZV9vcHQKQEAgLTUyMjIsMzAgKzUy MjMsMzYgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBx dWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9uRU9YQWN0 aW9uT3B0aW9uCisJCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRf YXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIE9uRU9Y QWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VO b2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKIAkJCQkJJDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7 CiAJCQkJCW4tPnZhcmlhYmxlID0gJDQ7CiAJCQkJCW4tPnR5cGVOYW1lID0gJDY7CiAJCQkJCW4t PmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkNzsKLQkJCQkJbi0+ZW94YWN0aW9uID0g JDg7CisJCQkJCW4tPmRlZmV4cHIgPSAkODsKKwkJCQkJbi0+ZW94YWN0aW9uID0gJDk7CiAJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0K LQkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9u YW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT25FT1hBY3Rpb25PcHRpb24K KwkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9u YW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0U2Vzc2lvblZhckRlZkV4 cHIgT25FT1hBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpu ID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwogCQkJCQkkNy0+cmVscGVyc2lzdGVu Y2UgPSAkMjsKIAkJCQkJbi0+dmFyaWFibGUgPSAkNzsKIAkJCQkJbi0+dHlwZU5hbWUgPSAkOTsK IAkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJbi0+ZW94 YWN0aW9uID0gJDExOworCQkJCQluLT5kZWZleHByID0gJDExOworCQkJCQluLT5lb3hhY3Rpb24g PSAkMTI7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICop IG47CiAJCQkJfQogCQk7CiAKK09wdFNlc3Npb25WYXJEZWZFeHByOiBERUZBVUxUIGJfZXhwcgkJ CQkJeyAkJCA9ICQyOyB9CisJCQl8IC8qIEVNUFRZICovCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJ CTsKKwogLyoKICAqIFRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgZHJvcHBlZCBv biBzdWNjZXNzZnVsCiAgKiB0cmFuc2FjdGlvbiBlbmQgbGlrZSB0YWJsZXMuCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfYWdnLmMKaW5kZXggYjQ5NGM4ODVlOWYuLmNiNTcyMDNlMTg1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2FnZy5jCkBAIC00ODUsNiArNDg1LDcgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50 cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQlicmVhazsKIAkJY2FzZSBFWFBS X0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6 CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAKIAkJCWlmIChpc0FnZykKIAkJ CQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxU IGV4cHJlc3Npb25zIik7CkBAIC05MzQsNiArOTM1LDcgQEAgdHJhbnNmb3JtV2luZG93RnVuY0Nh bGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJCWJyZWFrOwogCQlj YXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05f REVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8o IndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMi KTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKaW5kZXggZjBlYmJjZjViZWIuLjYwMDc2NTU2MzBkIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKQEAgLTU4Myw2ICs1ODMsNyBAQCBleHByX2tpbmRfYWxsb3dzX3Nlc3Np b25fdmFyaWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpCiAJCWNhc2UgRVhQUl9LSU5E X0pPSU5fVVNJTkc6CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCWNhc2UgRVhQUl9L SU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJ CQlyZXN1bHQgPSBmYWxzZTsKIAkJCWJyZWFrOwogCX0KQEAgLTY2OCw2ICs2NjksNyBAQCB0cmFu c2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNh c2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6 CiAJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxF X0RFRkFVTFQ6CiAJCQkvKiBva2F5ICovCiAJCQlicmVhazsKIApAQCAtMjA3OSw2ICsyMDgxLDcg QEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1Ymxpbmsp CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQ Ul9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFV TFQ6CiAJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVzc2lv biIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CkBAIC0z NDI5LDYgKzM0MzIsNyBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5k KQogCQkJcmV0dXJuICJDSEVDSyI7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgog CQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJ QUJMRV9ERUZBVUxUOgogCQkJcmV0dXJuICJERUZBVUxUIjsKIAkJY2FzZSBFWFBSX0tJTkRfSU5E RVhfRVhQUkVTU0lPTjoKIAkJCXJldHVybiAiaW5kZXggZXhwcmVzc2lvbiI7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2Z1bmMuYwppbmRleCA5YWE0ZjYwNzY4Yi4uZmNhYzY5NDQ1NWQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2Z1bmMuYwpAQCAtMjYyMCw2ICsyNjIwLDcgQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJCWJy ZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRf RlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJ CWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZB VUxUIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQ UkVTU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDY3NzQ4MDlhZGQyLi44ZTU0YTdkYzhjYiAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCkBAIC01MzMwLDYgKzUzMzAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkK IAlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKIAlpbnQJCQlpX3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0 eXBuYW1lOworCWludAkJCWlfdmFyZGVmZXhwcjsKIAlpbnQJCQlpX3ZhcmVveGFjdGlvbjsKIAlp bnQJCQlpX3Zhcm93bmVyOwogCWludAkJCWlfdmFyY29sbGF0aW9uOwpAQCAtNTM1NCw2ICs1MzU1 LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAgInBnX2NhdGFsb2cuZm9y bWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxcbiIKIAkJCQkJ ICAiQ0FTRSBXSEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKIAkJCQkJICAi VEhFTiB2LnZhcmNvbGxhdGlvbiBFTFNFIDAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKKwkJCQkJ ICAicGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixc biIKIAkJCQkJICAidi52YXJvd25lcixcbiIKIAkJCQkJICAidi52YXJhY2wsXG4iCiAJCQkJCSAg ImFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01MzcxLDYg KzUzNzMsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3Zhcm5hbWVzcGFjZSA9 IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKIAlpX3ZhcnR5cGUgPSBQUWZudW1iZXIo cmVzLCAidmFydHlwZSIpOwogCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBu YW1lIik7CisJaV92YXJkZWZleHByID0gUFFmbnVtYmVyKHJlcywgInZhcmRlZmV4cHIiKTsKIAlp X3ZhcmVveGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJlb3hhY3Rpb24iKTsKIAlpX3ZhcmNv bGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIApAQCAtNTQwNyw2ICs1 NDEwLDExIEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkvKiBEZWNpZGUgd2hldGhl ciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVPYmplY3QoJih2YXJpbmZv W2ldLmRvYmopLCBmb3V0KTsKIAorCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3ZhcmRlZmV4 cHIpKQorCQkJdmFyaW5mb1tpXS52YXJkZWZleHByID0gTlVMTDsKKwkJZWxzZQorCQkJdmFyaW5m b1tpXS52YXJkZWZleHByID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmRlZmV4 cHIpKTsKKwogCQkvKiBEbyBub3QgdHJ5IHRvIGR1bXAgQUNMIGlmIG5vIEFDTCBleGlzdHMuICov CiAJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3ZhcmFjbCkpCiAJCQl2YXJpbmZvW2ldLmRv YmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7CkBAIC01NDM5LDYgKzU0NDcsNyBA QCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZv KQogCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCWNoYXIJICAgKnF1YWx2YXJuYW1lOwogCWNvbnN0IGNo YXIgKnZhcnR5cG5hbWU7CisJY29uc3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2 YXJlb3hhY3Rpb247CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCkBAIC01NDUxLDYgKzU0NjAsNyBA QCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZv KQogCiAJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5m bykpOwogCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOworCXZhcmRlZmV4cHIgPSB2 YXJpbmZvLT52YXJkZWZleHByOwogCXZhcmVveGFjdGlvbiA9IHZhcmluZm8tPnZhcmVveGFjdGlv bjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKQEAgLTU0NzAsNiAr NTQ4MCwxMCBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZv ICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAor CWlmICh2YXJkZWZleHByKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBERUZBVUxUICVz IiwKKwkJCQkJCSAgdmFyZGVmZXhwcik7CisKIAlpZiAoc3RyY21wKHZhcmVveGFjdGlvbiwgInIi KSA9PSAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBPTiBUUkFOU0FDVElPTiBFTkQg UkVTRVQiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggZDE3ZDhiMDk2YjEuLmVlMzEyNGJhYzA1IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmgKQEAgLTcwMiw2ICs3MDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZv CiAJRHVtcGFibGVBY2wgZGFjbDsKIAlPaWQJCQl2YXJ0eXBlOwogCWNoYXIJICAgKnZhcnR5cG5h bWU7CisJY2hhcgkgICAqdmFyZGVmZXhwcjsKIAljaGFyCSAgICp2YXJlb3hhY3Rpb247CiAJY2hh cgkgICAqdmFyYWNsOwogCWNoYXIJICAgKnJ2YXJhY2w7CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CmluZGV4IDcxZjhjNzEzZjY4Li5mZjVjMDEwMjBlNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKQEAgLTM5NTksNiArMzk1OSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdD UkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAg ICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVh dGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBf dGVzdC52YXJpYWJsZTMgQVMgaW50ZWdlciBERUZBVUxUIDEwOycsCisJCXJlZ2V4cCA9PiBxci9e CisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUzIEFTIGludGVnZXIgREVG QVVMVCAxMDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVz dF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtl ID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21l YXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92 YXJpYWJsZSBERUZBVUxUIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCcgPT4geworCQlhbGxfcnVu cyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJ Y3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBk dW1wX3Rlc3QudmFyaWFibGU0IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFOU0FDVElPTiBF TkQgUkVTRVQnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlNCBBUyBpbnRlZ2VyIERFRkFVTFQgMTAgT04gVFJBTlNBQ1RJT04gRU5EIFJF U0VUO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3Nj aGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4g eworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3Vy ZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4g ewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1 bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNTAxNzRhMjhlMDMuLjAxMTM4M2FmMDQyIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYwpAQCAtNTE1OSw3ICs1MTU5LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAg ICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3Qg Ym9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRl X2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKIApAQCAtNTE3 MCw2ICs1MTcwLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZl cmJvc2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19j b2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMu b2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xs YXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0 YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIg IHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLCAwKSBhcyBcIiVzXCIsXG4iCiAJ CQkJCSAgIiAgQ0FTRSB2LnZhcmVveGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhF TiAnT04gQ09NTUlUIERST1AnXG4iCiAJCQkJCSAgIiAgICBXSEVOICdyJyBUSEVOICdPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQnXG4iCkBAIC01MTc5LDYgKzUxODAsNyBAQCBsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3Ao IlR5cGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRl eHRfbm9vcCgiT3duZXIiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIAogCWlmICh2ZXJi b3NlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDJhZWNiY2I1MGU5Li4zZDhjYmZm NTBkNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNjYsNiArNjYsOSBAQCBDQVRB TE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIGFjY2VzcyBwZXJt aXNzaW9ucyAqLwogCWFjbGl0ZW0JCXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOwogCisJ LyogbGlzdCBvZiBleHByZXNzaW9uIHRyZWVzIGZvciB2YXJpYWJsZSBkZWZhdWx0IChOVUxMIGlm IG5vbmUpICovCisJcGdfbm9kZV90cmVlIHZhcmRlZmV4cHIgQktJX0RFRkFVTFQoX251bGxfKTsK KwogI2VuZGlmCiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwogCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK aW5kZXggNDRiNWFjZDdjZjAuLmRkYTg3YzMzNzM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBA IC0zNDU1LDYgKzM0NTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAog CVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlDb2xs YXRlQ2xhdXNlICpjb2xsQ2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhp bmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KKwlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVs dCBleHByZXNzaW9uICovCiAJY2hhcgkJZW94YWN0aW9uOwkJLyogb24gY29tbWl0IGFjdGlvbiAq LwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXgg NmQ5MzY5MTk2NTkuLmJhYmEyMmVkODQwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTg0 LDYgKzg0LDcgQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfQ1lDTEVf TUFSSywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KIAlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJ LyogUEwvcGdTUUwgYXNzaWdubWVudCB0YXJnZXQgKi8KIAlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJ CS8qIExFVCB0YXJnZXQgKi8KKwlFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVCwgLyogZGVmYXVs dCB2YWx1ZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBQYXJzZUV4cHJLaW5kOwogCiAKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IGFkN2NkMWNhMzkwLi5jYTEzMWU1NjhlYiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01ODMzLDIwICs1ODMzLDIwIEBAIENS RUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zh cmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJD IjsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAg IFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5z YWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0t LS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwg QyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNj aGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3du ZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNz IHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t CisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVz c192YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg dmFyMSBUTyBQVUJMSUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3Jp cHRpb24nOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK LSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAg IE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAg ICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAK LS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0K LSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgot ICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3Zh cmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAg ICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAg ICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2 YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAg ICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQog CiBEUk9QIFZBUklBQkxFIHZhcjE7CkBAIC02MzE0LDkgKzYzMTQsOSBAQCBMaXN0IG9mIHNjaGVt YXMKICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEg fCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFn YWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjQ4OSw5ICs2 NDg5LDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6 ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkg ZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgog XGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xs YXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1h IHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBh Z2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZp Y2F0aW9ucy4KQEAgLTY2MjgsOSArNjYyOCw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxh dGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwot IFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFs IGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwg T3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFz ZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggODYwMmZiMjI1MGEuLmIwNWFm YThiMzhhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dApAQCAtNDUsMTEgKzQ1LDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBU TyBERUZBVUxUOwogXGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcwotICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93 bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAg QWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVzdCB8IHZhcjEgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJs ZV9vd25lcit8IAotICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wg CisgICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCiAoMSByb3cpCiAKIERS T1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTE1MTYsMyArMTUxNiw2NiBAQCBTRUxFQ1Qg dmFyMSBJUyBOVUxMOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgor ICBSQUlTRSBOT1RJQ0UgJ3ZhcnRlc3RfZnggZXhlY3V0ZWQnOworICBSRVRVUk4gMDsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVM VCB2YXJ0ZXN0X2Z4KCk7CistLSB2YXJ0ZXN0X2Z4IHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVw LCBzaG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CitFUlJPUjogIGNhbm5v dCBkcm9wIGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiBmdW5jdGlv biB2YXJ0ZXN0X2Z4KCkKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBk ZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworTk9U SUNFOiAgdmFydGVzdF9meCBleGVjdXRlZAorIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cp CisKKy0tIHRoZSBkZWZleHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxF UzsKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQK K0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygx IHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2 YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04g J3ZhcnRlc3RfZnggaXMgZXhlY3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgdG8gY3Jhc2gKK1NFTEVDVCB2 YXIxOworRVJST1I6ICB2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZworQ09OVEVYVDogIFBML3BnU1FM IGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBsaW5lIDMgYXQgUkFJU0UKKy0tIGFnYWluCitTRUxFQ1Qg dmFyMTsKK0VSUk9SOiAgdmFydGVzdF9meCBpcyBleGVjdXRpbmcKK0NPTlRFWFQ6ICBQTC9wZ1NR TCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkgbGluZSAzIGF0IFJBSVNFCistLSBidXQgd2UgY2FuIHdy aXRlCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAw CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9m eCgpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDZl NjAwMWRlYmE5Li4zZTFiYTIzNWNlYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbApAQCAtMTAwNCwzICsxMDA0LDUxIEBAIFJPTExCQUNLOwogU0VMRUNUIHZh cjEgSVMgTlVMTDsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBO T1RJQ0UgJ3ZhcnRlc3RfZnggZXhlY3V0ZWQnOworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIHZhcnRl c3RfZngoKTsKKworLS0gdmFydGVzdF9meCBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGRlcCwgc2hv dWxkIGZhaWwKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCB2YXIxOworCistLSB0aGUgZGVmZXhwciBzaG91bGQgYmUgZXZhbHVhdGVkIG9ubHkg b25jZQorU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBpbiB0aGlzIGNh c2UsIHRoZSBkZWZleHByIHNob3VsZCBub3QgYmUgZXZhbHVhdGVkCitMRVQgdmFyMSA9IDEwMDsK K1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkFJU0Ug RVhDRVBUSU9OICd2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZyc7CisgIFJFVFVSTiAwOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgdG8gY3Jh c2gKK1NFTEVDVCB2YXIxOworCistLSBhZ2FpbgorU0VMRUNUIHZhcjE7CisKKy0tIGJ1dCB3ZSBj YW4gd3JpdGUKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUg dmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOwotLSAKMi40NS4yCgo= --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20240720-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhj312 RnJvbSAwZDliMDZjOTYzZjhkMDFlMDE3MjhhMDE3ZTIyYmQyMjZjMmRkNWFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxNDo0MDozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MTldIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoKQWxt b3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTkgKysKIGRvYy9zcmMvc2dt bC9wbHBnc3FsLnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDM0ICsrKy0KIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAgNjkgKysrKysrKy0KIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICA0MSArKystLQogc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICstCiBzcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDU0ICsrKysrKwogc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICsrLS0KIC4uLi9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE2NCArKysrKysrKysrKysrKysr Ky0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEyOSAr KysrKysrKysrKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgNTU4IGluc2VydGlvbnMoKyksIDQ4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggMjcwYWE3MThkOTguLjNiNzNhZDQzY2FkIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbApAQCAtOTgzMiw2ICs5ODMyLDI1IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxh Y2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxl PiZsCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmlzbm90bnVsbDwvc3RydWN0Zmll bGQ+IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBUcnVlIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGRvZXNuJ3QgYWxsb3cgbnVsbCB2YWx1 ZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnZhcmlzaW1tdXRhYmxlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhlIHZhcmlhYmxlIGlz IDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZS1pbW11dGFibGUiPmltbXV0YWJsZTwv bGluaz4gKGNhbm5vdCBiZSBtb2RpZmllZCkuCisgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMg ZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4K ICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0 ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGxwZ3Nx bC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCBkNGNkMGZiNzIwNC4uMGNl ZDY1MDFlNzggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjAyNCw5ICs2MDI0LDkgQEAgJCQgTEFOR1VBR0Ug cGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogICAgIDxwYXJhPgogICAgICBUaGUgPGFwcGxpY2F0 aW9uPlBML3BnU1FMPC9hcHBsaWNhdGlvbj4gbGFuZ3VhZ2UgaGFzIG5vIHBhY2thZ2VzLCBhbmQK ICAgICAgdGhlcmVmb3JlIG5vIHBhY2thZ2UgdmFyaWFibGVzIG9yIHBhY2thZ2UgY29uc3RhbnRz LgotICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGhhcyBzZXNzaW9u IHZhcmlhYmxlcy4KLSAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGNyZWF0ZWQgYnkgPGNv bW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiwKLSAgICAgYXMgZGVzY3JpYmVkIGluIDx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPi4KKyAgICAgPHByb2R1Y3RuYW1lPlBv c3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBoYXMgc2Vzc2lvbiB2YXJpYWJsZXMgYW5kIGltbXV0YWJs ZQorICAgICBzZXNzaW9uIHZhcmlhYmxlcy4gU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGNyZWF0 ZWQgYnkgPGNvbW1hbmQ+Q1JFQVRFCisgICAgIFZBUklBQkxFPC9jb21tYW5kPiwgYXMgZGVzY3Jp YmVkIGluIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPi4KICAgICA8L3BhcmE+ CiAgICA8L3NlY3QzPgogICA8L3NlY3QyPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwKaW5kZXggNmQ2ZTI5YWM0YjIuLmVmNjk1ZDY2Mzc4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDggKzI2LDggQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9u CiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgWyB7IFRFTVBPUkFSWSB8 IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgREVG QVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNl YWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBd CitDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlw ZTwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBOT1QgTlVMTCBdIFsgREVGQVVMVCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4g XSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5 bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNzEsNiArNzEsMjIg QEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElT VFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InAKIAogICA8dmFyaWFibGVsaXN0PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaW1tdXRhYmxlIj4KKyAgICA8dGVybT48 bGl0ZXJhbD5JTU1VVEFCTEU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgYXNzaWduZWQgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUg Y2FuIG5vdCBiZSBjaGFuZ2VkLgorICAgICAgT25seSBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBk b2Vzbid0IGhhdmUgYSBkZWZhdWx0IHZhbHVlLCBhIHNpbmdsZQorICAgICAgaW5pdGlhbGl6YXRp b24gaXMgYWxsb3dlZCB1c2luZyB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiBP bmNlCisgICAgICBkb25lLCBubyBmdXJ0aGVyIGNoYW5nZSBpcyBhbGxvd2VkIHVudGlsIGVuZCBv ZiB0cmFuc2FjdGlvbgorICAgICAgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgd2FzIGNyZWF0ZWQg d2l0aCBjbGF1c2UgPGxpdGVyYWw+T04gVFJBTlNBQ1RJT04KKyAgICAgIEVORCBSRVNFVDwvbGl0 ZXJhbD4sIG9yIHVudGlsIHJlc2V0IG9mIGFsbCBzZXNzaW9uIHZhcmlhYmxlcyBieQorICAgICAg PGNvbW1hbmQ+RElTQ0FSRCBWQVJJQUJMRVM8L2NvbW1hbmQ+LCBvciB1bnRpbCByZXNldCBvZiBh bGwgc2Vzc2lvbgorICAgICAgb2JqZWN0cyBieSBjb21tYW5kIDxjb21tYW5kPkRJU0NBUkQgQUxM PC9jb21tYW5kPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1pZi1ub3Qt ZXhpc3RzIj4KICAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPjwvdGVy bT4KICAgICA8bGlzdGl0ZW0+CkBAIC0xMTEsNiArMTI3LDIwIEBAIENSRUFURSBbIHsgVEVNUE9S QVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlz dGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtbm90LW51bGwiPgorICAgIDx0ZXJtPjxsaXRl cmFsPk5PVCBOVUxMPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgVGhlIDxsaXRlcmFsPk5PVCBOVUxMPC9saXRlcmFsPiBjbGF1c2UgZm9yYmlkcyBz ZXR0aW5nIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZSB0byBhIG51bGwgdmFsdWUuIEEgc2Vz c2lvbiB2YXJpYWJsZSBjcmVhdGVkIGFzIE5PVCBOVUxMIGFuZAorICAgICAgd2l0aG91dCBhbiBl eHBsaWNpdGx5IGRlY2xhcmVkIGRlZmF1bHQgdmFsdWUgY2Fubm90IGJlIHJlYWQgdW50aWwgaXQg aXMKKyAgICAgIGluaXRpYWxpemVkIGJ5IGEgTEVUIGNvbW1hbmQuIFRoaXMgcmVxdWlyZXMgdGhl IHVzZXIgdG8gZXhwbGljaXRseQorICAgICAgaW5pdGlhbGl6ZSB0aGUgc2Vzc2lvbiB2YXJpYWJs ZSBjb250ZW50IGJlZm9yZSByZWFkaW5nIGl0LCBvdGhlcndpc2UgYW4KKyAgICAgIGVycm9yIHdp bGwgYmUgdGhyb3duLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVs dCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+REVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHBy PC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYwppbmRleCA2YTQ2NDYxZjAzNy4uODk4YzJjNzQ1ZTkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQwLDYgKzQwLDggQEAgc3RhdGljIE9iamVjdEFkZHJl c3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJCQkJCQkgT2lkIHZh ck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCiAJCQkJCQkJCQkgYm9vbCBpZl9u b3RfZXhpc3RzLAorCQkJCQkJCQkJIGJvb2wgaXNfbm90X251bGwsCisJCQkJCQkJCQkgYm9vbCBp c19pbW11dGFibGUsCiAJCQkJCQkJCQkgTm9kZSAqdmFyRGVmZXhwciwKIAkJCQkJCQkJCSBWYXJp YWJsZUVPWEFjdGlvbiBlb3hhY3Rpb24pOwogCkBAIC01NSw2ICs1Nyw4IEBAIGNyZWF0ZV92YXJp YWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFy Q29sbGF0aW9uLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQlib29sIGlzX25vdF9udWxs LAorCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAogCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFy aWFibGVFT1hBY3Rpb24gZW94YWN0aW9uKQogewpAQCAtMTE3LDYgKzEyMSw4IEBAIGNyZWF0ZV92 YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKIAl2 YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0 dW0odmFyQ29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc25vdG51bGwg LSAxXSA9IEJvb2xHZXREYXR1bShpc19ub3RfbnVsbCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyaXNpbW11dGFibGUgLSAxXSA9IEJvb2xHZXREYXR1bShpc19pbW11dGFibGUpOwogCXZh bHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmVveGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKGVv eGFjdGlvbik7CiAKIAlpZiAodmFyRGVmZXhwcikKQEAgLTI1OSw2ICsyNjUsOCBAQCBDcmVhdGVW YXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQog CQkJCQkJCSAgIHZhcm93bmVyLAogCQkJCQkJCSAgIGNvbGxhdGlvbiwKIAkJCQkJCQkgICBzdG10 LT5pZl9ub3RfZXhpc3RzLAorCQkJCQkJCSAgIHN0bXQtPmlzX25vdF9udWxsLAorCQkJCQkJCSAg IHN0bXQtPmlzX2ltbXV0YWJsZSwKIAkJCQkJCQkgICBjb29rZWRfZGVmYXVsdCwKIAkJCQkJCQkg ICBzdG10LT5lb3hhY3Rpb24pOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKaW5kZXggYThmNjNlNzhhNjEuLjIxNTYwNjk1ZGMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCkBAIC05Miw2ICs5Miw5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJp YWJsZURhdGEKIAl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7CiAJTG9jYWxUcmFuc2FjdGlv bklkIGRvbWFpbl9jaGVja19leHRyYV9seGlkOwogCisJYm9vbAkJaXNfbm90X251bGw7CisJYm9v bAkJaXNfaW1tdXRhYmxlOworCiAJYm9vbAkJcmVzZXRfYXRfZW94OwogCiAJLyoKQEAgLTExMCw2 ICsxMTMsOSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJYm9vbAkJaXNfdmFsaWQ7 CiAKIAl1aW50MzIJCWhhc2h2YWx1ZTsJCS8qIHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3Nh Z2UgKi8KKworCS8qIHRydWUsIHdoZW4gdGhlIHZhbHVlIGlzIGFscmVhZHkgc2V0LCBhbmQgY2Fu bm90IGJlIGNoYW5nZWQgbW9yZSAqLworCWJvb2wJCXByb3RlY3RfdmFsdWU7CiB9IFNWYXJpYWJs ZURhdGE7CiAKIHR5cGVkZWYgU1ZhcmlhYmxlRGF0YSAqU1ZhcmlhYmxlOwpAQCAtNTc2LDYgKzU4 MiwyMyBAQCBldmFsX2Fzc2lnbl9kZWZleHByKFNWYXJpYWJsZSBzdmFyLCBIZWFwVHVwbGUgdHVw KQogCiAJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIAkJfQorCQllbHNlCisJCXsK KwkJCS8qCisJCQkgKiBSYWlzZSBhbiBlcnJvciBpZiB0aGlzIGlzIGEgTk9UIE5VTEwgdmFyaWFi bGUgYnV0IHRoZSByZXN1bHQgb2YKKwkJCSAqIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLgor CQkJICovCisJCQlpZiAoc3Zhci0+aXNfbm90X251bGwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJCQkJCQkgZXJy bXNnKCJudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlh YmxlIFwiJXMuJXNcIiIsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZShzdmFyLT52YXJpZCkpLAorCQkJCQkJIGVycmRldGFpbCgiVGhlIHJlc3VsdCBv ZiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVMTC4iKSkpOworCQl9CisKKwkJaWYgKHN2YXItPmlz X2ltbXV0YWJsZSkKKwkJCXN2YXItPnByb3RlY3RfdmFsdWUgPSB0cnVlOwogCiAJCUZyZWVFeGVj dXRvclN0YXRlKGVzdGF0ZSk7CiAJfQpAQCAtNjA2LDYgKzYyOSw5IEBAIHNldHVwX3Nlc3Npb25f dmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAogCWdl dF90eXBsZW5ieXZhbChzdmFyLT50eXBpZCwgJnN2YXItPnR5cGxlbiwgJnN2YXItPnR5cGJ5dmFs KTsKIAorCXN2YXItPmlzX25vdF9udWxsID0gdmFyZm9ybS0+dmFyaXNub3RudWxsOworCXN2YXIt PmlzX2ltbXV0YWJsZSA9IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCiAJc3Zhci0+aXNfZG9t YWluID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsK IAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19l eHRyYV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAgLTYzNSw5ICs2NjEsMzEg QEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29s IGlzX3dyaXRlKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJ QUJMRU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCi0JaWYgKCFp c193cml0ZSkKKwlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gZmFsc2U7CisKKwkvKgorCSAqIFdoZW4g dGhlIHZhcmlhYmxlIGlzIG1hcmtlZCBhcyBJTU1VVEFCTEUsIHdlIHByZWZlciB0byBldmFsdWF0 ZQorCSAqIHBvc3NpYmxlIERFRkFVTFQgYmVmb3JlIHdyaXRlIG9wLiBJbiB0aGlzIGNhc2Ugd2Ug d2FudCB0byBwcm90ZWN0CisJICogZGVmYXVsdCB2YWx1ZSBhZ2FpbnN0IGFueSBvdmVyd3JpdGUu CisJICovCisJaWYgKCFpc193cml0ZSB8fAorCQlzdmFyLT5pc19pbW11dGFibGUpCisJewogCQll dmFsX2Fzc2lnbl9kZWZleHByKHN2YXIsIHR1cCk7CiAKKwkJLyoKKwkJICogUmFpc2UgYW4gZXJy b3IgaWYgdGhpcyBpcyBhIE5PVCBOVUxMIHZhcmlhYmxlIHdpdGhvdXQgZGVmYXVsdAorCQkgKiBl eHByZXNzaW9uLgorCQkgKi8KKwkJaWYgKHN2YXItPmlzbnVsbCAmJiBzdmFyLT5pc19ub3RfbnVs bCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9O T1RfQUxMT1dFRCksCisJCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9y IE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCQlnZXRfbmFtZXNw YWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJ Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUg c2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4iKSkpOworCX0KKwogCVJl bGVhc2VTeXNDYWNoZSh0dXApOwogfQogCkBAIC02NTcsNiArNzA1LDIxIEBAIHNldF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJQXNz ZXJ0KHN2YXIpOwogCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CiAKKwlp ZiAoc3Zhci0+cHJvdGVjdF92YWx1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX0VSUk9SX0lOX0FTU0lHTk1FTlQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFi bGUgXCIlcy4lc1wiIGlzIGRlY2xhcmVkIElNTVVUQUJMRSIsCisJCQkJCQlnZXRfbmFtZXNwYWNl X25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkJ CQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKworCS8qIGRvbid0 IGFsbG93IGFzc2lnbm1lbnQgb2YgbnVsbCB0byBOT1QgTlVMTCB2YXJpYWJsZSAqLworCWlmIChp c251bGwgJiYgc3Zhci0+aXNfbm90X251bGwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkgZXJybXNnKCJudWxsIHZh bHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiIsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHN2YXItPnZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXIt PnZhcmlkKSkpKTsKKwogCS8qCiAJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Np b24gdmFyaWFibGUgb25seSB3aGVuIHRoZXkgYXJlCiAJICogdHJ1c3RhYmxlICh0aGUgaW52YWxp ZGF0aW9uIG1lc3NhZ2Ugd2FzIG5vdCBhY2NlcHRlZCBmb3IgdGhpcyB2YXJpYWJsZSkuCkBAIC02 OTMsNiArNzU2LDEwIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1 bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CiAJc3Zhci0+aXNu dWxsID0gaXNudWxsOwogCisJLyogZG9uJ3QgYWxsb3cgbW9yZSBjaGFuZ2VzIG9mIHZhbHVlIHdo ZW4gdmFyaWFibGUgaXMgSU1NVVRBQkxFICovCisJaWYgKHN2YXItPmlzX2ltbXV0YWJsZSkKKwkJ c3Zhci0+cHJvdGVjdF92YWx1ZSA9IHRydWU7CisKIAkvKgogCSAqIFhYWCBXaGlsZSB1bmxpa2Vs eSwgYW4gZXJyb3IgaGVyZSBpcyBwb3NzaWJsZS4gSXQgd291bGRuJ3QgbGVhayBtZW1vcnkKIAkg KiBhcyB0aGUgYWxsb2NhdGVkIGNodW5rIGhhcyBhbHJlYWR5IGJlZW4gY29ycmVjdGx5IGFzc2ln bmVkIHRvIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzQ2Mjc5NzRkZWEuLjBhOGU1NTNhNDI3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTY4Myw2ICs2ODMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZp ZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJ CWpzb25fb2JqZWN0X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCQkJCWpzb25fYXJyYXlf Y29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAKKyV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVs bCBPcHRJbW11dGFibGUKIAogLyoKICAqIE5vbi1rZXl3b3JkIHRva2VuIHR5cGVzLiAgVGhlc2Ug YXJlIGhhcmQtd2lyZWQgaW50byB0aGUgImZsZXgiIGxleGVyLgpAQCAtNTIyMywyNyArNTIyNCwz MSBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwog CiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFURSBPcHRUZW1wIFZBUklBQkxFIHF1YWxp ZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0U2Vzc2lvblZh ckRlZkV4cHIgT25FT1hBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJs ZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgT25FT1hBY3Rpb25PcHRpb24KIAkJ CQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lv blZhclN0bXQpOwotCQkJCQkkNC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFi bGUgPSAkNDsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNjsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChD b2xsYXRlQ2xhdXNlICopICQ3OwotCQkJCQluLT5kZWZleHByID0gJDg7Ci0JCQkJCW4tPmVveGFj dGlvbiA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1t dXRhYmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5cGVOYW1lID0g JDc7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKKwkJCQkJbi0+ aXNfbm90X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+ZW94YWN0 aW9uID0gJDExOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1AgTk9UIEVY SVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9w dFNlc3Npb25WYXJEZWZFeHByIE9uRU9YQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1w IE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0 X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJE ZWZFeHByIE9uRU9YQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3Rt dCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJJDctPnJlbHBlcnNp c3RlbmNlID0gJDI7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDc7Ci0JCQkJCW4tPnR5cGVOYW1lID0g JDk7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTA7Ci0JCQkJCW4t PmRlZmV4cHIgPSAkMTE7Ci0JCQkJCW4tPmVveGFjdGlvbiA9ICQxMjsKKwkJCQkJJDgtPnJlbHBl cnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQzOworCQkJCQluLT52YXJp YWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+aXNfbm90X251bGwgPSAkMTI7CisJCQkJ CW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPmVveGFjdGlvbiA9ICQxNDsKIAkJCQkJbi0+aWZf bm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC01MjYz LDYgKzUyNjgsMTQgQEAgT25FT1hBY3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJPUAkJCQkJeyAk JCA9IFZBUklBQkxFX0VPWF9EUk9QOyB9CiAJCTsKIAogCitPcHROb3ROdWxsOiBOT1QgTlVMTF9Q CQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFs c2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJCQkJCQkJeyAkJCA9IHRydWU7 IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJCTsKKwogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8g dmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA4ZTU0YTdkYzhjYi4uOTM0OGZiZWQ3ODggMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwpAQCAtNTMzNCw2ICs1MzM0LDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQp CiAJaW50CQkJaV92YXJlb3hhY3Rpb247CiAJaW50CQkJaV92YXJvd25lcjsKIAlpbnQJCQlpX3Zh cmNvbGxhdGlvbjsKKwlpbnQJCQlpX3Zhcmlzbm90bnVsbDsKKwlpbnQJCQlpX3ZhcmlzaW1tdXRh YmxlOwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsKIAlpbnQJCQlpLApA QCAtNTM1NSw2ICs1MzU3LDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAg InBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlw bmFtZSxcbiIKIAkJCQkJICAiQ0FTRSBXSEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0 aW9uICIKIAkJCQkJICAiVEhFTiB2LnZhcmNvbGxhdGlvbiBFTFNFIDAgRU5EIEFTIHZhcmNvbGxh dGlvbixcbiIKKwkJCQkJICAidi52YXJpc25vdG51bGwsXG4iCisJCQkJCSAgInYudmFyaXNpbW11 dGFibGUsXG4iCiAJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLDAp IGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgInYudmFyb3duZXIsXG4iCiAJCQkJCSAgInYudmFy YWNsLFxuIgpAQCAtNTM3Niw2ICs1MzgwLDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQp CiAJaV92YXJkZWZleHByID0gUFFmbnVtYmVyKHJlcywgInZhcmRlZmV4cHIiKTsKIAlpX3ZhcmVv eGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJlb3hhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlv biA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKKwlpX3Zhcmlzbm90bnVsbCA9IFBR Zm51bWJlcihyZXMsICJ2YXJpc25vdG51bGwiKTsKKwlpX3ZhcmlzaW1tdXRhYmxlID0gUFFmbnVt YmVyKHJlcywgInZhcmlzaW1tdXRhYmxlIik7CiAKIAlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJl cywgInZhcm93bmVyIik7CiAJaV92YXJhY2wgPSBQUWZudW1iZXIocmVzLCAidmFyYWNsIik7CkBA IC01NDAwLDYgKzU0MDYsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkJdmFyaW5m b1tpXS52YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cG5h bWUpKTsKIAkJdmFyaW5mb1tpXS52YXJlb3hhY3Rpb24gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFyZW94YWN0aW9uKSk7CiAJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0gYXRv b2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOworCQl2YXJpbmZvW2ldLnZh cmlzbm90bnVsbCA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyaXNub3RudWxsKSkgPT0gJ3Qn OworCQl2YXJpbmZvW2ldLnZhcmlzaW1tdXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJpc2ltbXV0YWJsZSkpID09ICd0JzsKIAogCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3Ry ZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOwogCQl2YXJpbmZvW2ldLmRhY2wuYWNs ZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CkBA IC01NDQ5LDcgKzU0NTcsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFy aWFibGVJbmZvICp2YXJpbmZvKQogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CiAJY29uc3QgY2hh ciAqdmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJlb3hhY3Rpb247CisJY29uc3QgY2hhciAq dmFyaXNpbW11dGFibGU7CiAJT2lkCQkJdmFyY29sbGF0aW9uOworCWJvb2wJCXZhcmlzbm90bnVs bDsKIAogCS8qIFNraXAgaWYgbm90IHRvIGJlIGR1bXBlZCAqLwogCWlmICghdmFyaW5mby0+ZG9i ai5kdW1wIHx8IGRvcHQtPmRhdGFPbmx5KQpAQCAtNTQ2MywxMiArNTQ3MywxNCBAQCBkdW1wVmFy aWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZhcmRl ZmV4cHIgPSB2YXJpbmZvLT52YXJkZWZleHByOwogCXZhcmVveGFjdGlvbiA9IHZhcmluZm8tPnZh cmVveGFjdGlvbjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CisJdmFy aXNub3RudWxsID0gdmFyaW5mby0+dmFyaXNub3RudWxsOworCXZhcmlzaW1tdXRhYmxlID0gdmFy aW5mby0+dmFyaXNpbW11dGFibGUgPyAiSU1NVVRBQkxFICIgOiAiIjsKIAogCWFwcGVuZFBRRXhw QnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFybmFtZSk7 CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIs Ci0JCQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiQ1JFQVRFICVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzaW1tdXRhYmxl LCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRp b24pKQogCXsKQEAgLTU0ODAsNiArNTQ5Miw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1w YWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcmlzbm90bnVsbCkKKwkJYXBwZW5kUFFFeHBCdWZm ZXIocXVlcnksICIgTk9UIE5VTEwiKTsKKwogCWlmICh2YXJkZWZleHByKQogCQlhcHBlbmRQUUV4 cEJ1ZmZlcihxdWVyeSwgIiBERUZBVUxUICVzIiwKIAkJCQkJCSAgdmFyZGVmZXhwcik7CmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaAppbmRleCBlZTMxMjRiYWMwNS4uNmZhMzk2ZWNlN2QgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzEw LDYgKzcxMCw4IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KIAljaGFyCSAgICppbml0 cnZhcmFjbDsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8q IG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLworCWJvb2wJCXZhcmlzbm90bnVsbDsK Kwlib29sCQl2YXJpc2ltbXV0YWJsZTsKIH0gVmFyaWFibGVJbmZvOwogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbAppbmRleCBmZjVjMDEwMjBlNC4uYWUzMTA5NjFhYjQgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90 LzAwMl9wZ19kdW1wLnBsCkBAIC0zOTk1LDYgKzM5OTUsNjAgQEAgbXkgJXRlc3RzID0gKAogCQl9 LAogCX0sCiAKKwknQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7 CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29t bWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRF IElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU1IEFTIGludGVnZXInLAorCQly ZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52 YXJpYWJsZTUgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAor CQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJ fSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJ b25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUgVkFS SUFCTEUgdGVzdF92YXJpYWJsZSBOT1QgTlVMTCcgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwK KwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVy ID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFy aWFibGU2IEFTIGludGVnZXIgTk9UIE5VTEwnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVB VEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNiBBUyBpbnRlZ2VyIE5PVCBOVUxMO1xFL3ht LAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5z LAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhj bHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAg PT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdGVzdF92YXJp YWJsZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRj aF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEs CisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3Qu dmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAxMCcsCisJCXJlZ2V4cCA9PiBx ci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNyBB UyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1 bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRh ID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEg PT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAkn Q1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3Jl YXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAw MTEzODNhZjA0Mi4uNzg3ZjljNDhiNTEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MTU5LDcgKzUxNTksNyBAQCBs aXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1 ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0g cHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OwogCiAJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwogCkBAIC01MTcwLDYgKzUxNzAs OCBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJ CQkJICAiICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBj LCBwZ19jYXRhbG9nLnBnX3R5cGUgYnRcbiIKIAkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZh cmNvbGxhdGlvbiBBTkQgYnQub2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBi dC50eXBjb2xsYXRpb24pIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dl dF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgTk9UIHYudmFy aXNub3RudWxsIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBOT1Qgdi52YXJpc2ltbXV0YWJsZSBh cyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4 cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyZW94YWN0aW9uXG4iCiAJ CQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKQEAgLTUxODAsNiAr NTE4Miw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3Nl KQogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29s bGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRf bm9vcCgiTnVsbGFibGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk11dGFibGUiKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IDJmZmMyN2QwMjJlLi5l NTAzYjIyNzA3ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTI1Miw2ICsxMjUyLDggQEAgc3RhdGlj IGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJGT1JFSUdO IFRBQkxFIiwgTlVMTCwgTlVMTCwgTlVMTH0sCiAJeyJGVU5DVElPTiIsIE5VTEwsIE5VTEwsIFF1 ZXJ5X2Zvcl9saXN0X29mX2Z1bmN0aW9uc30sCiAJeyJHUk9VUCIsIFF1ZXJ5X2Zvcl9saXN0X29m X3JvbGVzfSwKKwl7IklNTVVUQUJMRSBWQVJJQUJMRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEws IFRISU5HX05PX0RST1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgSU1NVVRBQkxF CisJCQkJCQkJCQkJCQkJCQkJCQkJCQkgKiBWQVJJQUJMRSAuLi4gKi8KIAl7IklOREVYIiwgTlVM TCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX2luZGV4ZXN9LAogCXsiTEFOR1VBR0UiLCBRdWVy eV9mb3JfbGlzdF9vZl9sYW5ndWFnZXN9LAogCXsiTEFSR0UgT0JKRUNUIiwgTlVMTCwgTlVMTCwg TlVMTCwgTlVMTCwgVEhJTkdfTk9fQ1JFQVRFIHwgVEhJTkdfTk9fRFJPUH0sCkBAIC0zMjc3LDcg KzMyNzksNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBp bnQgZW5kKQogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NI RU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRFTVAvVEVN UE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlmIChUYWls TWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNF UVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVfV0lUSCgi SU1NVVRBQkxFIFZBUklBQkxFIiwgIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJ RVciKTsKIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFVOTE9HR0VEIiB3aXRoIFRBQkxFLCBTRVFVRU5D RSBvciBNQVRWSUVXICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJVTkxPR0dF RCIpKQogCXsKQEAgLTM2MDAsNyArMzYwMiw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFy ICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFs bG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENv bXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLwogCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJDUkVBVEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKLQkJCSBUYWlsTWF0Y2hl cygiVEVNUHxURU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCQkgVGFpbE1hdGNo ZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1h dGNoZXMoIklNTVVUQUJMRSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lU SCgiQVMiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFT IikpCiAJCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyB0eXBlcyAq LwpAQCAtNDI0OCw2ICs0MjUxLDEwIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0 LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkZST00iLCAiU0VS VkVSIiwgTWF0Y2hBbnksICJJTlRPIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPUFRJ T05TICgiKTsKIAorLyogSU1NVVRBQkxFIC0tIGNhbiBiZSBleHBlbmQgdG8gSU1NVVRBQkxFIFZB UklBQkxFICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJJTU1VVEFCTEUiKSkK KwkJQ09NUExFVEVfV0lUSCgiVkFSSUFCTEUiKTsKKwogLyogSU5TRVJUIC0tLSBjYW4gYmUgaW5z aWRlIEVYUExBSU4sIFJVTEUsIGV0YyAqLwogCS8qIENvbXBsZXRlIE5PVCBNQVRDSEVEIFRIRU4g SU5TRVJUICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIk5PVCIsICJNQVRDSEVEIiwgIlRIRU4i LCAiSU5TRVJUIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxl LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggM2Q4Y2JmZjUwZDQu LjQzYzhiYzk2NTgzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxl LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01NCw2ICs1NCwx MiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIHR5 cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVM VCgtMSk7CiAKKwkvKiBkb24ndCBhbGxvdyBOVUxMICovCisJYm9vbAkJdmFyaXNub3RudWxsIEJL SV9ERUZBVUxUKGYpOworCisJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLworCWJvb2wJCXZhcmlz aW1tdXRhYmxlIEJLSV9ERUZBVUxUKGYpOworCiAJLyogYWN0aW9uIG9uIHRyYW5zYWN0aW9uIGVu ZCAqLwogCWNoYXIJCXZhcmVveGFjdGlvbiBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IGRkYTg3YzMzNzM1Li5jZDA5MjkxOTI2ZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMzQ1NSw2ICszNDU1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZh clN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICov CiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBk byBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJYm9vbAkJaXNfbm90X251bGw7CS8q IGRpc2FsbG93IG51bGxzICovCisJYm9vbAkJaXNfaW1tdXRhYmxlOwkvKiBkb24ndCBhbGxvdyBj aGFuZ2VzICovCiAJTm9kZQkgICAqZGVmZXhwcjsJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwog CWNoYXIJCWVveGFjdGlvbjsJCS8qIG9uIGNvbW1pdCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lv blZhclN0bXQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCBjYTEzMWU1NjhlYi4u ZjcwODI2Mzk2MDUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNTgzMywyMCAr NTgzMywyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUg VE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNo YXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3Mg cHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K LSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBT Y2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93 bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21l IGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRp b24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0 ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9y ZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAgICAgICB8ICAgICAg fCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlw ZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUg fCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAg ICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24g ICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFy YWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAg ICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVn cmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNj cmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAg ICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAg LTYzMTQsOSArNjMxNCw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5z dWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwg TXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSst LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY0ODksOSArNjQ4OSw5 IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xs YXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0t LS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAo MCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVk IHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY2MjgsOSArNjYyOCw5IEBAIExpc3Qgb2YgdGV4 dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8 IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQog CiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1 YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dAppbmRleCBiMDVhZmE4YjM4YS4uZWIyNDExYjkwMTkgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUs MTEgQEAgU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJM RSBzdmFydGVzdC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0 ZXN0LnZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSAgU2NoZW1hICB8 IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERl ZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3Mg cHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVzdCB8IHZhcjEg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwor ICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAg ICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0IHwgdmFyMSB8IGlu dGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0 ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAogKDEgcm93KQog CiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0xNTc5LDMgKzE1NzksMTU3IEBAIFNF TEVDVCB2YXIxOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIEZVTkNUSU9OIHZhcnRlc3Rf ZngoKTsKKy0tIHRlc3QgTk9UIE5VTEwKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50IE5PVCBOVUxMOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOwor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRElTQ0FSRCBW QVJJQUJMRVM7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIG51bGwgdmFs dWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52 YXIxIgorREVUQUlMOiAgVGhlIHNlc3Npb24gdmFyaWFibGUgd2FzIG5vdCBpbml0aWFsaXplZCB5 ZXQuCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91 bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZBVUxUIDA7 CistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygx IHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7Cisg dmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBz aG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSBOVUxMOworRVJST1I6ICBudWxsIHZhbHVlIGlzIG5v dCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIKK0RS T1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3QgTk9UIE5VTEwKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBO VUxMOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludCBOT1QgTlVMTCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKy0tIHNob3VsZCB0byBmYWlsCitT RUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5V TEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitERVRBSUw6ICBUaGUgcmVzdWx0IG9m IERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLgorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91 bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisg ICAxMAorKDEgcm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkK K1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx OworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0ZXN0IElNTVVUQkxFCitDUkVBVEUg SU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCistLSBmaXJzdCB3cml0ZSBz aG91bGQgb2sKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWls CitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIg aXMgZGVjbGFyZWQgSU1NVVRBQkxFCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBv aworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6 ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitE SVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5V TEw7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJp YWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRFJPUCBWQVJJQUJMRSB2 YXIxOworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIDEwOwor LS0gZG9uJ3QgYWxsb3cgY2hhbmdlIHdoZW4gdmFyaWFibGUgaGFzIERFRkFVTFQgdmFsdWUKKy0t IHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitESVNDQVJEIFZBUklBQkxFUzsK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24g dmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFC TEUgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIx IEFTIElOVCBOT1QgTlVMTCBERUZBVUxUIDEwOworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIx ID0gMTA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJl ZCBJTU1VVEFCTEUKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1 YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworLS0gc2hvdWxkIHRvIGZh aWwKK0xFVCB2YXIxID0gMzA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIx IiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAzZTFiYTIzNWNlYy4uZGFlMmI0 ZGRmYTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAg LTEwNTIsMyArMTA1MiwxMzIgQEAgU0VMRUNUIHZhcjE7CiAKIERST1AgVkFSSUFCTEUgdmFyMTsK IERST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSB0ZXN0IE5PVCBOVUxMCistLSBzaG91 bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTDsKKworLS0gc2hv dWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFC TEVTOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvawor TEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0t IHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE5PVCBOVUxMIERFRkFV TFQgMDsKKworLS1zaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgYmUgb2sK K0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0t IHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsK KworLS0gdGVzdCBOT1QgTlVMTAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9m eCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIE5VTEw7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwg REVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsK KworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsK K1NFTEVDVCB2YXIxOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkK K1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngo KTsKKworLS0gdGVzdCBJTU1VVEJMRQorQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFT IGludDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKy0tIGZpcnN0IHdyaXRlIHNo b3VsZCBvaworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGZhaWwK K0xFVCB2YXIxID0gMjA7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sK K0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKKworRElTQ0FS RCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CistLSBzaG91bGQg YmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOwor CitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgREVGQVVMVCAxMDsKKworLS0gZG9uJ3QgYWxsb3cgY2hhbmdlIHdoZW4gdmFyaWFibGUg aGFzIERFRkFVTFQgdmFsdWUKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDIwOworCitE SVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKy0tIHNo b3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNo b3VsZCBiZSBvaworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIElOVCBOT1QgTlVM TCBERUZBVUxUIDEwOworCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAxMDsKK0xFVCB2 YXIxID0gMjA7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCB0 byBmYWlsCitMRVQgdmFyMSA9IDMwOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ1LjIK Cg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20240720-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhj913 RnJvbSBmNjRiMjM4YzY4YjQyYzhiMDJhZGI3OTVlMGQ5MGZmYWNkYzg0MTYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDY6MzE6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDE0 LzE5XSBhbGxvdyByZWFkIGFuIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgZGlyZWN0bHkgZnJv bQogZXhwcmVzc2lvbiBleGVjdXRvcgoKVGhlIGV4cHJlc3Npb24gZXhlY3V0b3IgY2FuIGJlIGNh bGxlZCBkaXJlY3RseSAobm90IGluc2lkZSBxdWVyeSBleGVjdXRvcikKd2hlbiBleHByZXNzaW9u IGlzIGV2YWx1YXRlZCBhcyBzaW1wbGUgZXhwcmVzc2lvbiBpbiBwbHBnc3FsIG9yIHdoZW4gZXhw cmVzc2lvbgppcyBhbiBhcmd1bWVudCBvZiBDQUxMIHN0YXRlbWVudC4gRm9yIHRoZXNlIGNhc2Vz IHdlIG5lZWQgdG8gYWxsb3cgZGlyZWN0CmFjY2VzcyB0byBjb250ZW50IG9mIHNlc3Npb24gdmFy aWFibGVzIGZyb20gZXhlY3V0b3IuIFdlIGNhbiBkbyBpdCwgYmVjYXVzZQp3ZSBrbm93IHNvIHRo ZSBleHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQgdW5kZXIgcXVlcnkgYW5kIGNhbm5vdCBiZQpl dmFsdWF0ZWQgaW5zaWRlIHBhcmFsbGVsIHdvcmtlci4KClRoaXMgcGF0Y2ggZW5hYmxlcyBzZXNz aW9uIHZhcmlhYmxlcyBmb3Igc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4KClRoaXMgcGF0 Y2ggZW5hYmxlcyB1c2FnZSBzZXNzaW9uIHZhcmlhYmxlcyBpbiBhcmd1bWVudHMgb2YgQ0FMTCBz dG10LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8 IDg4ICsrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50 ZXJwLmMgICAgICAgICB8IDE2ICsrKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhw ci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAg ICAgICAgICAgICAgfCAgOCAtLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaCAgICAg ICAgICAgICAgIHwgMTIgKystCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQgfCAgMyArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAgICAgICAg ICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dCAgICB8IDE1ICsrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCAgICB8ICA3ICstCiA5IGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCA1MCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCA5NzIyMzNlYzI1Yi4uMTVhZWZk YzMxM2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMTAwMSwzMSArMTAwMSw2OSBAQCBF eGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQkJZXNf bnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNz aW9uX3ZhcmlhYmxlczsKIAkJCQkJCQl9CiAKLQkJCQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJp YWJsZXMpOwotCi0JCQkJCQkJLyoKLQkJCQkJCQkgKiBVc2UgYnVmZmVyZWQgc2Vzc2lvbiB2YXJp YWJsZXMgd2hlbiB0aGUKLQkJCQkJCQkgKiBidWZmZXIgd2l0aCBjb3BpZWQgdmFsdWVzIGlzIGF2 YWlhYmxlCi0JCQkJCQkJICogKHN0YW5kYXJkIHF1ZXJ5IGV4ZWN1dG9yIG1vZGUpCi0JCQkJCQkJ ICovCi0KLQkJCQkJCQkvKiBQYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcy4gKi8KLQkJCQkJCQlpZiAo cGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQotCQkJCQkJCQllbG9n KEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2Ui KTsKLQotCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07 Ci0KLQkJCQkJCQlpZiAodmFyLT50eXBpZCAhPSBwYXJhbS0+cGFyYW10eXBlKQotCQkJCQkJCQll bG9nKEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJB TV9WQVJJQUJMRSB0eXBlIik7Ci0KLQkJCQkJCQkvKgotCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwg cGFzcyB0aGUgdmFsdWUgbGlrZSBhCi0JCQkJCQkJICogY29uc3RhbnQuCi0JCQkJCQkJICovCi0J CQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNUOwotCQkJCQkJCXNjcmF0Y2guZC5jb25z dHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7Ci0JCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVs bCA9IHZhci0+aXNudWxsOwotCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNo KTsKKwkJCQkJCQlpZiAoZXNfc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJeworCQkJCQkJCQkv KgorCQkJCQkJCQkgKiBUaGlzIHBhdGggaXMgdXNlZCB3aGVuIGV4cHJlc3Npb24gaXMKKwkJCQkJ CQkJICogZXZhbHVhdGVkIGluc2lkZSBxdWVyeSBldmFsdWF0aW9uLiBGb3IKKwkJCQkJCQkJICog ZW5zdXJpbmcgb2YgaW1tdXRhYmlsaXR5IG9mIHNlc3Npb24gdmFyaWFibGUKKwkJCQkJCQkJICog aW5zaWRlIHF1ZXJ5IHdlIHVzZSBzcGVjaWFsIGJ1ZmZlciB3aXRoIGNvcHkKKwkJCQkJCQkJICog b2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhpcyBtZXRob2QgaGVscHMKKwkJCQkJCQkJICog d2l0aCBwYXJhbGxlbCBleGVjdXRpb24gdG9vLgorCQkJCQkJCQkgKi8KKworCQkJCQkJCQkvKiBQ YXJhbWV0ZXIgc2FuaXR5IGNoZWNrcy4gKi8KKwkJCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49 IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlk IG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJCXZh ciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQkJaWYg KHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlwZSkKKwkJCQkJCQkJCWVsb2coRVJST1IsICJ0 eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIFBBUkFNX1ZBUklBQkxFIHR5 cGUiKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZh bHVlIGxpa2UgYQorCQkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkJICovCisJCQkJCQkJCXNj cmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLnZh bHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZh ci0+aXNudWxsOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJ CQkJCQkJfQorCQkJCQkJCWVsc2UKKwkJCQkJCQl7CisJCQkJCQkJCUFjbFJlc3VsdAlhY2xyZXN1 bHQ7CisJCQkJCQkJCU9pZAkJCXZhcmlkID0gcGFyYW0tPnBhcmFtdmFyaWQ7CisJCQkJCQkJCU9p ZAkJCXZhcnR5cGUgPSBwYXJhbS0+cGFyYW10eXBlOworCisJCQkJCQkJCUFzc2VydCghSXNQYXJh bGxlbFdvcmtlcigpKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiBzb21lIGNhc2VzIChw bHBnc3FsJ3Mgc2ltcGxlIGV4cHJlc3Npb24KKwkJCQkJCQkJICogZXZhbHVhdGlvbiBvciBldmFs dWF0aW9uIG9mIENBTEwgYXJndW1lbnRzKSwKKwkJCQkJCQkJICogdGhlIGV4cHJlc3Npb24gZXhl Y3V0b3IgaXMgY2FsbGVkIGRpcmVjdGx5LgorCQkJCQkJCQkgKiBXZSBjYW4gYWxsb3cgZGlyZWN0 IGFjY2VzcyB0byBzZXNzaW9uCisJCQkJCQkJCSAqIHZhcmlhYmxlcyAoY29weSBvbmx5KSwgYmVj YXVzZSB3ZSBrbm93LCBzbworCQkJCQkJCQkgKiBvdXRzaWRlIGlzIG5vdCBhbnkgcXVlcnkgKGFu ZCBleHByZXNzaW9uCisJCQkJCQkJCSAqIGNhbm5vdCBiZSBleGVjdXRlZCBwYXJhbGxlbCkuCisJ CQkJCQkJCSAqCisJCQkJCQkJCSAqIEluIHRoaXMgY2FzZSB3ZSBzaG91bGQgdG8gZG8gYWNsY2hl Y2ssCisJCQkJCQkJCSAqIGJlY2F1c2UgdXN1YWwgYWNsY2hlY2sgZnJvbQorCQkJCQkJCQkgKiBz dGFuZGFyZF9FeGVjdXRvclN0YXJ0IGlzIG5vdCBleGVjdXRlZCBpbgorCQkJCQkJCQkgKiB0aGlz IGNhc2UuIEZvcnR1bmF0ZWx5IGl0IGlzIGp1c3Qgb25jZSBwZXIKKwkJCQkJCQkJICogdHJhbnNh Y3Rpb24uCisJCQkJCQkJCSAqLworCQkJCQkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2so VmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJCQkJCUdldFVzZXJJZCgpLCBB Q0xfU0VMRUNUKTsKKwkJCQkJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJ CQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkJ CQkJICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJCQkJCQkJCXNjcmF0 Y2gub3Bjb2RlID0gRUVPUF9QQVJBTV9WQVJJQUJMRTsKKwkJCQkJCQkJc2NyYXRjaC5kLnZwYXJh bS52YXJpZCA9IHZhcmlkOworCQkJCQkJCQlzY3JhdGNoLmQudnBhcmFtLnZhcnR5cGUgPSB2YXJ0 eXBlOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJ fQogCQkJCQkJfQogCQkJCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVy cC5jCmluZGV4IGQ4NzM1Mjg2YzRkLi44MGE4NjJiMjg0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL2hlYXB0 b2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2lu Y2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBs YW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC00NTAsNiArNDUxLDcgQEAgRXhlY0ludGVy cEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251 bGwpCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYRUMsCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYVEVS TiwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fQ0FMTEJBQ0ssCisJCSYmQ0FTRV9FRU9QX1BBUkFNX1ZB UklBQkxFLAogCQkmJkNBU0VfRUVPUF9DQVNFX1RFU1RWQUwsCiAJCSYmQ0FTRV9FRU9QX01BS0Vf UkVBRE9OTFksCiAJCSYmQ0FTRV9FRU9QX0lPQ09FUkNFLApAQCAtMTA5Myw2ICsxMDk1LDIwIEBA IEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwg Ym9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVFT1BfUEFS QU1fVkFSSUFCTEUpCisJCXsKKwkJCS8qCisJCQkgKiBEaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGUgKHdpdGhvdXQgYnVmZmVyaW5nKS4gQmVjYXVzZQorCQkJICogcmV0dXJuZWQgdmFs dWUgY2FuIGJlIHVzZWQgKHdpdGhvdXQgYW4gYXNzaWduZW1lbnQpIGFmdGVyIHRoZQorCQkJICog cmVmZXJlbmNlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyB1cGRhdGVkLCB3ZSBoYXZlIHRvIHVzZSBh biBjb3B5CisJCQkgKiBvZiBzdG9yZWQgdmFsdWUgZXZlcnkgdGltZS4KKwkJCSAqLworCQkJKm9w LT5yZXN2YWx1ZSA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2sob3AtPmQudnBhcmFt LnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJb3AtPnJlc251bGwsCisJCQkJCQkJCQkJCQkJCQlvcC0+ ZC52cGFyYW0udmFydHlwZSk7CisJCQlFRU9fTkVYVCgpOworCQl9CisKIAkJRUVPX0NBU0UoRUVP UF9DQVNFX1RFU1RWQUwpCiAJCXsKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9qaXQv bGx2bS9sbHZtaml0X2V4cHIuYyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5j CmluZGV4IGNiZDllZDdjYzRiLi43YWY4M2Y1YThlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv aml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMKQEAgLTExNDUsNiArMTE0NSwxMiBAQCBsbHZtX2NvbXBpbGVfZXhwcihFeHByU3Rh dGUgKnN0YXRlKQogCQkJCQlicmVhazsKIAkJCQl9CiAKKwkJCWNhc2UgRUVPUF9QQVJBTV9WQVJJ QUJMRToKKwkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxQYXJhbVZhcmlhYmxl IiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOworCQkJCUxMVk1CdWlsZEJyKGIs IG9wYmxvY2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgRUVPUF9TQlNSRUZf U1VCU0NSSVBUUzoKIAkJCQl7CiAJCQkJCWludAkJCWp1bXBkb25lID0gb3AtPmQuc2JzcmVmX3N1 YnNjcmlwdC5qdW1wZG9uZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDFmODc3YjMzMGYzLi5mNGVi ZjgyODhiYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMzg2LDE0ICszMzg2LDYgQEAgdHJhbnNm b3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAkJCQkJCQkg dHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2NhbGwtPmxvY2F0aW9uKTsKIAotCS8qCi0JICogVGhl IGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVudCBhcmUgZXZhbHVhdGVkIGJ5IGRpcmVjdAotCSAq IGV4cHJlc3Npb24gZXhlY3V0b3IgY2FsbC4gVGhpcyBwYXRoIGlzIHVuc3VwcG9ydGVkIHlldCwK LQkgKiBzbyBibG9jayBpdC4gSXQgd2lsbCBiZSBlbmFibGVkIGJ5IHNvbWUgb3RoZXIgcGF0Y2gu Ci0JICovCi0JaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQotCQllbG9nKEVSUk9S LCAic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOwotCiAJ YXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIG5vZGUpOwogCiAJZmV4cHIgPSBjYXN0Tm9k ZShGdW5jRXhwciwgbm9kZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAppbmRleCA1NTMzN2Q0OTE2 Ni4uMDQ3NzcyM2ZhMmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHBy LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApAQCAtMTU2LDEwICsxNTYs MTEgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlFRU9QX0JPT0xURVNUX0lTX0ZBTFNFLAog CUVFT1BfQk9PTFRFU1RfSVNfTk9UX0ZBTFNFLAogCi0JLyogZXZhbHVhdGUgUEFSQU1fRVhFQy9F WFRFUk4gcGFyYW1ldGVycyAqLworCS8qIGV2YWx1YXRlIFBBUkFNX0VYRUMvRVhURVJOL1ZBUklB QkxFIHBhcmFtZXRlcnMgKi8KIAlFRU9QX1BBUkFNX0VYRUMsCiAJRUVPUF9QQVJBTV9FWFRFUk4s CiAJRUVPUF9QQVJBTV9DQUxMQkFDSywKKwlFRU9QX1BBUkFNX1ZBUklBQkxFLAogCiAJLyogcmV0 dXJuIENhc2VUZXN0RXhwciB2YWx1ZSAqLwogCUVFT1BfQ0FTRV9URVNUVkFMLApAQCAtNDAwLDYg KzQwMSwxMyBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCU9pZAkJCXBhcmFtdHlw ZTsJLyogT0lEIG9mIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0JCQljcGFyYW07CiAKKwkJ LyogZm9yIEVFT1BfUEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJCXsKKwkJCU9pZAkJCXZh cmlkOwkJLyogT0lEIG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlPaWQJCQl2YXJ0eXBlOwkv KiBPSUQgb2YgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZwYXJhbTsKKwogCQkvKiBm b3IgRUVPUF9DQVNFX1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJc3RydWN0CiAJCXsKQEAg LTc5OCw2ICs4MDYsOCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtRXhlYyhFeHByU3RhdGUg KnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCSAgRXhwckNvbnRleHQgKmVjb250ZXh0 KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1FeHRlcm4oRXhwclN0YXRlICpzdGF0ZSwgRXhw ckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJRXhwckNvbnRleHQgKmVjb250ZXh0KTsKK2V4dGVybiB2 b2lkIEV4ZWNFdmFsUGFyYW1WYXJpYWJsZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAg Km9wLAorCQkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVj RXZhbENvZXJjZVZpYUlPU2FmZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsK IGV4dGVybiB2b2lkIEV4ZWNFdmFsU1FMVmFsdWVGdW5jdGlvbihFeHByU3RhdGUgKnN0YXRlLCBF eHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsQ3VycmVudE9mRXhwcihFeHBy U3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3Bs cGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKaW5kZXggZWMw N2YxY2JhZTkuLjc4OWMzMTIzYjBjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMjExLDggKzIxMSw3 IEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKIC0tIHNob3VsZCB0byBmYWls CiBTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSBwbHBnc3FsX3N2X3ZhcjEKLUNPTlRFWFQ6ICBTUUwgZXhwcmVzc2lv biAicGxwZ3NxbF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxp bmUgMyBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMo KSBsaW5lIDMgYXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9vd25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGE5 ZTFlMzIzYWQxLi4yMzliMzI1MGE5NSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MTAxLDggKzgx MDEsNyBAQCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5 LT5zb3J0Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRD b3VudCB8fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAotCQlxdWVyeS0+aGFzU2Vzc2lvblZh cmlhYmxlcykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8q CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cmlu ZGV4IGViMjQxMWI5MDE5Li5kZWFlY2RiMDE1ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEwNyw4ICsxMDcsNyBAQCBFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBT UUwgZnVuY3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQgMQogU0VMRUNUIHBscGdzcWxmeCgyMCk7CiBF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRF WFQ6ICBTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3Nx bGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlv biBwbHBnc3FsZngoaW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgogLS0gc2hvdWxkIGJlIG9rCiBT RUxFQ1Qgc3FsZnhfc2QoMjApOwogIHNxbGZ4X3NkIApAQCAtMjc4LDE3ICsyNzcsMTUgQEAgJCQ7 CiBOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgsOSwxMH0KIERST1AgVkFS SUFCTEUgdmFyMTsKIERST1AgVkFSSUFCTEUgdmFyMjsKLS0tIENBTEwgc3RhdGVtZW50IGlzIG5v dCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBpcyBzdXBw b3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKK0xFVCB2ID0gMTsKIENSRUFURSBQUk9DRURV UkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBM QU5HVUFHRSBwbHBnc3FsOwotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0 ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKLUVSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorTk9USUNFOiAgMQogRE8gJCQg QkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90 IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKLUNPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJDQUxMIHAo dikiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgQ0FMTAor Tk9USUNFOiAgMQogRFJPUCBQUk9DRURVUkUgcChpbnQpOwogRFJPUCBWQVJJQUJMRSB2OwogLS0g dGVzdCBzZWFyY2ggcGF0aApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IGRhZTJiNGRkZmE2Li40MDBhMGUwMGQ2NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMjA3LDEzICsyMDcsMTQgQEAgJCQ7CiBEUk9Q IFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7CiAKLS0tIENBTEwgc3RhdGVtZW50 IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Np b24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBp cyBzdXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIAorTEVUIHYgPSAxOworCiBDUkVB VEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJn OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIAotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlz IG5vdCBzdXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKIAogRE8g JCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7Ci0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20240720-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhit10 RnJvbSBiMjEzZGRlMzk5NjZkNjY0ODUxZTM2ZDAwNWE5N2RjYWE3ZGIzZDhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjAgTWFyIDIwMjQgMDg6Mzc6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzE5XSBJbXBsZW1lbnRhdGlvbiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlCgpUaGlz IGlzIHNpbXBsZSBwYXRjaCAtIGp1c3QgYWRkIHNwZWNpYWwgZmxhZyB0byBzZXNzaW9uIHZhcmlh YmxlIG1lbW9yeSBlbnRyeS4KVGhlIGVudHJpZXMgd2l0aCBhY3RpdmUgdGhpcyBmbGFnIGFyZSBy ZW1vdmVkIGZyb20gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZQphdCB0cmFuc2FjdGlvbiBlbmQuIFRo ZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBzeW5vbnltcyBmb3IgIkNPTU1JVCBST0xMQkFDSyIKYnV0 IHRoZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBtb3JlIGlsbHVzdHJhdGl2ZSBhbmQgbGVzcyBjb25m dXNpbmcgdGhlbiAiQ09NTUlUIFJPTExCQUNLIi4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCAgICAgICAgIHwgMTMgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYyAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKysKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8IDE4ICsrKysrKysKIHNyYy9iaW4vcHNx bC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRpb24vZXhw ZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstCiAuLi4vaXNvbGF0aW9uL3NwZWNz L3Nlc3Npb24tdmFyaWFibGUuc3BlYyAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMzQgKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjAgKysrKysrKysKIDEzIGZpbGVz IGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK aW5kZXggZjQ1ZDNmMjczZjcuLmQyOTk1YTc4ZWMxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTgzOCw3 ICs5ODM4LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBjYzI3NmI3OGU3Mi4uNTBjZjMxNmNkZjEg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjcsNyArMjcsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBD UkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBd IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQotICAgIFsgT04gQ09NTUlUIERST1AgXQorICAgIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMjMsNiArMTIzLDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tdHJhbnNhY3Rpb24tZW5kLXJlc2V0 Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+ T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIHRoZSBzZXNz aW9uCisgICAgICB2YXJpYWJsZSB0byBiZSByZXNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3aGVu IHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQKKyAgICAgIG9yIHJvbGxlZCBiYWNrLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFy aWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCA1NDhhOTkzMDI2Ny4uZmNjOWYxNjE2ZjEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkxLDYgKzkxLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5z YWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7 CisKIAkvKgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0 cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUgaWYgYW55LiAgV2UgbmVl ZCB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgpAQCAtMTE4LDYg KzEyMCwxMiBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIC8qIHRydWUgYWZ0ZXIgYWNjZXB0ZWQgc2ludmFsIG1lc3NhZ2UgKi8KIHN0YXRpYyBi b29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUsIHdoZW4gc29tZSB1 c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBvciBPTiBUUkFOU0FD VElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNfc2Vzc2lvbl92YXJp YWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9m IHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAg KiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVu IHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCkBAIC0zOTgsNiArNDA2LDMyIEBAIHJlbW92ZV9pbnZh bGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJfQogfQogCisvKgorICogcmVtb3Zl IGVudHJpZXMgbWFya2VkIGFzICJyZXNldF9hdF9lb3giCisgKi8KK3N0YXRpYyB2b2lkCityZW1v dmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykK KwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2 YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2Vv eCkKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJ d2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBO VUxMKQorCXsKKwkJaWYgKHN2YXItPnJlc2V0X2F0X2VveCkKKwkJCWhhc2hfc2VhcmNoKHNlc3Np b252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwl9CisKKwloYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKK30KKwogLyoKICAgKiBQ ZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAg ICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00MDUs NiArNDM5LDggQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkK IHZvaWQKIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIHsKKwly ZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3goKTsKKwogCWlmIChpc0Nv bW1pdCkKIAl7CiAJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCkBAIC01MTYsNiArNTUyLDIxIEBAIHNl dHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5k b21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlk ID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCS8qCisJICogV2UgZG9uJ3QgbmVlZCB0 byBleHBsaWNpdGx5IHJlc2V0IHZhcmlhYmxlcyBtYXJrZWQgT04gQ09NTUlUIERST1AuIEl0CisJ ICogY2FuIGJlIGRvbmUgYnkgc2ludmFsIG1lc3NhZ2UgcHJvY2Vzc2luZy4gQnV0IHRoaXMgcHJv Y2Vzc2luZyBjYW4gYmUKKwkgKiBwb3N0cG9uZWQgZHVlIGFib3J0ZWQgdHJhbnNhY3Rpb24uIE9u IHNlY29uZCBoYW5kIHRoZXJlIGlzIG5vdCBhCisJICogcmVhc29uLCB3aHkgZG9uJ3QgZG8gaXQg YXQgdHJhbnNhY3Rpb24gZW5kIGltbWVkaWF0ZWx5LgorCSAqLworCWlmICh2YXJmb3JtLT52YXJl b3hhY3Rpb24gPT0gVkFSSUFCTEVfRU9YX1JFU0VUIHx8CisJCXZhcmZvcm0tPnZhcmVveGFjdGlv biA9PSBWQVJJQUJMRV9FT1hfRFJPUCkKKwl7CisJCXN2YXItPnJlc2V0X2F0X2VveCA9IHRydWU7 CisJCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IHRydWU7CisJfQor CWVsc2UKKwkJc3Zhci0+cmVzZXRfYXRfZW94ID0gZmFsc2U7CisKIAlzdmFyLT5kcm9wX2x4aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAogCXN2YXItPmlzbnVsbCA9IHRydWU7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQppbmRleCAyNmFkZDU5OWFjOS4uNmU5MWRhYTg0ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTI1MSw2 ICs1MjUxLDcgQEAgQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CiAgKiB0cmFuc2FjdGlvbiBlbmQgbGlr ZSB0YWJsZXMuCiAgKi8KIE9uRU9YQWN0aW9uT3B0aW9uOiAgT04gQ09NTUlUIERST1AJCQkJCXsg JCQgPSBWQVJJQUJMRV9FT1hfRFJPUDsgfQorCQkJfCBPTiBUUkFOU0FDVElPTiBFTkRfUCBSRVNF VAkJCXsgJCQgPSBWQVJJQUJMRV9FT1hfUkVTRVQ7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7 ICQkID0gVkFSSUFCTEVfRU9YX05PT1A7IH0KIAkJOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCAzMjU4ZTZh YzE2NS4uNjc3NDgwOWFkZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTMzMCw2ICs1MzMwLDcgQEAgZ2V0 VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJuYW1lc3BhY2U7CiAJaW50CQkJ aV92YXJ0eXBlOwogCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlpX3ZhcmVveGFjdGlvbjsK IAlpbnQJCQlpX3Zhcm93bmVyOwogCWludAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFy YWNsOwpAQCAtNTM0Nyw2ICs1MzQ4LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJ LyogR2V0IHRoZSB2YXJpYWJsZXMgaW4gY3VycmVudCBkYXRhYmFzZS4gKi8KIAlhcHBlbmRQUUV4 cEJ1ZmZlcihxdWVyeSwKIAkJCQkJICAiU0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5h bWUsXG4iCisJCQkJCSAgInYudmFyZW94YWN0aW9uLFxuIgogCQkJCQkgICJ2LnZhcm5hbWVzcGFj ZSxcbiIKIAkJCQkJICAidi52YXJ0eXBlLFxuIgogCQkJCQkgICJwZ19jYXRhbG9nLmZvcm1hdF90 eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4iCkBAIC01MzY5LDYg KzUzNzEsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3Zhcm5hbWVzcGFjZSA9 IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKIAlpX3ZhcnR5cGUgPSBQUWZudW1iZXIo cmVzLCAidmFydHlwZSIpOwogCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBu YW1lIik7CisJaV92YXJlb3hhY3Rpb24gPSBQUWZudW1iZXIocmVzLCAidmFyZW94YWN0aW9uIik7 CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CiAKIAlp X3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CkBAIC01MzkyLDYgKzUzOTUs NyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAogCQl2YXJpbmZvW2ldLnZhcnR5cGUg PSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwZSkpOwogCQl2YXJpbmZvW2ldLnZh cnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwbmFtZSkpOwor CQl2YXJpbmZvW2ldLnZhcmVveGFjdGlvbiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwg aV92YXJlb3hhY3Rpb24pKTsKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFj bCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKQEAgLTU0MzUsNiAr NTQzOSw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8g KnZhcmluZm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAqcXVhbHZhcm5hbWU7CiAJ Y29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJlb3hhY3Rpb247CiAJT2lk CQkJdmFyY29sbGF0aW9uOwogCiAJLyogU2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICovCkBAIC01 NDQ2LDYgKzU0NTEsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFi bGVJbmZvICp2YXJpbmZvKQogCiAJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVk RHVtcGFibGUodmFyaW5mbykpOwogCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOwor CXZhcmVveGFjdGlvbiA9IHZhcmluZm8tPnZhcmVveGFjdGlvbjsKIAl2YXJjb2xsYXRpb24gPSB2 YXJpbmZvLT52YXJjb2xsYXRpb247CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBW QVJJQUJMRSAlcztcbiIsCkBAIC01NDY0LDYgKzU0NzAsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2 ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlm aWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAorCWlmIChzdHJjbXAodmFyZW94YWN0aW9uLCAiciIp ID09IDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OIFRSQU5TQUNUSU9OIEVORCBS RVNFVCIpOworCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICI7XG4iKTsKIAogCWlmICh2YXJp bmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5k ZXggMzZhNjlhMDgzMjQuLmQxN2Q4YjA5NmIxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcwMiw2ICs3MDIs NyBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJRHVtcGFibGVBY2wgZGFjbDsKIAlP aWQJCQl2YXJ0eXBlOwogCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJY2hhcgkgICAqdmFyZW94YWN0 aW9uOwogCWNoYXIJICAgKnZhcmFjbDsKIAljaGFyCSAgICpydmFyYWNsOwogCWNoYXIJICAgKmlu aXR2YXJhY2w7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBi L3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IGQ2MmRiMjQyMjg3Li43MWY4 YzcxM2Y2OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTM5NDEsNiArMzk0MSwyNCBA QCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJp YWJsZSBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEs CisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRl ciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZh cmlhYmxlMiBBUyBpbnRlZ2VyIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsnLAorCQlyZWdleHAg PT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMiBBUyBpbnRl Z2VyIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVs bF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEg PT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9 PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdD UkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVh dGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDdh NzFiMGE4OTJkLi41MDE3NGEyOGUwMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUxNzIsNiArNTE3Miw3IEBAIGxp c3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgICIg IHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKIAkJ CQkJICAiICBDQVNFIHYudmFyZW94YWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVO ICdPTiBDT01NSVQgRFJPUCdcbiIKKwkJCQkJICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5T QUNUSU9OIEVORCBSRVNFVCdcbiIKIAkJCQkJICAiICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkg IGdldHRleHRfbm9vcCgiU2NoZW1hIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggYWZhZGQ2ODczYTIuLjJhZWNiY2I1MGU5IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC03Myw2ICs3Myw3IEBAIHR5cGVkZWYgZW51 bSBWYXJpYWJsZUVPWEFjdGlvbgogewogCVZBUklBQkxFX0VPWF9OT09QID0gJ24nLAkvKiBOT09Q ICovCiAJVkFSSUFCTEVfRU9YX0RST1AgPSAnZCcsCS8qIE9OIENPTU1JVCBEUk9QICovCisJVkFS SUFCTEVfRU9YX1JFU0VUID0gJ3InLAkvKiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgKi8KIH0J CQlWYXJpYWJsZUVPWEFjdGlvbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rl c3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CmluZGV4IDlmYmJmOTA1 N2E2Li4xOWEyZTVhOGY2NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3Nlc3Npb24tdmFyaWFibGUub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9z ZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtODUsMTEgKzg1LDEyIEBAIG15dmFyCiAKIHN0ZXAgc3Ix OiBST0xMQkFDSzsKIAotc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBvX2Nf ZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitzdGFy dGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19kIG9fZW94X3IgY3JlYXRlNCBs ZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBjbGVhbiBzdGF0ZQogc3RlcCBjcmVh dGUzOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CiBzdGVwIGxldDM6IExFVCBteXZh cjMgPSAndGVzdCc7CiBzdGVwIHMzOiBCRUdJTjsKIHN0ZXAgb19jX2Q6IENSRUFURSBURU1QIFZB UklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7CitzdGVwIG9fZW94X3I6 IENSRUFURSBWQVJJQUJMRSBteXZhcl9vX2VveF9yIEFTIHRleHQgT04gVFJBTlNBQ1RJT04gRU5E IFJFU0VUOyBMRVQgbXl2YXJfb19lb3hfciA9ICd0ZXN0JzsKIHN0ZXAgY3JlYXRlNDogQ1JFQVRF IFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owogc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3Qn Owogc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CkBAIC0xMDIsNiArMTAzLDcgQEAg dAogCiBzdGVwIGRpc2NhcmQ6IERJU0NBUkQgVkFSSUFCTEVTOwogc3RlcCBzYzM6IENPTU1JVDsK K3N0ZXAgY2xlYW46IERST1AgVkFSSUFCTEUgbXl2YXJfb19lb3hfcjsKIHN0ZXAgc3RhdGU6IFNF TEVDVCB2YXJuYW1lIEZST00gcGdfdmFyaWFibGU7CiB2YXJuYW1lCiAtLS0tLS0tCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjIGIvc3Jj L3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwppbmRleCA0NWU2NWQ0 MDg1ZC4uNWQwODljOGE0ZWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9z ZXNzaW9uLXZhcmlhYmxlLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Np b24tdmFyaWFibGUuc3BlYwpAQCAtMjUsMTIgKzI1LDE0IEBAIHNlc3Npb24gczMKIHN0ZXAgczMJ CQl7IEJFR0lOOyB9CiBzdGVwIGxldDMJCXsgTEVUIG15dmFyMyA9ICd0ZXN0JzsgfQogc3RlcCBv X2NfZAkJeyBDUkVBVEUgVEVNUCBWQVJJQUJMRSBteXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1J VCBEUk9QOyB9CitzdGVwIG9fZW94X3IJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXJfb19lb3hfciBB UyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsgTEVUIG15dmFyX29fZW94X3IgPSAndGVz dCc7IH0KIHN0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQog c3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KIHN0ZXAgZHJvcDQJCXsgRFJPUCBW QVJJQUJMRSBteXZhcjQ7IH0KIHN0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZS T00gcGdfZm9yZWlnbl90YWJsZTsgfQogc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7 IH0KIHN0ZXAgc2MzCQl7IENPTU1JVDsgfQorc3RlcCBjbGVhbgkJeyBEUk9QIFZBUklBQkxFIG15 dmFyX29fZW94X3I7IH0KIHN0ZXAgc3RhdGUJCXsgU0VMRUNUIHZhcm5hbWUgRlJPTSBwZ192YXJp YWJsZTsgfQogCiBzZXNzaW9uIHM0CkBAIC00OCw0ICs1MCw0IEBAIHBlcm11dGF0aW9uIGxldCB2 YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKICMgY2FsbGluZyB0aGUgZGJnIHN0ZXAgYWZ0ZXIg dGhlIGNvbmN1cnJlbnQgZHJvcAogcGVybXV0YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVh dGUgZGJnIHZhbCBzcjEKICMgdGVzdCBmb3IgRElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50ZXJuYWwg cXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCi1wZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMg czMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0 ZQorcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIG9fY19kIG9fZW94X3IgY3JlYXRlNCBsZXQ0 IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBjbGVhbiBzdGF0ZQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAwYzFjZjcxMGIz ZC4uODYwMmZiMjI1MGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vz c2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CkBAIC0xNDgyLDMgKzE0ODIsMzcgQEAgU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQogCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOworQkVHSU47CisgIExF VCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEg cm93KQorCitDT01NSVQ7CistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2YXIxIElTIE5VTEw7 CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHZh cjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cp CisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxIElTIE5VTEw7Cisg P2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYzkxMWQx YjJjYmMuLjZlNjAwMWRlYmE5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCkBAIC05ODQsMyArOTg0LDIzIEBAIENPTU1JVDsKIFNFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CiAtLSBzaG91bGQgYmUgemVy bwogU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKKworQkVHSU47 CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxk IGJlIE5VTEw7CitTRUxFQ1QgdmFyMSBJUyBOVUxMOworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAx MDA7CisgIFNFTEVDVCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxF Q1QgdmFyMSBJUyBOVUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20240720-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhjd14 RnJvbSBjZmY1ZTBjOGMwNzgzMjgyMWEyZjI3MjFiMWI0OGRlYzI0Y2NkYzBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDc6NTc6MjkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1 LzE5XSBhbGxvdyBwYXJhbGxlbCBleGVjdXRpb24gcXVlcmllcyB3aXRoIHNlc3Npb24gdmFyaWFi bGVzCgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgICAgICAgIHwg MTQ3ICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jICAgICAgICAgIHwgIDE4ICstLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgIDEyICstCiA0IGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCsp LCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj TWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCBmMmZiNjgwZGVm Yy4uNGZiZTdjNzE4NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWlu LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMjAzLDcgKzIwMywx OSBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZs YWdzKQogCSAqIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGNvcGllZCB0byBkZWRpY2F0 ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CiAJICogaXMgcGFzc2VkIHRvIGV4ZWN1dG9yLgogCSAq LwotCWlmIChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCWlmIChx dWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA+IDApCisJeworCQkvKgorCQkgKiBXaGVu IGEgcGFyYWxsZWwgcXVlcnkgbmVlZHMgdG8gYWNjZXNzIHF1ZXJ5IHBhcmFtZXRlcnMgKGluY2x1 ZGluZworCQkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzKSwgdGhlbiByZWxhdGVkIHNlc3Np b24gdmFyaWFibGVzIGFyZQorCQkgKiByZXN0b3JlZCAoZGVzZXJpYWxpemVkKSBpbiBxdWVyeURl c2MgYWxyZWFkeS4gU28ganVzdCBwdXNoIHBvaW50ZXIKKwkJICogb2YgdGhpcyBhcnJheSB0byBl eGVjdXRvcidzIGVzdGF0ZS4KKwkJICovCisJCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOwor CQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gcXVlcnlEZXNjLT5zZXNzaW9uX3Zhcmlh YmxlczsKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPm51 bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwl9CisJZWxzZSBpZiAocXVlcnlEZXNjLT5wbGFubmVkc3Rt dC0+c2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlpbnQJCQluU2Vz c2lvblZhcmlhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJh bGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYmZiMzQx OWVmYjcuLmNiNDM0ZTI3NjhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAt MTIsOCArMTIsOSBAQAogICogd29ya2VycyBhbmQgZW5zdXJpbmcgdGhhdCB0aGVpciBzdGF0ZSBn ZW5lcmFsbHkgbWF0Y2hlcyB0aGF0IG9mIHRoZQogICogbGVhZGVyOyBzZWUgc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vUkVBRE1FLnBhcmFsbGVsIGZvciBkZXRhaWxzLgogICogSG93ZXZlciwg d2UgbXVzdCBzYXZlIGFuZCByZXN0b3JlIHJlbGV2YW50IGV4ZWN1dG9yIHN0YXRlLCBzdWNoIGFz Ci0gKiBhbnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5LCBidWZmZXIv V0FMIHVzYWdlIGluZm8sIGFuZAotICogdGhlIGFjdHVhbCBwbGFuIHRvIGJlIHBhc3NlZCBkb3du IHRvIHRoZSB3b3JrZXIuCisgKiBhbnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhl IHF1ZXJ5LCBidWZmZXIvV0FMIHVzYWdlIGluZm8sCisgKiBzZXNzaW9uIHZhcmlhYmxlcyBidWZm ZXIsIGFuZCB0aGUgYWN0dWFsIHBsYW4gdG8gYmUgcGFzc2VkIGRvd24gdG8KKyAqIHRoZSB3b3Jr ZXIuCiAgKgogICogSURFTlRJRklDQVRJT04KICAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1BhcmFsbGVsLmMKQEAgLTY0LDYgKzY1LDcgQEAKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZ X1RFWFQJCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxf S0VZX0pJVF9JTlNUUlVNRU5UQVRJT04gVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQog I2RlZmluZSBQQVJBTExFTF9LRVlfV0FMX1VTQUdFCQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAw MDAwMDBBKQorI2RlZmluZSBQQVJBTExFTF9LRVlfU0VTU0lPTl9WQVJJQUJMRVMJVUlOVDY0Q09O U1QoMHhFMDAwMDAwMDAwMDAwMDBCKQogCiAjZGVmaW5lIFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJ WkUJCTY1NTM2CiAKQEAgLTEzOCw2ICsxNDAsMTIgQEAgc3RhdGljIGJvb2wgRXhlY1BhcmFsbGVs UmV0cmlldmVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpwbGFuc3RhdGUsCiAvKiBIZWxwZXIg ZnVuY3Rpb24gdGhhdCBydW5zIGluIHRoZSBwYXJhbGxlbCB3b3JrZXIuICovCiBzdGF0aWMgRGVz dFJlY2VpdmVyICpFeGVjUGFyYWxsZWxHZXRSZWNlaXZlcihkc21fc2VnbWVudCAqc2VnLCBzaG1f dG9jICp0b2MpOwogCisvKiBIZWxwZXIgZnVuY3Rpb25zIHRoYXQgY2FuIHBhc3MgdmFsdWVzIG9m IHNlc3Npb24gdmFyaWFibGVzICovCitzdGF0aWMgU2l6ZSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJs ZXMoRVN0YXRlICplc3RhdGUpOworc3RhdGljIHZvaWQgU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxl cyhFU3RhdGUgKmVzdGF0ZSwgY2hhciAqKnN0YXJ0X2FkZHJlc3MpOworc3RhdGljIFNlc3Npb25W YXJpYWJsZVZhbHVlICpSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRfYWRkcmVz cywKKwkJCQkJCQkJCQkJCQkgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAvKgogICog Q3JlYXRlIGEgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhbiB0byBiZSBzZW50 IHRvIGVhY2ggd29ya2VyLgogICovCkBAIC01OTYsNiArNjA0LDcgQEAgRXhlY0luaXRQYXJhbGxl bFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCWNoYXIJICAgKnBz dG10X2RhdGE7CiAJY2hhcgkgICAqcHN0bXRfc3BhY2U7CiAJY2hhcgkgICAqcGFyYW1saXN0aW5m b19zcGFjZTsKKwljaGFyCSAgICpzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZTsKIAlCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2Vfc3BhY2U7CiAJV2FsVXNhZ2UgICAqd2FsdXNhZ2Vfc3BhY2U7CiAJU2hhcmVk RXhlY3V0b3JJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnRhdGlvbiA9IE5VTEw7CkBAIC02MDUs NiArNjE0LDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVT dGF0ZSAqZXN0YXRlLAogCWludAkJCWluc3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWpp dF9pbnN0cnVtZW50YXRpb25fbGVuID0gMDsKIAlpbnQJCQlpbnN0cnVtZW50X29mZnNldCA9IDA7 CisJaW50CQkJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gMDsKIAlTaXplCQlkc2FfbWluc2l6ZSA9 IGRzYV9taW5pbXVtX3NpemUoKTsKIAljaGFyCSAgICpxdWVyeV9zdHJpbmc7CiAJaW50CQkJcXVl cnlfbGVuOwpAQCAtNjYwLDYgKzY3MCwxMSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3Rh dGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygm cGN4dC0+ZXN0aW1hdG9yLCBwYXJhbWxpc3RpbmZvX2xlbik7CiAJc2htX3RvY19lc3RpbWF0ZV9r ZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEpOwogCisJLyogRXN0aW1hdGUgc3BhY2UgZm9yIHNlcmlh bGl6ZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gRXN0 aW1hdGVTZXNzaW9uVmFyaWFibGVzKGVzdGF0ZSk7CisJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygm cGN4dC0+ZXN0aW1hdG9yLCBzZXNzaW9uX3ZhcmlhYmxlc19sZW4pOworCXNobV90b2NfZXN0aW1h dGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKKwogCS8qCiAJICogRXN0aW1hdGUgc3BhY2Ug Zm9yIEJ1ZmZlclVzYWdlLgogCSAqCkBAIC03NjEsNiArNzc2LDExIEBAIEV4ZWNJbml0UGFyYWxs ZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2lu c2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9QQVJBTUxJU1RJTkZPLCBwYXJhbWxpc3RpbmZv X3NwYWNlKTsKIAlTZXJpYWxpemVQYXJhbUxpc3QoZXN0YXRlLT5lc19wYXJhbV9saXN0X2luZm8s ICZwYXJhbWxpc3RpbmZvX3NwYWNlKTsKIAorCS8qIFN0b3JlIHNlcmlhbGl6ZWQgc2Vzc2lvbiB2 YXJpYWJsZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRl KHBjeHQtPnRvYywgc2Vzc2lvbl92YXJpYWJsZXNfbGVuKTsKKwlzaG1fdG9jX2luc2VydChwY3h0 LT50b2MsIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywgc2Vzc2lvbl92YXJpYWJsZXNf c3BhY2UpOworCVNlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoZXN0YXRlLCAmc2Vzc2lvbl92YXJp YWJsZXNfc3BhY2UpOworCiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIGVhY2ggd29ya2VyJ3MgQnVm ZmVyVXNhZ2U7IG5vIG5lZWQgdG8gaW5pdGlhbGl6ZS4gKi8KIAlidWZ1c2FnZV9zcGFjZSA9IHNo bV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLAogCQkJCQkJCQkJICBtdWxfc2l6ZShzaXplb2YoQnVm ZmVyVXNhZ2UpLCBwY3h0LT5ud29ya2VycykpOwpAQCAtMTQxMSw2ICsxNDMxLDcgQEAgUGFyYWxs ZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCVNoYXJlZEppdElu c3RydW1lbnRhdGlvbiAqaml0X2luc3RydW1lbnRhdGlvbjsKIAlpbnQJCQlpbnN0cnVtZW50X29w dGlvbnMgPSAwOwogCXZvaWQJICAgKmFyZWFfc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lvbnZhcmlh YmxlX3NwYWNlOwogCWRzYV9hcmVhICAgKmFyZWE7CiAJUGFyYWxsZWxXb3JrZXJDb250ZXh0IHB3 Y3h0OwogCkBAIC0xNDM2LDYgKzE0NTcsMTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21l bnQgKnNlZywgc2htX3RvYyAqdG9jKQogCWFyZWFfc3BhY2UgPSBzaG1fdG9jX2xvb2t1cCh0b2Ms IFBBUkFMTEVMX0tFWV9EU0EsIGZhbHNlKTsKIAlhcmVhID0gZHNhX2F0dGFjaF9pbl9wbGFjZShh cmVhX3NwYWNlLCBzZWcpOwogCisJLyogUmVjb25zdHJ1Y3Qgc2Vzc2lvbiB2YXJpYWJsZXMuICov CisJc2Vzc2lvbnZhcmlhYmxlX3NwYWNlID0gc2htX3RvY19sb29rdXAodG9jLAorCQkJCQkJCQkJ CSAgIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywKKwkJCQkJCQkJCQkgICBmYWxzZSk7 CisJcXVlcnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlcyA9CisJCVJlc3RvcmVTZXNzaW9uVmFyaWFi bGVzKCZzZXNzaW9udmFyaWFibGVfc3BhY2UsCisJCQkJCQkJCSZxdWVyeURlc2MtPm51bV9zZXNz aW9uX3ZhcmlhYmxlcyk7CisKIAkvKiBTdGFydCB1cCB0aGUgZXhlY3V0b3IgKi8KIAlxdWVyeURl c2MtPnBsYW5uZWRzdG10LT5qaXRGbGFncyA9IGZwZXMtPmppdF9mbGFnczsKIAlFeGVjdXRvclN0 YXJ0KHF1ZXJ5RGVzYywgZnBlcy0+ZWZsYWdzKTsKQEAgLTE1MDQsMyArMTUzMywxMTcgQEAgUGFy YWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCUZyZWVRdWVy eURlc2MocXVlcnlEZXNjKTsKIAlyZWNlaXZlci0+ckRlc3Ryb3kocmVjZWl2ZXIpOwogfQorCisv KgorICogRXN0aW1hdGUgdGhlIGFtb3VudCBvZiBzcGFjZSByZXF1aXJlZCB0byBzZXJpYWxpemUg YSBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgU2l6ZQorRXN0aW1hdGVTZXNzaW9uVmFy aWFibGVzKEVTdGF0ZSAqZXN0YXRlKQoreworCWludAkJCWk7CisJU2l6ZQkJc3ogPSBzaXplb2Yo aW50KTsKKworCWlmIChlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID09IE5VTEwpCisJCXJl dHVybiBzejsKKworCWZvciAoaSA9IDA7IGkgPCBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3Zhcmlh YmxlczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJ CXR5cGVPaWQ7CisJCWludDE2CQl0eXBMZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2 YWwgPSAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKworCQl0eXBlT2lkID0gc3Zh cnZhbC0+dHlwaWQ7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwgc2l6ZW9mKE9pZCkpOyAvKiBzcGFj ZSBmb3IgdHlwZSBPSUQgKi8KKworCQkvKiBzcGFjZSBmb3IgZGF0dW0vaXNudWxsICovCisJCUFz c2VydChPaWRJc1ZhbGlkKHR5cGVPaWQpKTsKKwkJZ2V0X3R5cGxlbmJ5dmFsKHR5cGVPaWQsICZ0 eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwKKwkJCQkJICBkYXR1bUVz dGltYXRlU3BhY2Uoc3ZhcnZhbC0+dmFsdWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5 cExlbikpOworCX0KKworCXJldHVybiBzejsKK30KKworLyoKKyAqIFNlcmlhbGl6ZSBhIHNlc3Np b24gdmFyaWFibGVzIGJ1ZmZlciBpbnRvIGNhbGxlci1wcm92aWRlZCBzdG9yYWdlLgorICoKKyAq IFdlIHdyaXRlIHRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBmaXJzdCwgYXMgYSA0LWJ5dGUgaW50 ZWdlciwgYW5kIHRoZW4KKyAqIHdyaXRlIGRldGFpbHMgZm9yIGVhY2ggcGFyYW1ldGVyIGluIHR1 cm4uICBUaGUgZGV0YWlscyBmb3IgZWFjaCBwYXJhbWV0ZXIKKyAqIGNvbnNpc3Qgb2YgYSA0LWJ5 dGUgdHlwZSBPSUQsIGFuZCB0aGVuIHRoZSBkYXR1bSBhcyBzZXJpYWxpemVkIGJ5CisgKiBkYXR1 bVNlcmlhbGl6ZSgpLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhh dCB0aGVyZSBpcworICogZW5vdWdoIHN0b3JhZ2UgdG8gc3RvcmUgdGhlIG51bWJlciBvZiBieXRl cyB0aGF0IHdpbGwgYmUgd3JpdHRlbjsgdXNlCisgKiBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMg dG8gZmluZCBvdXQgaG93IG1hbnkgd2lsbCBiZSBuZWVkZWQuCisgKiAqc3RhcnRfYWRkcmVzcyBp cyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aG9z ZQorICogd3JpdHRlbi4KKyAqCisgKiBSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyBjYW4gYmUgdXNl ZCB0byByZWNyZWF0ZSBhIHNlc3Npb24gdmFyaWFibGUgYnVmZmVyCisgKiBiYXNlZCBvbiB0aGUg c2VyaWFsaXplZCByZXByZXNlbnRhdGlvbjsKKyAqLworc3RhdGljIHZvaWQKK1NlcmlhbGl6ZVNl c3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUsIGNoYXIgKipzdGFydF9hZGRyZXNzKQorewor CWludAkJCW5wYXJhbXM7CisJaW50CQkJaTsKKworCS8qIFdyaXRlIG51bWJlciBvZiBwYXJhbWV0 ZXJzLiAqLworCW5wYXJhbXMgPSBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwlt ZW1jcHkoKnN0YXJ0X2FkZHJlc3MsICZucGFyYW1zLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2Fk ZHJlc3MgKz0gc2l6ZW9mKGludCk7CisKKwkvKiBXcml0ZSBlYWNoIHBhcmFtZXRlciBpbiB0dXJu LiAqLworCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFi bGVWYWx1ZSAqc3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJ Ym9vbAkJdHlwQnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFi bGVzW2ldOworCQl0eXBlT2lkID0gc3ZhcnZhbC0+dHlwaWQ7CisKKwkJLyogV3JpdGUgdHlwZSBP SUQuICovCisJCW1lbWNweSgqc3RhcnRfYWRkcmVzcywgJnR5cGVPaWQsIHNpemVvZihPaWQpKTsK KwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJQXNzZXJ0KE9pZElzVmFsaWQo dHlwZU9pZCkpOworCQlnZXRfdHlwbGVuYnl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFs KTsKKworCQlkYXR1bVNlcmlhbGl6ZShzdmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNudWxsLCB0 eXBCeVZhbCwgdHlwTGVuLAorCQkJCQkgICBzdGFydF9hZGRyZXNzKTsKKwl9Cit9CisKK3N0YXRp YyBTZXNzaW9uVmFyaWFibGVWYWx1ZSAqCitSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoq c3RhcnRfYWRkcmVzcywgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpCit7CisJU2Vzc2lvblZh cmlhYmxlVmFsdWUgKnNlc3Npb25fdmFyaWFibGVzOworCWludAkJCWk7CisJaW50CQkJbnBhcmFt czsKKworCW1lbWNweSgmbnBhcmFtcywgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihpbnQpKTsKKwkq c3RhcnRfYWRkcmVzcyArPSBzaXplb2YoaW50KTsKKworCSpudW1fc2Vzc2lvbl92YXJpYWJsZXMg PSBucGFyYW1zOworCXNlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICop CisJCXBhbGxvYyhucGFyYW1zICogc2l6ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwlm b3IgKGkgPSAwOyBpIDwgbnBhcmFtczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUg KnN2YXJ2YWwgPSAmc2Vzc2lvbl92YXJpYWJsZXNbaV07CisKKwkJLyogUmVhZCB0eXBlIE9JRC4g Ki8KKwkJbWVtY3B5KCZzdmFydmFsLT50eXBpZCwgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihPaWQp KTsKKwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJLyogUmVhZCBkYXR1bS9p c251bGwuICovCisJCXN2YXJ2YWwtPnZhbHVlID0gZGF0dW1SZXN0b3JlKHN0YXJ0X2FkZHJlc3Ms ICZzdmFydmFsLT5pc251bGwpOworCX0KKworCXJldHVybiBzZXNzaW9uX3ZhcmlhYmxlczsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCAxYjFmYjZlY2Y4MS4uMDkyZWQy MzUzYWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTkyNCwyNSArOTI0 LDE5IEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxl bF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAogCS8qCiAJICogV2UgY2FuJ3QgcGFzcyBQYXJh bXMgdG8gd29ya2VycyBhdCB0aGUgbW9tZW50IGVpdGhlciwgc28gdGhleSBhcmUgYWxzbwotCSAq IHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJBTV9FWFRFUk4gUGFyYW1z IG9yIGFyZQotCSAqIFBBUkFNX0VYRUMgUGFyYW1zIGxpc3RlZCBpbiBzYWZlX3BhcmFtX2lkcywg bWVhbmluZyB0aGV5IGNvdWxkIGJlCi0JICogZWl0aGVyIGdlbmVyYXRlZCB3aXRoaW4gd29ya2Vy cyBvciBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlIGxlYWRlciBhbmQKLQkgKiB0aGVuIHRoZWlyIHZh bHVlIGNhbiBiZSBwYXNzZWQgdG8gd29ya2Vycy4KKwkgKiBwYXJhbGxlbC1yZXN0cmljdGVkLCB1 bmxlc3MgdGhleSBhcmUgUEFSQU1fRVhURVJOIG9yIFBBUkFNX1ZBUklBQkxFCisJICogUGFyYW1z IG9yIGFyZSBQQVJBTV9FWEVDIFBhcmFtcyBsaXN0ZWQgaW4gc2FmZV9wYXJhbV9pZHMsIG1lYW5p bmcgdGhleQorCSAqIGNvdWxkIGJlIGVpdGhlciBnZW5lcmF0ZWQgd2l0aGluIHdvcmtlcnMgb3Ig Y2FuIGJlIGNvbXB1dGVkIGJ5IHRoZQorCSAqIGxlYWRlciBhbmQgdGhlbiB0aGVpciB2YWx1ZSBj YW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMuCiAJICovCiAJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFt KSkKIAl7CiAJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fRVhURVJOIHx8CisJCQlwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQog CQkJcmV0dXJuIGZhbHNlOwogCi0JCS8qIFdlIGRvZXNuJ3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Np b24gdmFyaWFibGVzIHRvIHdvcmtlcnMgKi8KLQkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFS QU1fVkFSSUFCTEUpCi0JCXsKLQkJCWlmIChtYXhfcGFyYWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFS QUxMRUxfUkVTVFJJQ1RFRCwgY29udGV4dCkpCi0JCQkJcmV0dXJuIHRydWU7Ci0JCX0KLQogCQlp ZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9FWEVDIHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50 KGNvbnRleHQtPnNhZmVfcGFyYW1faWRzLCBwYXJhbS0+cGFyYW1pZCkpCiAJCXsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggZGVhZWNk YjAxNWUuLjBjZDI1ZWY3NThhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dApAQCAtNjA0LDEyICs2MDQsMTQgQEAgU0VMRUNUIGNvdW50KCop IEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOwogCiAtLSBwYXJhbGxlbCBleGVjdXRp b24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50 KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOwotICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBZ2dyZWdhdGUKLSAgIC0+ICBTZXEg U2NhbiBvbiBzdmFyX3Rlc3QKLSAgICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVybykKLSgz IHJvd3MpCisgICAtPiAgR2F0aGVyCisgICAgICAgICBXb3JrZXJzIFBsYW5uZWQ6IDIKKyAgICAg ICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiBzdmFyX3Rlc3QKKyAgICAgICAgICAgICAgIEZp bHRlcjogKChhICUgMTApID0gemVybykKKyg1IHJvd3MpCiAKIExFVCB6ZXJvID0gKFNFTEVDVCBj b3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CiAtLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKLS0gCjIu NDUuMgoK --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0016-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20240720-0016-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhji15 RnJvbSA2MmQxNzcyMWY5NzMwN2YzNjcwMTNhMDhiMGQ1ZDg3ODliNjgxZjllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2 LzE5XSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYyAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAg ICAgICAgICAgIHwgMTIgKysrKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAg ICAgICAgfCAgOCArKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VyLmMgICAgICAgICAgICAg fCAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgfCAgMiArCiBz cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmggICAgICAgICAgICAgfCAgNCArKwogc3JjL3BsL3Bs cGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKysrKysrKysr KysrKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgICAgICAgICAgIHwgMjQgKysrKysr KysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgICAgICAgICAgICB8IDI4ICsrKysr KysrKysrKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaCB8ICAxICsK IHNyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmggICAgICAgICAgICB8IDEyICsrKysrKwogc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgIHwgIDEgKwogMTIgZmlsZXMgY2hh bmdlZCwgMTUwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4 IGU1MTZjMGE2N2M2Li5jMzE5MWZkYzQzMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivc3BpLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5ODMsNiArMjk4 Myw5IEBAIF9TUElfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBSQVdfUEFSU0Vf UExQR1NRTF9BU1NJR04zOgogCQkJCWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2lnbm1lbnQgXCIl c1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6 CisJCQkJZXJyY29udGV4dCgiTEVUIHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7CisJCQkJYnJl YWs7CiAJCQlkZWZhdWx0OgogCQkJCWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQgXCIlc1wiIiwg cXVlcnkpOwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggZjRlYmY4Mjg4YmIuLmZh OGEzMGYyYjg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTE5MzEsNiArMTkzMSwxOCBAQCB0cmFu c2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKIAogCXN0bXQt PnF1ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CiAKKwkvKgorCSAqIEluc2lkZSBQTC9wZ1NRTCB3ZSBk b24ndCB3YW50IHRvIGV4ZWN1dGUgTEVUIHN0YXRlbWVudCBhcyB1dGlsaXR5CisJICogY29tbWFu ZCwgYmVjYXVzZSBpdCBkaXNhbGxvdyB0byBleGVjdXRlIGV4cHJlc3Npb24gYXMgc2ltcGxlCisJ ICogZXhwcmVzc2lvbi4gU28gZm9yIFBML3BnU1FMIHdlIGhhdmUgZXh0cmEgcGF0aCwgYW5kIHdl IHJldHVybiBTRUxFQ1QuCisJICogVGhlbiBpdCBjYW4gYmUgZXhlY3V0ZWQgYnkgZXhlY19ldmFs X2V4cHIuIFJlc3VsdCBpcyBkaXJyZWN0bHkgYXNzaWduZWQKKwkgKiB0byB0YXJnZXQgc2Vzc2lv biB2YXJpYWJsZSBpbnNpZGUgUEwvcGdTUUwgTEVUIHN0YXRlbWVudCBoYW5kbGVyLiBUaGlzCisJ ICogaXMgZXh0cmEgY29kZSwgZXh0cmEgcGF0aCwgYnV0IHBvc3NpYmlsaXR5IHRvIGdldCBmYXN0 ZXIgZXhlY3V0aW9uIGlzCisJICogdG9vIGF0dHJhY3RpdmUuCisJICovCisJaWYgKHN0bXQtPnBs cGdzcWxfbW9kZSkKKwkJcmV0dXJuIHF1ZXJ5OworCiAJLyogcmVwcmVzZW50IHRoZSBjb21tYW5k IGFzIGEgdXRpbGl0eSBRdWVyeSAqLwogCXJlc3VsdCA9IG1ha2VOb2RlKFF1ZXJ5KTsKIAlyZXN1 bHQtPmNvbW1hbmRUeXBlID0gQ01EX1VUSUxJVFk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAwYThlNTUzYTQy Ny4uNGFiOWIxNTAzN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtODMyLDYgKzgzMiw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04xCiAldG9rZW4JCU1P REVfUExQR1NRTF9BU1NJR04yCiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04zCisldG9rZW4J CU1PREVfUExQR1NRTF9MRVQKIAogCiAvKiBQcmVjZWRlbmNlOiBsb3dlc3QgdG8gaGlnaGVzdCAq LwpAQCAtOTYzLDYgKzk2NCwxMyBAQCBwYXJzZV90b3BsZXZlbDoKIAkJCQlwZ195eWdldF9leHRy YSh5eXNjYW5uZXIpLT5wYXJzZXRyZWUgPQogCQkJCQlsaXN0X21ha2UxKG1ha2VSYXdTdG10KChO b2RlICopIG4sIDApKTsKIAkJCX0KKwkJCXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10CisJCQl7 CisJCQkJTGV0U3RtdCAqbiA9IChMZXRTdG10ICopICQyOworCQkJCW4tPnBscGdzcWxfbW9kZSA9 IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0KKwkJCQkJ bGlzdF9tYWtlMShtYWtlUmF3U3RtdCgoTm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsKIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZXIuYwppbmRleCAxMTg0ODhjM2YzMC4uZjk0MzBhMzI5MTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VyLmMKQEAgLTYyLDYgKzYyLDcgQEAgcmF3X3BhcnNlcihjb25zdCBjaGFyICpzdHIsIFJhd1Bh cnNlTW9kZSBtb2RlKQogCQkJW1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjFdID0gTU9ERV9QTFBH U1FMX0FTU0lHTjEsCiAJCQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMl0gPSBNT0RFX1BMUEdT UUxfQVNTSUdOMiwKIAkJCVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zXSA9IE1PREVfUExQR1NR TF9BU1NJR04zLAorCQkJW1JBV19QQVJTRV9QTFBHU1FMX0xFVF0gPSBNT0RFX1BMUEdTUUxfTEVU LAogCQl9OwogCiAJCXl5ZXh0cmEuaGF2ZV9sb29rYWhlYWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IGNkMDkyOTE5MjZmLi45ZDE2MDIzOWFhMSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMjEwOSw2ICsyMTA5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAogCU5vZGVU YWcJCXR5cGU7CiAJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLwogCU5v ZGUJICAgKnF1ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJYm9vbAkJcGxwZ3NxbF9t b2RlOwkvKiB0cnVlLCB3aGVuIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZAorCQkJCQkJCQkgKiAo cGFyc2VkKSBieSBwbHBnc3FsIHJ1bnRpbWUgKi8KIAlpbnQJCQlsb2NhdGlvbjsKIH0gTGV0U3Rt dDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlci5oCmluZGV4IGJlMTg0ZWM1MDY2Li5lZmJjNzZmMGFkNCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdO bjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAqIGFuZCByZXR1cm4g YSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUuICAibiIKICAqIGdp dmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhlIHRhcmdldCBDb2x1 bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBhIExFVCBzdGF0ZW1l bnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWluaW5nIGEgUmF3U3Rt dCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcgQEAgdHlwZWRlZiBl bnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJ R04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNFX1BMUEdTUUxfTEVU LAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tzbGFzaF9xdW90ZSBH VUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDIzOWIzMjUwYTk1Li44MGQ1MTJkMzBhMCAxMDA2 NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfZXhlYy5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w cm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKQEAgLTMyOCw2ICszMjksOCBAQCBzdGF0 aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgaW50CWV4ZWNfc3RtdF9yb2xs YmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgIFBMcGdTUUxfc3RtdF9y b2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNfc3RtdF9sZXQoUExwZ1NRTF9leGVjc3Rh dGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10X2xldCAqbGV0KTsKIAogc3RhdGljIHZv aWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0yMTIwLDYgKzIxMjMsMTAgQEAgZXhlY19z dG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBMaXN0ICpzdG10cykKIAkJCQlyYyA9IGV4 ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCQlyYyA9IGV4ZWNf c3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCQlicmVhazsK KwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJfc3RtdCB0byBwYXJlbnQsIHNpbmNlIHRo aXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3RhdGUtPmVycl9zdG10ID0gc2F2ZV9lc3Rt dDsKQEAgLTUwMDEsNiArNTAwOCw1NCBAQCBleGVjX3N0bXRfcm9sbGJhY2soUExwZ1NRTF9leGVj c3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KQogCXJldHVybiBQTFBH U1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBleGVjX3N0bXRfbGV0CQkJRXZhbHVh dGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQgdGhlIHJlc3VsdCBpbnRvIGEgc2Vzc2lv biB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAorZXhlY19zdG10X2xl dChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQorewor CWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOworCWludDMyCQl2YWx0eXBtb2Q7CisJRGF0 dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlzdAkgICAqcGxhbnNvdXJjZXM7CisJQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZhbHVlID0gZXhlY19ldmFsX2V4cHIoZXN0 YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJCSAgICZpc051bGwsCisJCQkJCQkgICAm dmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOworCisJLyoKKwkgKiBPaWQgb2YgdGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1ZXJ5IHN0cnVjdHVyZS4gSXQgaXMKKwkg KiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0bHkgZnJvbSB0aGUgcGxhbiB0aGFuIHRv IGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBnc3FsIGNvbnRleHQsIGJlY2F1c2UgaXQn cyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGludmFsaWRhdGlvbiBvZiB0aGUgY2FjaGVk IHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQgb25seSB3aXRob3V0CisJICogYW55IGFs bG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQgcmV0cmlldmluZyB2YXJpZCBmcm9tIFF1 ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJcGxhbnNvdXJjZXMgPSBTUElfcGxhbl9n ZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4pOworCWlmIChsaXN0X2xlbmd0aChwbGFu c291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbGVuZ3RoIG9mIHBsYW5z b3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwlwbGFuc291cmNlID0gKENh Y2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNvdXJjZXMpOworCWlmIChsaXN0X2xlbmd0 aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3Rl ZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBmb3IgTEVUIHN0YXRlbWVudCIpOworCisJ dmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFuc291cmNlLT5xdWVyeV9saXN0KS0+cmVz dWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZWxvZyhFUlJPUiwgIm9p ZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdmFsaWQiKTsKKworCVNldFNlc3Np b25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlkLCB2YWx1ZSwgaXNOdWxsKTsKKworCXJl dHVybiBQTFBHU1FMX1JDX09LOworfQorCiAvKiAtLS0tLS0tLS0tCiAgKiBleGVjX2Fzc2lnbl9l eHByCQkJUHV0IGFuIGV4cHJlc3Npb24ncyByZXN1bHQgaW50byBhIHZhcmlhYmxlLgogICogLS0t LS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwppbmRleCBlZWI3YzRkN2MwNC4uMWIzOTM1MWRiN2Yg MTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCisrKyBiL3NyYy9wbC9w bHBnc3FsL3NyYy9wbF9mdW5jcy5jCkBAIC0yODgsNiArMjg4LDggQEAgcGxwZ3NxbF9zdG10X3R5 cGVuYW1lKFBMcGdTUUxfc3RtdCAqc3RtdCkKIAkJCXJldHVybiAiQ09NTUlUIjsKIAkJY2FzZSBQ TFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJCQlyZXR1cm4gIlJPTExCQUNLIjsKKwkJY2FzZSBQTFBH U1FMX1NUTVRfTEVUOgorCQkJcmV0dXJuICJMRVQiOwogCX0KIAogCXJldHVybiAidW5rbm93biI7 CkBAIC0zNzAsNiArMzcyLDcgQEAgc3RhdGljIHZvaWQgZnJlZV9wZXJmb3JtKFBMcGdTUUxfc3Rt dF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfY2FsbChQTHBnU1FMX3N0bXRfY2Fs bCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpz dG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfcm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpz dG10KTsKK3N0YXRpYyB2b2lkIGZyZWVfbGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3Rh dGljIHZvaWQgZnJlZV9leHByKFBMcGdTUUxfZXhwciAqZXhwcik7CiAKIApAQCAtNDU5LDYgKzQ2 Miw5IEBAIGZyZWVfc3RtdChQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1U X1JPTExCQUNLOgogCQkJZnJlZV9yb2xsYmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0 bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCWZyZWVfbGV0KChQ THBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJ CWJyZWFrOwpAQCAtNzEzLDYgKzcxOSwxMiBAQCBmcmVlX2dldGRpYWcoUExwZ1NRTF9zdG10X2dl dGRpYWcgKnN0bXQpCiB7CiB9CiAKK3N0YXRpYyB2b2lkCitmcmVlX2xldChQTHBnU1FMX3N0bXRf bGV0ICpzdG10KQoreworCWZyZWVfZXhwcihzdG10LT5leHByKTsKK30KKwogc3RhdGljIHZvaWQK IGZyZWVfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CkBAIC04MTUsNiArODI3LDcgQEAgc3Rh dGljIHZvaWQgZHVtcF9wZXJmb3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRp YyB2b2lkIGR1bXBfY2FsbChQTHBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBk dW1wX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBf cm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGR1bXBf bGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9leHByKFBMcGdT UUxfZXhwciAqZXhwcik7CiAKIApAQCAtOTE0LDYgKzkyNyw5IEBAIGR1bXBfc3RtdChQTHBnU1FM X3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZHVtcF9yb2xs YmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2Ug UExQR1NRTF9TVE1UX0xFVDoKKwkJCWR1bXBfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQp OworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNt ZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtMTU5MCw2ICsxNjA2 LDE0IEBAIGR1bXBfZ2V0ZGlhZyhQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIAlwcmludGYo IlxuIik7CiB9CiAKK3N0YXRpYyB2b2lkCitkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10 KQoreworCWR1bXBfaW5kKCk7CisJZHVtcF9leHByKHN0bXQtPmV4cHIpOworCXByaW50ZigiXG4i KTsKK30KKwogc3RhdGljIHZvaWQKIGR1bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CmRp ZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55IGIvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2dyYW0ueQppbmRleCBhMjlkMmRmYWNkZC4uZTBmZjJhOTBmNGUgMTAwNjQ0Ci0tLSBh L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2dyYW0ueQpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYwl2b2lkCQkJY2hlY2tfcmFpc2VfcGFy YW1ldGVycyhQTHBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXR5cGUgPHN0bXQ+CXN0bXRfcmV0 dXJuIHN0bXRfcmFpc2Ugc3RtdF9hc3NlcnQgc3RtdF9leGVjc3FsCiAldHlwZSA8c3RtdD4Jc3Rt dF9keW5leGVjdXRlIHN0bXRfZm9yIHN0bXRfcGVyZm9ybSBzdG10X2NhbGwgc3RtdF9nZXRkaWFn CiAldHlwZSA8c3RtdD4Jc3RtdF9vcGVuIHN0bXRfZmV0Y2ggc3RtdF9tb3ZlIHN0bXRfY2xvc2Ug c3RtdF9udWxsCi0ldHlwZSA8c3RtdD4Jc3RtdF9jb21taXQgc3RtdF9yb2xsYmFjaworJXR5cGUg PHN0bXQ+CXN0bXRfY29tbWl0IHN0bXRfcm9sbGJhY2sgc3RtdF9sZXQKICV0eXBlIDxzdG10Pglz dG10X2Nhc2Ugc3RtdF9mb3JlYWNoX2EKIAogJXR5cGUgPGxpc3Q+CXByb2NfZXhjZXB0aW9ucwpA QCAtMzAyLDYgKzMwMiw3IEBAIHN0YXRpYwl2b2lkCQkJY2hlY2tfcmFpc2VfcGFyYW1ldGVycyhQ THBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXRva2VuIDxrZXl3b3JkPglLX0lOVE8KICV0b2tl biA8a2V5d29yZD4JS19JUwogJXRva2VuIDxrZXl3b3JkPglLX0xBU1QKKyV0b2tlbiA8a2V5d29y ZD4JS19MRVQKICV0b2tlbiA8a2V5d29yZD4JS19MT0cKICV0b2tlbiA8a2V5d29yZD4JS19MT09Q CiAldG9rZW4gPGtleXdvcmQ+CUtfTUVSR0UKQEAgLTg3MSw2ICs4NzIsOCBAQCBwcm9jX3N0bXQJ CTogcGxfYmxvY2sgJzsnCiAJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQl8IHN0bXRfcm9sbGJhY2sK IAkJCQkJCXsgJCQgPSAkMTsgfQorCQkJCXwgc3RtdF9sZXQKKwkJCQkJCXsgJCQgPSAkMTsgfQog CQkJCTsKIAogc3RtdF9wZXJmb3JtCTogS19QRVJGT1JNCkBAIC05ODcsNiArOTkwLDI5IEBAIHN0 bXRfYXNzaWduCQk6IFRfREFUVU0KIAkJCQkJfQogCQkJCTsKIAorc3RtdF9sZXQJCTogS19MRVQK KwkJCQkJeworCQkJCQkJUExwZ1NRTF9zdG10X2xldCAqbmV3OworCQkJCQkJUmF3UGFyc2VNb2Rl IHBtb2RlOworCisJCQkJCQlwbW9kZSA9IFJBV19QQVJTRV9QTFBHU1FMX0xFVDsKKworCQkJCQkJ bmV3ID0gcGFsbG9jMChzaXplb2YoUExwZ1NRTF9zdG10X2xldCkpOworCQkJCQkJbmV3LT5jbWRf dHlwZSA9IFBMUEdTUUxfU1RNVF9MRVQ7CisJCQkJCQluZXctPmxpbmVubyAgID0gcGxwZ3NxbF9s b2NhdGlvbl90b19saW5lbm8oQDEpOworCQkJCQkJbmV3LT5zdG10aWQgPSArK3BscGdzcWxfY3Vy cl9jb21waWxlLT5uc3RhdGVtZW50czsKKworCQkJCQkJLyogUHVzaCBiYWNrIHRoZSBoZWFkIG5h bWUgdG8gaW5jbHVkZSBpdCBpbiB0aGUgc3RtdCAqLworCQkJCQkJcGxwZ3NxbF9wdXNoX2JhY2tf dG9rZW4oS19MRVQpOworCQkJCQkJbmV3LT5leHByID0gcmVhZF9zcWxfY29uc3RydWN0KCc7Jywg MCwgMCwgIjsiLAorCQkJCQkJCQkJCQkJCSAgIHBtb2RlLAorCQkJCQkJCQkJCQkJCSAgIGZhbHNl LCB0cnVlLAorCQkJCQkJCQkJCQkJCSAgIE5VTEwsIE5VTEwpOworCisJCQkJCQkkJCA9IChQTHBn U1FMX3N0bXQgKiluZXc7CisJCQkJCX0KKwkJCQk7CisKIHN0bXRfZ2V0ZGlhZwk6IEtfR0VUIGdl dGRpYWdfYXJlYV9vcHQgS19ESUFHTk9TVElDUyBnZXRkaWFnX2xpc3QgJzsnCiAJCQkJCXsKIAkJ CQkJCVBMcGdTUUxfc3RtdF9nZXRkaWFnICpuZXc7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2 ZWRfa3dsaXN0LmgKaW5kZXggZDMzOGU5ZjYzNzQuLmJlOTRhYTc1MWE0IDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCkBAIC00MCw2ICs0MCw3IEBAIFBHX0tFWVdPUkQo ImZyb20iLCBLX0ZST00pCiBQR19LRVlXT1JEKCJpZiIsIEtfSUYpCiBQR19LRVlXT1JEKCJpbiIs IEtfSU4pCiBQR19LRVlXT1JEKCJpbnRvIiwgS19JTlRPKQorUEdfS0VZV09SRCgibGV0IiwgS19M RVQpCiBQR19LRVlXT1JEKCJsb29wIiwgS19MT09QKQogUEdfS0VZV09SRCgibm90IiwgS19OT1Qp CiBQR19LRVlXT1JEKCJudWxsIiwgS19OVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwv c3JjL3BscGdzcWwuaCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKaW5kZXggNTBjM2Iy ODQ3MmIuLmJiNDAwNjI5YWRiIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3Nx bC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKQEAgLTEyOCw2ICsxMjgsNyBA QCB0eXBlZGVmIGVudW0gUExwZ1NRTF9zdG10X3R5cGUKIAlQTFBHU1FMX1NUTVRfQ0FMTCwKIAlQ TFBHU1FMX1NUTVRfQ09NTUlULAogCVBMUEdTUUxfU1RNVF9ST0xMQkFDSywKKwlQTFBHU1FMX1NU TVRfTEVULAogfSBQTHBnU1FMX3N0bXRfdHlwZTsKIAogLyoKQEAgLTUyMCw2ICs1MjEsMTcgQEAg dHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2Fzc2lnbgogCVBMcGdTUUxfZXhwciAqZXhwcjsK IH0gUExwZ1NRTF9zdG10X2Fzc2lnbjsKIAorLyoKKyAqIExldCBzdGF0ZW1lbnQKKyAqLwordHlw ZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2xldAoreworCVBMcGdTUUxfc3RtdF90eXBlIGNtZF90 eXBlOworCWludAkJCWxpbmVubzsKKwl1bnNpZ25lZCBpbnQgc3RtdGlkOworCVBMcGdTUUxfZXhw ciAqZXhwcjsKK30gUExwZ1NRTF9zdG10X2xldDsKKwogLyoKICAqIFBFUkZPUk0gc3RhdGVtZW50 CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOTFhOTYzZjk1NzAuLmQzOWRmZGUx NzRhIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTg4Niw2ICsxODg2LDcgQEAgUExw Z1NRTF9zdG10X2ZvcnEKIFBMcGdTUUxfc3RtdF9mb3JzCiBQTHBnU1FMX3N0bXRfZ2V0ZGlhZwog UExwZ1NRTF9zdG10X2lmCitQTHBnU1FMX3N0bXRfbGV0CiBQTHBnU1FMX3N0bXRfbG9vcAogUExw Z1NRTF9zdG10X29wZW4KIFBMcGdTUUxfc3RtdF9wZXJmb3JtCi0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0017-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20240720-0017-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhjp16 RnJvbSA3YzM3ZjVkMGNlOGFiNGIwYmI1ZDM4Y2FhZmNkNGJiODViY2U3NTMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE3 LzE5XSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCAwOTJlZDIzNTNhYy4uZDk4Y2YyMmRhZWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTQ3MzIsOCArNDczMiw3IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkgfHwKLQkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSkKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KQEAgLTQ5MzcsMjEgKzQ5MzYsMzkgQEAgc3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19t dXRhdG9yKE5vZGUgKm5vZGUsCiB7CiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CisKKworCS8qCisJICogU1FMIGZ1bmN0aW9ucyBjYW4gY29udGFpbiB0d28gZGlmZmVyZW50IGtp bmQgb2YgcGFyYW1zLiBUaGUgbm9kZXMgd2l0aAorCSAqIHBhcmFta2luZCBQQVJBTV9FWFRFUk4g YXJlIHJlbGF0ZWQgdG8gZnVuY3Rpb24ncyBhcmd1bWVudHMgKGFuZCBzaG91bGQKKwkgKiBiZSBy ZXBsYWNlZCBpbiB0aGlzIHN0ZXApLCBiZWNhdXNlIHRoaXMgaXMgaG93IHdlIGFwcGx5IHRoZSBm dW5jdGlvbidzCisJICogYXJndW1lbnRzIGZvciBhbiBleHByZXNzaW9uLgorCSAqCisJICogVGhl IG5vZGVzIHdpdGggcGFyYW1raW5kIFBBUkFNX1ZBUklBQkxFIGFyZSByZWxhdGVkIHRvIHVzYWdl IG9mIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMuIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBwYXNzZWQgdG8gZXhwcmVzc2lvbgorCSAqIGJ5IGV4cHJlc3Npb24gYXJndW1l bnRzLCBzbyBpdCBzaG91bGQgbm90IGJlIHJlcGxhY2VkIGhlcmUgYnkKKwkgKiBmdW5jdGlvbidz IGFyZ3VtZW50cy4KKwkgKi8KIAlpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAg ICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBB UkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhURVJOICYmCisJ CQlwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX1ZBUklBQkxFKQogCQkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgcGFyYW1raW5kOiAlZCIsIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwotCQlpZiAo cGFyYW0tPnBhcmFtaWQgPD0gMCB8fCBwYXJhbS0+cGFyYW1pZCA+IGNvbnRleHQtPm5hcmdzKQot CQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBwYXJhbS0+cGFyYW1pZCk7CiAK LQkJLyogQ291bnQgdXNhZ2Ugb2YgcGFyYW1ldGVyICovCi0JCWNvbnRleHQtPnVzZWNvdW50c1tw YXJhbS0+cGFyYW1pZCAtIDFdKys7CisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJeworCQkJaWYgKHBhcmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQg PiBjb250ZXh0LT5uYXJncykKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBwYXJhbWlkOiAlZCIs IHBhcmFtLT5wYXJhbWlkKTsKIAotCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBh cmcgYW5kIHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KLQkJLyogV2UgZG9uJ3QgbmVlZCB0 byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0ZXIpICovCi0JCXJldHVybiBs aXN0X250aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQkJLyogQ291bnQg dXNhZ2Ugb2YgcGFyYW1ldGVyICovCisJCQljb250ZXh0LT51c2Vjb3VudHNbcGFyYW0tPnBhcmFt aWQgLSAxXSsrOworCisJCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBhcmcgYW5k IHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KKwkJCS8qIFdlIGRvbid0IG5lZWQgdG8gY29w eSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLworCQkJcmV0dXJuIGxpc3Rf bnRoKGNvbnRleHQtPmFyZ3MsIHBhcmFtLT5wYXJhbWlkIC0gMSk7CisJCX0KIAl9CiAJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRl cnNfbXV0YXRvciwKIAkJCQkJCQkJICAgKHZvaWQgKikgY29udGV4dCk7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDBjZDI1ZWY3NThh Li5jMjA5YjdlMzZmZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTEwNCw3ICsxMDQsNiBAQCBTRUxFQ1QgdmFyMTsKIEVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogU0VMRUNUIHNxbGZ4 KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQotQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQogQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBs aW5lIDEgYXQgUkVUVVJOCkBAIC0yMTEsMTAgKzIxMCwxMCBAQCBTRUxFQ1Qgc3FsZngxKHNxbGZ4 MignSGVsbG8nKSk7CiAKIC0tIGlubGluaW5nIGlzIGJsb2NrZWQKIEVYUExBSU4gKENPU1RTIE9G RiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwotICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFJlc3VsdAotICAgT3V0cHV0OiBzcWxmeDEo c3FsZngyKCdIZWxsbyc6OmNoYXJhY3RlciB2YXJ5aW5nKSkKKyAgIE91dHB1dDogKCh2YXIxIHx8 ICcsICc6OnRleHQpIHx8ICgodmFyMiB8fCAnLCAnOjp0ZXh0KSB8fCAnSGVsbG8nOjp0ZXh0KSkK ICgyIHJvd3MpCiAKIERST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOwotLSAKMi40NS4yCgo= --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0019-transactional-variables.patch" Content-Disposition: attachment; filename="v20240720-0019-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhk318 RnJvbSBmMjQ4YmVkYWEzYTA1Yzg1MDQ5MjYzYTU3NWIzY2E5Y2Y5YTAzNmZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDIyOjQwOjU1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxOS8xOV0gdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKClRoaXMgY29tbWl0IGltcGxlbWVu dHMgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMuIFRoZSBjb250ZW50IG9mIHRyYW5zYWN0aW9uYWwK c2Vzc2lvbiB2YXJpYWJsZXMgaXMgc2Vuc2l0aXZlIHRvIHRyYW5zYWN0aW9ucyBhbmQgc3VidHJh bnNhY3Rpb25zLiBBbnkKdHJhbnNhY3Rpb25hbCB2YXJpYWJsZSBob2xkcyBhIGhpc3Rvcnkgb2Yg dmFsdWVzIG5lY2Vzc2FyeSBmb3IgcmV2ZXJ0LiBUaGlzIGhpc3RvcnkKaXMgY2xlYW5lZCAocHVy Z2VkKSB3aGVuIGEpIHdlIHJlYWQgdGhlIHZhcmlhYmxlLCBiKSB3aGVuIHRoZSB0cmFuc2FjdGlv biBpcyBmaW5pc2hlZC4KCldlIGRvbid0IHRyeSB0byBwdXJnZSwgd2hlbiB0aGUgbGFzdCBtb2Rp ZmljYXRpb24gb2YgYSB2YXJpYWJsZSBpcyBmcm9tCmN1cnJlbnQgc3VidHJhbnNhY3Rpb24sIG9y IHdoZW4gcHVyZ2Ugd2FzIHByb2Nlc3NlZCBpbiBjdXJyZW50IHN1YnRyYW5zYWN0aW9uLgoKVGhp cyBwYXRjaCBpcyBiYXNlZCBvbiBteSB3b3JrIGZyb20gRmViIDIwMjAgYW5kIGl0IGlzIHJlbGF0 ZWQgdG8gZGlzY3Vzc2lvbgphYm91dCBmZWF0dXJlcyByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLiBOb3csIHdoZW4gdGhlIGFsbCBmZWF0dXJlcyBhcmUKc2VwYXJhdGVkIHRvIGlzb2xhdGVk IHBhdGNoZXMgSSBjYW4gcmV2aXRhbGl6ZSB0aGlzIHBhdGNoLCBiZWNhdXNlIGl0IGRvZXNuJ3QK aW5jcmVhc2UgY29tcGxleGl0eSBvZiBiYXNpYyBwYXRjaGVzLgoKVW5saWtlIG90aGVyIHBhdGNo ZXMsIHRoaXMgcGF0Y2ggaXMgd2l0aG91dCBhbnkgcmV2aWV3IGF0IHRoaXMgbW9tZW50IChGZWIg MjAyNCksCmJ1dCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgZnVsbHkgZnVuY3Rpb25hbCBmb3IgcGVv cGxlIHdobyBhcmUgaW50ZXJlc3RlZCBhYm91dAp0aGlzIGZlYXR1cmUgKGZvciB0ZXN0aW5nKS4K LS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTEg KwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDEwICst CiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMzAxICsrKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgIDUwICstLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDEwICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAg IHwgIDM2ICsrKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAg fCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICst LQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTEwICsr KysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1 OCArKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCA1OTEgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAppbmRleCAzYjczYWQ0M2NhZC4uMTQzNjkzYjBjOGEgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC05ODUxLDYgKzk4NTEsMTcgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+ Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAg ICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxzdHJ1Y3RmaWVsZD52YXJpc3RyYW5zYWN0PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2Vu dHJ5PgorICAgICAgPGVudHJ5PgorICAgICAgIFRydWUsIHdoZW4gdGhlIHZhcmlhYmxlIGlzICJ0 cmFuc2FjdGlvbmFsIi4gSW4gY2FzZSBvZiB0cmFuc2FjdGlvbgorICAgICAgIHJvbGxiYWNrLCB0 cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyBhcmUgcmVzZXQgdG8gdGhlaXIgY29udGVudCBhdCB0aGUK KyAgICAgICB0cmFuc2FjdGlvbiBzdGFydC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisg ICAgICA8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K ICAgICAgICA8c3RydWN0ZmllbGQ+dmFyZW94YWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hh cjwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGVmNjk1ZDY2 Mzc4Li5lZGYwMWNjZGY1NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFy aWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBA IC0yNiw3ICsyNiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lz ZGl2PgogPHN5bm9wc2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVU QUJMRSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBU RU1QT1JBUlkgfCBURU1QIH0gXSBbIHsgVFJBTlNBQ1RJT05BTCB8IFRSQU5TQUNUSU9OIH0gXSBb IElNTVVUQUJMRSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsg Tk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmF1 bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNBQ1RJ T04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAtNDgs NiArNDgsMTQgQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBd IFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWMKICAgIHNhbWUgYXMgcmVndWxhciB2 YXJpYWJsZXMgaW4gUEwgbGFuZ3VhZ2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBXaGVu IGEgc2NoZW1hIHZhcmlhYmxlIGlzIGNyZWF0ZWQgd2l0aCBhCisgICA8Y29tbWFuZD5DUkVBVEUg VFJBTlNBQ1RJT05BTCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCwgdGhlIHZhcmlhYmxlcwor ICAgY29udGVudCBjaGFuZ2VzIGFyZSB0cmFuc2FjdGlvbmFsOiBpbiBjYXNlIG9mIHJvbGxiYWNr LCB0aGV5IGFyZSByZXNldCB0bworICAgdGhlaXIgdmFsdWUgYXQgdGhlIGJlZ2lubmluZyBvZiB0 aGUgdHJhbnNhY3Rpb24gb3IgdGhlIGxhdGVzdCBzdWJ0cmFuc2FjdGlvbi4KKyAgIFRoZSB2YXJp YWJsZSBjb250ZW50IGlzIG9ubHkgaG9sZCBpbiBtZW1vcnksIGFuZCB0aHVzIGlzIG5vdCBwZXJz aXN0ZW50LgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUg cmV0cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+IFNRTAogICAgY29tbWFu ZC4gIFRoZWlyIHZhbHVlIGlzIHNldCB3aXRoIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IFNR TCBjb21tYW5kLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDg5OGMyYzc0NWU5Li44 N2IyNDZmMTRmOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDIsNiArNDIsNyBA QCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFt ZSwKIAkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCQkgYm9vbCBpc19ub3Rf bnVsbCwKIAkJCQkJCQkJCSBib29sIGlzX2ltbXV0YWJsZSwKKwkJCQkJCQkJCSBib29sIGlzX3Ry YW5zYWN0LAogCQkJCQkJCQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVF T1hBY3Rpb24gZW94YWN0aW9uKTsKIApAQCAtNTksNiArNjAsNyBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlib29sIGlmX25vdF9leGlzdHMsCiAJCQkJYm9vbCBp c19ub3RfbnVsbCwKIAkJCQlib29sIGlzX2ltbXV0YWJsZSwKKwkJCQlib29sIGlzX3RyYW5zYWN0 LAogCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVFT1hBY3Rpb24gZW94YWN0aW9u KQogewpAQCAtMTIzLDYgKzEyNSw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJO YW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0 SWRHZXREYXR1bSh2YXJDb2xsYXRpb24pOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcmlz bm90bnVsbCAtIDFdID0gQm9vbEdldERhdHVtKGlzX25vdF9udWxsKTsKIAl2YWx1ZXNbQW51bV9w Z192YXJpYWJsZV92YXJpc2ltbXV0YWJsZSAtIDFdID0gQm9vbEdldERhdHVtKGlzX2ltbXV0YWJs ZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXN0cmFuc2FjdCAtIDFdID0gQm9vbEdl dERhdHVtKGlzX3RyYW5zYWN0KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJlb3hhY3Rp b24gLSAxXSA9IENoYXJHZXREYXR1bShlb3hhY3Rpb24pOwogCiAJaWYgKHZhckRlZmV4cHIpCkBA IC0yNjcsNiArMjcwLDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAog CQkJCQkJCSAgIHN0bXQtPmlzX25vdF9udWxsLAogCQkJCQkJCSAgIHN0bXQtPmlzX2ltbXV0YWJs ZSwKKwkJCQkJCQkgICBzdG10LT5pc190cmFuc2FjdCwKIAkJCQkJCQkgICBjb29rZWRfZGVmYXVs dCwKIAkJCQkJCQkgICBzdG10LT5lb3hhY3Rpb24pOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKaW5kZXggMjE1NjA2OTVkYzIuLmU5NDk0MzAwYjliIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC00Nyw2ICs0NywxOSBAQCB0eXBlZGVm IHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIAlTdWJUcmFuc2FjdGlvbklkIGRlbGV0aW5n X3N1YmlkOwogfSBTVmFyaWFibGVYQWN0RHJvcEl0ZW07CiAKKy8qCisgKiBVc2VkIGZvciB0cmFu c2FjdGlvbmFsIHZhcmlhYmxlcy4gSG9sZHMgcHJldiB2ZXJzaW9uLgorICovCit0eXBlZGVmIHN0 cnVjdCBQcmV2VmFsdWUKK3sKKwlEYXR1bQkJdmFsdWU7CisJYm9vbAkJaXNudWxsOworCisJU3Vi VHJhbnNhY3Rpb25JZCBtb2RpZnlfc3ViaWQ7CisKKwlzdHJ1Y3QgUHJldlZhbHVlICpwcmV2X3Zh bHVlOworfSBQcmV2VmFsdWU7CisKIC8qCiAgKiBWYWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMg YXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCBsb2NhbCBtZW1vcnkKICAqIGluc2lkZSBzZXNzaW9u dmFycyBoYXNoIHRhYmxlIGluIGJpbmFyeSBmb3JtYXQgaW5zaWRlIGEgZGVkaWNhdGVkIG1lbW9y eQpAQCAtNzUsNiArODgsMjUgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCWJvb2wJ CWlzbnVsbDsKIAlEYXR1bQkJdmFsdWU7CiAKKwkvKgorCSAqIFdlIGRvbid0IG5lZWQgc3RhY2sg dmVyc2lvbnMgbW9kaWZpZWQgaW4gc2FtZSBzdWJ0cmFuc2FjdGlvbi4KKwkgKiBVc2VkIGJ5IHRy YW5zYWN0aW9uYWwgdmFyaWFibGVzIG9ubHkuIFRoZSB2YWx1ZSBvZiB0cmFuc2FjdGlvbmFsCisJ ICogdmFyaWFibGUgY2FuIGJlIHJldHVybmVkIGltbWVkaWF0ZWx5IHdoZW4gbW9kaWZ5X3N1Ymlk IGlzIHNhbWUKKwkgKiBsaWtlIGN1cnJlbnQgc3ViaWQuCisJICovCisJU3ViVHJhbnNhY3Rpb25J ZCBtb2RpZnlfc3ViaWQ7CisKKwkvKgorCSAqIFdoZW4gdGhlIG1vZGlmeV9zdWJpZCBpcyBkaWZm ZXJlbnQgdGhhbiBjdXJyZW50IHN1YmlkLCB0aGVuCisJICogd2UgbmVlZCB0byByZWNoZWNrIHZl cnNpb25zIGFuZCB0aHJvdyB2ZXJzaW9ucyByZWxhdGVkIHRvCisJICogcmV2ZXJ0ZWQgdHJhbnNh Y3Rpb25zLiBXaGVuIHB1cmdlX3N1YmlkIGlzIHNhbWUgbGlrZSBjdXJyZW50IHN1YmlkCisJICog d2UgY2FuIHJldHVybiB0aGUgdmFsdWUgb2YgdHJhbnNhY3Rpb24gdmFyaWFibGUgd2l0aG91dCB0 aGlzCisJICogcmVjaGVjay4KKwkgKi8KKwlTdWJUcmFuc2FjdGlvbklkIHB1cmdlX3N1YmlkOwor CisJUHJldlZhbHVlICAqcHJldl92YWx1ZTsKKwogCU9pZAkJCXR5cGlkOwogCWludDE2CQl0eXBs ZW47CiAJYm9vbAkJdHlwYnl2YWw7CkBAIC05NCw2ICsxMjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBT VmFyaWFibGVEYXRhCiAKIAlib29sCQlpc19ub3RfbnVsbDsKIAlib29sCQlpc19pbW11dGFibGU7 CisJYm9vbAkJaXNfdHJhbnNhY3Q7CiAKIAlib29sCQlyZXNldF9hdF9lb3g7CiAKQEAgLTEzMyw2 ICsxNjYsOSBAQCBzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CiAgKi8KIHN0 YXRpYyBib29sIGhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZhbHNl OwogCisvKiB0cnVlLCB3aGVuIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIHdhcyBtb2RpZmllZCAq Lworc3RhdGljIGJvb2wgaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzID0gZmFs c2U7CisKIC8qCiAgKiBUaGUgY29udGVudCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVt b3ZlZCBpbW1lZGlhdGVseS4gV2hlbiBpdAogICogaXMgcG9zc2libGUgd2UgZG8gdGhpcyBhdCB0 aGUgdHJhbnNhY3Rpb24gZW5kLiBCdXQgd2hlbiB0aGUgdHJhbnNhY3Rpb24gZmFpbGVkLApAQCAt MTQ4LDYgKzE4NCw3IEBAIHN0YXRpYyBMaXN0ICp4YWN0X2Ryb3BfaXRlbXMgPSBOSUw7CiAKIHN0 YXRpYyB2b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7 CiBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2 YXJpZCk7CitzdGF0aWMgYm9vbCBwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFy KTsKIAogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFs aWRhdGlvbi4KQEAgLTMwMyw4ICszNDAsMjUgQEAgdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxl X3hhY3RfZHJvcChPaWQgdmFyaWQpCiAgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1v cnkKICAqLwogc3RhdGljIHZvaWQKLWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFi bGUgc3ZhcikKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9v bCBkZWVwX2ZyZWUpCiB7CisJaWYgKGRlZXBfZnJlZSkKKwl7CisJCVByZXZWYWx1ZSAqcHJldl92 YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJCVByZXZWYWx1ZSAqbmV4dF92YWx1ZTsKKworCQl3 aGlsZSAocHJldl92YWx1ZSkKKwkJeworCQkJaWYgKCFzdmFyLT50eXBieXZhbCkKKwkJCQlwZnJl ZShEYXR1bUdldFBvaW50ZXIocHJldl92YWx1ZS0+dmFsdWUpKTsKKworCQkJbmV4dF92YWx1ZSA9 IHByZXZfdmFsdWUtPnByZXZfdmFsdWU7CisJCQlwZnJlZShwcmV2X3ZhbHVlKTsKKworCQkJcHJl dl92YWx1ZSA9IG5leHRfdmFsdWU7CisJCX0KKwl9CisKIAkvKiBDbGVhbiBjdXJyZW50IHZhbHVl ICovCiAJaWYgKCFzdmFyLT5pc251bGwpCiAJewpAQCAtNDAzLDcgKzQ1Nyw3IEBAIHJlbW92ZV9p bnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJCQl7CiAJCQkJT2lkCQkJdmFy aWQgPSBzdmFyLT52YXJpZDsKIAotCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFy KTsKKwkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3ZhciwgdHJ1ZSk7CiAJCQkJaGFz aF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOwogCQkJCXN2 YXIgPSBOVUxMOwogCQkJfQpAQCAtNDM5LDYgKzQ5Myw5NCBAQCByZW1vdmVfc2Vzc2lvbl92YXJp YWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKIAloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0 aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIH0KIAorLyoKKyAqIHJlbW92ZSBwcmV2IHZhbHVlcyBh dCBlb3gKKyAqLworc3RhdGljIHZvaWQKK3JlbW92ZV9wcmV2X3ZhbHVlc19hdF9lb3goYm9vbCBp c0NvbW1pdCkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOwor CisJaWYgKCFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVu IHRoZXJlIGFyZSBub3QgdGhhdCB2YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19tb2RpZmllZF90cmFu c2FjdGlvbmFsX3ZhcmlhYmxlcykKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVz LCBzZXNzaW9udmFycyk7CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2Vh cmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsKKwkJaWYgKHN2YXItPmlzX3RyYW5zYWN0ICYmIHN2 YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwkJeworCQkJaWYg KGlzQ29tbWl0KQorCQkJeworCQkJCWlmIChwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIpKQor CQkJCXsKKwkJCQkJUHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKwor CQkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJCQkJeworCQkJCQkJUHJldlZhbHVlICpjdXJyZW50 X3B2ID0gcHJldl92YWx1ZTsKKworCQkJCQkJaWYgKCFzdmFyLT50eXBieXZhbCAmJiAhY3VycmVu dF9wdi0+aXNudWxsKQorCQkJCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52 YWx1ZSkpOworCisJCQkJCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJ CQkJCXBmcmVlKGN1cnJlbnRfcHYpOworCQkJCQl9CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJ CQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBO VUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJCQkJfQorCQkJfQorCQkJZWxzZQorCQkJeworCQkJ CVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisKKwkJCQl3aGlsZSAo cHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCVByZXZWYWx1ZSAqY3VycmVudF9wdiA9IHByZXZfdmFs dWU7CisKKwkJCQkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlkU3ViVHJh bnNhY3Rpb25JZCkKKwkJCQkJCWJyZWFrOworCisJCQkJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYg IWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50 X3B2LT52YWx1ZSkpOworCisJCQkJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVl OworCQkJCQlwZnJlZShjdXJyZW50X3B2KTsKKwkJCQl9CisKKwkJCQlpZiAocHJldl92YWx1ZSkK KwkJCQl7CisJCQkJCXN2YXItPnZhbHVlID0gcHJldl92YWx1ZS0+dmFsdWU7CisJCQkJCXN2YXIt PmlzbnVsbCA9IHByZXZfdmFsdWUtPmlzbnVsbDsKKworCQkJCQlwZnJlZShwcmV2X3ZhbHVlKTsK KwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZz dmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCQlzdmFyID0gTlVMTDsKKwkJCQl9 CisJCQl9CisKKwkJCS8qIFdoZW4gc3ZhciBpcyBzdGlsbCB2YWxpZCAobm90IHJlbW92ZWQgZnJv bSBzZXNzaW9udmFycyAqLworCQkJaWYgKHN2YXIpCisJCQl7CisJCQkJc3Zhci0+bW9kaWZ5X3N1 YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJCQkJc3Zhci0+cHJldl92YWx1ZSA9IE5V TEw7CisJCQl9CisJCX0KKwl9CisKKwloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJs ZXMgPSBmYWxzZTsKK30KKwogLyoKICAgKiBQZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1w b3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAgICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJp YWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00ODYsNiArNjI4LDggQEAgQXRQcmVFT1hhY3RfU2Vzc2lv blZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQogCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3Zhcmlh Ymxlcyh0cnVlKTsKIAl9CiAKKwlyZW1vdmVfcHJldl92YWx1ZXNfYXRfZW94KGlzQ29tbWl0KTsK KwogCS8qCiAJICogV2UgaGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3BfaXRlbXMuIEFsbCByZWxhdGVk IHZhcmlhYmxlcyBhcmUgZHJvcHBlZAogCSAqIG5vdywgb3IgbG9zdCBpbnNpZGUgYWJvcnRlZCB0 cmFuc2FjdGlvbi4KQEAgLTYzMSw2ICs3NzUsNyBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNW YXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAKIAlzdmFyLT5pc19ub3Rf bnVsbCA9IHZhcmZvcm0tPnZhcmlzbm90bnVsbDsKIAlzdmFyLT5pc19pbW11dGFibGUgPSB2YXJm b3JtLT52YXJpc2ltbXV0YWJsZTsKKwlzdmFyLT5pc190cmFuc2FjdCA9IHZhcmZvcm0tPnZhcmlz dHJhbnNhY3Q7CiAKIAlzdmFyLT5pc19kb21haW4gPSAoZ2V0X3R5cHR5cGUodmFyZm9ybS0+dmFy dHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5V TEw7CkBAIC02NTYsNiArODAxLDE3IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxl IHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAlzdmFyLT5pc251bGwgPSB0cnVlOwog CXN2YXItPnZhbHVlID0gKERhdHVtKSAwOwogCisJaWYgKHN2YXItPmlzX3RyYW5zYWN0KQorCXsK KwkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gR2V0Q3VycmVudFN1YlRyYW5zYWN0aW9uSWQoKTsKKwkJ aGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzID0gdHJ1ZTsKKwl9CisJZWxzZQor CQlzdmFyLT5tb2RpZnlfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKworCXN2YXIt PnB1cmdlX3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJc3Zhci0+cHJldl92YWx1 ZSA9IE5VTEw7CisKIAlzdmFyLT5pc192YWxpZCA9IHRydWU7CiAKIAlzdmFyLT5oYXNodmFsdWUg PSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCkBAIC02ODksNiArODQ1LDY5IEBA IHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBp c193cml0ZSkKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIH0KIAorLyoKKyAqIFRyeSB0byByZW1v dmUgYWxsIHByZXZpb3VzIHZlcnNpb25zIHJlbGF0ZWQgdG8gcmV2ZXJ0ZWQgdHJhbnNhY3Rpb25z LgorICogUmV0dXJucyB0cnVlLCB3aGVuIHZhbGlkIHZlcnNpb24gd2FzIGZvdW5kLgorICovCitz dGF0aWMgYm9vbAorcHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhcikKK3sKKwlT dWJUcmFuc2FjdGlvbklkIGN1cnJlbnRfc3ViaWQ7CisJUHJldlZhbHVlCSAgICpwcmV2X3ZhbHVl OworCWJvb2wJCQlmb3VuZCA9IHRydWU7CisKKwlBc3NlcnQoc3Zhci0+aXNfdHJhbnNhY3QpOwor CisJaWYgKHN2YXItPm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwkJ cmV0dXJuIHRydWU7CisKKwljdXJyZW50X3N1YmlkID0gR2V0Q3VycmVudFN1YlRyYW5zYWN0aW9u SWQoKTsKKworCWlmIChzdmFyLT5tb2RpZnlfc3ViaWQgPT0gY3VycmVudF9zdWJpZCkKKwkJcmV0 dXJuIHRydWU7CisKKwlpZiAoc3Zhci0+cHVyZ2Vfc3ViaWQgPT0gY3VycmVudF9zdWJpZCkKKwkJ cmV0dXJuIHRydWU7CisKKwlpZiAoU3ViVHJhbnNhY3Rpb25Jc0FjdGl2ZShzdmFyLT5tb2RpZnlf c3ViaWQpKQorCXsKKwkJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBjdXJyZW50X3N1YmlkOworCQlyZXR1 cm4gdHJ1ZTsKKwl9CisKKwlwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKworCXdoaWxl IChwcmV2X3ZhbHVlKQorCXsKKwkJUHJldlZhbHVlICpjdXJyZW50X3B2ID0gcHJldl92YWx1ZTsK KworCQlpZiAoY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkID09IEludmFsaWRTdWJUcmFuc2FjdGlv bklkIHx8CisJCQlTdWJUcmFuc2FjdGlvbklzQWN0aXZlKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJp ZCkpCisJCXsKKwkJCXN2YXItPnZhbHVlID0gY3VycmVudF9wdi0+dmFsdWU7CisJCQlzdmFyLT5p c251bGwgPSBjdXJyZW50X3B2LT5pc251bGw7CisJCQlzdmFyLT5tb2RpZnlfc3ViaWQgPSBjdXJy ZW50X3B2LT5tb2RpZnlfc3ViaWQ7CisKKwkJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2 X3ZhbHVlOworCQkJcGZyZWUoY3VycmVudF9wdik7CisKKwkJCWZvdW5kID0gdHJ1ZTsKKwkJCWJy ZWFrOworCQl9CisKKwkJaWYgKCFzdmFyLT50eXBieXZhbCAmJiAhY3VycmVudF9wdi0+aXNudWxs KQorCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKGN1cnJlbnRfcHYtPnZhbHVlKSk7CisKKwkJcHJl dl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCXBmcmVlKGN1cnJlbnRfcHYpOwor CX0KKworCXN2YXItPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOworCXN2YXItPnB1cmdlX3N1Ymlk ID0gY3VycmVudF9zdWJpZDsKKworCXJldHVybiBmb3VuZDsKK30KKwogLyoKICAqIEFzc2lnbiBz b21lIGNvbnRlbnQgdG8gdGhlIHNlc3Npb24gdmFyaWFibGUuIEl0J3MgY29waWVkIHRvCiAgKiBT VmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KQEAgLTcwMSw2ICs5MjAsMTAgQEAg c2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlz bnVsbCkKIAlEYXR1bQkJbmV3dmFsOwogCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKIAkJCSAgICpf c3ZhcjsKKwlTdWJUcmFuc2FjdGlvbklkIGN1cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJh bnNhY3Rpb25JZCgpOworCVN1YlRyYW5zYWN0aW9uSWQgcHJldl9wdXJnZV9zdWJpZCA9IEludmFs aWRTdWJUcmFuc2FjdGlvbklkOworCWJvb2wJCXNhdmVfcHJldl92YWx1ZTsKKwlQcmV2VmFsdWUg ICpwcmV2X3ZhbHVlOwogCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2VydCghaXNudWxsIHx8IHZhbHVl ID09IChEYXR1bSkgMCk7CkBAIC03MzYsNiArOTU5LDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxl KFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJZWxzZQogCQlfc3Zh ciA9IHN2YXI7CiAKKwlpZiAoX3N2YXItPmlzX3RyYW5zYWN0ICYmIF9zdmFyLT5jcmVhdGVfbHNu ID09IHN2YXItPmNyZWF0ZV9sc24pCisJeworCQlBc3NlcnQoc3Zhci0+dHlwaWQgPT0gX3N2YXIt PnR5cGlkKTsKKwkJQXNzZXJ0KHN2YXItPnR5cGJ5dmFsID09IF9zdmFyLT50eXBieXZhbCk7CisJ CUFzc2VydChzdmFyLT50eXBsZW4gPT0gX3N2YXItPnR5cGxlbik7CisKKwkJc2F2ZV9wcmV2X3Zh bHVlID0gc3Zhci0+bW9kaWZ5X3N1YmlkICE9IGN1cnJlbnRfc3ViaWQ7CisJCXByZXZfdmFsdWUg PSBzdmFyLT5wcmV2X3ZhbHVlOworCX0KKwllbHNlCisJeworCQlzYXZlX3ByZXZfdmFsdWUgPSBm YWxzZTsKKwkJcHJldl92YWx1ZSA9IE5VTEw7CisJfQorCiAJaWYgKCFpc251bGwpCiAJewogCQlN ZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1v cnlDb250ZXh0KTsKQEAgLTc0Nyw3ICs5ODUsMzcgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1Zh cmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAllbHNlCiAJCW5ld3ZhbCA9 IHZhbHVlOwogCi0JZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCWlmIChzYXZl X3ByZXZfdmFsdWUpCisJeworCQl2b2xhdGlsZSBQcmV2VmFsdWUgKm5ld19wcmV2X3ZhbHVlOwor CisJCVBHX1RSWSgpOworCQl7CisJCQluZXdfcHJldl92YWx1ZSA9IE1lbW9yeUNvbnRleHRBbGxv YyhTVmFyaWFibGVNZW1vcnlDb250ZXh0LAorCQkJCQkJCQkJCQkJc2l6ZW9mKFByZXZWYWx1ZSkp OworCQl9CisJCVBHX0NBVENIKCk7CisJCXsKKwkJCS8qIHJlbGVhc2UgbWVtIGZyb20gcGVyc2lz dGVudCBjb250ZW50ICovCisJCQlpZiAobmV3dmFsICE9IHZhbHVlKQorCQkJCXBmcmVlKERhdHVt R2V0UG9pbnRlcihuZXd2YWwpKTsKKwkJCVBHX1JFX1RIUk9XKCk7CisJCX0KKwkJUEdfRU5EX1RS WSgpOworCisJCW5ld19wcmV2X3ZhbHVlLT52YWx1ZSA9IHN2YXItPnZhbHVlOworCQluZXdfcHJl dl92YWx1ZS0+aXNudWxsID0gc3Zhci0+aXNudWxsOworCQluZXdfcHJldl92YWx1ZS0+bW9kaWZ5 X3N1YmlkID0gc3Zhci0+bW9kaWZ5X3N1YmlkOworCQluZXdfcHJldl92YWx1ZS0+cHJldl92YWx1 ZSA9IHByZXZfdmFsdWU7CisKKwkJcHJldl92YWx1ZSA9IChQcmV2VmFsdWUgKikgbmV3X3ByZXZf dmFsdWU7CisJCXByZXZfcHVyZ2Vfc3ViaWQgPSBzdmFyLT5wdXJnZV9zdWJpZDsKKworCQloYXNf bW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOworCisJfQorCWVsc2UKKwkJ ZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHByZXZfdmFsdWUgPT0gTlVMTCk7CiAK IAkvKiBXZSBjYW4gb3ZlcndyaXRlIG9sZCB2YXJpYWJsZSBub3cuIE5vIGVycm9yIGV4cGVjdGVk ICovCiAJaWYgKHN2YXIgIT0gX3N2YXIpCkBAIC03NTUsNiArMTAyMyw5IEBAIHNldF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlz dmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251bGwgPSBpc251bGw7CisJc3Zhci0+bW9k aWZ5X3N1YmlkID0gY3VycmVudF9zdWJpZDsKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IHByZXZfcHVy Z2Vfc3ViaWQ7CisJc3Zhci0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CiAKIAkvKiBkb24ndCBh bGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2YXJpYWJsZSBpcyBJTU1VVEFCTEUgKi8K IAlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQpAQCAtODcwLDYgKzExNDEsOCBAQCBnZXRfc2Vzc2lv bl92YXJpYWJsZShPaWQgdmFyaWQpCiAJZWxzZQogCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOwog CityZWluaXQ6CisKIAkvKgogCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGluaXRpYWxpemVk IHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKIAkgKiBiZSB2YWxpZGF0ZWQuCkBA IC05MDIsNiArMTE3NSwyOCBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJCQkg dmFyaWQpOwogCX0KIAorCS8qCisJICogVHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgc2hvdWxkIGJl IHB1cmdlZCBiZWZvcmUgKHJlbW92ZQorCSAqIHZlcnNpb25zIGNyZWF0ZWQgYnkgcG9zc2libHkg cmV2ZXJ0ZWQgc3VidHJhbnNhY3Rpb25zKS4KKwkgKi8KKwlpZiAoc3Zhci0+aXNfdHJhbnNhY3Qg JiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCkg JiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCXsK KwkJaWYgKCFwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIpKQorCQl7CisJCQkvKiBmb3JjZSBy ZWluaXQgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisKKwkJCS8qCisJCQkgKiBJbiBu ZXh0IGl0ZXJhdGlvbiBtb2RpZnlfc3ViaWQgc2hvdWxkIGJlCisJCQkgKiBJbnZhbGlkU3ViVHJh bnNhY3Rpb25JZCBvciBjdXJyZW50IHN1YmlkLAorCQkJICogc28gdGhlcmUgaXMgbm90IHJpc2sg b2YgaW5maW5pdHkgY3ljbGUuCisJCQkgKi8KKwkJCWdvdG8gcmVpbml0OworCQl9CisJfQorCiAJ LyogRW5zdXJlIHNvIHJldHVybmVkIGRhdGEgaXMgc3RpbGwgY29ycmVjdCBkb21haW4gKi8KIAlp ZiAoc3Zhci0+aXNfZG9tYWluKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDRhYjliMTUwMzdiLi4xZjM5 ZTJlNmU4NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02ODMsNyArNjgzLDcgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKIAkJCQlqc29uX29iamVjdF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJ CQlqc29uX2FycmF5X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCi0ldHlwZSA8Ym9vbGVh bj4JCU9wdE5vdE51bGwgT3B0SW1tdXRhYmxlCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwg T3B0SW1tdXRhYmxlIE9wdFRyYW5zYWN0aW9uYWwKIAogLyoKICAqIE5vbi1rZXl3b3JkIHRva2Vu IHR5cGVzLiAgVGhlc2UgYXJlIGhhcmQtd2lyZWQgaW50byB0aGUgImZsZXgiIGxleGVyLgpAQCAt Nzg4LDcgKzc4OCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJU1VCU0NSSVBUSU9OIFNV QlNUUklORyBTVVBQT1JUIFNZTU1FVFJJQyBTWVNJRCBTWVNURU1fUCBTWVNURU1fVVNFUgogCiAJ VEFCTEUgVEFCTEVTIFRBQkxFU0FNUExFIFRBQkxFU1BBQ0UgVEFSR0VUIFRFTVAgVEVNUExBVEUg VEVNUE9SQVJZIFRFWFRfUCBUSEVOCi0JVElFUyBUSU1FIFRJTUVTVEFNUCBUTyBUUkFJTElORyBU UkFOU0FDVElPTiBUUkFOU0ZPUk0KKwlUSUVTIFRJTUUgVElNRVNUQU1QIFRPIFRSQUlMSU5HIFRS QU5TQUNUSU9OIFRSQU5TQUNUSU9OQUwgVFJBTlNGT1JNCiAJVFJFQVQgVFJJR0dFUiBUUklNIFRS VUVfUAogCVRSVU5DQVRFIFRSVVNURUQgVFlQRV9QIFRZUEVTX1AKIApAQCAtNTIzMiwzMSArNTIz MiwzMyBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJs ZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgT25FT1hBY3Rpb25PcHRpb24KKwkJ CUNSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0aW9uYWwgT3B0SW1tdXRhYmxlIFZBUklBQkxFIHF1 YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVs bCBPcHRTZXNzaW9uVmFyRGVmRXhwciBPbkVPWEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3Jl YXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0J CQkJCSQ1LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFibGUgPSAkMzsK LQkJCQkJbi0+dmFyaWFibGUgPSAkNTsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNzsKLQkJCQkJbi0+ Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ4OwotCQkJCQluLT5pc19ub3RfbnVsbCA9 ICQ5OwotCQkJCQluLT5kZWZleHByID0gJDEwOwotCQkJCQluLT5lb3hhY3Rpb24gPSAkMTE7CisJ CQkJCSQ2LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT5pc19pbW11dGFibGUgPSAkNDsK KwkJCQkJbi0+aXNfdHJhbnNhY3QgPSAkMzsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJ bi0+dHlwZU5hbWUgPSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICop ICQ5OworCQkJCQluLT5pc19ub3RfbnVsbCA9ICQxMDsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMTsK KwkJCQkJbi0+ZW94YWN0aW9uID0gJDEyOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7 CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBPcHRUZW1wIE9wdElt bXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5 cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHBy IE9uRU9YQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0aW9uYWwg T3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRf YXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRl ZkV4cHIgT25FT1hBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10 ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkOC0+cmVscGVyc2lz dGVuY2UgPSAkMjsKLQkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7Ci0JCQkJCW4tPnZhcmlhYmxl ID0gJDg7Ci0JCQkJCW4tPnR5cGVOYW1lID0gJDEwOwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENv bGxhdGVDbGF1c2UgKikgJDExOwotCQkJCQluLT5pc19ub3RfbnVsbCA9ICQxMjsKLQkJCQkJbi0+ ZGVmZXhwciA9ICQxMzsKLQkJCQkJbi0+ZW94YWN0aW9uID0gJDE0OworCQkJCQkkOS0+cmVscGVy c2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDQ7CisJCQkJCW4tPmlzX3Ry YW5zYWN0ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDk7CisJCQkJCW4tPnR5cGVOYW1lID0g JDExOworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEyOworCQkJCQlu LT5pc19ub3RfbnVsbCA9ICQxMzsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxNDsKKwkJCQkJbi0+ZW94 YWN0aW9uID0gJDE1OwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KQEAgLTUyODQsNiArNTI4NiwxMiBAQCBPcHRJbW11dGFibGU6IElN TVVUQUJMRQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KIAkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAk JCA9IGZhbHNlOyB9CiAJCTsKIAorT3B0VHJhbnNhY3Rpb25hbDoKKwkJCVRSQU5TQUNUSU9OCQkJ CQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCBUUkFOU0FDVElPTkFMCQkJCQkJCXsgJCQgPSB0cnVl OyB9CisJCQl8IC8qIEVNUFRZICovCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQorCQk7CisKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBuYW1lIFVQREFURSBbIFRP IHZlcnNpb24gXQpAQCAtMTgwNDUsNiArMTgwNTMsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJ CQl8IFRFWFRfUAogCQkJfCBUSUVTCiAJCQl8IFRSQU5TQUNUSU9OCisJCQl8IFRSQU5TQUNUSU9O QUwKIAkJCXwgVFJBTlNGT1JNCiAJCQl8IFRSSUdHRVIKIAkJCXwgVFJVTkNBVEUKQEAgLTE4Njk1 LDYgKzE4NzA0LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBUSU1FU1RBTVAKIAkJCXwg VFJBSUxJTkcKIAkJCXwgVFJBTlNBQ1RJT04KKwkJCXwgVFJBTlNBQ1RJT05BTAogCQkJfCBUUkFO U0ZPUk0KIAkJCXwgVFJFQVQKIAkJCXwgVFJJR0dFUgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggOTM0OGZiZWQ3 ODguLjFjY2Q3MDc5ODdhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTUzMzYsNiArNTMzNiw3IEBAIGdldFZh cmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlf dmFyaXNub3RudWxsOwogCWludAkJCWlfdmFyaXNpbW11dGFibGU7CisJaW50CQkJaV92YXJpc3Ry YW5zYWN0OwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsKIAlpbnQJCQlp LApAQCAtNTM1OSw2ICs1MzYwLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJ CSAgIlRIRU4gdi52YXJjb2xsYXRpb24gRUxTRSAwIEVORCBBUyB2YXJjb2xsYXRpb24sXG4iCiAJ CQkJCSAgInYudmFyaXNub3RudWxsLFxuIgogCQkJCQkgICJ2LnZhcmlzaW1tdXRhYmxlLFxuIgor CQkJCQkgICJ2LnZhcmlzdHJhbnNhY3QsXG4iCiAJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X2V4 cHIodi52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgInYudmFyb3duZXIs XG4iCiAJCQkJCSAgInYudmFyYWNsLFxuIgpAQCAtNTM4Miw2ICs1Mzg0LDcgQEAgZ2V0VmFyaWFi bGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFy Y29sbGF0aW9uIik7CiAJaV92YXJpc25vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFyaXNub3Ru dWxsIik7CiAJaV92YXJpc2ltbXV0YWJsZSA9IFBRZm51bWJlcihyZXMsICJ2YXJpc2ltbXV0YWJs ZSIpOworCWlfdmFyaXN0cmFuc2FjdCA9IFBRZm51bWJlcihyZXMsICJ2YXJpc3RyYW5zYWN0Iik7 CiAKIAlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CiAJaV92YXJhY2wg PSBQUWZudW1iZXIocmVzLCAidmFyYWNsIik7CkBAIC01NDA4LDYgKzU0MTEsNyBAQCBnZXRWYXJp YWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CiAJCXZhcmluZm9baV0udmFyaXNu b3RudWxsID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc25vdG51bGwpKSA9PSAndCc7CiAJ CXZhcmluZm9baV0udmFyaXNpbW11dGFibGUgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcmlz aW1tdXRhYmxlKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzdHJhbnNhY3QgPSAqKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcmlzdHJhbnNhY3QpKSA9PSAndCc7CiAKIAkJdmFyaW5mb1tpXS5k YWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKIAkJdmFy aW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf YWNsZGVmYXVsdCkpOwpAQCAtNTQ1OCw2ICs1NDYyLDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAljb25zdCBjaGFyICp2YXJkZWZl eHByOwogCWNvbnN0IGNoYXIgKnZhcmVveGFjdGlvbjsKIAljb25zdCBjaGFyICp2YXJpc2ltbXV0 YWJsZTsKKwljb25zdCBjaGFyICp2YXJpc3RyYW5zYWN0OwogCU9pZAkJCXZhcmNvbGxhdGlvbjsK IAlib29sCQl2YXJpc25vdG51bGw7CiAKQEAgLTU0NzUsMTIgKzU0ODAsMTMgQEAgZHVtcFZhcmlh YmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAl2YXJjb2xs YXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAJdmFyaXNub3RudWxsID0gdmFyaW5mby0+ dmFyaXNub3RudWxsOwogCXZhcmlzaW1tdXRhYmxlID0gdmFyaW5mby0+dmFyaXNpbW11dGFibGUg PyAiSU1NVVRBQkxFICIgOiAiIjsKKwl2YXJpc3RyYW5zYWN0ID0gdmFyaW5mby0+dmFyaXN0cmFu c2FjdCA/ICJUUkFOU0FDVElPTkFMICIgOiAiIjsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEs ICJEUk9QIFZBUklBQkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFybmFtZSk7CiAKLQlhcHBlbmRQ UUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAlc1ZBUklBQkxFICVzIEFTICVzIiwKLQkJCQkJICB2 YXJpc2ltbXV0YWJsZSwgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiQ1JFQVRFICVzJXNWQVJJQUJMRSAlcyBBUyAlcyIsCisJCQkJCSAgdmFyaXN0 cmFuc2FjdCwgdmFyaXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKIAogCWlm IChPaWRJc1ZhbGlkKHZhcmNvbGxhdGlvbikpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNmZhMzk2ZWNl N2QuLjk0NTNmZmMwMjU1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcxMiw2ICs3MTIsNyBAQCB0eXBlZGVm IHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Yg b3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLwogCWJvb2wJCXZhcmlzbm90bnVsbDsKIAlib29sCQl2 YXJpc2ltbXV0YWJsZTsKKwlib29sCQl2YXJpc3RyYW5zYWN0OwogfSBWYXJpYWJsZUluZm87CiAK IC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IGFlMzEwOTYxYWI0Li45YzZjNmE1ODNj YiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTQwNDksNiArNDA0OSw0MiBAQCBteSAl dGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSB0 ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAg PT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0 ZV9zcWwgICA9PiAnQ1JFQVRFIFRSQU5TQUNUSU9OQUwgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlOCBBUyBpbnRlZ2VyJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFRSQU5TQUNU SU9OQUwgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOCBBUyBpbnRlZ2VyO1xFL3htLAorCQls aWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJ c2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9k dW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwK KwkJfSwKKwl9LAorCisJJ0NSRUFURSBUUkFOU0FDVElPTkFMIElNTVVUQUJMRSBWQVJJQUJMRSB0 ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAg PT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0 ZV9zcWwgICA9PiAnQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBf dGVzdC52YXJpYWJsZTkgQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFU RSBUUkFOU0FDVElPTkFMIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU5IEFT IGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rl c3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlr ZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9t ZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3 JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJ RVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA3ODdmOWM0OGI1MS4uZDIxNTI2ZmQ5 MDIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCkBAIC01MTU5LDcgKzUxNTksNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNo YXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVz dWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBj b25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlz dGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OwogCiAJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwogCkBAIC01MTcyLDYgKzUxNzIs NyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJ CQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgTk9UIHYudmFyaXNub3RudWxsIGFzIFwiJXNcIixcbiIKIAkJCQkJICAi ICBOT1Qgdi52YXJpc2ltbXV0YWJsZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgdi52YXJpc3Ry YW5zYWN0IGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYu dmFyZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJlb3hhY3Rp b25cbiIKIAkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgpAQCAt NTE4NCw2ICs1MTg1LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29s IHZlcmJvc2UpCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAogCQkJCQkgIGdldHRleHRf bm9vcCgiTnVsbGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk11dGFibGUiKSwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkRl ZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIp KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IGU1MDNiMjI3MDdkLi5lMDcxZDYyNjY3NyAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYwpAQCAtMTI4NCw2ICsxMjg0LDggQEAgc3RhdGljIGNvbnN0IHBnc3FsX3RoaW5n X3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFCTEUg Li4uICovCiAJeyJURVhUIFNFQVJDSCIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCXsiVFJBTlNGT1JN IiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fQUxURVJ9LAorCXsiVFJBTlNBQ1RJ T05BTCIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1AgfCBUSElOR19OT19B TFRFUn0sIC8qIGZvciBDUkVBVEUgVFJBTlNBQ1RJT05BTAorCQkJCQkJCQkJCQkJCQkJCQkJCQkq IFZBUklBQkxFIC4uLiAqLwogCXsiVFJJR0dFUiIsICJTRUxFQ1QgdGduYW1lIEZST00gcGdfY2F0 YWxvZy5wZ190cmlnZ2VyIFdIRVJFIHRnbmFtZSBMSUtFICclcycgQU5EIE5PVCB0Z2lzaW50ZXJu YWwifSwKIAl7IlRZUEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVz fSwKIAl7IlVOSVFVRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1AgfCBU SElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVU5JUVVFCkBAIC0zNjAxLDggKzM2MDMsMTEg QEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkK IAl9CiAvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hF TUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8 bmFtZT4gd2l0aCBBUyAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJUUkFOU0FDVElP TnxUUkFOU0FDVElPTkFMIikpCisJCUNPTVBMRVRFX1dJVEgoIklNTVVUQUJMRSIsICJWQVJJQUJM RSIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFu eSkgfHwKIAkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRj aEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiVFJBTlNBQ1RJT058VFJBTlNBQ1RJT05BTCIsICJW QVJJQUJMRSIsIE1hdGNoQW55KSB8fAogCQkJIFRhaWxNYXRjaGVzKCJJTU1VVEFCTEUiLCAiVkFS SUFCTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7CiAJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJp YWJsZS5oCmluZGV4IDQzYzhiYzk2NTgzLi5lN2U2YTVkY2UwZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaApAQCAtNjAsNiArNjAsOSBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFy aWFibGVSZWxhdGlvbklkKQogCS8qIGRvbid0IGFsbG93IGNoYW5nZXMgKi8KIAlib29sCQl2YXJp c2ltbXV0YWJsZSBCS0lfREVGQVVMVChmKTsKIAorCS8qIHN1cHBvcnRzIHRyYW5zYWN0aW9ucyAq LworCWJvb2wJCXZhcmlzdHJhbnNhY3QgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rpb24gb24g dHJhbnNhY3Rpb24gZW5kICovCiAJY2hhcgkJdmFyZW94YWN0aW9uIEJLSV9ERUZBVUxUKG4pOwog CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOWQxNjAyMzlhYTEuLjFkMDEwMmQ0ODIyIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zNDU5LDYgKzM0NTksNyBAQCB0eXBlZGVmIHN0cnVjdCBD cmVhdGVTZXNzaW9uVmFyU3RtdAogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcg aWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KIAlib29sCQlpc19ub3RfbnVsbDsJLyogZGlzYWxsb3cg bnVsbHMgKi8KIAlib29sCQlpc19pbW11dGFibGU7CS8qIGRvbid0IGFsbG93IGNoYW5nZXMgKi8K Kwlib29sCQlpc190cmFuc2FjdDsJLyogc3VwcG9ydHMgdHJhbnNhY3Rpb25zICovCiAJTm9kZQkg ICAqZGVmZXhwcjsJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCWNoYXIJCWVveGFjdGlvbjsJ CS8qIG9uIGNvbW1pdCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmgKaW5kZXggMmU4OGQ3ZDk1MDguLjc1M2NmMzYwZGI0IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBA IC00NTcsNiArNDU3LDcgQEAgUEdfS0VZV09SRCgidGltZXN0YW1wIiwgVElNRVNUQU1QLCBDT0xf TkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidG8iLCBUTywgUkVTRVJWRURf S0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmFpbGluZyIsIFRSQUlMSU5HLCBSRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNhY3Rpb24iLCBUUkFO U0FDVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgidHJh bnNhY3Rpb25hbCIsIFRSQU5TQUNUSU9OQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInRyYW5zZm9ybSIsIFRSQU5TRk9STSwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJlYXQiLCBUUkVBVCwgQ09MX05BTUVfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyaWdnZXIiLCBUUklHR0VSLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA0 NTFmZGRlMzFjZS4uNzVmMTczZDIzMzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApA QCAtNTgzMywyMCArNTgzMywyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENv bGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBE ZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBE ZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAg VHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFi bGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgx IHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVO VCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1h IHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAg ICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAg ICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBw dWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJs ZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBO YW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAg ICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAg ICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5 aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAg ICAgICB8IGYgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29t ZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jl c3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBE Uk9QIFZBUklBQkxFIHZhcjE7CkBAIC02MzE0LDkgKzYzMTQsOSBAQCBMaXN0IG9mIHNjaGVtYXMK ICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVs dCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY0ODksOSArNjQ4OSw5 IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBU eXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwg VHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRp b24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBi dXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgpAQCAtNjYyOCw5ICs2NjI4LDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgw IHJvd3MpCiAKIFxkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFi bGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxh YmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0t LS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hl bWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxl IHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCist LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90 dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMTAzYjBjYTZjZDkuLmI5ZTEyZmVhMDU2IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApA QCAtNDUsMTEgKzQ1LDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBD UkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBUTyBERUZBVUxU OwogXGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKLSAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAg ICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAg ICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVz dCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAg ICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIg fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxl Z2VzICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVn cmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCisgICAgICAgICAgfCAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAog KDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0xNzMxLDMgKzE3MzEs MTAzIEBAIFNFTEVDVCB2YXIxOwogTEVUIHZhcjEgPSAzMDsKIEVSUk9SOiAgc2Vzc2lvbiB2YXJp YWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQogRFJPUCBWQVJJQUJMRSB2 YXIxOworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRSQU5TQUNUSU9O IFZBUklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwOwor ICBTRUxFQ1QgdHY7CisgdHYgIAorLS0tLS0KKyAxMDAKKygxIHJvdykKKworUk9MTEJBQ0s7CitT RUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDAKKygxIHJvdykKKworTEVUIHR2ID0gMTAwOworQkVH SU47CisgIExFVCB0diA9IDEwMDA7CitDT01NSVQ7CitTRUxFQ1QgdHY7CisgIHR2ICAKKy0tLS0t LQorIDEwMDAKKygxIHJvdykKKworQkVHSU47CisgIExFVCB0diA9IDA7CisgIFNFTEVDVCB0djsK KyB0diAKKy0tLS0KKyAgMAorKDEgcm93KQorCitST0xMQkFDSzsKK1NFTEVDVCB0djsKKyAgdHYg IAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCistLSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworQkVH SU47CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9J TlQgeDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworIHR2 IAorLS0tLQorICAyCisoMSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsK KyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisKK1JPTExCQUNLOworU0VM RUNUIHR2OworICB0diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0JFR0lOOworICBMRVQg dHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBM RVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAg MgorKDEgcm93KQorCisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0 djsKKyB0diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitDT01NSVQ7CitTRUxFQ1QgdHY7CisgdHYg CistLS0tCisgIDEKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB0djsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA0MDBhMGUwMGQ2NC4uM2NkNGMwMzgw MTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEx ODIsMyArMTE4Miw2MSBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiAKIERST1AgVkFS SUFCTEUgdmFyMTsKKworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRS QU5TQUNUSU9OIFZBUklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CisKK0JFR0lOOworICBMRVQg dHYgPSAxMDA7CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0xFVCB0 diA9IDEwMDsKK0JFR0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworCitTRUxFQ1QgdHY7 CisKK0JFR0lOOworICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VM RUNUIHR2OworCistLSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworCitCRUdJTjsKKyAgTEVUIHR2ID0g MTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2 ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9M TEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0JF R0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBP SU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyAg TEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworQ09NTUlUOworCitT RUxFQ1QgdHY7CisKK0RST1AgVkFSSUFCTEUgdHY7Ci0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff Content-Type: text/x-patch; charset="US-ASCII"; name="v20240720-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20240720-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyujkhjv17 RnJvbSAwYTYyYjNiZmM4YjMzNTJhNzk3M2Y4MDlmODlkYmJjNzM4MjgxYmIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMTc6MDY6MDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzE5XSB0aGlzIHBhdGNoIGNoYW5nZXMgZXJyb3IgbWVzc2FnZSAiY29sdW1uIGRvZXNuJ3QgZXhp c3QiCiB0byBtZXNzYWdlICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lc24ndCBleGlzdCIKClRoZSBl cnJvciBtZXNzYWdlIHdpbGwgYmUgbW9yZSBjb3JyZWN0LiBUb2RheSwgbWlzc2luZyBQTC9wZ1NR TCB2YXJpYWJsZSBjYW4gYmUgcmVwb3J0ZWQuIFRoZSBjaGFuZ2UgaGFzCmltcGFjdCBvbiBsb3Qg b2YgcmVncmVzcyB0ZXN0cyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxl cywgYW5kIHRoZW4gaXQgaXMgZGlzdHJpYnV0ZWQgYXMgc2VwYXJhdGUgcGF0Y2gKLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgMjQgKysrKysrKysrKyst LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICA4ICsr Ky0tCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oICAgICAgICAgICAgICAgfCAgMiAr Kwogc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0IHwgIDIgKy0K IC4uLi9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQgICB8ICA0ICstLQog Li4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDIgKy0KIHNy Yy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQgICAgICAgICB8IDEyICsrKy0tLS0K IC4uLi9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQgICAgIHwgMzIgKysrKysr KysrLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgICAgICAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCAgICAgICAg ICB8ICA4ICsrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0ICAgICAgICAg ICAgfCAxMiArKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgICAgICAg ICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAg ICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAg ICAgfCAgMiArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAg IHwgIDYgKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0ICAg IHwgIDQgKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCAgICAgICAgICAg fCAgMiArLQogMjEgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNjAwNzY1NTYzMGQuLjQyYWNkMTI0YTAx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyMSw3ICs1MjEsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIFdo ZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90 IGJlIHVzZWQsIHdlIHJhaXNlCiAgKiB0aGUgZmlyc3QgZm9ybSBvZiBlcnJvciBtZXNzYWdlLgog ICovCi1zdGF0aWMgYm9vbAorYm9vbAogZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxl cyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQogewogCWJvb2wJCXJlc3VsdCA9IGZhbHNlOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCBiZGU1YjExMThjNS4uOTNhNTg5OGM2 YzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCkBAIC0yNyw2ICsyNyw3IEBACiAj aW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Vuci5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9l eHByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCkBAIC0zNjU1 LDYgKzM2NTYsMTkgQEAgZXJyb3JNaXNzaW5nUlRFKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VW YXIgKnJlbGF0aW9uKQogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCByZWxhdGlvbi0+ bG9jYXRpb24pKSk7CiB9CiAKKy8qCisgKiBzZXQgbWVzc2FnZSAiY29sdW1uIGRvZXMgbm90IGV4 aXN0IiBvciAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IgorICogaW4gZGVwZW5k ZW5jeSBpZiBleHByZXNzaW9uIGNvbnRleHQgYWxsb3dzIHNlc3Npb24gdmFyaWFibGVzLgorICov CitzdGF0aWMgaW50Citjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgY29uc3QgY2hhciAqY29sbmFtZSkKK3sKKwlpZiAoZXhwcl9raW5kX2FsbG93 c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwkJcmV0dXJuIGVycm1z ZygiY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpOwor CWVsc2UKKwkJcmV0dXJuIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNv bG5hbWUpOworfQorCiAvKgogICogR2VuZXJhdGUgYSBzdWl0YWJsZSBlcnJvciBhYm91dCBhIG1p c3NpbmcgY29sdW1uLgogICoKQEAgLTM2ODksNyArMzcwMyw3IEBAIGVycm9yTWlzc2luZ0NvbHVt bihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NP TFVNTiksCiAJCQkJCSByZWxuYW1lID8KIAkJCQkJIGVycm1zZygiY29sdW1uICVzLiVzIGRvZXMg bm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJCSBjb2x1bW5fb3JfdmFyaWFibGVf ZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJCSBlcnJkZXRhaWwoIlRoZXJl IGFyZSBjb2x1bW5zIG5hbWVkIFwiJXNcIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4iLAogCQkJCQkJ CSAgIGNvbG5hbWUpLAogCQkJCQkgIXJlbG5hbWUgPyBlcnJoaW50KCJUcnkgdXNpbmcgYSB0YWJs ZS1xdWFsaWZpZWQgbmFtZS4iKSA6IDAsCkBAIC0zNjk5LDcgKzM3MTMsNyBAQCBlcnJvck1pc3Np bmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJ TkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBk b2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJybXNnKCJjb2x1bW4g XCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVtbl9vcl92YXJpYWJs ZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJyZGV0YWlsKCJUaGVy ZSBpcyBhIGNvbHVtbiBuYW1lZCBcIiVzXCIgaW4gdGFibGUgXCIlc1wiLCBidXQgaXQgY2Fubm90 IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIsCiAJCQkJCQkgICBj b2xuYW1lLCBzdGF0ZS0+cmV4YWN0MS0+ZXJlZi0+YWxpYXNuYW1lKSwKIAkJCQkgcnRlX3Zpc2li bGVfaWZfbGF0ZXJhbChwc3RhdGUsIHN0YXRlLT5yZXhhY3QxKSA/CkBAIC0zNzE3LDE0ICszNzMx LDE0IEBAIGVycm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCShlcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJCSByZWxuYW1lID8KIAkJCQkJIGVy cm1zZygiY29sdW1uICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgot CQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJ CQkJCSBjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSks CiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKIAkJLyogSGFu ZGxlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBhIHNpbmdsZSBhbHRlcm5hdGl2ZSBzcGVsbGluZyB0byBv ZmZlciAqLwogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVE X0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBkb2Vz IG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJybXNnKCJjb2x1bW4gXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVtbl9vcl92YXJpYWJsZV9k b2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJyaGludCgiUGVyaGFwcyB5 b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gXCIlcy4lc1wiLiIsCiAJCQkJCQkgc3Rh dGUtPnJmaXJzdC0+ZXJlZi0+YWxpYXNuYW1lLAogCQkJCQkJIHN0clZhbChsaXN0X250aChzdGF0 ZS0+cmZpcnN0LT5lcmVmLT5jb2xuYW1lcywKQEAgLTM3MzgsNyArMzc1Miw3IEBAIGVycm9yTWlz c2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1uICVzLiVz IGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2coImNvbHVt biBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29yX3Zhcmlh YmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJoaW50KCJQZXJo YXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVzXCIgb3IgdGhlIGNv bHVtbiBcIiVzLiVzXCIuIiwKIAkJCQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVmLT5hbGlhc25hbWUs CiAJCQkJCQkgc3RyVmFsKGxpc3RfbnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYtPmNvbG5hbWVzLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IGVlNmZjZDA1MDNhLi5lN2RjYzE2YjVkYyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtNzc2LDcgKzc3Niw5IEBAIHRyYW5zZm9y bUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAoIXR5cHJl bGlkKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBF X01JU01BVENIKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wi IG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21wb3NpdGUg dHlwZSIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMo cHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQg XCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBp cyBub3QgYSBjb21wb3NpdGUgdHlwZSIgOgorCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8gZmll bGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBj b21wb3NpdGUgdHlwZSIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFtZSwKIAkJCQkJCQkJ Zm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgbG9jYXRpb24pKSk7CkBAIC03ODUsNyArNzg3LDkgQEAgdHJhbnNmb3JtQXNzaWdu bWVudEluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmIChhdHRudW0gPT0gSW52 YWxpZEF0dHJOdW1iZXIpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX0NPTFVNTiksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWduIHRvIGZp ZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1 bW4gaW4gZGF0YSB0eXBlICVzIiwKKwkJCQkJCSBlcnJtc2coZXhwcl9raW5kX2FsbG93c19zZXNz aW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSA/CisJCQkJCQkJCSAiY2Fubm90IGFz c2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBiZWNhdXNl IHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIgOgorCQkJCQkJCQkgImNh bm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSB0aGVy ZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiLAogCQkJCQkJCQlzdHJWYWwobiks IHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkpLAogCQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmgKaW5kZXggMGQ2NGIzMDBmOGEuLmU1YWViZjk5YjRhIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmgKQEAgLTIzLDQgKzIzLDYgQEAgZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW4KIAogZXh0 ZXJuIGNvbnN0IGNoYXIgKlBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQp OwogCitleHRlcm4gYm9vbCBleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKFBhcnNl RXhwcktpbmQgcF9leHByX2tpbmQpOworCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfRVhQUl9IICov CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5v dXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKaW5kZXgg YWQ2MGUwZThiZTMuLmMxYWI5ZmQ3ZWQ5IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVj dGVkL3BscGdzcWxfYXJyYXkub3V0CkBAIC00MSw3ICs0MSw3IEBAIE5PVElDRTogIGEgPSB7Iigs MTEpIn0sIGFbMV0uaSA9IDExCiAtLSBwZXJoYXBzIHRoaXMgb3VnaHQgdG8gd29yaywgYnV0IGZv ciBub3cgaXQgZG9lc24ndDoKIGRvICQkIGRlY2xhcmUgYSBjb21wbGV4W107CiBiZWdpbiBhWzE6 Ml0uaSA6PSBhcnJheVsxMSwxMl07IHJhaXNlIG5vdGljZSAnYSA9ICUnLCBhOyBlbmQkJDsKLUVS Uk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAiaSIgb2YgY29sdW1uICJhIiBiZWNhdXNlIGl0 cyB0eXBlIGNvbXBsZXhbXSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorRVJST1I6ICBjYW5ub3Qg YXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGJlY2F1c2UgaXRz IHR5cGUgY29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCiBMSU5FIDE6IGFbMToyXS5p IDo9IGFycmF5WzExLDEyXQogICAgICAgICBeCiBRVUVSWTogIGFbMToyXS5pIDo9IGFycmF5WzEx LDEyXQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVj b3JkLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQK aW5kZXggYTliNWI3NzhlZmMuLjA3YWJjMmU4NGQ0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKQEAgLTEzNSw3ICsxMzUsNyBAQCBFUlJPUjog IHJlY29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1l bnQgImMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgYXNzaWdubWVudAogZG8gJCQgZGVjbGFyZSBjIG5lc3RlZF9pbnQ4czsgYmVnaW4gYy5j Mi54ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBj b2x1bW4gImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3 b19pbnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3Ig dmFyaWFibGUgImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBl IHR3b19pbnQ4cwogTElORSAxOiBjLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYy5jMi54 ID0gMQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVSUk9SOiAgcmVjb3JkICJjIiBoYXMgbm8gZmllbGQg IngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYi5jLngucTEgPSAxIgogUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQk IDw8Yj4+IGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7IGJlZ2luIGIuYy5jMi54ID0gMTsgZW5kICQk OwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gImIiIGJlY2F1 c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cworRVJST1I6 ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImIiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cwogTElO RSAxOiBiLmMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBiLmMuYzIueCA9IDEKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggNzg5YzMxMjNiMGMuLmYwMDZkYjRmYWE4IDEwMDY0NAotLS0gYS9zcmMv cGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysg Yi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91 dApAQCAtMjMyLDcgKzIzMiw3IEBAIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyBy ZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgdG8gZmFpbCwgYnV0IG5vdCBjcmFzaAog U0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKLUVSUk9SOiAgY29sdW1uICJwbHBnc3FsX3N2X3ZhcjEi IGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAicGxwZ3NxbF9zdl92 YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKICAgICAgICAgXgog UVVFUlk6ICBwbHBnc3FsX3N2X3ZhcjEKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wvZXhwZWN0ZWQv cGx0Y2xfcXVlcmllcy5vdXQgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3F1ZXJpZXMub3V0 CmluZGV4IDM1Y2M2ZTYyYWFkLi40OTdjZDM4MTg5YiAxMDA2NDQKLS0tIGEvc3JjL3BsL3RjbC9l eHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dAorKysgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNs X3F1ZXJpZXMub3V0CkBAIC00NTAsMTIgKzQ1MCwxMiBAQCBDT05URVhUOiAgd2hpbGUgZXhlY3V0 aW5nCiAiX19QTFRjbF9wcm9jX3RjbF9ldmFsX3RleHQgc3BpX3ByZXBhcmVcIGFcIFwiYlwgXHtc IiIKIGluIFBML1RjbCBmdW5jdGlvbiB0Y2xfZXZhbCh0ZXh0KQogc2VsZWN0IHRjbF9lcnJvcl9o YW5kbGluZ190ZXN0KCR0Y2wkc3BpX3ByZXBhcmUgInNlbGVjdCBtb28iIFtdJHRjbCQpOwotICAg ICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gU1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAgICAgICAgICAg KwotIGNvbmRpdGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICsKLSBjdXJzb3JfcG9zaXRp b246IDggICAgICAgICAgICAgICAgICArCi0gbWVzc2FnZTogY29sdW1uICJtb28iIGRvZXMgbm90 IGV4aXN0KworICAgICAgICAgICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIGNvbmRp dGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICAgICAgICAgICAgICsKKyBjdXJzb3JfcG9z aXRpb246IDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgbWVzc2FnZTogY29sdW1u IG9yIHZhcmlhYmxlICJtb28iIGRvZXMgbm90IGV4aXN0KwogIHN0YXRlbWVudDogc2VsZWN0IG1v bwogKDEgcm93KQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKaW5kZXggMTlhMmU1YThmNjQuLjFjNDE0OWY2ZWYxIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3Jj L3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0xMCw3ICsx MCw3IEBAIHRlc3QKIAogc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwogc3RlcCB2YWw6 IFNFTEVDVCBteXZhcjsKLUVSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJteXZhciIgZG9lcyBub3QgZXhpc3QKIAogc3RhcnRp bmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCiBzdGVwIGxldDogTEVUIG15 dmFyID0gJ3Rlc3QnOwpAQCAtMjMsNyArMjMsNyBAQCB0ZXN0CiBzdGVwIHMxOiBCRUdJTjsKIHN0 ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1F UlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2 YXJpYWJsZSAibXl2YXIiIGRvZXMgbm90IGV4aXN0CiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKIHN0 YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CmluZGV4IDY3MzM2MWU4NDA0Li40 NWU2ODQ4MWViMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90 YWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQK QEAgLTEzMDksMTkgKzEzMDksMTkgQEAgc2VsZWN0ICogZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAK IHNlbGVjdCAqIGZyb20gYXRhY2MxIG9yZGVyIGJ5IGE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlz dAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSBhOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBi eSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4u Li5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9y IHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAog TElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgog c2VsZWN0ICogZnJvbSBhdGFjYzEgZ3JvdXAgYnkgYTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5IGE7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5 ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIjsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5ICIuLi4uLi4uLnBnLmRyb3BwZWQu MS4uLi4uLi4uIi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBz ZWxlY3QgYXRhY2MxLiogZnJvbSBhdGFjYzE7CkBAIC0xMzMxLDcgKzEzMzEsNyBAQCBzZWxlY3Qg YXRhY2MxLiogZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAKIHNlbGVjdCBhIGZyb20gYXRhY2MxOwot RVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJp YWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEgZnJvbSBhdGFjYzE7CiAg ICAgICAgICAgICAgICBeCiBzZWxlY3QgYXRhY2MxLmEgZnJvbSBhdGFjYzE7CkBAIC0xMzQ1LDE1 ICsxMzQ1LDE1IEBAIHNlbGVjdCBiLGMsZCBmcm9tIGF0YWNjMTsKICgxIHJvdykKIAogc2VsZWN0 IGEsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgYSxiLGMsZCBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZy b20gYXRhY2MxIHdoZXJlIGEgPSAxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0ICogZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZnJv bSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIg ZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2Vs ZWN0IGF0YWNjMS4iLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZnJvbSBhdGFjYzE7CkBA IC0xMzYxLDExICsxMzYxLDExIEBAIEVSUk9SOiAgY29sdW1uIGF0YWNjMS4uLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhdGFjYzEuIi4u Li4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAg Xgogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIixiLGMsZCBmcm9tIGF0YWNj MTsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4x Li4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9w cGVkLjEuLi4uLi4uLiIsYixjLGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxl Y3QgKiBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAx OwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgd2hl cmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIC0tIFVQREFURXMKQEAgLTEzNzQsNyArMTM3NCw3IEBAIEVS Uk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiYXRhY2MxIiBkb2VzIG5vdCBleGlzdAogTElO RSAxOiB1cGRhdGUgYXRhY2MxIHNldCBhID0gMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgYSA9IDM7Ci1FUlJPUjogIGNvbHVtbiAi YSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5v dCBleGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSBhID0gMzsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogdXBkYXRlIGF0YWNjMSBzZXQg Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKQEAgLTEzODIsNyArMTM4Miw3IEBA IEVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBvZiByZWxhdGlv biAiYXRhY2MxIiBkb2VzIG5vdCBleGlzCiBMSU5FIDE6IHVwZGF0ZSBhdGFjYzEgc2V0ICIuLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4u Li4uLi4uIiA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2Mx IHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIuLi4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gSU5TRVJUcwpAQCAtMTQzMCwx MSArMTQzMCwxMSBAQCBMSU5FIDE6IGluc2VydCBpbnRvIGF0YWNjMSAoIi4uLi4uLi4ucGcuZHJv cHBlZC4xLi4uLi4uLi4iLGIsYyxkKSB2YS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIC0tIERFTEVURXMKIGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMzsKLUVSUk9SOiAg Y29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEi IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMzsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIGRlbGV0ZSBmcm9tIGF0YWNjMSB3 aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwotRVJST1I6ICBjb2x1bW4g Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogZGVsZXRlIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4uLnBnLmRyb3Bw ZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBk ZWxldGUgZnJvbSBhdGFjYzE7CkBAIC0xNzIwLDcgKzE3MjAsNyBAQCBzZWxlY3QgZjEgZnJvbSBj MTsKIAogYWx0ZXIgdGFibGUgYzEgZHJvcCBjb2x1bW4gZjE7CiBzZWxlY3QgZjEgZnJvbSBjMTsK LUVSUk9SOiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxIGZyb20gYzE7CiAg ICAgICAgICAgICAgICBeCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRo ZSBjb2x1bW4gImMxLmYyIi4KQEAgLTE3MzQsNyArMTczNCw3IEBAIEVSUk9SOiAgY2Fubm90IGRy b3AgaW5oZXJpdGVkIGNvbHVtbiAiZjEiCiBhbHRlciB0YWJsZSBwMSBkcm9wIGNvbHVtbiBmMTsK IC0tIGMxLmYxIGlzIGRyb3BwZWQgbm93LCBzaW5jZSB0aGVyZSBpcyBubyBsb2NhbCBkZWZpbml0 aW9uIGZvciBpdAogc2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAgICAgXgogSElOVDogIFBl cmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJjMS5mMiIuCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4IDkzMTU0MmYyNjg5Li5iNDg5NzBlNTZhYyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKQEAgLTE0NCw3ICsxNDQsNyBAQCBMSU5FIDE6 IENPUFkgeCBUTyBzdGRvdXQgV0hFUkUgYSA9IDE7CiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBh ID0gNTAwMDQ7CiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBhID4gNjAwMDM7CiBDT1BZIHggZnJv bSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7Ci1FUlJPUjogIGNvbHVtbiAiZiIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmIiBkb2VzIG5vdCBleGlzdAogTElORSAx OiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSBtYXgoeC5iKTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAppbmRleCA4YzUyNzQ3NGRhZi4uZTUzYWU0NTFk ZmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKQEAgLTI3LDcgKzI3LDcgQEAg TElORSAxOiBzZWxlY3QgKiBmcm9tIG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAgIF4K IC0tIGJhZCBuYW1lIGluIHRhcmdldCBsaXN0CiBzZWxlY3Qgbm9uZXN1Y2ggZnJvbSBwZ19kYXRh YmFzZTsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0IG5vbmVzdWNoIGZyb20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICBeCiAtLSBlbXB0 eSBkaXN0aW5jdCBsaXN0IGlzbid0IE9LCkBAIC0zNywxNyArMzcsMTcgQEAgTElORSAxOiBzZWxl Y3QgZGlzdGluY3QgZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAgIF4K IC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBvbiBsaHMgb2Ygb3BlcmF0b3IKIHNlbGVjdCAqIGZyb20g cGdfZGF0YWJhc2Ugd2hlcmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYW1lOwotRVJST1I6 ICBjb2x1bW4gIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIHBn X2RhdGFiYXNlIHdoZXJlIG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmEuLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUg b24gcmhzIG9mIG9wZXJhdG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIHBnX2Rh dGFiYXNlLmRhdG5hbWUgPSBub25lc3VjaDsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBu b3QgZXhpc3QKIExJTkUgMTogLi4uZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBwZ19kYXRh YmFzZS5kYXRuYW1lID0gbm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBp biBzZWxlY3QgZGlzdGluY3Qgb24KIHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20g cGdfZGF0YWJhc2U7Ci1FUlJPUjogIGNvbHVtbiAiZm9vYmFyIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvb2JhciIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0IGRpc3RpbmN0IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiAtLSBncm91cGluZyB3aXRoIEZPUiBVUERBVEUKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2pvaW4ub3V0CmluZGV4IDUzZjcwZDcyZWQ2Li42NjFiYjFhMzBkZSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CkBAIC02MjMwLDEzICs2MjMwLDEzIEBAIExJTkUg MTogc2VsZWN0IHQyLnV1bmlxdWUxIGZyb20KIEhJTlQ6ICBQZXJoYXBzIHlvdSBtZWFudCB0byBy ZWZlcmVuY2UgdGhlIGNvbHVtbiAidDIudW5pcXVlMSIuCiBzZWxlY3QgdXVuaXF1ZTEgZnJvbQog ICB0ZW5rMSB0MSBqb2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0gZXJyb3IsIHN1 Z2dlc3QgYm90aCBhdCBvbmNlCi1FUlJPUjogIGNvbHVtbiAidXVuaXF1ZTEiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidXVuaXF1ZTEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCB1dW5pcXVlMSBmcm9tCiAgICAgICAgICAgICAgICBeCiBISU5UOiAg UGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gInQxLnVuaXF1ZTEiIG9y IHRoZSBjb2x1bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IGN0aWQgZnJvbQogICB0ZW5rMSB0MSBq b2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0gZXJyb3IsIG5lZWQgcXVhbGlmaWNh dGlvbgotRVJST1I6ICBjb2x1bW4gImN0aWQiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVt biBvciB2YXJpYWJsZSAiY3RpZCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGN0aWQg ZnJvbQogICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVtbnMgbmFtZWQg ImN0aWQiLCBidXQgdGhleSBhcmUgaW4gdGFibGVzIHRoYXQgY2Fubm90IGJlIHJlZmVyZW5jZWQg ZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzMzMyw3ICs3MzMzLDcgQEAgbGF0ZXJh bCAoc2VsZWN0ICogZnJvbSBpbnQ4X3RibCB0MSwKIAogLS0gdGVzdCBzb21lIGVycm9yIGNhc2Vz IHdoZXJlIExBVEVSQUwgc2hvdWxkIGhhdmUgYmVlbiB1c2VkIGJ1dCB3YXNuJ3QKIHNlbGVjdCBm MSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKLUVSUk9SOiAgY29sdW1u ICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmMSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxLGcgZnJvbSBpbnQ0X3RibCBhLCAoc2VsZWN0 IGYxIGFzIGcpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgImYxIiBpbiB0YWJsZSAiYSIs IGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnku CkBAIC03MzQ1LDcgKzczNDUsNyBAQCBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90Ymwg YSwgKHNlbGVjdCBhLmYxIGFzIGcpIHNzOwogREVUQUlMOiAgVGhlcmUgaXMgYW4gZW50cnkgZm9y IHRhYmxlICJhIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9m IHRoZSBxdWVyeS4KIEhJTlQ6ICBUbyByZWZlcmVuY2UgdGhhdCB0YWJsZSwgeW91IG11c3QgbWFy ayB0aGlzIHN1YnF1ZXJ5IHdpdGggTEFURVJBTC4KIHNlbGVjdCBmMSxnIGZyb20gaW50NF90Ymwg YSBjcm9zcyBqb2luIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4 aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSBjcm9zcyBqb2luIChzZWxl Y3QgZjEgYXMgZykgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgImYxIiBp biB0YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBv ZiB0aGUgcXVlcnkuCkBAIC03MzgyLDcgKzczODIsNyBAQCBMSU5FIDE6IHNlbGVjdCAxIGZyb20g dGVuazEgYSwgbGF0ZXJhbCAoc2VsZWN0IG1heChhLnVuaXF1ZTEpIGZyb20gaS4uLgogY3JlYXRl IHRlbXAgdGFibGUgeHgxIGFzIHNlbGVjdCBmMSBhcyB4MSwgLWYxIGFzIHgyIGZyb20gaW50NF90 Ymw7CiAtLSBlcnJvciwgY2FuJ3QgZG8gdGhpczoKIHVwZGF0ZSB4eDEgc2V0IHgyID0gZjEgZnJv bSAoc2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKLUVSUk9SOiAgY29s dW1uICJ4MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4MSIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIHNldCB4MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZy b20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUg aXMgYSBjb2x1bW4gbmFtZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0IGNhbm5vdCBiZSBy ZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTc0MDIsNyArNzQwMiw3 IEBAIHVwZGF0ZSB4eDEgc2V0IHgyID0gZjEgZnJvbSB4eDEsIGxhdGVyYWwgKHNlbGVjdCAqIGZy b20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkKIEVSUk9SOiAgdGFibGUgbmFtZSAieHgxIiBzcGVj aWZpZWQgbW9yZSB0aGFuIG9uY2UKIC0tIGFsc28gZXJyb3JzOgogZGVsZXRlIGZyb20geHgxIHVz aW5nIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwotRVJST1I6ICBj b2x1bW4gIngxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIngx IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAuLi50ZSBmcm9tIHh4MSB1c2luZyAoc2VsZWN0ICog ZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVy ZSBpcyBhIGNvbHVtbiBuYW1lZCAieDEiIGluIHRhYmxlICJ4eDEiLCBidXQgaXQgY2Fubm90IGJl IHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9uYW1lc3BhY2Uub3V0CmluZGV4IGRiYmRhNzJkMzk1Li5kOTg3OTNmOTJhNyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dApAQCAtMjMsNyArMjMsNyBAQCBC RUdJTjsKIFNFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHRlc3RfbnNfc2NoZW1hXzE7CiBDUkVB VEUgU0NIRU1BIHRlc3RfbnNfc2NoZW1hXzIKICAgICAgICBDUkVBVEUgVklFVyBhYmNfdmlldyBB UyBTRUxFQ1QgYyBGUk9NIGFiYzsKLUVSUk9SOiAgY29sdW1uICJjIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImMiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6ICAg ICAgICBDUkVBVEUgVklFVyBhYmNfdmlldyBBUyBTRUxFQ1QgYyBGUk9NIGFiYzsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBDT01NSVQ7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dAppbmRleCA3MTdhMjM3ZGY5OC4uMzg1YzRi MWI0Y2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dApAQCAtMzE0 LDcgKzMxNCw3IEBAIE5PVElDRTogIGkgPSAxMDAyCiBOT1RJQ0U6ICBpID0gMTAwMwogLS0gZXJy b3IgY2FzZXMKIFNFTEVDVCBfMTAwOwotRVJST1I6ICBjb2x1bW4gIl8xMDAiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiXzEwMCIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogU0VMRUNUIF8xMDA7CiAgICAgICAgICAgICAgICBeCiBTRUxFQ1QgMTAwXzsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CmluZGV4IDA3NGFmOGYzM2E4Li4wYTdhOWZlYjZl MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CkBAIC0yNTk4LDcgKzI1OTgs NyBAQCBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAtLSBzaG91bGQgZmFpbDogU1FMU1RBVEUg YW5kIFNRTEVSUk0gYXJlIG9ubHkgaW4gZGVmaW5lZCBFWENFUFRJT04KIC0tIGJsb2Nrcwogc2Vs ZWN0IGV4Y3B0X3Rlc3QxKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fsc3RhdGUiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3RhdGUiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAgc3Fsc3RhdGUKQEAgLTI2MTMs NyArMjYxMyw3IEBAIGJlZ2luCiBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAtLSBzaG91bGQg ZmFpbAogc2VsZWN0IGV4Y3B0X3Rlc3QyKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fsc3RhdGUiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3RhdGUiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAgc3Fsc3RhdGUK QEAgLTQ2NzUsNyArNDY3NSw3IEBAIEJFR0lOCiAgICAgICAgIFJBSVNFIE5PVElDRSAnJSwgJScs IHIucm9vbW5vLCByLmNvbW1lbnQ7CiAgICAgRU5EIExPT1A7CiBFTkQkJDsKLUVSUk9SOiAgY29s dW1uICJmb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZm9v IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgcnRyaW0ocm9vbW5vKSBBUyByb29tbm8s IGZvbyBGUk9NIFJvb20gT1JERVIgQlkgcm9vbW4uLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiBRVUVSWTogIFNFTEVDVCBydHJpbShyb29tbm8pIEFTIHJvb21u bywgZm9vIEZST00gUm9vbSBPUkRFUiBCWSByb29tbm8KQEAgLTQ3MTcsNyArNDcxNyw3IEBAIGJl Z2luCiAgIHJhaXNlIG5vdGljZSAneCA9ICUnLCB4OwogZW5kOwogJCQ7Ci1FUlJPUjogIGNvbHVt biAieCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4IiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAxCkBAIC00 NzI5LDcgKzQ3MjksNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3ggPSAlLCB5ID0gJScsIHgs IHk7CiBlbmQ7CiAkJDsKLUVSUk9SOiAgY29sdW1uICJ4IiBkb2VzIG5vdCBleGlzdAorRVJST1I6 ICBjb2x1bW4gb3IgdmFyaWFibGUgIngiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHggKyAxCiAg ICAgICAgIF4KIFFVRVJZOiAgeCArIDEKQEAgLTU3NjksNyArNTc2OSw3IEBAIEFMVEVSIFRBQkxF IGFsdGVyX3RhYmxlX3VuZGVyX3RyYW5zaXRpb25fdGFibGVzCiAgIERST1AgY29sdW1uIG5hbWU7 CiBVUERBVEUgYWx0ZXJfdGFibGVfdW5kZXJfdHJhbnNpdGlvbl90YWJsZXMKICAgU0VUIGlkID0g aWQ7Ci1FUlJPUjogIGNvbHVtbiAibmFtZSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1u IG9yIHZhcmlhYmxlICJuYW1lIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAoU0VMRUNUIHN0cmlu Z19hZ2coaWQgfHwgJz0nIHx8IG5hbWUsICcsJykgRlJPTSBkKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIFFVRVJZOiAgKFNFTEVDVCBzdHJpbmdfYWdnKGlkIHx8 ICc9JyB8fCBuYW1lLCAnLCcpIEZST00gZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0Cmlu ZGV4IGY3MDgyNjM5NjA1Li40NTFmZGRlMzFjZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0CkBAIC0xMjAsNyArMTIwLDcgQEAgU0VMRUNUICQxLCAkMiBcYmluZCAnZm9vJyAnYmFyJyBc ZwogLS0gZXJyb3JzCiAtLSBwYXJzZSBlcnJvcgogU0VMRUNUIGZvbyBcYmluZCBcZwotRVJST1I6 ICBjb2x1bW4gImZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJmb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBmb28gCiAgICAgICAgICAgICAg ICBeCiAtLSB0Y29wIGVycm9yCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDRj Nzg5Mjc5ZTVlLi5lMTcyZmExNDA0YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK QEAgLTExOTEsNyArMTE5MSw3IEBAIGRyb3AgcnVsZSBydWxlc19mb29ydWxlIG9uIHJ1bGVzX2Zv bzsKIC0tIHRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSBmMSBpcyBub3QgZXhwb3NlZCBmb3IgdW5x dWFsaWZpZWQgcmVmZXJlbmNlOgogY3JlYXRlIHJ1bGUgcnVsZXNfZm9vcnVsZSBhcyBvbiBpbnNl cnQgdG8gcnVsZXNfZm9vIHdoZXJlIGYxIDwgMTAwCiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1 bGVzX2ZvbzIgdmFsdWVzIChmMSk7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6 IGRvIGluc3RlYWQgaW5zZXJ0IGludG8gcnVsZXNfZm9vMiB2YWx1ZXMgKGYxKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhl cmUgYXJlIGNvbHVtbnMgbmFtZWQgImYxIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggYzIwOWI3 ZTM2ZmYuLjEwM2IwY2E2Y2Q5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dApAQCAtMjk2LDcgKzI5Niw3IEBAIEVSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSAidmFyMSIgZG9lc24ndCBleGlzdAogTElORSAxOiBMRVQgdmFyMSA9IHBpKCk7CiAg ICAgICAgICAgICBeCiBTRUxFQ1QgdmFyMTsKLUVSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInZhcjEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IFNFTEVDVCB2YXIxOwogICAgICAgICAgICAgICAgXgogLS0gc2hvdWxkIGJlIG9r CkBAIC00ODIsNyArNDgyLDcgQEAgU0VMRUNUIHYxOwogCiAtLSBzaG91bGQgZmFpbCwgYXR0cmli dXRlIGRvZXNuJ3QgZXhpc3QKIExFVCB2MS54ID0gMTA7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24g dG8gZmllbGQgIngiIG9mIGNvbHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1 bW4gaW4gZGF0YSB0eXBlIHQxCitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9m IGNvbHVtbiBvciB2YXJpYWJsZSAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4g aW4gZGF0YSB0eXBlIHQxCiBMSU5FIDE6IExFVCB2MS54ID0gMTA7CiAgICAgICAgICAgICBeCiAt LSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CkBAIC0xMDI5LDcg KzEwMjksNyBAQCBCRUdJTjsKIERST1AgVkFSSUFCTEUgdmFyMTsKIC0tIHNob3VsZCBmYWlsCiBT RUxFQ1QgdmFyMTsKLUVSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6 ICBjb2x1bW4gb3IgdmFyaWFibGUgInZhcjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVD VCB2YXIxOwogICAgICAgICAgICAgICAgXgogUk9MTEJBQ0s7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKaW5kZXggN2Y1NzU3ZTg5YzQuLmIwNWIxNmQ5NGJmIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CkBAIC0yNTYsNyAr MjU2LDcgQEAgU0VMRUNUICogRlJPTSB0cmFuc19iYXJiYXo7CS0tIHNob3VsZCBoYXZlIDEKIEJF R0lOOwogCVNBVkVQT0lOVCBvbmU7CiAJCVNFTEVDVCB0cmFuc19mb287Ci1FUlJPUjogIGNvbHVt biAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUg InRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHRyYW5zX2ZvbzsKICAg ICAgICAgICAgICAgIF4KIAlST0xMQkFDSyBUTyBTQVZFUE9JTlQgb25lOwpAQCAtMzA1LDcgKzMw NSw3IEBAIEJFR0lOOwogCVNBVkVQT0lOVCBvbmU7CiAJCUlOU0VSVCBJTlRPIHNhdmVwb2ludHMg VkFMVUVTICg1KTsKIAkJU0VMRUNUIHRyYW5zX2ZvbzsKLUVSUk9SOiAgY29sdW1uICJ0cmFuc19m b28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidHJhbnNfZm9v IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdHJhbnNfZm9vOwogICAgICAgICAgICAg ICAgXgogQ09NTUlUOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlv bi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dAppbmRleCAwZmQwZTFj MzhiMy4uZjg2OTg3ZGJkYzkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dW5pb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CkBAIC05 MjEsNyArOTIxLDcgQEAgT1JERVIgQlkgcTIscTE7CiAKIC0tIFRoaXMgc2hvdWxkIGZhaWwsIGJl Y2F1c2UgcTIgaXNuJ3QgYSBuYW1lIG9mIGFuIEVYQ0VQVCBvdXRwdXQgY29sdW1uCiBTRUxFQ1Qg cTEgRlJPTSBpbnQ4X3RibCBFWENFUFQgU0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JERVIgQlkg cTIgTElNSVQgMTsKLUVSUk9SOiAgY29sdW1uICJxMiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJxMiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIGludDhf dGJsIEVYQ0VQVCBTRUxFQ1QgcTIgRlJPTSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgInEyIiBpbiB0YWJsZSAi KlNFTEVDVCogMiIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBv ZiB0aGUgcXVlcnkuCi0tIAoyLjQ1LjIKCg== --000000000000c41737061db31bff--