From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 3FF893972831 for ; Fri, 2 Jul 2021 02:11:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3FF893972831 Received: from pps.filterd (m0187473.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16224O2K100006; Thu, 1 Jul 2021 22:11:36 -0400 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 39hps8bw8y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 01 Jul 2021 22:11:36 -0400 Received: from m0187473.ppops.net (m0187473.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 16224Qti100220; Thu, 1 Jul 2021 22:11:35 -0400 Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0a-001b2d01.pphosted.com with ESMTP id 39hps8bw7r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 01 Jul 2021 22:11:35 -0400 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 16222EmQ016185; Fri, 2 Jul 2021 02:11:33 GMT Received: from b06cxnps3074.portsmouth.uk.ibm.com (d06relay09.portsmouth.uk.ibm.com [9.149.109.194]) by ppma04ams.nl.ibm.com with ESMTP id 39duv8jng2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 02 Jul 2021 02:11:32 +0000 Received: from d06av26.portsmouth.uk.ibm.com (d06av26.portsmouth.uk.ibm.com [9.149.105.62]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 1622BTAK32768324 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 2 Jul 2021 02:11:29 GMT Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3CAD2AE056; Fri, 2 Jul 2021 02:11:29 +0000 (GMT) Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D4A78AE055; Fri, 2 Jul 2021 02:11:25 +0000 (GMT) Received: from KewenLins-MacBook-Pro.local (unknown [9.200.53.103]) by d06av26.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 2 Jul 2021 02:11:25 +0000 (GMT) Subject: [PATCH v4] ira: Support more matching constraint forms with param [PR100328] To: Vladimir Makarov Cc: bergner@linux.ibm.com, Bill Schmidt , Segher Boessenkool , Richard Sandiford , crazylht@gmail.com, GCC Patches References: <8a5fd52a-1cc9-6563-ee6c-f345b489654c@linux.ibm.com> <46f79a40-6927-35f3-6eda-f49d1faccbc9@redhat.com> From: "Kewen.Lin" Message-ID: <0f75aadc-c389-ad37-3383-3be5b093c3e5@linux.ibm.com> Date: Fri, 2 Jul 2021 10:11:23 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 MIME-Version: 1.0 In-Reply-To: <46f79a40-6927-35f3-6eda-f49d1faccbc9@redhat.com> Content-Type: multipart/mixed; boundary="------------64CED5A1865566CA56472408" Content-Language: en-US X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: VsWSNDXVDdebVs9h6LnX-KpCY-WQYDVc X-Proofpoint-GUID: a8iH6fGajneadG7tVNUNdnJZhYe5XWmZ X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790 definitions=2021-07-01_12:2021-07-01, 2021-07-01 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 mlxscore=0 priorityscore=1501 spamscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 phishscore=0 clxscore=1011 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2107020009 X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jul 2021 02:11:45 -0000 This is a multi-part message in MIME format. --------------64CED5A1865566CA56472408 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Hi Vladimir, on 2021/6/30 下午11:24, Vladimir Makarov wrote: > > On 2021-06-28 2:26 a.m., Kewen.Lin wrote: >> Hi! >> >> on 2021/6/9 下午1:18, Kewen.Lin via Gcc-patches wrote: >>> Hi, >>> >>> PR100328 has some details about this issue, I am trying to >>> brief it here.  In the hottest function LBM_performStreamCollideTRT >>> of SPEC2017 bmk 519.lbm_r, there are many FMA style expressions >>> (27 FMA, 19 FMS, 11 FNMA).  On rs6000, this kind of FMA style >>> insn has two flavors: FLOAT_REG and VSX_REG, the VSX_REG reg >>> class have 64 registers whose foregoing 32 ones make up the >>> whole FLOAT_REG.  There are some differences for these two >>> flavors, taking "*fma4_fpr" as example: >>> >>> (define_insn "*fma4_fpr" >>>    [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa,wa") >>>     (fma:SFDF >>>       (match_operand:SFDF 1 "gpc_reg_operand" "%,wa,wa") >>>       (match_operand:SFDF 2 "gpc_reg_operand" ",wa,0") >>>       (match_operand:SFDF 3 "gpc_reg_operand" ",0,wa")))] >>> >>> // wa => A VSX register (VSR), vs0…vs63, aka. VSX_REG. >>> // (f/d) => A floating point register, aka. FLOAT_REG. >>> >>> So for VSX_REG, we only have the destructive form, when VSX_REG >>> alternative being used, the operand 2 or operand 3 is required >>> to be the same as operand 0.  reload has to take care of this >>> constraint and create some non-free register copies if required. >>> >>> Assuming one fma insn looks like: >>>    op0 = FMA (op1, op2, op3) >>> >>> The best regclass of them are VSX_REG, when op1,op2,op3 are all dead, >>> IRA simply creates three shuffle copies for them (here the operand >>> order matters, since with the same freq, the one with smaller number >>> takes preference), but IMO both op2 and op3 should take higher priority >>> in copy queue due to the matching constraint. >>> >>> I noticed that there is one function ira_get_dup_out_num, which meant >>> to create this kind of constraint copy, but the below code looks to >>> refuse to create if there is an alternative which has valid regclass >>> without spilled need. >>> >>>        default: >>>     { >>>       enum constraint_num cn = lookup_constraint (str); >>>       enum reg_class cl = reg_class_for_constraint (cn); >>>       if (cl != NO_REGS >>>           && !targetm.class_likely_spilled_p (cl)) >>>         goto fail >>> >>>      ... >>> >>> I cooked one patch attached to make ira respect this kind of matching >>> constraint guarded with one parameter.  As I stated in the PR, I was >>> not sure this is on the right track.  The RFC patch is to check the >>> matching constraint in all alternatives, if there is one alternative >>> with matching constraint and matches the current preferred regclass >>> (or best of allocno?), it will record the output operand number and >>> further create one constraint copy for it.  Normally it can get the >>> priority against shuffle copies and the matching constraint will get >>> satisfied with higher possibility, reload doesn't create extra copies >>> to meet the matching constraint or the desirable register class when >>> it has to. >>> >>> For FMA A,B,C,D, I think ideally copies A/B, A/C, A/D can firstly stay >>> as shuffle copies, and later any of A,B,C,D gets assigned by one >>> hardware register which is a VSX register (VSX_REG) but not a FP >>> register (FLOAT_REG), which means it has to pay costs once we can NOT >>> go with VSX alternatives, so at that time it's important to respect >>> the matching constraint then we can increase the freq for the remaining >>> copies related to this (A/B, A/C, A/D).  This idea requires some side >>> tables to record some information and seems a bit complicated in the >>> current framework, so the proposed patch aggressively emphasizes the >>> matching constraint at the time of creating copies. >>> >> Comparing with the original patch (v1), this patch v3 has >> considered: (this should be v2 for this mail list, but bump >> it to be consistent as PR's). >> >>    - Excluding the case where for one preferred register class >>      there can be two or more alternatives, one of them has the >>      matching constraint, while another doesn't have.  So for >>      the given operand, even if it's assigned by a hardware reg >>      which doesn't meet the matching constraint, it can simply >>      use the alternative which doesn't have matching constraint >>      so no register move is needed.  One typical case is >>      define_insn *mov_internal2 on rs6000.  So we >>      shouldn't create constraint copy for it. >> >>    - The possible free register move in the same register class, >>      disable this if so since the register move to meet the >>      constraint is considered as free. >> >>    - Making it on by default, suggested by Segher & Vladimir, we >>      hope to get rid of the parameter if the benchmarking result >>      looks good on major targets. >> >>    - Tweaking cost when either of matching constraint two sides >>      is hardware register.  Before this patch, the constraint >>      copy is simply taken as a real move insn for pref and >>      conflict cost with one hardware register, after this patch, >>      it's allowed that there are several input operands >>      respecting the same matching constraint (but in different >>      alternatives), so we should take it to be like shuffle copy >>      for some cases to avoid over preferring/disparaging. >> >> Please check the PR comments for more details. >> >> This patch can be bootstrapped & regtested on >> powerpc64le-linux-gnu P9 and x86_64-redhat-linux, but have some >> "XFAIL->XPASS" failures on aarch64-linux-gnu.  The failure list >> was attached in the PR and thought the new assembly looks >> improved (expected). >> >> With option Ofast unroll, this patch can help to improve SPEC2017 >> bmk 508.namd_r +2.42% and 519.lbm_r +2.43% on Power8 while >> 508.namd_r +3.02% and 519.lbm_r +3.85% on Power9 without any >> remarkable degradations. >> >> Since this patch likely benefits x86_64 and aarch64, but I don't >> have performance machines with these arches at hand, could >> someone kindly help to benchmark it if possible? >> >> Many thanks in advance! >> >> btw, you can simply ignore the part about parameter >> ira-consider-dup-in-all-alts (its name/description), it's sort of >> stale, I let it be for now as we will likely get rid of it. > > Kewen, thank you for addressing remarks for the previous version of the patch.  The patch is ok to commit with some minor changes: > > o In a comment for function ira_get_dup_out_num there is no mention of effect of the param on the function returned value and returned value of single_input_op_has_cstr_p and this imho creates wrong function interface description. > > o It would be still nice to change name op_no to op_regno in ira_get_dup_out_num. > > It is ok to commit the patch to the mainline with condition that you submit the patch switching off the parameter for x86-64 right after that as Hongtao Liu has shown its negative effect on x86-64 SPEC2017. > Many thanks for your review! I've updated the patch according to your comments and also polished some comments and document words a bit. Does it look better to you? BR, Kewen --------------64CED5A1865566CA56472408 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-ira-Support-more-matching-constraint-forms-with-para.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-ira-Support-more-matching-constraint-forms-with-para.pa"; filename*1="tch" RnJvbSAyYTMzOGQ1MTYwNjc2ZTU4Y2YxM2IzZTgzYmQxMzE3MjViY2I0MjM0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZXdlbiBMaW4gPGxpbmt3QGxpbnV4LmlibS5jb20+ CkRhdGU6IE1vbiwgMjEgSnVuIDIwMjEgMjI6NTE6MDkgLTA1MDAKU3ViamVjdDogW1BBVENI IDEvMl0gaXJhOiBTdXBwb3J0IG1vcmUgbWF0Y2hpbmcgY29uc3RyYWludCBmb3JtcyB3aXRo IHBhcmFtCiBbUFIxMDAzMjhdCgpUaGlzIHBhdGNoIGlzIHRvIG1ha2UgSVJBIGNvbnNpZGVy IG1hdGNoaW5nIGNvbnN0cmFpbnQgaGVhdmlseSwKZXZlbiBpZiB0aGVyZSBpcyBhdCBsZWFz dCBvbmUgb3RoZXIgYWx0ZXJuYXRpdmUgd2l0aCBub24tTk9fUkVHCnJlZ2lzdGVyIGNsYXNz IGNvbnN0cmFpbnQsIGl0IHdpbGwgY29udGludWUgYW5kIGNoZWNrIG1hdGNoaW5nCmNvbnN0 cmFpbnQgaW4gYWxsIGF2YWlsYWJsZSBhbHRlcm5hdGl2ZXMgYW5kIHJlc3BlY3QgdGhlCm1h dGNoaW5nIGNvbnN0cmFpbnQgd2l0aCBwcmVmZXJyZWQgcmVnaXN0ZXIgY2xhc3MuCgpPbmUg dHlwaWNhbCBjYXNlIGlzIGRlc3RydWN0aXZlIEZNQSBzdHlsZSBpbnN0cnVjdGlvbiBvbiBy czYwMDAuCldpdGhvdXQgdGhpcyBwYXRjaCwgZm9yIHRoZSBtZW50aW9uZWQgRk1BIGluc3Ry dWN0aW9uLCBJUkEgd29uJ3QKcmVzcGVjdCB0aGUgbWF0Y2hpbmcgY29uc3RyYWludCBvbiBW U1hfUkVHIHNpbmNlIHRoZXJlIGFyZSBzb21lCmFsdGVybmF0aXZlIHdpdGggRkxPQVRfUkVH IHdoaWNoIGRvZXNuJ3QgaGF2ZSBtYXRjaGluZyBjb25zdHJhaW50LgpJdCBjYW4gY2F1c2Ug ZXh0cmEgcmVnaXN0ZXIgY29waWVzIHNpbmNlIGxhdGVyIHJlbG9hZCBoYXMgdG8gbWFrZQpj b2RlIHRvIHJlc3BlY3QgdGhlIGNvbnN0cmFpbnQuICBUaGlzIHBhdGNoIG1ha2UgSVJBIHJl c3BlY3QgdGhpcwptYXRjaGluZyBjb25zdHJhaW50IG9uIFZTWF9SRUcgd2hpY2ggaXMgdGhl IHByZWZlcnJlZCByZWdjbGFzcywKYnV0IGl0IGV4Y2x1ZGVzIHNvbWUgY2FzZXMgd2hlcmUg Zm9yIG9uZSBwcmVmZXJyZWQgcmVnaXN0ZXIgY2xhc3MKdGhlcmUgY2FuIGJlIHR3byBvciBt b3JlIGFsdGVybmF0aXZlcywgb25lIG9mIHRoZW0gaGFzIHRoZQptYXRjaGluZyBjb25zdHJh aW50LCB3aGlsZSBhbm90aGVyIGRvZXNuJ3QgaGF2ZS4gIEl0IGFsc28KY29uc2lkZXJzIHRo ZSBwb3NzaWJpbGl0eSBvZiBmcmVlIHJlZ2lzdGVyIGNvcHkuCgpXaXRoIG9wdGlvbiBPZmFz dCB1bnJvbGwsIHRoaXMgcGF0Y2ggY2FuIGhlbHAgdG8gaW1wcm92ZSBTUEVDMjAxNwpibWsg NTA4Lm5hbWRfciArMi40MiUgYW5kIDUxOS5sYm1fciArMi40MyUgb24gUG93ZXI4IHdoaWxl CjUwOC5uYW1kX3IgKzMuMDIlIGFuZCA1MTkubGJtX3IgKzMuODUlIG9uIFBvd2VyOSB3aXRo b3V0IGFueQpyZW1hcmthYmxlIGRlZ3JhZGF0aW9ucy4gIEl0IGFsc28gaW1wcm92ZWQgc29t ZXRoaW5nIG9uIFNWRSBhcwp0ZXN0Y2FzZSBjaGFuZ2VzIHNob3dlZCBhbmQgUmljaGFyZCdz IGNvbmZpcm1hdGlvbi4KCkJvb3RzdHJhcHBlZCAmIHJlZ3Rlc3RlZCBvbiBwb3dlcnBjNjRs ZS1saW51eC1nbnUgUDksCng4Nl82NC1yZWRoYXQtbGludXggYW5kIGFhcmNoNjQtbGludXgt Z251LgoKZ2NjL0NoYW5nZUxvZzoKCglQUiBydGwtb3B0aW1pemF0aW9uLzEwMDMyOAoJKiBk b2MvaW52b2tlLnRleGkgKGlyYS1jb25zaWRlci1kdXAtaW4tYWxsLWFsdHMpOiBEb2N1bWVu dCBuZXcKCXBhcmFtZXRlci4KCSogaXJhLmMgKGlyYV9nZXRfZHVwX291dF9udW0pOiBBZGp1 c3QgYXMgcGFyYW1ldGVyCglwYXJhbV9pcmFfY29uc2lkZXJfZHVwX2luX2FsbF9hbHRzLgoJ KiBwYXJhbXMub3B0IChpcmEtY29uc2lkZXItZHVwLWluLWFsbC1hbHRzKTogTmV3LgoJKiBp cmEtY29uZmxpY3RzLmMgKHByb2Nlc3NfcmVnc19mb3JfY29weSk6IEFkZCBvbmUgcGFyYW1l dGVyCglzaW5nbGVfaW5wdXRfb3BfaGFzX2NzdHJfcC4KCShnZXRfZnJlcV9mb3Jfc2h1ZmZs ZV9jb3B5KTogTmV3IGZ1bmN0aW9uLgoJKGFkZF9pbnNuX2FsbG9jbm9fY29waWVzKTogQWRq dXN0IGFzIHNpbmdsZV9pbnB1dF9vcF9oYXNfY3N0cl9wLgoJKiBpcmEtaW50LmggKGlyYV9n ZXRfZHVwX291dF9udW0pOiBBZGQgb25lIGJvb2wgcGFyYW1ldGVyLgoKZ2NjL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2c6CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xMDAzMjgKCSogZ2NjLnRhcmdl dC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9kaXZfZjE2LmM6IFJlbW92ZSBvbmUgeGZhaWwuCgkq IGdjYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vZGl2X2YzMi5jOiBMaWtld2lzZS4K CSogZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9kaXZfZjY0LmM6IExpa2V3aXNl LgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL2RpdnJfZjE2LmM6IExpa2V3 aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL2RpdnJfZjMyLmM6IExp a2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL2RpdnJfZjY0LmM6 IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21hZF9mMTYu YzogTGlrZXdpc2UuCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWFkX2Yz Mi5jOiBMaWtld2lzZS4KCSogZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tYWRf ZjY0LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21s YV9mMTYuYzogTGlrZXdpc2UuCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20v bWxhX2YzMi5jOiBMaWtld2lzZS4KCSogZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2Fz bS9tbGFfZjY0LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUv YXNtL21sc19mMTYuYzogTGlrZXdpc2UuCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNs ZS9hc20vbWxzX2YzMi5jOiBMaWtld2lzZS4KCSogZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9h Y2xlL2FzbS9tbHNfZjY0LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3Zl L2FjbGUvYXNtL21zYl9mMTYuYzogTGlrZXdpc2UuCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9z dmUvYWNsZS9hc20vbXNiX2YzMi5jOiBMaWtld2lzZS4KCSogZ2NjLnRhcmdldC9hYXJjaDY0 L3N2ZS9hY2xlL2FzbS9tc2JfZjY0LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNo NjQvc3ZlL2FjbGUvYXNtL211bHhfZjE2LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2Fh cmNoNjQvc3ZlL2FjbGUvYXNtL211bHhfZjMyLmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0 L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL211bHhfZjY0LmM6IExpa2V3aXNlLgoJKiBnY2MudGFy Z2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tYWRfZjE2LmM6IExpa2V3aXNlLgoJKiBnY2Mu dGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tYWRfZjMyLmM6IExpa2V3aXNlLgoJKiBn Y2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tYWRfZjY0LmM6IExpa2V3aXNlLgoJ KiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbGFfZjE2LmM6IExpa2V3aXNl LgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbGFfZjMyLmM6IExpa2V3 aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbGFfZjY0LmM6IExp a2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbHNfZjE2LmM6 IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbHNfZjMy LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbHNf ZjY0LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25t c2JfZjE2LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNt L25tc2JfZjMyLmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUv YXNtL25tc2JfZjY0LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2Fj bGUvYXNtL3N1Yl9mMTYuYzogTGlrZXdpc2UuCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9zdmUv YWNsZS9hc20vc3ViX2YzMi5jOiBMaWtld2lzZS4KCSogZ2NjLnRhcmdldC9hYXJjaDY0L3N2 ZS9hY2xlL2FzbS9zdWJfZjY0LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQv c3ZlL2FjbGUvYXNtL3N1YnJfZjE2LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNo NjQvc3ZlL2FjbGUvYXNtL3N1YnJfZjMyLmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2Fh cmNoNjQvc3ZlL2FjbGUvYXNtL3N1YnJfZjY0LmM6IExpa2V3aXNlLgotLS0KIGdjYy9kb2Mv aW52b2tlLnRleGkgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArKwogZ2NjL2ly YS1jb25mbGljdHMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkzICsrKysrKysr KystLS0KIGdjYy9pcmEtaW50LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogZ2NjL2lyYS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMTI4ICsrKysrKysrKysrKysrKystLQogZ2NjL3BhcmFtcy5vcHQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIC4uLi9nY2MudGFyZ2V0L2FhcmNoNjQvc3Zl L2FjbGUvYXNtL2Rpdl9mMTYuYyB8ICAgMiArLQogLi4uL2djYy50YXJnZXQvYWFyY2g2NC9z dmUvYWNsZS9hc20vZGl2X2YzMi5jIHwgICAyICstCiAuLi4vZ2NjLnRhcmdldC9hYXJjaDY0 L3N2ZS9hY2xlL2FzbS9kaXZfZjY0LmMgfCAgIDIgKy0KIC4uLi9hYXJjaDY0L3N2ZS9hY2xl L2FzbS9kaXZyX2YxNi5jICAgICAgICAgICB8ICAgMiArLQogLi4uL2FhcmNoNjQvc3ZlL2Fj bGUvYXNtL2RpdnJfZjMyLmMgICAgICAgICAgIHwgICAyICstCiAuLi4vYWFyY2g2NC9zdmUv YWNsZS9hc20vZGl2cl9mNjQuYyAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9nY2MudGFyZ2V0 L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21hZF9mMTYuYyB8ICAgMiArLQogLi4uL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWFkX2YzMi5jIHwgICAyICstCiAuLi4vZ2NjLnRh cmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tYWRfZjY0LmMgfCAgIDIgKy0KIC4uLi9nY2Mu dGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21sYV9mMTYuYyB8ICAgMiArLQogLi4uL2dj Yy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWxhX2YzMi5jIHwgICAyICstCiAuLi4v Z2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tbGFfZjY0LmMgfCAgIDIgKy0KIC4u Li9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21sc19mMTYuYyB8ICAgMiArLQog Li4uL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWxzX2YzMi5jIHwgICAyICst CiAuLi4vZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tbHNfZjY0LmMgfCAgIDIg Ky0KIC4uLi9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21zYl9mMTYuYyB8ICAg MiArLQogLi4uL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbXNiX2YzMi5jIHwg ICAyICstCiAuLi4vZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tc2JfZjY0LmMg fCAgIDIgKy0KIC4uLi9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tdWx4X2YxNi5jICAgICAgICAg ICB8ICAgMiArLQogLi4uL2FhcmNoNjQvc3ZlL2FjbGUvYXNtL211bHhfZjMyLmMgICAgICAg ICAgIHwgICAyICstCiAuLi4vYWFyY2g2NC9zdmUvYWNsZS9hc20vbXVseF9mNjQuYyAgICAg ICAgICAgfCAgIDIgKy0KIC4uLi9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWFkX2YxNi5jICAg ICAgICAgICB8ICAgMiArLQogLi4uL2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tYWRfZjMyLmMg ICAgICAgICAgIHwgICAyICstCiAuLi4vYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1hZF9mNjQu YyAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWxhX2Yx Ni5jICAgICAgICAgICB8ICAgMiArLQogLi4uL2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbGFf ZjMyLmMgICAgICAgICAgIHwgICAyICstCiAuLi4vYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1s YV9mNjQuYyAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9u bWxzX2YxNi5jICAgICAgICAgICB8ICAgMiArLQogLi4uL2FhcmNoNjQvc3ZlL2FjbGUvYXNt L25tbHNfZjMyLmMgICAgICAgICAgIHwgICAyICstCiAuLi4vYWFyY2g2NC9zdmUvYWNsZS9h c20vbm1sc19mNjQuYyAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9hYXJjaDY0L3N2ZS9hY2xl L2FzbS9ubXNiX2YxNi5jICAgICAgICAgICB8ICAgMiArLQogLi4uL2FhcmNoNjQvc3ZlL2Fj bGUvYXNtL25tc2JfZjMyLmMgICAgICAgICAgIHwgICAyICstCiAuLi4vYWFyY2g2NC9zdmUv YWNsZS9hc20vbm1zYl9mNjQuYyAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9nY2MudGFyZ2V0 L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL3N1Yl9mMTYuYyB8ICAgMiArLQogLi4uL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vc3ViX2YzMi5jIHwgICAyICstCiAuLi4vZ2NjLnRh cmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9zdWJfZjY0LmMgfCAgIDIgKy0KIC4uLi9hYXJj aDY0L3N2ZS9hY2xlL2FzbS9zdWJyX2YxNi5jICAgICAgICAgICB8ICAgMiArLQogLi4uL2Fh cmNoNjQvc3ZlL2FjbGUvYXNtL3N1YnJfZjMyLmMgICAgICAgICAgIHwgICAyICstCiAuLi4v YWFyY2g2NC9zdmUvYWNsZS9hc20vc3Vicl9mNjQuYyAgICAgICAgICAgfCAgIDIgKy0KIDQ0 IGZpbGVzIGNoYW5nZWQsIDI0OCBpbnNlcnRpb25zKCspLCA2NyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9nY2MvZG9jL2ludm9rZS50ZXhpIGIvZ2NjL2RvYy9pbnZva2UudGV4aQpp bmRleCBhOWZkNWZkYzEwNC4uZjQ3MGZjNmJlNTggMTAwNjQ0Ci0tLSBhL2djYy9kb2MvaW52 b2tlLnRleGkKKysrIGIvZ2NjL2RvYy9pbnZva2UudGV4aQpAQCAtMTM5MTcsNiArMTM5MTcs MTYgQEAgb2YgYXZhaWxhYmxlIHJlZ2lzdGVycyByZXNlcnZlZCBmb3Igc29tZSBvdGhlciBw dXJwb3NlcyBpcyBnaXZlbgogYnkgdGhpcyBwYXJhbWV0ZXIuICBEZWZhdWx0IG9mIHRoZSBw YXJhbWV0ZXIKIGlzIHRoZSBiZXN0IGZvdW5kIGZyb20gbnVtZXJvdXMgZXhwZXJpbWVudHMu CiAKK0BpdGVtIGlyYS1jb25zaWRlci1kdXAtaW4tYWxsLWFsdHMKK01ha2UgSVJBIHRvIGNv bnNpZGVyIG1hdGNoaW5nIGNvbnN0cmFpbnQgKGR1cGxpY2F0ZWQgb3BlcmFuZCBudW1iZXIp CitoZWF2aWx5IGluIGFsbCBhdmFpbGFibGUgYWx0ZXJuYXRpdmVzIGZvciBwcmVmZXJyZWQg cmVnaXN0ZXIgY2xhc3MuCitJZiBpdCBpcyBzZXQgYXMgemVybywgaXQgbWVhbnMgSVJBIG9u bHkgcmVzcGVjdHMgdGhlIG1hdGNoaW5nCitjb25zdHJhaW50IHdoZW4gaXQncyBpbiB0aGUg b25seSBhdmFpbGFibGUgYWx0ZXJuYXRpdmUgd2l0aCBhbgorYXBwcm9wcmlhdGUgcmVnaXN0 ZXIgY2xhc3MuICBPdGhlcndpc2UsIGl0IG1lYW5zIElSQSB3aWxsIGNoZWNrIGFsbAorYXZh aWxhYmxlIGFsdGVybmF0aXZlcyBmb3IgcHJlZmVycmVkIHJlZ2lzdGVyIGNsYXNzIGV2ZW4g aWYgaXQgaGFzCitmb3VuZCBzb21lIGNob2ljZSB3aXRoIGFuIGFwcHJvcHJpYXRlIHJlZ2lz dGVyIGNsYXNzIGFuZCByZXNwZWN0IHRoZQorZm91bmQgcXVhbGlmaWVkIG1hdGNoaW5nIGNv bnN0cmFpbnQuCisKIEBpdGVtIGxyYS1pbmhlcml0YW5jZS1lYmItcHJvYmFiaWxpdHktY3V0 b2ZmCiBMUkEgdHJpZXMgdG8gcmV1c2UgdmFsdWVzIHJlbG9hZGVkIGluIHJlZ2lzdGVycyBp biBzdWJzZXF1ZW50IGluc25zLgogVGhpcyBvcHRpbWl6YXRpb24gaXMgY2FsbGVkIGluaGVy aXRhbmNlLiAgRUJCIGlzIHVzZWQgYXMgYSByZWdpb24gdG8KZGlmZiAtLWdpdCBhL2djYy9p cmEtY29uZmxpY3RzLmMgYi9nY2MvaXJhLWNvbmZsaWN0cy5jCmluZGV4IGQ4M2NmYzFjMWE3 Li44NmM2ZjI0MmYxOCAxMDA2NDQKLS0tIGEvZ2NjL2lyYS1jb25mbGljdHMuYworKysgYi9n Y2MvaXJhLWNvbmZsaWN0cy5jCkBAIC0yMzMsMTkgKzIzMywzMCBAQCBnb190aHJvdWdoX3N1 YnJlZyAocnR4IHgsIGludCAqb2Zmc2V0KQogICByZXR1cm4gcmVnOwogfQogCisvKiBSZXR1 cm4gdGhlIHJlY29tcHV0ZWQgZnJlcXVlbmN5IGZvciB0aGlzIHNodWZmbGUgY29weSBvciBp dHMgc2ltaWxhcgorICAgY2FzZSwgc2luY2UgaXQncyBub3QgZm9yIGEgcmVhbCBtb3ZlIGlu c24sIG1ha2UgaXQgc21hbGxlci4gICovCisKK3N0YXRpYyBpbnQKK2dldF9mcmVxX2Zvcl9z aHVmZmxlX2NvcHkgKGludCBmcmVxKQoreworICByZXR1cm4gZnJlcSA8IDggPyAxIDogZnJl cSAvIDg7Cit9CisKIC8qIFByb2Nlc3MgcmVnaXN0ZXJzIFJFRzEgYW5kIFJFRzIgaW4gbW92 ZSBJTlNOIHdpdGggZXhlY3V0aW9uCiAgICBmcmVxdWVuY3kgRlJFUS4gIFRoZSBmdW5jdGlv biBhbHNvIHByb2Nlc3NlcyB0aGUgcmVnaXN0ZXJzIGluIGEKICAgIHBvdGVudGlhbCBtb3Zl IGluc24gKElOU04gPT0gTlVMTCBpbiB0aGlzIGNhc2UpIHdpdGggZnJlcXVlbmN5CiAgICBG UkVRLiAgVGhlIGZ1bmN0aW9uIGNhbiBtb2RpZnkgaGFyZCByZWdpc3RlciBjb3N0cyBvZiB0 aGUKICAgIGNvcnJlc3BvbmRpbmcgYWxsb2Nub3Mgb3IgY3JlYXRlIGEgY29weSBpbnZvbHZp bmcgdGhlIGNvcnJlc3BvbmRpbmcKICAgIGFsbG9jbm9zLiAgVGhlIGZ1bmN0aW9uIGRvZXMg bm90aGluZyBpZiB0aGUgYm90aCByZWdpc3RlcnMgYXJlIGhhcmQKLSAgIHJlZ2lzdGVycy4g IFdoZW4gbm90aGluZyBpcyBjaGFuZ2VkLCB0aGUgZnVuY3Rpb24gcmV0dXJucwotICAgRkFM U0UuICAqLworICAgcmVnaXN0ZXJzLiAgV2hlbiBub3RoaW5nIGlzIGNoYW5nZWQsIHRoZSBm dW5jdGlvbiByZXR1cm5zIEZBTFNFLgorICAgU0lOR0xFX0lOUFVUX09QX0hBU19DU1RSX1Ag aXMgb25seSBtZWFuaW5nZnVsIHdoZW4gY29uc3RyYWludF9wCisgICBpcyB0cnVlLCBzZWUg ZnVuY3Rpb24gaXJhX2dldF9kdXBfb3V0X251bSBmb3IgaXRzIG1lYW5pbmcuICAqLwogc3Rh dGljIGJvb2wKLXByb2Nlc3NfcmVnc19mb3JfY29weSAocnR4IHJlZzEsIHJ0eCByZWcyLCBi b29sIGNvbnN0cmFpbnRfcCwKLQkJICAgICAgIHJ0eF9pbnNuICppbnNuLCBpbnQgZnJlcSkK K3Byb2Nlc3NfcmVnc19mb3JfY29weSAocnR4IHJlZzEsIHJ0eCByZWcyLCBib29sIGNvbnN0 cmFpbnRfcCwgcnR4X2luc24gKmluc24sCisJCSAgICAgICBpbnQgZnJlcSwgYm9vbCBzaW5n bGVfaW5wdXRfb3BfaGFzX2NzdHJfcCA9IHRydWUpCiB7Ci0gIGludCBhbGxvY25vX3ByZWZl cmVuY2VkX2hhcmRfcmVnbm8sIGNvc3QsIGluZGV4LCBvZmZzZXQxLCBvZmZzZXQyOworICBp bnQgYWxsb2Nub19wcmVmZXJlbmNlZF9oYXJkX3JlZ25vLCBpbmRleCwgb2Zmc2V0MSwgb2Zm c2V0MjsKKyAgaW50IGNvc3QsIGNvbmZsaWN0X2Nvc3QsIG1vdmVfY29zdDsKICAgYm9vbCBv bmx5X3JlZ3NfcDsKICAgaXJhX2FsbG9jbm9fdCBhOwogICByZWdfY2xhc3NfdCByY2xhc3Ms IGFjbGFzczsKQEAgLTMwNiw5ICszMTcsNTIgQEAgcHJvY2Vzc19yZWdzX2Zvcl9jb3B5IChy dHggcmVnMSwgcnR4IHJlZzIsIGJvb2wgY29uc3RyYWludF9wLAogICAgIHJldHVybiBmYWxz ZTsKICAgaXJhX2luaXRfcmVnaXN0ZXJfbW92ZV9jb3N0X2lmX25lY2Vzc2FyeSAobW9kZSk7 CiAgIGlmIChIQVJEX1JFR0lTVEVSX1AgKHJlZzEpKQotICAgIGNvc3QgPSBpcmFfcmVnaXN0 ZXJfbW92ZV9jb3N0W21vZGVdW2FjbGFzc11bcmNsYXNzXSAqIGZyZXE7CisgICAgbW92ZV9j b3N0ID0gaXJhX3JlZ2lzdGVyX21vdmVfY29zdFttb2RlXVthY2xhc3NdW3JjbGFzc107Cisg IGVsc2UKKyAgICBtb3ZlX2Nvc3QgPSBpcmFfcmVnaXN0ZXJfbW92ZV9jb3N0W21vZGVdW3Jj bGFzc11bYWNsYXNzXTsKKworICBpZiAoIXNpbmdsZV9pbnB1dF9vcF9oYXNfY3N0cl9wKQor ICAgIHsKKyAgICAgIC8qIFdoZW4gdGhpcyBpcyBhIGNvbnN0cmFpbnQgY29weSBhbmQgdGhl IG1hdGNoaW5nIGNvbnN0cmFpbnQKKwkgZG9lc24ndCBvbmx5IGV4aXN0IGZvciB0aGlzIGdp dmVuIG9wZXJhbmQgYnV0IGFsc28gZm9yIHNvbWUKKwkgb3RoZXIgb3BlcmFuZChzKSwgaXQg bWVhbnMgc2F2aW5nIHRoZSBwb3NzaWJsZSBtb3ZlIGNvc3QgZG9lcworCSBOT1QgbmVlZCB0 byByZXF1aXJlIHJlZzEgYW5kIHJlZzIgdG8gdXNlIHRoZSBzYW1lIGhhcmR3YXJlCisJIHJl Z2lzdGVyLCBzbyB0aGlzIGhhcmR3YXJlIHByZWZlcmVuY2UgaXNuJ3QgcmVxdWlyZWQgdG8g YmUKKwkgZml4ZWQuICBUbyBhdm9pZCBpdCB0byBvdmVyIHByZWZlciB0aGlzIGhhcmR3YXJl IHJlZ2lzdGVyLAorCSBhbmQgb3ZlciBkaXNwYXJhZ2UgdGhpcyBoYXJkd2FyZSByZWdpc3Rl ciBvbiBjb25mbGljdGVkCisJIG9iamVjdHMsIHdlIG5lZWQgc29tZSBjb3N0IHR3ZWFraW5n IGhlcmUsIHNpbWlsYXIgdG8gd2hhdAorCSB3ZSBkbyBmb3Igc2h1ZmZsZSBjb3B5LiAgKi8K KyAgICAgIGdjY19hc3NlcnQgKGNvbnN0cmFpbnRfcCk7CisgICAgICBpbnQgcmVkdWNlZF9m cmVxID0gZ2V0X2ZyZXFfZm9yX3NodWZmbGVfY29weSAoZnJlcSk7CisgICAgICBpZiAoSEFS RF9SRUdJU1RFUl9QIChyZWcxKSkKKwkvKiBGb3IgcmVnMiA9IG9wY29kZShyZWcxLCByZWcz IC4uLiksIGFzc3VtZSB0aGF0IHJlZzMgaXMgYQorCSAgIHBzZXVkbyByZWdpc3RlciB3aGlj aCBoYXMgbWF0Y2hpbmcgY29uc3RyYWludCBvbiByZWcyLAorCSAgIGV2ZW4gaWYgcmVnMiBp c24ndCBhc3NpZ25lZCBieSByZWcxLCBpdCdzIHN0aWxsIHBvc3NpYmxlCisJICAgbm90IHRv IGhhdmUgcmVnaXN0ZXIgbW92ZXMgaWYgcmVnMiBhbmQgcmVnMyB1c2UgdGhlIHNhbWUKKwkg ICBoYXJkd2FyZSByZWdpc3Rlci4gIFNvIHRvIGF2b2lkIHRoZSBhbGxvY2F0aW9uIHRvIG92 ZXIKKwkgICBwcmVmZXIgcmVnMSwgd2UgY2FuIGp1c3QgdGFrZSBpdCBhcyBhIHNodWZmbGUg Y29weS4gICovCisJY29zdCA9IGNvbmZsaWN0X2Nvc3QgPSBtb3ZlX2Nvc3QgKiByZWR1Y2Vk X2ZyZXE7CisgICAgICBlbHNlCisJeworCSAgLyogRm9yIHJlZzEgPSBvcGNvZGUocmVnMiwg cmVnMyAuLi4pLCBhc3N1bWUgdGhhdCByZWczIGlzIGEKKwkgICAgIHBzZXVkbyByZWdpc3Rl ciB3aGljaCBoYXMgbWF0Y2hpbmcgY29uc3RyYWludCBvbiByZWcyLAorCSAgICAgdG8gc2F2 ZSB0aGUgcmVnaXN0ZXIgbW92ZSwgaXQncyBiZXR0ZXIgdG8gYXNzaWduIHJlZzEKKwkgICAg IHRvIGVpdGhlciBvZiByZWcyIGFuZCByZWczIChvciBvbmUgb2Ygb3RoZXIgcHNldWRvcyBs aWtlCisJICAgICByZWczKSwgaXQncyByZWFzb25hYmxlIHRvIHVzZSBmcmVxIGZvciB0aGUg Y29zdC4gIEJ1dAorCSAgICAgZm9yIGNvbmZsaWN0X2Nvc3QsIHNpbmNlIHJlZzIgYW5kIHJl ZzMgY29uZmxpY3RzIHdpdGgKKwkgICAgIGVhY2ggb3RoZXIsIGJvdGggb2YgdGhlbSBoYXMg dGhlIGNoYW5jZSB0byBiZSBhc3NpZ25lZAorCSAgICAgYnkgcmVnMSwgYXNzdW1lIHJlZzMg aGFzIG9uZSBjb3B5IHdoaWNoIGFsc28gY29uZmxpY3RzCisJICAgICB3aXRoIHJlZzIsIHdl IHNob3VsZG4ndCBtYWtlIGl0IGxlc3MgcHJlZmVycmVkIG9uIHJlZzEKKwkgICAgIHNpbmNl IHJlZzMgaGFzIHRoZSBzYW1lIGNoYW5jZSB0byBiZSBhc3NpZ25lZCBieSByZWcxLgorCSAg ICAgU28gaXQgYWRqdXN0cyB0aGUgY29uZmxpY19jb3N0IHRvIG1ha2UgaXQgc2FtZSBhcyB3 aGF0CisJICAgICB3ZSB1c2UgZm9yIHNodWZmbGUgY29weS4gICovCisJICBjb3N0ID0gbW92 ZV9jb3N0ICogZnJlcTsKKwkgIGNvbmZsaWN0X2Nvc3QgPSBtb3ZlX2Nvc3QgKiByZWR1Y2Vk X2ZyZXE7CisJfQorICAgIH0KICAgZWxzZQotICAgIGNvc3QgPSBpcmFfcmVnaXN0ZXJfbW92 ZV9jb3N0W21vZGVdW3JjbGFzc11bYWNsYXNzXSAqIGZyZXE7CisgICAgY29zdCA9IGNvbmZs aWN0X2Nvc3QgPSBtb3ZlX2Nvc3QgKiBmcmVxOworCiAgIGRvCiAgICAgewogICAgICAgaXJh X2FsbG9jYXRlX2FuZF9zZXRfY29zdHMKQEAgLTMxNyw3ICszNzEsNyBAQCBwcm9jZXNzX3Jl Z3NfZm9yX2NvcHkgKHJ0eCByZWcxLCBydHggcmVnMiwgYm9vbCBjb25zdHJhaW50X3AsCiAg ICAgICBpcmFfYWxsb2NhdGVfYW5kX3NldF9jb3N0cwogCSgmQUxMT0NOT19DT05GTElDVF9I QVJEX1JFR19DT1NUUyAoYSksIGFjbGFzcywgMCk7CiAgICAgICBBTExPQ05PX0hBUkRfUkVH X0NPU1RTIChhKVtpbmRleF0gLT0gY29zdDsKLSAgICAgIEFMTE9DTk9fQ09ORkxJQ1RfSEFS RF9SRUdfQ09TVFMgKGEpW2luZGV4XSAtPSBjb3N0OworICAgICAgQUxMT0NOT19DT05GTElD VF9IQVJEX1JFR19DT1NUUyAoYSlbaW5kZXhdIC09IGNvbmZsaWN0X2Nvc3Q7CiAgICAgICBp ZiAoQUxMT0NOT19IQVJEX1JFR19DT1NUUyAoYSlbaW5kZXhdIDwgQUxMT0NOT19DTEFTU19D T1NUIChhKSkKIAlBTExPQ05PX0NMQVNTX0NPU1QgKGEpID0gQUxMT0NOT19IQVJEX1JFR19D T1NUUyAoYSlbaW5kZXhdOwogICAgICAgaXJhX2FkZF9hbGxvY25vX3ByZWYgKGEsIGFsbG9j bm9fcHJlZmVyZW5jZWRfaGFyZF9yZWdubywgZnJlcSk7CkBAIC00MjAsNyArNDc0LDggQEAg YWRkX2luc25fYWxsb2Nub19jb3BpZXMgKHJ0eF9pbnNuICppbnNuKQogICAgICAgb3BlcmFu ZCA9IHJlY29nX2RhdGEub3BlcmFuZFtpXTsKICAgICAgIGlmICghIFJFR19TVUJSRUdfUCAo b3BlcmFuZCkpCiAJY29udGludWU7Ci0gICAgICBpZiAoKG4gPSBpcmFfZ2V0X2R1cF9vdXRf bnVtIChpLCBhbHRzKSkgPj0gMCkKKyAgICAgIGJvb2wgc2luZ2xlX2lucHV0X29wX2hhc19j c3RyX3A7CisgICAgICBpZiAoKG4gPSBpcmFfZ2V0X2R1cF9vdXRfbnVtIChpLCBhbHRzLCBz aW5nbGVfaW5wdXRfb3BfaGFzX2NzdHJfcCkpID49IDApCiAJewogCSAgYm91bmRfcFtuXSA9 IHRydWU7CiAJICBkdXAgPSByZWNvZ19kYXRhLm9wZXJhbmRbbl07CkBAIC00MjksOCArNDg0 LDggQEAgYWRkX2luc25fYWxsb2Nub19jb3BpZXMgKHJ0eF9pbnNuICppbnNuKQogCQkJCVJF R19QIChvcGVyYW5kKQogCQkJCT8gb3BlcmFuZAogCQkJCTogU1VCUkVHX1JFRyAob3BlcmFu ZCkpICE9IE5VTExfUlRYKQotCSAgICBwcm9jZXNzX3JlZ3NfZm9yX2NvcHkgKG9wZXJhbmQs IGR1cCwgdHJ1ZSwgTlVMTCwKLQkJCQkgICBmcmVxKTsKKwkgICAgcHJvY2Vzc19yZWdzX2Zv cl9jb3B5IChvcGVyYW5kLCBkdXAsIHRydWUsIE5VTEwsIGZyZXEsCisJCQkJICAgc2luZ2xl X2lucHV0X29wX2hhc19jc3RyX3ApOwogCX0KICAgICB9CiAgIGZvciAoaSA9IDA7IGkgPCBy ZWNvZ19kYXRhLm5fb3BlcmFuZHM7IGkrKykKQEAgLTQ0MCwxMyArNDk1LDE1IEBAIGFkZF9p bnNuX2FsbG9jbm9fY29waWVzIChydHhfaW5zbiAqaW5zbikKIAkgICYmIGZpbmRfcmVnX25v dGUgKGluc24sIFJFR19ERUFELAogCQkJICAgIFJFR19QIChvcGVyYW5kKQogCQkJICAgID8g b3BlcmFuZCA6IFNVQlJFR19SRUcgKG9wZXJhbmQpKSAhPSBOVUxMX1JUWCkKLQkvKiBJZiBh biBvcGVyYW5kIGRpZXMsIHByZWZlciBpdHMgaGFyZCByZWdpc3RlciBmb3IgdGhlIG91dHB1 dAotCSAgIG9wZXJhbmRzIGJ5IGRlY3JlYXNpbmcgdGhlIGhhcmQgcmVnaXN0ZXIgY29zdCBv ciBjcmVhdGluZwotCSAgIHRoZSBjb3JyZXNwb25kaW5nIGFsbG9jbm8gY29waWVzLiAgVGhl IGNvc3Qgd2lsbCBub3QKLQkgICBjb3JyZXNwb25kIHRvIGEgcmVhbCBtb3ZlIGluc24gY29z dCwgc28gbWFrZSB0aGUgZnJlcXVlbmN5Ci0JICAgc21hbGxlci4gICovCi0JcHJvY2Vzc19y ZWdfc2h1ZmZsZXMgKGluc24sIG9wZXJhbmQsIGksIGZyZXEgPCA4ID8gMSA6IGZyZXEgLyA4 LAotCQkJICAgICAgYm91bmRfcCk7CisJeworCSAgLyogSWYgYW4gb3BlcmFuZCBkaWVzLCBw cmVmZXIgaXRzIGhhcmQgcmVnaXN0ZXIgZm9yIHRoZSBvdXRwdXQKKwkgICAgIG9wZXJhbmRz IGJ5IGRlY3JlYXNpbmcgdGhlIGhhcmQgcmVnaXN0ZXIgY29zdCBvciBjcmVhdGluZworCSAg ICAgdGhlIGNvcnJlc3BvbmRpbmcgYWxsb2NubyBjb3BpZXMuICBUaGUgY29zdCB3aWxsIG5v dAorCSAgICAgY29ycmVzcG9uZCB0byBhIHJlYWwgbW92ZSBpbnNuIGNvc3QsIHNvIG1ha2Ug dGhlIGZyZXF1ZW5jeQorCSAgICAgc21hbGxlci4gICovCisJICBpbnQgbmV3X2ZyZXEgPSBn ZXRfZnJlcV9mb3Jfc2h1ZmZsZV9jb3B5IChmcmVxKTsKKwkgIHByb2Nlc3NfcmVnX3NodWZm bGVzIChpbnNuLCBvcGVyYW5kLCBpLCBuZXdfZnJlcSwgYm91bmRfcCk7CisJfQogICAgIH0K IH0KIApkaWZmIC0tZ2l0IGEvZ2NjL2lyYS1pbnQuaCBiL2djYy9pcmEtaW50LmgKaW5kZXgg MzFlMDEzYjA0NjEuLmRhNzQ4NjI2ZTMxIDEwMDY0NAotLS0gYS9nY2MvaXJhLWludC5oCisr KyBiL2djYy9pcmEtaW50LmgKQEAgLTk3MSw3ICs5NzEsNyBAQCBleHRlcm4gdm9pZCBpcmFf ZGVidWdfZGlzcG9zaXRpb24gKHZvaWQpOwogZXh0ZXJuIHZvaWQgaXJhX2RlYnVnX2FsbG9j bm9fY2xhc3NlcyAodm9pZCk7CiBleHRlcm4gdm9pZCBpcmFfaW5pdF9yZWdpc3Rlcl9tb3Zl X2Nvc3QgKG1hY2hpbmVfbW9kZSk7CiBleHRlcm4gYWx0ZXJuYXRpdmVfbWFzayBpcmFfc2V0 dXBfYWx0cyAocnR4X2luc24gKik7Ci1leHRlcm4gaW50IGlyYV9nZXRfZHVwX291dF9udW0g KGludCwgYWx0ZXJuYXRpdmVfbWFzayk7CitleHRlcm4gaW50IGlyYV9nZXRfZHVwX291dF9u dW0gKGludCwgYWx0ZXJuYXRpdmVfbWFzaywgYm9vbCAmKTsKIAogLyogaXJhLWJ1aWxkLmMg Ki8KIApkaWZmIC0tZ2l0IGEvZ2NjL2lyYS5jIGIvZ2NjL2lyYS5jCmluZGV4IDYzOGVmNGVh MTdlLi44NjZmYjk4ZjJlNSAxMDA2NDQKLS0tIGEvZ2NjL2lyYS5jCisrKyBiL2djYy9pcmEu YwpAQCAtMTkyMiw5ICsxOTIyLDI1IEBAIGlyYV9zZXR1cF9hbHRzIChydHhfaW5zbiAqaW5z bikKIC8qIFJldHVybiB0aGUgbnVtYmVyIG9mIHRoZSBvdXRwdXQgbm9uLWVhcmx5IGNsb2Ji ZXIgb3BlcmFuZCB3aGljaAogICAgc2hvdWxkIGJlIHRoZSBzYW1lIGluIGFueSBjYXNlIGFz IG9wZXJhbmQgd2l0aCBudW1iZXIgT1BfTlVNIChvcgogICAgbmVnYXRpdmUgdmFsdWUgaWYg dGhlcmUgaXMgbm8gc3VjaCBvcGVyYW5kKS4gIEFMVFMgaXMgdGhlIG1hc2sKLSAgIG9mIGFs dGVybmF0aXZlcyB0aGF0IHdlIHNob3VsZCBjb25zaWRlci4gICovCisgICBvZiBhbHRlcm5h dGl2ZXMgdGhhdCB3ZSBzaG91bGQgY29uc2lkZXIuICBTSU5HTEVfSU5QVVRfT1BfSEFTX0NT VFJfUAorICAgc2hvdWxkIGJlIHNldCBpbiB0aGlzIGZ1bmN0aW9uLCBpdCBpbmRpY2F0ZXMg d2hldGhlciB0aGVyZSBpcyBvbmx5CisgICBhIHNpbmdsZSBpbnB1dCBvcGVyYW5kIHdoaWNo IGhhcyB0aGUgbWF0Y2hpbmcgY29uc3RyYWludCBvbiB0aGUKKyAgIG91dHB1dCBvcGVyYW5k IGF0IHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQgaW4gcmV0dXJuIHZhbHVlLiAgSWYgdGhlCisg ICBwYXR0ZXJuIGFsbG93cyBhbnkgb25lIG9mIHNldmVyYWwgaW5wdXQgb3BlcmFuZHMgaG9s ZHMgdGhlIG1hdGNoaW5nCisgICBjb25zdHJhaW50LCBpdCdzIHNldCBhcyBmYWxzZSwgb25l IHR5cGljYWwgY2FzZSBpcyBkZXN0cnVjdGl2ZSBGTUEKKyAgIGluc3RydWN0aW9uIG9uIHRh cmdldCByczYwMDAuICBOb3RlIHRoYXQgZm9yIGEgbm9uLU5PX1JFRyBwcmVmZXJyZWQKKyAg IHJlZ2lzdGVyIGNsYXNzIHdpdGggbm8gZnJlZSByZWdpc3RlciBtb3ZlIGNvcHksIGlmIHRo ZSBwYXJhbWV0ZXIKKyAgIFBBUkFNX0lSQV9DT05TSURFUl9EVVBfSU5fQUxMX0FMVFMgaXMg c2V0IHRvIG9uZSwgdGhpcyBmdW5jdGlvbgorICAgd2lsbCBjaGVjayBhbGwgYXZhaWxhYmxl IGFsdGVybmF0aXZlcyBmb3IgbWF0Y2hpbmcgY29uc3RyYWludHMsCisgICBldmVuIGlmIGl0 IGhhcyBmb3VuZCBvciB3aWxsIGZpbmQgb25lIGFsdGVybmF0aXZlIHdpdGggbm9uLU5PX1JF RworICAgcmVnY2xhc3MsIGl0IGNhbiByZXNwZWN0IG1vcmUgY2FzZXMgd2l0aCBtYXRjaGlu ZyBjb25zdHJhaW50cy4gIElmCisgICBQQVJBTV9JUkFfQ09OU0lERVJfRFVQX0lOX0FMTF9B TFRTIGlzIHNldCB0byB6ZXJvLAorICAgU0lOR0xFX0lOUFVUX09QX0hBU19DU1RSX1AgaXMg YWx3YXlzIHRydWUsIGl0IHdpbGwgc3RvcCB0byBmaW5kCisgICBtYXRjaGluZyBjb25zdHJh aW50IHJlbGF0aW9uc2hpcCBvbmNlIGl0IGhpdHMgc29tZSBhbHRlcm5hdGl2ZSB3aXRoCisg ICBzb21lIG5vbi1OT19SRUcgcmVnY2xhc3MuICAqLwogaW50Ci1pcmFfZ2V0X2R1cF9vdXRf bnVtIChpbnQgb3BfbnVtLCBhbHRlcm5hdGl2ZV9tYXNrIGFsdHMpCitpcmFfZ2V0X2R1cF9v dXRfbnVtIChpbnQgb3BfbnVtLCBhbHRlcm5hdGl2ZV9tYXNrIGFsdHMsCisJCSAgICAgYm9v bCAmc2luZ2xlX2lucHV0X29wX2hhc19jc3RyX3ApCiB7CiAgIGludCBjdXJyX2FsdCwgYywg b3JpZ2luYWw7CiAgIGJvb2wgaWdub3JlX3AsIHVzZV9jb21tdXRfb3BfcDsKQEAgLTE5Mzcs MTAgKzE5NTMsNDIgQEAgaXJhX2dldF9kdXBfb3V0X251bSAoaW50IG9wX251bSwgYWx0ZXJu YXRpdmVfbWFzayBhbHRzKQogICAgIHJldHVybiAtMTsKICAgc3RyID0gcmVjb2dfZGF0YS5j b25zdHJhaW50c1tvcF9udW1dOwogICB1c2VfY29tbXV0X29wX3AgPSBmYWxzZTsKKyAgc2lu Z2xlX2lucHV0X29wX2hhc19jc3RyX3AgPSB0cnVlOworCisgIHJ0eCBvcCA9IHJlY29nX2Rh dGEub3BlcmFuZFtvcF9udW1dOworICBpbnQgb3BfcmVnbm8gPSByZWdfb3Jfc3VicmVnbm8g KG9wKTsKKyAgZW51bSByZWdfY2xhc3Mgb3BfcHJlZl9jbCA9IHJlZ19wcmVmZXJyZWRfY2xh c3MgKG9wX3JlZ25vKTsKKyAgbWFjaGluZV9tb2RlIG9wX21vZGUgPSBHRVRfTU9ERSAob3Ap OworCisgIGlyYV9pbml0X3JlZ2lzdGVyX21vdmVfY29zdF9pZl9uZWNlc3NhcnkgKG9wX21v ZGUpOworICAvKiBJZiB0aGUgcHJlZmVycmVkIHJlZ2NsYXNzIGlzbid0IE5PX1JFRywgY29u dGludWUgdG8gZmluZCB0aGUgbWF0Y2hpbmcKKyAgICAgY29uc3RyYWludCBpbiBhbGwgYXZh aWxhYmxlIGFsdGVybmF0aXZlcyB3aXRoIHByZWZlcnJlZCByZWdjbGFzcywgZXZlbgorICAg ICBpZiB3ZSBoYXZlIGZvdW5kIG9yIHdpbGwgZmluZCBvbmUgYWx0ZXJuYXRpdmUgd2hvc2Ug Y29uc3RyYWludCBzdGFuZHMKKyAgICAgZm9yIGEgUkVHIChub24tTk9fUkVHKSByZWdjbGFz cy4gIE5vdGUgdGhhdCBpdCB3b3VsZCBiZSBmaW5lIG5vdCB0bworICAgICByZXNwZWN0IG1h dGNoaW5nIGNvbnN0cmFpbnQgaWYgdGhlIHJlZ2lzdGVyIGNvcHkgaXMgZnJlZSwgc28gZXhj bHVkZQorICAgICBpdC4gICovCisgIGJvb2wgcmVzcGVjdF9kdXBfZGVzcGl0ZV9yZWdfY3N0 cgorICAgID0gcGFyYW1faXJhX2NvbnNpZGVyX2R1cF9pbl9hbGxfYWx0cworICAgICAgJiYg b3BfcHJlZl9jbCAhPSBOT19SRUdTCisgICAgICAmJiBpcmFfcmVnaXN0ZXJfbW92ZV9jb3N0 W29wX21vZGVdW29wX3ByZWZfY2xdW29wX3ByZWZfY2xdID4gMDsKKworICAvKiBSZWNvcmQg dGhlIGFsdGVybmF0aXZlIHdob3NlIGNvbnN0cmFpbnQgdXNlcyB0aGUgc2FtZSByZWdjbGFz cyBhcyB0aGUKKyAgICAgcHJlZmVycmVkIHJlZ2NsYXNzLCBsYXRlciBpZiB3ZSBmaW5kIG9u ZSBtYXRjaGluZyBjb25zdHJhaW50IGZvciB0aGlzCisgICAgIG9wZXJhbmQgd2l0aCBwcmVm ZXJyZWQgcmVjbGFzcywgd2Ugd2lsbCB2aXNpdCB0aGVzZSByZWNvcmRlZAorICAgICBhbHRl cm5hdGl2ZXMgdG8gY2hlY2sgd2hldGhlciBpZiB0aGVyZSBpcyBvbmUgYWx0ZXJuYXRpdmUg aW4gd2hpY2ggbm8KKyAgICAgYW55IElOUFVUIG9wZXJhbmRzIGhhdmUgb25lIG1hdGNoaW5n IGNvbnN0cmFpbnQgc2FtZSBhcyBvdXIgY2FuZGlkYXRlLgorICAgICBJZiB5ZXMsIGl0IG1l YW5zIHRoZXJlIGlzIG9uZSBhbHRlcm5hdGl2ZSB3aGljaCBpcyBwZXJmZWN0bHkgZmluZQor ICAgICB3aXRob3V0IHNhdGlzZnlpbmcgdGhpcyBtYXRjaGluZyBjb25zdHJhaW50LiAgSWYg bm8sIGl0IG1lYW5zIGluIGFueQorICAgICBhbHRlcm5hdGl2ZXMgdGhlcmUgaXMgb25lIG90 aGVyIElOUFVUIG9wZXJhbmQgaG9sZGluZyB0aGlzIG1hdGNoaW5nCisgICAgIGNvbnN0cmFp bnQsIGl0J3MgZmluZSB0byByZXNwZWN0IHRoaXMgbWF0Y2hpbmcgY29uc3RyYWludCBhbmQg ZnVydGhlcgorICAgICBjcmVhdGUgdGhpcyBjb25zdHJhaW50IGNvcHkgc2luY2UgaXQgd291 bGQgYmVjb21lIGhhcm1sZXNzIG9uY2Ugc29tZQorICAgICBvdGhlciB0YWtlcyBwcmVmZXJl bmNlIGFuZCBpdCdzIGludGVyZmVyZWQuICAqLworICBhbHRlcm5hdGl2ZV9tYXNrIHByZWZf Y2xfYWx0czsKKwogICBmb3IgKDs7KQogICAgIHsKLSAgICAgIHJ0eCBvcCA9IHJlY29nX2Rh dGEub3BlcmFuZFtvcF9udW1dOwotICAgICAgCisgICAgICBwcmVmX2NsX2FsdHMgPSAwOwor CiAgICAgICBmb3IgKGN1cnJfYWx0ID0gMCwgaWdub3JlX3AgPSAhVEVTVF9CSVQgKGFsdHMs IGN1cnJfYWx0KSwKIAkgICBvcmlnaW5hbCA9IC0xOzspCiAJewpAQCAtMTk2Myw5ICsyMDEx LDI1IEBAIGlyYV9nZXRfZHVwX291dF9udW0gKGludCBvcF9udW0sIGFsdGVybmF0aXZlX21h c2sgYWx0cykKIAkJewogCQkgIGVudW0gY29uc3RyYWludF9udW0gY24gPSBsb29rdXBfY29u c3RyYWludCAoc3RyKTsKIAkJICBlbnVtIHJlZ19jbGFzcyBjbCA9IHJlZ19jbGFzc19mb3Jf Y29uc3RyYWludCAoY24pOwotCQkgIGlmIChjbCAhPSBOT19SRUdTCi0JCSAgICAgICYmICF0 YXJnZXRtLmNsYXNzX2xpa2VseV9zcGlsbGVkX3AgKGNsKSkKLQkJICAgIGdvdG8gZmFpbDsK KwkJICBpZiAoY2wgIT0gTk9fUkVHUyAmJiAhdGFyZ2V0bS5jbGFzc19saWtlbHlfc3BpbGxl ZF9wIChjbCkpCisJCSAgICB7CisJCSAgICAgIGlmIChyZXNwZWN0X2R1cF9kZXNwaXRlX3Jl Z19jc3RyKQorCQkJeworCQkJICAvKiBJZiBpdCdzIGZyZWUgdG8gbW92ZSBmcm9tIG9uZSBw cmVmZXJyZWQgY2xhc3MgdG8KKwkJCSAgICAgdGhlIG9uZSB3aXRob3V0IG1hdGNoaW5nIGNv bnN0cmFpbnQsIGl0IGRvZXNuJ3QKKwkJCSAgICAgaGF2ZSB0byByZXNwZWN0IHRoaXMgY29u c3RyYWludCB3aXRoIGNvc3RzLiAgKi8KKwkJCSAgaWYgKGNsICE9IG9wX3ByZWZfY2wKKwkJ CSAgICAgICYmIChpcmFfcmVnX2NsYXNzX2ludGVyc2VjdFtjbF1bb3BfcHJlZl9jbF0KKwkJ CQkgICE9IE5PX1JFR1MpCisJCQkgICAgICAmJiAoaXJhX21heV9tb3ZlX2luX2Nvc3Rbb3Bf bW9kZV1bb3BfcHJlZl9jbF1bY2xdCisJCQkJICA9PSAwKSkKKwkJCSAgICBnb3RvIGZhaWw7 CisJCQkgIGVsc2UgaWYgKGNsID09IG9wX3ByZWZfY2wpCisJCQkgICAgcHJlZl9jbF9hbHRz IHw9IEFMVEVSTkFUSVZFX0JJVCAoY3Vycl9hbHQpOworCQkJfQorCQkgICAgICBlbHNlCisJ CQlnb3RvIGZhaWw7CisJCSAgICB9CiAJCSAgaWYgKGNvbnN0cmFpbnRfc2F0aXNmaWVkX3Ag KG9wLCBjbikpCiAJCSAgICBnb3RvIGZhaWw7CiAJCSAgYnJlYWs7CkBAIC0xOTc5LDcgKzIw NDMsMjEgQEAgaXJhX2dldF9kdXBfb3V0X251bSAoaW50IG9wX251bSwgYWx0ZXJuYXRpdmVf bWFzayBhbHRzKQogCQkgIHN0ciA9IGVuZDsKIAkJICBpZiAob3JpZ2luYWwgIT0gLTEgJiYg b3JpZ2luYWwgIT0gbikKIAkJICAgIGdvdG8gZmFpbDsKLQkJICBvcmlnaW5hbCA9IG47CisJ CSAgZ2NjX2Fzc2VydCAobiA8IHJlY29nX2RhdGEubl9vcGVyYW5kcyk7CisJCSAgaWYgKHJl c3BlY3RfZHVwX2Rlc3BpdGVfcmVnX2NzdHIpCisJCSAgICB7CisJCSAgICAgIGNvbnN0IG9w ZXJhbmRfYWx0ZXJuYXRpdmUgKm9wX2FsdAorCQkJPSAmcmVjb2dfb3BfYWx0W2N1cnJfYWx0 ICogcmVjb2dfZGF0YS5uX29wZXJhbmRzXTsKKwkJICAgICAgLyogT25seSByZXNwZWN0IHRo ZSBvbmUgd2l0aCBwcmVmZXJyZWQgcmNsYXNzLCB3aXRob3V0CisJCQkgcmVzcGVjdF9kdXBf ZGVzcGl0ZV9yZWdfY3N0ciBpdCdzIHBvc3NpYmxlIHRvIGdldAorCQkJIG9uZSB3aG9zZSBy ZWdjbGFzcyBpc24ndCBwcmVmZXJyZWQgZmlyc3QgYmVmb3JlLAorCQkJIGJ1dCBpdCB3b3Vs ZCBmYWlsIHNpbmNlIHRoZXJlIHNob3VsZCBiZSBvdGhlcgorCQkJIGFsdGVybmF0aXZlcyB3 aXRoIHByZWZlcnJlZCByZWdjbGFzcy4gICovCisJCSAgICAgIGlmIChvcF9hbHRbbl0uY2wg PT0gb3BfcHJlZl9jbCkKKwkJCW9yaWdpbmFsID0gbjsKKwkJICAgIH0KKwkJICBlbHNlCisJ CSAgICBvcmlnaW5hbCA9IG47CiAJCSAgY29udGludWU7CiAJCX0KIAkgICAgICB9CkBAIC0x OTg4LDcgKzIwNjYsMzkgQEAgaXJhX2dldF9kdXBfb3V0X251bSAoaW50IG9wX251bSwgYWx0 ZXJuYXRpdmVfbWFzayBhbHRzKQogICAgICAgaWYgKG9yaWdpbmFsID09IC0xKQogCWdvdG8g ZmFpbDsKICAgICAgIGlmIChyZWNvZ19kYXRhLm9wZXJhbmRfdHlwZVtvcmlnaW5hbF0gPT0g T1BfT1VUKQotCXJldHVybiBvcmlnaW5hbDsKKwl7CisJICBpZiAocHJlZl9jbF9hbHRzID09 IDApCisJICAgIHJldHVybiBvcmlnaW5hbDsKKwkgIC8qIFZpc2l0IHRoZXNlIHJlY29yZGVk IGFsdGVybmF0aXZlcyB0byBjaGVjayB3aGV0aGVyCisJICAgICB0aGVyZSBpcyBvbmUgYWx0 ZXJuYXRpdmUgaW4gd2hpY2ggbm8gYW55IElOUFVUIG9wZXJhbmRzCisJICAgICBoYXZlIG9u ZSBtYXRjaGluZyBjb25zdHJhaW50IHNhbWUgYXMgb3VyIGNhbmRpZGF0ZS4KKwkgICAgIEdp dmUgdXAgdGhpcyBjYW5kaWRhdGUgaWYgc28uICAqLworCSAgaW50IG5vcCwgbmFsdDsKKwkg IGZvciAobmFsdCA9IDA7IG5hbHQgPCByZWNvZ19kYXRhLm5fYWx0ZXJuYXRpdmVzOyBuYWx0 KyspCisJICAgIHsKKwkgICAgICBpZiAoIVRFU1RfQklUIChwcmVmX2NsX2FsdHMsIG5hbHQp KQorCQljb250aW51ZTsKKwkgICAgICBjb25zdCBvcGVyYW5kX2FsdGVybmF0aXZlICpvcF9h bHQKKwkJPSAmcmVjb2dfb3BfYWx0W25hbHQgKiByZWNvZ19kYXRhLm5fb3BlcmFuZHNdOwor CSAgICAgIGJvb2wgZHVwX2luX290aGVyID0gZmFsc2U7CisJICAgICAgZm9yIChub3AgPSAw OyBub3AgPCByZWNvZ19kYXRhLm5fb3BlcmFuZHM7IG5vcCsrKQorCQl7CisJCSAgaWYgKHJl Y29nX2RhdGEub3BlcmFuZF90eXBlW25vcF0gIT0gT1BfSU4pCisJCSAgICBjb250aW51ZTsK KwkJICBpZiAobm9wID09IG9wX251bSkKKwkJICAgIGNvbnRpbnVlOworCQkgIGlmIChvcF9h bHRbbm9wXS5tYXRjaGVzID09IG9yaWdpbmFsKQorCQkgICAgeworCQkgICAgICBkdXBfaW5f b3RoZXIgPSB0cnVlOworCQkgICAgICBicmVhazsKKwkJICAgIH0KKwkJfQorCSAgICAgIGlm ICghZHVwX2luX290aGVyKQorCQlyZXR1cm4gLTE7CisJICAgIH0KKwkgIHNpbmdsZV9pbnB1 dF9vcF9oYXNfY3N0cl9wID0gZmFsc2U7CisJICByZXR1cm4gb3JpZ2luYWw7CisJfQogICAg IGZhaWw6CiAgICAgICBpZiAodXNlX2NvbW11dF9vcF9wKQogCWJyZWFrOwpkaWZmIC0tZ2l0 IGEvZ2NjL3BhcmFtcy5vcHQgYi9nY2MvcGFyYW1zLm9wdAppbmRleCAxOGU2MDM2YzRmNC4u NTc3Y2Q0MmMxNzMgMTAwNjQ0Ci0tLSBhL2djYy9wYXJhbXMub3B0CisrKyBiL2djYy9wYXJh bXMub3B0CkBAIC0zMzAsNiArMzMwLDEwIEBAIE1heCBzaXplIG9mIGNvbmZsaWN0IHRhYmxl IGluIE1CLgogQ29tbW9uIEpvaW5lZCBVSW50ZWdlciBWYXIocGFyYW1faXJhX21heF9sb29w c19udW0pIEluaXQoMTAwKSBQYXJhbSBPcHRpbWl6YXRpb24KIE1heCBsb29wcyBudW1iZXIg Zm9yIHJlZ2lvbmFsIFJBLgogCistcGFyYW09aXJhLWNvbnNpZGVyLWR1cC1pbi1hbGwtYWx0 cz0KK0NvbW1vbiBKb2luZWQgVUludGVnZXIgVmFyKHBhcmFtX2lyYV9jb25zaWRlcl9kdXBf aW5fYWxsX2FsdHMpIEluaXQoMSkgSW50ZWdlclJhbmdlKDAsIDEpIFBhcmFtIE9wdGltaXph dGlvbgorQ29udHJvbCBpcmEgdG8gY29uc2lkZXIgbWF0Y2hpbmcgY29uc3RyYWludCAoZHVw bGljYXRlZCBvcGVyYW5kIG51bWJlcikgaGVhdmlseSBpbiBhbGwgYXZhaWxhYmxlIGFsdGVy bmF0aXZlcyBmb3IgcHJlZmVycmVkIHJlZ2lzdGVyIGNsYXNzLiAgSWYgaXQgaXMgc2V0IGFz IHplcm8sIGl0IG1lYW5zIGlyYSBvbmx5IHJlc3BlY3RzIHRoZSBtYXRjaGluZyBjb25zdHJh aW50IHdoZW4gaXQncyBpbiB0aGUgb25seSBhdmFpbGFibGUgYWx0ZXJuYXRpdmUgd2l0aCBh biBhcHByb3ByaWF0ZSByZWdpc3RlciBjbGFzcy4gIE90aGVyd2lzZSwgaXQgbWVhbnMgaXJh IHdpbGwgY2hlY2sgYWxsIGF2YWlsYWJsZSBhbHRlcm5hdGl2ZXMgZm9yIHByZWZlcnJlZCBy ZWdpc3RlciBjbGFzcyBldmVuIGlmIGl0IGhhcyBmb3VuZCBzb21lIGNob2ljZSB3aXRoIGFu IGFwcHJvcHJpYXRlIHJlZ2lzdGVyIGNsYXNzIGFuZCByZXNwZWN0IHRoZSBmb3VuZCBxdWFs aWZpZWQgbWF0Y2hpbmcgY29uc3RyYWludC4KKwogLXBhcmFtPWl2LWFsd2F5cy1wcnVuZS1j YW5kLXNldC1ib3VuZD0KIENvbW1vbiBKb2luZWQgVUludGVnZXIgVmFyKHBhcmFtX2l2X2Fs d2F5c19wcnVuZV9jYW5kX3NldF9ib3VuZCkgSW5pdCgxMCkgUGFyYW0gT3B0aW1pemF0aW9u CiBJZiBudW1iZXIgb2YgY2FuZGlkYXRlcyBpbiB0aGUgc2V0IGlzIHNtYWxsZXIsIHdlIGFs d2F5cyB0cnkgdG8gcmVtb3ZlIHVudXNlZCBpdnMgZHVyaW5nIGl0cyBvcHRpbWl6YXRpb24u CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNs ZS9hc20vZGl2X2YxNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3Zl L2FjbGUvYXNtL2Rpdl9mMTYuYwppbmRleCAzNWY1YzE1ODkxMS4uOGJjZDA5NGM5OTYgMTAw NjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2Fz bS9kaXZfZjE2LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3Zl L2FjbGUvYXNtL2Rpdl9mMTYuYwpAQCAtMjE4LDcgKzIxOCw3IEBAIFRFU1RfVU5JRk9STV9a RCAoZGl2X2g0X2YxNl94X3RpZWQxLCBzdmZsb2F0MTZfdCwgX19mcDE2LAogCQkgejAgPSBz dmRpdl94IChwMCwgejAsIGQ0KSkKIAogLyoKLSoqIGRpdl9oNF9mMTZfeF91bnRpZWQ6IHsg eGZhaWwgKi0qLSogfQorKiogZGl2X2g0X2YxNl94X3VudGllZDoKICoqCW1vdgl6MFwuaCwg aDQKICoqCWZkaXZyCXowXC5oLCBwMC9tLCB6MFwuaCwgejFcLmgKICoqCXJldApkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL2Rp dl9mMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2Fz bS9kaXZfZjMyLmMKaW5kZXggNDBjYzIwM2RhNjcuLjU0NmM2MWRjNzgzIDEwMDY0NAotLS0g YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vZGl2X2Yz Mi5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2Fz bS9kaXZfZjMyLmMKQEAgLTIxOCw3ICsyMTgsNyBAQCBURVNUX1VOSUZPUk1fWkQgKGRpdl9z NF9mMzJfeF90aWVkMSwgc3ZmbG9hdDMyX3QsIGZsb2F0LAogCQkgejAgPSBzdmRpdl94IChw MCwgejAsIGQ0KSkKIAogLyoKLSoqIGRpdl9zNF9mMzJfeF91bnRpZWQ6IHsgeGZhaWwgKi0q LSogfQorKiogZGl2X3M0X2YzMl94X3VudGllZDoKICoqCW1vdgl6MFwucywgczQKICoqCWZk aXZyCXowXC5zLCBwMC9tLCB6MFwucywgejFcLnMKICoqCXJldApkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL2Rpdl9mNjQuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9kaXZfZjY0 LmMKaW5kZXggNTZhY2JiZTk1NTAuLjFlMjRiYzI2NDg0IDEwMDY0NAotLS0gYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vZGl2X2Y2NC5jCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9kaXZfZjY0 LmMKQEAgLTIxOCw3ICsyMTgsNyBAQCBURVNUX1VOSUZPUk1fWkQgKGRpdl9kNF9mNjRfeF90 aWVkMSwgc3ZmbG9hdDY0X3QsIGRvdWJsZSwKIAkJIHowID0gc3ZkaXZfeCAocDAsIHowLCBk NCkpCiAKIC8qCi0qKiBkaXZfZDRfZjY0X3hfdW50aWVkOiB7IHhmYWlsICotKi0qIH0KKyoq IGRpdl9kNF9mNjRfeF91bnRpZWQ6CiAqKgltb3YJejBcLmQsIGQ0CiAqKglmZGl2cgl6MFwu ZCwgcDAvbSwgejBcLmQsIHoxXC5kCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9kaXZyX2YxNi5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL2RpdnJfZjE2LmMKaW5k ZXggMDNjYzAzNDNiZDIuLmUyOTNiZTY1YTA2IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vZGl2cl9mMTYuYworKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vZGl2cl9mMTYuYwpA QCAtMjM5LDcgKzIzOSw3IEBAIFRFU1RfVU5JRk9STV9aRCAoZGl2cl9oNF9mMTZfeF90aWVk MSwgc3ZmbG9hdDE2X3QsIF9fZnAxNiwKIAkJIHowID0gc3ZkaXZyX3ggKHAwLCB6MCwgZDQp KQogCiAvKgotKiogZGl2cl9oNF9mMTZfeF91bnRpZWQ6IHsgeGZhaWwgKi0qLSogfQorKiog ZGl2cl9oNF9mMTZfeF91bnRpZWQ6CiAqKgltb3YJejBcLmgsIGg0CiAqKglmZGl2CXowXC5o LCBwMC9tLCB6MFwuaCwgejFcLmgKICoqCXJldApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL2RpdnJfZjMyLmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vZGl2cl9mMzIuYwppbmRl eCBjMmI2NWZjMzNmYS4uMDRhN2FjNDBiYjIgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9kaXZyX2YzMi5jCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9kaXZyX2YzMi5jCkBA IC0yMzksNyArMjM5LDcgQEAgVEVTVF9VTklGT1JNX1pEIChkaXZyX3M0X2YzMl94X3RpZWQx LCBzdmZsb2F0MzJfdCwgZmxvYXQsCiAJCSB6MCA9IHN2ZGl2cl94IChwMCwgejAsIGQ0KSkK IAogLyoKLSoqIGRpdnJfczRfZjMyX3hfdW50aWVkOiB7IHhmYWlsICotKi0qIH0KKyoqIGRp dnJfczRfZjMyX3hfdW50aWVkOgogKioJbW92CXowXC5zLCBzNAogKioJZmRpdgl6MFwucywg cDAvbSwgejBcLnMsIHoxXC5zCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9kaXZyX2Y2NC5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL2RpdnJfZjY0LmMKaW5kZXgg MGE3MmEzN2IxZDUuLmJlZjFhOWIwNTljIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vZGl2cl9mNjQuYworKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vZGl2cl9mNjQuYwpAQCAt MjM5LDcgKzIzOSw3IEBAIFRFU1RfVU5JRk9STV9aRCAoZGl2cl9kNF9mNjRfeF90aWVkMSwg c3ZmbG9hdDY0X3QsIGRvdWJsZSwKIAkJIHowID0gc3ZkaXZyX3ggKHAwLCB6MCwgZDQpKQog CiAvKgotKiogZGl2cl9kNF9mNjRfeF91bnRpZWQ6IHsgeGZhaWwgKi0qLSogfQorKiogZGl2 cl9kNF9mNjRfeF91bnRpZWQ6CiAqKgltb3YJejBcLmQsIGQ0CiAqKglmZGl2CXowXC5kLCBw MC9tLCB6MFwuZCwgejFcLmQKICoqCXJldApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21hZF9mMTYuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tYWRfZjE2LmMKaW5kZXggNzY1 NmY5ZTU0MTAuLjRiMzE0ODQxOWM1IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWFkX2YxNi5jCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tYWRfZjE2LmMKQEAgLTI4MSw3 ICsyODEsNyBAQCBURVNUX1VOSUZPUk1fWkQgKG1hZF9oNF9mMTZfeF90aWVkMiwgc3ZmbG9h dDE2X3QsIF9fZnAxNiwKIAkJIHowID0gc3ZtYWRfeCAocDAsIHoxLCB6MCwgZDQpKQogCiAv KgotKiogbWFkX2g0X2YxNl94X3VudGllZDogeyB4ZmFpbCAqLSotKiB9CisqKiBtYWRfaDRf ZjE2X3hfdW50aWVkOgogKioJbW92CXowXC5oLCBoNAogKioJZm1sYQl6MFwuaCwgcDAvbSwg ejFcLmgsIHoyXC5oCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tYWRfZjMyLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWFkX2YzMi5jCmluZGV4IGRiZGQyYjlk MTBiLi5kNWRiYzg1ZDVhMyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21hZF9mMzIuYworKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWFkX2YzMi5jCkBAIC0yODEsNyArMjgx LDcgQEAgVEVTVF9VTklGT1JNX1pEIChtYWRfczRfZjMyX3hfdGllZDIsIHN2ZmxvYXQzMl90 LCBmbG9hdCwKIAkJIHowID0gc3ZtYWRfeCAocDAsIHoxLCB6MCwgZDQpKQogCiAvKgotKiog bWFkX3M0X2YzMl94X3VudGllZDogeyB4ZmFpbCAqLSotKiB9CisqKiBtYWRfczRfZjMyX3hf dW50aWVkOgogKioJbW92CXowXC5zLCBzNAogKioJZm1sYQl6MFwucywgcDAvbSwgejFcLnMs IHoyXC5zCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h YXJjaDY0L3N2ZS9hY2xlL2FzbS9tYWRfZjY0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWFkX2Y2NC5jCmluZGV4IDk3ODI4MTI5NWU4Li43 YjVkYzIyODI2ZSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNo NjQvc3ZlL2FjbGUvYXNtL21hZF9mNjQuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWFkX2Y2NC5jCkBAIC0yODEsNyArMjgxLDcgQEAg VEVTVF9VTklGT1JNX1pEIChtYWRfZDRfZjY0X3hfdGllZDIsIHN2ZmxvYXQ2NF90LCBkb3Vi bGUsCiAJCSB6MCA9IHN2bWFkX3ggKHAwLCB6MSwgejAsIGQ0KSkKIAogLyoKLSoqIG1hZF9k NF9mNjRfeF91bnRpZWQ6IHsgeGZhaWwgKi0qLSogfQorKiogbWFkX2Q0X2Y2NF94X3VudGll ZDoKICoqCW1vdgl6MFwuZCwgZDQKICoqCWZtbGEJejBcLmQsIHAwL20sIHoxXC5kLCB6Mlwu ZAogKioJcmV0CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2 NC9zdmUvYWNsZS9hc20vbWxhX2YxNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvc3ZlL2FjbGUvYXNtL21sYV9mMTYuYwppbmRleCBmMjJhNTgyZWZhNi4uZDMyY2U1 ODQ1ZDEgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2 ZS9hY2xlL2FzbS9tbGFfZjE2LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvc3ZlL2FjbGUvYXNtL21sYV9mMTYuYwpAQCAtMjgxLDcgKzI4MSw3IEBAIFRFU1Rf VU5JRk9STV9aRCAobWxhX2g0X2YxNl94X3RpZWQyLCBzdmZsb2F0MTZfdCwgX19mcDE2LAog CQkgejAgPSBzdm1sYV94IChwMCwgejEsIHowLCBkNCkpCiAKIC8qCi0qKiBtbGFfaDRfZjE2 X3hfdW50aWVkOiB7IHhmYWlsICotKi0qIH0KKyoqIG1sYV9oNF9mMTZfeF91bnRpZWQ6CiAq Kgltb3YJejBcLmgsIGg0CiAqKglmbWFkCXowXC5oLCBwMC9tLCB6MlwuaCwgejFcLmgKICoq CXJldApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3Zl L2FjbGUvYXNtL21sYV9mMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L3N2ZS9hY2xlL2FzbS9tbGFfZjMyLmMKaW5kZXggMWQ5NWViMGE3MjQuLmQxMGJhNjlhNTNl IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNs ZS9hc20vbWxhX2YzMi5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L3N2ZS9hY2xlL2FzbS9tbGFfZjMyLmMKQEAgLTI4MSw3ICsyODEsNyBAQCBURVNUX1VOSUZP Uk1fWkQgKG1sYV9zNF9mMzJfeF90aWVkMiwgc3ZmbG9hdDMyX3QsIGZsb2F0LAogCQkgejAg PSBzdm1sYV94IChwMCwgejEsIHowLCBkNCkpCiAKIC8qCi0qKiBtbGFfczRfZjMyX3hfdW50 aWVkOiB7IHhmYWlsICotKi0qIH0KKyoqIG1sYV9zNF9mMzJfeF91bnRpZWQ6CiAqKgltb3YJ ejBcLnMsIHM0CiAqKglmbWFkCXowXC5zLCBwMC9tLCB6MlwucywgejFcLnMKICoqCXJldApk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUv YXNtL21sYV9mNjQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9h Y2xlL2FzbS9tbGFfZjY0LmMKaW5kZXggNzRmZDI5MjY3MTAuLjk0YzFlMGIwNzUzIDEwMDY0 NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20v bWxhX2Y2NC5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9h Y2xlL2FzbS9tbGFfZjY0LmMKQEAgLTI4MSw3ICsyODEsNyBAQCBURVNUX1VOSUZPUk1fWkQg KG1sYV9kNF9mNjRfeF90aWVkMiwgc3ZmbG9hdDY0X3QsIGRvdWJsZSwKIAkJIHowID0gc3Zt bGFfeCAocDAsIHoxLCB6MCwgZDQpKQogCiAvKgotKiogbWxhX2Q0X2Y2NF94X3VudGllZDog eyB4ZmFpbCAqLSotKiB9CisqKiBtbGFfZDRfZjY0X3hfdW50aWVkOgogKioJbW92CXowXC5k LCBkNAogKioJZm1hZAl6MFwuZCwgcDAvbSwgejJcLmQsIHoxXC5kCiAqKglyZXQKZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9t bHNfZjE2LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9h c20vbWxzX2YxNi5jCmluZGV4IDg3ZmJhM2RhN2ZmLi5iNTgxMDRkNWVhZiAxMDA2NDQKLS0t IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21sc19m MTYuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9h c20vbWxzX2YxNi5jCkBAIC0yODEsNyArMjgxLDcgQEAgVEVTVF9VTklGT1JNX1pEIChtbHNf aDRfZjE2X3hfdGllZDIsIHN2ZmxvYXQxNl90LCBfX2ZwMTYsCiAJCSB6MCA9IHN2bWxzX3gg KHAwLCB6MSwgejAsIGQ0KSkKIAogLyoKLSoqIG1sc19oNF9mMTZfeF91bnRpZWQ6IHsgeGZh aWwgKi0qLSogfQorKiogbWxzX2g0X2YxNl94X3VudGllZDoKICoqCW1vdgl6MFwuaCwgaDQK ICoqCWZtc2IJejBcLmgsIHAwL20sIHoyXC5oLCB6MVwuaAogKioJcmV0CmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWxzX2Yz Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21s c19mMzIuYwppbmRleCAwNGNlMWVjNDZlMC4uN2Q2ZTYwNTE5YjAgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tbHNfZjMyLmMK KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21s c19mMzIuYwpAQCAtMjgxLDcgKzI4MSw3IEBAIFRFU1RfVU5JRk9STV9aRCAobWxzX3M0X2Yz Ml94X3RpZWQyLCBzdmZsb2F0MzJfdCwgZmxvYXQsCiAJCSB6MCA9IHN2bWxzX3ggKHAwLCB6 MSwgejAsIGQ0KSkKIAogLyoKLSoqIG1sc19zNF9mMzJfeF91bnRpZWQ6IHsgeGZhaWwgKi0q LSogfQorKiogbWxzX3M0X2YzMl94X3VudGllZDoKICoqCW1vdgl6MFwucywgczQKICoqCWZt c2IJejBcLnMsIHAwL20sIHoyXC5zLCB6MVwucwogKioJcmV0CmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbWxzX2Y2NC5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21sc19mNjQu YwppbmRleCAxZTIxMDhhZjY3MS4uYTZlZDI4ZWVjNWMgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tbHNfZjY0LmMKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21sc19mNjQu YwpAQCAtMjgxLDcgKzI4MSw3IEBAIFRFU1RfVU5JRk9STV9aRCAobWxzX2Q0X2Y2NF94X3Rp ZWQyLCBzdmZsb2F0NjRfdCwgZG91YmxlLAogCQkgejAgPSBzdm1sc194IChwMCwgejEsIHow LCBkNCkpCiAKIC8qCi0qKiBtbHNfZDRfZjY0X3hfdW50aWVkOiB7IHhmYWlsICotKi0qIH0K KyoqIG1sc19kNF9mNjRfeF91bnRpZWQ6CiAqKgltb3YJejBcLmQsIGQ0CiAqKglmbXNiCXow XC5kLCBwMC9tLCB6MlwuZCwgejFcLmQKICoqCXJldApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21zYl9mMTYuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tc2JfZjE2LmMKaW5k ZXggZmUxMTQ1N2M0ZjguLjg5NDk2MWE5ZWM1IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbXNiX2YxNi5jCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tc2JfZjE2LmMKQEAg LTI4MSw3ICsyODEsNyBAQCBURVNUX1VOSUZPUk1fWkQgKG1zYl9oNF9mMTZfeF90aWVkMiwg c3ZmbG9hdDE2X3QsIF9fZnAxNiwKIAkJIHowID0gc3Ztc2JfeCAocDAsIHoxLCB6MCwgZDQp KQogCiAvKgotKiogbXNiX2g0X2YxNl94X3VudGllZDogeyB4ZmFpbCAqLSotKiB9CisqKiBt c2JfaDRfZjE2X3hfdW50aWVkOgogKioJbW92CXowXC5oLCBoNAogKioJZm1scwl6MFwuaCwg cDAvbSwgejFcLmgsIHoyXC5oCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tc2JfZjMyLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbXNiX2YzMi5jCmluZGV4IGY3 YTlmMjc2N2U4Li4wZDA5MTU5NThhMyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21zYl9mMzIuYworKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbXNiX2YzMi5jCkBAIC0yODEs NyArMjgxLDcgQEAgVEVTVF9VTklGT1JNX1pEIChtc2JfczRfZjMyX3hfdGllZDIsIHN2Zmxv YXQzMl90LCBmbG9hdCwKIAkJIHowID0gc3Ztc2JfeCAocDAsIHoxLCB6MCwgZDQpKQogCiAv KgotKiogbXNiX3M0X2YzMl94X3VudGllZDogeyB4ZmFpbCAqLSotKiB9CisqKiBtc2JfczRf ZjMyX3hfdW50aWVkOgogKioJbW92CXowXC5zLCBzNAogKioJZm1scwl6MFwucywgcDAvbSwg ejFcLnMsIHoyXC5zCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tc2JfZjY0LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbXNiX2Y2NC5jCmluZGV4IGUzZmY0MTRk ODFhLi41MmRjMzk2OGUyNCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL21zYl9mNjQuYworKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbXNiX2Y2NC5jCkBAIC0yODEsNyArMjgx LDcgQEAgVEVTVF9VTklGT1JNX1pEIChtc2JfZDRfZjY0X3hfdGllZDIsIHN2ZmxvYXQ2NF90 LCBkb3VibGUsCiAJCSB6MCA9IHN2bXNiX3ggKHAwLCB6MSwgejAsIGQ0KSkKIAogLyoKLSoq IG1zYl9kNF9mNjRfeF91bnRpZWQ6IHsgeGZhaWwgKi0qLSogfQorKiogbXNiX2Q0X2Y2NF94 X3VudGllZDoKICoqCW1vdgl6MFwuZCwgZDQKICoqCWZtbHMJejBcLmQsIHAwL20sIHoxXC5k LCB6MlwuZAogKioJcmV0CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv YWFyY2g2NC9zdmUvYWNsZS9hc20vbXVseF9mMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tdWx4X2YxNi5jCmluZGV4IGNlMDJjM2NhYTM5 Li5iOGQ2YmY1ZDkyYyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvc3ZlL2FjbGUvYXNtL211bHhfZjE2LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL211bHhfZjE2LmMKQEAgLTMwMyw3ICszMDMs NyBAQCBURVNUX1VOSUZPUk1fWkQgKG11bHhfaDRfZjE2X3hfdGllZDEsIHN2ZmxvYXQxNl90 LCBfX2ZwMTYsCiAJCSB6MCA9IHN2bXVseF94IChwMCwgejAsIGQ0KSkKIAogLyoKLSoqIG11 bHhfaDRfZjE2X3hfdW50aWVkOiB7IHhmYWlsICotKi0qIH0KKyoqIG11bHhfaDRfZjE2X3hf dW50aWVkOgogKioJbW92CXowXC5oLCBoNAogKioJZm11bHgJejBcLmgsIHAwL20sIHowXC5o LCB6MVwuaAogKioJcmV0CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv YWFyY2g2NC9zdmUvYWNsZS9hc20vbXVseF9mMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9tdWx4X2YzMi5jCmluZGV4IGUwZDM2OTU5MzJj Li5iOGY1YzEzMTBkNyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvc3ZlL2FjbGUvYXNtL211bHhfZjMyLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL211bHhfZjMyLmMKQEAgLTMwMyw3ICszMDMs NyBAQCBURVNUX1VOSUZPUk1fWkQgKG11bHhfczRfZjMyX3hfdGllZDEsIHN2ZmxvYXQzMl90 LCBmbG9hdCwKIAkJIHowID0gc3ZtdWx4X3ggKHAwLCB6MCwgZDQpKQogCiAvKgotKiogbXVs eF9zNF9mMzJfeF91bnRpZWQ6IHsgeGZhaWwgKi0qLSogfQorKiogbXVseF9zNF9mMzJfeF91 bnRpZWQ6CiAqKgltb3YJejBcLnMsIHM0CiAqKglmbXVseAl6MFwucywgcDAvbSwgejBcLnMs IHoxXC5zCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h YXJjaDY0L3N2ZS9hY2xlL2FzbS9tdWx4X2Y2NC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL211bHhfZjY0LmMKaW5kZXggNmFmNTcwM2ZmYWYu Ljc0NmNjOTQxNDNkIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9zdmUvYWNsZS9hc20vbXVseF9mNjQuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbXVseF9mNjQuYwpAQCAtMzAzLDcgKzMwMyw3 IEBAIFRFU1RfVU5JRk9STV9aRCAobXVseF9kNF9mNjRfeF90aWVkMSwgc3ZmbG9hdDY0X3Qs IGRvdWJsZSwKIAkJIHowID0gc3ZtdWx4X3ggKHAwLCB6MCwgZDQpKQogCiAvKgotKiogbXVs eF9kNF9mNjRfeF91bnRpZWQ6IHsgeGZhaWwgKi0qLSogfQorKiogbXVseF9kNF9mNjRfeF91 bnRpZWQ6CiAqKgltb3YJejBcLmQsIGQ0CiAqKglmbXVseAl6MFwuZCwgcDAvbSwgejBcLmQs IHoxXC5kCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h YXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWFkX2YxNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tYWRfZjE2LmMKaW5kZXggYWJmZTBhMGMwNTYu LjkyZTA2NjRlNjQ3IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9zdmUvYWNsZS9hc20vbm1hZF9mMTYuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1hZF9mMTYuYwpAQCAtMjgxLDcgKzI4MSw3 IEBAIFRFU1RfVU5JRk9STV9aRCAobm1hZF9oNF9mMTZfeF90aWVkMiwgc3ZmbG9hdDE2X3Qs IF9fZnAxNiwKIAkJIHowID0gc3ZubWFkX3ggKHAwLCB6MSwgejAsIGQ0KSkKIAogLyoKLSoq IG5tYWRfaDRfZjE2X3hfdW50aWVkOiB7IHhmYWlsICotKi0qIH0KKyoqIG5tYWRfaDRfZjE2 X3hfdW50aWVkOgogKioJbW92CXowXC5oLCBoNAogKioJZm5tbGEJejBcLmgsIHAwL20sIHox XC5oLCB6MlwuaAogKioJcmV0CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1hZF9mMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWFkX2YzMi5jCmluZGV4IGFiODYzODVj MzgyLi5jZWY3MzFlYmNmZSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tYWRfZjMyLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tYWRfZjMyLmMKQEAgLTI4MSw3ICsy ODEsNyBAQCBURVNUX1VOSUZPUk1fWkQgKG5tYWRfczRfZjMyX3hfdGllZDIsIHN2ZmxvYXQz Ml90LCBmbG9hdCwKIAkJIHowID0gc3ZubWFkX3ggKHAwLCB6MSwgejAsIGQ0KSkKIAogLyoK LSoqIG5tYWRfczRfZjMyX3hfdW50aWVkOiB7IHhmYWlsICotKi0qIH0KKyoqIG5tYWRfczRf ZjMyX3hfdW50aWVkOgogKioJbW92CXowXC5zLCBzNAogKioJZm5tbGEJejBcLnMsIHAwL20s IHoxXC5zLCB6MlwucwogKioJcmV0CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1hZF9mNjQuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWFkX2Y2NC5jCmluZGV4IGMyMzZm ZjVhMWExLi40M2I5N2MwZGU1MCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tYWRfZjY0LmMKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tYWRfZjY0LmMKQEAgLTI4MSw3 ICsyODEsNyBAQCBURVNUX1VOSUZPUk1fWkQgKG5tYWRfZDRfZjY0X3hfdGllZDIsIHN2Zmxv YXQ2NF90LCBkb3VibGUsCiAJCSB6MCA9IHN2bm1hZF94IChwMCwgejEsIHowLCBkNCkpCiAK IC8qCi0qKiBubWFkX2Q0X2Y2NF94X3VudGllZDogeyB4ZmFpbCAqLSotKiB9CisqKiBubWFk X2Q0X2Y2NF94X3VudGllZDoKICoqCW1vdgl6MFwuZCwgZDQKICoqCWZubWxhCXowXC5kLCBw MC9tLCB6MVwuZCwgejJcLmQKICoqCXJldApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbGFfZjE2LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1sYV9mMTYuYwppbmRleCBm N2FjMzc3ZmRjMi4uNzVkMGVjN2QzYWIgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWxhX2YxNi5jCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWxhX2YxNi5jCkBAIC0y ODEsNyArMjgxLDcgQEAgVEVTVF9VTklGT1JNX1pEIChubWxhX2g0X2YxNl94X3RpZWQyLCBz dmZsb2F0MTZfdCwgX19mcDE2LAogCQkgejAgPSBzdm5tbGFfeCAocDAsIHoxLCB6MCwgZDQp KQogCiAvKgotKiogbm1sYV9oNF9mMTZfeF91bnRpZWQ6IHsgeGZhaWwgKi0qLSogfQorKiog bm1sYV9oNF9mMTZfeF91bnRpZWQ6CiAqKgltb3YJejBcLmgsIGg0CiAqKglmbm1hZAl6MFwu aCwgcDAvbSwgejJcLmgsIHoxXC5oCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWxhX2YzMi5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbGFfZjMyLmMKaW5k ZXggZWY5NTQyZDc0MDUuLmRhNTk0ZDNlYjk1IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1sYV9mMzIuYworKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1sYV9mMzIuYwpA QCAtMjgxLDcgKzI4MSw3IEBAIFRFU1RfVU5JRk9STV9aRCAobm1sYV9zNF9mMzJfeF90aWVk Miwgc3ZmbG9hdDMyX3QsIGZsb2F0LAogCQkgejAgPSBzdm5tbGFfeCAocDAsIHoxLCB6MCwg ZDQpKQogCiAvKgotKiogbm1sYV9zNF9mMzJfeF91bnRpZWQ6IHsgeGZhaWwgKi0qLSogfQor Kiogbm1sYV9zNF9mMzJfeF91bnRpZWQ6CiAqKgltb3YJejBcLnMsIHM0CiAqKglmbm1hZAl6 MFwucywgcDAvbSwgejJcLnMsIHoxXC5zCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWxhX2Y2NC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbGFfZjY0LmMK aW5kZXggNDQxODIxZjYwNmIuLjczZjE1ZjQxNzYyIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1sYV9mNjQuYworKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1sYV9mNjQu YwpAQCAtMjgxLDcgKzI4MSw3IEBAIFRFU1RfVU5JRk9STV9aRCAobm1sYV9kNF9mNjRfeF90 aWVkMiwgc3ZmbG9hdDY0X3QsIGRvdWJsZSwKIAkJIHowID0gc3ZubWxhX3ggKHAwLCB6MSwg ejAsIGQ0KSkKIAogLyoKLSoqIG5tbGFfZDRfZjY0X3hfdW50aWVkOiB7IHhmYWlsICotKi0q IH0KKyoqIG5tbGFfZDRfZjY0X3hfdW50aWVkOgogKioJbW92CXowXC5kLCBkNAogKioJZm5t YWQJejBcLmQsIHAwL20sIHoyXC5kLCB6MVwuZAogKioJcmV0CmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1sc19mMTYuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWxzX2Yx Ni5jCmluZGV4IDhhYTZjNzUwOTcwLi5jY2Y3ZTUxZmZjOSAxMDA2NDQKLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbHNfZjE2LmMKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbHNf ZjE2LmMKQEAgLTI4MSw3ICsyODEsNyBAQCBURVNUX1VOSUZPUk1fWkQgKG5tbHNfaDRfZjE2 X3hfdGllZDIsIHN2ZmxvYXQxNl90LCBfX2ZwMTYsCiAJCSB6MCA9IHN2bm1sc194IChwMCwg ejEsIHowLCBkNCkpCiAKIC8qCi0qKiBubWxzX2g0X2YxNl94X3VudGllZDogeyB4ZmFpbCAq LSotKiB9CisqKiBubWxzX2g0X2YxNl94X3VudGllZDoKICoqCW1vdgl6MFwuaCwgaDQKICoq CWZubXNiCXowXC5oLCBwMC9tLCB6MlwuaCwgejFcLmgKICoqCXJldApkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbHNfZjMy LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1s c19mMzIuYwppbmRleCA0MmVhMTNmYWNhOC4uMTBkMzQ1MDI2ZjcgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWxzX2YzMi5j CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9u bWxzX2YzMi5jCkBAIC0yODEsNyArMjgxLDcgQEAgVEVTVF9VTklGT1JNX1pEIChubWxzX3M0 X2YzMl94X3RpZWQyLCBzdmZsb2F0MzJfdCwgZmxvYXQsCiAJCSB6MCA9IHN2bm1sc194IChw MCwgejEsIHowLCBkNCkpCiAKIC8qCi0qKiBubWxzX3M0X2YzMl94X3VudGllZDogeyB4ZmFp bCAqLSotKiB9CisqKiBubWxzX3M0X2YzMl94X3VudGllZDoKICoqCW1vdgl6MFwucywgczQK ICoqCWZubXNiCXowXC5zLCBwMC9tLCB6MlwucywgejFcLnMKICoqCXJldApkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL25tbHNf ZjY0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20v bm1sc19mNjQuYwppbmRleCA5OTRjMmE3NGVlYi4uYmYyYTQ0MThhOWYgMTAwNjQ0Ci0tLSBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9ubWxzX2Y2 NC5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2Fz bS9ubWxzX2Y2NC5jCkBAIC0yODEsNyArMjgxLDcgQEAgVEVTVF9VTklGT1JNX1pEIChubWxz X2Q0X2Y2NF94X3RpZWQyLCBzdmZsb2F0NjRfdCwgZG91YmxlLAogCQkgejAgPSBzdm5tbHNf eCAocDAsIHoxLCB6MCwgZDQpKQogCiAvKgotKiogbm1sc19kNF9mNjRfeF91bnRpZWQ6IHsg eGZhaWwgKi0qLSogfQorKiogbm1sc19kNF9mNjRfeF91bnRpZWQ6CiAqKgltb3YJejBcLmQs IGQ0CiAqKglmbm1zYgl6MFwuZCwgcDAvbSwgejJcLmQsIHoxXC5kCiAqKglyZXQKZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9u bXNiX2YxNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUv YXNtL25tc2JfZjE2LmMKaW5kZXggYzExNDAxNDg1MjIuLjUzMTFjZWI0NDA4IDEwMDY0NAot LS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vbm1z Yl9mMTYuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNs ZS9hc20vbm1zYl9mMTYuYwpAQCAtMjgxLDcgKzI4MSw3IEBAIFRFU1RfVU5JRk9STV9aRCAo bm1zYl9oNF9mMTZfeF90aWVkMiwgc3ZmbG9hdDE2X3QsIF9fZnAxNiwKIAkJIHowID0gc3Zu bXNiX3ggKHAwLCB6MSwgejAsIGQ0KSkKIAogLyoKLSoqIG5tc2JfaDRfZjE2X3hfdW50aWVk OiB7IHhmYWlsICotKi0qIH0KKyoqIG5tc2JfaDRfZjE2X3hfdW50aWVkOgogKioJbW92CXow XC5oLCBoNAogKioJZm5tbHMJejBcLmgsIHAwL20sIHoxXC5oLCB6MlwuaAogKioJcmV0CmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9h c20vbm1zYl9mMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9h Y2xlL2FzbS9ubXNiX2YzMi5jCmluZGV4IGMyMjA0ZTA0MGVlLi42ZjE0MDdhODcxNyAxMDA2 NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNt L25tc2JfZjMyLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3Zl L2FjbGUvYXNtL25tc2JfZjMyLmMKQEAgLTI4MSw3ICsyODEsNyBAQCBURVNUX1VOSUZPUk1f WkQgKG5tc2JfczRfZjMyX3hfdGllZDIsIHN2ZmxvYXQzMl90LCBmbG9hdCwKIAkJIHowID0g c3ZubXNiX3ggKHAwLCB6MSwgejAsIGQ0KSkKIAogLyoKLSoqIG5tc2JfczRfZjMyX3hfdW50 aWVkOiB7IHhmYWlsICotKi0qIH0KKyoqIG5tc2JfczRfZjMyX3hfdW50aWVkOgogKioJbW92 CXowXC5zLCBzNAogKioJZm5tbHMJejBcLnMsIHAwL20sIHoxXC5zLCB6MlwucwogKioJcmV0 CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNs ZS9hc20vbm1zYl9mNjQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2 ZS9hY2xlL2FzbS9ubXNiX2Y2NC5jCmluZGV4IDU2NTkyZDNhZTJlLi41ZTRlMWRkN2VhNiAx MDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUv YXNtL25tc2JfZjY0LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQv c3ZlL2FjbGUvYXNtL25tc2JfZjY0LmMKQEAgLTI4MSw3ICsyODEsNyBAQCBURVNUX1VOSUZP Uk1fWkQgKG5tc2JfZDRfZjY0X3hfdGllZDIsIHN2ZmxvYXQ2NF90LCBkb3VibGUsCiAJCSB6 MCA9IHN2bm1zYl94IChwMCwgejEsIHowLCBkNCkpCiAKIC8qCi0qKiBubXNiX2Q0X2Y2NF94 X3VudGllZDogeyB4ZmFpbCAqLSotKiB9CisqKiBubXNiX2Q0X2Y2NF94X3VudGllZDoKICoq CW1vdgl6MFwuZCwgZDQKICoqCWZubWxzCXowXC5kLCBwMC9tLCB6MVwuZCwgejJcLmQKICoq CXJldApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3Zl L2FjbGUvYXNtL3N1Yl9mMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L3N2ZS9hY2xlL2FzbS9zdWJfZjE2LmMKaW5kZXggYmY0YTBhYjFlZjUuLjQ4YTU3NDY2Zjlk IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNs ZS9hc20vc3ViX2YxNi5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L3N2ZS9hY2xlL2FzbS9zdWJfZjE2LmMKQEAgLTMzNiw3ICszMzYsNyBAQCBURVNUX1VOSUZP Uk1fWkQgKHN1Yl9oNF9mMTZfeF90aWVkMSwgc3ZmbG9hdDE2X3QsIF9fZnAxNiwKIAkJIHow ID0gc3ZzdWJfeCAocDAsIHowLCBkNCkpCiAKIC8qCi0qKiBzdWJfaDRfZjE2X3hfdW50aWVk OiB7IHhmYWlsICotKi0qIH0KKyoqIHN1Yl9oNF9mMTZfeF91bnRpZWQ6CiAqKgltb3YJejBc LmgsIGg0CiAqKglmc3Vicgl6MFwuaCwgcDAvbSwgejBcLmgsIHoxXC5oCiAqKglyZXQKZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2Fz bS9zdWJfZjMyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNs ZS9hc20vc3ViX2YzMi5jCmluZGV4IDA1YmU1MmJhZGU4Li4zMmQ1N2JlOWEzNSAxMDA2NDQK LS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL3N1 Yl9mMzIuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNs ZS9hc20vc3ViX2YzMi5jCkBAIC0zMzYsNyArMzM2LDcgQEAgVEVTVF9VTklGT1JNX1pEIChz dWJfczRfZjMyX3hfdGllZDEsIHN2ZmxvYXQzMl90LCBmbG9hdCwKIAkJIHowID0gc3ZzdWJf eCAocDAsIHowLCBkNCkpCiAKIC8qCi0qKiBzdWJfczRfZjMyX3hfdW50aWVkOiB7IHhmYWls ICotKi0qIH0KKyoqIHN1Yl9zNF9mMzJfeF91bnRpZWQ6CiAqKgltb3YJejBcLnMsIHM0CiAq Kglmc3Vicgl6MFwucywgcDAvbSwgejBcLnMsIHoxXC5zCiAqKglyZXQKZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9zdWJfZjY0 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vc3Vi X2Y2NC5jCmluZGV4IDIxNzkzODJjM2Y1Li5jZGMyNTU4MjY0OSAxMDA2NDQKLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL3N1Yl9mNjQuYwor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vc3Vi X2Y2NC5jCkBAIC0zMzYsNyArMzM2LDcgQEAgVEVTVF9VTklGT1JNX1pEIChzdWJfZDRfZjY0 X3hfdGllZDEsIHN2ZmxvYXQ2NF90LCBkb3VibGUsCiAJCSB6MCA9IHN2c3ViX3ggKHAwLCB6 MCwgZDQpKQogCiAvKgotKiogc3ViX2Q0X2Y2NF94X3VudGllZDogeyB4ZmFpbCAqLSotKiB9 CisqKiBzdWJfZDRfZjY0X3hfdW50aWVkOgogKioJbW92CXowXC5kLCBkNAogKioJZnN1YnIJ ejBcLmQsIHAwL20sIHowXC5kLCB6MVwuZAogKioJcmV0CmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vc3Vicl9mMTYuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9zdWJyX2YxNi5j CmluZGV4IGUxNDM1N2RiMjdmLi42OTI5YjI4NjIxOCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL3N1YnJfZjE2LmMKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL3N1YnJfZjE2 LmMKQEAgLTI4NSw3ICsyODUsNyBAQCBURVNUX1VOSUZPUk1fWkQgKHN1YnJfaDRfZjE2X3hf dGllZDEsIHN2ZmxvYXQxNl90LCBfX2ZwMTYsCiAJCSB6MCA9IHN2c3Vicl94IChwMCwgejAs IGQ0KSkKIAogLyoKLSoqIHN1YnJfaDRfZjE2X3hfdW50aWVkOiB7IHhmYWlsICotKi0qIH0K KyoqIHN1YnJfaDRfZjE2X3hfdW50aWVkOgogKioJbW92CXowXC5oLCBoNAogKioJZnN1Ygl6 MFwuaCwgcDAvbSwgejBcLmgsIHoxXC5oCiAqKglyZXQKZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9zdWJyX2YzMi5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL3N1YnJfZjMyLmMK aW5kZXggOThkYzdhZDJiOTcuLjViZjkwYTM5MTQ1IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vc3Vicl9mMzIuYworKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vc3Vicl9mMzIu YwpAQCAtMjg1LDcgKzI4NSw3IEBAIFRFU1RfVU5JRk9STV9aRCAoc3Vicl9zNF9mMzJfeF90 aWVkMSwgc3ZmbG9hdDMyX3QsIGZsb2F0LAogCQkgejAgPSBzdnN1YnJfeCAocDAsIHowLCBk NCkpCiAKIC8qCi0qKiBzdWJyX3M0X2YzMl94X3VudGllZDogeyB4ZmFpbCAqLSotKiB9Cisq KiBzdWJyX3M0X2YzMl94X3VudGllZDoKICoqCW1vdgl6MFwucywgczQKICoqCWZzdWIJejBc LnMsIHAwL20sIHowXC5zLCB6MVwucwogKioJcmV0CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWNsZS9hc20vc3Vicl9mNjQuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hY2xlL2FzbS9zdWJyX2Y2NC5jCmlu ZGV4IDgxZjExMTJkNzYyLi43MDkxYzQwYmJiMiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL3N1YnJfZjY0LmMKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2FjbGUvYXNtL3N1YnJfZjY0LmMK QEAgLTI4NSw3ICsyODUsNyBAQCBURVNUX1VOSUZPUk1fWkQgKHN1YnJfZDRfZjY0X3hfdGll ZDEsIHN2ZmxvYXQ2NF90LCBkb3VibGUsCiAJCSB6MCA9IHN2c3Vicl94IChwMCwgejAsIGQ0 KSkKIAogLyoKLSoqIHN1YnJfZDRfZjY0X3hfdW50aWVkOiB7IHhmYWlsICotKi0qIH0KKyoq IHN1YnJfZDRfZjY0X3hfdW50aWVkOgogKioJbW92CXowXC5kLCBkNAogKioJZnN1Ygl6MFwu ZCwgcDAvbSwgejBcLmQsIHoxXC5kCiAqKglyZXQKLS0gCjIuMTcuMQoK --------------64CED5A1865566CA56472408--