<?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>200903</bug_id>
          
          <creation_ts>2019-08-19 17:06:33 -0700</creation_ts>
          <short_desc>Web Inspector: Debugger: async event listener stack traces should be available in Workers</short_desc>
          <delta_ts>2019-08-29 23:57:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=200651</see_also>
          <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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mkwst</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1562852</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-19 17:06:33 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566551</commentid>
    <comment_count>1</comment_count>
      <attachid>377677</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-29 21:41:46 -0700</bug_when>
    <thetext>Created attachment 377677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566564</commentid>
    <comment_count>2</comment_count>
      <attachid>377677</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-29 23:02:22 -0700</bug_when>
    <thetext>Comment on attachment 377677
Patch

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

r=me, nice!

&gt; Source/WebCore/inspector/agents/WebDebuggerAgent.cpp:114
&gt; +
&gt; +

Nit: extra newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566566</commentid>
    <comment_count>3</comment_count>
      <attachid>377680</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-29 23:12:55 -0700</bug_when>
    <thetext>Created attachment 377680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566575</commentid>
    <comment_count>4</comment_count>
      <attachid>377680</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-29 23:56:12 -0700</bug_when>
    <thetext>Comment on attachment 377680
Patch

Clearing flags on attachment: 377680

Committed r249315: &lt;https://trac.webkit.org/changeset/249315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566576</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-29 23:56:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566577</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-29 23:57:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/54872106&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377677</attachid>
            <date>2019-08-29 21:41:46 -0700</date>
            <delta_ts>2019-08-29 23:12:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200903-20190829214145.patch</filename>
            <type>text/plain</type>
            <size>49975</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGExMTA3MzA2NmMxNzk4MzczNjRjMTM2NjA5ZmEy
M2U4NWFkNDE1YzUuLjM0NDdhMjRiZWQ2ZjA0OGMzZTRlZDJiNWQ2ZmUxMTA0NWY5NWQwYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA4LTI5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
ZWJ1Z2dlcjogYXN5bmMgZXZlbnQgbGlzdGVuZXIgc3RhY2sgdHJhY2VzIHNob3VsZCBiZSBhdmFp
bGFibGUgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAwOTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAg
ICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZW5hYmxlZCk6IEFkZGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6ZGlzYWJsZSk6CisgICAgICAgIEFsbG93IHN1YmNsYXNzZXMgdG8gZXh0ZW5kIHdoYXQg
aXQgbWVhbnMgZm9yIHRoZSBgSW5zcGVjdG9yRGVidWdnZXJBZ2VudGAgdG8gYmUgYGVuYWJsZWRg
LgorCiAyMDE5LTA4LTI5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBET01EZWJ1Z2dlcjogc3VwcG9ydCBldmVudCBicmVha3BvaW50
cyBpbiBXb3JrZXIgY29udGV4dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjExYTY2YWIzMmNjOGZhOWRmYjdj
MzMwMmRkMTcyODJhNmI0YjA3Li5iNTlmYTdmZWYwYjAxZmM0NTgwMzI3ZjJkZDMzODhiMjE1MmQ3
NTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMDgtMjkgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERlYnVnZ2Vy
OiBhc3luYyBldmVudCBsaXN0ZW5lciBzdGFjayB0cmFjZXMgc2hvdWxkIGJlIGF2YWlsYWJsZSBp
biBXb3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDA5MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0czogaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdnZXItZXZlbnQtaW50ZXJ2YWwtYnJl
YWtwb2ludHMuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdn
ZXItZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVj
dG9yL3dvcmtlci9kb20tZGVidWdnZXItZXZlbnQtdGltZW91dC1icmVha3BvaW50cy5odG1sCisg
ICAgICAgICAgICAgICBpbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci11cmwtYnJlYWtwb2lu
dHMuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmVuYWJsZWQgY29uc3QpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkRl
YnVnZ2VyQWdlbnQ6OmRpZEFkZEV2ZW50TGlzdGVuZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkRlYnVnZ2VyQWdlbnQ6OndpbGxSZW1vdmVFdmVudExpc3RlbmVyKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50Ojp3aWxsSGFuZGxlRXZlbnQpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmRpZFBvc3RNZXNzYWdlKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50OjpkaWRGYWlsUG9zdE1l
c3NhZ2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OndpbGxE
aXNwYXRjaFBvc3RNZXNzYWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dl
ckFnZW50OjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJEZWJ1Z2dlckFnZW50OjpkaWRDbGVhckFzeW5jU3RhY2tUcmFjZURhdGEpOiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6OmVuYWJsZWQgY29uc3QpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjplbmFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZURlYnVnZ2VyQWdlbnQ6OmRpZENsZWFyQXN5bmNTdGFja1RyYWNlRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6ZGlkQWRkRXZlbnRMaXN0ZW5l
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6d2lsbFJl
bW92ZUV2ZW50TGlzdGVuZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVn
Z2VyQWdlbnQ6OndpbGxIYW5kbGVFdmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
YWdlRGVidWdnZXJBZ2VudDo6ZGlkUG9zdE1lc3NhZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6OmRpZEZhaWxQb3N0TWVzc2FnZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6d2lsbERpc3BhdGNoUG9zdE1lc3Nh
Z2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6OmRpZERp
c3BhdGNoUG9zdE1lc3NhZ2UpOiBEZWxldGVkLgorICAgICAgICBNb3ZlIHZhcmlvdXMgYEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbmAgY2FsbHMgZnJvbSBgUGFnZURlYnVnZ2VyQWdlbnRgIHRvIGBX
ZWJEZWJ1Z2dlckFnZW50YAorICAgICAgICBzbyB0aGF0IGBXb3JrZXJEZWJ1Z2dlckFnZW50YCBh
bHNvIGluaGVyaXRzIHRoZW0uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6d2ViRGVidWdn
ZXJBZ2VudCBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0Fn
ZW50czo6c2V0V2ViRGVidWdnZXJBZ2VudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
dHJ1bWVudGluZ0FnZW50czo6aW5zcGVjdG9yRGVidWdnZXJBZ2VudCBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpyZXNldCk6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Om1haW5GcmFtZVN0YXJ0
ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0
YXJ0UHJvZ3JhbW1hdGljQ2FwdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZEltcGwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc0RlYnVnZ2VyUGF1c2Vk
SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZElu
c3RhbGxUaW1lckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRSZW1vdmVUaW1lckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRBZGRFdmVudExpc3RlbmVySW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZW1vdmVFdmVudExpc3RlbmVySW1wbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBvc3RNZXNz
YWdlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZEZhaWxQb3N0TWVzc2FnZUltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZUltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlSW1wbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxIYW5kbGVF
dmVudEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRIYW5kbGVFdmVudEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRmlyZVRpbWVySW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZEZpcmVUaW1lckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRFeGVjdXRpb25CbG9ja2VkQnlDU1BJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9h
ZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFt
ZVN0YXJ0ZWRMb2FkaW5nSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmdJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZUltcGwpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaXJlQW5pbWF0aW9uRnJhbWVJ
bXBsKToKKyAgICAgICAgUmVwbGFjZSBgaW5zcGVjdG9yRGVidWdnZXJBZ2VudGAgd2l0aCBgd2Vi
RGVidWdnZXJBZ2VudGAgc28gdGhlIHJpZ2h0IGluc3RydW1lbnRhdGlvbiBob29rcworICAgICAg
ICBhcmUgYXZhaWxhYmxlLgorCiAyMDE5LTA4LTI5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBET01EZWJ1Z2dlcjogc3VwcG9ydCBl
dmVudCBicmVha3BvaW50cyBpbiBXb3JrZXIgY29udGV4dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5jcHAKaW5kZXggMzI5ZTc4NWI3MWU0ZmFiYjM2ZjA3OTI2ODRlZmFmNTI3NGMyOGU2
Yi4uOGY1ZTk2YmRkZjAxYzM0MjZlMzBhOGFkOGRhYzI4MDIwMjAwNGY1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTc5LDE0ICs3OSwxMiBAQCB2b2lkIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRl
ciosIEJhY2tlbgogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewotICAgIGRpc2FibGUo
cmVhc29uID09IERpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZFRhcmdldERlc3Ryb3llZCk7Cisg
ICAgaWYgKGVuYWJsZWQoKSkKKyAgICAgICAgZGlzYWJsZShyZWFzb24gPT0gRGlzY29ubmVjdFJl
YXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjplbmFibGUoKQogewotICAgIGlmIChtX2VuYWJsZWQpCi0gICAgICAgIHJldHVy
bjsKLQogICAgIG1fZW5hYmxlZCA9IHRydWU7CiAKICAgICBtX3NjcmlwdERlYnVnU2VydmVyLmFk
ZExpc3RlbmVyKHRoaXMpOwpAQCAtOTcsOSArOTUsNiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OmVuYWJsZSgpCiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShi
b29sIGlzQmVpbmdEZXN0cm95ZWQpCiB7Ci0gICAgaWYgKCFtX2VuYWJsZWQpCi0gICAgICAgIHJl
dHVybjsKLQogICAgIGZvciAoYXV0byogbGlzdGVuZXIgOiBjb3B5VG9WZWN0b3IobV9saXN0ZW5l
cnMpKQogICAgICAgICBsaXN0ZW5lci0+ZGVidWdnZXJXYXNEaXNhYmxlZCgpOwogCkBAIC0xMjAs
OCArMTE1LDEzIEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlz
QmVpbmdEZXN0cm95ZWQpCiAgICAgbV9lbmFibGVkID0gZmFsc2U7CiB9CiAKLXZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKIHsKKyAgICBpZiAo
ZW5hYmxlZCgpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRlYnVnZ2VyIGRvbWFpbiBhbHJl
YWR5IGVuYWJsZWQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbmFibGUoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmluZGV4IGFjZDRkY2Q0NWI1N2FmZjg2
MGViNjk4ODNiY2JhOGMwYjlmM2UwZjMuLjE4YTdkMjQ2MWJjZWMxMmVhYWJjMzU5MjdjMTYxMzNm
YzcxMDI0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKQEAgLTYwLDYgKzYwLDcg
QEAgcHVibGljOgogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQogICAgIHZvaWQgZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBm
aW5hbDsKICAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RS
ZWFzb24pIGZpbmFsOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9lbmFibGVkOyB9CiAKICAgICAvLyBEZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgog
ICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CkBAIC0xMzIsNiArMTMzLDggQEAg
cHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudChBZ2VudENv
bnRleHQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKCk7CisgICAgdmlydHVhbCB2b2lkIGRp
c2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKTsKIAogICAgIEluamVjdGVkU2NyaXB0TWFuYWdl
ciYgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXI7IH0KICAgICB2aXJ0dWFsIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9y
RXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSA9IDA7CkBA
IC0xNDEsOSArMTQ0LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29s
ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgpID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBlbmFibGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShib29sIGlzQmVp
bmdEZXN0cm95ZWQpOwotCiAgICAgdmlydHVhbCBTdHJpbmcgc291cmNlTWFwVVJMRm9yU2NyaXB0
KGNvbnN0IFNjcmlwdCYpOwogCiAgICAgdm9pZCBkaWRDbGVhckdsb2JhbE9iamVjdCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcAppbmRleCAwNjMxZGMyMzg1ZjQ2NzIwZGVjYjViYzNjYzQ5ZGY1ZjlmZGE3ZjdlLi41ZDM4
YTU1ZTUyMzkxNjg1MDM1NWU2NDVhNDRkMjBjZGM4NTJjNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNjMs
NiArNjMsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29uc29sZUFnZW50LmgiCisjaW5j
bHVkZSAiV2ViRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRGcmFtZS5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CkBAIC0xMTAsOSArMTExLDkgQEAgc3RhdGljIEZyYW1l
KiBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkKIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsZWFyV2luZG93
T2JqZWN0SW5Xb3JsZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50
cywgRnJhbWUmIGZyYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQogewotICAgIGlmIChQYWdl
RGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURl
YnVnZ2VyQWdlbnQoKSkgeworICAgIGlmIChhdXRvKiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkgewogICAgICAgICBpZiAoJndvcmxk
ID09ICZtYWluVGhyZWFkTm9ybWFsV29ybGQoKSAmJiBmcmFtZS5pc01haW5GcmFtZSgpKQotICAg
ICAgICAgICAgZGVidWdnZXJBZ2VudC0+ZGlkQ2xlYXJNYWluRnJhbWVXaW5kb3dPYmplY3QoKTsK
KyAgICAgICAgICAgIHBhZ2VEZWJ1Z2dlckFnZW50LT5kaWRDbGVhck1haW5GcmFtZVdpbmRvd09i
amVjdCgpOwogICAgIH0KIAogICAgIGlmIChQYWdlUnVudGltZUFnZW50KiBwYWdlUnVudGltZUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlUnVudGltZUFnZW50KCkpIHsKQEAgLTEyMyw4
ICsxMjQsOCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dP
YmplY3RJbldvcmxkSW1wbChJbnN0cnVtZW50aW5nQWdlbgogCiBib29sIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6aXNEZWJ1Z2dlclBhdXNlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cykKIHsKLSAgICBpZiAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVi
dWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRGVidWdnZXJBZ2VudCgp
KQotICAgICAgICByZXR1cm4gZGVidWdnZXJBZ2VudC0+aXNQYXVzZWQoKTsKKyAgICBpZiAoYXV0
byogd2ViRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdnZXJBZ2Vu
dCgpKQorICAgICAgICByZXR1cm4gd2ViRGVidWdnZXJBZ2VudC0+aXNQYXVzZWQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTMxMyw4ICszMTQsOCBAQCB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbEZldGNoSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50
aW5nQQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwg
U2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpCiB7Ci0gICAgaWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkKLSAgICAg
ICAgZGVidWdnZXJBZ2VudC0+ZGlkU2NoZWR1bGVBc3luY0NhbGwoY29udGV4dC5leGVjU3RhdGUo
KSwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6RE9NVGltZXIsIHRpbWVy
SWQsIHNpbmdsZVNob3QpOworICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCisgICAgICAgIHdlYkRlYnVnZ2VyQWdl
bnQtPmRpZFNjaGVkdWxlQXN5bmNDYWxsKGNvbnRleHQuZXhlY1N0YXRlKCksIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OkFzeW5jQ2FsbFR5cGU6OkRPTVRpbWVyLCB0aW1lcklkLCBzaW5nbGVTaG90
KTsKIAogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKICAgICAg
ICAgdGltZWxpbmVBZ2VudC0+ZGlkSW5zdGFsbFRpbWVyKHRpbWVySWQsIHRpbWVvdXQsIHNpbmds
ZVNob3QsIGZyYW1lRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KSk7CkBAIC0zMjIs
MjQgKzMyMywyNCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRp
bWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZQogCiB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlVGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGlu
c3RydW1lbnRpbmdBZ2VudHMsIGludCB0aW1lcklkLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KQogewotICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAg
IGRlYnVnZ2VyQWdlbnQtPmRpZENhbmNlbEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpBc3luY0NhbGxUeXBlOjpET01UaW1lciwgdGltZXJJZCk7CisgICAgaWYgKGF1dG8qIHdlYkRl
YnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAg
ICAgICAgd2ViRGVidWdnZXJBZ2VudC0+ZGlkQ2FuY2VsQXN5bmNDYWxsKEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OkFzeW5jQ2FsbFR5cGU6OkRPTVRpbWVyLCB0aW1lcklkKTsKICAgICBpZiAoSW5z
cGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
dHJhY2tpbmdJbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQt
PmRpZFJlbW92ZVRpbWVyKHRpbWVySWQsIGZyYW1lRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dChj
b250ZXh0KSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRBZGRFdmVu
dExpc3RlbmVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBF
dmVudFRhcmdldCYgdGFyZ2V0LCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlz
dGVuZXImIGxpc3RlbmVyLCBib29sIGNhcHR1cmUpCiB7Ci0gICAgaWYgKFBhZ2VEZWJ1Z2dlckFn
ZW50KiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2Vy
QWdlbnQoKSkKLSAgICAgICAgcGFnZURlYnVnZ2VyQWdlbnQtPmRpZEFkZEV2ZW50TGlzdGVuZXIo
dGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyLCBjYXB0dXJlKTsKKyAgICBpZiAoYXV0byogd2Vi
RGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdnZXJBZ2VudCgpKQor
ICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5kaWRBZGRFdmVudExpc3RlbmVyKHRhcmdldCwgZXZl
bnRUeXBlLCBsaXN0ZW5lciwgY2FwdHVyZSk7CiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBk
b21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAg
ICAgZG9tQWdlbnQtPmRpZEFkZEV2ZW50TGlzdGVuZXIodGFyZ2V0KTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZW1vdmVFdmVudExpc3RlbmVySW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBFdmVudFRhcmdldCYgdGFyZ2V0LCBj
b25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBib29s
IGNhcHR1cmUpCiB7Ci0gICAgaWYgKFBhZ2VEZWJ1Z2dlckFnZW50KiBwYWdlRGVidWdnZXJBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkKLSAgICAgICAgcGFn
ZURlYnVnZ2VyQWdlbnQtPndpbGxSZW1vdmVFdmVudExpc3RlbmVyKHRhcmdldCwgZXZlbnRUeXBl
LCBsaXN0ZW5lciwgY2FwdHVyZSk7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdn
ZXJBZ2VudC0+d2lsbFJlbW92ZUV2ZW50TGlzdGVuZXIodGFyZ2V0LCBldmVudFR5cGUsIGxpc3Rl
bmVyLCBjYXB0dXJlKTsKICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2VudC0+
d2lsbFJlbW92ZUV2ZW50TGlzdGVuZXIodGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyLCBjYXB0
dXJlKTsKIH0KQEAgLTM1MywyNiArMzU0LDI2IEBAIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjppc0V2ZW50TGlzdGVuZXJEaXNhYmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYKIAog
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBvc3RNZXNzYWdlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBUaW1lckJhc2UmIHRpbWVy
LCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgaWYgKFBhZ2VEZWJ1Z2dlckFnZW50KiBw
YWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQo
KSkKLSAgICAgICAgcGFnZURlYnVnZ2VyQWdlbnQtPmRpZFBvc3RNZXNzYWdlKHRpbWVyLCBzdGF0
ZSk7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+ZGlkUG9zdE1l
c3NhZ2UodGltZXIsIHN0YXRlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZEZhaWxQb3N0TWVzc2FnZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgY29uc3QgVGltZXJCYXNlJiB0aW1lcikKIHsKLSAgICBpZiAoUGFnZURlYnVnZ2Vy
QWdlbnQqIHBhZ2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlRGVidWdn
ZXJBZ2VudCgpKQotICAgICAgICBwYWdlRGVidWdnZXJBZ2VudC0+ZGlkRmFpbFBvc3RNZXNzYWdl
KHRpbWVyKTsKKyAgICBpZiAoYXV0byogd2ViRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMud2ViRGVidWdnZXJBZ2VudCgpKQorICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5kaWRG
YWlsUG9zdE1lc3NhZ2UodGltZXIpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIGNvbnN0IFRpbWVyQmFzZSYgdGltZXIpCiB7Ci0gICAgaWYgKFBhZ2VE
ZWJ1Z2dlckFnZW50KiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFn
ZURlYnVnZ2VyQWdlbnQoKSkKLSAgICAgICAgcGFnZURlYnVnZ2VyQWdlbnQtPndpbGxEaXNwYXRj
aFBvc3RNZXNzYWdlKHRpbWVyKTsKKyAgICBpZiAoYXV0byogd2ViRGVidWdnZXJBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdnZXJBZ2VudCgpKQorICAgICAgICB3ZWJEZWJ1Z2dl
ckFnZW50LT53aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZSh0aW1lcik7CiB9CiAKIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBUaW1lckJhc2UmIHRpbWVyKQog
ewotICAgIGlmIChQYWdlRGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAgIHBhZ2VEZWJ1Z2dlckFn
ZW50LT5kaWREaXNwYXRjaFBvc3RNZXNzYWdlKHRpbWVyKTsKKyAgICBpZiAoYXV0byogd2ViRGVi
dWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdnZXJBZ2VudCgpKQorICAg
ICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5kaWREaXNwYXRjaFBvc3RNZXNzYWdlKHRpbWVyKTsKIH0K
IAogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbENhbGxGdW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgaW50IHNj
cmlwdENvbHVtbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKQEAgLTQwNSw4ICs0
MDYsOCBAQCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudEltcGwoSQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbEhhbmRsZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBFdmVudCYgZXZlbnQsIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVy
JiBsaXN0ZW5lcikKIHsKLSAgICBpZiAoUGFnZURlYnVnZ2VyQWdlbnQqIHBhZ2VEZWJ1Z2dlckFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlRGVidWdnZXJBZ2VudCgpKQotICAgICAgICBw
YWdlRGVidWdnZXJBZ2VudC0+d2lsbEhhbmRsZUV2ZW50KGxpc3RlbmVyKTsKKyAgICBpZiAoYXV0
byogd2ViRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdnZXJBZ2Vu
dCgpKQorICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT53aWxsSGFuZGxlRXZlbnQobGlzdGVuZXIp
OwogCiAgICAgaWYgKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIGRvbURlYnVnZ2VyQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoKSkKICAgICAg
ICAgZG9tRGVidWdnZXJBZ2VudC0+d2lsbEhhbmRsZUV2ZW50KGV2ZW50LCBsaXN0ZW5lcik7CkBA
IC00MTQsOCArNDE1LDggQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxIYW5k
bGVFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWUKIAogdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZEhhbmRsZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50aW5nQWdlbnRzKQogewotICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
KiBkZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50KCkpCi0gICAgICAgIGRlYnVnZ2VyQWdlbnQtPmRpZERpc3BhdGNoQXN5bmNDYWxsKCk7Cisg
ICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkRl
YnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+ZGlkRGlzcGF0Y2hBc3lu
Y0NhbGwoKTsKIAogICAgIGlmIChJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBkb21EZWJ1Z2dl
ckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KCkp
CiAgICAgICAgIGRvbURlYnVnZ2VyQWdlbnQtPmRpZEhhbmRsZUV2ZW50KCk7CkBAIC00NjksOCAr
NDcwLDggQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0
SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXQKIAogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVUaW1lckltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQsIGJvb2wg
b25lU2hvdCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICBpZiAoSW5z
cGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
aW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKQotICAgICAgICBkZWJ1Z2dlckFnZW50LT53aWxsRGlz
cGF0Y2hBc3luY0NhbGwoSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6RE9N
VGltZXIsIHRpbWVySWQpOworICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCisgICAgICAgIHdlYkRlYnVnZ2VyQWdl
bnQtPndpbGxEaXNwYXRjaEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0Nh
bGxUeXBlOjpET01UaW1lciwgdGltZXJJZCk7CiAKICAgICBpZiAoSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudCogZG9tRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudCgpKQogICAgICAgICBkb21EZWJ1Z2dlckFnZW50LT53aWxsRmlyZVRp
bWVyKG9uZVNob3QpOwpAQCAtNDg1LDggKzQ4Niw4IEBAIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxGaXJlVGltZXJJbXBsKEluc3Ry
CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaXJlVGltZXJJbXBsKGNvbnN0
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYgY29va2llKQogewotICAgIGlmIChJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gY29va2llLmluc3RydW1lbnRpbmdB
Z2VudHMoKS0+aW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKQotICAgICAgICBkZWJ1Z2dlckFnZW50
LT5kaWREaXNwYXRjaEFzeW5jQ2FsbCgpOworICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50
ID0gY29va2llLmluc3RydW1lbnRpbmdBZ2VudHMoKS0+d2ViRGVidWdnZXJBZ2VudCgpKQorICAg
ICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5kaWREaXNwYXRjaEFzeW5jQ2FsbCgpOwogICAgIGlmIChJ
bnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gcmV0cmlldmVUaW1lbGluZUFn
ZW50KGNvb2tpZSkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZEZpcmVUaW1lcigpOwogfQpA
QCAtNjcxLDggKzY3Miw4IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJ
bXBvcnRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVuCiAKIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRFeGVjdXRpb25CbG9ja2VkQnlDU1BJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFN0cmluZyYgZGlyZWN0
aXZlVGV4dCkKIHsKLSAgICBpZiAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKQotICAgICAg
ICBkZWJ1Z2dlckFnZW50LT5zY3JpcHRFeGVjdXRpb25CbG9ja2VkQnlDU1AoZGlyZWN0aXZlVGV4
dCk7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+c2NyaXB0RXhl
Y3V0aW9uQmxvY2tlZEJ5Q1NQKGRpcmVjdGl2ZVRleHQpOwogfQogCiB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVNjcmlwdFJlc3BvbnNlSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCkBA
IC03MzcsNyArNzM4LDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1p
dExvYWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnQKICAgICAgICAgaWYgKElu
c3BlY3RvckxheWVyVHJlZUFnZW50KiBsYXllclRyZWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMuaW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKSkKICAgICAgICAgICAgIGxheWVyVHJlZUFnZW50
LT5yZXNldCgpOwogCi0gICAgICAgIGlmIChQYWdlRGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2Vy
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCisgICAgICAg
IGlmIChhdXRvKiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURl
YnVnZ2VyQWdlbnQoKSkKICAgICAgICAgICAgIHBhZ2VEZWJ1Z2dlckFnZW50LT5tYWluRnJhbWVO
YXZpZ2F0ZWQoKTsKIAogICAgICAgICBpZiAoUGFnZUhlYXBBZ2VudCogcGFnZUhlYXBBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZUhlYXBBZ2VudCgpKQpAQCAtNzc3LDcgKzc3OCw3IEBA
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkZXJEZXRhY2hlZEZyb21GcmFtZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpm
cmFtZVN0YXJ0ZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkpIHsK
LSAgICAgICAgaWYgKFBhZ2VEZWJ1Z2dlckFnZW50KiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgaWYgKGF1dG8qIHBh
Z2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlRGVidWdnZXJBZ2VudCgp
KQogICAgICAgICAgICAgcGFnZURlYnVnZ2VyQWdlbnQtPm1haW5GcmFtZVN0YXJ0ZWRMb2FkaW5n
KCk7CiAgICAgICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgICAg
ICB0aW1lbGluZUFnZW50LT5tYWluRnJhbWVTdGFydGVkTG9hZGluZygpOwpAQCAtNzkwLDcgKzc5
MSw3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0YXJ0ZWRMb2FkaW5n
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0CiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lKQogewogICAgIGlmIChmcmFtZS5pc01haW5GcmFt
ZSgpKSB7Ci0gICAgICAgIGlmIChQYWdlRGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2VyQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCisgICAgICAgIGlmIChh
dXRvKiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2Vy
QWdlbnQoKSkKICAgICAgICAgICAgIHBhZ2VEZWJ1Z2dlckFnZW50LT5tYWluRnJhbWVTdG9wcGVk
TG9hZGluZygpOwogICAgIH0KIApAQCAtODQ1LDkgKzg0Niw5IEBAIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0CiAgICAgaWYgKFdlYkNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKICAgICAgICAgY29uc29sZUFnZW50LT5hZGRN
ZXNzYWdlVG9Db25zb2xlKFdURk1vdmUobWVzc2FnZSkpOwogICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBqdXN0IHBhc3MgdGhlIG1lc3NhZ2Ugb24gdG8gdGhlIGRlYnVnZ2VyIGFnZW50LiBKYXZh
U2NyaXB0Q29yZSBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50IHNob3VsZCBrbm93IENvbnNvbGUgTWVz
c2FnZVR5cGVzLgotICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkpIHsKKyAgICBp
ZiAoYXV0byogd2ViRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdn
ZXJBZ2VudCgpKSB7CiAgICAgICAgIGlmIChpc0NvbnNvbGVBc3NlcnRNZXNzYWdlKHNvdXJjZSwg
dHlwZSkpCi0gICAgICAgICAgICBkZWJ1Z2dlckFnZW50LT5oYW5kbGVDb25zb2xlQXNzZXJ0KG1l
c3NhZ2VUZXh0KTsKKyAgICAgICAgICAgIHdlYkRlYnVnZ2VyQWdlbnQtPmhhbmRsZUNvbnNvbGVB
c3NlcnQobWVzc2FnZVRleHQpOwogICAgIH0KIH0KIApAQCAtMTEyMiw3ICsxMTIzLDcgQEAgYm9v
bCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnRpbWVsaW5lQWdlbnRUcmFja2luZyhTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3IKIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFJlcXVlc3RBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVu
dGluZ0FnZW50cywgaW50IGNhbGxiYWNrSWQsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBp
ZiAoUGFnZURlYnVnZ2VyQWdlbnQqIHBhZ2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy5wYWdlRGVidWdnZXJBZ2VudCgpKQorICAgIGlmIChhdXRvKiBwYWdlRGVidWdnZXJBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkKICAgICAgICAgcGFn
ZURlYnVnZ2VyQWdlbnQtPmRpZFJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFja0lkLCBkb2N1
bWVudCk7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAg
ICAgICB0aW1lbGluZUFnZW50LT5kaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCwg
ZG9jdW1lbnQuZnJhbWUoKSk7CkBAIC0xMTMwLDcgKzExMzEsNyBAQCB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJgogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FuY2VsQW5pbWF0
aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGlu
dCBjYWxsYmFja0lkLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgaWYgKFBhZ2VEZWJ1Z2dl
ckFnZW50KiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVn
Z2VyQWdlbnQoKSkKKyAgICBpZiAoYXV0byogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCiAgICAgICAgIHBhZ2VEZWJ1Z2dlckFnZW50
LT5kaWRDYW5jZWxBbmltYXRpb25GcmFtZShjYWxsYmFja0lkKTsKICAgICBpZiAoSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tp
bmdJbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZENh
bmNlbEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQsIGRvY3VtZW50LmZyYW1lKCkpOwpAQCAtMTEz
OCw3ICsxMTM5LDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbmNlbEFu
aW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJgogCiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmlyZUFuaW1hdGlv
bkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQg
Y2FsbGJhY2tJZCwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIGlmIChQYWdlRGVidWdnZXJB
Z2VudCogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dl
ckFnZW50KCkpCisgICAgaWYgKGF1dG8qIHBhZ2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy5wYWdlRGVidWdnZXJBZ2VudCgpKQogICAgICAgICBwYWdlRGVidWdnZXJBZ2VudC0+
d2lsbEZpcmVBbmltYXRpb25GcmFtZShjYWxsYmFja0lkKTsKIAogICAgIGlmIChhdXRvKiBwYWdl
RE9NRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURPTURlYnVnZ2VyQWdl
bnQoKSkKQEAgLTExNTQsOCArMTE1NSw4IEBAIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxGaXJlQW5pbWF0aW9uRnJhbWVJCiAKIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKGNv
bnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYgY29va2llKQogewotICAgIGlmIChJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gY29va2llLmluc3RydW1lbnRp
bmdBZ2VudHMoKS0+aW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKQotICAgICAgICBkZWJ1Z2dlckFn
ZW50LT5kaWREaXNwYXRjaEFzeW5jQ2FsbCgpOworICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFn
ZW50ID0gY29va2llLmluc3RydW1lbnRpbmdBZ2VudHMoKS0+d2ViRGVidWdnZXJBZ2VudCgpKQor
ICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5kaWREaXNwYXRjaEFzeW5jQ2FsbCgpOwogICAgIGlm
IChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gcmV0cmlldmVUaW1lbGlu
ZUFnZW50KGNvb2tpZSkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZEZpcmVBbmltYXRpb25G
cmFtZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1l
bnRpbmdBZ2VudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuY3BwCmluZGV4IGQzYmU5MzhmN2Q0NGQzNzA3N2FmMGQzYWRmNDM1MmE1MmQ3YTEyMWEu
LjdmZDk4NzZkNTk5NGJkYmE5Y2ZmZGU0NTAzZDY2YjAzM2JiNDAxYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKQEAgLTYzLDcgKzYz
LDcgQEAgdm9pZCBJbnN0cnVtZW50aW5nQWdlbnRzOjpyZXNldCgpCiAjZW5kaWYKICAgICBtX2lu
c3BlY3RvckRhdGFiYXNlQWdlbnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50ID0gbnVsbHB0cjsKLSAgICBtX2luc3BlY3RvckRlYnVnZ2VyQWdlbnQgPSBu
dWxscHRyOworICAgIG1fd2ViRGVidWdnZXJBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9wYWdlRGVi
dWdnZXJBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9wYWdlSGVhcEFnZW50ID0gbnVsbHB0cjsKICAg
ICBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggZjIxNjc0Njk2ODk0OGNm
NzllNmY0ZTU3YjVlYzI1Yjk1YzA4ODI5OC4uMWJkNDkwY2U5NWUzNGIyMGQ3NWEyYjE4Yzk5YzMz
ZmUxOWIzMDBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1l
bnRpbmdBZ2VudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGlu
Z0FnZW50cy5oCkBAIC02NCw2ICs2NCw3IEBAIGNsYXNzIFBhZ2VEZWJ1Z2dlckFnZW50OwogY2xh
c3MgUGFnZUhlYXBBZ2VudDsKIGNsYXNzIFBhZ2VSdW50aW1lQWdlbnQ7CiBjbGFzcyBXZWJDb25z
b2xlQWdlbnQ7CitjbGFzcyBXZWJEZWJ1Z2dlckFnZW50OwogCiBjbGFzcyBJbnN0cnVtZW50aW5n
QWdlbnRzIDogcHVibGljIFJlZkNvdW50ZWQ8SW5zdHJ1bWVudGluZ0FnZW50cz4gewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEluc3RydW1lbnRpbmdBZ2VudHMpOwpAQCAtMTMwLDggKzEzMSw4
IEBAIHB1YmxpYzoKICAgICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQqIGluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KiBhZ2VudCkgeyBtX2luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA9IGFnZW50OyB9CiAKLSAgICBJbnNwZWN0b3I6Okluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQqIGluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSBjb25zdCB7IHJldHVy
biBtX2luc3BlY3RvckRlYnVnZ2VyQWdlbnQ7IH0KLSAgICB2b2lkIHNldEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBhZ2VudCkgeyBtX2lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQgPSBhZ2VudDsgfQorICAgIFdlYkRlYnVnZ2VyQWdlbnQqIHdl
YkRlYnVnZ2VyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3dlYkRlYnVnZ2VyQWdlbnQ7IH0KKyAg
ICB2b2lkIHNldFdlYkRlYnVnZ2VyQWdlbnQoV2ViRGVidWdnZXJBZ2VudCogYWdlbnQpIHsgbV93
ZWJEZWJ1Z2dlckFnZW50ID0gYWdlbnQ7IH0KIAogICAgIFBhZ2VEZWJ1Z2dlckFnZW50KiBwYWdl
RGVidWdnZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZURlYnVnZ2VyQWdlbnQ7IH0KICAg
ICB2b2lkIHNldFBhZ2VEZWJ1Z2dlckFnZW50KFBhZ2VEZWJ1Z2dlckFnZW50KiBhZ2VudCkgeyBt
X3BhZ2VEZWJ1Z2dlckFnZW50ID0gYWdlbnQ7IH0KQEAgLTE3NSw3ICsxNzYsNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAgICAgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCogbV9pbnNwZWN0b3JEYXRhYmFz
ZUFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCog
bV9pbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQgeyBudWxscHRyIH07Ci0gICAgSW5zcGVj
dG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBtX2luc3BlY3RvckRlYnVnZ2VyQWdlbnQgeyBu
dWxscHRyIH07CisgICAgV2ViRGVidWdnZXJBZ2VudCogbV93ZWJEZWJ1Z2dlckFnZW50IHsgbnVs
bHB0ciB9OwogICAgIFBhZ2VEZWJ1Z2dlckFnZW50KiBtX3BhZ2VEZWJ1Z2dlckFnZW50IHsgbnVs
bHB0ciB9OwogICAgIFBhZ2VIZWFwQWdlbnQqIG1fcGFnZUhlYXBBZ2VudCB7IG51bGxwdHIgfTsK
ICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCAxMWRjMGZlODZjNTA3Yjc2
YTZlMTg4MDg1NGUzYmZmYTIwYzVlMjg4Li40Mzc4MzM2NTRiZWI4OGJiOWI4YTQ2YTk5Y2ZhODlj
NWUzODRjNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTQ5LDggKzQ5LDggQEAKICNpbmNs
dWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIgog
I2luY2x1ZGUgIldlYkNvbnNvbGVBZ2VudC5oIgorI2luY2x1ZGUgIldlYkRlYnVnZ2VyQWdlbnQu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgotI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Lmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2NyaXB0QnJlYWtwb2ludC5oPgogI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2gu
aD4KQEAgLTQ3Miw5ICs0NzIsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Om1haW5G
cmFtZVN0YXJ0ZWRMb2FkaW5nKCkKICAgICBtX2F1dG9DYXB0dXJlUGhhc2UgPSBBdXRvQ2FwdHVy
ZVBoYXNlOjpCZWZvcmVMb2FkOwogCiAgICAgLy8gUHJlLWVtcHRpdmVseSBkaXNhYmxlIGJyZWFr
cG9pbnRzLiBUaGUgZnJvbnRlbmQgbXVzdCByZS1lbmFibGUgdGhlbS4KLSAgICBpZiAoSW5zcGVj
dG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy5p
bnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkpIHsKKyAgICBpZiAoYXV0byogd2ViRGVidWdnZXJBZ2Vu
dCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpIHsKICAgICAgICAg
RXJyb3JTdHJpbmcgaWdub3JlZDsKLSAgICAgICAgZGVidWdnZXJBZ2VudC0+c2V0QnJlYWtwb2lu
dHNBY3RpdmUoaWdub3JlZCwgZmFsc2UpOworICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5zZXRC
cmVha3BvaW50c0FjdGl2ZShpZ25vcmVkLCBmYWxzZSk7CiAgICAgfQogCiAgICAgLy8gSW5mb3Jt
IHRoZSBmcm9udGVuZCB3ZSBzdGFydGVkIGFuIGF1dG8gY2FwdHVyZS4gVGhlIGZyb250ZW5kIG11
c3Qgc3RvcCBjYXB0dXJlLgpAQCAtNDk3LDExICs0OTcsMTEgQEAgdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpzdGFydFByb2dyYW1tYXRpY0NhcHR1cmUoKQogICAgIEFTU0VSVCghbV90cmFj
a2luZyk7CiAKICAgICAvLyBEaXNhYmxlIGJyZWFrcG9pbnRzIGR1cmluZyBwcm9ncmFtbWF0aWMg
Y2FwdHVyZS4KLSAgICBpZiAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9
IG1faW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkpIHsKLSAgICAg
ICAgbV9wcm9ncmFtbWF0aWNDYXB0dXJlUmVzdG9yZUJyZWFrcG9pbnRBY3RpdmVWYWx1ZSA9IGRl
YnVnZ2VyQWdlbnQtPmJyZWFrcG9pbnRzQWN0aXZlKCk7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVn
Z2VyQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdnZXJBZ2VudCgpKSB7Cisg
ICAgICAgIG1fcHJvZ3JhbW1hdGljQ2FwdHVyZVJlc3RvcmVCcmVha3BvaW50QWN0aXZlVmFsdWUg
PSB3ZWJEZWJ1Z2dlckFnZW50LT5icmVha3BvaW50c0FjdGl2ZSgpOwogICAgICAgICBpZiAobV9w
cm9ncmFtbWF0aWNDYXB0dXJlUmVzdG9yZUJyZWFrcG9pbnRBY3RpdmVWYWx1ZSkgewogICAgICAg
ICAgICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKLSAgICAgICAgICAgIGRlYnVnZ2VyQWdlbnQtPnNl
dEJyZWFrcG9pbnRzQWN0aXZlKGlnbm9yZWQsIGZhbHNlKTsKKyAgICAgICAgICAgIHdlYkRlYnVn
Z2VyQWdlbnQtPnNldEJyZWFrcG9pbnRzQWN0aXZlKGlnbm9yZWQsIGZhbHNlKTsKICAgICAgICAg
fQogICAgIH0gZWxzZQogICAgICAgICBtX3Byb2dyYW1tYXRpY0NhcHR1cmVSZXN0b3JlQnJlYWtw
b2ludEFjdGl2ZVZhbHVlID0gZmFsc2U7CkBAIC01MjIsOSArNTIyLDkgQEAgdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSgpCiAKICAgICAvLyBSZS1l
bmFibGUgYnJlYWtwb2ludHMgaWYgdGhleSB3ZXJlIGVuYWJsZWQuCiAgICAgaWYgKG1fcHJvZ3Jh
bW1hdGljQ2FwdHVyZVJlc3RvcmVCcmVha3BvaW50QWN0aXZlVmFsdWUpIHsKLSAgICAgICAgaWYg
KEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBtX2luc3RydW1lbnRpbmdB
Z2VudHMuaW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKSB7CisgICAgICAgIGlmIChhdXRvKiB3ZWJE
ZWJ1Z2dlckFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkg
ewogICAgICAgICAgICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKLSAgICAgICAgICAgIGRlYnVnZ2Vy
QWdlbnQtPnNldEJyZWFrcG9pbnRzQWN0aXZlKGlnbm9yZWQsIHRydWUpOworICAgICAgICAgICAg
d2ViRGVidWdnZXJBZ2VudC0+c2V0QnJlYWtwb2ludHNBY3RpdmUoaWdub3JlZCwgdHJ1ZSk7CiAg
ICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNwcAppbmRleCA3ODQ0ZjY4YzhjMGY5YmU1YzNiYzViNDFk
YmRkMGViYjdmNmI5MzQ1Li5hNGM3NWU2ODQ5Zjk5YTZjN2QyNTczNjVjNGE5OWU4NGI4NmY1YWY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2Vy
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdn
ZXJBZ2VudC5jcHAKQEAgLTI2LDggKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiV2ViRGVidWdnZXJBZ2VudC5oIgogCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgor
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5o
IgotCisjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSwx
NiArNDMsMTI2IEBAIFdlYkRlYnVnZ2VyQWdlbnQ6OldlYkRlYnVnZ2VyQWdlbnQoV2ViQWdlbnRD
b250ZXh0JiBjb250ZXh0KQogCiBXZWJEZWJ1Z2dlckFnZW50Ojp+V2ViRGVidWdnZXJBZ2VudCgp
ID0gZGVmYXVsdDsKIAorYm9vbCBXZWJEZWJ1Z2dlckFnZW50OjplbmFibGVkKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9pbnN0cnVtZW50aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSA9PSB0
aGlzICYmIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZWQoKTsKK30KKwogdm9pZCBXZWJE
ZWJ1Z2dlckFnZW50OjplbmFibGUoKQogeworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRX
ZWJEZWJ1Z2dlckFnZW50KHRoaXMpOworCiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZW5h
YmxlKCk7Ci0gICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQodGhpcyk7CiB9CiAKIHZvaWQgV2ViRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlzQmVp
bmdEZXN0cm95ZWQpCiB7Ci0gICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQobnVsbHB0cik7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldFdlYkRl
YnVnZ2VyQWdlbnQobnVsbHB0cik7CisKICAgICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNh
YmxlKGlzQmVpbmdEZXN0cm95ZWQpOwogfQogCit2b2lkIFdlYkRlYnVnZ2VyQWdlbnQ6OmRpZEFk
ZEV2ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQmIHRhcmdldCwgY29uc3QgQXRvbVN0cmluZyYgZXZl
bnRUeXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCBjYXB0dXJlKQoreworICAgIGlm
ICghYnJlYWtwb2ludHNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgZXZl
bnRMaXN0ZW5lcnMgPSB0YXJnZXQuZXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTsKKyAgICBhdXRv
IHBvc2l0aW9uID0gZXZlbnRMaXN0ZW5lcnMuZmluZE1hdGNoaW5nKFsmXShhdXRvJiByZWdpc3Rl
cmVkTGlzdGVuZXIpIHsKKyAgICAgICAgcmV0dXJuICZyZWdpc3RlcmVkTGlzdGVuZXItPmNhbGxi
YWNrKCkgPT0gJmxpc3RlbmVyICYmIHJlZ2lzdGVyZWRMaXN0ZW5lci0+dXNlQ2FwdHVyZSgpID09
IGNhcHR1cmU7CisgICAgfSk7CisgICAgaWYgKHBvc2l0aW9uID09IG5vdEZvdW5kKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvJiByZWdpc3RlcmVkTGlzdGVuZXIgPSBldmVudExpc3RlbmVy
cy5hdChwb3NpdGlvbik7CisgICAgaWYgKG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXJzLmNvbnRh
aW5zKHJlZ2lzdGVyZWRMaXN0ZW5lci5nZXQoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIEpT
Qzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSA9IHRhcmdldC5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmV4ZWNTdGF0ZSgpOworICAgIGlmICghc2NyaXB0U3RhdGUpCisgICAgICAgIHJldHVybjsK
KworICAgIGludCBpZGVudGlmaWVyID0gbV9uZXh0RXZlbnRMaXN0ZW5lcklkZW50aWZpZXIrKzsK
KyAgICBtX3JlZ2lzdGVyZWRFdmVudExpc3RlbmVycy5zZXQocmVnaXN0ZXJlZExpc3RlbmVyLmdl
dCgpLCBpZGVudGlmaWVyKTsKKworICAgIGRpZFNjaGVkdWxlQXN5bmNDYWxsKHNjcmlwdFN0YXRl
LCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpFdmVudExpc3RlbmVyLCBp
ZGVudGlmaWVyLCByZWdpc3RlcmVkTGlzdGVuZXItPmlzT25jZSgpKTsKK30KKwordm9pZCBXZWJE
ZWJ1Z2dlckFnZW50Ojp3aWxsUmVtb3ZlRXZlbnRMaXN0ZW5lcihFdmVudFRhcmdldCYgdGFyZ2V0
LCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBi
b29sIGNhcHR1cmUpCit7CisgICAgYXV0byYgZXZlbnRMaXN0ZW5lcnMgPSB0YXJnZXQuZXZlbnRM
aXN0ZW5lcnMoZXZlbnRUeXBlKTsKKyAgICBzaXplX3QgbGlzdGVuZXJJbmRleCA9IGV2ZW50TGlz
dGVuZXJzLmZpbmRNYXRjaGluZyhbJl0oYXV0byYgcmVnaXN0ZXJlZExpc3RlbmVyKSB7CisgICAg
ICAgIHJldHVybiAmcmVnaXN0ZXJlZExpc3RlbmVyLT5jYWxsYmFjaygpID09ICZsaXN0ZW5lciAm
JiByZWdpc3RlcmVkTGlzdGVuZXItPnVzZUNhcHR1cmUoKSA9PSBjYXB0dXJlOworICAgIH0pOwor
CisgICAgaWYgKGxpc3RlbmVySW5kZXggPT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGludCBpZGVudGlmaWVyID0gbV9yZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcnMudGFrZShldmVu
dExpc3RlbmVyc1tsaXN0ZW5lckluZGV4XS5nZXQoKSk7CisgICAgZGlkQ2FuY2VsQXN5bmNDYWxs
KEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OkFzeW5jQ2FsbFR5cGU6OkV2ZW50TGlzdGVuZXIsIGlk
ZW50aWZpZXIpOworfQorCit2b2lkIFdlYkRlYnVnZ2VyQWdlbnQ6OndpbGxIYW5kbGVFdmVudChj
b25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpCit7CisgICAgYXV0byBpdCA9
IG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXJzLmZpbmQoJmxpc3RlbmVyKTsKKyAgICBpZiAoaXQg
PT0gbV9yZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHdpbGxEaXNwYXRjaEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0Nh
bGxUeXBlOjpFdmVudExpc3RlbmVyLCBpdC0+dmFsdWUpOworfQorCisKK3ZvaWQgV2ViRGVidWdn
ZXJBZ2VudDo6ZGlkUG9zdE1lc3NhZ2UoY29uc3QgVGltZXJCYXNlJiB0aW1lciwgSlNDOjpFeGVj
U3RhdGUmIHN0YXRlKQoreworICAgIGlmICghYnJlYWtwb2ludHNBY3RpdmUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fcG9zdE1lc3NhZ2VUaW1lcnMuY29udGFpbnMoJnRpbWVyKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaW50IHBvc3RNZXNzYWdlSWRlbnRpZmllciA9IG1fbmV4
dFBvc3RNZXNzYWdlSWRlbnRpZmllcisrOworICAgIG1fcG9zdE1lc3NhZ2VUaW1lcnMuc2V0KCZ0
aW1lciwgcG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKKworICAgIGRpZFNjaGVkdWxlQXN5bmNDYWxs
KCZzdGF0ZSwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6UG9zdE1lc3Nh
Z2UsIHBvc3RNZXNzYWdlSWRlbnRpZmllciwgdHJ1ZSk7Cit9CisKK3ZvaWQgV2ViRGVidWdnZXJB
Z2VudDo6ZGlkRmFpbFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYgdGltZXIpCit7CisgICAg
YXV0byBpdCA9IG1fcG9zdE1lc3NhZ2VUaW1lcnMuZmluZCgmdGltZXIpOworICAgIGlmIChpdCA9
PSBtX3Bvc3RNZXNzYWdlVGltZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBkaWRD
YW5jZWxBc3luY0NhbGwoSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6UG9z
dE1lc3NhZ2UsIGl0LT52YWx1ZSk7CisKKyAgICBtX3Bvc3RNZXNzYWdlVGltZXJzLnJlbW92ZShp
dCk7Cit9CisKK3ZvaWQgV2ViRGVidWdnZXJBZ2VudDo6d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2Uo
Y29uc3QgVGltZXJCYXNlJiB0aW1lcikKK3sKKyAgICBhdXRvIGl0ID0gbV9wb3N0TWVzc2FnZVRp
bWVycy5maW5kKCZ0aW1lcik7CisgICAgaWYgKGl0ID09IG1fcG9zdE1lc3NhZ2VUaW1lcnMuZW5k
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHdpbGxEaXNwYXRjaEFzeW5jQ2FsbChJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpQb3N0TWVzc2FnZSwgaXQtPnZhbHVlKTsK
K30KKwordm9pZCBXZWJEZWJ1Z2dlckFnZW50OjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKGNvbnN0
IFRpbWVyQmFzZSYgdGltZXIpCit7CisgICAgYXV0byBpdCA9IG1fcG9zdE1lc3NhZ2VUaW1lcnMu
ZmluZCgmdGltZXIpOworICAgIGlmIChpdCA9PSBtX3Bvc3RNZXNzYWdlVGltZXJzLmVuZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBkaWREaXNwYXRjaEFzeW5jQ2FsbCgpOworCisgICAgbV9w
b3N0TWVzc2FnZVRpbWVycy5yZW1vdmUoaXQpOworfQorCit2b2lkIFdlYkRlYnVnZ2VyQWdlbnQ6
OmRpZENsZWFyQXN5bmNTdGFja1RyYWNlRGF0YSgpCit7CisgICAgbV9yZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lcnMuY2xlYXIoKTsKKyAgICBtX3Bvc3RNZXNzYWdlVGltZXJzLmNsZWFyKCk7CisgICAg
bV9uZXh0RXZlbnRMaXN0ZW5lcklkZW50aWZpZXIgPSAxOworICAgIG1fbmV4dFBvc3RNZXNzYWdl
SWRlbnRpZmllciA9IDE7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmgKaW5kZXggZmE4
YTI2YzdmZmNjNDlhNjVmYjc0N2M0Njc3NzRhNjRhYzM1ODAyNy4uZmY0OThmZDEwMmJlZDE5NGFh
YmI4MzVlYzVlZjVjM2Q0ODcyOTZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmgKQEAgLTMwLDcgKzMwLDExIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRXZlbnRMaXN0ZW5lcjsKK2NsYXNzIEV2ZW50VGFyZ2V0
OwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKK2NsYXNzIFJlZ2lzdGVyZWRFdmVudExpc3Rl
bmVyOworY2xhc3MgVGltZXJCYXNlOwogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKIGNs
YXNzIFdlYkRlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50IHsKQEAgLTM4LDE0ICs0MiwzMSBAQCBjbGFzcyBXZWJEZWJ1Z2dlckFnZW50IDogcHVi
bGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViRGVidWdnZXJBZ2VudCgpOwor
ICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgLy8gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uCisgICAgdm9pZCBkaWRBZGRFdmVudExpc3RlbmVyKEV2ZW50VGFyZ2V0Jiwg
Y29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0dXJl
KTsKKyAgICB2b2lkIHdpbGxSZW1vdmVFdmVudExpc3RlbmVyKEV2ZW50VGFyZ2V0JiwgY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0dXJlKTsKKyAg
ICB2b2lkIHdpbGxIYW5kbGVFdmVudChjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYpOwor
ICAgIHZvaWQgZGlkUG9zdE1lc3NhZ2UoY29uc3QgVGltZXJCYXNlJiwgSlNDOjpFeGVjU3RhdGUm
KTsKKyAgICB2b2lkIGRpZEZhaWxQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmKTsKKyAgICB2
b2lkIHdpbGxEaXNwYXRjaFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYpOworICAgIHZvaWQg
ZGlkRGlzcGF0Y2hQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmKTsKIAogcHJvdGVjdGVkOgog
ICAgIFdlYkRlYnVnZ2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7Ci0KICAgICB2b2lkIGVuYWJs
ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpIG92
ZXJyaWRlOwogCisgICAgdm9pZCBkaWRDbGVhckFzeW5jU3RhY2tUcmFjZURhdGEoKSBmaW5hbDsK
KwogICAgIEluc3RydW1lbnRpbmdBZ2VudHMmIG1faW5zdHJ1bWVudGluZ0FnZW50czsKKworcHJp
dmF0ZToKKyAgICBIYXNoTWFwPGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyKiwgaW50PiBt
X3JlZ2lzdGVyZWRFdmVudExpc3RlbmVyczsKKyAgICBIYXNoTWFwPGNvbnN0IFRpbWVyQmFzZSos
IGludD4gbV9wb3N0TWVzc2FnZVRpbWVyczsKKyAgICBpbnQgbV9uZXh0RXZlbnRMaXN0ZW5lcklk
ZW50aWZpZXIgeyAxIH07CisgICAgaW50IG1fbmV4dFBvc3RNZXNzYWdlSWRlbnRpZmllciB7IDEg
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4
IDRjOWNmYTVjZTBmYzIwMDQ5NzU0MzBmMDM3ODRkYzU4YjkzZGM5ZWUuLjQ4MWExNzFkYzdmODg2
Mzg2ZTY0NWNkMDZmOTJjNzA2NzA3N2Y5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcApAQCAtMzYs
OCArMzYsNiBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgotI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCkBAIC00
Niw3ICs0NCw2IEBACiAjaW5jbHVkZSAiUGFnZVNjcmlwdERlYnVnU2VydmVyLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCi0j
aW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luamVjdGVkU2NyaXB0Lmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+CkBAIC02Nyw2ICs2NCwxMSBAQCBQYWdl
RGVidWdnZXJBZ2VudDo6UGFnZURlYnVnZ2VyQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4
dCkKIAogUGFnZURlYnVnZ2VyQWdlbnQ6On5QYWdlRGVidWdnZXJBZ2VudCgpID0gZGVmYXVsdDsK
IAorYm9vbCBQYWdlRGVidWdnZXJBZ2VudDo6ZW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1faW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlRGVidWdnZXJBZ2VudCgpID09IHRoaXMgJiYgV2Vi
RGVidWdnZXJBZ2VudDo6ZW5hYmxlZCgpOworfQorCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50Ojpl
dmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9i
amVjdEdyb3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wq
IGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgYm9vbCogcmV0dXJu
QnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZlUmVz
dWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUsIFJlZlB0cjxQcm90b2NvbDo6UnVu
dGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxib29sPiYgd2FzVGhyb3duLCBP
cHRpb25hbDxpbnQ+JiBzYXZlZFJlc3VsdEluZGV4KQogewogICAgIGF1dG8mIHBhZ2VDaHJvbWVD
bGllbnQgPSBtX2luc3BlY3RlZFBhZ2UuY2hyb21lKCkuY2xpZW50KCk7CkBAIC05MSwxNCArOTMs
MTYgQEAgdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmkKIAogdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6
ZW5hYmxlKCkKIHsKLSAgICBXZWJEZWJ1Z2dlckFnZW50OjplbmFibGUoKTsKICAgICBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuc2V0UGFnZURlYnVnZ2VyQWdlbnQodGhpcyk7CisKKyAgICBXZWJEZWJ1
Z2dlckFnZW50OjplbmFibGUoKTsKIH0KIAogdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJs
ZShib29sIGlzQmVpbmdEZXN0cm95ZWQpCiB7Ci0gICAgV2ViRGVidWdnZXJBZ2VudDo6ZGlzYWJs
ZShpc0JlaW5nRGVzdHJveWVkKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0UGFnZURl
YnVnZ2VyQWdlbnQobnVsbHB0cik7CisKKyAgICBXZWJEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKGlz
QmVpbmdEZXN0cm95ZWQpOwogfQogCiBTdHJpbmcgUGFnZURlYnVnZ2VyQWdlbnQ6OnNvdXJjZU1h
cFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQmIHNjcmlwdCkKQEAgLTEyMiwxNCArMTI2LDYgQEAg
U3RyaW5nIFBhZ2VEZWJ1Z2dlckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3JpcHQoY29uc3QgU2Ny
aXB0JiBzY3JpcHQpCiAgICAgcmV0dXJuIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNvdXJjZU1h
cFVSTEZvclNjcmlwdChzY3JpcHQpOwogfQogCi12b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpkaWRD
bGVhckFzeW5jU3RhY2tUcmFjZURhdGEoKQotewotICAgIG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXJzLmNsZWFyKCk7Ci0gICAgbV9wb3N0TWVzc2FnZVRpbWVycy5jbGVhcigpOwotICAgIG1fbmV4
dEV2ZW50TGlzdGVuZXJJZGVudGlmaWVyID0gMTsKLSAgICBtX25leHRQb3N0TWVzc2FnZUlkZW50
aWZpZXIgPSAxOwotfQotCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSgpCiB7
CiAgICAgUGFnZUNvbnNvbGVDbGllbnQ6Om11dGUoKTsKQEAgLTE4NCw1NSArMTgwLDYgQEAgdm9p
ZCBQYWdlRGVidWdnZXJBZ2VudDo6bWFpbkZyYW1lTmF2aWdhdGVkKCkKICAgICBzZXRTdXBwcmVz
c0FsbFBhdXNlcyhmYWxzZSk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmRpZEFkZEV2
ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQmIHRhcmdldCwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRU
eXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCBjYXB0dXJlKQotewotICAgIGlmICgh
YnJlYWtwb2ludHNBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byYgZXZlbnRM
aXN0ZW5lcnMgPSB0YXJnZXQuZXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTsKLSAgICBhdXRvIHBv
c2l0aW9uID0gZXZlbnRMaXN0ZW5lcnMuZmluZE1hdGNoaW5nKFsmXShhdXRvJiByZWdpc3RlcmVk
TGlzdGVuZXIpIHsKLSAgICAgICAgcmV0dXJuICZyZWdpc3RlcmVkTGlzdGVuZXItPmNhbGxiYWNr
KCkgPT0gJmxpc3RlbmVyICYmIHJlZ2lzdGVyZWRMaXN0ZW5lci0+dXNlQ2FwdHVyZSgpID09IGNh
cHR1cmU7Ci0gICAgfSk7Ci0gICAgaWYgKHBvc2l0aW9uID09IG5vdEZvdW5kKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBhdXRvJiByZWdpc3RlcmVkTGlzdGVuZXIgPSBldmVudExpc3RlbmVycy5h
dChwb3NpdGlvbik7Ci0gICAgaWYgKG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXJzLmNvbnRhaW5z
KHJlZ2lzdGVyZWRMaXN0ZW5lci5nZXQoKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEpTQzo6
RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSA9IHRhcmdldC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmV4ZWNTdGF0ZSgpOwotICAgIGlmICghc2NyaXB0U3RhdGUpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGludCBpZGVudGlmaWVyID0gbV9uZXh0RXZlbnRMaXN0ZW5lcklkZW50aWZpZXIrKzsKLSAg
ICBtX3JlZ2lzdGVyZWRFdmVudExpc3RlbmVycy5zZXQocmVnaXN0ZXJlZExpc3RlbmVyLmdldCgp
LCBpZGVudGlmaWVyKTsKLQotICAgIGRpZFNjaGVkdWxlQXN5bmNDYWxsKHNjcmlwdFN0YXRlLCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpFdmVudExpc3RlbmVyLCBpZGVu
dGlmaWVyLCByZWdpc3RlcmVkTGlzdGVuZXItPmlzT25jZSgpKTsKLX0KLQotdm9pZCBQYWdlRGVi
dWdnZXJBZ2VudDo6d2lsbFJlbW92ZUV2ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQmIHRhcmdldCwg
Y29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9v
bCBjYXB0dXJlKQotewotICAgIGF1dG8mIGV2ZW50TGlzdGVuZXJzID0gdGFyZ2V0LmV2ZW50TGlz
dGVuZXJzKGV2ZW50VHlwZSk7Ci0gICAgc2l6ZV90IGxpc3RlbmVySW5kZXggPSBldmVudExpc3Rl
bmVycy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIHJlZ2lzdGVyZWRMaXN0ZW5lcikgewotICAgICAg
ICByZXR1cm4gJnJlZ2lzdGVyZWRMaXN0ZW5lci0+Y2FsbGJhY2soKSA9PSAmbGlzdGVuZXIgJiYg
cmVnaXN0ZXJlZExpc3RlbmVyLT51c2VDYXB0dXJlKCkgPT0gY2FwdHVyZTsKLSAgICB9KTsKLQot
ICAgIGlmIChsaXN0ZW5lckluZGV4ID09IG5vdEZvdW5kKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpbnQgaWRlbnRpZmllciA9IG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXJzLnRha2UoZXZlbnRM
aXN0ZW5lcnNbbGlzdGVuZXJJbmRleF0uZ2V0KCkpOwotICAgIGRpZENhbmNlbEFzeW5jQ2FsbChJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpFdmVudExpc3RlbmVyLCBpZGVu
dGlmaWVyKTsKLX0KLQotdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6d2lsbEhhbmRsZUV2ZW50KGNv
bnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiBsaXN0ZW5lcikKLXsKLSAgICBhdXRvIGl0ID0g
bV9yZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcnMuZmluZCgmbGlzdGVuZXIpOwotICAgIGlmIChpdCA9
PSBtX3JlZ2lzdGVyZWRFdmVudExpc3RlbmVycy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgd2lsbERpc3BhdGNoQXN5bmNDYWxsKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OkFzeW5jQ2Fs
bFR5cGU6OkV2ZW50TGlzdGVuZXIsIGl0LT52YWx1ZSk7Ci19Ci0KIHZvaWQgUGFnZURlYnVnZ2Vy
QWdlbnQ6OmRpZFJlcXVlc3RBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCwgRG9jdW1lbnQm
IGRvY3VtZW50KQogewogICAgIGlmICghYnJlYWtwb2ludHNBY3RpdmUoKSkKQEAgLTI1NSw0OSAr
MjAyLDQgQEAgdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUo
aW50IGNhbGxiYWNrSWQpCiAgICAgZGlkQ2FuY2VsQXN5bmNDYWxsKEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OkFzeW5jQ2FsbFR5cGU6OlJlcXVlc3RBbmltYXRpb25GcmFtZSwgY2FsbGJhY2tJZCk7
CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmRpZFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVy
QmFzZSYgdGltZXIsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoIWJyZWFrcG9p
bnRzQWN0aXZlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3Bvc3RNZXNzYWdlVGlt
ZXJzLmNvbnRhaW5zKCZ0aW1lcikpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBwb3N0TWVz
c2FnZUlkZW50aWZpZXIgPSBtX25leHRQb3N0TWVzc2FnZUlkZW50aWZpZXIrKzsKLSAgICBtX3Bv
c3RNZXNzYWdlVGltZXJzLnNldCgmdGltZXIsIHBvc3RNZXNzYWdlSWRlbnRpZmllcik7Ci0KLSAg
ICBkaWRTY2hlZHVsZUFzeW5jQ2FsbCgmc3RhdGUsIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OkFz
eW5jQ2FsbFR5cGU6OlBvc3RNZXNzYWdlLCBwb3N0TWVzc2FnZUlkZW50aWZpZXIsIHRydWUpOwot
fQotCi12b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpkaWRGYWlsUG9zdE1lc3NhZ2UoY29uc3QgVGlt
ZXJCYXNlJiB0aW1lcikKLXsKLSAgICBhdXRvIGl0ID0gbV9wb3N0TWVzc2FnZVRpbWVycy5maW5k
KCZ0aW1lcik7Ci0gICAgaWYgKGl0ID09IG1fcG9zdE1lc3NhZ2VUaW1lcnMuZW5kKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGRpZENhbmNlbEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpBc3luY0NhbGxUeXBlOjpQb3N0TWVzc2FnZSwgaXQtPnZhbHVlKTsKLQotICAgIG1fcG9z
dE1lc3NhZ2VUaW1lcnMucmVtb3ZlKGl0KTsKLX0KLQotdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6
d2lsbERpc3BhdGNoUG9zdE1lc3NhZ2UoY29uc3QgVGltZXJCYXNlJiB0aW1lcikKLXsKLSAgICBh
dXRvIGl0ID0gbV9wb3N0TWVzc2FnZVRpbWVycy5maW5kKCZ0aW1lcik7Ci0gICAgaWYgKGl0ID09
IG1fcG9zdE1lc3NhZ2VUaW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHdpbGxE
aXNwYXRjaEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpQ
b3N0TWVzc2FnZSwgaXQtPnZhbHVlKTsKLX0KLQotdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlk
RGlzcGF0Y2hQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmIHRpbWVyKQotewotICAgIGF1dG8g
aXQgPSBtX3Bvc3RNZXNzYWdlVGltZXJzLmZpbmQoJnRpbWVyKTsKLSAgICBpZiAoaXQgPT0gbV9w
b3N0TWVzc2FnZVRpbWVycy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZGlkRGlzcGF0
Y2hBc3luY0NhbGwoKTsKLQotICAgIG1fcG9zdE1lc3NhZ2VUaW1lcnMucmVtb3ZlKGl0KTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuaAppbmRleCBlMjQzNjRmNTA3
ZmE1OGQ4ZDg0MjljZGI4NWZjOGY0OGMxYzEwNDBkLi4zYmQyYTQ4N2IwODQ0YTg4YWMyNDc3ZjI1
YzhkNjEwYjM0YjRlNjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuaApAQCAtMzYsMTEgKzM2LDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBFdmVudExpc3RlbmVy
OwotY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBQYWdlOwotY2xhc3MgUmVnaXN0ZXJlZEV2ZW50
TGlzdGVuZXI7Ci1jbGFzcyBUaW1lckJhc2U7CiAKIGNsYXNzIFBhZ2VEZWJ1Z2dlckFnZW50IGZp
bmFsIDogcHVibGljIFdlYkRlYnVnZ2VyQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFBhZ2VEZWJ1Z2dlckFnZW50KTsKQEAgLTQ4LDYgKzQ0LDcgQEAgY2xhc3MgUGFnZURlYnVnZ2Vy
QWdlbnQgZmluYWwgOiBwdWJsaWMgV2ViRGVidWdnZXJBZ2VudCB7CiBwdWJsaWM6CiAgICAgUGFn
ZURlYnVnZ2VyQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwogICAgIHZpcnR1YWwgflBhZ2VEZWJ1
Z2dlckFnZW50KCk7CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBE
ZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgogICAgIHZvaWQgZXZhbHVhdGVPbkNhbGxG
cmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogaW5j
bHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5k
TXV0ZUNvbnNvbGUsIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVy
YXRlUHJldmlldywgY29uc3QgYm9vbCogc2F2ZVJlc3VsdCwgY29uc3QgYm9vbCogZW11bGF0ZVVz
ZXJHZXN0dXJlLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2Jq
ZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxib29sPiYgd2FzVGhyb3duLCBPcHRpb25hbDxpbnQ+JiBz
YXZlZFJlc3VsdEluZGV4KTsKQEAgLTYzLDEzICs2MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZFJlcXVlc3RBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCwgRG9jdW1lbnQmKTsKICAgICB2
b2lkIHdpbGxGaXJlQW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQpOwogICAgIHZvaWQgZGlk
Q2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQpOwotICAgIHZvaWQgZGlkQWRkRXZl
bnRMaXN0ZW5lcihFdmVudFRhcmdldCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRXZl
bnRMaXN0ZW5lciYsIGJvb2wgY2FwdHVyZSk7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlRXZlbnRMaXN0
ZW5lcihFdmVudFRhcmdldCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0
ZW5lciYsIGJvb2wgY2FwdHVyZSk7Ci0gICAgdm9pZCB3aWxsSGFuZGxlRXZlbnQoY29uc3QgUmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXImKTsKLSAgICB2b2lkIGRpZFBvc3RNZXNzYWdlKGNvbnN0IFRp
bWVyQmFzZSYsIEpTQzo6RXhlY1N0YXRlJik7Ci0gICAgdm9pZCBkaWRGYWlsUG9zdE1lc3NhZ2Uo
Y29uc3QgVGltZXJCYXNlJik7Ci0gICAgdm9pZCB3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShjb25z
dCBUaW1lckJhc2UmKTsKLSAgICB2b2lkIGRpZERpc3BhdGNoUG9zdE1lc3NhZ2UoY29uc3QgVGlt
ZXJCYXNlJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBlbmFibGUoKTsKQEAgLTc3LDE5ICs2Nywx
MiBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIHNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBT
Y3JpcHQmKTsKIAotICAgIHZvaWQgZGlkQ2xlYXJBc3luY1N0YWNrVHJhY2VEYXRhKCk7Ci0KICAg
ICB2b2lkIG11dGVDb25zb2xlKCk7CiAgICAgdm9pZCB1bm11dGVDb25zb2xlKCk7CiAKICAgICBJ
bnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmlu
ZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKTsKIAogICAgIFBhZ2UmIG1faW5zcGVj
dGVkUGFnZTsKLQotICAgIEhhc2hNYXA8Y29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIqLCBp
bnQ+IG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXJzOwotICAgIEhhc2hNYXA8Y29uc3QgVGltZXJC
YXNlKiwgaW50PiBtX3Bvc3RNZXNzYWdlVGltZXJzOwotICAgIGludCBtX25leHRFdmVudExpc3Rl
bmVySWRlbnRpZmllciB7IDEgfTsKLSAgICBpbnQgbV9uZXh0UG9zdE1lc3NhZ2VJZGVudGlmaWVy
IHsgMSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ3YjI4NWFkZDU4
OGIwMmMzNTVmZGU3ZWZkN2NkMDUxZDczOTVhZjguLjAxMWZhYWJkYTlmMTdlMzI5MmRjOTdlNmEz
NzVkZDU2NTYwMjgxZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0yOSAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVi
dWdnZXI6IGFzeW5jIGV2ZW50IGxpc3RlbmVyIHN0YWNrIHRyYWNlcyBzaG91bGQgYmUgYXZhaWxh
YmxlIGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDkwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdnZXItZXZlbnQtaW50ZXJ2YWwtYnJl
YWtwb2ludHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci93b3JrZXIvZG9tLWRl
YnVnZ2VyLWV2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci1ldmVudC10aW1lb3V0LWJyZWFrcG9pbnRz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci11
cmwtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci93b3JrZXIv
cmVzb3VyY2VzL3dvcmtlci1kb20tZGVidWdnZXIuanM6CisKIDIwMTktMDgtMjkgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERPTURl
YnVnZ2VyOiBzdXBwb3J0IGV2ZW50IGJyZWFrcG9pbnRzIGluIFdvcmtlciBjb250ZXh0cwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdnZXItZXZlbnQt
aW50ZXJ2YWwtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3dvcmtlci9kb20tZGVidWdnZXItZXZlbnQtaW50ZXJ2YWwtYnJlYWtwb2ludHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGZiZWY3ZmZkYWFkMTkwMjlhZTVjYjgyMDhkOWIwNmU3MjQxNWVmMGIuLjkyNjgy
NDQzMzFiYTNjNjY4MjBhNWY0ZTI5NWZhZmQyNzk0MDJiMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci93b3JrZXIvZG9tLWRlYnVnZ2VyLWV2ZW50LWludGVydmFsLWJyZWFrcG9p
bnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya2VyL2RvbS1k
ZWJ1Z2dlci1ldmVudC1pbnRlcnZhbC1icmVha3BvaW50cy1leHBlY3RlZC50eHQKQEAgLTEwLDUg
KzEwLDcgQEAgQ0FMTCBTVEFDSzoKIEFTWU5DIENBTEwgU1RBQ0s6CiAxOiAtLS0gc2V0SW50ZXJ2
YWwgLS0tCiAyOiBbRl0gdHJpZ2dlckludGVydmFsCi0zOiBbRl0gb25tZXNzYWdlCiszOiBbRl0g
aGFuZGxlTWVzc2FnZQorNDogLS0tIGFkZEV2ZW50TGlzdGVuZXIgLS0tCis1OiBbUF0gR2xvYmFs
IENvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtlci9kb20tZGVi
dWdnZXItZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdnZXItZXZlbnQtbGlzdGVuZXItYnJlYWtwb2lu
dHMtZXhwZWN0ZWQudHh0CmluZGV4IGQzOTM5YzhiZDQ0OTQ1NGExZjZmMGIxMjNlZmY5ZDM2ZWY2
N2QzNzMuLmU1NGM5NjRjOWZmYzI4MGQwYzY1MzRlMTdkZjNkOWRjMWExYTQwNTIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3JrZXIvZG9tLWRlYnVnZ2VyLWV2ZW50LWxpc3Rl
bmVyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
d29ya2VyL2RvbS1kZWJ1Z2dlci1ldmVudC1saXN0ZW5lci1icmVha3BvaW50cy1leHBlY3RlZC50
eHQKQEAgLTksNSArOSw4IEBAIFBBU1M6IFBhdXNlIGRhdGEgZXZlbnROYW1lIHNob3VsZCBoYXZl
IGJlZW4gImN1c3RvbSIuCiBDQUxMIFNUQUNLOgogMDogW0ZdIGhhbmRsZXIKIDE6IFtGXSB0cmln
Z2VyTGlzdGVuZXIKLTI6IFtGXSBvbm1lc3NhZ2UKKzI6IFtGXSBoYW5kbGVNZXNzYWdlCitBU1lO
QyBDQUxMIFNUQUNLOgorMzogLS0tIGFkZEV2ZW50TGlzdGVuZXIgLS0tCis0OiBbUF0gR2xvYmFs
IENvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtlci9kb20tZGVi
dWdnZXItZXZlbnQtdGltZW91dC1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci1ldmVudC10aW1lb3V0LWJyZWFrcG9pbnRz
LWV4cGVjdGVkLnR4dAppbmRleCBjODA0ODMzOGM5YWY2NjI2YmQ2NGZmYTc2NGRiNWI2OGI3NTAx
ZDdiLi5lNmVhNmY0ZDc4ZmIyMWYxZTRjY2NkYTQ1Yjk1ZDI1NGY0YjNlNzk2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci1ldmVudC10aW1lb3V0
LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29y
a2VyL2RvbS1kZWJ1Z2dlci1ldmVudC10aW1lb3V0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApA
QCAtMTAsNSArMTAsNyBAQCBDQUxMIFNUQUNLOgogQVNZTkMgQ0FMTCBTVEFDSzoKIDE6IC0tLSBz
ZXRUaW1lb3V0IC0tLQogMjogW0ZdIHRyaWdnZXJUaW1lb3V0Ci0zOiBbRl0gb25tZXNzYWdlCisz
OiBbRl0gaGFuZGxlTWVzc2FnZQorNDogLS0tIGFkZEV2ZW50TGlzdGVuZXIgLS0tCis1OiBbUF0g
R2xvYmFsIENvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtlci9k
b20tZGVidWdnZXItdXJsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci93b3JrZXIvZG9tLWRlYnVnZ2VyLXVybC1icmVha3BvaW50cy1leHBlY3RlZC50eHQK
aW5kZXggYjViMTU4ODhiNzRlZTIyN2UxMDdmZDljYTE4YTZjZDgyMGQ0MmJkOC4uNGFjOTNmNzZl
NDhmZmFiZTdkOWMzMjc3NzQ3ODBiNGJmMmE3ZjMxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdnZXItdXJsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci11cmwtYnJl
YWtwb2ludHMtZXhwZWN0ZWQudHh0CkBAIC05LDcgKzksMTAgQEAgUEFTUzogUGF1c2UgZGF0YSBV
Ukwgc2hvdWxkIGluY2x1ZGUgIkZldGNoIi4KIENBTEwgU1RBQ0s6CiAwOiBbRl0gbG9hZFJlc291
cmNlRmV0Y2gKIDE6IFtGXSB0cmlnZ2VyRmV0Y2gKLTI6IFtGXSBvbm1lc3NhZ2UKKzI6IFtGXSBo
YW5kbGVNZXNzYWdlCitBU1lOQyBDQUxMIFNUQUNLOgorMzogLS0tIGFkZEV2ZW50TGlzdGVuZXIg
LS0tCis0OiBbUF0gR2xvYmFsIENvZGUKIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdvcmtlci5E
T01EZWJ1Z2dlci5VUkxCcmVha3BvaW50LlhIUgogUEFTUzogU2hvdWxkIGhhdmUgcGF1c2VkLgpA
QCAtMTgsNSArMjEsOCBAQCBQQVNTOiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgaW5jbHVkZSAiWEhS
Ii4KIENBTEwgU1RBQ0s6CiAwOiBbRl0gbG9hZFJlc291cmNlWEhSCiAxOiBbRl0gdHJpZ2dlclhI
UgotMjogW0ZdIG9ubWVzc2FnZQorMjogW0ZdIGhhbmRsZU1lc3NhZ2UKK0FTWU5DIENBTEwgU1RB
Q0s6CiszOiAtLS0gYWRkRXZlbnRMaXN0ZW5lciAtLS0KKzQ6IFtQXSBHbG9iYWwgQ29kZQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya2VyL3Jlc291cmNlcy93b3JrZXIt
ZG9tLWRlYnVnZ2VyLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtlci9yZXNvdXJjZXMv
d29ya2VyLWRvbS1kZWJ1Z2dlci5qcwppbmRleCBkMWI1OGEzY2M3Mjk4ZWY0ZmVhZjkwZjQwOWYx
MWUzMzJiNjk2M2UyLi5iNmY1MDU4ZWQyYTViM2QxMzViOTRlOWE0YjA0MTMzYjY1ZmU4Y2ZjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya2VyL3Jlc291cmNlcy93b3JrZXIt
ZG9tLWRlYnVnZ2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3JrZXIvcmVzb3Vy
Y2VzL3dvcmtlci1kb20tZGVidWdnZXIuanMKQEAgLTI3LDYgKzI3LDYgQEAgYWRkRXZlbnRMaXN0
ZW5lcigiY3VzdG9tIiwgZnVuY3Rpb24gaGFuZGxlcihldmVudCkgewogICAgIGNvbnNvbGUubG9n
KCJsaXN0ZW5lciBmaXJlZCIpOwogfSk7CiAKLW9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CithZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVu
dCkgewogICAgIGZ1bmN0aW9uc1tldmVudC5kYXRhXSgpOwotfQorfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377680</attachid>
            <date>2019-08-29 23:12:55 -0700</date>
            <delta_ts>2019-08-29 23:56:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200903-20190829231254.patch</filename>
            <type>text/plain</type>
            <size>50046</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQxZmU0MjI3ZjVmZjYxMzQxZTM1ODA5OGNiM2Uy
NjlhNmE2YTI3MjcuLjRmYjRlNTM1Njc3MGY5YzVjOTExMmJiNTNiMzQxYjU5NDUwZTZkYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA4LTI5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
ZWJ1Z2dlcjogYXN5bmMgZXZlbnQgbGlzdGVuZXIgc3RhY2sgdHJhY2VzIHNob3VsZCBiZSBhdmFp
bGFibGUgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAwOTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgor
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6Cisg
ICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZWQpOiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3Bw
OgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OmRpc2FibGUpOgorICAgICAgICBBbGxvdyBzdWJjbGFzc2VzIHRvIGV4dGVuZCB3aGF0
IGl0IG1lYW5zIGZvciB0aGUgYEluc3BlY3RvckRlYnVnZ2VyQWdlbnRgIHRvIGJlIGBlbmFibGVk
YC4KKwogMjAxOS0wOC0yOSAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXBkYXRlIC54Y2NvbmZpZyBzeW1ib2xzIHRvIHJlZmxlY3QgdGhlIGN1cnJlbnQgc2V0
IG9mIHBhc3QgYW5kIGZ1dHVyZSBwcm9kdWN0IHZlcnNpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVlY2Q1
ODA0ZGY3ZTAzNTcyYWNiNDEwMzJmMjEwYjUxYmRlNjY1NmQuLmNlMmE0NjdhOThkYmM1NThiZmE3
ZWY5ZWZmMjdmNzlmZjJjMDZkNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MiBAQAorMjAxOS0w
OC0yOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogRGVidWdnZXI6IGFzeW5jIGV2ZW50IGxpc3RlbmVyIHN0YWNrIHRyYWNlcyBzaG91
bGQgYmUgYXZhaWxhYmxlIGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMDkwMworCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQ
ZWNvcmFyby4KKworICAgICAgICBUZXN0czogaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdnZXIt
ZXZlbnQtaW50ZXJ2YWwtYnJlYWtwb2ludHMuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9y
L3dvcmtlci9kb20tZGVidWdnZXItZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMuaHRtbAorICAg
ICAgICAgICAgICAgaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdnZXItZXZlbnQtdGltZW91dC1i
cmVha3BvaW50cy5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1
Z2dlci11cmwtYnJlYWtwb2ludHMuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9X
ZWJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmVuYWJsZWQg
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmVuYWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OmRpZEFkZEV2ZW50TGlzdGVuZXIpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6OndpbGxSZW1vdmVFdmVudExp
c3RlbmVyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50Ojp3aWxs
SGFuZGxlRXZlbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkRlYnVnZ2VyQWdlbnQ6
OmRpZFBvc3RNZXNzYWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFn
ZW50OjpkaWRGYWlsUG9zdE1lc3NhZ2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkRl
YnVnZ2VyQWdlbnQ6OndpbGxEaXNwYXRjaFBvc3RNZXNzYWdlKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50OjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpXZWJEZWJ1Z2dlckFnZW50OjpkaWRDbGVhckFzeW5jU3RhY2tU
cmFjZURhdGEpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURl
YnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVn
Z2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6OmVuYWJs
ZWQgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50Ojpl
bmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6OmRpc2FibGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6OmRpZENsZWFyQXN5bmNTdGFja1Ry
YWNlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6
ZGlkQWRkRXZlbnRMaXN0ZW5lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVi
dWdnZXJBZ2VudDo6d2lsbFJlbW92ZUV2ZW50TGlzdGVuZXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6OndpbGxIYW5kbGVFdmVudCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6ZGlkUG9zdE1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6OmRpZEZhaWxQb3N0TWVz
c2FnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6d2ls
bERpc3BhdGNoUG9zdE1lc3NhZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZURl
YnVnZ2VyQWdlbnQ6OmRpZERpc3BhdGNoUG9zdE1lc3NhZ2UpOiBEZWxldGVkLgorICAgICAgICBN
b3ZlIHZhcmlvdXMgYEluc3BlY3Rvckluc3RydW1lbnRhdGlvbmAgY2FsbHMgZnJvbSBgUGFnZURl
YnVnZ2VyQWdlbnRgIHRvIGBXZWJEZWJ1Z2dlckFnZW50YAorICAgICAgICBzbyB0aGF0IGBXb3Jr
ZXJEZWJ1Z2dlckFnZW50YCBhbHNvIGluaGVyaXRzIHRoZW0uCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGlu
Z0FnZW50czo6d2ViRGVidWdnZXJBZ2VudCBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6c2V0V2ViRGVidWdnZXJBZ2VudCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6aW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRz
OjpzZXRJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50
aW5nQWdlbnRzOjpyZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6Om1haW5GcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnN0YXJ0UHJvZ3JhbW1hdGljQ2FwdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsZWFyV2luZG93T2JqZWN0
SW5Xb3JsZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojppc0RlYnVnZ2VyUGF1c2VkSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZW1vdmVUaW1lckltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRBZGRFdmVudExpc3RlbmVySW1wbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZW1vdmVF
dmVudExpc3RlbmVySW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFBvc3RNZXNzYWdlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZEZhaWxQb3N0TWVzc2FnZUltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZUltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRj
aFBvc3RNZXNzYWdlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxIYW5kbGVFdmVudEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRIYW5kbGVFdmVudEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmlyZVRpbWVySW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpcmVUaW1lckltcGwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRFeGVjdXRpb25C
bG9ja2VkQnlDU1BJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpmcmFtZVN0YXJ0ZWRMb2FkaW5nSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmdJbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29u
c29sZUltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVBbmltYXRpb25GcmFt
ZUltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRG
aXJlQW5pbWF0aW9uRnJhbWVJbXBsKToKKyAgICAgICAgUmVwbGFjZSBgaW5zcGVjdG9yRGVidWdn
ZXJBZ2VudGAgd2l0aCBgd2ViRGVidWdnZXJBZ2VudGAgc28gdGhlIHJpZ2h0IGluc3RydW1lbnRh
dGlvbiBob29rcworICAgICAgICBhcmUgYXZhaWxhYmxlLgorCiAyMDE5LTA4LTI5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkICJJc29sYXRlZENvcHkiIGlu
IHRoZSBuYW1lIG9mIFN0cmluZyBnZXR0ZXJzIHRoYXQgY2FsbCBpc29sYXRlZENvcHkoKSBvbiB0
aGUgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDMyOWU3ODVi
NzFlNGZhYmIzNmYwNzkyNjg0ZWZhZjUyNzRjMjhlNmIuLjhmNWU5NmJkZGYwMWMzNDI2ZTMwYThh
ZDhkYWMyODAyMDIwMDRmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBA
IC03OSwxNCArNzksMTIgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDcmVhdGVG
cm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW4KIAogdm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0
UmVhc29uIHJlYXNvbikKIHsKLSAgICBkaXNhYmxlKHJlYXNvbiA9PSBEaXNjb25uZWN0UmVhc29u
OjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQpOworICAgIGlmIChlbmFibGVkKCkpCisgICAgICAg
IGRpc2FibGUocmVhc29uID09IERpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZFRhcmdldERlc3Ry
b3llZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZW5hYmxlKCkKIHsKLSAg
ICBpZiAobV9lbmFibGVkKQotICAgICAgICByZXR1cm47Ci0KICAgICBtX2VuYWJsZWQgPSB0cnVl
OwogCiAgICAgbV9zY3JpcHREZWJ1Z1NlcnZlci5hZGRMaXN0ZW5lcih0aGlzKTsKQEAgLTk3LDkg
Kzk1LDYgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjplbmFibGUoKQogCiB2b2lkIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKQogewot
ICAgIGlmICghbV9lbmFibGVkKQotICAgICAgICByZXR1cm47Ci0KICAgICBmb3IgKGF1dG8qIGxp
c3RlbmVyIDogY29weVRvVmVjdG9yKG1fbGlzdGVuZXJzKSkKICAgICAgICAgbGlzdGVuZXItPmRl
YnVnZ2VyV2FzRGlzYWJsZWQoKTsKIApAQCAtMTIwLDggKzExNSwxMyBAQCB2b2lkIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKQogICAgIG1fZW5h
YmxlZCA9IGZhbHNlOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZShF
cnJvclN0cmluZyYpCit2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZShFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcpCiB7CisgICAgaWYgKGVuYWJsZWQoKSkgeworICAgICAgICBlcnJv
clN0cmluZyA9ICJEZWJ1Z2dlciBkb21haW4gYWxyZWFkeSBlbmFibGVkIl9zOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgZW5hYmxlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuaAppbmRleCBhY2Q0ZGNkNDViNTdhZmY4NjBlYjY5ODgzYmNiYThjMGI5ZjNlMGYzLi4x
OGE3ZDI0NjFiY2VjMTJlYWFiYzM1OTI3YzE2MTMzZmM3MTAyNGI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RGVidWdnZXJBZ2VudC5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICAvLyBJbnNwZWN0
b3JBZ2VudEJhc2UKICAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVu
ZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CiAgICAgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKKyAgICB2aXJ0dWFs
IGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogCiAgICAgLy8gRGVi
dWdnZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmlu
ZyYpIGZpbmFsOwpAQCAtMTMyLDYgKzEzMyw4IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAg
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQoQWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVhbCB2b2lk
IGVuYWJsZSgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3ll
ZCk7CiAKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXImIGluamVjdGVkU2NyaXB0TWFuYWdlcigp
IGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOyB9CiAgICAgdmlydHVhbCBJ
bmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBp
bnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgPSAwOwpAQCAtMTQxLDkgKzE0NCw2IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHVubXV0ZUNvbnNvbGUoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKCk7Ci0gICAg
dmlydHVhbCB2b2lkIGRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKTsKLQogICAgIHZpcnR1
YWwgU3RyaW5nIHNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQmKTsKIAogICAgIHZv
aWQgZGlkQ2xlYXJHbG9iYWxPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMDYzMWRjMjM4NWY0Njcy
MGRlY2I1YmMzY2M0OWRmNWY5ZmRhN2Y3ZS4uNWQzOGE1NWU1MjM5MTY4NTAzNTVlNjQ1YTQ0ZDIw
Y2RjODUyYzQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIldlYkNvbnNvbGVBZ2VudC5oIgorI2luY2x1ZGUgIldlYkRlYnVnZ2VyQWdlbnQuaCIK
ICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAjaW5jbHVkZSAiV2ViU29j
a2V0RnJhbWUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgpA
QCAtMTEwLDkgKzExMSw5IEBAIHN0YXRpYyBGcmFtZSogZnJhbWVGb3JTY3JpcHRFeGVjdXRpb25D
b250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAKIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCkKIHsKLSAgICBpZiAoUGFnZURlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpIHsKKyAgICBpZiAo
YXV0byogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dl
ckFnZW50KCkpIHsKICAgICAgICAgaWYgKCZ3b3JsZCA9PSAmbWFpblRocmVhZE5vcm1hbFdvcmxk
KCkgJiYgZnJhbWUuaXNNYWluRnJhbWUoKSkKLSAgICAgICAgICAgIGRlYnVnZ2VyQWdlbnQtPmRp
ZENsZWFyTWFpbkZyYW1lV2luZG93T2JqZWN0KCk7CisgICAgICAgICAgICBwYWdlRGVidWdnZXJB
Z2VudC0+ZGlkQ2xlYXJNYWluRnJhbWVXaW5kb3dPYmplY3QoKTsKICAgICB9CiAKICAgICBpZiAo
UGFnZVJ1bnRpbWVBZ2VudCogcGFnZVJ1bnRpbWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
cGFnZVJ1bnRpbWVBZ2VudCgpKSB7CkBAIC0xMjMsOCArMTI0LDggQEAgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW4KIAogYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRGVidWdnZXJQYXVz
ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMpCiB7Ci0gICAg
aWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkKLSAgICAgICAgcmV0dXJuIGRlYnVnZ2Vy
QWdlbnQtPmlzUGF1c2VkKCk7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgcmV0dXJuIHdlYkRl
YnVnZ2VyQWdlbnQtPmlzUGF1c2VkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0zMTMs
OCArMzE0LDggQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxGZXRjaEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0EKIAogdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5n
bGVTaG90LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewotICAgIGlmIChJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5p
bnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAgIGRlYnVnZ2VyQWdlbnQtPmRpZFNjaGVk
dWxlQXN5bmNDYWxsKGNvbnRleHQuZXhlY1N0YXRlKCksIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OkFzeW5jQ2FsbFR5cGU6OkRPTVRpbWVyLCB0aW1lcklkLCBzaW5nbGVTaG90KTsKKyAgICBpZiAo
YXV0byogd2ViRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdnZXJB
Z2VudCgpKQorICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5kaWRTY2hlZHVsZUFzeW5jQ2FsbChj
b250ZXh0LmV4ZWNTdGF0ZSgpLCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0NhbGxUeXBl
OjpET01UaW1lciwgdGltZXJJZCwgc2luZ2xlU2hvdCk7CiAKICAgICBpZiAoSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJ
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZEluc3Rh
bGxUaW1lcih0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90LCBmcmFtZUZvclNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoY29udGV4dCkpOwpAQCAtMzIyLDI0ICszMjMsMjQgQEAgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWUKIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlbW92ZVRp
bWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGlt
ZXJJZCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICBpZiAoSW5zcGVj
dG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5z
cGVjdG9yRGVidWdnZXJBZ2VudCgpKQotICAgICAgICBkZWJ1Z2dlckFnZW50LT5kaWRDYW5jZWxB
c3luY0NhbGwoSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6RE9NVGltZXIs
IHRpbWVySWQpOworICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCisgICAgICAgIHdlYkRlYnVnZ2VyQWdlbnQtPmRp
ZENhbmNlbEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpE
T01UaW1lciwgdGltZXJJZCk7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVs
aW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRSZW1vdmVUaW1lcih0aW1lcklkLCBm
cmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogfQogCiB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQWRkRXZlbnRMaXN0ZW5lckltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRXZlbnRUYXJnZXQmIHRhcmdldCwgY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCBjYXB0
dXJlKQogewotICAgIGlmIChQYWdlRGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2VyQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAgIHBhZ2VEZWJ1
Z2dlckFnZW50LT5kaWRBZGRFdmVudExpc3RlbmVyKHRhcmdldCwgZXZlbnRUeXBlLCBsaXN0ZW5l
ciwgY2FwdHVyZSk7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+
ZGlkQWRkRXZlbnRMaXN0ZW5lcih0YXJnZXQsIGV2ZW50VHlwZSwgbGlzdGVuZXIsIGNhcHR1cmUp
OwogICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLmluc3BlY3RvckRPTUFnZW50KCkpCiAgICAgICAgIGRvbUFnZW50LT5kaWRBZGRFdmVudExp
c3RlbmVyKHRhcmdldCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
UmVtb3ZlRXZlbnRMaXN0ZW5lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgRXZlbnRUYXJnZXQmIHRhcmdldCwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBl
LCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCBjYXB0dXJlKQogewotICAgIGlmIChQYWdl
RGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBh
Z2VEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAgIHBhZ2VEZWJ1Z2dlckFnZW50LT53aWxsUmVtb3Zl
RXZlbnRMaXN0ZW5lcih0YXJnZXQsIGV2ZW50VHlwZSwgbGlzdGVuZXIsIGNhcHR1cmUpOworICAg
IGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJEZWJ1
Z2dlckFnZW50KCkpCisgICAgICAgIHdlYkRlYnVnZ2VyQWdlbnQtPndpbGxSZW1vdmVFdmVudExp
c3RlbmVyKHRhcmdldCwgZXZlbnRUeXBlLCBsaXN0ZW5lciwgY2FwdHVyZSk7CiAgICAgaWYgKElu
c3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9y
RE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQtPndpbGxSZW1vdmVFdmVudExpc3RlbmVyKHRh
cmdldCwgZXZlbnRUeXBlLCBsaXN0ZW5lciwgY2FwdHVyZSk7CiB9CkBAIC0zNTMsMjYgKzM1NCwy
NiBAQCBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNFdmVudExpc3RlbmVyRGlzYWJs
ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmCiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRQb3N0TWVzc2FnZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgY29uc3QgVGltZXJCYXNlJiB0aW1lciwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQog
ewotICAgIGlmIChQYWdlRGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAgIHBhZ2VEZWJ1Z2dlckFn
ZW50LT5kaWRQb3N0TWVzc2FnZSh0aW1lciwgc3RhdGUpOworICAgIGlmIChhdXRvKiB3ZWJEZWJ1
Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCisgICAg
ICAgIHdlYkRlYnVnZ2VyQWdlbnQtPmRpZFBvc3RNZXNzYWdlKHRpbWVyLCBzdGF0ZSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsUG9zdE1lc3NhZ2VJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFRpbWVyQmFzZSYg
dGltZXIpCiB7Ci0gICAgaWYgKFBhZ2VEZWJ1Z2dlckFnZW50KiBwYWdlRGVidWdnZXJBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkKLSAgICAgICAgcGFnZURl
YnVnZ2VyQWdlbnQtPmRpZEZhaWxQb3N0TWVzc2FnZSh0aW1lcik7CisgICAgaWYgKGF1dG8qIHdl
YkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkK
KyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+ZGlkRmFpbFBvc3RNZXNzYWdlKHRpbWVyKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaFBvc3RNZXNzYWdl
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBUaW1l
ckJhc2UmIHRpbWVyKQogewotICAgIGlmIChQYWdlRGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2Vy
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCi0gICAgICAg
IHBhZ2VEZWJ1Z2dlckFnZW50LT53aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZSh0aW1lcik7CisgICAg
aWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkRlYnVn
Z2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+d2lsbERpc3BhdGNoUG9zdE1l
c3NhZ2UodGltZXIpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlz
cGF0Y2hQb3N0TWVzc2FnZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0Fn
ZW50cywgY29uc3QgVGltZXJCYXNlJiB0aW1lcikKIHsKLSAgICBpZiAoUGFnZURlYnVnZ2VyQWdl
bnQqIHBhZ2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlRGVidWdnZXJB
Z2VudCgpKQotICAgICAgICBwYWdlRGVidWdnZXJBZ2VudC0+ZGlkRGlzcGF0Y2hQb3N0TWVzc2Fn
ZSh0aW1lcik7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+ZGlk
RGlzcGF0Y2hQb3N0TWVzc2FnZSh0aW1lcik7CiB9CiAKIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDYWxsRnVuY3Rpb25JbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIGludCBzY3JpcHRDb2x1bW4sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCkBAIC00MDUsOCArNDA2LDggQEAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnRJ
bXBsKEkKIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxIYW5kbGVFdmVudElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRXZlbnQmIGV2ZW50
LCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpCiB7Ci0gICAgaWYgKFBh
Z2VEZWJ1Z2dlckFnZW50KiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
cGFnZURlYnVnZ2VyQWdlbnQoKSkKLSAgICAgICAgcGFnZURlYnVnZ2VyQWdlbnQtPndpbGxIYW5k
bGVFdmVudChsaXN0ZW5lcik7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJB
Z2VudC0+d2lsbEhhbmRsZUV2ZW50KGxpc3RlbmVyKTsKIAogICAgIGlmIChJbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50KiBkb21EZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50KCkpCiAgICAgICAgIGRvbURlYnVnZ2VyQWdlbnQtPndpbGxI
YW5kbGVFdmVudChldmVudCwgbGlzdGVuZXIpOwpAQCAtNDE0LDggKzQxNSw4IEBAIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSGFuZGxlRXZlbnRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lCiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRIYW5k
bGVFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cykKIHsK
LSAgICBpZiAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMuaW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKQotICAgICAgICBkZWJ1Z2dlckFn
ZW50LT5kaWREaXNwYXRjaEFzeW5jQ2FsbCgpOworICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCisgICAgICAgIHdl
YkRlYnVnZ2VyQWdlbnQtPmRpZERpc3BhdGNoQXN5bmNDYWxsKCk7CiAKICAgICBpZiAoSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudCogZG9tRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMuaW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpKQogICAgICAgICBkb21EZWJ1Z2dlckFnZW50
LT5kaWRIYW5kbGVFdmVudCgpOwpAQCAtNDY5LDggKzQ3MCw4IEBAIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRFdmFsdWF0ZVNjcmlwdEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0CiAKIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxGaXJlVGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1l
bnRpbmdBZ2VudHMsIGludCB0aW1lcklkLCBib29sIG9uZVNob3QsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpCiB7Ci0gICAgaWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVn
Z2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkK
LSAgICAgICAgZGVidWdnZXJBZ2VudC0+d2lsbERpc3BhdGNoQXN5bmNDYWxsKEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OkFzeW5jQ2FsbFR5cGU6OkRPTVRpbWVyLCB0aW1lcklkKTsKKyAgICBpZiAo
YXV0byogd2ViRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViRGVidWdnZXJB
Z2VudCgpKQorICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT53aWxsRGlzcGF0Y2hBc3luY0NhbGwo
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6RE9NVGltZXIsIHRpbWVySWQp
OwogCiAgICAgaWYgKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIGRvbURlYnVnZ2VyQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoKSkKICAgICAg
ICAgZG9tRGVidWdnZXJBZ2VudC0+d2lsbEZpcmVUaW1lcihvbmVTaG90KTsKQEAgLTQ4NSw4ICs0
ODYsOCBAQCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRmlyZVRpbWVySW1wbChJbnN0cgogCiB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkRmlyZVRpbWVySW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUmIGNvb2tpZSkKIHsKLSAgICBpZiAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdn
ZXJBZ2VudCA9IGNvb2tpZS5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQoKSkKLSAgICAgICAgZGVidWdnZXJBZ2VudC0+ZGlkRGlzcGF0Y2hBc3luY0NhbGwoKTsK
KyAgICBpZiAoYXV0byogd2ViRGVidWdnZXJBZ2VudCA9IGNvb2tpZS5pbnN0cnVtZW50aW5nQWdl
bnRzKCktPndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+ZGlk
RGlzcGF0Y2hBc3luY0NhbGwoKTsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGlt
ZWxpbmVBZ2VudCA9IHJldHJpZXZlVGltZWxpbmVBZ2VudChjb29raWUpKQogICAgICAgICB0aW1l
bGluZUFnZW50LT5kaWRGaXJlVGltZXIoKTsKIH0KQEAgLTY3MSw4ICs2NzIsOCBAQCB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbgogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0
RXhlY3V0aW9uQmxvY2tlZEJ5Q1NQSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQpCiB7Ci0gICAgaWYgKEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmlu
c3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkKLSAgICAgICAgZGVidWdnZXJBZ2VudC0+c2NyaXB0RXhl
Y3V0aW9uQmxvY2tlZEJ5Q1NQKGRpcmVjdGl2ZVRleHQpOworICAgIGlmIChhdXRvKiB3ZWJEZWJ1
Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpCisgICAg
ICAgIHdlYkRlYnVnZ2VyQWdlbnQtPnNjcmlwdEV4ZWN1dGlvbkJsb2NrZWRCeUNTUChkaXJlY3Rp
dmVUZXh0KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVT
Y3JpcHRSZXNwb25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50
cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQpAQCAtNzM3LDcgKzczOCw3IEBAIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiBpbnN0cnVtZW50CiAgICAgICAgIGlmIChJbnNwZWN0b3JMYXllclRyZWVBZ2VudCogbGF5
ZXJUcmVlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckxheWVyVHJlZUFnZW50
KCkpCiAgICAgICAgICAgICBsYXllclRyZWVBZ2VudC0+cmVzZXQoKTsKIAotICAgICAgICBpZiAo
UGFnZURlYnVnZ2VyQWdlbnQqIHBhZ2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5wYWdlRGVidWdnZXJBZ2VudCgpKQorICAgICAgICBpZiAoYXV0byogcGFnZURlYnVnZ2VyQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCiAgICAgICAgICAg
ICBwYWdlRGVidWdnZXJBZ2VudC0+bWFpbkZyYW1lTmF2aWdhdGVkKCk7CiAKICAgICAgICAgaWYg
KFBhZ2VIZWFwQWdlbnQqIHBhZ2VIZWFwQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VI
ZWFwQWdlbnQoKSkKQEAgLTc3Nyw3ICs3NzgsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmCiB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lKQogewog
ICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7Ci0gICAgICAgIGlmIChQYWdlRGVidWdnZXJB
Z2VudCogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dl
ckFnZW50KCkpCisgICAgICAgIGlmIChhdXRvKiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkKICAgICAgICAgICAgIHBhZ2VEZWJ1Z2dl
ckFnZW50LT5tYWluRnJhbWVTdGFydGVkTG9hZGluZygpOwogICAgICAgICBpZiAoSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVj
dG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICAgICAgdGltZWxpbmVBZ2VudC0+bWFpbkZyYW1l
U3RhcnRlZExvYWRpbmcoKTsKQEAgLTc5MCw3ICs3OTEsNyBAQCB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYg
aW5zdAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmdJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFt
ZSkKIHsKICAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkgewotICAgICAgICBpZiAoUGFnZURl
YnVnZ2VyQWdlbnQqIHBhZ2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wYWdl
RGVidWdnZXJBZ2VudCgpKQorICAgICAgICBpZiAoYXV0byogcGFnZURlYnVnZ2VyQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCiAgICAgICAgICAgICBwYWdl
RGVidWdnZXJBZ2VudC0+bWFpbkZyYW1lU3RvcHBlZExvYWRpbmcoKTsKICAgICB9CiAKQEAgLTg0
NSw5ICs4NDYsOSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRv
Q29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdAogICAgIGlmIChXZWJDb25zb2xl
QWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50
KCkpCiAgICAgICAgIGNvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShXVEZNb3ZlKG1l
c3NhZ2UpKTsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQganVzdCBwYXNzIHRoZSBtZXNzYWdl
IG9uIHRvIHRoZSBkZWJ1Z2dlciBhZ2VudC4gSmF2YVNjcmlwdENvcmUgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudCBzaG91bGQga25vdyBDb25zb2xlIE1lc3NhZ2VUeXBlcy4KLSAgICBpZiAoSW5zcGVj
dG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5z
cGVjdG9yRGVidWdnZXJBZ2VudCgpKSB7CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkgewogICAgICAgICBpZiAo
aXNDb25zb2xlQXNzZXJ0TWVzc2FnZShzb3VyY2UsIHR5cGUpKQotICAgICAgICAgICAgZGVidWdn
ZXJBZ2VudC0+aGFuZGxlQ29uc29sZUFzc2VydChtZXNzYWdlVGV4dCk7CisgICAgICAgICAgICB3
ZWJEZWJ1Z2dlckFnZW50LT5oYW5kbGVDb25zb2xlQXNzZXJ0KG1lc3NhZ2VUZXh0KTsKICAgICB9
CiB9CiAKQEAgLTExMjIsNyArMTEyMyw3IEBAIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp0aW1lbGluZUFnZW50VHJhY2tpbmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyCiAKIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBjYWxsYmFja0lk
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgaWYgKFBhZ2VEZWJ1Z2dlckFnZW50KiBwYWdl
RGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkK
KyAgICBpZiAoYXV0byogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBh
Z2VEZWJ1Z2dlckFnZW50KCkpCiAgICAgICAgIHBhZ2VEZWJ1Z2dlckFnZW50LT5kaWRSZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCwgZG9jdW1lbnQpOwogICAgIGlmIChJbnNwZWN0b3JU
aW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2lu
Z0luc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkUmVx
dWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQsIGRvY3VtZW50LmZyYW1lKCkpOwpAQCAtMTEz
MCw3ICsxMTMxLDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlcXVlc3RB
bmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYKIAogdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENhbmNlbEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgY2FsbGJhY2tJZCwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIGlmIChQYWdlRGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2VyQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCisgICAgaWYgKGF1dG8q
IHBhZ2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlRGVidWdnZXJBZ2Vu
dCgpKQogICAgICAgICBwYWdlRGVidWdnZXJBZ2VudC0+ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUo
Y2FsbGJhY2tJZCk7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yVGltZWxpbmVBZ2VudCgp
KQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRDYW5jZWxBbmltYXRpb25GcmFtZShjYWxsYmFj
a0lkLCBkb2N1bWVudC5mcmFtZSgpKTsKQEAgLTExMzgsNyArMTEzOSw3IEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYW5jZWxBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYKIAogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IGNhbGxiYWNrSWQsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICBpZiAoUGFnZURlYnVnZ2VyQWdlbnQqIHBhZ2VEZWJ1Z2dlckFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlRGVidWdnZXJBZ2VudCgpKQorICAgIGlmIChhdXRvKiBw
YWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQo
KSkKICAgICAgICAgcGFnZURlYnVnZ2VyQWdlbnQtPndpbGxGaXJlQW5pbWF0aW9uRnJhbWUoY2Fs
bGJhY2tJZCk7CiAKICAgICBpZiAoYXV0byogcGFnZURPTURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLnBhZ2VET01EZWJ1Z2dlckFnZW50KCkpCkBAIC0xMTU0LDggKzExNTUsOCBA
QCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsRmlyZUFuaW1hdGlvbkZyYW1lSQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkRmlyZUFuaW1hdGlvbkZyYW1lSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUmIGNvb2tpZSkKIHsKLSAgICBpZiAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVi
dWdnZXJBZ2VudCA9IGNvb2tpZS5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvckRlYnVn
Z2VyQWdlbnQoKSkKLSAgICAgICAgZGVidWdnZXJBZ2VudC0+ZGlkRGlzcGF0Y2hBc3luY0NhbGwo
KTsKKyAgICBpZiAoYXV0byogd2ViRGVidWdnZXJBZ2VudCA9IGNvb2tpZS5pbnN0cnVtZW50aW5n
QWdlbnRzKCktPndlYkRlYnVnZ2VyQWdlbnQoKSkKKyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+
ZGlkRGlzcGF0Y2hBc3luY0NhbGwoKTsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCog
dGltZWxpbmVBZ2VudCA9IHJldHJpZXZlVGltZWxpbmVBZ2VudChjb29raWUpKQogICAgICAgICB0
aW1lbGluZUFnZW50LT5kaWRGaXJlQW5pbWF0aW9uRnJhbWUoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAppbmRleCBkM2JlOTM4Zjdk
NDRkMzcwNzdhZjBkM2FkZjQzNTJhNTJkN2ExMjFhLi43ZmQ5ODc2ZDU5OTRiZGJhOWNmZmRlNDUw
M2Q2NmIwMzNiYjQwMWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
dHJ1bWVudGluZ0FnZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Ry
dW1lbnRpbmdBZ2VudHMuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgSW5zdHJ1bWVudGluZ0Fn
ZW50czo6cmVzZXQoKQogI2VuZGlmCiAgICAgbV9pbnNwZWN0b3JEYXRhYmFzZUFnZW50ID0gbnVs
bHB0cjsKICAgICBtX2luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA9IG51bGxwdHI7Ci0g
ICAgbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsKKyAgICBtX3dlYkRlYnVnZ2Vy
QWdlbnQgPSBudWxscHRyOwogICAgIG1fcGFnZURlYnVnZ2VyQWdlbnQgPSBudWxscHRyOwogICAg
IG1fcGFnZUhlYXBBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0
cnVtZW50aW5nQWdlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGlu
Z0FnZW50cy5oCmluZGV4IGYyMTY3NDY5Njg5NDhjZjc5ZTZmNGU1N2I1ZWMyNWI5NWMwODgyOTgu
LjFiZDQ5MGNlOTVlMzRiMjBkNzVhMmIxOGM5OWMzM2ZlMTliMzAwYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaApAQCAtNjQsNiArNjQsNyBA
QCBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudDsKIGNsYXNzIFBhZ2VIZWFwQWdlbnQ7CiBjbGFzcyBQ
YWdlUnVudGltZUFnZW50OwogY2xhc3MgV2ViQ29uc29sZUFnZW50OworY2xhc3MgV2ViRGVidWdn
ZXJBZ2VudDsKIAogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50cyA6IHB1YmxpYyBSZWZDb3VudGVk
PEluc3RydW1lbnRpbmdBZ2VudHM+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnN0cnVt
ZW50aW5nQWdlbnRzKTsKQEAgLTEzMCw4ICsxMzEsOCBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50KiBpbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSBj
b25zdCB7IHJldHVybiBtX2luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDsgfQogICAgIHZv
aWQgc2V0SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQgPSBh
Z2VudDsgfQogCi0gICAgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBpbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OyB9Ci0gICAgdm9pZCBzZXRJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KEluc3BlY3Rvcjo6SW5zcGVj
dG9yRGVidWdnZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50ID0gYWdl
bnQ7IH0KKyAgICBXZWJEZWJ1Z2dlckFnZW50KiB3ZWJEZWJ1Z2dlckFnZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV93ZWJEZWJ1Z2dlckFnZW50OyB9CisgICAgdm9pZCBzZXRXZWJEZWJ1Z2dlckFnZW50
KFdlYkRlYnVnZ2VyQWdlbnQqIGFnZW50KSB7IG1fd2ViRGVidWdnZXJBZ2VudCA9IGFnZW50OyB9
CiAKICAgICBQYWdlRGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2VyQWdlbnQoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VEZWJ1Z2dlckFnZW50OyB9CiAgICAgdm9pZCBzZXRQYWdlRGVidWdnZXJBZ2Vu
dChQYWdlRGVidWdnZXJBZ2VudCogYWdlbnQpIHsgbV9wYWdlRGVidWdnZXJBZ2VudCA9IGFnZW50
OyB9CkBAIC0xNzUsNyArMTc2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIEluc3BlY3RvckRh
dGFiYXNlQWdlbnQqIG1faW5zcGVjdG9yRGF0YWJhc2VBZ2VudCB7IG51bGxwdHIgfTsKICAgICBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQqIG1faW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50IHsgbnVsbHB0ciB9OwotICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dCogbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50IHsgbnVsbHB0ciB9OworICAgIFdlYkRlYnVnZ2Vy
QWdlbnQqIG1fd2ViRGVidWdnZXJBZ2VudCB7IG51bGxwdHIgfTsKICAgICBQYWdlRGVidWdnZXJB
Z2VudCogbV9wYWdlRGVidWdnZXJBZ2VudCB7IG51bGxwdHIgfTsKICAgICBQYWdlSGVhcEFnZW50
KiBtX3BhZ2VIZWFwQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9yRE9NRGVidWdnZXJB
Z2VudCogbV9pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAKaW5kZXggMTFkYzBmZTg2YzUwN2I3NmE2ZTE4ODA4NTRlM2JmZmEyMGM1ZTI4OC4u
NDM3ODMzNjU0YmViODhiYjliOGE0NmE5OWNmYTg5YzVlMzg0YzY2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwCkBAIC00OSw4ICs0OSw4IEBACiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNs
dWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuaCIKICNpbmNsdWRlICJXZWJDb25zb2xlQWdlbnQu
aCIKKyNpbmNsdWRlICJXZWJEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQ29uc29sZU1lc3NhZ2UuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yU2NyaXB0
UHJvZmlsZXJBZ2VudC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEJyZWFrcG9p
bnQuaD4KICNpbmNsdWRlIDx3dGYvU3RvcHdhdGNoLmg+CkBAIC00NzIsOSArNDcyLDkgQEAgdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjptYWluRnJhbWVTdGFydGVkTG9hZGluZygpCiAgICAg
bV9hdXRvQ2FwdHVyZVBoYXNlID0gQXV0b0NhcHR1cmVQaGFzZTo6QmVmb3JlTG9hZDsKIAogICAg
IC8vIFByZS1lbXB0aXZlbHkgZGlzYWJsZSBicmVha3BvaW50cy4gVGhlIGZyb250ZW5kIG11c3Qg
cmUtZW5hYmxlIHRoZW0uCi0gICAgaWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2Vy
QWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKSB7
CisgICAgaWYgKGF1dG8qIHdlYkRlYnVnZ2VyQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMu
d2ViRGVidWdnZXJBZ2VudCgpKSB7CiAgICAgICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7Ci0gICAg
ICAgIGRlYnVnZ2VyQWdlbnQtPnNldEJyZWFrcG9pbnRzQWN0aXZlKGlnbm9yZWQsIGZhbHNlKTsK
KyAgICAgICAgd2ViRGVidWdnZXJBZ2VudC0+c2V0QnJlYWtwb2ludHNBY3RpdmUoaWdub3JlZCwg
ZmFsc2UpOwogICAgIH0KIAogICAgIC8vIEluZm9ybSB0aGUgZnJvbnRlbmQgd2Ugc3RhcnRlZCBh
biBhdXRvIGNhcHR1cmUuIFRoZSBmcm9udGVuZCBtdXN0IHN0b3AgY2FwdHVyZS4KQEAgLTQ5Nywx
MSArNDk3LDExIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRQcm9ncmFtbWF0
aWNDYXB0dXJlKCkKICAgICBBU1NFUlQoIW1fdHJhY2tpbmcpOwogCiAgICAgLy8gRGlzYWJsZSBi
cmVha3BvaW50cyBkdXJpbmcgcHJvZ3JhbW1hdGljIGNhcHR1cmUuCi0gICAgaWYgKEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5z
cGVjdG9yRGVidWdnZXJBZ2VudCgpKSB7Ci0gICAgICAgIG1fcHJvZ3JhbW1hdGljQ2FwdHVyZVJl
c3RvcmVCcmVha3BvaW50QWN0aXZlVmFsdWUgPSBkZWJ1Z2dlckFnZW50LT5icmVha3BvaW50c0Fj
dGl2ZSgpOworICAgIGlmIChhdXRvKiB3ZWJEZWJ1Z2dlckFnZW50ID0gbV9pbnN0cnVtZW50aW5n
QWdlbnRzLndlYkRlYnVnZ2VyQWdlbnQoKSkgeworICAgICAgICBtX3Byb2dyYW1tYXRpY0NhcHR1
cmVSZXN0b3JlQnJlYWtwb2ludEFjdGl2ZVZhbHVlID0gd2ViRGVidWdnZXJBZ2VudC0+YnJlYWtw
b2ludHNBY3RpdmUoKTsKICAgICAgICAgaWYgKG1fcHJvZ3JhbW1hdGljQ2FwdHVyZVJlc3RvcmVC
cmVha3BvaW50QWN0aXZlVmFsdWUpIHsKICAgICAgICAgICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7
Ci0gICAgICAgICAgICBkZWJ1Z2dlckFnZW50LT5zZXRCcmVha3BvaW50c0FjdGl2ZShpZ25vcmVk
LCBmYWxzZSk7CisgICAgICAgICAgICB3ZWJEZWJ1Z2dlckFnZW50LT5zZXRCcmVha3BvaW50c0Fj
dGl2ZShpZ25vcmVkLCBmYWxzZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgbV9w
cm9ncmFtbWF0aWNDYXB0dXJlUmVzdG9yZUJyZWFrcG9pbnRBY3RpdmVWYWx1ZSA9IGZhbHNlOwpA
QCAtNTIyLDkgKzUyMiw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcFByb2dy
YW1tYXRpY0NhcHR1cmUoKQogCiAgICAgLy8gUmUtZW5hYmxlIGJyZWFrcG9pbnRzIGlmIHRoZXkg
d2VyZSBlbmFibGVkLgogICAgIGlmIChtX3Byb2dyYW1tYXRpY0NhcHR1cmVSZXN0b3JlQnJlYWtw
b2ludEFjdGl2ZVZhbHVlKSB7Ci0gICAgICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBk
ZWJ1Z2dlckFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRlYnVnZ2VyQWdl
bnQoKSkgeworICAgICAgICBpZiAoYXV0byogd2ViRGVidWdnZXJBZ2VudCA9IG1faW5zdHJ1bWVu
dGluZ0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkpIHsKICAgICAgICAgICAgIEVycm9yU3RyaW5n
IGlnbm9yZWQ7Ci0gICAgICAgICAgICBkZWJ1Z2dlckFnZW50LT5zZXRCcmVha3BvaW50c0FjdGl2
ZShpZ25vcmVkLCB0cnVlKTsKKyAgICAgICAgICAgIHdlYkRlYnVnZ2VyQWdlbnQtPnNldEJyZWFr
cG9pbnRzQWN0aXZlKGlnbm9yZWQsIHRydWUpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5jcHAK
aW5kZXggNzg0NGY2OGM4YzBmOWJlNWMzYmM1YjQxZGJkZDBlYmI3ZjZiOTM0NS4uMTE0MTkyYTIx
OTMwZDJjMGY5NTZkOTljNDA3ODQ5YWJlMDIwMDIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0yNiw4ICsyNiwx
MCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkRlYnVnZ2VyQWdlbnQuaCIK
IAorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgog
I2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKLQorI2luY2x1ZGUgIlRpbWVyLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsMTYgKzQzLDEyNSBAQCBXZWJEZWJ1Z2dlckFn
ZW50OjpXZWJEZWJ1Z2dlckFnZW50KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKIAogV2ViRGVi
dWdnZXJBZ2VudDo6fldlYkRlYnVnZ2VyQWdlbnQoKSA9IGRlZmF1bHQ7CiAKK2Jvb2wgV2ViRGVi
dWdnZXJBZ2VudDo6ZW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy53ZWJEZWJ1Z2dlckFnZW50KCkgPT0gdGhpcyAmJiBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjplbmFibGVkKCk7Cit9CisKIHZvaWQgV2ViRGVidWdnZXJBZ2VudDo6ZW5hYmxlKCkKIHsK
KyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0V2ViRGVidWdnZXJBZ2VudCh0aGlzKTsKKwog
ICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZSgpOwotICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5zZXRJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KHRoaXMpOwogfQogCiB2b2lkIFdlYkRl
YnVnZ2VyQWdlbnQ6OmRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKQogewotICAgIG1faW5z
dHJ1bWVudGluZ0FnZW50cy5zZXRJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KG51bGxwdHIpOworICAg
IG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRXZWJEZWJ1Z2dlckFnZW50KG51bGxwdHIpOworCiAg
ICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShpc0JlaW5nRGVzdHJveWVkKTsKIH0K
IAordm9pZCBXZWJEZWJ1Z2dlckFnZW50OjpkaWRBZGRFdmVudExpc3RlbmVyKEV2ZW50VGFyZ2V0
JiB0YXJnZXQsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYgbGlz
dGVuZXIsIGJvb2wgY2FwdHVyZSkKK3sKKyAgICBpZiAoIWJyZWFrcG9pbnRzQWN0aXZlKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGV2ZW50TGlzdGVuZXJzID0gdGFyZ2V0LmV2ZW50
TGlzdGVuZXJzKGV2ZW50VHlwZSk7CisgICAgYXV0byBwb3NpdGlvbiA9IGV2ZW50TGlzdGVuZXJz
LmZpbmRNYXRjaGluZyhbJl0oYXV0byYgcmVnaXN0ZXJlZExpc3RlbmVyKSB7CisgICAgICAgIHJl
dHVybiAmcmVnaXN0ZXJlZExpc3RlbmVyLT5jYWxsYmFjaygpID09ICZsaXN0ZW5lciAmJiByZWdp
c3RlcmVkTGlzdGVuZXItPnVzZUNhcHR1cmUoKSA9PSBjYXB0dXJlOworICAgIH0pOworICAgIGlm
IChwb3NpdGlvbiA9PSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgcmVn
aXN0ZXJlZExpc3RlbmVyID0gZXZlbnRMaXN0ZW5lcnMuYXQocG9zaXRpb24pOworICAgIGlmICht
X3JlZ2lzdGVyZWRFdmVudExpc3RlbmVycy5jb250YWlucyhyZWdpc3RlcmVkTGlzdGVuZXIuZ2V0
KCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUg
PSB0YXJnZXQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5leGVjU3RhdGUoKTsKKyAgICBpZiAo
IXNjcmlwdFN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQgaWRlbnRpZmllciA9IG1f
bmV4dEV2ZW50TGlzdGVuZXJJZGVudGlmaWVyKys7CisgICAgbV9yZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lcnMuc2V0KHJlZ2lzdGVyZWRMaXN0ZW5lci5nZXQoKSwgaWRlbnRpZmllcik7CisKKyAgICBk
aWRTY2hlZHVsZUFzeW5jQ2FsbChzY3JpcHRTdGF0ZSwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
QXN5bmNDYWxsVHlwZTo6RXZlbnRMaXN0ZW5lciwgaWRlbnRpZmllciwgcmVnaXN0ZXJlZExpc3Rl
bmVyLT5pc09uY2UoKSk7Cit9CisKK3ZvaWQgV2ViRGVidWdnZXJBZ2VudDo6d2lsbFJlbW92ZUV2
ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQmIHRhcmdldCwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRU
eXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCBjYXB0dXJlKQoreworICAgIGF1dG8m
IGV2ZW50TGlzdGVuZXJzID0gdGFyZ2V0LmV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7CisgICAg
c2l6ZV90IGxpc3RlbmVySW5kZXggPSBldmVudExpc3RlbmVycy5maW5kTWF0Y2hpbmcoWyZdKGF1
dG8mIHJlZ2lzdGVyZWRMaXN0ZW5lcikgeworICAgICAgICByZXR1cm4gJnJlZ2lzdGVyZWRMaXN0
ZW5lci0+Y2FsbGJhY2soKSA9PSAmbGlzdGVuZXIgJiYgcmVnaXN0ZXJlZExpc3RlbmVyLT51c2VD
YXB0dXJlKCkgPT0gY2FwdHVyZTsKKyAgICB9KTsKKworICAgIGlmIChsaXN0ZW5lckluZGV4ID09
IG5vdEZvdW5kKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQgaWRlbnRpZmllciA9IG1fcmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXJzLnRha2UoZXZlbnRMaXN0ZW5lcnNbbGlzdGVuZXJJbmRleF0u
Z2V0KCkpOworICAgIGRpZENhbmNlbEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpB
c3luY0NhbGxUeXBlOjpFdmVudExpc3RlbmVyLCBpZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJE
ZWJ1Z2dlckFnZW50Ojp3aWxsSGFuZGxlRXZlbnQoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXImIGxpc3RlbmVyKQoreworICAgIGF1dG8gaXQgPSBtX3JlZ2lzdGVyZWRFdmVudExpc3RlbmVy
cy5maW5kKCZsaXN0ZW5lcik7CisgICAgaWYgKGl0ID09IG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICB3aWxsRGlzcGF0Y2hBc3luY0NhbGwo
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6RXZlbnRMaXN0ZW5lciwgaXQt
PnZhbHVlKTsKK30KKwordm9pZCBXZWJEZWJ1Z2dlckFnZW50OjpkaWRQb3N0TWVzc2FnZShjb25z
dCBUaW1lckJhc2UmIHRpbWVyLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKCFi
cmVha3BvaW50c0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9wb3N0TWVz
c2FnZVRpbWVycy5jb250YWlucygmdGltZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQg
cG9zdE1lc3NhZ2VJZGVudGlmaWVyID0gbV9uZXh0UG9zdE1lc3NhZ2VJZGVudGlmaWVyKys7Cisg
ICAgbV9wb3N0TWVzc2FnZVRpbWVycy5zZXQoJnRpbWVyLCBwb3N0TWVzc2FnZUlkZW50aWZpZXIp
OworCisgICAgZGlkU2NoZWR1bGVBc3luY0NhbGwoJnN0YXRlLCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpBc3luY0NhbGxUeXBlOjpQb3N0TWVzc2FnZSwgcG9zdE1lc3NhZ2VJZGVudGlmaWVyLCB0
cnVlKTsKK30KKwordm9pZCBXZWJEZWJ1Z2dlckFnZW50OjpkaWRGYWlsUG9zdE1lc3NhZ2UoY29u
c3QgVGltZXJCYXNlJiB0aW1lcikKK3sKKyAgICBhdXRvIGl0ID0gbV9wb3N0TWVzc2FnZVRpbWVy
cy5maW5kKCZ0aW1lcik7CisgICAgaWYgKGl0ID09IG1fcG9zdE1lc3NhZ2VUaW1lcnMuZW5kKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGRpZENhbmNlbEFzeW5jQ2FsbChJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpBc3luY0NhbGxUeXBlOjpQb3N0TWVzc2FnZSwgaXQtPnZhbHVlKTsKKworICAg
IG1fcG9zdE1lc3NhZ2VUaW1lcnMucmVtb3ZlKGl0KTsKK30KKwordm9pZCBXZWJEZWJ1Z2dlckFn
ZW50Ojp3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmIHRpbWVyKQorewor
ICAgIGF1dG8gaXQgPSBtX3Bvc3RNZXNzYWdlVGltZXJzLmZpbmQoJnRpbWVyKTsKKyAgICBpZiAo
aXQgPT0gbV9wb3N0TWVzc2FnZVRpbWVycy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
d2lsbERpc3BhdGNoQXN5bmNDYWxsKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OkFzeW5jQ2FsbFR5
cGU6OlBvc3RNZXNzYWdlLCBpdC0+dmFsdWUpOworfQorCit2b2lkIFdlYkRlYnVnZ2VyQWdlbnQ6
OmRpZERpc3BhdGNoUG9zdE1lc3NhZ2UoY29uc3QgVGltZXJCYXNlJiB0aW1lcikKK3sKKyAgICBh
dXRvIGl0ID0gbV9wb3N0TWVzc2FnZVRpbWVycy5maW5kKCZ0aW1lcik7CisgICAgaWYgKGl0ID09
IG1fcG9zdE1lc3NhZ2VUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRpZERp
c3BhdGNoQXN5bmNDYWxsKCk7CisKKyAgICBtX3Bvc3RNZXNzYWdlVGltZXJzLnJlbW92ZShpdCk7
Cit9CisKK3ZvaWQgV2ViRGVidWdnZXJBZ2VudDo6ZGlkQ2xlYXJBc3luY1N0YWNrVHJhY2VEYXRh
KCkKK3sKKyAgICBtX3JlZ2lzdGVyZWRFdmVudExpc3RlbmVycy5jbGVhcigpOworICAgIG1fcG9z
dE1lc3NhZ2VUaW1lcnMuY2xlYXIoKTsKKyAgICBtX25leHRFdmVudExpc3RlbmVySWRlbnRpZmll
ciA9IDE7CisgICAgbV9uZXh0UG9zdE1lc3NhZ2VJZGVudGlmaWVyID0gMTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9XZWJEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L1dlYkRlYnVnZ2VyQWdlbnQuaAppbmRleCBmYThhMjZjN2ZmY2M0OWE2NWZiNzQ3YzQ2Nzc3NGE2
NGFjMzU4MDI3Li5mZjQ5OGZkMTAyYmVkMTk0YWFiYjgzNWVjNWVmNWMzZDQ4NzI5NmVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQu
aApAQCAtMzAsNyArMzAsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBFdmVu
dExpc3RlbmVyOworY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRz
OworY2xhc3MgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXI7CitjbGFzcyBUaW1lckJhc2U7CiB0eXBl
ZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xhc3MgV2ViRGVidWdnZXJBZ2VudCA6IHB1Ymxp
YyBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQgewpAQCAtMzgsMTQgKzQyLDMxIEBA
IGNsYXNzIFdlYkRlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5XZWJEZWJ1Z2dlckFnZW50KCk7CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3Qgb3Zl
cnJpZGU7CisKKyAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KKyAgICB2b2lkIGRpZEFk
ZEV2ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUs
IEV2ZW50TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOworICAgIHZvaWQgd2lsbFJlbW92ZUV2ZW50
TGlzdGVuZXIoRXZlbnRUYXJnZXQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50
TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOworICAgIHZvaWQgd2lsbEhhbmRsZUV2ZW50KGNvbnN0
IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJik7CisgICAgdm9pZCBkaWRQb3N0TWVzc2FnZShjb25z
dCBUaW1lckJhc2UmLCBKU0M6OkV4ZWNTdGF0ZSYpOworICAgIHZvaWQgZGlkRmFpbFBvc3RNZXNz
YWdlKGNvbnN0IFRpbWVyQmFzZSYpOworICAgIHZvaWQgd2lsbERpc3BhdGNoUG9zdE1lc3NhZ2Uo
Y29uc3QgVGltZXJCYXNlJik7CisgICAgdm9pZCBkaWREaXNwYXRjaFBvc3RNZXNzYWdlKGNvbnN0
IFRpbWVyQmFzZSYpOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViRGVidWdnZXJBZ2VudChXZWJBZ2Vu
dENvbnRleHQmKTsKLQogICAgIHZvaWQgZW5hYmxlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNh
YmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIGRpZENsZWFy
QXN5bmNTdGFja1RyYWNlRGF0YSgpIGZpbmFsOworCiAgICAgSW5zdHJ1bWVudGluZ0FnZW50cyYg
bV9pbnN0cnVtZW50aW5nQWdlbnRzOworCitwcml2YXRlOgorICAgIEhhc2hNYXA8Y29uc3QgUmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXIqLCBpbnQ+IG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXJzOwor
ICAgIEhhc2hNYXA8Y29uc3QgVGltZXJCYXNlKiwgaW50PiBtX3Bvc3RNZXNzYWdlVGltZXJzOwor
ICAgIGludCBtX25leHRFdmVudExpc3RlbmVySWRlbnRpZmllciB7IDEgfTsKKyAgICBpbnQgbV9u
ZXh0UG9zdE1lc3NhZ2VJZGVudGlmaWVyIHsgMSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFn
ZS9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNGM5Y2ZhNWNlMGZjMjAwNDk3NTQzMGYwMzc4
NGRjNThiOTNkYzllZS4uNDgxYTE3MWRjN2Y4ODYzODZlNjQ1Y2QwNmY5MmM3MDY3MDc3Zjk2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1
Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2Uv
UGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zNiw4ICszNiw2IEBACiAjaW5jbHVkZSAiQ2hyb21l
LmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJFdmVudExpc3RlbmVyLmgiCi0jaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUg
Ikluc3RydW1lbnRpbmdBZ2VudHMuaCIKQEAgLTQ2LDcgKzQ0LDYgQEAKICNpbmNsdWRlICJQYWdl
U2NyaXB0RGVidWdTZXJ2ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKLSNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5qZWN0
ZWRTY3JpcHQuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbmplY3RlZFNjcmlwdE1hbmFn
ZXIuaD4KQEAgLTY3LDYgKzY0LDExIEBAIFBhZ2VEZWJ1Z2dlckFnZW50OjpQYWdlRGVidWdnZXJB
Z2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogCiBQYWdlRGVidWdnZXJBZ2VudDo6flBh
Z2VEZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OwogCitib29sIFBhZ2VEZWJ1Z2dlckFnZW50Ojpl
bmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VE
ZWJ1Z2dlckFnZW50KCkgPT0gdGhpcyAmJiBXZWJEZWJ1Z2dlckFnZW50OjplbmFibGVkKCk7Cit9
CisKIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcm
IGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGluY2x1
ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11
dGVDb25zb2xlLCBjb25zdCBib29sKiByZXR1cm5CeVZhbHVlLCBjb25zdCBib29sKiBnZW5lcmF0
ZVByZXZpZXcsIGNvbnN0IGJvb2wqIHNhdmVSZXN1bHQsIGNvbnN0IGJvb2wqIGVtdWxhdGVVc2Vy
R2VzdHVyZSwgUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQs
IE9wdGlvbmFsPGJvb2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5k
ZXgpCiB7CiAgICAgYXV0byYgcGFnZUNocm9tZUNsaWVudCA9IG1faW5zcGVjdGVkUGFnZS5jaHJv
bWUoKS5jbGllbnQoKTsKQEAgLTkxLDE0ICs5MywxNiBAQCB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50
OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aQogCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjplbmFibGUoKQogewotICAgIFdlYkRlYnVnZ2Vy
QWdlbnQ6OmVuYWJsZSgpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQYWdlRGVidWdn
ZXJBZ2VudCh0aGlzKTsKKworICAgIFdlYkRlYnVnZ2VyQWdlbnQ6OmVuYWJsZSgpOwogfQogCiB2
b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKIHsK
LSAgICBXZWJEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKGlzQmVpbmdEZXN0cm95ZWQpOwogICAgIG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQYWdlRGVidWdnZXJBZ2VudChudWxscHRyKTsKKworICAg
IFdlYkRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoaXNCZWluZ0Rlc3Ryb3llZCk7CiB9CiAKIFN0cmlu
ZyBQYWdlRGVidWdnZXJBZ2VudDo6c291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0IFNjcmlwdCYg
c2NyaXB0KQpAQCAtMTIyLDE0ICsxMjYsNiBAQCBTdHJpbmcgUGFnZURlYnVnZ2VyQWdlbnQ6OnNv
dXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQmIHNjcmlwdCkKICAgICByZXR1cm4gSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6c291cmNlTWFwVVJMRm9yU2NyaXB0KHNjcmlwdCk7CiB9CiAK
LXZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmRpZENsZWFyQXN5bmNTdGFja1RyYWNlRGF0YSgpCi17
Ci0gICAgbV9yZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTsKLSAgICBtX3Bvc3RNZXNz
YWdlVGltZXJzLmNsZWFyKCk7Ci0gICAgbV9uZXh0RXZlbnRMaXN0ZW5lcklkZW50aWZpZXIgPSAx
OwotICAgIG1fbmV4dFBvc3RNZXNzYWdlSWRlbnRpZmllciA9IDE7Ci19Ci0KIHZvaWQgUGFnZURl
YnVnZ2VyQWdlbnQ6Om11dGVDb25zb2xlKCkKIHsKICAgICBQYWdlQ29uc29sZUNsaWVudDo6bXV0
ZSgpOwpAQCAtMTg0LDU1ICsxODAsNiBAQCB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjptYWluRnJh
bWVOYXZpZ2F0ZWQoKQogICAgIHNldFN1cHByZXNzQWxsUGF1c2VzKGZhbHNlKTsKIH0KIAotdm9p
ZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlkQWRkRXZlbnRMaXN0ZW5lcihFdmVudFRhcmdldCYgdGFy
Z2V0LCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVy
LCBib29sIGNhcHR1cmUpCi17Ci0gICAgaWYgKCFicmVha3BvaW50c0FjdGl2ZSgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBhdXRvJiBldmVudExpc3RlbmVycyA9IHRhcmdldC5ldmVudExpc3Rl
bmVycyhldmVudFR5cGUpOwotICAgIGF1dG8gcG9zaXRpb24gPSBldmVudExpc3RlbmVycy5maW5k
TWF0Y2hpbmcoWyZdKGF1dG8mIHJlZ2lzdGVyZWRMaXN0ZW5lcikgewotICAgICAgICByZXR1cm4g
JnJlZ2lzdGVyZWRMaXN0ZW5lci0+Y2FsbGJhY2soKSA9PSAmbGlzdGVuZXIgJiYgcmVnaXN0ZXJl
ZExpc3RlbmVyLT51c2VDYXB0dXJlKCkgPT0gY2FwdHVyZTsKLSAgICB9KTsKLSAgICBpZiAocG9z
aXRpb24gPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8mIHJlZ2lzdGVy
ZWRMaXN0ZW5lciA9IGV2ZW50TGlzdGVuZXJzLmF0KHBvc2l0aW9uKTsKLSAgICBpZiAobV9yZWdp
c3RlcmVkRXZlbnRMaXN0ZW5lcnMuY29udGFpbnMocmVnaXN0ZXJlZExpc3RlbmVyLmdldCgpKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlID0gdGFy
Z2V0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXhlY1N0YXRlKCk7Ci0gICAgaWYgKCFzY3Jp
cHRTdGF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW50IGlkZW50aWZpZXIgPSBtX25leHRF
dmVudExpc3RlbmVySWRlbnRpZmllcisrOwotICAgIG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXJz
LnNldChyZWdpc3RlcmVkTGlzdGVuZXIuZ2V0KCksIGlkZW50aWZpZXIpOwotCi0gICAgZGlkU2No
ZWR1bGVBc3luY0NhbGwoc2NyaXB0U3RhdGUsIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OkFzeW5j
Q2FsbFR5cGU6OkV2ZW50TGlzdGVuZXIsIGlkZW50aWZpZXIsIHJlZ2lzdGVyZWRMaXN0ZW5lci0+
aXNPbmNlKCkpOwotfQotCi12b2lkIFBhZ2VEZWJ1Z2dlckFnZW50Ojp3aWxsUmVtb3ZlRXZlbnRM
aXN0ZW5lcihFdmVudFRhcmdldCYgdGFyZ2V0LCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUs
IEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBib29sIGNhcHR1cmUpCi17Ci0gICAgYXV0byYgZXZl
bnRMaXN0ZW5lcnMgPSB0YXJnZXQuZXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTsKLSAgICBzaXpl
X3QgbGlzdGVuZXJJbmRleCA9IGV2ZW50TGlzdGVuZXJzLmZpbmRNYXRjaGluZyhbJl0oYXV0byYg
cmVnaXN0ZXJlZExpc3RlbmVyKSB7Ci0gICAgICAgIHJldHVybiAmcmVnaXN0ZXJlZExpc3RlbmVy
LT5jYWxsYmFjaygpID09ICZsaXN0ZW5lciAmJiByZWdpc3RlcmVkTGlzdGVuZXItPnVzZUNhcHR1
cmUoKSA9PSBjYXB0dXJlOwotICAgIH0pOwotCi0gICAgaWYgKGxpc3RlbmVySW5kZXggPT0gbm90
Rm91bmQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBpZGVudGlmaWVyID0gbV9yZWdpc3Rl
cmVkRXZlbnRMaXN0ZW5lcnMudGFrZShldmVudExpc3RlbmVyc1tsaXN0ZW5lckluZGV4XS5nZXQo
KSk7Ci0gICAgZGlkQ2FuY2VsQXN5bmNDYWxsKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OkFzeW5j
Q2FsbFR5cGU6OkV2ZW50TGlzdGVuZXIsIGlkZW50aWZpZXIpOwotfQotCi12b2lkIFBhZ2VEZWJ1
Z2dlckFnZW50Ojp3aWxsSGFuZGxlRXZlbnQoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIm
IGxpc3RlbmVyKQotewotICAgIGF1dG8gaXQgPSBtX3JlZ2lzdGVyZWRFdmVudExpc3RlbmVycy5m
aW5kKCZsaXN0ZW5lcik7Ci0gICAgaWYgKGl0ID09IG1fcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXJz
LmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB3aWxsRGlzcGF0Y2hBc3luY0NhbGwoSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6RXZlbnRMaXN0ZW5lciwgaXQtPnZh
bHVlKTsKLX0KLQogdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlkUmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGludCBjYWxsYmFja0lkLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFicmVh
a3BvaW50c0FjdGl2ZSgpKQpAQCAtMjU1LDQ5ICsyMDIsNCBAQCB2b2lkIFBhZ2VEZWJ1Z2dlckFn
ZW50OjpkaWRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCkKICAgICBkaWRDYW5j
ZWxBc3luY0NhbGwoSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6UmVxdWVz
dEFuaW1hdGlvbkZyYW1lLCBjYWxsYmFja0lkKTsKIH0KIAotdm9pZCBQYWdlRGVidWdnZXJBZ2Vu
dDo6ZGlkUG9zdE1lc3NhZ2UoY29uc3QgVGltZXJCYXNlJiB0aW1lciwgSlNDOjpFeGVjU3RhdGUm
IHN0YXRlKQotewotICAgIGlmICghYnJlYWtwb2ludHNBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKG1fcG9zdE1lc3NhZ2VUaW1lcnMuY29udGFpbnMoJnRpbWVyKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaW50IHBvc3RNZXNzYWdlSWRlbnRpZmllciA9IG1fbmV4dFBvc3RN
ZXNzYWdlSWRlbnRpZmllcisrOwotICAgIG1fcG9zdE1lc3NhZ2VUaW1lcnMuc2V0KCZ0aW1lciwg
cG9zdE1lc3NhZ2VJZGVudGlmaWVyKTsKLQotICAgIGRpZFNjaGVkdWxlQXN5bmNDYWxsKCZzdGF0
ZSwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6QXN5bmNDYWxsVHlwZTo6UG9zdE1lc3NhZ2UsIHBv
c3RNZXNzYWdlSWRlbnRpZmllciwgdHJ1ZSk7Ci19Ci0KLXZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6
OmRpZEZhaWxQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmIHRpbWVyKQotewotICAgIGF1dG8g
aXQgPSBtX3Bvc3RNZXNzYWdlVGltZXJzLmZpbmQoJnRpbWVyKTsKLSAgICBpZiAoaXQgPT0gbV9w
b3N0TWVzc2FnZVRpbWVycy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZGlkQ2FuY2Vs
QXN5bmNDYWxsKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OkFzeW5jQ2FsbFR5cGU6OlBvc3RNZXNz
YWdlLCBpdC0+dmFsdWUpOwotCi0gICAgbV9wb3N0TWVzc2FnZVRpbWVycy5yZW1vdmUoaXQpOwot
fQotCi12b2lkIFBhZ2VEZWJ1Z2dlckFnZW50Ojp3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShjb25z
dCBUaW1lckJhc2UmIHRpbWVyKQotewotICAgIGF1dG8gaXQgPSBtX3Bvc3RNZXNzYWdlVGltZXJz
LmZpbmQoJnRpbWVyKTsKLSAgICBpZiAoaXQgPT0gbV9wb3N0TWVzc2FnZVRpbWVycy5lbmQoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgd2lsbERpc3BhdGNoQXN5bmNDYWxsKEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OkFzeW5jQ2FsbFR5cGU6OlBvc3RNZXNzYWdlLCBpdC0+dmFsdWUpOwotfQot
Ci12b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpkaWREaXNwYXRjaFBvc3RNZXNzYWdlKGNvbnN0IFRp
bWVyQmFzZSYgdGltZXIpCi17Ci0gICAgYXV0byBpdCA9IG1fcG9zdE1lc3NhZ2VUaW1lcnMuZmlu
ZCgmdGltZXIpOwotICAgIGlmIChpdCA9PSBtX3Bvc3RNZXNzYWdlVGltZXJzLmVuZCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBkaWREaXNwYXRjaEFzeW5jQ2FsbCgpOwotCi0gICAgbV9wb3N0
TWVzc2FnZVRpbWVycy5yZW1vdmUoaXQpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVn
Z2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVi
dWdnZXJBZ2VudC5oCmluZGV4IGUyNDM2NGY1MDdmYTU4ZDhkODQyOWNkYjg1ZmM4ZjQ4YzFjMTA0
MGQuLjNiZDJhNDg3YjA4NDRhODhhYzI0NzdmMjVjOGQ2MTBiMzRiNGU2NDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJB
Z2VudC5oCkBAIC0zNiwxMSArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
b2N1bWVudDsKLWNsYXNzIEV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBFdmVudFRhcmdldDsKIGNsYXNz
IFBhZ2U7Ci1jbGFzcyBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcjsKLWNsYXNzIFRpbWVyQmFzZTsK
IAogY2xhc3MgUGFnZURlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgV2ViRGVidWdnZXJBZ2Vu
dCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZURlYnVnZ2VyQWdlbnQpOwpAQCAtNDgs
NiArNDQsNyBAQCBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBXZWJEZWJ1
Z2dlckFnZW50IHsKIHB1YmxpYzoKICAgICBQYWdlRGVidWdnZXJBZ2VudChQYWdlQWdlbnRDb250
ZXh0Jik7CiAgICAgdmlydHVhbCB+UGFnZURlYnVnZ2VyQWdlbnQoKTsKKyAgICBib29sIGVuYWJs
ZWQoKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIERlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5k
bGVyCiAgICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcq
IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJv
b2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgYm9vbCogcmV0
dXJuQnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZl
UmVzdWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUsIFJlZlB0cjxJbnNwZWN0b3I6
OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIE9wdGlvbmFsPGJvb2w+
JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5kZXgpOwpAQCAtNjMsMTMg
KzYwLDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGludCBj
YWxsYmFja0lkLCBEb2N1bWVudCYpOwogICAgIHZvaWQgd2lsbEZpcmVBbmltYXRpb25GcmFtZShp
bnQgY2FsbGJhY2tJZCk7CiAgICAgdm9pZCBkaWRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgY2Fs
bGJhY2tJZCk7Ci0gICAgdm9pZCBkaWRBZGRFdmVudExpc3RlbmVyKEV2ZW50VGFyZ2V0JiwgY29u
c3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0dXJlKTsK
LSAgICB2b2lkIHdpbGxSZW1vdmVFdmVudExpc3RlbmVyKEV2ZW50VGFyZ2V0JiwgY29uc3QgQXRv
bVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0dXJlKTsKLSAgICB2
b2lkIHdpbGxIYW5kbGVFdmVudChjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYpOwotICAg
IHZvaWQgZGlkUG9zdE1lc3NhZ2UoY29uc3QgVGltZXJCYXNlJiwgSlNDOjpFeGVjU3RhdGUmKTsK
LSAgICB2b2lkIGRpZEZhaWxQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmKTsKLSAgICB2b2lk
IHdpbGxEaXNwYXRjaFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYpOwotICAgIHZvaWQgZGlk
RGlzcGF0Y2hQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmKTsKIAogcHJpdmF0ZToKICAgICB2
b2lkIGVuYWJsZSgpOwpAQCAtNzcsMTkgKzY3LDEyIEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcg
c291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0IFNjcmlwdCYpOwogCi0gICAgdm9pZCBkaWRDbGVh
ckFzeW5jU3RhY2tUcmFjZURhdGEoKTsKLQogICAgIHZvaWQgbXV0ZUNvbnNvbGUoKTsKICAgICB2
b2lkIHVubXV0ZUNvbnNvbGUoKTsKIAogICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5q
ZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250
ZXh0SWQpOwogCiAgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOwotCi0gICAgSGFzaE1hcDxjb25z
dCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciosIGludD4gbV9yZWdpc3RlcmVkRXZlbnRMaXN0ZW5l
cnM7Ci0gICAgSGFzaE1hcDxjb25zdCBUaW1lckJhc2UqLCBpbnQ+IG1fcG9zdE1lc3NhZ2VUaW1l
cnM7Ci0gICAgaW50IG1fbmV4dEV2ZW50TGlzdGVuZXJJZGVudGlmaWVyIHsgMSB9OwotICAgIGlu
dCBtX25leHRQb3N0TWVzc2FnZUlkZW50aWZpZXIgeyAxIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMGYyYTZjOGE4N2RlMDZkMWY3NGQ5NWNjYmVmOGJkMTJkMTUzMzg3
NC4uMjIxNDBiN2I2MjBmMTExMDM3Yjc2MzQ2YjNmZjRiYjBjNTNlYzUwOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE5LTA4LTI5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBEZWJ1Z2dlcjogYXN5bmMgZXZlbnQgbGlzdGVuZXIg
c3RhY2sgdHJhY2VzIHNob3VsZCBiZSBhdmFpbGFibGUgaW4gV29ya2VycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTAzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICogaW5zcGVjdG9yL3dvcmtlci9k
b20tZGVidWdnZXItZXZlbnQtaW50ZXJ2YWwtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci93b3JrZXIvZG9tLWRlYnVnZ2VyLWV2ZW50LWxpc3RlbmVyLWJyZWFr
cG9pbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1
Z2dlci1ldmVudC10aW1lb3V0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBp
bnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci11cmwtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci93b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1kb20tZGVidWdn
ZXIuanM6CisKIDIwMTktMDgtMjkgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29t
PgogCiAgICAgICAgIENvcHlpbmcgYW5kIHBhc3RpbmcgdHdvIHBhcmFncmFwaHMgd2l0aCBhIG5l
d2xpbmUgYmV0d2VlbiB0aGVtIHJlc3VsdHMgaW4gc3RyYXkgcGFyYWdyYXBoIHdpdGggbmV3bGlu
ZSBpbnNpZGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya2VyL2RvbS1k
ZWJ1Z2dlci1ldmVudC1pbnRlcnZhbC1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci1ldmVudC1pbnRlcnZhbC1icmVha3Bv
aW50cy1leHBlY3RlZC50eHQKaW5kZXggZmJlZjdmZmRhYWQxOTAyOWFlNWNiODIwOGQ5YjA2ZTcy
NDE1ZWYwYi4uOTI2ODI0NDMzMWJhM2M2NjgyMGE1ZjRlMjk1ZmFmZDI3OTQwMmIyNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdnZXItZXZlbnQtaW50
ZXJ2YWwtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci93b3JrZXIvZG9tLWRlYnVnZ2VyLWV2ZW50LWludGVydmFsLWJyZWFrcG9pbnRzLWV4cGVjdGVk
LnR4dApAQCAtMTAsNSArMTAsNyBAQCBDQUxMIFNUQUNLOgogQVNZTkMgQ0FMTCBTVEFDSzoKIDE6
IC0tLSBzZXRJbnRlcnZhbCAtLS0KIDI6IFtGXSB0cmlnZ2VySW50ZXJ2YWwKLTM6IFtGXSBvbm1l
c3NhZ2UKKzM6IFtGXSBoYW5kbGVNZXNzYWdlCis0OiAtLS0gYWRkRXZlbnRMaXN0ZW5lciAtLS0K
KzU6IFtQXSBHbG9iYWwgQ29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
d29ya2VyL2RvbS1kZWJ1Z2dlci1ldmVudC1saXN0ZW5lci1icmVha3BvaW50cy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci1ldmVudC1saXN0
ZW5lci1icmVha3BvaW50cy1leHBlY3RlZC50eHQKaW5kZXggZDM5MzljOGJkNDQ5NDU0YTFmNmYw
YjEyM2VmZjlkMzZlZjY3ZDM3My4uZTU0Yzk2NGM5ZmZjMjgwZDBjNjUzNGUxN2RmM2Q5ZGMxYTFh
NDA1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdn
ZXItZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci93b3JrZXIvZG9tLWRlYnVnZ2VyLWV2ZW50LWxpc3RlbmVyLWJyZWFrcG9p
bnRzLWV4cGVjdGVkLnR4dApAQCAtOSw1ICs5LDggQEAgUEFTUzogUGF1c2UgZGF0YSBldmVudE5h
bWUgc2hvdWxkIGhhdmUgYmVlbiAiY3VzdG9tIi4KIENBTEwgU1RBQ0s6CiAwOiBbRl0gaGFuZGxl
cgogMTogW0ZdIHRyaWdnZXJMaXN0ZW5lcgotMjogW0ZdIG9ubWVzc2FnZQorMjogW0ZdIGhhbmRs
ZU1lc3NhZ2UKK0FTWU5DIENBTEwgU1RBQ0s6CiszOiAtLS0gYWRkRXZlbnRMaXN0ZW5lciAtLS0K
KzQ6IFtQXSBHbG9iYWwgQ29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
d29ya2VyL2RvbS1kZWJ1Z2dlci1ldmVudC10aW1lb3V0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3JrZXIvZG9tLWRlYnVnZ2VyLWV2ZW50LXRpbWVv
dXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CmluZGV4IGM4MDQ4MzM4YzlhZjY2MjZiZDY0ZmZh
NzY0ZGI1YjY4Yjc1MDFkN2IuLmU2ZWE2ZjRkNzhmYjIxZjFlNGNjY2RhNDViOTVkMjU0ZjRiM2U3
OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3JrZXIvZG9tLWRlYnVnZ2Vy
LWV2ZW50LXRpbWVvdXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci93b3JrZXIvZG9tLWRlYnVnZ2VyLWV2ZW50LXRpbWVvdXQtYnJlYWtwb2ludHMt
ZXhwZWN0ZWQudHh0CkBAIC0xMCw1ICsxMCw3IEBAIENBTEwgU1RBQ0s6CiBBU1lOQyBDQUxMIFNU
QUNLOgogMTogLS0tIHNldFRpbWVvdXQgLS0tCiAyOiBbRl0gdHJpZ2dlclRpbWVvdXQKLTM6IFtG
XSBvbm1lc3NhZ2UKKzM6IFtGXSBoYW5kbGVNZXNzYWdlCis0OiAtLS0gYWRkRXZlbnRMaXN0ZW5l
ciAtLS0KKzU6IFtQXSBHbG9iYWwgQ29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci11cmwtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtlci9kb20tZGVidWdnZXItdXJsLWJyZWFrcG9pbnRz
LWV4cGVjdGVkLnR4dAppbmRleCBiNWIxNTg4OGI3NGVlMjI3ZTEwN2ZkOWNhMThhNmNkODIwZDQy
YmQ4Li40YWM5M2Y3NmU0OGZmYWJlN2Q5YzMyNzc3NDc4MGI0YmYyYTdmMzFmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya2VyL2RvbS1kZWJ1Z2dlci11cmwtYnJlYWtwb2lu
dHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3JrZXIvZG9tLWRl
YnVnZ2VyLXVybC1icmVha3BvaW50cy1leHBlY3RlZC50eHQKQEAgLTksNyArOSwxMCBAQCBQQVNT
OiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgaW5jbHVkZSAiRmV0Y2giLgogQ0FMTCBTVEFDSzoKIDA6
IFtGXSBsb2FkUmVzb3VyY2VGZXRjaAogMTogW0ZdIHRyaWdnZXJGZXRjaAotMjogW0ZdIG9ubWVz
c2FnZQorMjogW0ZdIGhhbmRsZU1lc3NhZ2UKK0FTWU5DIENBTEwgU1RBQ0s6CiszOiAtLS0gYWRk
RXZlbnRMaXN0ZW5lciAtLS0KKzQ6IFtQXSBHbG9iYWwgQ29kZQogCiAtLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogV29ya2VyLkRPTURlYnVnZ2VyLlVSTEJyZWFrcG9pbnQuWEhSCiBQQVNTOiBTaG91bGQg
aGF2ZSBwYXVzZWQuCkBAIC0xOCw1ICsyMSw4IEBAIFBBU1M6IFBhdXNlIGRhdGEgVVJMIHNob3Vs
ZCBpbmNsdWRlICJYSFIiLgogQ0FMTCBTVEFDSzoKIDA6IFtGXSBsb2FkUmVzb3VyY2VYSFIKIDE6
IFtGXSB0cmlnZ2VyWEhSCi0yOiBbRl0gb25tZXNzYWdlCisyOiBbRl0gaGFuZGxlTWVzc2FnZQor
QVNZTkMgQ0FMTCBTVEFDSzoKKzM6IC0tLSBhZGRFdmVudExpc3RlbmVyIC0tLQorNDogW1BdIEds
b2JhbCBDb2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3JrZXIvcmVz
b3VyY2VzL3dvcmtlci1kb20tZGVidWdnZXIuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29y
a2VyL3Jlc291cmNlcy93b3JrZXItZG9tLWRlYnVnZ2VyLmpzCmluZGV4IGQxYjU4YTNjYzcyOThl
ZjRmZWFmOTBmNDA5ZjExZTMzMmI2OTYzZTIuLmI2ZjUwNThlZDJhNWIzZDEzNWI5NGU5YTRiMDQx
MzNiNjVmZThjZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3JrZXIvcmVz
b3VyY2VzL3dvcmtlci1kb20tZGVidWdnZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3dvcmtlci9yZXNvdXJjZXMvd29ya2VyLWRvbS1kZWJ1Z2dlci5qcwpAQCAtMjcsNiArMjcsNiBA
QCBhZGRFdmVudExpc3RlbmVyKCJjdXN0b20iLCBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7CiAg
ICAgY29uc29sZS5sb2coImxpc3RlbmVyIGZpcmVkIik7CiB9KTsKIAotb25tZXNzYWdlID0gZnVu
Y3Rpb24oZXZlbnQpIHsKK2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiBoYW5k
bGVNZXNzYWdlKGV2ZW50KSB7CiAgICAgZnVuY3Rpb25zW2V2ZW50LmRhdGFdKCk7Ci19Cit9KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>