<?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>161651</bug_id>
          
          <creation_ts>2016-09-06 15:41:23 -0700</creation_ts>
          <short_desc>[WebCore] Clean up script loading code in XML</short_desc>
          <delta_ts>2016-11-16 22:47:38 -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>XML</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>147340</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1226882</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 15:41:23 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252190</commentid>
    <comment_count>1</comment_count>
      <attachid>295022</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 20:12:09 -0800</bug_when>
    <thetext>Created attachment 295022
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252209</commentid>
    <comment_count>2</comment_count>
      <attachid>295028</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 22:06:35 -0800</bug_when>
    <thetext>Created attachment 295028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252211</commentid>
    <comment_count>3</comment_count>
      <attachid>295028</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-11-16 22:21:50 -0800</bug_when>
    <thetext>Comment on attachment 295028
Patch

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

&gt; Source/WebCore/dom/ScriptElement.cpp:167
&gt; +    // XHTML document does not support &quot;defer&quot; attribute semantics.
&gt; +    // And module tag also uses defer attribute semantics. We disable script type=&quot;module&quot; for non HTML document.

Is this behavior spec compliant!?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252215</commentid>
    <comment_count>4</comment_count>
      <attachid>295028</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 22:32:36 -0800</bug_when>
    <thetext>Comment on attachment 295028
Patch

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

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:167
&gt;&gt; +    // And module tag also uses defer attribute semantics. We disable script type=&quot;module&quot; for non HTML document.
&gt; 
&gt; Is this behavior spec compliant!?

XHTML defines &quot;defer&quot; attribute. But WebKit does not implement it for a long time.
Once &quot;defer&quot; is implemented, we can reconsider enabling modules in XHTML. But I&apos;m not sure that&apos;s worth doing (implementing defer semantics and enabling modules in XHTML).

Since &quot;defer&quot; semantics is not implemented, before this patch, we just ignore the modules in XHTML document. But it causes some strange behavior.
For example, if you write &lt;script type=&quot;module&quot;&gt; in document, it is ignored. But if you create script tag with `type=&quot;module&quot;` dynamically, it works.
To make it consistent, I think disabling modules until &quot;defer&quot; is implemented in XHTML is better.

I&apos;ll note the above description in this comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252216</commentid>
    <comment_count>5</comment_count>
      <attachid>295028</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 22:38:30 -0800</bug_when>
    <thetext>Comment on attachment 295028
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:167
&gt;&gt;&gt; +    // And module tag also uses defer attribute semantics. We disable script type=&quot;module&quot; for non HTML document.
&gt;&gt; 
&gt;&gt; Is this behavior spec compliant!?
&gt; 
&gt; XHTML defines &quot;defer&quot; attribute. But WebKit does not implement it for a long time.
&gt; Once &quot;defer&quot; is implemented, we can reconsider enabling modules in XHTML. But I&apos;m not sure that&apos;s worth doing (implementing defer semantics and enabling modules in XHTML).
&gt; 
&gt; Since &quot;defer&quot; semantics is not implemented, before this patch, we just ignore the modules in XHTML document. But it causes some strange behavior.
&gt; For example, if you write &lt;script type=&quot;module&quot;&gt; in document, it is ignored. But if you create script tag with `type=&quot;module&quot;` dynamically, it works.
&gt; To make it consistent, I think disabling modules until &quot;defer&quot; is implemented in XHTML is better.
&gt; 
&gt; I&apos;ll note the above description in this comment.

We have a bug for that https://bugs.webkit.org/show_bug.cgi?id=123387. I&apos;ll paste this URL.
According to that bug, blink intentionally does not support it https://bugs.chromium.org/p/chromium/issues/detail?id=611136.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252222</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 22:47:38 -0800</bug_when>
    <thetext>Committed r208840: &lt;http://trac.webkit.org/changeset/208840&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295022</attachid>
            <date>2016-11-16 20:12:09 -0800</date>
            <delta_ts>2016-11-16 22:06:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161651-20161116201205.patch</filename>
            <type>text/plain</type>
            <size>7133</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM1OTExZWNlNTUwMzk3
M2Y2N2MwMzAwNWRiOGU1YmQ4ZDM3ODRhZi4uMDZhNmViZGZjZjZlNGJiZTkxZjUxMzViMjhhNzgw
NmMzZDVlM2QyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTExLTE2ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEFsbG93
IEVTNiBtb2R1bGVzIGluIFhNTCBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQpOgor
ICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKiB4bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
TUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6
WE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcyk6CisKIDIwMTYtMTEtMTYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGJ1aWxkIG9uIG1hY09TIFNp
ZXJyYSB3aGVuIFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIGlzIGVuYWJsZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggZjFm
ZjdiOWY0ODY3N2JlYmZlNWI1MjdiNTdlZGE4Yjc2MjllZGJhZC4uYTA3NTk1YjllYjA0N2VmYjkz
MGE4OTUzYWYwYmNjNWU5NDY2YTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9YTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTIyNywzNyArMjI3LDE4IEBAIHZvaWQgWE1MRG9j
dW1lbnRQYXJzZXI6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKCkKICAgICBtX3htbEVycm9ycy0+
aW5zZXJ0RXJyb3JNZXNzYWdlQmxvY2soKTsKIH0KIAotdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmIHVudXNlZFJlc291cmNlKQordm9pZCBYTUxE
b2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1Njcmlw
dCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHVudXNlZFJlc291cmNlLCAmdW51c2VkUmVzb3VyY2Ug
PT0gbV9wZW5kaW5nU2NyaXB0KTsKLSAgICBBU1NFUlQobV9wZW5kaW5nU2NyaXB0LT5hY2Nlc3ND
b3VudCgpID4gMCk7Ci0KLSAgICAvLyBGSVhNRTogU3VwcG9ydCBFUzYgbW9kdWxlcyBpbiBYTUwg
ZG9jdW1lbnQuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTY1MQotICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShtX3BlbmRpbmdTY3JpcHQu
Z2V0KCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKTsKLSAgICBib29s
IGVycm9yT2NjdXJyZWQgPSBtX3BlbmRpbmdTY3JpcHQtPmVycm9yT2NjdXJyZWQoKTsKLSAgICBi
b29sIHdhc0NhbmNlbGVkID0gbV9wZW5kaW5nU2NyaXB0LT53YXNDYW5jZWxlZCgpOwotCi0gICAg
bV9wZW5kaW5nU2NyaXB0LT5yZW1vdmVDbGllbnQoKnRoaXMpOwotICAgIG1fcGVuZGluZ1Njcmlw
dCA9IG51bGxwdHI7Ci0KLSAgICBSZWZQdHI8RWxlbWVudD4gZSA9IG1fc2NyaXB0RWxlbWVudDsK
LSAgICBtX3NjcmlwdEVsZW1lbnQgPSBudWxscHRyOwotCi0gICAgU2NyaXB0RWxlbWVudCogc2Ny
aXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZS5nZXQoKSk7Ci0gICAgQVNT
RVJUKHNjcmlwdEVsZW1lbnQpOworICAgIEFTU0VSVCgmcGVuZGluZ1NjcmlwdCA9PSBtX3BlbmRp
bmdTY3JpcHQuZ2V0KCkpOwogCiAgICAgLy8gSmF2YVNjcmlwdCBjYW4gZGV0YWNoIHRoaXMgcGFy
c2VyLCBtYWtlIHN1cmUgaXQncyBrZXB0IGFsaXZlIGV2ZW4gaWYgZGV0YWNoZWQuCiAgICAgUmVm
PFhNTERvY3VtZW50UGFyc2VyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICAKLSAgICBpZiAo
ZXJyb3JPY2N1cnJlZCkKLSAgICAgICAgc2NyaXB0RWxlbWVudC0+ZGlzcGF0Y2hFcnJvckV2ZW50
KCk7Ci0gICAgZWxzZSBpZiAoIXdhc0NhbmNlbGVkKSB7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQt
PmV4ZWN1dGVTY3JpcHQoc291cmNlQ29kZSk7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmRpc3Bh
dGNoTG9hZEV2ZW50KCk7Ci0gICAgfQogCi0gICAgbV9zY3JpcHRFbGVtZW50ID0gbnVsbHB0cjsK
KyAgICBtX3BlbmRpbmdTY3JpcHQgPSBudWxscHRyOworICAgIHBlbmRpbmdTY3JpcHQuY2xlYXJD
bGllbnQoKTsKKworICAgIGF1dG8mIHNjcmlwdEVsZW1lbnQgPSAqdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZSgmcGVuZGluZ1NjcmlwdC0+ZWxlbWVudCgpKTsKKyAgICBzY3JpcHRFbGVtZW50LmV4
ZWN1dGVTY3JpcHRGb3JTY3JpcHRSdW5uZXIocGVuZGluZ1NjcmlwdCk7CiAKICAgICBpZiAoIWlz
RGV0YWNoZWQoKSAmJiAhbV9yZXF1ZXN0aW5nU2NyaXB0KQogICAgICAgICByZXN1bWVQYXJzaW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFy
c2VyLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmgKaW5k
ZXggOWFlNGM2NTFkY2QxZWVkNmFhNmJjOGM4NjcxZjRkYmU4NjEwM2I5OC4uMTgwOWMwM2VkNmQz
MTBkMTEzZGE0NzZlYTlhOGRlZTU0MmQyZGJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtMjQsOSArMjQsOCBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCi0jaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24u
aCIKKyNpbmNsdWRlICJQZW5kaW5nU2NyaXB0Q2xpZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiWE1MRXJyb3JzLmgiCkBAIC00Nyw2ICs0Niw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3Mg
RWxlbWVudDsKIGNsYXNzIEZyYW1lVmlldzsKIGNsYXNzIFBlbmRpbmdDYWxsYmFja3M7CitjbGFz
cyBQZW5kaW5nU2NyaXB0OwogY2xhc3MgVGV4dDsKIAogICAgIGNsYXNzIFhNTFBhcnNlckNvbnRl
eHQgOiBwdWJsaWMgUmVmQ291bnRlZDxYTUxQYXJzZXJDb250ZXh0PiB7CkBAIC02NCw3ICs2NCw3
IEBAIGNsYXNzIFRleHQ7CiAgICAgICAgIHhtbFBhcnNlckN0eHRQdHIgbV9jb250ZXh0OwogICAg
IH07CiAKLSAgICBjbGFzcyBYTUxEb2N1bWVudFBhcnNlciBmaW5hbCA6IHB1YmxpYyBTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgY2xh
c3MgWE1MRG9jdW1lbnRQYXJzZXIgZmluYWwgOiBwdWJsaWMgU2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyLCBwdWJsaWMgUGVuZGluZ1NjcmlwdENsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFJlZjxYTUxEb2N1bWVudFBh
cnNlcj4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRnJhbWVWaWV3KiB2aWV3KQpAQCAtMTA2
LDggKzEwNiw3IEBAIGNsYXNzIFRleHQ7CiAgICAgICAgIFRleHRQb3NpdGlvbiB0ZXh0UG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKICAgICAgICAgYm9vbCBzaG91bGRBc3NvY2lhdGVDb25zb2xl
TWVzc2FnZXNXaXRoVGV4dFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICAgICAgLy8g
ZnJvbSBDYWNoZWRSZXNvdXJjZUNsaWVudAotICAgICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlJikgZmluYWw7CisgICAgICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoUGVuZGlu
Z1NjcmlwdCYpIGZpbmFsOwogCiAgICAgICAgIHZvaWQgZW5kKCk7CiAKQEAgLTE3OCw4ICsxNzcs
NyBAQCBjbGFzcyBUZXh0OwogCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxYTUxFcnJvcnM+IG1f
eG1sRXJyb3JzOwogCi0gICAgICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4g
bV9wZW5kaW5nU2NyaXB0OwotICAgICAgICBSZWZQdHI8RWxlbWVudD4gbV9zY3JpcHRFbGVtZW50
OworICAgICAgICBSZWZQdHI8UGVuZGluZ1NjcmlwdD4gbV9wZW5kaW5nU2NyaXB0OwogICAgICAg
ICBUZXh0UG9zaXRpb24gbV9zY3JpcHRTdGFydFBvc2l0aW9uOwogCiAgICAgICAgIGJvb2wgbV9w
YXJzaW5nRnJhZ21lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggODYwMzc3NTA4NjhmOGFlY2Y4ZTNhOTIy
Y2Y0M2QwMjMwNjFhMmU1Yy4uYjIzOWM4YmMxMzAzNzAzODg2NjZkMGY1MjRmNmJlYmRmNTcwZGFj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNl
ckxpYnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXJMaWJ4bWwyLmNwcApAQCAtNTg4LDcgKzU4OCw2IEBAIFhNTERvY3VtZW50UGFyc2VyOjpY
TUxEb2N1bWVudFBhcnNlcihEb2N1bWVudCYgZG9jdW1lbnQsIEZyYW1lVmlldyogZnJhbWVWaWV3
KQogICAgICwgbV9wYXJzZXJQYXVzZWQoZmFsc2UpCiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQo
ZmFsc2UpCiAgICAgLCBtX2ZpbmlzaENhbGxlZChmYWxzZSkKLSAgICAsIG1fcGVuZGluZ1Njcmlw
dChudWxscHRyKQogICAgICwgbV9zY3JpcHRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjo6YmVs
b3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BhcnNpbmdGcmFnbWVudChmYWxzZSkKIHsKQEAg
LTYxMCw3ICs2MDksNiBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9j
dW1lbnRGcmFnbWVudCYgZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVudAogICAgICwgbV9wYXJzZXJQ
YXVzZWQoZmFsc2UpCiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2Zp
bmlzaENhbGxlZChmYWxzZSkKLSAgICAsIG1fcGVuZGluZ1NjcmlwdCgwKQogICAgICwgbV9zY3Jp
cHRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAg
LCBtX3BhcnNpbmdGcmFnbWVudCh0cnVlKQogewpAQCAtOTE2LDE4ICs5MTQsMTQgQEAgdm9pZCBY
TUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKIAogICAgICAgICBpZiAoc2NyaXB0RWxl
bWVudC0+cmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkKICAgICAgICAgICAgIHNjcmlwdEVsZW1l
bnQtPmV4ZWN1dGVTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LT5zY3JpcHRD
b250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAg
ICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSAmJiBz
Y3JpcHRFbGVtZW50LT5sb2FkYWJsZVNjcmlwdCgpICYmIGlzPExvYWRhYmxlQ2xhc3NpY1Njcmlw
dD4oKnNjcmlwdEVsZW1lbnQtPmxvYWRhYmxlU2NyaXB0KCkpKSB7Ci0gICAgICAgICAgICAvLyBG
SVhNRTogQWxsb3cgIm1vZHVsZSIgc2NyaXB0cyBmb3IgWE1MIGRvY3VtZW50cy4KLSAgICAgICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE2NTEKLSAg
ICAgICAgICAgIG1fcGVuZGluZ1NjcmlwdCA9ICZkb3duY2FzdDxMb2FkYWJsZUNsYXNzaWNTY3Jp
cHQ+KCpzY3JpcHRFbGVtZW50LT5sb2FkYWJsZVNjcmlwdCgpKS5jYWNoZWRTY3JpcHQoKTsKLSAg
ICAgICAgICAgIG1fc2NyaXB0RWxlbWVudCA9ICZlbGVtZW50OwotICAgICAgICAgICAgbV9wZW5k
aW5nU2NyaXB0LT5hZGRDbGllbnQoKnRoaXMpOwotCi0gICAgICAgICAgICAvLyBtX3BlbmRpbmdT
Y3JpcHQgd2lsbCBiZSAwIGlmIHNjcmlwdCB3YXMgYWxyZWFkeSBsb2FkZWQgYW5kIGFkZENsaWVu
dCgpIGV4ZWN1dGVkIGl0LgorICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LT53aWxsQmVQ
YXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQtPmxvYWRhYmxlU2NyaXB0KCkpIHsKKyAg
ICAgICAgICAgIG1fcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShlbGVtZW50
LCAqc2NyaXB0RWxlbWVudC0+bG9hZGFibGVTY3JpcHQoKSk7CisgICAgICAgICAgICBtX3BlbmRp
bmdTY3JpcHQtPnNldENsaWVudCh0aGlzKTsKKworICAgICAgICAgICAgLy8gbV9wZW5kaW5nU2Ny
aXB0IHdpbGwgYmUgbnVsbHB0ciBpZiBzY3JpcHQgd2FzIGFscmVhZHkgbG9hZGVkIGFuZCBzZXRD
bGllbnQoKSBleGVjdXRlZCBpdC4KICAgICAgICAgICAgIGlmIChtX3BlbmRpbmdTY3JpcHQpCiAg
ICAgICAgICAgICAgICAgcGF1c2VQYXJzaW5nKCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgbV9zY3JpcHRFbGVtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIEph
dmFTY3JpcHQgbWF5IGhhdmUgZGV0YWNoZWQgdGhlIHBhcnNlcgogICAgICAgICBpZiAoaXNEZXRh
Y2hlZCgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295028</attachid>
            <date>2016-11-16 22:06:35 -0800</date>
            <delta_ts>2016-11-16 22:21:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161651-20161116220630.patch</filename>
            <type>text/plain</type>
            <size>26148</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM1OTExZWNlNTUwMzk3
M2Y2N2MwMzAwNWRiOGU1YmQ4ZDM3ODRhZi4uMWExZmM1NTA3ODdjOTk1NmVmMTQ0NzY0YmY4NDUw
OTQxYjE1NTg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE2LTExLTE2ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtXZWJDb3JlXSBD
bGVhbiB1cCBzY3JpcHQgbG9hZGluZyBjb2RlIGluIFhNTAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgWE1MIGRvY3Vt
ZW50IHNjcmlwdCBoYW5kbGluZyBieSB1c2luZyBQZW5kaW5nU2NyaXB0LgorICAgICAgICBQcmV2
aW91c2x5LCB3ZSBkaXJlY3RseSB1c2VkIENhY2hlZFNjcmlwdC4gQnV0IGl0IGlzIG5vdCBnb29k
IHNpbmNlIHdlCisgICAgICAgIGhhdmUgUGVuZGluZ1NjcmlwdCB3cmFwcGVyLgorCisgICAgICAg
IFdlIGFsc28gZGlzYWJsZSBFUzYgbW9kdWxlcyBmb3Igbm9uIEhUTUwgZG9jdW1lbnQuIFdoaWxl
IEVTNiBtb2R1bGVzIHRhZworICAgICAgICByZXF1aXJlcyAiZGVmZXIiIHNlbWFudGljcywgImRl
ZmVyIiBzZW1hbnRpY3MgaXMgbm90IGltcGxlbWVudGVkIGluIG5vbgorICAgICAgICBIVE1MIGRv
Y3VtZW50cy4gQW5kIEVTNiBtb2R1bGUgdGFnIGlzIG9ubHkgc3BlY2lmaWVkIGluIHdoYXR3ZyBI
VE1MIHNwZWMuCisKKyAgICAgICAgKiBkb20vTG9hZGFibGVDbGFzc2ljU2NyaXB0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlQ2xhc3NpY1NjcmlwdDo6ZXhlY3V0ZSk6CisgICAgICAg
ICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVu
dDo6ZGV0ZXJtaW5lU2NyaXB0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50
OjpwcmVwYXJlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1
dGVDbGFzc2ljU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1
dGVQZW5kaW5nU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1
dGVTY3JpcHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6ZXhl
Y3V0ZVNjcmlwdEZvclNjcmlwdFJ1bm5lcik6IERlbGV0ZWQuCisgICAgICAgICogZG9tL1Njcmlw
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6CisgICAgICAgICogaHRtbC9wYXJzZXIv
SFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MU2NyaXB0
UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQ
ZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0UnVubmVyOjpydW5TY3JpcHQpOgorICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZp
bmlzaGVkKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmg6CisgICAg
ICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjp+WE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcyk6CisKIDIwMTYtMTEt
MTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGJ1aWxk
IG9uIG1hY09TIFNpZXJyYSB3aGVuIFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIGlzIGVu
YWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZUNsYXNzaWNTY3Jp
cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKaW5k
ZXggOTRjMTY2MGU4ZGIwYmQ3OGMyYTI2ZjA5ZTlkYzM0YWQ1NzMxZmI5Mi4uNjU1Y2QxZmM0MmJj
NjYyOWRiMDMyMmY1ZWMyZWM4ZjczNDQwZTA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xv
YWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIExvYWRhYmxl
Q2xhc3NpY1NjcmlwdDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQog
dm9pZCBMb2FkYWJsZUNsYXNzaWNTY3JpcHQ6OmV4ZWN1dGUoU2NyaXB0RWxlbWVudCYgc2NyaXB0
RWxlbWVudCkKIHsKICAgICBBU1NFUlQoIWVycm9yKCkpOwotICAgIHNjcmlwdEVsZW1lbnQuZXhl
Y3V0ZVNjcmlwdChTY3JpcHRTb3VyY2VDb2RlKG1fY2FjaGVkU2NyaXB0LmdldCgpLCBKU0M6OlNv
dXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkpOworICAgIHNjcmlwdEVsZW1lbnQuZXhl
Y3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShtX2NhY2hlZFNjcmlwdC5nZXQoKSwg
SlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDNjMjQ2MGQ5MDMxYTQ5YmI3MGViYTNkYzI3
MjcxODU0OWRiYTE5OWEuLjc5YTIwOGJjMWI5ZjFiNTM1ZmE5ZjE2YWExNTZjZTQ5MWVlYWUxYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE2Myw2ICsxNjMsMTEgQEAg
T3B0aW9uYWw8U2NyaXB0RWxlbWVudDo6U2NyaXB0VHlwZT4gU2NyaXB0RWxlbWVudDo6ZGV0ZXJt
aW5lU2NyaXB0VHlwZShMZWdhY3lUeXAKICAgICBpZiAoc3VwcG9ydExlZ2FjeVR5cGVzID09IEFs
bG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSAmJiBpc0xlZ2FjeVN1cHBvcnRlZEphdmFTY3Jp
cHRMYW5ndWFnZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIFNjcmlwdFR5cGU6OkNsYXNzaWM7CiAK
KyAgICAvLyBYSFRNTCBkb2N1bWVudCBkb2VzIG5vdCBzdXBwb3J0ICJkZWZlciIgYXR0cmlidXRl
IHNlbWFudGljcy4KKyAgICAvLyBBbmQgbW9kdWxlIHRhZyBhbHNvIHVzZXMgZGVmZXIgYXR0cmli
dXRlIHNlbWFudGljcy4gV2UgZGlzYWJsZSBzY3JpcHQgdHlwZT0ibW9kdWxlIiBmb3Igbm9uIEhU
TUwgZG9jdW1lbnQuCisgICAgaWYgKCFtX2VsZW1lbnQuZG9jdW1lbnQoKS5pc0hUTUxEb2N1bWVu
dCgpKQorICAgICAgICByZXR1cm4gTnVsbG9wdDsKKwogICAgIGF1dG8qIHNldHRpbmdzID0gbV9l
bGVtZW50LmRvY3VtZW50KCkuc2V0dGluZ3MoKTsKICAgICBpZiAoIXNldHRpbmdzIHx8ICFzZXR0
aW5ncy0+ZXM2TW9kdWxlc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIE51bGxvcHQ7CkBAIC0y
NzEsNyArMjc2LDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRl
eHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICB9IGVsc2UgewogICAg
ICAgICBBU1NFUlQoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKTsKICAgICAgICAg
VGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gZG9jdW1lbnQuaXNJbkRvY3VtZW50V3JpdGUoKSA/IFRl
eHRQb3NpdGlvbigpIDogc2NyaXB0U3RhcnRQb3NpdGlvbjsKLSAgICAgICAgZXhlY3V0ZVNjcmlw
dChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQudXJsKCksIHBvc2l0
aW9uLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkpOworICAgICAgICBl
eGVjdXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgZG9j
dW1lbnQudXJsKCksIHBvc2l0aW9uLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJv
Z3JhbSkpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtMzg2LDcgKzM5MSw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNj
cmlwdFdpdGhDYWNoZShjb25zdCBVCiAgICAgcmV0dXJuIGRvY3VtZW50LmNhY2hlZFJlc291cmNl
TG9hZGVyKCkucmVxdWVzdFNjcmlwdChXVEZNb3ZlKHJlcXVlc3QpKTsKIH0KIAotdm9pZCBTY3Jp
cHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNv
ZGUpCit2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVDbGFzc2ljU2NyaXB0KGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAgICAgQVNTRVJUKG1fYWxyZWFkeVN0YXJ0ZWQp
OwogCkBAIC00NDIsMTQgKzQ0NywxNCBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVTY3Jp
cHRBbmREaXNwYXRjaEV2ZW50KExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdAogICAgIH0K
IH0KIAotdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlU2NyaXB0Rm9yU2NyaXB0UnVubmVyKFBl
bmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCit2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVQ
ZW5kaW5nU2NyaXB0KFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiB7CiAgICAgaWYgKGF1
dG8qIGxvYWRhYmxlU2NyaXB0ID0gcGVuZGluZ1NjcmlwdC5sb2FkYWJsZVNjcmlwdCgpKQogICAg
ICAgICBleGVjdXRlU2NyaXB0QW5kRGlzcGF0Y2hFdmVudCgqbG9hZGFibGVTY3JpcHQpOwogICAg
IGVsc2UgewogICAgICAgICBBU1NFUlQoIXBlbmRpbmdTY3JpcHQuZXJyb3IoKSk7Ci0gICAgICAg
IEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBzY3JpcHRUeXBlKCkg
PT0gU2NyaXB0VHlwZTo6TW9kdWxlID8gSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1v
ZHVsZSA6IEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtOwotICAgICAgICBl
eGVjdXRlU2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0Q29udGVudCgpLCBtX2VsZW1lbnQu
ZG9jdW1lbnQoKS51cmwoKSwgcGVuZGluZ1NjcmlwdC5zdGFydGluZ1Bvc2l0aW9uKCksIHNvdXJj
ZVR5cGUpKTsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShzY3JpcHRUeXBlKCkgPT0gU2Ny
aXB0VHlwZTo6Q2xhc3NpYywgIk1vZHVsZSBzY3JpcHQgYWx3YXlzIGhhdmUgYSBsb2FkYWJsZVNj
cmlwdCBwb2ludGVyLiIpOworICAgICAgICBleGVjdXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRTb3Vy
Y2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgbV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCksIHBlbmRp
bmdTY3JpcHQuc3RhcnRpbmdQb3NpdGlvbigpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6UHJvZ3JhbSkpOwogICAgICAgICBkaXNwYXRjaExvYWRFdmVudCgpOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5oCmluZGV4IDIzYTdlNTk4ZjUzYzM5Yjk2MWY1ZmE3NDk2
OWYyZWE5NGQwYzY1NzguLmY0MTRiNGI4YmIzNTEyMDYwZmQ2OWE1ZmE1ODljNzAwOGFhNmE2NjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaApAQCAtNTEsMTAgKzUxLDEwIEBAIGNsYXNz
IFNjcmlwdEVsZW1lbnQgewogCiAgICAgU3RyaW5nIHNjcmlwdENoYXJzZXQoKSBjb25zdCB7IHJl
dHVybiBtX2NoYXJhY3RlckVuY29kaW5nOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNj
cmlwdENvbnRlbnQoKSBjb25zdDsKLSAgICB2b2lkIGV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0
U291cmNlQ29kZSYpOworICAgIHZvaWQgZXhlY3V0ZUNsYXNzaWNTY3JpcHQoY29uc3QgU2NyaXB0
U291cmNlQ29kZSYpOwogICAgIHZvaWQgZXhlY3V0ZU1vZHVsZVNjcmlwdChDYWNoZWRNb2R1bGVT
Y3JpcHQmKTsKIAotICAgIHZvaWQgZXhlY3V0ZVNjcmlwdEZvclNjcmlwdFJ1bm5lcihQZW5kaW5n
U2NyaXB0Jik7CisgICAgdm9pZCBleGVjdXRlUGVuZGluZ1NjcmlwdChQZW5kaW5nU2NyaXB0Jik7
CiAKICAgICAvLyBYTUwgcGFyc2VyIGNhbGxzIHRoZXNlCiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoTG9hZEV2ZW50KCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcAppbmRleCA2
NTNlNDBmMGRlMTc1OGMxYmUzZTAyNDE0NGFhZWM1NGY5Y2YzODE0Li43MDk4OWViNDBjMDQ1YWRl
Nzc0YWU1N2QwOWE0MDQ4YjU5ZTM4ODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNw
cApAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKCkKICAg
ICAgICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnNj
cmlwdC0+ZWxlbWVudCgpKTsKICAgICAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgICAg
ICBBU1NFUlQoc2NyaXB0LT5uZWVkc0xvYWRpbmcoKSk7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQt
PmV4ZWN1dGVTY3JpcHRGb3JTY3JpcHRSdW5uZXIoKnNjcmlwdCk7CisgICAgICAgIHNjcmlwdEVs
ZW1lbnQtPmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpzY3JpcHQpOwogICAgICAgICBtX2RvY3VtZW50
LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCBjMDdjZDM0
NGNiYTViMWIyYjc5MWJjZjFmMjgwYWU3ZDdiMDNjYTI2Li4yNzExMWZiNjE2ZWU2NGFkMzdjZTc2
YTczNzU1ZWY2MDA4OGM2ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKIAotI2luY2x1ZGUgIkNhY2hl
ZFNjcmlwdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAppbmRleCA2YjE3NmYxM2ZjMGM1NDM1YmVhMGY4
NTAzN2ZiZTg0ZmI1NDIyZDQ2Li5jMjU2YjQyOTU2Y2U0ODExYTk0ZjBjYjM0YjhlZDcyNTcyNWU4
ZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVu
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVy
LmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBl
bmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KFJlZlB0cjxQZW5kaW5nU2NyaXB0CiAKICAgICBp
ZiAoYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnBlbmRp
bmdTY3JpcHQtPmVsZW1lbnQoKSkpIHsKICAgICAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIg
bmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV9zY3JpcHROZXN0aW5nTGV2ZWwpOwotICAgICAgICBz
Y3JpcHRFbGVtZW50LT5leGVjdXRlU2NyaXB0Rm9yU2NyaXB0UnVubmVyKCpwZW5kaW5nU2NyaXB0
KTsKKyAgICAgICAgc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKnBlbmRpbmdT
Y3JpcHQpOwogICAgIH0KICAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2NyaXB0KCkpOwogfQpAQCAt
Mjc1LDcgKzI3NSw3IEBAIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KEVsZW1lbnQq
IHNjcmlwdCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFyCiAgICAgICAgICAgICBpZiAo
bV9zY3JpcHROZXN0aW5nTGV2ZWwgPT0gMSkKICAgICAgICAgICAgICAgICBtX3BhcnNlckJsb2Nr
aW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKCpzY3JpcHQsIHNjcmlwdFN0YXJ0UG9z
aXRpb24pOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQt
PmV4ZWN1dGVTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHQtPnRleHRDb250ZW50KCksIGRv
Y3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQpLCBzY3JpcHRTdGFydFBvc2l0
aW9uKSk7CisgICAgICAgICAgICAgICAgc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZUNsYXNzaWNTY3Jp
cHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHQtPnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9y
U2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQpLCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgcmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChzY3Jp
cHQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9j
dW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlci5jcHAKaW5kZXggZjFmZjdiOWY0ODY3N2JlYmZlNWI1MjdiNTdlZGE4Yjc2MjllZGJhZC4u
Y2UyMDEwNDlkMjliMDExOTZkYzEwOWM5MmUwNjFlZDg5MzY3NjJhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTI3LDcgKzI3LDYg
QEAKICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogCiAjaW5jbHVkZSAiQ0RBVEFTZWN0
aW9uLmgiCi0jaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ29tbWVudC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpAQCAt
MzksNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxTdHls
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZUxvYWRlci5oIgorI2luY2x1ZGUgIlBlbmRpbmdT
Y3JpcHQuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC0yMjcsMzcg
KzIyNywxOCBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjppbnNlcnRFcnJvck1lc3NhZ2VCbG9j
aygpCiAgICAgbV94bWxFcnJvcnMtPmluc2VydEVycm9yTWVzc2FnZUJsb2NrKCk7CiB9CiAKLXZv
aWQgWE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiB1bnVz
ZWRSZXNvdXJjZSkKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKFBlbmRp
bmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh1bnVzZWRSZXNv
dXJjZSwgJnVudXNlZFJlc291cmNlID09IG1fcGVuZGluZ1NjcmlwdCk7Ci0gICAgQVNTRVJUKG1f
cGVuZGluZ1NjcmlwdC0+YWNjZXNzQ291bnQoKSA+IDApOwotCi0gICAgLy8gRklYTUU6IFN1cHBv
cnQgRVM2IG1vZHVsZXMgaW4gWE1MIGRvY3VtZW50LgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE2NTEKLSAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJj
ZUNvZGUobV9wZW5kaW5nU2NyaXB0LmdldCgpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6UHJvZ3JhbSk7Ci0gICAgYm9vbCBlcnJvck9jY3VycmVkID0gbV9wZW5kaW5nU2NyaXB0LT5l
cnJvck9jY3VycmVkKCk7Ci0gICAgYm9vbCB3YXNDYW5jZWxlZCA9IG1fcGVuZGluZ1NjcmlwdC0+
d2FzQ2FuY2VsZWQoKTsKLQotICAgIG1fcGVuZGluZ1NjcmlwdC0+cmVtb3ZlQ2xpZW50KCp0aGlz
KTsKLSAgICBtX3BlbmRpbmdTY3JpcHQgPSBudWxscHRyOwotCi0gICAgUmVmUHRyPEVsZW1lbnQ+
IGUgPSBtX3NjcmlwdEVsZW1lbnQ7Ci0gICAgbV9zY3JpcHRFbGVtZW50ID0gbnVsbHB0cjsKLQot
ICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3Np
YmxlKGUuZ2V0KCkpOwotICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKKyAgICBBU1NFUlQoJnBl
bmRpbmdTY3JpcHQgPT0gbV9wZW5kaW5nU2NyaXB0LmdldCgpKTsKIAogICAgIC8vIEphdmFTY3Jp
cHQgY2FuIGRldGFjaCB0aGlzIHBhcnNlciwgbWFrZSBzdXJlIGl0J3Mga2VwdCBhbGl2ZSBldmVu
IGlmIGRldGFjaGVkLgogICAgIFJlZjxYTUxEb2N1bWVudFBhcnNlcj4gcHJvdGVjdGVkVGhpcygq
dGhpcyk7Ci0gICAgCi0gICAgaWYgKGVycm9yT2NjdXJyZWQpCi0gICAgICAgIHNjcmlwdEVsZW1l
bnQtPmRpc3BhdGNoRXJyb3JFdmVudCgpOwotICAgIGVsc2UgaWYgKCF3YXNDYW5jZWxlZCkgewot
ICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlU2NyaXB0KHNvdXJjZUNvZGUpOwotICAgICAg
ICBzY3JpcHRFbGVtZW50LT5kaXNwYXRjaExvYWRFdmVudCgpOwotICAgIH0KIAotICAgIG1fc2Ny
aXB0RWxlbWVudCA9IG51bGxwdHI7CisgICAgbV9wZW5kaW5nU2NyaXB0ID0gbnVsbHB0cjsKKyAg
ICBwZW5kaW5nU2NyaXB0LmNsZWFyQ2xpZW50KCk7CisKKyAgICBhdXRvJiBzY3JpcHRFbGVtZW50
ID0gKnRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnBlbmRpbmdTY3JpcHQuZWxlbWVudCgpKTsK
KyAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVQZW5kaW5nU2NyaXB0KHBlbmRpbmdTY3JpcHQpOwog
CiAgICAgaWYgKCFpc0RldGFjaGVkKCkgJiYgIW1fcmVxdWVzdGluZ1NjcmlwdCkKICAgICAgICAg
cmVzdW1lUGFyc2luZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVu
dFBhcnNlci5oCmluZGV4IDlhZTRjNjUxZGNkMWVlZDZhYTZiYzhjODY3MWY0ZGJlODYxMDNiOTgu
LmM2OTE3Njg1NDBmOGYwOGUxZDlkYjg1YTAwMzM3YTFlYWZkZDBjZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmgKQEAgLTI0LDkgKzI0LDggQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgotI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiRnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uLmgiCisjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdENsaWVudC5oIgogI2luY2x1
ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmlu
Zy5oIgogI2luY2x1ZGUgIlhNTEVycm9ycy5oIgpAQCAtNDAsMTMgKzM5LDEzIEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRhaW5lck5vZGU7Ci1jbGFzcyBDYWNoZWRTY3JpcHQ7
CiBjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiBj
bGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBQ
ZW5kaW5nQ2FsbGJhY2tzOworY2xhc3MgUGVuZGluZ1NjcmlwdDsKIGNsYXNzIFRleHQ7CiAKICAg
ICBjbGFzcyBYTUxQYXJzZXJDb250ZXh0IDogcHVibGljIFJlZkNvdW50ZWQ8WE1MUGFyc2VyQ29u
dGV4dD4gewpAQCAtNjQsNyArNjMsNyBAQCBjbGFzcyBUZXh0OwogICAgICAgICB4bWxQYXJzZXJD
dHh0UHRyIG1fY29udGV4dDsKICAgICB9OwogCi0gICAgY2xhc3MgWE1MRG9jdW1lbnRQYXJzZXIg
ZmluYWwgOiBwdWJsaWMgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLCBwdWJsaWMgQ2FjaGVkUmVz
b3VyY2VDbGllbnQgeworICAgIGNsYXNzIFhNTERvY3VtZW50UGFyc2VyIGZpbmFsIDogcHVibGlj
IFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciwgcHVibGljIFBlbmRpbmdTY3JpcHRDbGllbnQgewog
ICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0
YXRpYyBSZWY8WE1MRG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZy
YW1lVmlldyogdmlldykKQEAgLTEwNiw4ICsxMDUsNyBAQCBjbGFzcyBUZXh0OwogICAgICAgICBU
ZXh0UG9zaXRpb24gdGV4dFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgICAgIGJvb2wg
c2hvdWxkQXNzb2NpYXRlQ29uc29sZU1lc3NhZ2VzV2l0aFRleHRQb3NpdGlvbigpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgICAgIC8vIGZyb20gQ2FjaGVkUmVzb3VyY2VDbGllbnQKLSAgICAgICAg
dm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYpIGZpbmFsOworICAgICAgICB2b2lk
IG5vdGlmeUZpbmlzaGVkKFBlbmRpbmdTY3JpcHQmKSBmaW5hbDsKIAogICAgICAgICB2b2lkIGVu
ZCgpOwogCkBAIC0xNzgsOCArMTc2LDcgQEAgY2xhc3MgVGV4dDsKIAogICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8WE1MRXJyb3JzPiBtX3htbEVycm9yczsKIAotICAgICAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fcGVuZGluZ1NjcmlwdDsKLSAgICAgICAgUmVmUHRyPEVs
ZW1lbnQ+IG1fc2NyaXB0RWxlbWVudDsKKyAgICAgICAgUmVmUHRyPFBlbmRpbmdTY3JpcHQ+IG1f
cGVuZGluZ1NjcmlwdDsKICAgICAgICAgVGV4dFBvc2l0aW9uIG1fc2NyaXB0U3RhcnRQb3NpdGlv
bjsKIAogICAgICAgICBib29sIG1fcGFyc2luZ0ZyYWdtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNl
L1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDg2
MDM3NzUwODY4ZjhhZWNmOGUzYTkyMmNmNDNkMDIzMDYxYTJlNWMuLjlmNGFmN2FiNGFhMWY4YTcy
ZTU2ZTUyMWM2ODA1MjA4MDI0MTI1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTI5LDcgKzI5LDYgQEAK
ICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogCiAjaW5jbHVkZSAiQ0RBVEFTZWN0aW9u
LmgiCi0jaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ29tbWVudC5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAg
LTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTG9hZGFibGVDbGFzc2ljU2NyaXB0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUg
IlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKICNp
bmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCkBA
IC01ODgsNyArNTg4LDYgQEAgWE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2VyKERv
Y3VtZW50JiBkb2N1bWVudCwgRnJhbWVWaWV3KiBmcmFtZVZpZXcpCiAgICAgLCBtX3BhcnNlclBh
dXNlZChmYWxzZSkKICAgICAsIG1fcmVxdWVzdGluZ1NjcmlwdChmYWxzZSkKICAgICAsIG1fZmlu
aXNoQ2FsbGVkKGZhbHNlKQotICAgICwgbV9wZW5kaW5nU2NyaXB0KG51bGxwdHIpCiAgICAgLCBt
X3NjcmlwdFN0YXJ0UG9zaXRpb24oVGV4dFBvc2l0aW9uOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkK
ICAgICAsIG1fcGFyc2luZ0ZyYWdtZW50KGZhbHNlKQogewpAQCAtNjEwLDcgKzYwOSw2IEBAIFhN
TERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50JiBmcmFn
bWVudCwgRWxlbWVudCogcGFyZW50CiAgICAgLCBtX3BhcnNlclBhdXNlZChmYWxzZSkKICAgICAs
IG1fcmVxdWVzdGluZ1NjcmlwdChmYWxzZSkKICAgICAsIG1fZmluaXNoQ2FsbGVkKGZhbHNlKQot
ICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24oVGV4
dFBvc2l0aW9uOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGFyc2luZ0ZyYWdtZW50
KHRydWUpCiB7CkBAIC02NjIsNyArNjYwLDcgQEAgWE1MRG9jdW1lbnRQYXJzZXI6On5YTUxEb2N1
bWVudFBhcnNlcigpCiAKICAgICAvLyBGSVhNRTogbV9wZW5kaW5nU2NyaXB0IGhhbmRsaW5nIHNo
b3VsZCBiZSBtb3ZlZCBpbnRvIFhNTERvY3VtZW50UGFyc2VyLmNwcCEKICAgICBpZiAobV9wZW5k
aW5nU2NyaXB0KQotICAgICAgICBtX3BlbmRpbmdTY3JpcHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7
CisgICAgICAgIG1fcGVuZGluZ1NjcmlwdC0+Y2xlYXJDbGllbnQoKTsKIH0KIAogdm9pZCBYTUxE
b2N1bWVudFBhcnNlcjo6ZG9Xcml0ZShjb25zdCBTdHJpbmcmIHBhcnNlU3RyaW5nKQpAQCAtOTE1
LDE5ICs5MTMsMTUgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAg
ICAgICAgLy8gdGhlIGxpYnhtbDIgYW5kIFF0IFhNTERvY3VtZW50UGFyc2VyIGltcGxlbWVudGF0
aW9ucy4KIAogICAgICAgICBpZiAoc2NyaXB0RWxlbWVudC0+cmVhZHlUb0JlUGFyc2VyRXhlY3V0
ZWQoKSkKLSAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVTY3JpcHQoU2NyaXB0U291
cmNlQ29kZShzY3JpcHRFbGVtZW50LT5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgp
LCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVu
dC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSAmJiBzY3JpcHRFbGVtZW50LT5sb2FkYWJsZVNjcmlw
dCgpICYmIGlzPExvYWRhYmxlQ2xhc3NpY1NjcmlwdD4oKnNjcmlwdEVsZW1lbnQtPmxvYWRhYmxl
U2NyaXB0KCkpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogQWxsb3cgIm1vZHVsZSIgc2NyaXB0
cyBmb3IgWE1MIGRvY3VtZW50cy4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE2NTEKLSAgICAgICAgICAgIG1fcGVuZGluZ1NjcmlwdCA9
ICZkb3duY2FzdDxMb2FkYWJsZUNsYXNzaWNTY3JpcHQ+KCpzY3JpcHRFbGVtZW50LT5sb2FkYWJs
ZVNjcmlwdCgpKS5jYWNoZWRTY3JpcHQoKTsKLSAgICAgICAgICAgIG1fc2NyaXB0RWxlbWVudCA9
ICZlbGVtZW50OwotICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5hZGRDbGllbnQoKnRoaXMp
OwotCi0gICAgICAgICAgICAvLyBtX3BlbmRpbmdTY3JpcHQgd2lsbCBiZSAwIGlmIHNjcmlwdCB3
YXMgYWxyZWFkeSBsb2FkZWQgYW5kIGFkZENsaWVudCgpIGV4ZWN1dGVkIGl0LgorICAgICAgICAg
ICAgc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShz
Y3JpcHRFbGVtZW50LT5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3Njcmlw
dFN0YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEJl
UGFyc2VyRXhlY3V0ZWQoKSAmJiBzY3JpcHRFbGVtZW50LT5sb2FkYWJsZVNjcmlwdCgpKSB7Cisg
ICAgICAgICAgICBtX3BlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVu
dCwgKnNjcmlwdEVsZW1lbnQtPmxvYWRhYmxlU2NyaXB0KCkpOworICAgICAgICAgICAgbV9wZW5k
aW5nU2NyaXB0LT5zZXRDbGllbnQodGhpcyk7CisKKyAgICAgICAgICAgIC8vIG1fcGVuZGluZ1Nj
cmlwdCB3aWxsIGJlIG51bGxwdHIgaWYgc2NyaXB0IHdhcyBhbHJlYWR5IGxvYWRlZCBhbmQgc2V0
Q2xpZW50KCkgZXhlY3V0ZWQgaXQuCiAgICAgICAgICAgICBpZiAobV9wZW5kaW5nU2NyaXB0KQog
ICAgICAgICAgICAgICAgIHBhdXNlUGFyc2luZygpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgIG1fc2NyaXB0RWxlbWVudCA9IG51bGxwdHI7CisgICAgICAgIH0KIAogICAgICAgICAvLyBK
YXZhU2NyaXB0IG1heSBoYXZlIGRldGFjaGVkIHRoZSBwYXJzZXIKICAgICAgICAgaWYgKGlzRGV0
YWNoZWQoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAxOGViYWJlOTcxMTA5ZDRmYjRlMzYyMTBkYzFlMWI3NWMyN2ZlZWNk
Li5mZDU1M2JlNGUyZDBhYmQ5OTJkNGIzMmM1YTM3MTY3ZDFiNTQ0ZDBiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTYtMTEtMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CisKKyAgICAgICAgW1dlYkNvcmVdIENsZWFuIHVwIHNjcmlwdCBsb2FkaW5nIGNvZGUgaW4g
WE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE2
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
dGVzdHMgdGhhdCBlbnN1cmUgbW9kdWxlcyBhcmUgbm90IGV4ZWN1dGVkIGluIFhIVE1MIGRvY3Vt
ZW50cy4KKworICAgICAgICAqIGpzL2RvbS9tb2R1bGVzL21vZHVsZS1pbmxpbmUtZHluYW1pYy1p
bi14aHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGVzL21v
ZHVsZS1pbmxpbmUtZHluYW1pYy1pbi14aHRtbC54aHRtbDogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL21vZHVsZXMvbW9kdWxlLWlubGluZS1zaW1wbGUtaW4teGh0bWwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlcy9tb2R1bGUtaW5saW5lLXNpbXBsZS1pbi14
aHRtbC54aHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZXMvbW9kdWxlLXNyYy1k
eW5hbWljLWluLXhodG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21v
ZHVsZXMvbW9kdWxlLXNyYy1keW5hbWljLWluLXhodG1sLnhodG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vbW9kdWxlcy9tb2R1bGUtc3JjLXNpbXBsZS1pbi14aHRtbC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGVzL21vZHVsZS1zcmMtc2ltcGxlLWluLXho
dG1sLnhodG1sOiBBZGRlZC4KKwogMjAxNi0xMS0xNiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjA4NDU1KTogTGF5b3V0VGVzdHMg
c3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgYW5kIHN3aXBlL21haW4tZnJh
bWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sIGFyZSBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlcy9tb2R1bGUtaW5saW5lLWR5bmFtaWMtaW4teGh0bWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMvbW9kdWxlLWlubGluZS1keW5h
bWljLWluLXhodG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2RmYjAwNGI0NjQyODAxN2Y3
NGZmODExNjFkYTkyYTRlNTBlZTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZXMvbW9kdWxlLWlubGluZS1keW5hbWljLWluLXhodG1sLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUZXN0IGR5bmFtaWNhbGx5IGFkZGVkIGlubGluZWQgbW9kdWxlIGRv
ZXMgbm90IHdvcmsgaW4gWEhUTUwgZG9jdW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgd2luZG93LmV4cG9ydGVk
Q29jb2EgaXMgdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMvbW9k
dWxlLWlubGluZS1keW5hbWljLWluLXhodG1sLnhodG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZXMvbW9kdWxlLWlubGluZS1keW5hbWljLWluLXhodG1sLnhodG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdi
ODQxZjhmYWIzMjcxYjU3MjNmOTFhNzM0MmI0ZTNjM2Q1YzljYzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlcy9tb2R1bGUtaW5saW5lLWR5bmFtaWMtaW4teGh0
bWwueGh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0Mv
L0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgIkRURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZHluYW1pY2FsbHkgYWRkZWQg
aW5saW5lZCBtb2R1bGUgZG9lcyBub3Qgd29yayBpbiBYSFRNTCBkb2N1bWVudC4nKTsKKworLy8g
TW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5v
dCBleGVjdXRlZCB5ZXQuJyk7CisoZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgICAgZWxlbWVudC50ZXh0Q29udGVudCA9
IGAKKyAgICAgICAgaW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxp
bmUtZHluYW1pYy5qcyI7CisgICAgICAgIHZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCisgICAg
ICAgIGRlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52
aXJvbm1lbnQuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGNvY29h
IiwgInVuZGVmaW5lZCIpOworCisgICAgICAgIHdpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAi
b2JqZWN0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2NvYS50
YXN0ZSgpIiwgImF3ZXNvbWUiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgYDsKKyAg
ICBlbGVtZW50LnR5cGUgPSAibW9kdWxlIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGVsZW1lbnQpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICBzaG91bGRC
ZShgd2luZG93LmV4cG9ydGVkQ29jb2FgLCBgdW5kZWZpbmVkYCk7CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0sIDEwMCk7Cit9ICgpKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMvbW9kdWxlLWlubGluZS1z
aW1wbGUtaW4teGh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMv
bW9kdWxlLWlubGluZS1zaW1wbGUtaW4teGh0bWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZj
NWM5YzZiMzMyMzE4ZmI4NGI2Nzc3MTczMDQ0Y2EzNDUzNGY5OTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlcy9tb2R1bGUtaW5saW5lLXNpbXBsZS1pbi14aHRt
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBpbmxpbmVkIG1vZHVsZSBkb2Vz
IG5vdCB3b3JrIGluIFhIVE1MIGRvY3VtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHdpbmRvdy5leHBvcnRlZENv
Y29hIGlzIHVuZGVmaW5lZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGVzL21vZHVs
ZS1pbmxpbmUtc2ltcGxlLWluLXhodG1sLnhodG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZXMvbW9kdWxlLWlubGluZS1zaW1wbGUtaW4teGh0bWwueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ2ZjZj
NjQzODBhMGM3M2U3MWNkOTBjMjVlNTg3NjE0NTAxYjlhOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGVzL21vZHVsZS1pbmxpbmUtc2ltcGxlLWluLXhodG1sLnho
dG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iICJEVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlIGRvZXMgbm90
IHdvcmsgaW4gWEhUTUwgZG9jdW1lbnQuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVk
IGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMiOwordmFyIGNvY29hID0gbmV3IENvY29h
KCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUg
ZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1
bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJhd2Vzb21lIik7CitmaW5pc2hK
U1Rlc3QoKTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgZnVuY3Rpb24gKCkgeworICAgIHNob3VsZEJlKGB3aW5kb3cuZXhwb3J0ZWRDb2NvYWAs
IGB1bmRlZmluZWRgKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlcy9tb2R1
bGUtc3JjLWR5bmFtaWMtaW4teGh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZXMvbW9kdWxlLXNyYy1keW5hbWljLWluLXhodG1sLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYmU5MzFmNzI0NWM0YmFiZmQ4ZTg2YjNlNWFhNmI0MzRiZmViNGFhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMvbW9kdWxlLXNyYy1keW5hbWljLWlu
LXhodG1sLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IGR5bmFtaWNhbGx5IGFk
ZGVkIG1vZHVsZSB3aXRoICJzcmMiIGF0dHJpYnV0ZSBkb2VzIG5vdCB3b3JrIGluIFhIVE1MIGRv
Y3VtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuCitQQVNTIHdpbmRvdy5leHBvcnRlZENvY29hIGlzIHVuZGVmaW5lZAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGVzL21vZHVsZS1zcmMtZHluYW1pYy1pbi14aHRt
bC54aHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGVzL21vZHVsZS1zcmMtZHluYW1pYy1p
bi14aHRtbC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGU5NzYwNzQ5YzEzOTQwMTM0OWEzMmJkODc5ZGRl
OWUxY2Y5MjRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMv
bW9kdWxlLXNyYy1keW5hbWljLWluLXhodG1sLnhodG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJEVEQv
eGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCdUZXN0IGR5bmFtaWNhbGx5IGFkZGVkIG1vZHVsZSB3aXRoICJzcmMiIGF0dHJpYnV0ZSBkb2Vz
IG5vdCB3b3JrIGluIFhIVE1MIGRvY3VtZW50LicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVj
dXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsK
KyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzY3JpcHQnKTsKKyAgICBlbGVtZW50LnR5cGUgPSAnbW9kdWxlJzsKKyAgICBlbGVtZW50LnNy
YyA9ICcuL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMnOworICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7
CisgICAgICAgIHNob3VsZEJlKGB3aW5kb3cuZXhwb3J0ZWRDb2NvYWAsIGB1bmRlZmluZWRgKTsK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMTAwKTsKK30oKSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGVz
L21vZHVsZS1zcmMtc2ltcGxlLWluLXhodG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGVzL21vZHVsZS1zcmMtc2ltcGxlLWluLXhodG1sLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NWU0ZDdhYzVjMTBkYjEzNWMwYmM2NDA3ZGVlYjFjM2QzMTNjMzgwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMvbW9kdWxlLXNyYy1zaW1wbGUt
aW4teGh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgbW9kdWxlIHdpdGgg
InNyYyIgYXR0cmlidXRlIGRvZXMgbm90IHdvcmsgaW4gWEhUTUwgZG9jdW1lbnQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BB
U1Mgd2luZG93LmV4cG9ydGVkQ29jb2EgaXMgdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZXMvbW9kdWxlLXNyYy1zaW1wbGUtaW4teGh0bWwueGh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlcy9tb2R1bGUtc3JjLXNpbXBsZS1pbi14aHRtbC54aHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNjcxZDc4MmM0NmJiYTRkMzI5ZTliYWZlMWI2NTNlMThlMDZmMjg5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMvbW9kdWxlLXNyYy1zaW1wbGUt
aW4teGh0bWwueGh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgIkRURC94aHRtbDEtc3RyaWN0LmR0ZCI+
Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIHdpdGgg
InNyYyIgYXR0cmlidXRlIGRvZXMgbm90IHdvcmsgaW4gWEhUTUwgZG9jdW1lbnQuJyk7CisKKy8v
IE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3Jj
PSIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
Pgord2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7CisgICAgc2hv
dWxkQmUoYHdpbmRvdy5leHBvcnRlZENvY29hYCwgYHVuZGVmaW5lZGApOworICAgIGZpbmlzaEpT
VGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="317674"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>