<?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>180769</bug_id>
          
          <creation_ts>2017-12-13 14:38:22 -0800</creation_ts>
          <short_desc>Crash inside ImageLoader::updateFromElement()</short_desc>
          <delta_ts>2022-02-09 10:13:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>180729</dependson>
    
    <dependson>180855</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1381295</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-13 14:38:22 -0800</bug_when>
    <thetext>Because ImageLoader::updateFromElement() can send a sync IPC with the following stack trace and execute arbitrary scripts while waiting for the response, it&apos;s not safe to call this function where NoEventDispatchAssertion is present.

3 WebKit: IPC::Connection::SyncMessageState::dispatchMessages(IPC::Connection*)
  3 WebKit: IPC::Connection::waitForSyncReply(unsigned long long, WTF::Seconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;)
    3 WebKit: IPC::Connection::sendSyncMessage(unsigned long long, std::__1::unique_ptr&lt;IPC::Encoder, std::__1::default_delete&lt;IPC::Encoder&gt; &gt;, WTF::Seconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;)
      3 WebKit: bool IPC::Connection::sendSync&lt;Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue&gt;(Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue&amp;&amp;, Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue::Reply&amp;&amp;, unsigned long long, WTF::Seconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;)
        3 WebKit: WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue(WebCore::SessionID, WebCore::URL const&amp;, WebCore::URL const&amp;)
          3 WebCore: WebCore::verifyVaryingRequestHeaders(WTF::Vector&lt;std::__1::pair&lt;WTF::String, WTF::String&gt;, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::ResourceRequest const&amp;, WebCore::SessionID)
            3 WebCore: WebCore::CachedResource::varyHeaderValuesMatch(WebCore::ResourceRequest const&amp;)
              3 WebCore: WebCore::CachedResourceLoader::determineRevalidationPolicy(WebCore::CachedResource::Type, WebCore::CachedResourceRequest&amp;, WebCore::CachedResource*, WebCore::CachedResourceLoader::ForPreload, WebCore::CachedResourceLoader::DeferOption) const
                3 WebCore: WebCore::CachedResourceLoader::requestResource(WebCore::CachedResource::Type, WebCore::CachedResourceRequest&amp;&amp;, WebCore::CachedResourceLoader::ForPreload, WebCore::CachedResourceLoader::DeferOption)
                  3 WebCore: WebCore::CachedResourceLoader::requestImage(WebCore::CachedResourceRequest&amp;&amp;)
                    3 WebCore: WebCore::ImageLoader::updateFromElement()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381296</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-13 14:38:42 -0800</bug_when>
    <thetext>&lt;rdar://problem/35278782&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381305</commentid>
    <comment_count>2</comment_count>
      <attachid>329262</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-13 14:50:42 -0800</bug_when>
    <thetext>Created attachment 329262
Fixes the crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381345</commentid>
    <comment_count>3</comment_count>
      <attachid>329262</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-13 16:05:46 -0800</bug_when>
    <thetext>Comment on attachment 329262
Fixes the crash

Clearing flags on attachment: 329262

Committed r225878: &lt;https://trac.webkit.org/changeset/225878&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381346</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-13 16:05:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381935</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-14 17:36:17 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 180855</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329262</attachid>
            <date>2017-12-13 14:50:42 -0800</date>
            <delta_ts>2017-12-13 16:05:46 -0800</delta_ts>
            <desc>Fixes the crash</desc>
            <filename>bug-180769-20171213145042.patch</filename>
            <type>text/plain</type>
            <size>19708</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNTg3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEyLTEzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyYXNoIGluc2lkZSBJbWFnZUxv
YWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNzY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTI3ODc4
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhl
ZCB0aGUgY3Jhc2ggYnkgbW92aW5nIGFsbCBjYWxsIHNpdGVzIG9mIEltYWdlTG9hZGVyOjp1cGRh
dGVGcm9tRWxlbWVudCgpIHRvIGJlIHBvc3QgaW5zZXJ0aW9uIGNhbGxiYWNrcworICAgICAgICB3
aGVyZSBpdCdzIHNhZmUgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgc2NyaXB0cy4KKworICAgICAgICBO
byBuZXcgdGVzdCBzaW5jZSBleGlzdGluZyB0ZXN0cyBjb3ZlciB0aGlzIHdpdGggYSBuZXdseSBh
ZGRlZCByZWxlYXNlIGFzc2VydCBpbiBJbWFnZUxvYWRlci4KKworICAgICAgICAqIGh0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojpp
bnNlcnRlZEludG9BbmNlc3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50
OjpkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKTogRXh0cmFjdGVkIGZyb20gaW5zZXJ0ZWRJbnRvQW5j
ZXN0b3IgdG8gY2FsbAorICAgICAgICBzZWxlY3RJbWFnZVNvdXJjZSBvciB1cGRhdGVGcm9tRWxl
bWVudC4KKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuaDogTWFkZSBtYW55IG1lbWJl
ciBmdW5jdGlvbnMgZmluYWwuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycyk6
IERlbGF5IHRoZSBjYWxsIHRvIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgpIGluCisg
ICAgICAgIEltYWdlSW5wdXRUeXBlIHVzaW5nIGEgcG9zdCBzdHlsZSByZXNvbHV0aW9uIGNhbGxi
YWNrLgorICAgICAgICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MUGljdHVyZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBpY3R1cmVFbGVt
ZW50Ojpzb3VyY2VzQ2hhbmdlZCk6IFN0b3JlIHRoZSBsaXN0IG9mIGNoaWxkIGltYWdlIGVsZW1l
bnRzIGludG8gYSB2ZWN0b3IgYmVmb3JlCisgICAgICAgIGNhbGxpbmcgc2VsZWN0SW1hZ2VTb3Vy
Y2Ugc2luY2UgZWFjaCBjYWxsIG1heSBleGVjdXRlIGFyYml0cmFyeSBzY3JpcHRzLgorICAgICAg
ICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNv
dXJjZUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKTogRGVsYXkgdGhlIGNhbGwgdG8gSW1h
Z2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKKyAgICAgICAgdXNpbmcgYSBwb3N0IHN0eWxl
IHJlc29sdXRpb24gY2FsbGJhY2suCisgICAgICAgIChXZWJDb3JlOjpIVE1MU291cmNlRWxlbWVu
dDo6ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSk6IEV4dHJhY3RlZCBmcm9tIGluc2VydGVkSW50b0Fu
Y2VzdG9yLgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0Vs
ZW1lbnQ6OnVwZGF0ZUFmdGVyU3R5bGVSZXNvbHV0aW9uKTogRXh0cmFjdGVkIGZyb20gZGlkQXR0
YWNoUmVuZGVyZXJzLgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1
dFR5cGU6Om5lZWRzUG9zdFN0eWxlUmVzb2x1dGlvbkNhbGxiYWNrKTogQWRkZWQuIFJldHVybnMg
dHJ1ZSBzbyB0aGF0IEhUTUxJbnB1dEVsZW1lbnQncworICAgICAgICBkaWRBdHRhY2hSZW5kZXJl
cnMgd291bGQgcmVnaXN0ZXIgYSBwb3N0IHN0eWxlIHJlc29sdXRpb24gY2FsbGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6dXBkYXRlQWZ0ZXJTdHlsZVJlc29sdXRpb24p
OiBFeHRyYWN0ZWQgZnJvbSBhdHRhY2guCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUlucHV0VHlw
ZTo6YXR0YWNoKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmg6Cisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpuZWVkc1Bvc3RTdHlsZVJlc29sdXRpb25DYWxsYmFjayk6IEFkZGVkLiBBbGwgYnV0IEltYWdl
SW5wdXRUeXBlIHJldHVybnMgZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnVw
ZGF0ZUFmdGVyU3R5bGVSZXNvbHV0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFR5cGU6OmF0dGFjaCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAg
ICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VM
b2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KTogQWRkZWQgYSByZWxlYXNlIGFzc2VydGlvbi4gVGhl
cmUgaXMgbm8gZGlyZWN0IHNlY3VyaXR5IGltcGxpY2F0aW9uCisgICAgICAgIHNvIHRoZXJlIGlz
IG5vIG5lZWQgdG8gdXNlIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04g
aGVyZS4KKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ltYWdlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKToKKyAgICAgICAg
KiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisKIDIwMTctMTItMTMgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5kZXJJbWFnZSBjYW4gYmUgZGVzdHJveWVkIGV2
ZW4gYmVmb3JlIHNldHRpbmcgdGhlIHN0eWxlIG9uIGl0LgpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjU4NzApCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTUsNiAr
Mjk1LDggQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcgogCiBOb2Rl
OjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBIVE1MSW1hZ2VFbGVtZW50OjppbnNlcnRlZElu
dG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmIHBh
cmVudE9mSW5zZXJ0ZWRUcmVlKQogeworICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG9BbmNl
c3RvcihpbnNlcnRpb25UeXBlLCBwYXJlbnRPZkluc2VydGVkVHJlZSk7CisKICAgICBpZiAobV9m
b3JtU2V0QnlQYXJzZXIpIHsKICAgICAgICAgbV9mb3JtID0gbV9mb3JtU2V0QnlQYXJzZXI7CiAg
ICAgICAgIG1fZm9ybVNldEJ5UGFyc2VyID0gbnVsbHB0cjsKQEAgLTMxMSwyNCArMzEzLDI5IEBA
IE5vZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IEhUTUxJbWEKICAgICAgICAgaWYgKG1f
Zm9ybSkKICAgICAgICAgICAgIG1fZm9ybS0+cmVnaXN0ZXJJbWdFbGVtZW50KHRoaXMpOwogICAg
IH0KLSAgICAvLyBJbnNlcnQgbmVlZHMgdG8gY29tcGxldGUgZmlyc3QsIGJlZm9yZSB3ZSBzdGFy
dCB1cGRhdGluZyB0aGUgbG9hZGVyLiBMb2FkZXIgZGlzcGF0Y2hlcyBldmVudHMgd2hpY2ggY291
bGQgcmVzdWx0Ci0gICAgLy8gaW4gY2FsbGJhY2tzIGJhY2sgdG8gdGhpcyBub2RlLgotICAgIE5v
ZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydE5vdGlmaWNhdGlvblJlcXVlc3Qg
PSBIVE1MRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoaW5zZXJ0aW9uVHlwZSwgcGFyZW50
T2ZJbnNlcnRlZFRyZWUpOwogCiAgICAgaWYgKGluc2VydGlvblR5cGUuY29ubmVjdGVkVG9Eb2N1
bWVudCAmJiAhbV9wYXJzZWRVc2VtYXAuaXNOdWxsKCkpCiAgICAgICAgIGRvY3VtZW50KCkuYWRk
SW1hZ2VFbGVtZW50QnlVc2VtYXAoKm1fcGFyc2VkVXNlbWFwLmltcGwoKSwgKnRoaXMpOwogCiAg
ICAgaWYgKGlzPEhUTUxQaWN0dXJlRWxlbWVudD4ocGFyZW50Tm9kZSgpKSkgewogICAgICAgICBz
ZXRQaWN0dXJlRWxlbWVudCgmZG93bmNhc3Q8SFRNTFBpY3R1cmVFbGVtZW50PigqcGFyZW50Tm9k
ZSgpKSk7Ci0gICAgICAgIHNlbGVjdEltYWdlU291cmNlKCk7CisgICAgICAgIHJldHVybiBJbnNl
cnRlZEludG9BbmNlc3RvclJlc3VsdDo6TmVlZHNQb3N0SW5zZXJ0aW9uQ2FsbGJhY2s7CiAgICAg
fQogCiAgICAgLy8gSWYgd2UgaGF2ZSBiZWVuIGluc2VydGVkIGZyb20gYSByZW5kZXJlci1sZXNz
IGRvY3VtZW50LAogICAgIC8vIG91ciBsb2FkZXIgbWF5IGhhdmUgbm90IGZldGNoZWQgdGhlIGlt
YWdlLCBzbyBkbyBpdCBub3cuCiAgICAgaWYgKGluc2VydGlvblR5cGUuY29ubmVjdGVkVG9Eb2N1
bWVudCAmJiAhbV9pbWFnZUxvYWRlci5pbWFnZSgpKQotICAgICAgICBtX2ltYWdlTG9hZGVyLnVw
ZGF0ZUZyb21FbGVtZW50KCk7CisgICAgICAgIHJldHVybiBJbnNlcnRlZEludG9BbmNlc3RvclJl
c3VsdDo6TmVlZHNQb3N0SW5zZXJ0aW9uQ2FsbGJhY2s7CisKKyAgICByZXR1cm4gSW5zZXJ0ZWRJ
bnRvQW5jZXN0b3JSZXN1bHQ6OkRvbmU7Cit9CiAKLSAgICByZXR1cm4gaW5zZXJ0Tm90aWZpY2F0
aW9uUmVxdWVzdDsKK3ZvaWQgSFRNTEltYWdlRWxlbWVudDo6ZGlkRmluaXNoSW5zZXJ0aW5nTm9k
ZSgpCit7CisgICAgaWYgKHBpY3R1cmVFbGVtZW50KCkpCisgICAgICAgIHNlbGVjdEltYWdlU291
cmNlKCk7CisgICAgZWxzZSBpZiAoaXNDb25uZWN0ZWQoKSkKKyAgICAgICAgbV9pbWFnZUxvYWRl
ci51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCiB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnJlbW92
ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmIG9s
ZFBhcmVudE9mUmVtb3ZlZFRyZWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuaAkocmV2aXNpb24gMjI1ODcwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDkgKzkwLDkgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlTG9hZGVy
Lmhhc1BlbmRpbmdBY3Rpdml0eSgpOyB9CiAKLSAgICBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBv
aW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGNhbkNvbnRh
aW5SYW5nZUVuZFBvaW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgaW1hZ2VTb3VyY2VVUkwoKSBjb25zdCBvdmVycmlkZTsKKyAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGltYWdlU291cmNlVVJMKCkgY29uc3QgZmluYWw7CiAKICAgICBi
b29sIGhhc1NoYWRvd0NvbnRyb2xzKCkgY29uc3QgeyByZXR1cm4gbV9leHBlcmltZW50YWxJbWFn
ZU1lbnVFbmFibGVkOyB9CiAgICAgCkBAIC0xMDUsMjYgKzEwNSwyNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3Vt
ZW50JiBuZXdEb2N1bWVudCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICBib29s
IGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5h
bDsKKyAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIGZpbmFsOwogCi0gICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKLSAg
ICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0
eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
QXR0YWNoUmVuZGVyZXJzKCkgZmluYWw7CisgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBmaW5hbDsKICAgICB2b2lkIHNldEJlc3RGaXRVUkxBbmREUFJGcm9tSW1hZ2VDYW5kaWRh
dGUoY29uc3QgSW1hZ2VDYW5kaWRhdGUmKTsKIAotICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24o
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgZmlu
YWw7CiAKLSAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92
ZXJyaWRlOwotICAgIGJvb2wgYXR0cmlidXRlQ29udGFpbnNVUkwoY29uc3QgQXR0cmlidXRlJikg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgU3RyaW5nIGNvbXBsZXRlVVJMc0luQXR0cmlidXRlVmFsdWUo
Y29uc3QgVVJMJiBiYXNlLCBjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICBi
b29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IGZpbmFsOworICAgIGJv
b2wgYXR0cmlidXRlQ29udGFpbnNVUkwoY29uc3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7Cisg
ICAgU3RyaW5nIGNvbXBsZXRlVVJMc0luQXR0cmlidXRlVmFsdWUoY29uc3QgVVJMJiBiYXNlLCBj
b25zdCBBdHRyaWJ1dGUmKSBjb25zdCBmaW5hbDsKIAotICAgIGJvb2wgZHJhZ2dhYmxlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBkcmFnZ2FibGUoKSBjb25zdCBmaW5hbDsKIAotICAgIHZv
aWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNl
dDxVUkw+JikgY29uc3QgZmluYWw7CiAKLSAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBp
bnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJO
b2RlJikgb3ZlcnJpZGU7CisgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJ
bnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOworICAgIHZv
aWQgZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlZEZyb21B
bmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogCiAgICAgYm9vbCBp
c0Zvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgRm9ybU5hbWVkSXRlbSogYXNGb3JtTmFtZWRJdGVtKCkgZmluYWwgeyByZXR1cm4gdGhpczsg
fQpAQCAtMTUyLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0cnlDcmVhdGVJbWFnZUNv
bnRyb2xzKCk7CiAgICAgdm9pZCBkZXN0cm95SW1hZ2VDb250cm9scygpOwogICAgIGJvb2wgaGFz
SW1hZ2VDb250cm9scygpIGNvbnN0OwotICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAgICAgZnJpZW5k
IGNsYXNzIEhUTUxQaWN0dXJlRWxlbWVudDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gMjI1ODcwKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsNyBAQAog
I2luY2x1ZGUgIlNlYXJjaElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5j
bHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIlN0eWxlVHJlZVJlc29sdmVyLmgiCiAj
aW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0xhbmd1
YWdlLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTg0NSw3ICs4NDYsMTEgQEAg
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcgogewogICAgIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKTsKIAotICAgIG1faW5wdXRU
eXBlLT5hdHRhY2goKTsKKyAgICBpZiAobV9pbnB1dFR5cGUtPm5lZWRzUG9zdFN0eWxlUmVzb2x1
dGlvbkNhbGxiYWNrKCkpIHsKKyAgICAgICAgU3R5bGU6OnF1ZXVlUG9zdFJlc29sdXRpb25DYWxs
YmFjayhbcHJvdGVjdGVkRWxlbWVudCA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgICAgICBw
cm90ZWN0ZWRFbGVtZW50LT5tX2lucHV0VHlwZS0+dXBkYXRlQWZ0ZXJTdHlsZVJlc29sdXRpb24o
KTsKKyAgICAgICAgfSk7CisgICAgfQogCiAgICAgaWYgKGRvY3VtZW50KCkuZm9jdXNlZEVsZW1l
bnQoKSA9PSB0aGlzKSB7CiAgICAgICAgIGRvY3VtZW50KCkudmlldygpLT5xdWV1ZVBvc3RMYXlv
dXRDYWxsYmFjayhbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgJKHJldmlzaW9uIDIyNTg3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcg
KzQwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOwogICAgIEluc2VydGVkSW50b0Fu
Y2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5l
ck5vZGUmKSBmaW5hbDsKLSAgICB2b2lkIGRpZEZpbmlzaEluc2VydGluZ05vZGUoKTsKKyAgICB2
b2lkIGRpZEZpbmlzaEluc2VydGluZ05vZGUoKSBmaW5hbDsKIAogICAgIHZvaWQgcHJvY2Vzcygp
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDIyNTg3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsOCArNTYsMTEgQEAgUmVmPEhUTUxQaWN0dXJl
RWxlbWVudD4gSFRNTFBpY3R1cmVFbGVtZQogCiB2b2lkIEhUTUxQaWN0dXJlRWxlbWVudDo6c291
cmNlc0NoYW5nZWQoKQogeworICAgIFZlY3RvcjxSZWY8SFRNTEltYWdlRWxlbWVudD4sIDQ+IGlt
YWdlRWxlbWVudHM7CiAgICAgZm9yIChhdXRvJiBlbGVtZW50IDogY2hpbGRyZW5PZlR5cGU8SFRN
TEltYWdlRWxlbWVudD4oKnRoaXMpKQotICAgICAgICBlbGVtZW50LnNlbGVjdEltYWdlU291cmNl
KCk7CisgICAgICAgIGltYWdlRWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOworICAgIGZvciAoYXV0
byYgZWxlbWVudCA6IGltYWdlRWxlbWVudHMpCisgICAgICAgIGVsZW1lbnQtPnNlbGVjdEltYWdl
U291cmNlKCk7CiB9CiAKIGJvb2wgSFRNTFBpY3R1cmVFbGVtZW50Ojp2aWV3cG9ydENoYW5nZUFm
ZmVjdGVkUGljdHVyZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3Vy
Y2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3Vy
Y2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI1ODcwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU291cmNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDExICs3NCwxOSBAQCBO
b2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBIVE1MU291CiAgICAgICAgIGVsc2UKICNl
bmRpZgogICAgICAgICBpZiAoaXM8SFRNTFBpY3R1cmVFbGVtZW50PigqcGFyZW50KSkKLSAgICAg
ICAgICAgIGRvd25jYXN0PEhUTUxQaWN0dXJlRWxlbWVudD4oKnBhcmVudCkuc291cmNlc0NoYW5n
ZWQoKTsKKyAgICAgICAgICAgIHJldHVybiBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdDo6TmVl
ZHNQb3N0SW5zZXJ0aW9uQ2FsbGJhY2s7CisKICAgICB9CiAgICAgcmV0dXJuIEluc2VydGVkSW50
b0FuY2VzdG9yUmVzdWx0OjpEb25lOwogfQogCit2b2lkIEhUTUxTb3VyY2VFbGVtZW50OjpkaWRG
aW5pc2hJbnNlcnRpbmdOb2RlKCkKK3sKKyAgICBhdXRvKiBwYXJlbnQgPSBwYXJlbnRFbGVtZW50
KCk7CisgICAgaWYgKGlzPEhUTUxQaWN0dXJlRWxlbWVudD4oKnBhcmVudCkpCisgICAgICAgIGRv
d25jYXN0PEhUTUxQaWN0dXJlRWxlbWVudD4oKnBhcmVudCkuc291cmNlc0NoYW5nZWQoKTsKK30K
Kwogdm9pZCBIVE1MU291cmNlRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlw
ZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKIHsg
ICAgICAgIAogICAgIEhUTUxFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKHJlbW92YWxUeXBl
LCBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNvdXJjZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
b3VyY2VFbGVtZW50LmgJKHJldmlzaW9uIDIyNTg3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNvdXJjZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBwcml2
YXRlOgogICAgIEhUTUxTb3VyY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogICAgIAogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0Fu
Y2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZEZpbmlzaEluc2VydGluZ05vZGUoKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0
b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0
cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IGZpbmFsOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyNTg3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQz
LDYgKzQzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgogI2luY2x1ZGUgIlNjcmlwdENv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN0eWxlVHJlZVJl
c29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiAjaWYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpAQCAtOTAsMTQgKzkxLDIxIEBAIHZvaWQgSFRNTFZp
ZGVvRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXIKIAogICAgIHVwZGF0ZURpc3BsYXlTdGF0ZSgp
OwogICAgIGlmIChzaG91bGREaXNwbGF5UG9zdGVySW1hZ2UoKSkgewotICAgICAgICBpZiAoIW1f
aW1hZ2VMb2FkZXIpCi0gICAgICAgICAgICBtX2ltYWdlTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1
ZTxIVE1MSW1hZ2VMb2FkZXI+KCp0aGlzKTsKLSAgICAgICAgbV9pbWFnZUxvYWRlci0+dXBkYXRl
RnJvbUVsZW1lbnQoKTsKLSAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVy
ZXIoKSkKLSAgICAgICAgICAgIHJlbmRlcmVyLT5pbWFnZVJlc291cmNlKCkuc2V0Q2FjaGVkSW1h
Z2UobV9pbWFnZUxvYWRlci0+aW1hZ2UoKSk7CisgICAgICAgIFN0eWxlOjpxdWV1ZVBvc3RSZXNv
bHV0aW9uQ2FsbGJhY2soW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+dXBkYXRlQWZ0ZXJTdHlsZVJlc29sdXRpb24oKTsKKyAgICAg
ICAgfSk7CiAgICAgfQogfQogCit2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnVwZGF0ZUFmdGVyU3R5
bGVSZXNvbHV0aW9uKCkKK3sKKyAgICBpZiAoIW1faW1hZ2VMb2FkZXIpCisgICAgICAgIG1faW1h
Z2VMb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEhUTUxJbWFnZUxvYWRlcj4oKnRoaXMpOworICAg
IG1faW1hZ2VMb2FkZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgaWYgKGF1dG8qIHJlbmRl
cmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXItPmltYWdlUmVzb3VyY2Uo
KS5zZXRDYWNoZWRJbWFnZShtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKTsKK30KKwogdm9pZCBIVE1M
VmlkZW9FbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgJKHJldmlzaW9uIDIyNTg3MCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC05Niw2ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVJlc2l6ZUV2ZW50
SWZTaXplQ2hhbmdlZCgpIGZpbmFsOwogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgZmluYWw7
CisgICAgdm9pZCB1cGRhdGVBZnRlclN0eWxlUmVzb2x1dGlvbigpOwogICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFs
OwogICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5w
dXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcAkocmV2aXNpb24gMjI1ODcwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiwxMCArMTI2LDEzIEBAIHZvaWQgSW1h
Z2VJbnB1dFR5cGU6OnNyY0F0dHJpYnV0ZUNoYW5nZWQKICAgICBlbGVtZW50KCkuZW5zdXJlSW1h
Z2VMb2FkZXIoKS51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJvcigpOwogfQog
Ci12b2lkIEltYWdlSW5wdXRUeXBlOjphdHRhY2goKQorYm9vbCBJbWFnZUlucHV0VHlwZTo6bmVl
ZHNQb3N0U3R5bGVSZXNvbHV0aW9uQ2FsbGJhY2soKQogewotICAgIEJhc2VCdXR0b25JbnB1dFR5
cGU6OmF0dGFjaCgpOworICAgIHJldHVybiB0cnVlOworfQogCit2b2lkIEltYWdlSW5wdXRUeXBl
Ojp1cGRhdGVBZnRlclN0eWxlUmVzb2x1dGlvbigpCit7CiAgICAgSFRNTEltYWdlTG9hZGVyJiBp
bWFnZUxvYWRlciA9IGVsZW1lbnQoKS5lbnN1cmVJbWFnZUxvYWRlcigpOwogICAgIGltYWdlTG9h
ZGVyLnVwZGF0ZUZyb21FbGVtZW50KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VJbnB1dFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5w
dXRUeXBlLmgJKHJldmlzaW9uIDIyNTg3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogICAgIHZvaWQg
YWx0QXR0cmlidXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3JjQXR0cmlidXRlQ2hh
bmdlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgYXR0YWNoKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBu
ZWVkc1Bvc3RTdHlsZVJlc29sdXRpb25DYWxsYmFjaygpIG92ZXJyaWRlOworICAgIHZvaWQgdXBk
YXRlQWZ0ZXJTdHlsZVJlc29sdXRpb24oKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFJlc3Bl
Y3RBbGlnbkF0dHJpYnV0ZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgY2FuQmVTdWNjZXNzZnVsU3Vi
bWl0QnV0dG9uKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Qgb3Zl
cnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCShyZXZpc2lvbiAyMjU4NzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU4Nyw3ICs1ODcsMTIgQEAgdm9pZCBJbnB1dFR5cGU6OmFkZFNlYXJjaFJlc3VsdCgpCiB7CiB9
CiAKLXZvaWQgSW5wdXRUeXBlOjphdHRhY2goKQorYm9vbCBJbnB1dFR5cGU6Om5lZWRzUG9zdFN0
eWxlUmVzb2x1dGlvbkNhbGxiYWNrKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
SW5wdXRUeXBlOjp1cGRhdGVBZnRlclN0eWxlUmVzb2x1dGlvbigpCiB7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaAkocmV2aXNpb24gMjI1ODcwKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjM1LDcgKzIzNSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZCgpOwogICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJik7
CiAgICAgdmlydHVhbCB2b2lkIGFkZFNlYXJjaFJlc3VsdCgpOwotICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKTsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQb3N0U3R5bGVSZXNvbHV0aW9uQ2FsbGJh
Y2soKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWZ0ZXJTdHlsZVJlc29sdXRpb24oKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAgICAgdmlydHVhbCB2b2lkIG1pbk9yTWF4QXR0cmli
dXRlQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwQXR0cmlidXRlQ2hhbmdlZCgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCShyZXZpc2lvbiAyMjU4NzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TE9iamVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVk
ZSAiTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW1hZ2UuaCIKQEAgLTE1Nyw2
ICsxNTgsNyBAQCB2b2lkIEltYWdlTG9hZGVyOjpjbGVhckltYWdlV2l0aG91dENvbnNpCiAKIHZv
aWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKKyAgICBSRUxFQVNFX0FTU0VS
VChOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb246OkluTWFpblRocmVhZDo6aXNFdmVudEFsbG93ZWQo
KSk7CiAgICAgLy8gSWYgd2UncmUgbm90IG1ha2luZyByZW5kZXJlcnMgZm9yIHRoZSBwYWdlLCB0
aGVuIGRvbid0IGxvYWQgaW1hZ2VzLiBXZSBkb24ndCB3YW50IHRvIHNsb3cKICAgICAvLyBkb3du
IHRoZSByYXcgSFRNTCBwYXJzaW5nIGNhc2UgYnkgbG9hZGluZyBpbWFnZXMgd2UgZG9uJ3QgaW50
ZW5kIHRvIGRpc3BsYXkuCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZWxlbWVudCgpLmRvY3Vt
ZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNp
b24gMjI1ODcwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE4OSwxNCArMTg5LDE2IEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50Ojpk
aWRBdHRhY2hSZW5kZXJlcnMKIE5vZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IFNWR0lt
YWdlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSBpbnNlcnRpb25U
eXBlLCBDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVkVHJlZSkKIHsKICAgICBTVkdHcmFw
aGljc0VsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKGluc2VydGlvblR5cGUsIHBhcmVudE9m
SW5zZXJ0ZWRUcmVlKTsKLSAgICBpZiAoIWluc2VydGlvblR5cGUuY29ubmVjdGVkVG9Eb2N1bWVu
dCkKLSAgICAgICAgcmV0dXJuIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0OjpEb25lOwotICAg
IC8vIFVwZGF0ZSBpbWFnZSBsb2FkZXIsIGFzIHNvb24gYXMgd2UncmUgbGl2aW5nIGluIHRoZSB0
cmVlLgotICAgIC8vIFdlIGNhbiBvbmx5IHJlc29sdmUgYmFzZSBVUklzIHByb3Blcmx5LCBhZnRl
ciB0aGF0IQotICAgIG1faW1hZ2VMb2FkZXIudXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICBpZiAo
aW5zZXJ0aW9uVHlwZS5jb25uZWN0ZWRUb0RvY3VtZW50KQorICAgICAgICByZXR1cm4gSW5zZXJ0
ZWRJbnRvQW5jZXN0b3JSZXN1bHQ6Ok5lZWRzUG9zdEluc2VydGlvbkNhbGxiYWNrOwogICAgIHJl
dHVybiBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdDo6RG9uZTsKIH0KIAordm9pZCBTVkdJbWFn
ZUVsZW1lbnQ6OmRpZEZpbmlzaEluc2VydGluZ05vZGUoKQoreworICAgIG1faW1hZ2VMb2FkZXIu
dXBkYXRlRnJvbUVsZW1lbnQoKTsKK30KKwogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdJbWFnZUVs
ZW1lbnQ6OmltYWdlU291cmNlVVJMKCkgY29uc3QKIHsKICAgICByZXR1cm4gZ2V0QXR0cmlidXRl
KFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFn
ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVt
ZW50LmgJKHJldmlzaW9uIDIyNTg3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBmaW5hbDsKICAgICBJbnNlcnRlZEludG9BbmNlc3Rv
clJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2Rl
JikgZmluYWw7CisgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCkgZmluYWw7CiAKICAg
ICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0
eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>