<?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>70845</bug_id>
          
          <creation_ts>2011-10-25 13:36:10 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: checkURLReceivedFromWebProcess(originalURL) loading a local file, if the WebProcess crashed</short_desc>
          <delta_ts>2012-02-09 21:45:34 -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>WebKit2</component>
          <version>528+ (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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>gustavo</cc>
    
    <cc>pnormand</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>490307</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-25 13:36:10 -0700</bug_when>
    <thetext>Launch Safari, drag a local file into the window, and you assert:


ASSERTION FAILED: checkURLReceivedFromWebProcess(originalURL)
/Volumes/SSData/Development/OSX/webkit/OpenSource/Source/WebKit2/UIProcess/WebProcessProxy.cpp(252) : void WebKit::WebProcessProxy::addBackForwardItem(uint64_t, const WTF::String &amp;, const WTF::String &amp;, const WTF::String &amp;, const CoreIPC::DataReference &amp;)
1   0x102bf7d9a WebKit::WebProcessProxy::addBackForwardItem(unsigned long long, WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;, CoreIPC::DataReference const&amp;)
2   0x102cf8827 void CoreIPC::callMemberFunction&lt;WebKit::WebProcessProxy, void (WebKit::WebProcessProxy::*)(unsigned long long, WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;, CoreIPC::DataReference const&amp;), unsigned long long, WTF::String, WTF::String, WTF::String, CoreIPC::DataReference&gt;(CoreIPC::Arguments5&lt;unsigned long long, WTF::String, WTF::String, WTF::String, CoreIPC::DataReference&gt; const&amp;, WebKit::WebProcessProxy*, void (WebKit::WebProcessProxy::*)(unsigned long long, WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;, CoreIPC::DataReference const&amp;))
3   0x102cf6dad void CoreIPC::handleMessage&lt;Messages::WebProcessProxy::AddBackForwardItem, WebKit::WebProcessProxy, void (WebKit::WebProcessProxy::*)(unsigned long long, WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;, CoreIPC::DataReference const&amp;)&gt;(CoreIPC::ArgumentDecoder*, WebKit::WebProcessProxy*, void (WebKit::WebProcessProxy::*)(unsigned long long, WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;, CoreIPC::DataReference const&amp;))
4   0x102cf6834 WebKit::WebProcessProxy::didReceiveWebProcessProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*)
5   0x102bf8192 WebKit::WebProcessProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*)
6   0x102aa308c CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message&lt;CoreIPC::ArgumentDecoder&gt;&amp;)
7   0x102aa58a3 CoreIPC::Connection::dispatchMessages()
8   0x102aac6bb MemberFunctionWorkItem0&lt;CoreIPC::Connection&gt;::execute()
9   0x102b0b4cf RunLoop::performWork()
10  0x102b0c400 RunLoop::performWork(void*)
11  0x7fff88d97b51 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
12  0x7fff88d973bd __CFRunLoopDoSources0
13  0x7fff88dbe1a9 __CFRunLoopRun
14  0x7fff88dbdae6 CFRunLoopRunSpecific
15  0x7fff8ea543d3 RunCurrentEventLoopInMode
16  0x7fff8ea5b63d ReceiveNextEventCommon
17  0x7fff8ea5b4ca BlockUntilNextEventMatchingListInMode
18  0x7fff909083f1 _DPSNextEvent
19  0x7fff90907cf5 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
20  0x1000db2f3 -[BrowserApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
21  0x7fff9090462d -[NSApplication run]
22  0x7fff90b8380c NSApplicationMain
23  0x1005398c2 SafariMain
24  0x100000f32 main
25  0x100000f04 start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490312</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-25 13:40:14 -0700</bug_when>
    <thetext>My WebProcess was hitting an unrelated assertion just before this assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491059</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-10-26 11:47:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/10269985&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552639</commentid>
    <comment_count>3</comment_count>
      <attachid>126191</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-08 16:54:53 -0800</bug_when>
    <thetext>Created attachment 126191
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552647</commentid>
    <comment_count>4</comment_count>
      <attachid>126191</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-08 17:02:00 -0800</bug_when>
    <thetext>Comment on attachment 126191
proposed fix

Attachment 126191 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11461655</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552659</commentid>
    <comment_count>5</comment_count>
      <attachid>126197</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-08 17:09:03 -0800</bug_when>
    <thetext>Created attachment 126197
with a typo fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553420</commentid>
    <comment_count>6</comment_count>
      <attachid>126197</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-02-09 12:39:02 -0800</bug_when>
    <thetext>Comment on attachment 126197
with a typo fixed

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

&gt; Source/WebKit2/UIProcess/WebProcessProxy.cpp:250
&gt; +    for (WebBackForwardListItemMap::iterator iter = m_backForwardListItemMap.begin(); iter != m_backForwardListItemMap.end(); ++iter) {

The WebKit style is to put end in a local variable. Something like

WebBackForwardListItemMap::iterator iter = m_backForwardListItemMap.begin(), end = ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553479</commentid>
    <comment_count>7</comment_count>
      <attachid>126367</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-09 13:50:42 -0800</bug_when>
    <thetext>Created attachment 126367
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553812</commentid>
    <comment_count>8</comment_count>
      <attachid>126367</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-09 21:45:27 -0800</bug_when>
    <thetext>Comment on attachment 126367
patch for landing

Clearing flags on attachment: 126367

Committed r107356: &lt;http://trac.webkit.org/changeset/107356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553813</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-09 21:45:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126191</attachid>
            <date>2012-02-08 16:54:53 -0800</date>
            <delta_ts>2012-02-08 17:09:03 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>AssertionAfterCrash.txt</filename>
            <type>text/plain</type>
            <size>20128</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzE1MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDEyLTAyLTA4ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6
IGNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2VzcyhvcmlnaW5hbFVSTCkgbG9hZGluZyBhIGxv
Y2FsIGZpbGUsIGlmIHRoZSBXZWJQcm9jZXNzIGNyYXNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQ1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMDI2OTk4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGFsc28gZml4ZXMgc29tZSBjYXNlIHdoZXJlIFdlYlByb2Nlc3MgZGlkIG5vdCBn
ZXQgYSBzYW5kYm94IGV4dGVuc2lvbiBhZnRlciBhIGNyYXNoLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVh
dHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbSk6IFdlIG5vIGxvbmdlciBuZWVkIHRvIHBhc3MgYSBz
YW5kYm94CisgICAgICAgIGV4dGVuc2lvbiBoZXJlLCB3ZSdyZSBub3cgcGFzc2luZyBpdCBhdCBi
L2YgbmF2aWdhdGlvbiBib3R0bGVuZWNrLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnJlbG9hZCk6IFBhc3MgYSBzYW5kYm94IGV4dGVuc2lvbiAtIHJlbG9hZCBtYXkgbWVhbiByZWxv
YWRpbmcgYW4gZXJyb3IKKyAgICAgICAgcGFnZSBhZnRlciBhIGNyYXNoLCBzbyBXZWJQcm9jZXNz
IG1heSBubyBsb25nZXIgaGF2ZSB0aGUgZXh0ZW5zaW9uLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmdvRm9yd2FyZCk6IFdlIG5vIGxvbmdlciBuZWVkIHRvIHBhc3MgYSBzYW5kYm94
IGV4dGVuc2lvbiBoZXJlLAorICAgICAgICB3ZSdyZSBub3cgcGFzc2luZyBpdCBhdCBiL2YgbmF2
aWdhdGlvbiBib3R0bGVuZWNrLiBBbHNvLCBmaXhlZCBhIGJ1ZyB3aGVyZSB3ZSBmaXJzdCBudWxs
IGNoZWNrZWQKKyAgICAgICAgYSBXZWJCYWNrRm9yd2FyZExpc3RJdGVtIHBvaW50ZXIsIGFuZCB0
aGVuIHVzZWQgaXQgYW55d2F5LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvQmFj
ayk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2Fy
ZEl0ZW0pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpiYWNrRm9yd2Fy
ZEdvVG9JdGVtKTogVGhpcyBpcyB0aGUgYm90dGxlbmVjay4gV2UgZ2V0IGhlcmUgYm90aCBmb3Ig
VUkKKyAgICAgICAgYWN0aW9ucyBsaWtlIHByZXNzaW5nIHRoZSBCYWNrIGJ1dHRvbiwgYW5kIGZv
ciB3aW5kb3cuaGlzdG9yeS5nbygpIG5hdmlnYXRpb25zLiBKUyBuYXZpZ2F0aW9ucworICAgICAg
ICBwcmV2aW91c2x5IGRpZG4ndCBvcGVuIHVwIHRoZSBzYW5kYm94LiBVUkxzIGluIFVJIHByb2Nl
c3MgYi9mIGxpc3QgYXJlIHRydXN0ZWQsIHNvIGl0J3MKKyAgICAgICAgYWx3YXlzIE9LIHRvIGdy
YW50IGEgc2FuZGJveCBleHRlbnNpb24gaWYgb25lIG9mIHRoZW0gaXMgYSBmaWxlOiBvbmUuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IGJhY2tGb3J3YXJkR29Ub0l0ZW0o
KSBub3cgcmV0dXJucyBhIHNhbmRib3ggZXh0ZW5zaW9uIGhhbmRsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IERpdHRvLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6Y2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQcm9jZXNzKTogSWYgYSBVUkwgaXMgaW4gVUkg
cHJvY2VzcyBiL2YKKyAgICAgICAgbGlzdCwgdGhlbiBpdCBoYXMgYmVlbiBhbHJlYWR5IHZldHRl
ZCBhcyBzb21ldGhpbmcgdGhlIFdlYiBwcm9jZXNzIGtub3dzIGFib3V0LiBObyBuZWVkIHRvCisg
ICAgICAgIGNyYXNoIGlmIGl0IGFjdHVhbGx5IGF0dGVtcHRzIGdvaW5nIHRoZXJlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6IFJl
bW92ZWQgYSB1c2VsZXNzIGNvbW1lbnQgKHdlIGhhdmUgdG9ucworICAgICAgICBvZiBmcHJpbnRm
cyBiZXNpZGVzIHRoaXMgb25lKS4gRml4ZWQgbG9nIG1lc3NhZ2Ugc3ludGF4LgorCisgICAgICAg
ICogVUlQcm9jZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNwcDogKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZXN0b3JlRnJvbVNlc3Npb25TdGF0ZURhdGEpOgorICAgICAgICBXZSBubyBsb25nZXIgbmVl
ZCB0byBwYXNzIGEgc2FuZGJveCBleHRlbnNpb24gaGVyZSwgd2UncmUgbm93IHBhc3NpbmcgaXQg
YXQgYi9mIG5hdmlnYXRpb24KKyAgICAgICAgYm90dGxlbmVjay4gCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwOiAoV2ViS2l0OjpXZWJC
YWNrRm9yd2FyZExpc3RQcm94eTo6Z29Ub0l0ZW0pOgorICAgICAgICBXZSBub3cgZ2V0IGFuIGV4
dGVuc2lvbiBoZXJlLCB3aGVuIHRlbGxpbmcgVUkgcHJvY2VzcyB0aGF0IHdlJ3JlIG5hdmlnYXRp
bmcgdG8gYSBiL2YgbGlzdCBpdGVtLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWxvYWQpOiBVc2UgdGhlIGV4
dGVuc2lvbiB3ZSdyZSBnZXR0aW5nLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnb0Zvcndh
cmQpOiBEb24ndCB1c2Ugb25lIHdlJ3JlIG5vdCBnZXR0aW5nLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpnb0JhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z29Ub0Jh
Y2tGb3J3YXJkSXRlbSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXN0b3Jl
U2Vzc2lvbkFuZE5hdmlnYXRlVG9DdXJyZW50SXRlbSk6IERpdHRvLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDogQWRqdXN0ZWQgc2lnbmF0dXJlcyBhY2NvcmRpbmds
eS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBE
aXR0by4KKwogMjAxMi0wMi0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNjkyMCwgcjEwNjky
NCwgcjEwNjkzMywgcjEwNjkzOSwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCShyZXZpc2lvbiAxMDY5NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE2LDExICszMTYsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3NXCiAgICAgaWYgKCFpdGVtKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4
dGVuc2lvbkhhbmRsZTsKLSAgICBib29sIGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUluaXRpYWxp
emVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKEtVUkwoS1VSTCgpLCBpdGVtLT51cmwoKSksIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpOwotICAgIGlmIChjcmVhdGVkRXh0ZW5zaW9uKQotICAgICAgICBw
cm9jZXNzKCktPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5zaW9uKCk7
Ci0gICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJ
dGVtKGl0ZW0tPml0ZW1JRCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwgbV9wYWdlSUQpOwor
ICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRl
bShpdGVtLT5pdGVtSUQoKSksIG1fcGFnZUlEKTsKICAgICBwcm9jZXNzKCktPnJlc3BvbnNpdmVu
ZXNzVGltZXIoKS0+c3RhcnQoKTsKIH0KIApAQCAtNTA4LDE1ICs1MDQsMjQgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnN0b3BMb2FkaW5nKCkKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlbG9hZChib29s
IHJlbG9hZEZyb21PcmlnaW4pCiB7Ci0gICAgaWYgKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50
SXRlbSgpKQotICAgICAgICBzZXRQZW5kaW5nQVBJUmVxdWVzdFVSTChtX2JhY2tGb3J3YXJkTGlz
dC0+Y3VycmVudEl0ZW0oKS0+dXJsKCkpOworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlOworCisgICAgaWYgKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJy
ZW50SXRlbSgpKSB7CisgICAgICAgIFN0cmluZyB1cmwgPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3Vy
cmVudEl0ZW0oKS0+dXJsKCk7CisgICAgICAgIHNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHVybCk7
CisKKyAgICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGFuIGV4dGVuc2lvbiB5ZXQgaWYgYmFjay9m
b3J3YXJkIGxpc3Qgd2FzIHJlaW5zdGF0ZWQgYWZ0ZXIgYSBXZWJQcm9jZXNzIGNyYXNoIG9yIGEg
YnJvd3NlciByZWxhdW5jaAorICAgICAgICBib29sIGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUlu
aXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKEtVUkwoS1VSTCgpLCB1cmwpLCBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICAgICAgaWYgKGNyZWF0ZWRFeHRlbnNpb24pCisgICAgICAg
ICAgICBwcm9jZXNzKCktPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5z
aW9uKCk7CisgICAgfQogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKICAgICAgICAgcmVhdHRhY2hU
b1dlYlByb2Nlc3NXaXRoSXRlbShtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlJlbG9hZChyZWxvYWRGcm9tT3JpZ2luKSwgbV9wYWdlSUQpOworICAgIHByb2Nlc3Mo
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVsb2FkKHJlbG9hZEZyb21PcmlnaW4sIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpLCBtX3BhZ2VJRCk7CiAgICAgcHJvY2VzcygpLT5yZXNwb25zaXZl
bmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9CiAKQEAgLTUyNiwxOSArNTMxLDE3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojpnb0ZvcndhcmQoKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtKiBmb3J3YXJkSXRlbSA9IG1fYmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRl
bSgpOwotICAgIGlmIChmb3J3YXJkSXRlbSkKLSAgICAgICAgc2V0UGVuZGluZ0FQSVJlcXVlc3RV
UkwoZm9yd2FyZEl0ZW0tPnVybCgpKTsKKyAgICBpZiAoIWZvcndhcmRJdGVtKQorICAgICAgICBy
ZXR1cm4uCisKKyAgICBzZXRQZW5kaW5nQVBJUmVxdWVzdFVSTChmb3J3YXJkSXRlbS0+dXJsKCkp
OwogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKICAgICAgICAgcmVhdHRhY2hUb1dlYlByb2Nlc3NX
aXRoSXRlbShmb3J3YXJkSXRlbSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKLSAgICBib29sIGNy
ZWF0ZWRFeHRlbnNpb24gPSBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKEtV
UkwoS1VSTCgpLCBmb3J3YXJkSXRlbS0+dXJsKCkpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsK
LSAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKLSAgICAgICAgcHJvY2VzcygpLT53aWxsQWNxdWly
ZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOwotICAgIHByb2Nlc3MoKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R29Gb3J3YXJkKGZvcndhcmRJdGVtLT5pdGVtSUQoKSwgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSksIG1fcGFnZUlEKTsKKyAgICBwcm9jZXNzKCktPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdvRm9yd2FyZChmb3J3YXJkSXRlbS0+aXRlbUlEKCkpLCBtX3BhZ2VJ
RCk7CiAgICAgcHJvY2VzcygpLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9CiAK
QEAgLTU1MywxOSArNTU2LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpnb0JhY2soKQogICAgICAg
ICByZXR1cm47CiAKICAgICBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBiYWNrSXRlbSA9IG1fYmFj
a0ZvcndhcmRMaXN0LT5iYWNrSXRlbSgpOwotICAgIGlmIChiYWNrSXRlbSkKLSAgICAgICAgc2V0
UGVuZGluZ0FQSVJlcXVlc3RVUkwoYmFja0l0ZW0tPnVybCgpKTsKKyAgICBpZiAoIWJhY2tJdGVt
KQorICAgICAgICByZXR1cm47CisKKyAgICBzZXRQZW5kaW5nQVBJUmVxdWVzdFVSTChiYWNrSXRl
bS0+dXJsKCkpOwogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKICAgICAgICAgcmVhdHRhY2hUb1dl
YlByb2Nlc3NXaXRoSXRlbShiYWNrSXRlbSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKLSAgICBi
b29sIGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKEtVUkwoS1VSTCgpLCBiYWNrSXRlbS0+dXJsKCkpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KTsKLSAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKLSAgICAgICAgcHJvY2VzcygpLT53aWxsQWNx
dWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOwotICAgIHByb2Nlc3MoKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29CYWNrKGJhY2tJdGVtLT5pdGVtSUQoKSwgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSksIG1fcGFnZUlEKTsKKyAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkdvQmFjayhiYWNrSXRlbS0+aXRlbUlEKCkpLCBtX3BhZ2VJRCk7CiAgICAg
cHJvY2VzcygpLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9CiAKQEAgLTU4Mywx
MSArNTg0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oVwogICAg
IAogICAgIHNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKGl0ZW0tPnVybCgpKTsKIAotICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOwotICAgIGJvb2wgY3Jl
YXRlZEV4dGVuc2lvbiA9IG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUoS1VS
TChLVVJMKCksIGl0ZW0tPnVybCgpKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgaWYg
KGNyZWF0ZWRFeHRlbnNpb24pCi0gICAgICAgIHByb2Nlc3MoKS0+d2lsbEFjcXVpcmVVbml2ZXJz
YWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oKTsKLSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0oaXRlbS0+aXRlbUlEKCksIHNhbmRib3hF
eHRlbnNpb25IYW5kbGUpLCBtX3BhZ2VJRCk7CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQp
OwogICAgIHByb2Nlc3MoKS0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwogfQogCkBA
IC0yNDQ3LDkgKzI0NDQsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJhY2tGb3J3YXJkQWRkSXRl
bSh1aQogICAgIG1fYmFja0ZvcndhcmRMaXN0LT5hZGRJdGVtKHByb2Nlc3MoKS0+d2ViQmFja0Zv
cndhcmRJdGVtKGl0ZW1JRCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRH
b1RvSXRlbSh1aW50NjRfdCBpdGVtSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRH
b1RvSXRlbSh1aW50NjRfdCBpdGVtSUQsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSkKIHsKLSAgICBtX2JhY2tGb3J3YXJkTGlzdC0+Z29Ub0l0ZW0ocHJv
Y2VzcygpLT53ZWJCYWNrRm9yd2FyZEl0ZW0oaXRlbUlEKSk7CisgICAgV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogaXRlbSA9IHByb2Nlc3MoKS0+d2ViQmFja0ZvcndhcmRJdGVtKGl0ZW1JRCk7Cisg
ICAgaWYgKCFpdGVtKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGNyZWF0ZWRFeHRlbnNp
b24gPSBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKEtVUkwoS1VSTCgpLCBp
dGVtLT51cmwoKSksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgIGlmIChjcmVhdGVkRXh0
ZW5zaW9uKQorICAgICAgICBwcm9jZXNzKCktPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRT
YW5kYm94RXh0ZW5zaW9uKCk7CisgICAgbV9iYWNrRm9yd2FyZExpc3QtPmdvVG9JdGVtKGl0ZW0p
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRJdGVtQXRJbmRleChpbnQzMl90
IGluZGV4LCB1aW50NjRfdCYgaXRlbUlEKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMTA2OTU4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NDMsNyArNzQzLDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIEJhY2svRm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKICAgICB2b2lkIGJh
Y2tGb3J3YXJkQWRkSXRlbSh1aW50NjRfdCBpdGVtSUQpOwotICAgIHZvaWQgYmFja0ZvcndhcmRH
b1RvSXRlbSh1aW50NjRfdCBpdGVtSUQpOworICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbSh1
aW50NjRfdCBpdGVtSUQsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogICAgIHZvaWQgYmFj
a0ZvcndhcmRJdGVtQXRJbmRleChpbnQzMl90IGluZGV4LCB1aW50NjRfdCYgaXRlbUlEKTsKICAg
ICB2b2lkIGJhY2tGb3J3YXJkQmFja0xpc3RDb3VudChpbnQzMl90JiBjb3VudCk7CiAgICAgdm9p
ZCBiYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQoaW50MzJfdCYgY291bnQpOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAxMDY5NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKIAogICAgICMgQmFja0ZvcndhcmQgbWVzc2FnZXMKICAgICBCYWNr
Rm9yd2FyZEFkZEl0ZW0odWludDY0X3QgaXRlbUlEKQotICAgIEJhY2tGb3J3YXJkR29Ub0l0ZW0o
dWludDY0X3QgaXRlbUlEKQorICAgIEJhY2tGb3J3YXJkR29Ub0l0ZW0odWludDY0X3QgaXRlbUlE
KSAtPiAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhh
bmRsZSkKICAgICBCYWNrRm9yd2FyZEl0ZW1BdEluZGV4KGludDMyX3QgaXRlbUluZGV4KSAtPiAo
dWludDY0X3QgaXRlbUlEKQogICAgIEJhY2tGb3J3YXJkQmFja0xpc3RDb3VudCgpIC0+IChpbnQz
Ml90IGNvdW50KQogICAgIEJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudCgpIC0+IChpbnQzMl90
IGNvdW50KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAJKHJldmlzaW9uIDEwNjk1OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUsNyArMjQ1LDE3IEBAIGJvb2wg
V2ViUHJvY2Vzc1Byb3h5OjpjaGVja1VSTFJlY2VpdmVkRnIKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAorICAgIC8vIEl0ZW1zIGluIGJhY2svZm9yd2FyZCBsaXN0IGhhdmUgYmVl
biBhbHJlYWR5IGNoZWNrZWQuCisgICAgLy8gT25lIGNhc2Ugd2hlcmUgd2UgZG9uJ3QgaGF2ZSBz
YW5kYm94IGV4dGVuc2lvbnMgZm9yIGZpbGUgVVJMcyBpbiBiL2YgbGlzdCBpcyBpZiB0aGUgbGlz
dCBoYXMgYmVlbiByZWluc3RhdGVkIGFmdGVyIGEgY3Jhc2ggb3IgYSBicm93c2VyIHJlc3RhcnQu
CisgICAgZm9yIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtTWFwOjppdGVyYXRvciBpdGVyID0gbV9i
YWNrRm9yd2FyZExpc3RJdGVtTWFwLmJlZ2luKCk7IGl0ZXIgIT0gbV9iYWNrRm9yd2FyZExpc3RJ
dGVtTWFwLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKEtVUkwoS1VSTCgpLCBpdGVyLT5z
ZWNvbmQtPnVybCgpKS5maWxlU3lzdGVtUGF0aCgpID09IHBhdGgpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgaWYgKEtVUkwoS1VSTCgpLCBpdGVyLT5zZWNvbmQtPm9yaWdpbmFs
VVJMKCkpLmZpbGVTeXN0ZW1QYXRoKCkgPT0gcGF0aCkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKwogICAgIC8vIEEgV2ViIHByb2Nlc3MgdGhhdCB3YXMgbmV2ZXIgYXNrZWQgdG8g
bG9hZCBhIGZpbGUgVVJMIHNob3VsZCBub3QgZXZlciBhc2sgdXMgdG8gZG8gYW55dGhpbmcgd2l0
aCBhIGZpbGUgVVJMLgorICAgIGZwcmludGYoc3RkZXJyLCAiUmVjZWl2ZWQgYW4gdW5leHBlY3Rl
ZCBVUkwgZnJvbSB0aGUgd2ViIHByb2Nlc3M6ICclcydcbiIsIHVybC5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTM2OCw5ICszNzgsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoQ29yZUlQQzo6CiAKIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQpCiB7Ci0gICAgLy8gVGhpcyBmcHJpbnRmIGlzIGludGVu
dGlvbmFsbHkgbGVmdCBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gc2hvdWxkIAotICAgIC8vIG9ubHkg
YmUgaGl0IGluIHRoZSBjYXNlIG9mIGEgbWlzYmVoYXZpbmcgd2ViIHByb2Nlc3MuCi0gICAgZnBy
aW50ZihzdGRlcnIsICJSZWNlaXZlIGFuIGludmFsaWQgbWVzc2FnZSBmcm9tIHRoZSB3ZWIgcHJv
Y2VzcyB3aXRoIG1lc3NhZ2UgSUQgJXhcbiIsIG1lc3NhZ2VJRC50b0ludCgpKTsKKyAgICBmcHJp
bnRmKHN0ZGVyciwgIlJlY2VpdmVkIGFuIGludmFsaWQgbWVzc2FnZSBmcm9tIHRoZSB3ZWIgcHJv
Y2VzcyB3aXRoIG1lc3NhZ2UgSUQgJXhcbiIsIG1lc3NhZ2VJRC50b0ludCgpKTsKIAogICAgIC8v
IFRlcm1pbmF0ZSB0aGUgV2ViUHJvY2Vzc2VzLgogICAgIHRlcm1pbmF0ZSgpOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2YvV2ViUGFnZVByb3h5Q0YuY3BwCShyZXZpc2lv
biAxMDY5NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2YvV2ViUGFnZVByb3h5Q0Yu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQsMTUgKzE2NCwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVzdG9yZUZyb21TZXNzaW9uU3RhCiAgICAgICAgICAgICAgICAgaWYgKHByb3Zpc2lvbmFs
VVJMKQogICAgICAgICAgICAgICAgICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlJlc3RvcmVTZXNzaW9uKHN0YXRlKSwgbV9wYWdlSUQpOwogICAgICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0qIGl0ZW0gPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBjcmVhdGVkRXh0ZW5zaW9uID0gbWF5YmVJbml0aWFs
aXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShLVVJMKEtVUkwoKSwgaXRlbS0+dXJsKCkpLCBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjcmVhdGVk
RXh0ZW5zaW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MoKS0+d2lsbEFj
cXVpcmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBtX2JhY2tGb3J3YXJkTGlz
dC0+Y3VycmVudEl0ZW0oKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHNldFBlbmRpbmdBUElS
ZXF1ZXN0VVJMKGl0ZW0tPnVybCgpKTsKLSAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICAgICAgICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVzdG9yZVNl
c3Npb25BbmROYXZpZ2F0ZVRvQ3VycmVudEl0ZW0oc3RhdGUsIHNhbmRib3hFeHRlbnNpb25IYW5k
bGUpLCBtX3BhZ2VJRCk7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6UmVzdG9yZVNlc3Npb25BbmROYXZpZ2F0ZVRvQ3VycmVudEl0ZW0oc3Rh
dGUpLCBtX3BhZ2VJRCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0Zvcndh
cmRMaXN0UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAJKHJldmlzaW9uIDEwNjk1OCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw3ICsxNjMsOSBAQCB2b2lkIFdlYkJhY2tGb3J3
YXJkTGlzdFByb3h5Ojpnb1RvSXRlbShICiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2Fy
ZEdvVG9JdGVtKGhpc3RvcnlJdGVtVG9JRE1hcCgpLmdldChpdGVtKSkpOworICAgIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOworICAgIG1fcGFnZS0+c2Vu
ZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRHb1RvSXRlbShoaXN0b3J5
SXRlbVRvSURNYXAoKS5nZXQoaXRlbSkpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9y
d2FyZEdvVG9JdGVtOjpSZXBseShzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSk7CisgICAgbV9wYWdl
LT5zYW5kYm94RXh0ZW5zaW9uVHJhY2tlcigpLmJlZ2luTG9hZChtX3BhZ2UtPm1haW5XZWJGcmFt
ZSgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKIH0KIAogSGlzdG9yeUl0ZW0qIFdlYkJhY2tG
b3J3YXJkTGlzdFByb3h5OjppdGVtQXRJbmRleChpbnQgaXRlbUluZGV4KQpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMTA2
OTU4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MTEsMTQgKzcxMSwxNSBAQCB2b2lkIFdlYlBhZ2U6OnNldERlZmVy
c0xvYWRpbmcoYm9vbCBkZWZlCiAgICAgbV9wYWdlLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVyc0xv
YWRpbmcpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJlbG9hZChib29sIHJlbG9hZEZyb21PcmlnaW4p
Cit2b2lkIFdlYlBhZ2U6OnJlbG9hZChib29sIHJlbG9hZEZyb21PcmlnaW4sIGNvbnN0IFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKIHsKICAgICBTZW5k
U3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsKIAorICAgIG1fc2FuZGJveEV4
dGVuc2lvblRyYWNrZXIuYmVnaW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKTsKICAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5yZWxv
YWQocmVsb2FkRnJvbU9yaWdpbik7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z29Gb3J3YXJkKHVpbnQ2
NF90IGJhY2tGb3J3YXJkSXRlbUlELCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNh
bmRib3hFeHRlbnNpb25IYW5kbGUpCit2b2lkIFdlYlBhZ2U6OmdvRm9yd2FyZCh1aW50NjRfdCBi
YWNrRm9yd2FyZEl0ZW1JRCkKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3Rv
cHBlcih0aGlzKTsKIApAQCAtNzI3LDExICs3MjgsMTAgQEAgdm9pZCBXZWJQYWdlOjpnb0Zvcndh
cmQodWludDY0X3QgYmFja0ZvcgogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tlci5iZWdpbkxvYWQobV9tYWluRnJhbWUuZ2V0KCks
IHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogICAgIG1fcGFnZS0+Z29Ub0l0ZW0oaXRlbSwgRnJh
bWVMb2FkVHlwZUZvcndhcmQpOwogfQogCi12b2lkIFdlYlBhZ2U6OmdvQmFjayh1aW50NjRfdCBi
YWNrRm9yd2FyZEl0ZW1JRCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKQordm9pZCBXZWJQYWdlOjpnb0JhY2sodWludDY0X3QgYmFja0Zvcndh
cmRJdGVtSUQpCiB7CiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXIodGhp
cyk7CiAKQEAgLTc0MCwxMSArNzQwLDEwIEBAIHZvaWQgV2ViUGFnZTo6Z29CYWNrKHVpbnQ2NF90
IGJhY2tGb3J3YXIKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc2Fu
ZGJveEV4dGVuc2lvblRyYWNrZXIuYmVnaW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBtX3BhZ2UtPmdvVG9JdGVtKGl0ZW0sIEZyYW1lTG9hZFR5
cGVCYWNrKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90
IGJhY2tGb3J3YXJkSXRlbUlELCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpCit2b2lkIFdlYlBhZ2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0odWlu
dDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCiB7CiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1Rp
bWVyIHN0b3BwZXIodGhpcyk7CiAKQEAgLTc1Myw3ICs3NTIsNiBAQCB2b2lkIFdlYlBhZ2U6Omdv
VG9CYWNrRm9yd2FyZEl0ZW0odWludDY0CiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyLmJlZ2luTG9hZChtX21haW5GcmFtZS5n
ZXQoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAgICAgbV9wYWdlLT5nb1RvSXRlbShpdGVt
LCBGcmFtZUxvYWRUeXBlSW5kZXhlZEJhY2tGb3J3YXJkKTsKIH0KIApAQCAtMTQzNywxMCArMTQz
NSwxMCBAQCB1aW50NjRfdCBXZWJQYWdlOjpyZXN0b3JlU2Vzc2lvbihjb25zdCBTCiAgICAgcmV0
dXJuIGN1cnJlbnRJdGVtSUQ7CiB9CiAKLXZvaWQgV2ViUGFnZTo6cmVzdG9yZVNlc3Npb25BbmRO
YXZpZ2F0ZVRvQ3VycmVudEl0ZW0oY29uc3QgU2Vzc2lvblN0YXRlJiBzZXNzaW9uU3RhdGUsIGNv
bnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKK3Zv
aWQgV2ViUGFnZTo6cmVzdG9yZVNlc3Npb25BbmROYXZpZ2F0ZVRvQ3VycmVudEl0ZW0oY29uc3Qg
U2Vzc2lvblN0YXRlJiBzZXNzaW9uU3RhdGUpCiB7CiAgICAgaWYgKHVpbnQ2NF90IGN1cnJlbnRJ
dGVtSUQgPSByZXN0b3JlU2Vzc2lvbihzZXNzaW9uU3RhdGUpKQotICAgICAgICBnb1RvQmFja0Zv
cndhcmRJdGVtKGN1cnJlbnRJdGVtSUQsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgICAg
ICBnb1RvQmFja0ZvcndhcmRJdGVtKGN1cnJlbnRJdGVtSUQpOwogfQogCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAkocmV2aXNpb24gMTA2OTU4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTMzLDEwICs1MzMsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKGNvbnN0IFN0cmluZyYgaHRt
bFN0cmluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxl
VVJMKTsKICAgICB2b2lkIGxvYWRQbGFpblRleHRTdHJpbmcoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBsaW5rQ2xpY2tlZChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgV2ViTW91c2VFdmVudCYp
OwotICAgIHZvaWQgcmVsb2FkKGJvb2wgcmVsb2FkRnJvbU9yaWdpbik7Ci0gICAgdm9pZCBnb0Zv
cndhcmQodWludDY0X3QsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwotICAgIHZv
aWQgZ29CYWNrKHVpbnQ2NF90LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKLSAg
ICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QsIGNvbnN0IFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSYpOworICAgIHZvaWQgcmVsb2FkKGJvb2wgcmVsb2FkRnJvbU9yaWdpbiwgY29u
c3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CisgICAgdm9pZCBnb0ZvcndhcmQodWludDY0
X3QpOworICAgIHZvaWQgZ29CYWNrKHVpbnQ2NF90KTsKKyAgICB2b2lkIGdvVG9CYWNrRm9yd2Fy
ZEl0ZW0odWludDY0X3QpOwogICAgIHZvaWQgdHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAg
ICAgdm9pZCBzZXRBY3RpdmUoYm9vbCk7CiAgICAgdm9pZCBzZXRGb2N1c2VkKGJvb2wpOwpAQCAt
NTY0LDcgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgbG9naWNhbFNjcm9sbChX
ZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6U2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgV2ViQ29yZTo6
U2Nyb2xsR3JhbnVsYXJpdHkpOwogCiAgICAgdWludDY0X3QgcmVzdG9yZVNlc3Npb24oY29uc3Qg
U2Vzc2lvblN0YXRlJik7Ci0gICAgdm9pZCByZXN0b3JlU2Vzc2lvbkFuZE5hdmlnYXRlVG9DdXJy
ZW50SXRlbShjb25zdCBTZXNzaW9uU3RhdGUmLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmKTsKKyAgICB2b2lkIHJlc3RvcmVTZXNzaW9uQW5kTmF2aWdhdGVUb0N1cnJlbnRJdGVtKGNv
bnN0IFNlc3Npb25TdGF0ZSYpOwogCiAgICAgdm9pZCBkaWRSZW1vdmVCYWNrRm9yd2FyZEl0ZW0o
dWludDY0X3QpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTA2OTU4KQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTUwLDkgKzUwLDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAgICAgU2Nyb2xs
QnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0eSkK
ICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkKIAotICAgIEdvQmFjayh1aW50NjRf
dCBiYWNrRm9yd2FyZEl0ZW1JRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSkKLSAgICBHb0ZvcndhcmQodWludDY0X3QgYmFja0ZvcndhcmRJ
dGVtSUQsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25I
YW5kbGUpCi0gICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1J
RCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRs
ZSkKKyAgICBHb0JhY2sodWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCisgICAgR29Gb3J3YXJk
KHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQorICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWlu
dDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkK
ICAgICBMb2FkSFRNTFN0cmluZyhXVEY6OlN0cmluZyBodG1sU3RyaW5nLCBXVEY6OlN0cmluZyBi
YXNlVVJMKQogICAgIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKFdURjo6U3RyaW5nIGh0bWxTdHJp
bmcsIFdURjo6U3RyaW5nIGJhc2VVUkwsIFdURjo6U3RyaW5nIHVucmVhY2hhYmxlVVJMKTsgCkBA
IC02MCw3ICs2MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIExvYWRVUkwoV1RGOjpT
dHJpbmcgdXJsLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKQogICAgIExvYWRVUkxSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKQogICAgIExpbmtDbGlja2VkKFdURjo6U3RyaW5nIHVybCwgV2ViS2l0OjpXZWJNb3Vz
ZUV2ZW50IGV2ZW50KQotICAgIFJlbG9hZChib29sIHJlbG9hZEZyb21PcmlnaW4pCisgICAgUmVs
b2FkKGJvb2wgcmVsb2FkRnJvbU9yaWdpbiwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICBTdG9wTG9hZGluZygpCiAKICNpZiBQTEFU
Rk9STShRVCkKQEAgLTcxLDcgKzcxLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAgICAgU3Rv
cExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIAogICAgIFJlc3RvcmVTZXNzaW9u
KFdlYktpdDo6U2Vzc2lvblN0YXRlIHN0YXRlKQotICAgIFJlc3RvcmVTZXNzaW9uQW5kTmF2aWdh
dGVUb0N1cnJlbnRJdGVtKFdlYktpdDo6U2Vzc2lvblN0YXRlIHN0YXRlLCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQorICAgIFJlc3RvcmVT
ZXNzaW9uQW5kTmF2aWdhdGVUb0N1cnJlbnRJdGVtKFdlYktpdDo6U2Vzc2lvblN0YXRlIHN0YXRl
KQogCiAgICAgRGlkUmVtb3ZlQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRl
bUlEKQogCg==
</data>
<flag name="commit-queue"
          id="127944"
          type_id="3"
          status="-"
          setter="pnormand"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126197</attachid>
            <date>2012-02-08 17:09:03 -0800</date>
            <delta_ts>2012-02-09 13:50:53 -0800</delta_ts>
            <desc>with a typo fixed</desc>
            <filename>AssertionAfterCrash.txt</filename>
            <type>text/plain</type>
            <size>20128</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzE1MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDEyLTAyLTA4ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6
IGNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2VzcyhvcmlnaW5hbFVSTCkgbG9hZGluZyBhIGxv
Y2FsIGZpbGUsIGlmIHRoZSBXZWJQcm9jZXNzIGNyYXNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQ1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMDI2OTk4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGFsc28gZml4ZXMgc29tZSBjYXNlIHdoZXJlIFdlYlByb2Nlc3MgZGlkIG5vdCBn
ZXQgYSBzYW5kYm94IGV4dGVuc2lvbiBhZnRlciBhIGNyYXNoLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVh
dHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbSk6IFdlIG5vIGxvbmdlciBuZWVkIHRvIHBhc3MgYSBz
YW5kYm94CisgICAgICAgIGV4dGVuc2lvbiBoZXJlLCB3ZSdyZSBub3cgcGFzc2luZyBpdCBhdCBi
L2YgbmF2aWdhdGlvbiBib3R0bGVuZWNrLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnJlbG9hZCk6IFBhc3MgYSBzYW5kYm94IGV4dGVuc2lvbiAtIHJlbG9hZCBtYXkgbWVhbiByZWxv
YWRpbmcgYW4gZXJyb3IKKyAgICAgICAgcGFnZSBhZnRlciBhIGNyYXNoLCBzbyBXZWJQcm9jZXNz
IG1heSBubyBsb25nZXIgaGF2ZSB0aGUgZXh0ZW5zaW9uLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmdvRm9yd2FyZCk6IFdlIG5vIGxvbmdlciBuZWVkIHRvIHBhc3MgYSBzYW5kYm94
IGV4dGVuc2lvbiBoZXJlLAorICAgICAgICB3ZSdyZSBub3cgcGFzc2luZyBpdCBhdCBiL2YgbmF2
aWdhdGlvbiBib3R0bGVuZWNrLiBBbHNvLCBmaXhlZCBhIGJ1ZyB3aGVyZSB3ZSBmaXJzdCBudWxs
IGNoZWNrZWQKKyAgICAgICAgYSBXZWJCYWNrRm9yd2FyZExpc3RJdGVtIHBvaW50ZXIsIGFuZCB0
aGVuIHVzZWQgaXQgYW55d2F5LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvQmFj
ayk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2Fy
ZEl0ZW0pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpiYWNrRm9yd2Fy
ZEdvVG9JdGVtKTogVGhpcyBpcyB0aGUgYm90dGxlbmVjay4gV2UgZ2V0IGhlcmUgYm90aCBmb3Ig
VUkKKyAgICAgICAgYWN0aW9ucyBsaWtlIHByZXNzaW5nIHRoZSBCYWNrIGJ1dHRvbiwgYW5kIGZv
ciB3aW5kb3cuaGlzdG9yeS5nbygpIG5hdmlnYXRpb25zLiBKUyBuYXZpZ2F0aW9ucworICAgICAg
ICBwcmV2aW91c2x5IGRpZG4ndCBvcGVuIHVwIHRoZSBzYW5kYm94LiBVUkxzIGluIFVJIHByb2Nl
c3MgYi9mIGxpc3QgYXJlIHRydXN0ZWQsIHNvIGl0J3MKKyAgICAgICAgYWx3YXlzIE9LIHRvIGdy
YW50IGEgc2FuZGJveCBleHRlbnNpb24gaWYgb25lIG9mIHRoZW0gaXMgYSBmaWxlOiBvbmUuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IGJhY2tGb3J3YXJkR29Ub0l0ZW0o
KSBub3cgcmV0dXJucyBhIHNhbmRib3ggZXh0ZW5zaW9uIGhhbmRsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IERpdHRvLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6Y2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQcm9jZXNzKTogSWYgYSBVUkwgaXMgaW4gVUkg
cHJvY2VzcyBiL2YKKyAgICAgICAgbGlzdCwgdGhlbiBpdCBoYXMgYmVlbiBhbHJlYWR5IHZldHRl
ZCBhcyBzb21ldGhpbmcgdGhlIFdlYiBwcm9jZXNzIGtub3dzIGFib3V0LiBObyBuZWVkIHRvCisg
ICAgICAgIGNyYXNoIGlmIGl0IGFjdHVhbGx5IGF0dGVtcHRzIGdvaW5nIHRoZXJlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6IFJl
bW92ZWQgYSB1c2VsZXNzIGNvbW1lbnQgKHdlIGhhdmUgdG9ucworICAgICAgICBvZiBmcHJpbnRm
cyBiZXNpZGVzIHRoaXMgb25lKS4gRml4ZWQgbG9nIG1lc3NhZ2Ugc3ludGF4LgorCisgICAgICAg
ICogVUlQcm9jZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNwcDogKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZXN0b3JlRnJvbVNlc3Npb25TdGF0ZURhdGEpOgorICAgICAgICBXZSBubyBsb25nZXIgbmVl
ZCB0byBwYXNzIGEgc2FuZGJveCBleHRlbnNpb24gaGVyZSwgd2UncmUgbm93IHBhc3NpbmcgaXQg
YXQgYi9mIG5hdmlnYXRpb24KKyAgICAgICAgYm90dGxlbmVjay4gCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwOiAoV2ViS2l0OjpXZWJC
YWNrRm9yd2FyZExpc3RQcm94eTo6Z29Ub0l0ZW0pOgorICAgICAgICBXZSBub3cgZ2V0IGFuIGV4
dGVuc2lvbiBoZXJlLCB3aGVuIHRlbGxpbmcgVUkgcHJvY2VzcyB0aGF0IHdlJ3JlIG5hdmlnYXRp
bmcgdG8gYSBiL2YgbGlzdCBpdGVtLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWxvYWQpOiBVc2UgdGhlIGV4
dGVuc2lvbiB3ZSdyZSBnZXR0aW5nLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnb0Zvcndh
cmQpOiBEb24ndCB1c2Ugb25lIHdlJ3JlIG5vdCBnZXR0aW5nLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpnb0JhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z29Ub0Jh
Y2tGb3J3YXJkSXRlbSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXN0b3Jl
U2Vzc2lvbkFuZE5hdmlnYXRlVG9DdXJyZW50SXRlbSk6IERpdHRvLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDogQWRqdXN0ZWQgc2lnbmF0dXJlcyBhY2NvcmRpbmds
eS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBE
aXR0by4KKwogMjAxMi0wMi0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNjkyMCwgcjEwNjky
NCwgcjEwNjkzMywgcjEwNjkzOSwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCShyZXZpc2lvbiAxMDY5NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE2LDExICszMTYsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3NXCiAgICAgaWYgKCFpdGVtKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4
dGVuc2lvbkhhbmRsZTsKLSAgICBib29sIGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUluaXRpYWxp
emVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKEtVUkwoS1VSTCgpLCBpdGVtLT51cmwoKSksIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpOwotICAgIGlmIChjcmVhdGVkRXh0ZW5zaW9uKQotICAgICAgICBw
cm9jZXNzKCktPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5zaW9uKCk7
Ci0gICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJ
dGVtKGl0ZW0tPml0ZW1JRCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwgbV9wYWdlSUQpOwor
ICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRl
bShpdGVtLT5pdGVtSUQoKSksIG1fcGFnZUlEKTsKICAgICBwcm9jZXNzKCktPnJlc3BvbnNpdmVu
ZXNzVGltZXIoKS0+c3RhcnQoKTsKIH0KIApAQCAtNTA4LDE1ICs1MDQsMjQgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnN0b3BMb2FkaW5nKCkKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlbG9hZChib29s
IHJlbG9hZEZyb21PcmlnaW4pCiB7Ci0gICAgaWYgKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50
SXRlbSgpKQotICAgICAgICBzZXRQZW5kaW5nQVBJUmVxdWVzdFVSTChtX2JhY2tGb3J3YXJkTGlz
dC0+Y3VycmVudEl0ZW0oKS0+dXJsKCkpOworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlOworCisgICAgaWYgKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJy
ZW50SXRlbSgpKSB7CisgICAgICAgIFN0cmluZyB1cmwgPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3Vy
cmVudEl0ZW0oKS0+dXJsKCk7CisgICAgICAgIHNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHVybCk7
CisKKyAgICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGFuIGV4dGVuc2lvbiB5ZXQgaWYgYmFjay9m
b3J3YXJkIGxpc3Qgd2FzIHJlaW5zdGF0ZWQgYWZ0ZXIgYSBXZWJQcm9jZXNzIGNyYXNoIG9yIGEg
YnJvd3NlciByZWxhdW5jaAorICAgICAgICBib29sIGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUlu
aXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKEtVUkwoS1VSTCgpLCB1cmwpLCBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICAgICAgaWYgKGNyZWF0ZWRFeHRlbnNpb24pCisgICAgICAg
ICAgICBwcm9jZXNzKCktPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5z
aW9uKCk7CisgICAgfQogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKICAgICAgICAgcmVhdHRhY2hU
b1dlYlByb2Nlc3NXaXRoSXRlbShtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlJlbG9hZChyZWxvYWRGcm9tT3JpZ2luKSwgbV9wYWdlSUQpOworICAgIHByb2Nlc3Mo
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVsb2FkKHJlbG9hZEZyb21PcmlnaW4sIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpLCBtX3BhZ2VJRCk7CiAgICAgcHJvY2VzcygpLT5yZXNwb25zaXZl
bmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9CiAKQEAgLTUyNiwxOSArNTMxLDE3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojpnb0ZvcndhcmQoKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtKiBmb3J3YXJkSXRlbSA9IG1fYmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRl
bSgpOwotICAgIGlmIChmb3J3YXJkSXRlbSkKLSAgICAgICAgc2V0UGVuZGluZ0FQSVJlcXVlc3RV
UkwoZm9yd2FyZEl0ZW0tPnVybCgpKTsKKyAgICBpZiAoIWZvcndhcmRJdGVtKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBzZXRQZW5kaW5nQVBJUmVxdWVzdFVSTChmb3J3YXJkSXRlbS0+dXJsKCkp
OwogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKICAgICAgICAgcmVhdHRhY2hUb1dlYlByb2Nlc3NX
aXRoSXRlbShmb3J3YXJkSXRlbSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKLSAgICBib29sIGNy
ZWF0ZWRFeHRlbnNpb24gPSBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKEtV
UkwoS1VSTCgpLCBmb3J3YXJkSXRlbS0+dXJsKCkpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsK
LSAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKLSAgICAgICAgcHJvY2VzcygpLT53aWxsQWNxdWly
ZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOwotICAgIHByb2Nlc3MoKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R29Gb3J3YXJkKGZvcndhcmRJdGVtLT5pdGVtSUQoKSwgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSksIG1fcGFnZUlEKTsKKyAgICBwcm9jZXNzKCktPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdvRm9yd2FyZChmb3J3YXJkSXRlbS0+aXRlbUlEKCkpLCBtX3BhZ2VJ
RCk7CiAgICAgcHJvY2VzcygpLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9CiAK
QEAgLTU1MywxOSArNTU2LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpnb0JhY2soKQogICAgICAg
ICByZXR1cm47CiAKICAgICBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBiYWNrSXRlbSA9IG1fYmFj
a0ZvcndhcmRMaXN0LT5iYWNrSXRlbSgpOwotICAgIGlmIChiYWNrSXRlbSkKLSAgICAgICAgc2V0
UGVuZGluZ0FQSVJlcXVlc3RVUkwoYmFja0l0ZW0tPnVybCgpKTsKKyAgICBpZiAoIWJhY2tJdGVt
KQorICAgICAgICByZXR1cm47CisKKyAgICBzZXRQZW5kaW5nQVBJUmVxdWVzdFVSTChiYWNrSXRl
bS0+dXJsKCkpOwogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKICAgICAgICAgcmVhdHRhY2hUb1dl
YlByb2Nlc3NXaXRoSXRlbShiYWNrSXRlbSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKLSAgICBi
b29sIGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKEtVUkwoS1VSTCgpLCBiYWNrSXRlbS0+dXJsKCkpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KTsKLSAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKLSAgICAgICAgcHJvY2VzcygpLT53aWxsQWNx
dWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOwotICAgIHByb2Nlc3MoKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29CYWNrKGJhY2tJdGVtLT5pdGVtSUQoKSwgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSksIG1fcGFnZUlEKTsKKyAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkdvQmFjayhiYWNrSXRlbS0+aXRlbUlEKCkpLCBtX3BhZ2VJRCk7CiAgICAg
cHJvY2VzcygpLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9CiAKQEAgLTU4Mywx
MSArNTg0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oVwogICAg
IAogICAgIHNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKGl0ZW0tPnVybCgpKTsKIAotICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOwotICAgIGJvb2wgY3Jl
YXRlZEV4dGVuc2lvbiA9IG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUoS1VS
TChLVVJMKCksIGl0ZW0tPnVybCgpKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgaWYg
KGNyZWF0ZWRFeHRlbnNpb24pCi0gICAgICAgIHByb2Nlc3MoKS0+d2lsbEFjcXVpcmVVbml2ZXJz
YWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oKTsKLSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0oaXRlbS0+aXRlbUlEKCksIHNhbmRib3hF
eHRlbnNpb25IYW5kbGUpLCBtX3BhZ2VJRCk7CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQp
OwogICAgIHByb2Nlc3MoKS0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwogfQogCkBA
IC0yNDQ3LDkgKzI0NDQsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJhY2tGb3J3YXJkQWRkSXRl
bSh1aQogICAgIG1fYmFja0ZvcndhcmRMaXN0LT5hZGRJdGVtKHByb2Nlc3MoKS0+d2ViQmFja0Zv
cndhcmRJdGVtKGl0ZW1JRCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRH
b1RvSXRlbSh1aW50NjRfdCBpdGVtSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRH
b1RvSXRlbSh1aW50NjRfdCBpdGVtSUQsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSkKIHsKLSAgICBtX2JhY2tGb3J3YXJkTGlzdC0+Z29Ub0l0ZW0ocHJv
Y2VzcygpLT53ZWJCYWNrRm9yd2FyZEl0ZW0oaXRlbUlEKSk7CisgICAgV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogaXRlbSA9IHByb2Nlc3MoKS0+d2ViQmFja0ZvcndhcmRJdGVtKGl0ZW1JRCk7Cisg
ICAgaWYgKCFpdGVtKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGNyZWF0ZWRFeHRlbnNp
b24gPSBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKEtVUkwoS1VSTCgpLCBp
dGVtLT51cmwoKSksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgIGlmIChjcmVhdGVkRXh0
ZW5zaW9uKQorICAgICAgICBwcm9jZXNzKCktPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRT
YW5kYm94RXh0ZW5zaW9uKCk7CisgICAgbV9iYWNrRm9yd2FyZExpc3QtPmdvVG9JdGVtKGl0ZW0p
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRJdGVtQXRJbmRleChpbnQzMl90
IGluZGV4LCB1aW50NjRfdCYgaXRlbUlEKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMTA2OTU4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NDMsNyArNzQzLDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIEJhY2svRm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKICAgICB2b2lkIGJh
Y2tGb3J3YXJkQWRkSXRlbSh1aW50NjRfdCBpdGVtSUQpOwotICAgIHZvaWQgYmFja0ZvcndhcmRH
b1RvSXRlbSh1aW50NjRfdCBpdGVtSUQpOworICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbSh1
aW50NjRfdCBpdGVtSUQsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogICAgIHZvaWQgYmFj
a0ZvcndhcmRJdGVtQXRJbmRleChpbnQzMl90IGluZGV4LCB1aW50NjRfdCYgaXRlbUlEKTsKICAg
ICB2b2lkIGJhY2tGb3J3YXJkQmFja0xpc3RDb3VudChpbnQzMl90JiBjb3VudCk7CiAgICAgdm9p
ZCBiYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQoaW50MzJfdCYgY291bnQpOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAxMDY5NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKIAogICAgICMgQmFja0ZvcndhcmQgbWVzc2FnZXMKICAgICBCYWNr
Rm9yd2FyZEFkZEl0ZW0odWludDY0X3QgaXRlbUlEKQotICAgIEJhY2tGb3J3YXJkR29Ub0l0ZW0o
dWludDY0X3QgaXRlbUlEKQorICAgIEJhY2tGb3J3YXJkR29Ub0l0ZW0odWludDY0X3QgaXRlbUlE
KSAtPiAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhh
bmRsZSkKICAgICBCYWNrRm9yd2FyZEl0ZW1BdEluZGV4KGludDMyX3QgaXRlbUluZGV4KSAtPiAo
dWludDY0X3QgaXRlbUlEKQogICAgIEJhY2tGb3J3YXJkQmFja0xpc3RDb3VudCgpIC0+IChpbnQz
Ml90IGNvdW50KQogICAgIEJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudCgpIC0+IChpbnQzMl90
IGNvdW50KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAJKHJldmlzaW9uIDEwNjk1OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUsNyArMjQ1LDE3IEBAIGJvb2wg
V2ViUHJvY2Vzc1Byb3h5OjpjaGVja1VSTFJlY2VpdmVkRnIKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAorICAgIC8vIEl0ZW1zIGluIGJhY2svZm9yd2FyZCBsaXN0IGhhdmUgYmVl
biBhbHJlYWR5IGNoZWNrZWQuCisgICAgLy8gT25lIGNhc2Ugd2hlcmUgd2UgZG9uJ3QgaGF2ZSBz
YW5kYm94IGV4dGVuc2lvbnMgZm9yIGZpbGUgVVJMcyBpbiBiL2YgbGlzdCBpcyBpZiB0aGUgbGlz
dCBoYXMgYmVlbiByZWluc3RhdGVkIGFmdGVyIGEgY3Jhc2ggb3IgYSBicm93c2VyIHJlc3RhcnQu
CisgICAgZm9yIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtTWFwOjppdGVyYXRvciBpdGVyID0gbV9i
YWNrRm9yd2FyZExpc3RJdGVtTWFwLmJlZ2luKCk7IGl0ZXIgIT0gbV9iYWNrRm9yd2FyZExpc3RJ
dGVtTWFwLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKEtVUkwoS1VSTCgpLCBpdGVyLT5z
ZWNvbmQtPnVybCgpKS5maWxlU3lzdGVtUGF0aCgpID09IHBhdGgpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgaWYgKEtVUkwoS1VSTCgpLCBpdGVyLT5zZWNvbmQtPm9yaWdpbmFs
VVJMKCkpLmZpbGVTeXN0ZW1QYXRoKCkgPT0gcGF0aCkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKwogICAgIC8vIEEgV2ViIHByb2Nlc3MgdGhhdCB3YXMgbmV2ZXIgYXNrZWQgdG8g
bG9hZCBhIGZpbGUgVVJMIHNob3VsZCBub3QgZXZlciBhc2sgdXMgdG8gZG8gYW55dGhpbmcgd2l0
aCBhIGZpbGUgVVJMLgorICAgIGZwcmludGYoc3RkZXJyLCAiUmVjZWl2ZWQgYW4gdW5leHBlY3Rl
ZCBVUkwgZnJvbSB0aGUgd2ViIHByb2Nlc3M6ICclcydcbiIsIHVybC5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTM2OCw5ICszNzgsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoQ29yZUlQQzo6CiAKIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQpCiB7Ci0gICAgLy8gVGhpcyBmcHJpbnRmIGlzIGludGVu
dGlvbmFsbHkgbGVmdCBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gc2hvdWxkIAotICAgIC8vIG9ubHkg
YmUgaGl0IGluIHRoZSBjYXNlIG9mIGEgbWlzYmVoYXZpbmcgd2ViIHByb2Nlc3MuCi0gICAgZnBy
aW50ZihzdGRlcnIsICJSZWNlaXZlIGFuIGludmFsaWQgbWVzc2FnZSBmcm9tIHRoZSB3ZWIgcHJv
Y2VzcyB3aXRoIG1lc3NhZ2UgSUQgJXhcbiIsIG1lc3NhZ2VJRC50b0ludCgpKTsKKyAgICBmcHJp
bnRmKHN0ZGVyciwgIlJlY2VpdmVkIGFuIGludmFsaWQgbWVzc2FnZSBmcm9tIHRoZSB3ZWIgcHJv
Y2VzcyB3aXRoIG1lc3NhZ2UgSUQgJXhcbiIsIG1lc3NhZ2VJRC50b0ludCgpKTsKIAogICAgIC8v
IFRlcm1pbmF0ZSB0aGUgV2ViUHJvY2Vzc2VzLgogICAgIHRlcm1pbmF0ZSgpOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2YvV2ViUGFnZVByb3h5Q0YuY3BwCShyZXZpc2lv
biAxMDY5NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2YvV2ViUGFnZVByb3h5Q0Yu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQsMTUgKzE2NCwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVzdG9yZUZyb21TZXNzaW9uU3RhCiAgICAgICAgICAgICAgICAgaWYgKHByb3Zpc2lvbmFs
VVJMKQogICAgICAgICAgICAgICAgICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlJlc3RvcmVTZXNzaW9uKHN0YXRlKSwgbV9wYWdlSUQpOwogICAgICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0qIGl0ZW0gPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBjcmVhdGVkRXh0ZW5zaW9uID0gbWF5YmVJbml0aWFs
aXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShLVVJMKEtVUkwoKSwgaXRlbS0+dXJsKCkpLCBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjcmVhdGVk
RXh0ZW5zaW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MoKS0+d2lsbEFj
cXVpcmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBtX2JhY2tGb3J3YXJkTGlz
dC0+Y3VycmVudEl0ZW0oKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHNldFBlbmRpbmdBUElS
ZXF1ZXN0VVJMKGl0ZW0tPnVybCgpKTsKLSAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICAgICAgICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVzdG9yZVNl
c3Npb25BbmROYXZpZ2F0ZVRvQ3VycmVudEl0ZW0oc3RhdGUsIHNhbmRib3hFeHRlbnNpb25IYW5k
bGUpLCBtX3BhZ2VJRCk7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6UmVzdG9yZVNlc3Npb25BbmROYXZpZ2F0ZVRvQ3VycmVudEl0ZW0oc3Rh
dGUpLCBtX3BhZ2VJRCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0Zvcndh
cmRMaXN0UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAJKHJldmlzaW9uIDEwNjk1OCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw3ICsxNjMsOSBAQCB2b2lkIFdlYkJhY2tGb3J3
YXJkTGlzdFByb3h5Ojpnb1RvSXRlbShICiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2Fy
ZEdvVG9JdGVtKGhpc3RvcnlJdGVtVG9JRE1hcCgpLmdldChpdGVtKSkpOworICAgIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOworICAgIG1fcGFnZS0+c2Vu
ZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRHb1RvSXRlbShoaXN0b3J5
SXRlbVRvSURNYXAoKS5nZXQoaXRlbSkpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9y
d2FyZEdvVG9JdGVtOjpSZXBseShzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSk7CisgICAgbV9wYWdl
LT5zYW5kYm94RXh0ZW5zaW9uVHJhY2tlcigpLmJlZ2luTG9hZChtX3BhZ2UtPm1haW5XZWJGcmFt
ZSgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKIH0KIAogSGlzdG9yeUl0ZW0qIFdlYkJhY2tG
b3J3YXJkTGlzdFByb3h5OjppdGVtQXRJbmRleChpbnQgaXRlbUluZGV4KQpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMTA2
OTU4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MTEsMTQgKzcxMSwxNSBAQCB2b2lkIFdlYlBhZ2U6OnNldERlZmVy
c0xvYWRpbmcoYm9vbCBkZWZlCiAgICAgbV9wYWdlLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVyc0xv
YWRpbmcpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJlbG9hZChib29sIHJlbG9hZEZyb21PcmlnaW4p
Cit2b2lkIFdlYlBhZ2U6OnJlbG9hZChib29sIHJlbG9hZEZyb21PcmlnaW4sIGNvbnN0IFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKIHsKICAgICBTZW5k
U3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsKIAorICAgIG1fc2FuZGJveEV4
dGVuc2lvblRyYWNrZXIuYmVnaW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKTsKICAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5yZWxv
YWQocmVsb2FkRnJvbU9yaWdpbik7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z29Gb3J3YXJkKHVpbnQ2
NF90IGJhY2tGb3J3YXJkSXRlbUlELCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNh
bmRib3hFeHRlbnNpb25IYW5kbGUpCit2b2lkIFdlYlBhZ2U6OmdvRm9yd2FyZCh1aW50NjRfdCBi
YWNrRm9yd2FyZEl0ZW1JRCkKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3Rv
cHBlcih0aGlzKTsKIApAQCAtNzI3LDExICs3MjgsMTAgQEAgdm9pZCBXZWJQYWdlOjpnb0Zvcndh
cmQodWludDY0X3QgYmFja0ZvcgogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tlci5iZWdpbkxvYWQobV9tYWluRnJhbWUuZ2V0KCks
IHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogICAgIG1fcGFnZS0+Z29Ub0l0ZW0oaXRlbSwgRnJh
bWVMb2FkVHlwZUZvcndhcmQpOwogfQogCi12b2lkIFdlYlBhZ2U6OmdvQmFjayh1aW50NjRfdCBi
YWNrRm9yd2FyZEl0ZW1JRCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKQordm9pZCBXZWJQYWdlOjpnb0JhY2sodWludDY0X3QgYmFja0Zvcndh
cmRJdGVtSUQpCiB7CiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXIodGhp
cyk7CiAKQEAgLTc0MCwxMSArNzQwLDEwIEBAIHZvaWQgV2ViUGFnZTo6Z29CYWNrKHVpbnQ2NF90
IGJhY2tGb3J3YXIKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc2Fu
ZGJveEV4dGVuc2lvblRyYWNrZXIuYmVnaW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBtX3BhZ2UtPmdvVG9JdGVtKGl0ZW0sIEZyYW1lTG9hZFR5
cGVCYWNrKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90
IGJhY2tGb3J3YXJkSXRlbUlELCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpCit2b2lkIFdlYlBhZ2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0odWlu
dDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCiB7CiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1Rp
bWVyIHN0b3BwZXIodGhpcyk7CiAKQEAgLTc1Myw3ICs3NTIsNiBAQCB2b2lkIFdlYlBhZ2U6Omdv
VG9CYWNrRm9yd2FyZEl0ZW0odWludDY0CiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyLmJlZ2luTG9hZChtX21haW5GcmFtZS5n
ZXQoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAgICAgbV9wYWdlLT5nb1RvSXRlbShpdGVt
LCBGcmFtZUxvYWRUeXBlSW5kZXhlZEJhY2tGb3J3YXJkKTsKIH0KIApAQCAtMTQzNywxMCArMTQz
NSwxMCBAQCB1aW50NjRfdCBXZWJQYWdlOjpyZXN0b3JlU2Vzc2lvbihjb25zdCBTCiAgICAgcmV0
dXJuIGN1cnJlbnRJdGVtSUQ7CiB9CiAKLXZvaWQgV2ViUGFnZTo6cmVzdG9yZVNlc3Npb25BbmRO
YXZpZ2F0ZVRvQ3VycmVudEl0ZW0oY29uc3QgU2Vzc2lvblN0YXRlJiBzZXNzaW9uU3RhdGUsIGNv
bnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKK3Zv
aWQgV2ViUGFnZTo6cmVzdG9yZVNlc3Npb25BbmROYXZpZ2F0ZVRvQ3VycmVudEl0ZW0oY29uc3Qg
U2Vzc2lvblN0YXRlJiBzZXNzaW9uU3RhdGUpCiB7CiAgICAgaWYgKHVpbnQ2NF90IGN1cnJlbnRJ
dGVtSUQgPSByZXN0b3JlU2Vzc2lvbihzZXNzaW9uU3RhdGUpKQotICAgICAgICBnb1RvQmFja0Zv
cndhcmRJdGVtKGN1cnJlbnRJdGVtSUQsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgICAg
ICBnb1RvQmFja0ZvcndhcmRJdGVtKGN1cnJlbnRJdGVtSUQpOwogfQogCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAkocmV2aXNpb24gMTA2OTU4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTMzLDEwICs1MzMsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKGNvbnN0IFN0cmluZyYgaHRt
bFN0cmluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxl
VVJMKTsKICAgICB2b2lkIGxvYWRQbGFpblRleHRTdHJpbmcoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBsaW5rQ2xpY2tlZChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgV2ViTW91c2VFdmVudCYp
OwotICAgIHZvaWQgcmVsb2FkKGJvb2wgcmVsb2FkRnJvbU9yaWdpbik7Ci0gICAgdm9pZCBnb0Zv
cndhcmQodWludDY0X3QsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwotICAgIHZv
aWQgZ29CYWNrKHVpbnQ2NF90LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKLSAg
ICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QsIGNvbnN0IFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSYpOworICAgIHZvaWQgcmVsb2FkKGJvb2wgcmVsb2FkRnJvbU9yaWdpbiwgY29u
c3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CisgICAgdm9pZCBnb0ZvcndhcmQodWludDY0
X3QpOworICAgIHZvaWQgZ29CYWNrKHVpbnQ2NF90KTsKKyAgICB2b2lkIGdvVG9CYWNrRm9yd2Fy
ZEl0ZW0odWludDY0X3QpOwogICAgIHZvaWQgdHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAg
ICAgdm9pZCBzZXRBY3RpdmUoYm9vbCk7CiAgICAgdm9pZCBzZXRGb2N1c2VkKGJvb2wpOwpAQCAt
NTY0LDcgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgbG9naWNhbFNjcm9sbChX
ZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6U2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgV2ViQ29yZTo6
U2Nyb2xsR3JhbnVsYXJpdHkpOwogCiAgICAgdWludDY0X3QgcmVzdG9yZVNlc3Npb24oY29uc3Qg
U2Vzc2lvblN0YXRlJik7Ci0gICAgdm9pZCByZXN0b3JlU2Vzc2lvbkFuZE5hdmlnYXRlVG9DdXJy
ZW50SXRlbShjb25zdCBTZXNzaW9uU3RhdGUmLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmKTsKKyAgICB2b2lkIHJlc3RvcmVTZXNzaW9uQW5kTmF2aWdhdGVUb0N1cnJlbnRJdGVtKGNv
bnN0IFNlc3Npb25TdGF0ZSYpOwogCiAgICAgdm9pZCBkaWRSZW1vdmVCYWNrRm9yd2FyZEl0ZW0o
dWludDY0X3QpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTA2OTU4KQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTUwLDkgKzUwLDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAgICAgU2Nyb2xs
QnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0eSkK
ICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkKIAotICAgIEdvQmFjayh1aW50NjRf
dCBiYWNrRm9yd2FyZEl0ZW1JRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSkKLSAgICBHb0ZvcndhcmQodWludDY0X3QgYmFja0ZvcndhcmRJ
dGVtSUQsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25I
YW5kbGUpCi0gICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1J
RCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRs
ZSkKKyAgICBHb0JhY2sodWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCisgICAgR29Gb3J3YXJk
KHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQorICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWlu
dDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkK
ICAgICBMb2FkSFRNTFN0cmluZyhXVEY6OlN0cmluZyBodG1sU3RyaW5nLCBXVEY6OlN0cmluZyBi
YXNlVVJMKQogICAgIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKFdURjo6U3RyaW5nIGh0bWxTdHJp
bmcsIFdURjo6U3RyaW5nIGJhc2VVUkwsIFdURjo6U3RyaW5nIHVucmVhY2hhYmxlVVJMKTsgCkBA
IC02MCw3ICs2MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIExvYWRVUkwoV1RGOjpT
dHJpbmcgdXJsLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKQogICAgIExvYWRVUkxSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKQogICAgIExpbmtDbGlja2VkKFdURjo6U3RyaW5nIHVybCwgV2ViS2l0OjpXZWJNb3Vz
ZUV2ZW50IGV2ZW50KQotICAgIFJlbG9hZChib29sIHJlbG9hZEZyb21PcmlnaW4pCisgICAgUmVs
b2FkKGJvb2wgcmVsb2FkRnJvbU9yaWdpbiwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICBTdG9wTG9hZGluZygpCiAKICNpZiBQTEFU
Rk9STShRVCkKQEAgLTcxLDcgKzcxLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAgICAgU3Rv
cExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIAogICAgIFJlc3RvcmVTZXNzaW9u
KFdlYktpdDo6U2Vzc2lvblN0YXRlIHN0YXRlKQotICAgIFJlc3RvcmVTZXNzaW9uQW5kTmF2aWdh
dGVUb0N1cnJlbnRJdGVtKFdlYktpdDo6U2Vzc2lvblN0YXRlIHN0YXRlLCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQorICAgIFJlc3RvcmVT
ZXNzaW9uQW5kTmF2aWdhdGVUb0N1cnJlbnRJdGVtKFdlYktpdDo6U2Vzc2lvblN0YXRlIHN0YXRl
KQogCiAgICAgRGlkUmVtb3ZlQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRl
bUlEKQogCg==
</data>
<flag name="review"
          id="127948"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126367</attachid>
            <date>2012-02-09 13:50:42 -0800</date>
            <delta_ts>2012-02-09 21:45:27 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>AssertionAfterCrash.txt</filename>
            <type>text/plain</type>
            <size>20153</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzI2MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDEyLTAyLTA5ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6
IGNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2VzcyhvcmlnaW5hbFVSTCkgbG9hZGluZyBhIGxv
Y2FsIGZpbGUsIGlmIHRoZSBXZWJQcm9jZXNzIGNyYXNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQ1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMDI2OTk4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisKKyAg
ICAgICAgVGhpcyBhbHNvIGZpeGVzIHNvbWUgY2FzZSB3aGVyZSBXZWJQcm9jZXNzIGRpZCBub3Qg
Z2V0IGEgc2FuZGJveCBleHRlbnNpb24gYWZ0ZXIgYSBjcmFzaC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
YXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0pOiBXZSBubyBsb25nZXIgbmVlZCB0byBwYXNzIGEg
c2FuZGJveAorICAgICAgICBleHRlbnNpb24gaGVyZSwgd2UncmUgbm93IHBhc3NpbmcgaXQgYXQg
Yi9mIG5hdmlnYXRpb24gYm90dGxlbmVjay4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZWxvYWQpOiBQYXNzIGEgc2FuZGJveCBleHRlbnNpb24gLSByZWxvYWQgbWF5IG1lYW4gcmVs
b2FkaW5nIGFuIGVycm9yCisgICAgICAgIHBhZ2UgYWZ0ZXIgYSBjcmFzaCwgc28gV2ViUHJvY2Vz
cyBtYXkgbm8gbG9uZ2VyIGhhdmUgdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojpnb0ZvcndhcmQpOiBXZSBubyBsb25nZXIgbmVlZCB0byBwYXNzIGEgc2FuZGJv
eCBleHRlbnNpb24gaGVyZSwKKyAgICAgICAgd2UncmUgbm93IHBhc3NpbmcgaXQgYXQgYi9mIG5h
dmlnYXRpb24gYm90dGxlbmVjay4gQWxzbywgZml4ZWQgYSBidWcgd2hlcmUgd2UgZmlyc3QgbnVs
bCBjaGVja2VkCisgICAgICAgIGEgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSBwb2ludGVyLCBhbmQg
dGhlbiB1c2VkIGl0IGFueXdheS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb0Jh
Y2spOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb1RvQmFja0Zvcndh
cmRJdGVtKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YmFja0Zvcndh
cmRHb1RvSXRlbSk6IFRoaXMgaXMgdGhlIGJvdHRsZW5lY2suIFdlIGdldCBoZXJlIGJvdGggZm9y
IFVJCisgICAgICAgIGFjdGlvbnMgbGlrZSBwcmVzc2luZyB0aGUgQmFjayBidXR0b24sIGFuZCBm
b3Igd2luZG93Lmhpc3RvcnkuZ28oKSBuYXZpZ2F0aW9ucy4gSlMgbmF2aWdhdGlvbnMKKyAgICAg
ICAgcHJldmlvdXNseSBkaWRuJ3Qgb3BlbiB1cCB0aGUgc2FuZGJveC4gVVJMcyBpbiBVSSBwcm9j
ZXNzIGIvZiBsaXN0IGFyZSB0cnVzdGVkLCBzbyBpdCdzCisgICAgICAgIGFsd2F5cyBPSyB0byBn
cmFudCBhIHNhbmRib3ggZXh0ZW5zaW9uIGlmIG9uZSBvZiB0aGVtIGlzIGEgZmlsZTogb25lLgor
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBiYWNrRm9yd2FyZEdvVG9JdGVt
KCkgbm93IHJldHVybnMgYSBzYW5kYm94IGV4dGVuc2lvbiBoYW5kbGUuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBEaXR0by4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OmNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2Vzcyk6IElmIGEgVVJMIGlzIGluIFVJ
IHByb2Nlc3MgYi9mCisgICAgICAgIGxpc3QsIHRoZW4gaXQgaGFzIGJlZW4gYWxyZWFkeSB2ZXR0
ZWQgYXMgc29tZXRoaW5nIHRoZSBXZWIgcHJvY2VzcyBrbm93cyBhYm91dC4gTm8gbmVlZCB0bwor
ICAgICAgICBjcmFzaCBpZiBpdCBhY3R1YWxseSBhdHRlbXB0cyBnb2luZyB0aGVyZS4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOiBS
ZW1vdmVkIGEgdXNlbGVzcyBjb21tZW50ICh3ZSBoYXZlIHRvbnMKKyAgICAgICAgb2YgZnByaW50
ZnMgYmVzaWRlcyB0aGlzIG9uZSkuIEZpeGVkIGxvZyBtZXNzYWdlIHN5bnRheC4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9jZi9XZWJQYWdlUHJveHlDRi5jcHA6IChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cmVzdG9yZUZyb21TZXNzaW9uU3RhdGVEYXRhKToKKyAgICAgICAgV2Ugbm8gbG9uZ2VyIG5l
ZWQgdG8gcGFzcyBhIHNhbmRib3ggZXh0ZW5zaW9uIGhlcmUsIHdlJ3JlIG5vdyBwYXNzaW5nIGl0
IGF0IGIvZiBuYXZpZ2F0aW9uCisgICAgICAgIGJvdHRsZW5lY2suIAorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDogKFdlYktpdDo6V2Vi
QmFja0ZvcndhcmRMaXN0UHJveHk6OmdvVG9JdGVtKToKKyAgICAgICAgV2Ugbm93IGdldCBhbiBl
eHRlbnNpb24gaGVyZSwgd2hlbiB0ZWxsaW5nIFVJIHByb2Nlc3MgdGhhdCB3ZSdyZSBuYXZpZ2F0
aW5nIHRvIGEgYi9mIGxpc3QgaXRlbS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVsb2FkKTogVXNlIHRoZSBl
eHRlbnNpb24gd2UncmUgZ2V0dGluZy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z29Gb3J3
YXJkKTogRG9uJ3QgdXNlIG9uZSB3ZSdyZSBub3QgZ2V0dGluZy4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6Z29CYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvVG9C
YWNrRm9yd2FyZEl0ZW0pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVzdG9y
ZVNlc3Npb25BbmROYXZpZ2F0ZVRvQ3VycmVudEl0ZW0pOiBEaXR0by4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6IEFkanVzdGVkIHNpZ25hdHVyZXMgYWNjb3JkaW5n
bHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjog
RGl0dG8uCisKIDIwMTItMDItMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJWaWV3Ojptb3VzZS10YXJnZXQt
Y2hhbmdlZCBzaWduYWwgdG8gV2ViS2l0MiBHVEsrIEFQSQpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDEwNjk1OCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTYs
MTEgKzMxNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc1cKICAg
ICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOwotICAgIGJvb2wgY3JlYXRlZEV4dGVuc2lvbiA9
IG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUoS1VSTChLVVJMKCksIGl0ZW0t
PnVybCgpKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgaWYgKGNyZWF0ZWRFeHRlbnNp
b24pCi0gICAgICAgIHByb2Nlc3MoKS0+d2lsbEFjcXVpcmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRi
b3hFeHRlbnNpb24oKTsKLSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6Okdv
VG9CYWNrRm9yd2FyZEl0ZW0oaXRlbS0+aXRlbUlEKCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUp
LCBtX3BhZ2VJRCk7CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1Rv
QmFja0ZvcndhcmRJdGVtKGl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQpOwogICAgIHByb2Nlc3Mo
KS0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwogfQogCkBAIC01MDgsMTUgKzUwNCwy
NCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcExvYWRpbmcoKQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVsb2FkKGJvb2wgcmVsb2FkRnJvbU9yaWdpbikKIHsKLSAgICBpZiAobV9iYWNrRm9yd2Fy
ZExpc3QtPmN1cnJlbnRJdGVtKCkpCi0gICAgICAgIHNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKG1f
YmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT51cmwoKSk7CisgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGU7CisKKyAgICBpZiAobV9iYWNrRm9y
d2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpIHsKKyAgICAgICAgU3RyaW5nIHVybCA9IG1fYmFja0Zv
cndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT51cmwoKTsKKyAgICAgICAgc2V0UGVuZGluZ0FQSVJl
cXVlc3RVUkwodXJsKTsKKworICAgICAgICAvLyBXZSBtYXkgbm90IGhhdmUgYW4gZXh0ZW5zaW9u
IHlldCBpZiBiYWNrL2ZvcndhcmQgbGlzdCB3YXMgcmVpbnN0YXRlZCBhZnRlciBhIFdlYlByb2Nl
c3MgY3Jhc2ggb3IgYSBicm93c2VyIHJlbGF1bmNoCisgICAgICAgIGJvb2wgY3JlYXRlZEV4dGVu
c2lvbiA9IG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUoS1VSTChLVVJMKCks
IHVybCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgICAgICBpZiAoY3JlYXRlZEV4dGVu
c2lvbikKKyAgICAgICAgICAgIHByb2Nlc3MoKS0+d2lsbEFjcXVpcmVVbml2ZXJzYWxGaWxlUmVh
ZFNhbmRib3hFeHRlbnNpb24oKTsKKyAgICB9CiAKICAgICBpZiAoIWlzVmFsaWQoKSkgewogICAg
ICAgICByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJy
ZW50SXRlbSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHByb2Nlc3MoKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6UmVsb2FkKHJlbG9hZEZyb21PcmlnaW4pLCBtX3BhZ2VJRCk7
CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZWxvYWQocmVsb2FkRnJv
bU9yaWdpbiwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIG1fcGFnZUlEKTsKICAgICBwcm9jZXNz
KCktPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQoKTsKIH0KIApAQCAtNTI2LDE5ICs1MzEs
MTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdvRm9yd2FyZCgpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGZvcndhcmRJdGVtID0gbV9iYWNrRm9yd2FyZExp
c3QtPmZvcndhcmRJdGVtKCk7Ci0gICAgaWYgKGZvcndhcmRJdGVtKQotICAgICAgICBzZXRQZW5k
aW5nQVBJUmVxdWVzdFVSTChmb3J3YXJkSXRlbS0+dXJsKCkpOworICAgIGlmICghZm9yd2FyZEl0
ZW0pCisgICAgICAgIHJldHVybjsKKworICAgIHNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKGZvcndh
cmRJdGVtLT51cmwoKSk7CiAKICAgICBpZiAoIWlzVmFsaWQoKSkgewogICAgICAgICByZWF0dGFj
aFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGZvcndhcmRJdGVtKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
OwotICAgIGJvb2wgY3JlYXRlZEV4dGVuc2lvbiA9IG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRl
bnNpb25IYW5kbGUoS1VSTChLVVJMKCksIGZvcndhcmRJdGVtLT51cmwoKSksIHNhbmRib3hFeHRl
bnNpb25IYW5kbGUpOwotICAgIGlmIChjcmVhdGVkRXh0ZW5zaW9uKQotICAgICAgICBwcm9jZXNz
KCktPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5zaW9uKCk7Ci0gICAg
cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb0ZvcndhcmQoZm9yd2FyZEl0ZW0t
Pml0ZW1JRCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwgbV9wYWdlSUQpOworICAgIHByb2Nl
c3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Gb3J3YXJkKGZvcndhcmRJdGVtLT5pdGVt
SUQoKSksIG1fcGFnZUlEKTsKICAgICBwcm9jZXNzKCktPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+
c3RhcnQoKTsKIH0KIApAQCAtNTUzLDE5ICs1NTYsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omdv
QmFjaygpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGJh
Y2tJdGVtID0gbV9iYWNrRm9yd2FyZExpc3QtPmJhY2tJdGVtKCk7Ci0gICAgaWYgKGJhY2tJdGVt
KQotICAgICAgICBzZXRQZW5kaW5nQVBJUmVxdWVzdFVSTChiYWNrSXRlbS0+dXJsKCkpOworICAg
IGlmICghYmFja0l0ZW0pCisgICAgICAgIHJldHVybjsKKworICAgIHNldFBlbmRpbmdBUElSZXF1
ZXN0VVJMKGJhY2tJdGVtLT51cmwoKSk7CiAKICAgICBpZiAoIWlzVmFsaWQoKSkgewogICAgICAg
ICByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGJhY2tJdGVtKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlOwotICAgIGJvb2wgY3JlYXRlZEV4dGVuc2lvbiA9IG1heWJlSW5pdGlhbGl6ZVNhbmRi
b3hFeHRlbnNpb25IYW5kbGUoS1VSTChLVVJMKCksIGJhY2tJdGVtLT51cmwoKSksIHNhbmRib3hF
eHRlbnNpb25IYW5kbGUpOwotICAgIGlmIChjcmVhdGVkRXh0ZW5zaW9uKQotICAgICAgICBwcm9j
ZXNzKCktPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5zaW9uKCk7Ci0g
ICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb0JhY2soYmFja0l0ZW0tPml0
ZW1JRCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwgbV9wYWdlSUQpOworICAgIHByb2Nlc3Mo
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29CYWNrKGJhY2tJdGVtLT5pdGVtSUQoKSksIG1f
cGFnZUlEKTsKICAgICBwcm9jZXNzKCktPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQoKTsK
IH0KIApAQCAtNTgzLDExICs1ODQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3
YXJkSXRlbShXCiAgICAgCiAgICAgc2V0UGVuZGluZ0FQSVJlcXVlc3RVUkwoaXRlbS0+dXJsKCkp
OwogCi0gICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGU7
Ci0gICAgYm9vbCBjcmVhdGVkRXh0ZW5zaW9uID0gbWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVu
c2lvbkhhbmRsZShLVVJMKEtVUkwoKSwgaXRlbS0+dXJsKCkpLCBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKTsKLSAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKLSAgICAgICAgcHJvY2VzcygpLT53aWxs
QWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOwotICAgIHByb2Nlc3Mo
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShpdGVtLT5pdGVt
SUQoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIG1fcGFnZUlEKTsKKyAgICBwcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0oaXRlbS0+aXRlbUlE
KCkpLCBtX3BhZ2VJRCk7CiAgICAgcHJvY2VzcygpLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0
YXJ0KCk7CiB9CiAKQEAgLTI0NDcsOSArMjQ0NCwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmFj
a0ZvcndhcmRBZGRJdGVtKHVpCiAgICAgbV9iYWNrRm9yd2FyZExpc3QtPmFkZEl0ZW0ocHJvY2Vz
cygpLT53ZWJCYWNrRm9yd2FyZEl0ZW0oaXRlbUlEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpiYWNrRm9yd2FyZEdvVG9JdGVtKHVpbnQ2NF90IGl0ZW1JRCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpiYWNrRm9yd2FyZEdvVG9JdGVtKHVpbnQ2NF90IGl0ZW1JRCwgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogewotICAgIG1fYmFja0ZvcndhcmRMaXN0
LT5nb1RvSXRlbShwcm9jZXNzKCktPndlYkJhY2tGb3J3YXJkSXRlbShpdGVtSUQpKTsKKyAgICBX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtID0gcHJvY2VzcygpLT53ZWJCYWNrRm9yd2FyZEl0
ZW0oaXRlbUlEKTsKKyAgICBpZiAoIWl0ZW0pCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wg
Y3JlYXRlZEV4dGVuc2lvbiA9IG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUo
S1VSTChLVVJMKCksIGl0ZW0tPnVybCgpKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisgICAg
aWYgKGNyZWF0ZWRFeHRlbnNpb24pCisgICAgICAgIHByb2Nlc3MoKS0+d2lsbEFjcXVpcmVVbml2
ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oKTsKKyAgICBtX2JhY2tGb3J3YXJkTGlzdC0+
Z29Ub0l0ZW0oaXRlbSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZEl0ZW1B
dEluZGV4KGludDMyX3QgaW5kZXgsIHVpbnQ2NF90JiBpdGVtSUQpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAxMDY5NTgpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc0Myw3
ICs3NDMsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQmFjay9Gb3J3YXJkIGxpc3QgbWFuYWdlbWVu
dAogICAgIHZvaWQgYmFja0ZvcndhcmRBZGRJdGVtKHVpbnQ2NF90IGl0ZW1JRCk7Ci0gICAgdm9p
ZCBiYWNrRm9yd2FyZEdvVG9JdGVtKHVpbnQ2NF90IGl0ZW1JRCk7CisgICAgdm9pZCBiYWNrRm9y
d2FyZEdvVG9JdGVtKHVpbnQ2NF90IGl0ZW1JRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7
CiAgICAgdm9pZCBiYWNrRm9yd2FyZEl0ZW1BdEluZGV4KGludDMyX3QgaW5kZXgsIHVpbnQ2NF90
JiBpdGVtSUQpOwogICAgIHZvaWQgYmFja0ZvcndhcmRCYWNrTGlzdENvdW50KGludDMyX3QmIGNv
dW50KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudChpbnQzMl90JiBjb3Vu
dCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4JKHJldmlzaW9uIDEwNjk1OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBCYWNrRm9yd2FyZCBtZXNz
YWdlcwogICAgIEJhY2tGb3J3YXJkQWRkSXRlbSh1aW50NjRfdCBpdGVtSUQpCi0gICAgQmFja0Zv
cndhcmRHb1RvSXRlbSh1aW50NjRfdCBpdGVtSUQpCisgICAgQmFja0ZvcndhcmRHb1RvSXRlbSh1
aW50NjRfdCBpdGVtSUQpIC0+IChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKQogICAgIEJhY2tGb3J3YXJkSXRlbUF0SW5kZXgoaW50MzJfdCBp
dGVtSW5kZXgpIC0+ICh1aW50NjRfdCBpdGVtSUQpCiAgICAgQmFja0ZvcndhcmRCYWNrTGlzdENv
dW50KCkgLT4gKGludDMyX3QgY291bnQpCiAgICAgQmFja0ZvcndhcmRGb3J3YXJkTGlzdENvdW50
KCkgLT4gKGludDMyX3QgY291bnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMTA2OTU4KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NSw3ICsy
NDUsMTcgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNoZWNrVVJMUmVjZWl2ZWRGcgogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgLy8gSXRlbXMgaW4gYmFjay9mb3J3YXJk
IGxpc3QgaGF2ZSBiZWVuIGFscmVhZHkgY2hlY2tlZC4KKyAgICAvLyBPbmUgY2FzZSB3aGVyZSB3
ZSBkb24ndCBoYXZlIHNhbmRib3ggZXh0ZW5zaW9ucyBmb3IgZmlsZSBVUkxzIGluIGIvZiBsaXN0
IGlzIGlmIHRoZSBsaXN0IGhhcyBiZWVuIHJlaW5zdGF0ZWQgYWZ0ZXIgYSBjcmFzaCBvciBhIGJy
b3dzZXIgcmVzdGFydC4KKyAgICBmb3IgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW1NYXA6Oml0ZXJh
dG9yIGl0ZXIgPSBtX2JhY2tGb3J3YXJkTGlzdEl0ZW1NYXAuYmVnaW4oKSwgZW5kID0gbV9iYWNr
Rm9yd2FyZExpc3RJdGVtTWFwLmVuZCgpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CisgICAgICAg
IGlmIChLVVJMKEtVUkwoKSwgaXRlci0+c2Vjb25kLT51cmwoKSkuZmlsZVN5c3RlbVBhdGgoKSA9
PSBwYXRoKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChLVVJMKEtVUkwo
KSwgaXRlci0+c2Vjb25kLT5vcmlnaW5hbFVSTCgpKS5maWxlU3lzdGVtUGF0aCgpID09IHBhdGgp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICAvLyBBIFdlYiBwcm9jZXNz
IHRoYXQgd2FzIG5ldmVyIGFza2VkIHRvIGxvYWQgYSBmaWxlIFVSTCBzaG91bGQgbm90IGV2ZXIg
YXNrIHVzIHRvIGRvIGFueXRoaW5nIHdpdGggYSBmaWxlIFVSTC4KKyAgICBmcHJpbnRmKHN0ZGVy
ciwgIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgVVJMIGZyb20gdGhlIHdlYiBwcm9jZXNzOiAnJXMn
XG4iLCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
CkBAIC0zNjgsOSArMzc4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZENsb3NlKENvcmVJ
UEM6OgogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlEKQogewotICAg
IC8vIFRoaXMgZnByaW50ZiBpcyBpbnRlbnRpb25hbGx5IGxlZnQgYmVjYXVzZSB0aGlzIGZ1bmN0
aW9uIHNob3VsZCAKLSAgICAvLyBvbmx5IGJlIGhpdCBpbiB0aGUgY2FzZSBvZiBhIG1pc2JlaGF2
aW5nIHdlYiBwcm9jZXNzLgotICAgIGZwcmludGYoc3RkZXJyLCAiUmVjZWl2ZSBhbiBpbnZhbGlk
IG1lc3NhZ2UgZnJvbSB0aGUgd2ViIHByb2Nlc3Mgd2l0aCBtZXNzYWdlIElEICV4XG4iLCBtZXNz
YWdlSUQudG9JbnQoKSk7CisgICAgZnByaW50ZihzdGRlcnIsICJSZWNlaXZlZCBhbiBpbnZhbGlk
IG1lc3NhZ2UgZnJvbSB0aGUgd2ViIHByb2Nlc3Mgd2l0aCBtZXNzYWdlIElEICV4XG4iLCBtZXNz
YWdlSUQudG9JbnQoKSk7CiAKICAgICAvLyBUZXJtaW5hdGUgdGhlIFdlYlByb2Nlc3Nlcy4KICAg
ICB0ZXJtaW5hdGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9jZi9XZWJQYWdl
UHJveHlDRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2NmL1dl
YlBhZ2VQcm94eUNGLmNwcAkocmV2aXNpb24gMTA2OTU4KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDE1ICsx
NjQsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc3RvcmVGcm9tU2Vzc2lvblN0YQogICAgICAg
ICAgICAgICAgIGlmIChwcm92aXNpb25hbFVSTCkKICAgICAgICAgICAgICAgICAgICAgcHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXN0b3JlU2Vzc2lvbihzdGF0ZSksIG1fcGFn
ZUlEKTsKICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGU7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtID0gbV9iYWNrRm9yd2FyZExp
c3QtPmN1cnJlbnRJdGVtKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3JlYXRl
ZEV4dGVuc2lvbiA9IG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUoS1VSTChL
VVJMKCksIGl0ZW0tPnVybCgpKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcm9jZXNzKCktPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0
ZW5zaW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KiBpdGVtID0gbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRQZW5kaW5nQVBJUmVxdWVzdFVSTChpdGVtLT51cmwoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBwcm9jZXNzKCktPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlJlc3RvcmVTZXNzaW9uQW5kTmF2aWdhdGVUb0N1cnJlbnRJdGVtKHN0
YXRlLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwgbV9wYWdlSUQpOworICAgICAgICAgICAgICAg
ICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJlc3RvcmVTZXNzaW9uQW5k
TmF2aWdhdGVUb0N1cnJlbnRJdGVtKHN0YXRlKSwgbV9wYWdlSUQpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHku
Y3BwCShyZXZpc2lvbiAxMDY5NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyAr
MTYzLDkgQEAgdm9pZCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Z29Ub0l0ZW0oSAogICAgIGlm
ICghbV9wYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRHb1RvSXRlbShoaXN0b3J5SXRlbVRvSURNYXAoKS5n
ZXQoaXRlbSkpKTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZTsKKyAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJh
Y2tGb3J3YXJkR29Ub0l0ZW0oaGlzdG9yeUl0ZW1Ub0lETWFwKCkuZ2V0KGl0ZW0pKSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRHb1RvSXRlbTo6UmVwbHkoc2FuZGJveEV4dGVu
c2lvbkhhbmRsZSkpOworICAgIG1fcGFnZS0+c2FuZGJveEV4dGVuc2lvblRyYWNrZXIoKS5iZWdp
bkxvYWQobV9wYWdlLT5tYWluV2ViRnJhbWUoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiB9
CiAKIEhpc3RvcnlJdGVtKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6aXRlbUF0SW5kZXgoaW50
IGl0ZW1JbmRleCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHJldmlzaW9uIDEwNjk1OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzExLDE0ICs3MTEsMTUg
QEAgdm9pZCBXZWJQYWdlOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZQogICAgIG1fcGFnZS0+
c2V0RGVmZXJzTG9hZGluZyhkZWZlcnNMb2FkaW5nKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpyZWxv
YWQoYm9vbCByZWxvYWRGcm9tT3JpZ2luKQordm9pZCBXZWJQYWdlOjpyZWxvYWQoYm9vbCByZWxv
YWRGcm9tT3JpZ2luLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRl
bnNpb25IYW5kbGUpCiB7CiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXIo
dGhpcyk7CiAKKyAgICBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyLmJlZ2luTG9hZChtX21haW5G
cmFtZS5nZXQoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAgICAgbV9tYWluRnJhbWUtPmNv
cmVGcmFtZSgpLT5sb2FkZXIoKS0+cmVsb2FkKHJlbG9hZEZyb21PcmlnaW4pOwogfQogCi12b2lk
IFdlYlBhZ2U6OmdvRm9yd2FyZCh1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCwgY29uc3QgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQordm9pZCBXZWJQ
YWdlOjpnb0ZvcndhcmQodWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCiB7CiAgICAgU2VuZFN0
b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXIodGhpcyk7CiAKQEAgLTcyNywxMSArNzI4LDEw
IEBAIHZvaWQgV2ViUGFnZTo6Z29Gb3J3YXJkKHVpbnQ2NF90IGJhY2tGb3IKICAgICBpZiAoIWl0
ZW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc2FuZGJveEV4dGVuc2lvblRyYWNrZXIuYmVn
aW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBt
X3BhZ2UtPmdvVG9JdGVtKGl0ZW0sIEZyYW1lTG9hZFR5cGVGb3J3YXJkKTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjpnb0JhY2sodWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQsIGNvbnN0IFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKK3ZvaWQgV2ViUGFnZTo6
Z29CYWNrKHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQogewogICAgIFNlbmRTdG9wUmVzcG9u
c2l2ZW5lc3NUaW1lciBzdG9wcGVyKHRoaXMpOwogCkBAIC03NDAsMTEgKzc0MCwxMCBAQCB2b2lk
IFdlYlBhZ2U6OmdvQmFjayh1aW50NjRfdCBiYWNrRm9yd2FyCiAgICAgaWYgKCFpdGVtKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyLmJlZ2luTG9hZCht
X21haW5GcmFtZS5nZXQoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAgICAgbV9wYWdlLT5n
b1RvSXRlbShpdGVtLCBGcmFtZUxvYWRUeXBlQmFjayk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z29U
b0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCwgY29uc3QgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQordm9pZCBXZWJQYWdl
Ojpnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQogewogICAg
IFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyKHRoaXMpOwogCkBAIC03NTMsNyAr
NzUyLDYgQEAgdm9pZCBXZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NAogICAgIGlm
ICghaXRlbSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tl
ci5iZWdpbkxvYWQobV9tYWluRnJhbWUuZ2V0KCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwog
ICAgIG1fcGFnZS0+Z29Ub0l0ZW0oaXRlbSwgRnJhbWVMb2FkVHlwZUluZGV4ZWRCYWNrRm9yd2Fy
ZCk7CiB9CiAKQEAgLTE0MzcsMTAgKzE0MzUsMTAgQEAgdWludDY0X3QgV2ViUGFnZTo6cmVzdG9y
ZVNlc3Npb24oY29uc3QgUwogICAgIHJldHVybiBjdXJyZW50SXRlbUlEOwogfQogCi12b2lkIFdl
YlBhZ2U6OnJlc3RvcmVTZXNzaW9uQW5kTmF2aWdhdGVUb0N1cnJlbnRJdGVtKGNvbnN0IFNlc3Np
b25TdGF0ZSYgc2Vzc2lvblN0YXRlLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNh
bmRib3hFeHRlbnNpb25IYW5kbGUpCit2b2lkIFdlYlBhZ2U6OnJlc3RvcmVTZXNzaW9uQW5kTmF2
aWdhdGVUb0N1cnJlbnRJdGVtKGNvbnN0IFNlc3Npb25TdGF0ZSYgc2Vzc2lvblN0YXRlKQogewog
ICAgIGlmICh1aW50NjRfdCBjdXJyZW50SXRlbUlEID0gcmVzdG9yZVNlc3Npb24oc2Vzc2lvblN0
YXRlKSkKLSAgICAgICAgZ29Ub0JhY2tGb3J3YXJkSXRlbShjdXJyZW50SXRlbUlELCBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICAgICAgZ29Ub0JhY2tGb3J3YXJkSXRlbShjdXJyZW50SXRl
bUlEKTsKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDEwNjk1OCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUzMywxMCArNTMzLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkQWx0ZXJuYXRlSFRN
TFN0cmluZyhjb25zdCBTdHJpbmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
Y29uc3QgU3RyaW5nJiB1bnJlYWNoYWJsZVVSTCk7CiAgICAgdm9pZCBsb2FkUGxhaW5UZXh0U3Ry
aW5nKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbGlua0NsaWNrZWQoY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKLSAgICB2b2lkIHJlbG9hZChib29sIHJlbG9hZEZy
b21PcmlnaW4pOwotICAgIHZvaWQgZ29Gb3J3YXJkKHVpbnQ2NF90LCBjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmKTsKLSAgICB2b2lkIGdvQmFjayh1aW50NjRfdCwgY29uc3QgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJik7Ci0gICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2
NF90LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICB2b2lkIHJlbG9hZChi
b29sIHJlbG9hZEZyb21PcmlnaW4sIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwor
ICAgIHZvaWQgZ29Gb3J3YXJkKHVpbnQ2NF90KTsKKyAgICB2b2lkIGdvQmFjayh1aW50NjRfdCk7
CisgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90KTsKICAgICB2b2lkIHRyeVJl
c3RvcmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpOwogICAgIHZv
aWQgc2V0Rm9jdXNlZChib29sKTsKQEAgLTU2NCw3ICs1NjQsNyBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyB2b2lkIGxvZ2ljYWxTY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbExv
Z2ljYWxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKIAogICAgIHVpbnQ2
NF90IHJlc3RvcmVTZXNzaW9uKGNvbnN0IFNlc3Npb25TdGF0ZSYpOwotICAgIHZvaWQgcmVzdG9y
ZVNlc3Npb25BbmROYXZpZ2F0ZVRvQ3VycmVudEl0ZW0oY29uc3QgU2Vzc2lvblN0YXRlJiwgY29u
c3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CisgICAgdm9pZCByZXN0b3JlU2Vzc2lvbkFu
ZE5hdmlnYXRlVG9DdXJyZW50SXRlbShjb25zdCBTZXNzaW9uU3RhdGUmKTsKIAogICAgIHZvaWQg
ZGlkUmVtb3ZlQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90KTsKIApJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJl
dmlzaW9uIDEwNjk1OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01MCw5ICs1MCw5IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2UgewogICAgIFNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWlu
dDMyX3Qgc2Nyb2xsR3JhbnVsYXJpdHkpCiAgICAgQ2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJl
YSgpCiAKLSAgICBHb0JhY2sodWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQsIFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCi0gICAgR29Gb3J3
YXJkKHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlELCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQotICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0o
dWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCisgICAgR29CYWNrKHVpbnQ2NF90IGJhY2tGb3J3
YXJkSXRlbUlEKQorICAgIEdvRm9yd2FyZCh1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKKyAg
ICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQogICAgIFRy
eVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAgICAgTG9hZEhUTUxTdHJpbmcoV1RGOjpTdHJpbmcg
aHRtbFN0cmluZywgV1RGOjpTdHJpbmcgYmFzZVVSTCkKICAgICBMb2FkQWx0ZXJuYXRlSFRNTFN0
cmluZyhXVEY6OlN0cmluZyBodG1sU3RyaW5nLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0
cmluZyB1bnJlYWNoYWJsZVVSTCk7IApAQCAtNjAsNyArNjAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlIHsKICAgICBMb2FkVVJMKFdURjo6U3RyaW5nIHVybCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICBMb2FkVVJMUmVxdWVzdChX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICBMaW5rQ2xpY2tlZChXVEY6OlN0
cmluZyB1cmwsIFdlYktpdDo6V2ViTW91c2VFdmVudCBldmVudCkKLSAgICBSZWxvYWQoYm9vbCBy
ZWxvYWRGcm9tT3JpZ2luKQorICAgIFJlbG9hZChib29sIHJlbG9hZEZyb21PcmlnaW4sIFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAg
U3RvcExvYWRpbmcoKQogCiAjaWYgUExBVEZPUk0oUVQpCkBAIC03MSw3ICs3MSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgewogICAgIFN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
ICAgICAKICAgICBSZXN0b3JlU2Vzc2lvbihXZWJLaXQ6OlNlc3Npb25TdGF0ZSBzdGF0ZSkKLSAg
ICBSZXN0b3JlU2Vzc2lvbkFuZE5hdmlnYXRlVG9DdXJyZW50SXRlbShXZWJLaXQ6OlNlc3Npb25T
dGF0ZSBzdGF0ZSwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVu
c2lvbkhhbmRsZSkKKyAgICBSZXN0b3JlU2Vzc2lvbkFuZE5hdmlnYXRlVG9DdXJyZW50SXRlbShX
ZWJLaXQ6OlNlc3Npb25TdGF0ZSBzdGF0ZSkKIAogICAgIERpZFJlbW92ZUJhY2tGb3J3YXJkSXRl
bSh1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>