<?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>127663</bug_id>
          
          <creation_ts>2014-01-26 16:43:37 -0800</creation_ts>
          <short_desc>Web Inspector: Include profile with FunctionCall and EvaluateScript Timeline records</short_desc>
          <delta_ts>2014-01-30 17:31:11 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972278</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-26 16:43:37 -0800</bug_when>
    <thetext>Auto record a profile for FunctionCall and EvaluateScript timeline records.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972279</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-26 16:43:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/15911575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972280</commentid>
    <comment_count>2</comment_count>
      <attachid>222291</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-26 16:47:26 -0800</bug_when>
    <thetext>Created attachment 222291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972281</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-26 16:49:57 -0800</bug_when>
    <thetext>Attachment 222291 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/JSCallbackData.cpp:80:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/JSEventListener.cpp:136:  Wrong number of spaces before statement. (expected: 16)  [whitespace/indent] [4]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973208</commentid>
    <comment_count>4</comment_count>
      <attachid>222291</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-28 16:19:12 -0800</bug_when>
    <thetext>Comment on attachment 222291
Patch

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

r=me, looks fine I&apos;d be worried about a lot of extra / duplicated data being sent to the frontend.

Also it would be really great to include a test for this. LayoutTests/inspector-protocol/timeline/profiler-data-in-script-execution.html or something like that.

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:338
&gt; +        RefPtr&lt;ScriptProfile&gt; profile = ScriptProfiler::stop(toJSDOMWindow(frame, debuggerWorld())-&gt;globalExec(), ASCIILiteral(&quot;Timeline EvaluateScript&quot;));
&gt; +        TimelineRecordFactory::appendProfile(entry.data.get(), profile.release());

Seems like we could be duplicating a bunch of data sent to the frontend?

It seems nested ScriptProfiler::start/stops are fine, but each time it stops it sends an entire profiler, much of which could be data already captured and sent in another profile?

I know you measured, what was the performance impact of this?

&gt; Source/WebCore/inspector/TimelineRecordFactory.cpp:257
&gt; +    data-&gt;setValue(&quot;profile&quot;, profile-&gt;buildInspectorObjectForHead());

Nit: ASCIILiteral(&quot;profile&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974132</commentid>
    <comment_count>5</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-30 17:31:11 -0800</bug_when>
    <thetext>https://trac.webkit.org/r163139</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222291</attachid>
            <date>2014-01-26 16:47:26 -0800</date>
            <delta_ts>2014-01-28 16:19:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127663-20140126164725.patch</filename>
            <type>text/plain</type>
            <size>25898</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Zjg1ZGE1MjY2NTQwNGQ4OTdjN2YwNTMwODMwNDg5MmUwMzU3YjE0Li4yMDZlMDI3NTVhYTkwZDY2
YjI4MWNjYTFlZmQ4YjZmYjQwMDBhNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNC0wMS0yNiAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW5jbHVkZSBwcm9maWxlIHdpdGggRnVuY3Rpb25DYWxsIGFuZCBFdmFs
dWF0ZVNjcmlwdCBUaW1lbGluZSByZWNvcmRzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3Bw
OgorICAgICAgICAoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdEJhc2U6OmNhbGxGdW5jdGlvbldp
dGhFdmFsRW5hYmxlZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckVudmlyb25tZW50
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxl
ci5oOgorCiAyMDE0LTAxLTI1ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgZGVhZCBjb2RlIGZyb20gdGhlIEpTQyBwcm9maWxlci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBkODQ2OTUxNGEzZjI1NDY2ZTBlOGUyNDllYzkzZGM3NmExZWZlYmM1Li4yZGM4MjU5
ODlhYjUyYWJhMDJhNTc1M2MzMTVmNTI4OWNhYzM3YmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDQgQEAKKzIwMTQtMDEtMjYgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgor
CisgICAgICAgIEluY2x1ZGUgcHJvZmlsZSB3aXRoIEZ1bmN0aW9uQ2FsbCBhbmQgRXZhbHVhdGVT
Y3JpcHQgVGltZWxpbmUgcmVjb3Jkcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2spOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2
ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0
aW9uQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbkNhbGxiYWNrOjpj
YWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlRnVuY3Rpb25JbkNvbnRleHQpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbik6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0SW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFdmFsdWF0ZVNjcmlwdCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDYWxsRnVuY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEV2YWx1YXRlU2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEV2YWx1
YXRlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmFwcGVuZFByb2Zp
bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRDYWxsSW5qZWN0ZWRTY3JpcHRG
dW5jdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
aDoKKwogMjAxNC0wMS0yNSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIGRlYWQgY29kZSBmcm9tIHRoZSBKU0MgcHJvZmlsZXIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5j
cHAKaW5kZXggYzJhNDk0NzI4ZjJhYzZkOGI0YzVkMDM1YThlNmQ0NmJkNTk1NmUzYy4uMGMxYmQ5
MThkOGIzMDg4MDBlMGJjMGQzNzMwYzk5MWMwY2Q1MjYzMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApAQCAtOTQs
NyArOTQsNyBAQCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBJbmplY3RlZFNjcmlwdEJhc2U6OmNh
bGxGdW5jdGlvbldpdGhFdmFsRW5hYmxlZChEZXByZWNhdAogICAgICAgICBzY3JpcHRTdGF0ZS0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5zZXRFdmFsRW5hYmxlZChmYWxzZSk7CiAKICAgICBpZiAo
bV9lbnZpcm9ubWVudCkKLSAgICAgICAgbV9lbnZpcm9ubWVudC0+ZGlkQ2FsbEluamVjdGVkU2Ny
aXB0RnVuY3Rpb24oKTsKKyAgICAgICAgbV9lbnZpcm9ubWVudC0+ZGlkQ2FsbEluamVjdGVkU2Ny
aXB0RnVuY3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVjdC5zY3JpcHRTdGF0ZSgpKTsKIAogICAg
IHJldHVybiByZXN1bHRWYWx1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRW52aXJvbm1lbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRW52aXJvbm1lbnQuaAppbmRleCAzMjdhOWY4OWEwM2RlN2M2
NGE5ZjQzYzQ1MzY0MDliYmMxMGM5NjNjLi4yNjA5MmQxYjUzOWY5NDcxYzk5YWE3MWZkZmUwMjk0
YjFmMjVjYTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckVudmlyb25tZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JFbnZpcm9ubWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEluc3BlY3RvckZ1bmN0aW9uQ2FsbEhhbmRsZXIgZnVuY3Rpb25DYWxsSGFuZGxlcigp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEluc3BlY3RvckV2YWx1YXRlSGFuZGxlciBldmFsdWF0
ZUhhbmRsZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxDYWxsSW5qZWN0ZWRT
Y3JpcHRGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwg
aW50IHNjcmlwdExpbmUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FsbEluamVjdGVkU2Ny
aXB0RnVuY3Rpb24oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbGxJbmplY3RlZFNjcmlw
dEZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSW5z
cGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xv
YmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBjNGZiZTQ3
OGFiYzYzNmY4Njc1YWE5ODc5MDA4ODMxYTI1ZmVlOGIxLi40YjQyYjI5MGVlNzM4MDNjYTU3ZDgy
YzlmNzc4NmFhN2QzZGExZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVy
LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW5zcGVjdG9yRnVuY3Rp
b25DYWxsSGFuZGxlciBmdW5jdGlvbkNhbGxIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBJbnNwZWN0b3JFdmFsdWF0ZUhhbmRsZXIgZXZhbHVhdGVIYW5kbGVyKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlv
bihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYsIGludCkgb3ZlcnJpZGUgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGRpZENhbGxJbmplY3RlZFNjcmlwdEZ1bmN0aW9uKCkgb3ZlcnJpZGUgeyB9
CisgICAgdmlydHVhbCB2b2lkIGRpZENhbGxJbmplY3RlZFNjcmlwdEZ1bmN0aW9uKEpTQzo6RXhl
Y1N0YXRlKikgb3ZlcnJpZGUgeyB9CiAKIHByaXZhdGU6CiAgICAgSlNDOjpKU0dsb2JhbE9iamVj
dCYgbV9nbG9iYWxPYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NhbGxiYWNrRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxi
YWNrRGF0YS5jcHAKaW5kZXggZjUzZDQ0MDRmMmIwYWUxZjcxNGM3MDAxNDQyYTVkMjZlMWFjZTg0
NS4uNDQ4YTc4MTVjNzc4YjFmMDIwYjJmM2Q0YTlmZDJjYjc1Y2M3N2NiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcApAQCAtNzcsNyArNzcsNyBA
QCBKU1ZhbHVlIEpTQ2FsbGJhY2tEYXRhOjppbnZva2VDYWxsYmFjayhKU1ZhbHVlIHRoaXNWYWx1
ZSwgTWFya2VkQXJndW1lbnRCdWZmZXImCiAgICAgICAgID8gSlNNYWluVGhyZWFkRXhlY1N0YXRl
OjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJn
cykKICAgICAgICAgOiBKU0M6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0
YSwgdGhpc1ZhbHVlLCBhcmdzKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q2FsbEZ1bmN0aW9uKGNvb2tpZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
YWxsRnVuY3Rpb24oY29va2llLCBjb250ZXh0KTsKIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRp
b24oKSkgewogICAgICAgICByZXBvcnRDdXJyZW50RXhjZXB0aW9uKGV4ZWMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggMDBkMTZjODQ5
ZWQxOTJmMTI2MzUyZTUzNDI5YmI1ODFkNTMwNmY4NS4uNzZiYTVmMGNlODBkMWFmY2M5NDRjMGJj
MGJlNWIxZTE1MDZhMDk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2
ZW50TGlzdGVuZXIuY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6
OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQKICAgICAgICAgICAgID8gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGhhbmRs
ZUV2ZW50RnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmdzKQogICAg
ICAgICAgICAgOiBKU0M6OmNhbGwoZXhlYywgaGFuZGxlRXZlbnRGdW5jdGlvbiwgY2FsbFR5cGUs
IGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3MpOwogCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKGNvb2tpZSk7CisgICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKGNvb2tpZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7CiAKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoc2F2ZWRFdmVudCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxs
YmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2su
Y3BwCmluZGV4IGFkYWJjN2ViN2NkZWM3YWMyZmNkOTc4NmRlOWZkMGJhMDk0MDgzMzMuLmMyNmYz
OGFkNzFmMDNmMzVmMjY3ZmE2YTcwNTJiNjI0OTg5ZmFiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcApAQCAtODksNyArODksNyBA
QCB2b2lkIEpTTXV0YXRpb25DYWxsYmFjazo6Y2FsbChjb25zdCBWZWN0b3I8UmVmUHRyPE11dGF0
aW9uUmVjb3JkPj4mIG11dGF0aW9ucywgTQogCiAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpj
YWxsKGV4ZWMsIGNhbGxiYWNrLCBjYWxsVHlwZSwgY2FsbERhdGEsIGpzT2JzZXJ2ZXIsIGFyZ3Mp
OwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24oY29va2ll
KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbihjb29raWUs
IGNvbnRleHQpOwogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXBv
cnRDdXJyZW50RXhjZXB0aW9uKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjaGVkdWxlZEFjdGlvbi5jcHAKaW5kZXggOTE3M2VkZDQ5YTc4ZjNlNmY3ZDM3Nzc2NTQyZDJh
NGIzNTE1Mjg4Mi4uOTczODZlNTFjMzY4N2Y2MTc2YjRjYTE4OWNiMWQxZDhiNjE1NDdjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCkBAIC0x
MDYsNyArMTA2LDcgQEAgdm9pZCBTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGVGdW5jdGlvbkluQ29u
dGV4dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1YKICAgICBlbHNlCiAgICAgICAg
IEpTQzo6Y2FsbChleGVjLCBtX2Z1bmN0aW9uLmdldCgpLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRo
aXNWYWx1ZSwgYXJncyk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbGxG
dW5jdGlvbihjb29raWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1
bmN0aW9uKGNvb2tpZSwgY29udGV4dCk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGMwMTM1YWU4ZDFiMGY5
MTQ2ZDM3ZDk2NWIxYzdlNzVmMzQzNWNmOWMuLjNjMTM3OGRkM2E4ZDU2ODkwZTc3MGIwMjNiOGU5
NDE3MTk3MTU3MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUg
U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUK
IAogICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmV2YWx1
YXRlKGV4ZWMsIGpzU291cmNlQ29kZSwgc2hlbGwsICZldmFsdWF0aW9uRXhjZXB0aW9uKTsKIAot
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llKTsK
KyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSwg
Jm1fZnJhbWUpOwogCiAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pIHsKICAgICAgICAgcmVw
b3J0RXhjZXB0aW9uKGV4ZWMsIGV2YWx1YXRpb25FeGNlcHRpb24sIHNvdXJjZUNvZGUuY2FjaGVk
U2NyaXB0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IGVjNjRjMmEyYmQ5ZTRhMzQ2OGM4ZWU5OThlZTU3MDhlZjQ1YWZmYzgu
LjkyMDc1MTk1N2RiOWU3ODMzZTIxNjA3Mzc5YTA1NjY4NWViYzYwMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTQ3NywxMSAr
NDc3LDEyIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbENhbGxJbmplY3RlZFNjcmlw
dEZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTCiAgICAgbV9pbmplY3RlZFNjcmlwdElu
c3RydW1lbnRhdGlvbkNvb2tpZXMuYXBwZW5kKGNvb2tpZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6ZGlkQ2FsbEluamVjdGVkU2NyaXB0RnVuY3Rpb24oKQordm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbihKU0M6OkV4ZWNTdGF0
ZSogc2NyaXB0U3RhdGUpCiB7CiAgICAgQVNTRVJUKCFtX2luamVjdGVkU2NyaXB0SW5zdHJ1bWVu
dGF0aW9uQ29va2llcy5pc0VtcHR5KCkpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0
ZShzY3JpcHRTdGF0ZSk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tp
ZSA9IG1faW5qZWN0ZWRTY3JpcHRJbnN0cnVtZW50YXRpb25Db29raWVzLnRha2VMYXN0KCk7Ci0g
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24oY29va2llKTsKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbihjb29raWUsIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA0MDVlNjkz
ODU1NzFkNTVmMGY5Y2YzMmVmYjFiNTgwZGNlM2Y1NjJmLi5jOGZjZmRmMGY2MGQ1YTE1YmUxYWFk
Y2E2Y2U5NDk4NmU2MzVhY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBJbnNwZWN0b3I6Okluc3BlY3RvckZ1bmN0aW9uQ2FsbEhhbmRsZXIgZnVuY3Rpb25DYWxsSGFu
ZGxlcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbnNwZWN0b3JF
dmFsdWF0ZUhhbmRsZXIgZXZhbHVhdGVIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHdpbGxDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbigpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbihKU0M6OkV4ZWNT
dGF0ZSopIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50YXRpb25Gb3JQYWdlKFBhZ2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggODAzY2E0
ZGI3OWU1ZWVlOWZhZjI1OWNkMDNkMTNiYjY1OWZhZjhmMS4uNDJmNjNkYzQ3NzRkZWFlNGNkNmZl
Nzk2Y2ExODhkNTIwODBkMTU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTMzNSwxMCArMzM1LDEwIEBAIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxDYWxsRnVuY3Rpb25JbXBsKEluCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGluZUFnZW50SWQpOwogfQogCi12b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uSW1wbChjb25zdCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmIGNvb2tpZSkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb25JbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSYgY29va2llLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewog
ICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gcmV0cmlldmVU
aW1lbGluZUFnZW50KGNvb2tpZSkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZENhbGxGdW5j
dGlvbigpOworICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRDYWxsRnVuY3Rpb24oZnJhbWVGb3JT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpKTsKIH0KIAogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoWEhSUmVh
ZHlTdGF0ZUNoYW5nZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBYTUxIdHRwUmVxdWVzdCogcmVxdWVzdCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKQEAgLTQxMywxMCArNDEzLDEwIEBAIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdEltcGwoCiAg
ICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50aW5nQWdl
bnRzLCB0aW1lbGluZUFnZW50SWQpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkRXZhbHVhdGVTY3JpcHRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSYgY29va2llKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRl
U2NyaXB0SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmIGNvb2tpZSwg
RnJhbWUqIGZyYW1lKQogewogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGlu
ZUFnZW50ID0gcmV0cmlldmVUaW1lbGluZUFnZW50KGNvb2tpZSkpCi0gICAgICAgIHRpbWVsaW5l
QWdlbnQtPmRpZEV2YWx1YXRlU2NyaXB0KCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZEV2
YWx1YXRlU2NyaXB0KGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnNjcmlwdHNFbmFibGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBib29sIGlzRW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBlMjQ1ODhkNTNhODk4NWFlZDNkNDY4MTA0
ZDI2YjViYmZkMzc1Y2JmLi40MzBkYzViMTk3ZDA1NTkyZTc2ZWVkODJmOTYwY2IwNjI3ZmM2NDQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRp
ZFJlbW92ZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQgdGltZXJJZCk7CiAKICAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxDYWxsRnVuY3Rpb24o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNj
cmlwdExpbmUpOwotICAgIHN0YXRpYyB2b2lkIGRpZENhbGxGdW5jdGlvbihjb25zdCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDYWxsRnVuY3Rp
b24oY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2ls
bERpc3BhdGNoWEhSUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBYTUxIdHRwUmVxdWVzdCopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoWEhSUmVhZHlT
dGF0ZUNoYW5nZUV2ZW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwog
ICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoRXZl
bnQoRG9jdW1lbnQqLCBjb25zdCBFdmVudCYsIGJvb2wgaGFzRXZlbnRMaXN0ZW5lcnMpOwpAQCAt
MTM5LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3coRnJhbWUqLCBjb25zdCBFdmVudCYg
ZXZlbnQsIERPTVdpbmRvdyogd2luZG93KTsKICAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2
ZW50T25XaW5kb3coY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAg
c3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRXZhbHVhdGVTY3JpcHQo
RnJhbWUqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIpOwotICAgIHN0YXRpYyB2
b2lkIGRpZEV2YWx1YXRlU2NyaXB0KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSYpOworICAgIHN0YXRpYyB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0KGNvbnN0IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvb2tpZSYsIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgc2NyaXB0c0Vu
YWJsZWQoUGFnZSosIGJvb2wgaXNFbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVJ
c29sYXRlZENvbnRleHQoRnJhbWUqLCBKU0M6OkV4ZWNTdGF0ZSosIFNlY3VyaXR5T3JpZ2luKik7
CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRmlyZVRpbWVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQgdGltZXJJZCk7CkBAIC0zMTcsNyArMzE3LDcg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lckltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIGludCB0aW1lcklkLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxDYWxsRnVuY3Rpb25J
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBz
Y3JpcHRMaW5lLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0gICAgc3RhdGljIHZvaWQgZGlk
Q2FsbEZ1bmN0aW9uSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsK
KyAgICBzdGF0aWMgdm9pZCBkaWRDYWxsRnVuY3Rpb25JbXBsKGNvbnN0IEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICBzdGF0aWMg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaFhIUlJlYWR5U3RhdGVD
aGFuZ2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0KiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoWEhSUmVh
ZHlTdGF0ZUNoYW5nZUV2ZW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNw
YXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgRXZlbnQmLCBib29sIGhh
c0V2ZW50TGlzdGVuZXJzLCBEb2N1bWVudCopOwpAQCAtMzI3LDcgKzMyNyw3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hF
dmVudE9uV2luZG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgRXZlbnQmLCBET01X
aW5kb3cqKTsKICAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKGNv
bnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbEV2YWx1YXRlU2NyaXB0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBGcmFtZSopOwot
ICAgIHN0YXRpYyB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUmKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdElt
cGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiwgRnJhbWUqKTsKICAgICBz
dGF0aWMgdm9pZCBzY3JpcHRzRW5hYmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGJvb2wg
aXNFbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVJc29sYXRlZENvbnRleHRJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSosIEpTQzo6RXhlY1N0YXRlKiwgU2VjdXJpdHlP
cmlnaW4qKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxG
aXJlVGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBpbnQgdGltZXJJZCwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopOwpAQCAtODMxLDE0ICs4MzEsMTUgQEAgaW5saW5lIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDYWxsRnVu
Y3Rpb24KIH0KIAogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENh
bGxGdW5jdGlvbihjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmIGNvb2tpZSkK
K2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKGNv
bnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYgY29va2llLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9S
RVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKGNvb2tpZS5pc1ZhbGlkKCkp
Ci0gICAgICAgIGRpZENhbGxGdW5jdGlvbkltcGwoY29va2llKTsKKyAgICAgICAgZGlkQ2FsbEZ1
bmN0aW9uSW1wbChjb29raWUsIGNvbnRleHQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY29v
a2llKTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAjZW5kaWYKIH0KIApAQCAtOTU0LDE0
ICs5NTUsMTUgQEAgaW5saW5lIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmkKICAgICByZXR1cm4gSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llJiBjb29raWUpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZEV2YWx1YXRlU2NyaXB0KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYg
Y29va2llLCBGcmFtZSogZnJhbWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNU
X1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoY29va2llLmlzVmFsaWQo
KSkKLSAgICAgICAgZGlkRXZhbHVhdGVTY3JpcHRJbXBsKGNvb2tpZSk7CisgICAgICAgIGRpZEV2
YWx1YXRlU2NyaXB0SW1wbChjb29raWUsIGZyYW1lKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KGNvb2tpZSk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5k
ZXggZjhhNmMzOGEzMGZiZDhhNGNiZjEyYTZiMzQ3ZGRiZjI3ODZkODRiMi4uZTUwMjY0NDQzMWM2
NzMzMGVhOGZmZmMxYTcyMjkyZjE1NDA1NzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtNTEsNiArNTEsNyBAQAog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAiU2NyaXB0UHJvZmlsZXIuaCIK
ICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KIApAQCAtMTM3LDEwICsxMzgsMjggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRDYW5jZWxGcmFtZSgpCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxD
YWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgRnJh
bWUqIGZyYW1lKQogewogICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShzY3JpcHROYW1lLCBzY3JpcHRMaW5lKSwgVGltZWxp
bmVSZWNvcmRUeXBlOjpGdW5jdGlvbkNhbGwsIHRydWUsIGZyYW1lKTsKKworICAgIGlmIChmcmFt
ZSAmJiAhbV9yZWNvcmRpbmdQcm9maWxlKSB7CisgICAgICAgIG1fcmVjb3JkaW5nUHJvZmlsZSA9
IHRydWU7CisgICAgICAgIFNjcmlwdFByb2ZpbGVyOjpzdGFydCh0b0pTRE9NV2luZG93KGZyYW1l
LCBkZWJ1Z2dlcldvcmxkKCkpLT5nbG9iYWxFeGVjKCksIEFTQ0lJTGl0ZXJhbCgiVGltZWxpbmUg
RnVuY3Rpb25DYWxsIikpOworICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRDYWxsRnVuY3Rpb24oKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDYWxs
RnVuY3Rpb24oRnJhbWUqIGZyYW1lKQogeworICAgIGlmIChmcmFtZSAmJiBtX3JlY29yZGluZ1By
b2ZpbGUpIHsKKyAgICAgICAgaWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkmIGVudHJ5ID0gbV9yZWNv
cmRTdGFjay5sYXN0KCk7CisgICAgICAgIEFTU0VSVChlbnRyeS50eXBlID09IFRpbWVsaW5lUmVj
b3JkVHlwZTo6RnVuY3Rpb25DYWxsKTsKKworICAgICAgICBSZWZQdHI8U2NyaXB0UHJvZmlsZT4g
cHJvZmlsZSA9IFNjcmlwdFByb2ZpbGVyOjpzdG9wKHRvSlNET01XaW5kb3coZnJhbWUsIGRlYnVn
Z2VyV29ybGQoKSktPmdsb2JhbEV4ZWMoKSwgQVNDSUlMaXRlcmFsKCJUaW1lbGluZSBGdW5jdGlv
bkNhbGwiKSk7CisgICAgICAgIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6YXBwZW5kUHJvZmlsZShl
bnRyeS5kYXRhLmdldCgpLCBwcm9maWxlLnJlbGVhc2UoKSk7CisKKyAgICAgICAgbV9yZWNvcmRp
bmdQcm9maWxlID0gZmFsc2U7CisgICAgfQorCiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3Jk
KFRpbWVsaW5lUmVjb3JkVHlwZTo6RnVuY3Rpb25DYWxsKTsKIH0KIApAQCAtMjk5LDEwICszMTgs
MjggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWREaXNwYXRjaFhIUkxvYWRFdmVu
dCgpCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxFdmFsdWF0ZVNjcmlwdChjb25z
dCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBwdXNo
Q3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0
RGF0YSh1cmwsIGxpbmVOdW1iZXIpLCBUaW1lbGluZVJlY29yZFR5cGU6OkV2YWx1YXRlU2NyaXB0
LCB0cnVlLCBmcmFtZSk7CisKKyAgICBpZiAoZnJhbWUgJiYgIW1fcmVjb3JkaW5nUHJvZmlsZSkg
eworICAgICAgICBtX3JlY29yZGluZ1Byb2ZpbGUgPSB0cnVlOworICAgICAgICBTY3JpcHRQcm9m
aWxlcjo6c3RhcnQodG9KU0RPTVdpbmRvdyhmcmFtZSwgZGVidWdnZXJXb3JsZCgpKS0+Z2xvYmFs
RXhlYygpLCBBU0NJSUxpdGVyYWwoIlRpbWVsaW5lIEV2YWx1YXRlU2NyaXB0IikpOworICAgIH0K
IH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRFdmFsdWF0ZVNjcmlwdCgpCit2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEV2YWx1YXRlU2NyaXB0KEZyYW1lKiBmcmFt
ZSkKIHsKKyAgICBpZiAoZnJhbWUgJiYgbV9yZWNvcmRpbmdQcm9maWxlKSB7CisgICAgICAgIGlm
IChtX3JlY29yZFN0YWNrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBUaW1lbGluZVJlY29yZEVudHJ5JiBlbnRyeSA9IG1fcmVjb3JkU3RhY2subGFzdCgpOworICAg
ICAgICBBU1NFUlQoZW50cnkudHlwZSA9PSBUaW1lbGluZVJlY29yZFR5cGU6OkV2YWx1YXRlU2Ny
aXB0KTsKKworICAgICAgICBSZWZQdHI8U2NyaXB0UHJvZmlsZT4gcHJvZmlsZSA9IFNjcmlwdFBy
b2ZpbGVyOjpzdG9wKHRvSlNET01XaW5kb3coZnJhbWUsIGRlYnVnZ2VyV29ybGQoKSktPmdsb2Jh
bEV4ZWMoKSwgQVNDSUlMaXRlcmFsKCJUaW1lbGluZSBFdmFsdWF0ZVNjcmlwdCIpKTsKKyAgICAg
ICAgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRQcm9maWxlKGVudHJ5LmRhdGEuZ2V0KCks
IHByb2ZpbGUucmVsZWFzZSgpKTsKKworICAgICAgICBtX3JlY29yZGluZ1Byb2ZpbGUgPSBmYWxz
ZTsKKyAgICB9CisKICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRU
eXBlOjpFdmFsdWF0ZVNjcmlwdCk7CiB9CiAKQEAgLTU5Miw2ICs2MjksNyBAQCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbgogICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogICAgICwgbV9lbmFibGVk
KGZhbHNlKQogICAgICwgbV9pbmNsdWRlRE9NQ291bnRlcnMoZmFsc2UpCisgICAgLCBtX3JlY29y
ZGluZ1Byb2ZpbGUoZmFsc2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IDRjNWVkMjU1OGVlNTkwZTQ0M2Q2ZmNi
NjU0MDhiMTBiYjg0MGUyN2IuLmVmZjYyNWQ0NjVlNWZlOWJmNGI0YWJjODI3ODgwZjM2YTA3MjA4
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuaApAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE1ldGhvZHMgY2Fs
bGVkIGZyb20gV2ViQ29yZS4KICAgICB2b2lkIHdpbGxDYWxsRnVuY3Rpb24oY29uc3QgU3RyaW5n
JiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgRnJhbWUqKTsKLSAgICB2b2lkIGRpZENhbGxG
dW5jdGlvbigpOworICAgIHZvaWQgZGlkQ2FsbEZ1bmN0aW9uKEZyYW1lKik7CiAKICAgICB2b2lk
IHdpbGxEaXNwYXRjaEV2ZW50KGNvbnN0IEV2ZW50JiwgRnJhbWUqKTsKICAgICB2b2lkIGRpZERp
c3BhdGNoRXZlbnQoKTsKQEAgLTE4NCw3ICsxODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRE
aXNwYXRjaFhIUkxvYWRFdmVudCgpOwogCiAgICAgdm9pZCB3aWxsRXZhbHVhdGVTY3JpcHQoY29u
c3QgU3RyaW5nJiwgaW50LCBGcmFtZSopOwotICAgIHZvaWQgZGlkRXZhbHVhdGVTY3JpcHQoKTsK
KyAgICB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0KEZyYW1lKik7CiAKICAgICB2b2lkIGRpZFRpbWVT
dGFtcChGcmFtZSosIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgZGlkTWFya0RPTUNvbnRlbnRF
dmVudChGcmFtZSopOwpAQCAtMjY4LDYgKzI2OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1f
ZW5hYmxlZDsKICAgICBib29sIG1faW5jbHVkZURPTUNvdW50ZXJzOworICAgIGJvb2wgbV9yZWNv
cmRpbmdQcm9maWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAppbmRleCA5ZjJm
N2ZjY2MyMTVjYzQ2MDEyMjcwNTAwN2M3YjQwYjAyZWQ0Y2YyLi4zY2NmOGZiMjFmM2FkN2ZjYWI5
YjAyNTVkOTIyM2IzZGNlZGQxYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
IlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNs
dWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCisjaW5jbHVkZSAiU2NyaXB0UHJvZmlsZS5o
IgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KIApAQCAtMjUxLDYgKzI1MiwxMSBAQCB2b2lkIFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6YXBwZW5kTGF5b3V0Um9vdChJbnNwZWN0b3JPYmplY3QqIGRhdGEsIGNvbnN0IEZs
b2F0UQogICAgIGRhdGEtPnNldEFycmF5KCJyb290IiwgY3JlYXRlUXVhZChxdWFkKSk7CiB9CiAK
K3ZvaWQgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRQcm9maWxlKEluc3BlY3Rvck9iamVj
dCogZGF0YSwgUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxlPiBwcm9maWxlKQoreworICAgIGRhdGEt
PnNldFZhbHVlKCJwcm9maWxlIiwgcHJvZmlsZS0+YnVpbGRJbnNwZWN0b3JPYmplY3RGb3JIZWFk
KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5T
UEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5oCmluZGV4IGU0YmY5MGE5NzM1ZGQ2YmMyMTIyN2UxODc2ZjBiMjYwNTg3MDI0ZjAuLmFl
Mzc2NDZiYTkzYzk5ODA4ZjJiNGM0ZjMxNDVmMDQ0MTIwODg5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKQEAgLTQyLDYgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZsb2F0UXVhZDsKICAgICBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKyAgICBjbGFzcyBT
Y3JpcHRQcm9maWxlOwogCiAgICAgY2xhc3MgVGltZWxpbmVSZWNvcmRGYWN0b3J5IHsKICAgICBw
dWJsaWM6CkBAIC05Miw2ICs5Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBz
dGF0aWMgdm9pZCBhcHBlbmRMYXlvdXRSb290KEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0KiBk
YXRhLCBjb25zdCBGbG9hdFF1YWQmKTsKIAorICAgICAgICBzdGF0aWMgdm9pZCBhcHBlbmRQcm9m
aWxlKEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0KiwgUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxl
Pik7CisKICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCiAgICAgICAgIHN0YXRpYyBpbmxpbmUgUGFz
c1JlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gY3JlYXRlV2ViU29ja2V0Q3JlYXRl
RGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHByb3RvY29sKQogICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZmQwNzI3YTk1MDQ4YWI3
MjI1ZjNlMmIwOGY2OTc1OGQzZGUwZjViNS4uYzVjZTk5YWRlODU1NTUwOTk1MzYwNDlkMjA3NDE3
ZWNmNDk2ZTA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTY5LDExICsxNjksMTIgQEAgdm9pZCBXb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsQ2FsbEluamVjdGVkU2NyaXB0RnVuY3Rpb24oSlND
OjpFeGVjU3RhdGUqIHMKICAgICBtX2luamVjdGVkU2NyaXB0SW5zdHJ1bWVudGF0aW9uQ29va2ll
cy5hcHBlbmQoY29va2llKTsKIH0KIAotdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpk
aWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbigpCit2b2lkIFdvcmtlckluc3BlY3RvckNvbnRy
b2xsZXI6OmRpZENhbGxJbmplY3RlZFNjcmlwdEZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKiBzY3Jp
cHRTdGF0ZSkKIHsKICAgICBBU1NFUlQoIW1faW5qZWN0ZWRTY3JpcHRJbnN0cnVtZW50YXRpb25D
b29raWVzLmlzRW1wdHkoKSk7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKHNjcmlw
dFN0YXRlKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gbV9p
bmplY3RlZFNjcmlwdEluc3RydW1lbnRhdGlvbkNvb2tpZXMudGFrZUxhc3QoKTsKLSAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbihjb29raWUpOworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKGNvb2tpZSwgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDdi
MjQzZjQwODlmNjJhNDkzMDI3MDAzZTJhY2FjMzc2MTFmNjljZGEuLjBiMTZiZmQyZjk0MDYzZTgx
Y2U1ODAwNzc2MTk3ZDA1YzlhNTMzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBJbnNwZWN0b3I6Okluc3BlY3RvckZ1bmN0aW9uQ2FsbEhhbmRsZXIg
ZnVuY3Rpb25DYWxsSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgSW5zcGVj
dG9yOjpJbnNwZWN0b3JFdmFsdWF0ZUhhbmRsZXIgZXZhbHVhdGVIYW5kbGVyKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlv
bigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5j
dGlvbihKU0M6OkV4ZWNTdGF0ZSopIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50YXRpb25Gb3JXb3JrZXJHbG9iYWxTY29wZShX
b3JrZXJHbG9iYWxTY29wZSopOwo=
</data>
<flag name="review"
          id="246269"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="246270"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>