From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15230 invoked by alias); 21 Jul 2016 19:05:25 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 15208 invoked by uid 89); 21 Jul 2016 19:05:25 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_STOCKGEN,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 spammy=forall, morinmikaelorangefr, morin-mikael@orange.fr, Image X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-vk0-f45.google.com Received: from mail-vk0-f45.google.com (HELO mail-vk0-f45.google.com) (209.85.213.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 21 Jul 2016 19:05:15 +0000 Received: by mail-vk0-f45.google.com with SMTP id x130so127096895vkc.0; Thu, 21 Jul 2016 12:05:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=PBtF5pd94uH1cfnTnkw40WNN+dGTa8I8YFU1qqs1RpI=; b=B62ndhBeYauVNcr9A1tsz5R6vmQqJVlN9QzkSUDIiIt/Rwq2gb+SExzK+NojS82JWG 1q4GXs41UrjA2641V412qyDoAUYTbPdaQZQ+Wm9W4r3Lg6KhecmYD5hBFrf3Cgbe3teb YVTvxvVOpJwHBpAVkEUrZNPyLeILhL0xsIbiGl74nzrEhDbez+C4sbdl7oIhOutCnp+p RWkvx8bOET6ZUy45C3eLKT849TOCXtSpgLVV6H/5NqgzSaADAODfXMtjzyCPGe7e5g/6 rmMtHfZbwwLhUOVpqzyrhyqTm2mjZleifjAXKlLdJy+E08b36fSoVsVvWEnJpcX+YZSH BBHw== X-Gm-Message-State: ALyK8tLvEz7C05ByMrSVUyVkMKVdcxVR46ljjE2/ey9wdt7sGm5AjMXMKh8A5XWEs58uYWnlLFUYZAbwKuad5Q== X-Received: by 10.159.53.2 with SMTP id o2mr23163238uao.18.1469127912807; Thu, 21 Jul 2016 12:05:12 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.54.138 with HTTP; Thu, 21 Jul 2016 12:05:11 -0700 (PDT) In-Reply-To: References: <20160720113913.24e1f404@vepi2> From: Alessandro Fanfarillo Date: Thu, 21 Jul 2016 19:05:00 -0000 Message-ID: Subject: Re: [Fortran, Patch] First patch for coarray FAILED IMAGES (TS 18508) To: Mikael Morin Cc: Andre Vehreschild , gfortran , gcc-patches , Paul Richard Thomas , Tobias Burnus Content-Type: multipart/mixed; boundary=94eb2c04c6fe5f798e053829ff68 X-IsSubscribed: yes X-SW-Source: 2016-07/txt/msg01416.txt.bz2 --94eb2c04c6fe5f798e053829ff68 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 3236 Dear Mikael and all, in attachment the new patch, built and regtested on x86_64-pc-linux-gnu. Cheers, Alessandro 2016-07-20 13:17 GMT-06:00 Mikael Morin : > Le 20/07/2016 =C3=A0 11:39, Andre Vehreschild a =C3=A9crit : >> >> Hi Mikael, >> >> >>>> + if(st =3D=3D ST_FAIL_IMAGE) >>>> + new_st.op =3D EXEC_FAIL_IMAGE; >>>> + else >>>> + gcc_unreachable(); >>> >>> You can use >>> gcc_assert (st =3D=3D ST_FAIL_IMAGE); >>> foo...; >>> instead of >>> if (st =3D=3D ST_FAIL_IMAGE) >>> foo...; >>> else >>> gcc_unreachable (); >> >> >> Be careful, this is not 100% identical in the general case. For older >> gcc version (gcc < 4008) gcc_assert() is mapped to nothing, esp. not to >> an abort(), so the behavior can change. But in this case everything is >> fine, because the patch is most likely not backported. >> > Didn't know about this. The difference seems to be very subtle. > I don't mind much anyway. The original version can stay if preferred, this > was just a suggestion. > > By the way, if the function is inlined in its single caller, the assert or > unreachable statement can be removed, which avoids choosing between them. > That's another suggestion. > > >>>> + >>>> + return MATCH_YES; >>>> + >>>> + syntax: >>>> + gfc_syntax_error (st); >>>> + >>>> + return MATCH_ERROR; >>>> +} >>>> + >>>> +match >>>> +gfc_match_fail_image (void) >>>> +{ >>>> + /* if (!gfc_notify_std (GFC_STD_F2008_TS, "FAIL IMAGE statement >>>> at %C")) */ >>>> + /* return MATCH_ERROR; */ >>>> + >>> >>> Can this be uncommented? >>> >>>> + return fail_image_statement (ST_FAIL_IMAGE); >>>> +} >>>> >>>> /* Match LOCK/UNLOCK statement. Syntax: >>>> LOCK ( lock-variable [ , lock-stat-list ] ) >>>> diff --git a/gcc/fortran/trans-intrinsic.c >>>> b/gcc/fortran/trans-intrinsic.c index 1aaf4e2..b2f5596 100644 >>>> --- a/gcc/fortran/trans-intrinsic.c >>>> +++ b/gcc/fortran/trans-intrinsic.c >>>> @@ -1647,6 +1647,24 @@ trans_this_image (gfc_se * se, gfc_expr >>>> *expr) m, lbound)); >>>> } >>>> >>>> +static void >>>> +gfc_conv_intrinsic_image_status (gfc_se *se, gfc_expr *expr) >>>> +{ >>>> + unsigned int num_args; >>>> + tree *args,tmp; >>>> + >>>> + num_args =3D gfc_intrinsic_argument_list_length (expr); >>>> + args =3D XALLOCAVEC (tree, num_args); >>>> + >>>> + gfc_conv_intrinsic_function_args (se, expr, args, num_args); >>>> + >>>> + if (flag_coarray =3D=3D GFC_FCOARRAY_LIB) >>>> + { >>> >>> Can everything be put under the if? >>> Does it work with -fcoarray=3Dsingle? >> >> >> IMO coarray=3Dsingle should not generate code here, therefore putting >> everything under the if should to fine. >> > My point was more avoiding generating code for the arguments if they are = not > used in the end. > Regarding the -fcoarray=3Dsingle case, the function returns a result, whi= ch > can be used in an expression, so I don't think it will work without at le= ast > hardcoding a fixed value as result in that case. > But even that wouldn't be enough, as the function wouldn't work consisten= tly > with the fail image statement. > >> Sorry for the comments ... >> > Comments are welcome here, as far as I know. ;-) > > Mikael --94eb2c04c6fe5f798e053829ff68 Content-Type: text/plain; charset=US-ASCII; name="first_complete_patch_REV1.diff" Content-Disposition: attachment; filename="first_complete_patch_REV1.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iqwmgszv0 Content-length: 31790 Y29tbWl0IGQ2YzkxYjJjMTRhMTJkMWQwMTI3MzhmMTNmNDkyMGUyMDcxMTM5 ODIKQXV0aG9yOiBBbGVzc2FuZHJvIEZhbmZhcmlsbG8gPGVsZmFuZmFAdWNh ci5lZHU+CkRhdGU6ICAgVGh1IEp1bCAyMSAxMDowMTozMyAyMDE2IC0wNjAw CgogICAgRmlyc3QgcmV2aWV3IG9mIGZhaWxlZCBpbWFnZXMgcGF0Y2gKCmRp ZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9jaGVjay5jIGIvZ2NjL2ZvcnRyYW4v Y2hlY2suYwppbmRleCBkMjZlNDVlLi4xMjE1NTFjIDEwMDY0NAotLS0gYS9n Y2MvZm9ydHJhbi9jaGVjay5jCisrKyBiL2djYy9mb3J0cmFuL2NoZWNrLmMK QEAgLTEyMTAsNiArMTIxMCw5NyBAQCBnZmNfY2hlY2tfZXZlbnRfcXVlcnkg KGdmY19leHByICpldmVudCwgZ2ZjX2V4cHIgKmNvdW50LCBnZmNfZXhwciAq c3RhdCkKICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wKK2dmY19jaGVja19p bWFnZV9zdGF0dXMgKGdmY19leHByICppbWFnZSwgZ2ZjX2V4cHIgKnRlYW0p Cit7CisKKyAgaWYgKGZsYWdfY29hcnJheSAhPSBHRkNfRkNPQVJSQVlfTElC KQorICAgIHsKKyAgICAgIGdmY19mYXRhbF9lcnJvciAoIkZhaWxlZCBpbWFn ZXMgZmVhdHVyZXMgIgorCQkgICAgICAgInVzYWJsZSBvbmx5IHdpdGggJTwt ZmNvYXJyYXk9bGliJT4iKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9 CisKKyAgaWYgKCF0eXBlX2NoZWNrIChpbWFnZSwgMSwgQlRfSU5URUdFUikp CisgICAgcmV0dXJuIGZhbHNlOworCisgIGludCBpID0gZ2ZjX3ZhbGlkYXRl X2tpbmQgKEJUX0lOVEVHRVIsIGltYWdlLT50cy5raW5kLCBmYWxzZSk7Cisg IGludCBqID0gZ2ZjX3ZhbGlkYXRlX2tpbmQgKEJUX0lOVEVHRVIsIGdmY19k ZWZhdWx0X2ludGVnZXJfa2luZCwgZmFsc2UpOworCisgIGlmIChnZmNfaW50 ZWdlcl9raW5kc1tpXS5yYW5nZSA8IGdmY19pbnRlZ2VyX2tpbmRzW2pdLnJh bmdlKQorICAgIHsKKyAgICAgIGdmY19lcnJvciAoIklNQUdFIGFyZ3VtZW50 IG9mIHRoZSBJTUFHRV9TVEFUVVMgaW50cmluc2ljIGZ1bmN0aW9uIGF0ICVM ICIKKwkJICJzaGFsbCBoYXZlIGF0IGxlYXN0IHRoZSByYW5nZSBvZiB0aGUg ZGVmYXVsdCBpbnRlZ2VyIiwKKwkJICZpbWFnZS0+d2hlcmUpOworICAgICAg cmV0dXJuIGZhbHNlOworICAgIH0KKworICBqID0gZ2ZjX3ZhbGlkYXRlX2tp bmQgKEJUX0lOVEVHRVIsIGdmY19kZWZhdWx0X2ludGVnZXJfa2luZCoyLCBm YWxzZSk7CisKKyAgaWYgKGdmY19pbnRlZ2VyX2tpbmRzW2ldLnJhbmdlID4g Z2ZjX2ludGVnZXJfa2luZHNbal0ucmFuZ2UpCisgICAgeworICAgICAgZ2Zj X2Vycm9yICgiSU1BR0UgYXJndW1lbnQgb2YgdGhlIElNQUdFX1NUQVRVUyBp bnRyaW5zaWMgZnVuY3Rpb24gYXQgJUwgIgorCQkgInNoYWxsIGhhdmUgYXQg bW9zdCB0aGUgcmFuZ2Ugb2YgdGhlIGRvdWJsZSBwcmVjaXNpb24gaW50ZWdl ciIsCisJCSAmaW1hZ2UtPndoZXJlKTsKKyAgICAgIHJldHVybiBmYWxzZTsK KyAgICB9CisKKyAgaWYgKHRlYW0pCisgICAgeworICAgICAgZ2ZjX2Vycm9y ICgiVEVBTSBhcmd1bWVudCBvZiB0aGUgSU1BR0VfU1RBVFVTIGludHJpbnNp YyBmdW5jdGlvbiBhdCAlTCAiCisJCSAibm90IHlldCBzdXBwb3J0ZWQiLAor CQkgJnRlYW0tPndoZXJlKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9 CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wKK2dmY19jaGVja19mYWls ZWRfaW1hZ2VzIChnZmNfZXhwciAqdGVhbSwgZ2ZjX2V4cHIgKmtpbmQpCit7 CisgIGlmIChmbGFnX2NvYXJyYXkgIT0gR0ZDX0ZDT0FSUkFZX0xJQikKKyAg ICB7CisgICAgICBnZmNfZmF0YWxfZXJyb3IgKCJGYWlsZWQgaW1hZ2VzIGZl YXR1cmUgIgorCQkgICAgICAgInVzYWJsZSBvbmx5IHdpdGggJTwtZmNvYXJy YXk9bGliJT4iKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg aWYgKHRlYW0pCisgICAgeworICAgICAgZ2ZjX2Vycm9yICgiVEVBTSBhcmd1 bWVudCBvZiB0aGUgRkFJTEVEX0lNQUdFUyBpbnRyaW5zaWMgZnVuY3Rpb24g IgorCQkgImF0ICVMIG5vdCB5ZXQgc3VwcG9ydGVkIiwgJnRlYW0tPndoZXJl KTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgaWYgKGtpbmQp CisgICAgeworICAgICAgaW50IGkgPSBnZmNfdmFsaWRhdGVfa2luZCAoQlRf SU5URUdFUiwga2luZC0+dHMua2luZCwgZmFsc2UpOworICAgICAgaW50IGog PSBnZmNfdmFsaWRhdGVfa2luZCAoQlRfSU5URUdFUiwgZ2ZjX2RlZmF1bHRf aW50ZWdlcl9raW5kLCBmYWxzZSk7CisKKyAgICAgIGlmIChnZmNfaW50ZWdl cl9raW5kc1tpXS5yYW5nZSA8IGdmY19pbnRlZ2VyX2tpbmRzW2pdLnJhbmdl KQorCXsKKwkgIGdmY19lcnJvciAoIktJTkQgYXJndW1lbnQgb2YgdGhlIEZB SUxFRF9JTUFHRVMgaW50cmluc2ljIGZ1bmN0aW9uICIKKwkJICAgICAiYXQg JUwgc2hhbGwgaGF2ZSBhdCBsZWFzdCB0aGUgcmFuZ2UgIgorCQkgICAgICJv ZiB0aGUgZGVmYXVsdCBpbnRlZ2VyIiwgJmtpbmQtPndoZXJlKTsKKwkgIHJl dHVybiBmYWxzZTsKKwl9CisKKyAgICAgIGogPSBnZmNfdmFsaWRhdGVfa2lu ZCAoQlRfSU5URUdFUiwgZ2ZjX2RlZmF1bHRfaW50ZWdlcl9raW5kKjIsIGZh bHNlKTsKKworICAgICAgaWYgKGdmY19pbnRlZ2VyX2tpbmRzW2ldLnJhbmdl ID4gZ2ZjX2ludGVnZXJfa2luZHNbal0ucmFuZ2UpCisJeworCSAgZ2ZjX2Vy cm9yICgiS0lORCBhcmd1bWVudCBvZiB0aGUgRkFJTEVEX0lNQUdFUyAiCisJ CSAgICAgImludHJpbnNpYyBmdW5jdGlvbiBhdCAlTCBzaGFsbCBoYXZlIGF0 IG1vc3QgdGhlICIKKwkJICAgICAicmFuZ2Ugb2YgdGhlIGRvdWJsZSBwcmVj aXNpb24gaW50ZWdlciIsCisJCSAgICAgJmtpbmQtPndoZXJlKTsKKwkgIHJl dHVybiBmYWxzZTsKKwl9CisgICAgfQorCisgIHJldHVybiB0cnVlOworfQor CiAKIGJvb2wKIGdmY19jaGVja19hdG9taWNfZmV0Y2hfb3AgKGdmY19leHBy ICphdG9tLCBnZmNfZXhwciAqdmFsdWUsIGdmY19leHByICpvbGQsCmRpZmYg LS1naXQgYS9nY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuYyBiL2djYy9m b3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jCmluZGV4IGY1MDc0MzQuLjQxZWQ2 NjQgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5j CisrKyBiL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jCkBAIC0xNjI4 LDYgKzE2MjgsOSBAQCBzaG93X2NvZGVfbm9kZSAoaW50IGxldmVsLCBnZmNf Y29kZSAqYykKIAogICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEVYRUNfRkFJ TF9JTUFHRToKKyAgICAgIGZwdXRzICgiRkFJTCBJTUFHRSAiLCBkdW1wZmls ZSk7CisKICAgICBjYXNlIEVYRUNfU1lOQ19BTEw6CiAgICAgICBmcHV0cyAo IlNZTkMgQUxMICIsIGR1bXBmaWxlKTsKICAgICAgIGlmIChjLT5leHByMiAh PSBOVUxMKQpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaCBi L2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKaW5kZXggNzc4MzFhYi4uMmYyMmMz MiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAorKysgYi9n Y2MvZm9ydHJhbi9nZm9ydHJhbi5oCkBAIC0yNTMsNyArMjUzLDcgQEAgZW51 bSBnZmNfc3RhdGVtZW50CiAgIFNUX09NUF9FTkRfVEFSR0VUX1RFQU1TX0RJ U1RSSUJVVEVfUEFSQUxMRUxfRE9fU0lNRCwKICAgU1RfUFJPQ0VEVVJFLCBT VF9HRU5FUklDLCBTVF9DUklUSUNBTCwgU1RfRU5EX0NSSVRJQ0FMLAogICBT VF9HRVRfRkNOX0NIQVJBQ1RFUklTVElDUywgU1RfTE9DSywgU1RfVU5MT0NL LCBTVF9FVkVOVF9QT1NULAotICBTVF9FVkVOVF9XQUlULFNUX05PTkUKKyAg U1RfRVZFTlRfV0FJVCxTVF9GQUlMX0lNQUdFLFNUX05PTkUKIH07CiAKIC8q IFR5cGVzIG9mIGludGVyZmFjZXMgdGhhdCB3ZSBjYW4gaGF2ZS4gIEFzc2ln bm1lbnQgaW50ZXJmYWNlcyBhcmUKQEAgLTQxMSw2ICs0MTEsNyBAQCBlbnVt IGdmY19pc3ltX2lkCiAgIEdGQ19JU1lNX0VYUCwKICAgR0ZDX0lTWU1fRVhQ T05FTlQsCiAgIEdGQ19JU1lNX0VYVEVORFNfVFlQRV9PRiwKKyAgR0ZDX0lT WU1fRkFJTEVEX0lNQUdFUywKICAgR0ZDX0lTWU1fRkRBVEUsCiAgIEdGQ19J U1lNX0ZFX1JVTlRJTUVfRVJST1IsCiAgIEdGQ19JU1lNX0ZHRVQsCkBAIC00 NTQsNiArNDU1LDcgQEAgZW51bSBnZmNfaXN5bV9pZAogICBHRkNfSVNZTV9J RU9SLAogICBHRkNfSVNZTV9JRVJSTk8sCiAgIEdGQ19JU1lNX0lNQUdFX0lO REVYLAorICBHRkNfSVNZTV9JTUFHRV9TVEFUVVMsCiAgIEdGQ19JU1lNX0lO REVYLAogICBHRkNfSVNZTV9JTlQsCiAgIEdGQ19JU1lNX0lOVDIsCkBAIC0y MzgzLDcgKzIzODUsNyBAQCBlbnVtIGdmY19leGVjX29wCiAgIEVYRUNfT1BF TiwgRVhFQ19DTE9TRSwgRVhFQ19XQUlULAogICBFWEVDX1JFQUQsIEVYRUNf V1JJVEUsIEVYRUNfSU9MRU5HVEgsIEVYRUNfVFJBTlNGRVIsIEVYRUNfRFRf RU5ELAogICBFWEVDX0JBQ0tTUEFDRSwgRVhFQ19FTkRGSUxFLCBFWEVDX0lO UVVJUkUsIEVYRUNfUkVXSU5ELCBFWEVDX0ZMVVNILAotICBFWEVDX0xPQ0ss IEVYRUNfVU5MT0NLLCBFWEVDX0VWRU5UX1BPU1QsIEVYRUNfRVZFTlRfV0FJ VCwKKyAgRVhFQ19MT0NLLCBFWEVDX1VOTE9DSywgRVhFQ19FVkVOVF9QT1NU LCBFWEVDX0VWRU5UX1dBSVQsIEVYRUNfRkFJTF9JTUFHRSwKICAgRVhFQ19P QUNDX0tFUk5FTFNfTE9PUCwgRVhFQ19PQUNDX1BBUkFMTEVMX0xPT1AsIEVY RUNfT0FDQ19ST1VUSU5FLAogICBFWEVDX09BQ0NfUEFSQUxMRUwsIEVYRUNf T0FDQ19LRVJORUxTLCBFWEVDX09BQ0NfREFUQSwgRVhFQ19PQUNDX0hPU1Rf REFUQSwKICAgRVhFQ19PQUNDX0xPT1AsIEVYRUNfT0FDQ19VUERBVEUsIEVY RUNfT0FDQ19XQUlULCBFWEVDX09BQ0NfQ0FDSEUsCmRpZmYgLS1naXQgYS9n Y2MvZm9ydHJhbi9pbnRyaW5zaWMuYyBiL2djYy9mb3J0cmFuL2ludHJpbnNp Yy5jCmluZGV4IDFkNzUwM2QuLmE2NDIxYjUgMTAwNjQ0Ci0tLSBhL2djYy9m b3J0cmFuL2ludHJpbnNpYy5jCisrKyBiL2djYy9mb3J0cmFuL2ludHJpbnNp Yy5jCkBAIC0xODIzLDYgKzE4MjMsMTAgQEAgYWRkX2Z1bmN0aW9ucyAodm9p ZCkKIAkgICAgIGEsIEJUX1VOS05PV04sIDAsIFJFUVVJUkVELAogCSAgICAg bW8sIEJUX1VOS05PV04sIDAsIFJFUVVJUkVEKTsKIAorICBhZGRfc3ltXzIg KCJmYWlsZWRfaW1hZ2VzIiwgR0ZDX0lTWU1fRkFJTEVEX0lNQUdFUywgQ0xB U1NfVFJBTlNGT1JNQVRJT05BTCwgQUNUVUFMX05PLCBCVF9JTlRFR0VSLAor CSAgICAgZGQsIEdGQ19TVERfRjIwMDhfVFMsIGdmY19jaGVja19mYWlsZWRf aW1hZ2VzLCBOVUxMLAorCSAgICAgZ2ZjX3Jlc29sdmVfZmFpbGVkX2ltYWdl cywgInRlYW0iLCBCVF9JTlRFR0VSLCBkaSwgT1BUSU9OQUwsICJraW5kIiwg QlRfSU5URUdFUiwgZGksIE9QVElPTkFMKTsKKwogICBhZGRfc3ltXzAgKCJm ZGF0ZSIsICBHRkNfSVNZTV9GREFURSwgQ0xBU1NfSU1QVVJFLCBBQ1RVQUxf Tk8sIEJUX0NIQVJBQ1RFUiwKIAkgICAgIGRjLCBHRkNfU1REX0dOVSwgTlVM TCwgTlVMTCwgZ2ZjX3Jlc29sdmVfZmRhdGUpOwogCkBAIC0yMDI0LDYgKzIw MjgsMTAgQEAgYWRkX2Z1bmN0aW9ucyAodm9pZCkKIAkgICAgIGdmY19jaGVj a19pbWFnZV9pbmRleCwgZ2ZjX3NpbXBsaWZ5X2ltYWdlX2luZGV4LCBnZmNf cmVzb2x2ZV9pbWFnZV9pbmRleCwKIAkgICAgIGNhLCBCVF9SRUFMLCBkciwg UkVRVUlSRUQsIHN1YiwgQlRfSU5URUdFUiwgaWksIFJFUVVJUkVEKTsKIAor ICBhZGRfc3ltXzIgKCJpbWFnZV9zdGF0dXMiLCBHRkNfSVNZTV9JTUFHRV9T VEFUVVMsIENMQVNTX0VMRU1FTlRBTCwgQUNUVUFMX05PLCBCVF9JTlRFR0VS LAorCSAgICAgZGksIEdGQ19TVERfRjIwMDhfVFMsIGdmY19jaGVja19pbWFn ZV9zdGF0dXMsIE5VTEwsCisJICAgICBnZmNfcmVzb2x2ZV9pbWFnZV9zdGF0 dXMsICJpbWFnZSIsIEJUX0lOVEVHRVIsIGRpLCBSRVFVSVJFRCwgInRlYW0i LCBCVF9JTlRFR0VSLCBkaSwgT1BUSU9OQUwpOworCiAgIC8qIFRoZSByZXNv bHV0aW9uIGZ1bmN0aW9uIGZvciBJTkRFWCBpcyBjYWxsZWQgZ2ZjX3Jlc29s dmVfaW5kZXhfZnVuYwogICAgICBiZWNhdXNlIHRoZSBuYW1lIGdmY19yZXNv bHZlX2luZGV4IGlzIGFscmVhZHkgdXNlZCBpbiByZXNvbHZlLmMuICAqLwog ICBhZGRfc3ltXzQgKCJpbmRleCIsIEdGQ19JU1lNX0lOREVYLCBDTEFTU19F TEVNRU5UQUwsIEFDVFVBTF9ZRVMsCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJh bi9pbnRyaW5zaWMuaCBiL2djYy9mb3J0cmFuL2ludHJpbnNpYy5oCmluZGV4 IGYyMjg5NzYuLmJiNDliN2QgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2lu dHJpbnNpYy5oCisrKyBiL2djYy9mb3J0cmFuL2ludHJpbnNpYy5oCkBAIC03 MSw2ICs3MSw3IEBAIGJvb2wgZ2ZjX2NoZWNrX2RzaGlmdCAoZ2ZjX2V4cHIg KiwgZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKik7CiBib29sIGdmY19jaGVja19l b3NoaWZ0IChnZmNfZXhwciAqLCBnZmNfZXhwciAqLCBnZmNfZXhwciAqLCBn ZmNfZXhwciAqKTsKIGJvb2wgZ2ZjX2NoZWNrX2R0aW1lX2V0aW1lIChnZmNf ZXhwciAqKTsKIGJvb2wgZ2ZjX2NoZWNrX2V2ZW50X3F1ZXJ5IChnZmNfZXhw ciAqLCBnZmNfZXhwciAqLCBnZmNfZXhwciAqKTsKK2Jvb2wgZ2ZjX2NoZWNr X2ZhaWxlZF9pbWFnZXMgKGdmY19leHByICosIGdmY19leHByICopOwogYm9v bCBnZmNfY2hlY2tfZmdldHB1dGMgKGdmY19leHByICosIGdmY19leHByICop OwogYm9vbCBnZmNfY2hlY2tfZmdldHB1dCAoZ2ZjX2V4cHIgKik7CiBib29s IGdmY19jaGVja19mbG9hdCAoZ2ZjX2V4cHIgKik7CkBAIC05Miw2ICs5Myw3 IEBAIGJvb2wgZ2ZjX2NoZWNrX2liaXRzIChnZmNfZXhwciAqLCBnZmNfZXhw ciAqLCBnZmNfZXhwciAqKTsKIGJvb2wgZ2ZjX2NoZWNrX2ljaGFyX2lhY2hh ciAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKik7CiBib29sIGdmY19jaGVja19p ZG5pbnQgKGdmY19leHByICopOwogYm9vbCBnZmNfY2hlY2tfaWVvciAoZ2Zj X2V4cHIgKiwgZ2ZjX2V4cHIgKik7Citib29sIGdmY19jaGVja19pbWFnZV9z dGF0dXMgKGdmY19leHByICosIGdmY19leHByICopOwogYm9vbCBnZmNfY2hl Y2tfaW5kZXggKGdmY19leHByICosIGdmY19leHByICosIGdmY19leHByICos IGdmY19leHByICopOwogYm9vbCBnZmNfY2hlY2tfaW50IChnZmNfZXhwciAq LCBnZmNfZXhwciAqKTsKIGJvb2wgZ2ZjX2NoZWNrX2ludGNvbnYgKGdmY19l eHByICopOwpAQCAtNDY3LDYgKzQ2OSw3IEBAIHZvaWQgZ2ZjX3Jlc29sdmVf ZXZlbnRfcXVlcnkgKGdmY19jb2RlICopOwogdm9pZCBnZmNfcmVzb2x2ZV9l eHAgKGdmY19leHByICosIGdmY19leHByICopOwogdm9pZCBnZmNfcmVzb2x2 ZV9leHBvbmVudCAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKik7CiB2b2lkIGdm Y19yZXNvbHZlX2V4dGVuZHNfdHlwZV9vZiAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4 cHIgKiwgZ2ZjX2V4cHIgKik7Cit2b2lkIGdmY19yZXNvbHZlX2ZhaWxlZF9p bWFnZXMgKGdmY19leHByICosIGdmY19leHByICosIGdmY19leHByICopOwog dm9pZCBnZmNfcmVzb2x2ZV9mZGF0ZSAoZ2ZjX2V4cHIgKik7CiB2b2lkIGdm Y19yZXNvbHZlX2Zsb29yIChnZmNfZXhwciAqLCBnZmNfZXhwciAqLCBnZmNf ZXhwciAqKTsKIHZvaWQgZ2ZjX3Jlc29sdmVfZm51bSAoZ2ZjX2V4cHIgKiwg Z2ZjX2V4cHIgKik7CkBAIC00OTAsNiArNDkzLDcgQEAgdm9pZCBnZmNfcmVz b2x2ZV9pYmNsciAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIg Kik7CiB2b2lkIGdmY19yZXNvbHZlX2liaXRzIChnZmNfZXhwciAqLCBnZmNf ZXhwciAqLCBnZmNfZXhwciAqLCBnZmNfZXhwciAqKTsKIHZvaWQgZ2ZjX3Jl c29sdmVfaWJzZXQgKGdmY19leHByICosIGdmY19leHByICosIGdmY19leHBy ICopOwogdm9pZCBnZmNfcmVzb2x2ZV9pbWFnZV9pbmRleCAoZ2ZjX2V4cHIg KiwgZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKik7Cit2b2lkIGdmY19yZXNvbHZl X2ltYWdlX3N0YXR1cyAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKiwgZ2ZjX2V4 cHIgKik7CiB2b2lkIGdmY19yZXNvbHZlX2luZGV4X2Z1bmMgKGdmY19leHBy ICosIGdmY19leHByICosIGdmY19leHByICosIGdmY19leHByICosCiAJCQkg ICAgIGdmY19leHByICopOwogdm9pZCBnZmNfcmVzb2x2ZV9pZXJybm8gKGdm Y19leHByICopOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vaXJlc29sdmUu YyBiL2djYy9mb3J0cmFuL2lyZXNvbHZlLmMKaW5kZXggZWNlYTFjMy4uYzE0 MmVjYSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vaXJlc29sdmUuYworKysg Yi9nY2MvZm9ydHJhbi9pcmVzb2x2ZS5jCkBAIC0yNTc3LDYgKzI1NzcsMjkg QEAgZ2ZjX3Jlc29sdmVfdGFuaCAoZ2ZjX2V4cHIgKmYsIGdmY19leHByICp4 KQogICAgID0gZ2ZjX2dldF9zdHJpbmcgKCJfX3RhbmhfJWMlZCIsIGdmY190 eXBlX2xldHRlciAoeC0+dHMudHlwZSksIHgtPnRzLmtpbmQpOwogfQogCit2 b2lkCitnZmNfcmVzb2x2ZV9mYWlsZWRfaW1hZ2VzIChnZmNfZXhwciAqZiwg Z2ZjX2V4cHIgKnRlYW0gQVRUUklCVVRFX1VOVVNFRCwKKwkJCSAgIGdmY19l eHByICpraW5kKQoreworICBzdGF0aWMgY2hhciBmYWlsZWRfaW1hZ2VzW10g PSAiX2dmb3J0cmFuX2NhZl9mYWlsZWRfaW1hZ2VzIjsKKyAgZi0+cmFuayA9 IDE7CisgIGYtPnRzLnR5cGUgPSBCVF9JTlRFR0VSOworICBpZihraW5kID09 IE5VTEwpCisgICAgZi0+dHMua2luZCA9IGdmY19kZWZhdWx0X2ludGVnZXJf a2luZDsKKyAgZWxzZQorICAgIGYtPnRzLmtpbmQgPSBraW5kLT50cy5raW5k OworICBmLT52YWx1ZS5mdW5jdGlvbi5uYW1lID0gZmFpbGVkX2ltYWdlczsK K30KKwordm9pZAorZ2ZjX3Jlc29sdmVfaW1hZ2Vfc3RhdHVzIChnZmNfZXhw ciAqZiwgZ2ZjX2V4cHIgKmltYWdlLCBnZmNfZXhwciAqdGVhbSBBVFRSSUJV VEVfVU5VU0VEKQoreworICBzdGF0aWMgY2hhciBpbWFnZV9zdGF0dXNbXSA9 ICJpbWFnZV9zdGF0dXMiOworICBmLT50cy50eXBlID0gQlRfSU5URUdFUjsK KyAgZi0+dHMua2luZCA9IGdmY19kZWZhdWx0X2ludGVnZXJfa2luZDsKKyAg Zi0+dHMgPSBpbWFnZS0+dHM7CisgIGYtPnZhbHVlLmZ1bmN0aW9uLm5hbWUg PSBpbWFnZV9zdGF0dXM7Cit9CiAKIHZvaWQKIGdmY19yZXNvbHZlX2ltYWdl X2luZGV4IChnZmNfZXhwciAqZiwgZ2ZjX2V4cHIgKmFycmF5IEFUVFJJQlVU RV9VTlVTRUQsCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9saWJnZm9ydHJh bi5oIGIvZ2NjL2ZvcnRyYW4vbGliZ2ZvcnRyYW4uaAppbmRleCBlOTEzMjUw Li5mMDBlZDgzIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9saWJnZm9ydHJh bi5oCisrKyBiL2djYy9mb3J0cmFuL2xpYmdmb3J0cmFuLmgKQEAgLTEyMyw3 ICsxMjMsNyBAQCB0eXBlZGVmIGVudW0KICAgR0ZDX1NUQVRfTE9DS0VELAog ICBHRkNfU1RBVF9MT0NLRURfT1RIRVJfSU1BR0UsCiAgIEdGQ19TVEFUX1NU T1BQRURfSU1BR0UgPSA2MDAwLCAvKiBTZWUgTElCRVJST1JfSU5RVUlSRV9J TlRFUk5BTF9VTklUIGFib3ZlLiAqLwotICBHRkNfU1RBVF9GQUlMRURfSU1B R0UKKyAgR0ZDX1NUQVRfRkFJTEVEX0lNQUdFID0gNjAwMQogfQogbGliZ2Zv cnRyYW5fc3RhdF9jb2RlczsKIApkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v bWF0Y2guYyBiL2djYy9mb3J0cmFuL21hdGNoLmMKaW5kZXggZjNhNGE0My4u NWExM2NjMyAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vbWF0Y2guYworKysg Yi9nY2MvZm9ydHJhbi9tYXRjaC5jCkBAIC0xNTk0LDYgKzE1OTQsNyBAQCBn ZmNfbWF0Y2hfaWYgKGdmY19zdGF0ZW1lbnQgKmlmX3R5cGUpCiAgIG1hdGNo ICgiZXZlbnQgcG9zdCIsIGdmY19tYXRjaF9ldmVudF9wb3N0LCBTVF9FVkVO VF9QT1NUKQogICBtYXRjaCAoImV2ZW50IHdhaXQiLCBnZmNfbWF0Y2hfZXZl bnRfd2FpdCwgU1RfRVZFTlRfV0FJVCkKICAgbWF0Y2ggKCJleGl0IiwgZ2Zj X21hdGNoX2V4aXQsIFNUX0VYSVQpCisgIG1hdGNoICgiZmFpbCBpbWFnZSIs IGdmY19tYXRjaF9mYWlsX2ltYWdlLCBTVF9GQUlMX0lNQUdFKQogICBtYXRj aCAoImZsdXNoIiwgZ2ZjX21hdGNoX2ZsdXNoLCBTVF9GTFVTSCkKICAgbWF0 Y2ggKCJmb3JhbGwiLCBtYXRjaF9zaW1wbGVfZm9yYWxsLCBTVF9GT1JBTEwp CiAgIG1hdGNoICgiZ28gdG8iLCBnZmNfbWF0Y2hfZ290bywgU1RfR09UTykK QEAgLTMwNzMsNiArMzA3NCw0MSBAQCBnZmNfbWF0Y2hfZXZlbnRfd2FpdCAo dm9pZCkKICAgcmV0dXJuIGV2ZW50X3N0YXRlbWVudCAoU1RfRVZFTlRfV0FJ VCk7CiB9CiAKKy8qIE1hdGNoIGEgRkFJTCBJTUFHRSBzdGF0ZW1lbnQuICAq LworCitzdGF0aWMgbWF0Y2gKK2ZhaWxfaW1hZ2Vfc3RhdGVtZW50IChnZmNf c3RhdGVtZW50IHN0KQoreworICBpZiAoZmxhZ19jb2FycmF5ICE9IEdGQ19G Q09BUlJBWV9MSUIpCisgICAgeworICAgICAgZ2ZjX2ZhdGFsX2Vycm9yICgi RmFpbGVkIGltYWdlcyBmZWF0dXJlcyIKKwkJICAgICAgICJ1c2FibGUgb25s eSB3aXRoICU8LWZjb2FycmF5PWxpYiU+Iik7CisgICAgICByZXR1cm4gTUFU Q0hfRVJST1I7CisgICAgfQorCisgIGlmIChnZmNfbWF0Y2hfY2hhciAoJygn KSA9PSBNQVRDSF9ZRVMpCisgICAgZ290byBzeW50YXg7CisKKyAgZ2NjX2Fz c2VydCAoc3QgPT0gU1RfRkFJTF9JTUFHRSk7CisKKyAgbmV3X3N0Lm9wID0g RVhFQ19GQUlMX0lNQUdFOworCisgIHJldHVybiBNQVRDSF9ZRVM7CisKKyBz eW50YXg6CisgIGdmY19zeW50YXhfZXJyb3IgKHN0KTsKKworICByZXR1cm4g TUFUQ0hfRVJST1I7Cit9CisKK21hdGNoCitnZmNfbWF0Y2hfZmFpbF9pbWFn ZSAodm9pZCkKK3sKKyAgaWYgKCFnZmNfbm90aWZ5X3N0ZCAoR0ZDX1NURF9G MjAwOF9UUywgIkZBSUwgSU1BR0Ugc3RhdGVtZW50IGF0ICVDIikpCisgICAg cmV0dXJuIE1BVENIX0VSUk9SOworCisgIHJldHVybiBmYWlsX2ltYWdlX3N0 YXRlbWVudCAoU1RfRkFJTF9JTUFHRSk7Cit9CiAKIC8qIE1hdGNoIExPQ0sv VU5MT0NLIHN0YXRlbWVudC4gU3ludGF4OgogICAgICBMT0NLICggbG9jay12 YXJpYWJsZSBbICwgbG9jay1zdGF0LWxpc3QgXSApCmRpZmYgLS1naXQgYS9n Y2MvZm9ydHJhbi9tYXRjaC5oIGIvZ2NjL2ZvcnRyYW4vbWF0Y2guaAppbmRl eCAzNDhjYTcwLi40ZTRiODMzIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9t YXRjaC5oCisrKyBiL2djYy9mb3J0cmFuL21hdGNoLmgKQEAgLTcyLDYgKzcy LDcgQEAgbWF0Y2ggZ2ZjX21hdGNoX2Vsc2UgKHZvaWQpOwogbWF0Y2ggZ2Zj X21hdGNoX2Vsc2VpZiAodm9pZCk7CiBtYXRjaCBnZmNfbWF0Y2hfZXZlbnRf cG9zdCAodm9pZCk7CiBtYXRjaCBnZmNfbWF0Y2hfZXZlbnRfd2FpdCAodm9p ZCk7CittYXRjaCBnZmNfbWF0Y2hfZmFpbF9pbWFnZSAodm9pZCk7CiBtYXRj aCBnZmNfbWF0Y2hfY3JpdGljYWwgKHZvaWQpOwogbWF0Y2ggZ2ZjX21hdGNo X2Jsb2NrICh2b2lkKTsKIG1hdGNoIGdmY19tYXRjaF9hc3NvY2lhdGUgKHZv aWQpOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vcGFyc2UuYyBiL2djYy9m b3J0cmFuL3BhcnNlLmMKaW5kZXggYmQ3YjEzOC4uYmI2ZTFmNSAxMDA2NDQK LS0tIGEvZ2NjL2ZvcnRyYW4vcGFyc2UuYworKysgYi9nY2MvZm9ydHJhbi9w YXJzZS5jCkBAIC00ODMsNiArNDgzLDcgQEAgZGVjb2RlX3N0YXRlbWVudCAo dm9pZCkKICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSAnZic6CisgICAgICBt YXRjaCAoImZhaWwgaW1hZ2UiLCBnZmNfbWF0Y2hfZmFpbF9pbWFnZSwgU1Rf RkFJTF9JTUFHRSk7CiAgICAgICBtYXRjaCAoImZpbmFsIiwgZ2ZjX21hdGNo X2ZpbmFsX2RlY2wsIFNUX0ZJTkFMKTsKICAgICAgIG1hdGNoICgiZmx1c2gi LCBnZmNfbWF0Y2hfZmx1c2gsIFNUX0ZMVVNIKTsKICAgICAgIG1hdGNoICgi Zm9ybWF0IiwgZ2ZjX21hdGNoX2Zvcm1hdCwgU1RfRk9STUFUKTsKQEAgLTE0 MjUsNyArMTQyNiw3IEBAIG5leHRfc3RhdGVtZW50ICh2b2lkKQogICBjYXNl IFNUX09NUF9DQU5DRUw6IGNhc2UgU1RfT01QX0NBTkNFTExBVElPTl9QT0lO VDogXAogICBjYXNlIFNUX09NUF9UQVJHRVRfVVBEQVRFOiBjYXNlIFNUX0VS Uk9SX1NUT1A6IGNhc2UgU1RfU1lOQ19BTEw6IFwKICAgY2FzZSBTVF9TWU5D X0lNQUdFUzogY2FzZSBTVF9TWU5DX01FTU9SWTogY2FzZSBTVF9MT0NLOiBj YXNlIFNUX1VOTE9DSzogXAotICBjYXNlIFNUX0VWRU5UX1BPU1Q6IGNhc2Ug U1RfRVZFTlRfV0FJVDogXAorICBjYXNlIFNUX0VWRU5UX1BPU1Q6IGNhc2Ug U1RfRVZFTlRfV0FJVDogY2FzZSBTVF9GQUlMX0lNQUdFOiBcCiAgIGNhc2Ug U1RfT0FDQ19VUERBVEU6IGNhc2UgU1RfT0FDQ19XQUlUOiBjYXNlIFNUX09B Q0NfQ0FDSEU6IFwKICAgY2FzZSBTVF9PQUNDX0VOVEVSX0RBVEE6IGNhc2Ug U1RfT0FDQ19FWElUX0RBVEEKIApAQCAtMTc1MSw2ICsxNzUyLDkgQEAgZ2Zj X2FzY2lpX3N0YXRlbWVudCAoZ2ZjX3N0YXRlbWVudCBzdCkKICAgICBjYXNl IFNUX0VWRU5UX1dBSVQ6CiAgICAgICBwID0gIkVWRU5UIFdBSVQiOwogICAg ICAgYnJlYWs7CisgICAgY2FzZSBTVF9GQUlMX0lNQUdFOgorICAgICAgcCA9 ICJGQUlMIElNQUdFIjsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgU1RfRU5E X0FTU09DSUFURToKICAgICAgIHAgPSAiRU5EIEFTU09DSUFURSI7CiAgICAg ICBicmVhazsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Jlc29sdmUuYyBi L2djYy9mb3J0cmFuL3Jlc29sdmUuYwppbmRleCAxZmM1NDBhLi40NzVkNjAw IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9yZXNvbHZlLmMKKysrIGIvZ2Nj L2ZvcnRyYW4vcmVzb2x2ZS5jCkBAIC04Nzc5LDYgKzg3NzksMTEgQEAgZmlu ZF9yZWFjaGFibGVfbGFiZWxzIChnZmNfY29kZSAqYmxvY2spCiAgICAgfQog fQogCitzdGF0aWMgdm9pZAorcmVzb2x2ZV9mYWlsX2ltYWdlIChnZmNfY29k ZSAqY29kZSBBVFRSSUJVVEVfVU5VU0VEKQoreworICByZXR1cm47Cit9CiAK IHN0YXRpYyB2b2lkCiByZXNvbHZlX2xvY2tfdW5sb2NrX2V2ZW50IChnZmNf Y29kZSAqY29kZSkKQEAgLTEwNTA5LDYgKzEwNTE0LDEwIEBAIHN0YXJ0Ogog CSAgcmVzb2x2ZV9sb2NrX3VubG9ja19ldmVudCAoY29kZSk7CiAJICBicmVh azsKIAorCWNhc2UgRVhFQ19GQUlMX0lNQUdFOgorCSAgcmVzb2x2ZV9mYWls X2ltYWdlIChjb2RlKTsKKwkgIGJyZWFrOworCiAJY2FzZSBFWEVDX0VOVFJZ OgogCSAgLyogS2VlcCB0cmFjayBvZiB3aGljaCBlbnRyeSB3ZSBhcmUgdXAg dG8uICAqLwogCSAgY3VycmVudF9lbnRyeV9pZCA9IGNvZGUtPmV4dC5lbnRy eS0+aWQ7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9zdC5jIGIvZ2NjL2Zv cnRyYW4vc3QuYwppbmRleCA3Mzk1NDk3Li5iM2E2NzIxIDEwMDY0NAotLS0g YS9nY2MvZm9ydHJhbi9zdC5jCisrKyBiL2djYy9mb3J0cmFuL3N0LmMKQEAg LTEyMCw2ICsxMjAsNyBAQCBnZmNfZnJlZV9zdGF0ZW1lbnQgKGdmY19jb2Rl ICpwKQogICAgIGNhc2UgRVhFQ19VTkxPQ0s6CiAgICAgY2FzZSBFWEVDX0VW RU5UX1BPU1Q6CiAgICAgY2FzZSBFWEVDX0VWRU5UX1dBSVQ6CisgICAgY2Fz ZSBFWEVDX0ZBSUxfSU1BR0U6CiAgICAgICBicmVhazsKIAogICAgIGNhc2Ug RVhFQ19CTE9DSzoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWRl Y2wuYyBiL2djYy9mb3J0cmFuL3RyYW5zLWRlY2wuYwppbmRleCA2OWRkZDE3 Li5iZTYyNTgxIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1kZWNs LmMKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jCkBAIC0xNTEsNiAr MTUxLDkgQEAgdHJlZSBnZm9yX2ZuZGVjbF9jYWZfdW5sb2NrOwogdHJlZSBn Zm9yX2ZuZGVjbF9jYWZfZXZlbnRfcG9zdDsKIHRyZWUgZ2Zvcl9mbmRlY2xf Y2FmX2V2ZW50X3dhaXQ7CiB0cmVlIGdmb3JfZm5kZWNsX2NhZl9ldmVudF9x dWVyeTsKK3RyZWUgZ2Zvcl9mbmRlY2xfY2FmX2ZhaWxfaW1hZ2U7Cit0cmVl IGdmb3JfZm5kZWNsX2NhZl9mYWlsZWRfaW1hZ2VzOwordHJlZSBnZm9yX2Zu ZGVjbF9jYWZfaW1hZ2Vfc3RhdHVzOwogdHJlZSBnZm9yX2ZuZGVjbF9jb19i cm9hZGNhc3Q7CiB0cmVlIGdmb3JfZm5kZWNsX2NvX21heDsKIHRyZWUgZ2Zv cl9mbmRlY2xfY29fbWluOwpAQCAtMzY2NCw2ICszNjY3LDE4IEBAIGdmY19i dWlsZF9idWlsdGluX2Z1bmN0aW9uX2RlY2xzICh2b2lkKQogCXZvaWRfdHlw ZV9ub2RlLCA1LCBwdm9pZF90eXBlX25vZGUsIHNpemVfdHlwZV9ub2RlLCBp bnRlZ2VyX3R5cGVfbm9kZSwKIAlwaW50X3R5cGUsIHBpbnRfdHlwZSk7CiAK KyAgICAgIGdmb3JfZm5kZWNsX2NhZl9mYWlsX2ltYWdlID0gZ2ZjX2J1aWxk X2xpYnJhcnlfZnVuY3Rpb25fZGVjbF93aXRoX3NwZWMgKAorCWdldF9pZGVu dGlmaWVyIChQUkVGSVgoImNhZl9mYWlsX2ltYWdlIikpLCAiUiIsCisJdm9p ZF90eXBlX25vZGUsIDEsIHB2b2lkX3R5cGVfbm9kZSk7CisKKyAgICAgIGdm b3JfZm5kZWNsX2NhZl9mYWlsZWRfaW1hZ2VzID0gZ2ZjX2J1aWxkX2xpYnJh cnlfZnVuY3Rpb25fZGVjbF93aXRoX3NwZWMgKAorCWdldF9pZGVudGlmaWVy IChQUkVGSVgoImNhZl9mYWlsZWRfaW1hZ2VzIikpLCAiV1JSIiwKKwlwdm9p ZF90eXBlX25vZGUsIDMsIHB2b2lkX3R5cGVfbm9kZSwgaW50ZWdlcl90eXBl X25vZGUsIGludGVnZXJfdHlwZV9ub2RlKTsKKworICAgICAgZ2Zvcl9mbmRl Y2xfY2FmX2ltYWdlX3N0YXR1cyA9IGdmY19idWlsZF9saWJyYXJ5X2Z1bmN0 aW9uX2RlY2xfd2l0aF9zcGVjICgKKwlnZXRfaWRlbnRpZmllciAoUFJFRklY KCJjYWZfaW1hZ2Vfc3RhdHVzIikpLCAiUlIiLAorCWludGVnZXJfdHlwZV9u b2RlLCAyLCBpbnRlZ2VyX3R5cGVfbm9kZSwgaW50ZWdlcl90eXBlX25vZGUp OworCiAgICAgICBnZm9yX2ZuZGVjbF9jb19icm9hZGNhc3QgPSBnZmNfYnVp bGRfbGlicmFyeV9mdW5jdGlvbl9kZWNsX3dpdGhfc3BlYyAoCiAJZ2V0X2lk ZW50aWZpZXIgKFBSRUZJWCgiY2FmX2NvX2Jyb2FkY2FzdCIpKSwgIlcuV1ci LAogCXZvaWRfdHlwZV9ub2RlLCA1LCBwdm9pZF90eXBlX25vZGUsIGludGVn ZXJfdHlwZV9ub2RlLApkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMt ZXhwci5jIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5jCmluZGV4IGUzNTU5 ZjQuLjBmMjZlN2UgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLWV4 cHIuYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1leHByLmMKQEAgLTYxMzIs MTAgKzYxMzIsMTEgQEAgZ2ZjX2NvbnZfcHJvY2VkdXJlX2NhbGwgKGdmY19z ZSAqIHNlLCBnZmNfc3ltYm9sICogc3ltLAogICAgICAgICAgY29tcG9uZW50 cyBtdXN0IGhhdmUgdGhlIHJlc3VsdCBhbGxvY2F0YWJsZSBjb21wb25lbnRz IGNvcGllZC4gICovCiAgICAgICBhcmcgPSBleHByLT52YWx1ZS5mdW5jdGlv bi5hY3R1YWw7CiAgICAgICBpZiAocmVzdWx0ICYmIGFyZyAmJiBleHByLT5y YW5rCi0JICAgICYmIGV4cHItPnZhbHVlLmZ1bmN0aW9uLmlzeW0KLQkgICAg JiYgZXhwci0+dmFsdWUuZnVuY3Rpb24uaXN5bS0+dHJhbnNmb3JtYXRpb25h bAotCSAgICAmJiBhcmctPmV4cHItPnRzLnR5cGUgPT0gQlRfREVSSVZFRAot CSAgICAmJiBhcmctPmV4cHItPnRzLnUuZGVyaXZlZC0+YXR0ci5hbGxvY19j b21wKQorCSAgJiYgZXhwci0+dmFsdWUuZnVuY3Rpb24uaXN5bQorCSAgJiYg ZXhwci0+dmFsdWUuZnVuY3Rpb24uaXN5bS0+dHJhbnNmb3JtYXRpb25hbAor CSAgJiYgYXJnLT5leHByCisJICAmJiBhcmctPmV4cHItPnRzLnR5cGUgPT0g QlRfREVSSVZFRAorCSAgJiYgYXJnLT5leHByLT50cy51LmRlcml2ZWQtPmF0 dHIuYWxsb2NfY29tcCkKIAl7CiAJICB0cmVlIHRtcDI7CiAJICAvKiBDb3B5 IHRoZSBhbGxvY2F0YWJsZSBjb21wb25lbnRzLiAgV2UgaGF2ZSB0byB1c2Ug YQpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtaW50cmluc2ljLmMg Yi9nY2MvZm9ydHJhbi90cmFucy1pbnRyaW5zaWMuYwppbmRleCBjNjU1NTQw Li40NjBkZTUyIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1pbnRy aW5zaWMuYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1pbnRyaW5zaWMuYwpA QCAtMTY3Nyw2ICsxNjc3LDE5IEBAIHRyYW5zX3RoaXNfaW1hZ2UgKGdmY19z ZSAqIHNlLCBnZmNfZXhwciAqZXhwcikKIAkJCQkJICAgICAgIG0sIGxib3Vu ZCkpOwogfQogCitzdGF0aWMgdm9pZAorZ2ZjX2NvbnZfaW50cmluc2ljX2lt YWdlX3N0YXR1cyAoZ2ZjX3NlICpzZSwgZ2ZjX2V4cHIgKmV4cHIpCit7Cisg IHVuc2lnbmVkIGludCBudW1fYXJnczsKKyAgdHJlZSAqYXJncyx0bXA7CisK KyAgbnVtX2FyZ3MgPSBnZmNfaW50cmluc2ljX2FyZ3VtZW50X2xpc3RfbGVu Z3RoIChleHByKTsKKyAgYXJncyA9IFhBTExPQ0FWRUMgKHRyZWUsIG51bV9h cmdzKTsKKyAgZ2ZjX2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uX2FyZ3MgKHNl LCBleHByLCBhcmdzLCBudW1fYXJncyk7CisgIHRtcCA9IGJ1aWxkX2NhbGxf ZXhwcl9sb2MgKGlucHV0X2xvY2F0aW9uLCBnZm9yX2ZuZGVjbF9jYWZfaW1h Z2Vfc3RhdHVzLCAyLAorCQkJICAgICBhcmdzWzBdLCBidWlsZF9pbnRfY3N0 IChpbnRlZ2VyX3R5cGVfbm9kZSwgLTEpKTsKKyAgc2UtPmV4cHIgPSB0bXA7 Cit9CiAKIHN0YXRpYyB2b2lkCiB0cmFuc19pbWFnZV9pbmRleCAoZ2ZjX3Nl ICogc2UsIGdmY19leHByICpleHByKQpAQCAtODMzMyw2ICs4MzQ2LDEwIEBA IGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbiAoZ2ZjX3NlICogc2UsIGdm Y19leHByICogZXhwcikKICAgICAgIHRyYW5zX2ltYWdlX2luZGV4IChzZSwg ZXhwcik7CiAgICAgICBicmVhazsKIAorICAgIGNhc2UgR0ZDX0lTWU1fSU1B R0VfU1RBVFVTOgorICAgICAgZ2ZjX2NvbnZfaW50cmluc2ljX2ltYWdlX3N0 YXR1cyAoc2UsIGV4cHIpOworICAgICAgYnJlYWs7CisKICAgICBjYXNlIEdG Q19JU1lNX05VTV9JTUFHRVM6CiAgICAgICB0cmFuc19udW1faW1hZ2VzIChz ZSwgZXhwcik7CiAgICAgICBicmVhazsKQEAgLTg2ODMsMTAgKzg3MDAsMTEg QEAgZ2ZjX2lzX2ludHJpbnNpY19saWJjYWxsIChnZmNfZXhwciAqIGV4cHIp CiAgICAgICAvKiBJZ25vcmUgYWJzZW50IG9wdGlvbmFsIHBhcmFtZXRlcnMu ICAqLwogICAgICAgcmV0dXJuIDE7CiAKLSAgICBjYXNlIEdGQ19JU1lNX1JF U0hBUEU6CiAgICAgY2FzZSBHRkNfSVNZTV9DU0hJRlQ6CiAgICAgY2FzZSBH RkNfSVNZTV9FT1NISUZUOgorICAgIGNhc2UgR0ZDX0lTWU1fRkFJTEVEX0lN QUdFUzoKICAgICBjYXNlIEdGQ19JU1lNX1BBQ0s6CisgICAgY2FzZSBHRkNf SVNZTV9SRVNIQVBFOgogICAgIGNhc2UgR0ZDX0lTWU1fVU5QQUNLOgogICAg ICAgLyogUGFzcyBhYnNlbnQgb3B0aW9uYWwgcGFyYW1ldGVycy4gICovCiAg ICAgICByZXR1cm4gMjsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5z LXN0bXQuYyBiL2djYy9mb3J0cmFuL3RyYW5zLXN0bXQuYwppbmRleCA2ZTRl MmE3Li5iNjQwZjkxIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1z dG10LmMKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtc3RtdC5jCkBAIC02NzQs NiArNjc0LDI3IEBAIGdmY190cmFuc19zdG9wIChnZmNfY29kZSAqY29kZSwg Ym9vbCBlcnJvcl9zdG9wKQogICByZXR1cm4gZ2ZjX2ZpbmlzaF9ibG9jayAo JnNlLnByZSk7CiB9CiAKKy8qIFRyYW5zbGF0ZSB0aGUgRkFJTCBJTUFHRSBz dGF0ZW1lbnQuICBXZSBoYXZlIHRvIHRyYW5zbGF0ZSB0aGlzIHN0YXRlbWVu dAorICAgdG8gYSBydW50aW1lIGxpYnJhcnkgY2FsbC4gICovCisKK3RyZWUK K2dmY190cmFuc19mYWlsX2ltYWdlIChnZmNfY29kZSAqY29kZSBBVFRSSUJV VEVfVU5VU0VEKQoreworICBnZmNfc2Ugc2U7CisgIHRyZWUgdG1wOworCisg IC8qIFN0YXJ0IGEgbmV3IGJsb2NrIGZvciB0aGlzIHN0YXRlbWVudC4gICov CisgIGdmY19pbml0X3NlICgmc2UsIE5VTEwpOworICBnZmNfc3RhcnRfYmxv Y2sgKCZzZS5wcmUpOworCisgIHRtcCA9IGJ1aWxkX2NhbGxfZXhwcl9sb2Mg KGlucHV0X2xvY2F0aW9uLAorCQkJICAgICBnZm9yX2ZuZGVjbF9jYWZfZmFp bF9pbWFnZSwgMSwKKwkJCSAgICAgYnVpbGRfaW50X2NzdCAocGNoYXJfdHlw ZV9ub2RlLCAwKSk7CisKKyAgZ2ZjX2FkZF9leHByX3RvX2Jsb2NrICgmc2Uu cHJlLCB0bXApOworICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrICgmc2UucHJl LCAmc2UucG9zdCk7CisgIHJldHVybiBnZmNfZmluaXNoX2Jsb2NrICgmc2Uu cHJlKTsKK30KIAogdHJlZQogZ2ZjX3RyYW5zX2xvY2tfdW5sb2NrIChnZmNf Y29kZSAqY29kZSwgZ2ZjX2V4ZWNfb3Agb3ApCmRpZmYgLS1naXQgYS9nY2Mv Zm9ydHJhbi90cmFucy1zdG10LmggYi9nY2MvZm9ydHJhbi90cmFucy1zdG10 LmgKaW5kZXggZjljOGU3NC4uNGI1YjRmYyAxMDA2NDQKLS0tIGEvZ2NjL2Zv cnRyYW4vdHJhbnMtc3RtdC5oCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLXN0 bXQuaApAQCAtNTYsNiArNTYsNyBAQCB0cmVlIGdmY190cmFuc19zZWxlY3Qg KGdmY19jb2RlICopOwogdHJlZSBnZmNfdHJhbnNfc3luYyAoZ2ZjX2NvZGUg KiwgZ2ZjX2V4ZWNfb3ApOwogdHJlZSBnZmNfdHJhbnNfbG9ja191bmxvY2sg KGdmY19jb2RlICosIGdmY19leGVjX29wKTsKIHRyZWUgZ2ZjX3RyYW5zX2V2 ZW50X3Bvc3Rfd2FpdCAoZ2ZjX2NvZGUgKiwgZ2ZjX2V4ZWNfb3ApOwordHJl ZSBnZmNfdHJhbnNfZmFpbF9pbWFnZSAoZ2ZjX2NvZGUgKik7CiB0cmVlIGdm Y190cmFuc19mb3JhbGwgKGdmY19jb2RlICopOwogdHJlZSBnZmNfdHJhbnNf d2hlcmUgKGdmY19jb2RlICopOwogdHJlZSBnZmNfdHJhbnNfYWxsb2NhdGUg KGdmY19jb2RlICopOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMu YyBiL2djYy9mb3J0cmFuL3RyYW5zLmMKaW5kZXggMjhkMTM0MS4uMWY1ZDdm MyAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMuYworKysgYi9nY2Mv Zm9ydHJhbi90cmFucy5jCkBAIC0xODI2LDYgKzE4MjYsMTAgQEAgdHJhbnNf Y29kZSAoZ2ZjX2NvZGUgKiBjb2RlLCB0cmVlIGNvbmQpCiAJICByZXMgPSBn ZmNfdHJhbnNfZXZlbnRfcG9zdF93YWl0IChjb2RlLCBjb2RlLT5vcCk7CiAJ ICBicmVhazsKIAorCWNhc2UgRVhFQ19GQUlMX0lNQUdFOgorCSAgcmVzID0g Z2ZjX3RyYW5zX2ZhaWxfaW1hZ2UgKGNvZGUpOworCSAgYnJlYWs7CisKIAlj YXNlIEVYRUNfRk9SQUxMOgogCSAgcmVzID0gZ2ZjX3RyYW5zX2ZvcmFsbCAo Y29kZSk7CiAJICBicmVhazsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Ry YW5zLmggYi9nY2MvZm9ydHJhbi90cmFucy5oCmluZGV4IDUxMjYxNWEuLmM2 YjE0MmYgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLmgKKysrIGIv Z2NjL2ZvcnRyYW4vdHJhbnMuaApAQCAtNzc2LDYgKzc3Niw5IEBAIGV4dGVy biBHVFkoKCkpIHRyZWUgZ2Zvcl9mbmRlY2xfY2FmX3VubG9jazsKIGV4dGVy biBHVFkoKCkpIHRyZWUgZ2Zvcl9mbmRlY2xfY2FmX2V2ZW50X3Bvc3Q7CiBl eHRlcm4gR1RZKCgpKSB0cmVlIGdmb3JfZm5kZWNsX2NhZl9ldmVudF93YWl0 OwogZXh0ZXJuIEdUWSgoKSkgdHJlZSBnZm9yX2ZuZGVjbF9jYWZfZXZlbnRf cXVlcnk7CitleHRlcm4gR1RZKCgpKSB0cmVlIGdmb3JfZm5kZWNsX2NhZl9m YWlsX2ltYWdlOworZXh0ZXJuIEdUWSgoKSkgdHJlZSBnZm9yX2ZuZGVjbF9j YWZfZmFpbGVkX2ltYWdlczsKK2V4dGVybiBHVFkoKCkpIHRyZWUgZ2Zvcl9m bmRlY2xfY2FmX2ltYWdlX3N0YXR1czsKIGV4dGVybiBHVFkoKCkpIHRyZWUg Z2Zvcl9mbmRlY2xfY29fYnJvYWRjYXN0OwogZXh0ZXJuIEdUWSgoKSkgdHJl ZSBnZm9yX2ZuZGVjbF9jb19tYXg7CiBleHRlcm4gR1RZKCgpKSB0cmVlIGdm b3JfZm5kZWNsX2NvX21pbjsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvY29hcnJheV9mYWlsX3N0LmY5MCBiL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvY29hcnJheV9mYWlsX3N0LmY5MApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDRkYzM4Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jb2FycmF5X2Zh aWxfc3QuZjkwCkBAIC0wLDAgKzEsMjEgQEAKKyEgeyBkZy1kbyBjb21waWxl IH0KKyEgeyBkZy1vcHRpb25zICItZmR1bXAtdHJlZS1vcmlnaW5hbCAtZmNv YXJyYXk9bGliIiB9CishCitwcm9ncmFtIGZhaWxfc3RhdGVtZW50CisgIGlt cGxpY2l0IG5vbmUKKworICBpbnRlZ2VyIDo6IG1lLG5wLHN0YXQKKworICBt ZSA9IHRoaXNfaW1hZ2UoKQorICBucCA9IG51bV9pbWFnZXMoKQorICBzdGF0 ID0gMAorCisgIGlmKG1lID09IDEpIGZhaWwgaW1hZ2UKKworICBzeW5jIGFs bChzdGF0PXN0YXQpCisKKyAgaWYoc3RhdCAvPSAwKSB3cml0ZSgqLCopICdJ bWFnZSBmYWlsZWQgZHVyaW5nIHN5bmMnCisKK2VuZCBwcm9ncmFtIGZhaWxf c3RhdGVtZW50CisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRp bWVzICJfZ2ZvcnRyYW5fY2FmX2ZhaWxfaW1hZ2UgXFxcKDBCXFxcKTsiIDEg Im9yaWdpbmFsIiB9IH0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvY29hcnJheV9mYWlsZWRfaW1hZ2VzLmY5MCBiL2djYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvY29hcnJheV9mYWlsZWRfaW1hZ2VzLmY5MApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjRlZDI1Ci0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9j b2FycmF5X2ZhaWxlZF9pbWFnZXMuZjkwCkBAIC0wLDAgKzEsMjEgQEAKKyEg eyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItZmR1bXAtdHJl ZS1vcmlnaW5hbCAtZmNvYXJyYXk9bGliIiB9CishCitwcm9ncmFtIHRlc3Rf ZmFpbGVkX2ltYWdlcworICBpbXBsaWNpdCBub25lCisKKyAgaW50ZWdlciA6 OiBtZSxucCxzdGF0CisgIGNoYXJhY3RlcihsZW49MSkgOjogYworCisgIG1l ID0gdGhpc19pbWFnZSgpCisgIG5wID0gbnVtX2ltYWdlcygpCisgIHN0YXQg PSAwCisKKyAgc3luYyBhbGwoc3RhdD1zdGF0KQorCisgIGlmKHN0YXQgLz0g MCkgdGhlbgorICAgICB3cml0ZSgqLCopIGZhaWxlZF9pbWFnZXMoKQorICBl bmRpZgorZW5kIHByb2dyYW0gdGVzdF9mYWlsZWRfaW1hZ2VzCisKKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJfZ2ZvcnRyYW5fY2Fm X2ZhaWxlZF9pbWFnZXMgXFxcKCZhdG1wLjEsIDBCLCAwQlxcXCk7IiAxICJv cmlnaW5hbCIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2NvYXJyYXlfZmFpbGVkX2ltYWdlc19lcnIuZjkwIGIvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9jb2FycmF5X2ZhaWxlZF9pbWFnZXNfZXJy LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWE2 MjI5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9jb2FycmF5X2ZhaWxlZF9pbWFnZXNfZXJyLmY5MApAQCAtMCwwICsx LDE5IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctb3B0aW9ucyAi LWZkdW1wLXRyZWUtb3JpZ2luYWwgLWZjb2FycmF5PWxpYiIgfQorIQorcHJv Z3JhbSB0ZXN0X2ZhaWxlZF9pbWFnZXNfZXJyCisgIGltcGxpY2l0IG5vbmUK KworICBpbnRlZ2VyIDo6IG1lLG5wLHN0YXQKKyAgY2hhcmFjdGVyKGxlbj0x KSA6OiBjCisKKyAgbWUgPSB0aGlzX2ltYWdlKCkKKyAgbnAgPSBudW1faW1h Z2VzKCkKKyAgc3RhdCA9IDAKKworICBzeW5jIGFsbChzdGF0PXN0YXQpCisK KyAgaWYoc3RhdCAvPSAwKSB0aGVuCisgICAgIHdyaXRlKCosKikgZmFpbGVk X2ltYWdlcyhtZSkgISB7IGRnLWVycm9yICJURUFNIGFyZ3VtZW50IG9mIHRo ZSBGQUlMRURfSU1BR0VTIGludHJpbnNpYyBmdW5jdGlvbiBhdCAuMS4gbm90 IHlldCBzdXBwb3J0ZWQiIH0KKyAgZW5kaWYKK2VuZCBwcm9ncmFtIHRlc3Rf ZmFpbGVkX2ltYWdlc19lcnIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvY29hcnJheV9pbWFnZV9zdGF0dXMuZjkwIGIvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9jb2FycmF5X2ltYWdlX3N0YXR1cy5mOTAK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE0NWRhNwot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Y29hcnJheV9pbWFnZV9zdGF0dXMuZjkwCkBAIC0wLDAgKzEsMjEgQEAKKyEg eyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItZmR1bXAtdHJl ZS1vcmlnaW5hbCAtZmNvYXJyYXk9bGliIiB9CishCitwcm9ncmFtIHRlc3Rf aW1hZ2Vfc3RhdHVzCisgIGltcGxpY2l0IG5vbmUKKworICBpbnRlZ2VyIDo6 IG1lLG5wLHN0YXQKKyAgY2hhcmFjdGVyKGxlbj0xKSA6OiBjCisKKyAgbWUg PSB0aGlzX2ltYWdlKCkKKyAgbnAgPSBudW1faW1hZ2VzKCkKKyAgc3RhdCA9 IDAKKworICBzeW5jIGFsbChzdGF0PXN0YXQpCisKKyAgaWYoc3RhdCAvPSAw KSB0aGVuCisgICAgIHdyaXRlKCosKikgaW1hZ2Vfc3RhdHVzKDEpCisgIGVu ZGlmCitlbmQgcHJvZ3JhbSB0ZXN0X2ltYWdlX3N0YXR1cworCishIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiX2dmb3J0cmFuX2NhZl9p bWFnZV9zdGF0dXMgXFxcKDEsIC0xXFxcKTsiIDEgIm9yaWdpbmFsIiB9IH0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY29hcnJh eV9pbWFnZV9zdGF0dXNfZXJyLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvY29hcnJheV9pbWFnZV9zdGF0dXNfZXJyLmY5MApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTRlNTEzCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jb2FycmF5X2lt YWdlX3N0YXR1c19lcnIuZjkwCkBAIC0wLDAgKzEsMTkgQEAKKyEgeyBkZy1k byBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItZmR1bXAtdHJlZS1vcmln aW5hbCAtZmNvYXJyYXk9bGliIiB9CishCitwcm9ncmFtIHRlc3RfaW1hZ2Vf c3RhdHVzX2VycgorICBpbXBsaWNpdCBub25lCisKKyAgaW50ZWdlciA6OiBt ZSxucCxzdGF0CisgIGNoYXJhY3RlcihsZW49MSkgOjogYworCisgIG1lID0g dGhpc19pbWFnZSgpCisgIG5wID0gbnVtX2ltYWdlcygpCisgIHN0YXQgPSAw CisKKyAgc3luYyBhbGwoc3RhdD1zdGF0KQorCisgIGlmKHN0YXQgLz0gMCkg dGhlbgorICAgICB3cml0ZSgqLCopIGltYWdlX3N0YXR1cygxLHRlYW09MSkg ISB7IGRnLWVycm9yICJURUFNIGFyZ3VtZW50IG9mIHRoZSBJTUFHRV9TVEFU VVMgaW50cmluc2ljIGZ1bmN0aW9uIGF0IC4xLiBub3QgeWV0IHN1cHBvcnRl ZCIgfQorICBlbmRpZgorZW5kIHByb2dyYW0gdGVzdF9pbWFnZV9zdGF0dXNf ZXJyCg== --94eb2c04c6fe5f798e053829ff68--