<?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>223445</bug_id>
          
          <creation_ts>2021-03-18 09:18:09 -0700</creation_ts>
          <short_desc>Avoid heap allocation under PannerNode::pullInputs()</short_desc>
          <delta_ts>2021-03-18 10:52:20 -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>Web Audio</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>
          
          <blocked>223226</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1741219</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-18 09:18:09 -0700</bug_when>
    <thetext>Avoid heap allocation under PannerNode::pullInputs():
Thread 10 Crashed:: offline renderer
0   com.apple.JavaScriptCore            0x0000000357d88aee 0x357d86000 + 10990
1   com.apple.JavaScriptCore            0x000000035952629b 0x357d86000 + 24773275
2   com.apple.JavaScriptCore            0x0000000357dc637b 0x357d86000 + 263035
3   com.apple.WebCore                   0x0000000338910e15 WTF::Lock::operator new(unsigned long) + 21 (Lock.h:52)
4   com.apple.WebCore                   0x0000000338910da4 std::__1::__unique_if&lt;WTF::Lock&gt;::__unique_single std::__1::make_unique&lt;WTF::Lock&gt;() + 36 (memory:2755)
5   com.apple.WebCore                   0x00000003389106bb decltype(auto) WTF::makeUnique&lt;WTF::Lock&gt;() + 27 (StdLibExtras.h:507)
6   com.apple.WebCore                   0x000000033ac6576d WTF::HashTable&lt;WebCore::AudioNode*, WebCore::AudioNode*, WTF::IdentityExtractor, WTF::DefaultHash&lt;WebCore::AudioNode*&gt;, WTF::HashTraits&lt;WebCore::AudioNode*&gt;, WTF::HashTraits&lt;WebCore::AudioNode*&gt; &gt;::HashTable() + 45 (HashTable.h:616)
7   com.apple.WebCore                   0x000000033ac65735 WTF::HashTable&lt;WebCore::AudioNode*, WebCore::AudioNode*, WTF::IdentityExtractor, WTF::DefaultHash&lt;WebCore::AudioNode*&gt;, WTF::HashTraits&lt;WebCore::AudioNode*&gt;, WTF::HashTraits&lt;WebCore::AudioNode*&gt; &gt;::HashTable() + 21 (HashTable.h:621)
8   com.apple.WebCore                   0x000000033ac65715 WTF::HashSet&lt;WebCore::AudioNode*, WTF::DefaultHash&lt;WebCore::AudioNode*&gt;, WTF::HashTraits&lt;WebCore::AudioNode*&gt; &gt;::HashSet() + 21 (HashSet.h:62)
9   com.apple.WebCore                   0x000000033ac3a8e5 WTF::HashSet&lt;WebCore::AudioNode*, WTF::DefaultHash&lt;WebCore::AudioNode*&gt;, WTF::HashTraits&lt;WebCore::AudioNode*&gt; &gt;::HashSet() + 21 (HashSet.h:63)
10  com.apple.WebCore                   0x000000033aca1f56 WebCore::PannerNode::pullInputs(unsigned long) + 102 (PannerNode.cpp:120)
11  com.apple.WebCore                   0x000000033abdc4db WebCore::AudioNode::processIfNecessary(unsigned long) + 235 (AudioNode.cpp:461)
12  com.apple.WebCore                   0x000000033abdee77 WebCore::AudioNodeOutput::pull(WebCore::AudioBus*, unsigned long) + 407 (AudioNodeOutput.cpp:124)
13  com.apple.WebCore                   0x000000033abdec46 WebCore::AudioNodeInput::sumAllConnections(WebCore::AudioBus*, unsigned long) + 566 (AudioNodeInput.cpp:197)
14  com.apple.WebCore                   0x000000033abd7477 WebCore::AudioNodeInput::pull(WebCore::AudioBus*, unsigned long) + 295 (AudioNodeInput.cpp:225)
15  com.apple.WebCore                   0x000000033abd7015 WebCore::AudioDestinationNode::render(WebCore::AudioBus*, WebCore::AudioBus*, unsigned long, WebCore::AudioIOPosition const&amp;) + 469 (AudioDestinationNode.cpp:94)
16  com.apple.WebCore                   0x000000033ac9e11d WebCore::OfflineAudioDestinationNode::offlineRender() + 877 (OfflineAudioDestinationNode.cpp:164)
17  com.apple.WebCore                   0x000000033acbe213 WebCore::OfflineAudioDestinationNode::startRendering(WTF::CompletionHandler&lt;void (WTF::Optional&lt;WebCore::Exception&gt;&amp;&amp;)&gt;&amp;&amp;)::$_2::operator()() + 35 (OfflineAudioDestinationNode.cpp:103)
18  com.apple.WebCore                   0x000000033acbfbee WTF::Detail::CallableWrapper&lt;WebCore::OfflineAudioDestinationNode::startRendering(WTF::CompletionHandler&lt;void (WTF::Optional&lt;WebCore::Exception&gt;&amp;&amp;)&gt;&amp;&amp;)::$_2, void&gt;::call() + 30 (Function.h:52)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741220</commentid>
    <comment_count>1</comment_count>
      <attachid>423605</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-18 09:24:21 -0700</bug_when>
    <thetext>Created attachment 423605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741255</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-18 10:51:07 -0700</bug_when>
    <thetext>Committed r274650: &lt;https://commits.webkit.org/r274650&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423605.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741256</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-18 10:52:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/75580369&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423605</attachid>
            <date>2021-03-18 09:24:21 -0700</date>
            <delta_ts>2021-03-18 10:51:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223445-20210318092420.patch</filename>
            <type>text/plain</type>
            <size>14524</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE1NjZiZWM3Mjg4Y2E0
OWJhZDUxY2NjNDNiYTA0NzExMDY3MTVkMC4uMWUzMzViYWExNjFkOTliYTY2ZjkyZjI4ZWRkY2I4
Yzg0ZGI2MjQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTAzLTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgaGVhcCBhbGxvY2F0
aW9uIHVuZGVyIFBhbm5lck5vZGU6OnB1bGxJbnB1dHMoKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNDQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFubmVyTm9kZTo6cHVsbElucHV0cygpIHdhcyBk
b2luZyBhIGhlYXAgYWxsb2NhdGlvbiBvbiB0aGUgYXVkaW8gdGhyZWFkIHdoZW4KKyAgICAgICAg
Y29uc3RydWN0aW5nIGEgSGFzaFNldC4gSXQgdHVybnMgb3V0IHRoYXQgUGFubmVyTm9kZTo6cHVs
bElucHV0cygpIGFuZAorICAgICAgICBQYW5uZXJOb2RlOjpub3RpZnlBdWRpb1NvdXJjZXNDb25u
ZWN0ZWRUb05vZGUoKSB3ZXJlIG5vdCBuZWVkZWQgYXQgYWxsIGluCisgICAgICAgIHRoZSBtb2Rl
cm4gUGFubmVyTm9kZS4gVGhleSB3ZXJlIG9ubHkgdXNlZCB0byBzZXQgdGhlIFBhbm5lck5vZGUg
b24KKyAgICAgICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlcyBzbyB0aGV5IGNvdWxkIHVzZSBpdHMg
ZG9wcGxlclJhdGUuIEhvd2V2ZXIsIHRoZQorICAgICAgICBkb3BwbGVyUmF0ZSB3YXMgb25seSBh
IHRoaW5nIG9uIHRoZSBsZWdhY3kgV2ViS2l0QXVkaW9QYW5uZXJOb2RlLiBGb3IgdGhlCisgICAg
ICAgIG1vZGVybiBQYW5uZXJOb2RlLCB0aGVyZSBpcyBubyBkb3BwbGVyUmF0ZSBzbyB3ZSBhbHdh
eXMgZW5kIHVwIHVzaW5nIDEuMC4KKworICAgICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwgSSB0
aHVzIGNvbXBsZXRlbHkgcmVtb3ZlZCBQYW5uZXJOb2RlJ3MgcHVsbElucHV0cyAmCisgICAgICAg
IG5vdGlmeUF1ZGlvU291cmNlc0Nvbm5lY3RlZFRvTm9kZSgpLiBJIGFsc28gdXBkYXRlZCBBdWRp
b0J1ZmZlclNvdXJjZU5vZGUKKyAgICAgICAgdG8gbWFrZSBpdCBjbGVhciBpdCB1c2VzIGEgV2Vi
S2l0QXVkaW9QYW5uZXJOb2RlLiBGaW5hbGx5LCBJIGdvdCByaWQgb2YKKyAgICAgICAgdGhlIFBh
bm5lck5vZGVCYXNlIGJhc2UgY2xhc3MgdG9vIHNpbmNlIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnRvdGFsUGl0Y2hSYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0UGFubmVyTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OmNsZWFyUGFubmVy
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OmZpbmlzaCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFubmVyTm9kZTo6UGFubmVyTm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Q
YW5uZXJOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5l
ck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpXZWJL
aXRBdWRpb1Bhbm5lck5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVk
aW9QYW5uZXJOb2RlLmg6CisKIDIwMjEtMDMtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBBdm9pZCBoZWFwIGFsbG9jYXRpb25zIHVuZGVyIEJpcXVhZERTUEtl
cm5lbDo6dXBkYXRlQ29lZmZpY2llbnRzSWZOZWNlc3NhcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCmlu
ZGV4IDEyMTNiMTQxNjYxMjcwZDA1NzA3ZTUzYmNkYTRlNDE4ODVlODBlNGEuLjQxMDA5ZWMxNzA3
NTRhOTFmOTdiYTMxMWUyNDI5MWZjOWRkZDNkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKQEAgLTM1
LDkgKzM1LDkgQEAKICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCiAjaW5jbHVkZSAiQXVkaW9VdGls
aXRpZXMuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKLSNpbmNsdWRlICJQYW5uZXJO
b2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIldl
YktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5oIgorI2luY2x1ZGUgIldlYktpdEF1ZGlvUGFubmVy
Tm9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTUzOCw4ICs1MzgsOCBAQCB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6
YWRqdXN0R3JhaW5QYXJhbWV0ZXJzKCkKIGRvdWJsZSBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnRv
dGFsUGl0Y2hSYXRlKCkKIHsKICAgICBkb3VibGUgZG9wcGxlclJhdGUgPSAxLjA7Ci0gICAgaWYg
KG1fcGFubmVyTm9kZSkKLSAgICAgICAgZG9wcGxlclJhdGUgPSBtX3Bhbm5lck5vZGUtPmRvcHBs
ZXJSYXRlKCk7CisgICAgaWYgKG1fbGVnYWN5UGFubmVyTm9kZSkKKyAgICAgICAgZG9wcGxlclJh
dGUgPSBtX2xlZ2FjeVBhbm5lck5vZGUtPmRvcHBsZXJSYXRlKCk7CiAgICAgCiAgICAgLy8gSW5j
b3Jwb3JhdGUgYnVmZmVyJ3Mgc2FtcGxlLXJhdGUgdmVyc3VzIEF1ZGlvQ29udGV4dCdzIHNhbXBs
ZS1yYXRlLgogICAgIC8vIE5vcm1hbGx5IGl0J3Mgbm90IGFuIGlzc3VlIGJlY2F1c2UgYnVmZmVy
cyBhcmUgbG9hZGVkIGF0IHRoZSBBdWRpb0NvbnRleHQncyBzYW1wbGUtcmF0ZSwgYnV0IHdlIGNh
biBoYW5kbGUgaXQgaW4gYW55IGNhc2UuCkBAIC01NjcsMjEgKzU2NywyMSBAQCBib29sIEF1ZGlv
QnVmZmVyU291cmNlTm9kZTo6cHJvcGFnYXRlc1NpbGVuY2UoKSBjb25zdAogICAgIHJldHVybiAh
aXNQbGF5aW5nT3JTY2hlZHVsZWQoKSB8fCBoYXNGaW5pc2hlZCgpIHx8ICFtX2J1ZmZlcjsKIH0K
IAotdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnNldFBhbm5lck5vZGUoUGFubmVyTm9kZUJh
c2UqIHBhbm5lck5vZGUpCit2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0UGFubmVyTm9k
ZShXZWJLaXRBdWRpb1Bhbm5lck5vZGUqIHBhbm5lck5vZGUpCiB7Ci0gICAgaWYgKG1fcGFubmVy
Tm9kZSAhPSBwYW5uZXJOb2RlICYmICFoYXNGaW5pc2hlZCgpKQotICAgICAgICBtX3Bhbm5lck5v
ZGUgPSBwYW5uZXJOb2RlOworICAgIGlmIChtX2xlZ2FjeVBhbm5lck5vZGUgIT0gcGFubmVyTm9k
ZSAmJiAhaGFzRmluaXNoZWQoKSkKKyAgICAgICAgbV9sZWdhY3lQYW5uZXJOb2RlID0gcGFubmVy
Tm9kZTsKIH0KIAogdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OmNsZWFyUGFubmVyTm9kZSgp
CiB7Ci0gICAgbV9wYW5uZXJOb2RlID0gbnVsbHB0cjsKKyAgICBtX2xlZ2FjeVBhbm5lck5vZGUg
PSBudWxscHRyOwogfQogCiB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6ZmluaXNoKCkKIHsK
ICAgICBjbGVhclBhbm5lck5vZGUoKTsKLSAgICBBU1NFUlQoIW1fcGFubmVyTm9kZSk7CisgICAg
QVNTRVJUKCFtX2xlZ2FjeVBhbm5lck5vZGUpOwogICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZTo6ZmluaXNoKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCmluZGV4IGE2ZWNlMDAxNTI0ZmZmZjczOWU0
N2U5MjlkNWY3M2Y0NTAzYWJjYzguLjJkYjc2NjFiODU0MThkOGNkYTkyZjkwNDFmNGRhNGE2OTA3
Mjk2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBBdWRpb0J1ZmZlcjsKLWNsYXNzIFBhbm5lck5vZGVCYXNlOworY2xhc3Mg
V2ViS2l0QXVkaW9QYW5uZXJOb2RlOwogc3RydWN0IEF1ZGlvQnVmZmVyU291cmNlT3B0aW9uczsK
IAogLy8gQXVkaW9CdWZmZXJTb3VyY2VOb2RlIGlzIGFuIEF1ZGlvTm9kZSByZXByZXNlbnRpbmcg
YW4gYXVkaW8gc291cmNlIGZyb20gYW4gaW4tbWVtb3J5IGF1ZGlvIGFzc2V0IHJlcHJlc2VudGVk
IGJ5IGFuIEF1ZGlvQnVmZmVyLgpAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgQXVkaW9Q
YXJhbSYgcGxheWJhY2tSYXRlKCkgeyByZXR1cm4gbV9wbGF5YmFja1JhdGUuZ2V0KCk7IH0KIAog
ICAgIC8vIElmIGEgcGFubmVyIG5vZGUgaXMgc2V0LCB0aGVuIHdlIGNhbiBpbmNvcnBvcmF0ZSBk
b3BwbGVyIHNoaWZ0IGludG8gdGhlIHBsYXliYWNrIHBpdGNoIHJhdGUuCi0gICAgdm9pZCBzZXRQ
YW5uZXJOb2RlKFBhbm5lck5vZGVCYXNlKik7CisgICAgdm9pZCBzZXRQYW5uZXJOb2RlKFdlYktp
dEF1ZGlvUGFubmVyTm9kZSopOwogICAgIHZvaWQgY2xlYXJQYW5uZXJOb2RlKCk7CiAKICAgICAv
LyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIHBsYXlpbmcsIHByb3BvZ2F0ZSBzaWxlbmNlIGFoZWFkIHRv
IGRvd25zdHJlYW0gbm9kZXMuCkBAIC0xNDIsNyArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8v
IFdlIG9wdGlvbmFsbHkga2VlcCB0cmFjayBvZiBhIHBhbm5lciBub2RlIHdoaWNoIGhhcyBhIGRv
cHBsZXIgc2hpZnQgdGhhdCBpcyBpbmNvcnBvcmF0ZWQgaW50bwogICAgIC8vIHRoZSBwaXRjaCBy
YXRlLgotICAgIEF1ZGlvQ29ubmVjdGlvblJlZlB0cjxQYW5uZXJOb2RlQmFzZT4gbV9wYW5uZXJO
b2RlOworICAgIEF1ZGlvQ29ubmVjdGlvblJlZlB0cjxXZWJLaXRBdWRpb1Bhbm5lck5vZGU+IG1f
bGVnYWN5UGFubmVyTm9kZTsKIAogICAgIC8vIFRoaXMgc3luY2hyb25pemVzIHByb2Nlc3MoKSB3
aXRoIHNldEJ1ZmZlcigpIHdoaWNoIGNhbiBjYXVzZSBkeW5hbWljIGNoYW5uZWwgY291bnQgY2hh
bmdlcy4KICAgICBtdXRhYmxlIExvY2sgbV9wcm9jZXNzTG9jazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IDNhMjQzNTkzOWYwYzEyZjgx
ODJmY2Q3YWZlMThhZTVjYWEwODhiYzUuLjk3MTg5ZmYwNWIzYzM0MTBhNGY5ODVjY2UzMmI5N2Nh
NWE4ZDBkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFu
bmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJO
b2RlLmNwcApAQCAtNTAsMTEgKzUwLDYgQEAgc3RhdGljIHZvaWQgZml4TkFOcyhkb3VibGUgJngp
CiAgICAgICAgIHggPSAwLjA7CiB9CiAKLVBhbm5lck5vZGVCYXNlOjpQYW5uZXJOb2RlQmFzZShC
YXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KQotICAgIDogQXVkaW9Ob2RlKGNvbnRleHQsIE5vZGVU
eXBlUGFubmVyKQotewotfQotCiBFeGNlcHRpb25PcjxSZWY8UGFubmVyTm9kZT4+IFBhbm5lck5v
ZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBjb25zdCBQYW5uZXJPcHRpb25z
JiBvcHRpb25zKQogewogICAgIGF1dG8gcGFubmVyID0gYWRvcHRSZWYoKm5ldyBQYW5uZXJOb2Rl
KGNvbnRleHQsIG9wdGlvbnMpKTsKQEAgLTgzLDcgKzc4LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFBh
bm5lck5vZGU+PiBQYW5uZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwg
Y29uc3QKIH0KIAogUGFubmVyTm9kZTo6UGFubmVyTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250
ZXh0LCBjb25zdCBQYW5uZXJPcHRpb25zJiBvcHRpb25zKQotICAgIDogUGFubmVyTm9kZUJhc2Uo
Y29udGV4dCkKKyAgICA6IEF1ZGlvTm9kZShjb250ZXh0LCBOb2RlVHlwZVBhbm5lcikKICAgICAs
IG1fcGFubmluZ01vZGVsKG9wdGlvbnMucGFubmluZ01vZGVsKQogICAgICwgbV9wb3NpdGlvblgo
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiX3MsIG9wdGlvbnMucG9zaXRp
b25YLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKICAgICAsIG1f
cG9zaXRpb25ZKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAicG9zaXRpb25ZIl9zLCBvcHRp
b25zLnBvc2l0aW9uWSwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkp
CkBAIC0xMDksMjEgKzEwNCw2IEBAIFBhbm5lck5vZGU6On5QYW5uZXJOb2RlKCkKICAgICB1bmlu
aXRpYWxpemUoKTsKIH0KIAotdm9pZCBQYW5uZXJOb2RlOjpwdWxsSW5wdXRzKHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpCi17Ci0gICAgLy8gV2Ugb3ZlcnJpZGUgcHVsbElucHV0cygpLCBzbyB3ZSBj
YW4gZGV0ZWN0IG5ldyBBdWRpb1NvdXJjZU5vZGVzIHdoaWNoIGhhdmUgY29ubmVjdGVkIHRvIHVz
IHdoZW4gbmV3IGNvbm5lY3Rpb25zIGFyZSBtYWRlLgotICAgIC8vIFRoZXNlIEF1ZGlvU291cmNl
Tm9kZXMgbmVlZCB0byBiZSBtYWRlIGF3YXJlIG9mIG91ciBleGlzdGVuY2UgaW4gb3JkZXIgdG8g
aGFuZGxlIGRvcHBsZXIgc2hpZnQgcGl0Y2ggY2hhbmdlcy4KLSAgICBpZiAobV9jb25uZWN0aW9u
Q291bnQgIT0gY29udGV4dCgpLmNvbm5lY3Rpb25Db3VudCgpKSB7Ci0gICAgICAgIG1fY29ubmVj
dGlvbkNvdW50ID0gY29udGV4dCgpLmNvbm5lY3Rpb25Db3VudCgpOwotCi0gICAgICAgIC8vIFJl
Y3Vyc2l2ZWx5IGdvIHRocm91Z2ggYWxsIG5vZGVzIGNvbm5lY3RlZCB0byB1cy4KLSAgICAgICAg
SGFzaFNldDxBdWRpb05vZGUqPiB2aXNpdGVkTm9kZXM7Ci0gICAgICAgIG5vdGlmeUF1ZGlvU291
cmNlc0Nvbm5lY3RlZFRvTm9kZSh0aGlzLCB2aXNpdGVkTm9kZXMpOwotICAgIH0KLSAgICAKLSAg
ICBBdWRpb05vZGU6OnB1bGxJbnB1dHMoZnJhbWVzVG9Qcm9jZXNzKTsKLX0KLQogdm9pZCBQYW5u
ZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7CiAgICAgQXVkaW9CdXMq
IGRlc3RpbmF0aW9uID0gb3V0cHV0KDApLT5idXMoKTsKQEAgLTUzMywxMSArNTEzLDYgQEAgdm9p
ZCBQYW5uZXJOb2RlOjphemltdXRoRWxldmF0aW9uKGRvdWJsZSogb3V0QXppbXV0aCwgZG91Ymxl
KiBvdXRFbGV2YXRpb24pCiAgICAgY2FsY3VsYXRlQXppbXV0aEVsZXZhdGlvbihvdXRBemltdXRo
LCBvdXRFbGV2YXRpb24sIHBvc2l0aW9uKCksIGxpc3RlbmVyKCkucG9zaXRpb24oKSwgbGlzdGVu
ZXIoKS5vcmllbnRhdGlvbigpLCBsaXN0ZW5lcigpLnVwVmVjdG9yKCkpOwogfQogCi1mbG9hdCBQ
YW5uZXJOb2RlOjpkb3BwbGVyUmF0ZSgpCi17Ci0gICAgcmV0dXJuIDEuMGY7Ci19Ci0KIGJvb2wg
UGFubmVyTm9kZTo6cmVxdWlyZXNUYWlsUHJvY2Vzc2luZygpIGNvbnN0CiB7CiAgICAgLy8gSWYg
dGhlcmUncyBubyBpbnRlcm5hbCBwYW5uZXIgbWV0aG9kIHNldCB1cCB5ZXQsIGFzc3VtZSB3ZSBy
ZXF1aXJlIHRhaWwKQEAgLTU2NCwzNSArNTM5LDYgQEAgZmxvYXQgUGFubmVyTm9kZTo6ZGlzdGFu
Y2VDb25lR2FpbigpCiAgICAgcmV0dXJuIGNhbGN1bGF0ZURpc3RhbmNlQ29uZUdhaW4ocG9zaXRp
b24oKSwgb3JpZW50YXRpb24oKSwgbGlzdGVuZXIoKS5wb3NpdGlvbigpKTsKIH0KIAotdm9pZCBQ
YW5uZXJOb2RlOjpub3RpZnlBdWRpb1NvdXJjZXNDb25uZWN0ZWRUb05vZGUoQXVkaW9Ob2RlKiBu
b2RlLCBIYXNoU2V0PEF1ZGlvTm9kZSo+JiB2aXNpdGVkTm9kZXMpCi17Ci0gICAgQVNTRVJUKG5v
ZGUpOwotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICAvLyBG
aXJzdCBjaGVjayBpZiB0aGlzIG5vZGUgaXMgYW4gQXVkaW9CdWZmZXJTb3VyY2VOb2RlLiBJZiBz
bywgbGV0IGl0IGtub3cgYWJvdXQgdXMgc28gdGhhdCBkb3BwbGVyIHNoaWZ0IHBpdGNoIGNhbiBi
ZSB0YWtlbiBpbnRvIGFjY291bnQuCi0gICAgaWYgKG5vZGUtPm5vZGVUeXBlKCkgPT0gTm9kZVR5
cGVBdWRpb0J1ZmZlclNvdXJjZSkgewotICAgICAgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUqIGJ1
ZmZlclNvdXJjZU5vZGUgPSByZWludGVycHJldF9jYXN0PEF1ZGlvQnVmZmVyU291cmNlTm9kZSo+
KG5vZGUpOwotICAgICAgICBidWZmZXJTb3VyY2VOb2RlLT5zZXRQYW5uZXJOb2RlKHRoaXMpOwot
ICAgIH0gZWxzZSB7ICAgIAotICAgICAgICAvLyBHbyB0aHJvdWdoIGFsbCBpbnB1dHMgdG8gdGhp
cyBub2RlLgotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbm9kZS0+bnVtYmVyT2ZJ
bnB1dHMoKTsgKytpKSB7Ci0gICAgICAgICAgICBBdWRpb05vZGVJbnB1dCogaW5wdXQgPSBub2Rl
LT5pbnB1dChpKTsKLQotICAgICAgICAgICAgLy8gRm9yIGVhY2ggaW5wdXQsIGdvIHRocm91Z2gg
YWxsIG9mIGl0cyBjb25uZWN0aW9ucywgbG9va2luZyBmb3IgQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
cy4KLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBpbnB1dC0+bnVtYmVyT2ZS
ZW5kZXJpbmdDb25uZWN0aW9ucygpOyArK2opIHsKLSAgICAgICAgICAgICAgICBBdWRpb05vZGVP
dXRwdXQqIGNvbm5lY3RlZE91dHB1dCA9IGlucHV0LT5yZW5kZXJpbmdPdXRwdXQoaik7Ci0gICAg
ICAgICAgICAgICAgQXVkaW9Ob2RlKiBjb25uZWN0ZWROb2RlID0gY29ubmVjdGVkT3V0cHV0LT5u
b2RlKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHZpc2l0ZWROb2Rlcy5jb250YWlucyhjb25uZWN0
ZWROb2RlKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgICAg
ICB2aXNpdGVkTm9kZXMuYWRkKGNvbm5lY3RlZE5vZGUpOwotICAgICAgICAgICAgICAgIG5vdGlm
eUF1ZGlvU291cmNlc0Nvbm5lY3RlZFRvTm9kZShjb25uZWN0ZWROb2RlLCB2aXNpdGVkTm9kZXMp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaAppbmRleCBiMTRkM2FlN2EzZGRkMTc2MjE4MTI0
YzAxZGQ5NjEzY2JmM2U3NjEwLi5jMWY2ZTQ2ZjA2YWQ1ZmNkZDI2ZDg1OTk1ZDJjNGM1MmJmYTQ3
MjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaApA
QCAtNDQsMTYgKzQ0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFJURkRhdGFiYXNl
TG9hZGVyOwogY2xhc3MgQmFzZUF1ZGlvQ29udGV4dDsKIAotY2xhc3MgUGFubmVyTm9kZUJhc2Ug
OiBwdWJsaWMgQXVkaW9Ob2RlIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5QYW5uZXJOb2RlQmFz
ZSgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgZmxvYXQgZG9wcGxlclJhdGUoKSA9IDA7Ci0K
LXByb3RlY3RlZDoKLSAgICBQYW5uZXJOb2RlQmFzZShCYXNlQXVkaW9Db250ZXh0Jik7Ci19Owot
CiAvLyBQYW5uZXJOb2RlIGlzIGFuIEF1ZGlvTm9kZSB3aXRoIG9uZSBpbnB1dCBhbmQgb25lIG91
dHB1dC4KIC8vIEl0IHBvc2l0aW9ucyBhIHNvdW5kIGluIDNEIHNwYWNlLCB3aXRoIHRoZSBleGFj
dCBlZmZlY3QgZGVwZW5kZW50IG9uIHRoZSBwYW5uaW5nIG1vZGVsLgogLy8gSXQgaGFzIGEgcG9z
aXRpb24gYW5kIGFuIG9yaWVudGF0aW9uIGluIDNEIHNwYWNlIHdoaWNoIGlzIHJlbGF0aXZlIHRv
IHRoZSBwb3NpdGlvbiBhbmQgb3JpZW50YXRpb24gb2YgdGhlIGNvbnRleHQncyBBdWRpb0xpc3Rl
bmVyLgpAQCAtNjEsNyArNTEsNyBAQCBwcm90ZWN0ZWQ6CiAvLyBBIGNvbmUgZWZmZWN0IHdpbGwg
YXR0ZW51YXRlIHRoZSBnYWluIGFzIHRoZSBvcmllbnRhdGlvbiBtb3ZlcyBhd2F5IGZyb20gdGhl
IGxpc3RlbmVyLgogLy8gQWxsIG9mIHRoZXNlIGVmZmVjdHMgZm9sbG93IHRoZSBPcGVuQUwgc3Bl
Y2lmaWNhdGlvbiB2ZXJ5IGNsb3NlbHkuCiAKLWNsYXNzIFBhbm5lck5vZGUgZmluYWwgOiBwdWJs
aWMgUGFubmVyTm9kZUJhc2UgeworY2xhc3MgUGFubmVyTm9kZSBmaW5hbCA6IHB1YmxpYyBBdWRp
b05vZGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUGFubmVyTm9kZSk7CiBwdWJsaWM6
CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxQYW5uZXJOb2RlPj4gY3JlYXRlKEJhc2VBdWRp
b0NvbnRleHQmLCBjb25zdCBQYW5uZXJPcHRpb25zJiA9IHsgfSk7CkBAIC03MSw3ICs2MSw2IEBA
IHB1YmxpYzoKICAgICAvLyBBdWRpb05vZGUKICAgICB2b2lkIHByb2Nlc3Moc2l6ZV90IGZyYW1l
c1RvUHJvY2Vzcykgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9jZXNzT25seUF1ZGlvUGFyYW1zKHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwotICAgIHZvaWQgcHVsbElucHV0cyhzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZTsKICAgICB2b2lkIGluaXRpYWxpemUoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHVuaW5pdGlhbGl6ZSgpIG92ZXJyaWRlOwogCkBAIC0xMjMsNyArMTEyLDYg
QEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudE1vZGUoQ2hh
bm5lbENvdW50TW9kZSkgZmluYWw7CiAKICAgICB2b2lkIGF6aW11dGhFbGV2YXRpb24oZG91Ymxl
KiBvdXRBemltdXRoLCBkb3VibGUqIG91dEVsZXZhdGlvbik7Ci0gICAgZmxvYXQgZG9wcGxlclJh
dGUoKSBmaW5hbDsKIAogICAgIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fcGFubmVyID8gbV9wYW5uZXItPnRhaWxUaW1lKCkgOiAwOyB9CiAgICAgZG91YmxlIGxh
dGVuY3lUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wYW5uZXIgPyBtX3Bhbm5lci0+
bGF0ZW5jeVRpbWUoKSA6IDA7IH0KQEAgLTEzOSwxMCArMTI3LDYgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgcmVxdWlyZXNUYWlsUHJvY2Vzc2luZygpIGNvbnN0IGZpbmFsOwogCi0gICAgLy8gTm90
aWZpZXMgYW55IEF1ZGlvQnVmZmVyU291cmNlTm9kZXMgY29ubmVjdGVkIHRvIHVzIGVpdGhlciBk
aXJlY3RseSBvciBpbmRpcmVjdGx5IGFib3V0IG91ciBleGlzdGVuY2UuCi0gICAgLy8gVGhpcyBp
cyBpbiBvcmRlciB0byBoYW5kbGUgdGhlIHBpdGNoIGNoYW5nZSBuZWNlc3NhcnkgZm9yIHRoZSBk
b3BwbGVyIHNoaWZ0LgotICAgIHZvaWQgbm90aWZ5QXVkaW9Tb3VyY2VzQ29ubmVjdGVkVG9Ob2Rl
KEF1ZGlvTm9kZSosIEhhc2hTZXQ8QXVkaW9Ob2RlKj4mIHZpc2l0ZWROb2Rlcyk7Ci0KICAgICB2
b2lkIHByb2Nlc3NTYW1wbGVBY2N1cmF0ZVZhbHVlcyhBdWRpb0J1cyogZGVzdGluYXRpb24sIGNv
bnN0IEF1ZGlvQnVzKiBzb3VyY2UsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogICAgIGJvb2wg
aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSBjb25zdDsKICAgICBib29sIHNob3VsZFVzZUFSYXRl
KCkgY29uc3Q7CkBAIC0xNjUsOCArMTQ5LDYgQEAgcHJpdmF0ZToKICAgICAvLyBIUlRGIERhdGFi
YXNlIGxvYWRlcgogICAgIFJlZlB0cjxIUlRGRGF0YWJhc2VMb2FkZXI+IG1faHJ0ZkRhdGFiYXNl
TG9hZGVyOwogCi0gICAgdW5zaWduZWQgbV9jb25uZWN0aW9uQ291bnQgeyAwIH07Ci0KICAgICAv
LyBTeW5jaHJvbml6ZSBwcm9jZXNzKCkgd2l0aCBzZXR0aW5nIG9mIHRoZSBwYW5uaW5nIG1vZGVs
LCBzb3VyY2UncyBsb2NhdGlvbgogICAgIC8vIGluZm9ybWF0aW9uLCBsaXN0ZW5lciwgZGlzdGFu
Y2UgcGFyYW1ldGVycyBhbmQgc291bmQgY29uZXMuCiAgICAgbXV0YWJsZSBMb2NrIG1fcHJvY2Vz
c0xvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktp
dEF1ZGlvUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dl
YktpdEF1ZGlvUGFubmVyTm9kZS5jcHAKaW5kZXggYjBkOTRhZDEzNjg0NjNlNmQ0MTU2YjdiMzc4
YTI3NzQ5NzcxZTFkZi4uNjIyNDQwYTk0ZWZjOTFkMjAyZThjNDkzN2ZkZjc3NzU5N2E2ODE5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bh
bm5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0
QXVkaW9QYW5uZXJOb2RlLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgdm9pZCBmaXhOQU5z
KGRvdWJsZSAmeCkKIH0KIAogV2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpXZWJLaXRBdWRpb1Bhbm5l
ck5vZGUoV2ViS2l0QXVkaW9Db250ZXh0JiBjb250ZXh0KQotICAgIDogUGFubmVyTm9kZUJhc2Uo
Y29udGV4dCkKKyAgICA6IEF1ZGlvTm9kZShjb250ZXh0LCBOb2RlVHlwZVBhbm5lcikKIHsKICAg
ICBpbml0aWFsaXplRGVmYXVsdE5vZGVPcHRpb25zKDIsIENoYW5uZWxDb3VudE1vZGU6OkNsYW1w
ZWRNYXgsIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUuaApp
bmRleCBkMDk0MTIyYzZmZTJkMjE5N2M0YjA1MGY5NDA0MWRlMzg4NjJhMzNmLi45OTRiYjAyZDJk
NmI3NWUwOWE0OTFhYmFhZjIxMWJmOTRkMDQwZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9QYW5uZXJOb2RlLmgKQEAgLTMyLDcg
KzMyLDYgQEAKICNpbmNsdWRlICJEaXN0YW5jZS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQzRC5o
IgogI2luY2x1ZGUgIlBhbm5lci5oIgotI2luY2x1ZGUgIlBhbm5lck5vZGUuaCIKICNpbmNsdWRl
ICJXZWJLaXRBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJLaXRBdWRpb0xpc3RlbmVyLmgi
CiAjaW5jbHVkZSA8bWVtb3J5PgpAQCAtNTAsNyArNDksNyBAQCBjbGFzcyBIUlRGRGF0YWJhc2VM
b2FkZXI7CiAvLyBBIGNvbmUgZWZmZWN0IHdpbGwgYXR0ZW51YXRlIHRoZSBnYWluIGFzIHRoZSBv
cmllbnRhdGlvbiBtb3ZlcyBhd2F5IGZyb20gdGhlIGxpc3RlbmVyLgogLy8gQWxsIG9mIHRoZXNl
IGVmZmVjdHMgZm9sbG93IHRoZSBPcGVuQUwgc3BlY2lmaWNhdGlvbiB2ZXJ5IGNsb3NlbHkuCiAK
LWNsYXNzIFdlYktpdEF1ZGlvUGFubmVyTm9kZSBmaW5hbCA6IHB1YmxpYyBQYW5uZXJOb2RlQmFz
ZSB7CitjbGFzcyBXZWJLaXRBdWRpb1Bhbm5lck5vZGUgZmluYWwgOiBwdWJsaWMgQXVkaW9Ob2Rl
IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYktpdEF1ZGlvUGFubmVyTm9kZSk7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJLaXRBdWRpb1Bhbm5lck5vZGU+IGNyZWF0ZShXZWJL
aXRBdWRpb0NvbnRleHQmIGNvbnRleHQpCkBAIC0xMTIsNyArMTExLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Q29uZU91dGVyR2Fpbihkb3VibGUgYW5nbGUpIHsgbV9jb25lRWZmZWN0LnNldE91
dGVyR2FpbihhbmdsZSk7IH0KIAogICAgIHZvaWQgZ2V0QXppbXV0aEVsZXZhdGlvbihkb3VibGUq
IG91dEF6aW11dGgsIGRvdWJsZSogb3V0RWxldmF0aW9uKTsKLSAgICBmbG9hdCBkb3BwbGVyUmF0
ZSgpIGZpbmFsOworICAgIGZsb2F0IGRvcHBsZXJSYXRlKCk7CiAKICAgICBkb3VibGUgdGFpbFRp
bWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Bhbm5lciA/IG1fcGFubmVyLT50YWlsVGlt
ZSgpIDogMDsgfQogICAgIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fcGFubmVyID8gbV9wYW5uZXItPmxhdGVuY3lUaW1lKCkgOiAwOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>