From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12449 invoked by alias); 20 Oct 2017 18:55:23 -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 12428 invoked by uid 89); 20 Oct 2017 18:55:23 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-5.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy= X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-yw0-f171.google.com Received: from mail-yw0-f171.google.com (HELO mail-yw0-f171.google.com) (209.85.161.171) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 20 Oct 2017 18:55:20 +0000 Received: by mail-yw0-f171.google.com with SMTP id y75so7187605ywg.0; Fri, 20 Oct 2017 11:55:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=q8l0Ph38ubgdOzC1P9WWFcu/H3EOhy/qm3zJ1PhJWag=; b=KjvlAN1Xe4XGDPBM/dOf17sAU1IRy1Qb7VmD/96Ewt/9O31cT2hUPp7X4hTalQauJO +/ONNiqKoK+dhprgmRgwmc+7LmoAFBIndE7xJA6dIkGkYWe4NkOrjNHlrRe9zwaeI+t8 HHSE05POPXXPfOnv+ypG1+iurY5JHskOtnzgjYhHLlakLpmyURSmedfRBi3ANeWFBWKM S7ho1g+1ulM7CUiGkUTRO2YcPgo0ZYcsMQPRwDk4x/qblAAcGWtSKdwQN+CCHrGaQe47 Z1iAyMVWbsMySS4oP35LuamsQ8se6lnbgOiQXmsUwAOlFXzqjIEW81Yg9Bo5qqanPyB7 ykMg== X-Gm-Message-State: AMCzsaXH80/mapXZaLoscCQV99rEvMvXMX6qKX03EZoX5oKM3OHvM4Lf YnDFFfkgAFQwWH6KR53qKHnECQFI86AbMzXk8yNj4A== X-Google-Smtp-Source: ABhQp+RSehglkLgd9n3nPAlsTDyVJwwCblmijALzJddaFpUwLgmRvWlo+pWxYahHwaN1/krOOLa+ozqWXgt53YN3Eiw= X-Received: by 10.129.159.22 with SMTP id w22mr3879795ywg.129.1508525718260; Fri, 20 Oct 2017 11:55:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.129.199.4 with HTTP; Fri, 20 Oct 2017 11:55:17 -0700 (PDT) In-Reply-To: References: From: Paul Richard Thomas Date: Fri, 20 Oct 2017 19:17:00 -0000 Message-ID: Subject: Re: [Patch, fortran] PR82586 - [PDT] ICE: write_symbol(): bad module symbol To: "fortran@gcc.gnu.org" , gcc-patches Cc: gscfq@t-online.de Content-Type: multipart/mixed; boundary="94eb2c0b794c9275c6055bff03b6" X-SW-Source: 2017-10/txt/msg01382.txt.bz2 --94eb2c0b794c9275c6055bff03b6 Content-Type: text/plain; charset="UTF-8" Content-length: 2874 Dear All, In the last hour, I have added fixes for PRs 82587 and 82589. Please review them together with 82586. I will stop work on Gerhard's PDT bugs until this patch is committed. Fortunately, Steve Kargl has proposed fixes for most of them :-) Cheers Paul 2017-10-20 Paul Thomas PR fortran/82586 * decl.c (gfc_get_pdt_instance): Remove the error message that the parameter does not have a corresponding component since this is now taken care of when the derived type is resolved. Go straight to error return instead. (gfc_match_formal_arglist): Make the PDT relevant errors immediate so that parsing of the derived type can continue. (gfc_match_derived_decl): Do not check the match status on return from gfc_match_formal_arglist for the same reason. * resolve.c (resolve_fl_derived0): Check that each type parameter has a corresponding component. PR fortran/82587 * resolve.c (resolve_generic_f): Check that the derived type can be used before resolving the struture constructor. PR fortran/82589 * symbol.c (check_conflict): Add the conflicts involving PDT KIND and LEN attributes. 2017-10-20 Paul Thomas PR fortran/82586 * gfortran.dg/pdt_16.f03 : New test. * gfortran.dg/pdt_4.f03 : Catch the changed messages. * gfortran.dg/pdt_8.f03 : Ditto. PR fortran/82587 * gfortran.dg/pdt_17.f03 : New test. PR fortran/82589 * gfortran.dg/pdt_18.f03 : New test. On 20 October 2017 at 18:17, Paul Richard Thomas wrote: > Dear All, > > The attached patch is pretty clear with the ChangeLogs and is very > nearly obvious. > > Bootstrapped and regtested on FC23/x86_64 - OK for trunk? > > Paul > > 2017-10-20 Paul Thomas > > PR fortran/82586 > * decl.c (gfc_get_pdt_instance): Remove the error message that > the parameter does not have a corresponding component since > this is now taken care of when the derived type is resolved. Go > straight to error return instead. > (gfc_match_formal_arglist): Make the PDT relevant errors > immediate so that parsing of the derived type can continue. > (gfc_match_derived_decl): Do not check the match status on > return from gfc_match_formal_arglist for the same reason. > * resolve.c (resolve_fl_derived0): Check that each type > parameter has a corresponding component. > > 2017-10-20 Paul Thomas > > PR fortran/82586 > * gfortran.dg/pdt_16.f03 : New test. > * gfortran.dg/pdt_4.f03 : Catch the changed messages. > * gfortran.dg/pdt_8.f03 : Ditto. > > > -- > "If you can't explain it simply, you don't understand it well enough" > - Albert Einstein -- "If you can't explain it simply, you don't understand it well enough" - Albert Einstein --94eb2c0b794c9275c6055bff03b6 Content-Type: text/plain; charset="US-ASCII"; name="submit.diff" Content-Disposition: attachment; filename="submit.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j909420b1 Content-length: 15592 SW5kZXg6IGdjYy9mb3J0cmFuL2RlY2wuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CioqKiBnY2MvZm9ydHJhbi9kZWNsLmMJKHJldmlzaW9uIDI1Mzg0NykK LS0tIGdjYy9mb3J0cmFuL2RlY2wuYwkod29ya2luZyBjb3B5KQoqKioqKioq KioqKioqKiogZ2ZjX2dldF9wZHRfaW5zdGFuY2UgKGdmY19hY3R1YWxfYXJn bGlzdAoqKiogMzI0MiwzMjU0ICoqKioKICAgICAgICBwYXJhbSA9IHR5cGVf cGFyYW1fbmFtZV9saXN0LT5zeW07CiAgCiAgICAgICAgYzEgPSBnZmNfZmlu ZF9jb21wb25lbnQgKHBkdCwgcGFyYW0tPm5hbWUsIGZhbHNlLCB0cnVlLCBO VUxMKTsKICAgICAgICBpZiAoIXBkdC0+YXR0ci51c2VfYXNzb2MgJiYgIWMx KQohIAl7CiEgCSAgZ2ZjX2Vycm9yICgiVGhlIHR5cGUgcGFyYW1ldGVyIG5h bWUgbGlzdCBhdCAlTCBjb250YWlucyBhIHBhcmFtZXRlciAiCiEgCQkgICAg ICInJXFzJyAsIHdoaWNoIGlzIG5vdCBkZWNsYXJlZCBhcyBhIGNvbXBvbmVu dCBvZiB0aGUgdHlwZSIsCiEgCQkgICAgICZwZHQtPmRlY2xhcmVkX2F0LCBw YXJhbS0+bmFtZSk7CiEgCSAgZ290byBlcnJvcl9yZXR1cm47CiEgCX0KICAK ICAgICAgICBraW5kX2V4cHIgPSBOVUxMOwogICAgICAgIGlmICghbmFtZV9z ZWVuKQotLS0gMzI0MiwzMjUxIC0tLS0KICAgICAgICBwYXJhbSA9IHR5cGVf cGFyYW1fbmFtZV9saXN0LT5zeW07CiAgCiAgICAgICAgYzEgPSBnZmNfZmlu ZF9jb21wb25lbnQgKHBkdCwgcGFyYW0tPm5hbWUsIGZhbHNlLCB0cnVlLCBO VUxMKTsKKyAgICAgICAvKiBBbiBlcnJvciBzaG91bGQgYWxyZWFkeSBoYXZl IGJlZW4gdGhyb3duIGluIHJlc29sdmUuYworIAkgKHJlc29sdmVfZmxfZGVy aXZlZDApLiAgKi8KICAgICAgICBpZiAoIXBkdC0+YXR0ci51c2VfYXNzb2Mg JiYgIWMxKQohIAlnb3RvIGVycm9yX3JldHVybjsKICAKICAgICAgICBraW5k X2V4cHIgPSBOVUxMOwogICAgICAgIGlmICghbmFtZV9zZWVuKQoqKioqKioq KioqKioqKiogZ2ZjX21hdGNoX2Zvcm1hbF9hcmdsaXN0IChnZmNfc3ltYm9s ICpwcgoqKiogNTk4NCw1OTkwICoqKioKICAgICAgICAvKiBUaGUgbmFtZSBv ZiBhIHByb2dyYW0gdW5pdCBjYW4gYmUgaW4gYSBkaWZmZXJlbnQgbmFtZXNw YWNlLAogIAkgc28gY2hlY2sgZm9yIGl0IGV4cGxpY2l0bHkuICBBZnRlciB0 aGUgc3RhdGVtZW50IGlzIGFjY2VwdGVkLAogIAkgdGhlIG5hbWUgaXMgY2hl Y2tlZCBmb3IgZXNwZWNpYWxseSBpbiBnZmNfZ2V0X3N5bWJvbCgpLiAgKi8K ISAgICAgICBpZiAoZ2ZjX25ld19ibG9jayAhPSBOVUxMICYmIHN5bSAhPSBO VUxMCiAgCSAgJiYgc3RyY21wIChzeW0tPm5hbWUsIGdmY19uZXdfYmxvY2st Pm5hbWUpID09IDApCiAgCXsKICAJICBnZmNfZXJyb3IgKCJOYW1lICVxcyBh dCAlQyBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvY2VkdXJlIiwKLS0tIDU5ODEs NTk4NyAtLS0tCiAgICAgICAgLyogVGhlIG5hbWUgb2YgYSBwcm9ncmFtIHVu aXQgY2FuIGJlIGluIGEgZGlmZmVyZW50IG5hbWVzcGFjZSwKICAJIHNvIGNo ZWNrIGZvciBpdCBleHBsaWNpdGx5LiAgQWZ0ZXIgdGhlIHN0YXRlbWVudCBp cyBhY2NlcHRlZCwKICAJIHRoZSBuYW1lIGlzIGNoZWNrZWQgZm9yIGVzcGVj aWFsbHkgaW4gZ2ZjX2dldF9zeW1ib2woKS4gICovCiEgICAgICAgaWYgKGdm Y19uZXdfYmxvY2sgIT0gTlVMTCAmJiBzeW0gIT0gTlVMTCAmJiAhdHlwZXBh cmFtCiAgCSAgJiYgc3RyY21wIChzeW0tPm5hbWUsIGdmY19uZXdfYmxvY2st Pm5hbWUpID09IDApCiAgCXsKICAJICBnZmNfZXJyb3IgKCJOYW1lICVxcyBh dCAlQyBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvY2VkdXJlIiwKKioqKioqKioq KioqKioqIGdmY19tYXRjaF9mb3JtYWxfYXJnbGlzdCAoZ2ZjX3N5bWJvbCAq cHIKKioqIDU5OTksNjAwNSAqKioqCiAgICAgICAgbSA9IGdmY19tYXRjaF9j aGFyICgnLCcpOwogICAgICAgIGlmIChtICE9IE1BVENIX1lFUykKICAJewoh IAkgIGdmY19lcnJvciAoIlVuZXhwZWN0ZWQganVuayBpbiBmb3JtYWwgYXJn dW1lbnQgbGlzdCBhdCAlQyIpOwogIAkgIGdvdG8gY2xlYW51cDsKICAJfQog ICAgICB9Ci0tLSA1OTk2LDYwMDYgLS0tLQogICAgICAgIG0gPSBnZmNfbWF0 Y2hfY2hhciAoJywnKTsKICAgICAgICBpZiAobSAhPSBNQVRDSF9ZRVMpCiAg CXsKISAJICBpZiAodHlwZXBhcmFtKQohIAkgICAgZ2ZjX2Vycm9yX25vdyAo IkV4cGVjdGVkIHBhcmFtZXRlciBsaXN0IGluIHR5cGUgZGVjbGFyYXRpb24g IgohIAkJCSAgICJhdCAlQyIpOwohIAkgIGVsc2UKISAJICAgIGdmY19lcnJv ciAoIlVuZXhwZWN0ZWQganVuayBpbiBmb3JtYWwgYXJndW1lbnQgbGlzdCBh dCAlQyIpOwogIAkgIGdvdG8gY2xlYW51cDsKICAJfQogICAgICB9CioqKioq KioqKioqKioqKiBvazoKKioqIDYwMTYsNjAyMyAqKioqCiAgCSAgZm9yIChx ID0gcC0+bmV4dDsgcTsgcSA9IHEtPm5leHQpCiAgCSAgICBpZiAocC0+c3lt ID09IHEtPnN5bSkKICAJICAgICAgewohIAkJZ2ZjX2Vycm9yICgiRHVwbGlj YXRlIHN5bWJvbCAlcXMgaW4gZm9ybWFsIGFyZ3VtZW50IGxpc3QgIgohIAkJ CSAgICJhdCAlQyIsIHAtPnN5bS0+bmFtZSk7CiAgCiAgCQltID0gTUFUQ0hf RVJST1I7CiAgCQlnb3RvIGNsZWFudXA7Ci0tLSA2MDE3LDYwMjggLS0tLQog IAkgIGZvciAocSA9IHAtPm5leHQ7IHE7IHEgPSBxLT5uZXh0KQogIAkgICAg aWYgKHAtPnN5bSA9PSBxLT5zeW0pCiAgCSAgICAgIHsKISAJCWlmICh0eXBl cGFyYW0pCiEgCQkgIGdmY19lcnJvcl9ub3cgKCJEdXBsaWNhdGUgbmFtZSAl cXMgaW4gcGFyYW1ldGVyICIKISAJCQkJICJsaXN0IGF0ICVDIiwgcC0+c3lt LT5uYW1lKTsKISAJCWVsc2UKISAJCSAgZ2ZjX2Vycm9yICgiRHVwbGljYXRl IHN5bWJvbCAlcXMgaW4gZm9ybWFsIGFyZ3VtZW50ICIKISAJCQkgICAgICJs aXN0IGF0ICVDIiwgcC0+c3ltLT5uYW1lKTsKICAKICAJCW0gPSBNQVRDSF9F UlJPUjsKICAJCWdvdG8gY2xlYW51cDsKKioqKioqKioqKioqKioqIGdmY19t YXRjaF9kZXJpdmVkX2RlY2wgKHZvaWQpCioqKiA5ODE0LDk4MjIgKioqKgog IAogICAgaWYgKHBhcmFtZXRlcml6ZWRfdHlwZSkKICAgICAgewohICAgICAg IG0gPSBnZmNfbWF0Y2hfZm9ybWFsX2FyZ2xpc3QgKHN5bSwgMCwgMCwgdHJ1 ZSk7CiEgICAgICAgaWYgKG0gIT0gTUFUQ0hfWUVTKQohIAlyZXR1cm4gbTsK ICAgICAgICBtID0gZ2ZjX21hdGNoX2VvcyAoKTsKICAgICAgICBpZiAobSAh PSBNQVRDSF9ZRVMpCiAgCXJldHVybiBtOwotLS0gOTgxOSw5ODI3IC0tLS0K ICAKICAgIGlmIChwYXJhbWV0ZXJpemVkX3R5cGUpCiAgICAgIHsKISAgICAg ICAvKiBJZ25vcmUgZXJyb3Igb3IgbWlzbWF0Y2hlcyB0byBhdm9pZCB0aGUg Y29tcG9uZW50IGRlY2xhcmF0aW9ucwohIAkgY2F1c2luZyBwcm9ibGVtcyBs YXRlci4gICovCiEgICAgICAgZ2ZjX21hdGNoX2Zvcm1hbF9hcmdsaXN0IChz eW0sIDAsIDAsIHRydWUpOwogICAgICAgIG0gPSBnZmNfbWF0Y2hfZW9zICgp OwogICAgICAgIGlmIChtICE9IE1BVENIX1lFUykKICAJcmV0dXJuIG07Cklu ZGV4OiBnY2MvZm9ydHJhbi9yZXNvbHZlLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQoqKiogZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCShyZXZpc2lvbiAyNTM4 NDcpCi0tLSBnY2MvZm9ydHJhbi9yZXNvbHZlLmMJKHdvcmtpbmcgY29weSkK KioqKioqKioqKioqKioqIGdlbmVyaWM6CioqKiAyNjk0LDI2OTkgKioqKgot LS0gMjY5NCwyNzAxIC0tLS0KICAgICAgICBpZiAoIWdmY19jb252ZXJ0X3Rv X3N0cnVjdHVyZV9jb25zdHJ1Y3RvciAoZXhwciwgaW50ci0+c3ltLCBOVUxM LAogIAkJCQkJCSBOVUxMLCBmYWxzZSkpCiAgCXJldHVybiBmYWxzZTsKKyAg ICAgICBpZiAoIWdmY191c2VfZGVyaXZlZCAoZXhwci0+dHMudS5kZXJpdmVk KSkKKyAJcmV0dXJuIGZhbHNlOwogICAgICAgIHJldHVybiByZXNvbHZlX3N0 cnVjdHVyZV9jb25zIChleHByLCAwKTsKICAgICAgfQogIAoqKioqKioqKioq KioqKiogcmVzb2x2ZV9mbF9kZXJpdmVkMCAoZ2ZjX3N5bWJvbCAqc3ltKQoq KiogMTM4NDQsMTM4NDkgKioqKgotLS0gMTM4NDYsMTM4NTIgLS0tLQogIHsK ICAgIGdmY19zeW1ib2wqIHN1cGVyX3R5cGU7CiAgICBnZmNfY29tcG9uZW50 ICpjOworICAgZ2ZjX2Zvcm1hbF9hcmdsaXN0ICpmOwogICAgYm9vbCBzdWNj ZXNzOwogIAogICAgaWYgKHN5bS0+YXR0ci51bmxpbWl0ZWRfcG9seW1vcnBo aWMpCioqKioqKioqKioqKioqKiByZXNvbHZlX2ZsX2Rlcml2ZWQwIChnZmNf c3ltYm9sICpzeW0pCioqKiAxMzg5NiwxMzkwMSAqKioqCi0tLSAxMzg5OSwx MzkyMCAtLS0tCiAgICAgICAgJiYgIWVuc3VyZV9ub3RfYWJzdHJhY3QgKHN5 bSwgc3VwZXJfdHlwZSkpCiAgICAgIHJldHVybiBmYWxzZTsKICAKKyAgIC8q IENoZWNrIHRoYXQgdGhlcmUgaXMgYSBjb21wb25lbnQgZm9yIGV2ZXJ5IFBE VCBwYXJhbWV0ZXIuICAqLworICAgaWYgKHN5bS0+YXR0ci5wZHRfdGVtcGxh dGUpCisgICAgIHsKKyAgICAgICBmb3IgKGYgPSBzeW0tPmZvcm1hbDsgZjsg ZiA9IGYtPm5leHQpCisgCXsKKyAJICBjID0gZ2ZjX2ZpbmRfY29tcG9uZW50 IChzeW0sIGYtPnN5bS0+bmFtZSwgdHJ1ZSwgdHJ1ZSwgTlVMTCk7CisgCSAg aWYgKGMgPT0gTlVMTCkKKyAJICAgIHsKKyAJICAgICAgZ2ZjX2Vycm9yICgi UGFyYW1ldGVyaXplZCB0eXBlICVxcyBkb2VzIG5vdCBoYXZlIGEgY29tcG9u ZW50ICIKKyAJCQkgImNvcnJlc3BvbmRpbmcgdG8gcGFyYW1ldGVyICVxcyBh dCAlTCIsIHN5bS0+bmFtZSwKKyAJCQkgZi0+c3ltLT5uYW1lLCAmc3ltLT5k ZWNsYXJlZF9hdCk7CisgCSAgICAgIGJyZWFrOworIAkgICAgfQorIAl9Cisg ICAgIH0KKyAKICAgIC8qIEFkZCBkZXJpdmVkIHR5cGUgdG8gdGhlIGRlcml2 ZWQgdHlwZSBsaXN0LiAgKi8KICAgIGFkZF9kdF90b19kdF9saXN0IChzeW0p OwogIApJbmRleDogZ2NjL2ZvcnRyYW4vc3ltYm9sLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQoqKiogZ2NjL2ZvcnRyYW4vc3ltYm9sLmMJKHJldmlzaW9u IDI1Mzg0NykKLS0tIGdjYy9mb3J0cmFuL3N5bWJvbC5jCSh3b3JraW5nIGNv cHkpCioqKioqKioqKioqKioqKiBjaGVja19jb25mbGljdCAoc3ltYm9sX2F0 dHJpYnV0ZSAqYXR0ciwKKioqIDM4MiwzODggKioqKgogICAgICAqaXNfYmlu ZF9jID0gIkJJTkQoQykiLCAqcHJvY2VkdXJlID0gIlBST0NFRFVSRSIsCiAg ICAgICpwcm9jX3BvaW50ZXIgPSAiUFJPQ0VEVVJFIFBPSU5URVIiLCAqYWJz dHJhY3QgPSAiQUJTVFJBQ1QiLAogICAgICAqYXN5bmNocm9ub3VzID0gIkFT WU5DSFJPTk9VUyIsICpjb2RpbWVuc2lvbiA9ICJDT0RJTUVOU0lPTiIsCiEg ICAgICpjb250aWd1b3VzID0gIkNPTlRJR1VPVVMiLCAqZ2VuZXJpYyA9ICJH RU5FUklDIiwgKmF1dG9tYXRpYyA9ICJBVVRPTUFUSUMiOwogICAgc3RhdGlj IGNvbnN0IGNoYXIgKnRocmVhZHByaXZhdGUgPSAiVEhSRUFEUFJJVkFURSI7 CiAgICBzdGF0aWMgY29uc3QgY2hhciAqb21wX2RlY2xhcmVfdGFyZ2V0ID0g Ik9NUCBERUNMQVJFIFRBUkdFVCI7CiAgICBzdGF0aWMgY29uc3QgY2hhciAq b21wX2RlY2xhcmVfdGFyZ2V0X2xpbmsgPSAiT01QIERFQ0xBUkUgVEFSR0VU IExJTksiOwotLS0gMzgyLDM4OSAtLS0tCiAgICAgICppc19iaW5kX2MgPSAi QklORChDKSIsICpwcm9jZWR1cmUgPSAiUFJPQ0VEVVJFIiwKICAgICAgKnBy b2NfcG9pbnRlciA9ICJQUk9DRURVUkUgUE9JTlRFUiIsICphYnN0cmFjdCA9 ICJBQlNUUkFDVCIsCiAgICAgICphc3luY2hyb25vdXMgPSAiQVNZTkNIUk9O T1VTIiwgKmNvZGltZW5zaW9uID0gIkNPRElNRU5TSU9OIiwKISAgICAgKmNv bnRpZ3VvdXMgPSAiQ09OVElHVU9VUyIsICpnZW5lcmljID0gIkdFTkVSSUMi LCAqYXV0b21hdGljID0gIkFVVE9NQVRJQyIsCiEgICAgICpwZHRfbGVuID0g IkxFTiIsICpwZHRfa2luZCA9ICJLSU5EIjsKICAgIHN0YXRpYyBjb25zdCBj aGFyICp0aHJlYWRwcml2YXRlID0gIlRIUkVBRFBSSVZBVEUiOwogICAgc3Rh dGljIGNvbnN0IGNoYXIgKm9tcF9kZWNsYXJlX3RhcmdldCA9ICJPTVAgREVD TEFSRSBUQVJHRVQiOwogICAgc3RhdGljIGNvbnN0IGNoYXIgKm9tcF9kZWNs YXJlX3RhcmdldF9saW5rID0gIk9NUCBERUNMQVJFIFRBUkdFVCBMSU5LIjsK KioqKioqKioqKioqKioqIGNoZWNrX2NvbmZsaWN0IChzeW1ib2xfYXR0cmli dXRlICphdHRyLAoqKiogNjYzLDY2OCAqKioqCi0tLSA2NjQsNjg2IC0tLS0K ICAgIGNvbmYgKGVudHJ5LCBvYWNjX2RlY2xhcmVfZGV2aWNlcHRyKQogICAg Y29uZiAoZW50cnksIG9hY2NfZGVjbGFyZV9kZXZpY2VfcmVzaWRlbnQpCiAg CisgICBjb25mIChwZHRfa2luZCwgYWxsb2NhdGFibGUpCisgICBjb25mIChw ZHRfa2luZCwgcG9pbnRlcikKKyAgIGNvbmYgKHBkdF9raW5kLCBkaW1lbnNp b24pCisgICBjb25mIChwZHRfa2luZCwgY29kaW1lbnNpb24pCisgCisgICBj b25mIChwZHRfbGVuLCBhbGxvY2F0YWJsZSkKKyAgIGNvbmYgKHBkdF9sZW4s IHBvaW50ZXIpCisgICBjb25mIChwZHRfbGVuLCBkaW1lbnNpb24pCisgICBj b25mIChwZHRfbGVuLCBjb2RpbWVuc2lvbikKKyAKKyAgIGlmIChhdHRyLT5h Y2Nlc3MgPT0gQUNDRVNTX1BSSVZBVEUpCisgICAgIHsKKyAgICAgICBhMSA9 IHByaXZhdDsKKyAgICAgICBjb25mMiAocGR0X2tpbmQpOworICAgICAgIGNv bmYyIChwZHRfbGVuKTsKKyAgICAgfQorIAogICAgYTEgPSBnZmNfY29kZTJz dHJpbmcgKGZsYXZvcnMsIGF0dHItPmZsYXZvcik7CiAgCiAgICBpZiAoYXR0 ci0+aW5fbmFtZWxpc3QKSW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvcGR0XzE2LmYwMwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CioqKiBnY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL3BkdF8xNi5mMDMJKG5vbmV4aXN0ZW50 KQotLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9wZHRfMTYuZjAzCSh3 b3JraW5nIGNvcHkpCioqKioqKioqKioqKioqKgoqKiogMCAqKioqCi0tLSAx LDIxIC0tLS0KKyAhIHsgZGctZG8gY29tcGlsZSB9CisgIQorICEgVGVzdCB0 aGUgZml4IGZvciBhbGwgdGhyZWUgZXJyb3JzIGluIFBSODI1ODYKKyAhCisg ISBDb250cmlidXRlZCBieSBHIFN0ZWlubWV0eiAgPGdzY2ZxQHQtb25saW5l LmRlPgorICEKKyBtb2R1bGUgbQorICAgIHR5cGUgdChhKSAgICAgICAgICAg ICAgICAgISB7IGRnLWVycm9yICJkb2VzIG5vdCBoYXZlIGEgY29tcG9uZW50 IiB9CisgICAgZW5kIHR5cGUKKyBlbmQKKyAKKyBwcm9ncmFtIHAKKyAgICB0 eXBlIHQoYSAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiRXhwZWN0 ZWQgcGFyYW1ldGVyIGxpc3QiIH0KKyAgICAgICBpbnRlZ2VyLCBraW5kIDo6 IGEKKyAgICAgICByZWFsKGEpIDo6IHgKKyAgICBlbmQgdHlwZQorICAgIHR5 cGUgdShhLCBhKSAgICAgICAgICAgICAgISB7IGRnLWVycm9yICJEdXBsaWNh dGUgbmFtZSIgfQorICAgICAgIGludGVnZXIsIGtpbmQgOjogYSAgICAgISB7 IGRnLWVycm9yICJhbHJlYWR5IGRlY2xhcmVkIiB9CisgICAgICAgaW50ZWdl ciwgbGVuIDo6IGEgICAgICAhIHsgZGctZXJyb3IgImFscmVhZHkgZGVjbGFy ZWQiIH0KKyAgICBlbmQgdHlwZQorIGVuZApJbmRleDogZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9wZHRfMTcuZjAzCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKioqIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcGR0XzE3LmYwMwko bm9uZXhpc3RlbnQpCi0tLSBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3Bk dF8xNy5mMDMJKHdvcmtpbmcgY29weSkKKioqKioqKioqKioqKioqCioqKiAw ICoqKioKLS0tIDEsMTEgLS0tLQorICEgeyBkZy1kbyBjb21waWxlIH0KKyAh CisgISBUZXN0IHRoZSBmaXggZm9yIFBSODI1ODcKKyAhCisgISBDb250cmli dXRlZCBieSBHIFN0ZWlubWV0eiAgPGdzY2ZxQHQtb25saW5lLmRlPgorICEK KyBwcm9ncmFtIHAKKyAgICB0eXBlIHQoYSkgICAgICAgICAgICAgICAgICAg ISB7IGRnLWVycm9yICJkb2VzIG5vdCBoYXZlIGEgY29tcG9uZW50IiB9Cisg ICAgICAgaW50ZWdlcihraW5kPXQoKSkgOjogeCAgICEgeyBkZy1lcnJvciAi dXNlZCBiZWZvcmUgaXQgaXMgZGVmaW5lZCIgfQorICAgIGVuZCB0eXBlCisg ZW5kCkluZGV4OiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3BkdF8xOC5m MDMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQoqKiogZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9wZHRfMTguZjAzCShub25leGlzdGVudCkKLS0tIGdjYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcGR0XzE4LmYwMwkod29ya2luZyBjb3B5 KQoqKioqKioqKioqKioqKioKKioqIDAgKioqKgotLS0gMSwxOSAtLS0tCisg ISB7IGRnLWRvIGNvbXBpbGUgfQorICEKKyAhIFRlc3QgdGhlIGZpeCBmb3Ig UFI4MjU4OQorICEKKyAhIENvbnRyaWJ1dGVkIGJ5IEcgU3RlaW5tZXR6ICA8 Z3NjZnFAdC1vbmxpbmUuZGU+CisgIQorIG1vZHVsZSBtCisgICAgdHlwZSB0 KGEpCisgICAgICAgaW50ZWdlciwgS0lORCwgcHJpdmF0ZSA6OiBhICAgICAg ICAhIHsgZGctZXJyb3IgImF0dHJpYnV0ZSBjb25mbGljdHMgd2l0aCIgfQor ICAgICAgIGludGVnZXIsIEtJTkQsIGFsbG9jYXRhYmxlIDo6IGEgICAgISB7 IGRnLWVycm9yICJhdHRyaWJ1dGUgY29uZmxpY3RzIHdpdGgiIH0KKyAgICAg ICBpbnRlZ2VyLCBLSU5ELCBQT0lOVEVSIDo6IGEgICAgICAgICEgeyBkZy1l cnJvciAiYXR0cmlidXRlIGNvbmZsaWN0cyB3aXRoIiB9CisgICAgICAgaW50 ZWdlciwgS0lORCwgZGltZW5zaW9uKDIpIDo6IGEgICAhIHsgZGctZXJyb3Ig ImF0dHJpYnV0ZSBjb25mbGljdHMgd2l0aCIgfQorICAgICAgIGludGVnZXIs IGxlbiwgcHJpdmF0ZSA6OiBhICAgICAgICAgISB7IGRnLWVycm9yICJhdHRy aWJ1dGUgY29uZmxpY3RzIHdpdGgiIH0KKyAgICAgICBpbnRlZ2VyLCBsZW4s IGFsbG9jYXRhYmxlIDo6IGEgICAgICEgeyBkZy1lcnJvciAiYXR0cmlidXRl IGNvbmZsaWN0cyB3aXRoIiB9CisgICAgICAgaW50ZWdlciwgbGVuLCBQT0lO VEVSIDo6IGEgICAgICAgICAhIHsgZGctZXJyb3IgImF0dHJpYnV0ZSBjb25m bGljdHMgd2l0aCIgfQorICAgICAgIGludGVnZXIsIGxlbiwgZGltZW5zaW9u KDIpIDo6IGEgICAgISB7IGRnLWVycm9yICJhdHRyaWJ1dGUgY29uZmxpY3Rz IHdpdGgiIH0KKyAgICAgICBpbnRlZ2VyLCBraW5kIDo6IGEKKyAgICBlbmQg dHlwZQorIGVuZApJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9w ZHRfNC5mMDMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoqKiogZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9wZHRfNC5mMDMJKHJldmlzaW9uIDI1Mzg0NykK LS0tIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcGR0XzQuZjAzCSh3b3Jr aW5nIGNvcHkpCioqKioqKioqKioqKioqKiBlbmQgbW9kdWxlCioqKiAyNiwz MiAqKioqCiAgICBpbnRlZ2VyLCBraW5kIDo6IGJhZF9raW5kICAgICEgeyBk Zy1lcnJvciAibm90IGFsbG93ZWQgb3V0c2lkZSBhIFRZUEUgZGVmaW5pdGlv biIgfQogICAgaW50ZWdlciwgbGVuIDo6IGJhZF9sZW4gICAgICAhIHsgZGct ZXJyb3IgIm5vdCBhbGxvd2VkIG91dHNpZGUgYSBUWVBFIGRlZmluaXRpb24i IH0KICAKISAgIHR5cGUgOjogYmFkX3BkdCAoYSxiLCBjLCBkKQogICAgICBy ZWFsLCBraW5kIDo6IGEgICAgICAgICAgICAhIHsgZGctZXJyb3IgIm11c3Qg YmUgSU5URUdFUiIgfQogICAgICBJTlRFR0VSKDgpLCBraW5kIDo6IGIgICAg ICAhIHsgZGctZXJyb3IgImJlIGRlZmF1bHQgaW50ZWdlciBraW5kIiB9CiAg ICAgIHJlYWwsIExFTiA6OiBjICAgICAgICAgICAgICEgeyBkZy1lcnJvciAi bXVzdCBiZSBJTlRFR0VSIiB9Ci0tLSAyNiwzMiAtLS0tCiAgICBpbnRlZ2Vy LCBraW5kIDo6IGJhZF9raW5kICAgICEgeyBkZy1lcnJvciAibm90IGFsbG93 ZWQgb3V0c2lkZSBhIFRZUEUgZGVmaW5pdGlvbiIgfQogICAgaW50ZWdlciwg bGVuIDo6IGJhZF9sZW4gICAgICAhIHsgZGctZXJyb3IgIm5vdCBhbGxvd2Vk IG91dHNpZGUgYSBUWVBFIGRlZmluaXRpb24iIH0KICAKISAgIHR5cGUgOjog YmFkX3BkdCAoYSxiLCBjLCBkKSAgISB7IGRnLWVycm9yICJkb2VzIG5vdCBo YXZlIGEgY29tcG9uZW50IiB9CiAgICAgIHJlYWwsIGtpbmQgOjogYSAgICAg ICAgICAgICEgeyBkZy1lcnJvciAibXVzdCBiZSBJTlRFR0VSIiB9CiAgICAg IElOVEVHRVIoOCksIGtpbmQgOjogYiAgICAgICEgeyBkZy1lcnJvciAiYmUg ZGVmYXVsdCBpbnRlZ2VyIGtpbmQiIH0KICAgICAgcmVhbCwgTEVOIDo6IGMg ICAgICAgICAgICAgISB7IGRnLWVycm9yICJtdXN0IGJlIElOVEVHRVIiIH0K SW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcGR0XzguZjAzCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKioqIGdjYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvcGR0XzguZjAzCShyZXZpc2lvbiAyNTM4NDcpCi0tLSBnY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL3BkdF84LmYwMwkod29ya2luZyBjb3B5KQoq KioqKioqKioqKioqKiogdHlwZSA6OiB0KGksYSx4KSAgICAgICAgICEgeyBk Zy1lcnJvciAiZAoqKiogMTUsMjMgKioqKgogICAgcmVhbCwga2luZCA6OiB4 ICAgICAgICAhIHsgZGctZXJyb3IgIm11c3QgYmUgSU5URUdFUiIgfQogIGVu ZCB0eXBlCiAgCiEgdHlwZSA6OiB0MShrLHkpICAgICAgICAgICEgeyBkZy1l cnJvciAibm90IGRlY2xhcmVkIGFzIGEgY29tcG9uZW50IG9mIHRoZSB0eXBl IiB9CiAgICBpbnRlZ2VyLCBraW5kIDo6IGsKICBlbmQgdHlwZQogIAohIHR5 cGUodDEoNCw0KSkgOjogegogIGVuZAotLS0gMTUsMjQgLS0tLQogICAgcmVh bCwga2luZCA6OiB4ICAgICAgICAhIHsgZGctZXJyb3IgIm11c3QgYmUgSU5U RUdFUiIgfQogIGVuZCB0eXBlCiAgCiEgdHlwZSA6OiB0MShrLHkpICAgICAg ICAgICEgeyBkZy1lcnJvciAiZG9lcyBub3QgaGF2ZSBhIGNvbXBvbmVudCIg fQogICAgaW50ZWdlciwga2luZCA6OiBrCiAgZW5kIHR5cGUKICAKISAhIFRo aXMgaXMgYSBrbm9jay1vbiBmcm9tIHRoZSBwcmV2aW91cyBlcnJvcgohIHR5 cGUodDEoNCw0KSkgOjogeiAgICAgICAhIHsgZGctZXJyb3IgIkludmFsaWQg Y2hhcmFjdGVyIGluIG5hbWUiIH0KICBlbmQK --94eb2c0b794c9275c6055bff03b6--