<?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>154637</bug_id>
          
          <creation_ts>2016-02-24 00:38:22 -0800</creation_ts>
          <short_desc>Use more references in FocusNavigationScope</short_desc>
          <delta_ts>2016-02-24 15:37:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>WebKit 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>
          
          <blocked>151379</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1167738</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-24 00:38:22 -0800</bug_when>
    <thetext>Per Darin&apos;s review comment in the bug 154630, use more references in FocusNavigationScope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167928</commentid>
    <comment_count>1</comment_count>
      <attachid>272147</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-24 14:40:57 -0800</bug_when>
    <thetext>Created attachment 272147
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167929</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-24 14:43:25 -0800</bug_when>
    <thetext>Attachment 272147 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:20:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 2 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>1167930</commentid>
    <comment_count>3</comment_count>
      <attachid>272148</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-24 14:45:41 -0800</bug_when>
    <thetext>Created attachment 272148
Did one more rename</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167946</commentid>
    <comment_count>4</comment_count>
      <attachid>272148</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-02-24 15:17:34 -0800</bug_when>
    <thetext>Comment on attachment 272148
Did one more rename

View in context: https://bugs.webkit.org/attachment.cgi?id=272148&amp;action=review

r=me

&gt; Source/WebCore/page/FocusController.cpp:170
&gt; +FocusNavigationScope FocusNavigationScope::scopeOwnedByShadowHost(Node&amp; node)

This should even take an Element&amp; in. Casting inside without check is terrible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167951</commentid>
    <comment_count>5</comment_count>
      <attachid>272148</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-24 15:37:42 -0800</bug_when>
    <thetext>Comment on attachment 272148
Did one more rename

View in context: https://bugs.webkit.org/attachment.cgi?id=272148&amp;action=review

&gt;&gt; Source/WebCore/page/FocusController.cpp:170
&gt;&gt; +FocusNavigationScope FocusNavigationScope::scopeOwnedByShadowHost(Node&amp; node)
&gt; 
&gt; This should even take an Element&amp; in. Casting inside without check is terrible.

Will fix. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167952</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-24 15:37:44 -0800</bug_when>
    <thetext>Committed r197055: &lt;http://trac.webkit.org/changeset/197055&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272147</attachid>
            <date>2016-02-24 14:40:57 -0800</date>
            <delta_ts>2016-02-24 14:45:37 -0800</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-154637-20160224144040.patch</filename>
            <type>text/plain</type>
            <size>13190</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzA1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE2LTAyLTI0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBtb3JlIHJlZmVyZW5jZXMg
aW4gRm9jdXNOYXZpZ2F0aW9uU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDYzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSByZWZlcmVuY2VzIGluIHZhcmlvdXMgZnVuY3Rpb25zIG9mIEZv
Y3VzTmF2aWdhdGlvblNjb3BlIGFzIHdlbGwgYXMgbV90cmVlU2NvcGUuCisKKyAgICAgICAgKiBw
YWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c05hdmlnYXRp
b25TY29wZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGUpOiBUYWtlcyBUcmVlU2NvcGUmIGluc3RlYWQg
b2YgVHJlZVNjb3BlKi4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzTmF2aWdhdGlvblNjb3BlOjpy
b290Tm9kZSk6IFJldHVybnMgQ29udGFpbmVyTm9kZSYgaW5zdGVhZCBvZiBDb250YWluZXJOb2Rl
Ki4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzTmF2aWdhdGlvblNjb3BlOjpvd25lcik6CisgICAg
ICAgIChXZWJDb3JlOjpGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZpZ2F0aW9uU2NvcGVP
Zik6IFRha2VzIE5vZGUmIGluc3RlYWQgb2YgTm9kZSouCisgICAgICAgIChXZWJDb3JlOjpGb2N1
c05hdmlnYXRpb25TY29wZTo6c2NvcGVPd25lZEJ5U2hhZG93SG9zdCk6IERpdHRvLiBSZW5hbWVk
IGZyb20gZm9jdXNOYXZpZ2F0aW9uU2NvcGVPd25lZEJ5U2hhZG93SG9zdC4KKyAgICAgICAgKFdl
YkNvcmU6OkZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU93bmVkQnlJRnJhbWUpOiBEaXR0by4g
UmVuYW1lZCBmcm9tIGZvY3VzTmF2aWdhdGlvblNjb3BlT3duZWRCeUlGcmFtZS4KKyAgICAgICAg
KFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZUVsZW1lbnREZXNjZW5kaW5n
RG93bkludG9GcmFtZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3Vz
Q29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZUVsZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKTogRGVmaW5l
IGN1cnJlbnRTY29wZSBpbnNpZGUgdGhlIGxvb3Agbm93IHRoYXQKKwl0aGUgY29weSBjb25zdHJ1
Y3RvciBvZiBGb2N1c05hdmlnYXRpb25TY29wZSBubyBsb25nZXIgZXhpc3RzIChzaW5jZSBtX3Ry
ZWVTY29wZSBpcyBhIHJlZmVyZW5jZSkuCisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xs
ZXI6OmZpbmRGb2N1c2FibGVFbGVtZW50UmVjdXJzaXZlbHkpOgorICAgICAgICAoV2ViQ29yZTo6
bmV4dEVsZW1lbnRXaXRoR3JlYXRlclRhYkluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3Vz
Q29udHJvbGxlcjo6bmV4dEZvY3VzYWJsZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9j
dXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJsZUVsZW1lbnQpOgorCiAyMDE2LTAyLTI0ICBB
ZGFtIEJlcmdrdmlzdCAgPGFkYW0uYmVyZ2t2aXN0QGVyaWNzc29uLmNvbT4KIAogICAgICAgICBX
ZWJSVEM6IEFkZCBNZWRpYUVuZHBvaW50IGludGVyZmFjZSAoV2ViUlRDIGJhY2tlbmQgYWJzdHJh
Y3Rpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCShyZXZp
c2lvbiAxOTcwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY5LDExICs2OSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogCiBjbGFzcyBGb2N1c05hdmlnYXRpb25TY29wZSB7CiBwdWJsaWM6Ci0gICAgQ29udGFp
bmVyTm9kZSogcm9vdE5vZGUoKSBjb25zdDsKKyAgICBDb250YWluZXJOb2RlJiByb290Tm9kZSgp
IGNvbnN0OwogICAgIEVsZW1lbnQqIG93bmVyKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIEZvY3VzTmF2aWdhdGlvblNjb3BlIGZvY3VzTmF2aWdhdGlvblNjb3BlT2YoTm9kZSop
OwotICAgIHN0YXRpYyBGb2N1c05hdmlnYXRpb25TY29wZSBmb2N1c05hdmlnYXRpb25TY29wZU93
bmVkQnlTaGFkb3dIb3N0KE5vZGUqKTsKLSAgICBzdGF0aWMgRm9jdXNOYXZpZ2F0aW9uU2NvcGUg
Zm9jdXNOYXZpZ2F0aW9uU2NvcGVPd25lZEJ5SUZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCop
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBGb2N1c05hdmlnYXRpb25TY29wZSBmb2N1c05h
dmlnYXRpb25TY29wZU9mKE5vZGUmKTsKKyAgICBzdGF0aWMgRm9jdXNOYXZpZ2F0aW9uU2NvcGUg
c2NvcGVPd25lZEJ5U2hhZG93SG9zdChOb2RlJik7CisgICAgc3RhdGljIEZvY3VzTmF2aWdhdGlv
blNjb3BlIHNjb3BlT3duZWRCeUlGcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmKTsKIAogICAg
IE5vZGUqIG5leHRJblNjb3BlKGNvbnN0IE5vZGUqKSBjb25zdDsKICAgICBOb2RlKiBwcmV2aW91
c0luU2NvcGUoY29uc3QgTm9kZSopIGNvbnN0OwpAQCAtODIsOCArODIsOCBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIE5vZGUqIGZpcnN0Q2hpbGRJblNjb3BlKGNvbnN0IE5vZGUqKSBjb25zdDsK
IAotICAgIGV4cGxpY2l0IEZvY3VzTmF2aWdhdGlvblNjb3BlKFRyZWVTY29wZSopOwotICAgIFRy
ZWVTY29wZSogbV9yb290VHJlZVNjb3BlOworICAgIGV4cGxpY2l0IEZvY3VzTmF2aWdhdGlvblNj
b3BlKFRyZWVTY29wZSYpOworICAgIFRyZWVTY29wZSYgbV9yb290VHJlZVNjb3BlOwogfTsKIAog
Ly8gRklYTUU6IEZvY3VzIG5hdmlnYXRpb24gc2hvdWxkIHdvcmsgd2l0aCBzaGFkb3cgdHJlZXMg
dGhhdCBoYXZlIHNsb3RzLgpAQCAtMTM3LDUwICsxMzcsNDcgQEAgTm9kZSogRm9jdXNOYXZpZ2F0
aW9uU2NvcGU6OnByZXZpb3VzSW5TYwogICAgIHJldHVybiBwYXJlbnRJblNjb3BlKG5vZGUpOwog
fQogCi1Gb2N1c05hdmlnYXRpb25TY29wZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGUoVHJlZVNjb3Bl
KiB0cmVlU2NvcGUpCitGb2N1c05hdmlnYXRpb25TY29wZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGUo
VHJlZVNjb3BlJiB0cmVlU2NvcGUpCiAgICAgOiBtX3Jvb3RUcmVlU2NvcGUodHJlZVNjb3BlKQog
ewotICAgIEFTU0VSVCh0cmVlU2NvcGUpOwogfQogCi1Db250YWluZXJOb2RlKiBGb2N1c05hdmln
YXRpb25TY29wZTo6cm9vdE5vZGUoKSBjb25zdAorQ29udGFpbmVyTm9kZSYgRm9jdXNOYXZpZ2F0
aW9uU2NvcGU6OnJvb3ROb2RlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gJm1fcm9vdFRyZWVTY29w
ZS0+cm9vdE5vZGUoKTsKKyAgICByZXR1cm4gbV9yb290VHJlZVNjb3BlLnJvb3ROb2RlKCk7CiB9
CiAKIEVsZW1lbnQqIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpvd25lcigpIGNvbnN0CiB7Ci0gICAg
Q29udGFpbmVyTm9kZSogcm9vdCA9IHJvb3ROb2RlKCk7Ci0gICAgaWYgKGlzPFNoYWRvd1Jvb3Q+
KCpyb290KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFNoYWRvd1Jvb3Q+KCpyb290KS5ob3N0
KCk7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IHJvb3QtPmRvY3VtZW50KCkuZnJhbWUoKSkKKyAg
ICBDb250YWluZXJOb2RlJiByb290ID0gcm9vdE5vZGUoKTsKKyAgICBpZiAoaXM8U2hhZG93Um9v
dD4ocm9vdCkpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxTaGFkb3dSb290Pihyb290KS5ob3N0
KCk7CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHJvb3QuZG9jdW1lbnQoKS5mcmFtZSgpKQogICAg
ICAgICByZXR1cm4gZnJhbWUtPm93bmVyRWxlbWVudCgpOwogICAgIHJldHVybiBudWxscHRyOwog
fQogCi1Gb2N1c05hdmlnYXRpb25TY29wZSBGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZp
Z2F0aW9uU2NvcGVPZihOb2RlKiBub2RlKQorRm9jdXNOYXZpZ2F0aW9uU2NvcGUgRm9jdXNOYXZp
Z2F0aW9uU2NvcGU6OmZvY3VzTmF2aWdhdGlvblNjb3BlT2YoTm9kZSYgc3RhcnRpbmdOb2RlKQog
ewotICAgIEFTU0VSVChub2RlKTsKLSAgICBOb2RlKiByb290ID0gbm9kZTsKLSAgICBmb3IgKE5v
ZGUqIG4gPSBub2RlOyBuOyBuID0gcGFyZW50SW5TY29wZShuKSkKLSAgICAgICAgcm9vdCA9IG47
CisgICAgTm9kZSogcm9vdCA9IG51bGxwdHI7CisgICAgZm9yIChOb2RlKiBjdXJyZW50Tm9kZSA9
ICZzdGFydGluZ05vZGU7IGN1cnJlbnROb2RlOyBjdXJyZW50Tm9kZSA9IHBhcmVudEluU2NvcGUo
Y3VycmVudE5vZGUpKQorICAgICAgICByb290ID0gY3VycmVudE5vZGU7CiAgICAgLy8gVGhlIHJl
c3VsdCBpcyBub3QgYWx3YXlzIGEgU2hhZG93Um9vdCBub3IgYSBEb2N1bWVudE5vZGUgc2luY2UK
ICAgICAvLyBhIHN0YXJ0aW5nIG5vZGUgaXMgaW4gYW4gb3JwaGFuZWQgdHJlZSBpbiBjb21wb3Nl
ZCBzaGFkb3cgdHJlZS4KLSAgICByZXR1cm4gRm9jdXNOYXZpZ2F0aW9uU2NvcGUoJnJvb3QtPnRy
ZWVTY29wZSgpKTsKKyAgICByZXR1cm4gRm9jdXNOYXZpZ2F0aW9uU2NvcGUocm9vdC0+dHJlZVNj
b3BlKCkpOwogfQogCi1Gb2N1c05hdmlnYXRpb25TY29wZSBGb2N1c05hdmlnYXRpb25TY29wZTo6
Zm9jdXNOYXZpZ2F0aW9uU2NvcGVPd25lZEJ5U2hhZG93SG9zdChOb2RlKiBub2RlKQorRm9jdXNO
YXZpZ2F0aW9uU2NvcGUgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT3duZWRCeVNoYWRvd0hv
c3QoTm9kZSYgbm9kZSkKIHsKLSAgICBBU1NFUlQobm9kZSk7Ci0gICAgQVNTRVJUKGRvd25jYXN0
PEVsZW1lbnQ+KCpub2RlKS5zaGFkb3dSb290KCkpOwotICAgIHJldHVybiBGb2N1c05hdmlnYXRp
b25TY29wZShkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuc2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkuc2hhZG93Um9vdCgpKTsKKyAgICByZXR1cm4gRm9j
dXNOYXZpZ2F0aW9uU2NvcGUoKmRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpLnNoYWRvd1Jvb3QoKSk7
CiB9CiAKLUZvY3VzTmF2aWdhdGlvblNjb3BlIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpmb2N1c05h
dmlnYXRpb25TY29wZU93bmVkQnlJRnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50KiBmcmFtZSkK
K0ZvY3VzTmF2aWdhdGlvblNjb3BlIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU93bmVkQnlJ
RnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBmcmFtZSkKIHsKLSAgICBBU1NFUlQoZnJhbWUp
OwotICAgIEFTU0VSVChmcmFtZS0+Y29udGVudEZyYW1lKCkpOwotICAgIHJldHVybiBGb2N1c05h
dmlnYXRpb25TY29wZShmcmFtZS0+Y29udGVudEZyYW1lKCktPmRvY3VtZW50KCkpOworICAgIEFT
U0VSVChmcmFtZS5jb250ZW50RnJhbWUoKSk7CisgICAgQVNTRVJUKGZyYW1lLmNvbnRlbnRGcmFt
ZSgpLT5kb2N1bWVudCgpKTsKKyAgICByZXR1cm4gRm9jdXNOYXZpZ2F0aW9uU2NvcGUoKmZyYW1l
LmNvbnRlbnRGcmFtZSgpLT5kb2N1bWVudCgpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGRp
c3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQs
IGJvb2wgZm9jdXNlZCkKQEAgLTMwMSw3ICsyOTgsNyBAQCBFbGVtZW50KiBGb2N1c0NvbnRyb2xs
ZXI6OmZpbmRGb2N1c2FibGVFCiAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXIg
PSBkb3duY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQ+KCplbGVtZW50KTsKICAgICAgICAgaWYg
KCFvd25lci5jb250ZW50RnJhbWUoKSkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBFbGVt
ZW50KiBmb3VuZEVsZW1lbnQgPSBmaW5kRm9jdXNhYmxlRWxlbWVudChkaXJlY3Rpb24sIEZvY3Vz
TmF2aWdhdGlvblNjb3BlOjpmb2N1c05hdmlnYXRpb25TY29wZU93bmVkQnlJRnJhbWUoJm93bmVy
KSwgMCwgZXZlbnQpOworICAgICAgICBFbGVtZW50KiBmb3VuZEVsZW1lbnQgPSBmaW5kRm9jdXNh
YmxlRWxlbWVudChkaXJlY3Rpb24sIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU93bmVkQnlJ
RnJhbWUob3duZXIpLCAwLCBldmVudCk7CiAgICAgICAgIGlmICghZm91bmRFbGVtZW50KQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIEFTU0VSVChlbGVtZW50ICE9IGZvdW5kRWxlbWVudCk7
CkBAIC0zNTUsNyArMzUyLDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0lu
RG9jdQogCiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBmaW5kRm9jdXNhYmxlRWxlbWVu
dEFjcm9zc0ZvY3VzU2NvcGUoZGlyZWN0aW9uLCBGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNO
YXZpZ2F0aW9uU2NvcGVPZihjdXJyZW50Tm9kZSA/IGN1cnJlbnROb2RlIDogZG9jdW1lbnQpLCBj
dXJyZW50Tm9kZSwgZXZlbnQpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gZmluZEZv
Y3VzYWJsZUVsZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKGRpcmVjdGlvbiwgRm9jdXNOYXZpZ2F0aW9u
U2NvcGU6OmZvY3VzTmF2aWdhdGlvblNjb3BlT2YoY3VycmVudE5vZGUgPyAqY3VycmVudE5vZGUg
OiAqZG9jdW1lbnQpLCBjdXJyZW50Tm9kZSwgZXZlbnQpOwogCiAgICAgaWYgKCFlbGVtZW50KSB7
CiAgICAgICAgIC8vIFdlIGRpZG4ndCBmaW5kIGEgbm9kZSB0byBmb2N1cywgc28gd2Ugc2hvdWxk
IHRyeSB0byBwYXNzIGZvY3VzIHRvIENocm9tZS4KQEAgLTM2Nyw3ICszNjQsNyBAQCBib29sIEZv
Y3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1CiAgICAgICAgIH0KIAogICAgICAgICAv
LyBDaHJvbWUgZG9lc24ndCB3YW50IGZvY3VzLCBzbyB3ZSBzaG91bGQgd3JhcCBmb2N1cy4KLSAg
ICAgICAgZWxlbWVudCA9IGZpbmRGb2N1c2FibGVFbGVtZW50UmVjdXJzaXZlbHkoZGlyZWN0aW9u
LCBGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZpZ2F0aW9uU2NvcGVPZihtX3BhZ2UubWFp
bkZyYW1lKCkuZG9jdW1lbnQoKSksIDAsIGV2ZW50KTsKKyAgICAgICAgZWxlbWVudCA9IGZpbmRG
b2N1c2FibGVFbGVtZW50UmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBGb2N1c05hdmlnYXRpb25TY29w
ZTo6Zm9jdXNOYXZpZ2F0aW9uU2NvcGVPZigqbV9wYWdlLm1haW5GcmFtZSgpLmRvY3VtZW50KCkp
LCAwLCBldmVudCk7CiAgICAgICAgIGVsZW1lbnQgPSBmaW5kRm9jdXNhYmxlRWxlbWVudERlc2Nl
bmRpbmdEb3duSW50b0ZyYW1lRG9jdW1lbnQoZGlyZWN0aW9uLCBlbGVtZW50LmdldCgpLCBldmVu
dCk7CiAKICAgICAgICAgaWYgKCFlbGVtZW50KQpAQCAtNDI0LDIzICs0MjEsMjEgQEAgRWxlbWVu
dCogRm9jdXNDb250cm9sbGVyOjpmaW5kRm9jdXNhYmxlRQogICAgIEFTU0VSVCghaXM8RWxlbWVu
dD4oY3VycmVudE5vZGUpIHx8ICFpc05vbkZvY3VzYWJsZVNoYWRvd0hvc3QoKmRvd25jYXN0PEVs
ZW1lbnQ+KGN1cnJlbnROb2RlKSwgKmV2ZW50KSk7CiAgICAgRWxlbWVudCogZm91bmQ7CiAgICAg
aWYgKGN1cnJlbnROb2RlICYmIGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkZvcndhcmQgJiYg
aXNGb2N1c2FibGVTaGFkb3dIb3N0KCpjdXJyZW50Tm9kZSwgKmV2ZW50KSkgewotICAgICAgICBF
bGVtZW50KiBmb3VuZEluSW5uZXJGb2N1c1Njb3BlID0gZmluZEZvY3VzYWJsZUVsZW1lbnRSZWN1
cnNpdmVseShkaXJlY3Rpb24sIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpmb2N1c05hdmlnYXRpb25T
Y29wZU93bmVkQnlTaGFkb3dIb3N0KGN1cnJlbnROb2RlKSwgMCwgZXZlbnQpOworICAgICAgICBF
bGVtZW50KiBmb3VuZEluSW5uZXJGb2N1c1Njb3BlID0gZmluZEZvY3VzYWJsZUVsZW1lbnRSZWN1
cnNpdmVseShkaXJlY3Rpb24sIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU93bmVkQnlTaGFk
b3dIb3N0KCpjdXJyZW50Tm9kZSksIDAsIGV2ZW50KTsKICAgICAgICAgZm91bmQgPSBmb3VuZElu
SW5uZXJGb2N1c1Njb3BlID8gZm91bmRJbklubmVyRm9jdXNTY29wZSA6IGZpbmRGb2N1c2FibGVF
bGVtZW50UmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBzY29wZSwgY3VycmVudE5vZGUsIGV2ZW50KTsK
ICAgICB9IGVsc2UKICAgICAgICAgZm91bmQgPSBmaW5kRm9jdXNhYmxlRWxlbWVudFJlY3Vyc2l2
ZWx5KGRpcmVjdGlvbiwgc2NvcGUsIGN1cnJlbnROb2RlLCBldmVudCk7CiAKICAgICAvLyBJZiB0
aGVyZSdzIG5vIGZvY3VzYWJsZSBub2RlIHRvIGFkdmFuY2UgdG8sIG1vdmUgdXAgdGhlIGZvY3Vz
IHNjb3BlcyB1bnRpbCB3ZSBmaW5kIG9uZS4KLSAgICBGb2N1c05hdmlnYXRpb25TY29wZSBjdXJy
ZW50U2NvcGUgPSBzY29wZTsKLSAgICB3aGlsZSAoIWZvdW5kKSB7Ci0gICAgICAgIEVsZW1lbnQq
IG93bmVyID0gY3VycmVudFNjb3BlLm93bmVyKCk7Ci0gICAgICAgIGlmICghb3duZXIpCi0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY3VycmVudFNjb3BlID0gRm9jdXNOYXZpZ2F0aW9uU2Nv
cGU6OmZvY3VzTmF2aWdhdGlvblNjb3BlT2Yob3duZXIpOworICAgIEVsZW1lbnQqIG93bmVyID0g
c2NvcGUub3duZXIoKTsKKyAgICB3aGlsZSAoIWZvdW5kICYmIG93bmVyKSB7CisgICAgICAgIEZv
Y3VzTmF2aWdhdGlvblNjb3BlIGN1cnJlbnRTY29wZSA9IEZvY3VzTmF2aWdhdGlvblNjb3BlOjpm
b2N1c05hdmlnYXRpb25TY29wZU9mKCpvd25lcik7CiAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0g
Rm9jdXNEaXJlY3Rpb25CYWNrd2FyZCAmJiBpc0ZvY3VzYWJsZVNoYWRvd0hvc3QoKm93bmVyLCAq
ZXZlbnQpKSB7CiAgICAgICAgICAgICBmb3VuZCA9IG93bmVyOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgZm91bmQgPSBmaW5kRm9jdXNhYmxlRWxlbWVudFJlY3Vyc2l2
ZWx5KGRpcmVjdGlvbiwgY3VycmVudFNjb3BlLCBvd25lciwgZXZlbnQpOworICAgICAgICBvd25l
ciA9IGN1cnJlbnRTY29wZS5vd25lcigpOwogICAgIH0KICAgICBmb3VuZCA9IGZpbmRGb2N1c2Fi
bGVFbGVtZW50RGVzY2VuZGluZ0Rvd25JbnRvRnJhbWVEb2N1bWVudChkaXJlY3Rpb24sIGZvdW5k
LCBldmVudCk7CiAgICAgcmV0dXJuIGZvdW5kOwpAQCAtNDU1LDE2ICs0NTAsMTYgQEAgRWxlbWVu
dCogRm9jdXNDb250cm9sbGVyOjpmaW5kRm9jdXNhYmxlRQogICAgIGlmIChkaXJlY3Rpb24gPT0g
Rm9jdXNEaXJlY3Rpb25Gb3J3YXJkKSB7CiAgICAgICAgIGlmICghaXNOb25Gb2N1c2FibGVTaGFk
b3dIb3N0KCpmb3VuZCwgKmV2ZW50KSkKICAgICAgICAgICAgIHJldHVybiBmb3VuZDsKLSAgICAg
ICAgRWxlbWVudCogZm91bmRJbklubmVyRm9jdXNTY29wZSA9IGZpbmRGb2N1c2FibGVFbGVtZW50
UmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZpZ2F0
aW9uU2NvcGVPd25lZEJ5U2hhZG93SG9zdChmb3VuZCksIDAsIGV2ZW50KTsKKyAgICAgICAgRWxl
bWVudCogZm91bmRJbklubmVyRm9jdXNTY29wZSA9IGZpbmRGb2N1c2FibGVFbGVtZW50UmVjdXJz
aXZlbHkoZGlyZWN0aW9uLCBGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVPd25lZEJ5U2hhZG93
SG9zdCgqZm91bmQpLCAwLCBldmVudCk7CiAgICAgICAgIHJldHVybiBmb3VuZEluSW5uZXJGb2N1
c1Njb3BlID8gZm91bmRJbklubmVyRm9jdXNTY29wZSA6IGZpbmRGb2N1c2FibGVFbGVtZW50UmVj
dXJzaXZlbHkoZGlyZWN0aW9uLCBzY29wZSwgZm91bmQsIGV2ZW50KTsKICAgICB9CiAgICAgQVNT
RVJUKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkKTsKICAgICBpZiAoaXNGb2N1
c2FibGVTaGFkb3dIb3N0KCpmb3VuZCwgKmV2ZW50KSkgewotICAgICAgICBFbGVtZW50KiBmb3Vu
ZEluSW5uZXJGb2N1c1Njb3BlID0gZmluZEZvY3VzYWJsZUVsZW1lbnRSZWN1cnNpdmVseShkaXJl
Y3Rpb24sIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpmb2N1c05hdmlnYXRpb25TY29wZU93bmVkQnlT
aGFkb3dIb3N0KGZvdW5kKSwgMCwgZXZlbnQpOworICAgICAgICBFbGVtZW50KiBmb3VuZEluSW5u
ZXJGb2N1c1Njb3BlID0gZmluZEZvY3VzYWJsZUVsZW1lbnRSZWN1cnNpdmVseShkaXJlY3Rpb24s
IEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU93bmVkQnlTaGFkb3dIb3N0KCpmb3VuZCksIDAs
IGV2ZW50KTsKICAgICAgICAgcmV0dXJuIGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUgPyBmb3VuZElu
SW5uZXJGb2N1c1Njb3BlIDogZm91bmQ7CiAgICAgfQogICAgIGlmIChpc05vbkZvY3VzYWJsZVNo
YWRvd0hvc3QoKmZvdW5kLCAqZXZlbnQpKSB7Ci0gICAgICAgIEVsZW1lbnQqIGZvdW5kSW5Jbm5l
ckZvY3VzU2NvcGUgPSBmaW5kRm9jdXNhYmxlRWxlbWVudFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwg
Rm9jdXNOYXZpZ2F0aW9uU2NvcGU6OmZvY3VzTmF2aWdhdGlvblNjb3BlT3duZWRCeVNoYWRvd0hv
c3QoZm91bmQpLCAwLCBldmVudCk7CisgICAgICAgIEVsZW1lbnQqIGZvdW5kSW5Jbm5lckZvY3Vz
U2NvcGUgPSBmaW5kRm9jdXNhYmxlRWxlbWVudFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgRm9jdXNO
YXZpZ2F0aW9uU2NvcGU6OnNjb3BlT3duZWRCeVNoYWRvd0hvc3QoKmZvdW5kKSwgMCwgZXZlbnQp
OwogICAgICAgICByZXR1cm4gZm91bmRJbklubmVyRm9jdXNTY29wZSA/IGZvdW5kSW5Jbm5lckZv
Y3VzU2NvcGUgOmZpbmRGb2N1c2FibGVFbGVtZW50UmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBzY29w
ZSwgZm91bmQsIGV2ZW50KTsKICAgICB9CiAgICAgcmV0dXJuIGZvdW5kOwpAQCAtNDk1LDcgKzQ5
MCw3IEBAIHN0YXRpYyBFbGVtZW50KiBuZXh0RWxlbWVudFdpdGhHcmVhdGVyVGEKICAgICAvLyBT
ZWFyY2ggaXMgaW5jbHVzaXZlIG9mIHN0YXJ0CiAgICAgaW50IHdpbm5pbmdUYWJJbmRleCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjptYXgoKSArIDE7CiAgICAgRWxlbWVudCogd2lubmVy
ID0gbnVsbHB0cjsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBzY29wZS5yb290Tm9kZSgpOyBub2Rl
OyBub2RlID0gc2NvcGUubmV4dEluU2NvcGUobm9kZSkpIHsKKyAgICBmb3IgKE5vZGUqIG5vZGUg
PSAmc2NvcGUucm9vdE5vZGUoKTsgbm9kZTsgbm9kZSA9IHNjb3BlLm5leHRJblNjb3BlKG5vZGUp
KSB7CiAgICAgICAgIGlmICghaXM8RWxlbWVudD4oKm5vZGUpKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7
CkBAIC01MjksMTMgKzUyNCwxMyBAQCBzdGF0aWMgRWxlbWVudCogcHJldmlvdXNFbGVtZW50V2l0
aExvd2VyCiBFbGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6Om5leHRGb2N1c2FibGVFbGVtZW50KE5v
ZGUmIHN0YXJ0KQogewogICAgIFJlZjxLZXlib2FyZEV2ZW50PiBrZXlFdmVudCA9IEtleWJvYXJk
RXZlbnQ6OmNyZWF0ZUZvckR1bW15KCk7Ci0gICAgcmV0dXJuIG5leHRGb2N1c2FibGVFbGVtZW50
KEZvY3VzTmF2aWdhdGlvblNjb3BlOjpmb2N1c05hdmlnYXRpb25TY29wZU9mKCZzdGFydCksICZz
dGFydCwga2V5RXZlbnQucHRyKCkpOworICAgIHJldHVybiBuZXh0Rm9jdXNhYmxlRWxlbWVudChG
b2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZpZ2F0aW9uU2NvcGVPZihzdGFydCksICZzdGFy
dCwga2V5RXZlbnQucHRyKCkpOwogfQogCiBFbGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6OnByZXZp
b3VzRm9jdXNhYmxlRWxlbWVudChOb2RlJiBzdGFydCkKIHsKICAgICBSZWY8S2V5Ym9hcmRFdmVu
dD4ga2V5RXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGVGb3JEdW1teSgpOwotICAgIHJldHVy
biBwcmV2aW91c0ZvY3VzYWJsZUVsZW1lbnQoRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OmZvY3VzTmF2
aWdhdGlvblNjb3BlT2YoJnN0YXJ0KSwgJnN0YXJ0LCBrZXlFdmVudC5wdHIoKSk7CisgICAgcmV0
dXJuIHByZXZpb3VzRm9jdXNhYmxlRWxlbWVudChGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNO
YXZpZ2F0aW9uU2NvcGVPZihzdGFydCksICZzdGFydCwga2V5RXZlbnQucHRyKCkpOwogfQogCiBF
bGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6Om5leHRGb2N1c2FibGVFbGVtZW50KGNvbnN0IEZvY3Vz
TmF2aWdhdGlvblNjb3BlJiBzY29wZSwgTm9kZSogc3RhcnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50
KQpAQCAtNTcwLDEzICs1NjUsMTMgQEAgRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9j
dXNhYmxlRQogCiAgICAgLy8gVGhlcmUgYXJlIG5vIG5vZGVzIHdpdGggYSB0YWJpbmRleCBncmVh
dGVyIHRoYW4gc3RhcnQncyB0YWJpbmRleCwKICAgICAvLyBzbyBmaW5kIHRoZSBmaXJzdCBub2Rl
IHdpdGggYSB0YWJpbmRleCBvZiAwLgotICAgIHJldHVybiBmaW5kRWxlbWVudFdpdGhFeGFjdFRh
YkluZGV4KHNjb3BlLCBzY29wZS5yb290Tm9kZSgpLCAwLCBldmVudCwgRm9jdXNEaXJlY3Rpb25G
b3J3YXJkKTsKKyAgICByZXR1cm4gZmluZEVsZW1lbnRXaXRoRXhhY3RUYWJJbmRleChzY29wZSwg
JnNjb3BlLnJvb3ROb2RlKCksIDAsIGV2ZW50LCBGb2N1c0RpcmVjdGlvbkZvcndhcmQpOwogfQog
CiBFbGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNhYmxlRWxlbWVudChjb25z
dCBGb2N1c05hdmlnYXRpb25TY29wZSYgc2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50
KiBldmVudCkKIHsKICAgICBOb2RlKiBsYXN0ID0gbnVsbHB0cjsKLSAgICBmb3IgKE5vZGUqIG5v
ZGUgPSBzY29wZS5yb290Tm9kZSgpOyBub2RlOyBub2RlID0gc2NvcGUubGFzdENoaWxkSW5TY29w
ZShub2RlKSkKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSAmc2NvcGUucm9vdE5vZGUoKTsgbm9kZTsg
bm9kZSA9IHNjb3BlLmxhc3RDaGlsZEluU2NvcGUobm9kZSkpCiAgICAgICAgIGxhc3QgPSBub2Rl
OwogICAgIEFTU0VSVChsYXN0KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272148</attachid>
            <date>2016-02-24 14:45:41 -0800</date>
            <delta_ts>2016-02-24 15:17:34 -0800</delta_ts>
            <desc>Did one more rename</desc>
            <filename>bug-154637-20160224144524.patch</filename>
            <type>text/plain</type>
            <size>13114</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzA1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE2LTAyLTI0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBtb3JlIHJlZmVyZW5jZXMg
aW4gRm9jdXNOYXZpZ2F0aW9uU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDYzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSByZWZlcmVuY2VzIGluIHZhcmlvdXMgZnVuY3Rpb25zIG9mIEZv
Y3VzTmF2aWdhdGlvblNjb3BlIGFzIHdlbGwgYXMgbV90cmVlU2NvcGUuCisKKyAgICAgICAgKiBw
YWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c05hdmlnYXRp
b25TY29wZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGUpOiBUYWtlcyBUcmVlU2NvcGUmIGluc3RlYWQg
b2YgVHJlZVNjb3BlKi4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzTmF2aWdhdGlvblNjb3BlOjpy
b290Tm9kZSk6IFJldHVybnMgQ29udGFpbmVyTm9kZSYgaW5zdGVhZCBvZiBDb250YWluZXJOb2Rl
Ki4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzTmF2aWdhdGlvblNjb3BlOjpvd25lcik6CisgICAg
ICAgIChXZWJDb3JlOjpGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVPZik6IFRha2VzIE5vZGUm
IGluc3RlYWQgb2YgTm9kZSouIFJlbmFtZWQgZnJvbSBmb2N1c05hdmlnYXRpb25TY29wZU9mLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT3duZWRCeVNoYWRv
d0hvc3QpOiBEaXR0by4gUmVuYW1lZCBmcm9tIGZvY3VzTmF2aWdhdGlvblNjb3BlT3duZWRCeVNo
YWRvd0hvc3QuCisgICAgICAgIChXZWJDb3JlOjpGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVP
d25lZEJ5SUZyYW1lKTogRGl0dG8uIFJlbmFtZWQgZnJvbSBmb2N1c05hdmlnYXRpb25TY29wZU93
bmVkQnlJRnJhbWUuCisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1
c2FibGVFbGVtZW50RGVzY2VuZGluZ0Rvd25JbnRvRnJhbWVEb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVFbGVtZW50QWNy
b3NzRm9jdXNTY29wZSk6IERlZmluZSBjdXJyZW50U2NvcGUgaW5zaWRlIHRoZSBsb29wIG5vdyB0
aGF0CisgICAgICAgIHRoZSBjb3B5IGNvbnN0cnVjdG9yIG9mIEZvY3VzTmF2aWdhdGlvblNjb3Bl
IG5vIGxvbmdlciBleGlzdHMgKHNpbmNlIG1fdHJlZVNjb3BlIGlzIGEgcmVmZXJlbmNlKS4KKyAg
ICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZUVsZW1lbnRSZWN1
cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0RWxlbWVudFdpdGhHcmVhdGVyVGFiSW5k
ZXgpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpuZXh0Rm9jdXNhYmxlRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNh
YmxlRWxlbWVudCk6CisKIDIwMTYtMDItMjQgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zp
c3RAZXJpY3Nzb24uY29tPgogCiAgICAgICAgIFdlYlJUQzogQWRkIE1lZGlhRW5kcG9pbnQgaW50
ZXJmYWNlIChXZWJSVEMgYmFja2VuZCBhYnN0cmFjdGlvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZvY3VzQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE5NzA0NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMTEgKzY5
LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIGNsYXNzIEZvY3VzTmF2aWdhdGlv
blNjb3BlIHsKIHB1YmxpYzoKLSAgICBDb250YWluZXJOb2RlKiByb290Tm9kZSgpIGNvbnN0Owor
ICAgIENvbnRhaW5lck5vZGUmIHJvb3ROb2RlKCkgY29uc3Q7CiAgICAgRWxlbWVudCogb3duZXIo
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRm9jdXNOYXZpZ2F0aW9uU2NvcGUg
Zm9jdXNOYXZpZ2F0aW9uU2NvcGVPZihOb2RlKik7Ci0gICAgc3RhdGljIEZvY3VzTmF2aWdhdGlv
blNjb3BlIGZvY3VzTmF2aWdhdGlvblNjb3BlT3duZWRCeVNoYWRvd0hvc3QoTm9kZSopOwotICAg
IHN0YXRpYyBGb2N1c05hdmlnYXRpb25TY29wZSBmb2N1c05hdmlnYXRpb25TY29wZU93bmVkQnlJ
RnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IEZvY3VzTmF2aWdhdGlvblNjb3BlIHNjb3BlT2YoTm9kZSYpOworICAgIHN0YXRpYyBGb2N1c05h
dmlnYXRpb25TY29wZSBzY29wZU93bmVkQnlTaGFkb3dIb3N0KE5vZGUmKTsKKyAgICBzdGF0aWMg
Rm9jdXNOYXZpZ2F0aW9uU2NvcGUgc2NvcGVPd25lZEJ5SUZyYW1lKEhUTUxGcmFtZU93bmVyRWxl
bWVudCYpOwogCiAgICAgTm9kZSogbmV4dEluU2NvcGUoY29uc3QgTm9kZSopIGNvbnN0OwogICAg
IE5vZGUqIHByZXZpb3VzSW5TY29wZShjb25zdCBOb2RlKikgY29uc3Q7CkBAIC04Miw4ICs4Miw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTm9kZSogZmlyc3RDaGlsZEluU2NvcGUoY29uc3Qg
Tm9kZSopIGNvbnN0OwogCi0gICAgZXhwbGljaXQgRm9jdXNOYXZpZ2F0aW9uU2NvcGUoVHJlZVNj
b3BlKik7Ci0gICAgVHJlZVNjb3BlKiBtX3Jvb3RUcmVlU2NvcGU7CisgICAgZXhwbGljaXQgRm9j
dXNOYXZpZ2F0aW9uU2NvcGUoVHJlZVNjb3BlJik7CisgICAgVHJlZVNjb3BlJiBtX3Jvb3RUcmVl
U2NvcGU7CiB9OwogCiAvLyBGSVhNRTogRm9jdXMgbmF2aWdhdGlvbiBzaG91bGQgd29yayB3aXRo
IHNoYWRvdyB0cmVlcyB0aGF0IGhhdmUgc2xvdHMuCkBAIC0xMzcsNTAgKzEzNyw0NyBAQCBOb2Rl
KiBGb2N1c05hdmlnYXRpb25TY29wZTo6cHJldmlvdXNJblNjCiAgICAgcmV0dXJuIHBhcmVudElu
U2NvcGUobm9kZSk7CiB9CiAKLUZvY3VzTmF2aWdhdGlvblNjb3BlOjpGb2N1c05hdmlnYXRpb25T
Y29wZShUcmVlU2NvcGUqIHRyZWVTY29wZSkKK0ZvY3VzTmF2aWdhdGlvblNjb3BlOjpGb2N1c05h
dmlnYXRpb25TY29wZShUcmVlU2NvcGUmIHRyZWVTY29wZSkKICAgICA6IG1fcm9vdFRyZWVTY29w
ZSh0cmVlU2NvcGUpCiB7Ci0gICAgQVNTRVJUKHRyZWVTY29wZSk7CiB9CiAKLUNvbnRhaW5lck5v
ZGUqIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpyb290Tm9kZSgpIGNvbnN0CitDb250YWluZXJOb2Rl
JiBGb2N1c05hdmlnYXRpb25TY29wZTo6cm9vdE5vZGUoKSBjb25zdAogewotICAgIHJldHVybiAm
bV9yb290VHJlZVNjb3BlLT5yb290Tm9kZSgpOworICAgIHJldHVybiBtX3Jvb3RUcmVlU2NvcGUu
cm9vdE5vZGUoKTsKIH0KIAogRWxlbWVudCogRm9jdXNOYXZpZ2F0aW9uU2NvcGU6Om93bmVyKCkg
Y29uc3QKIHsKLSAgICBDb250YWluZXJOb2RlKiByb290ID0gcm9vdE5vZGUoKTsKLSAgICBpZiAo
aXM8U2hhZG93Um9vdD4oKnJvb3QpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8U2hhZG93Um9v
dD4oKnJvb3QpLmhvc3QoKTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gcm9vdC0+ZG9jdW1lbnQo
KS5mcmFtZSgpKQorICAgIENvbnRhaW5lck5vZGUmIHJvb3QgPSByb290Tm9kZSgpOworICAgIGlm
IChpczxTaGFkb3dSb290Pihyb290KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFNoYWRvd1Jv
b3Q+KHJvb3QpLmhvc3QoKTsKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gcm9vdC5kb2N1bWVudCgp
LmZyYW1lKCkpCiAgICAgICAgIHJldHVybiBmcmFtZS0+b3duZXJFbGVtZW50KCk7CiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKLUZvY3VzTmF2aWdhdGlvblNjb3BlIEZvY3VzTmF2aWdhdGlvblNj
b3BlOjpmb2N1c05hdmlnYXRpb25TY29wZU9mKE5vZGUqIG5vZGUpCitGb2N1c05hdmlnYXRpb25T
Y29wZSBGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVPZihOb2RlJiBzdGFydGluZ05vZGUpCiB7
Ci0gICAgQVNTRVJUKG5vZGUpOwotICAgIE5vZGUqIHJvb3QgPSBub2RlOwotICAgIGZvciAoTm9k
ZSogbiA9IG5vZGU7IG47IG4gPSBwYXJlbnRJblNjb3BlKG4pKQotICAgICAgICByb290ID0gbjsK
KyAgICBOb2RlKiByb290ID0gbnVsbHB0cjsKKyAgICBmb3IgKE5vZGUqIGN1cnJlbnROb2RlID0g
JnN0YXJ0aW5nTm9kZTsgY3VycmVudE5vZGU7IGN1cnJlbnROb2RlID0gcGFyZW50SW5TY29wZShj
dXJyZW50Tm9kZSkpCisgICAgICAgIHJvb3QgPSBjdXJyZW50Tm9kZTsKICAgICAvLyBUaGUgcmVz
dWx0IGlzIG5vdCBhbHdheXMgYSBTaGFkb3dSb290IG5vciBhIERvY3VtZW50Tm9kZSBzaW5jZQog
ICAgIC8vIGEgc3RhcnRpbmcgbm9kZSBpcyBpbiBhbiBvcnBoYW5lZCB0cmVlIGluIGNvbXBvc2Vk
IHNoYWRvdyB0cmVlLgotICAgIHJldHVybiBGb2N1c05hdmlnYXRpb25TY29wZSgmcm9vdC0+dHJl
ZVNjb3BlKCkpOworICAgIHJldHVybiBGb2N1c05hdmlnYXRpb25TY29wZShyb290LT50cmVlU2Nv
cGUoKSk7CiB9CiAKLUZvY3VzTmF2aWdhdGlvblNjb3BlIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpm
b2N1c05hdmlnYXRpb25TY29wZU93bmVkQnlTaGFkb3dIb3N0KE5vZGUqIG5vZGUpCitGb2N1c05h
dmlnYXRpb25TY29wZSBGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVPd25lZEJ5U2hhZG93SG9z
dChOb2RlJiBub2RlKQogewotICAgIEFTU0VSVChub2RlKTsKLSAgICBBU1NFUlQoZG93bmNhc3Q8
RWxlbWVudD4oKm5vZGUpLnNoYWRvd1Jvb3QoKSk7Ci0gICAgcmV0dXJuIEZvY3VzTmF2aWdhdGlv
blNjb3BlKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKS5zaGFkb3dSb290KCkpOworICAgIEFTU0VS
VChkb3duY2FzdDxFbGVtZW50Pihub2RlKS5zaGFkb3dSb290KCkpOworICAgIHJldHVybiBGb2N1
c05hdmlnYXRpb25TY29wZSgqZG93bmNhc3Q8RWxlbWVudD4obm9kZSkuc2hhZG93Um9vdCgpKTsK
IH0KIAotRm9jdXNOYXZpZ2F0aW9uU2NvcGUgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OmZvY3VzTmF2
aWdhdGlvblNjb3BlT3duZWRCeUlGcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQqIGZyYW1lKQor
Rm9jdXNOYXZpZ2F0aW9uU2NvcGUgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT3duZWRCeUlG
cmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmIGZyYW1lKQogewotICAgIEFTU0VSVChmcmFtZSk7
Ci0gICAgQVNTRVJUKGZyYW1lLT5jb250ZW50RnJhbWUoKSk7Ci0gICAgcmV0dXJuIEZvY3VzTmF2
aWdhdGlvblNjb3BlKGZyYW1lLT5jb250ZW50RnJhbWUoKS0+ZG9jdW1lbnQoKSk7CisgICAgQVNT
RVJUKGZyYW1lLmNvbnRlbnRGcmFtZSgpKTsKKyAgICBBU1NFUlQoZnJhbWUuY29udGVudEZyYW1l
KCktPmRvY3VtZW50KCkpOworICAgIHJldHVybiBGb2N1c05hdmlnYXRpb25TY29wZSgqZnJhbWUu
Y29udGVudEZyYW1lKCktPmRvY3VtZW50KCkpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZGlz
cGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwg
Ym9vbCBmb2N1c2VkKQpAQCAtMzAxLDcgKzI5OCw3IEBAIEVsZW1lbnQqIEZvY3VzQ29udHJvbGxl
cjo6ZmluZEZvY3VzYWJsZUUKICAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lciA9
IGRvd25jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudD4oKmVsZW1lbnQpOwogICAgICAgICBpZiAo
IW93bmVyLmNvbnRlbnRGcmFtZSgpKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIEVsZW1l
bnQqIGZvdW5kRWxlbWVudCA9IGZpbmRGb2N1c2FibGVFbGVtZW50KGRpcmVjdGlvbiwgRm9jdXNO
YXZpZ2F0aW9uU2NvcGU6OmZvY3VzTmF2aWdhdGlvblNjb3BlT3duZWRCeUlGcmFtZSgmb3duZXIp
LCAwLCBldmVudCk7CisgICAgICAgIEVsZW1lbnQqIGZvdW5kRWxlbWVudCA9IGZpbmRGb2N1c2Fi
bGVFbGVtZW50KGRpcmVjdGlvbiwgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT3duZWRCeUlG
cmFtZShvd25lciksIDAsIGV2ZW50KTsKICAgICAgICAgaWYgKCFmb3VuZEVsZW1lbnQpCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgQVNTRVJUKGVsZW1lbnQgIT0gZm91bmRFbGVtZW50KTsK
QEAgLTM1NSw3ICszNTIsNyBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5E
b2N1CiAKICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGZpbmRGb2N1c2FibGVFbGVtZW50
QWNyb3NzRm9jdXNTY29wZShkaXJlY3Rpb24sIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpmb2N1c05h
dmlnYXRpb25TY29wZU9mKGN1cnJlbnROb2RlID8gY3VycmVudE5vZGUgOiBkb2N1bWVudCksIGN1
cnJlbnROb2RlLCBldmVudCk7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBmaW5kRm9j
dXNhYmxlRWxlbWVudEFjcm9zc0ZvY3VzU2NvcGUoZGlyZWN0aW9uLCBGb2N1c05hdmlnYXRpb25T
Y29wZTo6c2NvcGVPZihjdXJyZW50Tm9kZSA/ICpjdXJyZW50Tm9kZSA6ICpkb2N1bWVudCksIGN1
cnJlbnROb2RlLCBldmVudCk7CiAKICAgICBpZiAoIWVsZW1lbnQpIHsKICAgICAgICAgLy8gV2Ug
ZGlkbid0IGZpbmQgYSBub2RlIHRvIGZvY3VzLCBzbyB3ZSBzaG91bGQgdHJ5IHRvIHBhc3MgZm9j
dXMgdG8gQ2hyb21lLgpAQCAtMzY3LDcgKzM2NCw3IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjph
ZHZhbmNlRm9jdXNJbkRvY3UKICAgICAgICAgfQogCiAgICAgICAgIC8vIENocm9tZSBkb2Vzbid0
IHdhbnQgZm9jdXMsIHNvIHdlIHNob3VsZCB3cmFwIGZvY3VzLgotICAgICAgICBlbGVtZW50ID0g
ZmluZEZvY3VzYWJsZUVsZW1lbnRSZWN1cnNpdmVseShkaXJlY3Rpb24sIEZvY3VzTmF2aWdhdGlv
blNjb3BlOjpmb2N1c05hdmlnYXRpb25TY29wZU9mKG1fcGFnZS5tYWluRnJhbWUoKS5kb2N1bWVu
dCgpKSwgMCwgZXZlbnQpOworICAgICAgICBlbGVtZW50ID0gZmluZEZvY3VzYWJsZUVsZW1lbnRS
ZWN1cnNpdmVseShkaXJlY3Rpb24sIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKCptX3Bh
Z2UubWFpbkZyYW1lKCkuZG9jdW1lbnQoKSksIDAsIGV2ZW50KTsKICAgICAgICAgZWxlbWVudCA9
IGZpbmRGb2N1c2FibGVFbGVtZW50RGVzY2VuZGluZ0Rvd25JbnRvRnJhbWVEb2N1bWVudChkaXJl
Y3Rpb24sIGVsZW1lbnQuZ2V0KCksIGV2ZW50KTsKIAogICAgICAgICBpZiAoIWVsZW1lbnQpCkBA
IC00MjQsMjMgKzQyMSwyMSBAQCBFbGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2Fi
bGVFCiAgICAgQVNTRVJUKCFpczxFbGVtZW50PihjdXJyZW50Tm9kZSkgfHwgIWlzTm9uRm9jdXNh
YmxlU2hhZG93SG9zdCgqZG93bmNhc3Q8RWxlbWVudD4oY3VycmVudE5vZGUpLCAqZXZlbnQpKTsK
ICAgICBFbGVtZW50KiBmb3VuZDsKICAgICBpZiAoY3VycmVudE5vZGUgJiYgZGlyZWN0aW9uID09
IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCAmJiBpc0ZvY3VzYWJsZVNoYWRvd0hvc3QoKmN1cnJlbnRO
b2RlLCAqZXZlbnQpKSB7Ci0gICAgICAgIEVsZW1lbnQqIGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUg
PSBmaW5kRm9jdXNhYmxlRWxlbWVudFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgRm9jdXNOYXZpZ2F0
aW9uU2NvcGU6OmZvY3VzTmF2aWdhdGlvblNjb3BlT3duZWRCeVNoYWRvd0hvc3QoY3VycmVudE5v
ZGUpLCAwLCBldmVudCk7CisgICAgICAgIEVsZW1lbnQqIGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUg
PSBmaW5kRm9jdXNhYmxlRWxlbWVudFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgRm9jdXNOYXZpZ2F0
aW9uU2NvcGU6OnNjb3BlT3duZWRCeVNoYWRvd0hvc3QoKmN1cnJlbnROb2RlKSwgMCwgZXZlbnQp
OwogICAgICAgICBmb3VuZCA9IGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUgPyBmb3VuZEluSW5uZXJG
b2N1c1Njb3BlIDogZmluZEZvY3VzYWJsZUVsZW1lbnRSZWN1cnNpdmVseShkaXJlY3Rpb24sIHNj
b3BlLCBjdXJyZW50Tm9kZSwgZXZlbnQpOwogICAgIH0gZWxzZQogICAgICAgICBmb3VuZCA9IGZp
bmRGb2N1c2FibGVFbGVtZW50UmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBzY29wZSwgY3VycmVudE5v
ZGUsIGV2ZW50KTsKIAogICAgIC8vIElmIHRoZXJlJ3Mgbm8gZm9jdXNhYmxlIG5vZGUgdG8gYWR2
YW5jZSB0bywgbW92ZSB1cCB0aGUgZm9jdXMgc2NvcGVzIHVudGlsIHdlIGZpbmQgb25lLgotICAg
IEZvY3VzTmF2aWdhdGlvblNjb3BlIGN1cnJlbnRTY29wZSA9IHNjb3BlOwotICAgIHdoaWxlICgh
Zm91bmQpIHsKLSAgICAgICAgRWxlbWVudCogb3duZXIgPSBjdXJyZW50U2NvcGUub3duZXIoKTsK
LSAgICAgICAgaWYgKCFvd25lcikKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjdXJyZW50
U2NvcGUgPSBGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZpZ2F0aW9uU2NvcGVPZihvd25l
cik7CisgICAgRWxlbWVudCogb3duZXIgPSBzY29wZS5vd25lcigpOworICAgIHdoaWxlICghZm91
bmQgJiYgb3duZXIpIHsKKyAgICAgICAgRm9jdXNOYXZpZ2F0aW9uU2NvcGUgY3VycmVudFNjb3Bl
ID0gRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2YoKm93bmVyKTsKICAgICAgICAgaWYgKGRp
cmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkICYmIGlzRm9jdXNhYmxlU2hhZG93SG9z
dCgqb3duZXIsICpldmVudCkpIHsKICAgICAgICAgICAgIGZvdW5kID0gb3duZXI7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBmb3VuZCA9IGZpbmRGb2N1c2FibGVFbGVt
ZW50UmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBjdXJyZW50U2NvcGUsIG93bmVyLCBldmVudCk7Cisg
ICAgICAgIG93bmVyID0gY3VycmVudFNjb3BlLm93bmVyKCk7CiAgICAgfQogICAgIGZvdW5kID0g
ZmluZEZvY3VzYWJsZUVsZW1lbnREZXNjZW5kaW5nRG93bkludG9GcmFtZURvY3VtZW50KGRpcmVj
dGlvbiwgZm91bmQsIGV2ZW50KTsKICAgICByZXR1cm4gZm91bmQ7CkBAIC00NTUsMTYgKzQ1MCwx
NiBAQCBFbGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVFCiAgICAgaWYgKGRp
cmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkZvcndhcmQpIHsKICAgICAgICAgaWYgKCFpc05vbkZv
Y3VzYWJsZVNoYWRvd0hvc3QoKmZvdW5kLCAqZXZlbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZv
dW5kOwotICAgICAgICBFbGVtZW50KiBmb3VuZEluSW5uZXJGb2N1c1Njb3BlID0gZmluZEZvY3Vz
YWJsZUVsZW1lbnRSZWN1cnNpdmVseShkaXJlY3Rpb24sIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpm
b2N1c05hdmlnYXRpb25TY29wZU93bmVkQnlTaGFkb3dIb3N0KGZvdW5kKSwgMCwgZXZlbnQpOwor
ICAgICAgICBFbGVtZW50KiBmb3VuZEluSW5uZXJGb2N1c1Njb3BlID0gZmluZEZvY3VzYWJsZUVs
ZW1lbnRSZWN1cnNpdmVseShkaXJlY3Rpb24sIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU93
bmVkQnlTaGFkb3dIb3N0KCpmb3VuZCksIDAsIGV2ZW50KTsKICAgICAgICAgcmV0dXJuIGZvdW5k
SW5Jbm5lckZvY3VzU2NvcGUgPyBmb3VuZEluSW5uZXJGb2N1c1Njb3BlIDogZmluZEZvY3VzYWJs
ZUVsZW1lbnRSZWN1cnNpdmVseShkaXJlY3Rpb24sIHNjb3BlLCBmb3VuZCwgZXZlbnQpOwogICAg
IH0KICAgICBBU1NFUlQoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uQmFja3dhcmQpOwogICAg
IGlmIChpc0ZvY3VzYWJsZVNoYWRvd0hvc3QoKmZvdW5kLCAqZXZlbnQpKSB7Ci0gICAgICAgIEVs
ZW1lbnQqIGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUgPSBmaW5kRm9jdXNhYmxlRWxlbWVudFJlY3Vy
c2l2ZWx5KGRpcmVjdGlvbiwgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OmZvY3VzTmF2aWdhdGlvblNj
b3BlT3duZWRCeVNoYWRvd0hvc3QoZm91bmQpLCAwLCBldmVudCk7CisgICAgICAgIEVsZW1lbnQq
IGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUgPSBmaW5kRm9jdXNhYmxlRWxlbWVudFJlY3Vyc2l2ZWx5
KGRpcmVjdGlvbiwgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT3duZWRCeVNoYWRvd0hvc3Qo
KmZvdW5kKSwgMCwgZXZlbnQpOwogICAgICAgICByZXR1cm4gZm91bmRJbklubmVyRm9jdXNTY29w
ZSA/IGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUgOiBmb3VuZDsKICAgICB9CiAgICAgaWYgKGlzTm9u
Rm9jdXNhYmxlU2hhZG93SG9zdCgqZm91bmQsICpldmVudCkpIHsKLSAgICAgICAgRWxlbWVudCog
Zm91bmRJbklubmVyRm9jdXNTY29wZSA9IGZpbmRGb2N1c2FibGVFbGVtZW50UmVjdXJzaXZlbHko
ZGlyZWN0aW9uLCBGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZpZ2F0aW9uU2NvcGVPd25l
ZEJ5U2hhZG93SG9zdChmb3VuZCksIDAsIGV2ZW50KTsKKyAgICAgICAgRWxlbWVudCogZm91bmRJ
bklubmVyRm9jdXNTY29wZSA9IGZpbmRGb2N1c2FibGVFbGVtZW50UmVjdXJzaXZlbHkoZGlyZWN0
aW9uLCBGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVPd25lZEJ5U2hhZG93SG9zdCgqZm91bmQp
LCAwLCBldmVudCk7CiAgICAgICAgIHJldHVybiBmb3VuZEluSW5uZXJGb2N1c1Njb3BlID8gZm91
bmRJbklubmVyRm9jdXNTY29wZSA6ZmluZEZvY3VzYWJsZUVsZW1lbnRSZWN1cnNpdmVseShkaXJl
Y3Rpb24sIHNjb3BlLCBmb3VuZCwgZXZlbnQpOwogICAgIH0KICAgICByZXR1cm4gZm91bmQ7CkBA
IC00OTUsNyArNDkwLDcgQEAgc3RhdGljIEVsZW1lbnQqIG5leHRFbGVtZW50V2l0aEdyZWF0ZXJU
YQogICAgIC8vIFNlYXJjaCBpcyBpbmNsdXNpdmUgb2Ygc3RhcnQKICAgICBpbnQgd2lubmluZ1Rh
YkluZGV4ID0gc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46Om1heCgpICsgMTsKICAgICBFbGVt
ZW50KiB3aW5uZXIgPSBudWxscHRyOwotICAgIGZvciAoTm9kZSogbm9kZSA9IHNjb3BlLnJvb3RO
b2RlKCk7IG5vZGU7IG5vZGUgPSBzY29wZS5uZXh0SW5TY29wZShub2RlKSkgeworICAgIGZvciAo
Tm9kZSogbm9kZSA9ICZzY29wZS5yb290Tm9kZSgpOyBub2RlOyBub2RlID0gc2NvcGUubmV4dElu
U2NvcGUobm9kZSkpIHsKICAgICAgICAgaWYgKCFpczxFbGVtZW50Pigqbm9kZSkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1l
bnQ+KCpub2RlKTsKQEAgLTUyOSwxMyArNTI0LDEzIEBAIHN0YXRpYyBFbGVtZW50KiBwcmV2aW91
c0VsZW1lbnRXaXRoTG93ZXIKIEVsZW1lbnQqIEZvY3VzQ29udHJvbGxlcjo6bmV4dEZvY3VzYWJs
ZUVsZW1lbnQoTm9kZSYgc3RhcnQpCiB7CiAgICAgUmVmPEtleWJvYXJkRXZlbnQ+IGtleUV2ZW50
ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlRm9yRHVtbXkoKTsKLSAgICByZXR1cm4gbmV4dEZvY3Vz
YWJsZUVsZW1lbnQoRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OmZvY3VzTmF2aWdhdGlvblNjb3BlT2Yo
JnN0YXJ0KSwgJnN0YXJ0LCBrZXlFdmVudC5wdHIoKSk7CisgICAgcmV0dXJuIG5leHRGb2N1c2Fi
bGVFbGVtZW50KEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBr
ZXlFdmVudC5wdHIoKSk7CiB9CiAKIEVsZW1lbnQqIEZvY3VzQ29udHJvbGxlcjo6cHJldmlvdXNG
b2N1c2FibGVFbGVtZW50KE5vZGUmIHN0YXJ0KQogewogICAgIFJlZjxLZXlib2FyZEV2ZW50PiBr
ZXlFdmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZUZvckR1bW15KCk7Ci0gICAgcmV0dXJuIHBy
ZXZpb3VzRm9jdXNhYmxlRWxlbWVudChGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZpZ2F0
aW9uU2NvcGVPZigmc3RhcnQpLCAmc3RhcnQsIGtleUV2ZW50LnB0cigpKTsKKyAgICByZXR1cm4g
cHJldmlvdXNGb2N1c2FibGVFbGVtZW50KEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0
YXJ0KSwgJnN0YXJ0LCBrZXlFdmVudC5wdHIoKSk7CiB9CiAKIEVsZW1lbnQqIEZvY3VzQ29udHJv
bGxlcjo6bmV4dEZvY3VzYWJsZUVsZW1lbnQoY29uc3QgRm9jdXNOYXZpZ2F0aW9uU2NvcGUmIHNj
b3BlLCBOb2RlKiBzdGFydCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCkBAIC01NzAsMTMgKzU2NSwx
MyBAQCBFbGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6Om5leHRGb2N1c2FibGVFCiAKICAgICAvLyBU
aGVyZSBhcmUgbm8gbm9kZXMgd2l0aCBhIHRhYmluZGV4IGdyZWF0ZXIgdGhhbiBzdGFydCdzIHRh
YmluZGV4LAogICAgIC8vIHNvIGZpbmQgdGhlIGZpcnN0IG5vZGUgd2l0aCBhIHRhYmluZGV4IG9m
IDAuCi0gICAgcmV0dXJuIGZpbmRFbGVtZW50V2l0aEV4YWN0VGFiSW5kZXgoc2NvcGUsIHNjb3Bl
LnJvb3ROb2RlKCksIDAsIGV2ZW50LCBGb2N1c0RpcmVjdGlvbkZvcndhcmQpOworICAgIHJldHVy
biBmaW5kRWxlbWVudFdpdGhFeGFjdFRhYkluZGV4KHNjb3BlLCAmc2NvcGUucm9vdE5vZGUoKSwg
MCwgZXZlbnQsIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCk7CiB9CiAKIEVsZW1lbnQqIEZvY3VzQ29u
dHJvbGxlcjo6cHJldmlvdXNGb2N1c2FibGVFbGVtZW50KGNvbnN0IEZvY3VzTmF2aWdhdGlvblNj
b3BlJiBzY29wZSwgTm9kZSogc3RhcnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIE5v
ZGUqIGxhc3QgPSBudWxscHRyOwotICAgIGZvciAoTm9kZSogbm9kZSA9IHNjb3BlLnJvb3ROb2Rl
KCk7IG5vZGU7IG5vZGUgPSBzY29wZS5sYXN0Q2hpbGRJblNjb3BlKG5vZGUpKQorICAgIGZvciAo
Tm9kZSogbm9kZSA9ICZzY29wZS5yb290Tm9kZSgpOyBub2RlOyBub2RlID0gc2NvcGUubGFzdENo
aWxkSW5TY29wZShub2RlKSkKICAgICAgICAgbGFzdCA9IG5vZGU7CiAgICAgQVNTRVJUKGxhc3Qp
OwogCg==
</data>
<flag name="review"
          id="296944"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>