<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>95898</bug_id>
          
          <creation_ts>2012-09-05 14:53:37 -0700</creation_ts>
          <short_desc>Merge prefix/postfix nodes</short_desc>
          <delta_ts>2012-09-05 16:00:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>712563</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-05 14:53:37 -0700</bug_when>
    <thetext>Simplify the AST.  This will also mean we have access to m_subscriptHasAssignments when generating a prefix/postfix op applied to a bracket access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712571</commentid>
    <comment_count>1</comment_count>
      <attachid>162346</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-05 15:03:09 -0700</bug_when>
    <thetext>Created attachment 162346
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712573</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 15:05:21 -0700</bug_when>
    <thetext>Attachment 162346 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/parser/Nodes.h:599:  The parameter name &quot;expr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/parser/Nodes.h:687:  The parameter name &quot;expr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712574</commentid>
    <comment_count>3</comment_count>
      <attachid>162346</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-05 15:05:41 -0700</bug_when>
    <thetext>Comment on attachment 162346
Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712621</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-05 16:00:08 -0700</bug_when>
    <thetext>Fixed in r127654</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162346</attachid>
            <date>2012-09-05 15:03:09 -0700</date>
            <delta_ts>2012-09-05 15:05:39 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>95898.patch</filename>
            <type>text/plain</type>
            <size>27048</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3NjQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBA
CisyMDEyLTA5LTA1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBNZXJnZSBwcmVmaXgvcG9zdGZpeCBub2RlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4OTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGlmeSB0aGUgQVNULgorICAgICAgICBU
aGlzIHdpbGwgYWxzbyBtZWFuIHdlIGhhdmUgYWNjZXNzIHRvIG1fc3Vic2NyaXB0SGFzQXNzaWdu
bWVudHMgd2hlbiBnZW5lcmF0aW5nIGEgcHJlZml4L3Bvc3RmaXggb3AgYXBwbGllZCB0byBhIGJy
YWNrZXQgYWNjZXNzLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6
CisgICAgICAgIChKU0M6OlBvc3RmaXhOb2RlOjplbWl0UmVzb2x2ZSk6CisgICAgICAgICAgICAt
IHdhcyBQb3N0Zml4UmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZQorICAgICAgICAoSlNDOjpQb3N0
Zml4Tm9kZTo6ZW1pdEJyYWNrZXQpOgorICAgICAgICAgICAgLSB3YXMgUG9zdGZpeEJyYWNrZXRO
b2RlOjplbWl0Qnl0ZWNvZGUKKyAgICAgICAgKEpTQzo6UG9zdGZpeE5vZGU6OmVtaXREb3QpOgor
ICAgICAgICAgICAgLSB3YXMgUG9zdGZpeERvdE5vZGU6OmVtaXRCeXRlY29kZQorICAgICAgICAo
SlNDOjpQb3N0Zml4Tm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgICAgIC0gd2FzIFBvc3Rm
aXhFcnJvck5vZGU6OmVtaXRCeXRlY29kZSwgY2FsbCByZXNvbHZlL2JyYWNrZXQvZG90IHZlcnNp
b24gYXMgYXBwcm9wcmlhdGUuCisgICAgICAgIChKU0M6OlByZWZpeE5vZGU6OmVtaXRSZXNvbHZl
KToKKyAgICAgICAgICAgIC0gd2FzIFByZWZpeFJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUKKyAg
ICAgICAgKEpTQzo6UHJlZml4Tm9kZTo6ZW1pdEJyYWNrZXQpOgorICAgICAgICAgICAgLSB3YXMg
UHJlZml4QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZQorICAgICAgICAoSlNDOjpQcmVmaXhOb2Rl
OjplbWl0RG90KToKKyAgICAgICAgICAgIC0gd2FzIFByZWZpeERvdE5vZGU6OmVtaXRCeXRlY29k
ZQorICAgICAgICAoSlNDOjpQcmVmaXhOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAgICAg
LSB3YXMgUHJlZml4RXJyb3JOb2RlOjplbWl0Qnl0ZWNvZGUsIGNhbGwgcmVzb2x2ZS9icmFja2V0
L2RvdCB2ZXJzaW9uIGFzIGFwcHJvcHJpYXRlLgorICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVy
Lmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6Om1ha2VQcmVmaXhOb2RlKToKKyAgICAgICAg
ICAgIC0gSnVzdCBtYWtlcyBhIFByZWZpeE5vZGUhCisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6
Om1ha2VQb3N0Zml4Tm9kZSk6CisgICAgICAgICAgICAtIEp1c3QgbWFrZXMgYSBQb3N0Zml4Tm9k
ZSEKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpQ
b3N0Zml4Tm9kZTo6UG9zdGZpeE5vZGUpOgorICAgICAgICAgICAgLSBBZGRlZCwgbWVyZ2Ugb2Yg
UG9zdGZpeFJlc29sdmVOb2RlL1Bvc3RmaXhCcmFja2V0Tm9kZS9Qb3N0Zml4RG90Tm9kZS9Qb3N0
Zml4RXJyb3JOb2RlLgorICAgICAgICAoSlNDOjpQcmVmaXhOb2RlOjpQcmVmaXhOb2RlKToKKyAg
ICAgICAgICAgIC0gQWRkZWQsIG1lcmdlIG9mIFByZWZpeFJlc29sdmVOb2RlL1ByZWZpeEJyYWNr
ZXROb2RlL1ByZWZpeERvdE5vZGUvUHJlZml4RXJyb3JOb2RlLgorICAgICAgICAqIHBhcnNlci9O
b2Rlcy5oOgorICAgICAgICAoUG9zdGZpeE5vZGUpOgorICAgICAgICAgICAgLSBBZGRlZCwgbWVy
Z2Ugb2YgUG9zdGZpeFJlc29sdmVOb2RlL1Bvc3RmaXhCcmFja2V0Tm9kZS9Qb3N0Zml4RG90Tm9k
ZS9Qb3N0Zml4RXJyb3JOb2RlLgorICAgICAgICAoUHJlZml4Tm9kZSk6CisgICAgICAgICAgICAt
IEFkZGVkLCBtZXJnZSBvZiBQcmVmaXhSZXNvbHZlTm9kZS9QcmVmaXhCcmFja2V0Tm9kZS9QcmVm
aXhEb3ROb2RlL1ByZWZpeEVycm9yTm9kZS4KKwogMjAxMi0wOS0wNSAgTWFyayBIYWhuZW5iZXJn
ICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1c2Ugb2YgSlNDZWxs
OjpjbGFzc0luZm9PZmZzZXQoKSBmcm9tIHRyeUNhY2hlR2V0QnlJRApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkocmV2
aXNpb24gMTI3NTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OTAsNyArNTkwLDcgQEAgUmVnaXN0ZXJJ
RCogQXBwbHlGdW5jdGlvbkNhbGxEb3ROb2RlOjplbQogICAgIHJldHVybiBmaW5hbERlc3RpbmF0
aW9uT3JJZ25vcmVkLmdldCgpOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gUG9zdGZpeFJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQb3N0Zml4Tm9kZSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0UHJlSW5j
T3JEZWMoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogc3JjRHN0LCBP
cGVyYXRvciBvcGVyKQogewpAQCAtNjA0LDkgKzYwNCwxMyBAQCBzdGF0aWMgUmVnaXN0ZXJJRCog
ZW1pdFBvc3RJbmNPckRlYyhCeXRlCiAgICAgcmV0dXJuIChvcGVyID09IE9wUGx1c1BsdXMpID8g
Z2VuZXJhdG9yLmVtaXRQb3N0SW5jKGRzdCwgc3JjRHN0KSA6IGdlbmVyYXRvci5lbWl0UG9zdERl
Yyhkc3QsIHNyY0RzdCk7CiB9CiAKLVJlZ2lzdGVySUQqIFBvc3RmaXhSZXNvbHZlTm9kZTo6ZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkK
K1JlZ2lzdGVySUQqIFBvc3RmaXhOb2RlOjplbWl0UmVzb2x2ZShCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7Ci0gICAgUmVzb2x2ZVJlc3VsdCByZXNvbHZl
UmVzdWx0ID0gZ2VuZXJhdG9yLnJlc29sdmUobV9pZGVudCk7CisgICAgQVNTRVJUKG1fZXhwci0+
aXNSZXNvbHZlTm9kZSgpKTsKKyAgICBSZXNvbHZlTm9kZSogcmVzb2x2ZSA9IHN0YXRpY19jYXN0
PFJlc29sdmVOb2RlKj4obV9leHByKTsKKyAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IHJl
c29sdmUtPmlkZW50aWZpZXIoKTsKKworICAgIFJlc29sdmVSZXN1bHQgcmVzb2x2ZVJlc3VsdCA9
IGdlbmVyYXRvci5yZXNvbHZlKGlkZW50KTsKIAogICAgIGlmIChSZWdpc3RlcklEKiBsb2NhbCA9
IHJlc29sdmVSZXN1bHQubG9jYWwoKSkgewogICAgICAgICBpZiAocmVzb2x2ZVJlc3VsdC5pc1Jl
YWRPbmx5KCkpCkBAIC02MTcsNyArNjIxLDcgQEAgUmVnaXN0ZXJJRCogUG9zdGZpeFJlc29sdmVO
b2RlOjplbWl0Qnl0ZQogICAgIH0KIAogICAgIGlmIChyZXNvbHZlUmVzdWx0LmlzU3RhdGljKCkg
JiYgIXJlc29sdmVSZXN1bHQuaXNSZWFkT25seSgpKSB7Ci0gICAgICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0R2V0U3RhdGljVmFyKGdlbmVyYXRvci5uZXdUZW1w
b3JhcnkoKSwgcmVzb2x2ZVJlc3VsdCwgbV9pZGVudCk7CisgICAgICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0R2V0U3RhdGljVmFyKGdlbmVyYXRvci5uZXdUZW1w
b3JhcnkoKSwgcmVzb2x2ZVJlc3VsdCwgaWRlbnQpOwogICAgICAgICBSZWdpc3RlcklEKiBvbGRW
YWx1ZTsKICAgICAgICAgaWYgKGRzdCA9PSBnZW5lcmF0b3IuaWdub3JlZFJlc3VsdCgpKSB7CiAg
ICAgICAgICAgICBvbGRWYWx1ZSA9IDA7CkBAIC02MjUsMTMgKzYyOSwxMyBAQCBSZWdpc3RlcklE
KiBQb3N0Zml4UmVzb2x2ZU5vZGU6OmVtaXRCeXRlCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBvbGRWYWx1ZSA9IGVtaXRQb3N0SW5jT3JEZWMoZ2VuZXJhdG9yLCBnZW5lcmF0b3IuZmlu
YWxEZXN0aW5hdGlvbihkc3QpLCB2YWx1ZS5nZXQoKSwgbV9vcGVyYXRvcik7CiAgICAgICAgIH0K
LSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRTdGF0aWNWYXIocmVzb2x2ZVJlc3VsdCwgbV9pZGVu
dCwgdmFsdWUuZ2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dFN0YXRpY1ZhcihyZXNv
bHZlUmVzdWx0LCBpZGVudCwgdmFsdWUuZ2V0KCkpOwogICAgICAgICByZXR1cm4gb2xkVmFsdWU7
CiAgICAgfQogICAgIAogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwg
c3RhcnRPZmZzZXQoKSwgZW5kT2Zmc2V0KCkpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1
ZSA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFz
ZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2ZVdpdGhCYXNlKGdlbmVyYXRvci5uZXdUZW1wb3Jhcnko
KSwgdmFsdWUuZ2V0KCksIHJlc29sdmVSZXN1bHQsIG1faWRlbnQpOworICAgIFJlZlB0cjxSZWdp
c3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlV2l0aEJhc2UoZ2VuZXJhdG9yLm5l
d1RlbXBvcmFyeSgpLCB2YWx1ZS5nZXQoKSwgcmVzb2x2ZVJlc3VsdCwgaWRlbnQpOwogICAgIFJl
Z2lzdGVySUQqIG9sZFZhbHVlOwogICAgIGlmIChkc3QgPT0gZ2VuZXJhdG9yLmlnbm9yZWRSZXN1
bHQoKSkgewogICAgICAgICBvbGRWYWx1ZSA9IDA7CkBAIC02MzksMTggKzY0MywyMSBAQCBSZWdp
c3RlcklEKiBQb3N0Zml4UmVzb2x2ZU5vZGU6OmVtaXRCeXRlCiAgICAgfSBlbHNlIHsKICAgICAg
ICAgb2xkVmFsdWUgPSBlbWl0UG9zdEluY09yRGVjKGdlbmVyYXRvciwgZ2VuZXJhdG9yLmZpbmFs
RGVzdGluYXRpb24oZHN0KSwgdmFsdWUuZ2V0KCksIG1fb3BlcmF0b3IpOwogICAgIH0KLSAgICBn
ZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwgbV9pZGVudCwgdmFsdWUuZ2V0KCkpOwor
ICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdldCgpLCBpZGVudCwgdmFsdWUuZ2V0KCkp
OwogICAgIHJldHVybiBvbGRWYWx1ZTsKIH0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIFBvc3RmaXhCcmFja2V0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLVJlZ2lzdGVySUQqIFBvc3RmaXhCcmFja2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK1JlZ2lzdGVySUQqIFBv
c3RmaXhOb2RlOjplbWl0QnJhY2tldChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBkc3QpCiB7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3Iu
ZW1pdE5vZGUobV9iYXNlKTsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5l
cmF0b3IuZW1pdE5vZGUobV9zdWJzY3JpcHQpOworICAgIEFTU0VSVChtX2V4cHItPmlzQnJhY2tl
dEFjY2Vzc29yTm9kZSgpKTsKKyAgICBCcmFja2V0QWNjZXNzb3JOb2RlKiBicmFja2V0QWNjZXNz
b3IgPSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4obV9leHByKTsKKyAgICBFeHBy
ZXNzaW9uTm9kZSogYmFzZU5vZGUgPSBicmFja2V0QWNjZXNzb3ItPmJhc2UoKTsKKyAgICBFeHBy
ZXNzaW9uTm9kZSogc3Vic2NyaXB0ID0gYnJhY2tldEFjY2Vzc29yLT5zdWJzY3JpcHQoKTsKIAot
ICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSAtIG1fc3ViZXhwcmVzc2lv
bkRpdm90T2Zmc2V0LCBzdGFydE9mZnNldCgpIC0gbV9zdWJleHByZXNzaW9uRGl2b3RPZmZzZXQs
IG1fc3ViZXhwcmVzc2lvbkVuZE9mZnNldCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2Ug
PSBnZW5lcmF0b3IuZW1pdE5vZGUoYmFzZU5vZGUpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBw
cm9wZXJ0eSA9IGdlbmVyYXRvci5lbWl0Tm9kZShzdWJzY3JpcHQpOworCisgICAgZ2VuZXJhdG9y
LmVtaXRFeHByZXNzaW9uSW5mbyhicmFja2V0QWNjZXNzb3ItPmRpdm90KCksIGJyYWNrZXRBY2Nl
c3Nvci0+c3RhcnRPZmZzZXQoKSwgYnJhY2tldEFjY2Vzc29yLT5lbmRPZmZzZXQoKSk7CiAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IHZhbHVlID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0
b3IubmV3VGVtcG9yYXJ5KCksIGJhc2UuZ2V0KCksIHByb3BlcnR5LmdldCgpKTsKICAgICBSZWdp
c3RlcklEKiBvbGRWYWx1ZTsKICAgICBpZiAoZHN0ID09IGdlbmVyYXRvci5pZ25vcmVkUmVzdWx0
KCkpIHsKQEAgLTY2NywxNCArNjc0LDE3IEBAIFJlZ2lzdGVySUQqIFBvc3RmaXhCcmFja2V0Tm9k
ZTo6ZW1pdEJ5dGUKICAgICByZXR1cm4gb2xkVmFsdWU7CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBQb3N0Zml4RG90Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLVJlZ2lzdGVySUQqIFBvc3RmaXhEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQorUmVnaXN0ZXJJRCog
UG9zdGZpeE5vZGU6OmVtaXREb3QoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0
ZXJJRCogZHN0KQogewotICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVt
aXROb2RlKG1fYmFzZSk7CisgICAgQVNTRVJUKG1fZXhwci0+aXNEb3RBY2Nlc3Nvck5vZGUoKSk7
CisgICAgRG90QWNjZXNzb3JOb2RlKiBkb3RBY2Nlc3NvciA9IHN0YXRpY19jYXN0PERvdEFjY2Vz
c29yTm9kZSo+KG1fZXhwcik7CisgICAgRXhwcmVzc2lvbk5vZGUqIGJhc2VOb2RlID0gZG90QWNj
ZXNzb3ItPmJhc2UoKTsKKyAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGRvdEFjY2Vzc29y
LT5pZGVudGlmaWVyKCk7CiAKLSAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90
KCkgLSBtX3N1YmV4cHJlc3Npb25EaXZvdE9mZnNldCwgc3RhcnRPZmZzZXQoKSAtIG1fc3ViZXhw
cmVzc2lvbkRpdm90T2Zmc2V0LCBtX3N1YmV4cHJlc3Npb25FbmRPZmZzZXQpOwotICAgIFJlZlB0
cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3
VGVtcG9yYXJ5KCksIGJhc2UuZ2V0KCksIG1faWRlbnQpOworICAgIFJlZlB0cjxSZWdpc3RlcklE
PiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlKGJhc2VOb2RlKTsKKworICAgIGdlbmVyYXRvci5l
bWl0RXhwcmVzc2lvbkluZm8oZG90QWNjZXNzb3ItPmRpdm90KCksIGRvdEFjY2Vzc29yLT5zdGFy
dE9mZnNldCgpLCBkb3RBY2Nlc3Nvci0+ZW5kT2Zmc2V0KCkpOworICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5
KCksIGJhc2UuZ2V0KCksIGlkZW50KTsKICAgICBSZWdpc3RlcklEKiBvbGRWYWx1ZTsKICAgICBp
ZiAoZHN0ID09IGdlbmVyYXRvci5pZ25vcmVkUmVzdWx0KCkpIHsKICAgICAgICAgb2xkVmFsdWUg
PSAwOwpAQCAtNjg2LDE0ICs2OTYsMjEgQEAgUmVnaXN0ZXJJRCogUG9zdGZpeERvdE5vZGU6OmVt
aXRCeXRlY29kZQogICAgICAgICBvbGRWYWx1ZSA9IChtX29wZXJhdG9yID09IE9wUGx1c1BsdXMp
ID8gZ2VuZXJhdG9yLmVtaXRQb3N0SW5jKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCks
IHZhbHVlLmdldCgpKSA6IGdlbmVyYXRvci5lbWl0UG9zdERlYyhnZW5lcmF0b3IuZmluYWxEZXN0
aW5hdGlvbihkc3QpLCB2YWx1ZS5nZXQoKSk7CiAgICAgfQogICAgIGdlbmVyYXRvci5lbWl0RXhw
cmVzc2lvbkluZm8oZGl2b3QoKSwgc3RhcnRPZmZzZXQoKSwgZW5kT2Zmc2V0KCkpOwotICAgIGdl
bmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdldCgpLCBtX2lkZW50LCB2YWx1ZS5nZXQoKSk7Cisg
ICAgZ2VuZXJhdG9yLmVtaXRQdXRCeUlkKGJhc2UuZ2V0KCksIGlkZW50LCB2YWx1ZS5nZXQoKSk7
CiAgICAgcmV0dXJuIG9sZFZhbHVlOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gUG9zdGZpeEVycm9yTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi1SZWdpc3RlcklEKiBQb3N0Zml4RXJyb3JOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCopCitSZWdpc3RlcklEKiBQb3N0Zml4Tm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IGRzdCkKIHsKKyAgICBpZiAobV9leHByLT5pc1Jlc29sdmVOb2RlKCkpCisgICAgICAgIHJldHVy
biBlbWl0UmVzb2x2ZShnZW5lcmF0b3IsIGRzdCk7CisKKyAgICBpZiAobV9leHByLT5pc0JyYWNr
ZXRBY2Nlc3Nvck5vZGUoKSkKKyAgICAgICAgcmV0dXJuIGVtaXRCcmFja2V0KGdlbmVyYXRvciwg
ZHN0KTsKKworICAgIGlmIChtX2V4cHItPmlzRG90QWNjZXNzb3JOb2RlKCkpCisgICAgICAgIHJl
dHVybiBlbWl0RG90KGdlbmVyYXRvciwgZHN0KTsKKwogICAgIHJldHVybiBlbWl0VGhyb3dSZWZl
cmVuY2VFcnJvcihnZW5lcmF0b3IsIG1fb3BlcmF0b3IgPT0gT3BQbHVzUGx1cwogICAgICAgICA/
ICJQb3N0Zml4ICsrIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZl
cmVuY2UuIgogICAgICAgICA6ICJQb3N0Zml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUg
dGhhdCBpcyBub3QgYSByZWZlcmVuY2UuIik7CkBAIC03ODUsMTEgKzgwMiwxNSBAQCBSZWdpc3Rl
cklEKiBUeXBlT2ZWYWx1ZU5vZGU6OmVtaXRCeXRlY29kCiAgICAgcmV0dXJuIGdlbmVyYXRvci5l
bWl0VHlwZU9mKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIHNyYy5nZXQoKSk7CiB9
CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcmVmaXhSZXNvbHZlTm9kZSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gUHJlZml4Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLVJlZ2lzdGVySUQqIFByZWZpeFJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQorUmVnaXN0ZXJJRCogUHJlZml4
Tm9kZTo6ZW1pdFJlc29sdmUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCogZHN0KQogewotICAgIFJlc29sdmVSZXN1bHQgcmVzb2x2ZVJlc3VsdCA9IGdlbmVyYXRvci5y
ZXNvbHZlKG1faWRlbnQpOworICAgIEFTU0VSVChtX2V4cHItPmlzUmVzb2x2ZU5vZGUoKSk7Cisg
ICAgUmVzb2x2ZU5vZGUqIHJlc29sdmUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSo+KG1fZXhw
cik7CisgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSByZXNvbHZlLT5pZGVudGlmaWVyKCk7
CisKKyAgICBSZXNvbHZlUmVzdWx0IHJlc29sdmVSZXN1bHQgPSBnZW5lcmF0b3IucmVzb2x2ZShp
ZGVudCk7CiAgICAgaWYgKFJlZ2lzdGVySUQqIGxvY2FsID0gcmVzb2x2ZVJlc3VsdC5sb2NhbCgp
KSB7CiAgICAgICAgIGlmIChyZXNvbHZlUmVzdWx0LmlzUmVhZE9ubHkoKSkgewogICAgICAgICAg
ICAgaWYgKGRzdCA9PSBnZW5lcmF0b3IuaWdub3JlZFJlc3VsdCgpKQpAQCAtODAzLDI5ICs4MjQs
MzIgQEAgUmVnaXN0ZXJJRCogUHJlZml4UmVzb2x2ZU5vZGU6OmVtaXRCeXRlYwogICAgIH0KIAog
ICAgIGlmIChyZXNvbHZlUmVzdWx0LmlzU3RhdGljKCkgJiYgIXJlc29sdmVSZXN1bHQuaXNSZWFk
T25seSgpKSB7Ci0gICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wRHN0ID0gZ2VuZXJhdG9y
LmVtaXRHZXRTdGF0aWNWYXIoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCByZXNvbHZl
UmVzdWx0LCBtX2lkZW50KTsKKyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BEc3QgPSBn
ZW5lcmF0b3IuZW1pdEdldFN0YXRpY1ZhcihnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCks
IHJlc29sdmVSZXN1bHQsIGlkZW50KTsKICAgICAgICAgZW1pdFByZUluY09yRGVjKGdlbmVyYXRv
ciwgcHJvcERzdC5nZXQoKSwgbV9vcGVyYXRvcik7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHV0
U3RhdGljVmFyKHJlc29sdmVSZXN1bHQsIG1faWRlbnQsIHByb3BEc3QuZ2V0KCkpOworICAgICAg
ICBnZW5lcmF0b3IuZW1pdFB1dFN0YXRpY1ZhcihyZXNvbHZlUmVzdWx0LCBpZGVudCwgcHJvcERz
dC5nZXQoKSk7CiAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVzdGluYXRpb25JZk5l
ZWRlZChkc3QsIHByb3BEc3QuZ2V0KCkpOwogICAgIH0KIAogICAgIGdlbmVyYXRvci5lbWl0RXhw
cmVzc2lvbkluZm8oZGl2b3QoKSwgc3RhcnRPZmZzZXQoKSwgZW5kT2Zmc2V0KCkpOwogICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBwcm9wRHN0ID0gZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3Qp
OwotICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlV2l0
aEJhc2UoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBwcm9wRHN0LmdldCgpLCByZXNvbHZlUmVz
dWx0LCBtX2lkZW50KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5l
bWl0UmVzb2x2ZVdpdGhCYXNlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgcHJvcERzdC5nZXQo
KSwgcmVzb2x2ZVJlc3VsdCwgaWRlbnQpOwogICAgIGVtaXRQcmVJbmNPckRlYyhnZW5lcmF0b3Is
IHByb3BEc3QuZ2V0KCksIG1fb3BlcmF0b3IpOwotICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChi
YXNlLmdldCgpLCBtX2lkZW50LCBwcm9wRHN0LmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFB1
dEJ5SWQoYmFzZS5nZXQoKSwgaWRlbnQsIHByb3BEc3QuZ2V0KCkpOwogICAgIHJldHVybiBnZW5l
cmF0b3IubW92ZVRvRGVzdGluYXRpb25JZk5lZWRlZChkc3QsIHByb3BEc3QuZ2V0KCkpOwogfQog
Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJlZml4QnJhY2tldE5vZGUgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1SZWdpc3RlcklEKiBQcmVmaXhCcmFj
a2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lz
dGVySUQqIGRzdCkKK1JlZ2lzdGVySUQqIFByZWZpeE5vZGU6OmVtaXRCcmFja2V0KEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2Jhc2UpOwotICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBwcm9wZXJ0eSA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX3N1YnNjcmlwdCk7Cisg
ICAgQVNTRVJUKG1fZXhwci0+aXNCcmFja2V0QWNjZXNzb3JOb2RlKCkpOworICAgIEJyYWNrZXRB
Y2Nlc3Nvck5vZGUqIGJyYWNrZXRBY2Nlc3NvciA9IHN0YXRpY19jYXN0PEJyYWNrZXRBY2Nlc3Nv
ck5vZGUqPihtX2V4cHIpOworICAgIEV4cHJlc3Npb25Ob2RlKiBiYXNlTm9kZSA9IGJyYWNrZXRB
Y2Nlc3Nvci0+YmFzZSgpOworICAgIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQgPSBicmFja2V0
QWNjZXNzb3ItPnN1YnNjcmlwdCgpOworCisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBn
ZW5lcmF0b3IuZW1pdE5vZGUoYmFzZU5vZGUpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9w
ZXJ0eSA9IGdlbmVyYXRvci5lbWl0Tm9kZShzdWJzY3JpcHQpOwogICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiBwcm9wRHN0ID0gZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpOwogCi0gICAgZ2Vu
ZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpICsgbV9zdWJleHByZXNzaW9uRGl2b3RP
ZmZzZXQsIG1fc3ViZXhwcmVzc2lvblN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQoKSAtIG1fc3ViZXhw
cmVzc2lvbkRpdm90T2Zmc2V0KTsKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGJy
YWNrZXRBY2Nlc3Nvci0+ZGl2b3QoKSwgYnJhY2tldEFjY2Vzc29yLT5zdGFydE9mZnNldCgpLCBi
cmFja2V0QWNjZXNzb3ItPmVuZE9mZnNldCgpKTsKICAgICBSZWdpc3RlcklEKiB2YWx1ZSA9IGdl
bmVyYXRvci5lbWl0R2V0QnlWYWwocHJvcERzdC5nZXQoKSwgYmFzZS5nZXQoKSwgcHJvcGVydHku
Z2V0KCkpOwogICAgIGlmIChtX29wZXJhdG9yID09IE9wUGx1c1BsdXMpCiAgICAgICAgIGdlbmVy
YXRvci5lbWl0UHJlSW5jKHZhbHVlKTsKQEAgLTgzNiwyOCArODYwLDM4IEBAIFJlZ2lzdGVySUQq
IFByZWZpeEJyYWNrZXROb2RlOjplbWl0Qnl0ZWMKICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmVU
b0Rlc3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBwcm9wRHN0LmdldCgpKTsKIH0KIAotLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByZWZpeERvdE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi1SZWdpc3RlcklEKiBQcmVmaXhEb3ROb2RlOjplbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQorUmVnaXN0
ZXJJRCogUHJlZml4Tm9kZTo6ZW1pdERvdChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBS
ZWdpc3RlcklEKiBkc3QpCiB7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0
b3IuZW1pdE5vZGUobV9iYXNlKTsKKyAgICBBU1NFUlQobV9leHByLT5pc0RvdEFjY2Vzc29yTm9k
ZSgpKTsKKyAgICBEb3RBY2Nlc3Nvck5vZGUqIGRvdEFjY2Vzc29yID0gc3RhdGljX2Nhc3Q8RG90
QWNjZXNzb3JOb2RlKj4obV9leHByKTsKKyAgICBFeHByZXNzaW9uTm9kZSogYmFzZU5vZGUgPSBk
b3RBY2Nlc3Nvci0+YmFzZSgpOworICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gZG90QWNj
ZXNzb3ItPmlkZW50aWZpZXIoKTsKKworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2Vu
ZXJhdG9yLmVtaXROb2RlKGJhc2VOb2RlKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcERz
dCA9IGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KTsKIAotICAgIGdlbmVyYXRvci5lbWl0
RXhwcmVzc2lvbkluZm8oZGl2b3QoKSArIG1fc3ViZXhwcmVzc2lvbkRpdm90T2Zmc2V0LCBtX3N1
YmV4cHJlc3Npb25TdGFydE9mZnNldCwgZW5kT2Zmc2V0KCkgLSBtX3N1YmV4cHJlc3Npb25EaXZv
dE9mZnNldCk7Ci0gICAgUmVnaXN0ZXJJRCogdmFsdWUgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQo
cHJvcERzdC5nZXQoKSwgYmFzZS5nZXQoKSwgbV9pZGVudCk7CisgICAgZ2VuZXJhdG9yLmVtaXRF
eHByZXNzaW9uSW5mbyhkb3RBY2Nlc3Nvci0+ZGl2b3QoKSwgZG90QWNjZXNzb3ItPnN0YXJ0T2Zm
c2V0KCksIGRvdEFjY2Vzc29yLT5lbmRPZmZzZXQoKSk7CisgICAgUmVnaXN0ZXJJRCogdmFsdWUg
PSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQocHJvcERzdC5nZXQoKSwgYmFzZS5nZXQoKSwgaWRlbnQp
OwogICAgIGlmIChtX29wZXJhdG9yID09IE9wUGx1c1BsdXMpCiAgICAgICAgIGdlbmVyYXRvci5l
bWl0UHJlSW5jKHZhbHVlKTsKICAgICBlbHNlCiAgICAgICAgIGdlbmVyYXRvci5lbWl0UHJlRGVj
KHZhbHVlKTsKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIHN0YXJ0
T2Zmc2V0KCksIGVuZE9mZnNldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5n
ZXQoKSwgbV9pZGVudCwgdmFsdWUpOworICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdl
dCgpLCBpZGVudCwgdmFsdWUpOwogICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVzdGluYXRp
b25JZk5lZWRlZChkc3QsIHByb3BEc3QuZ2V0KCkpOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gUHJlZml4RXJyb3JOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLVJlZ2lzdGVySUQqIFByZWZpeEVycm9yTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqKQorUmVnaXN0ZXJJRCogUHJl
Zml4Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lz
dGVySUQqIGRzdCkKIHsKKyAgICBpZiAobV9leHByLT5pc1Jlc29sdmVOb2RlKCkpCisgICAgICAg
IHJldHVybiBlbWl0UmVzb2x2ZShnZW5lcmF0b3IsIGRzdCk7CisKKyAgICBpZiAobV9leHByLT5p
c0JyYWNrZXRBY2Nlc3Nvck5vZGUoKSkKKyAgICAgICAgcmV0dXJuIGVtaXRCcmFja2V0KGdlbmVy
YXRvciwgZHN0KTsKKworICAgIGlmIChtX2V4cHItPmlzRG90QWNjZXNzb3JOb2RlKCkpCisgICAg
ICAgIHJldHVybiBlbWl0RG90KGdlbmVyYXRvciwgZHN0KTsKKwogICAgIHJldHVybiBlbWl0VGhy
b3dSZWZlcmVuY2VFcnJvcihnZW5lcmF0b3IsIG1fb3BlcmF0b3IgPT0gT3BQbHVzUGx1cwogICAg
ICAgICA/ICJQcmVmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBh
IHJlZmVyZW5jZS4iCiAgICAgICAgIDogIlByZWZpeCAtLSBvcGVyYXRvciBhcHBsaWVkIHRvIHZh
bHVlIHRoYXQgaXMgbm90IGEgcmVmZXJlbmNlLiIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9BU1RCdWlsZGVyLmgJKHJldmlzaW9uIDEyNzU0NCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NDMsNDcg
Kzk0MywxMiBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUFzc2lnbk5vCiAKIEV4
cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlUHJlZml4Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogZXhwciwgT3BlcmF0b3Igb3AsIGludCBz
dGFydCwgaW50IGRpdm90LCBpbnQgZW5kKQogewotICAgIGlmICghZXhwci0+aXNMb2NhdGlvbigp
KQotICAgICAgICByZXR1cm4gbmV3IChtX2dsb2JhbERhdGEpIFByZWZpeEVycm9yTm9kZShsb2Nh
dGlvbiwgb3AsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7Ci0KLSAgICBpZiAo
ZXhwci0+aXNSZXNvbHZlTm9kZSgpKSB7Ci0gICAgICAgIFJlc29sdmVOb2RlKiByZXNvbHZlID0g
c3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPihleHByKTsKLSAgICAgICAgcmV0dXJuIG5ldyAobV9n
bG9iYWxEYXRhKSBQcmVmaXhSZXNvbHZlTm9kZShsb2NhdGlvbiwgcmVzb2x2ZS0+aWRlbnRpZmll
cigpLCBvcCwgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVuZCAtIGRpdm90KTsKLSAgICB9Ci0gICAg
aWYgKGV4cHItPmlzQnJhY2tldEFjY2Vzc29yTm9kZSgpKSB7Ci0gICAgICAgIEJyYWNrZXRBY2Nl
c3Nvck5vZGUqIGJyYWNrZXQgPSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4oZXhw
cik7Ci0gICAgICAgIFByZWZpeEJyYWNrZXROb2RlKiBub2RlID0gbmV3IChtX2dsb2JhbERhdGEp
IFByZWZpeEJyYWNrZXROb2RlKGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1
YnNjcmlwdCgpLCBvcCwgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVuZCAtIGRpdm90KTsKLSAgICAg
ICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2b3QoKSwgYnJhY2tldC0+
c3RhcnRPZmZzZXQoKSk7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLSAgICBBU1NFUlQo
ZXhwci0+aXNEb3RBY2Nlc3Nvck5vZGUoKSk7Ci0gICAgRG90QWNjZXNzb3JOb2RlKiBkb3QgPSBz
dGF0aWNfY2FzdDxEb3RBY2Nlc3Nvck5vZGUqPihleHByKTsKLSAgICBQcmVmaXhEb3ROb2RlKiBu
b2RlID0gbmV3IChtX2dsb2JhbERhdGEpIFByZWZpeERvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFz
ZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgb3AsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBk
aXZvdCk7Ci0gICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oZG90LT5kaXZvdCgpLCBkb3Qt
PnN0YXJ0T2Zmc2V0KCkpOwotICAgIHJldHVybiBub2RlOworICAgIHJldHVybiBuZXcgKG1fZ2xv
YmFsRGF0YSkgUHJlZml4Tm9kZShsb2NhdGlvbiwgZXhwciwgb3AsIGRpdm90LCBkaXZvdCAtIHN0
YXJ0LCBlbmQgLSBkaXZvdCk7CiB9CiAKIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtl
UG9zdGZpeE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5v
ZGUqIGV4cHIsIE9wZXJhdG9yIG9wLCBpbnQgc3RhcnQsIGludCBkaXZvdCwgaW50IGVuZCkKIHsK
LSAgICBpZiAoIWV4cHItPmlzTG9jYXRpb24oKSkKLSAgICAgICAgcmV0dXJuIG5ldyAobV9nbG9i
YWxEYXRhKSBQb3N0Zml4RXJyb3JOb2RlKGxvY2F0aW9uLCBvcCwgZGl2b3QsIGRpdm90IC0gc3Rh
cnQsIGVuZCAtIGRpdm90KTsKLQotICAgIGlmIChleHByLT5pc1Jlc29sdmVOb2RlKCkpIHsKLSAg
ICAgICAgUmVzb2x2ZU5vZGUqIHJlc29sdmUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSo+KGV4
cHIpOwotICAgICAgICByZXR1cm4gbmV3IChtX2dsb2JhbERhdGEpIFBvc3RmaXhSZXNvbHZlTm9k
ZShsb2NhdGlvbiwgcmVzb2x2ZS0+aWRlbnRpZmllcigpLCBvcCwgZGl2b3QsIGRpdm90IC0gc3Rh
cnQsIGVuZCAtIGRpdm90KTsKLSAgICB9Ci0gICAgaWYgKGV4cHItPmlzQnJhY2tldEFjY2Vzc29y
Tm9kZSgpKSB7Ci0gICAgICAgIEJyYWNrZXRBY2Nlc3Nvck5vZGUqIGJyYWNrZXQgPSBzdGF0aWNf
Y2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4oZXhwcik7Ci0gICAgICAgIFBvc3RmaXhCcmFja2V0
Tm9kZSogbm9kZSA9IG5ldyAobV9nbG9iYWxEYXRhKSBQb3N0Zml4QnJhY2tldE5vZGUobG9jYXRp
b24sIGJyYWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIG9wLCBkaXZvdCwgZGl2
b3QgLSBzdGFydCwgZW5kIC0gZGl2b3QpOwotICAgICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9u
SW5mbyhicmFja2V0LT5kaXZvdCgpLCBicmFja2V0LT5lbmRPZmZzZXQoKSk7Ci0gICAgICAgIHJl
dHVybiBub2RlOwotCi0gICAgfQotICAgIEFTU0VSVChleHByLT5pc0RvdEFjY2Vzc29yTm9kZSgp
KTsKLSAgICBEb3RBY2Nlc3Nvck5vZGUqIGRvdCA9IHN0YXRpY19jYXN0PERvdEFjY2Vzc29yTm9k
ZSo+KGV4cHIpOwotICAgIFBvc3RmaXhEb3ROb2RlKiBub2RlID0gbmV3IChtX2dsb2JhbERhdGEp
IFBvc3RmaXhEb3ROb2RlKGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90LT5pZGVudGlmaWVyKCks
IG9wLCBkaXZvdCwgZGl2b3QgLSBzdGFydCwgZW5kIC0gZGl2b3QpOwotICAgIG5vZGUtPnNldFN1
YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5lbmRPZmZzZXQoKSk7Ci0gICAgcmV0
dXJuIG5vZGU7CisgICAgcmV0dXJuIG5ldyAobV9nbG9iYWxEYXRhKSBQb3N0Zml4Tm9kZShsb2Nh
dGlvbiwgZXhwciwgb3AsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7CiB9CiAK
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVj
dG9ycy5oCShyZXZpc2lvbiAxMjc1NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjg3LDQwICsyODcsMTAgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAotICAgIGlubGluZSBQcmVQb3N0UmVzb2x2
ZU5vZGU6OlByZVBvc3RSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9u
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgdW5zaWduZWQgZGl2b3QsIHVuc2lnbmVkIHN0YXJ0
T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpCi0gICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9j
YXRpb24sIFJlc3VsdFR5cGU6Om51bWJlclR5cGUoKSkgLy8gY291bGQgYmUgcmV1c2FibGUgZm9y
IHByZT8KLSAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9uRGF0YShkaXZvdCwgc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCkKLSAgICAgICAgLCBtX2lkZW50KGlkZW50KQotICAgIHsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgUG9zdGZpeFJlc29sdmVOb2RlOjpQb3N0Zml4UmVzb2x2ZU5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9wZXJh
dG9yIG9wZXIsIHVuc2lnbmVkIGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQg
ZW5kT2Zmc2V0KQotICAgICAgICA6IFByZVBvc3RSZXNvbHZlTm9kZShsb2NhdGlvbiwgaWRlbnQs
IGRpdm90LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KQotICAgICAgICAsIG1fb3BlcmF0b3Iob3Bl
cikKLSAgICB7Ci0gICAgfQotCi0gICAgaW5saW5lIFBvc3RmaXhCcmFja2V0Tm9kZTo6UG9zdGZp
eEJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25O
b2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBPcGVyYXRvciBvcGVyLCB1bnNp
Z25lZCBkaXZvdCwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCkKLSAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKLSAgICAgICAgLCBUaHJvd2FibGVTdWJF
eHByZXNzaW9uRGF0YShkaXZvdCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCkKLSAgICAgICAgLCBt
X2Jhc2UoYmFzZSkKLSAgICAgICAgLCBtX3N1YnNjcmlwdChzdWJzY3JpcHQpCi0gICAgICAgICwg
bV9vcGVyYXRvcihvcGVyKQotICAgIHsKLSAgICB9Ci0KLSAgICBpbmxpbmUgUG9zdGZpeERvdE5v
ZGU6OlBvc3RmaXhEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJl
c3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgT3BlcmF0b3Igb3Blciwg
dW5zaWduZWQgZGl2b3QsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQp
Ci0gICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCi0gICAgICAgICwgVGhyb3dhYmxl
U3ViRXhwcmVzc2lvbkRhdGEoZGl2b3QsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpCi0gICAgICAg
ICwgbV9iYXNlKGJhc2UpCi0gICAgICAgICwgbV9pZGVudChpZGVudCkKLSAgICAgICAgLCBtX29w
ZXJhdG9yKG9wZXIpCi0gICAgewotICAgIH0KLQotICAgIGlubGluZSBQb3N0Zml4RXJyb3JOb2Rl
OjpQb3N0Zml4RXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIE9wZXJh
dG9yIG9wZXIsIHVuc2lnbmVkIGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQg
ZW5kT2Zmc2V0KQorICAgIGlubGluZSBQb3N0Zml4Tm9kZTo6UG9zdGZpeE5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIsIE9wZXJhdG9yIG9w
ZXIsIHVuc2lnbmVkIGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zm
c2V0KQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQotICAgICAgICAsIFRocm93
YWJsZVN1YkV4cHJlc3Npb25EYXRhKGRpdm90LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KQorICAg
ICAgICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBzdGFydE9mZnNldCwgZW5kT2Zm
c2V0KQorICAgICAgICAsIG1fZXhwcihleHByKQogICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikK
ICAgICB7CiAgICAgfQpAQCAtMzcyLDMzICszNDIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ewogICAgIH0KIAotICAgIGlubGluZSBQcmVmaXhSZXNvbHZlTm9kZTo6UHJlZml4UmVzb2x2ZU5v
ZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRl
bnQsIE9wZXJhdG9yIG9wZXIsIHVuc2lnbmVkIGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNldCwg
dW5zaWduZWQgZW5kT2Zmc2V0KQotICAgICAgICA6IFByZVBvc3RSZXNvbHZlTm9kZShsb2NhdGlv
biwgaWRlbnQsIGRpdm90LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KQotICAgICAgICAsIG1fb3Bl
cmF0b3Iob3BlcikKLSAgICB7Ci0gICAgfQotCi0gICAgaW5saW5lIFByZWZpeEJyYWNrZXROb2Rl
OjpQcmVmaXhCcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHBy
ZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgT3BlcmF0b3Igb3Bl
ciwgdW5zaWduZWQgZGl2b3QsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZz
ZXQpCi0gICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCi0gICAgICAgICwgVGhyb3dh
YmxlUHJlZml4ZWRTdWJFeHByZXNzaW9uRGF0YShkaXZvdCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNl
dCkKLSAgICAgICAgLCBtX2Jhc2UoYmFzZSkKLSAgICAgICAgLCBtX3N1YnNjcmlwdChzdWJzY3Jp
cHQpCi0gICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQotICAgIHsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgUHJlZml4RG90Tm9kZTo6UHJlZml4RG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxv
Y2F0aW9uLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9w
ZXJhdG9yIG9wZXIsIHVuc2lnbmVkIGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWdu
ZWQgZW5kT2Zmc2V0KQorICAgIGlubGluZSBQcmVmaXhOb2RlOjpQcmVmaXhOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBleHByLCBPcGVyYXRvciBv
cGVyLCB1bnNpZ25lZCBkaXZvdCwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9m
ZnNldCkKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBUaHJv
d2FibGVQcmVmaXhlZFN1YkV4cHJlc3Npb25EYXRhKGRpdm90LCBzdGFydE9mZnNldCwgZW5kT2Zm
c2V0KQotICAgICAgICAsIG1fYmFzZShiYXNlKQotICAgICAgICAsIG1faWRlbnQoaWRlbnQpCi0g
ICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQotICAgIHsKLSAgICB9Ci0KLSAgICBpbmxpbmUgUHJl
Zml4RXJyb3JOb2RlOjpQcmVmaXhFcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2Nh
dGlvbiwgT3BlcmF0b3Igb3BlciwgdW5zaWduZWQgZGl2b3QsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0
LCB1bnNpZ25lZCBlbmRPZmZzZXQpCi0gICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24p
Ci0gICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIHN0YXJ0T2Zmc2V0LCBl
bmRPZmZzZXQpCisgICAgICAgICwgbV9leHByKGV4cHIpCiAgICAgICAgICwgbV9vcGVyYXRvcihv
cGVyKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5o
CShyZXZpc2lvbiAxMjc1NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5NCw1NSArNTk0LDE3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCk7CiAgICAgfTsKIAotICAgIGNsYXNzIFByZVBvc3RSZXNvbHZl
Tm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25E
YXRhIHsKKyAgICBjbGFzcyBQb3N0Zml4Tm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVi
bGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFByZVBv
c3RSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwg
dW5zaWduZWQgZGl2b3QsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQp
OwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50Owot
ICAgIH07Ci0KLSAgICBjbGFzcyBQb3N0Zml4UmVzb2x2ZU5vZGUgOiBwdWJsaWMgUHJlUG9zdFJl
c29sdmVOb2RlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFBvc3RmaXhSZXNvbHZlTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3IsIHVuc2lnbmVk
IGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0KTsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKLQotICAgICAgICBPcGVyYXRvciBtX29w
ZXJhdG9yOwotICAgIH07Ci0KLSAgICBjbGFzcyBQb3N0Zml4QnJhY2tldE5vZGUgOiBwdWJsaWMg
RXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YSB7Ci0gICAg
cHVibGljOgotICAgICAgICBQb3N0Zml4QnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJh
dG9yLCB1bnNpZ25lZCBkaXZvdCwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9m
ZnNldCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7Ci0KLSAgICAgICAg
RXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKLSAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fc3Vic2Ny
aXB0OwotICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOwotICAgIH07Ci0KLSAgICBjbGFzcyBQ
b3N0Zml4RG90Tm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZVN1
YkV4cHJlc3Npb25EYXRhIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFBvc3RmaXhEb3ROb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVudGlm
aWVyJiwgT3BlcmF0b3IsIHVuc2lnbmVkIGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5z
aWduZWQgZW5kT2Zmc2V0KTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0
ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsK
LQotICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOwotICAgICAgICBjb25zdCBJZGVudGlm
aWVyJiBtX2lkZW50OwotICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOwotICAgIH07Ci0KLSAg
ICBjbGFzcyBQb3N0Zml4RXJyb3JOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMg
VGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEgewotICAgIHB1YmxpYzoKLSAgICAgICAgUG9zdGZp
eEVycm9yTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBPcGVyYXRvciwgdW5zaWduZWQgZGl2
b3QsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpOworICAgICAgICBQ
b3N0Zml4Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogZXhwciwg
T3BlcmF0b3IsIHVuc2lnbmVkIGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQg
ZW5kT2Zmc2V0KTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAg
ICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0UmVzb2x2ZShCeXRlY29kZUdlbmVyYXRvciYsIFJl
Z2lzdGVySUQqID0gMCk7CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJyYWNrZXQo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIFJl
Z2lzdGVySUQqIGVtaXREb3QoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOwog
CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgICAgIE9wZXJhdG9yIG1fb3Bl
cmF0b3I7CiAgICAgfTsKIApAQCAtNzIwLDQ3ICs2ODIsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsKIAotICAgIGNsYXNzIFByZWZp
eFJlc29sdmVOb2RlIDogcHVibGljIFByZVBvc3RSZXNvbHZlTm9kZSB7Ci0gICAgcHVibGljOgot
ICAgICAgICBQcmVmaXhSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJ
ZGVudGlmaWVyJiwgT3BlcmF0b3IsIHVuc2lnbmVkIGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNl
dCwgdW5zaWduZWQgZW5kT2Zmc2V0KTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwg
UmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSAwKTsKLQotICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOwotICAgIH07Ci0KLSAgICBjbGFz
cyBQcmVmaXhCcmFja2V0Tm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93
YWJsZVByZWZpeGVkU3ViRXhwcmVzc2lvbkRhdGEgewotICAgIHB1YmxpYzoKLSAgICAgICAgUHJl
Zml4QnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJh
c2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yLCB1bnNpZ25lZCBkaXZvdCwg
dW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCk7Ci0KLSAgICBwcml2YXRl
OgotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gMCk7Ci0KLSAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFz
ZTsKLSAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwotICAgICAgICBPcGVyYXRv
ciBtX29wZXJhdG9yOwotICAgIH07Ci0KLSAgICBjbGFzcyBQcmVmaXhEb3ROb2RlIDogcHVibGlj
IEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlUHJlZml4ZWRTdWJFeHByZXNzaW9uRGF0
YSB7Ci0gICAgcHVibGljOgotICAgICAgICBQcmVmaXhEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3Is
IHVuc2lnbmVkIGRpdm90LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0
KTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKLQotICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogbV9iYXNlOwotICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50Owot
ICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOwotICAgIH07Ci0KLSAgICBjbGFzcyBQcmVmaXhF
cnJvck5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNz
aW9uRGF0YSB7CisgICAgY2xhc3MgUHJlZml4Tm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwg
cHVibGljIFRocm93YWJsZVByZWZpeGVkU3ViRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoK
LSAgICAgICAgUHJlZml4RXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIE9wZXJhdG9y
LCB1bnNpZ25lZCBkaXZvdCwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNl
dCk7CisgICAgICAgIFByZWZpeE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lv
bk5vZGUqIGV4cHIsIE9wZXJhdG9yLCB1bnNpZ25lZCBkaXZvdCwgdW5zaWduZWQgc3RhcnRPZmZz
ZXQsIHVuc2lnbmVkIGVuZE9mZnNldCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFs
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gMCk7CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdFJlc29sdmUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQq
IGVtaXRCcmFja2V0KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAg
ICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0RG90KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSAwKTsKIAorICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgICAgICBP
cGVyYXRvciBtX29wZXJhdG9yOwogICAgIH07CiAK
</data>
<flag name="review"
          id="173435"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>