<?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>203638</bug_id>
          
          <creation_ts>2019-10-30 15:54:26 -0700</creation_ts>
          <short_desc>ASSERT_WITH_MESSAGE(m_isOwnedByMainThread == isMainThread()) when web inspecting</short_desc>
          <delta_ts>2020-05-06 09:15:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>Safari Technology Preview</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="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1585610</commentid>
    <comment_count>0</comment_count>
      <attachid>382378</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-30 15:54:26 -0700</bug_when>
    <thetext>Created attachment 382378
Test file

I was web inspecting MiniBrowser WK2 with the attached tescase loaded, and was resizing the window (Resize Observer enabled in experimental features).

(lldb) bt
* thread #147, name = &apos;JSC Heap Collector Thread&apos;, stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
  * frame #0: 0x0000000312ecad0e JavaScriptCore`::WTFCrash() at Assertions.cpp:305:35
    frame #1: 0x00000002fa7f1a3a WebCore`WTF::RefCountedBase::applyRefDerefThreadingCheck(this=0x000000031abf7270) const at RefCounted.h:114:13
    frame #2: 0x00000002fa803ba9 WebCore`WTF::RefCountedBase::ref(this=0x000000031abf7270) const at RefCounted.h:43:9
    frame #3: 0x00000002fd60d107 WebCore`WTF::Ref&lt;WTF::Stopwatch, WTF::DumbPtrTraits&lt;WTF::Stopwatch&gt; &gt;::Ref(this=0x000070000b310c98, object=0x000000031abf7270) at Ref.h:66:16
    frame #4: 0x00000002fd60d0cd WebCore`WTF::Ref&lt;WTF::Stopwatch, WTF::DumbPtrTraits&lt;WTF::Stopwatch&gt; &gt;::Ref(this=0x000070000b310c98, object=0x000000031abf7270) at Ref.h:65:5
    frame #5: 0x00000002fd5f6eef WebCore`WTF::Ref&lt;WTF::Stopwatch, WTF::DumbPtrTraits&lt;WTF::Stopwatch&gt; &gt;::copyRef(this=0x000000031abd04b0) const &amp; at Ref.h:128:55
    frame #6: 0x00000002fd5f6ec0 WebCore`WebCore::InspectorController::executionStopwatch(this=0x000000031abd0480) at InspectorController.cpp:488:33
    frame #7: 0x0000000314037f68 JavaScriptCore`Inspector::InspectorHeapAgent::willGarbageCollect(this=0x000000031cef8340) at InspectorHeapAgent.cpp:277:35
    frame #8: 0x0000000313ec1c7b JavaScriptCore`JSC::Heap::willStartCollection(this=0x000000031b200048) at Heap.cpp:2211:19
    frame #9: 0x0000000313ec076e JavaScriptCore`JSC::Heap::runBeginPhase(this=0x000000031b200048, conn=Collector) at Heap.cpp:1280:5
    frame #10: 0x0000000313ebfb43 JavaScriptCore`JSC::Heap::runCurrentPhase(this=0x000000031b200048, conn=Collector, currentThreadState=0x0000000000000000) at Heap.cpp:1219:18
    frame #11: 0x0000000313ebf9c6 JavaScriptCore`JSC::Heap::collectInCollectorThread(this=0x000000031b200048) at Heap.cpp:1162:40
    frame #12: 0x0000000313eca5e9 JavaScriptCore`JSC::Heap::HeapThread::work(this=0x000000031abfa620) at Heap.cpp:268:16
    frame #13: 0x0000000312ee1e79 JavaScriptCore`WTF::AutomaticThread::start(this=0x000000031ab59a70)::$_0::operator()() const at AutomaticThread.cpp:223:37
    frame #14: 0x0000000312ee1a69 JavaScriptCore`WTF::Detail::CallableWrapper&lt;WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0, void&gt;::call(this=0x000000031ab59a68) at Function.h:52:39
    frame #15: 0x0000000312ef49ea JavaScriptCore`WTF::Function&lt;void ()&gt;::operator(this=0x000070000b310f80)() const at Function.h:79:35
    frame #16: 0x0000000312f914a0 JavaScriptCore`WTF::Thread::entryPoint(newThreadContext=0x00000003209049c0) at Threading.cpp:148:5
    frame #17: 0x0000000312f9bb05 JavaScriptCore`WTF::wtfThreadEntryPoint(context=0x00000003209049c0) at ThreadingPOSIX.cpp:200:5
    frame #18: 0x00000002f9a608da libsystem_pthread.dylib`_pthread_start + 125
    frame #19: 0x00000002f9a5cf03 libsystem_pthread.dylib`thread_start + 15
(lldb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585611</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-30 15:55:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/56761893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585612</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-30 15:55:24 -0700</bug_when>
    <thetext>Looks like inspector uses Stopwatch which is not ThreadSafeRefCounted&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648162</commentid>
    <comment_count>3</comment_count>
      <attachid>398266</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-05-01 17:59:23 -0700</bug_when>
    <thetext>Created attachment 398266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649641</commentid>
    <comment_count>4</comment_count>
      <attachid>398266</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-05-06 09:01:32 -0700</bug_when>
    <thetext>Comment on attachment 398266
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649646</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-06 09:15:20 -0700</bug_when>
    <thetext>Committed r261233: &lt;https://trac.webkit.org/changeset/261233&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398266.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>382378</attachid>
            <date>2019-10-30 15:54:26 -0700</date>
            <delta_ts>2019-10-30 15:54:26 -0700</delta_ts>
            <desc>Test file</desc>
            <filename>resize-observer-test.html</filename>
            <type>text/html</type>
            <size>2859</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgc2hyaW5rLXRvLWZp
dD1ubyI+CiAgICA8dGl0bGU+UmVzaXplIE9ic2VydmVyIFRlc3Q8L3RpdGxlPgogICAgPHN0eWxl
PgogICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAg
ICAgICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAg
ICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAj
aW5uZXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGxlZnQ6
IDA7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNl
bnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICAgICAgYm94LXNpemluZzog
Ym9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzIHsKICAgICAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBib3R0b206IDA7CiAgICAgICAg
ICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBn
cmlkLXRlbXBsYXRlLWNvbHVtbnM6IDZlbSA2ZW0gYXV0byA2ZW0gNmVtOwogICAgICAgICAgICBn
cmlkLXRlbXBsYXRlLXJvd3M6IDUwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJwdDsKICAg
ICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzLm5hcnJvdyB7CiAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHllbGxvdzsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy5tZWRp
dW0gewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7CiAgICAgICAgfQoKICAg
ICAgICAuY29udHJvbHMud2lkZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuYnV0dG9uIHsKICAgICAgICAgICAgcGFkZGlu
ZzogMTBweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgICAgICBib3JkZXI6IDFw
eCBzb2xpZCBncmF5OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAKICAgIDwvc3R5bGU+CiAg
ICA8c2NyaXB0PgogICAgICAgIAogICAgICAgIAogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgKCkgPT4gewogICAgICAgICAgICAKICAgICAgICAgICAgY29uc3QgcmVzaXpl
T2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZW50cmllcyA9PiB7CiAgICAgICAgICAgICAg
ICBjb25zdCBjb250YWluZXJXaWR0aCA9IGVudHJpZXNbMF0uY29udGVudFJlY3Qud2lkdGg7CiAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXNpemU6ICcsIGVu
dHJpZXMsIGNvbnRhaW5lcldpZHRoKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lubmVyJykuc3R5bGUud2lkdGggPSBjb250YWluZXJX
aWR0aCArICdweCc7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGxldCB3aWR0aENs
YXNzID0gJ3dpZGUnOwogICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lcldpZHRoIDwgMjAwKQog
ICAgICAgICAgICAgICAgICAgIHdpZHRoQ2xhc3MgPSAnbmFycm93JzsKICAgICAgICAgICAgICAg
IGVsc2UgaWYgKGNvbnRhaW5lcldpZHRoIDwgNDAwKQogICAgICAgICAgICAgICAgICAgIHdpZHRo
Q2xhc3MgPSAnbWVkaXVtJzsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgY29uc3Qg
Y29udHJvbHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udHJvbHMnKTsKICAgICAgICAg
ICAgICAgIGNvbnRyb2xzLmNsYXNzTGlzdC5yZW1vdmUoJ3dpZGUnKTsKICAgICAgICAgICAgICAg
IGNvbnRyb2xzLmNsYXNzTGlzdC5yZW1vdmUoJ21lZGl1bScpOwogICAgICAgICAgICAgICAgY29u
dHJvbHMuY2xhc3NMaXN0LnJlbW92ZSgnbmFycm93Jyk7CiAgICAgICAgICAgICAgICBjb250cm9s
cy5jbGFzc0xpc3QuYWRkKHdpZHRoQ2xhc3MpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAg
CiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGFyZ2V0Jyk7CiAgICAgICAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyKTsK
ICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIH0sIGZhbHNlKTsKICAgIDwvc2NyaXB0
Pgo8L2hlYWQ+Cjxib2R5PgogICAgPGRpdiBpZD0idGFyZ2V0IiBjbGFzcz0iY29udGFpbmVyIj4K
ICAgICAgICA8ZGl2IGlkPSJpbm5lciI+CiAgICAgICAgICAgIFRoaXMgaXMgYmVpbmcgcmVzaXpl
ZCB3aXRoIHNjcmlwdC4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJj
b250cm9scyIgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9u
Ij5QbGF5PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbiI+UGF1c2U8L2Rpdj4K
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uIj5Qcm9ncmVzczwvZGl2PgogICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJidXR0b24iPlZvbHVtZTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNz
PSJidXR0b24iPkFpcnBsYXk8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2JvZHk+
CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398266</attachid>
            <date>2020-05-01 17:59:23 -0700</date>
            <delta_ts>2020-05-06 09:15:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203638-20200501185922.patch</filename>
            <type>text/plain</type>
            <size>31977</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJmMjQxMWQ3MGYxMDQ2ZTg0MjM4NWI0NzA4NTI4
Mjc2ZTAwNDY3MDguLmQ1MzRlMmYxNWY5OTgxODRhYjgwN2E5NjAyOWQ4MmI4YTA2YTUyMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA1LTAxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKG1faXNPd25lZEJ5TWFpblRocmVhZCA9PSBpc01haW5UaHJlYWQoKSkgd2hlbiB3ZWIgaW5z
cGVjdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzNjM4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Njc2MTg5Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXJrIHRoZSBgSW5zcGVjdG9yRW52
aXJvbm1lbnQ6OmV4ZWN1dGlvblN0b3B3YXRjaGAgYWJzdHJhY3QgZnVuY3Rpb24gYXMgYGNvbnN0
YCBhbmQgaGF2ZSBpdAorICAgICAgICByZXR1cm4gYSBgU3RvcHdhdGNoJmAgaW5zdGVhZCBvZiBh
IGBSZWZQdHI8U3RvcHdhdGNoPiZgIGFzIGNhbGxlcnMgYXNzdW1lIHRoYXQgaXQgZXhpc3RzLgor
ICAgICAgICBCeSBub3QgdXNpbmcgYSBgUmVmUHRyYCwgYW4gYWRkaXRpb25hbCBgY29weVJlZmAg
Y2FuIGJlIGF2b2lkZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRW52aXJvbm1l
bnQuaDoKKworICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyOjpleGVjdXRpb25TdG9wd2F0Y2ggY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKElu
c3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpleGVjdXRpb25TdG9w
d2F0Y2gpOiBEZWxldGVkLgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6ZGlkUGF1c2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpicmVha3BvaW50QWN0aW9uUHJvYmUpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpkaWRDb250aW51ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JI
ZWFwQWdlbnQ6OnNuYXBzaG90KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFn
ZW50Ojp3aWxsR2FyYmFnZUNvbGxlY3QpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JI
ZWFwQWdlbnQ6OmRpZEdhcmJhZ2VDb2xsZWN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJ
bnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50OjpzdGFydFRyYWNraW5nKToKKyAgICAgICAgKElu
c3BlY3Rvcjo6SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDo6d2lsbEV2YWx1YXRlU2NyaXB0
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDo6ZGlk
RXZhbHVhdGVTY3JpcHQpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JTY3JpcHRQcm9m
aWxlckFnZW50Ojp0cmFja2luZ0NvbXBsZXRlKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5n
UHJvZmlsZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpTYW1wbGluZ1Byb2ZpbGVyKToKKyAgICAgICAg
KiBydW50aW1lL1ZNLmg6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6
OlZNOjplbnN1cmVTYW1wbGluZ1Byb2ZpbGVyKToKKwogMjAyMC0wNS0wMSAgRG9uIE9sbXN0ZWFk
ICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBhZGRpdGlvbmFs
IGV4cG9ydHMgdG8gc3VwcG9ydCBoaWRkZW4gdmlzaWJpbGl0eQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBiODM2MDM4Mjk0NDZi
NmU0YmY0ZDZiN2NhZmFhOGEzMTM5OTI4MWJkLi41YjY4ZmVhMDM2N2I1MGNjMTY3MmE3OGY0OTA4
ZGRlYWRiY2M5YmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA1LTAxICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1f
aXNPd25lZEJ5TWFpblRocmVhZCA9PSBpc01haW5UaHJlYWQoKSkgd2hlbiB3ZWIgaW5zcGVjdGlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjM4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Njc2MTg5Mz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9TdG9wd2F0Y2guaDoKKyAgICAgICAg
KFdURjo6U3RvcHdhdGNoOjplbGFwc2VkVGltZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV1RG
OjpTdG9wd2F0Y2g6OmVsYXBzZWRUaW1lU2luY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdU
Rjo6U3RvcHdhdGNoOjplbGFwc2VkVGltZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OlN0b3B3
YXRjaDo6ZWxhcHNlZFRpbWVTaW5jZSk6IERlbGV0ZWQuCisKIDIwMjAtMDUtMDEgIERvbiBPbG1z
dGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgYWRkaXRp
b25hbCBleHBvcnRzIHRvIHN1cHBvcnQgaGlkZGVuIHZpc2liaWxpdHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3
MDc0YzE0YTJmNjg5OWYxOTM4MmU3NDVjM2E4MzEzNjcwYTBmNjljLi44MGQ4YWFmZGE5YzMwZWMz
YzhlZGFmMDQ3NmY4ZDEwYjE2MzhmZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIw
MjAtMDUtMDEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UobV9pc093bmVkQnlNYWluVGhyZWFkID09IGlzTWFpblRocmVhZCgp
KSB3aGVuIHdlYiBpbnNwZWN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDM2MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NzYxODkzPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcmsgdGhl
IGBJbnNwZWN0b3JFbnZpcm9ubWVudDo6ZXhlY3V0aW9uU3RvcHdhdGNoYCBhYnN0cmFjdCBmdW5j
dGlvbiBhcyBgY29uc3RgIGFuZCBoYXZlIGl0CisgICAgICAgIHJldHVybiBhIGBTdG9wd2F0Y2gm
YCBpbnN0ZWFkIG9mIGEgYFJlZlB0cjxTdG9wd2F0Y2g+JmAgYXMgY2FsbGVycyBhc3N1bWUgdGhh
dCBpdCBleGlzdHMuCisgICAgICAgIEJ5IG5vdCB1c2luZyBhIGBSZWZQdHJgLCBhbiBhZGRpdGlv
bmFsIGBjb3B5UmVmYCBjYW4gYmUgYXZvaWRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZXhlY3V0aW9u
U3RvcHdhdGNoIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250
cm9sbGVyOjpleGVjdXRpb25TdG9wd2F0Y2gpOiBEZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyOjpleGVjdXRpb25TdG9wd2F0Y2ggY29uc3QpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmV4ZWN1dGlvblN0b3B3
YXRjaCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFu
aW1hdGlvbkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFn
ZW50OjpzdGFydFRyYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlv
bkFnZW50OjpzdG9wVHJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OndpbGxBcHBseUtleWZyYW1lRWZmZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbik6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQ6OnN0YXJ0VHJh
Y2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudDo6c3Rv
cFRyYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQ6
OmNvbGxlY3RTYW1wbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Om1lZGlhTWV0
cmljc1RpbWVyRmlyZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVt
b3J5QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTWVtb3J5QWdlbnQ6OnN0
YXJ0VHJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTWVtb3J5QWdlbnQ6OnN0
b3BUcmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6ZGlk
SGFuZGxlTWVtb3J5UHJlc3N1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTWVtb3J5
QWdlbnQ6OmNvbGxlY3RTYW1wbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yTmV0d29ya0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtB
Z2VudDo6YnVpbGRPYmplY3RGb3JUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
TmV0d29ya0FnZW50Ojp0aW1lc3RhbXApOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0
d29ya0FnZW50OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdl
QWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnRp
bWVzdGFtcCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVz
dGFtcCk6CisKIDIwMjAtMDUtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uKHIyNTkwMzYpIFVuYWJsZSB0byBwb3N0IGNvbW1lbnRzIG9uIEpp
cmEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RW52aXJvbm1lbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RW52aXJvbm1lbnQuaAppbmRleCBlYWQyOGNmZTMzYjNiYWVjNTk0ZWIxNmQ1YzhkOGRlNzRhNTMw
ZDFjLi4yMTAxOWVkYTFkMGM0Zjc3ODNkZmFjNmRkZTU3NTg2ZTRkNzFmZTZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckVudmlyb25tZW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JFbnZpcm9ubWVu
dC5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEluc3BlY3RvckZ1bmN0
aW9uQ2FsbEhhbmRsZXIgZnVuY3Rpb25DYWxsSGFuZGxlcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIEluc3BlY3RvckV2YWx1YXRlSGFuZGxlciBldmFsdWF0ZUhhbmRsZXIoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGZyb250ZW5kSW5pdGlhbGl6ZWQoKSA9IDA7Ci0gICAgdmlydHVh
bCBSZWY8V1RGOjpTdG9wd2F0Y2g+IGV4ZWN1dGlvblN0b3B3YXRjaCgpID0gMDsKKyAgICB2aXJ0
dWFsIFdURjo6U3RvcHdhdGNoJiBleGVjdXRpb25TdG9wd2F0Y2goKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdTZXJ2ZXIoKSA9IDA7CiAgICAg
dmlydHVhbCBKU0M6OlZNJiB2bSgpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggZTdkMjEwYzQ1Njk3NjhmMzUzMGMxYTFhMmE5ZmFjYjAyNGU1
NWVkMC4uMjNlOGEyZjc0Nzk5NWZhMjdmMjk3YzJiM2FlYzYyNjdiNzljZGI1MyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMjQ3LDkgKzI0Nyw5IEBAIHZv
aWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpmcm9udGVuZEluaXRpYWxpemVk
KCkKICNlbmRpZgogfQogCi1SZWY8U3RvcHdhdGNoPiBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNv
bnRyb2xsZXI6OmV4ZWN1dGlvblN0b3B3YXRjaCgpCitTdG9wd2F0Y2gmIEpTR2xvYmFsT2JqZWN0
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZXhlY3V0aW9uU3RvcHdhdGNoKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV9leGVjdXRpb25TdG9wd2F0Y2guY29weVJlZigpOworICAgIHJldHVybiBtX2V4ZWN1
dGlvblN0b3B3YXRjaDsKIH0KIAogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlciYgSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpzY3JpcHREZWJ1Z1NlcnZlcigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBkY2EzZDQxMGI3OTFhYzcwMGM4
YWRhYjA4MDMxM2RkNjAzYWZiOTUxLi42MWJmMDQxYjA4YzM5NGVkY2YyZjQ2ODc0NmM3MzQ2YWUz
ZjQwYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xv
YmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTg4LDcg
Kzg4LDcgQEAgcHVibGljOgogICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbEhhbmRsZXIgZnVuY3Rp
b25DYWxsSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIEluc3BlY3RvckV2YWx1YXRlSGFu
ZGxlciBldmFsdWF0ZUhhbmRsZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGZyb250ZW5k
SW5pdGlhbGl6ZWQoKSBvdmVycmlkZTsKLSAgICBSZWY8V1RGOjpTdG9wd2F0Y2g+IGV4ZWN1dGlv
blN0b3B3YXRjaCgpIG92ZXJyaWRlOworICAgIFdURjo6U3RvcHdhdGNoJiBleGVjdXRpb25TdG9w
d2F0Y2goKSBjb25zdCBmaW5hbDsKICAgICBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVy
JiBzY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOwogICAgIEpTQzo6Vk0mIHZtKCkgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNWFjYzNlNjExMmEz
MWQ2ZTBmZTlkNzY4OTQ3MzVkYzhiZTI5Y2NhNS4uMGU1OTYyZmIzNTQ3MDcyYmE2YTQ2MmJhYWZi
YjJjM2YyNTY2Y2RjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEx
NjIsOSArMTE2Miw5IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkUGF1c2UoSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTCiAgICAgICAgIG1fY29udGlu
dWVUb0xvY2F0aW9uQnJlYWtwb2ludElEID0gSlNDOjpub0JyZWFrcG9pbnRJRDsKICAgICB9CiAK
LSAgICBSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2ggPSBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmV4ZWN1dGlvblN0b3B3YXRjaCgpOwotICAgIGlmIChz
dG9wd2F0Y2ggJiYgc3RvcHdhdGNoLT5pc0FjdGl2ZSgpKSB7Ci0gICAgICAgIHN0b3B3YXRjaC0+
c3RvcCgpOworICAgIGF1dG8mIHN0b3B3YXRjaCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmlu
c3BlY3RvckVudmlyb25tZW50KCkuZXhlY3V0aW9uU3RvcHdhdGNoKCk7CisgICAgaWYgKHN0b3B3
YXRjaC5pc0FjdGl2ZSgpKSB7CisgICAgICAgIHN0b3B3YXRjaC5zdG9wKCk7CiAgICAgICAgIG1f
ZGlkUGF1c2VTdG9wd2F0Y2ggPSB0cnVlOwogICAgIH0KIH0KQEAgLTExODIsNyArMTE4Miw3IEBA
IHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YnJlYWtwb2ludEFjdGlvblByb2JlKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgICAgIC5zZXRQcm9iZUlkKGFjdGlvbi5pZGVu
dGlmaWVyKQogICAgICAgICAuc2V0QmF0Y2hJZChiYXRjaElkKQogICAgICAgICAuc2V0U2FtcGxl
SWQoc2FtcGxlSWQpCi0gICAgICAgIC5zZXRUaW1lc3RhbXAobV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXIuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRp
bWUoKS5zZWNvbmRzKCkpCisgICAgICAgIC5zZXRUaW1lc3RhbXAobV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5leGVjdXRpb25TdG9wd2F0Y2goKS5lbGFwc2Vk
VGltZSgpLnNlY29uZHMoKSkKICAgICAgICAgLnNldFBheWxvYWQoV1RGTW92ZShwYXlsb2FkKSkK
ICAgICAgICAgLnJlbGVhc2UoKTsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZGlkU2FtcGxl
UHJvYmUoV1RGTW92ZShyZXN1bHQpKTsKQEAgLTExOTIsNyArMTE5Miw3IEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlkQ29udGludWUoKQogewogICAgIGlmIChtX2RpZFBhdXNlU3Rv
cHdhdGNoKSB7CiAgICAgICAgIG1fZGlkUGF1c2VTdG9wd2F0Y2ggPSBmYWxzZTsKLSAgICAgICAg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5leGVjdXRpb25T
dG9wd2F0Y2goKS0+c3RhcnQoKTsKKyAgICAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5z
cGVjdG9yRW52aXJvbm1lbnQoKS5leGVjdXRpb25TdG9wd2F0Y2goKS5zdGFydCgpOwogICAgIH0K
IAogICAgIG1fcGF1c2VkR2xvYmFsT2JqZWN0ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdl
bnQuY3BwCmluZGV4IDYxZjJlNzY1ZjI1MDJjNWQzNjJkMTI4MmQwYTYzZTA5NDQxNTcwNWQuLjQ0
MDFlNGZmNTA0NjRjZDRhYTc5ZjNkMTk2MTIwOTY3YjRjMDdkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVh
cEFnZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgSW5zcGVjdG9ySGVhcEFnZW50Ojpz
bmFwc2hvdChFcnJvclN0cmluZyYsIGRvdWJsZSogdGltZXN0YW1wLCBTdHJpbmcqIHNuYXBzCiAg
ICAgSGVhcFNuYXBzaG90QnVpbGRlciBzbmFwc2hvdEJ1aWxkZXIodm0uZW5zdXJlSGVhcFByb2Zp
bGVyKCkpOwogICAgIHNuYXBzaG90QnVpbGRlci5idWlsZFNuYXBzaG90KCk7CiAKLSAgICAqdGlt
ZXN0YW1wID0gbV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWUo
KS5zZWNvbmRzKCk7CisgICAgKnRpbWVzdGFtcCA9IG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3Rv
cHdhdGNoKCkuZWxhcHNlZFRpbWUoKS5zZWNvbmRzKCk7CiAgICAgKnNuYXBzaG90RGF0YSA9IHNu
YXBzaG90QnVpbGRlci5qc29uKFsmXSAoY29uc3QgSGVhcFNuYXBzaG90Tm9kZSYgbm9kZSkgewog
ICAgICAgICBpZiAoU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBub2RlLmNlbGwtPnN0cnVjdHVyZSh2
bSkpIHsKICAgICAgICAgICAgIGlmIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3Ry
dWN0dXJlLT5nbG9iYWxPYmplY3QoKSkgewpAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgSW5zcGVj
dG9ySGVhcEFnZW50Ojp3aWxsR2FyYmFnZUNvbGxlY3QoKQogICAgIGlmICghbV9lbmFibGVkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2djU3RhcnRUaW1lID0gbV9lbnZpcm9ubWVudC5leGVj
dXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWUoKTsKKyAgICBtX2djU3RhcnRUaW1lID0gbV9l
bnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS5lbGFwc2VkVGltZSgpOwogfQogCiB2b2lk
IEluc3BlY3RvckhlYXBBZ2VudDo6ZGlkR2FyYmFnZUNvbGxlY3QoQ29sbGVjdGlvblNjb3BlIHNj
b3BlKQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgSW5zcGVjdG9ySGVhcEFnZW50OjpkaWRHYXJi
YWdlQ29sbGVjdChDb2xsZWN0aW9uU2NvcGUgc2NvcGUpCiAKICAgICAvLyBGSVhNRTogSW5jbHVk
ZSBudW1iZXIgb2YgYnl0ZXMgZnJlZWQgYnkgY29sbGVjdGlvbi4KIAotICAgIFNlY29uZHMgZW5k
VGltZSA9IG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCk7
CisgICAgU2Vjb25kcyBlbmRUaW1lID0gbV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2go
KS5lbGFwc2VkVGltZSgpOwogICAgIGRpc3BhdGNoR2FyYmFnZUNvbGxlY3RlZEV2ZW50KHByb3Rv
Y29sVHlwZUZvckhlYXBPcGVyYXRpb24oc2NvcGUpLCBtX2djU3RhcnRUaW1lLCBlbmRUaW1lKTsK
IAogICAgIG1fZ2NTdGFydFRpbWUgPSBTZWNvbmRzOjpuYW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVy
QWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggYjRiNjRjNzgzZTUxOTI2MzhkMmI0MzMx
YzIzNzhhYzc3ZmJiMjUxMi4uOTdjYzkxZmY1ZTIyYzk5ODEzOTNiNGRmYzU0ODljMjE4Mzg4MGZh
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAKQEAgLTcx
LDEzICs3MSwxNSBAQCB2b2lkIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ6OnN0YXJ0VHJh
Y2tpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBpbmNsdQogCiAgICAgbV90cmFja2luZyA9
IHRydWU7CiAKKyAgICBhdXRvJiBzdG9wd2F0Y2ggPSBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0
b3B3YXRjaCgpOworCiAjaWYgRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVSKQogICAgIGlmIChpbmNs
dWRlU2FtcGxlcyAmJiAqaW5jbHVkZVNhbXBsZXMpIHsKICAgICAgICAgVk0mIHZtID0gbV9lbnZp
cm9ubWVudC5zY3JpcHREZWJ1Z1NlcnZlcigpLnZtKCk7Ci0gICAgICAgIFNhbXBsaW5nUHJvZmls
ZXImIHNhbXBsaW5nUHJvZmlsZXIgPSB2bS5lbnN1cmVTYW1wbGluZ1Byb2ZpbGVyKG1fZW52aXJv
bm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCkpOworICAgICAgICBTYW1wbGluZ1Byb2ZpbGVyJiBz
YW1wbGluZ1Byb2ZpbGVyID0gdm0uZW5zdXJlU2FtcGxpbmdQcm9maWxlcihzdG9wd2F0Y2gpOwog
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKHNhbXBsaW5nUHJvZmlsZXIuZ2V0TG9jaygpKTsK
LSAgICAgICAgc2FtcGxpbmdQcm9maWxlci5zZXRTdG9wV2F0Y2gobG9ja2VyLCBtX2Vudmlyb25t
ZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpKTsKKyAgICAgICAgc2FtcGxpbmdQcm9maWxlci5zZXRT
dG9wV2F0Y2gobG9ja2VyLCBzdG9wd2F0Y2gpOwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLm5v
dGljZUN1cnJlbnRUaHJlYWRBc0pTQ0V4ZWN1dGlvblRocmVhZChsb2NrZXIpOwogICAgICAgICBz
YW1wbGluZ1Byb2ZpbGVyLnN0YXJ0KGxvY2tlcik7CiAgICAgICAgIG1fZW5hYmxlZFNhbXBsaW5n
UHJvZmlsZXIgPSB0cnVlOwpAQCAtODgsNyArOTAsNyBAQCB2b2lkIEluc3BlY3RvclNjcmlwdFBy
b2ZpbGVyQWdlbnQ6OnN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBpbmNs
dQogCiAgICAgbV9lbnZpcm9ubWVudC5zY3JpcHREZWJ1Z1NlcnZlcigpLnNldFByb2ZpbGluZ0Ns
aWVudCh0aGlzKTsKIAotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2luZ1N0YXJ0KG1f
ZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCkuc2Vjb25kcygp
KTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdTdGFydChzdG9wd2F0Y2guZWxh
cHNlZFRpbWUoKS5zZWNvbmRzKCkpOwogfQogCiB2b2lkIEluc3BlY3RvclNjcmlwdFByb2ZpbGVy
QWdlbnQ6OnN0b3BUcmFja2luZyhFcnJvclN0cmluZyYpCkBAIC0xMjEsMTQgKzEyMywxNCBAQCBT
ZWNvbmRzIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ6OndpbGxFdmFsdWF0ZVNjcmlwdCgp
CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gbV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9w
d2F0Y2goKS0+ZWxhcHNlZFRpbWUoKTsKKyAgICByZXR1cm4gbV9lbnZpcm9ubWVudC5leGVjdXRp
b25TdG9wd2F0Y2goKS5lbGFwc2VkVGltZSgpOwogfQogCiB2b2lkIEluc3BlY3RvclNjcmlwdFBy
b2ZpbGVyQWdlbnQ6OmRpZEV2YWx1YXRlU2NyaXB0KFNlY29uZHMgc3RhcnRUaW1lLCBQcm9maWxp
bmdSZWFzb24gcmVhc29uKQogewogICAgIG1fYWN0aXZlRXZhbHVhdGVTY3JpcHQgPSBmYWxzZTsK
IAotICAgIFNlY29uZHMgZW5kVGltZSA9IG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNo
KCktPmVsYXBzZWRUaW1lKCk7CisgICAgU2Vjb25kcyBlbmRUaW1lID0gbV9lbnZpcm9ubWVudC5l
eGVjdXRpb25TdG9wd2F0Y2goKS5lbGFwc2VkVGltZSgpOwogCiAgICAgYWRkRXZlbnQoc3RhcnRU
aW1lLCBlbmRUaW1lLCByZWFzb24pOwogfQpAQCAtMjAxLDcgKzIwMyw3IEBAIHN0YXRpYyBSZWY8
UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBidWlsZFNhbXBsZXMoVk0mIHZtLCBW
ZWN0b3I8U2FtcGxpCiAKIHZvaWQgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDo6dHJhY2tp
bmdDb21wbGV0ZSgpCiB7Ci0gICAgYXV0byB0aW1lc3RhbXAgPSBtX2Vudmlyb25tZW50LmV4ZWN1
dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpLnNlY29uZHMoKTsKKyAgICBhdXRvIHRpbWVz
dGFtcCA9IG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCkuZWxhcHNlZFRpbWUoKS5z
ZWNvbmRzKCk7CiAKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCiAgICAgaWYgKG1fZW5h
YmxlZFNhbXBsaW5nUHJvZmlsZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggMjE0NzAyMjdmMzM2YmVhYjA5ZjQ1ZDZl
MWI2ODZkNzNiNTgwMmNmOC4uOTYzMGM4NDQyYjczZTFmNGQ2OTgzNjAxNmZjYzdjM2FkMzZmZGI3
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9m
aWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9m
aWxlci5jcHAKQEAgLTI5Myw3ICsyOTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQqIG1fbWFjaGlu
ZUZyYW1lOwogfTsKIAotU2FtcGxpbmdQcm9maWxlcjo6U2FtcGxpbmdQcm9maWxlcihWTSYgdm0s
IFJlZlB0cjxTdG9wd2F0Y2g+JiYgc3RvcHdhdGNoKQorU2FtcGxpbmdQcm9maWxlcjo6U2FtcGxp
bmdQcm9maWxlcihWTSYgdm0sIFJlZjxTdG9wd2F0Y2g+JiYgc3RvcHdhdGNoKQogICAgIDogbV9p
c1BhdXNlZChmYWxzZSkKICAgICAsIG1faXNTaHV0RG93bihmYWxzZSkKICAgICAsIG1fdm0odm0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgK
aW5kZXggNzk1ZWU2ZGRlYzczZWVmZTJmMjMxNDhkZmQ2NDkxNGMzOTVkMTQzNS4uMTk3NTA4OGNi
YzllMTBmNGUwMDZiNGMyYzAzYzVjZWI1NWQ2YjNkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTY2LDcgKzE2Niw3IEBAIHB1
YmxpYzoKICAgICAgICAgeyB9CiAgICAgfTsKIAotICAgIFNhbXBsaW5nUHJvZmlsZXIoVk0mLCBS
ZWZQdHI8U3RvcHdhdGNoPiYmKTsKKyAgICBTYW1wbGluZ1Byb2ZpbGVyKFZNJiwgUmVmPFN0b3B3
YXRjaD4mJik7CiAgICAgflNhbXBsaW5nUHJvZmlsZXIoKTsKICAgICB2b2lkIG5vdGljZUpTTG9j
a0FjcXVpc2l0aW9uKCk7CiAgICAgdm9pZCBub3RpY2VWTUVudHJ5KCk7CkBAIC0yMDgsNyArMjA4
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbmVlZHNSZXBvcnRBdEV4aXQgeyBmYWxzZSB9Owog
ICAgIFZNJiBtX3ZtOwogICAgIFdlYWtSYW5kb20gbV93ZWFrUmFuZG9tOwotICAgIFJlZlB0cjxT
dG9wd2F0Y2g+IG1fc3RvcHdhdGNoOworICAgIFJlZjxTdG9wd2F0Y2g+IG1fc3RvcHdhdGNoOwog
ICAgIFZlY3RvcjxTdGFja1RyYWNlPiBtX3N0YWNrVHJhY2VzOwogICAgIFZlY3RvcjxVbnByb2Nl
c3NlZFN0YWNrVHJhY2U+IG1fdW5wcm9jZXNzZWRTdGFja1RyYWNlczsKICAgICBTZWNvbmRzIG1f
dGltaW5nSW50ZXJ2YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggNGI5
NmRkNWJjODAzY2VlZWRjY2NhNWY3ZmMzNTM0YjJmN2NjMWE1OS4uNTU2MTJiM2Y1MThiMDZlOWMy
ODJiZjQ4YzQ2MjE4NGY3YzU4Zjg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cApAQCAtNzM5LDcgKzczOSw3IEBAIEhlYXBQcm9maWxlciYgVk06OmVuc3VyZUhlYXBQcm9maWxl
cigpCiB9CiAKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCi1TYW1wbGluZ1Byb2ZpbGVy
JiBWTTo6ZW5zdXJlU2FtcGxpbmdQcm9maWxlcihSZWZQdHI8U3RvcHdhdGNoPiYmIHN0b3B3YXRj
aCkKK1NhbXBsaW5nUHJvZmlsZXImIFZNOjplbnN1cmVTYW1wbGluZ1Byb2ZpbGVyKFJlZjxTdG9w
d2F0Y2g+JiYgc3RvcHdhdGNoKQogewogICAgIGlmICghbV9zYW1wbGluZ1Byb2ZpbGVyKQogICAg
ICAgICBtX3NhbXBsaW5nUHJvZmlsZXIgPSBhZG9wdFJlZihuZXcgU2FtcGxpbmdQcm9maWxlcigq
dGhpcywgV1RGTW92ZShzdG9wd2F0Y2gpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApp
bmRleCA1MjkyOTMzYzEzZGFmYWM3ZTYxYWI4YzU3ODRhZWM1MDE2YjMwYjI3Li4zODExNDk3Mjhl
NjUxMWYwN2EzNjFkYTE1ZjVhMGJiNTc0N2M1MTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKQEAgLTMyMyw3ICszMjMsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoU0FNUExJTkdf
UFJPRklMRVIpCiAgICAgU2FtcGxpbmdQcm9maWxlciogc2FtcGxpbmdQcm9maWxlcigpIHsgcmV0
dXJuIG1fc2FtcGxpbmdQcm9maWxlci5nZXQoKTsgfQotICAgIEpTX0VYUE9SVF9QUklWQVRFIFNh
bXBsaW5nUHJvZmlsZXImIGVuc3VyZVNhbXBsaW5nUHJvZmlsZXIoUmVmUHRyPFN0b3B3YXRjaD4m
Jik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU2FtcGxpbmdQcm9maWxlciYgZW5zdXJlU2FtcGxp
bmdQcm9maWxlcihSZWY8U3RvcHdhdGNoPiYmKTsKICNlbmRpZgogCiAgICAgRnV6emVyQWdlbnQq
IGZ1enplckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9mdXp6ZXJBZ2VudC5nZXQoKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RvcHdhdGNoLmggYi9Tb3VyY2UvV1RGL3d0Zi9TdG9w
d2F0Y2guaAppbmRleCA0MDZhYzJjMGUwMjlhOTJlOTE2NzBkYTI5MjQzYWI4ODYyMmU5Mzk5Li45
N2RmM2RlMzViMWJkNzY4Y2IxM2UyMWZmZjY5Nzc3OWRjOWI3MjVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9TdG9wd2F0Y2guaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdG9wd2F0Y2guaApA
QCAtNDEsOCArNDEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3Rv
cCgpOwogCi0gICAgU2Vjb25kcyBlbGFwc2VkVGltZSgpOwotICAgIFNlY29uZHMgZWxhcHNlZFRp
bWVTaW5jZShNb25vdG9uaWNUaW1lKTsKKyAgICBTZWNvbmRzIGVsYXBzZWRUaW1lKCkgY29uc3Q7
CisgICAgU2Vjb25kcyBlbGFwc2VkVGltZVNpbmNlKE1vbm90b25pY1RpbWUpIGNvbnN0OwogCiAg
ICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuICFzdGQ6OmlzbmFuKG1fbGFzdFN0YXJ0
VGltZSk7IH0KIHByaXZhdGU6CkBAIC03Myw3ICs3Myw3IEBAIGlubGluZSB2b2lkIFN0b3B3YXRj
aDo6c3RvcCgpCiAgICAgbV9sYXN0U3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bmFuKCk7CiB9
CiAKLWlubGluZSBTZWNvbmRzIFN0b3B3YXRjaDo6ZWxhcHNlZFRpbWUoKQoraW5saW5lIFNlY29u
ZHMgU3RvcHdhdGNoOjplbGFwc2VkVGltZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0FjdGl2ZSgp
KQogICAgICAgICByZXR1cm4gbV9lbGFwc2VkVGltZTsKQEAgLTgxLDcgKzgxLDcgQEAgaW5saW5l
IFNlY29uZHMgU3RvcHdhdGNoOjplbGFwc2VkVGltZSgpCiAgICAgcmV0dXJuIG1fZWxhcHNlZFRp
bWUgKyAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2xhc3RTdGFydFRpbWUpOwogfQogCi1pbmxp
bmUgU2Vjb25kcyBTdG9wd2F0Y2g6OmVsYXBzZWRUaW1lU2luY2UoTW9ub3RvbmljVGltZSB0aW1l
U3RhbXApCitpbmxpbmUgU2Vjb25kcyBTdG9wd2F0Y2g6OmVsYXBzZWRUaW1lU2luY2UoTW9ub3Rv
bmljVGltZSB0aW1lU3RhbXApIGNvbnN0CiB7CiAgICAgaWYgKCFpc0FjdGl2ZSgpKQogICAgICAg
ICByZXR1cm4gbV9lbGFwc2VkVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA3ZDUwZGRjN2EzOGEzNzIzZTRlZTdkNjZjYTk3
YzhhY2IzN2M3MjZhLi5mNjc4NGI4OGU0NzlmZGQxODRmMGExNDk2YzVlMzRkMzcxNGExNjgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CkBAIC00ODUsOSArNDg1LDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpmcm9udGVuZElu
aXRpYWxpemVkKCkKICNlbmRpZgogfQogCi1SZWY8U3RvcHdhdGNoPiBJbnNwZWN0b3JDb250cm9s
bGVyOjpleGVjdXRpb25TdG9wd2F0Y2goKQorU3RvcHdhdGNoJiBJbnNwZWN0b3JDb250cm9sbGVy
OjpleGVjdXRpb25TdG9wd2F0Y2goKSBjb25zdAogewotICAgIHJldHVybiBtX2V4ZWN1dGlvblN0
b3B3YXRjaC5jb3B5UmVmKCk7CisgICAgcmV0dXJuIG1fZXhlY3V0aW9uU3RvcHdhdGNoOwogfQog
CiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXImIEluc3BlY3RvckNvbnRyb2xsZXI6OnNjcmlwdERlYnVn
U2VydmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCmluZGV4IGNkNDQ5N2M5Y2RmN2UzZGM3ZmU4OWZmZGJmMTg4ZDQ3ZjJhYWEwMGQuLjNmYWU5
OTUxZDcwM2Y4M2QwZGU4MDVhNzFkZmUwZjcyNjBmZWFjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTE3LDcgKzExNyw3IEBAIHB1
YmxpYzoKICAgICBJbnNwZWN0b3I6Okluc3BlY3RvckZ1bmN0aW9uQ2FsbEhhbmRsZXIgZnVuY3Rp
b25DYWxsSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9y
RXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRlSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgZnJvbnRlbmRJbml0aWFsaXplZCgpIG92ZXJyaWRlOwotICAgIFJlZjxXVEY6OlN0b3B3YXRj
aD4gZXhlY3V0aW9uU3RvcHdhdGNoKCkgb3ZlcnJpZGU7CisgICAgV1RGOjpTdG9wd2F0Y2gmIGV4
ZWN1dGlvblN0b3B3YXRjaCgpIGNvbnN0IGZpbmFsOwogICAgIFBhZ2VTY3JpcHREZWJ1Z1NlcnZl
ciYgc2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZTsKICAgICBKU0M6OlZNJiB2bSgpIG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuaAppbmRleCBjYzdkNjZlNTlhODM0MDY5NzlmOTQ1MTg5YjEzODcwYTRjNjEw
OGZhLi5jMTE1ZjViODk1ZDllOTUyODIwMmFiZGZlYmY0M2RjNTg2N2Q2YTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgK
QEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9yRnVuY3Rp
b25DYWxsSGFuZGxlciBmdW5jdGlvbkNhbGxIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
SW5zcGVjdG9yOjpJbnNwZWN0b3JFdmFsdWF0ZUhhbmRsZXIgZXZhbHVhdGVIYW5kbGVyKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBmcm9udGVuZEluaXRpYWxpemVkKCkgb3ZlcnJpZGUgeyB9
Ci0gICAgUmVmPFdURjo6U3RvcHdhdGNoPiBleGVjdXRpb25TdG9wd2F0Y2goKSBvdmVycmlkZSB7
IHJldHVybiBtX2V4ZWN1dGlvblN0b3B3YXRjaC5jb3B5UmVmKCk7IH0KKyAgICBXVEY6OlN0b3B3
YXRjaCYgZXhlY3V0aW9uU3RvcHdhdGNoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9leGVjdXRp
b25TdG9wd2F0Y2g7IH0KICAgICBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdT
ZXJ2ZXIoKSBvdmVycmlkZSB7IHJldHVybiBtX3NjcmlwdERlYnVnU2VydmVyOyB9CiAgICAgSlND
OjpWTSYgdm0oKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcAppbmRleCAwYWU1NzZk
ZTZkNjA3NTY2YTNhNjkzOTg2NmM4ZDgzMWI3NzNkNTZiLi5jN2Y3ZGVlZDU0OTQ2NzU2MDlkYzBl
YzMyNWY5ZTA1MTA3MzFkZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcApAQCAtMzQ3LDcgKzM0
Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnN0YXJ0VHJhY2tpbmcoRXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nKQogCiAgICAgQVNTRVJUKG1fdHJhY2tlZERlY2xhcmF0aXZlQW5p
bWF0aW9uRGF0YS5pc0VtcHR5KCkpOwogCi0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnRyYWNr
aW5nU3RhcnQobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWUo
KS5zZWNvbmRzKCkpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2luZ1N0YXJ0KG1f
ZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCkuZWxhcHNlZFRpbWUoKS5zZWNvbmRzKCkp
OwogfQogCiB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpzdG9wVHJhY2tpbmcoRXJyb3JT
dHJpbmcmKQpAQCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OnN0b3BUcmFja2luZyhFcnJvclN0cmluZyYpCiAKICAgICBtX3RyYWNrZWREZWNsYXJhdGl2ZUFu
aW1hdGlvbkRhdGEuY2xlYXIoKTsKIAotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2lu
Z0NvbXBsZXRlKG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1l
KCkuc2Vjb25kcygpKTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdDb21wbGV0
ZShtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLmVsYXBzZWRUaW1lKCkuc2Vjb25k
cygpKTsKIH0KIAogc3RhdGljIGJvb2wgaXNEZWxheWVkKENvbXB1dGVkRWZmZWN0VGltaW5nJiBj
b21wdXRlZFRpbWluZykKQEAgLTQzMSw3ICs0MzEsNyBAQCB2b2lkIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50Ojp3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiB0YXJnZXQsIEtleWZyYW1l
RQogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCi0gICAgbV9mcm9u
dGVuZERpc3BhdGNoZXItPnRyYWNraW5nVXBkYXRlKG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3Rv
cHdhdGNoKCktPmVsYXBzZWRUaW1lKCkuc2Vjb25kcygpLCBXVEZNb3ZlKGV2ZW50KSk7CisgICAg
bV9mcm9udGVuZERpc3BhdGNoZXItPnRyYWNraW5nVXBkYXRlKG1fZW52aXJvbm1lbnQuZXhlY3V0
aW9uU3RvcHdhdGNoKCkuZWxhcHNlZFRpbWUoKS5zZWNvbmRzKCksIFdURk1vdmUoZXZlbnQpKTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZm
ZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQpAQCAtNTkyLDcgKzU5Miw3IEBAIHZvaWQgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKERl
Y2xhcmF0aXZlQW5pbWF0CiAgICAgICAgICAgICAuc2V0VHJhY2tpbmdBbmltYXRpb25JZChpdC0+
dmFsdWUudHJhY2tpbmdBbmltYXRpb25JZCkKICAgICAgICAgICAgIC5zZXRBbmltYXRpb25TdGF0
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkFuaW1hdGlvblN0YXRlOjpDYW5jZWxl
ZCkKICAgICAgICAgICAgIC5yZWxlYXNlKCk7Ci0gICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
LT50cmFja2luZ1VwZGF0ZShtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFw
c2VkVGltZSgpLnNlY29uZHMoKSwgV1RGTW92ZShldmVudCkpOworICAgICAgICBtX2Zyb250ZW5k
RGlzcGF0Y2hlci0+dHJhY2tpbmdVcGRhdGUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0
Y2goKS5lbGFwc2VkVGltZSgpLnNlY29uZHMoKSwgV1RGTW92ZShldmVudCkpOwogICAgIH0KIAog
ICAgIG1fdHJhY2tlZERlY2xhcmF0aXZlQW5pbWF0aW9uRGF0YS5yZW1vdmUoaXQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BV
UHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggYWZjYWU2ZWExMjBhMjdlMDNkODhiNDZhM2Q5MWM3M2Ix
NGIyNWZiNS4uMzA1ZDkyMzg4NWJmZmM1ZGM5MTNlYmNkZDA0NWM4MWI5MDU2YWQ3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxl
ckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNQVVByb2ZpbGVyQWdlbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1BV
UHJvZmlsZXJBZ2VudDo6c3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpCiAKICAgICBtX3RyYWNr
aW5nID0gdHJ1ZTsKIAotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2luZ1N0YXJ0KG1f
ZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCkuc2Vjb25kcygp
KTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdTdGFydChtX2Vudmlyb25tZW50
LmV4ZWN1dGlvblN0b3B3YXRjaCgpLmVsYXBzZWRUaW1lKCkuc2Vjb25kcygpKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50OjpzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKQpA
QCAtODIsNyArODIsNyBAQCB2b2lkIEluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQ6OnN0b3BUcmFj
a2luZyhFcnJvclN0cmluZyYpCiAKICAgICBtX3RyYWNraW5nID0gZmFsc2U7CiAKLSAgICBtX2Zy
b250ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdDb21wbGV0ZShtX2Vudmlyb25tZW50LmV4ZWN1dGlv
blN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpLnNlY29uZHMoKSk7CisgICAgbV9mcm9udGVuZERp
c3BhdGNoZXItPnRyYWNraW5nQ29tcGxldGUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0
Y2goKS5lbGFwc2VkVGltZSgpLnNlY29uZHMoKSk7CiB9CiAKIHN0YXRpYyBSZWY8UHJvdG9jb2w6
OkNQVVByb2ZpbGVyOjpUaHJlYWRJbmZvPiBidWlsZFRocmVhZEluZm8oY29uc3QgVGhyZWFkQ1BV
SW5mbyYgdGhyZWFkKQpAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyBSZWY8UHJvdG9jb2w6OkNQ
VVByb2ZpbGVyOjpUaHJlYWRJbmZvPiBidWlsZFRocmVhZEluZm8oY29uc3QgVGhyZWFkQ1BVSW5m
CiB2b2lkIEluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQ6OmNvbGxlY3RTYW1wbGUoY29uc3QgUmVz
b3VyY2VVc2FnZURhdGEmIGRhdGEpCiB7CiAgICAgYXV0byBldmVudCA9IFByb3RvY29sOjpDUFVQ
cm9maWxlcjo6RXZlbnQ6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRUaW1lc3RhbXAobV9lbnZpcm9u
bWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWVTaW5jZShkYXRhLnRpbWVzdGFt
cCkuc2Vjb25kcygpKQorICAgICAgICAuc2V0VGltZXN0YW1wKG1fZW52aXJvbm1lbnQuZXhlY3V0
aW9uU3RvcHdhdGNoKCkuZWxhcHNlZFRpbWVTaW5jZShkYXRhLnRpbWVzdGFtcCkuc2Vjb25kcygp
KQogICAgICAgICAuc2V0VXNhZ2UoZGF0YS5jcHVFeGNsdWRpbmdEZWJ1Z2dlclRocmVhZHMpCiAg
ICAgICAgIC5yZWxlYXNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMjU4Mjg0NTcxMTljZTgxYjUyODNm
ZDAzYjk2ZmUwY2VkNTZkOTNmOC4uYTJmOGRmYTE2MjRkZGZmNDJlMzU5Yzg2MmUwNzQ4ZTcyZWNi
Yzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKQEAgLTI2Miw3ICsyNjIsNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICBkYXRhLT5zZXRCb29sZWFuKCJlbmFibGVkIl9zLCAhIW5vZGUtPmRvY3VtZW50KCkuZnVsbHNj
cmVlbk1hbmFnZXIoKS5mdWxsc2NyZWVuRWxlbWVudCgpKTsKICNlbmRpZiAvLyBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAKLSAgICAgICAgYXV0byB0aW1lc3RhbXAgPSBtX2RvbUFnZW50Lm1fZW52
aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCkuc2Vjb25kcygpOwor
ICAgICAgICBhdXRvIHRpbWVzdGFtcCA9IG1fZG9tQWdlbnQubV9lbnZpcm9ubWVudC5leGVjdXRp
b25TdG9wd2F0Y2goKS5lbGFwc2VkVGltZSgpLnNlY29uZHMoKTsKICAgICAgICAgbV9kb21BZ2Vu
dC5tX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZGlkRmlyZUV2ZW50KG5vZGVJZCwgZXZlbnQudHlwZSgp
LCB0aW1lc3RhbXAsIGRhdGEtPnNpemUoKSA/IFdURk1vdmUoZGF0YSkgOiBudWxscHRyKTsKICAg
ICB9CiAKQEAgLTI1OTEsNyArMjU5MSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6Om1lZGlh
TWV0cmljc1RpbWVyRmlyZWQoKQogCiAgICAgICAgICAgICBpbnQgbm9kZUlkID0gcHVzaE5vZGVQ
YXRoVG9Gcm9udGVuZChtZWRpYUVsZW1lbnQpOwogICAgICAgICAgICAgaWYgKG5vZGVJZCkgewot
ICAgICAgICAgICAgICAgIGF1dG8gdGltZXN0YW1wID0gbV9lbnZpcm9ubWVudC5leGVjdXRpb25T
dG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWUoKS5zZWNvbmRzKCk7CisgICAgICAgICAgICAgICAgYXV0
byB0aW1lc3RhbXAgPSBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLmVsYXBzZWRU
aW1lKCkuc2Vjb25kcygpOwogICAgICAgICAgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5w
b3dlckVmZmljaWVudFBsYXliYWNrU3RhdGVDaGFuZ2VkKG5vZGVJZCwgdGltZXN0YW1wLCBpdGVy
YXRvci0+dmFsdWUuaXNQb3dlckVmZmljaWVudCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVt
b3J5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5jcHAKaW5kZXggMTFhY2IzYmU4ZTVmYWUxMmI1NWNiYmU5ODU0ZTQ3MGUxNThm
ZmY1Yi4uZDQzNmVkNDc2ZDg0ZTZlYjk4MGFhZmE5YWQ1YTUwOTc1Njg4NjdjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlB
Z2VudC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBJbnNwZWN0b3JNZW1vcnlBZ2VudDo6c3Rh
cnRUcmFja2luZyhFcnJvclN0cmluZyYpCiAKICAgICBtX3RyYWNraW5nID0gdHJ1ZTsKIAotICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2luZ1N0YXJ0KG1fZW52aXJvbm1lbnQuZXhlY3V0
aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCkuc2Vjb25kcygpKTsKKyAgICBtX2Zyb250ZW5k
RGlzcGF0Y2hlci0+dHJhY2tpbmdTdGFydChtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRj
aCgpLmVsYXBzZWRUaW1lKCkuc2Vjb25kcygpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JNZW1vcnlB
Z2VudDo6c3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikKQEAgLTEwNCwxMyArMTA0LDEzIEBAIHZv
aWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OnN0b3BUcmFja2luZyhFcnJvclN0cmluZyYpCiAKICAg
ICBtX3RyYWNraW5nID0gZmFsc2U7CiAKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dHJhY2tp
bmdDb21wbGV0ZShtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGlt
ZSgpLnNlY29uZHMoKSk7CisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnRyYWNraW5nQ29tcGxl
dGUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS5lbGFwc2VkVGltZSgpLnNlY29u
ZHMoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmRpZEhhbmRsZU1lbW9yeVBy
ZXNzdXJlKENyaXRpY2FsIGNyaXRpY2FsKQogewogICAgIE1lbW9yeUZyb250ZW5kRGlzcGF0Y2hl
cjo6U2V2ZXJpdHkgc2V2ZXJpdHkgPSBjcml0aWNhbCA9PSBDcml0aWNhbDo6WWVzID8gTWVtb3J5
RnJvbnRlbmREaXNwYXRjaGVyOjpTZXZlcml0eTo6Q3JpdGljYWwgOiBNZW1vcnlGcm9udGVuZERp
c3BhdGNoZXI6OlNldmVyaXR5OjpOb25Dcml0aWNhbDsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ci0+bWVtb3J5UHJlc3N1cmUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxh
cHNlZFRpbWUoKS5zZWNvbmRzKCksIHNldmVyaXR5KTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ci0+bWVtb3J5UHJlc3N1cmUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS5lbGFw
c2VkVGltZSgpLnNlY29uZHMoKSwgc2V2ZXJpdHkpOwogfQogCiB2b2lkIEluc3BlY3Rvck1lbW9y
eUFnZW50Ojpjb2xsZWN0U2FtcGxlKGNvbnN0IFJlc291cmNlVXNhZ2VEYXRhJiBkYXRhKQpAQCAt
MTU0LDcgKzE1NCw3IEBAIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmNvbGxlY3RTYW1wbGUo
Y29uc3QgUmVzb3VyY2VVc2FnZURhdGEmIGRhdGEpCiAgICAgY2F0ZWdvcmllcy0+YWRkSXRlbShX
VEZNb3ZlKG90aGVyQ2F0ZWdvcnkpKTsKIAogICAgIGF1dG8gZXZlbnQgPSBQcm90b2NvbDo6TWVt
b3J5OjpFdmVudDo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFRpbWVzdGFtcChtX2Vudmlyb25tZW50
LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZVNpbmNlKGRhdGEudGltZXN0YW1wKS5z
ZWNvbmRzKCkpCisgICAgICAgIC5zZXRUaW1lc3RhbXAobV9lbnZpcm9ubWVudC5leGVjdXRpb25T
dG9wd2F0Y2goKS5lbGFwc2VkVGltZVNpbmNlKGRhdGEudGltZXN0YW1wKS5zZWNvbmRzKCkpCiAg
ICAgICAgIC5zZXRDYXRlZ29yaWVzKFdURk1vdmUoY2F0ZWdvcmllcykpCiAgICAgICAgIC5yZWxl
YXNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCAxNmZlNzQ1ODEzNTIyZjc3NjI5M2Q3ZGIw
YjIwYThmY2U3YjNhMDIwLi40YmRlZTMwMDFmZGI0ZmVjMGVlZTM1ZjU3Yzk5MmE5NjJkMjY1OGNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5l
dHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC0yMTgsNyArMjE4LDcgQEAgUmVmPEluc3BlY3Rvcjo6
UHJvdG9jb2w6Ok5ldHdvcms6OlJlc291cmNlVGltaW5nPiBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6
OmJ1aWxkT2IKICAgICBhdXRvJiBsb2FkVGltaW5nID0gcmVzb3VyY2VMb2FkZXIubG9hZFRpbWlu
ZygpOwogCiAgICAgYXV0byBlbGFwc2VkVGltZVNpbmNlID0gWyZdIChjb25zdCBNb25vdG9uaWNU
aW1lJiB0aW1lKSB7Ci0gICAgICAgIHJldHVybiBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3
YXRjaCgpLT5lbGFwc2VkVGltZVNpbmNlKHRpbWUpLnNlY29uZHMoKTsKKyAgICAgICAgcmV0dXJu
IG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCkuZWxhcHNlZFRpbWVTaW5jZSh0aW1l
KS5zZWNvbmRzKCk7CiAgICAgfTsKICAgICBPcHRpb25hbDxOZXR3b3JrTG9hZE1ldHJpY3M+IGVt
cHR5OwogICAgIGlmICghdGltaW5nKSB7CkBAIC00MTUsNyArNDE1LDcgQEAgUmVmPEluc3BlY3Rv
cjo6UHJvdG9jb2w6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiBJbnNwZWN0b3JOZXR3b3JrQWdl
bnQ6OmJ1aWxkT2IKIAogZG91YmxlIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6dGltZXN0YW1wKCkK
IHsKLSAgICByZXR1cm4gbV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNl
ZFRpbWUoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3Rv
cHdhdGNoKCkuZWxhcHNlZFRpbWUoKS5zZWNvbmRzKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yTmV0
d29ya0FnZW50Ojp3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1
bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEluc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3Vy
Y2VUeXBlIHR5cGUpCkBAIC01NzYsNyArNTc2LDcgQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdl
bnQ6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudEwK
ICAgICBkb3VibGUgZWxhcHNlZEZpbmlzaFRpbWU7CiAgICAgaWYgKHJlc291cmNlTG9hZGVyICYm
IG5ldHdvcmtMb2FkTWV0cmljcy5pc0NvbXBsZXRlKCkpIHsKICAgICAgICAgTW9ub3RvbmljVGlt
ZSBmZXRjaFN0YXJ0ID0gcmVzb3VyY2VMb2FkZXItPmxvYWRUaW1pbmcoKS5mZXRjaFN0YXJ0KCk7
Ci0gICAgICAgIFNlY29uZHMgZmV0Y2hTdGFydEluSW5zcGVjdG9yID0gbV9lbnZpcm9ubWVudC5l
eGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWVTaW5jZShmZXRjaFN0YXJ0KTsKKyAgICAg
ICAgU2Vjb25kcyBmZXRjaFN0YXJ0SW5JbnNwZWN0b3IgPSBtX2Vudmlyb25tZW50LmV4ZWN1dGlv
blN0b3B3YXRjaCgpLmVsYXBzZWRUaW1lU2luY2UoZmV0Y2hTdGFydCk7CiAgICAgICAgIGVsYXBz
ZWRGaW5pc2hUaW1lID0gKGZldGNoU3RhcnRJbkluc3BlY3RvciArIG5ldHdvcmtMb2FkTWV0cmlj
cy5yZXNwb25zZUVuZCkuc2Vjb25kcygpOwogICAgIH0gZWxzZQogICAgICAgICBlbGFwc2VkRmlu
aXNoVGltZSA9IHRpbWVzdGFtcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDMwZWJkZDNhOWZiNjVhNGYw
ZmU4Nzk5ZGZhYjkxYjllMDE3MjJkN2YuLmVkZjc1OWE5OGM3ZGUxZTUxNThiZjA4MjJjYjRmMjY2
MDYxOWU2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTM2Niw5ICszNjYsOSBAQCB2b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKIAogICAgIG1faW5z
dHJ1bWVudGluZ0FnZW50cy5zZXRJbnNwZWN0b3JQYWdlQWdlbnQodGhpcyk7CiAKLSAgICBhdXRv
IHN0b3B3YXRjaCA9IG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCk7Ci0gICAgc3Rv
cHdhdGNoLT5yZXNldCgpOwotICAgIHN0b3B3YXRjaC0+c3RhcnQoKTsKKyAgICBhdXRvJiBzdG9w
d2F0Y2ggPSBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpOworICAgIHN0b3B3YXRj
aC5yZXNldCgpOworICAgIHN0b3B3YXRjaC5zdGFydCgpOwogCiAjaWYgSEFWRShPU19EQVJLX01P
REVfU1VQUE9SVCkKICAgICBkZWZhdWx0QXBwZWFyYW5jZURpZENoYW5nZShtX2luc3BlY3RlZFBh
Z2UuZGVmYXVsdFVzZURhcmtBcHBlYXJhbmNlKCkpOwpAQCAtMzk4LDcgKzM5OCw3IEBAIHZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKIAogZG91YmxlIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6dGltZXN0YW1wKCkKIHsKLSAgICByZXR1cm4gbV9lbnZpcm9ubWVudC5l
eGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWUoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJu
IG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCkuZWxhcHNlZFRpbWUoKS5zZWNvbmRz
KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZWxvYWQoRXJyb3JTdHJpbmcmLCBj
b25zdCBib29sKiBvcHRpb25hbFJlbG9hZEZyb21PcmlnaW4sIGNvbnN0IGJvb2wqIG9wdGlvbmFs
UmV2YWxpZGF0ZUFsbFJlc291cmNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IGNjNTdkNDI1
ZDY3OGI4ZmM5YzhhZDYyNDYyYjhkZTJiYTRiZTNjN2EuLmRkODA3ZjFmNzJiOWMxYjdjZTM1N2Zh
NTczMmIzZGM1ZjZmY2E4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMjY3LDcgKzI2Nyw3
IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW50ZXJuYWxTdG9wKCkKIAogZG91Ymxl
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVzdGFtcCgpCiB7Ci0gICAgcmV0dXJuIG1fZW52
aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCkuc2Vjb25kcygpOwor
ICAgIHJldHVybiBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLmVsYXBzZWRUaW1l
KCkuc2Vjb25kcygpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0RnJv
bUNvbnNvbGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>