<?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>226543</bug_id>
          
          <creation_ts>2021-06-02 10:14:55 -0700</creation_ts>
          <short_desc>Port media code to the HTML event loop</short_desc>
          <delta_ts>2021-06-02 18:55:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>annulen</cc>
    
    <cc>calvaris</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1766059</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-02 10:14:55 -0700</bug_when>
    <thetext>Port MainThreadGenericEventQueue to the HTML event loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766060</commentid>
    <comment_count>1</comment_count>
      <attachid>430372</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-02 10:16:23 -0700</bug_when>
    <thetext>Created attachment 430372
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766098</commentid>
    <comment_count>2</comment_count>
      <attachid>430388</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-02 12:22:07 -0700</bug_when>
    <thetext>Created attachment 430388
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766115</commentid>
    <comment_count>3</comment_count>
      <attachid>430393</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-02 12:51:47 -0700</bug_when>
    <thetext>Created attachment 430393
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766167</commentid>
    <comment_count>4</comment_count>
      <attachid>430410</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-02 14:44:12 -0700</bug_when>
    <thetext>Created attachment 430410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766223</commentid>
    <comment_count>5</comment_count>
      <attachid>430410</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-06-02 16:51:52 -0700</bug_when>
    <thetext>Comment on attachment 430410
Patch

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

&gt; Source/WebCore/platform/DeferrableTask.h:109
&gt; +        scriptExecutionContext()-&gt;eventLoop().queueTask(TaskSource::MediaElement, [weakThis = makeWeakPtr(*this), task = WTFMove(task)] {

Not in this patch but we should add the capability to cancel a task we scheduled in the event loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766226</commentid>
    <comment_count>6</comment_count>
      <attachid>430410</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-06-02 17:01:07 -0700</bug_when>
    <thetext>Comment on attachment 430410
Patch

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

&gt; Source/WebCore/platform/DeferrableTask.h:57
&gt; +    bool m_hasPendingTask { false };

Nit. `m_isPending` seems better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766237</commentid>
    <comment_count>7</comment_count>
      <attachid>430425</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-02 17:38:43 -0700</bug_when>
    <thetext>Created attachment 430425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766258</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-02 18:54:43 -0700</bug_when>
    <thetext>Committed r278392 (238417@main): &lt;https://commits.webkit.org/238417@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430425.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766259</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-02 18:55:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/78793607&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430372</attachid>
            <date>2021-06-02 10:16:23 -0700</date>
            <delta_ts>2021-06-02 12:22:07 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>226543_MainThreadGenericEventQueue_EventLoop.patch</filename>
            <type>text/plain</type>
            <size>5135</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwCmluZGV4IGNmMzZkMTIxYzYw
ZS4uY2I0OGRkOGQ2NmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2
ZW50UXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5j
cHAKQEAgLTI4LDEwICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0
LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIApA
QCAtNDAsMTMgKzQyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1haW5UaHJlYWRHZW5lcmlj
RXZlbnRRdWV1ZTo6TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlKEV2ZW50VGFyZ2V0JiBvd25l
cikKICAgICA6IEFjdGl2ZURPTU9iamVjdChvd25lci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CiAgICAgLCBtX293bmVyKG93bmVyKQotICAgICwgbV90YXNrUXVldWUobWFrZVVuaXF1ZVJlZjxH
ZW5lcmljVGFza1F1ZXVlPFRpbWVyPj4oKSkKIHsKIH0KIAogdm9pZCBNYWluVGhyZWFkR2VuZXJp
Y0V2ZW50UXVldWU6OmVucXVldWVFdmVudChSZWZQdHI8RXZlbnQ+JiYgZXZlbnQpCiB7Ci0gICAg
aWYgKG1faXNDbG9zZWQpCisgICAgaWYgKG1faXNDbG9zZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGV2ZW50LT50YXJnZXQoKSA9PSAm
bV9vd25lcikKQEAgLTU0LDEwICs1NSwxMCBAQCB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRR
dWV1ZTo6ZW5xdWV1ZUV2ZW50KFJlZlB0cjxFdmVudD4mJiBldmVudCkKIAogICAgIG1fcGVuZGlu
Z0V2ZW50cy5hcHBlbmQoV1RGTW92ZShldmVudCkpOwogCi0gICAgaWYgKGlzU3VzcGVuZGVkT3JQ
YXVzZWRCeUNsaWVudCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Rhc2tRdWV1ZS0+ZW5x
dWV1ZVRhc2soc3RkOjpiaW5kKCZNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmRpc3BhdGNo
T25lRXZlbnQsIHRoaXMpKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKV0geworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFr
VGhpcy0+ZGlzcGF0Y2hPbmVFdmVudCgpOworICAgIH0pOwogfQogCiB2b2lkIE1haW5UaHJlYWRH
ZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCgpCkBAIC03OCwxNCArNzksMTIgQEAg
dm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmRpc3BhdGNoT25lRXZlbnQoKQogdm9p
ZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNsb3NlKCkKIHsKICAgICBtX2lzQ2xvc2Vk
ID0gdHJ1ZTsKLQotICAgIG1fdGFza1F1ZXVlLT5jbG9zZSgpOwotICAgIG1fcGVuZGluZ0V2ZW50
cy5jbGVhcigpOworICAgIGNhbmNlbEFsbEV2ZW50cygpOwogfQogCiB2b2lkIE1haW5UaHJlYWRH
ZW5lcmljRXZlbnRRdWV1ZTo6Y2FuY2VsQWxsRXZlbnRzKCkKIHsKLSAgICBtX3Rhc2tRdWV1ZS0+
Y2FuY2VsQWxsVGFza3MoKTsKKyAgICB3ZWFrUHRyRmFjdG9yeSgpLnJldm9rZUFsbCgpOwogICAg
IG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOwogfQogCkBAIC05Niw1MSArOTUsNyBAQCBib29sIE1h
aW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIAog
Ym9vbCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRpbmdFdmVudHNPZlR5cGUo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSkgY29uc3QKIHsKLSAgICBmb3IgKGF1dG8mIGV2ZW50IDog
bV9wZW5kaW5nRXZlbnRzKSB7Ci0gICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IHR5cGUpCi0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
LXZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpzZXRQYXVzZWQoYm9vbCBzaG91bGRQ
YXVzZSkKLXsKLSAgICBpZiAobV9pc1BhdXNlZEJ5Q2xpZW50ID09IHNob3VsZFBhdXNlKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX2lzUGF1c2VkQnlDbGllbnQgPSBzaG91bGRQYXVzZTsKLSAg
ICBpZiAoc2hvdWxkUGF1c2UpCi0gICAgICAgIG1fdGFza1F1ZXVlLT5jYW5jZWxBbGxUYXNrcygp
OwotICAgIGVsc2UKLSAgICAgICAgcmVzY2hlZHVsZUFsbEV2ZW50c0lmTmVlZGVkKCk7Ci19Ci0K
LXZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb24pCi17Ci0gICAgaWYgKG1faXNTdXNwZW5kZWQpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1faXNTdXNwZW5kZWQgPSB0cnVlOwotICAgIG1fdGFza1F1ZXVlLT5jYW5jZWxBbGxUYXNrcygp
OwotfQotCi12b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6cmVzdW1lKCkKLXsKLSAg
ICBpZiAoIW1faXNTdXNwZW5kZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNTdXNwZW5k
ZWQgPSBmYWxzZTsKLSAgICByZXNjaGVkdWxlQWxsRXZlbnRzSWZOZWVkZWQoKTsKLX0KLQotdm9p
ZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OnJlc2NoZWR1bGVBbGxFdmVudHNJZk5lZWRl
ZCgpCi17Ci0gICAgaWYgKGlzU3VzcGVuZGVkT3JQYXVzZWRCeUNsaWVudCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nRXZlbnRzLnNp
emUoKTsgKytpKQotICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soc3RkOjpiaW5kKCZN
YWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmRpc3BhdGNoT25lRXZlbnQsIHRoaXMpKTsKKyAg
ICByZXR1cm4gV1RGOjphbnlPZihtX3BlbmRpbmdFdmVudHMsIFsmXShhdXRvJiBldmVudCkgeyBy
ZXR1cm4gZXZlbnQtPnR5cGUoKSA9PSB0eXBlOyB9KTsKIH0KIAogdm9pZCBNYWluVGhyZWFkR2Vu
ZXJpY0V2ZW50UXVldWU6OnN0b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0dl
bmVyaWNFdmVudFF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUu
aAppbmRleCA1YTNlNGY1MzAyOWMuLjUzOGRlYzgxM2Q3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dl
bmVyaWNFdmVudFF1ZXVlLmgKQEAgLTI2LDIyICsyNiwyMCBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgi
CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZlbnQ7CiBj
bGFzcyBFdmVudFRhcmdldDsKLWNsYXNzIFRpbWVyOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIAotLy8gQWxsIGluc3RhbmNlcyBvZiBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUg
dXNlIGEgc2hhcmVkIFRpbWVyIGZvciBkaXNwYXRjaGluZyBldmVudHMuCiAvLyBGSVhNRTogV2Ug
c2hvdWxkIHBvcnQgY2FsbCBzaXRlcyB0byB0aGUgSFRNTCBldmVudCBsb29wIGFuZCByZW1vdmUg
dGhpcyBjbGFzcy4KLWNsYXNzIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZSA6IHB1YmxpYyBB
Y3RpdmVET01PYmplY3QgeworY2xhc3MgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIDogcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1haW5UaHJlYWRHZW5l
cmljRXZlbnRRdWV1ZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIHN0YXRpYyBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPiBjcmVhdGUo
RXZlbnRUYXJnZXQmKTsKQEAgLTUyLDEwICs1MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhbmNl
bEFsbEV2ZW50cygpOwogICAgIGJvb2wgaGFzUGVuZGluZ0V2ZW50c09mVHlwZShjb25zdCBBdG9t
U3RyaW5nJikgY29uc3Q7CiAKLSAgICB2b2lkIHNldFBhdXNlZChib29sKTsKLQotICAgIGJvb2wg
aXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3VzcGVuZGVkOyB9Ci0KICAgICBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0OwogCiBwcml2YXRlOgpAQCAtNjYsMTggKzYwLDEw
IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7Ci0gICAgdm9pZCBzdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb24pIGZpbmFsOwotICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7Ci0KLSAgICB2
b2lkIHJlc2NoZWR1bGVBbGxFdmVudHNJZk5lZWRlZCgpOwotICAgIGJvb2wgaXNTdXNwZW5kZWRP
clBhdXNlZEJ5Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc1N1c3BlbmRlZCB8fCBtX2lzUGF1
c2VkQnlDbGllbnQ7IH0KIAogICAgIEV2ZW50VGFyZ2V0JiBtX293bmVyOwotICAgIFVuaXF1ZVJl
ZjxHZW5lcmljVGFza1F1ZXVlPFRpbWVyPj4gbV90YXNrUXVldWU7CiAgICAgRGVxdWU8UmVmUHRy
PEV2ZW50Pj4gbV9wZW5kaW5nRXZlbnRzOwogICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZhbHNlIH07
Ci0gICAgYm9vbCBtX2lzUGF1c2VkQnlDbGllbnQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1N1
c3BlbmRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzRmlyaW5nRXZlbnQgeyBmYWxzZSB9Owog
fTsKIAo=
</data>
<flag name="commit-queue"
          id="451804"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430388</attachid>
            <date>2021-06-02 12:22:07 -0700</date>
            <delta_ts>2021-06-02 12:51:47 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>226543_MainThreadGenericEventQueue_EventLoop.patch</filename>
            <type>text/plain</type>
            <size>14988</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3Rl
UGxheWJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1v
dGVQbGF5YmFjay5jcHAKaW5kZXggZDFiYjA0OWQ0YjIxLi4xYjk1NjUyYjM5OTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxh
eWJhY2suY3BwCkBAIC01MSw2ICs1MSw3IEBAIFJlbW90ZVBsYXliYWNrOjpSZW1vdGVQbGF5YmFj
ayhIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAgIDogV2ViQ29yZTo6QWN0aXZlRE9NT2Jq
ZWN0KGVsZW1lbnQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICwgbV9tZWRpYUVsZW1l
bnQobWFrZVdlYWtQdHIoZWxlbWVudCkpCiAgICAgLCBtX2V2ZW50UXVldWUoTWFpblRocmVhZEdl
bmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQorICAgICwgbV90YXNrUXVldWUoZWxlbWVu
dC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90
ZVBsYXliYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90
ZVBsYXliYWNrLmgKaW5kZXggMmQyNzM2MmU4YjQ5Li4xNjk5ZGJiYWM3YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNr
LmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hdmFpbGFibGUgeyBm
YWxzZSB9OwogCiAgICAgVW5pcXVlUmVmPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZT4gbV9l
dmVudFF1ZXVlOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fdGFza1F1ZXVlOworICAg
IEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Rhc2tRdWV1ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAK
aW5kZXggOTM1NzU4NjdhNDkzLi45OTQwOTFhZmM1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwCkBAIC00
Myw3ICs0Myw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERvY3VtZW50VGltZWxpbmVzQ29u
dHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKERvY3VtZW50JiBkb2N1bWVudCkK
LSAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgOiBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdU
YXNrUXVldWUoJmRvY3VtZW50KQorICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKIHsKICAgICBp
ZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkgewogICAgICAgICBpZiAocGFnZS0+c2V0
dGluZ3MoKS5oaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQoKSAmJiAhcGFn
ZS0+aXNWaXNpYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgKaW5kZXggMWFiNTJhZmRjMDBiLi40MjEyNzhlMzIz
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1l
bGluZXNDb250cm9sbGVyLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1h
eWJlQ2xlYXJDYWNoZWRDdXJyZW50VGltZSgpOwogCiAgICAgV2Vha0hhc2hTZXQ8RG9jdW1lbnRU
aW1lbGluZT4gbV90aW1lbGluZXM7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9jdXJy
ZW50VGltZUNsZWFyaW5nVGFza1F1ZXVlOworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX2N1cnJl
bnRUaW1lQ2xlYXJpbmdUYXNrUXVldWU7CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAg
TWFya2FibGU8U2Vjb25kcywgU2Vjb25kczo6TWFya2FibGVUcmFpdHM+IG1fY2FjaGVkQ3VycmVu
dFRpbWU7CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IGMzZGRkMWU3ZmRlZS4uOTc0NmM2NWExODM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKQEAgLTQ4LDYgKzQ4
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogRnVsbHNjcmVlbk1hbmFnZXI6OkZ1
bGxzY3JlZW5NYW5hZ2VyKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQgeyBk
b2N1bWVudCB9CisgICAgLCBtX2Z1bGxzY3JlZW5UYXNrUXVldWUgeyAmZG9jdW1lbnQgfQogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dJZGVudGlmaWVyKExvZ2dlckhlbHBl
cjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2Ny
ZWVuTWFuYWdlci5oCmluZGV4IDcyZGEzNDg2MDU2Mi4uNGJkMWEzZThiZWZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMTE5LDcgKzExOSw3IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZnVsbHNjcmVlbkVsZW1lbnQ7CiAgICAgVmVjdG9yPFJl
ZlB0cjxFbGVtZW50Pj4gbV9mdWxsc2NyZWVuRWxlbWVudFN0YWNrOwogICAgIFdlYWtQdHI8UmVu
ZGVyRnVsbFNjcmVlbj4gbV9mdWxsc2NyZWVuUmVuZGVyZXIgeyBudWxscHRyIH07Ci0gICAgR2Vu
ZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9mdWxsc2NyZWVuVGFza1F1ZXVlOworICAgIEV2ZW50TG9v
cFRhc2tRdWV1ZSBtX2Z1bGxzY3JlZW5UYXNrUXVldWU7CiAgICAgRGVxdWU8UmVmUHRyPE5vZGU+
PiBtX2Z1bGxzY3JlZW5DaGFuZ2VFdmVudFRhcmdldFF1ZXVlOwogICAgIERlcXVlPFJlZlB0cjxO
b2RlPj4gbV9mdWxsc2NyZWVuRXJyb3JFdmVudFRhcmdldFF1ZXVlOwogICAgIExheW91dFJlY3Qg
bV9zYXZlZFBsYWNlaG9sZGVyRnJhbWVSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZl
bnRRdWV1ZS5jcHAKaW5kZXggY2YzNmQxMjFjNjBlLi5jYjQ4ZGQ4ZDY2ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcApAQCAtMjgsMTAgKzI4LDEyIEBACiAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRM
b29wLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5j
bHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCkBAIC00MCwxMyArNDIsMTIgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpNYWluVGhyZWFkR2VuZXJp
Y0V2ZW50UXVldWUoRXZlbnRUYXJnZXQmIG93bmVyKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KG93
bmVyLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1fb3duZXIob3duZXIpCi0gICAg
LCBtX3Rhc2tRdWV1ZShtYWtlVW5pcXVlUmVmPEdlbmVyaWNUYXNrUXVldWU8VGltZXI+PigpKQog
ewogfQogCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KFJl
ZlB0cjxFdmVudD4mJiBldmVudCkKIHsKLSAgICBpZiAobV9pc0Nsb3NlZCkKKyAgICBpZiAobV9p
c0Nsb3NlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoZXZlbnQtPnRhcmdldCgpID09ICZtX293bmVyKQpAQCAtNTQsMTAgKzU1LDEwIEBA
IHZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUmVmUHRyPEV2
ZW50PiYmIGV2ZW50KQogCiAgICAgbV9wZW5kaW5nRXZlbnRzLmFwcGVuZChXVEZNb3ZlKGV2ZW50
KSk7CiAKLSAgICBpZiAoaXNTdXNwZW5kZWRPclBhdXNlZEJ5Q2xpZW50KCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJk1haW5UaHJl
YWRHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOworICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1l
ZGlhRWxlbWVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGlm
ICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kaXNwYXRjaE9uZUV2ZW50KCk7Cisg
ICAgfSk7CiB9CiAKIHZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpkaXNwYXRjaE9u
ZUV2ZW50KCkKQEAgLTc4LDE0ICs3OSwxMiBAQCB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRR
dWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCgpCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1
ZTo6Y2xvc2UoKQogewogICAgIG1faXNDbG9zZWQgPSB0cnVlOwotCi0gICAgbV90YXNrUXVldWUt
PmNsb3NlKCk7Ci0gICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFyKCk7CisgICAgY2FuY2VsQWxsRXZl
bnRzKCk7CiB9CiAKIHZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxBbGxF
dmVudHMoKQogewotICAgIG1fdGFza1F1ZXVlLT5jYW5jZWxBbGxUYXNrcygpOworICAgIHdlYWtQ
dHJGYWN0b3J5KCkucmV2b2tlQWxsKCk7CiAgICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFyKCk7CiB9
CiAKQEAgLTk2LDUxICs5NSw3IEBAIGJvb2wgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogCiBib29sIE1haW5UaHJlYWRHZW5lcmljRXZlbnRR
dWV1ZTo6aGFzUGVuZGluZ0V2ZW50c09mVHlwZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlKSBjb25z
dAogewotICAgIGZvciAoYXV0byYgZXZlbnQgOiBtX3BlbmRpbmdFdmVudHMpIHsKLSAgICAgICAg
aWYgKGV2ZW50LT50eXBlKCkgPT0gdHlwZSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50
UXVldWU6OnNldFBhdXNlZChib29sIHNob3VsZFBhdXNlKQotewotICAgIGlmIChtX2lzUGF1c2Vk
QnlDbGllbnQgPT0gc2hvdWxkUGF1c2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNQYXVz
ZWRCeUNsaWVudCA9IHNob3VsZFBhdXNlOwotICAgIGlmIChzaG91bGRQYXVzZSkKLSAgICAgICAg
bV90YXNrUXVldWUtPmNhbmNlbEFsbFRhc2tzKCk7Ci0gICAgZWxzZQotICAgICAgICByZXNjaGVk
dWxlQWxsRXZlbnRzSWZOZWVkZWQoKTsKLX0KLQotdm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50
UXVldWU6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKLXsKLSAgICBpZiAobV9pc1N1c3Bl
bmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7Ci0gICAg
bV90YXNrUXVldWUtPmNhbmNlbEFsbFRhc2tzKCk7Ci19Ci0KLXZvaWQgTWFpblRocmVhZEdlbmVy
aWNFdmVudFF1ZXVlOjpyZXN1bWUoKQotewotICAgIGlmICghbV9pc1N1c3BlbmRlZCkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwotICAgIHJlc2NoZWR1bGVB
bGxFdmVudHNJZk5lZWRlZCgpOwotfQotCi12b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1
ZTo6cmVzY2hlZHVsZUFsbEV2ZW50c0lmTmVlZGVkKCkKLXsKLSAgICBpZiAoaXNTdXNwZW5kZWRP
clBhdXNlZEJ5Q2xpZW50KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX3BlbmRpbmdFdmVudHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fdGFza1F1
ZXVlLT5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJk1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6
ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOworICAgIHJldHVybiBXVEY6OmFueU9mKG1fcGVuZGlu
Z0V2ZW50cywgWyZdKGF1dG8mIGV2ZW50KSB7IHJldHVybiBldmVudC0+dHlwZSgpID09IHR5cGU7
IH0pOwogfQogCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6c3RvcCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCmluZGV4IDVhM2U0ZjUzMDI5Yy4uNTM4ZGVj
ODEzZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaApAQCAtMjYsMjIg
KzI2LDIwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgot
I2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvVW5pcXVlUmVmLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBFdmVudDsKIGNsYXNzIEV2ZW50VGFyZ2V0OwotY2xhc3MgVGlt
ZXI7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi0vLyBBbGwgaW5zdGFuY2VzIG9m
IE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZSB1c2UgYSBzaGFyZWQgVGltZXIgZm9yIGRpc3Bh
dGNoaW5nIGV2ZW50cy4KIC8vIEZJWE1FOiBXZSBzaG91bGQgcG9ydCBjYWxsIHNpdGVzIHRvIHRo
ZSBIVE1MIGV2ZW50IGxvb3AgYW5kIHJlbW92ZSB0aGlzIGNsYXNzLgotY2xhc3MgTWFpblRocmVh
ZEdlbmVyaWNFdmVudFF1ZXVlIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBNYWlu
VGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFVuaXF1ZVJlZjxNYWluVGhy
ZWFkR2VuZXJpY0V2ZW50UXVldWU+IGNyZWF0ZShFdmVudFRhcmdldCYpOwpAQCAtNTIsMTAgKzUw
LDYgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsQWxsRXZlbnRzKCk7CiAgICAgYm9vbCBoYXNQ
ZW5kaW5nRXZlbnRzT2ZUeXBlKGNvbnN0IEF0b21TdHJpbmcmKSBjb25zdDsKIAotICAgIHZvaWQg
c2V0UGF1c2VkKGJvb2wpOwotCi0gICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNTdXNwZW5kZWQ7IH0KLQogICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Q7
CiAKIHByaXZhdGU6CkBAIC02NiwxOCArNjAsMTAgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IGNo
YXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBm
aW5hbDsKLSAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7Ci0gICAg
dm9pZCByZXN1bWUoKSBmaW5hbDsKLQotICAgIHZvaWQgcmVzY2hlZHVsZUFsbEV2ZW50c0lmTmVl
ZGVkKCk7Ci0gICAgYm9vbCBpc1N1c3BlbmRlZE9yUGF1c2VkQnlDbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX2lzU3VzcGVuZGVkIHx8IG1faXNQYXVzZWRCeUNsaWVudDsgfQogCiAgICAgRXZlbnRU
YXJnZXQmIG1fb3duZXI7Ci0gICAgVW5pcXVlUmVmPEdlbmVyaWNUYXNrUXVldWU8VGltZXI+PiBt
X3Rhc2tRdWV1ZTsKICAgICBEZXF1ZTxSZWZQdHI8RXZlbnQ+PiBtX3BlbmRpbmdFdmVudHM7CiAg
ICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNQYXVzZWRCeUNsaWVu
dCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29s
IG1faXNGaXJpbmdFdmVudCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAppbmRleCA2MDZmOGQ5MzdmNGIuLmU3NGU0MDgxYTU2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0zOTUsNiArMzk1LDEyIEBA
IEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2Vy
QmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lckZpcmVkKQogICAgICwg
bV9zZWVrVG9QbGF5YmFja1Bvc2l0aW9uRW5kZWRUaW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1l
bnQ6OnNlZWtUb1BsYXliYWNrUG9zaXRpb25FbmRlZFRpbWVyRmlyZWQpCiAgICAgLCBtX3VwZGF0
ZVBsYXlTdGF0ZVRhc2soKnRoaXMpCisgICAgLCBtX3Byb21pc2VUYXNrUXVldWUoJmRvY3VtZW50
KQorICAgICwgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVldWUoJmRvY3VtZW50KQorICAgICwg
bV9yZXNvdXJjZVNlbGVjdGlvblRhc2tRdWV1ZSgmZG9jdW1lbnQpCisgICAgLCBtX3Zpc2liaWxp
dHlDaGFuZ2VUYXNrUXVldWUoJmRvY3VtZW50KQorICAgICwgbV9mdWxsc2NyZWVuVGFza1F1ZXVl
KCZkb2N1bWVudCkKKyAgICAsIG1fcGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzUXVldWUoJmRvY3Vt
ZW50KQogICAgICwgbV9hc3luY0V2ZW50UXVldWUoTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVl
OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9sYXN0VGltZVVwZGF0ZUV2ZW50TW92aWVUaW1lKE1l
ZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSkKICAgICAsIG1fZmlyc3RUaW1lUGxheWlu
Zyh0cnVlKQpAQCAtNDM0LDYgKzQ0MCw5IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAg
LCBtX3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlKGZhbHNlKQogICAgICwgbV9zaG91bGRBdWRp
b1BsYXliYWNrUmVxdWlyZVVzZXJHZXN0dXJlKGRvY3VtZW50LnRvcERvY3VtZW50KCkuYXVkaW9Q
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9y
TWVkaWEoKSkKICAgICAsIG1fc2hvdWxkVmlkZW9QbGF5YmFja1JlcXVpcmVVc2VyR2VzdHVyZShk
b2N1bWVudC50b3BEb2N1bWVudCgpLnZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkg
JiYgIXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKKyAgICAsIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZSgmZG9jdW1lbnQpCisjZW5kaWYK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgICwgbV9yZW1vdGUoUmVt
b3RlUGxheWJhY2s6OmNyZWF0ZSgqdGhpcykpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKaW5kZXggMzM3ZDg1OTAwNzZiLi5hZDI0ZjBkYmZiODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC05NTIsMTIgKzk1MiwxMiBAQCBwcml2
YXRlOgogICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBtX3NlZWtUYXNrUXVldWU7CiAgICAgRGVm
ZXJyYWJsZVRhc2s8VGltZXI+IG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3Ry
aWN0aW9uc1F1ZXVlOwogICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBtX2J1ZmZlcmVkVGltZVJh
bmdlc0NoYW5nZWRRdWV1ZTsKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Byb21pc2VU
YXNrUXVldWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9wYXVzZUFmdGVyRGV0YWNo
ZWRUYXNrUXVldWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9yZXNvdXJjZVNlbGVj
dGlvblRhc2tRdWV1ZTsKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Zpc2liaWxpdHlD
aGFuZ2VUYXNrUXVldWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9mdWxsc2NyZWVu
VGFza1F1ZXVlOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fcGxheWJhY2tUYXJnZXRJ
c1dpcmVsZXNzUXVldWU7CisgICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fcHJvbWlzZVRhc2tRdWV1
ZTsKKyAgICBFdmVudExvb3BUYXNrUXVldWUgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVldWU7
CisgICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVldWU7Cisg
ICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fdmlzaWJpbGl0eUNoYW5nZVRhc2tRdWV1ZTsKKyAgICBF
dmVudExvb3BUYXNrUXVldWUgbV9mdWxsc2NyZWVuVGFza1F1ZXVlOworICAgIEV2ZW50TG9vcFRh
c2tRdWV1ZSBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlOwogICAgIFJlZlB0cjxUaW1l
UmFuZ2VzPiBtX3BsYXllZFRpbWVSYW5nZXM7CiAgICAgVW5pcXVlUmVmPE1haW5UaHJlYWRHZW5l
cmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKQEAgLTExNjEsNyArMTE2MSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE1lZGlhS2V5cz4g
bV9tZWRpYUtleXM7CiAgICAgYm9vbCBtX2F0dGFjaGluZ01lZGlhS2V5cyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3BsYXliYWNrQmxvY2tlZFdhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwotICAgIEdl
bmVyaWNUYXNrUXVldWU8VGltZXI+IG1fZW5jcnlwdGVkTWVkaWFRdWV1ZTsKKyAgICBFdmVudExv
b3BUYXNrUXVldWUgbV9lbmNyeXB0ZWRNZWRpYVF1ZXVlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50LmNwcAppbmRleCBmN2QzYWE2NzdkYTEuLjFkMDM0NjFjNzRiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKQEAgLTc1LDYgKzc1LDcgQEAgUmVmPE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQKIAogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEhU
TUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRv
Y3VtZW50KQorICAgICwgbV90YXNrUXVldWUoJmRvY3VtZW50KQogICAgICwgbV9tZWRpYUVsZW1l
bnQobWFrZVdlYWtQdHIoJmVsZW1lbnQpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudC5oCmluZGV4IGNlMjY2MTVmM2QwOC4uN2U0MmE0ZDM1YjljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dFRyYWNrUmVwcmVzZW50YXRpb24+IG1fdGV4dFRyYWNrUmVw
cmVzZW50YXRpb247CiAKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Rhc2tRdWV1ZTsK
KyAgICBFdmVudExvb3BUYXNrUXVldWUgbV90YXNrUXVldWU7CiAgICAgV2Vha1B0cjxIVE1MTWVk
aWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKICAgICBJbnRSZWN0IG1fdmlkZW9EaXNwbGF5U2l6
ZTsKICAgICBpbnQgbV9mb250U2l6ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dl
bmVyaWNUYXNrUXVldWUuaAppbmRleCA2ZWFkNDM1M2RjOTkuLjRkMmQ1ZjNiZDczMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaApAQCAtMjUsNiArMjUsOSBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
LmgiCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5j
bHVkZSA8d3RmL0Z1bmN0aW9uLmg+CkBAIC0xNDIsNCArMTQ1LDQ3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKIH07CiAKKy8vIFNpbWlsYXIgdG8gR2VuZXJpY1Rh
c2tRdWV1ZSBidXQgYmFzZWQgb24gdGhlIEhUTUwgZXZlbnQgbG9vcC4KK2NsYXNzIEV2ZW50TG9v
cFRhc2tRdWV1ZSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxFdmVudExvb3BUYXNrUXVldWU+LCBw
dWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeworcHVibGljOgorICAgIEV2ZW50TG9v
cFRhc2tRdWV1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgICAgICA6IENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCisgICAgeyB9CisKKyAgICB1c2luZyBU
YXNrRnVuY3Rpb24gPSBGdW5jdGlvbjx2b2lkKCk+OworICAgIHZvaWQgZW5xdWV1ZVRhc2soVGFz
a0Z1bmN0aW9uJiYgdGFzaykKKyAgICB7CisgICAgICAgIGlmIChtX2lzQ2xvc2VkIHx8ICFzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgKytt
X3BlbmRpbmdUYXNrczsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CisgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIEFTU0VSVCh3
ZWFrVGhpcy0+bV9wZW5kaW5nVGFza3MpOworICAgICAgICAgICAgLS13ZWFrVGhpcy0+bV9wZW5k
aW5nVGFza3M7CisgICAgICAgICAgICB0YXNrKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGJvb2wgaGFzUGVuZGluZ1Rhc2tzKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nVGFza3M7IH0K
KyAgICBib29sIGlzQ2xvc2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Nsb3NlZDsgfQorCisgICAg
dm9pZCBjbG9zZSgpCisgICAgeworICAgICAgICBjYW5jZWxBbGxUYXNrcygpOworICAgICAgICBt
X2lzQ2xvc2VkID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIGNhbmNlbEFsbFRhc2tzKCkKKyAg
ICB7CisgICAgICAgIHdlYWtQdHJGYWN0b3J5KCkucmV2b2tlQWxsKCk7CisgICAgICAgIG1fcGVu
ZGluZ1Rhc2tzID0gMDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9wZW5kaW5n
VGFza3MgeyAwIH07CisgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKK307CisKIH0K
</data>
<flag name="commit-queue"
          id="451816"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430393</attachid>
            <date>2021-06-02 12:51:47 -0700</date>
            <delta_ts>2021-06-02 14:44:09 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>226543_MainThreadGenericEventQueue_EventLoop.patch</filename>
            <type>text/plain</type>
            <size>18480</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCmluZGV4IGRhMjdiNDE5MTFmMS4uMTkxYTQxM2Q5ZTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKQEAgLTQ2MSw2ICs0NjEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgZG9tL0V2ZW50TGlzdGVuZXIuaAogICAgIGRvbS9FdmVudExpc3Rl
bmVyTWFwLmgKICAgICBkb20vRXZlbnRMaXN0ZW5lck9wdGlvbnMuaAorICAgIGRvbS9FdmVudExv
b3AuaAogICAgIGRvbS9FdmVudE1vZGlmaWVySW5pdC5oCiAgICAgZG9tL0V2ZW50TmFtZXMuaAog
ICAgIGRvbS9FdmVudFF1ZXVlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKaW5kZXggZDFiYjA0OWQ0YjIxLi4x
Yjk1NjUyYjM5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxh
eWJhY2svUmVtb3RlUGxheWJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVt
b3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCkBAIC01MSw2ICs1MSw3IEBAIFJlbW90ZVBs
YXliYWNrOjpSZW1vdGVQbGF5YmFjayhIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAgIDog
V2ViQ29yZTo6QWN0aXZlRE9NT2JqZWN0KGVsZW1lbnQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KQogICAgICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIoZWxlbWVudCkpCiAgICAgLCBtX2V2
ZW50UXVldWUoTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQorICAg
ICwgbV90YXNrUXVldWUoZWxlbWVudC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiB7CiAgICAg
c3VzcGVuZElmTmVlZGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmgKaW5kZXggMmQyNzM2MmU4YjQ5Li4xNjk5
ZGJiYWM3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJh
Y2svUmVtb3RlUGxheWJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBs
YXliYWNrL1JlbW90ZVBsYXliYWNrLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9hdmFpbGFibGUgeyBmYWxzZSB9OwogCiAgICAgVW5pcXVlUmVmPE1haW5UaHJlYWRH
ZW5lcmljRXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVlOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGlt
ZXI+IG1fdGFza1F1ZXVlOworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Rhc2tRdWV1ZTsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVs
aW5lc0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGlt
ZWxpbmVzQ29udHJvbGxlci5jcHAKaW5kZXggOTM1NzU4NjdhNDkzLi45OTQwOTFhZmM1NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXIuY3BwCkBAIC00Myw3ICs0Myw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
KERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgOiBt
X2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUoJmRvY3VtZW50KQorICAgICwgbV9kb2N1bWVu
dChkb2N1bWVudCkKIHsKICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkgewog
ICAgICAgICBpZiAocGFnZS0+c2V0dGluZ3MoKS5oaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVu
c2lvbkVuYWJsZWQoKSAmJiAhcGFnZS0+aXNWaXNpYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgKaW5kZXggMWFi
NTJhZmRjMDBiLi40MjEyNzhlMzIzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgKQEAgLTY3LDcgKzY3LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIG1heWJlQ2xlYXJDYWNoZWRDdXJyZW50VGltZSgpOwogCiAgICAg
V2Vha0hhc2hTZXQ8RG9jdW1lbnRUaW1lbGluZT4gbV90aW1lbGluZXM7Ci0gICAgR2VuZXJpY1Rh
c2tRdWV1ZTxUaW1lcj4gbV9jdXJyZW50VGltZUNsZWFyaW5nVGFza1F1ZXVlOworICAgIEV2ZW50
TG9vcFRhc2tRdWV1ZSBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWU7CiAgICAgRG9jdW1l
bnQmIG1fZG9jdW1lbnQ7CiAgICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25kczo6TWFya2FibGVU
cmFpdHM+IG1fY2FjaGVkQ3VycmVudFRpbWU7CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IGMzZGRk
MWU3ZmRlZS4uOTc0NmM2NWExODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFu
YWdlci5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAog
RnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5NYW5hZ2VyKERvY3VtZW50JiBkb2N1bWVudCkK
ICAgICA6IG1fZG9jdW1lbnQgeyBkb2N1bWVudCB9CisgICAgLCBtX2Z1bGxzY3JlZW5UYXNrUXVl
dWUgeyAmZG9jdW1lbnQgfQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dJ
ZGVudGlmaWVyKExvZ2dlckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDcyZGEzNDg2MDU2Mi4uNGJk
MWEzZThiZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMTE5
LDcgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZnVsbHNjcmVlbkVs
ZW1lbnQ7CiAgICAgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4gbV9mdWxsc2NyZWVuRWxlbWVudFN0
YWNrOwogICAgIFdlYWtQdHI8UmVuZGVyRnVsbFNjcmVlbj4gbV9mdWxsc2NyZWVuUmVuZGVyZXIg
eyBudWxscHRyIH07Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9mdWxsc2NyZWVuVGFz
a1F1ZXVlOworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX2Z1bGxzY3JlZW5UYXNrUXVldWU7CiAg
ICAgRGVxdWU8UmVmUHRyPE5vZGU+PiBtX2Z1bGxzY3JlZW5DaGFuZ2VFdmVudFRhcmdldFF1ZXVl
OwogICAgIERlcXVlPFJlZlB0cjxOb2RlPj4gbV9mdWxsc2NyZWVuRXJyb3JFdmVudFRhcmdldFF1
ZXVlOwogICAgIExheW91dFJlY3QgbV9zYXZlZFBsYWNlaG9sZGVyRnJhbWVSZWN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAKaW5kZXggY2YzNmQxMjFjNjBlLi5jYjQ4
ZGQ4ZDY2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcApAQCAt
MjgsMTAgKzI4LDEyIEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50
LmgiCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNp
bmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCkBAIC00MCwx
MyArNDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogTWFpblRocmVhZEdlbmVyaWNFdmVudFF1
ZXVlOjpNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUoRXZlbnRUYXJnZXQmIG93bmVyKQogICAg
IDogQWN0aXZlRE9NT2JqZWN0KG93bmVyLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAs
IG1fb3duZXIob3duZXIpCi0gICAgLCBtX3Rhc2tRdWV1ZShtYWtlVW5pcXVlUmVmPEdlbmVyaWNU
YXNrUXVldWU8VGltZXI+PigpKQogewogfQogCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRR
dWV1ZTo6ZW5xdWV1ZUV2ZW50KFJlZlB0cjxFdmVudD4mJiBldmVudCkKIHsKLSAgICBpZiAobV9p
c0Nsb3NlZCkKKyAgICBpZiAobV9pc0Nsb3NlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZXZlbnQtPnRhcmdldCgpID09ICZtX293bmVy
KQpAQCAtNTQsMTAgKzU1LDEwIEBAIHZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpl
bnF1ZXVlRXZlbnQoUmVmUHRyPEV2ZW50PiYmIGV2ZW50KQogCiAgICAgbV9wZW5kaW5nRXZlbnRz
LmFwcGVuZChXVEZNb3ZlKGV2ZW50KSk7CiAKLSAgICBpZiAoaXNTdXNwZW5kZWRPclBhdXNlZEJ5
Q2xpZW50KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFz
ayhzdGQ6OmJpbmQoJk1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVu
dCwgdGhpcykpOworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRMb29wKCkucXVl
dWVUYXNrKFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpXSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5k
aXNwYXRjaE9uZUV2ZW50KCk7CisgICAgfSk7CiB9CiAKIHZvaWQgTWFpblRocmVhZEdlbmVyaWNF
dmVudFF1ZXVlOjpkaXNwYXRjaE9uZUV2ZW50KCkKQEAgLTc4LDE0ICs3OSwxMiBAQCB2b2lkIE1h
aW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCgpCiB2b2lkIE1haW5U
aHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6Y2xvc2UoKQogewogICAgIG1faXNDbG9zZWQgPSB0cnVl
OwotCi0gICAgbV90YXNrUXVldWUtPmNsb3NlKCk7Ci0gICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFy
KCk7CisgICAgY2FuY2VsQWxsRXZlbnRzKCk7CiB9CiAKIHZvaWQgTWFpblRocmVhZEdlbmVyaWNF
dmVudFF1ZXVlOjpjYW5jZWxBbGxFdmVudHMoKQogewotICAgIG1fdGFza1F1ZXVlLT5jYW5jZWxB
bGxUYXNrcygpOworICAgIHdlYWtQdHJGYWN0b3J5KCkucmV2b2tlQWxsKCk7CiAgICAgbV9wZW5k
aW5nRXZlbnRzLmNsZWFyKCk7CiB9CiAKQEAgLTk2LDUxICs5NSw3IEBAIGJvb2wgTWFpblRocmVh
ZEdlbmVyaWNFdmVudFF1ZXVlOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogCiBib29sIE1h
aW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6aGFzUGVuZGluZ0V2ZW50c09mVHlwZShjb25zdCBB
dG9tU3RyaW5nJiB0eXBlKSBjb25zdAogewotICAgIGZvciAoYXV0byYgZXZlbnQgOiBtX3BlbmRp
bmdFdmVudHMpIHsKLSAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gdHlwZSkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBN
YWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OnNldFBhdXNlZChib29sIHNob3VsZFBhdXNlKQot
ewotICAgIGlmIChtX2lzUGF1c2VkQnlDbGllbnQgPT0gc2hvdWxkUGF1c2UpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIG1faXNQYXVzZWRCeUNsaWVudCA9IHNob3VsZFBhdXNlOwotICAgIGlmIChz
aG91bGRQYXVzZSkKLSAgICAgICAgbV90YXNrUXVldWUtPmNhbmNlbEFsbFRhc2tzKCk7Ci0gICAg
ZWxzZQotICAgICAgICByZXNjaGVkdWxlQWxsRXZlbnRzSWZOZWVkZWQoKTsKLX0KLQotdm9pZCBN
YWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikK
LXsKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1N1
c3BlbmRlZCA9IHRydWU7Ci0gICAgbV90YXNrUXVldWUtPmNhbmNlbEFsbFRhc2tzKCk7Ci19Ci0K
LXZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpyZXN1bWUoKQotewotICAgIGlmICgh
bV9pc1N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1N1c3BlbmRlZCA9IGZh
bHNlOwotICAgIHJlc2NoZWR1bGVBbGxFdmVudHNJZk5lZWRlZCgpOwotfQotCi12b2lkIE1haW5U
aHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6cmVzY2hlZHVsZUFsbEV2ZW50c0lmTmVlZGVkKCkKLXsK
LSAgICBpZiAoaXNTdXNwZW5kZWRPclBhdXNlZEJ5Q2xpZW50KCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BlbmRpbmdFdmVudHMuc2l6ZSgpOyAr
K2kpCi0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJk1haW5UaHJl
YWRHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOworICAgIHJldHVy
biBXVEY6OmFueU9mKG1fcGVuZGluZ0V2ZW50cywgWyZdKGF1dG8mIGV2ZW50KSB7IHJldHVybiBl
dmVudC0+dHlwZSgpID09IHR5cGU7IH0pOwogfQogCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZl
bnRRdWV1ZTo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2
ZW50UXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCmluZGV4
IDVhM2U0ZjUzMDI5Yy4uNTM4ZGVjODEzZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vR2VuZXJpY0V2ZW50UXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2
ZW50UXVldWUuaApAQCAtMjYsMjIgKzI2LDIwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNs
dWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFdmVudDsKIGNsYXNzIEV2
ZW50VGFyZ2V0OwotY2xhc3MgVGltZXI7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owog
Ci0vLyBBbGwgaW5zdGFuY2VzIG9mIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZSB1c2UgYSBz
aGFyZWQgVGltZXIgZm9yIGRpc3BhdGNoaW5nIGV2ZW50cy4KIC8vIEZJWE1FOiBXZSBzaG91bGQg
cG9ydCBjYWxsIHNpdGVzIHRvIHRoZSBIVE1MIGV2ZW50IGxvb3AgYW5kIHJlbW92ZSB0aGlzIGNs
YXNzLgotY2xhc3MgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIDogcHVibGljIEFjdGl2ZURP
TU9iamVjdCB7CitjbGFzcyBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgOiBwdWJsaWMgQWN0
aXZlRE9NT2JqZWN0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWFpblRocmVhZEdlbmVyaWNFdmVu
dFF1ZXVlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFVuaXF1ZVJlZjxNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU+IGNyZWF0ZShFdmVudFRh
cmdldCYpOwpAQCAtNTIsMTAgKzUwLDYgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsQWxsRXZl
bnRzKCk7CiAgICAgYm9vbCBoYXNQZW5kaW5nRXZlbnRzT2ZUeXBlKGNvbnN0IEF0b21TdHJpbmcm
KSBjb25zdDsKIAotICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wpOwotCi0gICAgYm9vbCBpc1N1c3Bl
bmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdXNwZW5kZWQ7IH0KLQogICAgIGJvb2wgaGFzUGVu
ZGluZ0FjdGl2aXR5KCkgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC02NiwxOCArNjAsMTAgQEAgcHJp
dmF0ZToKIAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKLSAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3Vz
cGVuc2lvbikgZmluYWw7Ci0gICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKLQotICAgIHZvaWQgcmVz
Y2hlZHVsZUFsbEV2ZW50c0lmTmVlZGVkKCk7Ci0gICAgYm9vbCBpc1N1c3BlbmRlZE9yUGF1c2Vk
QnlDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU3VzcGVuZGVkIHx8IG1faXNQYXVzZWRCeUNs
aWVudDsgfQogCiAgICAgRXZlbnRUYXJnZXQmIG1fb3duZXI7Ci0gICAgVW5pcXVlUmVmPEdlbmVy
aWNUYXNrUXVldWU8VGltZXI+PiBtX3Rhc2tRdWV1ZTsKICAgICBEZXF1ZTxSZWZQdHI8RXZlbnQ+
PiBtX3BlbmRpbmdFdmVudHM7CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1faXNQYXVzZWRCeUNsaWVudCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzU3VzcGVuZGVk
IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNGaXJpbmdFdmVudCB7IGZhbHNlIH07CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2MDZmOGQ5MzdmNGIu
LmE1ZDk0MTU0Y2FhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC0zOTQsNyArMzk0LDIxIEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBtX3Nj
YW5UaW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnNjYW5UaW1lckZpcmVkKQogICAgICwg
bV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXIoKnRoaXMs
ICZIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJp
Y3Rpb25zVGltZXJGaXJlZCkKICAgICAsIG1fc2Vla1RvUGxheWJhY2tQb3NpdGlvbkVuZGVkVGlt
ZXIoKnRoaXMsICZIVE1MTWVkaWFFbGVtZW50OjpzZWVrVG9QbGF5YmFja1Bvc2l0aW9uRW5kZWRU
aW1lckZpcmVkKQorICAgICwgbV9jb25maWd1cmVUZXh0VHJhY2tzVGFzaygmZG9jdW1lbnQpCisg
ICAgLCBtX2NoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHlUYXNrKCZkb2N1bWVudCkKKyAg
ICAsIG1fdXBkYXRlTWVkaWFTdGF0ZVRhc2soJmRvY3VtZW50KQorICAgICwgbV9tZWRpYUVuZ2lu
ZVVwZGF0ZWRUYXNrKCZkb2N1bWVudCkKICAgICAsIG1fdXBkYXRlUGxheVN0YXRlVGFzaygqdGhp
cykKKyAgICAsIG1fcmVzdW1lVGFza1F1ZXVlKCZkb2N1bWVudCkKKyAgICAsIG1fc2Vla1Rhc2tR
dWV1ZSgmZG9jdW1lbnQpCisgICAgLCBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JS
ZXN0cmljdGlvbnNRdWV1ZSgmZG9jdW1lbnQpCisgICAgLCBtX2J1ZmZlcmVkVGltZVJhbmdlc0No
YW5nZWRRdWV1ZSgmZG9jdW1lbnQpCisgICAgLCBtX3Byb21pc2VUYXNrUXVldWUoJmRvY3VtZW50
KQorICAgICwgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVldWUoJmRvY3VtZW50KQorICAgICwg
bV9yZXNvdXJjZVNlbGVjdGlvblRhc2tRdWV1ZSgmZG9jdW1lbnQpCisgICAgLCBtX3Zpc2liaWxp
dHlDaGFuZ2VUYXNrUXVldWUoJmRvY3VtZW50KQorICAgICwgbV9mdWxsc2NyZWVuVGFza1F1ZXVl
KCZkb2N1bWVudCkKKyAgICAsIG1fcGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzUXVldWUoJmRvY3Vt
ZW50KQogICAgICwgbV9hc3luY0V2ZW50UXVldWUoTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVl
OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9sYXN0VGltZVVwZGF0ZUV2ZW50TW92aWVUaW1lKE1l
ZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSkKICAgICAsIG1fZmlyc3RUaW1lUGxheWlu
Zyh0cnVlKQpAQCAtNDM0LDYgKzQ0OCw5IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAg
LCBtX3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlKGZhbHNlKQogICAgICwgbV9zaG91bGRBdWRp
b1BsYXliYWNrUmVxdWlyZVVzZXJHZXN0dXJlKGRvY3VtZW50LnRvcERvY3VtZW50KCkuYXVkaW9Q
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9y
TWVkaWEoKSkKICAgICAsIG1fc2hvdWxkVmlkZW9QbGF5YmFja1JlcXVpcmVVc2VyR2VzdHVyZShk
b2N1bWVudC50b3BEb2N1bWVudCgpLnZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkg
JiYgIXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKKyAgICAsIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZSgmZG9jdW1lbnQpCisjZW5kaWYK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgICwgbV9yZW1vdGUoUmVt
b3RlUGxheWJhY2s6OmNyZWF0ZSgqdGhpcykpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKaW5kZXggMzM3ZDg1OTAwNzZiLi5mZmE2YTJhMWI1ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC05NDMsMjEgKzk0MywyMSBAQCBwcml2
YXRlOgogICAgIFRpbWVyIG1fc2NhblRpbWVyOwogICAgIFRpbWVyIG1fcGxheWJhY2tDb250cm9s
c01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVyOwogICAgIFRpbWVyIG1fc2Vla1RvUGxh
eWJhY2tQb3NpdGlvbkVuZGVkVGltZXI7Ci0gICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fY29u
ZmlndXJlVGV4dFRyYWNrc1Rhc2s7Ci0gICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fY2hlY2tQ
bGF5YmFja1RhcmdldENvbXBhdGFibGl0eVRhc2s7Ci0gICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+
IG1fdXBkYXRlTWVkaWFTdGF0ZVRhc2s7Ci0gICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fbWVk
aWFFbmdpbmVVcGRhdGVkVGFzazsKKyAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX2NvbmZp
Z3VyZVRleHRUcmFja3NUYXNrOworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fY2hlY2tQ
bGF5YmFja1RhcmdldENvbXBhdGFibGl0eVRhc2s7CisgICAgRXZlbnRMb29wRGVmZXJyYWJsZVRh
c2sgbV91cGRhdGVNZWRpYVN0YXRlVGFzazsKKyAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBt
X21lZGlhRW5naW5lVXBkYXRlZFRhc2s7CiAgICAgRGVmZXJyYWJsZVRhc2s8SFRNTE1lZGlhRWxl
bWVudD4gbV91cGRhdGVQbGF5U3RhdGVUYXNrOwotICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBt
X3Jlc3VtZVRhc2tRdWV1ZTsKLSAgICBEZWZlcnJhYmxlVGFzazxUaW1lcj4gbV9zZWVrVGFza1F1
ZXVlOwotICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2Vy
QmVoYXZpb3JSZXN0cmljdGlvbnNRdWV1ZTsKLSAgICBEZWZlcnJhYmxlVGFzazxUaW1lcj4gbV9i
dWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkUXVldWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1l
cj4gbV9wcm9taXNlVGFza1F1ZXVlOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fcGF1
c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1f
cmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVldWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4g
bV92aXNpYmlsaXR5Q2hhbmdlVGFza1F1ZXVlOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+
IG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Bs
YXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlOworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNr
IG1fcmVzdW1lVGFza1F1ZXVlOworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fc2Vla1Rh
c2tRdWV1ZTsKKyAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX3BsYXliYWNrQ29udHJvbHNN
YW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNRdWV1ZTsKKyAgICBFdmVudExvb3BEZWZlcnJhYmxl
VGFzayBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWRRdWV1ZTsKKyAgICBFdmVudExvb3BUYXNr
UXVldWUgbV9wcm9taXNlVGFza1F1ZXVlOworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3BhdXNl
QWZ0ZXJEZXRhY2hlZFRhc2tRdWV1ZTsKKyAgICBFdmVudExvb3BUYXNrUXVldWUgbV9yZXNvdXJj
ZVNlbGVjdGlvblRhc2tRdWV1ZTsKKyAgICBFdmVudExvb3BUYXNrUXVldWUgbV92aXNpYmlsaXR5
Q2hhbmdlVGFza1F1ZXVlOworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX2Z1bGxzY3JlZW5UYXNr
UXVldWU7CisgICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fcGxheWJhY2tUYXJnZXRJc1dpcmVsZXNz
UXVldWU7CiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IG1fcGxheWVkVGltZVJhbmdlczsKICAgICBV
bmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8TWVkaWFLZXlzPiBtX21lZGlhS2V5czsKICAgICBib29sIG1fYXR0YWNoaW5n
TWVkaWFLZXlzIHsgZmFsc2UgfTsKICAgICBib29sIG1fcGxheWJhY2tCbG9ja2VkV2FpdGluZ0Zv
cktleSB7IGZhbHNlIH07Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9lbmNyeXB0ZWRN
ZWRpYVF1ZXVlOworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX2VuY3J5cHRlZE1lZGlhUXVldWU7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IGY3ZDNhYTY3N2RhMS4uMWQwMzQ2
MWM3NGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcApAQCAtNzUs
NiArNzUsNyBAQCBSZWY8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudAogCiBNZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
KERvY3VtZW50JiBkb2N1bWVudCwgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICA6IEhU
TUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCisgICAgLCBtX3Rhc2tRdWV1ZSgmZG9jdW1l
bnQpCiAgICAgLCBtX21lZGlhRWxlbWVudChtYWtlV2Vha1B0cigmZWxlbWVudCkpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgKaW5kZXggY2UyNjYxNWYzZDA4Li43ZTQy
YTRkMzViOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgKQEAgLTk3LDcg
Kzk3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbj4gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKIAotICAgIEdlbmVyaWNUYXNrUXVl
dWU8VGltZXI+IG1fdGFza1F1ZXVlOworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Rhc2tRdWV1
ZTsKICAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fbWVkaWFFbGVtZW50OwogICAgIElu
dFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwogICAgIGludCBtX2ZvbnRTaXplIHsgMCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmZXJyYWJsZVRhc2suaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmVycmFibGVUYXNrLmgKaW5kZXggNjYxODg3Yzc4MjkwLi5k
Y2JjNzMyNGMwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmVycmFi
bGVUYXNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmZXJyYWJsZVRhc2suaApA
QCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkdl
bmVyaWNUYXNrUXVldWUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODAsNCArODMsNDggQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OwogfTsKIAorLy8gU2ltaWxhciB0byBEZWZlcnJhYmxl
VGFzayBidXQgYmFzZWQgb24gdGhlIEhUTUwgZXZlbnQgbG9vcC4KK2NsYXNzIEV2ZW50TG9vcERl
ZmVycmFibGVUYXNrIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEV2ZW50TG9vcERlZmVycmFibGVU
YXNrPiwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBF
dmVudExvb3BEZWZlcnJhYmxlVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQor
ICAgICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCisgICAgeworICAg
IH0KKworICAgIHVzaW5nIFRhc2tGdW5jdGlvbiA9IEZ1bmN0aW9uPHZvaWQoKT47CisgICAgdm9p
ZCBzY2hlZHVsZVRhc2soVGFza0Z1bmN0aW9uJiYgdGFzaykKKyAgICB7CisgICAgICAgIGlmICht
X2lzQ2xvc2VkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgY2FuY2VsVGFzaygpOworCisgICAgICAgIG1fcGVuZGluZ1Rhc2sgPSB0
cnVlOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV2ZW50TG9vcCgpLnF1ZXVl
VGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgQVNTRVJUKHdlYWtUaGlzLT5t
X3BlbmRpbmdUYXNrKTsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdUYXNrID0gZmFs
c2U7CisgICAgICAgICAgICB0YXNrKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHZvaWQg
Y2xvc2UoKQorICAgIHsKKyAgICAgICAgY2FuY2VsVGFzaygpOworICAgICAgICBtX2lzQ2xvc2Vk
ID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIGNhbmNlbFRhc2soKQorICAgIHsKKyAgICAgICAg
d2Vha1B0ckZhY3RvcnkoKS5yZXZva2VBbGwoKTsKKyAgICAgICAgbV9wZW5kaW5nVGFzayA9IGZh
bHNlOworICAgIH0KKyAgICBib29sIGhhc1BlbmRpbmdUYXNrKCkgY29uc3QgeyByZXR1cm4gbV9w
ZW5kaW5nVGFzazsgfQorCitwcml2YXRlOgorICAgIGJvb2wgbV9wZW5kaW5nVGFzayB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKK307CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaAppbmRleCA2ZWFkNDM1M2RjOTkuLjRkMmQ1
ZjNiZDczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tR
dWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaApA
QCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkNvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CkBAIC0xNDIsNCArMTQ1LDQ3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKIH07CiAKKy8vIFNpbWls
YXIgdG8gR2VuZXJpY1Rhc2tRdWV1ZSBidXQgYmFzZWQgb24gdGhlIEhUTUwgZXZlbnQgbG9vcC4K
K2NsYXNzIEV2ZW50TG9vcFRhc2tRdWV1ZSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxFdmVudExv
b3BUYXNrUXVldWU+LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeworcHVibGlj
OgorICAgIEV2ZW50TG9vcFRhc2tRdWV1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQorICAgICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCisgICAgeyB9
CisKKyAgICB1c2luZyBUYXNrRnVuY3Rpb24gPSBGdW5jdGlvbjx2b2lkKCk+OworICAgIHZvaWQg
ZW5xdWV1ZVRhc2soVGFza0Z1bmN0aW9uJiYgdGFzaykKKyAgICB7CisgICAgICAgIGlmIChtX2lz
Q2xvc2VkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgKyttX3BlbmRpbmdUYXNrczsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7Cisg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIEFTU0VSVCh3ZWFrVGhpcy0+bV9wZW5kaW5nVGFza3MpOworICAgICAgICAgICAgLS13
ZWFrVGhpcy0+bV9wZW5kaW5nVGFza3M7CisgICAgICAgICAgICB0YXNrKCk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGJvb2wgaGFzUGVuZGluZ1Rhc2tzKCkgY29uc3QgeyByZXR1cm4gbV9w
ZW5kaW5nVGFza3M7IH0KKyAgICBib29sIGlzQ2xvc2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Ns
b3NlZDsgfQorCisgICAgdm9pZCBjbG9zZSgpCisgICAgeworICAgICAgICBjYW5jZWxBbGxUYXNr
cygpOworICAgICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIGNhbmNl
bEFsbFRhc2tzKCkKKyAgICB7CisgICAgICAgIHdlYWtQdHJGYWN0b3J5KCkucmV2b2tlQWxsKCk7
CisgICAgICAgIG1fcGVuZGluZ1Rhc2tzID0gMDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdW5z
aWduZWQgbV9wZW5kaW5nVGFza3MgeyAwIH07CisgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2Ug
fTsKK307CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430410</attachid>
            <date>2021-06-02 14:44:12 -0700</date>
            <delta_ts>2021-06-02 17:38:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226543-20210602144411.patch</filename>
            <type>text/plain</type>
            <size>27089</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVmNjRhZDhiYTc3Yjk2
NTZhZGFhMTJiNzk2MGNjMzBmMmE0MzVmZi4uMGE5MzExODVkNDdkNGY1MjA3YjBmMzM5NmQ4OTg3
NmVhNzk5NjcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA2LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBtZWRpYSBjb2RlIHRv
IHRoZSBIVE1MIGV2ZW50IGxvb3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjU0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBvcnQgbWVkaWEgY29kZSB0byB0aGUgSFRNTCBldmVudCBsb29wIHNvIHRo
YXQgZXZlbnQgcHJvY2Vzc2luZyBvcmRlciBpcyBjb25zaXN0ZW50CisgICAgICAgIHdpdGggbm9u
LW1lZGlhIHJlbGF0ZWQgZXZlbnRzLiBUbyBhdm9pZCBoYXZpbmcgYSB2ZXJ5IGxhcmdlIHBhdGNo
LCBJIG1hZGUgdGhlIGZvbGxvd2luZworICAgICAgICBjaGFuZ2VzOgorICAgICAgICAtIFVwZGF0
ZSBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgdG8gYmUgYmFzZWQgb24gdGhlIEhUTUwgZXZl
bnQgbG9vcCBpbnN0ZWFkIG9mIGEKKyAgICAgICAgICBnbG9iYWwgVGltZXIuCisgICAgICAgIC0g
SW50cm9kdWNlIGEgRXZlbnRMb29wRGVmZXJyYWJsZVRhc2sgd2hpY2ggaGFzIHRoZSBzYW1lIEFQ
SSBhcyBEZWZlcnJhYmxlVGFzazxUaW1lcj4gYnV0CisgICAgICAgICAgdXNlcyB0aGUgSFRNTCBl
dmVudCBsb29wIGluc3RlYWQgb2YgYSBnbG9iYWwgVGltZXIuIFBvcnQgbWVkaWEgY29kZSB0byB1
c2UKKyAgICAgICAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBpbnN0ZWFkIG9mIERlZmVycmFi
bGVUYXNrLgorICAgICAgICAtIEludHJvZHVjZSBhbiBFdmVudExvb3BUYXNrUXVldWUgd2hpY2gg
aGFzIHRoZSBzYW1lIEFQSSBhcyBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPgorICAgICAgICAgIGJ1
dCB1c2VzIHRoZSBIVE1MIGV2ZW50IGxvb3AgaW5zdGVhZCBvZiBhIGdsb2JhbCBUaW1lci4gUG9y
dCBtZWRpYSBjb2RlIHRvIHVzZQorICAgICAgICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBpbnN0ZWFk
IG9mIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+LgorCisgICAgICAgIFRoaXMgZWZmZWN0aXZlbHkg
cG9ydHMgb3VyIGVudGlyZSBtZWRpYSBjb2RlIHRvIHRoZSBIVE1MIGV2ZW50IGxvb3AuIEl0IGFs
bG93cyBuZXcKKyAgICAgICAgbWVkaWEgY29kZSB0byB1c2UgdGhlIEhUTUwgZXZlbnQgbG9vcCAq
ZGlyZWN0bHkqIHdpdGhvdXQgZmVhciBvZiBvcmRlcmluZyBpc3N1ZXMuIEl0IGFsc28KKyAgICAg
ICAgYWxsb3dzIHVzIHRvIHJlZmFjdG9yIGV4aXN0aW5nIG1lZGlhIGNvZGUgdG8gdXNlIHRoZSBI
VE1MIGV2ZW50IGxvb3AgKmRpcmVjdGx5KiB3aGVuIHBvc3NpYmxlLAorICAgICAgICBpbiBhbiBp
bmNyZW1lbnRhbCBmYXNoaW9uLCB3aXRob3V0IGNhdXNpbmcgb3JkZXJpbmcgaXNzdWVzLgorCisg
ICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVBsYXliYWNrOjpS
ZW1vdGVQbGF5YmFjayk6CisgICAgICAgICogTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQ
bGF5YmFjay5oOgorICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjpE
b2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIpOgorICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVu
dFRpbWVsaW5lc0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIu
Y3BwOgorICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICAqIGRvbS9H
ZW5lcmljRXZlbnRRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluVGhyZWFkR2VuZXJp
Y0V2ZW50UXVldWU6Ok1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmVucXVldWVFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNsb3NlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6Y2FuY2VsQWxsRXZlbnRzKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6aGFzUGVuZGlu
Z0V2ZW50c09mVHlwZSBjb25zdCk6CisgICAgICAgICogZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmg6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0RlZmVycmFibGVUYXNrLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWZlcnJhYmxlVGFza0Jhc2U6OmNsb3NlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRlZmVycmFibGVUYXNrQmFzZTo6Y2FuY2VsVGFzayk6CisgICAgICAgIChXZWJDb3Jl
OjpEZWZlcnJhYmxlVGFza0Jhc2U6Omhhc1BlbmRpbmdUYXNrIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRlZmVycmFibGVUYXNrQmFzZTo6aXNDbG9zZWQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGVmZXJyYWJsZVRhc2tCYXNlOjpzZXRIYXNQZW5kaW5nVGFzayk6CisgICAgICAgICog
cGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY1Rh
c2tRdWV1ZUJhc2U6Omhhc1BlbmRpbmdUYXNrcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW5lcmljVGFza1F1ZXVlQmFzZTo6aXNDbG9zZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
R2VuZXJpY1Rhc2tRdWV1ZUJhc2U6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNU
YXNrUXVldWVCYXNlOjpjYW5jZWxBbGxUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmlj
VGFza1F1ZXVlQmFzZTo6aW5jcmVtZW50UGVuZGluZ1Rhc2tzKToKKyAgICAgICAgKFdlYkNvcmU6
OkdlbmVyaWNUYXNrUXVldWVCYXNlOjpkZWNyZW1lbWVudFBlbmRpbmdUYXNrcyk6CisKIDIwMjEt
MDYtMDIgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBw
b3J0IGZvciAicmVsYXRpdmUgY29sb3Igc3ludGF4IiBmb3IgY29sb3IoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKaW5kZXggODllMjk5NjZiOTVkMjc1YzNkZmRkYTMzNjdhZGExMGY5MDAwNmRkZC4uMzM3MDIz
ZDljMTUyZDhlZjQxMzdhYjhmM2Y3YzlhYWUxZjQzNDA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBA
IC00NjEsNiArNDYxLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIGRvbS9FdmVudExpc3RlbmVyLmgKICAgICBkb20vRXZlbnRMaXN0ZW5lck1hcC5oCiAgICAg
ZG9tL0V2ZW50TGlzdGVuZXJPcHRpb25zLmgKKyAgICBkb20vRXZlbnRMb29wLmgKICAgICBkb20v
RXZlbnRNb2RpZmllckluaXQuaAogICAgIGRvbS9FdmVudE5hbWVzLmgKICAgICBkb20vRXZlbnRR
dWV1ZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJh
Y2svUmVtb3RlUGxheWJhY2suY3BwCmluZGV4IGQxYmIwNDlkNGIyMThmNTI4MWYyMTAwZmM4OThj
NTFiODhhM2YwYzkuLjFiOTU2NTJiMzk5OTJmNGY3OWQ1ZjVlZWVhMzc3OWQ2YjUwYTA2ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxh
eWJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVt
b3RlUGxheWJhY2suY3BwCkBAIC01MSw2ICs1MSw3IEBAIFJlbW90ZVBsYXliYWNrOjpSZW1vdGVQ
bGF5YmFjayhIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAgIDogV2ViQ29yZTo6QWN0aXZl
RE9NT2JqZWN0KGVsZW1lbnQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICwgbV9tZWRp
YUVsZW1lbnQobWFrZVdlYWtQdHIoZWxlbWVudCkpCiAgICAgLCBtX2V2ZW50UXVldWUoTWFpblRo
cmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQorICAgICwgbV90YXNrUXVldWUo
ZWxlbWVudC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVk
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmgKaW5kZXggMmQyNzM2MmU4YjQ5MjMyNmU2ZWY4ZGIwMDgyNDRhOWE3
NjM5MjViMi4uMTY5OWRiYmFjN2M1MDM3N2RiZjE0ODQzY2I3MjlmNDZiMWQ1OGQzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFj
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxh
eWJhY2suaApAQCAtMTAxLDcgKzEwMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2F2YWlsYWJs
ZSB7IGZhbHNlIH07CiAKICAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVl
PiBtX2V2ZW50UXVldWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV90YXNrUXVldWU7
CisgICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fdGFza1F1ZXVlOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
LmNwcAppbmRleCA5MzU3NTg2N2E0OTM2N2E4NDM1MjY2MjMxNmI2ZTc5ZmI0YmU0ZTA4Li45OTQw
OTFhZmM1NTU4OTcxNjdkNTFhYjAxMjRhNmI5Nzg4MGI2N2UwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcApA
QCAtNDMsNyArNDMsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBEb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXI6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcihEb2N1bWVudCYgZG9jdW1l
bnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgIDogbV9jdXJyZW50VGltZUNsZWFy
aW5nVGFza1F1ZXVlKCZkb2N1bWVudCkKKyAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiAg
ICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpIHsKICAgICAgICAgaWYgKHBhZ2Ut
PnNldHRpbmdzKCkuaGlkZGVuUGFnZUNTU0FuaW1hdGlvblN1c3BlbnNpb25FbmFibGVkKCkgJiYg
IXBhZ2UtPmlzVmlzaWJsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oCmluZGV4IDFhYjUyYWZkYzAwYjc1YzVmYjQy
YzAwYjY5NjJiYzUwOGNhY2Y5NmEuLjQyMTI3OGUzMjNhY2FiOGZmMTJlMWY2YjM1NTc3ZjQ4Zjc2
Y2E2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVs
aW5lc0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRU
aW1lbGluZXNDb250cm9sbGVyLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IG1heWJlQ2xlYXJDYWNoZWRDdXJyZW50VGltZSgpOwogCiAgICAgV2Vha0hhc2hTZXQ8RG9jdW1l
bnRUaW1lbGluZT4gbV90aW1lbGluZXM7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9j
dXJyZW50VGltZUNsZWFyaW5nVGFza1F1ZXVlOworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX2N1
cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWU7CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAg
ICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25kczo6TWFya2FibGVUcmFpdHM+IG1fY2FjaGVkQ3Vy
cmVudFRpbWU7CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IGMzZGRkMWU3ZmRlZTQyOTY4NWZkZGZi
ZDA3MDVlM2FjMGRhOTQwOWYuLjk3NDZjNjVhMTgzNjBkZWVjZDJjNzk0MGRhOTJmMzYwYjljNDhi
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDgsNiAr
NDgsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBGdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudCB7
IGRvY3VtZW50IH0KKyAgICAsIG1fZnVsbHNjcmVlblRhc2tRdWV1ZSB7ICZkb2N1bWVudCB9CiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoTG9nZ2VySGVs
cGVyOjp1bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxz
Y3JlZW5NYW5hZ2VyLmgKaW5kZXggNzJkYTM0ODYwNTYyYjM2Njc0YzU1MmI2NWE4YjI2ZDBiNmQx
NTg2OS4uNGJkMWEzZThiZWZiOGU5ZjIwMTY3NWRkYzI0NzA4OTJiNzViMGJiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTExOSw3ICsxMTksNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxFbGVtZW50PiBtX2Z1bGxzY3JlZW5FbGVtZW50OwogICAgIFZlY3RvcjxS
ZWZQdHI8RWxlbWVudD4+IG1fZnVsbHNjcmVlbkVsZW1lbnRTdGFjazsKICAgICBXZWFrUHRyPFJl
bmRlckZ1bGxTY3JlZW4+IG1fZnVsbHNjcmVlblJlbmRlcmVyIHsgbnVsbHB0ciB9OwotICAgIEdl
bmVyaWNUYXNrUXVldWU8VGltZXI+IG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKKyAgICBFdmVudExv
b3BUYXNrUXVldWUgbV9mdWxsc2NyZWVuVGFza1F1ZXVlOwogICAgIERlcXVlPFJlZlB0cjxOb2Rl
Pj4gbV9mdWxsc2NyZWVuQ2hhbmdlRXZlbnRUYXJnZXRRdWV1ZTsKICAgICBEZXF1ZTxSZWZQdHI8
Tm9kZT4+IG1fZnVsbHNjcmVlbkVycm9yRXZlbnRUYXJnZXRRdWV1ZTsKICAgICBMYXlvdXRSZWN0
IG1fc2F2ZWRQbGFjZWhvbGRlckZyYW1lUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2
ZW50UXVldWUuY3BwCmluZGV4IGNmMzZkMTIxYzYwZWM5YTg1ODUwZDIwZTQ1MzRhM2E0ZTdlZjA0
M2MuLmNiNDhkZDhkNjZmYjkxYmIwYjk0YTg2NmRkM2E3OGNhYTliNjJiN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcApAQCAtMjgsMTAgKzI4LDEyIEBACiAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRM
b29wLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5j
bHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCkBAIC00MCwxMyArNDIsMTIgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpNYWluVGhyZWFkR2VuZXJp
Y0V2ZW50UXVldWUoRXZlbnRUYXJnZXQmIG93bmVyKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KG93
bmVyLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1fb3duZXIob3duZXIpCi0gICAg
LCBtX3Rhc2tRdWV1ZShtYWtlVW5pcXVlUmVmPEdlbmVyaWNUYXNrUXVldWU8VGltZXI+PigpKQog
ewogfQogCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KFJl
ZlB0cjxFdmVudD4mJiBldmVudCkKIHsKLSAgICBpZiAobV9pc0Nsb3NlZCkKKyAgICBpZiAobV9p
c0Nsb3NlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoZXZlbnQtPnRhcmdldCgpID09ICZtX293bmVyKQpAQCAtNTQsMTAgKzU1LDEwIEBA
IHZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUmVmUHRyPEV2
ZW50PiYmIGV2ZW50KQogCiAgICAgbV9wZW5kaW5nRXZlbnRzLmFwcGVuZChXVEZNb3ZlKGV2ZW50
KSk7CiAKLSAgICBpZiAoaXNTdXNwZW5kZWRPclBhdXNlZEJ5Q2xpZW50KCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJk1haW5UaHJl
YWRHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOworICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1l
ZGlhRWxlbWVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGlm
ICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kaXNwYXRjaE9uZUV2ZW50KCk7Cisg
ICAgfSk7CiB9CiAKIHZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpkaXNwYXRjaE9u
ZUV2ZW50KCkKQEAgLTc4LDE0ICs3OSwxMiBAQCB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRR
dWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCgpCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1
ZTo6Y2xvc2UoKQogewogICAgIG1faXNDbG9zZWQgPSB0cnVlOwotCi0gICAgbV90YXNrUXVldWUt
PmNsb3NlKCk7Ci0gICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFyKCk7CisgICAgY2FuY2VsQWxsRXZl
bnRzKCk7CiB9CiAKIHZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxBbGxF
dmVudHMoKQogewotICAgIG1fdGFza1F1ZXVlLT5jYW5jZWxBbGxUYXNrcygpOworICAgIHdlYWtQ
dHJGYWN0b3J5KCkucmV2b2tlQWxsKCk7CiAgICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFyKCk7CiB9
CiAKQEAgLTk2LDUxICs5NSw3IEBAIGJvb2wgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogCiBib29sIE1haW5UaHJlYWRHZW5lcmljRXZlbnRR
dWV1ZTo6aGFzUGVuZGluZ0V2ZW50c09mVHlwZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlKSBjb25z
dAogewotICAgIGZvciAoYXV0byYgZXZlbnQgOiBtX3BlbmRpbmdFdmVudHMpIHsKLSAgICAgICAg
aWYgKGV2ZW50LT50eXBlKCkgPT0gdHlwZSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50
UXVldWU6OnNldFBhdXNlZChib29sIHNob3VsZFBhdXNlKQotewotICAgIGlmIChtX2lzUGF1c2Vk
QnlDbGllbnQgPT0gc2hvdWxkUGF1c2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNQYXVz
ZWRCeUNsaWVudCA9IHNob3VsZFBhdXNlOwotICAgIGlmIChzaG91bGRQYXVzZSkKLSAgICAgICAg
bV90YXNrUXVldWUtPmNhbmNlbEFsbFRhc2tzKCk7Ci0gICAgZWxzZQotICAgICAgICByZXNjaGVk
dWxlQWxsRXZlbnRzSWZOZWVkZWQoKTsKLX0KLQotdm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50
UXVldWU6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKLXsKLSAgICBpZiAobV9pc1N1c3Bl
bmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7Ci0gICAg
bV90YXNrUXVldWUtPmNhbmNlbEFsbFRhc2tzKCk7Ci19Ci0KLXZvaWQgTWFpblRocmVhZEdlbmVy
aWNFdmVudFF1ZXVlOjpyZXN1bWUoKQotewotICAgIGlmICghbV9pc1N1c3BlbmRlZCkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwotICAgIHJlc2NoZWR1bGVB
bGxFdmVudHNJZk5lZWRlZCgpOwotfQotCi12b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1
ZTo6cmVzY2hlZHVsZUFsbEV2ZW50c0lmTmVlZGVkKCkKLXsKLSAgICBpZiAoaXNTdXNwZW5kZWRP
clBhdXNlZEJ5Q2xpZW50KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX3BlbmRpbmdFdmVudHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fdGFza1F1
ZXVlLT5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJk1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6
ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOworICAgIHJldHVybiBXVEY6OmFueU9mKG1fcGVuZGlu
Z0V2ZW50cywgWyZdKGF1dG8mIGV2ZW50KSB7IHJldHVybiBldmVudC0+dHlwZSgpID09IHR5cGU7
IH0pOwogfQogCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6c3RvcCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCmluZGV4IDVhM2U0ZjUzMDI5YzgxZGMxNjQy
MGM1ZmYyYjhmMzY2M2FkZmFlNTUuLjUzOGRlYzgxM2Q3MDhlM2FjMzkxNWY1MGU5NWRhMWNjODkw
ODMyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCkBAIC0yNiwyMiAr
MjYsMjAgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0j
aW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9VbmlxdWVSZWYuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50OwogY2xhc3MgRXZlbnRUYXJnZXQ7Ci1jbGFzcyBUaW1l
cjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLS8vIEFsbCBpbnN0YW5jZXMgb2Yg
TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIHVzZSBhIHNoYXJlZCBUaW1lciBmb3IgZGlzcGF0
Y2hpbmcgZXZlbnRzLgogLy8gRklYTUU6IFdlIHNob3VsZCBwb3J0IGNhbGwgc2l0ZXMgdG8gdGhl
IEhUTUwgZXZlbnQgbG9vcCBhbmQgcmVtb3ZlIHRoaXMgY2xhc3MuCi1jbGFzcyBNYWluVGhyZWFk
R2VuZXJpY0V2ZW50UXVldWUgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIE1haW5U
aHJlYWRHZW5lcmljRXZlbnRRdWV1ZSA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU+IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgVW5pcXVlUmVmPE1haW5UaHJl
YWRHZW5lcmljRXZlbnRRdWV1ZT4gY3JlYXRlKEV2ZW50VGFyZ2V0Jik7CkBAIC01MiwxMCArNTAs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWxBbGxFdmVudHMoKTsKICAgICBib29sIGhhc1Bl
bmRpbmdFdmVudHNPZlR5cGUoY29uc3QgQXRvbVN0cmluZyYpIGNvbnN0OwogCi0gICAgdm9pZCBz
ZXRQYXVzZWQoYm9vbCk7Ci0KLSAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgeyByZXR1cm4g
bV9pc1N1c3BlbmRlZDsgfQotCiAgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsK
IAogcHJpdmF0ZToKQEAgLTY2LDE4ICs2MCwxMCBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZp
bmFsOwotICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsKLSAgICB2
b2lkIHJlc3VtZSgpIGZpbmFsOwotCi0gICAgdm9pZCByZXNjaGVkdWxlQWxsRXZlbnRzSWZOZWVk
ZWQoKTsKLSAgICBib29sIGlzU3VzcGVuZGVkT3JQYXVzZWRCeUNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNTdXNwZW5kZWQgfHwgbV9pc1BhdXNlZEJ5Q2xpZW50OyB9CiAKICAgICBFdmVudFRh
cmdldCYgbV9vd25lcjsKLSAgICBVbmlxdWVSZWY8R2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4+IG1f
dGFza1F1ZXVlOwogICAgIERlcXVlPFJlZlB0cjxFdmVudD4+IG1fcGVuZGluZ0V2ZW50czsKICAg
ICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1BhdXNlZEJ5Q2xpZW50
IHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9pc0ZpcmluZ0V2ZW50IHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCmluZGV4IDdmN2U4ZjJmOTcxYmUwYzkxYzI5MmI4NjNkNGU5NTk0MmZi
YTk3OTYuLmU1YjRmZmZhYzZjOTY0MmIwMDlhM2ZmZDBkMmI1ODY2Zjg0M2NhYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMzk0LDcgKzM5NCwyMSBAQCBI
VE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgICwgbV9zY2FuVGltZXIoKnRoaXMsICZIVE1MTWVk
aWFFbGVtZW50OjpzY2FuVGltZXJGaXJlZCkKICAgICAsIG1fcGxheWJhY2tDb250cm9sc01hbmFn
ZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVyKCp0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cGxh
eWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVyRmlyZWQpCiAgICAg
LCBtX3NlZWtUb1BsYXliYWNrUG9zaXRpb25FbmRlZFRpbWVyKCp0aGlzLCAmSFRNTE1lZGlhRWxl
bWVudDo6c2Vla1RvUGxheWJhY2tQb3NpdGlvbkVuZGVkVGltZXJGaXJlZCkKKyAgICAsIG1fY29u
ZmlndXJlVGV4dFRyYWNrc1Rhc2soJmRvY3VtZW50KQorICAgICwgbV9jaGVja1BsYXliYWNrVGFy
Z2V0Q29tcGF0YWJsaXR5VGFzaygmZG9jdW1lbnQpCisgICAgLCBtX3VwZGF0ZU1lZGlhU3RhdGVU
YXNrKCZkb2N1bWVudCkKKyAgICAsIG1fbWVkaWFFbmdpbmVVcGRhdGVkVGFzaygmZG9jdW1lbnQp
CiAgICAgLCBtX3VwZGF0ZVBsYXlTdGF0ZVRhc2soKnRoaXMpCisgICAgLCBtX3Jlc3VtZVRhc2tR
dWV1ZSgmZG9jdW1lbnQpCisgICAgLCBtX3NlZWtUYXNrUXVldWUoJmRvY3VtZW50KQorICAgICwg
bV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zUXVldWUoJmRvY3Vt
ZW50KQorICAgICwgbV9idWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkUXVldWUoJmRvY3VtZW50KQor
ICAgICwgbV9wcm9taXNlVGFza1F1ZXVlKCZkb2N1bWVudCkKKyAgICAsIG1fcGF1c2VBZnRlckRl
dGFjaGVkVGFza1F1ZXVlKCZkb2N1bWVudCkKKyAgICAsIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNr
UXVldWUoJmRvY3VtZW50KQorICAgICwgbV92aXNpYmlsaXR5Q2hhbmdlVGFza1F1ZXVlKCZkb2N1
bWVudCkKKyAgICAsIG1fZnVsbHNjcmVlblRhc2tRdWV1ZSgmZG9jdW1lbnQpCisgICAgLCBtX3Bs
YXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlKCZkb2N1bWVudCkKICAgICAsIG1fYXN5bmNFdmVu
dFF1ZXVlKE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKICAgICAs
IG1fbGFzdFRpbWVVcGRhdGVFdmVudE1vdmllVGltZShNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5p
dGVUaW1lKCkpCiAgICAgLCBtX2ZpcnN0VGltZVBsYXlpbmcodHJ1ZSkKQEAgLTQzNCw2ICs0NDgs
OSBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgICwgbV9wcm9jZXNzaW5nUHJlZmVyZW5j
ZUNoYW5nZShmYWxzZSkKICAgICAsIG1fc2hvdWxkQXVkaW9QbGF5YmFja1JlcXVpcmVVc2VyR2Vz
dHVyZShkb2N1bWVudC50b3BEb2N1bWVudCgpLmF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0
dXJlKCkgJiYgIXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgLCBtX3Nob3Vs
ZFZpZGVvUGxheWJhY2tSZXF1aXJlVXNlckdlc3R1cmUoZG9jdW1lbnQudG9wRG9jdW1lbnQoKS52
aWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgpICYmICFwcm9jZXNzaW5nVXNlckdlc3R1
cmVGb3JNZWRpYSgpKQorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgLCBtX2VuY3J5
cHRlZE1lZGlhUXVldWUoJmRvY3VtZW50KQorI2VuZGlmCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKICAgICAsIG1fcmVtb3RlKFJlbW90ZVBsYXliYWNrOjpjcmVhdGUoKnRo
aXMpKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGJi
ZGRiYmNiNTQ5ZTA4MzEyZmFkMDk1NjExNGVhZmMzODA3ZTM1YjIuLjU0MTA1ZDUwNmJmY2FlMjkx
Y2EzNWRhZDM4YTdiYmNkNzJjMzBkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC05NDQsMjEgKzk0NCwyMSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fc2NhblRp
bWVyOwogICAgIFRpbWVyIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0
aW9uc1RpbWVyOwogICAgIFRpbWVyIG1fc2Vla1RvUGxheWJhY2tQb3NpdGlvbkVuZGVkVGltZXI7
Ci0gICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fY29uZmlndXJlVGV4dFRyYWNrc1Rhc2s7Ci0g
ICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fY2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0
eVRhc2s7Ci0gICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fdXBkYXRlTWVkaWFTdGF0ZVRhc2s7
Ci0gICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fbWVkaWFFbmdpbmVVcGRhdGVkVGFzazsKKyAg
ICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX2NvbmZpZ3VyZVRleHRUcmFja3NUYXNrOworICAg
IEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fY2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0
eVRhc2s7CisgICAgRXZlbnRMb29wRGVmZXJyYWJsZVRhc2sgbV91cGRhdGVNZWRpYVN0YXRlVGFz
azsKKyAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX21lZGlhRW5naW5lVXBkYXRlZFRhc2s7
CiAgICAgRGVmZXJyYWJsZVRhc2s8SFRNTE1lZGlhRWxlbWVudD4gbV91cGRhdGVQbGF5U3RhdGVU
YXNrOwotICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBtX3Jlc3VtZVRhc2tRdWV1ZTsKLSAgICBE
ZWZlcnJhYmxlVGFzazxUaW1lcj4gbV9zZWVrVGFza1F1ZXVlOwotICAgIERlZmVycmFibGVUYXNr
PFRpbWVyPiBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNRdWV1
ZTsKLSAgICBEZWZlcnJhYmxlVGFzazxUaW1lcj4gbV9idWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2Vk
UXVldWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9wcm9taXNlVGFza1F1ZXVlOwot
ICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVl
OwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVl
dWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV92aXNpYmlsaXR5Q2hhbmdlVGFza1F1
ZXVlOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsK
LSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1
ZXVlOworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fcmVzdW1lVGFza1F1ZXVlOworICAg
IEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fc2Vla1Rhc2tRdWV1ZTsKKyAgICBFdmVudExvb3BE
ZWZlcnJhYmxlVGFzayBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlv
bnNRdWV1ZTsKKyAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX2J1ZmZlcmVkVGltZVJhbmdl
c0NoYW5nZWRRdWV1ZTsKKyAgICBFdmVudExvb3BUYXNrUXVldWUgbV9wcm9taXNlVGFza1F1ZXVl
OworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3BhdXNlQWZ0ZXJEZXRhY2hlZFRhc2tRdWV1ZTsK
KyAgICBFdmVudExvb3BUYXNrUXVldWUgbV9yZXNvdXJjZVNlbGVjdGlvblRhc2tRdWV1ZTsKKyAg
ICBFdmVudExvb3BUYXNrUXVldWUgbV92aXNpYmlsaXR5Q2hhbmdlVGFza1F1ZXVlOworICAgIEV2
ZW50TG9vcFRhc2tRdWV1ZSBtX2Z1bGxzY3JlZW5UYXNrUXVldWU7CisgICAgRXZlbnRMb29wVGFz
a1F1ZXVlIG1fcGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzUXVldWU7CiAgICAgUmVmUHRyPFRpbWVS
YW5nZXM+IG1fcGxheWVkVGltZVJhbmdlczsKICAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVy
aWNFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtMTE2Miw3ICsxMTYyLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWVkaWFLZXlzPiBt
X21lZGlhS2V5czsKICAgICBib29sIG1fYXR0YWNoaW5nTWVkaWFLZXlzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fcGxheWJhY2tCbG9ja2VkV2FpdGluZ0ZvcktleSB7IGZhbHNlIH07Ci0gICAgR2Vu
ZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9lbmNyeXB0ZWRNZWRpYVF1ZXVlOworICAgIEV2ZW50TG9v
cFRhc2tRdWV1ZSBtX2VuY3J5cHRlZE1lZGlhUXVldWU7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShX
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1l
bnQuY3BwCmluZGV4IGY3ZDNhYTY3N2RhMTU3ODkzNTRhYzlmYmNjMjE1NmFkMDlmZDdhZTYuLjFk
MDM0NjFjNzRiNWQwYTUyNTUyN2E0NThkMTZjZjljZWIxZDNlNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCkBAIC03NSw2ICs3NSw3IEBAIFJlZjxNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50CiAKIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1M
TWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1
bWVudCkKKyAgICAsIG1fdGFza1F1ZXVlKCZkb2N1bWVudCkKICAgICAsIG1fbWVkaWFFbGVtZW50
KG1ha2VXZWFrUHRyKCZlbGVtZW50KSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQuaAppbmRleCBjZTI2NjE1ZjNkMDhiNGZiMTI3OWVlNzkwMDg3Yjc4YTA3YzA3MDA5Li43
ZTQyYTRkMzViOWNlZGRiNjUxMGIzMmQ5YzU5ZTliYTk2Y2RiNzAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudC5oCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VGV4dFRyYWNrUmVwcmVzZW50YXRpb24+IG1fdGV4dFRyYWNrUmVwcmVz
ZW50YXRpb247CiAKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Rhc2tRdWV1ZTsKKyAg
ICBFdmVudExvb3BUYXNrUXVldWUgbV90YXNrUXVldWU7CiAgICAgV2Vha1B0cjxIVE1MTWVkaWFF
bGVtZW50PiBtX21lZGlhRWxlbWVudDsKICAgICBJbnRSZWN0IG1fdmlkZW9EaXNwbGF5U2l6ZTsK
ICAgICBpbnQgbV9mb250U2l6ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RlZmVycmFibGVUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZlcnJh
YmxlVGFzay5oCmluZGV4IDY2MTg4N2M3ODI5MDA1NDQ0NTYwMDY2YzU4ZTQ3MzFjZWJkYTA0ODEu
LjU5YTc4YTUzNmE5MWRlOWM1NzJmNjEwMDg3Y2ZiZGZkNzVmMzg2MjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmVycmFibGVUYXNrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGVmZXJyYWJsZVRhc2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw1OSArMjUsOTUgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUg
IkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBEZWZlcnJhYmxlVGFzayA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxEZWZlcnJhYmxlVGFzazxUPj4geworY2xhc3MgRGVmZXJyYWJsZVRhc2tCYXNlIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPERlZmVycmFibGVUYXNrQmFzZT4gewogcHVibGljOgotICAgIERl
ZmVycmFibGVUYXNrKCkKLSAgICAgICAgOiBtX2Rpc3BhdGNoZXIoKQorICAgIHZvaWQgY2xvc2Uo
KQogICAgIHsKKyAgICAgICAgY2FuY2VsVGFzaygpOworICAgICAgICBtX2lzQ2xvc2VkID0gdHJ1
ZTsKICAgICB9CiAKLSAgICBEZWZlcnJhYmxlVGFzayhUJiB0KQotICAgICAgICA6IG1fZGlzcGF0
Y2hlcigmdCkKKyAgICB2b2lkIGNhbmNlbFRhc2soKQogICAgIHsKKyAgICAgICAgd2Vha1B0ckZh
Y3RvcnkoKS5yZXZva2VBbGwoKTsKKyAgICAgICAgbV9oYXNQZW5kaW5nVGFzayA9IGZhbHNlOwog
ICAgIH0KIAotICAgIHR5cGVkZWYgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiBUYXNrRnVuY3Rpb247
CisgICAgYm9vbCBoYXNQZW5kaW5nVGFzaygpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGluZ1Rh
c2s7IH0KKworcHJvdGVjdGVkOgorICAgIH5EZWZlcnJhYmxlVGFza0Jhc2UoKSA9IGRlZmF1bHQ7
CisgICAgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7IH0KKyAgICB2
b2lkIHNldEhhc1BlbmRpbmdUYXNrKGJvb2wgaGFzUGVuZGluZ1Rhc2spIHsgbV9oYXNQZW5kaW5n
VGFzayA9IGhhc1BlbmRpbmdUYXNrOyB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2hhc1BlbmRp
bmdUYXNrIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworfTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBEZWZlcnJhYmxlVGFzayA6IHB1YmxpYyBEZWZl
cnJhYmxlVGFza0Jhc2UgeworcHVibGljOgorICAgIERlZmVycmFibGVUYXNrKCkKKyAgICAgICAg
OiBtX2Rpc3BhdGNoZXIoKQorICAgIHsgfQorCisgICAgRGVmZXJyYWJsZVRhc2soVCYgdCkKKyAg
ICAgICAgOiBtX2Rpc3BhdGNoZXIoJnQpCisgICAgeyB9CiAKLSAgICB2b2lkIHNjaGVkdWxlVGFz
ayhUYXNrRnVuY3Rpb24mJiB0YXNrKQorICAgIHZvaWQgc2NoZWR1bGVUYXNrKEZ1bmN0aW9uPHZv
aWQoKT4mJiB0YXNrKQogICAgIHsKLSAgICAgICAgaWYgKG1faXNDbG9zZWQpCisgICAgICAgIGlm
IChpc0Nsb3NlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGNhbmNlbFRhc2so
KTsKIAotICAgICAgICBtX3BlbmRpbmdUYXNrID0gdHJ1ZTsKKyAgICAgICAgc2V0SGFzUGVuZGlu
Z1Rhc2sodHJ1ZSk7CiAgICAgICAgIG1fZGlzcGF0Y2hlci5wb3N0VGFzayhbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CiAgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEFTU0VS
VCh3ZWFrVGhpcy0+bV9wZW5kaW5nVGFzayk7Ci0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5k
aW5nVGFzayA9IGZhbHNlOworICAgICAgICAgICAgQVNTRVJUKHdlYWtUaGlzLT5oYXNQZW5kaW5n
VGFzaygpKTsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5zZXRIYXNQZW5kaW5nVGFzayhmYWxzZSk7
CiAgICAgICAgICAgICB0YXNrKCk7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHZvaWQgY2xv
c2UoKQorcHJpdmF0ZToKKyAgICBUYXNrRGlzcGF0Y2hlcjxUPiBtX2Rpc3BhdGNoZXI7Cit9Owor
CisvLyBTaW1pbGFyIHRvIERlZmVycmFibGVUYXNrIGJ1dCBiYXNlZCBvbiB0aGUgSFRNTCBldmVu
dCBsb29wLgorY2xhc3MgRXZlbnRMb29wRGVmZXJyYWJsZVRhc2sgOiBwdWJsaWMgRGVmZXJyYWJs
ZVRhc2tCYXNlLCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKK3B1YmxpYzoK
KyAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQorICAgICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCisgICAg
eyB9CisKKyAgICAvLyBGSVhNRTogUGFzcyBUYXNrU291cmNlIGluc3RlYWQgb2YgYXNzdW1pbmcg
VGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LgorICAgIHZvaWQgc2NoZWR1bGVUYXNrKEZ1bmN0aW9u
PHZvaWQoKT4mJiB0YXNrKQogICAgIHsKKyAgICAgICAgaWYgKGlzQ2xvc2VkKCkgfHwgIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBjYW5j
ZWxUYXNrKCk7Ci0gICAgICAgIG1faXNDbG9zZWQgPSB0cnVlOwotICAgIH0KIAotICAgIHZvaWQg
Y2FuY2VsVGFzaygpCi0gICAgewotICAgICAgICBDYW5NYWtlV2Vha1B0cjxEZWZlcnJhYmxlVGFz
azxUPj46OndlYWtQdHJGYWN0b3J5KCkucmV2b2tlQWxsKCk7Ci0gICAgICAgIG1fcGVuZGluZ1Rh
c2sgPSBmYWxzZTsKKyAgICAgICAgc2V0SGFzUGVuZGluZ1Rhc2sodHJ1ZSk7CisgICAgICAgIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6
Ok1lZGlhRWxlbWVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0YXNrID0gV1RG
TW92ZSh0YXNrKV0geworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICBBU1NFUlQod2Vha1RoaXMtPmhhc1BlbmRpbmdUYXNrKCkp
OworICAgICAgICAgICAgd2Vha1RoaXMtPnNldEhhc1BlbmRpbmdUYXNrKGZhbHNlKTsKKyAgICAg
ICAgICAgIHRhc2soKTsKKyAgICAgICAgfSk7CiAgICAgfQotICAgIGJvb2wgaGFzUGVuZGluZ1Rh
c2soKSBjb25zdCB7IHJldHVybiBtX3BlbmRpbmdUYXNrOyB9Ci0KLXByaXZhdGU6Ci0gICAgVGFz
a0Rpc3BhdGNoZXI8VD4gbV9kaXNwYXRjaGVyOwotICAgIGJvb2wgbV9wZW5kaW5nVGFzayB7IGZh
bHNlIH07Ci0gICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaAppbmRleCA2ZWFkNDM1M2RjOTkxODgy
MzE2ZGQzNWI5YzY4OWE5ZWZiNjA0MTczLi45NGIzM2NmNDZjYjM4ZTBjN2U3MDI3MzQyMjQ5YzU3
NjEzYmFmNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFz
a1F1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5o
CkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3
dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KQEAgLTc1LDggKzc4LDM1IEBA
IHByaXZhdGU6CiAgICAgRGVxdWU8RnVuY3Rpb248dm9pZCgpPj4gbV9wZW5kaW5nVGFza3MgV1RG
X0dVQVJERURfQllfTE9DSyhzX3NoYXJlZExvY2spOwogfTsKIAorY2xhc3MgR2VuZXJpY1Rhc2tR
dWV1ZUJhc2UgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R2VuZXJpY1Rhc2tRdWV1ZUJhc2U+IHsK
K3B1YmxpYzoKKyAgICBib29sIGhhc1BlbmRpbmdUYXNrcygpIGNvbnN0IHsgcmV0dXJuIG1fcGVu
ZGluZ1Rhc2tzOyB9CisgICAgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9z
ZWQ7IH0KKworICAgIHZvaWQgY2xvc2UoKQorICAgIHsKKyAgICAgICAgY2FuY2VsQWxsVGFza3Mo
KTsKKyAgICAgICAgbV9pc0Nsb3NlZCA9IHRydWU7CisgICAgfQorCisgICAgdm9pZCBjYW5jZWxB
bGxUYXNrcygpCisgICAgeworICAgICAgICB3ZWFrUHRyRmFjdG9yeSgpLnJldm9rZUFsbCgpOwor
ICAgICAgICBtX3BlbmRpbmdUYXNrcyA9IDA7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgfkdl
bmVyaWNUYXNrUXVldWVCYXNlKCkgPSBkZWZhdWx0OworICAgIHZvaWQgaW5jcmVtZW50UGVuZGlu
Z1Rhc2tzKCkgeyArK21fcGVuZGluZ1Rhc2tzOyB9CisgICAgdm9pZCBkZWNyZW1lbnRQZW5kaW5n
VGFza3MoKSB7IEFTU0VSVChtX3BlbmRpbmdUYXNrcyk7IC0tbV9wZW5kaW5nVGFza3M7IH0KKwor
cHJpdmF0ZToKKyAgICB1bnNpZ25lZCBtX3BlbmRpbmdUYXNrcyB7IDAgfTsKKyAgICBib29sIG1f
aXNDbG9zZWQgeyBmYWxzZSB9OworfTsKKwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBH
ZW5lcmljVGFza1F1ZXVlIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEdlbmVyaWNUYXNrUXVldWU8
VD4+IHsKK2NsYXNzIEdlbmVyaWNUYXNrUXVldWUgOiBwdWJsaWMgR2VuZXJpY1Rhc2tRdWV1ZUJh
c2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEdlbmVyaWNU
YXNrUXVldWUoKQpAQCAtOTMsOSArMTIzLDEwIEBAIHB1YmxpYzoKIAogICAgIGV4cGxpY2l0IEdl
bmVyaWNUYXNrUXVldWUoVCogdCkKICAgICAgICAgOiBtX2Rpc3BhdGNoZXIobWFrZVVuaXF1ZVJl
ZjxUYXNrRGlzcGF0Y2hlcjxUPj4odCkpCi0gICAgICAgICwgbV9pc0Nsb3NlZCghdCkKICAgICB7
CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIGlmICghdCkKKyAgICAg
ICAgICAgIGNsb3NlKCk7CiAgICAgfQogCiAgICAgfkdlbmVyaWNUYXNrUXVldWUoKQpAQCAtMTA0
LDQyICsxMzUsNDUgQEAgcHVibGljOgogICAgICAgICAgICAgbV9kaXNwYXRjaGVyLT5wb3N0VGFz
ayhbZGlzcGF0Y2hlciA9IFdURk1vdmUobV9kaXNwYXRjaGVyKV0geyB9KTsKICAgICB9CiAKLSAg
ICB0eXBlZGVmIFdURjo6RnVuY3Rpb248dm9pZCAoKT4gVGFza0Z1bmN0aW9uOwotCi0gICAgdm9p
ZCBlbnF1ZXVlVGFzayhUYXNrRnVuY3Rpb24mJiB0YXNrKQorICAgIHZvaWQgZW5xdWV1ZVRhc2so
RnVuY3Rpb248dm9pZCgpPiYmIHRhc2spCiAgICAgewotICAgICAgICBpZiAobV9pc0Nsb3NlZCkK
KyAgICAgICAgaWYgKGlzQ2xvc2VkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
KyttX3BlbmRpbmdUYXNrczsKKyAgICAgICAgaW5jcmVtZW50UGVuZGluZ1Rhc2tzKCk7CiAgICAg
ICAgIG1fZGlzcGF0Y2hlci0+cG9zdFRhc2soW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCB0YXNrID0gV1RGTW92ZSh0YXNrKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBBU1NFUlQod2Vha1RoaXMtPm1fcGVu
ZGluZ1Rhc2tzKTsKLSAgICAgICAgICAgIC0td2Vha1RoaXMtPm1fcGVuZGluZ1Rhc2tzOworICAg
ICAgICAgICAgd2Vha1RoaXMtPmRlY3JlbWVudFBlbmRpbmdUYXNrcygpOwogICAgICAgICAgICAg
dGFzaygpOwogICAgICAgICB9KTsKICAgICB9CiAKLSAgICB2b2lkIGNsb3NlKCkKLSAgICB7Ci0g
ICAgICAgIGNhbmNlbEFsbFRhc2tzKCk7Ci0gICAgICAgIG1faXNDbG9zZWQgPSB0cnVlOwotICAg
IH0KK3ByaXZhdGU6CisgICAgVW5pcXVlUmVmPFRhc2tEaXNwYXRjaGVyPFQ+PiBtX2Rpc3BhdGNo
ZXI7Cit9OwogCi0gICAgdm9pZCBjYW5jZWxBbGxUYXNrcygpCi0gICAgewotICAgICAgICBDYW5N
YWtlV2Vha1B0cjxHZW5lcmljVGFza1F1ZXVlPFQ+Pjo6d2Vha1B0ckZhY3RvcnkoKS5yZXZva2VB
bGwoKTsKLSAgICAgICAgbV9wZW5kaW5nVGFza3MgPSAwOwotICAgIH0KKy8vIFNpbWlsYXIgdG8g
R2VuZXJpY1Rhc2tRdWV1ZSBidXQgYmFzZWQgb24gdGhlIEhUTUwgZXZlbnQgbG9vcC4KK2NsYXNz
IEV2ZW50TG9vcFRhc2tRdWV1ZSA6IHB1YmxpYyBHZW5lcmljVGFza1F1ZXVlQmFzZSwgcHJpdmF0
ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CitwdWJsaWM6CisgICAgRXZlbnRMb29wVGFz
a1F1ZXVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgICAgIDogQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIoY29udGV4dCkKKyAgICB7IH0KIAotICAgIGJvb2wgaGFzUGVu
ZGluZ1Rhc2tzKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nVGFza3M7IH0KLSAgICBib29sIGlz
Q2xvc2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Nsb3NlZDsgfQorICAgIC8vIEZJWE1FOiBQYXNz
IGEgVGFza1NvdXJjZSBpbnN0ZWFkIG9mIGFzc3VtaW5nIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVu
dC4KKyAgICB2b2lkIGVucXVldWVUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQorICAgIHsK
KyAgICAgICAgaWYgKGlzQ2xvc2VkKCkgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKIAotcHJpdmF0ZToKLSAgICBVbmlxdWVSZWY8VGFza0Rpc3BhdGNo
ZXI8VD4+IG1fZGlzcGF0Y2hlcjsKLSAgICB1bnNpZ25lZCBtX3BlbmRpbmdUYXNrcyB7IDAgfTsK
LSAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgICAgICBpbmNyZW1lbnRQZW5kaW5n
VGFza3MoKTsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudExvb3AoKS5x
dWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CisgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kZWNy
ZW1lbnRQZW5kaW5nVGFza3MoKTsKKyAgICAgICAgICAgIHRhc2soKTsKKyAgICAgICAgfSk7Cisg
ICAgfQogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430425</attachid>
            <date>2021-06-02 17:38:43 -0700</date>
            <delta_ts>2021-06-02 18:54:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226543-20210602173842.patch</filename>
            <type>text/plain</type>
            <size>37959</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVmNjRhZDhiYTc3Yjk2
NTZhZGFhMTJiNzk2MGNjMzBmMmE0MzVmZi4uZGI3MGUwY2YyYzc3YWZiNjA2N2Q0Y2ZjZjZjOGY2
NzZiNTY5YTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA2LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBtZWRpYSBjb2RlIHRv
IHRoZSBIVE1MIGV2ZW50IGxvb3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjU0MworCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4K
KworICAgICAgICBQb3J0IG1lZGlhIGNvZGUgdG8gdGhlIEhUTUwgZXZlbnQgbG9vcCBzbyB0aGF0
IGV2ZW50IHByb2Nlc3Npbmcgb3JkZXIgaXMgY29uc2lzdGVudAorICAgICAgICB3aXRoIG5vbi1t
ZWRpYSByZWxhdGVkIGV2ZW50cy4gVG8gYXZvaWQgaGF2aW5nIGEgdmVyeSBsYXJnZSBwYXRjaCwg
SSBtYWRlIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgY2hhbmdlczoKKyAgICAgICAgLSBVcGRhdGUg
TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIHRvIGJlIGJhc2VkIG9uIHRoZSBIVE1MIGV2ZW50
IGxvb3AgaW5zdGVhZCBvZiBhCisgICAgICAgICAgZ2xvYmFsIFRpbWVyLgorICAgICAgICAtIElu
dHJvZHVjZSBhIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIHdoaWNoIGhhcyB0aGUgc2FtZSBBUEkg
YXMgRGVmZXJyYWJsZVRhc2s8VGltZXI+IGJ1dAorICAgICAgICAgIHVzZXMgdGhlIEhUTUwgZXZl
bnQgbG9vcCBpbnN0ZWFkIG9mIGEgZ2xvYmFsIFRpbWVyLiBQb3J0IG1lZGlhIGNvZGUgdG8gdXNl
CisgICAgICAgICAgRXZlbnRMb29wRGVmZXJyYWJsZVRhc2sgaW5zdGVhZCBvZiBEZWZlcnJhYmxl
VGFzay4KKyAgICAgICAgLSBJbnRyb2R1Y2UgYW4gRXZlbnRMb29wVGFza1F1ZXVlIHdoaWNoIGhh
cyB0aGUgc2FtZSBBUEkgYXMgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4KKyAgICAgICAgICBidXQg
dXNlcyB0aGUgSFRNTCBldmVudCBsb29wIGluc3RlYWQgb2YgYSBnbG9iYWwgVGltZXIuIFBvcnQg
bWVkaWEgY29kZSB0byB1c2UKKyAgICAgICAgICBFdmVudExvb3BUYXNrUXVldWUgaW5zdGVhZCBv
ZiBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPi4KKworICAgICAgICBUaGlzIGVmZmVjdGl2ZWx5IHBv
cnRzIG91ciBlbnRpcmUgbWVkaWEgY29kZSB0byB0aGUgSFRNTCBldmVudCBsb29wLiBJdCBhbGxv
d3MgbmV3CisgICAgICAgIG1lZGlhIGNvZGUgdG8gdXNlIHRoZSBIVE1MIGV2ZW50IGxvb3AgKmRp
cmVjdGx5KiB3aXRob3V0IGZlYXIgb2Ygb3JkZXJpbmcgaXNzdWVzLiBJdCBhbHNvCisgICAgICAg
IGFsbG93cyB1cyB0byByZWZhY3RvciBleGlzdGluZyBtZWRpYSBjb2RlIHRvIHVzZSB0aGUgSFRN
TCBldmVudCBsb29wICpkaXJlY3RseSogd2hlbiBwb3NzaWJsZSwKKyAgICAgICAgaW4gYW4gaW5j
cmVtZW50YWwgZmFzaGlvbiwgd2l0aG91dCBjYXVzaW5nIG9yZGVyaW5nIGlzc3Vlcy4KKworICAg
ICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9S
ZW1vdGVQbGF5YmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6UmVt
b3RlUGxheWJhY2spOgorICAgICAgICAqIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxh
eWJhY2suaDoKKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6RG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyKToKKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRU
aW1lbGluZXNDb250cm9sbGVyLmg6CisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNw
cDoKKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBkb20vR2Vu
ZXJpY0V2ZW50UXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblRocmVhZEdlbmVyaWNF
dmVudFF1ZXVlOjpNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjbG9zZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNhbmNlbEFsbEV2ZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRpbmdF
dmVudHNPZlR5cGUgY29uc3QpOgorICAgICAgICAqIGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5oOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRl
eHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EZWZlcnJhYmxlVGFzay5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGVmZXJyYWJsZVRhc2tCYXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZWZlcnJhYmxlVGFza0Jhc2U6OmNhbmNlbFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6
RGVmZXJyYWJsZVRhc2tCYXNlOjpoYXNQZW5kaW5nVGFzayBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEZWZlcnJhYmxlVGFza0Jhc2U6OmlzQ2xvc2VkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlZmVycmFibGVUYXNrQmFzZTo6c2V0SGFzUGVuZGluZ1Rhc2spOgorICAgICAgICAqIHBs
YXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNUYXNr
UXVldWVCYXNlOjpoYXNQZW5kaW5nVGFza3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R2Vu
ZXJpY1Rhc2tRdWV1ZUJhc2U6OmlzQ2xvc2VkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okdl
bmVyaWNUYXNrUXVldWVCYXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljVGFz
a1F1ZXVlQmFzZTo6Y2FuY2VsQWxsVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY1Rh
c2tRdWV1ZUJhc2U6OmluY3JlbWVudFBlbmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW5lcmljVGFza1F1ZXVlQmFzZTo6ZGVjcmVtZW1lbnRQZW5kaW5nVGFza3MpOgorCiAyMDIxLTA2
LTAyICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgInJlbGF0aXZlIGNvbG9yIHN5bnRheCIgZm9yIGNvbG9yKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CmluZGV4IDg5ZTI5OTY2Yjk1ZDI3NWMzZGZkZGEzMzY3YWRhMTBmOTAwMDZkZGQuLjMzNzAyM2Q5
YzE1MmQ4ZWY0MTM3YWI4ZjNmN2M5YWFlMWY0MzQwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAt
NDYxLDYgKzQ2MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAg
ICBkb20vRXZlbnRMaXN0ZW5lci5oCiAgICAgZG9tL0V2ZW50TGlzdGVuZXJNYXAuaAogICAgIGRv
bS9FdmVudExpc3RlbmVyT3B0aW9ucy5oCisgICAgZG9tL0V2ZW50TG9vcC5oCiAgICAgZG9tL0V2
ZW50TW9kaWZpZXJJbml0LmgKICAgICBkb20vRXZlbnROYW1lcy5oCiAgICAgZG9tL0V2ZW50UXVl
dWUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9S
ZW1vdGVQbGF5YmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmNwcAppbmRleCBkMWJiMDQ5ZDRiMjE4ZjUyODFmMjEwMGZjODk4YzUx
Yjg4YTNmMGM5Li4xYjk1NjUyYjM5OTkyZjRmNzlkNWY1ZWVlYTM3NzlkNmI1MGEwNmYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXli
YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90
ZVBsYXliYWNrLmNwcApAQCAtNTEsNiArNTEsNyBAQCBSZW1vdGVQbGF5YmFjazo6UmVtb3RlUGxh
eWJhY2soSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICA6IFdlYkNvcmU6OkFjdGl2ZURP
TU9iamVjdChlbGVtZW50LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1fbWVkaWFF
bGVtZW50KG1ha2VXZWFrUHRyKGVsZW1lbnQpKQogICAgICwgbV9ldmVudFF1ZXVlKE1haW5UaHJl
YWRHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKKyAgICAsIG1fdGFza1F1ZXVlKGVs
ZW1lbnQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogewogICAgIHN1c3BlbmRJZk5lZWRlZCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9S
ZW1vdGVQbGF5YmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9S
ZW1vdGVQbGF5YmFjay5oCmluZGV4IDJkMjczNjJlOGI0OTIzMjZlNmVmOGRiMDA4MjQ0YTlhNzYz
OTI1YjIuLjE2OTlkYmJhYzdjNTAzNzdkYmYxNDg0M2NiNzI5ZjQ2YjFkNThkM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXli
YWNrLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hdmFpbGFibGUg
eyBmYWxzZSB9OwogCiAgICAgVW5pcXVlUmVmPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZT4g
bV9ldmVudFF1ZXVlOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fdGFza1F1ZXVlOwor
ICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Rhc2tRdWV1ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5j
cHAKaW5kZXggOTM1NzU4NjdhNDkzNjdhODQzNTI2NjIzMTZiNmU3OWZiNGJlNGUwOC4uOTk0MDkx
YWZjNTU1ODk3MTY3ZDUxYWIwMTI0YTZiOTc4ODBiNjdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKQEAg
LTQzLDcgKzQzLDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRG9jdW1lbnRUaW1lbGluZXND
b250cm9sbGVyOjpEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50
KQotICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICA6IG1fY3VycmVudFRpbWVDbGVhcmlu
Z1Rhc2tRdWV1ZSgmZG9jdW1lbnQpCisgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQogewogICAg
IGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7CiAgICAgICAgIGlmIChwYWdlLT5z
ZXR0aW5ncygpLmhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZCgpICYmICFw
YWdlLT5pc1Zpc2libGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaAppbmRleCAxYWI1MmFmZGMwMGI3NWM1ZmI0MmMw
MGI2OTYyYmM1MDhjYWNmOTZhLi40MjEyNzhlMzIzYWNhYjhmZjEyZTFmNmIzNTU3N2Y0OGY3NmNh
Njc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGlt
ZWxpbmVzQ29udHJvbGxlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBt
YXliZUNsZWFyQ2FjaGVkQ3VycmVudFRpbWUoKTsKIAogICAgIFdlYWtIYXNoU2V0PERvY3VtZW50
VGltZWxpbmU+IG1fdGltZWxpbmVzOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fY3Vy
cmVudFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZTsKKyAgICBFdmVudExvb3BUYXNrUXVldWUgbV9jdXJy
ZW50VGltZUNsZWFyaW5nVGFza1F1ZXVlOwogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAg
IE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBtX2NhY2hlZEN1cnJl
bnRUaW1lOwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAppbmRleCBjM2RkZDFlN2ZkZWU0Mjk2ODVmZGRmYmQw
NzA1ZTNhYzBkYTk0MDlmLi45NzQ2YzY1YTE4MzYwZGVlY2QyYzc5NDBkYTkyZjM2MGI5YzQ4YmEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKQEAgLTQ4LDYgKzQ4
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogRnVsbHNjcmVlbk1hbmFnZXI6OkZ1
bGxzY3JlZW5NYW5hZ2VyKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQgeyBk
b2N1bWVudCB9CisgICAgLCBtX2Z1bGxzY3JlZW5UYXNrUXVldWUgeyAmZG9jdW1lbnQgfQogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dJZGVudGlmaWVyKExvZ2dlckhlbHBl
cjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2Ny
ZWVuTWFuYWdlci5oCmluZGV4IDcyZGEzNDg2MDU2MmIzNjY3NGM1NTJiNjVhOGIyNmQwYjZkMTU4
NjkuLjRiZDFhM2U4YmVmYjhlOWYyMDE2NzVkZGMyNDcwODkyYjc1YjBiYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0xMTksNyArMTE5LDcgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8RWxlbWVudD4gbV9mdWxsc2NyZWVuRWxlbWVudDsKICAgICBWZWN0b3I8UmVm
UHRyPEVsZW1lbnQ+PiBtX2Z1bGxzY3JlZW5FbGVtZW50U3RhY2s7CiAgICAgV2Vha1B0cjxSZW5k
ZXJGdWxsU2NyZWVuPiBtX2Z1bGxzY3JlZW5SZW5kZXJlciB7IG51bGxwdHIgfTsKLSAgICBHZW5l
cmljVGFza1F1ZXVlPFRpbWVyPiBtX2Z1bGxzY3JlZW5UYXNrUXVldWU7CisgICAgRXZlbnRMb29w
VGFza1F1ZXVlIG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKICAgICBEZXF1ZTxSZWZQdHI8Tm9kZT4+
IG1fZnVsbHNjcmVlbkNoYW5nZUV2ZW50VGFyZ2V0UXVldWU7CiAgICAgRGVxdWU8UmVmUHRyPE5v
ZGU+PiBtX2Z1bGxzY3JlZW5FcnJvckV2ZW50VGFyZ2V0UXVldWU7CiAgICAgTGF5b3V0UmVjdCBt
X3NhdmVkUGxhY2Vob2xkZXJGcmFtZVJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vR2VuZXJpY0V2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVu
dFF1ZXVlLmNwcAppbmRleCBjZjM2ZDEyMWM2MGVjOWE4NTg1MGQyMGU0NTM0YTNhNGU3ZWYwNDNj
Li5jYjQ4ZGQ4ZDY2ZmI5MWJiMGI5NGE4NjZkZDNhNzhjYWE5YjYyYjdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAKQEAgLTI4LDEwICsyOCwxMiBAQAogCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TG9v
cC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1
ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNs
dWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIApAQCAtNDAsMTMgKzQyLDEyIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6TWFpblRocmVhZEdlbmVyaWNF
dmVudFF1ZXVlKEV2ZW50VGFyZ2V0JiBvd25lcikKICAgICA6IEFjdGl2ZURPTU9iamVjdChvd25l
ci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgLCBtX293bmVyKG93bmVyKQotICAgICwg
bV90YXNrUXVldWUobWFrZVVuaXF1ZVJlZjxHZW5lcmljVGFza1F1ZXVlPFRpbWVyPj4oKSkKIHsK
IH0KIAogdm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmVucXVldWVFdmVudChSZWZQ
dHI8RXZlbnQ+JiYgZXZlbnQpCiB7Ci0gICAgaWYgKG1faXNDbG9zZWQpCisgICAgaWYgKG1faXND
bG9zZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKGV2ZW50LT50YXJnZXQoKSA9PSAmbV9vd25lcikKQEAgLTU0LDEwICs1NSwxMCBAQCB2
b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KFJlZlB0cjxFdmVu
dD4mJiBldmVudCkKIAogICAgIG1fcGVuZGluZ0V2ZW50cy5hcHBlbmQoV1RGTW92ZShldmVudCkp
OwogCi0gICAgaWYgKGlzU3VzcGVuZGVkT3JQYXVzZWRCeUNsaWVudCgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soc3RkOjpiaW5kKCZNYWluVGhyZWFk
R2VuZXJpY0V2ZW50UXVldWU6OmRpc3BhdGNoT25lRXZlbnQsIHRoaXMpKTsKKyAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpNZWRp
YUVsZW1lbnQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0geworICAgICAgICBpZiAo
d2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlzcGF0Y2hPbmVFdmVudCgpOworICAg
IH0pOwogfQogCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVF
dmVudCgpCkBAIC03OCwxNCArNzksMTIgQEAgdm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVl
dWU6OmRpc3BhdGNoT25lRXZlbnQoKQogdm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6
OmNsb3NlKCkKIHsKICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKLQotICAgIG1fdGFza1F1ZXVlLT5j
bG9zZSgpOwotICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOworICAgIGNhbmNlbEFsbEV2ZW50
cygpOwogfQogCiB2b2lkIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6Y2FuY2VsQWxsRXZl
bnRzKCkKIHsKLSAgICBtX3Rhc2tRdWV1ZS0+Y2FuY2VsQWxsVGFza3MoKTsKKyAgICB3ZWFrUHRy
RmFjdG9yeSgpLnJldm9rZUFsbCgpOwogICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOwogfQog
CkBAIC05Niw1MSArOTUsNyBAQCBib29sIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6aGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIAogYm9vbCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVl
dWU6Omhhc1BlbmRpbmdFdmVudHNPZlR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkgY29uc3QK
IHsKLSAgICBmb3IgKGF1dG8mIGV2ZW50IDogbV9wZW5kaW5nRXZlbnRzKSB7Ci0gICAgICAgIGlm
IChldmVudC0+dHlwZSgpID09IHR5cGUpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1
ZXVlOjpzZXRQYXVzZWQoYm9vbCBzaG91bGRQYXVzZSkKLXsKLSAgICBpZiAobV9pc1BhdXNlZEJ5
Q2xpZW50ID09IHNob3VsZFBhdXNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2lzUGF1c2Vk
QnlDbGllbnQgPSBzaG91bGRQYXVzZTsKLSAgICBpZiAoc2hvdWxkUGF1c2UpCi0gICAgICAgIG1f
dGFza1F1ZXVlLT5jYW5jZWxBbGxUYXNrcygpOwotICAgIGVsc2UKLSAgICAgICAgcmVzY2hlZHVs
ZUFsbEV2ZW50c0lmTmVlZGVkKCk7Ci19Ci0KLXZvaWQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1
ZXVlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCi17Ci0gICAgaWYgKG1faXNTdXNwZW5k
ZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwotICAgIG1f
dGFza1F1ZXVlLT5jYW5jZWxBbGxUYXNrcygpOwotfQotCi12b2lkIE1haW5UaHJlYWRHZW5lcmlj
RXZlbnRRdWV1ZTo6cmVzdW1lKCkKLXsKLSAgICBpZiAoIW1faXNTdXNwZW5kZWQpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKLSAgICByZXNjaGVkdWxlQWxs
RXZlbnRzSWZOZWVkZWQoKTsKLX0KLQotdm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6
OnJlc2NoZWR1bGVBbGxFdmVudHNJZk5lZWRlZCgpCi17Ci0gICAgaWYgKGlzU3VzcGVuZGVkT3JQ
YXVzZWRCeUNsaWVudCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9wZW5kaW5nRXZlbnRzLnNpemUoKTsgKytpKQotICAgICAgICBtX3Rhc2tRdWV1
ZS0+ZW5xdWV1ZVRhc2soc3RkOjpiaW5kKCZNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmRp
c3BhdGNoT25lRXZlbnQsIHRoaXMpKTsKKyAgICByZXR1cm4gV1RGOjphbnlPZihtX3BlbmRpbmdF
dmVudHMsIFsmXShhdXRvJiBldmVudCkgeyByZXR1cm4gZXZlbnQtPnR5cGUoKSA9PSB0eXBlOyB9
KTsKIH0KIAogdm9pZCBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OnN0b3AoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaAppbmRleCA1YTNlNGY1MzAyOWM4MWRjMTY0MjBj
NWZmMmI4ZjM2NjNhZGZhZTU1Li41MzhkZWM4MTNkNzA4ZTNhYzM5MTVmNTBlOTVkYTFjYzg5MDgz
MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaApAQCAtMjYsMjIgKzI2
LDIwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2lu
Y2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVW5pcXVlUmVmLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBFdmVudDsKIGNsYXNzIEV2ZW50VGFyZ2V0OwotY2xhc3MgVGltZXI7
CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi0vLyBBbGwgaW5zdGFuY2VzIG9mIE1h
aW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZSB1c2UgYSBzaGFyZWQgVGltZXIgZm9yIGRpc3BhdGNo
aW5nIGV2ZW50cy4KIC8vIEZJWE1FOiBXZSBzaG91bGQgcG9ydCBjYWxsIHNpdGVzIHRvIHRoZSBI
VE1MIGV2ZW50IGxvb3AgYW5kIHJlbW92ZSB0aGlzIGNsYXNzLgotY2xhc3MgTWFpblRocmVhZEdl
bmVyaWNFdmVudFF1ZXVlIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBNYWluVGhy
ZWFkR2VuZXJpY0V2ZW50UXVldWUgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPiB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFVuaXF1ZVJlZjxNYWluVGhyZWFk
R2VuZXJpY0V2ZW50UXVldWU+IGNyZWF0ZShFdmVudFRhcmdldCYpOwpAQCAtNTIsMTAgKzUwLDYg
QEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsQWxsRXZlbnRzKCk7CiAgICAgYm9vbCBoYXNQZW5k
aW5nRXZlbnRzT2ZUeXBlKGNvbnN0IEF0b21TdHJpbmcmKSBjb25zdDsKIAotICAgIHZvaWQgc2V0
UGF1c2VkKGJvb2wpOwotCi0gICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNTdXNwZW5kZWQ7IH0KLQogICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Q7CiAK
IHByaXZhdGU6CkBAIC02NiwxOCArNjAsMTAgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5h
bDsKLSAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7Ci0gICAgdm9p
ZCByZXN1bWUoKSBmaW5hbDsKLQotICAgIHZvaWQgcmVzY2hlZHVsZUFsbEV2ZW50c0lmTmVlZGVk
KCk7Ci0gICAgYm9vbCBpc1N1c3BlbmRlZE9yUGF1c2VkQnlDbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2lzU3VzcGVuZGVkIHx8IG1faXNQYXVzZWRCeUNsaWVudDsgfQogCiAgICAgRXZlbnRUYXJn
ZXQmIG1fb3duZXI7Ci0gICAgVW5pcXVlUmVmPEdlbmVyaWNUYXNrUXVldWU8VGltZXI+PiBtX3Rh
c2tRdWV1ZTsKICAgICBEZXF1ZTxSZWZQdHI8RXZlbnQ+PiBtX3BlbmRpbmdFdmVudHM7CiAgICAg
Ym9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNQYXVzZWRCeUNsaWVudCB7
IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aXNGaXJpbmdFdmVudCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCA3ZjdlOGYyZjk3MWJlMGM5MWMyOTJiODYzZDRlOTU5NDJmYmE5
Nzk2Li4wNTFmOGRhMDkxNmY2M2E5NDFlYjI4NTBjM2ViN2QwMzg5YWEwYTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM5NCw3ICszOTQsMjEgQEAgSFRN
TE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fc2NhblRpbWVyKCp0aGlzLCAmSFRNTE1lZGlh
RWxlbWVudDo6c2NhblRpbWVyRmlyZWQpCiAgICAgLCBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2Vy
QmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lckZpcmVkKQogICAgICwg
bV9zZWVrVG9QbGF5YmFja1Bvc2l0aW9uRW5kZWRUaW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1l
bnQ6OnNlZWtUb1BsYXliYWNrUG9zaXRpb25FbmRlZFRpbWVyRmlyZWQpCisgICAgLCBtX2NvbmZp
Z3VyZVRleHRUcmFja3NUYXNrKCZkb2N1bWVudCkKKyAgICAsIG1fY2hlY2tQbGF5YmFja1Rhcmdl
dENvbXBhdGliaWxpdHlUYXNrKCZkb2N1bWVudCkKKyAgICAsIG1fdXBkYXRlTWVkaWFTdGF0ZVRh
c2soJmRvY3VtZW50KQorICAgICwgbV9tZWRpYUVuZ2luZVVwZGF0ZWRUYXNrKCZkb2N1bWVudCkK
ICAgICAsIG1fdXBkYXRlUGxheVN0YXRlVGFzaygqdGhpcykKKyAgICAsIG1fcmVzdW1lVGFzaygm
ZG9jdW1lbnQpCisgICAgLCBtX3NlZWtUYXNrKCZkb2N1bWVudCkKKyAgICAsIG1fcGxheWJhY2tD
b250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1Rhc2soJmRvY3VtZW50KQorICAgICwg
bV9idWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkVGFzaygmZG9jdW1lbnQpCisgICAgLCBtX3Byb21p
c2VUYXNrUXVldWUoJmRvY3VtZW50KQorICAgICwgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVl
dWUoJmRvY3VtZW50KQorICAgICwgbV9yZXNvdXJjZVNlbGVjdGlvblRhc2tRdWV1ZSgmZG9jdW1l
bnQpCisgICAgLCBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNrUXVldWUoJmRvY3VtZW50KQorICAgICwg
bV9mdWxsc2NyZWVuVGFza1F1ZXVlKCZkb2N1bWVudCkKKyAgICAsIG1fcGxheWJhY2tUYXJnZXRJ
c1dpcmVsZXNzUXVldWUoJmRvY3VtZW50KQogICAgICwgbV9hc3luY0V2ZW50UXVldWUoTWFpblRo
cmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9sYXN0VGltZVVw
ZGF0ZUV2ZW50TW92aWVUaW1lKE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSkKICAg
ICAsIG1fZmlyc3RUaW1lUGxheWluZyh0cnVlKQpAQCAtNDM0LDYgKzQ0OCw5IEBAIEhUTUxNZWRp
YUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtCiAgICAgLCBtX3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlKGZhbHNl
KQogICAgICwgbV9zaG91bGRBdWRpb1BsYXliYWNrUmVxdWlyZVVzZXJHZXN0dXJlKGRvY3VtZW50
LnRvcERvY3VtZW50KCkuYXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSAmJiAhcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAsIG1fc2hvdWxkVmlkZW9QbGF5YmFj
a1JlcXVpcmVVc2VyR2VzdHVyZShkb2N1bWVudC50b3BEb2N1bWVudCgpLnZpZGVvUGxheWJhY2tS
ZXF1aXJlc1VzZXJHZXN0dXJlKCkgJiYgIXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkp
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICAsIG1fZW5jcnlwdGVkTWVkaWFRdWV1
ZSgmZG9jdW1lbnQpCisjZW5kaWYKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQogICAgICwgbV9yZW1vdGUoUmVtb3RlUGxheWJhY2s6OmNyZWF0ZSgqdGhpcykpCiAjZW5kaWYK
QEAgLTU2NywxMSArNTg0LDExIEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50
KCkKICAgICBpZiAobV9pc29sYXRlZFdvcmxkKQogICAgICAgICBtX2lzb2xhdGVkV29ybGQtPmNs
ZWFyV3JhcHBlcnMoKTsKIAotICAgIG1fc2Vla1Rhc2tRdWV1ZS5jbG9zZSgpOwotICAgIG1fcmVz
dW1lVGFza1F1ZXVlLmNsb3NlKCk7CisgICAgbV9zZWVrVGFzay5jbG9zZSgpOworICAgIG1fcmVz
dW1lVGFzay5jbG9zZSgpOwogICAgIG1fcHJvbWlzZVRhc2tRdWV1ZS5jbG9zZSgpOwogICAgIG1f
cGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlLmNsb3NlKCk7Ci0gICAgbV9wbGF5YmFja0NvbnRy
b2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zUXVldWUuY2xvc2UoKTsKKyAgICBtX3BsYXli
YWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUYXNrLmNsb3NlKCk7CiAgICAg
bV9yZXNvdXJjZVNlbGVjdGlvblRhc2tRdWV1ZS5jbG9zZSgpOwogICAgIG1fdmlzaWJpbGl0eUNo
YW5nZVRhc2tRdWV1ZS5jbG9zZSgpOwogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCkBAIC05
ODAsMTYgKzk5NywxNiBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omhhc0V2ZXJOb3RpZmllZEFi
b3V0UGxheWluZygpIGNvbnN0CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVDaGVj
a1BsYXliYWNrVGFyZ2V0Q29tcGF0YWJpbGl0eSgpCiB7Ci0gICAgaWYgKG1fY2hlY2tQbGF5YmFj
a1RhcmdldENvbXBhdGFibGl0eVRhc2suaGFzUGVuZGluZ1Rhc2soKSkKKyAgICBpZiAobV9jaGVj
a1BsYXliYWNrVGFyZ2V0Q29tcGF0aWJpbGl0eVRhc2suaXNQZW5kaW5nKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Ci0gICAgbV9jaGVja1BsYXli
YWNrVGFyZ2V0Q29tcGF0YWJsaXR5VGFzay5zY2hlZHVsZVRhc2soW3RoaXNdIHsKLSAgICAgICAg
Y2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0eSgpOworICAgIG1fY2hlY2tQbGF5YmFja1Rh
cmdldENvbXBhdGliaWxpdHlUYXNrLnNjaGVkdWxlVGFzayhbdGhpc10geworICAgICAgICBjaGVj
a1BsYXliYWNrVGFyZ2V0Q29tcGF0aWJpbGl0eSgpOwogICAgIH0pOwogfQogCi12b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHkoKQordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpjaGVja1BsYXliYWNrVGFyZ2V0Q29tcGF0aWJpbGl0eSgpCiB7CiAjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICBpZiAobV9pc1BsYXlpbmdUb1dp
cmVsZXNzVGFyZ2V0ICYmICFtX3BsYXllci0+Y2FuUGxheVRvV2lyZWxlc3NQbGF5YmFja1Rhcmdl
dCgpKSB7CkBAIC0yOTU3LDkgKzI5NzQsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtX
aXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYgaW5UaW1lLCBjb25zdCBNZWRpYVRpbQogICAg
IC8vIDMgLSBJZiB0aGUgZWxlbWVudCdzIHNlZWtpbmcgSURMIGF0dHJpYnV0ZSBpcyB0cnVlLCB0
aGVuIGFub3RoZXIgaW5zdGFuY2Ugb2YgdGhpcyBhbGdvcml0aG0gaXMKICAgICAvLyBhbHJlYWR5
IHJ1bm5pbmcuIEFib3J0IHRoYXQgb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFsZ29yaXRobSB3aXRo
b3V0IHdhaXRpbmcgZm9yIHRoZSBzdGVwIHRoYXQKICAgICAvLyBpdCBpcyBydW5uaW5nIHRvIGNv
bXBsZXRlLgotICAgIGlmIChtX3NlZWtUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2soKSkgeworICAg
IGlmIChtX3NlZWtUYXNrLmlzUGVuZGluZygpKSB7CiAgICAgICAgIElORk9fTE9HKExPR0lERU5U
SUZJRVIsICJjYW5jZWxsaW5nIHBlbmRpbmcgc2Vla3MiKTsKLSAgICAgICAgbV9zZWVrVGFza1F1
ZXVlLmNhbmNlbFRhc2soKTsKKyAgICAgICAgbV9zZWVrVGFzay5jYW5jZWxUYXNrKCk7CiAgICAg
ICAgIGlmIChtX3BlbmRpbmdTZWVrKSB7CiAgICAgICAgICAgICBub3cgPSBtX3BlbmRpbmdTZWVr
LT5ub3c7CiAgICAgICAgICAgICBtX3BlbmRpbmdTZWVrID0gbnVsbHB0cjsKQEAgLTI5ODEsNyAr
Mjk5OCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UoY29uc3Qg
TWVkaWFUaW1lJiBpblRpbWUsIGNvbnN0IE1lZGlhVGltCiAgICAgbV9wZW5kaW5nU2VlayA9IG1h
a2VVbmlxdWU8UGVuZGluZ1NlZWs+KG5vdywgdGltZSwgbmVnYXRpdmVUb2xlcmFuY2UsIHBvc2l0
aXZlVG9sZXJhbmNlKTsKICAgICBpZiAoZnJvbURPTSkgewogICAgICAgICBJTkZPX0xPRyhMT0dJ
REVOVElGSUVSLCAiZW5xdWV1aW5nIHNlZWsgZnJvbSAiLCBub3csICIgdG8gIiwgdGltZSk7Ci0g
ICAgICAgIG1fc2Vla1Rhc2tRdWV1ZS5zY2hlZHVsZVRhc2soc3RkOjpiaW5kKCZIVE1MTWVkaWFF
bGVtZW50OjpzZWVrVGFzaywgdGhpcykpOworICAgICAgICBtX3NlZWtUYXNrLnNjaGVkdWxlVGFz
ayhzdGQ6OmJpbmQoJkhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNrLCB0aGlzKSk7CiAgICAgfSBl
bHNlCiAgICAgICAgIHNlZWtUYXNrKCk7CiAKQEAgLTM2OTMsNyArMzcxMCw3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEhUTUxNZWRpYUVsZW1lbnQ6OnNldFZvbHVtZShkb3VibGUgdm9sdW1lKQogICAg
IGF1dG8gb2xkVm9sdW1lID0gbV92b2x1bWU7CiAgICAgbV92b2x1bWUgPSB2b2x1bWU7CiAKLSAg
ICBpZiAobV92b2x1bWVSZXZlcnRUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2soKSkKKyAgICBpZiAo
bV92b2x1bWVSZXZlcnRUYXNrUXVldWUuaXNQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICBtX3ZvbHVtZVJldmVydFRhc2tRdWV1ZS5zY2hlZHVsZVRhc2soW3RoaXMsIG9sZFZv
bHVtZV0gewpAQCAtNDQ4MSw3ICs0NDk4LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRT
ZWxlY3RlZFRleHRUcmFjayhUZXh0VHJhY2sqIHRyYWNrVG9TZWxlY3QpCiAKIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2NoZWR1bGVDb25maWd1cmVUZXh0VHJhY2tzKCkKIHsKLSAgICBpZiAobV9j
b25maWd1cmVUZXh0VHJhY2tzVGFzay5oYXNQZW5kaW5nVGFzaygpKQorICAgIGlmIChtX2NvbmZp
Z3VyZVRleHRUcmFja3NUYXNrLmlzUGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKQEAgLTUwMjksNyArNTA0Niw3
IEBAIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJH
cmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2No
ZWR1bGVNZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogewotICAgIGlmIChtX21lZGlhRW5naW5lVXBk
YXRlZFRhc2suaGFzUGVuZGluZ1Rhc2soKSkKKyAgICBpZiAobV9tZWRpYUVuZ2luZVVwZGF0ZWRU
YXNrLmlzUGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGxvZ1NpdGVJZGVu
dGlmaWVyID0gTE9HSURFTlRJRklFUjsKQEAgLTUzMjIsNyArNTMzOSw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6dXBkYXRlVm9sdW1lKCkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hl
ZHVsZVVwZGF0ZVBsYXlTdGF0ZSgpCiB7Ci0gICAgaWYgKG1fdXBkYXRlUGxheVN0YXRlVGFzay5o
YXNQZW5kaW5nVGFzaygpKQorICAgIGlmIChtX3VwZGF0ZVBsYXlTdGF0ZVRhc2suaXNQZW5kaW5n
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gbG9nU2l0ZUlkZW50aWZpZXIgPSBMT0dJ
REVOVElGSUVSOwpAQCAtNTQ2MCw3ICs1NDc3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
dG9wUGVyaW9kaWNUaW1lcnMoKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjYW5jZWxQZW5kaW5n
VGFza3MoKQogewogICAgIG1fY29uZmlndXJlVGV4dFRyYWNrc1Rhc2suY2FuY2VsVGFzaygpOwot
ICAgIG1fY2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0eVRhc2suY2FuY2VsVGFzaygpOwor
ICAgIG1fY2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGliaWxpdHlUYXNrLmNhbmNlbFRhc2soKTsK
ICAgICBtX3VwZGF0ZU1lZGlhU3RhdGVUYXNrLmNhbmNlbFRhc2soKTsKICAgICBtX21lZGlhRW5n
aW5lVXBkYXRlZFRhc2suY2FuY2VsVGFzaygpOwogICAgIG1fdXBkYXRlUGxheVN0YXRlVGFzay5j
YW5jZWxUYXNrKCk7CkBAIC01NjIyLDE1ICs1NjM5LDE1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c3RvcFdpdGhvdXREZXN0cm95aW5nTWVkaWFQbGF5ZXIoKQogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpjbG9zZVRhc2tRdWV1ZXMoKQogewogICAgIG1fY29uZmlndXJlVGV4dFRyYWNrc1Rhc2su
Y2xvc2UoKTsKLSAgICBtX2NoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHlUYXNrLmNsb3Nl
KCk7CisgICAgbV9jaGVja1BsYXliYWNrVGFyZ2V0Q29tcGF0aWJpbGl0eVRhc2suY2xvc2UoKTsK
ICAgICBtX3VwZGF0ZU1lZGlhU3RhdGVUYXNrLmNsb3NlKCk7CiAgICAgbV9tZWRpYUVuZ2luZVVw
ZGF0ZWRUYXNrLmNsb3NlKCk7CiAgICAgbV91cGRhdGVQbGF5U3RhdGVUYXNrLmNsb3NlKCk7Ci0g
ICAgbV9yZXN1bWVUYXNrUXVldWUuY2xvc2UoKTsKLSAgICBtX3NlZWtUYXNrUXVldWUuY2xvc2Uo
KTsKLSAgICBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNRdWV1
ZS5jbG9zZSgpOwotICAgIG1fc2Vla1Rhc2tRdWV1ZS5jbG9zZSgpOwotICAgIG1fcmVzdW1lVGFz
a1F1ZXVlLmNsb3NlKCk7CisgICAgbV9yZXN1bWVUYXNrLmNsb3NlKCk7CisgICAgbV9zZWVrVGFz
ay5jbG9zZSgpOworICAgIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0
aW9uc1Rhc2suY2xvc2UoKTsKKyAgICBtX3NlZWtUYXNrLmNsb3NlKCk7CisgICAgbV9yZXN1bWVU
YXNrLmNsb3NlKCk7CiAgICAgbV9wcm9taXNlVGFza1F1ZXVlLmNsb3NlKCk7CiAgICAgbV9wYXVz
ZUFmdGVyRGV0YWNoZWRUYXNrUXVldWUuY2xvc2UoKTsKICAgICBtX3Jlc291cmNlU2VsZWN0aW9u
VGFza1F1ZXVlLmNsb3NlKCk7CkBAIC01Njc1LDcgKzU2OTIsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiAgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKICAgICBSZWY8SFRNTE1lZGlhRWxlbWVudD4gcHJvdGVjdGVkVGhp
cygqdGhpcyk7CiAKLSAgICBtX3Jlc3VtZVRhc2tRdWV1ZS5jYW5jZWxUYXNrKCk7CisgICAgbV9y
ZXN1bWVUYXNrLmNhbmNlbFRhc2soKTsKIAogICAgIHN3aXRjaCAocmVhc29uKSB7CiAgICAgY2Fz
ZSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlOgpAQCAtNTcwOCwxMyArNTcy
NSwxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlc3VtZSgpCiAgICAgICAgIG1fbWVkaWFT
ZXNzaW9uLT51cGRhdGVCdWZmZXJpbmdQb2xpY3koKTsKICAgICB9CiAKLSAgICBpZiAobV9lcnJv
ciAmJiBtX2Vycm9yLT5jb2RlKCkgPT0gTWVkaWFFcnJvcjo6TUVESUFfRVJSX0FCT1JURUQgJiYg
IW1fcmVzdW1lVGFza1F1ZXVlLmhhc1BlbmRpbmdUYXNrKCkpIHsKKyAgICBpZiAobV9lcnJvciAm
JiBtX2Vycm9yLT5jb2RlKCkgPT0gTWVkaWFFcnJvcjo6TUVESUFfRVJSX0FCT1JURUQgJiYgIW1f
cmVzdW1lVGFzay5pc1BlbmRpbmcoKSkgewogICAgICAgICAvLyBSZXN0YXJ0IHRoZSBsb2FkIGlm
IGl0IHdhcyBhYm9ydGVkIGluIHRoZSBtaWRkbGUgYnkgbW92aW5nIHRoZSBkb2N1bWVudCB0byB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgICAgICAvLyBtX2Vycm9yIGlzIG9ubHkgbGVmdCBh
dCBNRURJQV9FUlJfQUJPUlRFRCB3aGVuIHRoZSBkb2N1bWVudCBiZWNvbWVzIGluYWN0aXZlIChp
dCBpcyBzZXQgdG8KICAgICAgICAgLy8gIE1FRElBX0VSUl9BQk9SVEVEIHdoaWxlIHRoZSBhYm9y
dEV2ZW50IGlzIGJlaW5nIHNlbnQsIGJ1dCBjbGVhcmVkIGltbWVkaWF0ZWx5IGFmdGVyd2FyZHMp
LgogICAgICAgICAvLyBUaGlzIGJlaGF2aW9yIGlzIG5vdCBzcGVjaWZpZWQgYnV0IGl0IHNlZW1z
IGxpa2UgYSBzZW5zaWJsZSB0aGluZyB0byBkby4KICAgICAgICAgLy8gQXMgaXQgaXMgbm90IHNh
ZmUgdG8gaW1tZWRhdGVseSBzdGFydCBsb2FkaW5nIG5vdywgbGV0J3Mgc2NoZWR1bGUgYSBsb2Fk
LgotICAgICAgICBtX3Jlc3VtZVRhc2tRdWV1ZS5zY2hlZHVsZVRhc2soc3RkOjpiaW5kKCZIVE1M
TWVkaWFFbGVtZW50OjpwcmVwYXJlRm9yTG9hZCwgdGhpcykpOworICAgICAgICBtX3Jlc3VtZVRh
c2suc2NoZWR1bGVUYXNrKHN0ZDo6YmluZCgmSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxv
YWQsIHRoaXMpKTsKICAgICB9CiAKICAgICB1cGRhdGVSZW5kZXJlcigpOwpAQCAtNzEzNywxMiAr
NzE1NCwxMiBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2hvdWxkQ2hlY2tI
YXJkd2FyZVN1cHBvcnQoKSBjb25zdAogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxh
eWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKCFtX3RleHRUcmFja3Mg
fHwgbV9idWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkUXVldWUuaGFzUGVuZGluZ1Rhc2soKSkKKyAg
ICBpZiAoIW1fdGV4dFRyYWNrcyB8fCBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWRUYXNrLmlz
UGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVy
ID0gTE9HSURFTlRJRklFUjsKICAgICBBTFdBWVNfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAidGFz
ayBzY2hlZHVsZWQiKTsKLSAgICBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWRRdWV1ZS5zY2hl
ZHVsZVRhc2soW3RoaXMsIGxvZ1NpdGVJZGVudGlmaWVyXSB7CisgICAgbV9idWZmZXJlZFRpbWVS
YW5nZXNDaGFuZ2VkVGFzay5zY2hlZHVsZVRhc2soW3RoaXMsIGxvZ1NpdGVJZGVudGlmaWVyXSB7
CiAgICAgICAgIFVOVVNFRF9QQVJBTShsb2dTaXRlSWRlbnRpZmllcik7CiAgICAgICAgIEFMV0FZ
U19MT0cobG9nU2l0ZUlkZW50aWZpZXIsICJsYW1iZGEoKSwgdGFzayBmaXJlZCIpOwogICAgICAg
ICBpZiAoIW1fcGxheWVyIHx8ICFtX3RleHRUcmFja3MpCkBAIC03NzY4LDcgKzc3ODUsNyBAQCBi
b29sIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlUGF1c2VEdXJpbmdSb3V0ZUNoYW5n
ZSgpIGNvbnN0CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVVcGRhdGVNZWRpYVN0
YXRlKCkKIHsKLSAgICBpZiAobV91cGRhdGVNZWRpYVN0YXRlVGFzay5oYXNQZW5kaW5nVGFzaygp
KQorICAgIGlmIChtX3VwZGF0ZU1lZGlhU3RhdGVUYXNrLmlzUGVuZGluZygpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKQEAg
LTgwMzksMTQgKzgwNTYsMTQgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZVBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlKCkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5
YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXJGaXJlZCgpCiB7Ci0g
ICAgaWYgKG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1F1ZXVl
Lmhhc1BlbmRpbmdUYXNrKCkpCisgICAgaWYgKG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhh
dmlvclJlc3RyaWN0aW9uc1Rhc2suaXNQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmICghbWVkaWFTZXNzaW9uKCkuaGFzQmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRT
ZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4gcHJvdGVjdGVkVGhp
cyh0aGlzKTsKLSAgICBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlv
bnNRdWV1ZS5zY2hlZHVsZVRhc2soW3Byb3RlY3RlZFRoaXNdICgpIHsKKyAgICBtX3BsYXliYWNr
Q29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUYXNrLnNjaGVkdWxlVGFzayhbcHJv
dGVjdGVkVGhpc10gKCkgewogICAgICAgICBhdXRvJiBtZWRpYUVsZW1lbnRTZXNzaW9uID0gcHJv
dGVjdGVkVGhpcy0+bWVkaWFTZXNzaW9uKCk7CiAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5p
c1BsYXlpbmcoKSB8fCBtZWRpYUVsZW1lbnRTZXNzaW9uLnN0YXRlKCkgPT0gUGxhdGZvcm1NZWRp
YVNlc3Npb246OkF1dG9wbGF5aW5nIHx8IG1lZGlhRWxlbWVudFNlc3Npb24uc3RhdGUoKSA9PSBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZykKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYmJkZGJiY2I1NDllMDgzMTJmYWQw
OTU2MTE0ZWFmYzM4MDdlMzViMi4uNDRkNDJhM2I5OWE2ZGViZWI4Y2MwZTY1ZjJiMjA5M2NmYzMz
ZjY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTE4NSw3ICsx
ODUsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc2NoZWR1bGVDaGVja1BsYXliYWNr
VGFyZ2V0Q29tcGF0YWJpbGl0eSgpOwotICAgIHZvaWQgY2hlY2tQbGF5YmFja1RhcmdldENvbXBh
dGFibGl0eSgpOworICAgIHZvaWQgY2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGliaWxpdHkoKTsK
ICAgICB2b2lkIHNjaGVkdWxlUmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMoKTsKICAgICB2b2lk
IHNjaGVkdWxlUmVqZWN0UGVuZGluZ1BsYXlQcm9taXNlcyhSZWY8RE9NRXhjZXB0aW9uPiYmKTsK
ICAgICB1c2luZyBQbGF5UHJvbWlzZVZlY3RvciA9IFZlY3RvcjxET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4+OwpAQCAtOTQ0LDIxICs5NDQsMjEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX3NjYW5U
aW1lcjsKICAgICBUaW1lciBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmlj
dGlvbnNUaW1lcjsKICAgICBUaW1lciBtX3NlZWtUb1BsYXliYWNrUG9zaXRpb25FbmRlZFRpbWVy
OwotICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBtX2NvbmZpZ3VyZVRleHRUcmFja3NUYXNrOwot
ICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBtX2NoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRhYmxp
dHlUYXNrOwotICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBtX3VwZGF0ZU1lZGlhU3RhdGVUYXNr
OwotICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBtX21lZGlhRW5naW5lVXBkYXRlZFRhc2s7Cisg
ICAgRXZlbnRMb29wRGVmZXJyYWJsZVRhc2sgbV9jb25maWd1cmVUZXh0VHJhY2tzVGFzazsKKyAg
ICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX2NoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRpYmls
aXR5VGFzazsKKyAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX3VwZGF0ZU1lZGlhU3RhdGVU
YXNrOworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fbWVkaWFFbmdpbmVVcGRhdGVkVGFz
azsKICAgICBEZWZlcnJhYmxlVGFzazxIVE1MTWVkaWFFbGVtZW50PiBtX3VwZGF0ZVBsYXlTdGF0
ZVRhc2s7Ci0gICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fcmVzdW1lVGFza1F1ZXVlOwotICAg
IERlZmVycmFibGVUYXNrPFRpbWVyPiBtX3NlZWtUYXNrUXVldWU7Ci0gICAgRGVmZXJyYWJsZVRh
c2s8VGltZXI+IG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1F1
ZXVlOwotICAgIERlZmVycmFibGVUYXNrPFRpbWVyPiBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5n
ZWRRdWV1ZTsKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Byb21pc2VUYXNrUXVldWU7
Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVl
dWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9yZXNvdXJjZVNlbGVjdGlvblRhc2tR
dWV1ZTsKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNr
UXVldWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9mdWxsc2NyZWVuVGFza1F1ZXVl
OwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fcGxheWJhY2tUYXJnZXRJc1dpcmVsZXNz
UXVldWU7CisgICAgRXZlbnRMb29wRGVmZXJyYWJsZVRhc2sgbV9yZXN1bWVUYXNrOworICAgIEV2
ZW50TG9vcERlZmVycmFibGVUYXNrIG1fc2Vla1Rhc2s7CisgICAgRXZlbnRMb29wRGVmZXJyYWJs
ZVRhc2sgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGFzazsK
KyAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWRU
YXNrOworICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Byb21pc2VUYXNrUXVldWU7CisgICAgRXZl
bnRMb29wVGFza1F1ZXVlIG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlOworICAgIEV2ZW50
TG9vcFRhc2tRdWV1ZSBtX3Jlc291cmNlU2VsZWN0aW9uVGFza1F1ZXVlOworICAgIEV2ZW50TG9v
cFRhc2tRdWV1ZSBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNrUXVldWU7CisgICAgRXZlbnRMb29wVGFz
a1F1ZXVlIG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKKyAgICBFdmVudExvb3BUYXNrUXVldWUgbV9w
bGF5YmFja1RhcmdldElzV2lyZWxlc3NRdWV1ZTsKICAgICBSZWZQdHI8VGltZVJhbmdlcz4gbV9w
bGF5ZWRUaW1lUmFuZ2VzOwogICAgIFVuaXF1ZVJlZjxNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVl
dWU+IG1fYXN5bmNFdmVudFF1ZXVlOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xMTYy
LDcgKzExNjIsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxNZWRpYUtleXM+IG1fbWVkaWFLZXlz
OwogICAgIGJvb2wgbV9hdHRhY2hpbmdNZWRpYUtleXMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9w
bGF5YmFja0Jsb2NrZWRXYWl0aW5nRm9yS2V5IHsgZmFsc2UgfTsKLSAgICBHZW5lcmljVGFza1F1
ZXVlPFRpbWVyPiBtX2VuY3J5cHRlZE1lZGlhUXVldWU7CisgICAgRXZlbnRMb29wVGFza1F1ZXVl
IG1fZW5jcnlwdGVkTWVkaWFRdWV1ZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKaW5k
ZXggZjdkM2FhNjc3ZGExNTc4OTM1NGFjOWZiY2MyMTU2YWQwOWZkN2FlNi4uMWQwMzQ2MWM3NGI1
ZDBhNTI1NTI3YTQ1OGQxNmNmOWNlYjFkM2U0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudC5jcHAKQEAgLTc1LDYgKzc1LDcgQEAgUmVmPE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQK
IAogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1l
bnQmIGVsZW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQorICAg
ICwgbV90YXNrUXVldWUoJmRvY3VtZW50KQogICAgICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQ
dHIoJmVsZW1lbnQpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oCmlu
ZGV4IGNlMjY2MTVmM2QwOGI0ZmIxMjc5ZWU3OTAwODdiNzhhMDdjMDcwMDkuLjdlNDJhNGQzNWI5
Y2VkZGI2NTEwYjMyZDljNTllOWJhOTZjZGI3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbj4gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsK
IAotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fdGFza1F1ZXVlOworICAgIEV2ZW50TG9v
cFRhc2tRdWV1ZSBtX3Rhc2tRdWV1ZTsKICAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IG1f
bWVkaWFFbGVtZW50OwogICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwogICAgIGludCBt
X2ZvbnRTaXplIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVm
ZXJyYWJsZVRhc2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmVycmFibGVUYXNrLmgK
aW5kZXggNjYxODg3Yzc4MjkwMDU0NDQ1NjAwNjZjNThlNDczMWNlYmRhMDQ4MS4uNTVjYTVjMTNm
ZGY2ZWVhZDEwYjc0NDY4NDFjYTUxMGRlODlkNjk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGVmZXJyYWJsZVRhc2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EZWZlcnJhYmxlVGFzay5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDU5ICsyNSw5NSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lu
Y2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXZlbnRMb29w
LmgiCiAjaW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLWNsYXNzIERlZmVycmFibGVUYXNrIDogcHVibGljIENhbk1ha2VXZWFrUHRyPERlZmVy
cmFibGVUYXNrPFQ+PiB7CitjbGFzcyBEZWZlcnJhYmxlVGFza0Jhc2UgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8RGVmZXJyYWJsZVRhc2tCYXNlPiB7CiBwdWJsaWM6Ci0gICAgRGVmZXJyYWJsZVRh
c2soKQotICAgICAgICA6IG1fZGlzcGF0Y2hlcigpCisgICAgdm9pZCBjbG9zZSgpCiAgICAgewor
ICAgICAgICBjYW5jZWxUYXNrKCk7CisgICAgICAgIG1faXNDbG9zZWQgPSB0cnVlOwogICAgIH0K
IAotICAgIERlZmVycmFibGVUYXNrKFQmIHQpCi0gICAgICAgIDogbV9kaXNwYXRjaGVyKCZ0KQor
ICAgIHZvaWQgY2FuY2VsVGFzaygpCiAgICAgeworICAgICAgICB3ZWFrUHRyRmFjdG9yeSgpLnJl
dm9rZUFsbCgpOworICAgICAgICBtX2lzUGVuZGluZyA9IGZhbHNlOwogICAgIH0KIAotICAgIHR5
cGVkZWYgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiBUYXNrRnVuY3Rpb247CisgICAgYm9vbCBpc1Bl
bmRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzUGVuZGluZzsgfQorCitwcm90ZWN0ZWQ6CisgICAg
fkRlZmVycmFibGVUYXNrQmFzZSgpID0gZGVmYXVsdDsKKyAgICBib29sIGlzQ2xvc2VkKCkgY29u
c3QgeyByZXR1cm4gbV9pc0Nsb3NlZDsgfQorICAgIHZvaWQgc2V0SXNQZW5kaW5nKGJvb2wgaXNQ
ZW5kaW5nKSB7IG1faXNQZW5kaW5nID0gaXNQZW5kaW5nOyB9CisKK3ByaXZhdGU6CisgICAgYm9v
bCBtX2lzUGVuZGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsK
K307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgRGVmZXJyYWJsZVRhc2sgOiBwdWJs
aWMgRGVmZXJyYWJsZVRhc2tCYXNlIHsKK3B1YmxpYzoKKyAgICBEZWZlcnJhYmxlVGFzaygpCisg
ICAgICAgIDogbV9kaXNwYXRjaGVyKCkKKyAgICB7IH0KKworICAgIERlZmVycmFibGVUYXNrKFQm
IHQpCisgICAgICAgIDogbV9kaXNwYXRjaGVyKCZ0KQorICAgIHsgfQogCi0gICAgdm9pZCBzY2hl
ZHVsZVRhc2soVGFza0Z1bmN0aW9uJiYgdGFzaykKKyAgICB2b2lkIHNjaGVkdWxlVGFzayhGdW5j
dGlvbjx2b2lkKCk+JiYgdGFzaykKICAgICB7Ci0gICAgICAgIGlmIChtX2lzQ2xvc2VkKQorICAg
ICAgICBpZiAoaXNDbG9zZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBjYW5j
ZWxUYXNrKCk7CiAKLSAgICAgICAgbV9wZW5kaW5nVGFzayA9IHRydWU7CisgICAgICAgIHNldElz
UGVuZGluZyh0cnVlKTsKICAgICAgICAgbV9kaXNwYXRjaGVyLnBvc3RUYXNrKFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldIHsKICAgICAgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgQVNT
RVJUKHdlYWtUaGlzLT5tX3BlbmRpbmdUYXNrKTsKLSAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Bl
bmRpbmdUYXNrID0gZmFsc2U7CisgICAgICAgICAgICBBU1NFUlQod2Vha1RoaXMtPmlzUGVuZGlu
ZygpKTsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5zZXRJc1BlbmRpbmcoZmFsc2UpOwogICAgICAg
ICAgICAgdGFzaygpOwogICAgICAgICB9KTsKICAgICB9CiAKLSAgICB2b2lkIGNsb3NlKCkKK3By
aXZhdGU6CisgICAgVGFza0Rpc3BhdGNoZXI8VD4gbV9kaXNwYXRjaGVyOworfTsKKworLy8gU2lt
aWxhciB0byBEZWZlcnJhYmxlVGFzayBidXQgYmFzZWQgb24gdGhlIEhUTUwgZXZlbnQgbG9vcC4K
K2NsYXNzIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIDogcHVibGljIERlZmVycmFibGVUYXNrQmFz
ZSwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CitwdWJsaWM6CisgICAgRXZl
bnRMb29wRGVmZXJyYWJsZVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAg
ICAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihjb250ZXh0KQorICAgIHsgfQorCisg
ICAgLy8gRklYTUU6IFBhc3MgVGFza1NvdXJjZSBpbnN0ZWFkIG9mIGFzc3VtaW5nIFRhc2tTb3Vy
Y2U6Ok1lZGlhRWxlbWVudC4KKyAgICB2b2lkIHNjaGVkdWxlVGFzayhGdW5jdGlvbjx2b2lkKCk+
JiYgdGFzaykKICAgICB7CisgICAgICAgIGlmIChpc0Nsb3NlZCgpIHx8ICFzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgY2FuY2VsVGFzaygp
OwotICAgICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKLSAgICB9CiAKLSAgICB2b2lkIGNhbmNlbFRh
c2soKQotICAgIHsKLSAgICAgICAgQ2FuTWFrZVdlYWtQdHI8RGVmZXJyYWJsZVRhc2s8VD4+Ojp3
ZWFrUHRyRmFjdG9yeSgpLnJldm9rZUFsbCgpOwotICAgICAgICBtX3BlbmRpbmdUYXNrID0gZmFs
c2U7CisgICAgICAgIHNldElzUGVuZGluZyh0cnVlKTsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50
LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7
CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIEFTU0VSVCh3ZWFrVGhpcy0+aXNQZW5kaW5nKCkpOworICAgICAgICAgICAgd2Vh
a1RoaXMtPnNldElzUGVuZGluZyhmYWxzZSk7CisgICAgICAgICAgICB0YXNrKCk7CisgICAgICAg
IH0pOwogICAgIH0KLSAgICBib29sIGhhc1BlbmRpbmdUYXNrKCkgY29uc3QgeyByZXR1cm4gbV9w
ZW5kaW5nVGFzazsgfQotCi1wcml2YXRlOgotICAgIFRhc2tEaXNwYXRjaGVyPFQ+IG1fZGlzcGF0
Y2hlcjsKLSAgICBib29sIG1fcGVuZGluZ1Rhc2sgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0Ns
b3NlZCB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmlj
VGFza1F1ZXVlLmgKaW5kZXggNmVhZDQzNTNkYzk5MTg4MjMxNmRkMzViOWM2ODlhOWVmYjYwNDE3
My4uOTRiMzNjZjQ2Y2IzOGUwYzdlNzAyNzM0MjI0OWM1NzYxM2JhZjczZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaApAQCAtMjUsNiArMjUsOSBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisj
aW5jbHVkZSAiRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CkBAIC03NSw4ICs3OCwzNSBAQCBwcml2YXRlOgogICAgIERlcXVlPEZ1
bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1Rhc2tzIFdURl9HVUFSREVEX0JZX0xPQ0soc19zaGFy
ZWRMb2NrKTsKIH07CiAKK2NsYXNzIEdlbmVyaWNUYXNrUXVldWVCYXNlIDogcHVibGljIENhbk1h
a2VXZWFrUHRyPEdlbmVyaWNUYXNrUXVldWVCYXNlPiB7CitwdWJsaWM6CisgICAgYm9vbCBoYXNQ
ZW5kaW5nVGFza3MoKSBjb25zdCB7IHJldHVybiBtX3BlbmRpbmdUYXNrczsgfQorICAgIGJvb2wg
aXNDbG9zZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ2xvc2VkOyB9CisKKyAgICB2b2lkIGNsb3Nl
KCkKKyAgICB7CisgICAgICAgIGNhbmNlbEFsbFRhc2tzKCk7CisgICAgICAgIG1faXNDbG9zZWQg
PSB0cnVlOworICAgIH0KKworICAgIHZvaWQgY2FuY2VsQWxsVGFza3MoKQorICAgIHsKKyAgICAg
ICAgd2Vha1B0ckZhY3RvcnkoKS5yZXZva2VBbGwoKTsKKyAgICAgICAgbV9wZW5kaW5nVGFza3Mg
PSAwOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIH5HZW5lcmljVGFza1F1ZXVlQmFzZSgpID0g
ZGVmYXVsdDsKKyAgICB2b2lkIGluY3JlbWVudFBlbmRpbmdUYXNrcygpIHsgKyttX3BlbmRpbmdU
YXNrczsgfQorICAgIHZvaWQgZGVjcmVtZW50UGVuZGluZ1Rhc2tzKCkgeyBBU1NFUlQobV9wZW5k
aW5nVGFza3MpOyAtLW1fcGVuZGluZ1Rhc2tzOyB9CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQg
bV9wZW5kaW5nVGFza3MgeyAwIH07CisgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKK307
CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgR2VuZXJpY1Rhc2tRdWV1ZSA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxHZW5lcmljVGFza1F1ZXVlPFQ+PiB7CitjbGFzcyBHZW5lcmljVGFz
a1F1ZXVlIDogcHVibGljIEdlbmVyaWNUYXNrUXVldWVCYXNlIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBHZW5lcmljVGFza1F1ZXVlKCkKQEAgLTkzLDkgKzEy
MywxMCBAQCBwdWJsaWM6CiAKICAgICBleHBsaWNpdCBHZW5lcmljVGFza1F1ZXVlKFQqIHQpCiAg
ICAgICAgIDogbV9kaXNwYXRjaGVyKG1ha2VVbmlxdWVSZWY8VGFza0Rpc3BhdGNoZXI8VD4+KHQp
KQotICAgICAgICAsIG1faXNDbG9zZWQoIXQpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgICAgICBpZiAoIXQpCisgICAgICAgICAgICBjbG9zZSgpOwogICAgIH0K
IAogICAgIH5HZW5lcmljVGFza1F1ZXVlKCkKQEAgLTEwNCw0MiArMTM1LDQ1IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIG1fZGlzcGF0Y2hlci0+cG9zdFRhc2soW2Rpc3BhdGNoZXIgPSBXVEZNb3Zl
KG1fZGlzcGF0Y2hlcildIHsgfSk7CiAgICAgfQogCi0gICAgdHlwZWRlZiBXVEY6OkZ1bmN0aW9u
PHZvaWQgKCk+IFRhc2tGdW5jdGlvbjsKLQotICAgIHZvaWQgZW5xdWV1ZVRhc2soVGFza0Z1bmN0
aW9uJiYgdGFzaykKKyAgICB2b2lkIGVucXVldWVUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNr
KQogICAgIHsKLSAgICAgICAgaWYgKG1faXNDbG9zZWQpCisgICAgICAgIGlmIChpc0Nsb3NlZCgp
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICsrbV9wZW5kaW5nVGFza3M7CisgICAg
ICAgIGluY3JlbWVudFBlbmRpbmdUYXNrcygpOwogICAgICAgICBtX2Rpc3BhdGNoZXItPnBvc3RU
YXNrKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayld
IHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgQVNTRVJUKHdlYWtUaGlzLT5tX3BlbmRpbmdUYXNrcyk7Ci0gICAgICAgICAg
ICAtLXdlYWtUaGlzLT5tX3BlbmRpbmdUYXNrczsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kZWNy
ZW1lbnRQZW5kaW5nVGFza3MoKTsKICAgICAgICAgICAgIHRhc2soKTsKICAgICAgICAgfSk7CiAg
ICAgfQogCi0gICAgdm9pZCBjbG9zZSgpCi0gICAgewotICAgICAgICBjYW5jZWxBbGxUYXNrcygp
OwotICAgICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKLSAgICB9Citwcml2YXRlOgorICAgIFVuaXF1
ZVJlZjxUYXNrRGlzcGF0Y2hlcjxUPj4gbV9kaXNwYXRjaGVyOworfTsKIAotICAgIHZvaWQgY2Fu
Y2VsQWxsVGFza3MoKQotICAgIHsKLSAgICAgICAgQ2FuTWFrZVdlYWtQdHI8R2VuZXJpY1Rhc2tR
dWV1ZTxUPj46OndlYWtQdHJGYWN0b3J5KCkucmV2b2tlQWxsKCk7Ci0gICAgICAgIG1fcGVuZGlu
Z1Rhc2tzID0gMDsKLSAgICB9CisvLyBTaW1pbGFyIHRvIEdlbmVyaWNUYXNrUXVldWUgYnV0IGJh
c2VkIG9uIHRoZSBIVE1MIGV2ZW50IGxvb3AuCitjbGFzcyBFdmVudExvb3BUYXNrUXVldWUgOiBw
dWJsaWMgR2VuZXJpY1Rhc2tRdWV1ZUJhc2UsIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIgeworcHVibGljOgorICAgIEV2ZW50TG9vcFRhc2tRdWV1ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQorICAgICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNv
bnRleHQpCisgICAgeyB9CiAKLSAgICBib29sIGhhc1BlbmRpbmdUYXNrcygpIGNvbnN0IHsgcmV0
dXJuIG1fcGVuZGluZ1Rhc2tzOyB9Ci0gICAgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNDbG9zZWQ7IH0KKyAgICAvLyBGSVhNRTogUGFzcyBhIFRhc2tTb3VyY2UgaW5zdGVhZCBv
ZiBhc3N1bWluZyBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQuCisgICAgdm9pZCBlbnF1ZXVlVGFz
ayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKKyAgICB7CisgICAgICAgIGlmIChpc0Nsb3NlZCgp
IHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgICAgICByZXR1cm47CiAKLXBy
aXZhdGU6Ci0gICAgVW5pcXVlUmVmPFRhc2tEaXNwYXRjaGVyPFQ+PiBtX2Rpc3BhdGNoZXI7Ci0g
ICAgdW5zaWduZWQgbV9wZW5kaW5nVGFza3MgeyAwIH07Ci0gICAgYm9vbCBtX2lzQ2xvc2VkIHsg
ZmFsc2UgfTsKKyAgICAgICAgaW5jcmVtZW50UGVuZGluZ1Rhc2tzKCk7CisgICAgICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1l
ZGlhRWxlbWVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0YXNrID0gV1RGTW92
ZSh0YXNrKV0geworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB3ZWFrVGhpcy0+ZGVjcmVtZW50UGVuZGluZ1Rhc2tzKCk7Cisg
ICAgICAgICAgICB0YXNrKCk7CisgICAgICAgIH0pOworICAgIH0KIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCmluZGV4IDBj
NDFjNGMyMDE3NTg4OTgzNDhkODRjN2E0MjhjZTY5Y2M2MWE4YTkuLmNlMTQ1NzY1MGUzMjMwNTM0
ZmM2YmRmM2JmMmQxMzFmMjMyNTViZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcApAQCAtNzEsNyArNzEsNyBAQCBSZW1vdGVDb21t
YW5kTGlzdGVuZXI6On5SZW1vdGVDb21tYW5kTGlzdGVuZXIoKSA9IGRlZmF1bHQ7CiAKIHZvaWQg
UmVtb3RlQ29tbWFuZExpc3RlbmVyOjpzY2hlZHVsZVN1cHBvcnRlZENvbW1hbmRzVXBkYXRlKCkK
IHsKLSAgICBpZiAoIW1fdXBkYXRlQ29tbWFuZHNUYXNrLmhhc1BlbmRpbmdUYXNrKCkpIHsKKyAg
ICBpZiAoIW1fdXBkYXRlQ29tbWFuZHNUYXNrLmlzUGVuZGluZygpKSB7CiAgICAgICAgIG1fdXBk
YXRlQ29tbWFuZHNUYXNrLnNjaGVkdWxlVGFzayhbdGhpc10gKCkgIHsKICAgICAgICAgICAgIHVw
ZGF0ZVN1cHBvcnRlZENvbW1hbmRzKCk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFs
Lm1tCmluZGV4IDQwNjhkYTE3NDUzODM1MjhmM2M3ZDFmZGMyOWEwZGUzYjhkNjcxMjguLjU0ZDA1
ZGE4YjEzMDNiZTkzYmYwZDQ5Mjc4YjBkY2Y5YzZhMjg0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0
YWwubW0KQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIEdQVUJ1ZmZlcjo6cmVnaXN0ZXJNYXBwaW5n
Q2FsbGJhY2soTWFwcGluZ0NhbGxiYWNrJiYgY2FsbGJhY2ssIGJvb2wgaXNSZWFkLAogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKCFtX21hcHBpbmdDYWxsYmFjayAmJiAhbV9t
YXBwaW5nQ2FsbGJhY2tUYXNrLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIEFTU0VSVCghbV9tYXBw
aW5nQ2FsbGJhY2sgJiYgIW1fbWFwcGluZ0NhbGxiYWNrVGFzay5pc1BlbmRpbmcoKSk7CiAKICAg
ICAvLyBBbiBleGlzdGluZyBjYWxsYmFjayBtZWFucyB0aGlzIGJ1ZmZlciBpcyBpbiB0aGUgbWFw
cGVkIHN0YXRlLgogICAgIG1fbWFwcGluZ0NhbGxiYWNrID0gUGVuZGluZ01hcHBpbmdDYWxsYmFj
azo6Y3JlYXRlKFdURk1vdmUoY2FsbGJhY2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW0KaW5kZXgg
Y2IzMDI4YTA5NGJlOTE5MjE2ZTkyZTc3OTBiNTU2NzFmNGFhMjYyOS4uYWUxYjQyYjU5NDRmNDZi
OWYyN2RhOTBlNjQxNmM2ZGJmMGIwNWExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW0KQEAgLTk2
LDcgKzk2LDcgQEAgdm9pZCBHUFVRdWV1ZTo6c3VibWl0KFZlY3RvcjxSZWY8R1BVQ29tbWFuZEJ1
ZmZlcj4+JiYgY29tbWFuZEJ1ZmZlcnMpCiAgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKICAgICB9CiAKLSAgICBpZiAobV9wcmVzZW50VGFzay5oYXNQZW5kaW5nVGFzaygpIHx8ICFt
X2RldmljZSB8fCAhbV9kZXZpY2UtPnN3YXBDaGFpbigpKQorICAgIGlmIChtX3ByZXNlbnRUYXNr
LmlzUGVuZGluZygpIHx8ICFtX2RldmljZSB8fCAhbV9kZXZpY2UtPnN3YXBDaGFpbigpKQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBJZiBhIEdQVVN3YXBDaGFpbiBleGlzdHMsIGVuc3VyZSB0
aGF0IGEgcHJlc2VudCBpcyBzY2hlZHVsZWQgYWZ0ZXIgYWxsIGNvbW1hbmQgYnVmZmVycy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>